@desplega.ai/agent-swarm 1.165.0 → 1.167.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 (296) hide show
  1. package/dist/acp-adapter-zpvy6321.js +34 -0
  2. package/dist/{actions-jna0b3wm.js → actions-fq2zrwtf.js} +30 -34
  3. package/dist/{amp-adapter-0eve81pz.js → amp-adapter-5gbk7501.js} +7 -7
  4. package/dist/{anthropic-messages-hst62ws9.js → anthropic-messages-13yn502s.js} +4 -4
  5. package/dist/{app-75hm5cfa.js → app-nctetn1e.js} +11 -11
  6. package/dist/{assistant-yzd51j33.js → assistant-0aq8gjvj.js} +31 -35
  7. package/dist/{azure-openai-responses-mh8tvf78.js → azure-openai-responses-9st34pfz.js} +5 -5
  8. package/dist/{boot-reembed-z158xq32.js → boot-reembed-1ze5853n.js} +14 -16
  9. package/dist/{boot-reembed-2ex2mcsh.js → boot-reembed-fmp5ww69.js} +15 -16
  10. package/dist/boot-scrub-sweep-cbp8xd4e.js +212 -0
  11. package/dist/{boot-seeds-2bmnh18p.js → boot-seeds-22tx8a53.js} +13 -12
  12. package/dist/{claude-adapter-jbj1mycz.js → claude-adapter-0jhgeh1d.js} +25 -25
  13. package/dist/{claude-managed-adapter-17ggz09t.js → claude-managed-adapter-tzwxy803.js} +5 -5
  14. package/dist/{claude-managed-setup-ptm1nzm2.js → claude-managed-setup-nrhfx5b0.js} +5 -5
  15. package/dist/{claude-sdk-session-9re1g7r2.js → claude-sdk-session-wh77rh83.js} +2632 -2614
  16. package/dist/{cli-zsh093hk.js → cli-014vns2y.js} +63 -1
  17. package/dist/{cli-qvfk83fy.js → cli-13xwcqvj.js} +2 -2
  18. package/dist/{cli-8gpbwy09.js → cli-1yrcfa5s.js} +5 -5
  19. package/dist/{cli-xtgtyafv.js → cli-577bxkf6.js} +212 -451
  20. package/dist/{cli-ma3zvh39.js → cli-5qkcdv8c.js} +6118 -5874
  21. package/dist/{cli-cwxhbf43.js → cli-5t5my0h8.js} +85 -2
  22. package/dist/{cli-zvckv750.js → cli-69egj654.js} +2 -2
  23. package/dist/{cli-9xb89xca.js → cli-6bpvv8h4.js} +9 -9
  24. package/dist/{cli-90v942q1.js → cli-6qxmjpem.js} +8 -8
  25. package/dist/{cli-9866bd07.js → cli-6vfz44sr.js} +1 -1
  26. package/dist/{cli-32bca7nr.js → cli-7avy4v8w.js} +1 -1
  27. package/dist/{cli-xb3c6aat.js → cli-7mhy3ths.js} +21 -18
  28. package/dist/{cli-q38n4bq0.js → cli-95zs84qw.js} +3 -3
  29. package/dist/cli-a35hzdve.js +33 -0
  30. package/dist/{cli-x3x0qwky.js → cli-bxqez1p0.js} +51 -23
  31. package/dist/{cli-prt9emct.js → cli-c2tpw9ck.js} +3 -3
  32. package/dist/{cli-0n4fasz0.js → cli-c8r99akr.js} +16 -16
  33. package/dist/{cli-5anb0ev3.js → cli-cexctgn5.js} +89 -26
  34. package/dist/{cli-bns5c8k9.js → cli-cf2vgn9d.js} +105 -91
  35. package/dist/{cli-ng97fjq7.js → cli-cmxkbzzs.js} +33 -7
  36. package/dist/{cli-nexwh8zg.js → cli-g7k7zbcz.js} +12 -5
  37. package/dist/{cli-mmzwwptd.js → cli-hf5s9pgf.js} +1 -1
  38. package/dist/{cli-nvvfd8bq.js → cli-jbzbr36n.js} +4091 -3793
  39. package/dist/{cli-zn2v3t8v.js → cli-jvmtxqtc.js} +27 -15
  40. package/dist/{cli-pkke6geq.js → cli-km4x66j0.js} +83 -65
  41. package/dist/cli-kw0jcfje.js +516 -0
  42. package/dist/{cli-28smfvbn.js → cli-m7vmeepg.js} +32 -19
  43. package/dist/{cli-hpryr6em.js → cli-mb75wpxf.js} +1 -1
  44. package/dist/{cli-qdv8kgz7.js → cli-mkdsy1nq.js} +14018 -3333
  45. package/dist/{cli-b0f70z24.js → cli-mn8qkd8v.js} +1 -1
  46. package/dist/{cli-420bdgw0.js → cli-mv2520nm.js} +1 -1
  47. package/dist/{cli-n9ehc28t.js → cli-mxry91sa.js} +31 -10
  48. package/dist/{cli-wfajtmf7.js → cli-mxvnnv5q.js} +596 -13
  49. package/dist/cli-nkqjj42q.js +104 -0
  50. package/dist/{cli-e7t4snpa.js → cli-p8rt8spp.js} +5 -5
  51. package/dist/{cli-gh5yqzpe.js → cli-pkj1w46r.js} +12 -7
  52. package/dist/cli-q1vnz8wv.js +96 -0
  53. package/dist/{cli-fj86xr3c.js → cli-qd97v6z2.js} +2 -2
  54. package/dist/{cli-ba66wyhy.js → cli-qzmzwegq.js} +60 -20
  55. package/dist/{cli-5b2fjjzh.js → cli-r7eeddkq.js} +14 -9
  56. package/dist/{cli-8ssjez7e.js → cli-rhy7z1rp.js} +22 -11
  57. package/dist/{cli-4mevd1hf.js → cli-s9y81s7j.js} +5 -5
  58. package/dist/{cli-59jn5twa.js → cli-tc5zec7v.js} +7 -7
  59. package/dist/{cli-ttbsse3f.js → cli-tmhsxhb8.js} +1 -1
  60. package/dist/{cli-k6xx3pve.js → cli-tx2zvn23.js} +4 -4
  61. package/dist/{cli-pjxnr1jn.js → cli-ty4bzkqr.js} +5 -5
  62. package/dist/{cli-nfygw434.js → cli-v1pwxreq.js} +55 -52
  63. package/dist/{cli-ftry7975.js → cli-v1w7pbd8.js} +3 -2
  64. package/dist/{cli-10zmp1p7.js → cli-vr5avem2.js} +27 -32
  65. package/dist/{cli-bzr0ftht.js → cli-wnb9b2g3.js} +19 -0
  66. package/dist/cli-wt7ccy4r.js +2654 -0
  67. package/dist/{cli-50eg13rj.js → cli-wydz3feg.js} +549 -321
  68. package/dist/{cli-krqm5f11.js → cli-xezn9nkh.js} +16 -13
  69. package/dist/{cli-8kt0bmgx.js → cli-xf713zz0.js} +2 -2
  70. package/dist/{cli-x7afk5wm.js → cli-xvc3q9br.js} +1 -1
  71. package/dist/{cli-9s3h836g.js → cli-xvdgasgy.js} +1 -1
  72. package/dist/{cli-j0pdrmwg.js → cli-y0kjpfm9.js} +3 -3
  73. package/dist/{cli-6zcfw0x7.js → cli-y195hv1a.js} +1 -1
  74. package/dist/{cli-amwhs8h2.js → cli-ykt8f7va.js} +22 -9
  75. package/dist/{cli-1kzfvd1z.js → cli-ymmc1zxg.js} +15 -11
  76. package/dist/{cli-xnzrzets.js → cli-ypgba1a8.js} +2 -2
  77. package/dist/{cli-bdv39kgj.js → cli-z1dqhc9y.js} +31 -20
  78. package/dist/{cli-fw6vdcq5.js → cli-zp67qg5x.js} +34 -1
  79. package/dist/{cli-qbksc292.js → cli-zy39d433.js} +2 -0
  80. package/dist/cli.js +36 -32
  81. package/dist/{cloudflare-workers-ai-system-one-tt484t61.js → cloudflare-workers-ai-system-one-sta45jf9.js} +7 -5
  82. package/dist/{codex-adapter-3qnxshje.js → codex-adapter-cgesnjkr.js} +20 -20
  83. package/dist/{codex-login-brkxhhdg.js → codex-login-g1cyt5zm.js} +2 -2
  84. package/dist/{codex-session-runner-612wnapp.js → codex-session-runner-8kd7ddhr.js} +20 -20
  85. package/dist/{commands-2ybfcxkj.js → commands-h6zaaxym.js} +11 -10
  86. package/dist/{cursor-adapter-p3jgdehv.js → cursor-adapter-v8mm6bp5.js} +7 -7
  87. package/dist/{db-f4ans0jj.js → db-qg3myn53.js} +13 -10
  88. package/dist/{devin-adapter-dhzt01ff.js → devin-adapter-bffjj5n4.js} +2 -2
  89. package/dist/{dispatcher-pk182apd.js → dispatcher-7vnwj9qw.js} +28 -32
  90. package/dist/{dsh-adapter-7twaeps1.js → dsh-adapter-tz6hfp5r.js} +7 -7
  91. package/dist/{e2b-y8t3jzyz.js → e2b-nd50eccg.js} +1 -1
  92. package/dist/{easter-egg-3d-mtpnw06s.js → easter-egg-3d-66zxervv.js} +2 -2
  93. package/dist/{event-bus-w7ac4n3c.js → event-bus-vnfthafg.js} +2 -2
  94. package/dist/{execute-s4ccjq3n.js → execute-h4jgevyw.js} +61 -11
  95. package/dist/{google-generative-ai-d6nphg3q.js → google-generative-ai-b8zxrpax.js} +5 -5
  96. package/dist/{google-vertex-cpshkref.js → google-vertex-nrdd697t.js} +5 -5
  97. package/dist/grok-adapter-jdt2dz2s.js +39 -0
  98. package/dist/{handlers-g2wnr4t9.js → handlers-2qtkpncr.js} +31 -35
  99. package/dist/{hook-f7jt9vnm.js → hook-51yfcgsv.js} +48 -39
  100. package/dist/{hook-bbdpnkb4.js → hook-qnbdgwvd.js} +15 -17
  101. package/dist/{http-w40q4w94.js → http-jsmtag08.js} +536 -231
  102. package/dist/{index-056j5kzn.js → index-2t9kesn1.js} +13 -12
  103. package/dist/{index-cj1r9q83.js → index-bt8wkv1w.js} +29 -33
  104. package/dist/{index-7n70jwbb.js → index-cx1sb9bq.js} +42 -35
  105. package/dist/{index-9bfssf54.js → index-ekywyv2v.js} +28 -32
  106. package/dist/{index-fdk1t4d6.js → index-n0rxa4ca.js} +11962 -9900
  107. package/dist/{index-k8xc083e.js → index-t4g06w93.js} +28 -32
  108. package/dist/{keepalive-1tj10tf4.js → keepalive-4aezx4bj.js} +16 -12
  109. package/dist/{lead-st0bg7v4.js → lead-r44bkpm5.js} +52 -56
  110. package/dist/{llama-cpp-classify-tgj35k8d.js → llama-cpp-classify-6erb7wwv.js} +3 -1
  111. package/dist/{maintenance-nz71zats.js → maintenance-grz5jrzh.js} +12 -13
  112. package/dist/{mistral-conversations-8445ddjn.js → mistral-conversations-059y51zt.js} +4 -4
  113. package/dist/{node-f0ykebbv.js → node-qm9eb6z0.js} +25 -7
  114. package/dist/{oauth-refresh-sweep-aefzwvvq.js → oauth-refresh-sweep-wm4ctjfj.js} +15 -11
  115. package/dist/{onboard-kgpr9mbn.js → onboard-v60zgqf0.js} +2 -2
  116. package/dist/{openai-codex-responses-9ynm88zy.js → openai-codex-responses-jzxkta9b.js} +8 -7
  117. package/dist/{openai-completions-nhqwjmaw.js → openai-completions-663yncfq.js} +4 -4
  118. package/dist/openai-decisions-vj9nkpf8.js +162 -0
  119. package/dist/{openai-responses-xx1c4kgm.js → openai-responses-m3g43rrt.js} +5 -5
  120. package/dist/{opencode-adapter-0c8e70dk.js → opencode-adapter-yjyqynzf.js} +8 -8
  121. package/dist/{openrouter-images-8yx3487g.js → openrouter-images-kr60n6b9.js} +1 -1
  122. package/dist/{otel-impl-x8zp4y5a.js → otel-impl-ghh4dyf8.js} +2 -2
  123. package/dist/{pi-messages-vxdt8v7j.js → pi-messages-xszk613n.js} +1 -1
  124. package/dist/{pi-mono-adapter-t280ah5c.js → pi-mono-adapter-0eg8kw2c.js} +69 -52
  125. package/dist/{pricing-refresh-9e0q7cwk.js → pricing-refresh-mjrqvnvw.js} +12 -11
  126. package/dist/{rbac-roles-790j3ga8.js → rbac-roles-axv4d74x.js} +11 -10
  127. package/dist/{rbac-roles-kcp6zge2.js → rbac-roles-fd5tskj9.js} +11 -10
  128. package/dist/{render-v2-tch4nefj.js → render-v2-k50j33qd.js} +11 -11
  129. package/dist/{runtime-v2t1r79e.js → runtime-h9ha1mq6.js} +4 -4
  130. package/dist/{setup-rcm303ns.js → setup-4syh0pd2.js} +2 -2
  131. package/dist/{typesafe-system-one-datfr82p.js → typesafe-system-one-e988vty7.js} +7 -5
  132. package/dist/{virtual-modules-wm8mxdxx.js → virtual-modules-ftr9kwe8.js} +11 -11
  133. package/dist/{work-objects-ctg7t70w.js → work-objects-jcdbg8rr.js} +32 -36
  134. package/dist/{worker-5dp0xm55.js → worker-x8j8c9sx.js} +52 -56
  135. package/dist/{x-v3yw66zs.js → x-ma4gnfgy.js} +2 -2
  136. package/openapi.json +5 -2
  137. package/package.json +15 -11
  138. package/src/be/automation-preflight.ts +9 -4
  139. package/src/be/boot-scrub-sweep.ts +302 -0
  140. package/src/be/crypto/key-bootstrap.ts +1 -1
  141. package/src/be/db/approvals.ts +15 -1
  142. package/src/be/db/codex-oauth-device-flows.ts +40 -0
  143. package/src/be/db/config-secrets.ts +31 -0
  144. package/src/be/db/runtime.ts +4 -0
  145. package/src/be/db/script-runs.ts +15 -0
  146. package/src/be/db/tasks/write.ts +1 -1
  147. package/src/be/db-queries/mcp-oauth.ts +5 -0
  148. package/src/be/db-queries/oauth.ts +77 -0
  149. package/src/be/db.ts +162 -59
  150. package/src/be/events.ts +17 -1
  151. package/src/be/memory/index-content.ts +2 -2
  152. package/src/be/memory/providers/openai-embedding.ts +7 -2
  153. package/src/be/memory/providers/sqlite-store.ts +63 -11
  154. package/src/be/memory/raters/llm-summarizer.ts +7 -2
  155. package/src/be/memory/types.ts +14 -0
  156. package/src/be/migrations/201_workflow_replay_columns.sql +10 -0
  157. package/src/be/migrations/202_codex_oauth_device_flows.sql +24 -0
  158. package/src/be/modelsdev-cache.json +61 -0
  159. package/src/be/scripts/db.ts +28 -4
  160. package/src/be/scripts/source-secrets.ts +37 -0
  161. package/src/be/scrub-json.ts +32 -0
  162. package/src/be/sealed-json.ts +59 -0
  163. package/src/be/secret-registry.ts +131 -0
  164. package/src/be/seed-pricing.ts +84 -53
  165. package/src/be/swarm-config-guard.ts +13 -0
  166. package/src/be/workflow-replay.ts +77 -0
  167. package/src/commands/provider-credentials.ts +28 -5
  168. package/src/commands/runner.ts +7 -12
  169. package/src/heartbeat/heartbeat.ts +91 -19
  170. package/src/hooks/hook.ts +72 -27
  171. package/src/http/codex-oauth-device.ts +8 -10
  172. package/src/http/db-query-bounded.ts +3 -0
  173. package/src/http/db-query-shared.ts +107 -15
  174. package/src/http/db-query.ts +10 -2
  175. package/src/http/index.ts +23 -6
  176. package/src/http/mcp.ts +5 -0
  177. package/src/http/onboarding.ts +2 -0
  178. package/src/http/script-runs.ts +9 -1
  179. package/src/http/scripts.ts +15 -0
  180. package/src/http/workflows.ts +3 -2
  181. package/src/oauth/mcp-wrapper.ts +1 -1
  182. package/src/providers/acp-adapter.ts +25 -11
  183. package/src/providers/acp-target-catalog.ts +35 -1
  184. package/src/providers/acp-targets.ts +78 -7
  185. package/src/providers/amp-adapter.ts +1 -1
  186. package/src/providers/claude-adapter.ts +26 -0
  187. package/src/providers/codex-adapter.ts +30 -3
  188. package/src/providers/codex-oauth/auth-json.ts +21 -4
  189. package/src/providers/codex-oauth/types.ts +2 -0
  190. package/src/providers/cursor-adapter.ts +1 -1
  191. package/src/providers/dsh-adapter.ts +10 -1
  192. package/src/providers/grok-adapter.ts +18 -2
  193. package/src/providers/opencode-adapter.ts +21 -5
  194. package/src/providers/pi-mono-extension.ts +56 -25
  195. package/src/providers/pricing-sources.md +2 -0
  196. package/src/script-workflows/supervisor.ts +11 -2
  197. package/src/scripts-runtime/eval-harness.ts +2 -12
  198. package/src/scripts-runtime/executors/quickjs-bundle.ts +152 -0
  199. package/src/scripts-runtime/executors/quickjs-prelude.ts +285 -0
  200. package/src/scripts-runtime/executors/quickjs-runner.ts +580 -0
  201. package/src/scripts-runtime/executors/quickjs-worker.ts +81 -0
  202. package/src/scripts-runtime/executors/quickjs.ts +196 -0
  203. package/src/scripts-runtime/executors/registry.ts +2 -0
  204. package/src/scripts-runtime/executors/sourcemap.ts +79 -0
  205. package/src/scripts-runtime/script-error-hints.ts +14 -0
  206. package/src/server.ts +66 -4
  207. package/src/tests/acp-adapter.test.ts +277 -12
  208. package/src/tests/boot-scrub-sweep.test.ts +390 -0
  209. package/src/tests/check-text-columns.test.ts +145 -0
  210. package/src/tests/ci-unit-test-report.test.ts +73 -0
  211. package/src/tests/claude-default-route.test.ts +75 -0
  212. package/src/tests/claude-hook-output.test.ts +233 -0
  213. package/src/tests/claude-sdk-process.fixture.ts +13 -2
  214. package/src/tests/codex-adapter-pool-auth-revalidate.test.ts +4 -2
  215. package/src/tests/codex-adapter.test.ts +166 -26
  216. package/src/tests/codex-oauth-auth-timestamps.test.ts +76 -0
  217. package/src/tests/codex-oauth-device.test.ts +23 -37
  218. package/src/tests/codex-oauth.test.ts +4 -1
  219. package/src/tests/context-window.test.ts +2 -2
  220. package/src/tests/credential-check.test.ts +51 -1
  221. package/src/tests/db-query-denylist.test.ts +202 -0
  222. package/src/tests/db-task-read-contract.test.ts +1 -0
  223. package/src/tests/db-task-write-contract.test.ts +1 -0
  224. package/src/tests/dsh-adapter.test.ts +23 -1
  225. package/src/tests/enabled-tools.test.ts +269 -0
  226. package/src/tests/entrypoint-acp-target-binary.test.ts +31 -1
  227. package/src/tests/entrypoint-codex-oauth-seed.test.ts +12 -0
  228. package/src/tests/events-scrub.test.ts +88 -0
  229. package/src/tests/fixtures/secret-corpus.ts +320 -0
  230. package/src/tests/grok-adapter.test.ts +13 -0
  231. package/src/tests/haiku-5-5-pricing.test.ts +38 -0
  232. package/src/tests/heartbeat-checklist.test.ts +158 -1
  233. package/src/tests/onboarding.test.ts +44 -0
  234. package/src/tests/opencode-adapter.test.ts +66 -3
  235. package/src/tests/opencode-plugin.test.ts +37 -0
  236. package/src/tests/openrouter-attribution-call-sites.test.ts +204 -0
  237. package/src/tests/openrouter-base-url.test.ts +30 -39
  238. package/src/tests/pi-mono-extension.test.ts +161 -2
  239. package/src/tests/pricing-refresh.test.ts +70 -1
  240. package/src/tests/reasoning-effort.test.ts +3 -1
  241. package/src/tests/script-connections.test.ts +5 -0
  242. package/src/tests/script-executor-conformance.test.ts +3 -0
  243. package/src/tests/script-executor-quickjs.test.ts +442 -0
  244. package/src/tests/script-executor-registry.test.ts +6 -1
  245. package/src/tests/script-runs-http.test.ts +88 -1
  246. package/src/tests/script-runs-scrub.test.ts +275 -0
  247. package/src/tests/scripts-http.test.ts +82 -1
  248. package/src/tests/scrubbed-text-12e.test.ts +289 -0
  249. package/src/tests/sealed-key-guard.test.ts +166 -0
  250. package/src/tests/secret-canary-sweep.test.ts +958 -0
  251. package/src/tests/secret-registry.test.ts +355 -0
  252. package/src/tests/secret-rules.test.ts +230 -0
  253. package/src/tests/secret-scrubber.test.ts +3 -2
  254. package/src/tests/telemetry-trigger.test.ts +12 -1
  255. package/src/tests/workflow-llm.test.ts +14 -0
  256. package/src/tests/workflow-replay.test.ts +518 -0
  257. package/src/tests/workflow-scrub.test.ts +242 -0
  258. package/src/tests/workflow-system-one-decision-providers.test.ts +33 -0
  259. package/src/tools/db-query.ts +1 -1
  260. package/src/tools/inject-learning.ts +1 -1
  261. package/src/tools/request-human-input.ts +7 -2
  262. package/src/tools/workflows/get-workflow-run.ts +3 -2
  263. package/src/types.ts +1 -1
  264. package/src/utils/enabled-tools.ts +27 -0
  265. package/src/utils/internal-ai/complete-structured.ts +11 -3
  266. package/src/utils/openrouter-base-url.ts +23 -0
  267. package/src/utils/secret-rules.generated.ts +2055 -0
  268. package/src/utils/secret-scrubber.ts +363 -29
  269. package/src/workflows/engine.ts +39 -4
  270. package/src/workflows/executors/raw-llm.ts +1 -0
  271. package/src/workflows/executors/system-one-decision.ts +2 -0
  272. package/src/workflows/executors/validate.ts +1 -0
  273. package/src/workflows/executors/workflow-llm.ts +9 -2
  274. package/src/workflows/recovery.ts +10 -1
  275. package/src/workflows/resume.ts +62 -3
  276. package/src/workflows/retry-poller.ts +3 -0
  277. package/templates/skills/agent-browser/SKILL.md +2 -0
  278. package/templates/skills/agent-browser/content.md +2 -0
  279. package/templates/skills/code-quality/content.md +1 -0
  280. package/templates/skills/heartbeat-runbook/content.md +1 -1
  281. package/templates/skills/work-on-task/SKILL.md +4 -0
  282. package/templates/skills/work-on-task/content.md +4 -0
  283. package/templates/skills/workflow-iterate/content.md +9 -0
  284. package/dist/acp-adapter-w6zws6me.js +0 -23
  285. package/dist/boot-scrub-logs-246yn076.js +0 -99
  286. package/dist/cli-3a4m1aws.js +0 -572
  287. package/dist/cli-3dpj7atn.js +0 -11
  288. package/dist/cli-a87b04k8.js +0 -951
  289. package/dist/cli-cvk6yzw5.js +0 -40
  290. package/dist/cli-gvcgmx69.js +0 -183
  291. package/dist/cli-h1spv8v4.js +0 -427
  292. package/dist/cli-jqt9hrnz.js +0 -168
  293. package/dist/cli-yhmwmv0g.js +0 -9281
  294. package/dist/grok-adapter-yt9pab3k.js +0 -29
  295. package/src/be/boot-scrub-logs.ts +0 -132
  296. package/dist/{codex-hook-d2rkvf39.js → codex-hook-15dgc4cb.js} +1 -1
