{
	"name": "flatstr",
	"versions": {
		"1.0.0": {
			"name": "flatstr",
			"version": "1.0.0",
			"description": "Flattens the underlying C structures of a concatenated JavaScript string",
			"main": "index.js",
			"tags": [
				"perf",
				"performance",
				"strings",
				"concatenation"
			],
			"author": {
				"name": "David Mark Clements"
			},
			"license": "MIT",
			"repository": {
				"type": "git",
				"url": "git+https://github.com/davidmarkclements/flatstr.git"
			},
			"bugs": {
				"url": "https://github.com/davidmarkclements/flatstr/issues"
			},
			"homepage": "https://github.com/davidmarkclements/flatstr#readme",
			"gitHead": "69334f571c6dc9f4f2142e1440e9e8c53643dcd3",
			"_id": "flatstr@1.0.0",
			"scripts": {},
			"_shasum": "2b703c6c6c3ca018c84d6c81cabb621e6a17fd43",
			"_from": ".",
			"_npmVersion": "2.14.17",
			"_nodeVersion": "5.10.0",
			"_npmUser": {
				"name": "davidmarkclements",
				"email": "huperekchuno@googlemail.com"
			},
			"dist": {
				"shasum": "2b703c6c6c3ca018c84d6c81cabb621e6a17fd43",
				"tarball": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.0.tgz"
			},
			"maintainers": [
				{
					"name": "davidmarkclements",
					"email": "huperekchuno@googlemail.com"
				}
			],
			"_npmOperationalInternal": {
				"host": "packages-12-west.internal.npmjs.com",
				"tmp": "tmp/flatstr-1.0.0.tgz_1459869376366_0.4935431149788201"
			},
			"directories": {},
			"contributors": []
		},
		"1.0.1": {
			"name": "flatstr",
			"version": "1.0.1",
			"description": "Flattens the underlying C structures of a concatenated JavaScript string",
			"main": "index.js",
			"tags": [
				"perf",
				"performance",
				"strings",
				"concatenation"
			],
			"author": {
				"name": "David Mark Clements"
			},
			"license": "MIT",
			"repository": {
				"type": "git",
				"url": "git+https://github.com/davidmarkclements/flatstr.git"
			},
			"bugs": {
				"url": "https://github.com/davidmarkclements/flatstr/issues"
			},
			"homepage": "https://github.com/davidmarkclements/flatstr#readme",
			"gitHead": "ab81316454a89fcfe6a8f1e4f616734cf55c9601",
			"_id": "flatstr@1.0.1",
			"scripts": {},
			"_shasum": "5813d9ca8a64e683fc6c6bca005ee8bfb48847ac",
			"_from": ".",
			"_npmVersion": "2.14.17",
			"_nodeVersion": "5.10.0",
			"_npmUser": {
				"name": "davidmarkclements",
				"email": "huperekchuno@googlemail.com"
			},
			"dist": {
				"shasum": "5813d9ca8a64e683fc6c6bca005ee8bfb48847ac",
				"tarball": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.1.tgz"
			},
			"maintainers": [
				{
					"name": "davidmarkclements",
					"email": "huperekchuno@googlemail.com"
				}
			],
			"_npmOperationalInternal": {
				"host": "packages-12-west.internal.npmjs.com",
				"tmp": "tmp/flatstr-1.0.1.tgz_1459871015547_0.8990604868158698"
			},
			"directories": {},
			"contributors": []
		},
		"1.0.2": {
			"name": "flatstr",
			"version": "1.0.2",
			"description": "Flattens the underlying C structures of a concatenated JavaScript string",
			"main": "index.js",
			"tags": [
				"perf",
				"performance",
				"strings",
				"concatenation"
			],
			"author": {
				"name": "David Mark Clements"
			},
			"license": "MIT",
			"repository": {
				"type": "git",
				"url": "git+https://github.com/davidmarkclements/flatstr.git"
			},
			"bugs": {
				"url": "https://github.com/davidmarkclements/flatstr/issues"
			},
			"homepage": "https://github.com/davidmarkclements/flatstr#readme",
			"gitHead": "ca8ee3d5fef77d99c96c4f52c816a8b510c27add",
			"_id": "flatstr@1.0.2",
			"scripts": {},
			"_shasum": "849a62755ee90472d4b1684b957defdd70385bc0",
			"_from": ".",
			"_npmVersion": "2.14.17",
			"_nodeVersion": "5.10.0",
			"_npmUser": {
				"name": "davidmarkclements",
				"email": "huperekchuno@googlemail.com"
			},
			"dist": {
				"shasum": "849a62755ee90472d4b1684b957defdd70385bc0",
				"tarball": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.2.tgz"
			},
			"maintainers": [
				{
					"name": "davidmarkclements",
					"email": "huperekchuno@googlemail.com"
				}
			],
			"_npmOperationalInternal": {
				"host": "packages-12-west.internal.npmjs.com",
				"tmp": "tmp/flatstr-1.0.2.tgz_1459871197654_0.0078103672713041306"
			},
			"directories": {},
			"contributors": []
		},
		"1.0.3": {
			"name": "flatstr",
			"version": "1.0.3",
			"description": "Flattens the underlying C structures of a concatenated JavaScript string",
			"main": "index.js",
			"tags": [
				"perf",
				"performance",
				"strings",
				"concatenation"
			],
			"author": {
				"name": "David Mark Clements"
			},
			"license": "MIT",
			"repository": {
				"type": "git",
				"url": "git+https://github.com/davidmarkclements/flatstr.git"
			},
			"bugs": {
				"url": "https://github.com/davidmarkclements/flatstr/issues"
			},
			"homepage": "https://github.com/davidmarkclements/flatstr#readme",
			"devDependencies": {
				"fastbench": "^1.0.1",
				"tap": "^5.7.0"
			},
			"gitHead": "c1189404be813e75a204aeab7b18fb1088d4a8cc",
			"_id": "flatstr@1.0.3",
			"scripts": {},
			"_shasum": "9fbcd36f4fb91822defaa1dae5dc2a98036245fc",
			"_from": ".",
			"_npmVersion": "2.14.17",
			"_nodeVersion": "5.10.1",
			"_npmUser": {
				"name": "davidmarkclements",
				"email": "huperekchuno@googlemail.com"
			},
			"dist": {
				"shasum": "9fbcd36f4fb91822defaa1dae5dc2a98036245fc",
				"tarball": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.3.tgz"
			},
			"maintainers": [
				{
					"name": "davidmarkclements",
					"email": "huperekchuno@googlemail.com"
				}
			],
			"_npmOperationalInternal": {
				"host": "packages-12-west.internal.npmjs.com",
				"tmp": "tmp/flatstr-1.0.3.tgz_1460041643425_0.9968406702391803"
			},
			"directories": {},
			"contributors": []
		},
		"1.0.4": {
			"name": "flatstr",
			"version": "1.0.4",
			"description": "Flattens the underlying C structures of a concatenated JavaScript string",
			"main": "index.js",
			"tags": [
				"perf",
				"performance",
				"strings",
				"concatenation"
			],
			"author": {
				"name": "David Mark Clements"
			},
			"license": "MIT",
			"repository": {
				"type": "git",
				"url": "git+https://github.com/davidmarkclements/flatstr.git"
			},
			"bugs": {
				"url": "https://github.com/davidmarkclements/flatstr/issues"
			},
			"homepage": "https://github.com/davidmarkclements/flatstr#readme",
			"devDependencies": {
				"fastbench": "^1.0.1",
				"tap": "^5.7.0"
			},
			"gitHead": "ee0f6e7565cc77bdafb54365f99f06d81ed62bb3",
			"_id": "flatstr@1.0.4",
			"scripts": {},
			"_shasum": "b4477b7cb3377f2b63b0ede78824eb5f99ffcd74",
			"_from": ".",
			"_npmVersion": "2.14.17",
			"_nodeVersion": "6.7.0",
			"_npmUser": {
				"name": "davidmarkclements",
				"email": "huperekchuno@googlemail.com"
			},
			"dist": {
				"shasum": "b4477b7cb3377f2b63b0ede78824eb5f99ffcd74",
				"tarball": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.4.tgz"
			},
			"maintainers": [
				{
					"name": "davidmarkclements",
					"email": "huperekchuno@googlemail.com"
				}
			],
			"_npmOperationalInternal": {
				"host": "packages-16-east.internal.npmjs.com",
				"tmp": "tmp/flatstr-1.0.4.tgz_1476462534121_0.5909883773420006"
			},
			"directories": {},
			"contributors": []
		},
		"1.0.5": {
			"name": "flatstr",
			"version": "1.0.5",
			"description": "Flattens the underlying C structures of a concatenated JavaScript string",
			"main": "index.js",
			"tags": [
				"perf",
				"performance",
				"strings",
				"concatenation"
			],
			"author": {
				"name": "David Mark Clements"
			},
			"license": "MIT",
			"repository": {
				"type": "git",
				"url": "git+https://github.com/davidmarkclements/flatstr.git"
			},
			"bugs": {
				"url": "https://github.com/davidmarkclements/flatstr/issues"
			},
			"homepage": "https://github.com/davidmarkclements/flatstr#readme",
			"devDependencies": {
				"fastbench": "^1.0.1",
				"tap": "^5.7.0"
			},
			"gitHead": "1e1354c85c4a3bf37aafb9c20183d9bc9cf47969",
			"_id": "flatstr@1.0.5",
			"scripts": {},
			"_shasum": "5b451b08cbd48e2eac54a2bbe0bf46165aa14be3",
			"_from": ".",
			"_npmVersion": "3.10.10",
			"_nodeVersion": "6.10.2",
			"_npmUser": {
				"name": "davidmarkclements",
				"email": "huperekchuno@googlemail.com"
			},
			"dist": {
				"shasum": "5b451b08cbd48e2eac54a2bbe0bf46165aa14be3",
				"tarball": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.5.tgz"
			},
			"maintainers": [
				{
					"name": "davidmarkclements",
					"email": "huperekchuno@googlemail.com"
				}
			],
			"_npmOperationalInternal": {
				"host": "packages-12-west.internal.npmjs.com",
				"tmp": "tmp/flatstr-1.0.5.tgz_1491915948643_0.30509605444967747"
			},
			"directories": {},
			"contributors": []
		},
		"1.0.6": {
			"name": "flatstr",
			"version": "1.0.6",
			"description": "Flattens the underlying C structures of a concatenated JavaScript string",
			"main": "index.js",
			"tags": [
				"perf",
				"performance",
				"strings",
				"concatenation"
			],
			"author": {
				"name": "David Mark Clements"
			},
			"license": "MIT",
			"repository": {
				"type": "git",
				"url": "git+https://github.com/davidmarkclements/flatstr.git"
			},
			"bugs": {
				"url": "https://github.com/davidmarkclements/flatstr/issues"
			},
			"homepage": "https://github.com/davidmarkclements/flatstr#readme",
			"devDependencies": {
				"fastbench": "^1.0.1",
				"tap": "^5.7.0"
			},
			"gitHead": "27437e19282a12da13350726b8ecb931a00a8a00",
			"_id": "flatstr@1.0.6",
			"_npmVersion": "5.6.0",
			"_nodeVersion": "8.11.2",
			"_npmUser": {
				"name": "davidmarkclements",
				"email": "huperekchuno@googlemail.com"
			},
			"dist": {
				"integrity": "sha512-uF0w6wwT1CoMe5Zcr+3HPr4R14aJ9zWjWaD/h+yWoAsLJCtoaTgpviLiFfJuOQJVz0zBacmQ6aNXTyLhygYvzQ==",
				"shasum": "14cd86c1ff72f6be8e461825a904d55351764522",
				"tarball": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.6.tgz",
				"fileCount": 6,
				"unpackedSize": 11988,
				"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDUsJCRA9TVsSAnZWagAAuF0P/A/nDaQSXVw5alBOJhrN\nu9JFwtnpaydBJMUzlcuQaod7pstuFbaDnyr4KBBtg1gs1LrHT0yCuQ2TsdVu\nU1vTBw27liF+4jl6Tua/z6OMmJYXLUBGqWrKbCpLehjKuFcKtmx1VmMKQshQ\nvtNNMT5o7RVmm1qvPVk32xWxNgI8QxFL4xyMgNbPlhbCmDhcBuHfx6xZXiyt\nbB0s216w4wNvJuMqbGLYKEZiJ8f6dIaBRfQsXuAzhZHYdfjXAUY4O/qgOpHP\nMsDK7q/nXQ2JZa1h/qQJSK9pZxmWMYJA1jhG//otkKC58QpxQWX+FER/yH9s\npEt4+dzHbJ+u8S+zpYLQdqcRH9aCxNecgQ7neTyKh2ICa5aOYawjOyxxDvHS\n3eESrdkcXu4k6e/p77ZlZMpb70ER9cZMUIAA84IZ56hU/RiOBOXfSkn5FVJi\n8TiSEIEbC00O/y6e6YFDYYQTIV2sBOZ11BEYeu4A45/bXLJzg28OZ9L41kyb\nk4l9uI3HA+KSHNdis+UwAeyAR2YZyas2mMcj/izo6nLtKlLMEXbT7utUuucP\npeqdGpr/kTTa4hiqrXpd6x3H9WdtOSk0m8SFjQBbw/NbIb6F5sIaMj2c80tZ\nJR6Mw44hRXIRE0UCN4a2VOuUPz+LPLwG6Y0NkMRZJRNnCeurd4MwLHSzFrHD\n1fSW\r\n=So4o\r\n-----END PGP SIGNATURE-----\r\n"
			},
			"maintainers": [
				{
					"name": "davidmarkclements",
					"email": "huperekchuno@googlemail.com"
				}
			],
			"directories": {},
			"_npmOperationalInternal": {
				"host": "s3://npm-registry-packages",
				"tmp": "tmp/flatstr_1.0.6_1527597832869_0.9516504608612288"
			},
			"_hasShrinkwrap": false,
			"contributors": []
		},
		"1.0.7": {
			"name": "flatstr",
			"version": "1.0.7",
			"description": "Flattens the underlying C structures of a concatenated JavaScript string",
			"main": "index.js",
			"tags": [
				"perf",
				"performance",
				"strings",
				"concatenation"
			],
			"author": {
				"name": "David Mark Clements"
			},
			"license": "MIT",
			"repository": {
				"type": "git",
				"url": "git+https://github.com/davidmarkclements/flatstr.git"
			},
			"bugs": {
				"url": "https://github.com/davidmarkclements/flatstr/issues"
			},
			"homepage": "https://github.com/davidmarkclements/flatstr#readme",
			"devDependencies": {
				"fastbench": "^1.0.1",
				"tap": "^5.7.0"
			},
			"gitHead": "bae1b79375f5e3b2367058d73933668b151dead5",
			"_id": "flatstr@1.0.7",
			"_npmVersion": "5.6.0",
			"_nodeVersion": "8.11.2",
			"_npmUser": {
				"name": "davidmarkclements",
				"email": "huperekchuno@googlemail.com"
			},
			"dist": {
				"integrity": "sha512-MCAOMQ954UKd4t759o9XzpuqF4y8/NP5fusunpfGuvyVHmiwD+FrjXE31RfE/2khtLA4xL8GsSYtYIkVAseomA==",
				"shasum": "d03c06eff11b5a56270bdbdb2d4516161c3f00b6",
				"tarball": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.7.tgz",
				"fileCount": 6,
				"unpackedSize": 12044,
				"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDvW3CRA9TVsSAnZWagAAkkwP/iCC5qz4jS2yjIdDX3Uo\nMa9DZyWRK9f+5fcqDz4rsaq4oflqP9gseWtAwgQMAUjHxR2hnsRoPqqtOXxE\ndtBvdLj8kyZYKdrhYiepZpOf41QjFCHPLIg7nZRaSzduOHjJKPSftJXF2LEc\nkSyLZd7XaqVUy12WlipKNv8T4HhXGkJP9nfOEKsAApUEGwa8IHiBQB2a6Tsb\nCRtpGWPKUMOfHNCRQ1BFa/3N1dtXdvh24NGGNMdIjJmf8u+T/feJEoAayn/V\nkn5zr/1kwuPlny2Izz1VkxXINoA7E0Ic+7I/ig9k1Qmm5jCSgG2+/5sUv/J/\nR9r37NXDnxlXsPLuiDXiRnFQpXvePjGq8Wr/56k2vUzST/u5Fklpxg0OCbLN\noBjDsj8AcxXaTlWHGGJK+qMEvd/PO3nk0RWzC4A3QorSBOCro/pYOelSKg+S\noU/uzEvtljiTtl+9MnxsNIB6OL9B4yWAUqCeI0qdCal7ZQJFCkcTmV3xv4im\nYD4EOTofPeUFspw0hiMZAaqT68BNtbmR7oc/WMmkyB8sfCwZIIpVIyENRaik\n/VbkhVGOeorNW5jUrdajCL7BkaDz474SSUYEbl88eaAjEJPny6YHhmhW7enT\nKukLa3Kdbd+2p4vwFA2G5AbhktihfL6YgAPCrwN1UC9mU4qfvufhM0w7rtY0\nZSke\r\n=iwb7\r\n-----END PGP SIGNATURE-----\r\n"
			},
			"maintainers": [
				{
					"name": "davidmarkclements",
					"email": "huperekchuno@googlemail.com"
				}
			],
			"directories": {},
			"_npmOperationalInternal": {
				"host": "s3://npm-registry-packages",
				"tmp": "tmp/flatstr_1.0.7_1527707062935_0.111920477092883"
			},
			"_hasShrinkwrap": false,
			"contributors": []
		},
		"1.0.8": {
			"name": "flatstr",
			"version": "1.0.8",
			"description": "Flattens the underlying C structures of a concatenated JavaScript string",
			"main": "index.js",
			"browser": {
				"v8": "./v8"
			},
			"tags": [
				"perf",
				"performance",
				"strings",
				"concatenation"
			],
			"author": {
				"name": "David Mark Clements"
			},
			"license": "MIT",
			"repository": {
				"type": "git",
				"url": "git+https://github.com/davidmarkclements/flatstr.git"
			},
			"bugs": {
				"url": "https://github.com/davidmarkclements/flatstr/issues"
			},
			"homepage": "https://github.com/davidmarkclements/flatstr#readme",
			"devDependencies": {
				"fastbench": "^1.0.1",
				"tap": "^12.0.1"
			},
			"dependencies": {},
			"gitHead": "4be9470862a41cf78f0a88570f24c4c34bb92255",
			"_id": "flatstr@1.0.8",
			"_npmVersion": "6.1.0",
			"_nodeVersion": "10.3.0",
			"_npmUser": {
				"name": "davidmarkclements",
				"email": "huperekchuno@googlemail.com"
			},
			"dist": {
				"integrity": "sha512-YXblbv/vc1zuVVUtnKl1hPqqk7TalZCppnKE7Pr8FI/Rp48vzckS/4SJ4Y9O9RNiI82Vcw/FydmtqdQOg1Dpqw==",
				"shasum": "0e849229751f2b9f6a0919f8e81e1229e84ba901",
				"tarball": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.8.tgz",
				"fileCount": 7,
				"unpackedSize": 12758,
				"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbEDKYCRA9TVsSAnZWagAAu5MP/iRFtzyaMxu2N+swNyOB\nxUPs3MCs+jXDzXX38SGcBSqJJw3jyrelWSD4k4RFzumJSKqcQbHkJmMNBjMv\nGxxv3CqClTIGdusr3C73QvG7/wCysFTnOfTE4Q63ngCv8anb8H+4+dwUXIdx\nCiY5afA3amak779hApCgZ/UQXPbjbgkmyu5tFF6FkY2Sod3vV5u6vi8XJJjr\nM7Bd9SQwxoVa26iuJURh5/I40yTkZY4cumxMYd7vdYC41eC7o4QxolLqlROg\n1Sb+vRB0eP/P0iStVBl7qfuMI03CfPI2zWDldI+jpWTKT5KImyVAvN3SsdBE\nW8vnWQPNBz5QEZ7Cdl6JL90ca3oPYHXoCTtdc9aqeA7irtCmslk7GwCyoEGt\nHZ/pUh4ZVNj0savY4BMTZUIFeHmSKl0gt1OksA+TWR6ncFYE0cmv+wnukMIJ\nw4Xmgu6iAIr10UuzSM4IS59o1b50+1IfmyTb1Djy8ugSoUMA+QXl/n7axO2f\nnNL6tt4T/X5TwPiB3oKB9adTEzRHcHcj8MNGKjdpNmdqNOXo3OpJHl86JK6U\no6Z5JejVyLIEybesPe4zAIR6q5YYaSCt+ede9A4882yEBLXTSMeEbFOmMIDH\nczT4NZG1cZ37AeSkDEOTqHOop3u7t5im2MYb3gQDlxvaf5zpqeWwRmRweKVw\nI553\r\n=2JJ6\r\n-----END PGP SIGNATURE-----\r\n"
			},
			"maintainers": [
				{
					"name": "davidmarkclements",
					"email": "huperekchuno@googlemail.com"
				}
			],
			"directories": {},
			"_npmOperationalInternal": {
				"host": "s3://npm-registry-packages",
				"tmp": "tmp/flatstr_1.0.8_1527788183245_0.2323280324361292"
			},
			"_hasShrinkwrap": false,
			"contributors": []
		},
		"1.0.9": {
			"name": "flatstr",
			"version": "1.0.9",
			"description": "Flattens the underlying C structures of a concatenated JavaScript string",
			"main": "index.js",
			"browser": {
				"v8": "./v8"
			},
			"tags": [
				"perf",
				"performance",
				"strings",
				"concatenation"
			],
			"author": {
				"name": "David Mark Clements"
			},
			"license": "MIT",
			"repository": {
				"type": "git",
				"url": "git+https://github.com/davidmarkclements/flatstr.git"
			},
			"bugs": {
				"url": "https://github.com/davidmarkclements/flatstr/issues"
			},
			"homepage": "https://github.com/davidmarkclements/flatstr#readme",
			"devDependencies": {
				"fastbench": "^1.0.1",
				"tap": "^12.0.1"
			},
			"dependencies": {},
			"gitHead": "15e6e6de8807f1722be224705d2fd55bb7bb3410",
			"_id": "flatstr@1.0.9",
			"_npmVersion": "6.4.1",
			"_nodeVersion": "8.13.0",
			"_npmUser": {
				"name": "davidmarkclements",
				"email": "huperekchuno@googlemail.com"
			},
			"dist": {
				"integrity": "sha512-qFlJnOBWDfIaunF54/lBqNKmXOI0HqNhu+mHkLmbaBXlS71PUd9OjFOdyevHt/aHoHB1+eW7eKHgRKOG5aHSpw==",
				"shasum": "0950d56fec02de1030c1311847ecd58c25690eb9",
				"tarball": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.9.tgz",
				"fileCount": 7,
				"unpackedSize": 12757,
				"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcBrIICRA9TVsSAnZWagAAZ/0P/0jFyqKK3AXSIfEWMa4f\nSFr6QK1H+LQSLz8yNlraJz6vK8Gs2zbqQnKoBF/M0Uekm5tZOXiatU2lEgpG\nLiY5pTJpiOf9dPjpLgb5K/rh67oZlgoZVzVL2PynOZAuCdNd8bWoO4+f65Nj\n4F+zbNcHD2aLGyU3LXoTWB9okjbNeR+HuFTzxbODl38Ca8Oss1gI6I/Vqf/1\nvvm3QbCdkIzmBS4zNOBYqQErsLprTBLA2l/cWjeBNrRy0pwy5xaI9G6jB2s1\nQspS4Yo12EM2tqvuCNHNFAd41ETmWANynvSn8DI8Ei4kUBe2NL7ql9/nolyu\nsMOpbKLZ6mAFWkjiYQ6rFKsO2ttYtd9/qo1jx/v3BZnCnzM6GS4GW0HXzfDh\ncRuiprUZRgs7xwQmj4mUBNnoqM8hbhv1ySB+S/vbJt0fg2V729bpFCU+rrUe\nong824wL6emrYvPBoA+lS+MdmWbypErEJGq4hjb+zsY2YV5Cqx2EMZ0b1pDJ\n3A+1Kzpx7SfuPaUjhFyc3rWHvaE39LxYkBc+eSAuR1UW8CMYZXY0poxURq+1\nh8VK6m1aeT0MiUDvGtBU4Fvp0KjyuGubn5YEoWWE1eSjsYK1IpN+8WXEEuPA\nHB3gcMEuZd9ZPzVRQakemmzqxgqZV5Vh4Fn1iz20iSEKnkEOIqT47NC66Ukj\nav2c\r\n=Kr6v\r\n-----END PGP SIGNATURE-----\r\n"
			},
			"maintainers": [
				{
					"name": "davidmarkclements",
					"email": "huperekchuno@googlemail.com"
				}
			],
			"directories": {},
			"_npmOperationalInternal": {
				"host": "s3://npm-registry-packages",
				"tmp": "tmp/flatstr_1.0.9_1543942663636_0.26183339731580624"
			},
			"_hasShrinkwrap": false,
			"contributors": []
		},
		"1.0.10": {
			"name": "flatstr",
			"version": "1.0.10",
			"description": "Flattens the underlying C structures of a concatenated JavaScript string",
			"main": "index.js",
			"browser": {
				"v8": "./v8"
			},
			"tags": [
				"perf",
				"performance",
				"strings",
				"concatenation"
			],
			"author": {
				"name": "David Mark Clements"
			},
			"license": "MIT",
			"repository": {
				"type": "git",
				"url": "git+https://github.com/davidmarkclements/flatstr.git"
			},
			"bugs": {
				"url": "https://github.com/davidmarkclements/flatstr/issues"
			},
			"homepage": "https://github.com/davidmarkclements/flatstr#readme",
			"devDependencies": {
				"fastbench": "^1.0.1",
				"tap": "^12.0.1"
			},
			"dependencies": {},
			"gitHead": "77e381f5c423494506589924388fb543348f8604",
			"_id": "flatstr@1.0.10",
			"_nodeVersion": "12.0.0",
			"_npmVersion": "6.9.0",
			"dist": {
				"integrity": "sha512-r9A/hdaN0stt3gXsc0cdErh9takan11Pb/1MUZlToRxHrG7KycjGf5K5nNvToJB+YGR45bYrVHk0dnNWBIoCyA==",
				"shasum": "bd4488f80cbd8ae9e9101b373e65e73b134770ce",
				"tarball": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.10.tgz",
				"fileCount": 7,
				"unpackedSize": 12794,
				"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyKLUCRA9TVsSAnZWagAAHW8QAIB1xU4nBIj1d66WJMGA\nkHm8mboFM03vYIqFVnR/Vkf+Pu8VkDDOPuE5DSH/Z6xVm1tur47Bh6Fxlg/R\nKP4gZ4FVtc9Bu5YygZ9cQ8Xl03JVRS6oU0YOX7zryrgMaWiR8qVpeAVqzcLC\n7ceXEhcSEGx16ZzLWSmjIBnRZKOR8SmPX52dBtaVYomas0aWG9LnLE+VFKjy\n6gSIDzeRoc0NYhopmlFnSSMI06rVi1bRJha9yiajAQwqGxoFAbwyQxDEkMm8\nOUNXUYlFOmKsqN3RltN3x4zZ9kl4Qy7Y2mZmhSo6nFZHnrOhNJUuolktp615\nVpNuczRymJAtdpwue26lRudAdezPw5KE7m1XhG+SLpuXq8oZVvPs3gElB6YH\nRHEyHphuN1RUOji2XbjWn28m1p1b+Y0TJrcyADc5jB9bnXFBrmkwQMxPAxMl\ncgI89LkOXGasRosnMkpsPBgpB1Zru7Q7yHsJs1ICWX5a1O2pvGrqkqyK820Q\nZOodoP+OXgXiGGuM3qJ9bOBZqiOinbO5cPcd3ufnRLvWc7nxuG6CDJnzWlmm\nkznKaGkGvCgJZShsoerhbAFqzhbNBB83udZBtz8A6hFoizBKMwX+N45HhR9E\nr7DwzeToVlfaX/yLNofHQLwZlNDgXPhYUlEDFVi+tsguT+Y892qVytm16g9h\nx+0w\r\n=xBKV\r\n-----END PGP SIGNATURE-----\r\n"
			},
			"maintainers": [
				{
					"name": "davidmarkclements",
					"email": "huperekchuno@googlemail.com"
				}
			],
			"_npmUser": {
				"name": "davidmarkclements",
				"email": "huperekchuno@googlemail.com"
			},
			"directories": {},
			"_npmOperationalInternal": {
				"host": "s3://npm-registry-packages",
				"tmp": "tmp/flatstr_1.0.10_1556652755603_0.6403811739411776"
			},
			"_hasShrinkwrap": false,
			"contributors": []
		},
		"1.0.11": {
			"name": "flatstr",
			"version": "1.0.11",
			"description": "Flattens the underlying C structures of a concatenated JavaScript string",
			"main": "index.js",
			"browser": {
				"v8": "./v8"
			},
			"tags": [
				"perf",
				"performance",
				"strings",
				"concatenation"
			],
			"author": {
				"name": "David Mark Clements"
			},
			"license": "MIT",
			"repository": {
				"type": "git",
				"url": "git+https://github.com/davidmarkclements/flatstr.git"
			},
			"bugs": {
				"url": "https://github.com/davidmarkclements/flatstr/issues"
			},
			"homepage": "https://github.com/davidmarkclements/flatstr#readme",
			"devDependencies": {
				"fastbench": "^1.0.1",
				"tap": "^12.0.1"
			},
			"dependencies": {},
			"gitHead": "1b63eebba9e88c7d21d1643055e22aa830b3e12b",
			"_id": "flatstr@1.0.11",
			"_npmVersion": "6.4.1",
			"_nodeVersion": "10.15.3",
			"_npmUser": {
				"name": "davidmarkclements",
				"email": "huperekchuno@googlemail.com"
			},
			"dist": {
				"integrity": "sha512-CrkRmL8HgArqohPW5udNdtVae+fj5tvJdHwoo91m5OvaLk1a4lqa0R4/aPUO2zbVEnIrk+i5uTVNbSxaR1dQkQ==",
				"shasum": "e4215663ccb8a135a549a1d29c543f05e928e785",
				"tarball": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.11.tgz",
				"fileCount": 7,
				"unpackedSize": 13100,
				"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0HlVCRA9TVsSAnZWagAAbroP/RSpbkYf8B3cV6bt3CIy\nw7EFS/z4FpW0ClpR5jJGxvpuGSkGp+QrABdNuCFIkSV9j+lWsXprXqXNG+Py\nsQsqT/yzvGsHR78n/f9m8k8/qnK0JInU7zrVl16KYyHj6uGv+mPRjuJZFr4m\nAAeNjXD17Ar5Uk4NkkBwbk2Ns57igsBcSRfpIHVzv3DBRYFB7JUgfPOd8yLO\nZiGiz/gjslR8HfOLJIwPhrO8q97uQm0gj00AdVLcdLgB6gdnw9Xb5K+W1zRm\nOuQGXBXzSWlQq0WZiW0UZ4u5kw2A7HJ0Xx4UUOOxJAIYPYl9KksCd7sQZExa\nByqBxQlIUaX2VO/MxStR7qf1O8FQG5MjQGZNeZGF0YrfvPLyj1TY22ZfUENT\njQke3uxq4yYo9p93mhNCYss5Wy/oH5zSPPhgwCXxru86CS0ECorzdBklYfgn\no1qIt3krvLJL4qX3xcN7S+GIwEaphEhc9Ls9EWy7RZR7hFmxOt2ioTP0QY7v\n6yk3pWN0dUPxNbPIvbKwwWkM46WsB4JTxdwVQAjg02W4n9MFhBalS2JakHsv\nHVrkvyQouIh1r37C7wfrjzqevnod7AwP7rrm25XEBkDt/ycERgX35tOQcEXY\n2yHK6TwK4m8GuTpTaFlKGREK39PgxboKPw4YQkornpd6gg5EQSSuNW+UjlAI\ns8QE\r\n=xe5Y\r\n-----END PGP SIGNATURE-----\r\n"
			},
			"maintainers": [
				{
					"name": "davidmarkclements",
					"email": "huperekchuno@googlemail.com"
				}
			],
			"directories": {},
			"_npmOperationalInternal": {
				"host": "s3://npm-registry-packages",
				"tmp": "tmp/flatstr_1.0.11_1557166420433_0.192649142564983"
			},
			"_hasShrinkwrap": false,
			"contributors": []
		},
		"1.0.12": {
			"name": "flatstr",
			"version": "1.0.12",
			"description": "Flattens the underlying C structures of a concatenated JavaScript string",
			"main": "index.js",
			"browser": {
				"v8": "./v8"
			},
			"tags": [
				"perf",
				"performance",
				"strings",
				"concatenation"
			],
			"author": {
				"name": "David Mark Clements"
			},
			"license": "MIT",
			"repository": {
				"type": "git",
				"url": "git+https://github.com/davidmarkclements/flatstr.git"
			},
			"bugs": {
				"url": "https://github.com/davidmarkclements/flatstr/issues"
			},
			"homepage": "https://github.com/davidmarkclements/flatstr#readme",
			"devDependencies": {
				"fastbench": "^1.0.1",
				"tap": "^12.0.1"
			},
			"dependencies": {},
			"gitHead": "94d5343a6197cdedf90fe7fbcf6dff2b80e0d550",
			"_id": "flatstr@1.0.12",
			"_npmVersion": "6.4.1",
			"_nodeVersion": "8.16.0",
			"_npmUser": {
				"name": "davidmarkclements",
				"email": "huperekchuno@googlemail.com"
			},
			"dist": {
				"integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==",
				"shasum": "c2ba6a08173edbb6c9640e3055b95e287ceb5931",
				"tarball": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz",
				"fileCount": 7,
				"unpackedSize": 12621,
				"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3XtXCRA9TVsSAnZWagAAhe0QAIqacgXTGO1H16bRJ4nx\nKd+8IiK8qVA3llZrR58rwTZb16Vg6u+o4NsVWAkMM1beW7K5rZm+aw6qguY5\n+nNr9nbviH3BBpEKToRkZVurUTXbkFeAkGOgOBLAZh8HDa4R9SIfhJYmQxCp\nbhBP1Tv9IIW19mhZoD3N9s6ZsYQPjJMOX14d7TriDtHslUeGy6ykaGBuOsnk\nfYwbyci6I4nK9Sylf9nL3igHv+bU7bs0QRUr9469n62HRLBURBCTJ73ECY1R\n1a9AD4ssAobInBjbj0dYO//uFW0fKd2twENghZTw9KB9NtJn0Sbl0qkOSoIH\nw9mg2niUEWs+fW+ME9827bER+Jsugs+RQBTD57CECDq/4w0fEpjG8XoLGmmK\nkQoSe4xy4c9YXMx+7P/Wz5e1fG/6lulxJBaIapBd2sutLd+lO+jyi+d64SuN\nFPr+CnmwKbQF30dMjXjSzlVe6Ddx5MHheDJb+8760JCP6AagXyC3IVWfvU8r\n1bYp/T0V8ernZDl/D8/GxlChmQ+0HVrqUM0ZdmBKLIti4Y8vXZigMnRdKr+y\neisgd4lxkJgsUrPyrMe9LteRHDrzKoctdHEdaf3iKo4wVRKPx5JZjw8Sn8Zy\nOTv+ak18PGcQIv6QtL4iHm1kdMLL19IlboSIQCgdFseRwKgycFnz9R6EE1B/\nMafA\r\n=xnxw\r\n-----END PGP SIGNATURE-----\r\n"
			},
			"maintainers": [
				{
					"name": "davidmarkclements",
					"email": "huperekchuno@googlemail.com"
				}
			],
			"directories": {},
			"_npmOperationalInternal": {
				"host": "s3://npm-registry-packages",
				"tmp": "tmp/flatstr_1.0.12_1558018903217_0.42734417925496127"
			},
			"_hasShrinkwrap": false,
			"contributors": []
		}
	},
	"time": {
		"modified": "2019-05-16T15:01:46.250Z",
		"created": "2016-04-05T15:16:18.550Z",
		"1.0.0": "2016-04-05T15:16:18.550Z",
		"1.0.1": "2016-04-05T15:43:37.996Z",
		"1.0.2": "2016-04-05T15:46:40.360Z",
		"1.0.3": "2016-04-07T15:07:25.680Z",
		"1.0.4": "2016-10-14T16:28:55.310Z",
		"1.0.5": "2017-04-11T13:05:50.629Z",
		"1.0.6": "2018-05-29T12:43:52.927Z",
		"1.0.7": "2018-05-30T19:04:23.008Z",
		"1.0.8": "2018-05-31T17:36:23.371Z",
		"1.0.9": "2018-12-04T16:57:43.756Z",
		"1.0.10": "2019-04-30T19:32:35.719Z",
		"1.0.11": "2019-05-06T18:13:40.561Z",
		"1.0.12": "2019-05-16T15:01:43.314Z"
	},
	"users": {},
	"dist-tags": {
		"latest": "1.0.12"
	},
	"_uplinks": {
		"npmjs": {
			"etag": "W/\"25ceb587049d9edb8621318466a06181\"",
			"fetched": 1600679305028
		}
	},
	"_distfiles": {
		"flatstr-1.0.0.tgz": {
			"url": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.0.tgz",
			"sha": "2b703c6c6c3ca018c84d6c81cabb621e6a17fd43",
			"registry": "npmjs"
		},
		"flatstr-1.0.1.tgz": {
			"url": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.1.tgz",
			"sha": "5813d9ca8a64e683fc6c6bca005ee8bfb48847ac",
			"registry": "npmjs"
		},
		"flatstr-1.0.2.tgz": {
			"url": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.2.tgz",
			"sha": "849a62755ee90472d4b1684b957defdd70385bc0",
			"registry": "npmjs"
		},
		"flatstr-1.0.3.tgz": {
			"url": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.3.tgz",
			"sha": "9fbcd36f4fb91822defaa1dae5dc2a98036245fc",
			"registry": "npmjs"
		},
		"flatstr-1.0.4.tgz": {
			"url": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.4.tgz",
			"sha": "b4477b7cb3377f2b63b0ede78824eb5f99ffcd74",
			"registry": "npmjs"
		},
		"flatstr-1.0.5.tgz": {
			"url": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.5.tgz",
			"sha": "5b451b08cbd48e2eac54a2bbe0bf46165aa14be3",
			"registry": "npmjs"
		},
		"flatstr-1.0.6.tgz": {
			"url": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.6.tgz",
			"sha": "14cd86c1ff72f6be8e461825a904d55351764522",
			"registry": "npmjs"
		},
		"flatstr-1.0.7.tgz": {
			"url": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.7.tgz",
			"sha": "d03c06eff11b5a56270bdbdb2d4516161c3f00b6",
			"registry": "npmjs"
		},
		"flatstr-1.0.8.tgz": {
			"url": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.8.tgz",
			"sha": "0e849229751f2b9f6a0919f8e81e1229e84ba901",
			"registry": "npmjs"
		},
		"flatstr-1.0.9.tgz": {
			"url": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.9.tgz",
			"sha": "0950d56fec02de1030c1311847ecd58c25690eb9",
			"registry": "npmjs"
		},
		"flatstr-1.0.10.tgz": {
			"url": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.10.tgz",
			"sha": "bd4488f80cbd8ae9e9101b373e65e73b134770ce",
			"registry": "npmjs"
		},
		"flatstr-1.0.11.tgz": {
			"url": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.11.tgz",
			"sha": "e4215663ccb8a135a549a1d29c543f05e928e785",
			"registry": "npmjs"
		},
		"flatstr-1.0.12.tgz": {
			"url": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz",
			"sha": "c2ba6a08173edbb6c9640e3055b95e287ceb5931",
			"registry": "npmjs"
		}
	},
	"_attachments": {
		"flatstr-1.0.12.tgz": {
			"shasum": "c2ba6a08173edbb6c9640e3055b95e287ceb5931"
		}
	},
	"_rev": "2-9672e7604a2b7d15",
	"_id": "flatstr",
	"readme": "# flatstr\n\nFlattens the underlying C structures of a concatenated JavaScript string\n\n## About\n\nIf you're doing lots of string concatenation and then writing that\nstring somewhere, you may find that passing your string through \n`flatstr` vastly improves performance.\n\n## Usage\n\n```js\nvar flatstr = require('flatstr')\nflatstr(someHeavilyConcatenatedString)\n```\n\n## Benchmarks\n\nBenchmarks test flat vs non-flat strings being written to \nan `fs.WriteStream`.\n\n```\nunflattenedManySmallConcats*10000: 147.540ms\nflattenedManySmallConcats*10000: 105.994ms\nunflattenedSeveralLargeConcats*10000: 287.901ms\nflattenedSeveralLargeConcats*10000: 226.121ms\nunflattenedExponentialSmallConcats*10000: 410.533ms\nflattenedExponentialSmallConcats*10000: 219.973ms\nunflattenedExponentialLargeConcats*10000: 2774.230ms\nflattenedExponentialLargeConcats*10000: 1862.815ms\n```\n\nIn each case, flattened strings win, \nhere's the performance gains from using `flatstr`\n\n```\nManySmallConcats: 28%\nSeveralLargeConcats: 21% \nExponentialSmallConcats: 46%\nExponentialLargeConcats: 33%\n```\n\n## How does it work\n\nIn the v8 C++ layer, JavaScript strings can be represented in two ways. \n\n1. As an array\n2. As a tree\n\nWhen JavaScript strings are concatenated, tree structures are used\nto represent them. For the concat operation, this is cheaper than\nreallocating a larger array. However, performing other operations \non the tree structures can become costly (particularly where lots of\nconcatenation has occurred). \n\nV8 has a a method called `String::Flatten`which converts the tree into a C array. This method is typically called before operations that walk through the bytes of the string (for instance, when testing against a regular expression). It may also be called if a string is accessed many times over, \nas an optimization on the string. However, strings aren't always flattened. One example is when we pass a string into a `WriteStream`, at some point the string will be converted to a buffer, and this may be expensive if the underlying representation is a tree. \n\n`String::Flatten` is not exposed as a JavaScript function, but it can be triggered as a side effect. \n\nThere are several ways to indirectly call `String::Flatten` (see `alt-benchmark.js`), \nbut coercion to a number appears to be (one of) the cheapest.\n\nHowever since Node 10 the V8 version has stopped using Flatten in all \nplaces identified. Thus the code has been updated to seamlessly \nuse the native runtime function `%FlattenString` without having to use \nthe `--allow-natives-syntax` flag directly. \n\nOne final note: calling flatstr too much can in fact negatively effect performance. For instance, don't call it every time you concat (if that\nwas performant, v8 wouldn't be using trees in the first place). The best\nplace to use flatstr is just prior to passing it to an API that eventually\nruns non-v8 code (such as `fs.WriteStream`, or perhaps `xhr` or DOM apis in the browser). \n\n\n## Acknowledgements\n\n* Sponsored by nearForm\n\n## License\n\nMIT"
}