@contrast/agent-bundle 5.47.0 → 5.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (526) hide show
  1. package/node_modules/@contrast/agent/package.json +10 -10
  2. package/node_modules/@contrast/agentify/package.json +14 -14
  3. package/node_modules/@contrast/architecture-components/package.json +4 -4
  4. package/node_modules/@contrast/assess/lib/configuration-analysis/install/apollo-server.js +1 -1
  5. package/node_modules/@contrast/assess/lib/configuration-analysis/install/graphql-yoga.js +1 -1
  6. package/node_modules/@contrast/assess/lib/dataflow/sinks/install/fs.js +8 -15
  7. package/node_modules/@contrast/assess/package.json +11 -11
  8. package/node_modules/@contrast/config/package.json +2 -2
  9. package/node_modules/@contrast/core/package.json +4 -4
  10. package/node_modules/@contrast/deadzones/package.json +4 -4
  11. package/node_modules/@contrast/dep-hooks/lib/export-handler-registry.js +1 -10
  12. package/node_modules/@contrast/dep-hooks/lib/export-hook-descriptor.js +1 -1
  13. package/node_modules/@contrast/dep-hooks/lib/index.d.ts +1 -1
  14. package/node_modules/@contrast/dep-hooks/lib/index.js +1 -1
  15. package/node_modules/@contrast/dep-hooks/lib/package-finder.d.ts +2 -1
  16. package/node_modules/@contrast/dep-hooks/lib/package-finder.js +11 -2
  17. package/node_modules/@contrast/dep-hooks/package.json +3 -3
  18. package/node_modules/@contrast/esm-hooks/package.json +5 -5
  19. package/node_modules/@contrast/instrumentation/package.json +4 -4
  20. package/node_modules/@contrast/library-analysis/lib/install/library-reporting/dep.json +144 -202
  21. package/node_modules/@contrast/library-analysis/package.json +3 -3
  22. package/node_modules/@contrast/logger/package.json +3 -3
  23. package/node_modules/@contrast/metrics/package.json +5 -5
  24. package/node_modules/@contrast/patcher/package.json +2 -2
  25. package/node_modules/@contrast/protect/lib/input-tracing/install/fs.js +0 -8
  26. package/node_modules/@contrast/protect/package.json +10 -10
  27. package/node_modules/@contrast/reporter/package.json +5 -5
  28. package/node_modules/@contrast/rewriter/package.json +4 -4
  29. package/node_modules/@contrast/route-coverage/lib/index.d.ts +2 -0
  30. package/node_modules/@contrast/route-coverage/lib/index.js +2 -1
  31. package/node_modules/@contrast/route-coverage/lib/install/express.js +535 -0
  32. package/node_modules/@contrast/route-coverage/lib/install/fastify/fastify-express.js +71 -0
  33. package/node_modules/@contrast/route-coverage/lib/install/fastify/fastify-middie.js +67 -0
  34. package/node_modules/@contrast/route-coverage/lib/install/{fastify.js → fastify/fastify.js} +12 -12
  35. package/node_modules/@contrast/route-coverage/lib/install/{express → fastify}/index.js +6 -5
  36. package/node_modules/@contrast/route-coverage/lib/install/koa.js +39 -45
  37. package/node_modules/@contrast/route-coverage/lib/utils/route-info.js +26 -1
  38. package/node_modules/@contrast/route-coverage/package.json +7 -7
  39. package/node_modules/@contrast/scopes/package.json +5 -5
  40. package/node_modules/@contrast/sec-obs/package.json +8 -8
  41. package/node_modules/@contrast/sources/package.json +2 -2
  42. package/node_modules/@contrast/telemetry/package.json +4 -4
  43. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_attributes.d.ts +697 -30
  44. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_attributes.js +697 -30
  45. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_attributes.js.map +1 -1
  46. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_events.d.ts +6 -0
  47. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_events.js +6 -0
  48. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_events.js.map +1 -1
  49. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_metrics.d.ts +877 -49
  50. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_metrics.js +877 -49
  51. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_metrics.js.map +1 -1
  52. package/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_attributes.d.ts +13 -4
  53. package/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_attributes.js +13 -4
  54. package/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_attributes.js.map +1 -1
  55. package/node_modules/@opentelemetry/semantic-conventions/build/esm/version.d.ts +1 -1
  56. package/node_modules/@opentelemetry/semantic-conventions/build/esm/version.js +1 -1
  57. package/node_modules/@opentelemetry/semantic-conventions/build/esm/version.js.map +1 -1
  58. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_attributes.d.ts +697 -30
  59. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_attributes.js +697 -30
  60. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_attributes.js.map +1 -1
  61. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_events.d.ts +6 -0
  62. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_events.js +6 -0
  63. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_events.js.map +1 -1
  64. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_metrics.d.ts +877 -49
  65. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_metrics.js +877 -49
  66. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_metrics.js.map +1 -1
  67. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/stable_attributes.d.ts +13 -4
  68. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/stable_attributes.js +13 -4
  69. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/stable_attributes.js.map +1 -1
  70. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/version.d.ts +1 -1
  71. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/version.js +1 -1
  72. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/version.js.map +1 -1
  73. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_attributes.d.ts +697 -30
  74. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_attributes.js +729 -61
  75. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_attributes.js.map +1 -1
  76. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_events.d.ts +6 -0
  77. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_events.js +7 -1
  78. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_events.js.map +1 -1
  79. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_metrics.d.ts +877 -49
  80. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_metrics.js +886 -56
  81. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_metrics.js.map +1 -1
  82. package/node_modules/@opentelemetry/semantic-conventions/build/src/stable_attributes.d.ts +13 -4
  83. package/node_modules/@opentelemetry/semantic-conventions/build/src/stable_attributes.js +13 -4
  84. package/node_modules/@opentelemetry/semantic-conventions/build/src/stable_attributes.js.map +1 -1
  85. package/node_modules/@opentelemetry/semantic-conventions/build/src/version.d.ts +1 -1
  86. package/node_modules/@opentelemetry/semantic-conventions/build/src/version.js +1 -1
  87. package/node_modules/@opentelemetry/semantic-conventions/build/src/version.js.map +1 -1
  88. package/node_modules/@opentelemetry/semantic-conventions/package.json +3 -5
  89. package/node_modules/{pino → @pinojs/redact}/.github/dependabot.yml +1 -1
  90. package/node_modules/@pinojs/redact/.github/workflows/ci.yml +48 -0
  91. package/node_modules/@pinojs/redact/.github/workflows/publish-release.yml +43 -0
  92. package/node_modules/{abort-controller → @pinojs/redact}/LICENSE +1 -1
  93. package/node_modules/@pinojs/redact/README.md +350 -0
  94. package/node_modules/@pinojs/redact/benchmarks/basic.js +184 -0
  95. package/node_modules/@pinojs/redact/eslint.config.js +1 -0
  96. package/node_modules/@pinojs/redact/index.d.ts +52 -0
  97. package/node_modules/@pinojs/redact/index.js +529 -0
  98. package/node_modules/@pinojs/redact/index.test-d.ts +22 -0
  99. package/node_modules/@pinojs/redact/package.json +37 -0
  100. package/node_modules/@pinojs/redact/scripts/sync-version.mjs +20 -0
  101. package/node_modules/@pinojs/redact/test/actual-redact-comparison.test.js +211 -0
  102. package/node_modules/@pinojs/redact/test/index.test.js +824 -0
  103. package/node_modules/@pinojs/redact/test/integration.test.js +390 -0
  104. package/node_modules/@pinojs/redact/test/multiple-wildcards.test.js +227 -0
  105. package/node_modules/@pinojs/redact/test/prototype-pollution.test.js +223 -0
  106. package/node_modules/@pinojs/redact/test/selective-clone.test.js +115 -0
  107. package/node_modules/@pinojs/redact/tsconfig.json +19 -0
  108. package/node_modules/@types/node/README.md +1 -1
  109. package/node_modules/@types/node/console.d.ts +3 -2
  110. package/node_modules/@types/node/package.json +2 -2
  111. package/node_modules/@types/node/process.d.ts +7 -0
  112. package/node_modules/@types/node/sqlite.d.ts +107 -0
  113. package/node_modules/@types/node/url.d.ts +32 -8
  114. package/node_modules/axios/CHANGELOG.md +18 -0
  115. package/node_modules/axios/README.md +1 -4
  116. package/node_modules/axios/dist/axios.js +2 -2
  117. package/node_modules/axios/dist/axios.js.map +1 -1
  118. package/node_modules/axios/dist/axios.min.js +2 -2
  119. package/node_modules/axios/dist/axios.min.js.map +1 -1
  120. package/node_modules/axios/dist/browser/axios.cjs +2 -2
  121. package/node_modules/axios/dist/browser/axios.cjs.map +1 -1
  122. package/node_modules/axios/dist/esm/axios.js +2 -2
  123. package/node_modules/axios/dist/esm/axios.js.map +1 -1
  124. package/node_modules/axios/dist/esm/axios.min.js +2 -2
  125. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  126. package/node_modules/axios/dist/node/axios.cjs +25 -20
  127. package/node_modules/axios/dist/node/axios.cjs.map +1 -1
  128. package/node_modules/axios/lib/adapters/http.js +22 -18
  129. package/node_modules/axios/lib/env/data.js +1 -1
  130. package/node_modules/axios/package.json +1 -1
  131. package/node_modules/form-data/CHANGELOG.md +60 -2
  132. package/node_modules/form-data/README.md +4 -4
  133. package/node_modules/form-data/lib/form_data.js +2 -2
  134. package/node_modules/form-data/package.json +4 -4
  135. package/node_modules/ipaddr.js/README.md +1 -0
  136. package/node_modules/ipaddr.js/ipaddr.min.js +1 -1
  137. package/node_modules/ipaddr.js/lib/ipaddr.js +11 -0
  138. package/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +1 -0
  139. package/node_modules/ipaddr.js/package.json +2 -3
  140. package/node_modules/nan/.github/workflows/ci.yml +3 -1
  141. package/node_modules/nan/CHANGELOG.md +4 -1
  142. package/node_modules/nan/README.md +2 -2
  143. package/node_modules/nan/nan.h +25 -15
  144. package/node_modules/nan/nan_maybe_43_inl.h +5 -1
  145. package/node_modules/nan/package.json +2 -2
  146. package/node_modules/node-abi/abi_registry.json +8 -1
  147. package/node_modules/node-abi/package.json +1 -1
  148. package/node_modules/pino/CONTRIBUTING.md +4 -0
  149. package/node_modules/pino/LICENSE +1 -1
  150. package/node_modules/pino/README.md +20 -3
  151. package/node_modules/pino/benchmarks/basic.bench.js +1 -1
  152. package/node_modules/pino/benchmarks/child-child.bench.js +1 -1
  153. package/node_modules/pino/benchmarks/child-creation.bench.js +1 -1
  154. package/node_modules/pino/benchmarks/child.bench.js +1 -1
  155. package/node_modules/pino/benchmarks/deep-object.bench.js +1 -1
  156. package/node_modules/pino/benchmarks/internal/just-pino-heavy.bench.js +1 -1
  157. package/node_modules/pino/benchmarks/internal/just-pino.bench.js +1 -1
  158. package/node_modules/pino/benchmarks/internal/redact.bench.js +1 -1
  159. package/node_modules/pino/benchmarks/long-string.bench.js +1 -1
  160. package/node_modules/pino/benchmarks/multi-arg.bench.js +1 -1
  161. package/node_modules/pino/benchmarks/multistream.js +1 -1
  162. package/node_modules/pino/benchmarks/object.bench.js +1 -1
  163. package/node_modules/pino/benchmarks/utils/generate-benchmark-doc.js +2 -2
  164. package/node_modules/pino/benchmarks/utils/runbench.js +3 -3
  165. package/node_modules/pino/benchmarks/utils/wrap-log-level.js +2 -2
  166. package/node_modules/pino/browser.js +76 -36
  167. package/node_modules/pino/build/sync-version.js +18 -3
  168. package/node_modules/pino/docs/api.md +155 -13
  169. package/node_modules/pino/docs/browser.md +16 -1
  170. package/node_modules/pino/docs/bundling.md +5 -3
  171. package/node_modules/pino/docs/diagnostics.md +16 -0
  172. package/node_modules/pino/docs/ecosystem.md +15 -12
  173. package/node_modules/pino/docs/help.md +29 -3
  174. package/node_modules/pino/docs/lts.md +5 -4
  175. package/node_modules/pino/docs/transports.md +442 -271
  176. package/node_modules/pino/docs/web.md +59 -9
  177. package/node_modules/pino/eslint.config.js +19 -0
  178. package/node_modules/pino/examples/transport.js +2 -2
  179. package/node_modules/pino/file.js +1 -1
  180. package/node_modules/pino/lib/meta.js +1 -1
  181. package/node_modules/pino/lib/multistream.js +17 -2
  182. package/node_modules/pino/lib/proto.js +35 -11
  183. package/node_modules/pino/lib/redaction.js +9 -13
  184. package/node_modules/pino/lib/time.js +29 -1
  185. package/node_modules/pino/lib/tools.js +37 -8
  186. package/node_modules/pino/lib/transport-stream.js +10 -4
  187. package/node_modules/pino/lib/transport.js +23 -9
  188. package/node_modules/pino/lib/worker.js +164 -24
  189. package/node_modules/pino/package.json +28 -27
  190. package/node_modules/pino/pino.d.ts +244 -203
  191. package/node_modules/pino/pino.js +7 -3
  192. package/node_modules/pino/test/basic.test.js +181 -169
  193. package/node_modules/pino/test/broken-pipe.test.js +18 -16
  194. package/node_modules/pino/test/browser-child.test.js +26 -0
  195. package/node_modules/pino/test/browser-is-level-enabled.test.js +101 -0
  196. package/node_modules/pino/test/browser-serializers.test.js +0 -2
  197. package/node_modules/pino/test/browser-transmit.test.js +68 -0
  198. package/node_modules/pino/test/browser.test.js +98 -13
  199. package/node_modules/pino/test/complex-objects.test.js +8 -6
  200. package/node_modules/pino/test/crlf.test.js +7 -5
  201. package/node_modules/pino/test/custom-levels.test.js +80 -66
  202. package/node_modules/pino/test/diagnostics.test.js +107 -0
  203. package/node_modules/pino/test/error-key.test.js +37 -0
  204. package/node_modules/pino/test/error.test.js +48 -43
  205. package/node_modules/pino/test/escaping.test.js +8 -6
  206. package/node_modules/pino/test/esm/esm.mjs +5 -3
  207. package/node_modules/pino/test/esm/index.test.js +14 -27
  208. package/node_modules/pino/test/esm/named-exports.mjs +9 -8
  209. package/node_modules/pino/test/exit.test.js +18 -16
  210. package/node_modules/pino/test/fixtures/broken-pipe/basic.js +1 -1
  211. package/node_modules/pino/test/fixtures/broken-pipe/destination.js +1 -1
  212. package/node_modules/pino/test/fixtures/broken-pipe/syncfalse.js +1 -1
  213. package/node_modules/pino/test/fixtures/console-transport.js +1 -1
  214. package/node_modules/pino/test/fixtures/crashing-transport.js +13 -0
  215. package/node_modules/pino/test/fixtures/default-exit.js +1 -1
  216. package/node_modules/pino/test/fixtures/destination-exit.js +1 -1
  217. package/node_modules/pino/test/fixtures/noop-transport.js +1 -1
  218. package/node_modules/pino/test/fixtures/pretty/null-prototype.js +1 -1
  219. package/node_modules/pino/test/fixtures/stdout-hack-protection.js +1 -1
  220. package/node_modules/pino/test/fixtures/syncfalse-child.js +1 -1
  221. package/node_modules/pino/test/fixtures/syncfalse-exit.js +1 -1
  222. package/node_modules/pino/test/fixtures/syncfalse-flush-exit.js +1 -1
  223. package/node_modules/pino/test/fixtures/syncfalse.js +1 -1
  224. package/node_modules/pino/test/fixtures/syntax-error-esm.mjs +2 -0
  225. package/node_modules/pino/test/fixtures/to-file-transport-with-transform.js +3 -3
  226. package/node_modules/pino/test/fixtures/to-file-transport.js +2 -2
  227. package/node_modules/pino/test/fixtures/to-file-transport.mjs +2 -2
  228. package/node_modules/pino/test/fixtures/transport/index.js +2 -2
  229. package/node_modules/pino/test/fixtures/transport-main.js +1 -1
  230. package/node_modules/pino/test/fixtures/transport-transform.js +1 -1
  231. package/node_modules/pino/test/fixtures/transport-uses-pino-config.js +1 -1
  232. package/node_modules/pino/test/fixtures/transport-worker-data.js +1 -1
  233. package/node_modules/pino/test/fixtures/transport-worker.js +2 -2
  234. package/node_modules/pino/test/fixtures/ts/to-file-transport-with-transform.ts +3 -3
  235. package/node_modules/pino/test/fixtures/ts/to-file-transport.ts +2 -2
  236. package/node_modules/pino/test/fixtures/ts/transpile.cjs +1 -1
  237. package/node_modules/pino/test/fixtures/ts/transport-exit-immediately-with-async-dest.ts +1 -1
  238. package/node_modules/pino/test/fixtures/ts/transport-main.ts +1 -1
  239. package/node_modules/pino/test/fixtures/ts/transport-worker.ts +1 -1
  240. package/node_modules/pino/test/formatters.test.js +46 -37
  241. package/node_modules/pino/test/helper.d.ts +1 -1
  242. package/node_modules/pino/test/helper.js +37 -10
  243. package/node_modules/pino/test/hooks.test.js +45 -28
  244. package/node_modules/pino/test/http.test.js +39 -67
  245. package/node_modules/pino/test/internals/version.test.js +11 -9
  246. package/node_modules/pino/test/is-level-enabled.test.js +66 -72
  247. package/node_modules/pino/test/levels.test.js +245 -141
  248. package/node_modules/pino/test/metadata.test.js +45 -31
  249. package/node_modules/pino/test/mixin-merge-strategy.test.js +9 -7
  250. package/node_modules/pino/test/mixin.test.js +63 -40
  251. package/node_modules/pino/test/multistream.test.js +174 -118
  252. package/node_modules/pino/test/redact.test.js +172 -126
  253. package/node_modules/pino/test/serializers.test.js +61 -57
  254. package/node_modules/pino/test/stdout-protection.test.js +14 -12
  255. package/node_modules/pino/test/syncfalse.test.js +29 -34
  256. package/node_modules/pino/test/timestamp-nano.test.js +37 -0
  257. package/node_modules/pino/test/timestamp.test.js +37 -34
  258. package/node_modules/pino/test/transport/big.test.js +11 -12
  259. package/node_modules/pino/test/transport/bundlers-support.test.js +15 -43
  260. package/node_modules/pino/test/transport/caller.test.js +9 -8
  261. package/node_modules/pino/test/transport/core.test.js +175 -145
  262. package/node_modules/pino/test/transport/core.transpiled.test.ts +17 -19
  263. package/node_modules/pino/test/transport/crash.test.js +36 -0
  264. package/node_modules/pino/test/transport/module-link.test.js +21 -19
  265. package/node_modules/pino/test/transport/pipeline.test.js +109 -8
  266. package/node_modules/pino/test/transport/repl.test.js +4 -3
  267. package/node_modules/pino/test/transport/{syncfalse.test.js → sync-false.test.js} +14 -12
  268. package/node_modules/pino/test/transport/sync-true.test.js +57 -0
  269. package/node_modules/pino/test/transport/targets.test.js +25 -5
  270. package/node_modules/pino/test/transport/uses-pino-config.test.js +16 -17
  271. package/node_modules/pino/test/transport-stream.test.js +40 -0
  272. package/node_modules/pino/test/types/{pino-import.test-d.ts → pino-import.test-d.cts} +4 -3
  273. package/node_modules/pino/test/types/pino-multistream.test-d.ts +1 -1
  274. package/node_modules/pino/test/types/pino-top-export.test-d.ts +1 -0
  275. package/node_modules/pino/test/types/pino-transport.test-d.ts +1 -1
  276. package/node_modules/pino/test/types/pino-type-only.test-d.ts +24 -6
  277. package/node_modules/pino/test/types/pino.test-d.ts +161 -6
  278. package/node_modules/pino/test/types/pino.ts +31 -19
  279. package/node_modules/pino/tsconfig.json +1 -1
  280. package/node_modules/pino-abstract-transport/.github/workflows/ci.yml +2 -4
  281. package/node_modules/pino-abstract-transport/index.js +1 -1
  282. package/node_modules/pino-abstract-transport/package.json +2 -3
  283. package/node_modules/pino-abstract-transport/test/base.test.js +1 -1
  284. package/node_modules/pino-abstract-transport/test/worker.test.js +7 -14
  285. package/node_modules/pino-std-serializers/.github/workflows/ci.yml +5 -5
  286. package/node_modules/pino-std-serializers/Readme.md +1 -0
  287. package/node_modules/pino-std-serializers/package.json +9 -8
  288. package/node_modules/pino-std-serializers/test/err-with-cause.test.js +72 -88
  289. package/node_modules/pino-std-serializers/test/err.test.js +76 -91
  290. package/node_modules/pino-std-serializers/test/req.test.js +142 -98
  291. package/node_modules/pino-std-serializers/test/res.test.js +42 -31
  292. package/node_modules/process-warning/.github/dependabot.yml +1 -1
  293. package/node_modules/process-warning/.github/workflows/ci.yml +1 -2
  294. package/node_modules/process-warning/README.md +4 -4
  295. package/node_modules/process-warning/eslint.config.js +6 -0
  296. package/node_modules/process-warning/package.json +39 -8
  297. package/node_modules/process-warning/test/emit-interpolated-string.test.js +11 -6
  298. package/node_modules/process-warning/test/emit-once-only.test.js +11 -6
  299. package/node_modules/process-warning/test/emit-reset.test.js +10 -6
  300. package/node_modules/process-warning/test/emit-set.test.js +10 -5
  301. package/node_modules/process-warning/test/emit-unlimited.test.js +12 -7
  302. package/node_modules/process-warning/test/index.test.js +20 -20
  303. package/node_modules/process-warning/test/issue-88.test.js +8 -3
  304. package/node_modules/process-warning/test/jest.test.js +17 -15
  305. package/node_modules/process-warning/test/no-warnings.test.js +9 -9
  306. package/node_modules/process-warning/test/promise.js +10 -0
  307. package/node_modules/process-warning/types/index.d.ts +5 -5
  308. package/node_modules/thread-stream/.github/workflows/ci.yml +4 -8
  309. package/node_modules/thread-stream/index.d.ts +4 -5
  310. package/node_modules/thread-stream/lib/worker.js +5 -2
  311. package/node_modules/thread-stream/package.json +6 -4
  312. package/node_modules/thread-stream/test/base.test.js +12 -0
  313. package/node_modules/thread-stream/test/never-drain.test.js +3 -1
  314. package/node_modules/thread-stream/test/pkg/pkg.test.js +2 -0
  315. package/node_modules/thread-stream/test/syntax-error.mjs +2 -0
  316. package/node_modules/thread-stream/tsconfig.json +8 -0
  317. package/node_modules/yaml/browser/dist/compose/compose-collection.js +1 -1
  318. package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +1 -1
  319. package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +2 -2
  320. package/node_modules/yaml/browser/dist/errors.js +1 -1
  321. package/node_modules/yaml/browser/dist/nodes/Alias.js +1 -1
  322. package/node_modules/yaml/browser/dist/parse/parser.js +2 -2
  323. package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +1 -1
  324. package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +1 -1
  325. package/node_modules/yaml/dist/compose/compose-collection.js +1 -1
  326. package/node_modules/yaml/dist/compose/resolve-block-seq.js +1 -1
  327. package/node_modules/yaml/dist/compose/resolve-flow-collection.js +2 -2
  328. package/node_modules/yaml/dist/errors.js +1 -1
  329. package/node_modules/yaml/dist/nodes/Alias.js +1 -1
  330. package/node_modules/yaml/dist/parse/parser.js +2 -2
  331. package/node_modules/yaml/dist/stringify/stringifyNumber.js +1 -1
  332. package/node_modules/yaml/dist/stringify/stringifyPair.js +1 -1
  333. package/node_modules/yaml/package.json +4 -4
  334. package/package.json +2 -2
  335. package/node_modules/@contrast/route-coverage/lib/install/express/express4.js +0 -157
  336. package/node_modules/@contrast/route-coverage/lib/install/express/express5.js +0 -553
  337. package/node_modules/abort-controller/README.md +0 -98
  338. package/node_modules/abort-controller/browser.js +0 -13
  339. package/node_modules/abort-controller/browser.mjs +0 -11
  340. package/node_modules/abort-controller/dist/abort-controller.d.ts +0 -43
  341. package/node_modules/abort-controller/dist/abort-controller.js +0 -127
  342. package/node_modules/abort-controller/dist/abort-controller.js.map +0 -1
  343. package/node_modules/abort-controller/dist/abort-controller.mjs +0 -118
  344. package/node_modules/abort-controller/dist/abort-controller.mjs.map +0 -1
  345. package/node_modules/abort-controller/dist/abort-controller.umd.js +0 -5
  346. package/node_modules/abort-controller/dist/abort-controller.umd.js.map +0 -1
  347. package/node_modules/abort-controller/package.json +0 -97
  348. package/node_modules/abort-controller/polyfill.js +0 -21
  349. package/node_modules/abort-controller/polyfill.mjs +0 -19
  350. package/node_modules/base64-js/LICENSE +0 -21
  351. package/node_modules/base64-js/README.md +0 -34
  352. package/node_modules/base64-js/base64js.min.js +0 -1
  353. package/node_modules/base64-js/index.d.ts +0 -3
  354. package/node_modules/base64-js/index.js +0 -150
  355. package/node_modules/base64-js/package.json +0 -47
  356. package/node_modules/buffer/AUTHORS.md +0 -73
  357. package/node_modules/buffer/LICENSE +0 -21
  358. package/node_modules/buffer/README.md +0 -410
  359. package/node_modules/buffer/index.d.ts +0 -194
  360. package/node_modules/buffer/index.js +0 -2106
  361. package/node_modules/buffer/package.json +0 -93
  362. package/node_modules/event-target-shim/LICENSE +0 -22
  363. package/node_modules/event-target-shim/README.md +0 -293
  364. package/node_modules/event-target-shim/dist/event-target-shim.js +0 -871
  365. package/node_modules/event-target-shim/dist/event-target-shim.js.map +0 -1
  366. package/node_modules/event-target-shim/dist/event-target-shim.mjs +0 -862
  367. package/node_modules/event-target-shim/dist/event-target-shim.mjs.map +0 -1
  368. package/node_modules/event-target-shim/dist/event-target-shim.umd.js +0 -6
  369. package/node_modules/event-target-shim/dist/event-target-shim.umd.js.map +0 -1
  370. package/node_modules/event-target-shim/index.d.ts +0 -399
  371. package/node_modules/event-target-shim/package.json +0 -82
  372. package/node_modules/events/.airtap.yml +0 -15
  373. package/node_modules/events/.github/FUNDING.yml +0 -12
  374. package/node_modules/events/.travis.yml +0 -18
  375. package/node_modules/events/History.md +0 -118
  376. package/node_modules/events/LICENSE +0 -22
  377. package/node_modules/events/Readme.md +0 -50
  378. package/node_modules/events/events.js +0 -497
  379. package/node_modules/events/package.json +0 -37
  380. package/node_modules/events/security.md +0 -10
  381. package/node_modules/events/tests/add-listeners.js +0 -111
  382. package/node_modules/events/tests/check-listener-leaks.js +0 -101
  383. package/node_modules/events/tests/common.js +0 -104
  384. package/node_modules/events/tests/errors.js +0 -13
  385. package/node_modules/events/tests/events-list.js +0 -28
  386. package/node_modules/events/tests/events-once.js +0 -234
  387. package/node_modules/events/tests/index.js +0 -64
  388. package/node_modules/events/tests/legacy-compat.js +0 -16
  389. package/node_modules/events/tests/listener-count.js +0 -37
  390. package/node_modules/events/tests/listeners-side-effects.js +0 -56
  391. package/node_modules/events/tests/listeners.js +0 -168
  392. package/node_modules/events/tests/max-listeners.js +0 -47
  393. package/node_modules/events/tests/method-names.js +0 -35
  394. package/node_modules/events/tests/modify-in-emit.js +0 -90
  395. package/node_modules/events/tests/num-args.js +0 -60
  396. package/node_modules/events/tests/once.js +0 -83
  397. package/node_modules/events/tests/prepend.js +0 -31
  398. package/node_modules/events/tests/remove-all-listeners.js +0 -133
  399. package/node_modules/events/tests/remove-listeners.js +0 -212
  400. package/node_modules/events/tests/set-max-listeners-side-effects.js +0 -31
  401. package/node_modules/events/tests/special-event-names.js +0 -45
  402. package/node_modules/events/tests/subclass.js +0 -66
  403. package/node_modules/events/tests/symbols.js +0 -25
  404. package/node_modules/fast-redact/.github/workflows/ci.yml +0 -37
  405. package/node_modules/fast-redact/LICENSE +0 -21
  406. package/node_modules/fast-redact/benchmark/index.js +0 -223
  407. package/node_modules/fast-redact/example/default-usage.js +0 -14
  408. package/node_modules/fast-redact/example/intermediate-wildcard-array.js +0 -11
  409. package/node_modules/fast-redact/example/multi-wildcard-array-depth.js +0 -11
  410. package/node_modules/fast-redact/example/multi-wildcard-array-end.js +0 -11
  411. package/node_modules/fast-redact/example/multi-wildcard-array.js +0 -11
  412. package/node_modules/fast-redact/example/serialize-false.js +0 -11
  413. package/node_modules/fast-redact/example/serialize-function.js +0 -4
  414. package/node_modules/fast-redact/example/top-wildcard-object.js +0 -9
  415. package/node_modules/fast-redact/index.js +0 -56
  416. package/node_modules/fast-redact/lib/modifiers.js +0 -291
  417. package/node_modules/fast-redact/lib/parse.js +0 -44
  418. package/node_modules/fast-redact/lib/redactor.js +0 -108
  419. package/node_modules/fast-redact/lib/restorer.js +0 -92
  420. package/node_modules/fast-redact/lib/rx.js +0 -16
  421. package/node_modules/fast-redact/lib/state.js +0 -20
  422. package/node_modules/fast-redact/lib/validator.js +0 -33
  423. package/node_modules/fast-redact/package.json +0 -50
  424. package/node_modules/fast-redact/readme.md +0 -282
  425. package/node_modules/fast-redact/test/index.js +0 -1502
  426. package/node_modules/ieee754/LICENSE +0 -11
  427. package/node_modules/ieee754/README.md +0 -51
  428. package/node_modules/ieee754/index.d.ts +0 -10
  429. package/node_modules/ieee754/index.js +0 -85
  430. package/node_modules/ieee754/package.json +0 -52
  431. package/node_modules/pino/.eslintignore +0 -2
  432. package/node_modules/pino/.eslintrc +0 -8
  433. package/node_modules/pino/.github/workflows/bench.yml +0 -61
  434. package/node_modules/pino/.github/workflows/ci.yml +0 -86
  435. package/node_modules/pino/.github/workflows/lock-threads.yml +0 -30
  436. package/node_modules/pino/.github/workflows/package-manager-ci.yml +0 -99
  437. package/node_modules/pino/.github/workflows/target-main.yml +0 -23
  438. package/node_modules/pino/.taprc.yaml +0 -8
  439. package/node_modules/pino/docsify/sidebar.md +0 -26
  440. package/node_modules/pino/favicon-16x16.png +0 -0
  441. package/node_modules/pino/favicon-32x32.png +0 -0
  442. package/node_modules/pino/lib/worker-pipeline.js +0 -38
  443. package/node_modules/pino/node_modules/sonic-boom/.eslintignore +0 -2
  444. package/node_modules/pino/node_modules/sonic-boom/.husky/pre-commit +0 -4
  445. package/node_modules/pino/node_modules/sonic-boom/.taprc.yaml +0 -11
  446. package/node_modules/pino/node_modules/sonic-boom/LICENSE +0 -21
  447. package/node_modules/pino/node_modules/sonic-boom/README.md +0 -151
  448. package/node_modules/pino/node_modules/sonic-boom/bench.js +0 -98
  449. package/node_modules/pino/node_modules/sonic-boom/check.js +0 -18
  450. package/node_modules/pino/node_modules/sonic-boom/example.js +0 -8
  451. package/node_modules/pino/node_modules/sonic-boom/fixtures/firehose.js +0 -22
  452. package/node_modules/pino/node_modules/sonic-boom/index.js +0 -690
  453. package/node_modules/pino/node_modules/sonic-boom/package.json +0 -50
  454. package/node_modules/pino/node_modules/sonic-boom/test/destroy.test.js +0 -49
  455. package/node_modules/pino/node_modules/sonic-boom/test/end.test.js +0 -98
  456. package/node_modules/pino/node_modules/sonic-boom/test/flush-sync.test.js +0 -140
  457. package/node_modules/pino/node_modules/sonic-boom/test/flush.test.js +0 -419
  458. package/node_modules/pino/node_modules/sonic-boom/test/fsync.test.js +0 -63
  459. package/node_modules/pino/node_modules/sonic-boom/test/helper.js +0 -42
  460. package/node_modules/pino/node_modules/sonic-boom/test/minlength.test.js +0 -35
  461. package/node_modules/pino/node_modules/sonic-boom/test/mode.test.js +0 -116
  462. package/node_modules/pino/node_modules/sonic-boom/test/reopen.test.js +0 -239
  463. package/node_modules/pino/node_modules/sonic-boom/test/retry.test.js +0 -414
  464. package/node_modules/pino/node_modules/sonic-boom/test/sync.test.js +0 -261
  465. package/node_modules/pino/node_modules/sonic-boom/test/write.test.js +0 -465
  466. package/node_modules/pino/node_modules/sonic-boom/types/index.d.ts +0 -62
  467. package/node_modules/pino/node_modules/sonic-boom/types/tests/test.ts +0 -4
  468. package/node_modules/pino/pino-banner.png +0 -0
  469. package/node_modules/pino/pino-logo-hire.png +0 -0
  470. package/node_modules/pino/pino-tree.png +0 -0
  471. package/node_modules/pino/pretty-demo.png +0 -0
  472. package/node_modules/pino/test/errorKey.test.js +0 -34
  473. package/node_modules/pino/test/transport/core.test.ts +0 -236
  474. package/node_modules/pino-std-serializers/.taprc +0 -2
  475. package/node_modules/process/.eslintrc +0 -21
  476. package/node_modules/process/LICENSE +0 -22
  477. package/node_modules/process/README.md +0 -26
  478. package/node_modules/process/browser.js +0 -184
  479. package/node_modules/process/index.js +0 -2
  480. package/node_modules/process/package.json +0 -27
  481. package/node_modules/process/test.js +0 -199
  482. package/node_modules/process-warning/.taprc +0 -2
  483. package/node_modules/readable-stream/LICENSE +0 -47
  484. package/node_modules/readable-stream/README.md +0 -116
  485. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -4
  486. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -4
  487. package/node_modules/readable-stream/lib/_stream_readable.js +0 -4
  488. package/node_modules/readable-stream/lib/_stream_transform.js +0 -4
  489. package/node_modules/readable-stream/lib/_stream_writable.js +0 -4
  490. package/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js +0 -52
  491. package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -157
  492. package/node_modules/readable-stream/lib/internal/streams/compose.js +0 -194
  493. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -290
  494. package/node_modules/readable-stream/lib/internal/streams/duplex.js +0 -143
  495. package/node_modules/readable-stream/lib/internal/streams/duplexify.js +0 -378
  496. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -286
  497. package/node_modules/readable-stream/lib/internal/streams/from.js +0 -98
  498. package/node_modules/readable-stream/lib/internal/streams/lazy_transform.js +0 -51
  499. package/node_modules/readable-stream/lib/internal/streams/legacy.js +0 -89
  500. package/node_modules/readable-stream/lib/internal/streams/operators.js +0 -457
  501. package/node_modules/readable-stream/lib/internal/streams/passthrough.js +0 -39
  502. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -471
  503. package/node_modules/readable-stream/lib/internal/streams/readable.js +0 -1290
  504. package/node_modules/readable-stream/lib/internal/streams/state.js +0 -39
  505. package/node_modules/readable-stream/lib/internal/streams/transform.js +0 -180
  506. package/node_modules/readable-stream/lib/internal/streams/utils.js +0 -327
  507. package/node_modules/readable-stream/lib/internal/streams/writable.js +0 -819
  508. package/node_modules/readable-stream/lib/internal/validators.js +0 -530
  509. package/node_modules/readable-stream/lib/ours/browser.js +0 -35
  510. package/node_modules/readable-stream/lib/ours/errors.js +0 -343
  511. package/node_modules/readable-stream/lib/ours/index.js +0 -65
  512. package/node_modules/readable-stream/lib/ours/primordials.js +0 -124
  513. package/node_modules/readable-stream/lib/ours/util/inspect.js +0 -55
  514. package/node_modules/readable-stream/lib/ours/util.js +0 -148
  515. package/node_modules/readable-stream/lib/stream/promises.js +0 -43
  516. package/node_modules/readable-stream/lib/stream.js +0 -143
  517. package/node_modules/readable-stream/package.json +0 -88
  518. package/node_modules/safe-buffer/LICENSE +0 -21
  519. package/node_modules/safe-buffer/README.md +0 -584
  520. package/node_modules/safe-buffer/index.d.ts +0 -187
  521. package/node_modules/safe-buffer/index.js +0 -65
  522. package/node_modules/safe-buffer/package.json +0 -51
  523. package/node_modules/string_decoder/LICENSE +0 -48
  524. package/node_modules/string_decoder/README.md +0 -47
  525. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  526. package/node_modules/string_decoder/package.json +0 -34
