@contrast/agent-bundle 5.42.0 → 5.46.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 (484) hide show
  1. package/README.md +1 -10
  2. package/node_modules/@contrast/agent/README.md +1 -10
  3. package/node_modules/@contrast/agent/package.json +12 -12
  4. package/node_modules/@contrast/agent-swc-plugin/package.json +3 -3
  5. package/node_modules/@contrast/agentify/lib/rewrite-hooks.js +3 -3
  6. package/node_modules/@contrast/agentify/lib/utils.js +13 -7
  7. package/node_modules/@contrast/agentify/package.json +17 -17
  8. package/node_modules/@contrast/architecture-components/package.json +6 -6
  9. package/node_modules/@contrast/assess/lib/dataflow/propagation/install/ejs/template.js +1 -1
  10. package/node_modules/@contrast/assess/lib/dataflow/propagation/install/pug/index.js +1 -1
  11. package/node_modules/@contrast/assess/lib/dataflow/sinks/install/http/server-response.js +1 -12
  12. package/node_modules/@contrast/assess/lib/dataflow/sinks/install/restify.js +1 -1
  13. package/node_modules/@contrast/assess/lib/dataflow/sources/handler.js +21 -24
  14. package/node_modules/@contrast/assess/lib/dataflow/sources/install/http.js +1 -1
  15. package/node_modules/@contrast/assess/lib/dataflow/tracker.js +1 -1
  16. package/node_modules/@contrast/assess/lib/get-source-context.js +11 -22
  17. package/node_modules/@contrast/assess/lib/index.js +1 -1
  18. package/node_modules/@contrast/assess/lib/make-source-context.js +5 -10
  19. package/node_modules/@contrast/assess/lib/policy.js +400 -0
  20. package/node_modules/@contrast/assess/lib/response-scanning/handlers/index.js +10 -14
  21. package/node_modules/@contrast/assess/lib/response-scanning/install/http.js +0 -12
  22. package/node_modules/@contrast/assess/lib/session-configuration/handlers.js +1 -1
  23. package/node_modules/@contrast/assess/package.json +14 -14
  24. package/node_modules/@contrast/code-events/binding.gyp +1 -1
  25. package/node_modules/@contrast/code-events/package.json +11 -9
  26. package/node_modules/@contrast/code-events/prebuilds/darwin-x64+arm64/@contrast+code-events.abi108.node +0 -0
  27. package/node_modules/@contrast/code-events/prebuilds/darwin-x64+arm64/@contrast+code-events.abi115.node +0 -0
  28. package/node_modules/@contrast/code-events/prebuilds/darwin-x64+arm64/@contrast+code-events.abi127.node +0 -0
  29. package/node_modules/@contrast/code-events/prebuilds/darwin-x64+arm64/{@contrast+code-events.abi93.node → @contrast+code-events.abi137.node} +0 -0
  30. package/node_modules/@contrast/code-events/prebuilds/linux-arm64/@contrast+code-events.abi108.armv8.node +0 -0
  31. package/node_modules/@contrast/code-events/prebuilds/linux-arm64/@contrast+code-events.abi115.armv8.node +0 -0
  32. package/node_modules/@contrast/code-events/prebuilds/linux-arm64/@contrast+code-events.abi127.armv8.node +0 -0
  33. package/node_modules/@contrast/code-events/prebuilds/linux-arm64/@contrast+code-events.abi137.armv8.node +0 -0
  34. package/node_modules/@contrast/code-events/prebuilds/linux-x64/@contrast+code-events.abi108.glibc.node +0 -0
  35. package/node_modules/@contrast/code-events/prebuilds/linux-x64/@contrast+code-events.abi108.musl.node +0 -0
  36. package/node_modules/@contrast/code-events/prebuilds/linux-x64/@contrast+code-events.abi115.glibc.node +0 -0
  37. package/node_modules/@contrast/code-events/prebuilds/linux-x64/@contrast+code-events.abi115.musl.node +0 -0
  38. package/node_modules/@contrast/code-events/prebuilds/linux-x64/@contrast+code-events.abi127.glibc.node +0 -0
  39. package/node_modules/@contrast/code-events/prebuilds/linux-x64/@contrast+code-events.abi127.musl.node +0 -0
  40. package/node_modules/@contrast/code-events/prebuilds/linux-x64/@contrast+code-events.abi137.glibc.node +0 -0
  41. package/node_modules/@contrast/code-events/prebuilds/linux-x64/@contrast+code-events.abi137.musl.node +0 -0
  42. package/node_modules/@contrast/code-events/prebuilds/win32-x64/@contrast+code-events.abi108.node +0 -0
  43. package/node_modules/@contrast/code-events/prebuilds/win32-x64/@contrast+code-events.abi115.node +0 -0
  44. package/node_modules/@contrast/code-events/prebuilds/win32-x64/@contrast+code-events.abi127.node +0 -0
  45. package/node_modules/@contrast/code-events/prebuilds/win32-x64/@contrast+code-events.abi137.node +0 -0
  46. package/node_modules/@contrast/common/lib/constants.d.ts +1 -1
  47. package/node_modules/@contrast/common/lib/constants.js +1 -1
  48. package/node_modules/@contrast/common/lib/index.js +15 -15
  49. package/node_modules/@contrast/common/lib/primordials.d.ts +22 -20
  50. package/node_modules/@contrast/common/lib/types.d.ts +18 -6
  51. package/node_modules/@contrast/common/package.json +2 -2
  52. package/node_modules/@contrast/config/lib/options.js +37 -4
  53. package/node_modules/@contrast/config/package.json +4 -4
  54. package/node_modules/@contrast/core/lib/app-info.js +53 -74
  55. package/node_modules/@contrast/core/lib/index.d.ts +17 -1
  56. package/node_modules/@contrast/core/lib/sensitive-data-masking/index.js +33 -5
  57. package/node_modules/@contrast/core/package.json +10 -9
  58. package/node_modules/@contrast/deadzones/package.json +6 -6
  59. package/node_modules/@contrast/dep-hooks/lib/export-handler-registry.d.ts +17 -13
  60. package/node_modules/@contrast/dep-hooks/lib/export-handler-registry.js +16 -4
  61. package/node_modules/@contrast/dep-hooks/lib/export-hook-descriptor.d.ts +2 -2
  62. package/node_modules/@contrast/dep-hooks/lib/export-hook-descriptor.js +2 -3
  63. package/node_modules/@contrast/dep-hooks/lib/handler-invoker.d.ts +6 -6
  64. package/node_modules/@contrast/dep-hooks/lib/handler-invoker.js +0 -1
  65. package/node_modules/@contrast/dep-hooks/lib/helpers.d.ts +0 -7
  66. package/node_modules/@contrast/dep-hooks/lib/helpers.js +2 -18
  67. package/node_modules/@contrast/dep-hooks/lib/index.d.ts +17 -12
  68. package/node_modules/@contrast/dep-hooks/lib/index.js +5 -3
  69. package/node_modules/@contrast/dep-hooks/lib/package-finder.d.ts +2 -1
  70. package/node_modules/@contrast/dep-hooks/lib/package-finder.js +6 -6
  71. package/node_modules/@contrast/dep-hooks/package.json +4 -3
  72. package/node_modules/@contrast/distringuish/package.json +7 -6
  73. package/node_modules/@contrast/distringuish/prebuilds/darwin-x64+arm64/@contrast+distringuish.abi108.node +0 -0
  74. package/node_modules/@contrast/distringuish/prebuilds/darwin-x64+arm64/@contrast+distringuish.abi115.node +0 -0
  75. package/node_modules/@contrast/distringuish/prebuilds/darwin-x64+arm64/@contrast+distringuish.abi127.node +0 -0
  76. package/node_modules/@contrast/distringuish/prebuilds/darwin-x64+arm64/{@contrast+distringuish.abi93.node → @contrast+distringuish.abi137.node} +0 -0
  77. package/node_modules/@contrast/distringuish/prebuilds/linux-arm64/@contrast+distringuish.abi108.armv8.node +0 -0
  78. package/node_modules/@contrast/distringuish/prebuilds/linux-arm64/@contrast+distringuish.abi115.armv8.node +0 -0
  79. package/node_modules/@contrast/distringuish/prebuilds/linux-arm64/@contrast+distringuish.abi127.armv8.node +0 -0
  80. package/node_modules/@contrast/distringuish/prebuilds/linux-arm64/@contrast+distringuish.abi137.armv8.node +0 -0
  81. package/node_modules/@contrast/distringuish/prebuilds/linux-x64/@contrast+distringuish.abi108.glibc.node +0 -0
  82. package/node_modules/@contrast/distringuish/prebuilds/linux-x64/@contrast+distringuish.abi108.musl.node +0 -0
  83. package/node_modules/@contrast/distringuish/prebuilds/linux-x64/@contrast+distringuish.abi115.glibc.node +0 -0
  84. package/node_modules/@contrast/distringuish/prebuilds/linux-x64/@contrast+distringuish.abi115.musl.node +0 -0
  85. package/node_modules/@contrast/distringuish/prebuilds/linux-x64/@contrast+distringuish.abi127.glibc.node +0 -0
  86. package/node_modules/@contrast/distringuish/prebuilds/linux-x64/@contrast+distringuish.abi127.musl.node +0 -0
  87. package/node_modules/@contrast/distringuish/prebuilds/linux-x64/@contrast+distringuish.abi137.glibc.node +0 -0
  88. package/node_modules/@contrast/distringuish/prebuilds/linux-x64/@contrast+distringuish.abi137.musl.node +0 -0
  89. package/node_modules/@contrast/distringuish/prebuilds/win32-x64/@contrast+distringuish.abi108.node +0 -0
  90. package/node_modules/@contrast/distringuish/prebuilds/win32-x64/@contrast+distringuish.abi115.node +0 -0
  91. package/node_modules/@contrast/distringuish/prebuilds/win32-x64/@contrast+distringuish.abi127.node +0 -0
  92. package/node_modules/@contrast/distringuish/prebuilds/win32-x64/@contrast+distringuish.abi137.node +0 -0
  93. package/node_modules/@contrast/esm-hooks/lib/debug-methods.mjs +4 -4
  94. package/node_modules/@contrast/esm-hooks/lib/get-file-type.mjs +2 -9
  95. package/node_modules/@contrast/esm-hooks/lib/hooks.mjs +0 -2
  96. package/node_modules/@contrast/esm-hooks/lib/redirects/builtin/fs/promises.mjs +2 -0
  97. package/node_modules/@contrast/esm-hooks/lib/redirects/builtin/fs.mjs +3 -0
  98. package/node_modules/@contrast/esm-hooks/lib/redirects/builtin/util.mjs +1 -0
  99. package/node_modules/@contrast/esm-hooks/package.json +7 -7
  100. package/node_modules/@contrast/fn-inspect/package.json +9 -5
  101. package/node_modules/@contrast/fn-inspect/prebuilds/darwin-x64+arm64/@contrast+fn-inspect.abi108.node +0 -0
  102. package/node_modules/@contrast/fn-inspect/prebuilds/darwin-x64+arm64/@contrast+fn-inspect.abi115.node +0 -0
  103. package/node_modules/@contrast/fn-inspect/prebuilds/darwin-x64+arm64/@contrast+fn-inspect.abi127.node +0 -0
  104. package/node_modules/@contrast/fn-inspect/prebuilds/darwin-x64+arm64/{@contrast+fn-inspect.abi93.node → @contrast+fn-inspect.abi137.node} +0 -0
  105. package/node_modules/@contrast/fn-inspect/prebuilds/linux-arm64/@contrast+fn-inspect.abi108.armv8.node +0 -0
  106. package/node_modules/@contrast/fn-inspect/prebuilds/linux-arm64/@contrast+fn-inspect.abi115.armv8.node +0 -0
  107. package/node_modules/@contrast/fn-inspect/prebuilds/linux-arm64/@contrast+fn-inspect.abi127.armv8.node +0 -0
  108. package/node_modules/@contrast/fn-inspect/prebuilds/linux-arm64/@contrast+fn-inspect.abi137.armv8.node +0 -0
  109. package/node_modules/@contrast/fn-inspect/prebuilds/linux-x64/@contrast+fn-inspect.abi108.glibc.node +0 -0
  110. package/node_modules/@contrast/fn-inspect/prebuilds/linux-x64/@contrast+fn-inspect.abi108.musl.node +0 -0
  111. package/node_modules/@contrast/fn-inspect/prebuilds/linux-x64/@contrast+fn-inspect.abi115.glibc.node +0 -0
  112. package/node_modules/@contrast/fn-inspect/prebuilds/linux-x64/@contrast+fn-inspect.abi115.musl.node +0 -0
  113. package/node_modules/@contrast/fn-inspect/prebuilds/linux-x64/@contrast+fn-inspect.abi127.glibc.node +0 -0
  114. package/node_modules/@contrast/fn-inspect/prebuilds/linux-x64/@contrast+fn-inspect.abi127.musl.node +0 -0
  115. package/node_modules/@contrast/fn-inspect/prebuilds/linux-x64/@contrast+fn-inspect.abi137.glibc.node +0 -0
  116. package/node_modules/@contrast/fn-inspect/prebuilds/linux-x64/{@contrast+fn-inspect.abi93.musl.node → @contrast+fn-inspect.abi137.musl.node} +0 -0
  117. package/node_modules/@contrast/fn-inspect/prebuilds/win32-x64/@contrast+fn-inspect.abi108.node +0 -0
  118. package/node_modules/@contrast/fn-inspect/prebuilds/win32-x64/@contrast+fn-inspect.abi115.node +0 -0
  119. package/node_modules/@contrast/fn-inspect/prebuilds/win32-x64/@contrast+fn-inspect.abi127.node +0 -0
  120. package/node_modules/@contrast/fn-inspect/prebuilds/win32-x64/@contrast+fn-inspect.abi137.node +0 -0
  121. package/node_modules/@contrast/instrumentation/lib/http2.js +0 -11
  122. package/node_modules/@contrast/instrumentation/package.json +6 -6
  123. package/node_modules/@contrast/library-analysis/lib/install/library-reporting/dep.json +312 -224
  124. package/node_modules/@contrast/library-analysis/package.json +6 -6
  125. package/node_modules/@contrast/logger/lib/index.js +18 -8
  126. package/node_modules/@contrast/logger/lib/serializers.js +5 -5
  127. package/node_modules/@contrast/logger/lib/utils.d.ts +0 -6
  128. package/node_modules/@contrast/logger/package.json +4 -4
  129. package/node_modules/@contrast/metrics/lib/index.d.ts +6 -6
  130. package/node_modules/@contrast/metrics/lib/index.js +0 -1
  131. package/node_modules/@contrast/metrics/package.json +7 -7
  132. package/node_modules/@contrast/patcher/package.json +3 -3
  133. package/node_modules/@contrast/perf/package.json +7 -4
  134. package/node_modules/@contrast/protect/lib/hardening/handlers.js +37 -21
  135. package/node_modules/@contrast/protect/lib/index.d.ts +3 -2
  136. package/node_modules/@contrast/protect/lib/index.js +9 -2
  137. package/node_modules/@contrast/protect/lib/input-analysis/handlers.js +269 -238
  138. package/node_modules/@contrast/protect/lib/input-analysis/install/http.js +3 -4
  139. package/node_modules/@contrast/protect/lib/input-tracing/{handlers/index.js → handlers.js} +15 -15
  140. package/node_modules/@contrast/protect/lib/input-tracing/index.js +0 -1
  141. package/node_modules/@contrast/protect/lib/make-source-context.js +5 -7
  142. package/node_modules/@contrast/protect/lib/policy.js +130 -95
  143. package/node_modules/@contrast/protect/lib/semantic-analysis/handlers.js +19 -18
  144. package/node_modules/@contrast/protect/package.json +12 -12
  145. package/node_modules/@contrast/reporter/lib/index.js +1 -1
  146. package/node_modules/@contrast/reporter/lib/reporters/base.d.ts +0 -1
  147. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/application-activity/index.d.ts +4 -2
  148. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/application-activity/index.js +14 -14
  149. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/application-activity/translations.d.ts +43 -6
  150. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/application-activity/translations.js +262 -429
  151. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/server-inventory.d.ts +3 -3
  152. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/traces/index.js +17 -7
  153. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/endpoints/traces/translations.js +12 -13
  154. package/node_modules/@contrast/reporter/lib/reporters/contrast-ui/utils.js +6 -7
  155. package/node_modules/@contrast/reporter/lib/reporters/file.js +1 -1
  156. package/node_modules/@contrast/reporter/lib/reporters/security-logger/index.d.ts +2 -3
  157. package/node_modules/@contrast/reporter/lib/reporters/security-logger/index.js +72 -86
  158. package/node_modules/@contrast/reporter/lib/reporters/security-logger/messages.js +6 -7
  159. package/node_modules/@contrast/reporter/lib/validators.js +0 -1
  160. package/node_modules/@contrast/reporter/node_modules/sonic-boom/.husky/pre-commit +2 -2
  161. package/node_modules/@contrast/reporter/node_modules/sonic-boom/.taprc +5 -0
  162. package/node_modules/@contrast/reporter/node_modules/sonic-boom/README.md +2 -4
  163. package/node_modules/@contrast/reporter/node_modules/sonic-boom/bench.js +5 -36
  164. package/node_modules/@contrast/reporter/node_modules/sonic-boom/index.js +56 -300
  165. package/node_modules/@contrast/reporter/node_modules/sonic-boom/package.json +12 -7
  166. package/node_modules/@contrast/reporter/node_modules/sonic-boom/test.js +1684 -0
  167. package/node_modules/@contrast/reporter/node_modules/sonic-boom/types/index.d.ts +1 -2
  168. package/node_modules/@contrast/reporter/package.json +10 -10
  169. package/node_modules/@contrast/rewriter/lib/index.js +5 -43
  170. package/node_modules/@contrast/rewriter/package.json +8 -8
  171. package/node_modules/@contrast/route-coverage/lib/install/express/express5.js +0 -5
  172. package/node_modules/@contrast/route-coverage/lib/install/restify.js +1 -1
  173. package/node_modules/@contrast/route-coverage/package.json +10 -10
  174. package/node_modules/@contrast/scopes/package.json +6 -6
  175. package/node_modules/@contrast/sec-obs/lib/traces/http.js +1 -1
  176. package/node_modules/@contrast/sec-obs/lib/traces/http.test.js +1 -1
  177. package/node_modules/@contrast/sec-obs/package.json +10 -10
  178. package/node_modules/@contrast/sources/lib/index.js +1 -1
  179. package/node_modules/@contrast/sources/lib/index.test.js +0 -26
  180. package/node_modules/@contrast/sources/package.json +3 -3
  181. package/node_modules/@contrast/telemetry/package.json +6 -6
  182. package/node_modules/@opentelemetry/semantic-conventions/README.md +3 -2
  183. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_attributes.d.ts +4350 -2882
  184. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_attributes.js +4350 -2882
  185. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_attributes.js.map +1 -1
  186. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_events.d.ts +136 -0
  187. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_events.js +154 -0
  188. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_events.js.map +1 -0
  189. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_metrics.d.ts +713 -141
  190. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_metrics.js +713 -141
  191. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_metrics.js.map +1 -1
  192. package/node_modules/@opentelemetry/semantic-conventions/build/esm/index-incubating.d.ts +2 -0
  193. package/node_modules/@opentelemetry/semantic-conventions/build/esm/index-incubating.js +2 -0
  194. package/node_modules/@opentelemetry/semantic-conventions/build/esm/index-incubating.js.map +1 -1
  195. package/node_modules/@opentelemetry/semantic-conventions/build/esm/index.d.ts +1 -0
  196. package/node_modules/@opentelemetry/semantic-conventions/build/esm/index.js +1 -0
  197. package/node_modules/@opentelemetry/semantic-conventions/build/esm/index.js.map +1 -1
  198. package/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_attributes.d.ts +7 -1
  199. package/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_attributes.js +7 -1
  200. package/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_attributes.js.map +1 -1
  201. package/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_events.d.ts +5 -0
  202. package/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_events.js +23 -0
  203. package/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_events.js.map +1 -0
  204. package/node_modules/@opentelemetry/semantic-conventions/build/esm/version.d.ts +1 -1
  205. package/node_modules/@opentelemetry/semantic-conventions/build/esm/version.js +1 -1
  206. package/node_modules/@opentelemetry/semantic-conventions/build/esm/version.js.map +1 -1
  207. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_attributes.d.ts +4350 -2882
  208. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_attributes.js +4350 -2882
  209. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_attributes.js.map +1 -1
  210. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_events.d.ts +136 -0
  211. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_events.js +154 -0
  212. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_events.js.map +1 -0
  213. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_metrics.d.ts +713 -141
  214. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_metrics.js +713 -141
  215. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_metrics.js.map +1 -1
  216. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/index-incubating.d.ts +2 -0
  217. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/index-incubating.js +2 -0
  218. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/index-incubating.js.map +1 -1
  219. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/index.d.ts +1 -0
  220. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/index.js +1 -0
  221. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/index.js.map +1 -1
  222. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/stable_attributes.d.ts +7 -1
  223. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/stable_attributes.js +7 -1
  224. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/stable_attributes.js.map +1 -1
  225. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/stable_events.d.ts +5 -0
  226. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/stable_events.js +23 -0
  227. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/stable_events.js.map +1 -0
  228. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/version.d.ts +1 -1
  229. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/version.js +1 -1
  230. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/version.js.map +1 -1
  231. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_attributes.d.ts +4350 -2882
  232. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_attributes.js +4354 -2883
  233. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_attributes.js.map +1 -1
  234. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_events.d.ts +136 -0
  235. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_events.js +157 -0
  236. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_events.js.map +1 -0
  237. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_metrics.d.ts +713 -141
  238. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_metrics.js +720 -147
  239. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_metrics.js.map +1 -1
  240. package/node_modules/@opentelemetry/semantic-conventions/build/src/index-incubating.d.ts +2 -0
  241. package/node_modules/@opentelemetry/semantic-conventions/build/src/index-incubating.js +2 -0
  242. package/node_modules/@opentelemetry/semantic-conventions/build/src/index-incubating.js.map +1 -1
  243. package/node_modules/@opentelemetry/semantic-conventions/build/src/index.d.ts +1 -0
  244. package/node_modules/@opentelemetry/semantic-conventions/build/src/index.js +1 -0
  245. package/node_modules/@opentelemetry/semantic-conventions/build/src/index.js.map +1 -1
  246. package/node_modules/@opentelemetry/semantic-conventions/build/src/stable_attributes.d.ts +7 -1
  247. package/node_modules/@opentelemetry/semantic-conventions/build/src/stable_attributes.js +10 -4
  248. package/node_modules/@opentelemetry/semantic-conventions/build/src/stable_attributes.js.map +1 -1
  249. package/node_modules/@opentelemetry/semantic-conventions/build/src/stable_events.d.ts +5 -0
  250. package/node_modules/@opentelemetry/semantic-conventions/build/src/stable_events.js +26 -0
  251. package/node_modules/@opentelemetry/semantic-conventions/build/src/stable_events.js.map +1 -0
  252. package/node_modules/@opentelemetry/semantic-conventions/build/src/version.d.ts +1 -1
  253. package/node_modules/@opentelemetry/semantic-conventions/build/src/version.js +1 -1
  254. package/node_modules/@opentelemetry/semantic-conventions/build/src/version.js.map +1 -1
  255. package/node_modules/@opentelemetry/semantic-conventions/package.json +6 -7
  256. package/node_modules/@swc/core/README.md +5 -0
  257. package/node_modules/@swc/core/binding.d.ts +2 -2
  258. package/node_modules/@swc/core/index.d.ts +5 -4
  259. package/node_modules/@swc/core/index.js +2 -2
  260. package/node_modules/@swc/core/package.json +12 -12
  261. package/node_modules/@swc/core-darwin-arm64/package.json +1 -1
  262. package/node_modules/@swc/core-darwin-arm64/swc.darwin-arm64.node +0 -0
  263. package/node_modules/@swc/core-darwin-x64/package.json +1 -1
  264. package/node_modules/@swc/core-darwin-x64/swc.darwin-x64.node +0 -0
  265. package/node_modules/@swc/core-linux-arm64-gnu/package.json +1 -1
  266. package/node_modules/@swc/core-linux-arm64-gnu/swc.linux-arm64-gnu.node +0 -0
  267. package/node_modules/@swc/core-linux-arm64-musl/package.json +1 -1
  268. package/node_modules/@swc/core-linux-arm64-musl/swc.linux-arm64-musl.node +0 -0
  269. package/node_modules/@swc/core-linux-x64-gnu/package.json +1 -1
  270. package/node_modules/@swc/core-linux-x64-gnu/swc.linux-x64-gnu.node +0 -0
  271. package/node_modules/@swc/core-linux-x64-musl/package.json +1 -1
  272. package/node_modules/@swc/core-linux-x64-musl/swc.linux-x64-musl.node +0 -0
  273. package/node_modules/@swc/core-win32-arm64-msvc/package.json +1 -1
  274. package/node_modules/@swc/core-win32-arm64-msvc/swc.win32-arm64-msvc.node +0 -0
  275. package/node_modules/@swc/core-win32-x64-msvc/package.json +1 -1
  276. package/node_modules/@swc/core-win32-x64-msvc/swc.win32-x64-msvc.node +0 -0
  277. package/node_modules/@swc/types/index.d.ts +14 -5
  278. package/node_modules/@swc/types/package.json +2 -2
  279. package/node_modules/@types/node/README.md +1 -1
  280. package/node_modules/@types/node/assert/strict.d.ts +105 -2
  281. package/node_modules/@types/node/assert.d.ts +119 -95
  282. package/node_modules/@types/node/buffer.d.ts +1 -1
  283. package/node_modules/@types/node/child_process.d.ts +26 -122
  284. package/node_modules/@types/node/crypto.d.ts +161 -17
  285. package/node_modules/@types/node/dns.d.ts +5 -0
  286. package/node_modules/@types/node/events.d.ts +79 -33
  287. package/node_modules/@types/node/fs/promises.d.ts +41 -26
  288. package/node_modules/@types/node/fs.d.ts +276 -35
  289. package/node_modules/@types/node/globals.d.ts +148 -347
  290. package/node_modules/@types/node/http.d.ts +57 -8
  291. package/node_modules/@types/node/https.d.ts +5 -0
  292. package/node_modules/@types/node/index.d.ts +7 -2
  293. package/node_modules/@types/node/inspector.d.ts +187 -4089
  294. package/node_modules/@types/node/inspector.generated.d.ts +4052 -0
  295. package/node_modules/@types/node/module.d.ts +1 -0
  296. package/node_modules/@types/node/net.d.ts +21 -0
  297. package/node_modules/@types/node/package.json +3 -3
  298. package/node_modules/@types/node/sqlite.d.ts +34 -0
  299. package/node_modules/@types/node/test.d.ts +106 -23
  300. package/node_modules/@types/node/tls.d.ts +32 -0
  301. package/node_modules/@types/node/ts5.6/index.d.ts +7 -2
  302. package/node_modules/@types/node/ts5.7/index.d.ts +7 -2
  303. package/node_modules/@types/node/url.d.ts +25 -6
  304. package/node_modules/@types/node/util.d.ts +11 -4
  305. package/node_modules/@types/node/vm.d.ts +73 -10
  306. package/node_modules/@types/node/wasi.d.ts +21 -0
  307. package/node_modules/@types/node/web-globals/abortcontroller.d.ts +34 -0
  308. package/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
  309. package/node_modules/@types/node/{dom-events.d.ts → web-globals/events.d.ts} +49 -51
  310. package/node_modules/@types/node/web-globals/fetch.d.ts +50 -0
  311. package/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
  312. package/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  313. package/node_modules/@types/node/worker_threads.d.ts +84 -50
  314. package/node_modules/@types/node/zlib.d.ts +6 -0
  315. package/node_modules/axios/CHANGELOG.md +58 -0
  316. package/node_modules/axios/README.md +87 -10
  317. package/node_modules/axios/dist/axios.js +355 -289
  318. package/node_modules/axios/dist/axios.js.map +1 -1
  319. package/node_modules/axios/dist/axios.min.js +2 -2
  320. package/node_modules/axios/dist/axios.min.js.map +1 -1
  321. package/node_modules/axios/dist/browser/axios.cjs +286 -213
  322. package/node_modules/axios/dist/browser/axios.cjs.map +1 -1
  323. package/node_modules/axios/dist/esm/axios.js +286 -213
  324. package/node_modules/axios/dist/esm/axios.js.map +1 -1
  325. package/node_modules/axios/dist/esm/axios.min.js +2 -2
  326. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  327. package/node_modules/axios/dist/node/axios.cjs +377 -213
  328. package/node_modules/axios/dist/node/axios.cjs.map +1 -1
  329. package/node_modules/axios/index.d.cts +12 -5
  330. package/node_modules/axios/index.d.ts +13 -4
  331. package/node_modules/axios/lib/adapters/adapters.js +6 -4
  332. package/node_modules/axios/lib/adapters/fetch.js +221 -162
  333. package/node_modules/axios/lib/adapters/http.js +18 -0
  334. package/node_modules/axios/lib/adapters/xhr.js +11 -8
  335. package/node_modules/axios/lib/core/Axios.js +0 -2
  336. package/node_modules/axios/lib/core/AxiosError.js +10 -3
  337. package/node_modules/axios/lib/core/dispatchRequest.js +1 -1
  338. package/node_modules/axios/lib/defaults/index.js +1 -1
  339. package/node_modules/axios/lib/env/data.js +1 -1
  340. package/node_modules/axios/lib/helpers/buildURL.js +1 -3
  341. package/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +73 -0
  342. package/node_modules/axios/lib/helpers/resolveConfig.js +13 -9
  343. package/node_modules/axios/lib/utils.js +5 -3
  344. package/node_modules/axios/package.json +18 -12
  345. package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  346. package/node_modules/balanced-match/LICENSE.md +21 -0
  347. package/node_modules/balanced-match/README.md +97 -0
  348. package/node_modules/balanced-match/index.js +62 -0
  349. package/node_modules/balanced-match/package.json +48 -0
  350. package/node_modules/brace-expansion/.github/FUNDING.yml +2 -0
  351. package/node_modules/brace-expansion/LICENSE +21 -0
  352. package/node_modules/brace-expansion/README.md +135 -0
  353. package/node_modules/brace-expansion/index.js +203 -0
  354. package/node_modules/brace-expansion/package.json +49 -0
  355. package/node_modules/detect-libc/lib/detect-libc.js +59 -13
  356. package/node_modules/detect-libc/lib/elf.js +39 -0
  357. package/node_modules/detect-libc/lib/filesystem.js +18 -8
  358. package/node_modules/detect-libc/package.json +3 -2
  359. package/node_modules/minimatch/LICENSE +15 -0
  360. package/node_modules/minimatch/README.md +454 -0
  361. package/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts +2 -0
  362. package/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map +1 -0
  363. package/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +14 -0
  364. package/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map +1 -0
  365. package/node_modules/minimatch/dist/commonjs/ast.d.ts +20 -0
  366. package/node_modules/minimatch/dist/commonjs/ast.d.ts.map +1 -0
  367. package/node_modules/minimatch/dist/commonjs/ast.js +592 -0
  368. package/node_modules/minimatch/dist/commonjs/ast.js.map +1 -0
  369. package/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts +8 -0
  370. package/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map +1 -0
  371. package/node_modules/minimatch/dist/commonjs/brace-expressions.js +152 -0
  372. package/node_modules/minimatch/dist/commonjs/brace-expressions.js.map +1 -0
  373. package/node_modules/minimatch/dist/commonjs/escape.d.ts +12 -0
  374. package/node_modules/minimatch/dist/commonjs/escape.d.ts.map +1 -0
  375. package/node_modules/minimatch/dist/commonjs/escape.js +22 -0
  376. package/node_modules/minimatch/dist/commonjs/escape.js.map +1 -0
  377. package/node_modules/minimatch/dist/commonjs/index.d.ts +94 -0
  378. package/node_modules/minimatch/dist/commonjs/index.d.ts.map +1 -0
  379. package/node_modules/minimatch/dist/commonjs/index.js +1017 -0
  380. package/node_modules/minimatch/dist/commonjs/index.js.map +1 -0
  381. package/node_modules/minimatch/dist/commonjs/package.json +3 -0
  382. package/node_modules/minimatch/dist/commonjs/unescape.d.ts +17 -0
  383. package/node_modules/minimatch/dist/commonjs/unescape.d.ts.map +1 -0
  384. package/node_modules/minimatch/dist/commonjs/unescape.js +24 -0
  385. package/node_modules/minimatch/dist/commonjs/unescape.js.map +1 -0
  386. package/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts +2 -0
  387. package/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map +1 -0
  388. package/node_modules/minimatch/dist/esm/assert-valid-pattern.js +10 -0
  389. package/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map +1 -0
  390. package/node_modules/minimatch/dist/esm/ast.d.ts +20 -0
  391. package/node_modules/minimatch/dist/esm/ast.d.ts.map +1 -0
  392. package/node_modules/minimatch/dist/esm/ast.js +588 -0
  393. package/node_modules/minimatch/dist/esm/ast.js.map +1 -0
  394. package/node_modules/minimatch/dist/esm/brace-expressions.d.ts +8 -0
  395. package/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map +1 -0
  396. package/node_modules/minimatch/dist/esm/brace-expressions.js +148 -0
  397. package/node_modules/minimatch/dist/esm/brace-expressions.js.map +1 -0
  398. package/node_modules/minimatch/dist/esm/escape.d.ts +12 -0
  399. package/node_modules/minimatch/dist/esm/escape.d.ts.map +1 -0
  400. package/node_modules/minimatch/dist/esm/escape.js +18 -0
  401. package/node_modules/minimatch/dist/esm/escape.js.map +1 -0
  402. package/node_modules/minimatch/dist/esm/index.d.ts +94 -0
  403. package/node_modules/minimatch/dist/esm/index.d.ts.map +1 -0
  404. package/node_modules/minimatch/dist/esm/index.js +1001 -0
  405. package/node_modules/minimatch/dist/esm/index.js.map +1 -0
  406. package/node_modules/minimatch/dist/esm/package.json +3 -0
  407. package/node_modules/minimatch/dist/esm/unescape.d.ts +17 -0
  408. package/node_modules/minimatch/dist/esm/unescape.d.ts.map +1 -0
  409. package/node_modules/minimatch/dist/esm/unescape.js +20 -0
  410. package/node_modules/minimatch/dist/esm/unescape.js.map +1 -0
  411. package/node_modules/minimatch/package.json +82 -0
  412. package/node_modules/node-abi/LICENSE +21 -0
  413. package/node_modules/node-abi/README.md +54 -0
  414. package/node_modules/node-abi/abi_registry.json +408 -0
  415. package/node_modules/node-abi/getNextTarget.js +13 -0
  416. package/node_modules/node-abi/index.js +161 -0
  417. package/node_modules/node-abi/package.json +46 -0
  418. package/node_modules/node-addon-api/README.md +25 -249
  419. package/node_modules/node-addon-api/common.gypi +1 -0
  420. package/node_modules/node-addon-api/index.js +2 -0
  421. package/node_modules/node-addon-api/napi-inl.h +592 -166
  422. package/node_modules/node-addon-api/napi.h +167 -59
  423. package/node_modules/node-addon-api/node_addon_api.gyp +10 -0
  424. package/node_modules/node-addon-api/noexcept.gypi +1 -1
  425. package/node_modules/node-addon-api/package.json +13 -13
  426. package/node_modules/node-addon-api/tools/conversion.js +1 -1
  427. package/node_modules/protobufjs/dist/light/protobuf.js +2 -2
  428. package/node_modules/protobufjs/dist/light/protobuf.min.js +2 -2
  429. package/node_modules/protobufjs/dist/minimal/protobuf.js +2 -2
  430. package/node_modules/protobufjs/dist/minimal/protobuf.min.js +2 -2
  431. package/node_modules/protobufjs/dist/protobuf.js +2 -2
  432. package/node_modules/protobufjs/dist/protobuf.min.js +2 -2
  433. package/node_modules/protobufjs/google/protobuf/descriptor.json +2 -2
  434. package/node_modules/protobufjs/google/protobuf/descriptor.proto +2 -1
  435. package/node_modules/protobufjs/package.json +1 -1
  436. package/node_modules/undici-types/agent.d.ts +0 -4
  437. package/node_modules/undici-types/client.d.ts +0 -2
  438. package/node_modules/undici-types/diagnostics-channel.d.ts +9 -0
  439. package/node_modules/undici-types/dispatcher.d.ts +3 -8
  440. package/node_modules/undici-types/env-http-proxy-agent.d.ts +2 -1
  441. package/node_modules/undici-types/eventsource.d.ts +3 -3
  442. package/node_modules/undici-types/fetch.d.ts +1 -0
  443. package/node_modules/undici-types/h2c-client.d.ts +0 -2
  444. package/node_modules/undici-types/handlers.d.ts +1 -1
  445. package/node_modules/undici-types/index.d.ts +3 -1
  446. package/node_modules/undici-types/mock-client.d.ts +2 -0
  447. package/node_modules/undici-types/mock-interceptor.d.ts +2 -1
  448. package/node_modules/undici-types/mock-pool.d.ts +2 -0
  449. package/node_modules/undici-types/package.json +1 -1
  450. package/node_modules/undici-types/retry-handler.d.ts +9 -0
  451. package/node_modules/undici-types/snapshot-agent.d.ts +107 -0
  452. package/node_modules/undici-types/webidl.d.ts +29 -15
  453. package/node_modules/undici-types/websocket.d.ts +3 -1
  454. package/package.json +3 -3
  455. package/node_modules/@contrast/assess/lib/get-policy.js +0 -336
  456. package/node_modules/@contrast/code-events/prebuilds/linux-arm64/@contrast+code-events.abi93.armv8.node +0 -0
  457. package/node_modules/@contrast/code-events/prebuilds/linux-x64/@contrast+code-events.abi93.glibc.node +0 -0
  458. package/node_modules/@contrast/code-events/prebuilds/linux-x64/@contrast+code-events.abi93.musl.node +0 -0
  459. package/node_modules/@contrast/code-events/prebuilds/win32-x64/@contrast+code-events.abi93.node +0 -0
  460. package/node_modules/@contrast/core/lib/sensitive-data-masking/protect-listener.js +0 -111
  461. package/node_modules/@contrast/distringuish/prebuilds/linux-arm64/@contrast+distringuish.abi93.armv8.node +0 -0
  462. package/node_modules/@contrast/distringuish/prebuilds/linux-x64/@contrast+distringuish.abi93.glibc.node +0 -0
  463. package/node_modules/@contrast/distringuish/prebuilds/linux-x64/@contrast+distringuish.abi93.musl.node +0 -0
  464. package/node_modules/@contrast/distringuish/prebuilds/win32-x64/@contrast+distringuish.abi93.node +0 -0
  465. package/node_modules/@contrast/fn-inspect/prebuilds/linux-arm64/@contrast+fn-inspect.abi93.armv8.node +0 -0
  466. package/node_modules/@contrast/fn-inspect/prebuilds/linux-x64/@contrast+fn-inspect.abi93.glibc.node +0 -0
  467. package/node_modules/@contrast/fn-inspect/prebuilds/win32-x64/@contrast+fn-inspect.abi93.node +0 -0
  468. package/node_modules/@contrast/perf/lib/index.test.js +0 -547
  469. package/node_modules/@contrast/perf/lib/tsconfig.json +0 -31
  470. package/node_modules/@contrast/protect/lib/input-tracing/install/spdy.js +0 -63
  471. package/node_modules/@contrast/reporter/node_modules/sonic-boom/.taprc.yaml +0 -11
  472. package/node_modules/@contrast/reporter/node_modules/sonic-boom/test/destroy.test.js +0 -49
  473. package/node_modules/@contrast/reporter/node_modules/sonic-boom/test/end.test.js +0 -98
  474. package/node_modules/@contrast/reporter/node_modules/sonic-boom/test/flush-sync.test.js +0 -140
  475. package/node_modules/@contrast/reporter/node_modules/sonic-boom/test/flush.test.js +0 -419
  476. package/node_modules/@contrast/reporter/node_modules/sonic-boom/test/fsync.test.js +0 -63
  477. package/node_modules/@contrast/reporter/node_modules/sonic-boom/test/helper.js +0 -42
  478. package/node_modules/@contrast/reporter/node_modules/sonic-boom/test/minlength.test.js +0 -35
  479. package/node_modules/@contrast/reporter/node_modules/sonic-boom/test/mode.test.js +0 -116
  480. package/node_modules/@contrast/reporter/node_modules/sonic-boom/test/reopen.test.js +0 -239
  481. package/node_modules/@contrast/reporter/node_modules/sonic-boom/test/retry.test.js +0 -414
  482. package/node_modules/@contrast/reporter/node_modules/sonic-boom/test/sync.test.js +0 -261
  483. package/node_modules/@contrast/reporter/node_modules/sonic-boom/test/write.test.js +0 -465
  484. package/node_modules/node-addon-api/tools/eslint-format.js +0 -79
