{"_id":"@bloomberg/record-tuple-polyfill","_rev":"6-979edbb7b697ce690f1b7246ed55ccbd","name":"@bloomberg/record-tuple-polyfill","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"@bloomberg/record-tuple-polyfill","version":"0.0.1","description":"A polyfill for the Record and Tuple Stage 2 ECMAScript proposal.","main":"lib/index.umd.js","module":"lib/index.esm.js","scripts":{"clean":"rm -rf ./lib"},"repository":{"type":"git","url":"git+https://github.com/bloomberg/record-tuple-polyfill.git"},"keywords":["record","tuple","record and tuple","polyfill","ecmascript"],"author":{"name":"Rick Button","email":"rbutton2@bloomberg.net"},"contributors":[{"name":"Robin Ricard","email":"rricard2@bloomberg.net"},{"name":"Nicolò Ribaudo","email":"nribaudo1@bloomberg.net"}],"license":"Apache-2.0","publishConfig":{"access":"public"},"bugs":{"url":"https://github.com/bloomberg/record-tuple-polyfill/issues"},"homepage":"https://github.com/bloomberg/record-tuple-polyfill#readme","_id":"@bloomberg/record-tuple-polyfill@0.0.1","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-WETlA0/zRd8PzEZIuSHJ08bZRMTkc0QRuUGvrnqvBsj4coWIBs4yuJPl2KvLSmiDNGuutnkvWP9EQ4gu/WRPwQ==","shasum":"1ec7e86b8cce728b351c5ecfe66c18413899e9a5","tarball":"https://registry.npmjs.org/@bloomberg/record-tuple-polyfill/-/record-tuple-polyfill-0.0.1.tgz","fileCount":3,"unpackedSize":56273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffda4CRA9TVsSAnZWagAAuUAP/R0Y2rgH3uNsArg/2LEZ\nBotFDU1CYtN3xdSX622vkPAEzVuRCkr3moDo/8Vjhb86srn0/m0Wfwo6EuXP\n/9+gXzsoeL8rCrLtFKOPJ562oaNhUrwwmXHhBJohg8AByP8WaWjt/pZeT4jp\n6CFWRQGeewcBVUod78hI0NW6C5K5pCHKnQJg1GgBBRTH2280nO7dV7cJkz0B\nhJmfYrmHniUOicoO8uzclUqOzcUdtpldxO7Fjk98YxleEfo3Mo3f/vTjEfNS\neRzDVn4roLCy+4DYXim/9Y9zbQX4J30fJadyHNwe/f47Pa8PPFndF0G1WMhA\nrGrlvHafLzowgOpXYkSRQaFiPa8gRBqvvAmV/HKYVJjcIE0D9ibmrjQGO6Jo\nHjpi9K8m5L8soE8VufTPtSqBreSN696H707CW2Zc3r+sCE2kU2UW+z/DsXQB\ninBeXXBsIoOlzffe9hKk8Zir1tslSzXGMlYdN3C0Tuu8fNslKsMQ5Zal9avB\nD6HeOeYsbS0YCYaxlOomvCPgZ4C05JnNEbzJIvctChckqg5q7YBSV3q5oPTu\nY+x9OQJi/d5CTJDQbJO+8FjVOpuiOfuJVKEuML1KpStC5YULCvLsMVtrXTMk\n5OX+WTX7y9H557ThZGOU7DkFhoJJOAfuBR+qU9I8fvWs8XljQHR5I9nd7FOu\nUqmn\r\n=PL8k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcRgAbIFsf0t5lFu76sQKMZ+xzdHxazLF13r9hz2Ny6wIhAKzMND9Uodra4RaBDmwsLXnBXFt0COAF9RVKrIMgeOPp"}]},"maintainers":[{"name":"bbgbuilder","email":"ossbuilder@bloomberg.net"},{"name":"bloomberg-oss","email":"opensource@bloomberg.net"},{"name":"kpfleming","email":"kevin@km6g.us"}],"_npmUser":{"name":"bbgbuilder","email":"ossbuilder@bloomberg.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/record-tuple-polyfill_0.0.1_1602082488437_0.2994603136315519"},"_hasShrinkwrap":false},"0.0.2":{"name":"@bloomberg/record-tuple-polyfill","version":"0.0.2","description":"A polyfill for the Record and Tuple Stage 2 ECMAScript proposal.","main":"lib/index.umd.js","module":"lib/index.esm.js","scripts":{"clean":"rm -rf ./lib"},"repository":{"type":"git","url":"git+https://github.com/bloomberg/record-tuple-polyfill.git"},"keywords":["record","tuple","record and tuple","polyfill","ecmascript"],"author":{"name":"Rick Button","email":"rbutton2@bloomberg.net"},"contributors":[{"name":"Robin Ricard","email":"rricard2@bloomberg.net"},{"name":"Nicolò Ribaudo","email":"nribaudo1@bloomberg.net"}],"license":"Apache-2.0","publishConfig":{"access":"public"},"bugs":{"url":"https://github.com/bloomberg/record-tuple-polyfill/issues"},"homepage":"https://github.com/bloomberg/record-tuple-polyfill#readme","_id":"@bloomberg/record-tuple-polyfill@0.0.2","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-VO0n7L4la4MGZGV8YqMKWBuFB7rn32AaNk/DO5XmP+qYYa4qIcRX3KpVhyREfuJjgDmyjFBV4F5Fg+Cf341pxw==","shasum":"129aff7fe790961e9996bfd31be286d2b77f9cc3","tarball":"https://registry.npmjs.org/@bloomberg/record-tuple-polyfill/-/record-tuple-polyfill-0.0.2.tgz","fileCount":4,"unpackedSize":59995,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffeEpCRA9TVsSAnZWagAA5uoQAI7q6JXnSosEwmoZV3k+\n0tElgYg8oY5mGMD6YXDRvL/cBxq+HrsnKfdRr5NF+D4PFliVQzFWYOl5X+2E\nE1yJfcVvucQ+XX1xuOav34g8IIHX0fV4YUV9/Hom5o6/BQoNYYX8ZWcyE/RI\nIya/t6CkteZ2bY+fmID1wNmwM+ljPHO+GseRzyZqrw13ZtDl5KuGXCLQKSL9\nTCEutGAqrHKixvYp5tZ80QdN6Gx6m0mc25qTlWbEWH+mSi2XbyPz+ZzO4EmJ\nmjXxX4mRv2hJSqDAbqlirp+rXHIRtXznSW1NKMXOrVGzxRQkkcexyFgvVHl0\nAsL3M99nyllBS8mu16+1QNUFNJpcjSFjnZoH7Nrahw9pQSxDgxXfTPDOCRSM\nj1ygn4ptBe0kcM10tNH4IEGw1t1pdP20mM219sKCRcMSpNXwmq8yY2DNX/8h\ntg1WSvEKtFsdzCJz8ufWCc5zbt65dsMTivn6j1UMIQNeedPjOV95RKhGG2qI\n/L6/Fq+Qou6DLa7W9nkBlr8vz30njrt6XXPzW4QVbcFy8hhhVsprLBd0eQTz\nO9ny0hI3DpaKkSc8BGtD5Jlh31JK+t+VUCzsJIf8uNVLqQu9w3NCrzmMiETf\n9WT8AkLPLpuz6zJy/nm+h/LFuPyaQMttWwJIhqxa63Qr71xGBAqr8xcBCV0w\nANrx\r\n=18MF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlEQghq6aTuBxfYYQMQvGG+SoAwnC/Ds4mZQyssmaIsgIgRXwPNEwKvjSLs/8Vp0tnosH09Y9oMrLeUOkZXDKYcno="}]},"maintainers":[{"name":"bbgbuilder","email":"ossbuilder@bloomberg.net"},{"name":"bloomberg-oss","email":"opensource@bloomberg.net"},{"name":"kpfleming","email":"kevin@km6g.us"}],"_npmUser":{"name":"bbgbuilder","email":"ossbuilder@bloomberg.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/record-tuple-polyfill_0.0.2_1602085160704_0.23131013051252025"},"_hasShrinkwrap":false},"0.0.3":{"name":"@bloomberg/record-tuple-polyfill","version":"0.0.3","description":"A polyfill for the Record and Tuple Stage 2 ECMAScript proposal.","main":"lib/index.umd.js","module":"lib/index.esm.js","scripts":{"clean":"rm -rf ./lib"},"repository":{"type":"git","url":"git+https://github.com/bloomberg/record-tuple-polyfill.git"},"keywords":["record","tuple","record and tuple","polyfill","ecmascript"],"author":{"name":"Rick Button","email":"rbutton2@bloomberg.net"},"contributors":[{"name":"Robin Ricard","email":"rricard2@bloomberg.net"},{"name":"Nicolò Ribaudo","email":"nribaudo1@bloomberg.net"}],"license":"Apache-2.0","publishConfig":{"access":"public"},"bugs":{"url":"https://github.com/bloomberg/record-tuple-polyfill/issues"},"homepage":"https://github.com/bloomberg/record-tuple-polyfill#readme","_id":"@bloomberg/record-tuple-polyfill@0.0.3","_nodeVersion":"15.0.1","_npmVersion":"7.0.3","dist":{"integrity":"sha512-sBnCqW0nqofE47mxFnw+lvx6kzsQstwaQMVkh66qm/A6IlsnH7WsyGuVXTou8RF2wL4W7ybOoHPvP2WgIo6rhQ==","shasum":"0b03d18b88a30894caab14abd669b1cbbf47b843","tarball":"https://registry.npmjs.org/@bloomberg/record-tuple-polyfill/-/record-tuple-polyfill-0.0.3.tgz","fileCount":4,"unpackedSize":61539,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoERgCRA9TVsSAnZWagAAZpMP/RpTRbaKAAevqCEHbxn4\n4ORMfgX5HbgIzHtj4FRuNWt7lv43DhXDdoPfrXCkJV3ODsw7fb2VlVzYvbdx\nBUEdVJEuc+qSKPAeOK3kE0Jzi0AVCkqidr5vpQ9QlVk5JUCituzi4HtwSJcr\nFTNqlHmF084cmi2FwPNENtLw/XD9rFJLox5SQiXUdQzHY7frLlZ988/Dp8B8\nVILHCCiYAy9FKtpkuip+0zKG7ClE8PFemyEq+qM0B33fehGIR4yQv9VSXdH/\nD5ogqf+Ei7xF63LJE6dTDI2i3NyUBxXi41fzp3OYaHnAoohs8u8YZglCnJcW\nIbfKaUvxBre0y+sBhewQS4jDzzkWeHz/lm8K5kln0HLrFm2Zg45uEojwrkIr\nd8UuyV0fG7EJm44uIoIOt/t5eH7Db3ynjpH/bGp8tmj3Wy+m/9JbhOnP9fS1\n+ApLyIv8HLSfcPSOktMJJ+7/M4K8M+RzcybYbPqbZoLmHChMfbXO4zosFJ5v\nw6LTy1uumgm3KaunDy233zXA4zFtyjXjPkumps1/hdABlF/Qsiy4yhSvChLn\nOK9yEj/ykIswVQEiK3yxCTTcI9xpLP7XnNPO8TCEJrsW5lTEsazkM3xcwthn\nWV3hOoM7yIgiv1dERHawAi3H0OZAQj/TxwXVFlnpCcug361KcUQWK+6gCQsb\naxM/\r\n=c9Qm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD95eCDizP+XAEL6oecAAb7xh9ufFGBA4F41V8hTjWYTgIgL2m7EFDb51Tf+NqaNEJ0yKQoCQZRt8snRvkwlkJ6T1k="}]},"maintainers":[{"name":"bbgbuilder","email":"ossbuilder@bloomberg.net"},{"name":"bloomberg-oss","email":"opensource@bloomberg.net"},{"name":"kpfleming","email":"kevin@km6g.us"}],"_npmUser":{"name":"bbgbuilder","email":"ossbuilder@bloomberg.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/record-tuple-polyfill_0.0.3_1604338783631_0.8047486832928579"},"_hasShrinkwrap":false},"0.0.4":{"name":"@bloomberg/record-tuple-polyfill","version":"0.0.4","description":"A polyfill for the Record and Tuple Stage 2 ECMAScript proposal.","main":"lib/index.umd.js","module":"lib/index.esm.js","scripts":{"clean":"rm -rf ./lib"},"repository":{"type":"git","url":"git+https://github.com/bloomberg/record-tuple-polyfill.git"},"keywords":["record","tuple","record and tuple","polyfill","ecmascript"],"author":{"name":"Rick Button","email":"rbutton2@bloomberg.net"},"contributors":[{"name":"Robin Ricard","email":"rricard2@bloomberg.net"},{"name":"Nicolò Ribaudo","email":"nribaudo1@bloomberg.net"}],"license":"Apache-2.0","publishConfig":{"access":"public"},"gitHead":"61ab72bc792f71d9779894cc2cd9df5429614799","bugs":{"url":"https://github.com/bloomberg/record-tuple-polyfill/issues"},"homepage":"https://github.com/bloomberg/record-tuple-polyfill#readme","_id":"@bloomberg/record-tuple-polyfill@0.0.4","_nodeVersion":"17.0.1","_npmVersion":"8.1.0","dist":{"integrity":"sha512-h0OYmPR3A5Dfbetra/GzxBAzQk8sH7LhRkRUTdagX6nrtlUgJGYCTv4bBK33jsTQw9HDd8PE2x1Ma+iRKEDUsw==","shasum":"9ef3df44e472ceb9a0a2010d858a526f2021fefa","tarball":"https://registry.npmjs.org/@bloomberg/record-tuple-polyfill/-/record-tuple-polyfill-0.0.4.tgz","fileCount":4,"unpackedSize":62942,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzIEUCRA9TVsSAnZWagAAlygP/0M9rMlxlZaV+PJnXoEl\nbp76UoDUeT3AmARSy5Wks+DFHpWwhDrDV3ek4df2izIgxErp6MagSATyWT65\njPxzCfqpMM4bhTzhAMezYZqI+NmPtpLfbTkPqvJ/ChxW9nwm94ZK5N+zSi5G\nEkpuh01ubCrewiDunNUK1v6Dt6SIePJoIMPsJqBKVwBJ0++OytzkdX0+wpct\nlEXR4ai7Yj6++7CerthcTYEgPJ5wP/9QRpllTQ5sfo4kE8NmflcRWRFsIa2V\nfo2pWLjq49E1wiQsI9lR1gqRkULlDKErwU5uSY4pt8BpTLqzRHBD7NipVkfr\n9HQSgZYimLNqSJthnny8mocIxfThwmtlMAZSD04U1BF8Qx5/K5grWvXFUcDP\nyqInQ/0qgBW3H2ry9Mg8mFId2g9dIcu5gNin44U9zg6Q6LCESnwc6xVq6dFm\nFu5PxhL3kJWodlqRjF2ei+tE/PxP490aj9zxnSZ30a6Q/NEhxqYrTZ3uzYLJ\nqwWBBXRFlDrIMhqW68GeQmvhJUAPyVb9x5oUbgZjfGjBj7m6NmoBXYFcGhSV\nuLH0iOv0dnutbtAKA4ipjhshiUQIeq4Qike0A5SXu+kGh1D/PKRAHmooOtWO\nrKC6absg63sxLtKipFs+o1otwpl7UVDCkWvvX8yio/0eWVwXobWBbGvOfzxe\nSSBx\r\n=3t6W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrGvGeGHntsLAGHGgYTOHOlps5NAdZMhbW0mWlx3yqJwIgXpq5KsjcJOEnRvJ6lipYJsWpr3t6k3BkNg6U1++L5OY="}]},"_npmUser":{"name":"bbgbuilder","email":"ossbuilder@bloomberg.net"},"directories":{},"maintainers":[{"name":"kpfleming","email":"kevin@km6g.us"},{"name":"bloomberg-oss","email":"opensource@bloomberg.net"},{"name":"bbgbuilder","email":"ossbuilder@bloomberg.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/record-tuple-polyfill_0.0.4_1635277260672_0.4303316034988902"},"_hasShrinkwrap":false}},"time":{"created":"2020-10-07T14:54:48.236Z","0.0.1":"2020-10-07T14:54:48.555Z","modified":"2023-07-07T17:22:36.616Z","0.0.2":"2020-10-07T15:39:20.844Z","0.0.3":"2020-11-02T17:39:43.787Z","0.0.4":"2021-10-26T19:41:00.850Z"},"maintainers":[{"email":"opensource@bloomberg.net","name":"bloomberg-oss"},{"email":"ossbuilder@bloomberg.net","name":"bbgbuilder"}],"description":"A polyfill for the Record and Tuple Stage 2 ECMAScript proposal.","homepage":"https://github.com/bloomberg/record-tuple-polyfill#readme","keywords":["record","tuple","record and tuple","polyfill","ecmascript"],"repository":{"type":"git","url":"git+https://github.com/bloomberg/record-tuple-polyfill.git"},"contributors":[{"name":"Robin Ricard","email":"rricard2@bloomberg.net"},{"name":"Nicolò Ribaudo","email":"nribaudo1@bloomberg.net"}],"author":{"name":"Rick Button","email":"rbutton2@bloomberg.net"},"bugs":{"url":"https://github.com/bloomberg/record-tuple-polyfill/issues"},"license":"Apache-2.0","readme":"# Record & Tuple Polyfill\nThe [Record and Tuple](https://github.com/tc39/proposal-record-tuple) ECMAScript proposal introduces new deeply immutable value types to JavaScript\nthat have similar access idioms to objects and arrays.\n\nThis is an **experiemental and explicitly not production ready** polyfill for the `Record and Tuple` proposal, and a [babel](https://babeljs.io) transform to support using the literal syntax.\n\nThe polyfill and transform are **constant works in progress** and are not the source of truth for the proposal.\n\n# Requirements\n\nIn order to use the syntax transform, [babel](https://babeljs.io) must be installed with at least version `7.9.0`.\n\nIn order to use the polyfill, the environment must support `WeakMap`, [`WeakRef`, and `FinalizationRegistry`](https://github.com/tc39/proposal-weakrefs). If implementations of these features are not provided, an error will be thrown.\n\n# Installation\n\n> Note: the Babel transform described below is not currently published on NPM, [as it is awaiting review](https://github.com/babel/babel/pull/12145).\n> If you really want to try the Babel transform plugin in it's packaged state, publishing locally via [verdaccio](https://verdaccio.org/) is an excellent option.\n\nTo install the transform and polyfill:\n\n```\n# install the babel transform as a dev dependency, only needed at compile time\nnpm install -D @bloomberg/babel-plugin-proposal-record-tuple\n\n# install the polyfill as a regular dependency, needed at runtime\nnpm install --save @bloomberg/record-tuple-polyfill\n```\n\nNext, add the plugin to your `babel` configuration. Example:\n\n```json\n{\n    \"plugins\": [[\"@bloomberg/babel-plugin-proposal-record-tuple\", { \"syntaxType\": \"hash\" }]]\n}\n```\n\n> Note, the `syntaxType` option is required, and must be set to either `hash` or `bar`.\n\n# Usage\n\nIf the `babel` transform and the polyfill are setup, you can start using the `Record and Tuple` literal syntax.\n\n```js\nconsole.log(#{ a: 1 } === #{ a: 1 });\nconsole.log(#[1, 2, 3] === #[1, 2, 3]);\n```\n\nIf you want to use the Record or Tuple global objects, you can import them from the polyfill directly.\n\n```js\nimport { Record, Tuple } from \"@bloomberg/record-tuple-polyfill\";\n\nconst record = Record({ a: 1 });\nconst tuple = Tuple(1, 2, 3);\nconst array = [1,2,3];\n\nconsole.log(Record.isRecord(record));\nconsole.log(Record.keys(record));\nconsole.log(Tuple.from(array));\n```\n\n# Unsupported Features\n\n`typeof` will return an incorrect value when provided a `Record` or `Tuple`.\nThis is because the polyfill implements the proposal via [interning](https://en.wikipedia.org/wiki/String_interning) frozen objects.\n\n# Playground\n\nThe Record and Tuple polyfill has been deployed in an easy to use REPL [here](https://rickbutton.github.io/record-tuple-playground/).\n\n## Supported Environments/Browsers\n\nThe Record and Tuple polyfill requires several JavaScript features that are only available experimentally in browsers, specifically `WeakRef` and `FinalizationRegistry`.\n\nThe following environments support these experimental features out-of-the-box.\n\n| environment     | supported                                |\n|-----------------|------------------------------------------|\n| [Chrome Canary](https://www.google.com/chrome/canary/)   | :heavy_check_mark:                       |\n\n\nIn order to use these experimental features other browsers, you must run the browser/environment with specific flags:\n\n| environment     | flags                                    |\n|-----------------|------------------------------------------|\n| node            | --harmony-weak-refs                      |\n| Chrome          | --js-flags=\"--harmony-weak-refs\"         |\n| Firefox Nightly | javascript.options.experimental.weakrefs |\n","readmeFilename":"README.md"}