@@ -1,553 +0,0 @@
1
- /*
2
- * Copyright: 2025 Contrast Security, Inc
3
- * Contact: support@contrastsecurity.com
4
- * License: Commercial
5
-
6
- * NOTICE: This Software and the patented inventions embodied within may only be
7
- * used as part of Contrast Security’s commercial offerings. Even though it is
8
- * made available through public repositories, use of this Software is subject to
9
- * the applicable End User Licensing Agreement found at
10
- * https://www.contrastsecurity.com/enduser-terms-0317a or as otherwise agreed
11
- * between Contrast Security and the End User. The Software may not be reverse
12
- * engineered, modified, repackaged, sold, redistributed or otherwise used in a
13
- * way not consistent with the End User License Agreement.
14
- */
15
- 'use strict';
16
-
17
- const { AsyncLocalStorage } = require('node:async_hooks');
18
- const {
19
- get,
20
- set,
21
- isString,
22
- Event,
23
- RouteType,
24
- primordials: {
25
- ArrayPrototypeJoin,
26
- StringPrototypeSubstring,
27
- StringPrototypeToLowerCase,
28
- StringPrototypeReplace,
29
- }
30
- } = require('@contrast/common');
31
- const { funcInfo } = require('@contrast/fn-inspect');
32
- const Core = require('@contrast/core/lib/ioc/core');
33
-
34
- const METHODS = [
35
- 'all',
36
- 'get',
37
- 'post',
38
- 'put',
39
- 'delete',
40
- 'patch',
41
- 'options',
42
- 'head',
43
- ];
44
- const componentName = 'routeCoverage.express5';
45
- const kMetaKey = Symbol('cs_meta');
46
- const enumerable = false;
47
-
48
- module.exports = Core.makeComponent({
49
- name: componentName,
50
- factory: (core) => new ExpressInstrumentation(core),
51
- });
52
-
53
- class ExpressInstrumentation {
54
- constructor(core) {
55
- // decorate
56
- set(core, componentName, this);
57
-
58
- this.core = core;
59
- this.methodScope = new AsyncLocalStorage();
60
- this.handleScope = new AsyncLocalStorage();
61
- }
62
-
63
- install() {
64
- const self = this;
65
- const { core, handleScope, methodScope } = this;
66
- const patchType = 'route-coverage-express';
67
- const name = 'express-5';
68
-
69
- //
70
- // discovery instrumentation
71
- //
72
-
73
- core.depHooks.resolve({ name: 'express', version: '5' }, (express) => {
74
- // wrap router and app methods in "method scope" to capture info to help build signatures.
75
- // express has a number of APIs that work at different levels of abstraction, and we need to patch
76
- // all of them. the scopes let us know what top-level APIs are being called by application code.
77
- [...METHODS, 'use', 'route'].forEach((method) => {
78
- // then setup app and router to run in method scopes
79
- core.patcher.patch(express.application, method, {
80
- name: `express.application.${method}`,
81
- patchType: `${patchType}-discovery`,
82
- around(next, data) {
83
- if (methodScope.getStore()) return next();
84
- return methodScope.run({ method, args: data.args, type: 'app' }, next);
85
- }
86
- });
87
-
88
- core.patcher.patch(express.Router.prototype, method, {
89
- name: `express.Router.prototype.${method}`,
90
- patchType: `${patchType}-discovery`,
91
- around(next, data) {
92
- if (methodScope.getStore()) return next();
93
- return methodScope.run({ method, args: data.args, type: 'router' }, next);
94
- }
95
- });
96
- });
97
-
98
- // app[method] and router[method] end up calling this
99
- // Append metadata to the created Route object at layer.route.
100
- // we also patch the returned Route's methods for building signatures
101
- core.patcher.patch(express.Router.prototype, 'route', {
102
- name: 'express.Route',
103
- patchType: `${patchType}-discovery`,
104
- post(data) {
105
- const { result } = data;
106
- const methodStore = methodScope.getStore();
107
- const meta = {
108
- paths: ExpressInstrumentation.normalizePaths(data.args[0]),
109
- method: methodStore?.method,
110
- type: methodStore?.type || 'route',
111
- };
112
-
113
- Object.defineProperty(result, kMetaKey, {
114
- enumerable,
115
- value: meta
116
- });
117
-
118
- // patch route instance methods we do that here when we have
119
- // todo move to prototype to help w/ memory
120
- METHODS.forEach((method) => {
121
- if (result[method]) {
122
- core.patcher.patch(result, method, {
123
- name: `express.Router.prototype.route${method}`,
124
- patchType: `${patchType}-discovery`,
125
- pre(data) {
126
- data._stackIdx = data.obj.stack?.length;
127
- },
128
- post(data) {
129
- if (data.obj.stack?.length > data._stackIdx) {
130
- for (let i = data._stackIdx; i < data.obj.stack.length; i++) {
131
- const layer = data.obj.stack[i];
132
- const methodStore = methodScope.getStore();
133
- const meta = {
134
- type: methodStore?.type || 'route',
135
- method: methodStore?.method == 'all' ? 'all' : method,
136
- };
137
-
138
- Object.defineProperty(layer, kMetaKey, {
139
- enumerable,
140
- value: meta,
141
- });
142
- }
143
- }
144
- },
145
- });
146
- }
147
- });
148
-
149
- return result;
150
- },
151
- });
152
-
153
- core.patcher.patch(express.Router.prototype, 'use', {
154
- name: `${name}.Router.prototype.use`,
155
- patchType: `${patchType}-discovery`,
156
- pre(data) {
157
- data._stackLength = data.obj.stack?.length;
158
- },
159
- post(data) {
160
- if (data.obj.stack.length > data._stackLength) {
161
- for (let i = data._stackLength; i < data.obj.stack.length; i++) {
162
- const layer = data.obj.stack[i];
163
- const paths = ExpressInstrumentation.normalizePaths(data.args[0]);
164
- const methodStore = methodScope.getStore();
165
- const meta = {
166
- paths,
167
- method: 'use',
168
- type: methodStore?.type || 'router',
169
- };
170
-
171
- if (layer) {
172
- Object.defineProperty(layer, kMetaKey, {
173
- enumerable: false,
174
- value: meta
175
- });
176
- }
177
- }
178
- }
179
- },
180
- });
181
-
182
- return core.patcher.patch(express, {
183
- name: 'express-5.application',
184
- patchType: `${patchType}-discovery`,
185
- post(data) {
186
- const app = data.result;
187
- core.messages.on(Event.SERVER_LISTENING, () => {
188
- if (!app.router.stack[0]) {
189
- core.logger.debug('no routes detected in express router stack');
190
- return;
191
- }
192
- self.handleDiscovery(app);
193
- });
194
- return app;
195
- }
196
- });
197
- });
198
-
199
- core.depHooks.resolve({ name: 'express', version: '5' }, (express) => {
200
- core.patcher.patch(express.application, 'handle', {
201
- name: 'express.application.handle',
202
- patchType: `${patchType}-discovery`,
203
- around(next, data) {
204
- // wrap request handling in "handle scope". the scope's store data
205
- // helps for building observation templates as routing occurs
206
- const store = {
207
- matchIdx: -1,
208
- templateSegments: [],
209
- };
210
- return handleScope.run(store, next);
211
- }
212
- });
213
- });
214
-
215
- //
216
- // observation instrumentation
217
- //
218
-
219
- // when Layer.match gets called, matchers functions run underneath. the API doesn't present a really clean
220
- // way to instrument, so we're using scopes. we reference the scope's store in the instrumented matcher
221
- // functions so we can correlate a matcher that succeeds to its corresponding route template segment.
222
- core.depHooks.resolve({ name: 'router', file: 'lib/layer.js', version: '2' }, (Layer) => {
223
- core.patcher.patch(Layer.prototype, 'match', {
224
- name: 'Layer.prototype.match',
225
- patchType: `${patchType}-observation`,
226
- pre(data) {
227
- data._store = handleScope.getStore();
228
- if (!data._store) return;
229
-
230
- // we check in post hook whether any matcher instrumentation reset this in scope.
231
- // matchers will set this to a number only if multiple matchers run and one succeeds.
232
- // use the index of that matcher to get associated template segment from the metadata.
233
- data._store.matcherIdx = null;
234
- // save reference to metadata source
235
- data[kMetaKey] = data.obj[kMetaKey] || data.obj.route?.[kMetaKey];
236
- },
237
- post(data) {
238
- // whenever a layer matches, save the corresponding
239
- // template segment metadata in the handle scope store
240
- const { result } = data;
241
- if (!result || !data._store || !data[kMetaKey]?.paths) return;
242
-
243
- let template;
244
- if (data._store.matcherIdx != null) {
245
- template = data[kMetaKey].paths[data._store.matcherIdx];
246
- } else {
247
- template = data[kMetaKey].paths[0];
248
- }
249
-
250
- // if the layer matches, we know to push corresponding path to store's template segments.
251
- // we pop this value from the array in hook to all `next` callbacks below.
252
- data._store.templateSegments.push(template);
253
- }
254
- });
255
-
256
- // patch the `next` callback of every Layer's request handler.
257
- // we pop the value from the stack of route template segments being managed.
258
- core.patcher.patch(Layer.prototype, 'handleRequest', {
259
- name: 'Layer.prototype.handleRequest',
260
- patchType: `${patchType}-observation`,
261
- pre(data) {
262
- const next = data.args[2];
263
- const meta = data.obj[kMetaKey] || data.obj.route?.[kMetaKey];
264
- if (meta?.paths) {
265
- const store = handleScope.getStore();
266
- // this runs often and there's no need to use patcher here. monkey patch directly to optimize
267
- data.args[2] = function(...args) {
268
- if (store) store.templateSegments.pop();
269
- const ret = next(...args);
270
- return ret;
271
- };
272
- }
273
- }
274
- });
275
-
276
- // instrument the Layer constructor. this will allow us to patch
277
- // created matchers to help us build observation template from metadata.
278
- // if matcher was successful we store index of it in handle scope.
279
- return core.patcher.patch(Layer, {
280
- name: 'router.Layer',
281
- patchType: `${patchType}-observation`,
282
- pre(data) {
283
- data._methodScope = methodScope.getStore();
284
- },
285
- post(data) {
286
- const instance = data.result;
287
- // only instrument matchers if the Layer is being instantiated within method scope, and
288
- // if there are multiple matchers and we need the index to correlate to tempate segment
289
- if (data._methodScope && instance.matchers.length > 1) {
290
- for (let i = 0; i < instance.matchers.length; i++) {
291
- const matcher = instance.matchers[i];
292
- instance.matchers[i] = function(...args) {
293
- const result = matcher.apply(this, args);
294
- if (result) {
295
- const store = handleScope.getStore();
296
- if (store) store.matcherIdx = i;
297
- }
298
- return result;
299
- };
300
- }
301
- }
302
- // patch handle to report observation when called. it checks handle
303
- // scope to get current request's template to match with discovery info
304
- core.patcher.patch(instance, 'handle', {
305
- name: 'router.Layer.handle',
306
- patchType: `${patchType}-observation`,
307
- pre(data) {
308
- if (instance[kMetaKey]?.observables) {
309
- const store = handleScope.getStore();
310
- if (store) {
311
- const method = StringPrototypeToLowerCase.call(data.args[0].method || '');
312
- const template = ArrayPrototypeJoin.call(store.templateSegments, '') || '/';
313
-
314
-
315
- if (instance[kMetaKey]?.observables?.[template]) {
316
- self.observe({
317
- url: data.args[0].originalUrl,
318
- normalizedUrl: template,
319
- method,
320
- signature: instance[kMetaKey].observables[template],
321
- type: instance[kMetaKey].routeType,
322
- });
323
- } else {
324
- core.logger.error({
325
- // url: data.args[0].originalUrl, // this would need masking to log
326
- method,
327
- template,
328
- observables: instance[kMetaKey]?.observables,
329
- }, 'unable to map route template to signature');
330
- }
331
- }
332
- }
333
- },
334
- });
335
- },
336
- });
337
- });
338
- }
339
-
340
- discover(info) {
341
- const { method, observables, routeType } = info;
342
- if (!method || !observables) return;
343
-
344
- for (const [normalizedUrl, signature] of Object.entries(observables)) {
345
- this.core.routeCoverage.discover({
346
- url: normalizedUrl,
347
- normalizedUrl,
348
- method,
349
- signature,
350
- type: routeType,
351
- framework: 'express',
352
- });
353
- }
354
- }
355
-
356
- observe(info) {
357
- this.core.routeCoverage.observe({ framework: 'express', ...info });
358
- }
359
-
360
- /**
361
- * Traverse the application's router "stack" and generate route discovery events
362
- * using layer/route metadata that was appended by methods like router.post().
363
- * @param {object} app express instance
364
- */
365
- handleDiscovery(app) {
366
- const self = this;
367
- const router = app.router || app._router;
368
-
369
- // traverse fn executes this callback when visiting Layer instances
370
- this.traverse(router, (path, key, value, target, state) => {
371
- if (value.stack?.length > 0 || value.route) return;
372
-
373
- // get metadata for this Layer
374
- // metadata is on Layers within stacks and on Routes instances.
375
- const metas = [];
376
- for (let i = 0; i < path.length; i++) {
377
- const seg = path[i];
378
- if (Number.isFinite((Number(seg))) || seg == 'route') {
379
- const metaPath = ArrayPrototypeJoin.call(path.slice(0, i + 1), '.');
380
- const layerOrRoute = get(router, metaPath);
381
- if (layerOrRoute?.[kMetaKey]) {
382
- metas.push(layerOrRoute[kMetaKey]);
383
- }
384
- }
385
- }
386
-
387
- // mounted routers aren't discoverable since they themselves don't
388
- // represent routes, they dispatch to sub routers/route handlers.
389
- if (value.name != 'router' && value.handle?.name != 'router') {
390
- let routeType;
391
- if (value[kMetaKey]?.method == 'use') {
392
- // if the handler is registered via `use` method, there are no
393
- // associated HTTP methods. this use case is considered middleware.
394
- if (!this.core.config.getEffectiveValue('assess.report_middleware_routes')) return;
395
- routeType = RouteType.MIDDLEWARE;
396
- } else {
397
- routeType = RouteType.HTTP;
398
- }
399
-
400
- // `value` is a terminal Layer with observable signatures.
401
- // emit discovery after appending metadata.
402
- if (value[kMetaKey]) {
403
- const observables = this.generateObservables(metas, value.handle);
404
- if (observables) {
405
- value[kMetaKey].routeType = routeType;
406
- if (!value[kMetaKey].observables) {
407
- value[kMetaKey].observables = observables;
408
- } else {
409
- Object.assign(value[kMetaKey].observables, observables);
410
- }
411
- }
412
- self.discover(value[kMetaKey]);
413
- }
414
- }
415
- });
416
- }
417
-
418
- /**
419
- * Traverses the top-level app's routing stack and executes the provided callback when
420
- * visiting nodes. The callback is invoked only to visit Layer instances, objects and
421
- * functions, since these are the only 2 types that could have our metadata attached.
422
- */
423
- traverse(target, cb, path = [], data = new Map()) {
424
- loopKeys: for (const key in target) {
425
- path.push(key);
426
-
427
- // only visit Layer instances
428
- const maybeLayer = target[key];
429
- if (
430
- maybeLayer?.constructor?.name == 'Layer' &&
431
- !maybeLayer?.stack?.length
432
- ) {
433
- let _data = data.get(maybeLayer);
434
-
435
- if (!_data) {
436
- _data = { paths: [] };
437
- data.set(maybeLayer, _data);
438
- }
439
-
440
- // you can mount a router on itself
441
- // prevent infinitely recursing into self-mounted routers
442
- for (const visitedPath of _data.paths) {
443
- // these conditions indicate recursive nesting at particular path
444
- if (
445
- path.length > visitedPath.length &&
446
- visitedPath.every((el, i) => path[i] == el)
447
- ) {
448
- path.pop();
449
- continue loopKeys;
450
- }
451
- }
452
-
453
- _data.paths.push([...path]); // copy because path argument mutates
454
-
455
- const halt = cb(path, key, maybeLayer, target) === false;
456
- if (halt) return;
457
- }
458
-
459
- // might be able to fine-tune this a bit more
460
- if (typeof maybeLayer == 'object' || typeof maybeLayer == 'function') {
461
- this.traverse(maybeLayer, cb, path, data);
462
- }
463
-
464
- path.pop();
465
- }
466
- }
467
-
468
- generateObservables(metas, handler) {
469
- const { core } = this;
470
- handler = core.patcher.unwrap(handler);
471
-
472
- let type = '';
473
- let method = '';
474
- let templates = [];
475
- const info = funcInfo(handler);
476
-
477
- let file = info.file ?
478
- StringPrototypeReplace.call(info.file, core.appInfo.app_dir, '') :
479
- '';
480
- if (file.length > 30) {
481
- file = `...${StringPrototypeSubstring.call(file, file.length - 40)}`;
482
- }
483
- const handlerName = info.method || handler.name || 'anonymous';
484
- const formattedHandler = (file && Number.isFinite(info.lineNumber) && Number.isFinite(info.column)) ?
485
- `[${handlerName} ${file} ${info.lineNumber}:${info.column}]` :
486
- `[Function: ${handlerName}]`; // what util.inspect(handler) would return
487
-
488
- // loop backwards
489
- for (let i = metas.length - 1; i >= 0; i--) {
490
- const meta = metas[i];
491
- // use the most recent `type` and `method` used when building routes, so don't overwrite if set
492
- if (!type && meta.type) type = meta.type;
493
- if (!method && meta.method) method = meta.method;
494
-
495
- // builds out all possible template combinations that the Layer is able to handle during routing
496
- if (Array.isArray(meta.paths)) {
497
- if (!templates.length) {
498
- templates = [...meta.paths];
499
- } else {
500
- const _t = [];
501
- for (const templateSegment of meta.paths) {
502
- for (const templateAcc of templates) {
503
- _t.push(`${templateSegment}${templateAcc}`);
504
- }
505
- }
506
- templates = [..._t];
507
- }
508
- }
509
- }
510
-
511
- // build signature lookup based on each template (normalizeUri)
512
- const map = templates.reduce((acc, routeTemplate) => {
513
- if (!routeTemplate) routeTemplate = '/';
514
- acc[routeTemplate] = `${type}.${method}('${routeTemplate}', ${formattedHandler})`;
515
- return acc;
516
- }, {});
517
-
518
- return map;
519
- }
520
-
521
- static normalizePathSegment(value) {
522
- if (!value || value == '/') {
523
- // app.[method](handler) and app.[method]('/', handler) are the same so default to empty string
524
- return '';
525
- }
526
- if (value instanceof RegExp) {
527
- const rxString = value.toString();
528
- // todo: figure out best way to represent regexp in route template
529
- return `/[${StringPrototypeSubstring.call(rxString, 1, rxString.length - 1)}]`;
530
- }
531
- return value;
532
- }
533
-
534
- static normalizePaths(paths) {
535
- const ret = [];
536
-
537
- // same as mounting as /
538
- if (typeof paths == 'function') {
539
- // default to ''
540
- ret.push('');
541
- } else if (isString(paths)) {
542
- ret.push(ExpressInstrumentation.normalizePathSegment(paths));
543
- } else if (Array.isArray(paths)) {
544
- paths = paths.flat(Infinity).filter((v) => typeof v !== 'function');
545
- if (paths.length) ret.push(...paths.map(ExpressInstrumentation.normalizePathSegment));
546
- else ret.push('');
547
- } else if (paths instanceof RegExp) {
548
- ret.push(ExpressInstrumentation.normalizePathSegment(paths));
549
- }
550
-
551
- return ret;
552
- }
553
- }
@@ -1,98 +0,0 @@
1
- # abort-controller
2
-
3
- [![npm version](https://img.shields.io/npm/v/abort-controller.svg)](https://www.npmjs.com/package/abort-controller)
4
- [![Downloads/month](https://img.shields.io/npm/dm/abort-controller.svg)](http://www.npmtrends.com/abort-controller)
5
- [![Build Status](https://travis-ci.org/mysticatea/abort-controller.svg?branch=master)](https://travis-ci.org/mysticatea/abort-controller)
6
- [![Coverage Status](https://codecov.io/gh/mysticatea/abort-controller/branch/master/graph/badge.svg)](https://codecov.io/gh/mysticatea/abort-controller)
7
- [![Dependency Status](https://david-dm.org/mysticatea/abort-controller.svg)](https://david-dm.org/mysticatea/abort-controller)
8
-
9
- An implementation of [WHATWG AbortController interface](https://dom.spec.whatwg.org/#interface-abortcontroller).
10
-
11
- ```js
12
- import AbortController from "abort-controller"
13
-
14
- const controller = new AbortController()
15
- const signal = controller.signal
16
-
17
- signal.addEventListener("abort", () => {
18
- console.log("aborted!")
19
- })
20
-
21
- controller.abort()
22
- ```
23
-
24
- > https://jsfiddle.net/1r2994qp/1/
25
-
26
- ## 💿 Installation
27
-
28
- Use [npm](https://www.npmjs.com/) to install then use a bundler.
29
-
30
- ```
31
- npm install abort-controller
32
- ```
33
-
34
- Or download from [`dist` directory](./dist).
35
-
36
- - [dist/abort-controller.mjs](dist/abort-controller.mjs) ... ES modules version.
37
- - [dist/abort-controller.js](dist/abort-controller.js) ... Common JS version.
38
- - [dist/abort-controller.umd.js](dist/abort-controller.umd.js) ... UMD (Universal Module Definition) version. This is transpiled by [Babel](https://babeljs.io/) for IE 11.
39
-
40
- ## 📖 Usage
41
-
42
- ### Basic
43
-
44
- ```js
45
- import AbortController from "abort-controller"
46
- // or
47
- const AbortController = require("abort-controller")
48
-
49
- // or UMD version defines a global variable:
50
- const AbortController = window.AbortControllerShim
51
- ```
52
-
53
- If your bundler recognizes `browser` field of `package.json`, the imported `AbortController` is the native one and it doesn't contain shim (even if the native implementation was nothing).
54
- If you wanted to polyfill `AbortController` for IE, use `abort-controller/polyfill`.
55
-
56
- ### Polyfilling
57
-
58
- Importing `abort-controller/polyfill` assigns the `AbortController` shim to the `AbortController` global variable if the native implementation was nothing.
59
-
60
- ```js
61
- import "abort-controller/polyfill"
62
- // or
63
- require("abort-controller/polyfill")
64
- ```
65
-
66
- ### API
67
-
68
- #### AbortController
69
-
70
- > https://dom.spec.whatwg.org/#interface-abortcontroller
71
-
72
- ##### controller.signal
73
-
74
- The [AbortSignal](https://dom.spec.whatwg.org/#interface-AbortSignal) object which is associated to this controller.
75
-
76
- ##### controller.abort()
77
-
78
- Notify `abort` event to listeners that the `signal` has.
79
-
80
- ## 📰 Changelog
81
-
82
- - See [GitHub releases](https://github.com/mysticatea/abort-controller/releases).
83
-
84
- ## 🍻 Contributing
85
-
86
- Contributing is welcome ❤️
87
-
88
- Please use GitHub issues/PRs.
89
-
90
- ### Development tools
91
-
92
- - `npm install` installs dependencies for development.
93
- - `npm test` runs tests and measures code coverage.
94
- - `npm run clean` removes temporary files of tests.
95
- - `npm run coverage` opens code coverage of the previous test with your default browser.
96
- - `npm run lint` runs ESLint.
97
- - `npm run build` generates `dist` codes.
98
- - `npm run watch` runs tests on each file change.
@@ -1,13 +0,0 @@
1
- /*globals self, window */
2
- "use strict"
3
-
4
- /*eslint-disable @mysticatea/prettier */
5
- const { AbortController, AbortSignal } =
6
- typeof self !== "undefined" ? self :
7
- typeof window !== "undefined" ? window :
8
- /* otherwise */ undefined
9
- /*eslint-enable @mysticatea/prettier */
10
-
11
- module.exports = AbortController
12
- module.exports.AbortSignal = AbortSignal
13
- module.exports.default = AbortController
@@ -1,11 +0,0 @@
1
- /*globals self, window */
2
-
3
- /*eslint-disable @mysticatea/prettier */
4
- const { AbortController, AbortSignal } =
5
- typeof self !== "undefined" ? self :
6
- typeof window !== "undefined" ? window :
7
- /* otherwise */ undefined
8
- /*eslint-enable @mysticatea/prettier */
9
-
10
- export default AbortController
11
- export { AbortController, AbortSignal }