package/README.md CHANGED
@@ -65,23 +65,14 @@ Notes:
65
65
 
66
66
  ### With end-of-life Node.js Versions
67
67
 
68
- When using the agent with end-of-life Node.js versions, use either the `--loader` or
69
- `--require` flag, depending on the version of Node.js and the module system used.
70
-
71
68
  Use the `--loader` flag for Node.js versions `>=16.17.0 <18.19.0`.
72
69
 
73
70
  ```sh
74
71
  node --loader @contrast/agent app-main.mjs [app arguments]
75
72
  ```
76
73
 
77
- Use the `--require` (`-r`) flag for Node.js versions `<16.17.0`.
78
-
79
- ```sh
80
- node -r @contrast/agent app-main [app arguments]
81
- ```
82
-
83
74
  Note:
84
- - `-r` will still work for Node.js versions that have no ESM modules or dependencies.
75
+ - `--require` or `-r` will still work for Node.js versions that have no ESM modules or dependencies.
85
76
 
86
77
  ### Configuration
87
78
 
@@ -65,23 +65,14 @@ Notes:
65
65
 
66
66
  ### With end-of-life Node.js Versions
67
67
 
68
- When using the agent with end-of-life Node.js versions, use either the `--loader` or
69
- `--require` flag, depending on the version of Node.js and the module system used.
70
-
71
68
  Use the `--loader` flag for Node.js versions `>=16.17.0 <18.19.0`.
