@blamejs/blamejs-shop 0.5.12 → 0.5.13

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 (521) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/lib/asset-manifest.json +1 -1
  3. package/lib/vendor/MANIFEST.json +632 -416
  4. package/lib/vendor/blamejs/.clusterfuzzlite/Dockerfile +21 -10
  5. package/lib/vendor/blamejs/.clusterfuzzlite/build.sh +30 -9
  6. package/lib/vendor/blamejs/.github/dependabot.yml +8 -0
  7. package/lib/vendor/blamejs/.github/workflows/actions-lint.yml +3 -3
  8. package/lib/vendor/blamejs/.github/workflows/cflite_batch.yml +7 -2
  9. package/lib/vendor/blamejs/.github/workflows/cflite_pr.yml +7 -2
  10. package/lib/vendor/blamejs/.github/workflows/ci.yml +21 -21
  11. package/lib/vendor/blamejs/.github/workflows/codeql.yml +3 -3
  12. package/lib/vendor/blamejs/.github/workflows/npm-publish.yml +4 -4
  13. package/lib/vendor/blamejs/.github/workflows/release-container.yml +7 -7
  14. package/lib/vendor/blamejs/.github/workflows/scorecard.yml +3 -3
  15. package/lib/vendor/blamejs/.github/workflows/sha-to-tag-verify.yml +1 -1
  16. package/lib/vendor/blamejs/.gitignore +2 -0
  17. package/lib/vendor/blamejs/CHANGELOG.md +122 -0
  18. package/lib/vendor/blamejs/NOTICE +26 -1
  19. package/lib/vendor/blamejs/SECURITY.md +1 -1
  20. package/lib/vendor/blamejs/api-snapshot.json +207 -5
  21. package/lib/vendor/blamejs/docker/keycloak/realm-blamejs-test.json +29 -0
  22. package/lib/vendor/blamejs/examples/wiki/DEPLOY.md +1 -0
  23. package/lib/vendor/blamejs/examples/wiki/lib/build-app.js +31 -0
  24. package/lib/vendor/blamejs/examples/wiki/lib/source-comment-block-validator.js +109 -0
  25. package/lib/vendor/blamejs/examples/wiki/nginx.conf +106 -0
  26. package/lib/vendor/blamejs/examples/wiki/package-lock.json +1 -1
  27. package/lib/vendor/blamejs/examples/wiki/test/e2e.js +92 -0
  28. package/lib/vendor/blamejs/fuzz/asn1-der.fuzz.js +28 -0
  29. package/lib/vendor/blamejs/fuzz/cms-codec.fuzz.js +17 -0
  30. package/lib/vendor/blamejs/fuzz/link-header.fuzz.js +18 -0
  31. package/lib/vendor/blamejs/index.js +6 -0
  32. package/lib/vendor/blamejs/lib/a2a.js +4 -4
  33. package/lib/vendor/blamejs/lib/agent-idempotency.js +18 -2
  34. package/lib/vendor/blamejs/lib/agent-saga.js +36 -8
  35. package/lib/vendor/blamejs/lib/agent-snapshot.js +63 -6
  36. package/lib/vendor/blamejs/lib/app-shutdown.js +23 -20
  37. package/lib/vendor/blamejs/lib/archive-read.js +8 -0
  38. package/lib/vendor/blamejs/lib/archive-tar.js +12 -2
  39. package/lib/vendor/blamejs/lib/arg-parser.js +49 -5
  40. package/lib/vendor/blamejs/lib/asn1-der.js +12 -0
  41. package/lib/vendor/blamejs/lib/audit-sign.js +47 -1
  42. package/lib/vendor/blamejs/lib/audit.js +71 -8
  43. package/lib/vendor/blamejs/lib/auth/ciba.js +14 -2
  44. package/lib/vendor/blamejs/lib/auth/fido-mds3.js +58 -47
  45. package/lib/vendor/blamejs/lib/auth/jwt.js +34 -0
  46. package/lib/vendor/blamejs/lib/auth/oauth.js +90 -13
  47. package/lib/vendor/blamejs/lib/auth/oid4vci.js +20 -17
  48. package/lib/vendor/blamejs/lib/auth/openid-federation.js +214 -23
  49. package/lib/vendor/blamejs/lib/auth/saml.js +38 -20
  50. package/lib/vendor/blamejs/lib/auth/sd-jwt-vc.js +10 -4
  51. package/lib/vendor/blamejs/lib/backup/bundle.js +13 -3
  52. package/lib/vendor/blamejs/lib/backup/index.js +16 -5
  53. package/lib/vendor/blamejs/lib/backup/manifest.js +18 -5
  54. package/lib/vendor/blamejs/lib/base32.js +21 -0
  55. package/lib/vendor/blamejs/lib/break-glass.js +19 -10
  56. package/lib/vendor/blamejs/lib/bundler.js +5 -1
  57. package/lib/vendor/blamejs/lib/cache-status.js +3 -7
  58. package/lib/vendor/blamejs/lib/calendar.js +21 -1
  59. package/lib/vendor/blamejs/lib/cbor.js +12 -1
  60. package/lib/vendor/blamejs/lib/cert.js +29 -11
  61. package/lib/vendor/blamejs/lib/cli.js +94 -24
  62. package/lib/vendor/blamejs/lib/cloud-events.js +2 -2
  63. package/lib/vendor/blamejs/lib/cluster-provider-db.js +13 -3
  64. package/lib/vendor/blamejs/lib/codepoint-class.js +85 -0
  65. package/lib/vendor/blamejs/lib/compliance-ai-act-prohibited.js +8 -4
  66. package/lib/vendor/blamejs/lib/compliance-ai-act-transparency.js +19 -4
  67. package/lib/vendor/blamejs/lib/compliance-ai-act.js +6 -8
  68. package/lib/vendor/blamejs/lib/content-credentials.js +1 -1
  69. package/lib/vendor/blamejs/lib/content-digest.js +2 -1
  70. package/lib/vendor/blamejs/lib/cookies.js +13 -3
  71. package/lib/vendor/blamejs/lib/cose.js +31 -16
  72. package/lib/vendor/blamejs/lib/crypto-field.js +32 -0
  73. package/lib/vendor/blamejs/lib/crypto-oprf.js +11 -2
  74. package/lib/vendor/blamejs/lib/crypto-xwing.js +22 -4
  75. package/lib/vendor/blamejs/lib/crypto.js +314 -19
  76. package/lib/vendor/blamejs/lib/csp.js +11 -3
  77. package/lib/vendor/blamejs/lib/daemon.js +270 -24
  78. package/lib/vendor/blamejs/lib/dark-patterns.js +5 -2
  79. package/lib/vendor/blamejs/lib/db-declare-view.js +2 -2
  80. package/lib/vendor/blamejs/lib/db-query.js +34 -7
  81. package/lib/vendor/blamejs/lib/db.js +18 -6
  82. package/lib/vendor/blamejs/lib/dbsc.js +17 -0
  83. package/lib/vendor/blamejs/lib/dev.js +21 -2
  84. package/lib/vendor/blamejs/lib/dsr.js +157 -102
  85. package/lib/vendor/blamejs/lib/external-db.js +41 -2
  86. package/lib/vendor/blamejs/lib/file-upload.js +25 -7
  87. package/lib/vendor/blamejs/lib/flag-providers.js +27 -15
  88. package/lib/vendor/blamejs/lib/forms.js +113 -27
  89. package/lib/vendor/blamejs/lib/gate-contract.js +23 -10
  90. package/lib/vendor/blamejs/lib/gdpr-ropa.js +8 -1
  91. package/lib/vendor/blamejs/lib/guard-agent-registry.js +1 -1
  92. package/lib/vendor/blamejs/lib/guard-archive.js +2 -2
  93. package/lib/vendor/blamejs/lib/guard-cidr.js +27 -1
  94. package/lib/vendor/blamejs/lib/guard-graphql.js +30 -11
  95. package/lib/vendor/blamejs/lib/guard-html.js +26 -53
  96. package/lib/vendor/blamejs/lib/guard-image.js +24 -5
  97. package/lib/vendor/blamejs/lib/guard-imap-command.js +10 -2
  98. package/lib/vendor/blamejs/lib/guard-jmap.js +19 -3
  99. package/lib/vendor/blamejs/lib/guard-jwt.js +18 -2
  100. package/lib/vendor/blamejs/lib/guard-list-unsubscribe.js +2 -2
  101. package/lib/vendor/blamejs/lib/guard-managesieve-command.js +10 -2
  102. package/lib/vendor/blamejs/lib/guard-markdown.js +11 -24
  103. package/lib/vendor/blamejs/lib/guard-pdf.js +18 -2
  104. package/lib/vendor/blamejs/lib/guard-pop3-command.js +10 -2
  105. package/lib/vendor/blamejs/lib/guard-regex.js +8 -5
  106. package/lib/vendor/blamejs/lib/guard-svg.js +31 -32
  107. package/lib/vendor/blamejs/lib/guard-time.js +1 -1
  108. package/lib/vendor/blamejs/lib/guard-uuid.js +2 -2
  109. package/lib/vendor/blamejs/lib/html-balance.js +3 -3
  110. package/lib/vendor/blamejs/lib/http-client-cache.js +82 -4
  111. package/lib/vendor/blamejs/lib/http-client-cookie-jar.js +16 -1
  112. package/lib/vendor/blamejs/lib/http-client.js +39 -7
  113. package/lib/vendor/blamejs/lib/http-message-signature.js +35 -1
  114. package/lib/vendor/blamejs/lib/i18n-messageformat.js +31 -6
  115. package/lib/vendor/blamejs/lib/i18n.js +35 -21
  116. package/lib/vendor/blamejs/lib/incident-report.js +8 -1
  117. package/lib/vendor/blamejs/lib/ip-utils.js +11 -1
  118. package/lib/vendor/blamejs/lib/json-path.js +23 -1
  119. package/lib/vendor/blamejs/lib/jwk.js +20 -3
  120. package/lib/vendor/blamejs/lib/link-header.js +2 -1
  121. package/lib/vendor/blamejs/lib/log-stream-otlp-grpc.js +5 -1
  122. package/lib/vendor/blamejs/lib/log-stream-otlp.js +5 -1
  123. package/lib/vendor/blamejs/lib/log-stream.js +8 -3
  124. package/lib/vendor/blamejs/lib/mail-auth.js +123 -22
  125. package/lib/vendor/blamejs/lib/mail-bimi.js +1 -1
  126. package/lib/vendor/blamejs/lib/mail-bounce.js +8 -0
  127. package/lib/vendor/blamejs/lib/mail-crypto-pgp.js +46 -10
  128. package/lib/vendor/blamejs/lib/mail-dav.js +22 -3
  129. package/lib/vendor/blamejs/lib/mail-dkim.js +96 -30
  130. package/lib/vendor/blamejs/lib/mail-helo.js +6 -1
  131. package/lib/vendor/blamejs/lib/mail-scan.js +23 -16
  132. package/lib/vendor/blamejs/lib/mail-send-deliver.js +34 -8
  133. package/lib/vendor/blamejs/lib/mail-server-imap.js +3 -4
  134. package/lib/vendor/blamejs/lib/mail-server-managesieve.js +7 -11
  135. package/lib/vendor/blamejs/lib/mail-server-mx.js +93 -7
  136. package/lib/vendor/blamejs/lib/mail-server-registry.js +8 -2
  137. package/lib/vendor/blamejs/lib/mail.js +15 -5
  138. package/lib/vendor/blamejs/lib/metrics.js +268 -63
  139. package/lib/vendor/blamejs/lib/middleware/age-gate.js +7 -1
  140. package/lib/vendor/blamejs/lib/middleware/asyncapi-serve.js +1 -1
  141. package/lib/vendor/blamejs/lib/middleware/body-parser.js +19 -4
  142. package/lib/vendor/blamejs/lib/middleware/bot-guard.js +5 -9
  143. package/lib/vendor/blamejs/lib/middleware/csp-report.js +40 -8
  144. package/lib/vendor/blamejs/lib/middleware/csrf-protect.js +24 -10
  145. package/lib/vendor/blamejs/lib/middleware/dpop.js +10 -5
  146. package/lib/vendor/blamejs/lib/middleware/index.js +6 -1
  147. package/lib/vendor/blamejs/lib/middleware/nel.js +1 -1
  148. package/lib/vendor/blamejs/lib/middleware/openapi-serve.js +1 -1
  149. package/lib/vendor/blamejs/lib/middleware/rate-limit.js +12 -1
  150. package/lib/vendor/blamejs/lib/middleware/require-bound-key.js +1 -1
  151. package/lib/vendor/blamejs/lib/middleware/scim-server.js +1 -1
  152. package/lib/vendor/blamejs/lib/middleware/tus-upload.js +6 -2
  153. package/lib/vendor/blamejs/lib/mtls-ca.js +18 -2
  154. package/lib/vendor/blamejs/lib/network-dns-resolver.js +11 -1
  155. package/lib/vendor/blamejs/lib/network-dns.js +21 -2
  156. package/lib/vendor/blamejs/lib/network-tls.js +69 -7
  157. package/lib/vendor/blamejs/lib/nonce-store.js +9 -1
  158. package/lib/vendor/blamejs/lib/object-store/gcs.js +7 -0
  159. package/lib/vendor/blamejs/lib/object-store/sigv4.js +31 -0
  160. package/lib/vendor/blamejs/lib/observability-otlp-exporter.js +1 -1
  161. package/lib/vendor/blamejs/lib/outbox.js +1 -1
  162. package/lib/vendor/blamejs/lib/parsers/safe-ini.js +9 -1
  163. package/lib/vendor/blamejs/lib/parsers/safe-toml.js +10 -1
  164. package/lib/vendor/blamejs/lib/permissions.js +6 -3
  165. package/lib/vendor/blamejs/lib/pid-probe.js +55 -0
  166. package/lib/vendor/blamejs/lib/pqc-agent.js +8 -1
  167. package/lib/vendor/blamejs/lib/pqc-software.js +3 -3
  168. package/lib/vendor/blamejs/lib/pubsub.js +20 -9
  169. package/lib/vendor/blamejs/lib/queue-local.js +8 -1
  170. package/lib/vendor/blamejs/lib/queue-redis.js +5 -0
  171. package/lib/vendor/blamejs/lib/redact.js +54 -0
  172. package/lib/vendor/blamejs/lib/restore-bundle.js +10 -2
  173. package/lib/vendor/blamejs/lib/restore.js +19 -0
  174. package/lib/vendor/blamejs/lib/retention.js +12 -4
  175. package/lib/vendor/blamejs/lib/router.js +60 -6
  176. package/lib/vendor/blamejs/lib/safe-buffer.js +69 -0
  177. package/lib/vendor/blamejs/lib/safe-decompress.js +8 -2
  178. package/lib/vendor/blamejs/lib/safe-dns.js +25 -20
  179. package/lib/vendor/blamejs/lib/safe-ical.js +7 -3
  180. package/lib/vendor/blamejs/lib/safe-mime.js +12 -1
  181. package/lib/vendor/blamejs/lib/safe-object.js +80 -0
  182. package/lib/vendor/blamejs/lib/safe-path.js +52 -4
  183. package/lib/vendor/blamejs/lib/safe-redirect.js +10 -2
  184. package/lib/vendor/blamejs/lib/safe-schema.js +4 -1
  185. package/lib/vendor/blamejs/lib/safe-sieve.js +33 -1
  186. package/lib/vendor/blamejs/lib/safe-sql.js +88 -0
  187. package/lib/vendor/blamejs/lib/safe-vcard.js +7 -3
  188. package/lib/vendor/blamejs/lib/scheduler.js +8 -1
  189. package/lib/vendor/blamejs/lib/security-assert.js +6 -6
  190. package/lib/vendor/blamejs/lib/self-update-standalone-verifier.js +74 -27
  191. package/lib/vendor/blamejs/lib/self-update.js +517 -87
  192. package/lib/vendor/blamejs/lib/server-timing.js +2 -4
  193. package/lib/vendor/blamejs/lib/session.js +34 -12
  194. package/lib/vendor/blamejs/lib/sql.js +15 -1
  195. package/lib/vendor/blamejs/lib/ssrf-guard.js +52 -0
  196. package/lib/vendor/blamejs/lib/static.js +55 -13
  197. package/lib/vendor/blamejs/lib/storage.js +8 -2
  198. package/lib/vendor/blamejs/lib/subject.js +6 -1
  199. package/lib/vendor/blamejs/lib/tenant-quota.js +52 -13
  200. package/lib/vendor/blamejs/lib/tls-exporter.js +3 -3
  201. package/lib/vendor/blamejs/lib/tsa.js +34 -13
  202. package/lib/vendor/blamejs/lib/uri-template.js +8 -1
  203. package/lib/vendor/blamejs/lib/vault/index.js +13 -0
  204. package/lib/vendor/blamejs/lib/vc.js +44 -5
  205. package/lib/vendor/blamejs/lib/vendor/MANIFEST.json +26 -26
  206. package/lib/vendor/blamejs/lib/vendor/noble-ciphers.cjs +792 -1
  207. package/lib/vendor/blamejs/lib/vendor/noble-curves.cjs +3443 -1
  208. package/lib/vendor/blamejs/lib/vendor/noble-post-quantum.cjs +2737 -1
  209. package/lib/vendor/blamejs/lib/vendor/pki.cjs +39550 -13
  210. package/lib/vendor/blamejs/lib/vendor/public-suffix-list.dat +55 -53
  211. package/lib/vendor/blamejs/lib/vendor/public-suffix-list.data.js +5551 -5554
  212. package/lib/vendor/blamejs/lib/vendor/simplewebauthn-server.cjs +22459 -32
  213. package/lib/vendor/blamejs/lib/watcher.js +89 -17
  214. package/lib/vendor/blamejs/lib/webhook-dispatcher.js +25 -3
  215. package/lib/vendor/blamejs/lib/webhook.js +12 -2
  216. package/lib/vendor/blamejs/lib/ws-client.js +32 -1
  217. package/lib/vendor/blamejs/lib/xml-c14n.js +29 -1
  218. package/lib/vendor/blamejs/oss-fuzz/projects/blamejs/Dockerfile +1 -1
  219. package/lib/vendor/blamejs/package-lock.json +2 -2
  220. package/lib/vendor/blamejs/package.json +1 -1
  221. package/lib/vendor/blamejs/release-notes/v0.16.x.json +1462 -0
  222. package/lib/vendor/blamejs/release-notes/v0.17.0.json +31 -0
  223. package/lib/vendor/blamejs/release-notes/v0.17.1.json +31 -0
  224. package/lib/vendor/blamejs/release-notes/v0.17.10.json +30 -0
  225. package/lib/vendor/blamejs/release-notes/v0.17.11.json +22 -0
  226. package/lib/vendor/blamejs/release-notes/v0.17.12.json +18 -0
  227. package/lib/vendor/blamejs/release-notes/v0.17.13.json +77 -0
  228. package/lib/vendor/blamejs/release-notes/v0.17.14.json +40 -0
  229. package/lib/vendor/blamejs/release-notes/v0.17.15.json +18 -0
  230. package/lib/vendor/blamejs/release-notes/v0.17.16.json +27 -0
  231. package/lib/vendor/blamejs/release-notes/v0.17.17.json +31 -0
  232. package/lib/vendor/blamejs/release-notes/v0.17.18.json +18 -0
  233. package/lib/vendor/blamejs/release-notes/v0.17.19.json +18 -0
  234. package/lib/vendor/blamejs/release-notes/v0.17.2.json +26 -0
  235. package/lib/vendor/blamejs/release-notes/v0.17.20.json +43 -0
  236. package/lib/vendor/blamejs/release-notes/v0.17.21.json +26 -0
  237. package/lib/vendor/blamejs/release-notes/v0.17.22.json +18 -0
  238. package/lib/vendor/blamejs/release-notes/v0.17.3.json +43 -0
  239. package/lib/vendor/blamejs/release-notes/v0.17.4.json +35 -0
  240. package/lib/vendor/blamejs/release-notes/v0.17.5.json +26 -0
  241. package/lib/vendor/blamejs/release-notes/v0.17.6.json +26 -0
  242. package/lib/vendor/blamejs/release-notes/v0.17.7.json +35 -0
  243. package/lib/vendor/blamejs/release-notes/v0.17.8.json +22 -0
  244. package/lib/vendor/blamejs/release-notes/v0.17.9.json +26 -0
  245. package/lib/vendor/blamejs/scripts/validate-source-comment-blocks.js +4 -0
  246. package/lib/vendor/blamejs/scripts/vendor-update.sh +293 -9
  247. package/lib/vendor/blamejs/socket.yml +94 -0
  248. package/lib/vendor/blamejs/test/00-primitives.js +605 -0
  249. package/lib/vendor/blamejs/test/helpers/drivers.js +12 -9
  250. package/lib/vendor/blamejs/test/integration/audit-stack-mysql.test.js +90 -1
  251. package/lib/vendor/blamejs/test/integration/audit-stack-postgres.test.js +122 -1
  252. package/lib/vendor/blamejs/test/integration/data-layer-mysql.test.js +30 -0
  253. package/lib/vendor/blamejs/test/integration/data-layer-pg.test.js +29 -0
  254. package/lib/vendor/blamejs/test/integration/dsr-cluster-mysql.test.js +479 -0
  255. package/lib/vendor/blamejs/test/integration/dsr-cluster-pg.test.js +487 -0
  256. package/lib/vendor/blamejs/test/integration/federation-auth.test.js +313 -5
  257. package/lib/vendor/blamejs/test/integration/mail-dkim.test.js +80 -0
  258. package/lib/vendor/blamejs/test/integration/openid-federation-chain.test.js +275 -0
  259. package/lib/vendor/blamejs/test/integration/webhook-dispatcher-pg.test.js +96 -0
  260. package/lib/vendor/blamejs/test/layer-0-primitives/a2a-tasks.test.js +401 -0
  261. package/lib/vendor/blamejs/test/layer-0-primitives/acme.test.js +1649 -2
  262. package/lib/vendor/blamejs/test/layer-0-primitives/age-gate.test.js +33 -0
  263. package/lib/vendor/blamejs/test/layer-0-primitives/agent-idempotency.test.js +0 -0
  264. package/lib/vendor/blamejs/test/layer-0-primitives/agent-saga.test.js +60 -0
  265. package/lib/vendor/blamejs/test/layer-0-primitives/agent-snapshot.test.js +524 -0
  266. package/lib/vendor/blamejs/test/layer-0-primitives/api-encrypt.test.js +891 -0
  267. package/lib/vendor/blamejs/test/layer-0-primitives/app-shutdown.test.js +128 -1
  268. package/lib/vendor/blamejs/test/layer-0-primitives/archive-adapters.test.js +271 -0
  269. package/lib/vendor/blamejs/test/layer-0-primitives/archive-read.test.js +628 -1
  270. package/lib/vendor/blamejs/test/layer-0-primitives/archive-tar-read.test.js +0 -0
  271. package/lib/vendor/blamejs/test/layer-0-primitives/archive-wrap.test.js +227 -0
  272. package/lib/vendor/blamejs/test/layer-0-primitives/arg-parser.test.js +15 -0
  273. package/lib/vendor/blamejs/test/layer-0-primitives/asn1-der.test.js +73 -0
  274. package/lib/vendor/blamejs/test/layer-0-primitives/atomic-file.test.js +114 -0
  275. package/lib/vendor/blamejs/test/layer-0-primitives/audit-sign-anchor.test.js +141 -0
  276. package/lib/vendor/blamejs/test/layer-0-primitives/audit-tools.test.js +624 -0
  277. package/lib/vendor/blamejs/test/layer-0-primitives/audit.test.js +769 -0
  278. package/lib/vendor/blamejs/test/layer-0-primitives/auth-jwt-defenses.test.js +436 -0
  279. package/lib/vendor/blamejs/test/layer-0-primitives/auth-oauth.test.js +1697 -0
  280. package/lib/vendor/blamejs/test/layer-0-primitives/auth-oid4vp.test.js +495 -0
  281. package/lib/vendor/blamejs/test/layer-0-primitives/auth-password.test.js +500 -0
  282. package/lib/vendor/blamejs/test/layer-0-primitives/auth-saml.test.js +1809 -0
  283. package/lib/vendor/blamejs/test/layer-0-primitives/auth-status-list.test.js +243 -1
  284. package/lib/vendor/blamejs/test/layer-0-primitives/backup-index.test.js +2226 -0
  285. package/lib/vendor/blamejs/test/layer-0-primitives/backup-manifest-signature.test.js +183 -0
  286. package/lib/vendor/blamejs/test/layer-0-primitives/base32.test.js +105 -0
  287. package/lib/vendor/blamejs/test/layer-0-primitives/break-glass.test.js +693 -0
  288. package/lib/vendor/blamejs/test/layer-0-primitives/cache.test.js +603 -0
  289. package/lib/vendor/blamejs/test/layer-0-primitives/calendar.test.js +557 -0
  290. package/lib/vendor/blamejs/test/layer-0-primitives/case-insensitive-security-token-guard.test.js +214 -0
  291. package/lib/vendor/blamejs/test/layer-0-primitives/cbor.test.js +25 -0
  292. package/lib/vendor/blamejs/test/layer-0-primitives/cert.test.js +843 -6
  293. package/lib/vendor/blamejs/test/layer-0-primitives/ciba-authreqid-binding.test.js +77 -2
  294. package/lib/vendor/blamejs/test/layer-0-primitives/ciba.test.js +866 -0
  295. package/lib/vendor/blamejs/test/layer-0-primitives/clear-site-data.test.js +18 -0
  296. package/lib/vendor/blamejs/test/layer-0-primitives/cli-erase.test.js +19 -0
  297. package/lib/vendor/blamejs/test/layer-0-primitives/cli.test.js +2790 -0
  298. package/lib/vendor/blamejs/test/layer-0-primitives/cluster-lease-renewal-ttl.test.js +114 -0
  299. package/lib/vendor/blamejs/test/layer-0-primitives/cluster.test.js +1032 -0
  300. package/lib/vendor/blamejs/test/layer-0-primitives/cms-codec.test.js +575 -0
  301. package/lib/vendor/blamejs/test/layer-0-primitives/codebase-patterns.test.js +739 -1
  302. package/lib/vendor/blamejs/test/layer-0-primitives/codepoint-class.test.js +8 -0
  303. package/lib/vendor/blamejs/test/layer-0-primitives/compliance-ai-act.test.js +194 -0
  304. package/lib/vendor/blamejs/test/layer-0-primitives/compliance-lifecycle-proto-key.test.js +104 -0
  305. package/lib/vendor/blamejs/test/layer-0-primitives/compliance-sanctions.test.js +254 -0
  306. package/lib/vendor/blamejs/test/layer-0-primitives/content-credentials.test.js +613 -3
  307. package/lib/vendor/blamejs/test/layer-0-primitives/cookies.test.js +140 -0
  308. package/lib/vendor/blamejs/test/layer-0-primitives/cose.test.js +407 -0
  309. package/lib/vendor/blamejs/test/layer-0-primitives/crypto-adversarial.test.js +352 -0
  310. package/lib/vendor/blamejs/test/layer-0-primitives/crypto-field-derived-hash.test.js +32 -0
  311. package/lib/vendor/blamejs/test/layer-0-primitives/crypto-field.test.js +575 -0
  312. package/lib/vendor/blamejs/test/layer-0-primitives/crypto-hash-files-parallel.test.js +10 -0
  313. package/lib/vendor/blamejs/test/layer-0-primitives/crypto-hash-stream.test.js +24 -0
  314. package/lib/vendor/blamejs/test/layer-0-primitives/crypto-oprf.test.js +17 -0
  315. package/lib/vendor/blamejs/test/layer-0-primitives/crypto-spki-pin.test.js +183 -0
  316. package/lib/vendor/blamejs/test/layer-0-primitives/crypto-xwing.test.js +48 -0
  317. package/lib/vendor/blamejs/test/layer-0-primitives/crypto.test.js +345 -0
  318. package/lib/vendor/blamejs/test/layer-0-primitives/csp-report.test.js +58 -0
  319. package/lib/vendor/blamejs/test/layer-0-primitives/csv.test.js +48 -0
  320. package/lib/vendor/blamejs/test/layer-0-primitives/daemon.test.js +459 -1
  321. package/lib/vendor/blamejs/test/layer-0-primitives/dark-patterns.test.js +19 -0
  322. package/lib/vendor/blamejs/test/layer-0-primitives/db-query.test.js +1019 -0
  323. package/lib/vendor/blamejs/test/layer-0-primitives/db-raw-residency-gate.test.js +77 -0
  324. package/lib/vendor/blamejs/test/layer-0-primitives/db.test.js +1621 -0
  325. package/lib/vendor/blamejs/test/layer-0-primitives/ddl-change-control.test.js +462 -3
  326. package/lib/vendor/blamejs/test/layer-0-primitives/dnssec.test.js +323 -0
  327. package/lib/vendor/blamejs/test/layer-0-primitives/dpop-middleware-verify.test.js +562 -0
  328. package/lib/vendor/blamejs/test/layer-0-primitives/dsr.test.js +901 -1
  329. package/lib/vendor/blamejs/test/layer-0-primitives/dual-control.test.js +249 -0
  330. package/lib/vendor/blamejs/test/layer-0-primitives/external-db-migrate.test.js +561 -0
  331. package/lib/vendor/blamejs/test/layer-0-primitives/external-db.test.js +1214 -0
  332. package/lib/vendor/blamejs/test/layer-0-primitives/fal.test.js +21 -0
  333. package/lib/vendor/blamejs/test/layer-0-primitives/fedcm-dbsc.test.js +46 -20
  334. package/lib/vendor/blamejs/test/layer-0-primitives/federation-vc-suite.test.js +147 -3
  335. package/lib/vendor/blamejs/test/layer-0-primitives/fido-mds3.test.js +907 -38
  336. package/lib/vendor/blamejs/test/layer-0-primitives/file-upload-content-safety-skip-audit.test.js +29 -0
  337. package/lib/vendor/blamejs/test/layer-0-primitives/file-upload.test.js +1135 -0
  338. package/lib/vendor/blamejs/test/layer-0-primitives/flag.test.js +30 -0
  339. package/lib/vendor/blamejs/test/layer-0-primitives/forms.test.js +747 -0
  340. package/lib/vendor/blamejs/test/layer-0-primitives/gate-contract.test.js +1855 -0
  341. package/lib/vendor/blamejs/test/layer-0-primitives/gdpr-ropa.test.js +30 -0
  342. package/lib/vendor/blamejs/test/layer-0-primitives/guard-archive.test.js +86 -0
  343. package/lib/vendor/blamejs/test/layer-0-primitives/guard-auth.test.js +117 -0
  344. package/lib/vendor/blamejs/test/layer-0-primitives/guard-cidr.test.js +151 -0
  345. package/lib/vendor/blamejs/test/layer-0-primitives/guard-domain.test.js +422 -0
  346. package/lib/vendor/blamejs/test/layer-0-primitives/guard-filename.test.js +424 -0
  347. package/lib/vendor/blamejs/test/layer-0-primitives/{guard-gate-disposition-coverage.test.js → guard-gate-disposition.test.js} +1 -1
  348. package/lib/vendor/blamejs/test/layer-0-primitives/guard-graphql.test.js +340 -0
  349. package/lib/vendor/blamejs/test/layer-0-primitives/guard-html.test.js +29 -0
  350. package/lib/vendor/blamejs/test/layer-0-primitives/guard-idempotency-key.test.js +28 -0
  351. package/lib/vendor/blamejs/test/layer-0-primitives/guard-image.test.js +519 -45
  352. package/lib/vendor/blamejs/test/layer-0-primitives/guard-imap-command.test.js +0 -0
  353. package/lib/vendor/blamejs/test/layer-0-primitives/guard-jmap.test.js +51 -0
  354. package/lib/vendor/blamejs/test/layer-0-primitives/guard-jsonpath.test.js +66 -0
  355. package/lib/vendor/blamejs/test/layer-0-primitives/guard-jwt.test.js +436 -0
  356. package/lib/vendor/blamejs/test/layer-0-primitives/guard-managesieve-command.test.js +25 -0
  357. package/lib/vendor/blamejs/test/layer-0-primitives/guard-markdown.test.js +16 -0
  358. package/lib/vendor/blamejs/test/layer-0-primitives/guard-mime.test.js +86 -0
  359. package/lib/vendor/blamejs/test/layer-0-primitives/guard-oauth.test.js +140 -0
  360. package/lib/vendor/blamejs/test/layer-0-primitives/guard-pdf.test.js +80 -0
  361. package/lib/vendor/blamejs/test/layer-0-primitives/guard-pop3-command.test.js +27 -0
  362. package/lib/vendor/blamejs/test/layer-0-primitives/guard-regex.test.js +99 -0
  363. package/lib/vendor/blamejs/test/layer-0-primitives/guard-shell.test.js +76 -0
  364. package/lib/vendor/blamejs/test/layer-0-primitives/{guard-sql-coverage.test.js → guard-sql.test.js} +3 -3
  365. package/lib/vendor/blamejs/test/layer-0-primitives/guard-svg.test.js +524 -0
  366. package/lib/vendor/blamejs/test/layer-0-primitives/guard-template.test.js +71 -0
  367. package/lib/vendor/blamejs/test/layer-0-primitives/guard-time.test.js +92 -0
  368. package/lib/vendor/blamejs/test/layer-0-primitives/guard-uuid.test.js +86 -0
  369. package/lib/vendor/blamejs/test/layer-0-primitives/html-balance.test.js +38 -0
  370. package/lib/vendor/blamejs/test/layer-0-primitives/http-client-cache-authorization.test.js +347 -0
  371. package/lib/vendor/blamejs/test/layer-0-primitives/http-client-cache.test.js +908 -0
  372. package/lib/vendor/blamejs/test/layer-0-primitives/http-client.test.js +2874 -0
  373. package/lib/vendor/blamejs/test/layer-0-primitives/http-message-signature.test.js +643 -0
  374. package/lib/vendor/blamejs/test/layer-0-primitives/i18n-messageformat.test.js +38 -0
  375. package/lib/vendor/blamejs/test/layer-0-primitives/i18n.test.js +1153 -1
  376. package/lib/vendor/blamejs/test/layer-0-primitives/idempotency-key.test.js +494 -0
  377. package/lib/vendor/blamejs/test/layer-0-primitives/ip-utils.test.js +30 -0
  378. package/lib/vendor/blamejs/test/layer-0-primitives/jsdoc-example-execution.test.js +177 -0
  379. package/lib/vendor/blamejs/test/layer-0-primitives/json-path.test.js +103 -0
  380. package/lib/vendor/blamejs/test/layer-0-primitives/json-schema.test.js +214 -0
  381. package/lib/vendor/blamejs/test/layer-0-primitives/jwk.test.js +41 -0
  382. package/lib/vendor/blamejs/test/layer-0-primitives/jwt-external.test.js +276 -0
  383. package/lib/vendor/blamejs/test/layer-0-primitives/keychain.test.js +0 -0
  384. package/lib/vendor/blamejs/test/layer-0-primitives/log-stream.test.js +241 -0
  385. package/lib/vendor/blamejs/test/layer-0-primitives/log.test.js +106 -0
  386. package/lib/vendor/blamejs/test/layer-0-primitives/mail-agent.test.js +441 -0
  387. package/lib/vendor/blamejs/test/layer-0-primitives/mail-auth.test.js +2136 -4
  388. package/lib/vendor/blamejs/test/layer-0-primitives/mail-bimi.test.js +759 -12
  389. package/lib/vendor/blamejs/test/layer-0-primitives/mail-bounce.test.js +811 -1
  390. package/lib/vendor/blamejs/test/layer-0-primitives/mail-crypto-pgp-experimental.test.js +401 -3
  391. package/lib/vendor/blamejs/test/layer-0-primitives/mail-crypto-pgp.test.js +751 -8
  392. package/lib/vendor/blamejs/test/layer-0-primitives/mail-crypto-smime.test.js +864 -0
  393. package/lib/vendor/blamejs/test/layer-0-primitives/mail-crypto.test.js +110 -0
  394. package/lib/vendor/blamejs/test/layer-0-primitives/mail-dav.test.js +830 -1
  395. package/lib/vendor/blamejs/test/layer-0-primitives/mail-deploy.test.js +635 -86
  396. package/lib/vendor/blamejs/test/layer-0-primitives/mail-dkim.test.js +818 -0
  397. package/lib/vendor/blamejs/test/layer-0-primitives/mail-helo.test.js +27 -0
  398. package/lib/vendor/blamejs/test/layer-0-primitives/mail-scan.test.js +199 -0
  399. package/lib/vendor/blamejs/test/layer-0-primitives/mail-send-deliver.test.js +686 -2
  400. package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-imap.test.js +778 -0
  401. package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-jmap.test.js +1438 -0
  402. package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-managesieve.test.js +449 -6
  403. package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-mx.test.js +773 -2
  404. package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-pop3.test.js +623 -3
  405. package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-rate-limit.test.js +55 -0
  406. package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-registry.test.js +13 -0
  407. package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-submission.test.js +877 -1
  408. package/lib/vendor/blamejs/test/layer-0-primitives/mail-sieve.test.js +326 -0
  409. package/lib/vendor/blamejs/test/layer-0-primitives/mail-store-fts.test.js +55 -0
  410. package/lib/vendor/blamejs/test/layer-0-primitives/mail-store.test.js +242 -0
  411. package/lib/vendor/blamejs/test/layer-0-primitives/mail.test.js +1596 -2
  412. package/lib/vendor/blamejs/test/layer-0-primitives/mcp.test.js +440 -4
  413. package/lib/vendor/blamejs/test/layer-0-primitives/metrics-snapshot.test.js +89 -0
  414. package/lib/vendor/blamejs/test/layer-0-primitives/metrics.test.js +1230 -0
  415. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-assetlinks.test.js +113 -0
  416. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-body-parser.test.js +1169 -0
  417. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-bot-disclose.test.js +123 -0
  418. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-cookies.test.js +108 -0
  419. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-gpc.test.js +121 -0
  420. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-headers.test.js +163 -0
  421. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-host-allowlist.test.js +154 -0
  422. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-require-content-type.test.js +127 -0
  423. package/lib/vendor/blamejs/test/layer-0-primitives/{middleware-tus-upload-coverage.test.js → middleware-tus-upload.test.js} +45 -0
  424. package/lib/vendor/blamejs/test/layer-0-primitives/middleware-web-app-manifest.test.js +132 -0
  425. package/lib/vendor/blamejs/test/layer-0-primitives/mtls-ca-crl-fingerprint-only.test.js +92 -0
  426. package/lib/vendor/blamejs/test/layer-0-primitives/network-dns-resolver.test.js +65 -0
  427. package/lib/vendor/blamejs/test/layer-0-primitives/network-dns.test.js +1727 -1
  428. package/lib/vendor/blamejs/test/layer-0-primitives/network-nts.test.js +699 -0
  429. package/lib/vendor/blamejs/test/layer-0-primitives/network-smtp-policy.test.js +1181 -0
  430. package/lib/vendor/blamejs/test/layer-0-primitives/network-tls.test.js +1876 -3
  431. package/lib/vendor/blamejs/test/layer-0-primitives/network.test.js +32 -0
  432. package/lib/vendor/blamejs/test/layer-0-primitives/nonce-store-enforce-replay-nonboolean.test.js +81 -0
  433. package/lib/vendor/blamejs/test/layer-0-primitives/ntp-check.test.js +122 -0
  434. package/lib/vendor/blamejs/test/layer-0-primitives/observability-tracing.test.js +378 -0
  435. package/lib/vendor/blamejs/test/layer-0-primitives/observability.test.js +77 -0
  436. package/lib/vendor/blamejs/test/layer-0-primitives/oid4vci.test.js +1016 -0
  437. package/lib/vendor/blamejs/test/layer-0-primitives/openid-federation.test.js +946 -0
  438. package/lib/vendor/blamejs/test/layer-0-primitives/outbox.test.js +818 -0
  439. package/lib/vendor/blamejs/test/layer-0-primitives/own-property-membership-guards.test.js +109 -0
  440. package/lib/vendor/blamejs/test/layer-0-primitives/parsers-safe-toml.test.js +543 -0
  441. package/lib/vendor/blamejs/test/layer-0-primitives/{parsers-safe-yaml-coverage.test.js → parsers-safe-yaml.test.js} +2 -2
  442. package/lib/vendor/blamejs/test/layer-0-primitives/parsers-standalone.test.js +73 -0
  443. package/lib/vendor/blamejs/test/layer-0-primitives/passkey.test.js +649 -0
  444. package/lib/vendor/blamejs/test/layer-0-primitives/permissions.test.js +524 -0
  445. package/lib/vendor/blamejs/test/layer-0-primitives/pqc-agent-curve.test.js +22 -0
  446. package/lib/vendor/blamejs/test/layer-0-primitives/pubsub.test.js +295 -0
  447. package/lib/vendor/blamejs/test/layer-0-primitives/queue-flow-repeat.test.js +36 -0
  448. package/lib/vendor/blamejs/test/layer-0-primitives/queue.test.js +83 -0
  449. package/lib/vendor/blamejs/test/layer-0-primitives/rate-limit-xff-spoofing.test.js +34 -0
  450. package/lib/vendor/blamejs/test/layer-0-primitives/redact.test.js +1031 -0
  451. package/lib/vendor/blamejs/test/layer-0-primitives/request-helpers.test.js +94 -0
  452. package/lib/vendor/blamejs/test/layer-0-primitives/require-bound-key.test.js +401 -0
  453. package/lib/vendor/blamejs/test/layer-0-primitives/restore-empty-manifest-wipe.test.js +154 -0
  454. package/lib/vendor/blamejs/test/layer-0-primitives/retention.test.js +600 -0
  455. package/lib/vendor/blamejs/test/layer-0-primitives/router-host-path-injection.test.js +231 -0
  456. package/lib/vendor/blamejs/test/layer-0-primitives/router-tls0rtt.test.js +21 -0
  457. package/lib/vendor/blamejs/test/layer-0-primitives/router.test.js +1277 -0
  458. package/lib/vendor/blamejs/test/layer-0-primitives/safe-async.test.js +133 -0
  459. package/lib/vendor/blamejs/test/layer-0-primitives/safe-buffer-linear-scans.test.js +14 -0
  460. package/lib/vendor/blamejs/test/layer-0-primitives/safe-buffer.test.js +80 -0
  461. package/lib/vendor/blamejs/test/layer-0-primitives/safe-decompress.test.js +28 -0
  462. package/lib/vendor/blamejs/test/layer-0-primitives/safe-dns.test.js +245 -0
  463. package/lib/vendor/blamejs/test/layer-0-primitives/safe-ical.test.js +32 -0
  464. package/lib/vendor/blamejs/test/layer-0-primitives/safe-ini.test.js +376 -0
  465. package/lib/vendor/blamejs/test/layer-0-primitives/safe-json.test.js +175 -0
  466. package/lib/vendor/blamejs/test/layer-0-primitives/safe-mime.test.js +518 -0
  467. package/lib/vendor/blamejs/test/layer-0-primitives/safe-object.test.js +62 -0
  468. package/lib/vendor/blamejs/test/layer-0-primitives/safe-path.test.js +30 -0
  469. package/lib/vendor/blamejs/test/layer-0-primitives/safe-schema.test.js +104 -0
  470. package/lib/vendor/blamejs/test/layer-0-primitives/safe-sql.test.js +142 -0
  471. package/lib/vendor/blamejs/test/layer-0-primitives/safe-url.test.js +112 -0
  472. package/lib/vendor/blamejs/test/layer-0-primitives/safe-vcard.test.js +26 -0
  473. package/lib/vendor/blamejs/test/layer-0-primitives/scheduler.test.js +157 -0
  474. package/lib/vendor/blamejs/test/layer-0-primitives/scim-server.test.js +396 -0
  475. package/lib/vendor/blamejs/test/layer-0-primitives/sd-jwt-vc.test.js +930 -0
  476. package/lib/vendor/blamejs/test/layer-0-primitives/security-assert.test.js +755 -82
  477. package/lib/vendor/blamejs/test/layer-0-primitives/self-update.test.js +1053 -0
  478. package/lib/vendor/blamejs/test/layer-0-primitives/session-device-binding.test.js +200 -0
  479. package/lib/vendor/blamejs/test/layer-0-primitives/session-strict-binding-missing-failclosed.test.js +110 -0
  480. package/lib/vendor/blamejs/test/layer-0-primitives/sigv4-bucket-ops.test.js +636 -0
  481. package/lib/vendor/blamejs/test/layer-0-primitives/sql-offset-without-limit.test.js +94 -0
  482. package/lib/vendor/blamejs/test/layer-0-primitives/sql.test.js +1190 -0
  483. package/lib/vendor/blamejs/test/layer-0-primitives/ssrf-guard.test.js +21 -0
  484. package/lib/vendor/blamejs/test/layer-0-primitives/static.test.js +850 -0
  485. package/lib/vendor/blamejs/test/layer-0-primitives/storage-presigned-url.test.js +146 -0
  486. package/lib/vendor/blamejs/test/layer-0-primitives/storage.test.js +621 -0
  487. package/lib/vendor/blamejs/test/layer-0-primitives/subject.test.js +47 -0
  488. package/lib/vendor/blamejs/test/layer-0-primitives/template.test.js +582 -0
  489. package/lib/vendor/blamejs/test/layer-0-primitives/tenant-quota.test.js +587 -25
  490. package/lib/vendor/blamejs/test/layer-0-primitives/time.test.js +11 -0
  491. package/lib/vendor/blamejs/test/layer-0-primitives/tsa.test.js +524 -63
  492. package/lib/vendor/blamejs/test/layer-0-primitives/uri-template.test.js +27 -0
  493. package/lib/vendor/blamejs/test/layer-0-primitives/vault-rotate.test.js +866 -0
  494. package/lib/vendor/blamejs/test/layer-0-primitives/vault.test.js +74 -0
  495. package/lib/vendor/blamejs/test/layer-0-primitives/vc.test.js +215 -0
  496. package/lib/vendor/blamejs/test/layer-0-primitives/watcher.test.js +550 -0
  497. package/lib/vendor/blamejs/test/layer-0-primitives/webhook-dispatcher.test.js +388 -0
  498. package/lib/vendor/blamejs/test/layer-0-primitives/webhook.test.js +262 -0
  499. package/lib/vendor/blamejs/test/layer-0-primitives/websocket.test.js +1294 -0
  500. package/lib/vendor/blamejs/test/layer-0-primitives/ws-client.test.js +629 -0
  501. package/lib/vendor/blamejs/test/layer-0-primitives/xml-c14n-attr-normalization.test.js +164 -0
  502. package/lib/vendor/blamejs/test/smoke.js +2 -0
  503. package/package.json +1 -1
  504. package/lib/vendor/blamejs/release-notes/v0.16.0.json +0 -44
  505. package/lib/vendor/blamejs/release-notes/v0.16.1.json +0 -36
  506. package/lib/vendor/blamejs/release-notes/v0.16.2.json +0 -71
  507. package/lib/vendor/blamejs/release-notes/v0.16.3.json +0 -71
  508. package/lib/vendor/blamejs/test/layer-0-primitives/acme-coverage.test.js +0 -441
  509. package/lib/vendor/blamejs/test/layer-0-primitives/auth-oauth-coverage.test.js +0 -482
  510. package/lib/vendor/blamejs/test/layer-0-primitives/auth-saml-coverage.test.js +0 -671
  511. package/lib/vendor/blamejs/test/layer-0-primitives/backup-index-coverage.test.js +0 -690
  512. package/lib/vendor/blamejs/test/layer-0-primitives/cli-coverage.test.js +0 -238
  513. package/lib/vendor/blamejs/test/layer-0-primitives/content-credentials-coverage.test.js +0 -319
  514. package/lib/vendor/blamejs/test/layer-0-primitives/keychain-coverage.test.js +0 -0
  515. package/lib/vendor/blamejs/test/layer-0-primitives/mail-auth-coverage.test.js +0 -437
  516. package/lib/vendor/blamejs/test/layer-0-primitives/mcp-coverage.test.js +0 -443
  517. package/lib/vendor/blamejs/test/layer-0-primitives/metrics-coverage.test.js +0 -395
  518. package/lib/vendor/blamejs/test/layer-0-primitives/network-smtp-policy-coverage.test.js +0 -565
  519. package/lib/vendor/blamejs/test/layer-0-primitives/router-coverage.test.js +0 -592
  520. package/lib/vendor/blamejs/test/layer-0-primitives/sql-coverage.test.js +0 -422
  521. package/lib/vendor/blamejs/test/layer-0-primitives/test-coverage.test.js +0 -573
