{"_attachments":{},"_id":"@tootallnate/once","_rev":"2940-61f14a57830fd08f52a2d0ba","author":{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://n8.io/"},"description":"Creates a Promise that waits for a single event","dist-tags":{"latest":"3.0.1","legacy":"2.0.1"},"license":"MIT","maintainers":[{"name":"tootallnate","email":"nathan@tootallnate.net"}],"name":"@tootallnate/once","readme":"# @tootallnate/once\n\n### Creates a Promise that waits for a single event\n\n## Installation\n\nInstall with `npm`:\n\n```bash\n$ npm install @tootallnate/once\n```\n\n## API\n\n### once(emitter: EventEmitter, name: string, opts?: OnceOptions): Promise&lt;[...Args]&gt;\n\nCreates a Promise that waits for event `name` to occur on `emitter`, and resolves\nthe promise with an array of the values provided to the event handler. If an\n`error` event occurs before the event specified by `name`, then the Promise is\nrejected with the error argument.\n\n```typescript\nimport once from '@tootallnate/once';\nimport { EventEmitter } from 'events';\n\nconst emitter = new EventEmitter();\n\nsetTimeout(() => {\n    emitter.emit('foo', 'bar');\n}, 100);\n\nconst [result] = await once(emitter, 'foo');\nconsole.log({ result });\n// { result: 'bar' }\n```\n\n#### Promise Strong Typing\n\nThe main feature that this module provides over other \"once\" implementations is that\nthe Promise that is returned is _**strongly typed**_ based on the type of `emitter`\nand the `name` of the event. Some examples are shown below.\n\n_The process \"exit\" event contains a single number for exit code:_\n\n```typescript\nconst [code] = await once(process, 'exit');\n//     ^ number\n```\n_A child process \"exit\" event contains either an exit code or a signal:_\n\n```typescript\nconst child = spawn('echo', []);\nconst [code, signal] = await once(child, 'exit');\n//     ^ number | null\n//           ^ string | null\n```\n\n_A forked child process \"message\" event is type `any`, so you can cast the Promise directly:_\n\n```typescript\nconst child = fork('file.js');\n\n// With `await`\nconst [message, _]: [WorkerPayload, unknown] = await once(child, 'message');\n\n// With Promise\nconst messagePromise: Promise<[WorkerPayload, unknown]> = once(child, 'message');\n\n// Better yet would be to leave it as `any`, and validate the payload\n// at runtime with i.e. `ajv` + `json-schema-to-typescript`\n```\n\n_If the TypeScript definition does not contain an overload for the specified event name, then the Promise will have type `unknown[]` and your code will need to narrow the result manually:_\n\n```typescript\ninterface CustomEmitter extends EventEmitter {\n    on(name: 'foo', listener: (a: string, b: number) => void): this;\n}\n\nconst emitter: CustomEmitter = new EventEmitter();\n\n// \"foo\" event is a defined overload, so it's properly typed\nconst fooPromise = once(emitter, 'foo');\n//    ^ Promise<[a: string, b: number]>\n\n// \"bar\" event in not a defined overload, so it gets `unknown[]`\nconst barPromise = once(emitter, 'bar');\n//    ^ Promise<unknown[]>\n```\n\n### OnceOptions\n\n-   `signal` - `AbortSignal` instance to unbind event handlers before the Promise has been fulfilled.\n","time":{"created":"2022-01-26T13:19:19.627Z","modified":"2026-05-03T18:05:33.650Z","3.0.0":"2021-09-27T09:13:54.973Z","2.0.0":"2021-09-22T23:50:52.041Z","1.1.2":"2020-04-21T15:40:59.696Z","1.1.1":"2020-04-20T23:30:59.787Z","1.1.0":"2020-04-20T22:27:59.335Z","1.0.0":"2020-02-08T23:48:05.016Z","3.0.1":"2026-02-09T18:19:37.836Z","2.0.1":"2026-05-03T18:05:21.169Z"},"versions":{"3.0.0":{"name":"@tootallnate/once","version":"3.0.0","description":"Creates a Promise that waits for a single event","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"prebuild":"rimraf dist","build":"tsc","test":"jest","prepublishOnly":"npm run build"},"repository":{"type":"git","url":"git://github.com/TooTallNate/once.git"},"keywords":[],"author":{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://n8.io/"},"license":"MIT","bugs":{"url":"https://github.com/TooTallNate/once/issues"},"devDependencies":{"@types/jest":"^27.0.2","@types/node":"^12.12.11","abort-controller":"^3.0.0","jest":"^27.2.1","rimraf":"^3.0.0","ts-jest":"^27.0.5","typescript":"^4.4.3"},"engines":{"node":">= 10"},"jest":{"preset":"ts-jest","globals":{"ts-jest":{"diagnostics":false,"isolatedModules":true}},"verbose":false,"testEnvironment":"node","testMatch":["<rootDir>/test/**/*.test.ts"]},"gitHead":"2bc2e134b7728a6b37c6838a3b5d5c290e60a539","homepage":"https://github.com/TooTallNate/once#readme","_id":"@tootallnate/once@3.0.0","_nodeVersion":"12.22.6","_npmVersion":"6.14.15","dist":{"shasum":"d52238c9052d746c9689523e650160e70786bc9a","size":4447,"noattachment":false,"tarball":"https://registry.npmmirror.com/@tootallnate/once/-/once-3.0.0.tgz","integrity":"sha512-OAdBVB7rlwvLD+DiecSAyVKzKVmSfXbouCyM5I6wHGi4MGXIyFqErg1IvyJ7PI1e+GYZuZh7cCHV/c4LA8SKMw=="},"_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"directories":{},"maintainers":[{"name":"tootallnate","email":"nathan@tootallnate.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/once_3.0.0_1632734034811_0.33679291306743675"},"_hasShrinkwrap":false,"publish_time":1632734034973,"_cnpm_publish_time":1632734034973,"_cnpmcore_publish_time":"2021-12-14T06:14:34.318Z"},"2.0.0":{"name":"@tootallnate/once","version":"2.0.0","description":"Creates a Promise that waits for a single event","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"prebuild":"rimraf dist","build":"tsc","test":"jest","prepublishOnly":"npm run build"},"repository":{"type":"git","url":"git://github.com/TooTallNate/once.git"},"keywords":[],"author":{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://n8.io/"},"license":"MIT","bugs":{"url":"https://github.com/TooTallNate/once/issues"},"devDependencies":{"@types/jest":"^27.0.2","@types/node":"^12.12.11","abort-controller":"^3.0.0","jest":"^27.2.1","rimraf":"^3.0.0","ts-jest":"^27.0.5","typescript":"^4.4.3"},"engines":{"node":">= 10"},"jest":{"preset":"ts-jest","globals":{"ts-jest":{"diagnostics":false,"isolatedModules":true}},"verbose":false,"testEnvironment":"node","testMatch":["<rootDir>/test/**/*.test.ts"]},"gitHead":"b71b6e880044ab2110d3f2c753cd3d218e5e262e","homepage":"https://github.com/TooTallNate/once#readme","_id":"@tootallnate/once@2.0.0","_nodeVersion":"12.22.6","_npmVersion":"6.14.15","dist":{"shasum":"f544a148d3ab35801c1f633a7441fd87c2e484bf","size":3944,"noattachment":false,"tarball":"https://registry.npmmirror.com/@tootallnate/once/-/once-2.0.0.tgz","integrity":"sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A=="},"_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"directories":{},"maintainers":[{"name":"tootallnate","email":"nathan@tootallnate.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/once_2.0.0_1632354651709_0.44949087906019014"},"_hasShrinkwrap":false,"publish_time":1632354652041,"_cnpm_publish_time":1632354652041,"_cnpmcore_publish_time":"2021-12-14T06:14:34.637Z"},"1.1.2":{"name":"@tootallnate/once","version":"1.1.2","description":"Creates a Promise that waits for a single event","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"prebuild":"rimraf dist","build":"tsc","test":"mocha --reporter spec","test-lint":"eslint src --ext .js,.ts","prepublishOnly":"npm run build"},"repository":{"type":"git","url":"git://github.com/TooTallNate/once.git"},"keywords":[],"author":{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://n8.io/"},"license":"MIT","bugs":{"url":"https://github.com/TooTallNate/once/issues"},"devDependencies":{"@types/node":"^12.12.11","@typescript-eslint/eslint-plugin":"1.6.0","@typescript-eslint/parser":"1.1.0","eslint":"5.16.0","eslint-config-airbnb":"17.1.0","eslint-config-prettier":"4.1.0","eslint-import-resolver-typescript":"1.1.1","eslint-plugin-import":"2.16.0","eslint-plugin-jsx-a11y":"6.2.1","eslint-plugin-react":"7.12.4","mocha":"^6.2.2","rimraf":"^3.0.0","typescript":"^3.7.3"},"engines":{"node":">= 6"},"gitHead":"3948afcb5803013e184861943e0018e37830fcfe","homepage":"https://github.com/TooTallNate/once#readme","_id":"@tootallnate/once@1.1.2","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","dist":{"shasum":"ccb91445360179a04e7fe6aff78c00ffc1eeaf82","size":1693,"noattachment":false,"tarball":"https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.2.tgz","integrity":"sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw=="},"maintainers":[{"name":"tootallnate","email":"nathan@tootallnate.net"}],"_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/once_1.1.2_1587483659547_0.20019688772998245"},"_hasShrinkwrap":false,"publish_time":1587483659696,"_cnpm_publish_time":1587483659696,"_cnpmcore_publish_time":"2021-12-14T06:14:34.806Z"},"1.1.1":{"name":"@tootallnate/once","version":"1.1.1","description":"Creates a Promise that waits for a single event","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"prebuild":"rimraf dist","build":"tsc","test":"mocha --reporter spec","test-lint":"eslint src --ext .js,.ts","prepublishOnly":"npm run build"},"repository":{"type":"git","url":"git://github.com/TooTallNate/once.git"},"keywords":[],"author":{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://n8.io/"},"license":"MIT","bugs":{"url":"https://github.com/TooTallNate/once/issues"},"devDependencies":{"@types/node":"^12.12.11","@typescript-eslint/eslint-plugin":"1.6.0","@typescript-eslint/parser":"1.1.0","eslint":"5.16.0","eslint-config-airbnb":"17.1.0","eslint-config-prettier":"4.1.0","eslint-import-resolver-typescript":"1.1.1","eslint-plugin-import":"2.16.0","eslint-plugin-jsx-a11y":"6.2.1","eslint-plugin-react":"7.12.4","mocha":"^6.2.2","rimraf":"^3.0.0","typescript":"^3.7.3"},"engines":{"node":">= 6"},"gitHead":"7cf120c15c61306b143eee6ba388e18c2af1f434","homepage":"https://github.com/TooTallNate/once#readme","_id":"@tootallnate/once@1.1.1","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"shasum":"e94fe74465c49c36094f403b56df7ae99861f466","size":1579,"noattachment":false,"tarball":"https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.1.tgz","integrity":"sha512-8foiU77JL9wR2yPZwecqN2YdJp/olC4CBVEaHdWWlz5rMQZcVEA3aXxlbfbUACVVxVwtTle3eYSnpBeKvIYcIg=="},"maintainers":[{"name":"tootallnate","email":"nathan@tootallnate.net"}],"_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/once_1.1.1_1587425459623_0.22249323277893485"},"_hasShrinkwrap":false,"publish_time":1587425459787,"_cnpm_publish_time":1587425459787,"_cnpmcore_publish_time":"2021-12-14T06:14:35.046Z"},"1.1.0":{"name":"@tootallnate/once","version":"1.1.0","description":"Creates a Promise that waits for a single event","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"prebuild":"rimraf dist","build":"tsc","test":"mocha --reporter spec","test-lint":"eslint src --ext .js,.ts","prepublishOnly":"npm run build"},"repository":{"type":"git","url":"git://github.com/TooTallNate/once.git"},"keywords":[],"author":{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://n8.io/"},"license":"MIT","bugs":{"url":"https://github.com/TooTallNate/once/issues"},"devDependencies":{"@types/node":"^12.12.11","@typescript-eslint/eslint-plugin":"1.6.0","@typescript-eslint/parser":"1.1.0","eslint":"5.16.0","eslint-config-airbnb":"17.1.0","eslint-config-prettier":"4.1.0","eslint-import-resolver-typescript":"1.1.1","eslint-plugin-import":"2.16.0","eslint-plugin-jsx-a11y":"6.2.1","eslint-plugin-react":"7.12.4","mocha":"^6.2.2","rimraf":"^3.0.0","typescript":"^3.7.3"},"engines":{"node":">= 6"},"gitHead":"ef4cb2ccd398f76498546588ca255220e74ac226","homepage":"https://github.com/TooTallNate/once#readme","_id":"@tootallnate/once@1.1.0","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"shasum":"6c8342b7d64b1ce1f9a8392c1f21b0da41e1f582","size":1644,"noattachment":false,"tarball":"https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.0.tgz","integrity":"sha512-5v6eE6InDzX7g1T7tP5enDuPou2R9fuSRk+aD8ZJ822TfECtgBjnBrCFW4qC2yGNK+UUhPUhycC05Df5RgsnTw=="},"maintainers":[{"name":"tootallnate","email":"nathan@tootallnate.net"}],"_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/once_1.1.0_1587421679230_0.7953557404424423"},"_hasShrinkwrap":false,"publish_time":1587421679335,"_cnpm_publish_time":1587421679335,"_cnpmcore_publish_time":"2021-12-14T06:14:35.284Z"},"1.0.0":{"name":"@tootallnate/once","version":"1.0.0","description":"Creates a Promise that waits for a single event","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"prebuild":"rimraf dist","build":"tsc","test":"mocha --reporter spec","test-lint":"eslint src --ext .js,.ts","prepublishOnly":"npm run build"},"repository":{"type":"git","url":"git://github.com/TooTallNate/once.git"},"keywords":[],"author":{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://n8.io/"},"license":"MIT","bugs":{"url":"https://github.com/TooTallNate/once/issues"},"devDependencies":{"@types/node":"^12.12.11","@typescript-eslint/eslint-plugin":"1.6.0","@typescript-eslint/parser":"1.1.0","eslint":"5.16.0","eslint-config-airbnb":"17.1.0","eslint-config-prettier":"4.1.0","eslint-import-resolver-typescript":"1.1.1","eslint-plugin-import":"2.16.0","eslint-plugin-jsx-a11y":"6.2.1","eslint-plugin-react":"7.12.4","mocha":"^6.2.2","rimraf":"^3.0.0","typescript":"^3.7.3"},"engines":{"node":">= 6"},"gitHead":"e3d8461b1bfa00b41329816f0caec8b9c7529158","homepage":"https://github.com/TooTallNate/once#readme","_id":"@tootallnate/once@1.0.0","_nodeVersion":"12.15.0","_npmVersion":"6.13.7","dist":{"shasum":"9c13c2574c92d4503b005feca8f2e16cc1611506","size":1444,"noattachment":false,"tarball":"https://registry.npmmirror.com/@tootallnate/once/-/once-1.0.0.tgz","integrity":"sha512-KYyTT/T6ALPkIRd2Ge080X/BsXvy9O0hcWTtMWkPvwAwF99+vn6Dv4GzrFT/Nn1LePr+FFDbRXXlqmsy9lw2zA=="},"maintainers":[{"name":"tootallnate","email":"nathan@tootallnate.net"}],"_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/once_1.0.0_1581205684926_0.4139655088212628"},"_hasShrinkwrap":false,"publish_time":1581205685016,"_cnpm_publish_time":1581205685016,"_cnpmcore_publish_time":"2021-12-14T06:14:35.475Z"},"3.0.1":{"name":"@tootallnate/once","version":"3.0.1","description":"Creates a Promise that waits for a single event","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git://github.com/TooTallNate/once.git"},"keywords":[],"author":{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://n8.io/"},"license":"MIT","bugs":{"url":"https://github.com/TooTallNate/once/issues"},"devDependencies":{"@changesets/cli":"^2.29.8","@types/jest":"^27.0.2","@types/node":"^12.12.11","abort-controller":"^3.0.0","jest":"^27.2.1","rimraf":"^3.0.0","ts-jest":"^27.0.5","typescript":"^4.4.3"},"engines":{"node":">= 10"},"jest":{"preset":"ts-jest","globals":{"ts-jest":{"diagnostics":false,"isolatedModules":true}},"verbose":false,"testEnvironment":"node","testMatch":["<rootDir>/test/**/*.test.ts"]},"scripts":{"prebuild":"rimraf dist","build":"tsc","test":"jest","changeset":"changeset","version":"changeset version","release":"pnpm build && changeset publish"},"_id":"@tootallnate/once@3.0.1","homepage":"https://github.com/TooTallNate/once#readme","_integrity":"sha512-VyMVKRrpHTT8PnotUeV8L/mDaMwD5DaAKCFLP73zAqAtvF0FCqky+Ki7BYbFCYQmqFyTe9316Ed5zS70QUR9eg==","_resolved":"/tmp/e0964137001fc860e5234484fa703b66/tootallnate-once-3.0.1.tgz","_from":"file:tootallnate-once-3.0.1.tgz","_nodeVersion":"24.13.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-VyMVKRrpHTT8PnotUeV8L/mDaMwD5DaAKCFLP73zAqAtvF0FCqky+Ki7BYbFCYQmqFyTe9316Ed5zS70QUR9eg==","shasum":"d580decb59cb41a15856387a86800838102daf44","tarball":"https://registry.npmmirror.com/@tootallnate/once/-/once-3.0.1.tgz","fileCount":15,"unpackedSize":25919,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tootallnate%2fonce@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBTRWCddKC0bjqo60jRq4XY1wgN6dM9qAWtBYhl4Ufw7AiB90XtMTrag7hRTsq40OjPXx8p9nr8sVJxFuIMGGgY75g=="}],"size":4689},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:093b5aa9-9715-4fab-809d-d3f5c61f54ef"}},"directories":{},"maintainers":[{"name":"tootallnate","email":"nathan@tootallnate.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/once_3.0.1_1770661177633_0.5134475689822235"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-02-09T18:19:37.836Z","publish_time":1770661177836,"_source_registry_name":"default"},"2.0.1":{"name":"@tootallnate/once","version":"2.0.1","description":"Creates a Promise that waits for a single event","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"prebuild":"rimraf dist","build":"tsc","test":"jest","prepublishOnly":"npm run build","changeset":"changeset","version":"changeset version","release":"npm run build && changeset publish --tag legacy"},"repository":{"type":"git","url":"git+https://github.com/TooTallNate/once.git"},"keywords":[],"author":{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://n8.io/"},"license":"MIT","bugs":{"url":"https://github.com/TooTallNate/once/issues"},"devDependencies":{"@changesets/cli":"^2.29.4","@types/jest":"^27.0.2","@types/node":"^12.12.11","abort-controller":"^3.0.0","jest":"^27.2.1","rimraf":"^3.0.0","ts-jest":"^27.0.5","typescript":"^4.4.3"},"engines":{"node":">= 10"},"jest":{"preset":"ts-jest","globals":{"ts-jest":{"diagnostics":false,"isolatedModules":true}},"verbose":false,"testEnvironment":"node","testMatch":["<rootDir>/test/**/*.test.ts"]},"readmeFilename":"README.md","gitHead":"bcbb21d387e5fb2d0bf8ec2fd8d0ac97d4553241","_id":"@tootallnate/once@2.0.1","homepage":"https://github.com/TooTallNate/once#readme","_nodeVersion":"24.14.1","_npmVersion":"11.13.0","dist":{"integrity":"sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ==","shasum":"35adc6222e3662fa2222ce123b961476a746b9ea","tarball":"https://registry.npmmirror.com/@tootallnate/once/-/once-2.0.1.tgz","fileCount":12,"unpackedSize":17036,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tootallnate%2fonce@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDhEjfvj7RCovMl/V0QS2z2eMKQ7xgf8dGZYGu1yxY8QgIgU8Tpoakg+LfpGfBwcFRQTviP7Kp3l74Mu2pzr5OXYxc="}],"size":4120},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:093b5aa9-9715-4fab-809d-d3f5c61f54ef"}},"directories":{},"maintainers":[{"name":"tootallnate","email":"nathan@tootallnate.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/once_2.0.1_1777831521018_0.3376196098297841"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-05-03T18:05:21.169Z","publish_time":1777831521169,"_source_registry_name":"default"}},"bugs":{"url":"https://github.com/TooTallNate/once/issues"},"homepage":"https://github.com/TooTallNate/once#readme","keywords":[],"repository":{"type":"git","url":"git://github.com/TooTallNate/once.git"},"_source_registry_name":"default"}