72
69
 
73
70
  ```sh
74
71
  node --loader @contrast/agent app-main.mjs [app arguments]
75
72
  ```
76
73
 
77
- Use the `--require` (`-r`) flag for Node.js versions `<16.17.0`.
78
-
79
- ```sh
80
- node -r @contrast/agent app-main [app arguments]
81
- ```
82
-
83
74
  Note:
84
- - `-r` will still work for Node.js versions that have no ESM modules or dependencies.
75
+ - `--require` or `-r` will still work for Node.js versions that have no ESM modules or dependencies.
85
76
 
86
77
  ### Configuration
87
78
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contrast/agent",
3
- "version": "5.42.0",
3
+ "version": "5.46.0",
4
4
  "description": "Assess and Protect agents for Node.js",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": "Contrast Security <nodejs@contrastsecurity.com> (https://www.contrastsecurity.com)",
@@ -22,21 +22,21 @@
22
22
  "main": "./lib/index.js",
23
23
  "engines": {
24
24
  "npm": ">=6.13.7 <7 || >= 8.3.1",
25
- "node": ">=16.9.1 <17 || >=18.7.0 <19 || >=20.6.0 <21 || >= 22.5.1 <23"
25
+ "node": ">=18.7.0 <19 || >=20.6.0 <21 || >= 22.5.1 <23 || >= 24.0.1 <25"
26
26
  },
27
27
  "scripts": {
28
28
  "test": "bash ../scripts/test.sh"
29
29
  },
30
30
  "dependencies": {
31
- "@contrast/agentify": "1.54.0",
32
- "@contrast/architecture-components": "1.43.0",
33
- "@contrast/assess": "1.60.0",
34
- "@contrast/common": "1.35.0",
35
- "@contrast/core": "1.55.0",
36
- "@contrast/library-analysis": "1.45.0",
37
- "@contrast/protect": "1.65.0",
38
- "@contrast/route-coverage": "1.47.0",
39
- "@contrast/sec-obs": "1.0.0-alpha.9",
40
- "@contrast/telemetry": "1.30.0"
31
+ "@contrast/agentify": "1.58.0",
32
+ "@contrast/architecture-components": "1.46.0",
33
+ "@contrast/assess": "1.64.0",
34
+ "@contrast/common": "1.37.0",
35
+ "@contrast/core": "1.58.0",
36
+ "@contrast/library-analysis": "1.48.0",
37
+ "@contrast/protect": "1.69.0",
38
+ "@contrast/route-coverage": "1.50.0",
39
+ "@contrast/sec-obs": "1.2.0",
40
+ "@contrast/telemetry": "1.33.0"
41
41
  }
42
42
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contrast/agent-swc-plugin",
3
- "version": "3.1.0",
3
+ "version": "3.2.0",
4
4
  "description": "SWC plugins Contrast Node agent",
5
5
  "author": "Contrast Security <nodejs@contrastsecurity.com> (https://www.contrastsecurity.com)",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -22,11 +22,11 @@
22
22
  "prepack": "cp target/wasm32-wasip1/release/*.wasm ."
23
23
  },
