{"_id":"@apm-js-collab/tracing-hooks","_rev":"4344822","name":"@apm-js-collab/tracing-hooks","description":"CJS and ESM hooks for orchestrion","dist-tags":{"latest":"0.6.0"},"maintainers":[{"name":"bizob2828","email":""},{"name":"timfish","email":""}],"time":{"modified":"2026-04-08T10:04:28.000Z","created":"2025-08-19T16:33:10.792Z","0.6.0":"2026-04-06T20:54:15.917Z","0.5.0":"2026-03-10T20:08:57.954Z","0.4.0":"2026-03-02T19:56:36.868Z","0.3.1":"2025-09-26T12:22:33.302Z","0.3.0":"2025-09-19T18:48:38.155Z","0.2.0":"2025-09-12T13:21:16.261Z","0.1.1":"2025-08-21T15:34:46.263Z","0.1.0":"2025-08-19T16:43:30.159Z","0.0.1":"2025-08-19T16:33:10.792Z"},"users":{},"repository":{"type":"git","url":"git+https://github.com/apm-js-collab/tracing-hooks.git"},"versions":{"0.6.0":{"name":"@apm-js-collab/tracing-hooks","version":"0.6.0","description":"CJS and ESM hooks for orchestrion","license":"Apache-2.0","type":"commonjs","repository":{"type":"git","url":"git+https://github.com/apm-js-collab/tracing-hooks.git"},"main":"index.js","scripts":{"test":"c8 borp 'test/**/*.test.{js,mjs}'","test:update-snapshots":"SNAP_UPDATE=1 npm test"},"dependencies":{"@apm-js-collab/code-transformer":"^0.12.0","debug":"^4.4.1","module-details-from-path":"^1.0.4"},"devDependencies":{"@matteo.collina/snap":"^0.3.0","borp":"^0.20.1","c8":"^10.1.3"},"gitHead":"c7c19491c7aa1030f7e6445d984cb812abc5b7ba","_id":"@apm-js-collab/tracing-hooks@0.6.0","bugs":{"url":"https://github.com/apm-js-collab/tracing-hooks/issues"},"homepage":"https://github.com/apm-js-collab/tracing-hooks#readme","_nodeVersion":"24.14.1","_npmVersion":"11.12.1","dist":{"shasum":"a93f0acf61f99e8f326746f55cfd511600ef1438","size":6944,"noattachment":false,"key":"/@apm-js-collab/tracing-hooks/-/@apm-js-collab/tracing-hooks-0.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@apm-js-collab/tracing-hooks/download/@apm-js-collab/tracing-hooks-0.6.0.tgz"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2173124c-17a7-449f-894b-09c848172ce5"}},"directories":{},"maintainers":[{"name":"bizob2828","email":""},{"name":"timfish","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tracing-hooks_0.6.0_1775508855748_0.4411132009960921"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-04-06T20:54:15.917Z","publish_time":1775508855917,"_source_registry_name":"default","_cnpm_publish_time":1775508855917},"0.5.0":{"name":"@apm-js-collab/tracing-hooks","version":"0.5.0","description":"CJS and ESM hooks for orchestrion","license":"Apache-2.0","type":"commonjs","repository":{"type":"git","url":"git+https://github.com/apm-js-collab/tracing-hooks.git"},"main":"index.js","scripts":{"test":"c8 borp 'test/**/*.test.{js,mjs}'","test:update-snapshots":"SNAP_UPDATE=1 npm test"},"dependencies":{"@apm-js-collab/code-transformer":"^0.10.0","debug":"^4.4.1","module-details-from-path":"^1.0.4"},"devDependencies":{"@matteo.collina/snap":"^0.3.0","borp":"^0.20.1","c8":"^10.1.3"},"gitHead":"5282e41d54259ec744c2612faecf1d4a723cfa57","_id":"@apm-js-collab/tracing-hooks@0.5.0","bugs":{"url":"https://github.com/apm-js-collab/tracing-hooks/issues"},"homepage":"https://github.com/apm-js-collab/tracing-hooks#readme","_nodeVersion":"24.14.0","_npmVersion":"11.11.0","dist":{"shasum":"e6de91d8d2472fee8ca21bc8d15934c52095cb1d","size":6945,"noattachment":false,"key":"/@apm-js-collab/tracing-hooks/-/@apm-js-collab/tracing-hooks-0.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@apm-js-collab/tracing-hooks/download/@apm-js-collab/tracing-hooks-0.5.0.tgz"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2173124c-17a7-449f-894b-09c848172ce5"}},"directories":{},"maintainers":[{"name":"bizob2828","email":""},{"name":"timfish","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tracing-hooks_0.5.0_1773173337816_0.1588505780497429"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-03-10T20:08:57.954Z","publish_time":1773173337954,"_source_registry_name":"default","_cnpm_publish_time":1773173337954},"0.4.0":{"name":"@apm-js-collab/tracing-hooks","version":"0.4.0","description":"CJS and ESM hooks for orchestrion","license":"Apache-2.0","type":"commonjs","repository":{"type":"git","url":"git+https://github.com/apm-js-collab/tracing-hooks.git"},"main":"index.js","scripts":{"test":"c8 borp 'test/**/*.test.{js,mjs}'","test:update-snapshots":"SNAP_UPDATE=1 npm test"},"dependencies":{"@apm-js-collab/code-transformer":"^0.9.0","debug":"^4.4.1","module-details-from-path":"^1.0.4"},"devDependencies":{"@matteo.collina/snap":"^0.3.0","borp":"^0.20.1","c8":"^10.1.3"},"gitHead":"b19d92a70ce1870a23f3ed67098718a6bec5c22e","_id":"@apm-js-collab/tracing-hooks@0.4.0","bugs":{"url":"https://github.com/apm-js-collab/tracing-hooks/issues"},"homepage":"https://github.com/apm-js-collab/tracing-hooks#readme","_nodeVersion":"24.13.1","_npmVersion":"11.11.0","dist":{"shasum":"6411f32fcc9207541bbd4cbbdfb35a96b8144a2c","size":6944,"noattachment":false,"key":"/@apm-js-collab/tracing-hooks/-/@apm-js-collab/tracing-hooks-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@apm-js-collab/tracing-hooks/download/@apm-js-collab/tracing-hooks-0.4.0.tgz"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2173124c-17a7-449f-894b-09c848172ce5"}},"directories":{},"maintainers":[{"name":"bizob2828","email":""},{"name":"timfish","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tracing-hooks_0.4.0_1772481396708_0.7893836626922199"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-03-02T19:56:36.868Z","publish_time":1772481396868,"_source_registry_name":"default","_cnpm_publish_time":1772481396868},"0.3.1":{"name":"@apm-js-collab/tracing-hooks","version":"0.3.1","description":"CJS and ESM hooks for orchestrion","license":"Apache-2.0","type":"commonjs","repository":{"type":"git","url":"git+https://github.com/apm-js-collab/tracing-hooks.git"},"main":"index.js","scripts":{"test":"c8 borp 'test/**/*.test.{js,mjs}'","test:update-snapshots":"SNAP_UPDATE=1 npm test"},"dependencies":{"@apm-js-collab/code-transformer":"^0.8.0","debug":"^4.4.1","module-details-from-path":"^1.0.4"},"devDependencies":{"@matteo.collina/snap":"^0.3.0","borp":"^0.20.1","c8":"^10.1.3"},"gitHead":"ca05de78d444de06a5982a6dfb124d1542a29153","_id":"@apm-js-collab/tracing-hooks@0.3.1","bugs":{"url":"https://github.com/apm-js-collab/tracing-hooks/issues"},"homepage":"https://github.com/apm-js-collab/tracing-hooks#readme","_nodeVersion":"22.19.0","_npmVersion":"11.6.1","dist":{"shasum":"414d3a93c3a15d8be543a3fac561f7c602b6a588","size":6945,"noattachment":false,"key":"/@apm-js-collab/tracing-hooks/-/@apm-js-collab/tracing-hooks-0.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@apm-js-collab/tracing-hooks/download/@apm-js-collab/tracing-hooks-0.3.1.tgz"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2173124c-17a7-449f-894b-09c848172ce5"}},"directories":{},"maintainers":[{"name":"bizob2828","email":""},{"name":"timfish","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tracing-hooks_0.3.1_1758889353125_0.49154823229375477"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-09-26T12:22:33.302Z","publish_time":1758889353302,"_source_registry_name":"default","_cnpm_publish_time":1758889353302},"0.3.0":{"name":"@apm-js-collab/tracing-hooks","version":"0.3.0","description":"CJS and ESM hooks for orchestrion","license":"Apache-2.0","type":"commonjs","repository":{"type":"git","url":"git+https://github.com/apm-js-collab/tracing-hooks.git"},"main":"index.js","scripts":{"test":"c8 borp 'test/**/*.test.{js,mjs}'"},"dependencies":{"@apm-js-collab/code-transformer":"^0.8.0","debug":"^4.4.1","module-details-from-path":"^1.0.4"},"devDependencies":{"@matteo.collina/snap":"^0.3.0","borp":"^0.20.1","c8":"^10.1.3"},"_id":"@apm-js-collab/tracing-hooks@0.3.0","gitHead":"428c8fec3621d8f2c3c9cc08798c0f17b8b9676b","bugs":{"url":"https://github.com/apm-js-collab/tracing-hooks/issues"},"homepage":"https://github.com/apm-js-collab/tracing-hooks#readme","_nodeVersion":"22.19.0","_npmVersion":"11.6.0","dist":{"shasum":"78522bdef95385b0fd31bdf9b2575947e88884f9","size":6987,"noattachment":false,"key":"/@apm-js-collab/tracing-hooks/-/@apm-js-collab/tracing-hooks-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@apm-js-collab/tracing-hooks/download/@apm-js-collab/tracing-hooks-0.3.0.tgz"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2173124c-17a7-449f-894b-09c848172ce5"}},"directories":{},"maintainers":[{"name":"bizob2828","email":""},{"name":"timfish","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tracing-hooks_0.3.0_1758307717964_0.24590495523111944"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-09-19T18:48:38.155Z","publish_time":1758307718155,"_source_registry_name":"default","_cnpm_publish_time":1758307718155},"0.2.0":{"name":"@apm-js-collab/tracing-hooks","version":"0.2.0","description":"CJS and ESM hooks for orchestrion","license":"Apache-2.0","type":"commonjs","repository":{"type":"git","url":"git+https://github.com/apm-js-collab/tracing-hooks.git"},"main":"index.js","scripts":{"test":"c8 borp 'test/**/*.test.{js,mjs}'"},"dependencies":{"@apm-js-collab/code-transformer":"^0.7.0","debug":"^4.4.1","module-details-from-path":"^1.0.4"},"devDependencies":{"@matteo.collina/snap":"^0.3.0","borp":"^0.20.1","c8":"^10.1.3"},"_id":"@apm-js-collab/tracing-hooks@0.2.0","gitHead":"6811c091442dfc775b19fc4050255aa0fdf15ed9","bugs":{"url":"https://github.com/apm-js-collab/tracing-hooks/issues"},"homepage":"https://github.com/apm-js-collab/tracing-hooks#readme","_nodeVersion":"22.19.0","_npmVersion":"11.6.0","dist":{"shasum":"b34f0857055895400e1ff0c15be5fd98cc378530","size":6429,"noattachment":false,"key":"/@apm-js-collab/tracing-hooks/-/@apm-js-collab/tracing-hooks-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@apm-js-collab/tracing-hooks/download/@apm-js-collab/tracing-hooks-0.2.0.tgz"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2173124c-17a7-449f-894b-09c848172ce5"}},"directories":{},"maintainers":[{"name":"bizob2828","email":""},{"name":"timfish","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tracing-hooks_0.2.0_1757683276084_0.3401273988353717"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-09-12T13:21:16.261Z","publish_time":1757683276261,"_source_registry_name":"default","_cnpm_publish_time":1757683276261},"0.1.1":{"name":"@apm-js-collab/tracing-hooks","version":"0.1.1","description":"CJS and ESM hooks for orchestrion","license":"Apache-2.0","type":"commonjs","repository":{"type":"git","url":"git+https://github.com/apm-js-collab/tracing-hooks.git"},"engines":{"node":">=20"},"main":"index.js","scripts":{"test":"c8 borp 'test/**/*.test.{js,mjs}'"},"dependencies":{"@apm-js-collab/code-transformer":"^0.7.0","debug":"^4.4.1","module-details-from-path":"^1.0.4"},"devDependencies":{"@matteo.collina/snap":"^0.3.0","borp":"^0.20.1","c8":"^10.1.3"},"_id":"@apm-js-collab/tracing-hooks@0.1.1","gitHead":"7fce6e71b146057f213c72ae012774335154df25","bugs":{"url":"https://github.com/apm-js-collab/tracing-hooks/issues"},"homepage":"https://github.com/apm-js-collab/tracing-hooks#readme","_nodeVersion":"24.5.0","_npmVersion":"11.5.1","dist":{"shasum":"73f86cd18827e6d6253eda5322a6feb5753cfc58","size":6458,"noattachment":false,"key":"/@apm-js-collab/tracing-hooks/-/@apm-js-collab/tracing-hooks-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@apm-js-collab/tracing-hooks/download/@apm-js-collab/tracing-hooks-0.1.1.tgz"},"_npmUser":{"name":"bizob2828","email":"robert.evans25@gmail.com"},"directories":{},"maintainers":[{"name":"bizob2828","email":""},{"name":"timfish","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tracing-hooks_0.1.1_1755790486059_0.3680358799461181"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-21T15:34:46.263Z","publish_time":1755790486263,"_source_registry_name":"default","_cnpm_publish_time":1755790486263},"0.1.0":{"name":"@apm-js-collab/tracing-hooks","version":"0.1.0","description":"CJS and ESM hooks for orchestrion","license":"Apache-2.0","type":"commonjs","repository":{"type":"git","url":"git+https://github.com/apm-js-collab/tracing-hooks.git"},"engines":{"node":">=20"},"main":"index.js","scripts":{"test":"c8 borp 'test/**/*.test.{js,mjs}'"},"dependencies":{"@apm-js-collab/code-transformer":"^0.6.0","debug":"^4.4.1","module-details-from-path":"^1.0.4"},"devDependencies":{"@matteo.collina/snap":"^0.3.0","borp":"^0.20.1","c8":"^10.1.3"},"_id":"@apm-js-collab/tracing-hooks@0.1.0","gitHead":"051b422c845e3f39fb5b3c43540c18b57a82d9df","bugs":{"url":"https://github.com/apm-js-collab/tracing-hooks/issues"},"homepage":"https://github.com/apm-js-collab/tracing-hooks#readme","_nodeVersion":"24.5.0","_npmVersion":"11.5.1","dist":{"shasum":"311c09599d9b040787c4c8093905f39432d7ab82","size":6451,"noattachment":false,"key":"/@apm-js-collab/tracing-hooks/-/@apm-js-collab/tracing-hooks-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@apm-js-collab/tracing-hooks/download/@apm-js-collab/tracing-hooks-0.1.0.tgz"},"_npmUser":{"name":"bizob2828","email":"robert.evans25@gmail.com"},"directories":{},"maintainers":[{"name":"bizob2828","email":""},{"name":"timfish","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tracing-hooks_0.1.0_1755621809958_0.7009639513050079"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-19T16:43:30.159Z","publish_time":1755621810159,"_source_registry_name":"default","_cnpm_publish_time":1755621810159},"0.0.1":{"name":"@apm-js-collab/tracing-hooks","version":"0.0.1","description":"CJS and ESM hooks for orchestrion","license":"Apache-2.0","type":"commonjs","repository":{"type":"git","url":"git+https://github.com/apm-js-collab/tracing-hooks.git"},"engines":{"node":">=20"},"main":"index.js","scripts":{"test":"c8 borp 'test/**/*.test.{js,mjs}'"},"dependencies":{"@apm-js-collab/code-transformer":"^0.6.0","debug":"^4.4.1","module-details-from-path":"^1.0.4"},"devDependencies":{"@matteo.collina/snap":"^0.3.0","borp":"^0.20.1","c8":"^10.1.3"},"_id":"@apm-js-collab/tracing-hooks@0.0.1","gitHead":"5acb9e58268b382ed87c3d5f9fced71d2d43073a","bugs":{"url":"https://github.com/apm-js-collab/tracing-hooks/issues"},"homepage":"https://github.com/apm-js-collab/tracing-hooks#readme","_nodeVersion":"24.5.0","_npmVersion":"11.5.1","dist":{"shasum":"38869afdf3224822ef4c23e102ef229ea97937e9","size":2574,"noattachment":false,"key":"/@apm-js-collab/tracing-hooks/-/@apm-js-collab/tracing-hooks-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@apm-js-collab/tracing-hooks/download/@apm-js-collab/tracing-hooks-0.0.1.tgz"},"_npmUser":{"name":"bizob2828","email":"robert.evans25@gmail.com"},"directories":{},"maintainers":[{"name":"bizob2828","email":""},{"name":"timfish","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tracing-hooks_0.0.1_1755621190597_0.6745145552591432"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-19T16:33:10.792Z","publish_time":1755621190792,"_source_registry_name":"default","_cnpm_publish_time":1755621190792}},"readme":"# Tracing Hooks\nThis repository contains a ESM loader for injecting tracing channel hooks into Node.js modules. It also has a patch for Module to be used to patch CJS modules.\n\n## Usage\n\nTo load esm loader:\n\n```js\n// esm-loader.mjs\nimport { register } from 'node:module';\nconst instrumentations = [\n  {\n    channelName: 'channel1',\n    module: { name: 'pkg1', verisonRange: '>=1.0.0', filePath: 'index.js' },\n    functionQuery: {\n      className: 'Class1',\n      methodName: 'method1', \n      kind: 'Async'\n    }\n  },\n  {\n    channelName: 'channel2',\n    module: { name: 'pkg2', verisonRange: '>=1.0.0', filePath: 'index.js' },\n    functionQuery: {\n      className: 'Class2,\n      methodName: 'method2', \n      kind: 'Sync'\n    }\n  }\n]\n\nregister('@apm-js-collab/tracing-hooks/hook.mjs', import.meta.url, {\n  data: { instrumentations }\n});\n```\n\nTo use the loader, you can run your Node.js application with the `--import` flag:\n\n```bash\nnode --import esm-loader.mjs your-app.js\n```\n\nTo load CJS patch:\n\n```js\n// cjs-patch.js\nconst ModulePatch = require('@apm-js-collab/tracing-hooks')\nconst instrumentations = [\n  {\n    channelName: 'channel1',\n    module: { name: 'pkg1', verisonRange: '>=1.0.0', filePath: 'index.js' },\n    functionQuery: {\n      className: 'Class1',\n      methodName: 'method1', \n      kind: 'Async'\n    }\n  },\n  {\n    channelName: 'channel2',\n    module: { name: 'pkg2', verisonRange: '>=1.0.0', filePath: 'index.js' },\n    functionQuery: {\n      className: 'Class2',\n      methodName: 'method2', \n      kind: 'Sync'\n    }\n  }\n]\n\n\nconst modulePatch = new ModulePatch({ instrumentations });\nmodulePatch.patch()\n```\n\nTo use the CJS patch you can run your Node.js application with the `--require` flag:\n\n```bash\nnode --require cjs-patch.js your-app.js\n```\n\n## Debugging\n\nThe [debug module](https://www.npmjs.com/package/debug) is used to provide\ninsight into the patching process. Set `DEBUG='@apm-js-collab*'` to view these\nlogs.\n\nAdditionally, any patched files can be written out by enabling dump mode. This\nis done by setting the environment variable `TRACING_DUMP` to any value. By\ndefault, it will write out file to the system's temporary directory as the\nparent directory. The target parent directory can be configured by setting\nthe `TRACING_DUMP_DIR` environment variable to an absolute path. In either\ncase, the resolved filename of the module being patched is appended. For\nexample, if we are patching `lib/index.js` in the `foo` package, and we set\na base directory of `/tmp/dump/`, then the patched code will be written to\n`/tmp/dump/foo/lib/index.js`.\n","_attachments":{},"homepage":"https://github.com/apm-js-collab/tracing-hooks#readme","bugs":{"url":"https://github.com/apm-js-collab/tracing-hooks/issues"},"license":"Apache-2.0"}