@@ -0,0 +1,2654 @@
1
+ import {
2
+ __esm
3
+ } from "./cli-bc05qbss.js";
4
+
5
+ // src/utils/secret-rules.generated.ts
6
+ var GITLEAKS_RULES;
7
+ var init_secret_rules_generated = __esm(() => {
8
+ GITLEAKS_RULES = {
9
+ version: "v8.30.1",
10
+ commit: "83d9cd684c87d95d656c1458ef04895a7f1cbd8e",
11
+ globalAllowlist: {
12
+ regexes: [
13
+ {
14
+ source: "^true|false|null$",
15
+ flags: "i"
16
+ },
17
+ {
18
+ source: "^(?i:a+|b+|c+|d+|e+|f+|g+|h+|i+|j+|k+|l+|m+|n+|o+|p+|q+|r+|s+|t+|u+|v+|w+|x+|y+|z+|\\*+|\\.+)$",
19
+ flags: ""
20
+ },
21
+ {
22
+ source: "^\\$(?:\\d+|{\\d+})$",
23
+ flags: ""
24
+ },
25
+ {
26
+ source: "^\\$(?:[A-Z_]+|[a-z_]+)$",
27
+ flags: ""
28
+ },
29
+ {
30
+ source: "^\\${(?:[A-Z_]+|[a-z_]+)}$",
31
+ flags: ""
32
+ },
33
+ {
34
+ source: "^\\{\\{[ \\t]*[\\w ().|]+[ \\t]*}}$",
35
+ flags: ""
36
+ },
37
+ {
38
+ source: `^\\$\\{\\{[ \\t]*(?:(?:env|github|secrets|vars)(?:\\.[A-Za-z]\\w+)+[\\w "'&./=|]*)[ \\t]*}}$`,
39
+ flags: ""
40
+ },
41
+ {
42
+ source: "^%(?:[A-Z_]+|[a-z_]+)%$",
43
+ flags: ""
44
+ },
45
+ {
46
+ source: "^%[+\\-# 0]?[bcdeEfFgGoOpqstTUvxX]$",
47
+ flags: ""
48
+ },
49
+ {
50
+ source: "^\\{\\d{0,2}}$",
51
+ flags: ""
52
+ },
53
+ {
54
+ source: "^@(?:[A-Z_]+|[a-z_]+)@$",
55
+ flags: ""
56
+ },
57
+ {
58
+ source: "^/Users/(?i:[a-z0-9]+/[\\w .-/]+$)",
59
+ flags: ""
60
+ },
61
+ {
62
+ source: "^/(?:bin|etc|home|opt|tmp|usr|var)/[\\w ./-]+$",
63
+ flags: ""
64
+ }
65
+ ],
66
+ stopwords: [
67
+ "014df517-39d1-4453-b7b3-9930c563627c",
68
+ "abcdefghijklmnopqrstuvwxyz"
69
+ ]
70
+ },
71
+ rules: [
72
+ {
73
+ id: "1password-secret-key",
74
+ source: "\\bA3-[A-Z0-9]{6}-(?:(?:[A-Z0-9]{11})|(?:[A-Z0-9]{6}-[A-Z0-9]{5}))-[A-Z0-9]{5}-[A-Z0-9]{5}-[A-Z0-9]{5}\\b",
75
+ flags: "",
76
+ keywords: [
77
+ "a3-"
78
+ ],
79
+ entropy: 3.8
80
+ },
81
+ {
82
+ id: "1password-service-account-token",
83
+ source: "ops_eyJ[a-zA-Z0-9+/]{250,}={0,3}",
84
+ flags: "",
85
+ keywords: [
86
+ "ops_"
87
+ ],
88
+ entropy: 4
89
+ },
90
+ {
91
+ id: "adafruit-api-key",
92
+ source: `(?:adafruit)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9_-]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
93
+ flags: "i",
94
+ keywords: [
95
+ "adafruit"
96
+ ]
97
+ },
98
+ {
99
+ id: "adobe-client-id",
100
+ source: `(?:adobe)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-f0-9]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
101
+ flags: "i",
102
+ keywords: [
103
+ "adobe"
104
+ ],
105
+ entropy: 2
106
+ },
107
+ {
108
+ id: "adobe-client-secret",
109
+ source: `\\b(p8e-(?i:[a-z0-9]{32}))(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
110
+ flags: "",
111
+ keywords: [
112
+ "p8e-"
113
+ ],
114
+ entropy: 2
115
+ },
116
+ {
117
+ id: "age-secret-key",
118
+ source: "AGE-SECRET-KEY-1[QPZRY9X8GF2TVDW0S3JN54KHCE6MUA7L]{58}",
119
+ flags: "",
120
+ keywords: [
121
+ "age-secret-key-1"
122
+ ]
123
+ },
124
+ {
125
+ id: "airtable-api-key",
126
+ source: `(?:airtable)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{17})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
127
+ flags: "i",
128
+ keywords: [
129
+ "airtable"
130
+ ]
131
+ },
132
+ {
133
+ id: "airtable-personnal-access-token",
134
+ source: "\\b(pat[A-Za-z0-9]{14}\\.[a-f0-9]{64})\\b",
135
+ flags: "",
136
+ keywords: [
137
+ "airtable"
138
+ ]
139
+ },
140
+ {
141
+ id: "algolia-api-key",
142
+ source: `(?:algolia)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
143
+ flags: "i",
144
+ keywords: [
145
+ "algolia"
146
+ ]
147
+ },
148
+ {
149
+ id: "alibaba-access-key-id",
150
+ source: `\\b(LTAI(?i:[a-z0-9]{20}))(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
151
+ flags: "",
152
+ keywords: [
153
+ "ltai"
154
+ ],
155
+ entropy: 2
156
+ },
157
+ {
158
+ id: "alibaba-secret-key",
159
+ source: `(?:alibaba)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{30})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
160
+ flags: "i",
161
+ keywords: [
162
+ "alibaba"
163
+ ],
164
+ entropy: 2
165
+ },
166
+ {
167
+ id: "anthropic-admin-api-key",
168
+ source: `\\b(sk-ant-admin01-[a-zA-Z0-9_\\-]{93}AA)(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
169
+ flags: "",
170
+ keywords: [
171
+ "sk-ant-admin01"
172
+ ]
173
+ },
174
+ {
175
+ id: "anthropic-api-key",
176
+ source: `\\b(sk-ant-api03-[a-zA-Z0-9_\\-]{93}AA)(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
177
+ flags: "",
178
+ keywords: [
179
+ "sk-ant-api03"
180
+ ]
181
+ },
182
+ {
183
+ id: "artifactory-api-key",
184
+ source: "\\bAKCp[A-Za-z0-9]{69}\\b",
185
+ flags: "",
186
+ keywords: [
187
+ "akcp"
188
+ ],
189
+ entropy: 4.5
190
+ },
191
+ {
192
+ id: "artifactory-reference-token",
193
+ source: "\\bcmVmd[A-Za-z0-9]{59}\\b",
194
+ flags: "",
195
+ keywords: [
196
+ "cmvmd"
197
+ ],
198
+ entropy: 4.5
199
+ },
200
+ {
201
+ id: "asana-client-id",
202
+ source: `(?:asana)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([0-9]{16})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
203
+ flags: "i",
204
+ keywords: [
205
+ "asana"
206
+ ]
207
+ },
208
+ {
209
+ id: "asana-client-secret",
210
+ source: `(?:asana)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
211
+ flags: "i",
212
+ keywords: [
213
+ "asana"
214
+ ]
215
+ },
216
+ {
217
+ id: "atlassian-api-token",
218
+ source: `(?:(?-i:ATLASSIAN|[Aa]tlassian)|(?-i:CONFLUENCE|[Cc]onfluence)|(?-i:JIRA|[Jj]ira))(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{20}[a-f0-9]{4})(?:[\\x60'"\\s;]|\\\\[nr]|$)|\\b(ATATT3[A-Za-z0-9_\\-=]{186})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
219
+ flags: "i",
220
+ keywords: [
221
+ "atlassian",
222
+ "confluence",
223
+ "jira",
224
+ "atatt3"
225
+ ],
226
+ entropy: 3.5
227
+ },
228
+ {
229
+ id: "authress-service-client-access-key",
230
+ source: `\\b((?:sc|ext|scauth|authress)_(?i:[a-z0-9]{5,30}\\.[a-z0-9]{4,6}\\.(?-i:acc)[_-][a-z0-9-]{10,32}\\.[a-z0-9+/_=-]{30,120}))(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
231
+ flags: "",
232
+ keywords: [
233
+ "sc_",
234
+ "ext_",
235
+ "scauth_",
236
+ "authress_"
237
+ ],
238
+ entropy: 2
239
+ },
240
+ {
241
+ id: "aws-access-token",
242
+ source: "\\b((?:A3T[A-Z0-9]|AKIA|ASIA|ABIA|ACCA)[A-Z2-7]{16})\\b",
243
+ flags: "",
244
+ keywords: [
245
+ "a3t",
246
+ "akia",
247
+ "asia",
248
+ "abia",
249
+ "acca"
250
+ ],
251
+ entropy: 3,
252
+ allowlists: [
253
+ {
254
+ target: "secret",
255
+ regexes: [
256
+ {
257
+ source: ".+EXAMPLE$",
258
+ flags: ""
259
+ }
260
+ ],
261
+ stopwords: []
262
+ }
263
+ ]
264
+ },
265
+ {
266
+ id: "aws-amazon-bedrock-api-key-long-lived",
267
+ source: `\\b(ABSK[A-Za-z0-9+/]{109,269}={0,2})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
268
+ flags: "",
269
+ keywords: [
270
+ "absk"
271
+ ],
272
+ entropy: 3
273
+ },
274
+ {
275
+ id: "aws-amazon-bedrock-api-key-short-lived",
276
+ source: "bedrock-api-key-YmVkcm9jay5hbWF6b25hd3MuY29t",
277
+ flags: "",
278
+ keywords: [
279
+ "bedrock-api-key-"
280
+ ],
281
+ entropy: 3
282
+ },
283
+ {
284
+ id: "azure-ad-client-secret",
285
+ source: `(?:^|[\\\\'"\\x60\\s>=:(,)])([a-zA-Z0-9_~.]{3}\\dQ~[a-zA-Z0-9_~.-]{31,34})(?:$|[\\\\'"\\x60\\s<),])`,
286
+ flags: "",
287
+ keywords: [
288
+ "q~"
289
+ ],
290
+ entropy: 3
291
+ },
292
+ {
293
+ id: "beamer-api-token",
294
+ source: `(?:beamer)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(b_[a-z0-9=_\\-]{44})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
295
+ flags: "i",
296
+ keywords: [
297
+ "beamer"
298
+ ]
299
+ },
300
+ {
301
+ id: "bitbucket-client-id",
302
+ source: `(?:bitbucket)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
303
+ flags: "i",
304
+ keywords: [
305
+ "bitbucket"
306
+ ]
307
+ },
308
+ {
309
+ id: "bitbucket-client-secret",
310
+ source: `(?:bitbucket)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9=_\\-]{64})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
311
+ flags: "i",
312
+ keywords: [
313
+ "bitbucket"
314
+ ]
315
+ },
316
+ {
317
+ id: "bittrex-access-key",
318
+ source: `(?:bittrex)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
319
+ flags: "i",
320
+ keywords: [
321
+ "bittrex"
322
+ ]
323
+ },
324
+ {
325
+ id: "bittrex-secret-key",
326
+ source: `(?:bittrex)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
327
+ flags: "i",
328
+ keywords: [
329
+ "bittrex"
330
+ ]
331
+ },
332
+ {
333
+ id: "cisco-meraki-api-key",
334
+ source: `(?i:(?:(?-i:[Mm]eraki|MERAKI))(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3})(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([0-9a-f]{40})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
335
+ flags: "",
336
+ keywords: [
337
+ "meraki"
338
+ ],
339
+ entropy: 3
340
+ },
341
+ {
342
+ id: "clickhouse-cloud-api-secret-key",
343
+ source: "\\b(4b1d[A-Za-z0-9]{38})\\b",
344
+ flags: "",
345
+ keywords: [
346
+ "4b1d"
347
+ ],
348
+ entropy: 3
349
+ },
350
+ {
351
+ id: "clojars-api-token",
352
+ source: "CLOJARS_[a-z0-9]{60}",
353
+ flags: "i",
354
+ keywords: [
355
+ "clojars_"
356
+ ],
357
+ entropy: 2
358
+ },
359
+ {
360
+ id: "cloudflare-api-key",
361
+ source: `(?:cloudflare)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9_-]{40})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
362
+ flags: "i",
363
+ keywords: [
364
+ "cloudflare"
365
+ ],
366
+ entropy: 2
367
+ },
368
+ {
369
+ id: "cloudflare-global-api-key",
370
+ source: `(?:cloudflare)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-f0-9]{37})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
371
+ flags: "i",
372
+ keywords: [
373
+ "cloudflare"
374
+ ],
375
+ entropy: 2
376
+ },
377
+ {
378
+ id: "cloudflare-origin-ca-key",
379
+ source: `\\b(v1\\.0-[a-f0-9]{24}-[a-f0-9]{146})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
380
+ flags: "",
381
+ keywords: [
382
+ "cloudflare",
383
+ "v1.0-"
384
+ ],
385
+ entropy: 2
386
+ },
387
+ {
388
+ id: "codecov-access-token",
389
+ source: `(?:codecov)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
390
+ flags: "i",
391
+ keywords: [
392
+ "codecov"
393
+ ]
394
+ },
395
+ {
396
+ id: "cohere-api-token",
397
+ source: `(?i:(?:cohere|CO_API_KEY)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3})(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-zA-Z0-9]{40})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
398
+ flags: "",
399
+ keywords: [
400
+ "cohere",
401
+ "co_api_key"
402
+ ],
403
+ entropy: 4
404
+ },
405
+ {
406
+ id: "coinbase-access-token",
407
+ source: `(?:coinbase)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9_-]{64})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
408
+ flags: "i",
409
+ keywords: [
410
+ "coinbase"
411
+ ]
412
+ },
413
+ {
414
+ id: "confluent-access-token",
415
+ source: `(?:confluent)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{16})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
416
+ flags: "i",
417
+ keywords: [
418
+ "confluent"
419
+ ]
420
+ },
421
+ {
422
+ id: "confluent-secret-key",
423
+ source: `(?:confluent)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
424
+ flags: "i",
425
+ keywords: [
426
+ "confluent"
427
+ ]
428
+ },
429
+ {
430
+ id: "contentful-delivery-api-token",
431
+ source: `(?:contentful)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9=_\\-]{43})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
432
+ flags: "i",
433
+ keywords: [
434
+ "contentful"
435
+ ]
436
+ },
437
+ {
438
+ id: "databricks-api-token",
439
+ source: `\\b(dapi[a-f0-9]{32}(?:-\\d)?)(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
440
+ flags: "",
441
+ keywords: [
442
+ "dapi"
443
+ ],
444
+ entropy: 3
445
+ },
446
+ {
447
+ id: "datadog-access-token",
448
+ source: `(?:datadog)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{40})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
449
+ flags: "i",
450
+ keywords: [
451
+ "datadog"
452
+ ]
453
+ },
454
+ {
455
+ id: "defined-networking-api-token",
456
+ source: `(?:dnkey)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(dnkey-[a-z0-9=_\\-]{26}-[a-z0-9=_\\-]{52})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
457
+ flags: "i",
458
+ keywords: [
459
+ "dnkey"
460
+ ]
461
+ },
462
+ {
463
+ id: "digitalocean-access-token",
464
+ source: `\\b(doo_v1_[a-f0-9]{64})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
465
+ flags: "",
466
+ keywords: [
467
+ "doo_v1_"
468
+ ],
469
+ entropy: 3
470
+ },
471
+ {
472
+ id: "digitalocean-pat",
473
+ source: `\\b(dop_v1_[a-f0-9]{64})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
474
+ flags: "",
475
+ keywords: [
476
+ "dop_v1_"
477
+ ],
478
+ entropy: 3
479
+ },
480
+ {
481
+ id: "digitalocean-refresh-token",
482
+ source: `\\b(dor_v1_[a-f0-9]{64})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
483
+ flags: "i",
484
+ keywords: [
485
+ "dor_v1_"
486
+ ]
487
+ },
488
+ {
489
+ id: "discord-api-token",
490
+ source: `(?:discord)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-f0-9]{64})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
491
+ flags: "i",
492
+ keywords: [
493
+ "discord"
494
+ ]
495
+ },
496
+ {
497
+ id: "discord-client-id",
498
+ source: `(?:discord)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([0-9]{18})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
499
+ flags: "i",
500
+ keywords: [
501
+ "discord"
502
+ ],
503
+ entropy: 2
504
+ },
505
+ {
506
+ id: "discord-client-secret",
507
+ source: `(?:discord)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9=_\\-]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
508
+ flags: "i",
509
+ keywords: [
510
+ "discord"
511
+ ],
512
+ entropy: 2
513
+ },
514
+ {
515
+ id: "doppler-api-token",
516
+ source: "dp\\.pt\\.(?i:[a-z0-9]{43})",
517
+ flags: "",
518
+ keywords: [
519
+ "dp.pt."
520
+ ],
521
+ entropy: 2
522
+ },
523
+ {
524
+ id: "droneci-access-token",
525
+ source: `(?:droneci)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
526
+ flags: "i",
527
+ keywords: [
528
+ "droneci"
529
+ ]
530
+ },
531
+ {
532
+ id: "dropbox-api-token",
533
+ source: `(?:dropbox)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{15})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
534
+ flags: "i",
535
+ keywords: [
536
+ "dropbox"
537
+ ]
538
+ },
539
+ {
540
+ id: "dropbox-long-lived-api-token",
541
+ source: `(?:dropbox)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{11}(AAAAAAAAAA)[a-z0-9\\-_=]{43})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
542
+ flags: "i",
543
+ keywords: [
544
+ "dropbox"
545
+ ]
546
+ },
547
+ {
548
+ id: "dropbox-short-lived-api-token",
549
+ source: `(?:dropbox)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(sl\\.[a-z0-9\\-=_]{135})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
550
+ flags: "i",
551
+ keywords: [
552
+ "dropbox"
553
+ ]
554
+ },
555
+ {
556
+ id: "duffel-api-token",
557
+ source: "duffel_(?:test|live)_(?i:[a-z0-9_\\-=]{43})",
558
+ flags: "",
559
+ keywords: [
560
+ "duffel_"
561
+ ],
562
+ entropy: 2
563
+ },
564
+ {
565
+ id: "dynatrace-api-token",
566
+ source: "dt0c01\\.(?i:[a-z0-9]{24}\\.[a-z0-9]{64})",
567
+ flags: "",
568
+ keywords: [
569
+ "dt0c01."
570
+ ],
571
+ entropy: 4
572
+ },
573
+ {
574
+ id: "easypost-api-token",
575
+ source: "\\bEZAK(?i:[a-z0-9]{54}\\b)",
576
+ flags: "",
577
+ keywords: [
578
+ "ezak"
579
+ ],
580
+ entropy: 2
581
+ },
582
+ {
583
+ id: "easypost-test-api-token",
584
+ source: "\\bEZTK(?i:[a-z0-9]{54}\\b)",
585
+ flags: "",
586
+ keywords: [
587
+ "eztk"
588
+ ],
589
+ entropy: 2
590
+ },
591
+ {
592
+ id: "etsy-access-token",
593
+ source: `(?:(?-i:ETSY|[Ee]tsy))(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{24})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
594
+ flags: "i",
595
+ keywords: [
596
+ "etsy"
597
+ ],
598
+ entropy: 3
599
+ },
600
+ {
601
+ id: "facebook-access-token",
602
+ source: `\\b(\\d{15,16}(\\||%)[0-9a-z\\-_]{27,40})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
603
+ flags: "i",
604
+ keywords: [
605
+ "facebook"
606
+ ],
607
+ entropy: 3
608
+ },
609
+ {
610
+ id: "facebook-page-access-token",
611
+ source: `\\b(EAA[MC](?i:[a-z0-9]{100,}))(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
612
+ flags: "",
613
+ keywords: [
614
+ "eaam",
615
+ "eaac"
616
+ ],
617
+ entropy: 4
618
+ },
619
+ {
620
+ id: "facebook-secret",
621
+ source: `(?:facebook)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-f0-9]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
622
+ flags: "i",
623
+ keywords: [
624
+ "facebook"
625
+ ],
626
+ entropy: 3
627
+ },
628
+ {
629
+ id: "fastly-api-token",
630
+ source: `(?:fastly)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9=_\\-]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
631
+ flags: "i",
632
+ keywords: [
633
+ "fastly"
634
+ ]
635
+ },
636
+ {
637
+ id: "finicity-api-token",
638
+ source: `(?:finicity)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-f0-9]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
639
+ flags: "i",
640
+ keywords: [
641
+ "finicity"
642
+ ]
643
+ },
644
+ {
645
+ id: "finicity-client-secret",
646
+ source: `(?:finicity)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{20})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
647
+ flags: "i",
648
+ keywords: [
649
+ "finicity"
650
+ ]
651
+ },
652
+ {
653
+ id: "finnhub-access-token",
654
+ source: `(?:finnhub)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{20})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
655
+ flags: "i",
656
+ keywords: [
657
+ "finnhub"
658
+ ]
659
+ },
660
+ {
661
+ id: "flickr-access-token",
662
+ source: `(?:flickr)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
663
+ flags: "i",
664
+ keywords: [
665
+ "flickr"
666
+ ]
667
+ },
668
+ {
669
+ id: "flutterwave-encryption-key",
670
+ source: "FLWSECK_TEST-(?i:[a-h0-9]{12})",
671
+ flags: "",
672
+ keywords: [
673
+ "flwseck_test"
674
+ ],
675
+ entropy: 2
676
+ },
677
+ {
678
+ id: "flutterwave-public-key",
679
+ source: "FLWPUBK_TEST-(?i:[a-h0-9]{32}-X)",
680
+ flags: "",
681
+ keywords: [
682
+ "flwpubk_test"
683
+ ],
684
+ entropy: 2
685
+ },
686
+ {
687
+ id: "flutterwave-secret-key",
688
+ source: "FLWSECK_TEST-(?i:[a-h0-9]{32}-X)",
689
+ flags: "",
690
+ keywords: [
691
+ "flwseck_test"
692
+ ],
693
+ entropy: 2
694
+ },
695
+ {
696
+ id: "flyio-access-token",
697
+ source: `\\b((?:fo1_[\\w-]{43}|fm1[ar]_[a-zA-Z0-9+\\/]{100,}={0,3}|fm2_[a-zA-Z0-9+\\/]{100,}={0,3}))(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
698
+ flags: "",
699
+ keywords: [
700
+ "fo1_",
701
+ "fm1",
702
+ "fm2_"
703
+ ],
704
+ entropy: 4
705
+ },
706
+ {
707
+ id: "frameio-api-token",
708
+ source: "fio-u-(?i:[a-z0-9\\-_=]{64})",
709
+ flags: "",
710
+ keywords: [
711
+ "fio-u-"
712
+ ]
713
+ },
714
+ {
715
+ id: "freshbooks-access-token",
716
+ source: `(?:freshbooks)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
717
+ flags: "i",
718
+ keywords: [
719
+ "freshbooks"
720
+ ]
721
+ },
722
+ {
723
+ id: "gcp-api-key",
724
+ source: `\\b(AIza[\\w-]{35})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
725
+ flags: "",
726
+ keywords: [
727
+ "aiza"
728
+ ],
729
+ entropy: 4
730
+ },
731
+ {
732
+ id: "github-app-token",
733
+ source: "(?:ghu|ghs)_[0-9a-zA-Z]{36}",
734
+ flags: "",
735
+ keywords: [
736
+ "ghu_",
737
+ "ghs_"
738
+ ],
739
+ entropy: 3
740
+ },
741
+ {
742
+ id: "github-fine-grained-pat",
743
+ source: "github_pat_\\w{82}",
744
+ flags: "",
745
+ keywords: [
746
+ "github_pat_"
747
+ ],
748
+ entropy: 3
749
+ },
750
+ {
751
+ id: "github-oauth",
752
+ source: "gho_[0-9a-zA-Z]{36}",
753
+ flags: "",
754
+ keywords: [
755
+ "gho_"
756
+ ],
757
+ entropy: 3
758
+ },
759
+ {
760
+ id: "github-pat",
761
+ source: "ghp_[0-9a-zA-Z]{36}",
762
+ flags: "",
763
+ keywords: [
764
+ "ghp_"
765
+ ],
766
+ entropy: 3
767
+ },
768
+ {
769
+ id: "github-refresh-token",
770
+ source: "ghr_[0-9a-zA-Z]{36}",
771
+ flags: "",
772
+ keywords: [
773
+ "ghr_"
774
+ ],
775
+ entropy: 3
776
+ },
777
+ {
778
+ id: "gitlab-cicd-job-token",
779
+ source: "glcbt-[0-9a-zA-Z]{1,5}_[0-9a-zA-Z_-]{20}",
780
+ flags: "",
781
+ keywords: [
782
+ "glcbt-"
783
+ ],
784
+ entropy: 3
785
+ },
786
+ {
787
+ id: "gitlab-deploy-token",
788
+ source: "gldt-[0-9a-zA-Z_\\-]{20}",
789
+ flags: "",
790
+ keywords: [
791
+ "gldt-"
792
+ ],
793
+ entropy: 3
794
+ },
795
+ {
796
+ id: "gitlab-feature-flag-client-token",
797
+ source: "glffct-[0-9a-zA-Z_\\-]{20}",
798
+ flags: "",
799
+ keywords: [
800
+ "glffct-"
801
+ ],
802
+ entropy: 3
803
+ },
804
+ {
805
+ id: "gitlab-feed-token",
806
+ source: "glft-[0-9a-zA-Z_\\-]{20}",
807
+ flags: "",
808
+ keywords: [
809
+ "glft-"
810
+ ],
811
+ entropy: 3
812
+ },
813
+ {
814
+ id: "gitlab-incoming-mail-token",
815
+ source: "glimt-[0-9a-zA-Z_\\-]{25}",
816
+ flags: "",
817
+ keywords: [
818
+ "glimt-"
819
+ ],
820
+ entropy: 3
821
+ },
822
+ {
823
+ id: "gitlab-kubernetes-agent-token",
824
+ source: "glagent-[0-9a-zA-Z_\\-]{50}",
825
+ flags: "",
826
+ keywords: [
827
+ "glagent-"
828
+ ],
829
+ entropy: 3
830
+ },
831
+ {
832
+ id: "gitlab-oauth-app-secret",
833
+ source: "gloas-[0-9a-zA-Z_\\-]{64}",
834
+ flags: "",
835
+ keywords: [
836
+ "gloas-"
837
+ ],
838
+ entropy: 3
839
+ },
840
+ {
841
+ id: "gitlab-pat",
842
+ source: "glpat-[\\w-]{20}",
843
+ flags: "",
844
+ keywords: [
845
+ "glpat-"
846
+ ],
847
+ entropy: 3
848
+ },
849
+ {
850
+ id: "gitlab-pat-routable",
851
+ source: "\\bglpat-[0-9a-zA-Z_-]{27,300}\\.[0-9a-z]{2}[0-9a-z]{7}\\b",
852
+ flags: "",
853
+ keywords: [
854
+ "glpat-"
855
+ ],
856
+ entropy: 4
857
+ },
858
+ {
859
+ id: "gitlab-ptt",
860
+ source: "glptt-[0-9a-f]{40}",
861
+ flags: "",
862
+ keywords: [
863
+ "glptt-"
864
+ ],
865
+ entropy: 3
866
+ },
867
+ {
868
+ id: "gitlab-rrt",
869
+ source: "GR1348941[\\w-]{20}",
870
+ flags: "",
871
+ keywords: [
872
+ "gr1348941"
873
+ ],
874
+ entropy: 3
875
+ },
876
+ {
877
+ id: "gitlab-runner-authentication-token",
878
+ source: "glrt-[0-9a-zA-Z_\\-]{20}",
879
+ flags: "",
880
+ keywords: [
881
+ "glrt-"
882
+ ],
883
+ entropy: 3
884
+ },
885
+ {
886
+ id: "gitlab-runner-authentication-token-routable",
887
+ source: "\\bglrt-t\\d_[0-9a-zA-Z_\\-]{27,300}\\.[0-9a-z]{2}[0-9a-z]{7}\\b",
888
+ flags: "",
889
+ keywords: [
890
+ "glrt-"
891
+ ],
892
+ entropy: 4
893
+ },
894
+ {
895
+ id: "gitlab-scim-token",
896
+ source: "glsoat-[0-9a-zA-Z_\\-]{20}",
897
+ flags: "",
898
+ keywords: [
899
+ "glsoat-"
900
+ ],
901
+ entropy: 3
902
+ },
903
+ {
904
+ id: "gitlab-session-cookie",
905
+ source: "_gitlab_session=[0-9a-z]{32}",
906
+ flags: "",
907
+ keywords: [
908
+ "_gitlab_session="
909
+ ],
910
+ entropy: 3
911
+ },
912
+ {
913
+ id: "gitter-access-token",
914
+ source: `(?:gitter)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9_-]{40})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
915
+ flags: "i",
916
+ keywords: [
917
+ "gitter"
918
+ ]
919
+ },
920
+ {
921
+ id: "gocardless-api-token",
922
+ source: `(?:gocardless)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(live_[a-z0-9\\-_=]{40})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
923
+ flags: "i",
924
+ keywords: [
925
+ "live_",
926
+ "gocardless"
927
+ ]
928
+ },
929
+ {
930
+ id: "grafana-api-key",
931
+ source: `\\b(eyJrIjoi[A-Za-z0-9]{70,400}={0,3})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
932
+ flags: "i",
933
+ keywords: [
934
+ "eyjrijoi"
935
+ ],
936
+ entropy: 3
937
+ },
938
+ {
939
+ id: "grafana-cloud-api-token",
940
+ source: `\\b(glc_[A-Za-z0-9+/]{32,400}={0,3})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
941
+ flags: "i",
942
+ keywords: [
943
+ "glc_"
944
+ ],
945
+ entropy: 3
946
+ },
947
+ {
948
+ id: "grafana-service-account-token",
949
+ source: `\\b(glsa_[A-Za-z0-9]{32}_[A-Fa-f0-9]{8})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
950
+ flags: "i",
951
+ keywords: [
952
+ "glsa_"
953
+ ],
954
+ entropy: 3
955
+ },
956
+ {
957
+ id: "harness-api-key",
958
+ source: "(?:pat|sat)\\.[a-zA-Z0-9_-]{22}\\.[a-zA-Z0-9]{24}\\.[a-zA-Z0-9]{20}",
959
+ flags: "",
960
+ keywords: [
961
+ "pat.",
962
+ "sat."
963
+ ]
964
+ },
965
+ {
966
+ id: "hashicorp-tf-api-token",
967
+ source: "[a-z0-9]{14}\\.(?-i:atlasv1)\\.[a-z0-9\\-_=]{60,70}",
968
+ flags: "i",
969
+ keywords: [
970
+ "atlasv1"
971
+ ],
972
+ entropy: 3.5
973
+ },
974
+ {
975
+ id: "heroku-api-key",
976
+ source: `(?:heroku)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
977
+ flags: "i",
978
+ keywords: [
979
+ "heroku"
980
+ ]
981
+ },
982
+ {
983
+ id: "heroku-api-key-v2",
984
+ source: `\\b((HRKU-AA[0-9a-zA-Z_-]{58}))(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
985
+ flags: "",
986
+ keywords: [
987
+ "hrku-aa"
988
+ ],
989
+ entropy: 4
990
+ },
991
+ {
992
+ id: "hubspot-api-key",
993
+ source: `(?:hubspot)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
994
+ flags: "i",
995
+ keywords: [
996
+ "hubspot"
997
+ ]
998
+ },
999
+ {
1000
+ id: "huggingface-access-token",
1001
+ source: `\\b(hf_(?i:[a-z]{34}))(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1002
+ flags: "",
1003
+ keywords: [
1004
+ "hf_"
1005
+ ],
1006
+ entropy: 2
1007
+ },
1008
+ {
1009
+ id: "huggingface-organization-api-token",
1010
+ source: `\\b(api_org_(?i:[a-z]{34}))(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1011
+ flags: "",
1012
+ keywords: [
1013
+ "api_org_"
1014
+ ],
1015
+ entropy: 2
1016
+ },
1017
+ {
1018
+ id: "infracost-api-token",
1019
+ source: `\\b(ico-[a-zA-Z0-9]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1020
+ flags: "",
1021
+ keywords: [
1022
+ "ico-"
1023
+ ],
1024
+ entropy: 3
1025
+ },
1026
+ {
1027
+ id: "intercom-api-key",
1028
+ source: `(?:intercom)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9=_\\-]{60})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1029
+ flags: "i",
1030
+ keywords: [
1031
+ "intercom"
1032
+ ]
1033
+ },
1034
+ {
1035
+ id: "intra42-client-secret",
1036
+ source: `\\b(s-s4t2(?:ud|af)-(?i:[abcdef0123456789]{64}))(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1037
+ flags: "",
1038
+ keywords: [
1039
+ "intra",
1040
+ "s-s4t2ud-",
1041
+ "s-s4t2af-"
1042
+ ],
1043
+ entropy: 3
1044
+ },
1045
+ {
1046
+ id: "jfrog-api-key",
1047
+ source: `(?:jfrog|artifactory|bintray|xray)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{73})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1048
+ flags: "i",
1049
+ keywords: [
1050
+ "jfrog",
1051
+ "artifactory",
1052
+ "bintray",
1053
+ "xray"
1054
+ ]
1055
+ },
1056
+ {
1057
+ id: "jfrog-identity-token",
1058
+ source: `(?:jfrog|artifactory|bintray|xray)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1059
+ flags: "i",
1060
+ keywords: [
1061
+ "jfrog",
1062
+ "artifactory",
1063
+ "bintray",
1064
+ "xray"
1065
+ ]
1066
+ },
1067
+ {
1068
+ id: "jwt",
1069
+ source: `\\b(ey[a-zA-Z0-9]{17,}\\.ey[a-zA-Z0-9\\/\\\\_-]{17,}\\.(?:[a-zA-Z0-9\\/\\\\_-]{10,}={0,2})?)(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1070
+ flags: "",
1071
+ keywords: [
1072
+ "ey"
1073
+ ],
1074
+ entropy: 3
1075
+ },
1076
+ {
1077
+ id: "jwt-base64",
1078
+ source: "\\bZXlK(?:(?<alg>aGJHY2lPaU)|(?<apu>aGNIVWlPaU)|(?<apv>aGNIWWlPaU)|(?<aud>aGRXUWlPaU)|(?<b64>aU5qUWlP)|(?<crit>amNtbDBJanBi)|(?<cty>amRIa2lPaU)|(?<epk>bGNHc2lPbn)|(?<enc>bGJtTWlPaU)|(?<jku>cWEzVWlPaU)|(?<jwk>cWQyc2lPb)|(?<iss>cGMzTWlPaU)|(?<iv>cGRpSTZJ)|(?<kid>cmFXUWlP)|(?<key_ops>clpYbGZiM0J6SWpwY)|(?<kty>cmRIa2lPaUp)|(?<nonce>dWIyNWpaU0k2)|(?<p2c>d01tTWlP)|(?<p2s>d01uTWlPaU)|(?<ppt>d2NIUWlPaU)|(?<sub>emRXSWlPaU)|(?<svt>emRuUWlP)|(?<tag>MFlXY2lPaU)|(?<typ>MGVYQWlPaUp)|(?<url>MWNtd2l)|(?<use>MWMyVWlPaUp)|(?<ver>MlpYSWlPaU)|(?<version>MlpYSnphVzl1SWpv)|(?<x>NElqb2)|(?<x5c>NE5XTWlP)|(?<x5t>NE5YUWlPaU)|(?<x5ts256>NE5YUWpVekkxTmlJNkl)|(?<x5u>NE5YVWlPaU)|(?<zip>NmFYQWlPaU))[a-zA-Z0-9\\/\\\\_+\\-\\r\\n]{40,}={0,2}",
1079
+ flags: "",
1080
+ keywords: [
1081
+ "zxlk"
1082
+ ],
1083
+ entropy: 2,
1084
+ redactWholeMatch: true
1085
+ },
1086
+ {
1087
+ id: "kraken-access-token",
1088
+ source: `(?:kraken)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9\\/=_\\+\\-]{80,90})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1089
+ flags: "i",
1090
+ keywords: [
1091
+ "kraken"
1092
+ ]
1093
+ },
1094
+ {
1095
+ id: "kucoin-access-token",
1096
+ source: `(?:kucoin)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-f0-9]{24})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1097
+ flags: "i",
1098
+ keywords: [
1099
+ "kucoin"
1100
+ ]
1101
+ },
1102
+ {
1103
+ id: "kucoin-secret-key",
1104
+ source: `(?:kucoin)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1105
+ flags: "i",
1106
+ keywords: [
1107
+ "kucoin"
1108
+ ]
1109
+ },
1110
+ {
1111
+ id: "launchdarkly-access-token",
1112
+ source: `(?:launchdarkly)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9=_\\-]{40})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1113
+ flags: "i",
1114
+ keywords: [
1115
+ "launchdarkly"
1116
+ ]
1117
+ },
1118
+ {
1119
+ id: "linear-api-key",
1120
+ source: "lin_api_(?i:[a-z0-9]{40})",
1121
+ flags: "",
1122
+ keywords: [
1123
+ "lin_api_"
1124
+ ],
1125
+ entropy: 2
1126
+ },
1127
+ {
1128
+ id: "linear-client-secret",
1129
+ source: `(?:linear)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-f0-9]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1130
+ flags: "i",
1131
+ keywords: [
1132
+ "linear"
1133
+ ],
1134
+ entropy: 2
1135
+ },
1136
+ {
1137
+ id: "linkedin-client-id",
1138
+ source: `(?:linked[_-]?in)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{14})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1139
+ flags: "i",
1140
+ keywords: [
1141
+ "linkedin",
1142
+ "linked_in",
1143
+ "linked-in"
1144
+ ],
1145
+ entropy: 2
1146
+ },
1147
+ {
1148
+ id: "linkedin-client-secret",
1149
+ source: `(?:linked[_-]?in)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{16})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1150
+ flags: "i",
1151
+ keywords: [
1152
+ "linkedin",
1153
+ "linked_in",
1154
+ "linked-in"
1155
+ ],
1156
+ entropy: 2
1157
+ },
1158
+ {
1159
+ id: "lob-api-key",
1160
+ source: `(?:lob)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}((live|test)_[a-f0-9]{35})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1161
+ flags: "i",
1162
+ keywords: [
1163
+ "test_",
1164
+ "live_"
1165
+ ]
1166
+ },
1167
+ {
1168
+ id: "lob-pub-api-key",
1169
+ source: `(?:lob)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}((test|live)_pub_[a-f0-9]{31})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1170
+ flags: "i",
1171
+ keywords: [
1172
+ "test_pub",
1173
+ "live_pub",
1174
+ "_pub"
1175
+ ]
1176
+ },
1177
+ {
1178
+ id: "looker-client-id",
1179
+ source: `(?:looker)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{20})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1180
+ flags: "i",
1181
+ keywords: [
1182
+ "looker"
1183
+ ]
1184
+ },
1185
+ {
1186
+ id: "looker-client-secret",
1187
+ source: `(?:looker)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{24})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1188
+ flags: "i",
1189
+ keywords: [
1190
+ "looker"
1191
+ ]
1192
+ },
1193
+ {
1194
+ id: "mailchimp-api-key",
1195
+ source: `(?:MailchimpSDK.initialize|mailchimp)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-f0-9]{32}-us\\d\\d)(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1196
+ flags: "i",
1197
+ keywords: [
1198
+ "mailchimp"
1199
+ ]
1200
+ },
1201
+ {
1202
+ id: "mailgun-private-api-token",
1203
+ source: `(?:mailgun)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(key-[a-f0-9]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1204
+ flags: "i",
1205
+ keywords: [
1206
+ "mailgun"
1207
+ ]
1208
+ },
1209
+ {
1210
+ id: "mailgun-pub-key",
1211
+ source: `(?:mailgun)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(pubkey-[a-f0-9]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1212
+ flags: "i",
1213
+ keywords: [
1214
+ "mailgun"
1215
+ ]
1216
+ },
1217
+ {
1218
+ id: "mailgun-signing-key",
1219
+ source: `(?:mailgun)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-h0-9]{32}-[a-h0-9]{8}-[a-h0-9]{8})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1220
+ flags: "i",
1221
+ keywords: [
1222
+ "mailgun"
1223
+ ]
1224
+ },
1225
+ {
1226
+ id: "mapbox-api-token",
1227
+ source: `(?:mapbox)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(pk\\.[a-z0-9]{60}\\.[a-z0-9]{22})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1228
+ flags: "i",
1229
+ keywords: [
1230
+ "mapbox"
1231
+ ]
1232
+ },
1233
+ {
1234
+ id: "mattermost-access-token",
1235
+ source: `(?:mattermost)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{26})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1236
+ flags: "i",
1237
+ keywords: [
1238
+ "mattermost"
1239
+ ]
1240
+ },
1241
+ {
1242
+ id: "maxmind-license-key",
1243
+ source: `\\b([A-Za-z0-9]{6}_[A-Za-z0-9]{29}_mmk)(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1244
+ flags: "",
1245
+ keywords: [
1246
+ "_mmk"
1247
+ ],
1248
+ entropy: 4
1249
+ },
1250
+ {
1251
+ id: "messagebird-api-token",
1252
+ source: `(?:message[_-]?bird)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{25})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1253
+ flags: "i",
1254
+ keywords: [
1255
+ "messagebird",
1256
+ "message-bird",
1257
+ "message_bird"
1258
+ ]
1259
+ },
1260
+ {
1261
+ id: "messagebird-client-id",
1262
+ source: `(?:message[_-]?bird)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1263
+ flags: "i",
1264
+ keywords: [
1265
+ "messagebird",
1266
+ "message-bird",
1267
+ "message_bird"
1268
+ ]
1269
+ },
1270
+ {
1271
+ id: "microsoft-teams-webhook",
1272
+ source: "https://[a-z0-9]+\\.webhook\\.office\\.com/webhookb2/[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}@[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}/IncomingWebhook/[a-z0-9]{32}/[a-z0-9]{8}-([a-z0-9]{4}-){3}[a-z0-9]{12}",
1273
+ flags: "",
1274
+ keywords: [
1275
+ "webhook.office.com",
1276
+ "webhookb2",
1277
+ "incomingwebhook"
1278
+ ]
1279
+ },
1280
+ {
1281
+ id: "netlify-access-token",
1282
+ source: `(?:netlify)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9=_\\-]{40,46})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1283
+ flags: "i",
1284
+ keywords: [
1285
+ "netlify"
1286
+ ]
1287
+ },
1288
+ {
1289
+ id: "new-relic-browser-api-token",
1290
+ source: `(?:new-relic|newrelic|new_relic)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(NRJS-[a-f0-9]{19})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1291
+ flags: "i",
1292
+ keywords: [
1293
+ "nrjs-"
1294
+ ]
1295
+ },
1296
+ {
1297
+ id: "new-relic-insert-key",
1298
+ source: `(?:new-relic|newrelic|new_relic)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(NRII-[a-z0-9-]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1299
+ flags: "i",
1300
+ keywords: [
1301
+ "nrii-"
1302
+ ]
1303
+ },
1304
+ {
1305
+ id: "new-relic-user-api-id",
1306
+ source: `(?:new-relic|newrelic|new_relic)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1307
+ flags: "i",
1308
+ keywords: [
1309
+ "new-relic",
1310
+ "newrelic",
1311
+ "new_relic"
1312
+ ]
1313
+ },
1314
+ {
1315
+ id: "new-relic-user-api-key",
1316
+ source: `(?:new-relic|newrelic|new_relic)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(NRAK-[a-z0-9]{27})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1317
+ flags: "i",
1318
+ keywords: [
1319
+ "nrak"
1320
+ ]
1321
+ },
1322
+ {
1323
+ id: "notion-api-token",
1324
+ source: `\\b(ntn_[0-9]{11}[A-Za-z0-9]{32}[A-Za-z0-9]{3})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1325
+ flags: "",
1326
+ keywords: [
1327
+ "ntn_"
1328
+ ],
1329
+ entropy: 4
1330
+ },
1331
+ {
1332
+ id: "npm-access-token",
1333
+ source: `\\b(npm_[a-z0-9]{36})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1334
+ flags: "i",
1335
+ keywords: [
1336
+ "npm_"
1337
+ ],
1338
+ entropy: 2
1339
+ },
1340
+ {
1341
+ id: "nytimes-access-token",
1342
+ source: `(?:nytimes|new-york-times,|newyorktimes)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9=_\\-]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1343
+ flags: "i",
1344
+ keywords: [
1345
+ "nytimes",
1346
+ "new-york-times",
1347
+ "newyorktimes"
1348
+ ]
1349
+ },
1350
+ {
1351
+ id: "octopus-deploy-api-key",
1352
+ source: `\\b(API-[A-Z0-9]{26})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1353
+ flags: "",
1354
+ keywords: [
1355
+ "api-"
1356
+ ],
1357
+ entropy: 3
1358
+ },
1359
+ {
1360
+ id: "okta-access-token",
1361
+ source: `(?i:(?:(?-i:[Oo]kta|OKTA))(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3})(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(00[\\w=\\-]{40})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1362
+ flags: "",
1363
+ keywords: [
1364
+ "okta"
1365
+ ],
1366
+ entropy: 4
1367
+ },
1368
+ {
1369
+ id: "openai-api-key",
1370
+ source: `\\b(sk-(?:proj|svcacct|admin)-(?:[A-Za-z0-9_-]{74}|[A-Za-z0-9_-]{58})T3BlbkFJ(?:[A-Za-z0-9_-]{74}|[A-Za-z0-9_-]{58})\\b|sk-[a-zA-Z0-9]{20}T3BlbkFJ[a-zA-Z0-9]{20})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1371
+ flags: "",
1372
+ keywords: [
1373
+ "t3blbkfj"
1374
+ ],
1375
+ entropy: 3
1376
+ },
1377
+ {
1378
+ id: "openshift-user-token",
1379
+ source: "\\b(sha256~[\\w-]{43})(?:[^\\w-]|$)",
1380
+ flags: "",
1381
+ keywords: [
1382
+ "sha256~"
1383
+ ],
1384
+ entropy: 3.5
1385
+ },
1386
+ {
1387
+ id: "perplexity-api-key",
1388
+ source: `\\b(pplx-[a-zA-Z0-9]{48})(?:[\\x60'"\\s;]|\\\\[nr]|$|\\b)`,
1389
+ flags: "",
1390
+ keywords: [
1391
+ "pplx-"
1392
+ ],
1393
+ entropy: 4
1394
+ },
1395
+ {
1396
+ id: "plaid-api-token",
1397
+ source: `(?:plaid)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(access-(?:sandbox|development|production)-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1398
+ flags: "i",
1399
+ keywords: [
1400
+ "plaid"
1401
+ ]
1402
+ },
1403
+ {
1404
+ id: "plaid-client-id",
1405
+ source: `(?:plaid)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{24})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1406
+ flags: "i",
1407
+ keywords: [
1408
+ "plaid"
1409
+ ],
1410
+ entropy: 3.5
1411
+ },
1412
+ {
1413
+ id: "plaid-secret-key",
1414
+ source: `(?:plaid)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{30})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1415
+ flags: "i",
1416
+ keywords: [
1417
+ "plaid"
1418
+ ],
1419
+ entropy: 3.5
1420
+ },
1421
+ {
1422
+ id: "planetscale-api-token",
1423
+ source: `\\b(pscale_tkn_(?i:[\\w=\\.-]{32,64}))(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1424
+ flags: "",
1425
+ keywords: [
1426
+ "pscale_tkn_"
1427
+ ],
1428
+ entropy: 3
1429
+ },
1430
+ {
1431
+ id: "planetscale-oauth-token",
1432
+ source: `\\b(pscale_oauth_[\\w=\\.-]{32,64})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1433
+ flags: "",
1434
+ keywords: [
1435
+ "pscale_oauth_"
1436
+ ],
1437
+ entropy: 3
1438
+ },
1439
+ {
1440
+ id: "planetscale-password",
1441
+ source: `\\b(pscale_pw_[\\w=\\.-]{32,64})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1442
+ flags: "i",
1443
+ keywords: [
1444
+ "pscale_pw_"
1445
+ ],
1446
+ entropy: 3
1447
+ },
1448
+ {
1449
+ id: "postman-api-token",
1450
+ source: `\\b(PMAK-(?i:[a-f0-9]{24}\\-[a-f0-9]{34}))(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1451
+ flags: "",
1452
+ keywords: [
1453
+ "pmak-"
1454
+ ],
1455
+ entropy: 3
1456
+ },
1457
+ {
1458
+ id: "prefect-api-token",
1459
+ source: `\\b(pnu_[a-zA-Z0-9]{36})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1460
+ flags: "",
1461
+ keywords: [
1462
+ "pnu_"
1463
+ ],
1464
+ entropy: 2
1465
+ },
1466
+ {
1467
+ id: "privateai-api-token",
1468
+ source: `(?i:(?:private[_-]?ai)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3})(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{32})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1469
+ flags: "",
1470
+ keywords: [
1471
+ "privateai",
1472
+ "private_ai",
1473
+ "private-ai"
1474
+ ],
1475
+ entropy: 3
1476
+ },
1477
+ {
1478
+ id: "pulumi-api-token",
1479
+ source: `\\b(pul-[a-f0-9]{40})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1480
+ flags: "",
1481
+ keywords: [
1482
+ "pul-"
1483
+ ],
1484
+ entropy: 2
1485
+ },
1486
+ {
1487
+ id: "pypi-upload-token",
1488
+ source: "pypi-AgEIcHlwaS5vcmc[\\w-]{50,1000}",
1489
+ flags: "",
1490
+ keywords: [
1491
+ "pypi-ageichlwas5vcmc"
1492
+ ],
1493
+ entropy: 3
1494
+ },
1495
+ {
1496
+ id: "rapidapi-access-token",
1497
+ source: `(?:rapidapi)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9_-]{50})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1498
+ flags: "i",
1499
+ keywords: [
1500
+ "rapidapi"
1501
+ ]
1502
+ },
1503
+ {
1504
+ id: "readme-api-token",
1505
+ source: `\\b(rdme_[a-z0-9]{70})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1506
+ flags: "",
1507
+ keywords: [
1508
+ "rdme_"
1509
+ ],
1510
+ entropy: 2
1511
+ },
1512
+ {
1513
+ id: "rubygems-api-token",
1514
+ source: `\\b(rubygems_[a-f0-9]{48})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1515
+ flags: "",
1516
+ keywords: [
1517
+ "rubygems_"
1518
+ ],
1519
+ entropy: 2
1520
+ },
1521
+ {
1522
+ id: "scalingo-api-token",
1523
+ source: `\\b(tk-us-[\\w-]{48})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1524
+ flags: "",
1525
+ keywords: [
1526
+ "tk-us-"
1527
+ ],
1528
+ entropy: 2
1529
+ },
1530
+ {
1531
+ id: "sendbird-access-id",
1532
+ source: `(?:sendbird)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1533
+ flags: "i",
1534
+ keywords: [
1535
+ "sendbird"
1536
+ ]
1537
+ },
1538
+ {
1539
+ id: "sendbird-access-token",
1540
+ source: `(?:sendbird)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-f0-9]{40})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1541
+ flags: "i",
1542
+ keywords: [
1543
+ "sendbird"
1544
+ ]
1545
+ },
1546
+ {
1547
+ id: "sendgrid-api-token",
1548
+ source: `\\b(SG\\.(?i:[a-z0-9=_\\-\\.]{66}))(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1549
+ flags: "",
1550
+ keywords: [
1551
+ "sg."
1552
+ ],
1553
+ entropy: 2
1554
+ },
1555
+ {
1556
+ id: "sendinblue-api-token",
1557
+ source: `\\b(xkeysib-[a-f0-9]{64}\\-(?i:[a-z0-9]{16}))(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1558
+ flags: "",
1559
+ keywords: [
1560
+ "xkeysib-"
1561
+ ],
1562
+ entropy: 2
1563
+ },
1564
+ {
1565
+ id: "sentry-access-token",
1566
+ source: `(?:sentry)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-f0-9]{64})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1567
+ flags: "i",
1568
+ keywords: [
1569
+ "sentry"
1570
+ ],
1571
+ entropy: 3
1572
+ },
1573
+ {
1574
+ id: "sentry-org-token",
1575
+ source: "\\bsntrys_eyJpYXQiO[a-zA-Z0-9+/]{10,200}(?:LCJyZWdpb25fdXJs|InJlZ2lvbl91cmwi|cmVnaW9uX3VybCI6)[a-zA-Z0-9+/]{10,200}={0,2}_[a-zA-Z0-9+/]{43}(?:[^a-zA-Z0-9+/]|$)",
1576
+ flags: "",
1577
+ keywords: [
1578
+ "sntrys_eyjpyxqio"
1579
+ ],
1580
+ entropy: 4.5
1581
+ },
1582
+ {
1583
+ id: "sentry-user-token",
1584
+ source: `\\b(sntryu_[a-f0-9]{64})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1585
+ flags: "",
1586
+ keywords: [
1587
+ "sntryu_"
1588
+ ],
1589
+ entropy: 3.5
1590
+ },
1591
+ {
1592
+ id: "settlemint-application-access-token",
1593
+ source: `\\b(sm_aat_[a-zA-Z0-9]{16})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1594
+ flags: "",
1595
+ keywords: [
1596
+ "sm_aat"
1597
+ ],
1598
+ entropy: 3
1599
+ },
1600
+ {
1601
+ id: "settlemint-personal-access-token",
1602
+ source: `\\b(sm_pat_[a-zA-Z0-9]{16})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1603
+ flags: "",
1604
+ keywords: [
1605
+ "sm_pat"
1606
+ ],
1607
+ entropy: 3
1608
+ },
1609
+ {
1610
+ id: "settlemint-service-access-token",
1611
+ source: `\\b(sm_sat_[a-zA-Z0-9]{16})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1612
+ flags: "",
1613
+ keywords: [
1614
+ "sm_sat"
1615
+ ],
1616
+ entropy: 3
1617
+ },
1618
+ {
1619
+ id: "shippo-api-token",
1620
+ source: `\\b(shippo_(?:live|test)_[a-fA-F0-9]{40})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1621
+ flags: "",
1622
+ keywords: [
1623
+ "shippo_"
1624
+ ],
1625
+ entropy: 2
1626
+ },
1627
+ {
1628
+ id: "shopify-access-token",
1629
+ source: "shpat_[a-fA-F0-9]{32}",
1630
+ flags: "",
1631
+ keywords: [
1632
+ "shpat_"
1633
+ ],
1634
+ entropy: 2
1635
+ },
1636
+ {
1637
+ id: "shopify-custom-access-token",
1638
+ source: "shpca_[a-fA-F0-9]{32}",
1639
+ flags: "",
1640
+ keywords: [
1641
+ "shpca_"
1642
+ ],
1643
+ entropy: 2
1644
+ },
1645
+ {
1646
+ id: "shopify-private-app-access-token",
1647
+ source: "shppa_[a-fA-F0-9]{32}",
1648
+ flags: "",
1649
+ keywords: [
1650
+ "shppa_"
1651
+ ],
1652
+ entropy: 2
1653
+ },
1654
+ {
1655
+ id: "shopify-shared-secret",
1656
+ source: "shpss_[a-fA-F0-9]{32}",
1657
+ flags: "",
1658
+ keywords: [
1659
+ "shpss_"
1660
+ ],
1661
+ entropy: 2
1662
+ },
1663
+ {
1664
+ id: "sidekiq-secret",
1665
+ source: `(?:BUNDLE_ENTERPRISE__CONTRIBSYS__COM|BUNDLE_GEMS__CONTRIBSYS__COM)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-f0-9]{8}:[a-f0-9]{8})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1666
+ flags: "i",
1667
+ keywords: [
1668
+ "bundle_enterprise__contribsys__com",
1669
+ "bundle_gems__contribsys__com"
1670
+ ]
1671
+ },
1672
+ {
1673
+ id: "sidekiq-sensitive-url",
1674
+ source: "\\bhttps?://([a-f0-9]{8}:[a-f0-9]{8})@(?:gems.contribsys.com|enterprise.contribsys.com)(?:[\\/|\\#|\\?|:]|$)",
1675
+ flags: "i",
1676
+ keywords: [
1677
+ "gems.contribsys.com",
1678
+ "enterprise.contribsys.com"
1679
+ ]
1680
+ },
1681
+ {
1682
+ id: "slack-app-token",
1683
+ source: "xapp-\\d-[A-Z0-9]+-\\d+-[a-z0-9]+",
1684
+ flags: "i",
1685
+ keywords: [
1686
+ "xapp"
1687
+ ],
1688
+ entropy: 2
1689
+ },
1690
+ {
1691
+ id: "slack-bot-token",
1692
+ source: "xoxb-[0-9]{10,13}-[0-9]{10,13}[a-zA-Z0-9-]*",
1693
+ flags: "",
1694
+ keywords: [
1695
+ "xoxb"
1696
+ ],
1697
+ entropy: 3
1698
+ },
1699
+ {
1700
+ id: "slack-config-access-token",
1701
+ source: "xoxe.xox[bp]-\\d-[A-Z0-9]{163,166}",
1702
+ flags: "i",
1703
+ keywords: [
1704
+ "xoxe.xoxb-",
1705
+ "xoxe.xoxp-"
1706
+ ],
1707
+ entropy: 2
1708
+ },
1709
+ {
1710
+ id: "slack-config-refresh-token",
1711
+ source: "xoxe-\\d-[A-Z0-9]{146}",
1712
+ flags: "i",
1713
+ keywords: [
1714
+ "xoxe-"
1715
+ ],
1716
+ entropy: 2
1717
+ },
1718
+ {
1719
+ id: "slack-legacy-bot-token",
1720
+ source: "xoxb-[0-9]{8,14}-[a-zA-Z0-9]{18,26}",
1721
+ flags: "",
1722
+ keywords: [
1723
+ "xoxb"
1724
+ ],
1725
+ entropy: 2
1726
+ },
1727
+ {
1728
+ id: "slack-legacy-token",
1729
+ source: "xox[os]-\\d+-\\d+-\\d+-[a-fA-F\\d]+",
1730
+ flags: "",
1731
+ keywords: [
1732
+ "xoxo",
1733
+ "xoxs"
1734
+ ],
1735
+ entropy: 2
1736
+ },
1737
+ {
1738
+ id: "slack-legacy-workspace-token",
1739
+ source: "xox[ar]-(?:\\d-)?[0-9a-zA-Z]{8,48}",
1740
+ flags: "",
1741
+ keywords: [
1742
+ "xoxa",
1743
+ "xoxr"
1744
+ ],
1745
+ entropy: 2
1746
+ },
1747
+ {
1748
+ id: "slack-user-token",
1749
+ source: "xox[pe](?:-[0-9]{10,13}){3}-[a-zA-Z0-9-]{28,34}",
1750
+ flags: "",
1751
+ keywords: [
1752
+ "xoxp-",
1753
+ "xoxe-"
1754
+ ],
1755
+ entropy: 2
1756
+ },
1757
+ {
1758
+ id: "slack-webhook-url",
1759
+ source: "(?:https?://)?hooks.slack.com/(?:services|workflows|triggers)/[A-Za-z0-9+/]{43,56}",
1760
+ flags: "",
1761
+ keywords: [
1762
+ "hooks.slack.com"
1763
+ ]
1764
+ },
1765
+ {
1766
+ id: "snyk-api-token",
1767
+ source: `(?:snyk[_.-]?(?:(?:api|oauth)[_.-]?)?(?:key|token))(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1768
+ flags: "i",
1769
+ keywords: [
1770
+ "snyk"
1771
+ ]
1772
+ },
1773
+ {
1774
+ id: "sonar-api-token",
1775
+ source: `(?:sonar[_.-]?(login|token))(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}((?:squ_|sqp_|sqa_)?[a-z0-9=_\\-]{40})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1776
+ flags: "i",
1777
+ keywords: [
1778
+ "sonar"
1779
+ ],
1780
+ secretGroup: 2
1781
+ },
1782
+ {
1783
+ id: "sourcegraph-access-token",
1784
+ source: `\\b(\\b(sgp_(?:[a-fA-F0-9]{16}|local)_[a-fA-F0-9]{40}|sgp_[a-fA-F0-9]{40})\\b)(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1785
+ flags: "i",
1786
+ keywords: [
1787
+ "sgp_",
1788
+ "sourcegraph"
1789
+ ],
1790
+ entropy: 3
1791
+ },
1792
+ {
1793
+ id: "square-access-token",
1794
+ source: `\\b((?:EAAA|sq0atp-)[\\w-]{22,60})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1795
+ flags: "",
1796
+ keywords: [
1797
+ "sq0atp-",
1798
+ "eaaa"
1799
+ ],
1800
+ entropy: 2
1801
+ },
1802
+ {
1803
+ id: "squarespace-access-token",
1804
+ source: `(?:squarespace)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1805
+ flags: "i",
1806
+ keywords: [
1807
+ "squarespace"
1808
+ ]
1809
+ },
1810
+ {
1811
+ id: "stripe-access-token",
1812
+ source: `\\b((?:sk|rk)_(?:test|live|prod)_[a-zA-Z0-9]{10,99})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1813
+ flags: "",
1814
+ keywords: [
1815
+ "sk_test",
1816
+ "sk_live",
1817
+ "sk_prod",
1818
+ "rk_test",
1819
+ "rk_live",
1820
+ "rk_prod"
1821
+ ],
1822
+ entropy: 2
1823
+ },
1824
+ {
1825
+ id: "sumologic-access-id",
1826
+ source: `(?i:(?:(?-i:[Ss]umo|SUMO))(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3})(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(su[a-zA-Z0-9]{12})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1827
+ flags: "",
1828
+ keywords: [
1829
+ "sumo"
1830
+ ],
1831
+ entropy: 3
1832
+ },
1833
+ {
1834
+ id: "sumologic-access-token",
1835
+ source: `(?:(?-i:[Ss]umo|SUMO))(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{64})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1836
+ flags: "i",
1837
+ keywords: [
1838
+ "sumo"
1839
+ ],
1840
+ entropy: 3
1841
+ },
1842
+ {
1843
+ id: "telegram-bot-api-token",
1844
+ source: `(?:telegr)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([0-9]{5,16}:(?-i:A)[a-z0-9_\\-]{34})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1845
+ flags: "i",
1846
+ keywords: [
1847
+ "telegr"
1848
+ ]
1849
+ },
1850
+ {
1851
+ id: "travisci-access-token",
1852
+ source: `(?:travis)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{22})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1853
+ flags: "i",
1854
+ keywords: [
1855
+ "travis"
1856
+ ]
1857
+ },
1858
+ {
1859
+ id: "twilio-api-key",
1860
+ source: "SK[0-9a-fA-F]{32}",
1861
+ flags: "",
1862
+ keywords: [
1863
+ "sk"
1864
+ ],
1865
+ entropy: 3
1866
+ },
1867
+ {
1868
+ id: "twitch-api-token",
1869
+ source: `(?:twitch)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{30})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1870
+ flags: "i",
1871
+ keywords: [
1872
+ "twitch"
1873
+ ]
1874
+ },
1875
+ {
1876
+ id: "twitter-access-secret",
1877
+ source: `(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{45})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1878
+ flags: "i",
1879
+ keywords: [
1880
+ "twitter"
1881
+ ]
1882
+ },
1883
+ {
1884
+ id: "twitter-access-token",
1885
+ source: `(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([0-9]{15,25}-[a-zA-Z0-9]{20,40})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1886
+ flags: "i",
1887
+ keywords: [
1888
+ "twitter"
1889
+ ]
1890
+ },
1891
+ {
1892
+ id: "twitter-api-key",
1893
+ source: `(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{25})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1894
+ flags: "i",
1895
+ keywords: [
1896
+ "twitter"
1897
+ ]
1898
+ },
1899
+ {
1900
+ id: "twitter-api-secret",
1901
+ source: `(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{50})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1902
+ flags: "i",
1903
+ keywords: [
1904
+ "twitter"
1905
+ ]
1906
+ },
1907
+ {
1908
+ id: "twitter-bearer-token",
1909
+ source: `(?:twitter)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(A{22}[a-zA-Z0-9%]{80,100})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1910
+ flags: "i",
1911
+ keywords: [
1912
+ "twitter"
1913
+ ]
1914
+ },
1915
+ {
1916
+ id: "typeform-api-token",
1917
+ source: `(?:typeform)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(tfp_[a-z0-9\\-_\\.=]{59})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1918
+ flags: "i",
1919
+ keywords: [
1920
+ "tfp_"
1921
+ ]
1922
+ },
1923
+ {
1924
+ id: "vault-batch-token",
1925
+ source: `\\b(hvb\\.[\\w-]{138,300})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1926
+ flags: "",
1927
+ keywords: [
1928
+ "hvb."
1929
+ ],
1930
+ entropy: 4
1931
+ },
1932
+ {
1933
+ id: "vault-service-token",
1934
+ source: `\\b((?:hvs\\.[\\w-]{90,120}|s\\.(?i:[a-z0-9]{24})))(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1935
+ flags: "",
1936
+ keywords: [
1937
+ "hvs.",
1938
+ "s."
1939
+ ],
1940
+ entropy: 3.5,
1941
+ allowlists: [
1942
+ {
1943
+ target: "secret",
1944
+ regexes: [
1945
+ {
1946
+ source: "^(?:s\\.[A-Za-z]{24})$",
1947
+ flags: ""
1948
+ }
1949
+ ],
1950
+ stopwords: []
1951
+ }
1952
+ ]
1953
+ },
1954
+ {
1955
+ id: "yandex-access-token",
1956
+ source: `(?:yandex)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(t1\\.[A-Z0-9a-z_-]+[=]{0,2}\\.[A-Z0-9a-z_-]{86}[=]{0,2})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1957
+ flags: "i",
1958
+ keywords: [
1959
+ "yandex"
1960
+ ]
1961
+ },
1962
+ {
1963
+ id: "yandex-api-key",
1964
+ source: `(?:yandex)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(AQVN[A-Za-z0-9_\\-]{35,38})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1965
+ flags: "i",
1966
+ keywords: [
1967
+ "yandex"
1968
+ ]
1969
+ },
1970
+ {
1971
+ id: "yandex-aws-access-token",
1972
+ source: `(?:yandex)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}(YC[a-zA-Z0-9_\\-]{38})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1973
+ flags: "i",
1974
+ keywords: [
1975
+ "yandex"
1976
+ ]
1977
+ },
1978
+ {
1979
+ id: "zendesk-secret-key",
1980
+ source: `(?:zendesk)(?:[ \\t\\w.-]{0,20})[\\s'"]{0,3}(?:=|>|:{1,3}=|\\|\\||:|=>|\\?=|,)[\\x60'"\\s=]{0,5}([a-z0-9]{40})(?:[\\x60'"\\s;]|\\\\[nr]|$)`,
1981
+ flags: "i",
1982
+ keywords: [
1983
+ "zendesk"
1984
+ ]
1985
+ }
1986
+ ],
1987
+ excluded: [
1988
+ {
1989
+ id: "curl-auth-header",
1990
+ reason: "the key-context pass already redacts auth headers; its unbounded multi-line `.*?` backtracks in JS"
1991
+ },
1992
+ {
1993
+ id: "curl-auth-user",
1994
+ reason: "the key-context pass already redacts curl -u/--user; its unbounded multi-line `.*` backtracks in JS"
1995
+ },
1996
+ {
1997
+ id: "freemius-secret-key",
1998
+ reason: "path-scoped: gitleaks applies it to matching file names only"
1999
+ },
2000
+ {
2001
+ id: "generic-api-key",
2002
+ reason: "entropy on any key-like word; noisy on agent prose, and the scrubber's key-context pass covers sensitive keys"
2003
+ },
2004
+ {
2005
+ id: "hashicorp-tf-password",
2006
+ reason: "path-scoped: gitleaks applies it to matching file names only"
2007
+ },
2008
+ {
2009
+ id: "kubernetes-secret-yaml",
2010
+ reason: "path-scoped: gitleaks applies it to matching file names only"
2011
+ },
2012
+ {
2013
+ id: "nuget-config-password",
2014
+ reason: "path-scoped: gitleaks applies it to matching file names only"
2015
+ },
2016
+ {
2017
+ id: "pkcs12-file",
2018
+ reason: "path-scoped: gitleaks applies it to matching file names only"
2019
+ },
2020
+ {
2021
+ id: "private-key",
2022
+ reason: "the key-context pass already redacts PEM private-key blocks"
2023
+ }
2024
+ ]
2025
+ };
2026
+ });
2027
+
2028
+ // src/utils/secret-scrubber.ts
2029
+ function normalizeKey(key) {
2030
+ if (!/[a-z.-]/.test(key))
2031
+ return key;
2032
+ let out = key;
2033
+ if (/[a-z]/.test(out) && /[A-Z]/.test(out)) {
2034
+ out = out.replace(/([a-z0-9])([A-Z])/g, "$1_$2").replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2");
2035
+ }
2036
+ return out.replace(/[.-]/g, "_").toUpperCase();
2037
+ }
2038
+ function escapedForms(value) {
2039
+ const forms = new Set([value, value.replace(/[\\$"`]/g, "\\$&"), value.replaceAll("'", "'\\''")]);
2040
+ for (const form of [...forms])
2041
+ forms.add(JSON.stringify(form).slice(1, -1));
2042
+ return [...forms];
2043
+ }
2044
+ function quoted(open, close, item, lineItem) {
2045
+ return `${open}(?:(?:${lineItem})*${close}|(?:${item})*${close}${QUOTE_EOL}|(?:${lineItem})*)`;
2046
+ }
2047
+ function isSensitiveKeyPath(key) {
2048
+ if (isSensitiveKey(key))
2049
+ return true;
2050
+ const dot = key.lastIndexOf(".");
2051
+ return dot >= 0 && isSensitiveKey(key.slice(dot + 1));
2052
+ }
2053
+ function redactAssignment(match, key, value) {
2054
+ if (!isSensitiveKeyPath(key))
2055
+ return match;
2056
+ let open = "";
2057
+ let close = "";
2058
+ for (const quote of ["\\\"", '"', "'"]) {
2059
+ if (!value.startsWith(quote))
2060
+ continue;
2061
+ open = quote;
2062
+ if (value.length >= quote.length * 2 && value.endsWith(quote))
2063
+ close = quote;
2064
+ break;
2065
+ }
2066
+ const inner = value.slice(open.length, value.length - close.length);
2067
+ if (inner === "" || /^\[REDACTED:[^\]]*\]$/.test(inner))
2068
+ return match;
2069
+ return `${key}=${open}[REDACTED:${key}]${close}`;
2070
+ }
2071
+ function isPlaceholderValue(value) {
2072
+ return value === "" || value.includes("[REDACTED") || /^[$<*%{]/.test(value) || /^(?:null|none|nil|true|false|yes|no|undefined|~)$/i.test(value) || /^[+-]?\d+(?:\.\d+)?$/.test(value);
2073
+ }
2074
+ function looksLikeCode(value) {
2075
+ return /[()[\]{};,]/.test(value) || /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)+$/.test(value) || /^[A-Za-z_]+$/.test(value) && value.length < 16;
2076
+ }
2077
+ function redactLineValue(match, lead, key, sep, value) {
2078
+ if (!isSensitiveKeyPath(key))
2079
+ return match;
2080
+ const quote = /^(?:\\"|"|')/.exec(value)?.[0] ?? "";
2081
+ const inner = quote ? value.slice(quote.length, -quote.length) : value;
2082
+ if (isPlaceholderValue(inner) || !quote && looksLikeCode(inner))
2083
+ return match;
2084
+ return `${lead}${key}${sep}${quote}[REDACTED:${key}]${quote}`;
2085
+ }
2086
+ function jsonStringEnd(text, start, escaped) {
2087
+ let innerEscape = false;
2088
+ for (let i = start;i < text.length; i++) {
2089
+ let ch = text[i];
2090
+ if (ch === "\r" || ch === `
2091
+ `)
2092
+ return -(i + 1);
2093
+ const at = i;
2094
+ if (escaped) {
2095
+ if (ch === '"')
2096
+ return -(i + 1);
2097
+ if (ch === "\\") {
2098
+ ch = text[++i];
2099
+ if (ch === undefined || ch === "\r" || ch === `
2100
+ `)
2101
+ return -(i + 1);
2102
+ if (ch !== "\\" && ch !== '"')
2103
+ ch = "x";
2104
+ }
2105
+ }
2106
+ if (innerEscape)
2107
+ innerEscape = false;
2108
+ else if (ch === "\\")
2109
+ innerEscape = true;
2110
+ else if (ch === '"')
2111
+ return at;
2112
+ }
2113
+ return -(text.length + 1);
2114
+ }
2115
+ function redactJsonValues(text, re, escaped) {
2116
+ let out = "";
2117
+ let last = 0;
2118
+ re.lastIndex = 0;
2119
+ for (let m = re.exec(text);m; m = re.exec(text)) {
2120
+ const key = m[1] ?? "";
2121
+ if (!isSensitiveKeyPath(key))
2122
+ continue;
2123
+ const valueStart = m.index + m[0].length;
2124
+ const end = jsonStringEnd(text, valueStart, escaped);
2125
+ if (end < 0) {
2126
+ re.lastIndex = Math.max(re.lastIndex, -end - 2);
2127
+ continue;
2128
+ }
2129
+ re.lastIndex = end + 1;
2130
+ if (isPlaceholderValue(text.slice(valueStart, end)))
2131
+ continue;
2132
+ out += `${text.slice(last, valueStart)}[REDACTED:${key}]`;
2133
+ last = end;
2134
+ }
2135
+ return last === 0 ? text : out + text.slice(last);
2136
+ }
2137
+ function redactHeader(match, name, sep, value) {
2138
+ if (/^[A-Za-z_]+$/.test(value) && value.length < 16)
2139
+ return match;
2140
+ return `${name}${sep}[REDACTED:${name.toLowerCase().replace(/-/g, "_")}]`;
2141
+ }
2142
+ function scrubKeyContext(text) {
2143
+ let out = text;
2144
+ if (out.includes("PRIVATE KEY")) {
2145
+ out = out.replace(PEM_RE, (match, begin, body, end) => body === PEM_MARKER ? match : `${begin}${PEM_MARKER}${end}`);
2146
+ }
2147
+ if (/authorization|x-api-key/i.test(out)) {
2148
+ out = out.replace(AUTH_HEADER_RE, redactHeader).replace(API_KEY_HEADER_RE, redactHeader);
2149
+ }
2150
+ if (out.includes("--password")) {
2151
+ out = out.replace(CURL_PASSWORD_RE, (match, flag, pw) => isPlaceholderValue(pw) ? match : `${flag}[REDACTED:curl_password]`);
2152
+ }
2153
+ if (/(?:^|\s)-(?:u|U|-user|-proxy-user)\b/.test(out)) {
2154
+ out = out.replace(CURL_USER_RE, (match, prefix, user, pw) => isPlaceholderValue(pw) || pw === user ? match : `${prefix}[REDACTED:curl_password]`);
2155
+ }
2156
+ if (out.includes("://")) {
2157
+ out = out.replace(URL_USERINFO_RE, (match, prefix, pw) => isPlaceholderValue(pw) ? match : `${prefix}[REDACTED:url_password]`);
2158
+ }
2159
+ if (out.includes('"')) {
2160
+ out = redactJsonValues(out, JSON_KEY_RE, false);
2161
+ if (out.includes("\\\""))
2162
+ out = redactJsonValues(out, ESCAPED_JSON_KEY_RE, true);
2163
+ }
2164
+ if (out.includes(":"))
2165
+ out = out.replace(YAML_KEY_RE, redactLineValue);
2166
+ return out;
2167
+ }
2168
+ function getGitleaks() {
2169
+ if (gitleaks)
2170
+ return gitleaks;
2171
+ const compile = (r) => new RegExp(r.source, r.flags);
2172
+ const rules = GITLEAKS_RULES.rules.map((rule) => ({
2173
+ id: rule.id,
2174
+ re: new RegExp(rule.source, `${rule.flags}gd`),
2175
+ keywords: rule.keywords,
2176
+ entropy: rule.entropy,
2177
+ secretGroup: rule.secretGroup,
2178
+ redactWholeMatch: rule.redactWholeMatch,
2179
+ allowlists: (rule.allowlists ?? []).map((list) => ({
2180
+ target: list.target,
2181
+ res: list.regexes.map(compile),
2182
+ stopwords: list.stopwords
2183
+ }))
2184
+ }));
2185
+ const keywords = [...new Set(rules.flatMap((rule) => rule.keywords))].sort((a, b) => b.length - a.length);
2186
+ gitleaks = {
2187
+ keywordRe: new RegExp(keywords.map(escapeRegExp).join("|"), "gi"),
2188
+ implied: new Map(keywords.map((k) => [k, keywords.filter((other) => k.includes(other))])),
2189
+ rules,
2190
+ global: {
2191
+ target: "secret",
2192
+ res: GITLEAKS_RULES.globalAllowlist.regexes.map(compile),
2193
+ stopwords: GITLEAKS_RULES.globalAllowlist.stopwords
2194
+ }
2195
+ };
2196
+ return gitleaks;
2197
+ }
2198
+ function shannonEntropy(value) {
2199
+ if (value.length === 0)
2200
+ return 0;
2201
+ const counts = new Map;
2202
+ for (const ch of value)
2203
+ counts.set(ch, (counts.get(ch) ?? 0) + 1);
2204
+ let entropy = 0;
2205
+ for (const count of counts.values()) {
2206
+ const p = count / value.length;
2207
+ entropy -= p * Math.log2(p);
2208
+ }
2209
+ return entropy;
2210
+ }
2211
+ function allowedBy(list, secret, match) {
2212
+ const target = list.target === "match" ? match : secret;
2213
+ if (list.res.some((re) => re.test(target)))
2214
+ return true;
2215
+ if (list.stopwords.length === 0)
2216
+ return false;
2217
+ const lower = secret.toLowerCase();
2218
+ return list.stopwords.some((word) => lower.includes(word));
2219
+ }
2220
+ function applyGitleaksRule(text, rule, global) {
2221
+ const { re } = rule;
2222
+ re.lastIndex = 0;
2223
+ let out = "";
2224
+ let last = 0;
2225
+ let changed = false;
2226
+ for (let m = re.exec(text);m !== null; m = re.exec(text)) {
2227
+ if (m[0].length === 0) {
2228
+ re.lastIndex++;
2229
+ continue;
2230
+ }
2231
+ let group = 0;
2232
+ if (rule.secretGroup && m[rule.secretGroup])
2233
+ group = rule.secretGroup;
2234
+ else if (!rule.redactWholeMatch && !rule.secretGroup) {
2235
+ group = m.findIndex((g, i) => i > 0 && !!g);
2236
+ if (group === -1)
2237
+ group = 0;
2238
+ }
2239
+ const secret = m[group];
2240
+ const span = m.indices?.[group];
2241
+ if (!span)
2242
+ continue;
2243
+ re.lastIndex = Math.max(span[1], m.index + 1);
2244
+ if (rule.entropy && shannonEntropy(secret) <= rule.entropy)
2245
+ continue;
2246
+ if (allowedBy(global, secret, m[0]))
2247
+ continue;
2248
+ if (rule.allowlists.some((list) => allowedBy(list, secret, m[0])))
2249
+ continue;
2250
+ out += `${text.slice(last, span[0])}[REDACTED:gitleaks:${rule.id}]`;
2251
+ last = span[1];
2252
+ changed = true;
2253
+ }
2254
+ return changed ? out + text.slice(last) : text;
2255
+ }
2256
+ function scrubGitleaks(text) {
2257
+ if (!gitleaksPassEnabled)
2258
+ return text;
2259
+ const { keywordRe, implied, rules, global } = getGitleaks();
2260
+ const present = new Set;
2261
+ keywordRe.lastIndex = 0;
2262
+ for (let m = keywordRe.exec(text);m !== null; m = keywordRe.exec(text)) {
2263
+ for (const keyword of implied.get(m[0].toLowerCase()) ?? [])
2264
+ present.add(keyword);
2265
+ keywordRe.lastIndex = m.index + 1;
2266
+ }
2267
+ if (present.size === 0)
2268
+ return text;
2269
+ let out = text;
2270
+ for (const rule of rules) {
2271
+ if (rule.keywords.some((keyword) => present.has(keyword))) {
2272
+ out = applyGitleaksRule(out, rule, global);
2273
+ }
2274
+ }
2275
+ return out;
2276
+ }
2277
+ function snapshotEnv() {
2278
+ const parts = [];
2279
+ for (const key of Object.keys(process.env).sort()) {
2280
+ if (!isSensitiveKey(key))
2281
+ continue;
2282
+ const v = process.env[key];
2283
+ if (!v)
2284
+ continue;
2285
+ parts.push(`${key}=${v.length}`);
2286
+ }
2287
+ return parts.join("|");
2288
+ }
2289
+ function isSensitiveKey(key) {
2290
+ const cached = sensitiveKeyVerdicts.get(key);
2291
+ if (cached !== undefined)
2292
+ return cached;
2293
+ const verdict = computeIsSensitiveKey(key);
2294
+ if (sensitiveKeyVerdicts.size >= MAX_KEY_VERDICTS)
2295
+ sensitiveKeyVerdicts.clear();
2296
+ sensitiveKeyVerdicts.set(key, verdict);
2297
+ return verdict;
2298
+ }
2299
+ function computeIsSensitiveKey(key) {
2300
+ const normalized = normalizeKey(key);
2301
+ if (NON_SECRET_EXCEPTIONS.has(normalized))
2302
+ return false;
2303
+ if (SENSITIVE_KEY_EXACT.has(normalized))
2304
+ return true;
2305
+ if (registeredSensitiveKeys.has(key) || registeredSensitiveKeys.has(normalized))
2306
+ return true;
2307
+ for (const suffix of SENSITIVE_KEY_SUFFIXES) {
2308
+ if (normalized.endsWith(suffix))
2309
+ return true;
2310
+ }
2311
+ if (/^codex_oauth(_\d+)?$/.test(key))
2312
+ return true;
2313
+ return false;
2314
+ }
2315
+ function buildCache() {
2316
+ const entries = [];
2317
+ const seen = new Set;
2318
+ for (const [key, rawValue] of Object.entries(process.env)) {
2319
+ if (!rawValue)
2320
+ continue;
2321
+ if (!isSensitiveKey(key))
2322
+ continue;
2323
+ const candidates = rawValue.includes(",") ? [rawValue, ...rawValue.split(",").map((s) => s.trim())] : [rawValue];
2324
+ for (const candidate of candidates) {
2325
+ if (!candidate)
2326
+ continue;
2327
+ if (candidate.length < MIN_VALUE_LENGTH)
2328
+ continue;
2329
+ for (const form of escapedForms(candidate)) {
2330
+ if (seen.has(form))
2331
+ continue;
2332
+ seen.add(form);
2333
+ entries.push({ value: form, name: key });
2334
+ }
2335
+ }
2336
+ }
2337
+ entries.sort((a, b) => b.value.length - a.value.length);
2338
+ return { entries, snapshotKey: snapshotEnv() };
2339
+ }
2340
+ function getCache() {
2341
+ const current = snapshotEnv();
2342
+ if (!cache || cache.snapshotKey !== current) {
2343
+ cache = buildCache();
2344
+ }
2345
+ return cache;
2346
+ }
2347
+ function escapeRegExp(value) {
2348
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
2349
+ }
2350
+ function buildMatcher(envCache) {
2351
+ const names = new Map(volatileSecrets);
2352
+ for (const { value, name } of envCache.entries)
2353
+ names.set(value, name);
2354
+ const values = [...names.keys()].sort((a, b) => b.length - a.length);
2355
+ let re = null;
2356
+ if (values.length > 0) {
2357
+ try {
2358
+ re = new RegExp(values.map(escapeRegExp).join("|"), "g");
2359
+ } catch {
2360
+ re = null;
2361
+ }
2362
+ }
2363
+ return {
2364
+ re,
2365
+ names,
2366
+ fallback: re ? [] : values,
2367
+ builtFor: envCache,
2368
+ builtAtGeneration: volatileGeneration
2369
+ };
2370
+ }
2371
+ function getMatcher() {
2372
+ const envCache = getCache();
2373
+ if (!matcher || matcher.builtFor !== envCache || matcher.builtAtGeneration !== volatileGeneration) {
2374
+ matcher = buildMatcher(envCache);
2375
+ }
2376
+ return matcher;
2377
+ }
2378
+ function scrubSecrets(text) {
2379
+ if (text == null)
2380
+ return "";
2381
+ if (text.length === 0)
2382
+ return text;
2383
+ let out = text;
2384
+ const { re, names, fallback } = getMatcher();
2385
+ if (re) {
2386
+ re.lastIndex = 0;
2387
+ out = out.replace(re, (match) => `[REDACTED:${names.get(match) ?? "secret"}]`);
2388
+ } else {
2389
+ for (const value of fallback) {
2390
+ if (out.includes(value))
2391
+ out = out.split(value).join(`[REDACTED:${names.get(value)}]`);
2392
+ }
2393
+ }
2394
+ for (const { name, re: re2 } of TOKEN_REGEXES) {
2395
+ out = out.replace(re2, `[REDACTED:${name}]`);
2396
+ }
2397
+ out = out.replace(ASSIGNMENT_RE, redactAssignment);
2398
+ if (out.includes("="))
2399
+ out = out.replace(INI_ASSIGNMENT_RE, redactLineValue);
2400
+ out = scrubKeyContext(out);
2401
+ return scrubGitleaks(out);
2402
+ }
2403
+ function findSecretsIn(text) {
2404
+ const knownValues = new Set;
2405
+ const gitleaksRules = new Set;
2406
+ if (text.length === 0)
2407
+ return { knownValues: [], gitleaksRules: [] };
2408
+ const { re, names, fallback } = getMatcher();
2409
+ if (re) {
2410
+ re.lastIndex = 0;
2411
+ for (let m = re.exec(text);m !== null; m = re.exec(text)) {
2412
+ knownValues.add(names.get(m[0]) ?? "secret");
2413
+ }
2414
+ } else {
2415
+ for (const value of fallback) {
2416
+ if (text.includes(value))
2417
+ knownValues.add(names.get(value) ?? "secret");
2418
+ }
2419
+ }
2420
+ if (gitleaksPassEnabled) {
2421
+ const { keywordRe, implied, rules, global } = getGitleaks();
2422
+ const present = new Set;
2423
+ keywordRe.lastIndex = 0;
2424
+ for (let m = keywordRe.exec(text);m !== null; m = keywordRe.exec(text)) {
2425
+ for (const keyword of implied.get(m[0].toLowerCase()) ?? [])
2426
+ present.add(keyword);
2427
+ keywordRe.lastIndex = m.index + 1;
2428
+ }
2429
+ for (const rule of rules) {
2430
+ if (!rule.keywords.some((keyword) => present.has(keyword)))
2431
+ continue;
2432
+ if (applyGitleaksRule(text, rule, global) !== text)
2433
+ gitleaksRules.add(rule.id);
2434
+ }
2435
+ }
2436
+ return { knownValues: [...knownValues].sort(), gitleaksRules: [...gitleaksRules].sort() };
2437
+ }
2438
+ function scrubObject(value, seen = new WeakSet) {
2439
+ if (value === null || value === undefined)
2440
+ return value;
2441
+ if (typeof value === "string")
2442
+ return scrubSecrets(value);
2443
+ if (typeof value !== "object")
2444
+ return value;
2445
+ if (seen.has(value)) {
2446
+ return "[Circular]";
2447
+ }
2448
+ seen.add(value);
2449
+ if (Array.isArray(value)) {
2450
+ return value.map((item) => scrubObject(item, seen));
2451
+ }
2452
+ const out = {};
2453
+ for (const [key, child] of Object.entries(value)) {
2454
+ out[key] = scrubObject(child, seen);
2455
+ }
2456
+ return out;
2457
+ }
2458
+ function refreshSecretScrubberCache() {
2459
+ cache = null;
2460
+ }
2461
+ function registerVolatileSecret(value, name) {
2462
+ if (value.length < MIN_VALUE_LENGTH)
2463
+ return;
2464
+ for (const form of escapedForms(value)) {
2465
+ if (volatileSecrets.get(form) === name)
2466
+ continue;
2467
+ volatileSecrets.set(form, name);
2468
+ volatileGeneration++;
2469
+ }
2470
+ }
2471
+ function registerSensitiveKeyName(key) {
2472
+ if (registeredSensitiveKeys.has(key))
2473
+ return;
2474
+ registeredSensitiveKeys.add(key);
2475
+ sensitiveKeyVerdicts.clear();
2476
+ cache = null;
2477
+ }
2478
+ var SCRUBBER_RULES_VERSION = 6, SENSITIVE_KEY_EXACT, SENSITIVE_KEY_SUFFIXES, NON_SECRET_EXCEPTIONS, MIN_VALUE_LENGTH = 12, QUOTE_EOL, JSON_DQ, RAW_DQ, SQ, BARE, ASSIGNMENT_RE, LINE_START, LINE_END, LINE_VALUE, INI_ASSIGNMENT_RE, YAML_KEY_RE, JSON_KEY, JSON_KEY_RE, ESCAPED_JSON_KEY_RE, TOKEN68, HEADER_SEP, AUTH_HEADER_RE, API_KEY_HEADER_RE, CURL_PASSWORD_RE, CURL_USER_RE, URL_USERINFO_RE, PEM_RE, PEM_MARKER = "[REDACTED:private_key]", TB, TOKEN_REGEXES, gitleaks = null, gitleaksPassEnabled = true, cache = null, matcher = null, volatileSecrets, volatileGeneration = 0, registeredSensitiveKeys, sensitiveKeyVerdicts, MAX_KEY_VERDICTS = 4096;
2479
+ var init_secret_scrubber = __esm(() => {
2480
+ init_secret_rules_generated();
2481
+ SENSITIVE_KEY_EXACT = new Set([
2482
+ "API_KEY",
2483
+ "SECRETS_ENCRYPTION_KEY",
2484
+ "GITHUB_TOKEN",
2485
+ "GITLAB_TOKEN",
2486
+ "AZURE_DEVOPS_TOKEN",
2487
+ "AZURE_DEVOPS_EXT_PAT",
2488
+ "CLAUDE_CODE_OAUTH_TOKEN",
2489
+ "ANTHROPIC_API_KEY",
2490
+ "OPENAI_API_KEY",
2491
+ "OPENROUTER_API_KEY",
2492
+ "SLACK_BOT_TOKEN",
2493
+ "SLACK_SIGNING_SECRET",
2494
+ "SLACK_CLIENT_SECRET",
2495
+ "SLACK_USER_TOKEN",
2496
+ "SLACK_APP_TOKEN",
2497
+ "SENTRY_AUTH_TOKEN",
2498
+ "VERCEL_TOKEN",
2499
+ "RESEND_API_KEY",
2500
+ "AGENTMAIL_API_KEY",
2501
+ "API_AGENT_FS_API_KEY",
2502
+ "AGENT_FS_API_KEY",
2503
+ "BUSINESS_USE_API_KEY",
2504
+ "QA_USE_API_KEY",
2505
+ "DOCS_API_KEY",
2506
+ "DOKPLOY_API_KEY",
2507
+ "DEVTO_API_KEY",
2508
+ "ELEVENLABS_API_KEY",
2509
+ "ENGINY_API_KEY",
2510
+ "OPENFORT_API_KEY",
2511
+ "OPENFORT_TEST_SECRET_KEY",
2512
+ "OPENFORT_TEST_WALLET_PRIVATE_KEY",
2513
+ "OPENFORT_WALLET_SECRET",
2514
+ "TURSO_API_TOKEN",
2515
+ "TURSO_DB_TOKEN",
2516
+ "TURSO_X_POSTS_DB_TOKEN",
2517
+ "BROWSER_USE_API_KEY",
2518
+ "PLAUSIBLE_API_KEY",
2519
+ "IMGFLIP_PASSWORD",
2520
+ "GSC_SERVICE_ACCOUNT_BASE64",
2521
+ "LINEAR_API_KEY",
2522
+ "LINEAR_OAUTH_CLIENT_SECRET",
2523
+ "OTEL_EXPORTER_OTLP_HEADERS",
2524
+ "SIGNOZ_INGESTION_KEY",
2525
+ "SECRET",
2526
+ "PASSWORD",
2527
+ "PASSWD",
2528
+ "TOKEN",
2529
+ "PRIVATE_KEY",
2530
+ "APIKEY",
2531
+ "ACCESS_TOKEN",
2532
+ "REFRESH_TOKEN",
2533
+ "CLIENT_SECRET",
2534
+ "AUTHORIZATION",
2535
+ "CREDENTIALS"
2536
+ ]);
2537
+ SENSITIVE_KEY_SUFFIXES = [
2538
+ "_API_KEY",
2539
+ "_TOKEN",
2540
+ "_SECRET",
2541
+ "_PASSWORD",
2542
+ "_PASS",
2543
+ "_PRIVATE_KEY",
2544
+ "_ACCESS_KEY",
2545
+ "_SECRET_KEY",
2546
+ "_APIKEY",
2547
+ "_AUTH_HEADER",
2548
+ "_CREDENTIALS",
2549
+ "_DSN",
2550
+ "_DEPLOY_KEY"
2551
+ ];
2552
+ NON_SECRET_EXCEPTIONS = new Set([
2553
+ "MCP_BASE_URL",
2554
+ "APP_URL",
2555
+ "API_URL",
2556
+ "TEMPLATE_REGISTRY_URL",
2557
+ "GOOGLE_APPLICATION_CREDENTIALS",
2558
+ "PAGE_TOKEN",
2559
+ "NEXT_PAGE_TOKEN",
2560
+ "PREV_PAGE_TOKEN",
2561
+ "NEXT_TOKEN",
2562
+ "CONTINUATION_TOKEN",
2563
+ "SYNC_TOKEN",
2564
+ "NEXT_SYNC_TOKEN"
2565
+ ]);
2566
+ QUOTE_EOL = String.raw`(?=$|[\r\n]|\\[rn]|")`;
2567
+ JSON_DQ = quoted(String.raw`\\"(?!\$)`, String.raw`\\"`, String.raw`\\\\(?:\\\\|\\"|[^\\"])|\\[^\\"]|[^"\\]`, String.raw`\\\\(?:\\\\|\\"|[^\\"\r\n])|\\[^\\"nr\r\n]|[^"\\\r\n]`);
2568
+ RAW_DQ = quoted(`"(?!\\$)`, `"`, String.raw`\\[\s\S]|[^"\\]`, String.raw`\\[^\r\n]|[^"\\\r\n]`);
2569
+ SQ = quoted(`'`, `'`, String.raw`[^'\\]|'\\\\?''|\\[\s\S]`, String.raw`[^'\\\r\n]|'\\\\?''|\\[^nr\r\n]`);
2570
+ BARE = String.raw`(?!\$)(?:\\[^nrtu"\s]|[^\s"'\\])+`;
2571
+ ASSIGNMENT_RE = new RegExp(String.raw`(?:(?<=\\[nrt])|(?<![\w\\.]))([A-Za-z_][A-Za-z0-9_.]*)=(?!=)(${JSON_DQ}|${RAW_DQ}|${SQ}|${BARE})`, "g");
2572
+ LINE_START = String.raw`(?:^|(?<=\\[nr]))`;
2573
+ LINE_END = String.raw`(?=[ \t]*(?:$|\r|\\[nr]|"))`;
2574
+ LINE_VALUE = String.raw`"[^"\\\r\n]*"|'[^'\\\r\n]*'|\\"[^"\\\r\n]*\\"|[^\s"'\\]+`;
2575
+ INI_ASSIGNMENT_RE = new RegExp(String.raw`${LINE_START}([ \t]*)([A-Za-z_][\w.]*)([ \t]*=[ \t]*)(${LINE_VALUE})${LINE_END}`, "gm");
2576
+ YAML_KEY_RE = new RegExp(String.raw`${LINE_START}([ \t]*(?:-[ \t]+)?)([A-Za-z_][\w.-]*)([ \t]*:[ \t]+)(${LINE_VALUE})${LINE_END}`, "gm");
2577
+ JSON_KEY = String.raw`[A-Za-z_][\w.-]{0,63}`;
2578
+ JSON_KEY_RE = new RegExp(String.raw`"(${JSON_KEY})"[ \t]*:[ \t]*"`, "g");
2579
+ ESCAPED_JSON_KEY_RE = new RegExp(String.raw`\\"(${JSON_KEY})\\"[ \t]*:[ \t]*\\"`, "g");
2580
+ TOKEN68 = String.raw`[A-Za-z0-9._~+/=-]{8,}(?![A-Za-z0-9._~+/=\[-])`;
2581
+ HEADER_SEP = String.raw`\\?["']?[ \t]*:[ \t]*\\?["']?`;
2582
+ AUTH_HEADER_RE = new RegExp(String.raw`(?<![\w-])((?:proxy-)?authorization)(${HEADER_SEP}(?:bearer|basic|token|bot)[ \t]+)(${TOKEN68})`, "gi");
2583
+ API_KEY_HEADER_RE = new RegExp(String.raw`(?<![\w-])(x-api-key)(${HEADER_SEP})(${TOKEN68})`, "gi");
2584
+ CURL_PASSWORD_RE = /(?<=^|[\s'"])(--password(?:[ \t]+|=)\\?["']?)([^\s"'\\]+)/g;
2585
+ CURL_USER_RE = /(?<=^|[\s'"])((?:-u|-U|--user|--proxy-user)(?:[ \t]+|=)\\?["']?([^\s"'\\:@]+):)([^\s"'\\@]+)/g;
2586
+ URL_USERINFO_RE = /(?<![a-z0-9+.-])([a-z][a-z0-9+.-]{0,31}:\/\/[^\s/:@?#"'\\]+:)([^\s/@?#"'\\]+)(?=@)/gi;
2587
+ PEM_RE = /(-----BEGIN [A-Z0-9 ]{0,32}PRIVATE KEY(?: BLOCK)?-----)((?:(?!-----)[\s\S]){1,16384})(-----END [A-Z0-9 ]{0,32}PRIVATE KEY(?: BLOCK)?-----)/g;
2588
+ TB = String.raw`(?:(?<=\\[nrtbfu0])|(?<!\w))`;
2589
+ TOKEN_REGEXES = [
2590
+ { name: "github_pat", re: /github_pat_[A-Za-z0-9_]{20,}/g },
2591
+ { name: "github_token", re: new RegExp(String.raw`${TB}gh[pousr]_[A-Za-z0-9]{20,}\b`, "g") },
2592
+ { name: "acp_session_token", re: new RegExp(String.raw`${TB}aseph_[A-Za-z0-9]{20,}\b`, "g") },
2593
+ { name: "gitlab_pat", re: new RegExp(String.raw`${TB}glpat-[A-Za-z0-9_-]{20,}(?!\w)`, "g") },
2594
+ {
2595
+ name: "azure_devops_pat",
2596
+ re: new RegExp(String.raw`${TB}[A-Za-z0-9]{76}AZDO[A-Za-z0-9]{4}\b`, "g")
2597
+ },
2598
+ { name: "anthropic_key", re: new RegExp(String.raw`${TB}sk-ant-[A-Za-z0-9_-]{20,}(?!\w)`, "g") },
2599
+ {
2600
+ name: "openai_proj_key",
2601
+ re: new RegExp(String.raw`${TB}sk-proj-[A-Za-z0-9_-]{20,}(?!\w)`, "g")
2602
+ },
2603
+ {
2604
+ name: "openrouter_key",
2605
+ re: new RegExp(String.raw`${TB}sk-or-(?:v1-)?[A-Za-z0-9_-]{20,}(?!\w)`, "g")
2606
+ },
2607
+ { name: "sk_key", re: new RegExp(String.raw`${TB}sk-[A-Za-z0-9]{20,}\b`, "g") },
2608
+ {
2609
+ name: "slack_token",
2610
+ re: new RegExp(String.raw`${TB}xox[baprseo]-[A-Za-z0-9-]{10,}(?!\w)`, "g")
2611
+ },
2612
+ { name: "aws_access_key", re: new RegExp(String.raw`${TB}AKIA[0-9A-Z]{16}\b`, "g") },
2613
+ { name: "google_api_key", re: new RegExp(String.raw`${TB}AIza[A-Za-z0-9_-]{35}(?!\w)`, "g") },
2614
+ {
2615
+ name: "jwt",
2616
+ re: new RegExp(String.raw`${TB}eyJ[A-Za-z0-9_-]{10,}\.eyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}(?!\w)`, "g")
2617
+ },
2618
+ {
2619
+ name: "signoz_ingestion_key",
2620
+ re: new RegExp(String.raw`${TB}signoz-ingestion-key=[A-Za-z0-9._~+/-]{20,}={0,2}\b`, "g")
2621
+ },
2622
+ {
2623
+ name: "linear_oauth",
2624
+ re: new RegExp(String.raw`${TB}lin_oauth_[A-Za-z0-9_-]{10,}(?!\w)`, "g")
2625
+ },
2626
+ { name: "linear_api", re: new RegExp(String.raw`${TB}lin_api_[A-Za-z0-9_-]{10,}(?!\w)`, "g") },
2627
+ { name: "npm_token", re: new RegExp(String.raw`${TB}npm_[A-Za-z0-9_-]{20,}(?!\w)`, "g") },
2628
+ {
2629
+ name: "atlassian_token",
2630
+ re: new RegExp(String.raw`${TB}ATATT[A-Za-z0-9_=-]{20,}(?![\w=])`, "g")
2631
+ },
2632
+ { name: "mcp_token", re: new RegExp(String.raw`${TB}aswt_[A-Za-z0-9]{20,}\b`, "g") },
2633
+ {
2634
+ name: "resend_key",
2635
+ re: new RegExp(String.raw`${TB}re_(?=[A-Za-z0-9_]*[0-9])(?=[A-Za-z0-9_]*[A-Z])[A-Za-z0-9]{8}_[A-Za-z0-9]{24}\b`, "g")
2636
+ },
2637
+ { name: "google_oauth_token", re: new RegExp(String.raw`${TB}ya29\.[A-Za-z0-9_-]{20,}`, "g") },
2638
+ { name: "google_refresh_token", re: /(?<![\w/])1\/\/0[A-Za-z0-9_-]{30,}/g },
2639
+ {
2640
+ name: "discord_webhook",
2641
+ re: /https?:\/\/(?:ptb\.|canary\.)?discord(?:app)?\.com\/api\/webhooks\/\d+\/[A-Za-z0-9_-]{50,}/g
2642
+ },
2643
+ { name: "xai_key", re: new RegExp(String.raw`${TB}xai-[A-Za-z0-9]{40,}\b`, "g") },
2644
+ {
2645
+ name: "telegram_bot_token",
2646
+ re: new RegExp(String.raw`${TB}\d{8,10}:AA[A-Za-z0-9_-]{33}(?![A-Za-z0-9_-])`, "g")
2647
+ }
2648
+ ];
2649
+ volatileSecrets = new Map;
2650
+ registeredSensitiveKeys = new Set;
2651
+ sensitiveKeyVerdicts = new Map;
2652
+ });
2653
+
2654
+ export { SCRUBBER_RULES_VERSION, isSensitiveKey, scrubSecrets, findSecretsIn, scrubObject, refreshSecretScrubberCache, registerVolatileSecret, registerSensitiveKeyName, init_secret_scrubber };