24
24
  "peerDependencies": {
25
- "@swc/core": "^1.11.24"
25
+ "@swc/core": "^1.13.3"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@swc/cli": "0.7.8",
29
- "@swc/core": "^1.11.24",
29
+ "@swc/core": "^1.13.3",
30
30
  "@tsconfig/node16": "16.1.4",
31
31
  "benchmark": "2.1.4",
32
32
  "chai": "5.2.1",
@@ -26,8 +26,10 @@ const { rewriteIsDeadzoned } = require('@contrast/rewriter/lib/rewrite-is-deadzo
26
26
  * @returns {import('@contrast/common').Installable}
27
27
  */
28
28
  module.exports = function init(core) {
29
- let js;
29
+ /** @type {Module.prototype["_compile"]} */
30
30
  let _compile;
31
+ /** @type {Module._extensions[".js"]} */
32
+ let js;
31
33
 
32
34
  core.rewriteHooks = {
33
35
  install() {
@@ -49,9 +51,7 @@ module.exports = function init(core) {
49
51
  /** @type {import('@contrast/rewriter').RewriteOpts} */
50
52
  const options = {
51
53
  filename,
52
- isModule: false,
53
54
  inject: true,
54
- wrap: true,
55
55
  minify: true,
56
56
  };
57
57
 
@@ -18,13 +18,17 @@
18
18
  const path = require('path');
19
19
  const process = require('process');
20
20
  const semver = require('semver');
21
-
22
21
  const {
23
22
  engines: {
24
23
  node: nodeEngines,
25
24
  }
26
25
  } = require('../package.json');
27
26
 
27
+ const UNSUPPORTED_FLAGS = [
28
+ '--experimental',
29
+ '--permission',
30
+ ];
31
+
28
32
  const { primordials: { StringPrototypeSlice, StringPrototypeSplit, StringPrototypeTrim } } = require('@contrast/common');
29
33
 
30
34
  /**
@@ -33,7 +37,7 @@ const { primordials: { StringPrototypeSlice, StringPrototypeSplit, StringPrototy
33
37
  * @param {string} core.nodeEngines
34
38
  */
35
39
  function preStartupValidation(core) {
36
- assertNoExperimentalFeatureFlags();
40
+ assertNoUnsupportedFlags();
37
41
  assertSupportedNodeVersion(core.nodeEngines || nodeEngines);
38
42
  assertSupportedPreloadUsage();
39
43
  }
@@ -61,15 +65,17 @@ function assertSupportedNodeVersion(engines) {
61
65
  * Checks that no experimental feature flags are used.
62
66
  * @throws {Error}
63
67
  */
64
- function assertNoExperimentalFeatureFlags() {
68
+ function assertNoUnsupportedFlags() {
65
69
  const {
66
70
  execArgv,
67
71
  env: { NODE_OPTIONS },
68
72
  } = process;
69
73
 
70
- if (execArgv.some(arg => arg.includes('--experimental')) || NODE_OPTIONS?.includes('--experimental')) {
71
- const msg = 'Contrast Agent does not support experimental features.';
72
- throw new Error(msg);
74
+ for (const pattern of UNSUPPORTED_FLAGS) {
75
+ if (execArgv.some(arg => arg.includes(pattern)) || NODE_OPTIONS?.includes(pattern)) {
76
+ const msg = `Contrast Agent does not support flags matching \`${pattern}\`.`;
77
+ throw new Error(msg);
78
+ }
73
79
  }
74
80
  }
75
81
 
@@ -168,6 +174,6 @@ module.exports = {
168
174
  assertValidOpts,
169
175
  assertSupportedNodeVersion,
170
176
  assertSupportedPreloadUsage,
171
- assertNoExperimentalFeatureFlags,
177
+ assertNoUnsupportedFlags,
172
178
  preStartupValidation,
173
179
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contrast/agentify",
3
- "version": "1.54.0",
3
+ "version": "1.58.0",
4
4
  "description": "Configures Contrast agent services and instrumentation within an application",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": "Contrast Security <nodejs@contrastsecurity.com> (https://www.contrastsecurity.com)",
@@ -14,28 +14,28 @@
14
14
  "types": "lib/index.d.ts",
15
15
  "engines": {
16
16
  "npm": ">=6.13.7 <7 || >= 8.3.1",
17
- "node": ">= 16.9.1"
17
+ "node": ">= 18.7.0"
18
18
  },
19
19
  "scripts": {
20
20
  "test": "bash ../scripts/test.sh"
21
21
  },
22
22
  "dependencies": {
23
- "@contrast/common": "1.35.0",
24
- "@contrast/config": "1.50.0",
25
- "@contrast/core": "1.55.0",
26
- "@contrast/deadzones": "1.27.0",
27
- "@contrast/dep-hooks": "1.24.0",
28
- "@contrast/esm-hooks": "2.29.0",
23
+ "@contrast/common": "1.37.0",
24
+ "@contrast/config": "1.53.0",
25
+ "@contrast/core": "1.58.0",
26
+ "@contrast/deadzones": "1.30.0",
27
+ "@contrast/dep-hooks": "1.27.0",
28
+ "@contrast/esm-hooks": "2.33.0",
29
29
  "@contrast/find-package-json": "^1.1.0",
30
- "@contrast/instrumentation": "1.34.0",
31
- "@contrast/logger": "1.28.0",
32
- "@contrast/metrics": "1.32.0",
33
- "@contrast/patcher": "1.27.0",
34
- "@contrast/perf": "1.3.1",
35
- "@contrast/reporter": "1.53.0",
36
- "@contrast/rewriter": "1.31.0",
37
- "@contrast/scopes": "1.25.0",
38
- "@contrast/sources": "1.1.0",
30
+ "@contrast/instrumentation": "1.37.0",
31
+ "@contrast/logger": "1.31.0",
32
+ "@contrast/metrics": "1.35.0",
33
+ "@contrast/patcher": "1.30.0",
34
+ "@contrast/perf": "1.4.0",
35
+ "@contrast/reporter": "1.56.0",
36
+ "@contrast/rewriter": "1.35.0",
37
+ "@contrast/scopes": "1.28.0",
38
+ "@contrast/sources": "1.4.0",
39
39
  "on-finished": "^2.4.1",
40
40
  "semver": "^7.6.0"
41
41
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contrast/architecture-components",
3
- "version": "1.43.0",
3
+ "version": "1.46.0",
4
4
  "description": "Detects external systems being connected to by applications.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": "Contrast Security <nodejs@contrastsecurity.com> (https://www.contrastsecurity.com)",
@@ -14,15 +14,15 @@
14
14
  "types": "lib/index.d.ts",
15
15
  "engines": {
16
16
  "npm": ">=6.13.7 <7 || >= 8.3.1",
17
- "node": ">= 16.9.1"
17
+ "node": ">= 18.7.0"
18
18
  },
19
19
  "scripts": {
20
20
  "test": "bash ../scripts/test.sh"
21
21
  },
22
22
  "dependencies": {
23
- "@contrast/common": "1.35.0",
24
- "@contrast/dep-hooks": "1.24.0",
25
- "@contrast/logger": "1.28.0",
26
- "@contrast/patcher": "1.27.0"
23
+ "@contrast/common": "1.37.0",
24
+ "@contrast/dep-hooks": "1.27.0",
25
+ "@contrast/logger": "1.31.0",
26
+ "@contrast/patcher": "1.30.0"
27
27
  }
28
28
  }
@@ -37,7 +37,7 @@ module.exports = function (core) {
37
37
  } = core;
38
38
 
39
39
  /** @type {import('@contrast/rewriter').RewriteOpts} */
40
- const REWRITE_OPTS = { isModule: false, inject: false, wrap: false, minify: false };
40
+ const REWRITE_OPTS = { inject: false, minify: false };
41
41
  const WRAPPER_PREFIX = ArrayPrototypeJoin.call([
42
42
  'function tempWrapper() {',
43
43
  'function __append(s) { if (s !== undefined && s !== null) __output += s }'
@@ -17,7 +17,7 @@
17
17
  const { patchType } = require('../../common');
18
18
 
19
19
  /** @type {import('@contrast/rewriter').RewriteOpts} */
20
- const REWRITE_OPTS = { isModule: false, inject: false, wrap: false, minify: false };
20
+ const REWRITE_OPTS = { inject: false, minify: false };
21
21
 
22
22
  module.exports = function (core) {
23
23
  const store = { lock: true, name: 'assess:propagators:pug-compile' };
@@ -77,7 +77,7 @@ module.exports = function(core) {
77
77
  ];
78
78
 
79
79
  const preHook = (moduleName, responseName, method) => ({ args, obj: response, result, hooked, orig }) => {
80
- const methodName = `${responseName + (moduleName !== 'spdy' ? '.prototype' : '')}.${method}`;
80
+ const methodName = `${`${responseName}.prototype`}.${method}`;
81
81
  const name = `${moduleName}.${methodName}`;
82
82
  const sourceContext = getSinkContext(ruleId);
83
83
  if (!sourceContext) return;
@@ -91,7 +91,6 @@ module.exports = function(core) {
91
91
  const { contentType } = sourceContext.responseData;
92
92
  if (contentType && isSafeContentType(contentType)) return;
93
93
 
94
- if (moduleName === 'spdy') response.spdyStream.once('finish', () => response.emit('finish'));
95
94
  if (isVulnerable(UNTRUSTED, safeTags, strInfo.tags)) {
96
95
  const event = createSinkEvent({
97
96
  args: [{
@@ -175,16 +174,6 @@ module.exports = function(core) {
175
174
  });
176
175
  }
177
176
  });
178
- depHooks.resolve({ name: 'spdy', version: '<5', file: 'lib/spdy/response.js' }, (response) => {
179
- {
180
- const method = 'end';
181
- patcher.patch(response, method, {
182
- name: 'spdy.response.end',
183
- patchType,
184
- pre: preHook('spdy', 'response', method),
185
- });
186
- }
187
- });
188
177
  };
189
178
 
190
179
  return http;
@@ -113,7 +113,7 @@ module.exports = function(core) {
113
113
  install() {
114
114
  // restify adds functionality to the built-in response via this patch function.
115
115
  // once it returns the request, it'll have been decorated with redirect() method.
116
- depHooks.resolve({ name: 'restify', version: '<12', file: 'lib/response.js' }, (responsePatch) => patcher.patch(responsePatch, {
116
+ depHooks.resolve({ name: 'restify', version: '>=10 <12', file: 'lib/response.js' }, (responsePatch) => patcher.patch(responsePatch, {
117
117
  name: 'restify.response.patch',
118
118
  patchType,
119
119
  post(data) {
@@ -45,24 +45,19 @@ module.exports = Core.makeComponent({
45
45
  const logger = core.logger.child({ name: 'contrast:sources' });
46
46
 
47
47
  sources.createTags = function createTags({ inputType, fieldName = '', value, tagNames }) {
48
- if (!value?.length) {
49
- return null;
50
- }
48
+ if (!value?.length) return null;
51
49
 
52
50
  const stop = value.length - 1;
53
- const tags = {
54
- [DataflowTag.UNTRUSTED]: [0, stop]
55
- };
51
+ const tags = { [DataflowTag.UNTRUSTED]: [0, stop] };
56
52
 
57
- if (tagNames) {
58
- for (const tag of tagNames) {
53
+ if (tagNames)
54
+ for (const tag of tagNames)
59
55
  tags[tag] = [0, stop];
60
- }
61
- }
62
56
 
63
- if (inputType === InputType.HEADER && StringPrototypeToLowerCase.call(fieldName) === 'referer') {
64
- tags[DataflowTag.HEADER] = [0, stop];
65
- }
57
+ if (
58
+ inputType === InputType.HEADER &&
59
+ StringPrototypeToLowerCase.call(fieldName) === 'referer'
60
+ ) tags[DataflowTag.HEADER] = [0, stop];
66
61
 
67
62
  return tags;
68
63
  };
@@ -89,14 +84,7 @@ module.exports = Core.makeComponent({
89
84
  return null;
90
85
  }
91
86
 
92
- // url exclusion
93
- if (!sourceContext.policy) {
94
- return null;
95
- }
96
-
97
- if (!context) {
98
- context = inputType;
99
- }
87
+ if (!context) context = inputType;
100
88
 
101
89
  const { policy: requestPolicy } = sourceContext;
102
90
  const max = config.assess.max_context_source_events;
@@ -111,7 +99,10 @@ module.exports = Core.makeComponent({
111
99
  }
112
100
 
113
101
  function createEvent({ fieldName, pathName, value, excludedRules }) {
114
- const tagNames = Array.from(excludedRules).map((ruleId) => `excluded:${ruleId}`);
102
+ let tagNames;
103
+ if (excludedRules) {
104
+ tagNames = Array.from(excludedRules).map((ruleId) => `excluded:${ruleId}`);
105
+ }
115
106
  // create the stacktrace once per call to .handle()
116
107
  stack || (stack = sources.createStacktrace(stacktraceOpts));
117
108
  return eventFactory.createSourceEvent({
@@ -127,7 +118,10 @@ module.exports = Core.makeComponent({
127
118
  }
128
119
 
129
120
  if (Buffer.isBuffer(data) && !tracker.getData(data)) {
130
- const { track, excludedRules } = requestPolicy.getInputPolicy(InputType.BODY);
121
+ const inputPolicy = requestPolicy.getInputPolicy(InputType.BODY);
122
+ const track = !!inputPolicy;
123
+ const excludedRules = inputPolicy?.constructor?.name == 'Set' ? inputPolicy : undefined;
124
+
131
125
  if (!track) {
132
126
  core.logger.debug({ inputType }, 'assess input exclusion disabled tracking');
133
127
  return;
@@ -149,7 +143,10 @@ module.exports = Core.makeComponent({
149
143
  return true;
150
144
  }
151
145
 
152
- const { track, excludedRules } = sourceContext.policy.getInputPolicy(inputType, fieldName);
146
+ const inputPolicy = sourceContext.policy.getInputPolicy(inputType, fieldName);
147
+ const track = !!inputPolicy;
148
+ const excludedRules = inputPolicy?.constructor?.name == 'Set' ? inputPolicy : undefined;
149
+
153
150
  if (!track) {
154
151
  core.logger.debug({ fieldName, inputType }, 'assess input exclusion disabling tracking');
155
152
  return;
@@ -196,7 +196,7 @@ module.exports = function (core) {
196
196
  }
197
197
 
198
198
  function install() {
199
- ['http', 'https', 'spdy', 'http2'].forEach((moduleName) => {
199
+ ['http', 'https', 'http2'].forEach((moduleName) => {
200
200
  instrument({
201
201
  moduleName,
202
202
  patchObjects: [{
@@ -65,7 +65,7 @@ module.exports = function tracker(core) {
65
65
 
66
66
  if (distringuish.getProperties(value)) {
67
67
  const err = new Error();
68
- logger.error({ err, value }, 'tracker.track called with a string value that is already tracked');
68
+ logger.debug({ err, value }, 'tracker.track called with a string value that is already tracked');
69
69
  return { extern: null };
70
70
  }
71
71
 
@@ -53,20 +53,11 @@ function factory(core) {
53
53
  core.assess.getPropagatorContext = function getPropagatorContext() {
54
54
  if (instrumentation.isLocked()) return null;
55
55
 
56
- // the following logging used to be done by the caller, but has been moved
57
- // here as opposed to overloading `ctx.policy` with a special value so the
58
- // caller could determine whether no source context was available or the
59
- // request is being intentionally excluded. A negative of this is that the
60
- // function name is not available to be included in the log.
61
56
  const ctx = sources.getStore()?.assess;
62
- if (!ctx) return null;
63
-
64
57
  // there is a context, but if policy is null then assess is intentionally
65
58
  // disabled (i.e., url exclusion or the request is not sampled).
66
- if (!ctx.policy) {
67
- return null;
68
- }
69
-
59
+ if (!ctx?.policy || ctx?.policy.allowed) return null;
60
+ // event limits
70
61
  if (ctx.propagationEventsCount >= config.assess.max_propagation_events) return null;
71
62
 
72
63
  return ctx;
@@ -80,13 +71,13 @@ function factory(core) {
80
71
  if (instrumentation.isLocked()) return null;
81
72
 
82
73
  const ctx = sources.getStore()?.assess;
83
- if (!ctx) return null;
84
-
85
- if (!ctx.policy) {
86
- return null;
87
- }
74
+ if (!ctx?.policy || ctx.policy?.allowed) return null;
75
+ if (!ruleId) return ctx;
88
76
 
89
- if (ruleId && !ctx.policy?.enabledRules?.has?.(ruleId) || ruleScopes.isLocked(ruleId)) return null;
77
+ if (
78
+ !ctx.policy?.isRuleEnabled?.(ruleId) ||
79
+ ruleScopes.isLocked(ruleId)
80
+ ) return null;
90
81
 
91
82
  return ctx;
92
83
  };
@@ -101,14 +92,12 @@ function factory(core) {
101
92
  // that the caller previously logged, we generate a stack trace to
102
93
  // capture that information.
103
94
  const err = new Error('No source context found');
104
- core.logger.warn({ err }, 'assess running outside of request scope');
105
- return null;
106
- }
107
-
108
- if (!ctx.policy) {
95
+ core.logger.debug({ err }, 'assess running outside of request scope');
109
96
  return null;
110
97
  }
111
98
 
99
+ if (!ctx.policy || ctx.policy.allowed) return null;
100
+ // event limits
112
101
  if (ctx.sourceEventsCount >= config.assess.max_context_source_events) return null;
113
102
 
114
103
  return ctx;
@@ -60,7 +60,7 @@ module.exports = function assess(core) {
60
60
 
61
61
  // ancillary tools used by different features
62
62
  require('./sampler')(core);
63
- require('./get-policy')(core);
63
+ core.initComponentSync(require('./policy'));
64
64
  core.initComponentSync(require('./make-source-context'));
65
65
  require('./rule-scopes')(core);
66
66
  core.initComponentSync(require('./get-source-context'));
@@ -36,24 +36,19 @@ function factory(core) {
36
36
  * @returns {import('@contrast/assess').SourceContext}
37
37
  */
38
38
  return core.assess.makeSourceContext = function ({ store, incomingMessage: req }) {
39
-
40
39
  try {
41
40
  const ctx = store.assess = {
42
- // default policy to `null` until it is set later below. this will cause
43
- // all instrumentation to short-circuit, see `./get-source-context.js`.
44
41
  policy: null,
45
42
  };
46
-
43
+ // if assess is disabled or not selected for sampling, the policy will
44
+ // be null (assess disabled) for lifetime of connection, despite UI updates.
47
45
  if (!core.config.getEffectiveValue('assess.enable')) return ctx;
48
-
49
- // check whether sampling allows processing
50
46
  ctx.sampleInfo = assess.sampler?.getSampleInfo(store.sourceInfo) ?? null;
51
47
  if (ctx.sampleInfo?.canSample === false) return ctx;
52
48
 
53
- // set policy - can be returned as `null` if request is url-excluded.
54
- ctx.policy = assess.getPolicy(store.sourceInfo);
55
- if (!ctx.policy) return ctx;
56
-
49
+ // assess-enabled policy from current effective config, but
50
+ // policy is dynamic and will respond to settings updates
51
+ ctx.policy = assess.policy.getRequestPolicy(store.sourceInfo);
57
52
  ctx.propagationEventsCount = 0;
58
53
  ctx.sourceEventsCount = 0;
59
54
  ctx.responseData = {};