{"_id":"subsume","_rev":"8-4e8fa7a96812c2212295193d75fad700","name":"subsume","description":"Embed data in other data and easily extract it when needed","dist-tags":{"latest":"4.0.0"},"versions":{"1.0.0":{"name":"subsume","version":"1.0.0","description":"Embed data in other data and easily extract it when needed","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/subsume.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=4"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["subsume","embed","embedded","include","insert","data","string","text","content","compose","parse","extract","encode","decode"],"dependencies":{"escape-string-regexp":"^1.0.5","unique-string":"^1.0.0"},"devDependencies":{"ava":"*","xo":"*"},"xo":{"esnext":true},"gitHead":"21d8212310940152f67317e19b4968d804de9b5e","bugs":{"url":"https://github.com/sindresorhus/subsume/issues"},"homepage":"https://github.com/sindresorhus/subsume#readme","_id":"subsume@1.0.0","_shasum":"da977c7b43da53064e1eb8842a47486aa00a173c","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.6.1","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"da977c7b43da53064e1eb8842a47486aa00a173c","tarball":"https://registry.npmjs.org/subsume/-/subsume-1.0.0.tgz","integrity":"sha512-Oh82fJjOd0C7S0haX9xDHxvRUB2FphFYbbX2ibog4zSgN9LHqmHVBVpRP5ioyDjZ/4QbvawSEULl4VUaNyKHwg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDeIUZCkT/rH28IG9twZ0xtA4xFniJ5m1dHT0YJlQx0ggIgWM2hxBoTQaIDHbJoWMPIypd4k5mW336dgH++Sf2xiGk="}]},"maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/subsume-1.0.0.tgz_1479116102790_0.1661837357096374"},"directories":{}},"2.0.0":{"name":"subsume","version":"2.0.0","description":"Embed data in other data and easily extract it when needed","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/subsume.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=6"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["subsume","embed","embedded","include","insert","data","string","text","content","compose","parse","extract","encode","decode"],"dependencies":{"escape-string-regexp":"^1.0.5","unique-string":"^1.0.0"},"devDependencies":{"ava":"*","xo":"*"},"gitHead":"f78d3377e12a0bc49f64559270cf2e5e5118037c","bugs":{"url":"https://github.com/sindresorhus/subsume/issues"},"homepage":"https://github.com/sindresorhus/subsume#readme","_id":"subsume@2.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.2","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"integrity":"sha512-JanvvI0JPkkaBoXLmrinJ5crkw2Nki8qjCabTMx5vRCCtM/BHc2/8aL62joi5PXORQuZoiShr+waCM8QXpYklg==","shasum":"277ebaac75da6034d95512864d20095816824244","tarball":"https://registry.npmjs.org/subsume/-/subsume-2.0.0.tgz","fileCount":4,"unpackedSize":7952,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbKelaCRA9TVsSAnZWagAAUmUP/jYW0iKkAG8Xu94PuJSO\nGCOdTdNjUt5xHvI4/hVbJ2BcvjD8qhfj1hPZaho67FKYFzmCDxkknBSdAo7r\nxDmkhEXCBLLHLhiBAppnpFgAwWjuU5hnCTvuFKUYyeg9X5dQfuk7Zcws38Mm\n/QxAQidytKc/hC4Jnl361vlhhAEfY8l2rWZk/I7pZkHcvenX9+YW0VFW5LX0\n/EKNRRCAYZ/50Bsw+OjnNxzX8/+nBVkHYv8UBaZmzpZsqOYZFSObZOsMrs4T\nlaOJ3D2musSNQbG0tSyHxSOHTSiDfFbcAydqpzQ21ItHTZGm3+549SJLhxnr\nVciYFCsPRbtIja1IMA2Pf6AT5R7X6dojqUIbRvqtC64kLeVXTT5VYtmkon+j\nDnjDsiasM0TbjNNhnqhdSGtHZZxTYDZQ6DE3lSk+HmyOb3JB403jE2/dvDut\nPG3sltCwNNfHluI5mOa6lnsfz3SddUkRQMfyVsvpf5+fjG8ZVSxa6vUqaBi/\n7DzuTpsovbQiPM56YMA+ksa/rrxZR0Hn0xpdqTyMoJL+1lXP7IC6VhSTbqHn\nFUEhJzScFhPs2nFbsOBHKRHhVkiqAMMBISAL4bHGs5Yd6aGKSDThAVN7Sz8/\nANQuObuEhsTsOtx24uqsjhGIsIGtJGnsR8w+v++lUCaFo2aYrHYjcO6im6Yo\nlKAM\r\n=W2Lo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUwpEIv/4DmEnYm0m9rAFjT+tV0dAINVbEZqUIHbg7vAIgFSRqCbMkRff5sfeCqUz9h5CqSWfKaNNkgmvC/WepT0g="}]},"maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/subsume_2.0.0_1529473369904_0.12245189432395942"},"_hasShrinkwrap":false},"2.1.0":{"name":"subsume","version":"2.1.0","description":"Embed data in other data and easily extract it when needed","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/subsume.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=6"},"scripts":{"test":"xo && ava && tsd"},"keywords":["subsume","embed","embedded","include","insert","data","string","text","content","compose","parse","extract","encode","decode"],"dependencies":{"escape-string-regexp":"^1.0.5","unique-string":"^1.0.0"},"devDependencies":{"ava":"^1.4.1","tsd":"^0.7.2","xo":"^0.24.0"},"gitHead":"dbabe528a906d220c15521da7bf4f8308898cc56","bugs":{"url":"https://github.com/sindresorhus/subsume/issues"},"homepage":"https://github.com/sindresorhus/subsume#readme","_id":"subsume@2.1.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.1","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"integrity":"sha512-ZCAVUGmJbpg2odwgiEs5NXpqbWHGZPfmIYPfigupV1kJU4I+m5cQ96ZQcN6WIx8o4M/8JJ8RnVQeqPhgZR/Nwg==","shasum":"9bd263cc6050cf57a8b1c647d3449c2ee33ce106","tarball":"https://registry.npmjs.org/subsume/-/subsume-2.1.0.tgz","fileCount":5,"unpackedSize":10882,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcqI6vCRA9TVsSAnZWagAAqy4P/0qn7en+I2qFDSr+9mLW\nFvDeqKlKbrkVWZh26I7yjGDSbY7gAl8Ar9/KA7vXb3oAZs1oDgX/oD1RLWv/\nIsLwhwIB0vLj0y6ak8nAmw+DD3yIqPqErK9CQbIAoSjU7aqUat5vlEn2ErVR\nyALu1xGTzFnKOUUm7XHEuAKnLgE+fU5GkgMX/aoNU4NMzNPopCtmBiQHR2NH\nmUauA28dFWe7pv6u7R9zmKJshkSVpH1HmX2M4M7l7qrIipMSX1I/0zHUM9Fz\n4TdFFhAZpdXNynYQ5IATcCwQRJ7XOdJWC54I6X+GkzB0hfI3rPilAosmQz7X\nzQKn6facdEIqHy2K/YuRwC8oE6XRMqzw7Ohp3oU/+a2wZtx/ry4i9Kfbgluv\nEEsFfXIA00O3nm54Fuqh9UOQzFpSf74mxMPCDek2V1rNsznhR2LeAsD2Nt15\nErFww3Sf1l9G0/BBTYHeOemASZ2qKO2eM6U18x5tpJq08GbLli9SdJokxbjj\nYIJo/auDEfbe1ceYS6u2uRNpzu9RsL9WuBDtD04m7WPc0ECLkUVsp8BgqS7Q\ndOW+BRyqSg48of9K9dKJpKdM0oXtA58j8AnXckYvKP01SNIvhosLDZJuYYpj\nA9QWf5xcxJGhze4DfDLX8tDkUoHKbl6jIM+KF0mtguv1Dra9U6hKFubNVuJu\nYSu3\r\n=5THw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGyEq8WHigJ9aIxCcBvJM+zSCZ1EH5SxTraMsY365JxCAiEA+NB2dInVdMuhksw/5kPJJAIt144KZD6VzEio5wHO+r4="}]},"maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/subsume_2.1.0_1554550446407_0.36796417612987176"},"_hasShrinkwrap":false},"3.0.0":{"name":"subsume","version":"3.0.0","description":"Embed data in other data and easily extract it when needed","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/subsume.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && ava && tsd"},"keywords":["subsume","embed","embedded","include","insert","data","string","text","content","compose","parse","extract","encode","decode"],"dependencies":{"escape-string-regexp":"^2.0.0","unique-string":"^2.0.0"},"devDependencies":{"ava":"^1.4.1","tsd":"^0.7.3","xo":"^0.24.0"},"gitHead":"23f788d042c0f7d5201b6ffc7637fee8f29a4697","bugs":{"url":"https://github.com/sindresorhus/subsume/issues"},"homepage":"https://github.com/sindresorhus/subsume#readme","_id":"subsume@3.0.0","_nodeVersion":"8.16.0","_npmVersion":"6.9.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"integrity":"sha512-6n/UfV8UWKwJNO8OAOiKntwEMihuBeeoJfzpL542C+OuvT4iWG9SwjrXkOmsxjb4SteHUsos9SvrdqZ9+ICwTQ==","shasum":"22c92730f441ad72ee9af4bdad42dc4ff830cfaf","tarball":"https://registry.npmjs.org/subsume/-/subsume-3.0.0.tgz","fileCount":5,"unpackedSize":10899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc47BDCRA9TVsSAnZWagAA9+8P/i7EiRAP6RrqF1zmYuV+\nZbjdiS01W0xGs4FNvYE5zMGjQWu/GkvGgvfyII87eVvJfXtdy5E3L4FomzaC\nXBxx2NBqv3W5mDlbJ/T9Wu/a00I/ZM42WGtQxwz8IVh8q0966CoxljbPNMgi\n8jB4zT0IIPPzaLG2LhuUNaRQrDaGgdwWn/0LTIMQ9Bw40+LYaJNHPDuT8SJi\n1ux+ZQST+cJ5z8WvUJPYpazDhBWHnZCseNk1deH12ziNpauEKg7yKkF2/Hc8\n5WkvEpwmuTQ9tzg6EF5GSxfIXL3AykDF12nxP0CBx9Ci4RDdL1+z6Zdgo7OP\neq9MFMlxQjzNmMp630QAcAUxHaPeXTi7tsikVQ8DRY92wUuLmkJnhoH53gJw\nbyqwwdsAlDca8Dffcm3WOidS47FrNJ033z3rsAWIlAKnz6DT578Uruak+KTv\nP79bY89IwV2GioVbRz7TxyrNdvtgikpazlL+C5axyyEiakLuLSj2imwkbhOL\naK2ggtOnyUskGScgijd1PwrPo3S0MD24YbsMDSEzNGqnTy2RY2JZ726//KWQ\naB1zQWUpkiTzShorIebKFn8rBGcoOIE1tsaLtt36L0SQealz/l/l/z5ra6vO\n8oN3iNlSZmP2rRyUJ64YjDuiKQ3caDCSVdpaNNBYCjXjC5ZBF39oz5PXQ2ZK\n9x6J\r\n=jtbm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAtKQtQxKNS6WIwi/N/VT+Ai07SNOv/Jzt0y/PbVvV4gIgajx3wswdcNzUFNHVWjkp35sNiwrJlGKjN0rC/iXDzTI="}]},"maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/subsume_3.0.0_1558425666498_0.9587613459199296"},"_hasShrinkwrap":false},"4.0.0":{"name":"subsume","version":"4.0.0","description":"Embed data in other data and easily extract it when needed","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/subsume.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":"./index.js","engines":{"node":"^12.20.0 || ^14.13.1 || >=16.0.0"},"scripts":{"test":"xo && ava && tsd"},"keywords":["subsume","embed","embedded","include","insert","data","string","text","content","compose","parse","extract","encode","decode"],"dependencies":{"escape-string-regexp":"^5.0.0","unique-string":"^3.0.0"},"devDependencies":{"ava":"^3.15.0","tsd":"^0.17.0","xo":"^0.44.0"},"gitHead":"d763fe6775cd34b839875e8bb007bb9bc7c19f58","bugs":{"url":"https://github.com/sindresorhus/subsume/issues"},"homepage":"https://github.com/sindresorhus/subsume#readme","_id":"subsume@4.0.0","_nodeVersion":"12.22.1","_npmVersion":"7.10.0","dist":{"integrity":"sha512-BWnYJElmHbYZ/zKevy+TG+SsyoFCmRPDHJbR1MzLxkPOv1Jp/4hGhVUtP98s+wZBsBsHwCXvPTP0x287/WMjGg==","shasum":"506c72bfb76596ebc6f96cbdccceadda41ab0849","tarball":"https://registry.npmjs.org/subsume/-/subsume-4.0.0.tgz","fileCount":5,"unpackedSize":10907,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhFSPmCRA9TVsSAnZWagAAty0P/2F0fmqR7Wxpeg2fkR0t\n0AQay9rQsdvjYp78cnxJAI4ko1U4r9Ttz/gggjHx4hZdTr0XUKsshMFCIQyC\nhrpPCoob6OwKaCNDLSK1VnavoSlMJpOAqT3xMZbeONQ10Kcbuwwpx3yaEUz0\nXFzDPeW9lyYY5PebhUeGan1REo1soJzSHESWGqrjeeC8CJ0Fggviu8XHdBNP\nfMxnIga/8qfMVmuHbTPW/sQ02PwGLQbtHnNQaCk19UZDAdCGvJ4EIgGEYCaz\nCk7C4SfOzeEt36+VG8ZsW0zJVGnMK5W1PVkoZeojGSEf1nLVpSt4IU/zYhvb\nUZSyYWqbVntgw4EBQOcL/f8GB/jXyWynjcAmL10idVPg1GOyNzkfEbimqgwn\nmvrl8c85E6un9WF7zZbzHUaxi/0BC0XlEAy0NQZ+znCDkqFZwP+ifgi4smxZ\ngO+zesDymYvxsDXr4quv83UZ0QG4NRiKNB9YdallrMACrnyN6Gzw/a/k8cqj\n/CcQ60iEHzidS2XwrA8wHPHraIOGG509vdIiEd49Jz8ZWzuRG6MOtDA4rbax\ndYhqkL6SlcbHbA/Hh1UWpB8IRyES9Q1xXezJNuQIg6aZqgCRhDMUS2AYkvd+\nUJxNA9tMXhU06TZSKlDj0YvIKoxm6JhcLE3SCIQ6rFMrXfB9VgCX1pUt03fm\nmutD\r\n=G/SF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmg2HCR7lUgsbdRHxN9FtTgv7gXAmNz0RBUi3kOj3EhAIhALw7s8WTLoAT2OUjDOzQQa4kXiVHoaxMgguPLlMsiCoU"}]},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"directories":{},"maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/subsume_4.0.0_1628775398094_0.4460534086553276"},"_hasShrinkwrap":false}},"readme":"# subsume\n\n> Embed data in other data and easily extract it when needed\n\nCan for example be useful when you run a child process that has multiple entities writing to stdout and you want to handle those outputs differently. I personally use it in [`run-jxa`](https://github.com/sindresorhus/run-jxa) to allow the code run in that context to use `console.log`, but also allow me to send the result of the execution back through `console.log`.\n\n## Install\n\n```\n$ npm install subsume\n```\n\n## Usage\n\n```js\nimport Subsume from 'subsume';\n\nconst subsume = new Subsume();\n\nconsole.log(subsume.id);\n//=> '7febcd0b3806fbc48c01d7cea4ed1219'\n\nconst text = subsume.compose('🦄');\n//=> '@@[7febcd0b3806fbc48c01d7cea4ed1219]@@🦄##[7febcd0b3806fbc48c01d7cea4ed1219]##'\n\n// The text can now be embedded in some other text\nconst output = `some${text} random text`;\n//=> 'some@@[7febcd0b3806fbc48c01d7cea4ed1219]@@🦄##[7febcd0b3806fbc48c01d7cea4ed1219]## random text'\n\n// At a later point we extract it\nsubsume.parse(output);\n//=> {data: '🦄', rest: 'some random text'}\n\n// Or in a different process by using the `id`\nconst input = 'some@@[7febcd0b3806fbc48c01d7cea4ed1219]@@🦄##[7febcd0b3806fbc48c01d7cea4ed1219]## random text';\nSubsume.parse(text, '7febcd0b3806fbc48c01d7cea4ed1219');\n//=> {data: '🦄', rest: 'some random text'}\n```\n\n## API\n\n### `subsume = new Subsume(id?)`\n\nReturns a new instance.\n\n#### id\n\nType: `string`\\\nDefault: Unique ID\n\nYou probably don't need to set this. Can be useful if you need a stable ID.\n\n### subsume\n\n`Subsume` instance.\n\n#### compose(text)\n\nType: `Function`\n\nReturns a wrapped version of `text` that you can embed in other content.\n\n#### parse(text)\n\nType: `Function`\n\nExtract your embedded data from `text`.\n\nReturns an object with properties `.data` for your embedded data and `.rest` for everything else.\n\n#### id\n\nType: `string`\n\nThe used identifier.\n\n#### prefix\n\nType: `string`\n\nPrefix used in `.compose()`.\n\n#### postfix\n\nType: `string`\n\nPostfix used in `.compose()`.\n\n#### regex\n\nType: `RegExp`\n\nRegex used in `.parse()`.\n\n### Subsume.parse(text, id)\n\nExtract embedded data with a specific `id` out of `text`.\n\nUseful when `text` comes from an external source.\n\n### Subsume.parseAll(text, idArray?)\n\nExtract embedded data corresponding to all IDs in `idArray`, if specified. Otherwise it will extract embedded data for all top-level IDs.\n\nReturns an object with properties `.data`, a Map with an entry for each parsed ID, and `.rest` for what remains after all the required IDs have been parsed, as seen below:\n\nThe input:\n\n```\nsome@@[7febcd0b3806fbc48c01d7cea4ed1219]@@🦄##[7febcd0b3806fbc48c01d7cea4ed1219]## random@@[7febcd0b3806fbc48c01d7cea4ed1218]@@🦄##[7febcd0b3806fbc48c01d7cea4ed1218]## text@@[7febcd0b3806fbc48c01d7cea4ed1217]@@🦄##[7febcd0b3806fbc48c01d7cea4ed1217]##\n```\n\nGives the following output:\n\n```js\n{\n\tdata: Map {\n\t\t'7febcd0b3806fbc48c01d7cea4ed1219' => '🦄',\n\t\t'7febcd0b3806fbc48c01d7cea4ed1218' => '🦄',\n\t\t'7febcd0b3806fbc48c01d7cea4ed1217' => '🦄'\n\t},\n\trest: 'some random text'\n}\n```\n","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"time":{"modified":"2022-06-27T01:52:57.011Z","created":"2016-11-14T09:35:03.009Z","1.0.0":"2016-11-14T09:35:03.009Z","2.0.0":"2018-06-20T05:42:50.059Z","2.1.0":"2019-04-06T11:34:06.514Z","3.0.0":"2019-05-21T08:01:06.614Z","4.0.0":"2021-08-12T13:36:38.220Z"},"homepage":"https://github.com/sindresorhus/subsume#readme","keywords":["subsume","embed","embedded","include","insert","data","string","text","content","compose","parse","extract","encode","decode"],"repository":{"type":"git","url":"git+https://github.com/sindresorhus/subsume.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"bugs":{"url":"https://github.com/sindresorhus/subsume/issues"},"license":"MIT","readmeFilename":"readme.md"}