@@ -0,0 +1,340 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
3
+ "use strict";
4
+
5
+ var helpers = require("../helpers");
6
+ var b = helpers.b;
7
+ var check = helpers.check;
8
+
9
+ var BENIGN_REQ = { query: "query GetMe { me { id name } }", operationName: "GetMe" };
10
+
11
+ // Introspection leak — `__schema` in production posture. Strict refuses.
12
+ var INTROSPECT_REQ = {
13
+ query: "query Inspect { __schema { types { name } } }",
14
+ operationName: "Inspect",
15
+ };
16
+
17
+ // Alias-amplification — 9 aliases in one selection-set exceeds strict's
18
+ // maxAliasesPerSelection (8); the breadth-DoS class.
19
+ var ALIAS_BOMB_REQ = {
20
+ query: "{ a:me { id } b:me { id } c:me { id } d:me { id } e:me { id } " +
21
+ "f:me { id } g:me { id } h:me { id } i:me { id } }",
22
+ };
23
+
24
+ // A complete GraphQL string literal whose backslash is itself escaped:
25
+ // double-quote, backslash, backslash, double-quote. `'\\\\'` is a two-char
26
+ // backslash run in JS source, so this is exactly the 4 characters `"\\"`.
27
+ var ESC_BS_STRING = '"' + "\\\\" + '"';
28
+
29
+ function expectThrows(label, fn, codeMatch) {
30
+ var threw = null;
31
+ try { fn(); } catch (e) { threw = e; }
32
+ check(label, !!threw && (threw.code || "") === codeMatch);
33
+ return threw;
34
+ }
35
+
36
+ function hasRule(rv, ruleId) {
37
+ return rv.issues.some(function (i) { return i.ruleId === ruleId; });
38
+ }
39
+
40
+ // Build a query whose real selection-set depth is `levels + 2`, with an early
41
+ // GraphQL string literal ending in an escaped backslash. A scanner that
42
+ // mis-tracks the escaped closing quote stays stuck in-string and ignores every
43
+ // following brace, under-measuring the depth to 1.
44
+ function deepQueryAfterEscapedString(levels) {
45
+ var open = "";
46
+ var close = "";
47
+ for (var i = 0; i < levels; i += 1) { open += "n" + i + " { "; close = " }" + close; }
48
+ return "{ f(a: " + ESC_BS_STRING + ") { " + open + "id" + close + " } }";
49
+ }
50
+
51
+ async function testGate() {
52
+ var gqlGate = b.guardGraphql.gate({ profile: "strict" });
53
+
54
+ // Introspection query → refuse before any schema-resolution work.
55
+ var introspect = await gqlGate.check({ graphqlRequest: INTROSPECT_REQ });
56
+ check("guardGraphql.gate introspection action=refuse", introspect.action === "refuse");
57
+ check("guardGraphql.gate introspection ok=false", introspect.ok === false);
58
+ check("guardGraphql.gate introspection ruleId",
59
+ introspect.issues.some(function (i) { return i.ruleId === "graphql.introspection"; }));
60
+
61
+ // Benign named query → serve.
62
+ var serve = await gqlGate.check({ graphqlRequest: BENIGN_REQ });
63
+ check("guardGraphql.gate benign action=serve", serve.action === "serve");
64
+ check("guardGraphql.gate benign ok=true", serve.ok === true);
65
+
66
+ // Alias bomb → refuse (breadth-amplification DoS).
67
+ var bomb = await gqlGate.check({ graphqlRequest: ALIAS_BOMB_REQ });
68
+ check("guardGraphql.gate alias-bomb action=refuse", bomb.action === "refuse");
69
+ check("guardGraphql.gate alias-bomb ruleId",
70
+ bomb.issues.some(function (i) { return i.ruleId === "graphql.alias-bomb"; }));
71
+
72
+ // No request on ctx → serve (nothing to gate).
73
+ var none = await gqlGate.check({});
74
+ check("guardGraphql.gate no-request action=serve", none.action === "serve");
75
+
76
+ // Gate also reads ctx.gql (alias field) — deep query blinded by an escaped
77
+ // string must still refuse via the gate consumer path, not just validate.
78
+ var viaGql = await gqlGate.check({ gql: { query: deepQueryAfterEscapedString(15) } });
79
+ check("guardGraphql.gate ctx.gql depth-after-string refuse", viaGql.action === "refuse");
80
+ check("guardGraphql.gate ctx.gql depth-after-string ruleId",
81
+ viaGql.issues.some(function (i) { return i.ruleId === "graphql.depth-exceeded"; }));
82
+ }
83
+
84
+ function testSanitize() {
85
+ // Benign request passes through unchanged (bundles aren't repairable, so
86
+ // sanitize is pass-through-or-throw); the returned bundle re-validates clean.
87
+ var clean = b.guardGraphql.sanitize(BENIGN_REQ, { profile: "strict" });
88
+ check("guardGraphql.sanitize benign returns bundle", clean === BENIGN_REQ);
89
+ check("guardGraphql.sanitize benign revalidates ok",
90
+ b.guardGraphql.validate(clean, { profile: "strict" }).ok === true);
91
+
92
+ // Hostile: introspection query REFUSED (thrown), never returned — the leak
93
+ // shape is a refuse-class outcome, not something sanitize patches up.
94
+ var err = expectThrows("guardGraphql.sanitize introspection throws",
95
+ function () { b.guardGraphql.sanitize(INTROSPECT_REQ, { profile: "strict" }); },
96
+ "graphql.introspection");
97
+ check("guardGraphql.sanitize introspection GuardGraphqlError",
98
+ err instanceof b.guardGraphql.GuardGraphqlError);
99
+
100
+ // Hostile: prototype-pollution gadget in a query alias (CVE-2026-32621) —
101
+ // critical, refused at every profile.
102
+ expectThrows("guardGraphql.sanitize proto-poison throws",
103
+ function () {
104
+ b.guardGraphql.sanitize({ query: "query { a:__proto__ { id } }" }, { profile: "strict" });
105
+ },
106
+ "graphql.query-prototype-poison");
107
+ }
108
+
109
+ // ---- RED: escaped-backslash string desync blinds the DoS shape walker ----
110
+ //
111
+ // A complete GraphQL string literal ending in an escaped backslash (`"\\"`)
112
+ // must not blind the depth / alias walker. A scanner that reads the closing
113
+ // quote as escaped stays stuck in-string, ignores every following brace and
114
+ // colon, and under-measures depth to 1 / aliases to 0 — a depth-bomb or
115
+ // alias-bomb then rides through strict validation as shape-clean (fail-open
116
+ // DoS-measurement bypass on VALID GraphQL). These drive the shipped
117
+ // b.guardGraphql.validate consumer path.
118
+ function testStringEvasionDepthBomb() {
119
+ var req = { query: deepQueryAfterEscapedString(15) }; // real depth 17 > strict cap 8
120
+ var rv = b.guardGraphql.validate(req, { profile: "strict" });
121
+ check("depth-after-escaped-string refuses (ok=false)", rv.ok === false);
122
+ check("depth-after-escaped-string fires depth-exceeded",
123
+ hasRule(rv, "graphql.depth-exceeded"));
124
+
125
+ // The benign control: an escaped double-quote INSIDE a string must NOT be
126
+ // mistaken for the terminator, and braces inside the string content must stay
127
+ // ignored. Query text: `{ f(a: "x\"{{{{{{{{{{{{" ) { id } }` — the 12 braces
128
+ // live inside the string, so real depth is 2 (well under the strict cap).
129
+ var benign = { query: '{ f(a: "x\\"' + "{{{{{{{{{{{{" + '" ) { id } }' };
130
+ var rvB = b.guardGraphql.validate(benign, { profile: "strict" });
131
+ check("escaped quote + in-string braces stay shape-clean", rvB.ok === true);
132
+ }
133
+
134
+ function testStringEvasionAliasBomb() {
135
+ // 12 aliases (> strict cap 8) in a selection-set that follows an escaped
136
+ // string literal. Must be measured and refused.
137
+ var aliases = "";
138
+ for (var i = 0; i < 12; i += 1) {
139
+ aliases += String.fromCharCode(97 + i) + ":me { id } ";
140
+ }
141
+ var req = { query: "{ f(a: " + ESC_BS_STRING + ") { " + aliases + " } }" };
142
+ var rv = b.guardGraphql.validate(req, { profile: "strict" });
143
+ check("alias-after-escaped-string refuses (ok=false)", rv.ok === false);
144
+ check("alias-after-escaped-string fires alias-bomb",
145
+ hasRule(rv, "graphql.alias-bomb"));
146
+ }
147
+
148
+ // ---- RED: unbalanced-brace stack desync must not blind the alias walker ----
149
+ //
150
+ // A malformed query with a leading `}` must not desync the per-selection-set
151
+ // alias stack from brace depth. A `depth`-indexed counter that lands on an
152
+ // absent slot (`undefined + 1 === NaN`) poisons every later comparison so an
153
+ // alias-bomb reads as clean. The walker must remain robust on adversarial /
154
+ // syntactically-invalid input.
155
+ function testUnbalancedBraceAliasBomb() {
156
+ var req = { query: "}{ a:m b:m c:m d:m e:m f:m g:m h:m i:m j:m k:m }" }; // 11 aliases > 8
157
+ var rv = b.guardGraphql.validate(req, { profile: "strict" });
158
+ check("unbalanced-brace alias walker stays measured (ok=false)", rv.ok === false);
159
+ check("unbalanced-brace alias-bomb still fires",
160
+ hasRule(rv, "graphql.alias-bomb"));
161
+ }
162
+
163
+ // ---- bad-input / query-missing defensive branches ----
164
+ function testBadInput() {
165
+ var rvNull = b.guardGraphql.validate(null, { profile: "strict" });
166
+ check("bad-input null refuses", rvNull.ok === false);
167
+ check("bad-input null ruleId", hasRule(rvNull, "graphql.bad-input"));
168
+
169
+ var rvNum = b.guardGraphql.validate(5, { profile: "strict" });
170
+ check("bad-input number refuses", rvNum.ok === false);
171
+ check("bad-input number ruleId", hasRule(rvNum, "graphql.bad-input"));
172
+
173
+ var rvEmpty = b.guardGraphql.validate({ query: "" }, { profile: "strict" });
174
+ check("query-missing empty refuses", rvEmpty.ok === false);
175
+ check("query-missing empty ruleId", hasRule(rvEmpty, "graphql.query-missing"));
176
+
177
+ var rvNonStr = b.guardGraphql.validate({ query: 123 }, { profile: "strict" });
178
+ check("query-missing non-string refuses", rvNonStr.ok === false);
179
+ check("query-missing non-string ruleId", hasRule(rvNonStr, "graphql.query-missing"));
180
+ }
181
+
182
+ // ---- byte caps: request / query / variables ----
183
+ function testCaps() {
184
+ // request-cap — total serialized bytes over strict maxBytes (32 KiB).
185
+ var big = {};
186
+ for (var i = 0; i < 5000; i += 1) { big["k" + i] = "v" + i; }
187
+ var rvReq = b.guardGraphql.validate({ query: "{ me { id } }", variables: big },
188
+ { profile: "strict" });
189
+ check("request-cap refuses", rvReq.ok === false);
190
+ check("request-cap ruleId", hasRule(rvReq, "graphql.request-cap"));
191
+
192
+ // query-cap — query bytes over an explicit tiny maxQueryBytes override.
193
+ var rvQ = b.guardGraphql.validate({ query: "{ me { id name } }" },
194
+ { profile: "strict", maxQueryBytes: 4 });
195
+ check("query-cap refuses", rvQ.ok === false);
196
+ check("query-cap ruleId", hasRule(rvQ, "graphql.query-cap"));
197
+
198
+ // variables-cap — variables bytes over an explicit tiny maxVariableBytes.
199
+ var rvV = b.guardGraphql.validate({ query: "{ me { id } }", variables: { a: "xxxxxxxxxx" } },
200
+ { profile: "strict", maxVariableBytes: 4 });
201
+ check("variables-cap refuses", rvV.ok === false);
202
+ check("variables-cap ruleId", hasRule(rvV, "graphql.variables-cap"));
203
+ }
204
+
205
+ // ---- prototype-pollution: variable-key form (CVE-2026-32621) ----
206
+ function testVariableProtoPoison() {
207
+ // JSON.parse installs `__proto__` as an OWN enumerable key (not the
208
+ // prototype slot), the exact deep-merge gadget shape.
209
+ var req = { query: "{ me { id } }", variables: JSON.parse('{"__proto__": {"x": 1}}') };
210
+ var rv = b.guardGraphql.validate(req, { profile: "strict" });
211
+ check("variable-proto-poison refuses", rv.ok === false);
212
+ check("variable-proto-poison critical",
213
+ rv.issues.some(function (i) {
214
+ return i.ruleId === "graphql.variable-prototype-poison" && i.severity === "critical";
215
+ }));
216
+
217
+ // sanitize surfaces the critical ruleId as the thrown error code.
218
+ expectThrows("variable-proto-poison sanitize throws",
219
+ function () { b.guardGraphql.sanitize(req, { profile: "strict" }); },
220
+ "graphql.variable-prototype-poison");
221
+ }
222
+
223
+ // ---- introspection policy matrix: reject (strict) / audit (balanced) ----
224
+ function testIntrospectionPolicies() {
225
+ // balanced audits: warn-only, still ok=true (audit-only disposition).
226
+ var rvAudit = b.guardGraphql.validate({ query: '{ __type(name:"X"){ name } }' },
227
+ { profile: "balanced" });
228
+ check("introspection balanced audit ok=true", rvAudit.ok === true);
229
+ check("introspection balanced warn severity",
230
+ rvAudit.issues.some(function (i) {
231
+ return i.ruleId === "graphql.introspection" && i.severity === "warn";
232
+ }));
233
+
234
+ // permissive allows outright — no introspection issue at all.
235
+ var rvAllow = b.guardGraphql.validate({ query: "{ __schema { types { name } } }" },
236
+ { profile: "permissive" });
237
+ check("introspection permissive no issue", !hasRule(rvAllow, "graphql.introspection"));
238
+ }
239
+
240
+ // ---- persisted-query allowlist (require) ----
241
+ function testPersistedQuery() {
242
+ var rvMissing = b.guardGraphql.validate({ query: "{ me { id } }" },
243
+ { profile: "strict", persistedQueryPolicy: "require" });
244
+ check("persisted-query missing refuses", rvMissing.ok === false);
245
+ check("persisted-query missing ruleId", hasRule(rvMissing, "graphql.persisted-query-missing"));
246
+
247
+ var rvPresent = b.guardGraphql.validate(
248
+ { query: "{ me { id } }", extensions: { persistedQuery: { sha256Hash: "abc" } } },
249
+ { profile: "strict", persistedQueryPolicy: "require" });
250
+ check("persisted-query present ok=true", rvPresent.ok === true);
251
+ }
252
+
253
+ // ---- operation-name allowlist ----
254
+ function testOperationAllowlist() {
255
+ var rvDenied = b.guardGraphql.validate(
256
+ { query: "{ me { id } }", operationName: "Evil" },
257
+ { profile: "strict", allowedOperations: ["GetMe"], operationNamePolicy: "reject" });
258
+ check("operation-not-allowed refuses", rvDenied.ok === false);
259
+ check("operation-not-allowed ruleId", hasRule(rvDenied, "graphql.operation-not-allowed"));
260
+
261
+ var rvAllowed = b.guardGraphql.validate(
262
+ { query: "{ me { id } }", operationName: "GetMe" },
263
+ { profile: "strict", allowedOperations: ["GetMe"], operationNamePolicy: "reject" });
264
+ check("operation allowed ok=true", rvAllowed.ok === true);
265
+
266
+ // audit disposition: a denied op under `audit` warns but does not refuse.
267
+ var rvAudit = b.guardGraphql.validate(
268
+ { query: "{ me { id } }", operationName: "Evil" },
269
+ { profile: "strict", allowedOperations: ["GetMe"], operationNamePolicy: "audit" });
270
+ check("operation-not-allowed audit ok=true", rvAudit.ok === true);
271
+ check("operation-not-allowed audit warn",
272
+ rvAudit.issues.some(function (i) {
273
+ return i.ruleId === "graphql.operation-not-allowed" && i.severity === "warn";
274
+ }));
275
+ }
276
+
277
+ // ---- variable-shape type-confusion ----
278
+ function testVariableTypeConfusion() {
279
+ var rvReject = b.guardGraphql.validate(
280
+ { query: "{ me { id } }", variables: { id: "5" } },
281
+ { profile: "strict", variableShapes: { id: "number" }, variableShapePolicy: "reject" });
282
+ check("variable-type-confusion refuses", rvReject.ok === false);
283
+ check("variable-type-confusion ruleId", hasRule(rvReject, "graphql.variable-type-confusion"));
284
+
285
+ // Matching type → clean; an undefined declared var is skipped (no false hit).
286
+ var rvOk = b.guardGraphql.validate(
287
+ { query: "{ me { id } }", variables: { id: 5 } },
288
+ { profile: "strict", variableShapes: { id: "number", other: "string" },
289
+ variableShapePolicy: "reject" });
290
+ check("variable-shape matching type ok=true", rvOk.ok === true);
291
+ }
292
+
293
+ // ---- batch defense: reject / audit-over-limit / per-entry recursion ----
294
+ function testBatch() {
295
+ // strict refuses any batch outright and short-circuits.
296
+ var rvReject = b.guardGraphql.validate(
297
+ [ { query: "{ me { id } }" }, { query: "{ me { id } }" } ], { profile: "strict" });
298
+ check("batch reject strict refuses", rvReject.ok === false);
299
+ check("batch reject strict ruleId", hasRule(rvReject, "graphql.batch-size"));
300
+
301
+ // balanced audits an over-limit batch (12 > cap 10): warn-only, ok=true.
302
+ var batch = [];
303
+ for (var i = 0; i < 12; i += 1) { batch.push({ query: "{ me { id } }" }); }
304
+ var rvAudit = b.guardGraphql.validate(batch, { profile: "balanced" });
305
+ check("batch over-limit balanced ok=true", rvAudit.ok === true);
306
+ check("batch over-limit balanced warn",
307
+ rvAudit.issues.some(function (i) {
308
+ return i.ruleId === "graphql.batch-size" && i.severity === "warn";
309
+ }));
310
+
311
+ // per-entry recursion prefixes the sub-issue snippet with the batch index.
312
+ var rvSub = b.guardGraphql.validate(
313
+ [ { query: "query Inspect { __schema { types { name } } }" } ], { profile: "balanced" });
314
+ check("batch per-entry recursion surfaces sub-issue",
315
+ hasRule(rvSub, "graphql.introspection"));
316
+ check("batch per-entry snippet is index-prefixed",
317
+ rvSub.issues.some(function (i) { return /^\[batch\[0\]\]/.test(i.snippet); }));
318
+ }
319
+
320
+ async function run() {
321
+ await testGate();
322
+ testSanitize();
323
+ testStringEvasionDepthBomb();
324
+ testStringEvasionAliasBomb();
325
+ testUnbalancedBraceAliasBomb();
326
+ testBadInput();
327
+ testCaps();
328
+ testVariableProtoPoison();
329
+ testIntrospectionPolicies();
330
+ testPersistedQuery();
331
+ testOperationAllowlist();
332
+ testVariableTypeConfusion();
333
+ testBatch();
334
+ }
335
+
336
+ module.exports = { run: run };
337
+ if (require.main === module) {
338
+ run().then(function () { console.log("OK"); })
339
+ .catch(function (e) { console.error(e); process.exit(1); });
340
+ }
@@ -134,6 +134,24 @@ function testGuardHtmlUrlSchemes() {
134
134
  check("no-semicolon entity javascript: detected",
135
135
  rvNoSemi.issues.some(function (issue) { return issue.kind === "dangerous-url-scheme"; }));
136
136
 
137
+ // Whitespace/entity-hidden scheme: a browser removes tab/lf/cr from a URL and
138
+ // trims a leading/trailing C0-control-or-space run before resolving the scheme,
139
+ // so an entity tab (`java&#9;script:` / `java&Tab;`) and an entity-encoded
140
+ // leading space (`&#32;javascript:`) all navigate as javascript:. A scheme
141
+ // extractor that strips only C0/zero-width lets these read as scheme-less.
142
+ var schemeWs = [
143
+ ["entity tab &#9;", "java&#9;script:alert(1)"],
144
+ ["named &Tab;", "java&Tab;script:alert(1)"],
145
+ ["entity space &#32;", "&#32;javascript:alert(1)"],
146
+ ["entity space &#x20;", "&#x20;javascript:alert(1)"],
147
+ ];
148
+ for (var w = 0; w < schemeWs.length; w++) {
149
+ var rvW = b.guardHtml.validate('<a href="' + schemeWs[w][1] + '">x</a>',
150
+ { profile: "balanced" });
151
+ check("whitespace/entity-hidden scheme (" + schemeWs[w][0] + ") detected",
152
+ rvW.issues.some(function (issue) { return issue.kind === "dangerous-url-scheme"; }));
153
+ }
154
+
137
155
  // Image-context data URL allowed under balanced when allowImageData true.
138
156
  var rvImg = b.guardHtml.validate(
139
157
  '<img src="data:image/png;base64,iVBORw0KG" alt="x">',
@@ -154,6 +172,17 @@ function testGuardHtmlCssInjection() {
154
172
  'style="-moz-binding:url(x.xml)"',
155
173
  'style="background:url(javascript:alert(1))"',
156
174
  'style="@import url(evil.css)"',
175
+ // Entity-encoded CSS: a style attribute is character-reference-decoded before
176
+ // the CSS parser sees it, so `ex&#x70;ression(` reaches CSS as `expression(`.
177
+ // Matching the raw bytes lets these bypass -> fail-open. Match the decoded value.
178
+ 'style="width:ex&#x70;ression(alert(1))"',
179
+ 'style="background:url(&#x6A;avascript:alert(1))"',
180
+ 'style="behavior&colon;url(x.htc)"',
181
+ // Whitespace-hidden scheme inside url(): a browser strips tab/lf/cr from a URL
182
+ // before resolving its scheme, so url(java<TAB>script:) navigates as
183
+ // javascript:. The decoded CSS value must also fold that whitespace.
184
+ 'style="background:url(java&Tab;script:alert(1))"',
185
+ 'style="background:url(java&#9;script:alert(1))"',
157
186
  ];
158
187
  for (var i = 0; i < payloads.length; i++) {
159
188
  var rv = b.guardHtml.validate("<div " + payloads[i] + ">x</div>",
@@ -80,11 +80,39 @@ function testPermissive() {
80
80
  "idempotency-key/control-char");
81
81
  }
82
82
 
83
+ function testProtoKeyProfileRejected() {
84
+ // A prototype-member name as the profile must be refused, not resolved to an
85
+ // inherited member ("constructor" -> Object.prototype.constructor,
86
+ // "__proto__" -> Object.prototype). The makeProfileResolver own-property
87
+ // guard rejects it; a bare `profiles[name]` bracket read would treat the
88
+ // inherited member as a known profile and run the gate under it (fail-open).
89
+ expectRefused("refuses prototype-key profile 'constructor'",
90
+ function () { b.guardIdempotencyKey.validate("k", { profile: "constructor" }); },
91
+ "idempotency-key/bad-profile");
92
+ expectRefused("refuses prototype-key profile '__proto__'",
93
+ function () { b.guardIdempotencyKey.validate("k", { profile: "__proto__" }); },
94
+ "idempotency-key/bad-profile");
95
+ // A prototype-member name as the posture must not resolve to an inherited
96
+ // member either. The resolver's own-property guard skips the unknown posture
97
+ // and falls back to the default profile, validating cleanly — a bare
98
+ // `postures[name]` read would return a Function and blow up on `.maxBytes`.
99
+ var postureThrew = null;
100
+ try { b.guardIdempotencyKey.validate("k", { posture: "constructor" }); }
101
+ catch (e) { postureThrew = e; }
102
+ check("prototype-key posture does not fail-open", postureThrew === null);
103
+ // A valid profile still resolves and validates.
104
+ var validThrew = null;
105
+ try { b.guardIdempotencyKey.validate("k", { profile: "strict" }); }
106
+ catch (e) { validThrew = e; }
107
+ check("valid profile still resolves", validThrew === null);
108
+ }
109
+
83
110
  async function run() {
84
111
  testSurface();
85
112
  testValid();
86
113
  testRefuses();
87
114
  testPermissive();
115
+ testProtoKeyProfileRejected();
88
116
  }
89
117
 
90
118
  module.exports = { run: run };