shield360 1.0.1 → 1.2.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 (424) hide show
  1. package/README.md +392 -37
  2. package/dist/__tests__/build-info.test.d.ts +1 -0
  3. package/dist/__tests__/build-info.test.js +196 -0
  4. package/dist/__tests__/build-info.test.js.map +1 -0
  5. package/dist/__tests__/code-location.test.d.ts +1 -0
  6. package/dist/__tests__/code-location.test.js +180 -0
  7. package/dist/__tests__/code-location.test.js.map +1 -0
  8. package/dist/__tests__/masking.test.d.ts +1 -0
  9. package/dist/__tests__/masking.test.js +66 -0
  10. package/dist/__tests__/masking.test.js.map +1 -0
  11. package/dist/__tests__/pricing-claude-5.test.js +3 -0
  12. package/dist/__tests__/pricing-claude-5.test.js.map +1 -1
  13. package/dist/__tests__/register.e2e.test.d.ts +1 -0
  14. package/dist/__tests__/register.e2e.test.js +264 -0
  15. package/dist/__tests__/register.e2e.test.js.map +1 -0
  16. package/dist/__tests__/register.test.js +60 -0
  17. package/dist/__tests__/register.test.js.map +1 -1
  18. package/dist/agents/__tests__/agents.test.d.ts +1 -0
  19. package/dist/agents/__tests__/agents.test.js +529 -0
  20. package/dist/agents/__tests__/agents.test.js.map +1 -0
  21. package/dist/agents/index.d.ts +15 -0
  22. package/dist/agents/index.js +25 -0
  23. package/dist/agents/index.js.map +1 -0
  24. package/dist/agents/passport.d.ts +92 -0
  25. package/dist/agents/passport.js +301 -0
  26. package/dist/agents/passport.js.map +1 -0
  27. package/dist/agents/policy.d.ts +24 -0
  28. package/dist/agents/policy.js +93 -0
  29. package/dist/agents/policy.js.map +1 -0
  30. package/dist/agents/replay.d.ts +20 -0
  31. package/dist/agents/replay.js +47 -0
  32. package/dist/agents/replay.js.map +1 -0
  33. package/dist/agents/report.d.ts +30 -0
  34. package/dist/agents/report.js +93 -0
  35. package/dist/agents/report.js.map +1 -0
  36. package/dist/agents/types.d.ts +148 -0
  37. package/dist/agents/types.js +37 -0
  38. package/dist/agents/types.js.map +1 -0
  39. package/dist/agents/verifier.d.ts +33 -0
  40. package/dist/agents/verifier.js +276 -0
  41. package/dist/agents/verifier.js.map +1 -0
  42. package/dist/ai-security/__tests__/bench.test.d.ts +1 -0
  43. package/dist/ai-security/__tests__/bench.test.js +50 -0
  44. package/dist/ai-security/__tests__/bench.test.js.map +1 -0
  45. package/dist/ai-security/__tests__/checks.test.d.ts +1 -0
  46. package/dist/ai-security/__tests__/checks.test.js +248 -0
  47. package/dist/ai-security/__tests__/checks.test.js.map +1 -0
  48. package/dist/ai-security/__tests__/config.test.d.ts +1 -0
  49. package/dist/ai-security/__tests__/config.test.js +164 -0
  50. package/dist/ai-security/__tests__/config.test.js.map +1 -0
  51. package/dist/ai-security/__tests__/detection.test.d.ts +1 -0
  52. package/dist/ai-security/__tests__/detection.test.js +114 -0
  53. package/dist/ai-security/__tests__/detection.test.js.map +1 -0
  54. package/dist/ai-security/__tests__/fixtures.d.ts +8 -0
  55. package/dist/ai-security/__tests__/fixtures.js +30 -0
  56. package/dist/ai-security/__tests__/fixtures.js.map +1 -0
  57. package/dist/ai-security/__tests__/hooks.test.d.ts +1 -0
  58. package/dist/ai-security/__tests__/hooks.test.js +174 -0
  59. package/dist/ai-security/__tests__/hooks.test.js.map +1 -0
  60. package/dist/ai-security/__tests__/stream.test.d.ts +1 -0
  61. package/dist/ai-security/__tests__/stream.test.js +85 -0
  62. package/dist/ai-security/__tests__/stream.test.js.map +1 -0
  63. package/dist/ai-security/config.d.ts +94 -0
  64. package/dist/ai-security/config.js +241 -0
  65. package/dist/ai-security/config.js.map +1 -0
  66. package/dist/ai-security/context.d.ts +45 -0
  67. package/dist/ai-security/context.js +108 -0
  68. package/dist/ai-security/context.js.map +1 -0
  69. package/dist/ai-security/custom-kinds.d.ts +23 -0
  70. package/dist/ai-security/custom-kinds.js +97 -0
  71. package/dist/ai-security/custom-kinds.js.map +1 -0
  72. package/dist/ai-security/events.d.ts +77 -0
  73. package/dist/ai-security/events.js +153 -0
  74. package/dist/ai-security/events.js.map +1 -0
  75. package/dist/ai-security/hooks.d.ts +48 -0
  76. package/dist/ai-security/hooks.js +461 -0
  77. package/dist/ai-security/hooks.js.map +1 -0
  78. package/dist/ai-security/index.d.ts +209 -0
  79. package/dist/ai-security/index.js +587 -0
  80. package/dist/ai-security/index.js.map +1 -0
  81. package/dist/ai-security/injection-rules.json +1024 -0
  82. package/dist/ai-security/injection.d.ts +46 -0
  83. package/dist/ai-security/injection.js +635 -0
  84. package/dist/ai-security/injection.js.map +1 -0
  85. package/dist/ai-security/jailbreak.d.ts +38 -0
  86. package/dist/ai-security/jailbreak.js +73 -0
  87. package/dist/ai-security/jailbreak.js.map +1 -0
  88. package/dist/ai-security/limits.d.ts +84 -0
  89. package/dist/ai-security/limits.js +195 -0
  90. package/dist/ai-security/limits.js.map +1 -0
  91. package/dist/ai-security/mcp.d.ts +82 -0
  92. package/dist/ai-security/mcp.js +150 -0
  93. package/dist/ai-security/mcp.js.map +1 -0
  94. package/dist/ai-security/output.d.ts +107 -0
  95. package/dist/ai-security/output.js +390 -0
  96. package/dist/ai-security/output.js.map +1 -0
  97. package/dist/ai-security/policy.d.ts +125 -0
  98. package/dist/ai-security/policy.js +196 -0
  99. package/dist/ai-security/policy.js.map +1 -0
  100. package/dist/ai-security/rag.d.ts +70 -0
  101. package/dist/ai-security/rag.js +174 -0
  102. package/dist/ai-security/rag.js.map +1 -0
  103. package/dist/ai-security/tool-rules.json +203 -0
  104. package/dist/ai-security/tools.d.ts +46 -0
  105. package/dist/ai-security/tools.js +62 -0
  106. package/dist/ai-security/tools.js.map +1 -0
  107. package/dist/budgets/__tests__/budgets.test.d.ts +1 -0
  108. package/dist/budgets/__tests__/budgets.test.js +134 -0
  109. package/dist/budgets/__tests__/budgets.test.js.map +1 -0
  110. package/dist/budgets/auto.d.ts +25 -0
  111. package/dist/budgets/auto.js +63 -0
  112. package/dist/budgets/auto.js.map +1 -0
  113. package/dist/budgets/index.d.ts +110 -0
  114. package/dist/budgets/index.js +239 -0
  115. package/dist/budgets/index.js.map +1 -0
  116. package/dist/config.js +1 -1
  117. package/dist/config.js.map +1 -1
  118. package/dist/customer/__tests__/customer.test.d.ts +1 -0
  119. package/dist/customer/__tests__/customer.test.js +155 -0
  120. package/dist/customer/__tests__/customer.test.js.map +1 -0
  121. package/dist/customer/index.d.ts +48 -0
  122. package/dist/customer/index.js +132 -0
  123. package/dist/customer/index.js.map +1 -0
  124. package/dist/feedback/__tests__/feedback.test.d.ts +1 -0
  125. package/dist/feedback/__tests__/feedback.test.js +80 -0
  126. package/dist/feedback/__tests__/feedback.test.js.map +1 -0
  127. package/dist/feedback/index.d.ts +48 -0
  128. package/dist/feedback/index.js +97 -0
  129. package/dist/feedback/index.js.map +1 -0
  130. package/dist/flags/__tests__/flags.test.d.ts +1 -0
  131. package/dist/flags/__tests__/flags.test.js +301 -0
  132. package/dist/flags/__tests__/flags.test.js.map +1 -0
  133. package/dist/flags/client.d.ts +131 -0
  134. package/dist/flags/client.js +301 -0
  135. package/dist/flags/client.js.map +1 -0
  136. package/dist/flags/engine.d.ts +200 -0
  137. package/dist/flags/engine.js +677 -0
  138. package/dist/flags/engine.js.map +1 -0
  139. package/dist/flags/index.d.ts +4 -0
  140. package/dist/flags/index.js +16 -0
  141. package/dist/flags/index.js.map +1 -0
  142. package/dist/guard/__tests__/findings.test.js +28 -9
  143. package/dist/guard/__tests__/findings.test.js.map +1 -1
  144. package/dist/guard/__tests__/report.test.js +67 -0
  145. package/dist/guard/__tests__/report.test.js.map +1 -1
  146. package/dist/guard/base.d.ts +2 -0
  147. package/dist/guard/base.js +4 -0
  148. package/dist/guard/base.js.map +1 -1
  149. package/dist/guard/findings.d.ts +12 -2
  150. package/dist/guard/findings.js +19 -49
  151. package/dist/guard/findings.js.map +1 -1
  152. package/dist/guard/heartbeat.d.ts +34 -0
  153. package/dist/guard/heartbeat.js +83 -0
  154. package/dist/guard/heartbeat.js.map +1 -0
  155. package/dist/guard/integration.d.ts +33 -3
  156. package/dist/guard/integration.js +106 -32
  157. package/dist/guard/integration.js.map +1 -1
  158. package/dist/guard/pipeline.d.ts +10 -1
  159. package/dist/guard/pipeline.js +14 -0
  160. package/dist/guard/pipeline.js.map +1 -1
  161. package/dist/guard/report.d.ts +24 -1
  162. package/dist/guard/report.js +67 -18
  163. package/dist/guard/report.js.map +1 -1
  164. package/dist/index.d.ts +90 -0
  165. package/dist/index.js +225 -3
  166. package/dist/index.js.map +1 -1
  167. package/dist/instrumentation/__tests__/langchain-wrapper.test.js +1 -1
  168. package/dist/instrumentation/__tests__/langchain-wrapper.test.js.map +1 -1
  169. package/dist/instrumentation/anthropic/wrapper.js +4 -0
  170. package/dist/instrumentation/anthropic/wrapper.js.map +1 -1
  171. package/dist/instrumentation/mcp/wrapper.js +7 -1
  172. package/dist/instrumentation/mcp/wrapper.js.map +1 -1
  173. package/dist/instrumentation/openai/wrapper.js +6 -0
  174. package/dist/instrumentation/openai/wrapper.js.map +1 -1
  175. package/dist/masking.d.ts +42 -0
  176. package/dist/masking.js +197 -0
  177. package/dist/masking.js.map +1 -0
  178. package/dist/otel/__tests__/app-logs-safety.test.d.ts +1 -0
  179. package/dist/otel/__tests__/app-logs-safety.test.js +129 -0
  180. package/dist/otel/__tests__/app-logs-safety.test.js.map +1 -0
  181. package/dist/otel/__tests__/app-logs.test.d.ts +1 -0
  182. package/dist/otel/__tests__/app-logs.test.js +269 -0
  183. package/dist/otel/__tests__/app-logs.test.js.map +1 -0
  184. package/dist/otel/__tests__/log-auto.test.d.ts +1 -0
  185. package/dist/otel/__tests__/log-auto.test.js +125 -0
  186. package/dist/otel/__tests__/log-auto.test.js.map +1 -0
  187. package/dist/otel/__tests__/log-bridges.test.d.ts +1 -0
  188. package/dist/otel/__tests__/log-bridges.test.js +170 -0
  189. package/dist/otel/__tests__/log-bridges.test.js.map +1 -0
  190. package/dist/otel/__tests__/system-metrics.test.d.ts +1 -0
  191. package/dist/otel/__tests__/system-metrics.test.js +79 -0
  192. package/dist/otel/__tests__/system-metrics.test.js.map +1 -0
  193. package/dist/otel/app-logs.d.ts +80 -0
  194. package/dist/otel/app-logs.js +195 -0
  195. package/dist/otel/app-logs.js.map +1 -0
  196. package/dist/otel/build-info.d.ts +23 -0
  197. package/dist/otel/build-info.js +176 -0
  198. package/dist/otel/build-info.js.map +1 -0
  199. package/dist/otel/code-location.d.ts +49 -0
  200. package/dist/otel/code-location.js +233 -0
  201. package/dist/otel/code-location.js.map +1 -0
  202. package/dist/otel/events.d.ts +1 -0
  203. package/dist/otel/events.js +21 -12
  204. package/dist/otel/events.js.map +1 -1
  205. package/dist/otel/log-auto.d.ts +44 -0
  206. package/dist/otel/log-auto.js +200 -0
  207. package/dist/otel/log-auto.js.map +1 -0
  208. package/dist/otel/log-bridges.d.ts +54 -0
  209. package/dist/otel/log-bridges.js +307 -0
  210. package/dist/otel/log-bridges.js.map +1 -0
  211. package/dist/otel/system-metrics.d.ts +39 -0
  212. package/dist/otel/system-metrics.js +166 -0
  213. package/dist/otel/system-metrics.js.map +1 -0
  214. package/dist/otel/tracing.js +12 -1
  215. package/dist/otel/tracing.js.map +1 -1
  216. package/dist/pricing.json +100 -42
  217. package/dist/protect/__tests__/protect.test.d.ts +1 -0
  218. package/dist/protect/__tests__/protect.test.js +210 -0
  219. package/dist/protect/__tests__/protect.test.js.map +1 -0
  220. package/dist/protect/index.d.ts +103 -0
  221. package/dist/protect/index.js +196 -0
  222. package/dist/protect/index.js.map +1 -0
  223. package/dist/protect/mcp.d.ts +13 -0
  224. package/dist/protect/mcp.js +49 -0
  225. package/dist/protect/mcp.js.map +1 -0
  226. package/dist/protect/mode.d.ts +89 -0
  227. package/dist/protect/mode.js +134 -0
  228. package/dist/protect/mode.js.map +1 -0
  229. package/dist/rasp/__tests__/auto-http.test.d.ts +1 -0
  230. package/dist/rasp/__tests__/auto-http.test.js +136 -0
  231. package/dist/rasp/__tests__/auto-http.test.js.map +1 -0
  232. package/dist/rasp/__tests__/baseline.test.d.ts +1 -0
  233. package/dist/rasp/__tests__/baseline.test.js +86 -0
  234. package/dist/rasp/__tests__/baseline.test.js.map +1 -0
  235. package/dist/rasp/__tests__/benign-corpus.test.d.ts +1 -0
  236. package/dist/rasp/__tests__/benign-corpus.test.js +68 -0
  237. package/dist/rasp/__tests__/benign-corpus.test.js.map +1 -0
  238. package/dist/rasp/__tests__/capture-context.test.d.ts +1 -0
  239. package/dist/rasp/__tests__/capture-context.test.js +135 -0
  240. package/dist/rasp/__tests__/capture-context.test.js.map +1 -0
  241. package/dist/rasp/__tests__/code-hook.test.d.ts +1 -0
  242. package/dist/rasp/__tests__/code-hook.test.js +218 -0
  243. package/dist/rasp/__tests__/code-hook.test.js.map +1 -0
  244. package/dist/rasp/__tests__/config-client.test.d.ts +1 -0
  245. package/dist/rasp/__tests__/config-client.test.js +283 -0
  246. package/dist/rasp/__tests__/config-client.test.js.map +1 -0
  247. package/dist/rasp/__tests__/corpus.d.ts +13 -0
  248. package/dist/rasp/__tests__/corpus.js +111 -0
  249. package/dist/rasp/__tests__/corpus.js.map +1 -0
  250. package/dist/rasp/__tests__/custom-rules.test.d.ts +1 -0
  251. package/dist/rasp/__tests__/custom-rules.test.js +276 -0
  252. package/dist/rasp/__tests__/custom-rules.test.js.map +1 -0
  253. package/dist/rasp/__tests__/db-hook.test.d.ts +1 -0
  254. package/dist/rasp/__tests__/db-hook.test.js +438 -0
  255. package/dist/rasp/__tests__/db-hook.test.js.map +1 -0
  256. package/dist/rasp/__tests__/deception.test.d.ts +1 -0
  257. package/dist/rasp/__tests__/deception.test.js +567 -0
  258. package/dist/rasp/__tests__/deception.test.js.map +1 -0
  259. package/dist/rasp/__tests__/detect.test.d.ts +1 -0
  260. package/dist/rasp/__tests__/detect.test.js +276 -0
  261. package/dist/rasp/__tests__/detect.test.js.map +1 -0
  262. package/dist/rasp/__tests__/esm-exports.test.d.ts +1 -0
  263. package/dist/rasp/__tests__/esm-exports.test.js +20 -0
  264. package/dist/rasp/__tests__/esm-exports.test.js.map +1 -0
  265. package/dist/rasp/__tests__/fs-hook.test.d.ts +1 -0
  266. package/dist/rasp/__tests__/fs-hook.test.js +241 -0
  267. package/dist/rasp/__tests__/fs-hook.test.js.map +1 -0
  268. package/dist/rasp/__tests__/hook-contracts.test.d.ts +1 -0
  269. package/dist/rasp/__tests__/hook-contracts.test.js +201 -0
  270. package/dist/rasp/__tests__/hook-contracts.test.js.map +1 -0
  271. package/dist/rasp/__tests__/hook-kit.d.ts +42 -0
  272. package/dist/rasp/__tests__/hook-kit.js +139 -0
  273. package/dist/rasp/__tests__/hook-kit.js.map +1 -0
  274. package/dist/rasp/__tests__/http-hook.test.d.ts +1 -0
  275. package/dist/rasp/__tests__/http-hook.test.js +250 -0
  276. package/dist/rasp/__tests__/http-hook.test.js.map +1 -0
  277. package/dist/rasp/__tests__/iast.test.d.ts +1 -0
  278. package/dist/rasp/__tests__/iast.test.js +361 -0
  279. package/dist/rasp/__tests__/iast.test.js.map +1 -0
  280. package/dist/rasp/__tests__/include-hook.test.d.ts +1 -0
  281. package/dist/rasp/__tests__/include-hook.test.js +122 -0
  282. package/dist/rasp/__tests__/include-hook.test.js.map +1 -0
  283. package/dist/rasp/__tests__/middleware.test.d.ts +1 -0
  284. package/dist/rasp/__tests__/middleware.test.js +302 -0
  285. package/dist/rasp/__tests__/middleware.test.js.map +1 -0
  286. package/dist/rasp/__tests__/process-hook.test.d.ts +1 -0
  287. package/dist/rasp/__tests__/process-hook.test.js +238 -0
  288. package/dist/rasp/__tests__/process-hook.test.js.map +1 -0
  289. package/dist/rasp/__tests__/reporter.test.d.ts +1 -0
  290. package/dist/rasp/__tests__/reporter.test.js +114 -0
  291. package/dist/rasp/__tests__/reporter.test.js.map +1 -0
  292. package/dist/rasp/__tests__/route.test.d.ts +1 -0
  293. package/dist/rasp/__tests__/route.test.js +46 -0
  294. package/dist/rasp/__tests__/route.test.js.map +1 -0
  295. package/dist/rasp/__tests__/rule-expr.test.d.ts +1 -0
  296. package/dist/rasp/__tests__/rule-expr.test.js +151 -0
  297. package/dist/rasp/__tests__/rule-expr.test.js.map +1 -0
  298. package/dist/rasp/__tests__/rule-phases.test.d.ts +1 -0
  299. package/dist/rasp/__tests__/rule-phases.test.js +271 -0
  300. package/dist/rasp/__tests__/rule-phases.test.js.map +1 -0
  301. package/dist/rasp/__tests__/sinks-hook.test.d.ts +1 -0
  302. package/dist/rasp/__tests__/sinks-hook.test.js +177 -0
  303. package/dist/rasp/__tests__/sinks-hook.test.js.map +1 -0
  304. package/dist/rasp/__tests__/targets.test.d.ts +1 -0
  305. package/dist/rasp/__tests__/targets.test.js +82 -0
  306. package/dist/rasp/__tests__/targets.test.js.map +1 -0
  307. package/dist/rasp/__tests__/template-hook.test.d.ts +1 -0
  308. package/dist/rasp/__tests__/template-hook.test.js +254 -0
  309. package/dist/rasp/__tests__/template-hook.test.js.map +1 -0
  310. package/dist/rasp/__tests__/upload.test.d.ts +1 -0
  311. package/dist/rasp/__tests__/upload.test.js +81 -0
  312. package/dist/rasp/__tests__/upload.test.js.map +1 -0
  313. package/dist/rasp/__tests__/vpatch-engine.test.d.ts +1 -0
  314. package/dist/rasp/__tests__/vpatch-engine.test.js +177 -0
  315. package/dist/rasp/__tests__/vpatch-engine.test.js.map +1 -0
  316. package/dist/rasp/auto-http.d.ts +6 -0
  317. package/dist/rasp/auto-http.js +194 -0
  318. package/dist/rasp/auto-http.js.map +1 -0
  319. package/dist/rasp/baseline.d.ts +35 -0
  320. package/dist/rasp/baseline.js +91 -0
  321. package/dist/rasp/baseline.js.map +1 -0
  322. package/dist/rasp/capture.d.ts +76 -0
  323. package/dist/rasp/capture.js +304 -0
  324. package/dist/rasp/capture.js.map +1 -0
  325. package/dist/rasp/config-client.d.ts +122 -0
  326. package/dist/rasp/config-client.js +337 -0
  327. package/dist/rasp/config-client.js.map +1 -0
  328. package/dist/rasp/context.d.ts +65 -0
  329. package/dist/rasp/context.js +68 -0
  330. package/dist/rasp/context.js.map +1 -0
  331. package/dist/rasp/custom-rules.d.ts +68 -0
  332. package/dist/rasp/custom-rules.js +222 -0
  333. package/dist/rasp/custom-rules.js.map +1 -0
  334. package/dist/rasp/data/default-rules.json +199 -0
  335. package/dist/rasp/data/default-sinks.json +4 -0
  336. package/dist/rasp/data/dnslog-domains.json +11 -0
  337. package/dist/rasp/deception.d.ts +70 -0
  338. package/dist/rasp/deception.js +220 -0
  339. package/dist/rasp/deception.js.map +1 -0
  340. package/dist/rasp/detect.d.ts +68 -0
  341. package/dist/rasp/detect.js +671 -0
  342. package/dist/rasp/detect.js.map +1 -0
  343. package/dist/rasp/engine.d.ts +107 -0
  344. package/dist/rasp/engine.js +330 -0
  345. package/dist/rasp/engine.js.map +1 -0
  346. package/dist/rasp/hooks/code.d.ts +20 -0
  347. package/dist/rasp/hooks/code.js +334 -0
  348. package/dist/rasp/hooks/code.js.map +1 -0
  349. package/dist/rasp/hooks/db.d.ts +48 -0
  350. package/dist/rasp/hooks/db.js +322 -0
  351. package/dist/rasp/hooks/db.js.map +1 -0
  352. package/dist/rasp/hooks/esm.d.ts +7 -0
  353. package/dist/rasp/hooks/esm.js +18 -0
  354. package/dist/rasp/hooks/esm.js.map +1 -0
  355. package/dist/rasp/hooks/fs.d.ts +3 -0
  356. package/dist/rasp/hooks/fs.js +206 -0
  357. package/dist/rasp/hooks/fs.js.map +1 -0
  358. package/dist/rasp/hooks/http.d.ts +4 -0
  359. package/dist/rasp/hooks/http.js +213 -0
  360. package/dist/rasp/hooks/http.js.map +1 -0
  361. package/dist/rasp/hooks/include.d.ts +9 -0
  362. package/dist/rasp/hooks/include.js +79 -0
  363. package/dist/rasp/hooks/include.js.map +1 -0
  364. package/dist/rasp/hooks/marks.d.ts +2 -0
  365. package/dist/rasp/hooks/marks.js +16 -0
  366. package/dist/rasp/hooks/marks.js.map +1 -0
  367. package/dist/rasp/hooks/process.d.ts +22 -0
  368. package/dist/rasp/hooks/process.js +191 -0
  369. package/dist/rasp/hooks/process.js.map +1 -0
  370. package/dist/rasp/hooks/sinks.d.ts +54 -0
  371. package/dist/rasp/hooks/sinks.js +329 -0
  372. package/dist/rasp/hooks/sinks.js.map +1 -0
  373. package/dist/rasp/hooks/template.d.ts +21 -0
  374. package/dist/rasp/hooks/template.js +152 -0
  375. package/dist/rasp/hooks/template.js.map +1 -0
  376. package/dist/rasp/iast-rules.d.ts +82 -0
  377. package/dist/rasp/iast-rules.js +240 -0
  378. package/dist/rasp/iast-rules.js.map +1 -0
  379. package/dist/rasp/iast-scope.d.ts +29 -0
  380. package/dist/rasp/iast-scope.js +54 -0
  381. package/dist/rasp/iast-scope.js.map +1 -0
  382. package/dist/rasp/iast.d.ts +81 -0
  383. package/dist/rasp/iast.js +272 -0
  384. package/dist/rasp/iast.js.map +1 -0
  385. package/dist/rasp/index.d.ts +52 -0
  386. package/dist/rasp/index.js +280 -0
  387. package/dist/rasp/index.js.map +1 -0
  388. package/dist/rasp/lexers.d.ts +32 -0
  389. package/dist/rasp/lexers.js +444 -0
  390. package/dist/rasp/lexers.js.map +1 -0
  391. package/dist/rasp/middleware.d.ts +155 -0
  392. package/dist/rasp/middleware.js +568 -0
  393. package/dist/rasp/middleware.js.map +1 -0
  394. package/dist/rasp/model-output.d.ts +14 -0
  395. package/dist/rasp/model-output.js +107 -0
  396. package/dist/rasp/model-output.js.map +1 -0
  397. package/dist/rasp/normalize.d.ts +23 -0
  398. package/dist/rasp/normalize.js +140 -0
  399. package/dist/rasp/normalize.js.map +1 -0
  400. package/dist/rasp/reporter.d.ts +60 -0
  401. package/dist/rasp/reporter.js +230 -0
  402. package/dist/rasp/reporter.js.map +1 -0
  403. package/dist/rasp/rule-expr.d.ts +236 -0
  404. package/dist/rasp/rule-expr.js +1253 -0
  405. package/dist/rasp/rule-expr.js.map +1 -0
  406. package/dist/rasp/template.d.ts +53 -0
  407. package/dist/rasp/template.js +336 -0
  408. package/dist/rasp/template.js.map +1 -0
  409. package/dist/rasp/types.d.ts +110 -0
  410. package/dist/rasp/types.js +51 -0
  411. package/dist/rasp/types.js.map +1 -0
  412. package/dist/rasp/vpatch.d.ts +55 -0
  413. package/dist/rasp/vpatch.js +120 -0
  414. package/dist/rasp/vpatch.js.map +1 -0
  415. package/dist/register.js +52 -11
  416. package/dist/register.js.map +1 -1
  417. package/dist/semantic-convention.d.ts +2 -0
  418. package/dist/semantic-convention.js +5 -0
  419. package/dist/semantic-convention.js.map +1 -1
  420. package/dist/types.d.ts +96 -0
  421. package/dist/zero-code.d.ts +8 -0
  422. package/dist/zero-code.js +38 -0
  423. package/dist/zero-code.js.map +1 -0
  424. package/package.json +18 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/rasp/detect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ import type { DeceptionConfig } from './deception';
