@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
@@ -214,7 +214,582 @@ function testOidTableShape() {
214
214
  b.cms.OID.kemri === "1.2.840.113549.1.9.16.13.3");
215
215
  }
216
216
 
217
+ var SIGNED_DATA_OID = "1.2.840.113549.1.7.2";
218
+
219
+ function _wrapContentInfo(oidStr, innerDer) {
220
+ // Build a ContentInfo SEQUENCE { contentType OID, [0] EXPLICIT innerDer }
221
+ // directly so we can hand-craft SignedData bodies that the encoder would
222
+ // never emit — driving parseSignedData's structural-refusal branches.
223
+ return asn1.writeNode(0x30, Buffer.concat([
224
+ asn1.writeOid(oidStr),
225
+ asn1.writeContextExplicit(0, innerDer),
226
+ ]));
227
+ }
228
+
229
+ // ---- encodeSignedData entry-point / opts validation --------------------
230
+
231
+ function testEncodeSignedDataRefusesMissingOpts() {
232
+ var threw = null;
233
+ try { b.cms.encodeSignedData(); }
234
+ catch (e) { threw = e.code; }
235
+ check("encodeSignedData() with no opts refused with cms/bad-opts",
236
+ threw === "cms/bad-opts");
237
+ var threw2 = null;
238
+ try { b.cms.encodeSignedData("nope"); }
239
+ catch (e) { threw2 = e.code; }
240
+ check("encodeSignedData(non-object) refused with cms/bad-opts",
241
+ threw2 === "cms/bad-opts");
242
+ }
243
+
244
+ function testEncodeSignedDataRefusesNonBufferEncap() {
245
+ var kp = pqcSoftware.ml_dsa_65.keygen();
246
+ var threw = null;
247
+ try {
248
+ b.cms.encodeSignedData({
249
+ encapContent: "not a buffer",
250
+ signers: [{ certificate: _minimalCertDer(), secretKey: kp.secretKey, sigAlg: "ML-DSA-65" }],
251
+ });
252
+ } catch (e) { threw = e.code; }
253
+ check("encodeSignedData with non-Buffer encapContent refused with cms/bad-encap",
254
+ threw === "cms/bad-encap");
255
+ }
256
+
257
+ function testEncodeSignedDataRefusesNonObjectSigner() {
258
+ var threw = null;
259
+ try {
260
+ b.cms.encodeSignedData({ encapContent: Buffer.from("p"), signers: [null] });
261
+ } catch (e) { threw = e.code; }
262
+ check("encodeSignedData with a non-object signer refused with cms/bad-signer",
263
+ threw === "cms/bad-signer");
264
+ }
265
+
266
+ function testEncodeSignedDataRefusesSignerWithoutCert() {
267
+ var kp = pqcSoftware.ml_dsa_65.keygen();
268
+ var threw = null;
269
+ try {
270
+ b.cms.encodeSignedData({
271
+ encapContent: Buffer.from("p"),
272
+ signers: [{ secretKey: kp.secretKey, sigAlg: "ML-DSA-65" }],
273
+ });
274
+ } catch (e) { threw = e.code; }
275
+ check("signer missing certificate Buffer refused with cms/bad-signer-cert",
276
+ threw === "cms/bad-signer-cert");
277
+ }
278
+
279
+ function testEncodeSignedDataRefusesNonUint8SecretKey() {
280
+ var threw = null;
281
+ try {
282
+ b.cms.encodeSignedData({
283
+ encapContent: Buffer.from("p"),
284
+ signers: [{ certificate: _minimalCertDer(), secretKey: [1, 2, 3], sigAlg: "ML-DSA-65" }],
285
+ });
286
+ } catch (e) { threw = e.code; }
287
+ check("signer.secretKey not a Uint8Array refused with cms/bad-signer-key",
288
+ threw === "cms/bad-signer-key");
289
+ }
290
+
291
+ function testEncodeSignedDataRefusesNonBufferCertificate() {
292
+ var kp = pqcSoftware.ml_dsa_65.keygen();
293
+ var threw = null;
294
+ try {
295
+ b.cms.encodeSignedData({
296
+ encapContent: Buffer.from("p"),
297
+ certificates: ["not a buffer"],
298
+ signers: [{ certificate: _minimalCertDer(), secretKey: kp.secretKey, sigAlg: "ML-DSA-65" }],
299
+ });
300
+ } catch (e) { threw = e.code; }
301
+ check("non-Buffer certificates[] entry refused with cms/bad-cert",
302
+ threw === "cms/bad-cert");
303
+ }
304
+
305
+ function testEncodeSignedDataSignFailsOnShortKey() {
306
+ // A Uint8Array that passes the type gate but is the wrong length makes
307
+ // the noble ML-DSA signer throw — the module must surface cms/sign-failed
308
+ // rather than leaking the raw noble error.
309
+ var threw = null;
310
+ try {
311
+ b.cms.encodeSignedData({
312
+ encapContent: Buffer.from("p"),
313
+ signers: [{ certificate: _minimalCertDer(), secretKey: new Uint8Array(5), sigAlg: "ML-DSA-65" }],
314
+ });
315
+ } catch (e) { threw = e.code; }
316
+ check("wrong-length secretKey surfaces cms/sign-failed",
317
+ threw === "cms/sign-failed");
318
+ }
319
+
320
+ function testEncodeSignedDataDetachedOmitsContent() {
321
+ var kp = pqcSoftware.ml_dsa_65.keygen();
322
+ var cert = _minimalCertDer();
323
+ var sd = b.cms.encodeSignedData({
324
+ encapContent: Buffer.from("detached payload"),
325
+ detached: true,
326
+ signers: [{ certificate: cert, secretKey: kp.secretKey, sigAlg: "ML-DSA-65" }],
327
+ });
328
+ var parsed = b.cms.parseSignedData(sd);
329
+ check("detached SignedData omits eContent (null)",
330
+ parsed.encapContent.eContent === null);
331
+ }
332
+
333
+ function testEncodeSignedDataGeneralizedTimeBranch() {
334
+ // signingTime past 2049 forces the GeneralizedTime encode branch in
335
+ // _encodeTime instead of UTCTime — the roundtrip must still decode.
336
+ var kp = pqcSoftware.ml_dsa_65.keygen();
337
+ var cert = _minimalCertDer();
338
+ var sd = b.cms.encodeSignedData({
339
+ encapContent: Buffer.from("future-dated"),
340
+ signers: [{
341
+ certificate: cert, secretKey: kp.secretKey, sigAlg: "ML-DSA-65",
342
+ signingTime: new Date(Date.UTC(2050, 0, 1, 0, 0, 0)),
343
+ }],
344
+ });
345
+ check("GeneralizedTime-dated SignedData decodes to signedData OID",
346
+ b.cms.decode(sd).contentType === SIGNED_DATA_OID);
347
+ }
348
+
349
+ // ---- _issuerAndSerialNumber malformed-certificate branches -------------
350
+
351
+ function _encodeWithCert(certBuf) {
352
+ var kp = pqcSoftware.ml_dsa_65.keygen();
353
+ return b.cms.encodeSignedData({
354
+ encapContent: Buffer.from("p"),
355
+ signers: [{ certificate: certBuf, secretKey: kp.secretKey, sigAlg: "ML-DSA-65" }],
356
+ });
357
+ }
358
+
359
+ function testCertNonSequenceRefused() {
360
+ var threw = null;
361
+ try { _encodeWithCert(Buffer.from([0x02, 0x01, 0x05])); } // INTEGER, not SEQUENCE
362
+ catch (e) { threw = e.code; }
363
+ check("non-SEQUENCE certificate refused with cms/bad-cert", threw === "cms/bad-cert");
364
+ }
365
+
366
+ function testCertMissingTbsRefused() {
367
+ var threw = null;
368
+ try { _encodeWithCert(asn1.writeNode(0x30, Buffer.alloc(0))); } // empty SEQUENCE
369
+ catch (e) { threw = e.code; }
370
+ check("certificate with no tbsCertificate refused with cms/bad-cert",
371
+ threw === "cms/bad-cert");
372
+ }
373
+
374
+ function testCertMissingSerialRefused() {
375
+ // tbsCertificate whose first element is an OID, not the serialNumber INTEGER.
376
+ var tbs = asn1.writeNode(0x30, asn1.writeOid("2.5.4.3"));
377
+ var cert = asn1.writeNode(0x30, Buffer.concat([tbs, tbs]));
378
+ var threw = null;
379
+ try { _encodeWithCert(cert); }
380
+ catch (e) { threw = e.code; }
381
+ check("tbsCertificate with no serialNumber refused with cms/bad-cert",
382
+ threw === "cms/bad-cert");
383
+ }
384
+
385
+ function testCertMissingSignatureAlgIdRefused() {
386
+ var serial = asn1.writeInteger(Buffer.from([0x01]));
387
+ var tbs = asn1.writeNode(0x30, serial); // serial only, no signature AlgId
388
+ var cert = asn1.writeNode(0x30, tbs);
389
+ var threw = null;
390
+ try { _encodeWithCert(cert); }
391
+ catch (e) { threw = e.code; }
392
+ check("tbsCertificate with no signature AlgorithmIdentifier refused with cms/bad-cert",
393
+ threw === "cms/bad-cert");
394
+ }
395
+
396
+ function testCertMissingIssuerRefused() {
397
+ var serial = asn1.writeInteger(Buffer.from([0x01]));
398
+ var sigAlg = asn1.writeNode(0x30, asn1.writeOid("2.16.840.1.101.3.4.3.18"));
399
+ var tbs = asn1.writeNode(0x30, Buffer.concat([serial, sigAlg])); // no issuer
400
+ var cert = asn1.writeNode(0x30, tbs);
401
+ var threw = null;
402
+ try { _encodeWithCert(cert); }
403
+ catch (e) { threw = e.code; }
404
+ check("tbsCertificate with no issuer Name refused with cms/bad-cert",
405
+ threw === "cms/bad-cert");
406
+ }
407
+
408
+ function testCertWithVersionTagAccepted() {
409
+ // tbsCertificate with a leading [0] EXPLICIT version — the idx-skip
410
+ // branch in _issuerAndSerialNumber must consume it and still resolve
411
+ // serial + issuer.
412
+ var version = asn1.writeContextExplicit(0, asn1.writeInteger(Buffer.from([0x02])));
413
+ var serial = asn1.writeInteger(Buffer.from([0x0a]));
414
+ var sigAlg = asn1.writeNode(0x30, asn1.writeOid("2.16.840.1.101.3.4.3.18"));
415
+ var issuer = asn1.writeNode(0x30, asn1.writeOid("2.5.4.3"));
416
+ var tbs = asn1.writeNode(0x30, Buffer.concat([version, serial, sigAlg, issuer]));
417
+ var outerSig = asn1.writeNode(0x30, asn1.writeOid("2.16.840.1.101.3.4.3.18"));
418
+ var sigVal = asn1.writeNode(0x03, Buffer.from([0x00, 0x00, 0x01]));
419
+ var cert = asn1.writeNode(0x30, Buffer.concat([tbs, outerSig, sigVal]));
420
+ var sd = _encodeWithCert(cert);
421
+ check("certificate carrying a [0] version tag encodes SignedData",
422
+ b.cms.decode(sd).contentType === SIGNED_DATA_OID);
423
+ }
424
+
425
+ // ---- encodeEnvelopedData entry-point / recipient validation ------------
426
+
427
+ function testEncodeEnvelopedDataRefusesMissingOpts() {
428
+ var threw = null;
429
+ try { b.cms.encodeEnvelopedData(); }
430
+ catch (e) { threw = e.code; }
431
+ check("encodeEnvelopedData() with no opts refused with cms/bad-opts",
432
+ threw === "cms/bad-opts");
433
+ }
434
+
435
+ function testEncodeEnvelopedDataRefusesNonBufferPlaintext() {
436
+ var kp = pqcSoftware.ml_kem_1024.keygen();
437
+ var threw = null;
438
+ try {
439
+ b.cms.encodeEnvelopedData({
440
+ plaintext: "nope",
441
+ recipients: [{ type: "kem-mlkem-1024", publicKey: kp.publicKey, recipientId: Buffer.from([1]) }],
442
+ });
443
+ } catch (e) { threw = e.code; }
444
+ check("encodeEnvelopedData with non-Buffer plaintext refused with cms/bad-plaintext",
445
+ threw === "cms/bad-plaintext");
446
+ }
447
+
448
+ function testEncodeEnvelopedDataRefusesNonObjectRecipient() {
449
+ var threw = null;
450
+ try {
451
+ b.cms.encodeEnvelopedData({ plaintext: Buffer.from("p"), recipients: [null] });
452
+ } catch (e) { threw = e.code; }
453
+ check("non-object recipient refused with cms/bad-recipient",
454
+ threw === "cms/bad-recipient");
455
+ }
456
+
457
+ function testEncodeEnvelopedDataRefusesNonUint8PublicKey() {
458
+ var threw = null;
459
+ try {
460
+ b.cms.encodeEnvelopedData({
461
+ plaintext: Buffer.from("p"),
462
+ recipients: [{ type: "kem-mlkem-1024", publicKey: [1, 2, 3], recipientId: Buffer.from([1]) }],
463
+ });
464
+ } catch (e) { threw = e.code; }
465
+ check("recipient.publicKey not a Uint8Array refused with cms/bad-recipient-key",
466
+ threw === "cms/bad-recipient-key");
467
+ }
468
+
469
+ function testEncodeEnvelopedDataRefusesNonBufferRecipientId() {
470
+ var kp = pqcSoftware.ml_kem_1024.keygen();
471
+ var threw = null;
472
+ try {
473
+ b.cms.encodeEnvelopedData({
474
+ plaintext: Buffer.from("p"),
475
+ recipients: [{ type: "kem-mlkem-1024", publicKey: kp.publicKey, recipientId: "not-a-buffer" }],
476
+ });
477
+ } catch (e) { threw = e.code; }
478
+ check("recipient.recipientId not a Buffer refused with cms/bad-recipient-id",
479
+ threw === "cms/bad-recipient-id");
480
+ }
481
+
482
+ function testEncodeEnvelopedDataKemEncapFailsOnShortKey() {
483
+ // A Uint8Array of the wrong length passes the type gate but makes the
484
+ // noble ML-KEM encapsulate throw — surfaced as cms/kem-encap-failed.
485
+ var threw = null;
486
+ try {
487
+ b.cms.encodeEnvelopedData({
488
+ plaintext: Buffer.from("p"),
489
+ recipients: [{ type: "kem-mlkem-1024", publicKey: new Uint8Array(8), recipientId: Buffer.from([1]) }],
490
+ });
491
+ } catch (e) { threw = e.code; }
492
+ check("wrong-length recipient publicKey surfaces cms/kem-encap-failed",
493
+ threw === "cms/kem-encap-failed");
494
+ }
495
+
496
+ // ---- decode() malformed-DER branches -----------------------------------
497
+
498
+ function testDecodeRefusesBadAsn1() {
499
+ // SEQUENCE with a long-form length that overruns the buffer — readNode
500
+ // itself throws, surfaced as cms/bad-asn1.
501
+ var threw = null;
502
+ try { b.cms.decode(Buffer.from([0x30, 0x82, 0xff, 0xff])); }
503
+ catch (e) { threw = e.code; }
504
+ check("un-parseable ASN.1 refused with cms/bad-asn1", threw === "cms/bad-asn1");
505
+ }
506
+
507
+ function testDecodeRefusesTruncatedBody() {
508
+ // Outer SEQUENCE parses, but its body is a truncated INTEGER (claims 5
509
+ // content bytes, has 1) so readSequence throws → cms/bad-content-info.
510
+ var threw = null;
511
+ try { b.cms.decode(Buffer.from([0x30, 0x03, 0x02, 0x05, 0x01])); }
512
+ catch (e) { threw = e.code; }
513
+ check("truncated ContentInfo body refused with cms/bad-content-info",
514
+ threw === "cms/bad-content-info");
515
+ }
516
+
517
+ function testDecodeRefusesTooFewChildren() {
518
+ // A SEQUENCE with a single child (only the OID, no [0] content).
519
+ var ci = asn1.writeNode(0x30, asn1.writeOid("1.2.840.113549.1.7.1"));
520
+ var threw = null;
521
+ try { b.cms.decode(ci); }
522
+ catch (e) { threw = e.code; }
523
+ check("ContentInfo with <2 children refused with cms/bad-content-info",
524
+ threw === "cms/bad-content-info");
525
+ }
526
+
527
+ function testDecodeRefusesNonOidContentType() {
528
+ // First child is an INTEGER where the contentType OID is required.
529
+ var ci = asn1.writeNode(0x30, Buffer.concat([
530
+ asn1.writeInteger(Buffer.from([0x05])),
531
+ asn1.writeContextExplicit(0, asn1.writeInteger(Buffer.from([0x01]))),
532
+ ]));
533
+ var threw = null;
534
+ try { b.cms.decode(ci); }
535
+ catch (e) { threw = e.code; }
536
+ check("non-OID contentType refused with cms/bad-oid", threw === "cms/bad-oid");
537
+ }
538
+
539
+ function testDecodeRefusesNonExplicitContent() {
540
+ // Second child is a bare INTEGER, not the required [0] EXPLICIT wrapper.
541
+ var ci = asn1.writeNode(0x30, Buffer.concat([
542
+ asn1.writeOid("1.2.840.113549.1.7.1"),
543
+ asn1.writeInteger(Buffer.from([0x01])),
544
+ ]));
545
+ var threw = null;
546
+ try { b.cms.decode(ci); }
547
+ catch (e) { threw = e.code; }
548
+ check("missing [0] EXPLICIT content refused with cms/bad-explicit-content",
549
+ threw === "cms/bad-explicit-content");
550
+ }
551
+
552
+ // ---- parseSignedData structural-refusal branches -----------------------
553
+
554
+ function testParseSignedDataRefusesNonSignedDataOid() {
555
+ // A valid EnvelopedData ContentInfo carries the wrong contentType.
556
+ var kp = pqcSoftware.ml_kem_1024.keygen();
557
+ var ed = b.cms.encodeEnvelopedData({
558
+ plaintext: Buffer.from("secret"),
559
+ recipients: [{ type: "kem-mlkem-1024", publicKey: kp.publicKey, recipientId: Buffer.from([1]) }],
560
+ });
561
+ var threw = null;
562
+ try { b.cms.parseSignedData(ed); }
563
+ catch (e) { threw = e.code; }
564
+ check("EnvelopedData passed to parseSignedData refused with cms/not-signed-data",
565
+ threw === "cms/not-signed-data");
566
+ }
567
+
568
+ function testParseSignedDataRefusesNonSequenceInner() {
569
+ // SignedData OID but the [0] EXPLICIT content is an INTEGER, not a SEQUENCE.
570
+ var ci = _wrapContentInfo(SIGNED_DATA_OID, asn1.writeInteger(Buffer.from([0x01])));
571
+ var threw = null;
572
+ try { b.cms.parseSignedData(ci); }
573
+ catch (e) { threw = e.code; }
574
+ check("non-SEQUENCE SignedData body refused with cms/bad-signed-data",
575
+ threw === "cms/bad-signed-data");
576
+ }
577
+
578
+ function testParseSignedDataRefusesTooFewChildren() {
579
+ var inner = asn1.writeNode(0x30, Buffer.concat([
580
+ asn1.writeInteger(Buffer.from([0x01])),
581
+ asn1.writeNode(0x31, Buffer.alloc(0)),
582
+ ]));
583
+ var ci = _wrapContentInfo(SIGNED_DATA_OID, inner);
584
+ var threw = null;
585
+ try { b.cms.parseSignedData(ci); }
586
+ catch (e) { threw = e.code; }
587
+ check("SignedData with <4 children refused with cms/bad-signed-data",
588
+ threw === "cms/bad-signed-data");
589
+ }
590
+
591
+ function testParseSignedDataRefusesNonSetDigestAlgs() {
592
+ // 4 children but digestAlgorithms is an INTEGER, not a SET.
593
+ var algId = asn1.writeNode(0x30, asn1.writeOid("2.16.840.1.101.3.4.2.10"));
594
+ var encap = asn1.writeNode(0x30, asn1.writeOid("1.2.840.113549.1.7.1"));
595
+ var inner = asn1.writeNode(0x30, Buffer.concat([
596
+ asn1.writeInteger(Buffer.from([0x01])),
597
+ asn1.writeInteger(Buffer.from([0x09])), // should be a SET
598
+ encap,
599
+ asn1.writeNode(0x31, algId),
600
+ ]));
601
+ var ci = _wrapContentInfo(SIGNED_DATA_OID, inner);
602
+ var threw = null;
603
+ try { b.cms.parseSignedData(ci); }
604
+ catch (e) { threw = e.code; }
605
+ check("non-SET digestAlgorithms refused with cms/bad-signed-data",
606
+ threw === "cms/bad-signed-data");
607
+ }
608
+
609
+ function testParseSignedDataRefusesBadAlgIdInDigestSet() {
610
+ // digestAlgorithms is a SET whose member is an INTEGER, not an
611
+ // AlgorithmIdentifier SEQUENCE → _readAlgIdOid throws cms/bad-alg-id.
612
+ var digestSet = asn1.writeNode(0x31, asn1.writeInteger(Buffer.from([0x01])));
613
+ var encap = asn1.writeNode(0x30, asn1.writeOid("1.2.840.113549.1.7.1"));
614
+ var inner = asn1.writeNode(0x30, Buffer.concat([
615
+ asn1.writeInteger(Buffer.from([0x01])),
616
+ digestSet,
617
+ encap,
618
+ asn1.writeNode(0x31, Buffer.alloc(0)),
619
+ ]));
620
+ var ci = _wrapContentInfo(SIGNED_DATA_OID, inner);
621
+ var threw = null;
622
+ try { b.cms.parseSignedData(ci); }
623
+ catch (e) { threw = e.code; }
624
+ check("non-SEQUENCE AlgorithmIdentifier in digest SET refused with cms/bad-alg-id",
625
+ threw === "cms/bad-alg-id");
626
+ }
627
+
628
+ function testParseSignedDataRefusesNonSequenceEncapInfo() {
629
+ var digestSet = asn1.writeNode(0x31, asn1.writeNode(0x30, asn1.writeOid("2.16.840.1.101.3.4.2.10")));
630
+ var inner = asn1.writeNode(0x30, Buffer.concat([
631
+ asn1.writeInteger(Buffer.from([0x01])),
632
+ digestSet,
633
+ asn1.writeInteger(Buffer.from([0x07])), // encapContentInfo should be a SEQUENCE
634
+ asn1.writeNode(0x31, Buffer.alloc(0)),
635
+ ]));
636
+ var ci = _wrapContentInfo(SIGNED_DATA_OID, inner);
637
+ var threw = null;
638
+ try { b.cms.parseSignedData(ci); }
639
+ catch (e) { threw = e.code; }
640
+ check("non-SEQUENCE encapContentInfo refused with cms/bad-signed-data",
641
+ threw === "cms/bad-signed-data");
642
+ }
643
+
644
+ function testParseSignedDataRefusesEmptyEncapInfo() {
645
+ // encapContentInfo SEQUENCE is empty → _readEncapContent throws cms/bad-encap.
646
+ var digestSet = asn1.writeNode(0x31, asn1.writeNode(0x30, asn1.writeOid("2.16.840.1.101.3.4.2.10")));
647
+ var inner = asn1.writeNode(0x30, Buffer.concat([
648
+ asn1.writeInteger(Buffer.from([0x01])),
649
+ digestSet,
650
+ asn1.writeNode(0x30, Buffer.alloc(0)), // empty encapContentInfo
651
+ asn1.writeNode(0x31, Buffer.alloc(0)),
652
+ ]));
653
+ var ci = _wrapContentInfo(SIGNED_DATA_OID, inner);
654
+ var threw = null;
655
+ try { b.cms.parseSignedData(ci); }
656
+ catch (e) { threw = e.code; }
657
+ check("empty encapContentInfo refused with cms/bad-encap", threw === "cms/bad-encap");
658
+ }
659
+
660
+ function testParseSignedDataRefusesNonSetSignerInfos() {
661
+ // 4 children, valid digest + encap, but signerInfos slot is an INTEGER.
662
+ var digestSet = asn1.writeNode(0x31, asn1.writeNode(0x30, asn1.writeOid("2.16.840.1.101.3.4.2.10")));
663
+ var encap = asn1.writeNode(0x30, asn1.writeOid("1.2.840.113549.1.7.1"));
664
+ var inner = asn1.writeNode(0x30, Buffer.concat([
665
+ asn1.writeInteger(Buffer.from([0x01])),
666
+ digestSet,
667
+ encap,
668
+ asn1.writeInteger(Buffer.from([0x09])), // signerInfos should be a SET
669
+ ]));
670
+ var ci = _wrapContentInfo(SIGNED_DATA_OID, inner);
671
+ var threw = null;
672
+ try { b.cms.parseSignedData(ci); }
673
+ catch (e) { threw = e.code; }
674
+ check("non-SET signerInfos refused with cms/bad-signed-data",
675
+ threw === "cms/bad-signed-data");
676
+ }
677
+
678
+ function testParseSignedDataWalksCrlsAndCraftedSignerInfo() {
679
+ // Hand-crafted SignedData exercising the certs [0] + crls [1] skip
680
+ // branches and a minimal _readSignerInfo (no signedAttrs) in one walk.
681
+ var digestSet = asn1.writeNode(0x31, asn1.writeNode(0x30, asn1.writeOid("2.16.840.1.101.3.4.2.10")));
682
+ var encap = asn1.writeNode(0x30, asn1.writeOid("1.2.840.113549.1.7.1"));
683
+ var certsBlk = asn1.writeNode(0xa0, _minimalCertDer());
684
+ var crlsBlk = asn1.writeNode(0xa1, asn1.writeNode(0x30, asn1.writeInteger(Buffer.from([0x01]))));
685
+
686
+ var si = asn1.writeNode(0x30, Buffer.concat([
687
+ asn1.writeInteger(Buffer.from([0x01])), // version
688
+ asn1.writeInteger(Buffer.from([0x07])), // sid placeholder
689
+ asn1.writeNode(0x30, asn1.writeOid("2.16.840.1.101.3.4.2.10")), // digestAlgId
690
+ asn1.writeNode(0x30, asn1.writeOid("2.16.840.1.101.3.4.3.18")), // sigAlgId
691
+ asn1.writeOctetString(Buffer.from([0x01, 0x02, 0x03])), // signature
692
+ ]));
693
+ var signerInfos = asn1.writeNode(0x31, si);
694
+
695
+ var inner = asn1.writeNode(0x30, Buffer.concat([
696
+ asn1.writeInteger(Buffer.from([0x01])),
697
+ digestSet,
698
+ encap,
699
+ certsBlk,
700
+ crlsBlk,
701
+ signerInfos,
702
+ ]));
703
+ var parsed = b.cms.parseSignedData(_wrapContentInfo(SIGNED_DATA_OID, inner));
704
+ check("crafted SignedData exposes one signerInfo with the sigAlg OID",
705
+ parsed.signerInfos.length === 1 &&
706
+ parsed.signerInfos[0].sigAlgOid === "2.16.840.1.101.3.4.3.18");
707
+ check("crafted SignedData walks certs [0] into certificates[]",
708
+ parsed.certificates.length === 1);
709
+ check("crafted SignedData signerInfo has null signedAttrsRaw when absent",
710
+ parsed.signerInfos[0].signedAttrsRaw === null);
711
+ }
712
+
713
+ function testParseSignedDataRefusesShortSignerInfo() {
714
+ // signerInfos SET member with <5 children → cms/bad-signer-info.
715
+ var digestSet = asn1.writeNode(0x31, asn1.writeNode(0x30, asn1.writeOid("2.16.840.1.101.3.4.2.10")));
716
+ var encap = asn1.writeNode(0x30, asn1.writeOid("1.2.840.113549.1.7.1"));
717
+ var shortSi = asn1.writeNode(0x30, asn1.writeInteger(Buffer.from([0x01]))); // 1 child only
718
+ var inner = asn1.writeNode(0x30, Buffer.concat([
719
+ asn1.writeInteger(Buffer.from([0x01])),
720
+ digestSet,
721
+ encap,
722
+ asn1.writeNode(0x31, shortSi),
723
+ ]));
724
+ var threw = null;
725
+ try { b.cms.parseSignedData(_wrapContentInfo(SIGNED_DATA_OID, inner)); }
726
+ catch (e) { threw = e.code; }
727
+ check("short SignerInfo refused with cms/bad-signer-info",
728
+ threw === "cms/bad-signer-info");
729
+ }
730
+
731
+ function testParseSignedDataRefusesNonOctetStringSignature() {
732
+ // A 5-child SignerInfo whose signature slot is an INTEGER, not OCTET STRING.
733
+ var digestSet = asn1.writeNode(0x31, asn1.writeNode(0x30, asn1.writeOid("2.16.840.1.101.3.4.2.10")));
734
+ var encap = asn1.writeNode(0x30, asn1.writeOid("1.2.840.113549.1.7.1"));
735
+ var si = asn1.writeNode(0x30, Buffer.concat([
736
+ asn1.writeInteger(Buffer.from([0x01])),
737
+ asn1.writeInteger(Buffer.from([0x07])),
738
+ asn1.writeNode(0x30, asn1.writeOid("2.16.840.1.101.3.4.2.10")),
739
+ asn1.writeNode(0x30, asn1.writeOid("2.16.840.1.101.3.4.3.18")),
740
+ asn1.writeInteger(Buffer.from([0x09])), // signature should be OCTET STRING
741
+ ]));
742
+ var inner = asn1.writeNode(0x30, Buffer.concat([
743
+ asn1.writeInteger(Buffer.from([0x01])),
744
+ digestSet,
745
+ encap,
746
+ asn1.writeNode(0x31, si),
747
+ ]));
748
+ var threw = null;
749
+ try { b.cms.parseSignedData(_wrapContentInfo(SIGNED_DATA_OID, inner)); }
750
+ catch (e) { threw = e.code; }
751
+ check("non-OCTET-STRING signature refused with cms/bad-signer-info",
752
+ threw === "cms/bad-signer-info");
753
+ }
754
+
217
755
  function run() {
756
+ testEncodeSignedDataRefusesMissingOpts();
757
+ testEncodeSignedDataRefusesNonBufferEncap();
758
+ testEncodeSignedDataRefusesNonObjectSigner();
759
+ testEncodeSignedDataRefusesSignerWithoutCert();
760
+ testEncodeSignedDataRefusesNonUint8SecretKey();
761
+ testEncodeSignedDataRefusesNonBufferCertificate();
762
+ testEncodeSignedDataSignFailsOnShortKey();
763
+ testEncodeSignedDataDetachedOmitsContent();
764
+ testEncodeSignedDataGeneralizedTimeBranch();
765
+ testCertNonSequenceRefused();
766
+ testCertMissingTbsRefused();
767
+ testCertMissingSerialRefused();
768
+ testCertMissingSignatureAlgIdRefused();
769
+ testCertMissingIssuerRefused();
770
+ testCertWithVersionTagAccepted();
771
+ testEncodeEnvelopedDataRefusesMissingOpts();
772
+ testEncodeEnvelopedDataRefusesNonBufferPlaintext();
773
+ testEncodeEnvelopedDataRefusesNonObjectRecipient();
774
+ testEncodeEnvelopedDataRefusesNonUint8PublicKey();
775
+ testEncodeEnvelopedDataRefusesNonBufferRecipientId();
776
+ testEncodeEnvelopedDataKemEncapFailsOnShortKey();
777
+ testDecodeRefusesBadAsn1();
778
+ testDecodeRefusesTruncatedBody();
779
+ testDecodeRefusesTooFewChildren();
780
+ testDecodeRefusesNonOidContentType();
781
+ testDecodeRefusesNonExplicitContent();
782
+ testParseSignedDataRefusesNonSignedDataOid();
783
+ testParseSignedDataRefusesNonSequenceInner();
784
+ testParseSignedDataRefusesTooFewChildren();
785
+ testParseSignedDataRefusesNonSetDigestAlgs();
786
+ testParseSignedDataRefusesBadAlgIdInDigestSet();
787
+ testParseSignedDataRefusesNonSequenceEncapInfo();
788
+ testParseSignedDataRefusesEmptyEncapInfo();
789
+ testParseSignedDataRefusesNonSetSignerInfos();
790
+ testParseSignedDataWalksCrlsAndCraftedSignerInfo();
791
+ testParseSignedDataRefusesShortSignerInfo();
792
+ testParseSignedDataRefusesNonOctetStringSignature();
218
793
  testSignedDataRoundtripMlDsa65();
219
794
  testParseSignedDataWalker();
220
795
  testSignedDataRoundtripMlDsa87();