{
	"name": "hoopy",
	"versions": {
		"0.1.0": {
			"name": "hoopy",
			"version": "0.1.0",
			"license": "MIT",
			"description": "Like an array, but rounder.",
			"keywords": [
				"data",
				"structure",
				"collection",
				"array",
				"circular",
				"extends",
				"proxy"
			],
			"author": {
				"name": "Phil Booth",
				"email": "pmbooth@gmail.com",
				"url": "https://philbooth.me/"
			},
			"main": "index.js",
			"scripts": {
				"lint": "eslint .",
				"test": "mocha --es_staging --ui tdd test.js",
				"release": "release"
			},
			"repository": {
				"type": "git",
				"url": "git+https://github.com/philbooth/hoopy.git"
			},
			"homepage": "https://github.com/philbooth/hoopy#readme",
			"bugs": {
				"url": "https://github.com/philbooth/hoopy/issues"
			},
			"devDependencies": {
				"chai": "^3.5.0",
				"eslint": "^3.19.0",
				"mocha": "^3.3.0",
				"please-release-me": "^1.0.3"
			},
			"contributors": [
				{
					"name": "Phil Booth",
					"email": "pmbooth@gmail.com",
					"url": "https://philbooth.me/"
				}
			],
			"gitHead": "4b8c374c82da22974731304b67600e99239d9fb8",
			"_id": "hoopy@0.1.0",
			"_shasum": "cc720164ebd10987af9a14ebe28d431fb7247fe4",
			"_from": ".",
			"_npmVersion": "3.10.10",
			"_nodeVersion": "6.10.2",
			"_npmUser": {
				"name": "philbooth",
				"email": "pmbooth@gmail.com"
			},
			"dist": {
				"shasum": "cc720164ebd10987af9a14ebe28d431fb7247fe4",
				"tarball": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.0.tgz"
			},
			"maintainers": [
				{
					"name": "philbooth",
					"email": "pmbooth@gmail.com"
				}
			],
			"_npmOperationalInternal": {
				"host": "packages-12-west.internal.npmjs.com",
				"tmp": "tmp/hoopy-0.1.0.tgz_1494148365309_0.6646096911281347"
			},
			"directories": {}
		},
		"0.1.1": {
			"name": "hoopy",
			"version": "0.1.1",
			"license": "MIT",
			"description": "Like an array, but rounder.",
			"keywords": [
				"data",
				"structure",
				"collection",
				"array",
				"circular",
				"extends",
				"proxy"
			],
			"author": {
				"name": "Phil Booth",
				"email": "pmbooth@gmail.com",
				"url": "https://philbooth.me/"
			},
			"main": "index.js",
			"scripts": {
				"lint": "eslint .",
				"test": "mocha --es_staging --ui tdd test.js",
				"release": "release"
			},
			"repository": {
				"type": "git",
				"url": "git+https://github.com/philbooth/hoopy.git"
			},
			"homepage": "https://github.com/philbooth/hoopy#readme",
			"bugs": {
				"url": "https://github.com/philbooth/hoopy/issues"
			},
			"devDependencies": {
				"chai": "^3.5.0",
				"eslint": "^3.19.0",
				"mocha": "^3.3.0",
				"please-release-me": "^1.0.3"
			},
			"contributors": [
				{
					"name": "Phil Booth",
					"email": "pmbooth@gmail.com",
					"url": "https://philbooth.me/"
				}
			],
			"gitHead": "b3b3459748e425c223b4a885c3ab43dbc1361f95",
			"_id": "hoopy@0.1.1",
			"_shasum": "4a2c12878d1b20cf4d5a7dc81cfb55ea3283abbd",
			"_from": ".",
			"_npmVersion": "3.10.10",
			"_nodeVersion": "6.10.2",
			"_npmUser": {
				"name": "philbooth",
				"email": "pmbooth@gmail.com"
			},
			"dist": {
				"shasum": "4a2c12878d1b20cf4d5a7dc81cfb55ea3283abbd",
				"tarball": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.1.tgz"
			},
			"maintainers": [
				{
					"name": "philbooth",
					"email": "pmbooth@gmail.com"
				}
			],
			"_npmOperationalInternal": {
				"host": "packages-18-east.internal.npmjs.com",
				"tmp": "tmp/hoopy-0.1.1.tgz_1494150411017_0.10154842957854271"
			},
			"directories": {}
		},
		"0.1.2": {
			"name": "hoopy",
			"version": "0.1.2",
			"license": "MIT",
			"description": "Like an array, but rounder.",
			"keywords": [
				"data",
				"structure",
				"collection",
				"array",
				"circular",
				"extends",
				"proxy"
			],
			"author": {
				"name": "Phil Booth",
				"email": "pmbooth@gmail.com",
				"url": "https://philbooth.me/"
			},
			"main": "index.js",
			"scripts": {
				"lint": "eslint .",
				"test": "mocha --es_staging --ui tdd test.js",
				"release": "release"
			},
			"repository": {
				"type": "git",
				"url": "git+https://github.com/philbooth/hoopy.git"
			},
			"homepage": "https://github.com/philbooth/hoopy#readme",
			"bugs": {
				"url": "https://github.com/philbooth/hoopy/issues"
			},
			"devDependencies": {
				"chai": "^3.5.0",
				"eslint": "^3.19.0",
				"mocha": "^3.3.0",
				"please-release-me": "^1.0.3"
			},
			"contributors": [
				{
					"name": "Phil Booth",
					"email": "pmbooth@gmail.com",
					"url": "https://philbooth.me/"
				}
			],
			"gitHead": "74cd7187ba6fb04aa78db9d20de8911445c3ea9b",
			"_id": "hoopy@0.1.2",
			"_shasum": "bd64d4648eb13d77971a129a493fbb380b030602",
			"_from": ".",
			"_npmVersion": "3.10.10",
			"_nodeVersion": "6.10.2",
			"_npmUser": {
				"name": "philbooth",
				"email": "pmbooth@gmail.com"
			},
			"dist": {
				"shasum": "bd64d4648eb13d77971a129a493fbb380b030602",
				"tarball": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.2.tgz"
			},
			"maintainers": [
				{
					"name": "philbooth",
					"email": "pmbooth@gmail.com"
				}
			],
			"_npmOperationalInternal": {
				"host": "packages-12-west.internal.npmjs.com",
				"tmp": "tmp/hoopy-0.1.2.tgz_1494155770726_0.7030087050516158"
			},
			"directories": {}
		},
		"0.1.4": {
			"name": "hoopy",
			"version": "0.1.4",
			"license": "MIT",
			"description": "Like an array, but rounder.",
			"keywords": [
				"data",
				"structure",
				"collection",
				"array",
				"circular",
				"extends",
				"proxy"
			],
			"author": {
				"name": "Phil Booth",
				"email": "pmbooth@gmail.com",
				"url": "https://philbooth.me/"
			},
			"main": "index.js",
			"engines": {
				"node": ">= 6.0.0"
			},
			"scripts": {
				"lint": "eslint .",
				"test": "mocha --es_staging --ui tdd test.js",
				"release": "release"
			},
			"repository": {
				"type": "git",
				"url": "git+https://gitlab.com/philbooth/hoopy.git"
			},
			"homepage": "https://gitlab.com/philbooth/hoopy#readme",
			"bugs": {
				"url": "https://gitlab.com/philbooth/hoopy/issues"
			},
			"devDependencies": {
				"chai": "^4.1.2",
				"eslint": "^3.19.0",
				"mocha": "^5.2.0",
				"please-release-me": "^2.0.2"
			},
			"contributors": [
				{
					"name": "Phil Booth",
					"email": "pmbooth@gmail.com",
					"url": "https://philbooth.me/"
				},
				{
					"name": "James M. Greene",
					"url": "https://github.com/JamesMGreene"
				}
			],
			"gitHead": "534d67d737551706bce0f3aba675c1301ca2c5b8",
			"_id": "hoopy@0.1.4",
			"_npmVersion": "6.1.0",
			"_nodeVersion": "8.11.1",
			"_npmUser": {
				"name": "philbooth",
				"email": "pmbooth@gmail.com"
			},
			"dist": {
				"integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==",
				"shasum": "609207d661100033a9a9402ad3dea677381c1b1d",
				"tarball": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
				"fileCount": 10,
				"unpackedSize": 20424,
				"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbL0kICRA9TVsSAnZWagAA5gcP/1vtAPK3Kek5FRi1Ql9B\nB6uJ4F0hxZqcHHmstP+O4+ZwGVS0Dxsef07DAGwLl9noPNdonoZoxPnu0UM/\nMXDeu4Ya7GSf4BieFClzz/Y5bVJ8sOaVklS9MHrOwyGbs6QigtXCD1V6fvwk\nYvG+4Hu2RcETinwvfU8nVFKTOYbRYMnZh1hPMce6N/tkz/8g3VesUyL+z2k4\n4laqE3ZxLWOy4ywge2tVjoov9srWONpLl+h7r9Ds3r7YQdu4SPbfQv+r9trE\nEy9rTvNC/SxvmaG+A+OjvzETkshJ8sMuGEfQVQtkRPJuJU1x56LqInOYoALh\noa64fnSi4QpxjXG+GgbgumPZHfADYzW5mjOUYkvp1z87lo71I0UKAiUk+6Z9\nNq8Rrkj1F273bu6hx24FbRampByk5kUbUyUCLpWZz/pTtRWnlMiXD3buVWZM\nzEjLy7Z08LGqmGzsIG/XpqlkEW2s/gAAJciODXlLc6knmlx9SsfltN7LVv4d\ndM5LJFMw8LdKtsJ4u0t9Rr0JvD/HpWzYdSZatZc72bK0aHGNV31R07YNipoT\n+pw9g4tKfP9FA0+/3CTmp4yB1ZHnn2xQc9T+5OMyt1+51wX6nMl99i+CtvGn\nEpRL2rXY80+f2/7Ks0Z/MExBA0wNwzq5ncETPy9+vGXxyeztzvBPm6rLijJc\nGq7m\r\n=jGM8\r\n-----END PGP SIGNATURE-----\r\n"
			},
			"maintainers": [
				{
					"name": "philbooth",
					"email": "pmbooth@gmail.com"
				}
			],
			"directories": {},
			"_npmOperationalInternal": {
				"host": "s3://npm-registry-packages",
				"tmp": "tmp/hoopy_0.1.4_1529825544223_0.5067431864525864"
			}
		}
	},
	"time": {
		"modified": "2018-06-24T07:32:26.627Z",
		"created": "2017-05-07T09:12:47.185Z",
		"0.1.0": "2017-05-07T09:12:47.185Z",
		"0.1.1": "2017-05-07T09:46:51.661Z",
		"0.1.2": "2017-05-07T11:16:12.491Z",
		"0.1.4": "2018-06-24T07:32:24.283Z"
	},
	"users": {},
	"dist-tags": {
		"latest": "0.1.4"
	},
	"_uplinks": {
		"npmjs": {
			"etag": "W/\"22f63747cabd6f8184e28f961b7162d6\"",
			"fetched": 1593324455681
		}
	},
	"_distfiles": {
		"hoopy-0.1.0.tgz": {
			"url": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.0.tgz",
			"sha": "cc720164ebd10987af9a14ebe28d431fb7247fe4",
			"registry": "npmjs"
		},
		"hoopy-0.1.1.tgz": {
			"url": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.1.tgz",
			"sha": "4a2c12878d1b20cf4d5a7dc81cfb55ea3283abbd",
			"registry": "npmjs"
		},
		"hoopy-0.1.2.tgz": {
			"url": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.2.tgz",
			"sha": "bd64d4648eb13d77971a129a493fbb380b030602",
			"registry": "npmjs"
		},
		"hoopy-0.1.4.tgz": {
			"url": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
			"sha": "609207d661100033a9a9402ad3dea677381c1b1d",
			"registry": "npmjs"
		}
	},
	"_attachments": {
		"hoopy-0.1.4.tgz": {
			"shasum": "609207d661100033a9a9402ad3dea677381c1b1d"
		}
	},
	"_rev": "2-83fe0b282a58e796",
	"_id": "hoopy",
	"readme": "# hoopy\n\n[![Build status](https://gitlab.com/philbooth/hoopy/badges/master/pipeline.svg)](https://gitlab.com/philbooth/hoopy/pipelines)\n[![Package status](https://img.shields.io/npm/v/hoopy.svg)](https://www.npmjs.com/package/hoopy)\n[![Downloads](https://img.shields.io/npm/dm/hoopy.svg)](https://www.npmjs.com/package/hoopy)\n[![License](https://img.shields.io/npm/l/hoopy.svg)](https://opensource.org/licenses/MIT)\n\n\nLike an array, but rounder.\n\n* [Huh?](#huh)\n* [What's it useful for?](#whats-it-useful-for)\n* [How do I install it?](#how-do-i-install-it)\n* [How do I use it?](#how-do-i-use-it)\n  * [Loading the library](#loading-the-library)\n  * [Creating arrays](#creating-arrays)\n  * [Accessing array items](#accessing-array-items)\n  * [Growing the array](#growing-the-array)\n* [Is there a change log?](#is-there-a-change-log)\n* [How do I set up the dev environment?](#how-do-i-set-up-the-dev-environment)\n* [What license is it released under?](#what-license-is-it-released-under)\n\n## Huh?\n\nHoopy is a circular array\ndata type.\nIt extends `Array`\nso that out-of-bounds indices\nwrap back round\nto the start of the array\n(or if they're negative indices,\nthey wrap back round\nto the end of the array).\n\n## What's it useful for?\n\nIf you want a fixed-length buffer\nfor streamed I/O,\nHoopy can do that for you.\n\n## How do I install it?\n\nVia `npm`:\n\n```\nnpm i hoopy --save\n```\n\nOr if you just want the git repo:\n\n```\ngit clone git@gitlab.com:philbooth/hoopy.git\n```\n\n## How do I use it?\n\n### Loading the library\n\n```js\nconst Hoopy = require('hoopy');\n```\n\n### Creating arrays\n\n```js\nconst hoopy = new Hoopy(10);\nassert(Array.isArray(hoopy));\n```\n\nYou must pass\na `size` argument\nto the `Hoopy` constructor,\notherwise it will throw.\n\n### Accessing array items\n\n```js\nfor (let i = 0; i < hoopy.length; ++i) {\n  hoopy[i] = i;\n  console.log(hoopy[i]);\n}\n```\n\nYou can read and write array items\nusing square brackets for indexing\nas you would with a normal array.\nHowever, if you write to\nan out-of-bounds index,\nit will not increase\nthe length of the array.\nInstead the index is applied\nmodulo the array length,\nwrapping back round to the start.\nNegative indices work in reverse,\nwrapping back round to the end\nof the array.\n\nThe methods\n`push`, `pop`, `shift` and `unshift`\nwill throw if called.\nFuture versions of the library\nmay implement sane behaviour\nfor them.\nAll of the other `Array` methods\nwork normally.\n\n### Growing the array\n\n```js\nhoopy.grow(50);\n```\n\nThe `grow` method\nadds items to the array.\nIt takes one argument,\nwhich is the number\nof items to grow the array by.\nThe new length of the array\nwill be the old length\nplus the number you pass to `grow`.\n\nIf the current state of the array\nincludes overflowed indices,\n`grow` will take care\nto move those items\nin to the freshly-created\navailable space,\nso that the correct order is maintained\nfor your data.\n\nThe caller is responsible\nfor ensuring they don't overwrite\nunprocessed items.\nIf you need to increase\nthe size of the array,\nyou must call `grow`.\n\n## Is there a change log?\n\n[Yes](CHANGELOG.md).\n\n## How do I set up the dev environment?\n\nTo install the dependencies:\n\n```\nnpm i\n```\n\nTo run the tests:\n\n```\nnpm t\n```\n\nTo lint the code:\n\n```\nnpm run lint\n```\n\n## What license is it released under?\n\n[MIT](LICENSE)."
}