2
+ import { type CustomRule } from './custom-rules';
3
+ import { AttackType, Finding, RaspAllow, RaspMode } from './types';
4
+ import { VirtualPatch } from './vpatch';
5
+ import { maskTarget } from '../masking';
6
+ /** The parts of a verified signed config the engine uses (config-client.ts verifies it). */
7
+ export type RemoteConfig = {
8
+ version: string;
9
+ exp: number;
10
+ killSwitch: boolean;
11
+ snippets: boolean;
12
+ /** Events of the allow-list rules carry their masked target (README "Allow-list targets"). */
13
+ reportTargets?: boolean;
14
+ mode?: RaspMode;
15
+ attacks: Partial<Record<AttackType, RaspMode>>;
16
+ allow?: Partial<RaspAllow>;
17
+ rules: VirtualPatch[] | null;
18
+ /** Sink rules as sent (hooks/sinks.ts validates them); null = the built-in list. */
19
+ sinks?: unknown[] | null;
20
+ /** Custom rules as sent (custom-rules.ts validates them); null = none. */
21
+ customRules?: unknown[] | null;
22
+ /** Decoy paths, already read (deception.ts parseDeception); null = deception off. */
23
+ deception?: DeceptionConfig | null;
24
+ };
25
+ export type RaspEventSink = {
26
+ add(event: {
27
+ name: string;
28
+ time: string;
29
+ attrs: Record<string, string>;
30
+ }, foldKey: string): void;
31
+ };
32
+ export declare const asMode: (v: unknown) => RaspMode | undefined;
33
+ /** `SHIELD360_RASP`: monitor, block or off (anything else is ignored). */
34
+ export declare function envSetting(env?: NodeJS.ProcessEnv): RaspMode | undefined;
35
+ export type EngineSettings = {
36
+ enabled: boolean;
37
+ applicationName: string;
38
+ mode?: RaspMode;
39
+ attacks?: Partial<Record<AttackType, RaspMode>>;
40
+ allow?: Partial<RaspAllow>;
41
+ modelOutput?: boolean;
42
+ monitorOnly?: boolean;
43
+ env?: NodeJS.ProcessEnv;
44
+ };
45
+ export declare function configureEngine(s: EngineSettings): void;
46
+ export declare function setEventSink(sink: RaspEventSink | undefined): void;
47
+ export declare function setMonitorOnly(on: boolean): void;
48
+ /** Applies a verified signed config (undefined drops it: local options again). */
49
+ export declare function setRemoteConfig(c: RemoteConfig | undefined): void;
50
+ /** The custom rules in force (README "Custom rules"). */
51
+ export declare function customRules(): CustomRule[];
52
+ export declare function remoteConfig(): RemoteConfig | undefined;
53
+ /** The runtime switch (third in the kill-switch order). */
54
+ export declare function setRuntimeDisabled(off: boolean): void;
55
+ /** Kill-switch order: env `SHIELD360_RASP=off`, the signed `killSwitch`, the runtime call. */
56
+ export declare function isActive(): boolean;
57
+ export declare function isEnabled(): boolean;
58
+ export declare function applicationName(): string;
59
+ /** The effective mode of an attack type: off when RASP is not active. */
60
+ export declare function modeFor(attack: AttackType): RaspMode;
61
+ export declare function allowLists(): RaspAllow;
62
+ export declare function virtualPatches(): VirtualPatch[];
63
+ /** The decoys in force (README "Deception"), or null: RASP not active, no signed config, or no usable decoy. */
64
+ export declare function deceptionConfig(): DeceptionConfig | null;
65
+ /**
66
+ * Deception's mode, or null when it is off ("Deception", "Decision"): a local
67
+ * or signed `attacks.deception: off` turns it off; `monitor` caps it; `block`
68
+ * or unset leaves the config's `action` to decide. Read on its own, not
69
+ * through modeFor, whose default-mode fallback does not apply here.
70
+ */
71
+ export declare function deceptionMode(): 'block' | 'monitor' | null;
72
+ /**
73
+ * Reports a deception event (attack `deception`, sink `http.deception`, no
74
+ * input) and returns its event id. `block` is the decision already made by
75
+ * the caller (the config's action and the mode). Never throws.
76
+ */
77
+ export declare function reportDeception(rule: string, block: boolean, extra: FindingExtra): string;
78
+ /** A snippet: masked (sdk/rasp/README.md, Masking), at most 64 characters. */
79
+ export declare function maskSnippet(v: string): string;
80
+ /** The rules whose events may carry `shield360.rasp.target`. */
81
+ export declare const TARGET_RULES: ReadonlySet<string>;
82
+ /** An allow-list target as an event carries it: see maskTarget in ../masking. */
83
+ export { maskTarget };
84
+ export type Decision = 'blocked' | 'monitored';
85
+ export type FindingExtra = {
86
+ framework?: string;
87
+ route?: string;
88
+ method?: string;
89
+ path?: string;
90
+ };
91
+ /**
92
+ * Applies a finding: reports it and, when the decision is `blocked`, throws
93
+ * the block error. Returns the decision, or null when the attack type is off.
94
+ */
95
+ export declare function handleFinding(f: Finding, sink: string, extra?: FindingExtra): Decision | null;
96
+ /**
97
+ * Of several findings for one call, the one whose decision is strongest
98
+ * (block over monitor; an attack type that is off never counts), so a
99
+ * finding for a type in monitor or off mode cannot hide another that blocks.
100
+ * Ties go to the earlier finding (the contract's order).
101
+ */
102
+ export declare function strongest(...findings: (Finding | null | undefined)[]): Finding | null;
103
+ /**
104
+ * Runs a check at a sink and applies what it finds. Fail open: any error
105
+ * other than the block error is swallowed. The entry point later sink hooks use.
106
+ */
107
+ export declare function check(sink: string, run: () => Finding | null | undefined, extra?: FindingExtra): Decision | null;
@@ -0,0 +1,330 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.maskTarget = exports.TARGET_RULES = exports.asMode = void 0;
4
+ exports.envSetting = envSetting;
5
+ exports.configureEngine = configureEngine;
6
+ exports.setEventSink = setEventSink;
7
+ exports.setMonitorOnly = setMonitorOnly;
8
+ exports.setRemoteConfig = setRemoteConfig;
9
+ exports.customRules = customRules;
10
+ exports.remoteConfig = remoteConfig;
11
+ exports.setRuntimeDisabled = setRuntimeDisabled;
12
+ exports.isActive = isActive;
13
+ exports.isEnabled = isEnabled;
14
+ exports.applicationName = applicationName;
15
+ exports.modeFor = modeFor;
16
+ exports.allowLists = allowLists;
17
+ exports.virtualPatches = virtualPatches;
18
+ exports.deceptionConfig = deceptionConfig;
19
+ exports.deceptionMode = deceptionMode;
20
+ exports.reportDeception = reportDeception;
21
+ exports.maskSnippet = maskSnippet;
22
+ exports.handleFinding = handleFinding;
23
+ exports.strongest = strongest;
24
+ exports.check = check;
25
+ /**
26
+ * RASP engine: the effective mode of each attack type (local options, the
27
+ * verified signed config, the kill switch), the decision for a finding, the
28
+ * event, and the block error. Detectors (detect.ts) are pure; this file is
29
+ * where a finding becomes an event or a block.
30
+ */
31
+ const crypto_1 = require("crypto");
32
+ const context_1 = require("./context");
33
+ const custom_rules_1 = require("./custom-rules");
34
+ const rule_expr_1 = require("./rule-expr");
35
+ const iast_1 = require("./iast");
36
+ const model_output_1 = require("./model-output");
37
+ const types_1 = require("./types");
38
+ const vpatch_1 = require("./vpatch");
39
+ const masking_1 = require("../masking");
40
+ Object.defineProperty(exports, "maskTarget", { enumerable: true, get: function () { return masking_1.maskTarget; } });
41
+ const emptyAllow = () => ({ commands: [], outboundHosts: [], fileRoots: [] });
42
+ const state = {
43
+ enabled: false,
44
+ envOff: false,
45
+ runtimeDisabled: false,
46
+ monitorOnly: false,
47
+ local: { mode: 'monitor', attacks: {}, allow: emptyAllow() },
48
+ customRules: [],
49
+ applicationName: 'default',
50
+ };
51
+ const MODES = new Set(['off', 'monitor', 'block']);
52
+ const RANK = { off: 0, monitor: 1, block: 2 };
53
+ const asMode = (v) => (typeof v === 'string' && MODES.has(v) ? v : undefined);
54
+ exports.asMode = asMode;
55
+ /** `SHIELD360_RASP`: monitor, block or off (anything else is ignored). */
56
+ function envSetting(env = process.env) {
57
+ return (0, exports.asMode)((env.SHIELD360_RASP || '').trim().toLowerCase());
58
+ }
59
+ function cleanAttacks(v) {
60
+ const out = {};
61
+ if (!v || typeof v !== 'object')
62
+ return out;
63
+ for (const a of types_1.ATTACK_TYPES) {
64
+ const m = (0, exports.asMode)(v[a]);
65
+ if (m)
66
+ out[a] = m;
67
+ }
68
+ return out;
69
+ }
70
+ const strings = (v) => (Array.isArray(v) ? v.filter((x) => typeof x === 'string' && x !== '').slice(0, 256) : undefined);
71
+ function configureEngine(s) {
72
+ const env = envSetting(s.env);
73
+ state.envOff = env === 'off';
74
+ state.enabled = s.enabled && !state.envOff;
75
+ state.runtimeDisabled = false;
76
+ state.monitorOnly = Boolean(s.monitorOnly);
77
+ state.remote = undefined;
78
+ state.customRules = [];
79
+ state.applicationName = s.applicationName || 'default';
80
+ state.local = {
81
+ mode: (0, exports.asMode)(s.mode) ?? (env === 'block' || env === 'monitor' ? env : 'monitor'),
82
+ attacks: cleanAttacks(s.attacks),
83
+ allow: {
84
+ commands: strings(s.allow?.commands) ?? [],
85
+ outboundHosts: strings(s.allow?.outboundHosts) ?? [],
86
+ fileRoots: strings(s.allow?.fileRoots) ?? [],
87
+ },
88
+ };
89
+ (0, model_output_1.setModelOutputRecording)(state.enabled && s.modelOutput !== false);
90
+ }
91
+ function setEventSink(sink) {
92
+ state.sink = sink;
93
+ }
94
+ function setMonitorOnly(on) {
95
+ state.monitorOnly = on;
96
+ }
97
+ /** Applies a verified signed config (undefined drops it: local options again). */
98
+ function setRemoteConfig(c) {
99
+ state.remote = c
100
+ ? {
101
+ ...c,
102
+ attacks: cleanAttacks(c.attacks),
103
+ mode: (0, exports.asMode)(c.mode),
104
+ allow: c.allow
105
+ ? { commands: strings(c.allow.commands), outboundHosts: strings(c.allow.outboundHosts), fileRoots: strings(c.allow.fileRoots) }
106
+ : undefined,
107
+ rules: Array.isArray(c.rules) ? c.rules.filter((r) => r && typeof r === 'object' && typeof r.id === 'string' && Array.isArray(r.match)) : null,
108
+ }
109
+ : undefined;
110
+ state.customRules = c ? (0, custom_rules_1.parseCustomRules)(c.customRules, state.applicationName) : [];
111
+ }
112
+ /** The custom rules in force (README "Custom rules"). */
113
+ function customRules() {
114
+ return state.customRules;
115
+ }
116
+ function remoteConfig() {
117
+ return state.remote;
118
+ }
119
+ /** The runtime switch (third in the kill-switch order). */
120
+ function setRuntimeDisabled(off) {
121
+ state.runtimeDisabled = off;
122
+ }
123
+ /** Kill-switch order: env `SHIELD360_RASP=off`, the signed `killSwitch`, the runtime call. */
124
+ function isActive() {
125
+ return state.enabled && !state.envOff && !state.remote?.killSwitch && !state.runtimeDisabled;
126
+ }
127
+ function isEnabled() {
128
+ return state.enabled;
129
+ }
130
+ function applicationName() {
131
+ return state.applicationName;
132
+ }
133
+ /** The effective mode of an attack type: off when RASP is not active. */
134
+ function modeFor(attack) {
135
+ if (!isActive())
136
+ return 'off';
137
+ if (state.local.attacks[attack] === 'off')
138
+ return 'off';
139
+ const r = state.remote;
140
+ let m = r ? r.attacks[attack] ?? r.mode ?? 'monitor' : state.local.attacks[attack] ?? state.local.mode;
141
+ if (m === 'block' && (types_1.MONITOR_ONLY.has(attack) || state.monitorOnly))
142
+ m = 'monitor';
143
+ return m;
144
+ }
145
+ function allowLists() {
146
+ const r = state.remote?.allow;
147
+ const l = state.local.allow;
148
+ if (!r)
149
+ return l;
150
+ return { commands: r.commands ?? l.commands, outboundHosts: r.outboundHosts ?? l.outboundHosts, fileRoots: r.fileRoots ?? l.fileRoots };
151
+ }
152
+ function virtualPatches() {
153
+ const rules = state.remote?.rules;
154
+ return Array.isArray(rules) ? rules : vpatch_1.BUILT_IN_RULES;
155
+ }
156
+ /** The decoys in force (README "Deception"), or null: RASP not active, no signed config, or no usable decoy. */
157
+ function deceptionConfig() {
158
+ return isActive() ? state.remote?.deception ?? null : null;
159
+ }
160
+ /**
161
+ * Deception's mode, or null when it is off ("Deception", "Decision"): a local
162
+ * or signed `attacks.deception: off` turns it off; `monitor` caps it; `block`
163
+ * or unset leaves the config's `action` to decide. Read on its own, not
164
+ * through modeFor, whose default-mode fallback does not apply here.
165
+ */
166
+ function deceptionMode() {
167
+ if (!isActive() || state.local.attacks.deception === 'off')
168
+ return null;
169
+ const m = state.remote?.attacks.deception;
170
+ if (m === 'off')
171
+ return null;
172
+ return m === 'monitor' || state.monitorOnly ? 'monitor' : 'block';
173
+ }
174
+ /**
175
+ * Reports a deception event (attack `deception`, sink `http.deception`, no
176
+ * input) and returns its event id. `block` is the decision already made by
177
+ * the caller (the config's action and the mode). Never throws.
178
+ */
179
+ function reportDeception(rule, block, extra) {
180
+ const eventId = (0, crypto_1.randomBytes)(16).toString('hex');
181
+ emit({ attack: 'deception', rule }, 'http.deception', extra, block ? 'blocked' : 'monitored', block ? 'block' : 'monitor', eventId);
182
+ return eventId;
183
+ }
184
+ /** A snippet: masked (sdk/rasp/README.md, Masking), at most 64 characters. */
185
+ function maskSnippet(v) {
186
+ return (0, masking_1.maskText)(v, 64);
187
+ }
188
+ /** The rules whose events may carry `shield360.rasp.target`. */
189
+ exports.TARGET_RULES = new Set(['shell_spawn.shell', 'outbound.not_allowed', 'path.outside_root']);
190
+ const SQL_DIALECT_NAMES = new Set(['mysql', 'postgres', 'sqlite', 'mssql', 'oracle', 'db2', 'generic']);
191
+ // Event attributes must pass the platform's shape checks (lib/security/rasp/events.ts).
192
+ const safeKey = (k) => k.replace(/[^A-Za-z0-9_.\-[\]]/g, '_').replace(/^[^A-Za-z0-9_]/, '_').slice(0, 128);
193
+ const safeRoute = (r) => {
194
+ const s = r.replace(/[^\x21\x23-\x26\x28-\x3b\x3d\x3f-\x5b\x5d-\x7e]/g, '_').slice(0, 256);
195
+ return s.startsWith('/') ? s : '';
196
+ };
197
+ const safeMethod = (m) => (m && /^[A-Za-z]{3,10}$/.test(m) ? m.toUpperCase() : '');
198
+ /** Builds and queues the event for a finding. Never throws: reporting never breaks the call. */
199
+ function emit(f, sink, extra, decision, mode, eventId) {
200
+ try {
201
+ const ctx = (0, context_1.currentContext)();
202
+ const path = extra.path ?? ctx?.path;
203
+ const route = safeRoute(extra.route ?? ctx?.route ?? (path ? (0, context_1.eventRouteOf)(path) : ''));
204
+ const attrs = {
205
+ 'shield360.rasp.event_id': eventId,
206
+ 'shield360.rasp.app': state.applicationName,
207
+ 'shield360.rasp.attack': f.attack,
208
+ 'shield360.rasp.rule': f.rule,
209
+ 'shield360.rasp.decision': decision,
210
+ 'shield360.rasp.mode': mode,
211
+ 'shield360.rasp.sink': sink,
212
+ 'shield360.rasp.config_version': state.remote?.version ?? 'local',
213
+ 'shield360.rasp.language': 'node',
214
+ };
215
+ const opt = (k, v) => {
216
+ if (v)
217
+ attrs[k] = v;
218
+ };
219
+ opt('shield360.rasp.source', f.input?.source);
220
+ opt('shield360.rasp.input_key', f.input ? safeKey(f.input.key) : undefined);
221
+ opt('shield360.rasp.route', route);
222
+ opt('shield360.rasp.method', safeMethod(extra.method ?? ctx?.method));
223
+ opt('shield360.rasp.framework', extra.framework ?? ctx?.framework);
224
+ opt('shield360.rasp.cve', f.cve && /^CVE-\d{4}-\d{4,7}$/.test(f.cve) ? f.cve : undefined);
225
+ if (state.remote?.snippets && f.input)
226
+ attrs['shield360.rasp.snippet'] = maskSnippet(f.input.value);
227
+ if (state.remote?.reportTargets && exports.TARGET_RULES.has(f.rule))
228
+ opt('shield360.rasp.target', (0, masking_1.maskTarget)(f.target));
229
+ if (f.attack === 'sql_injection' && f.dialect && SQL_DIALECT_NAMES.has(f.dialect))
230
+ attrs['shield360.rasp.sql.dialect'] = f.dialect;
231
+ state.sink?.add({ name: 'shield360.rasp.event', time: new Date().toISOString(), attrs }, [f.attack, f.rule, sink, route, decision].join('\u0000'));
232
+ }
233
+ catch {
234
+ // reporting never breaks the call
235
+ }
236
+ }
237
+ /**
238
+ * Applies a finding: reports it and, when the decision is `blocked`, throws
239
+ * the block error. Returns the decision, or null when the attack type is off.
240
+ */
241
+ function handleFinding(f, sink, extra = {}) {
242
+ let mode = modeFor(f.attack);
243
+ // A rule's own action (virtual patches, sink rules) caps the mode.
244
+ if (f.action && RANK[f.action] < RANK[mode])
245
+ mode = f.action;
246
+ if (mode === 'off')
247
+ return null;
248
+ const decision = mode === 'block' && !types_1.MONITOR_ONLY.has(f.attack) ? 'blocked' : 'monitored';
249
+ const eventId = (0, crypto_1.randomBytes)(16).toString('hex');
250
+ emit(f, sink, extra, decision, mode, eventId);
251
+ // Custom rules that look at built-in findings; the first blocking decision wins, the built-in one first.
252
+ const custom = f.attack === 'custom_rule' ? undefined : runFindingRules(f, sink, extra);
253
+ if (decision === 'blocked')
254
+ throw new types_1.RaspBlockedError(f.attack, f.rule, eventId);
255
+ if (custom)
256
+ throw custom;
257
+ return decision;
258
+ }
259
+ /** Reports each custom finding rule the finding matches; returns the block error of the first that blocks. Never throws. */
260
+ function runFindingRules(f, sink, extra) {
261
+ try {
262
+ // Mode off skips custom rules: nothing is evaluated.
263
+ if (!state.customRules.length || modeFor('custom_rule') === 'off')
264
+ return undefined;
265
+ const ctx = (0, context_1.currentContext)();
266
+ const subject = (0, custom_rules_1.requestSubject)(ctx, state.applicationName);
267
+ subject.sink = sink;
268
+ subject.attack = { type: f.attack, rule: f.rule };
269
+ const budget = ctx ? (0, custom_rules_1.ruleState)(ctx).budget : { steps: rule_expr_1.DEFAULT_RULE_BUDGET };
270
+ for (const m of (0, custom_rules_1.matchFindingRules)(state.customRules, subject, budget)) {
271
+ try {
272
+ handleFinding((0, custom_rules_1.customFinding)(m.rule, m.input ?? f.input), sink, extra);
273
+ }
274
+ catch (e) {
275
+ if (e instanceof types_1.RaspBlockedError)
276
+ return e;
277
+ }
278
+ }
279
+ }
280
+ catch {
281
+ // fail open
282
+ }
283
+ return undefined;
284
+ }
285
+ /**
286
+ * Of several findings for one call, the one whose decision is strongest
287
+ * (block over monitor; an attack type that is off never counts), so a
288
+ * finding for a type in monitor or off mode cannot hide another that blocks.
289
+ * Ties go to the earlier finding (the contract's order).
290
+ */
291
+ function strongest(...findings) {
292
+ let best = null;
293
+ let bestRank = 0;
294
+ for (const f of findings) {
295
+ if (!f)
296
+ continue;
297
+ let mode = modeFor(f.attack);
298
+ if (f.action && RANK[f.action] < RANK[mode])
299
+ mode = f.action;
300
+ if (RANK[mode] > bestRank) {
301
+ best = f;
302
+ bestRank = RANK[mode];
303
+ }
304
+ }
305
+ return best;
306
+ }
307
+ /**
308
+ * Runs a check at a sink and applies what it finds. Fail open: any error
309
+ * other than the block error is swallowed. The entry point later sink hooks use.
310
+ */
311
+ function check(sink, run, extra) {
312
+ // Passive IAST (iast.ts): armed for sampled checks while it is on; reports only when no attack was found.
313
+ const iast = isActive() ? (0, iast_1.beginIast)() : null;
314
+ try {
315
+ const f = run();
316
+ if (iast)
317
+ (0, iast_1.endIast)(iast, f ? undefined : { sink, extra });
318
+ return f ? handleFinding(f, sink, extra) : null;
319
+ }
320
+ catch (e) {
321
+ if (e instanceof types_1.RaspBlockedError)
322
+ throw e;
323
+ return null;
324
+ }
325
+ finally {
326
+ if (iast)
327
+ (0, iast_1.endIast)(iast);
328
+ }
329
+ }
330
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/rasp/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';
2
+ export declare function installCodeHooks(): boolean;
3
+ export declare function uninstallCodeHooks(): void;
4
+ declare function unpatch(exports: unknown): void;
5
+ export declare const patchNodeSerialize: (exports: unknown) => void;
6
+ export declare const unpatchNodeSerialize: typeof unpatch;
7
+ export declare const patchFuncster: (exports: unknown) => void;
8
+ export declare const unpatchFuncster: typeof unpatch;
9
+ export declare const patchJsYaml: (exports: unknown, version?: string) => void;
10
+ export declare const unpatchJsYaml: typeof unpatch;
11
+ export declare const patchLibxmljs: (exports: unknown) => void;
12
+ export declare const unpatchLibxmljs: typeof unpatch;
13
+ export declare const patchLibxmljs2: (exports: unknown) => void;
14
+ export declare const unpatchLibxmljs2: typeof unpatch;
15
+ export declare class RaspCodeInstrumentation extends InstrumentationBase {
16
+ constructor();
17
+ protected init(): InstrumentationNodeModuleDefinition[];
18
+ }
19
+ export declare function patchLoaded(): void;
20
+ export {};