@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
@@ -9,6 +9,40 @@ var helpers = require("../helpers");
9
9
  var b = helpers.b;
10
10
  var check = helpers.check;
11
11
 
12
+ // The client dispatchers (send/get/cancel) reach the peer through the shared
13
+ // lib/http-client module (a module-level lazyRequire inside lib/a2a-tasks.js).
14
+ // The framework's http-client is https-only + SSRF-blocks loopback by default,
15
+ // so a real localhost listener is unreachable through the a2a dispatchers
16
+ // without weakening a security default. Instead we inject a transport stub by
17
+ // swapping http-client's `request` for the duration of one scenario (restored
18
+ // in a finally) — no real network, exercising the REAL _jsonRpc response
19
+ // handling (status classes, JSON parse, envelope validation, rpc-error
20
+ // extraction, audit emission) against controlled peer responses.
21
+ var httpClientMod = require("../../lib/http-client");
22
+
23
+ function withTransport(responder, run) {
24
+ var orig = httpClientMod.request;
25
+ httpClientMod.request = responder;
26
+ return Promise.resolve().then(run).finally(function () {
27
+ httpClientMod.request = orig;
28
+ });
29
+ }
30
+
31
+ // respond(obj, statusCode?, asBuffer?) — build an http-client response stub.
32
+ // `obj` may be a string (sent verbatim, e.g. non-JSON) or an object (JSON
33
+ // serialized). `asBuffer` returns the body as a Buffer to exercise the
34
+ // `rsp.body.toString("utf8")` branch.
35
+ function respond(obj, statusCode, asBuffer) {
36
+ var s = typeof obj === "string" ? obj : JSON.stringify(obj);
37
+ return function () {
38
+ return Promise.resolve({ statusCode: statusCode || 200, body: asBuffer ? Buffer.from(s, "utf8") : s });
39
+ };
40
+ }
41
+
42
+ function rejectTransport(message) {
43
+ return function () { return Promise.reject(new Error(message)); };
44
+ }
45
+
12
46
  function _mockReq(method, contentType, bodyBytes, scopes) {
13
47
  var listeners = {};
14
48
  var req = {
@@ -232,19 +266,386 @@ async function testAgentCardMiddleware() {
232
266
  check("agentCard: POST → 405", res2._statusCode() === 405);
233
267
  }
234
268
 
269
+ // ---- Client dispatcher validation branches (no network) ----
270
+
271
+ async function testClientRefusesBadTaskShapes() {
272
+ function expectCode(label, p, code) {
273
+ return p.then(function () { check(label, false); }, function (e) {
274
+ check(label, (e.code || "") === code);
275
+ });
276
+ }
277
+ await Promise.all([
278
+ // send: task must be a non-null, non-array object.
279
+ expectCode("send: null task", b.a2a.tasks.send({ peerUrl: "https://x", task: null }), "a2a-tasks/bad-task"),
280
+ expectCode("send: array task", b.a2a.tasks.send({ peerUrl: "https://x", task: [] }), "a2a-tasks/bad-task"),
281
+ expectCode("send: string task", b.a2a.tasks.send({ peerUrl: "https://x", task: "x" }), "a2a-tasks/bad-task"),
282
+ // send: task.input must be an object when provided (string / null both refused).
283
+ expectCode("send: string input", b.a2a.tasks.send({ peerUrl: "https://x", task: { skill: "summarize", input: "nope" } }), "a2a-tasks/bad-input"),
284
+ expectCode("send: null input", b.a2a.tasks.send({ peerUrl: "https://x", task: { skill: "summarize", input: null } }), "a2a-tasks/bad-input"),
285
+ // get / cancel: opts required (undefined opts → bad-opts, not a crash).
286
+ expectCode("get: no opts", b.a2a.tasks.get(), "a2a-tasks/bad-opts"),
287
+ expectCode("cancel: no opts", b.a2a.tasks.cancel(), "a2a-tasks/bad-opts"),
288
+ // get: missing taskId → requireNonEmptyString path.
289
+ expectCode("get: missing taskId", b.a2a.tasks.get({ peerUrl: "https://x" }), "a2a-tasks/bad-task-id"),
290
+ // cancel: non-empty but invalid taskId → the regex/length gate (distinct
291
+ // from the empty-string requireNonEmptyString path the existing test drives).
292
+ expectCode("cancel: metachar taskId", b.a2a.tasks.cancel({ peerUrl: "https://x", taskId: "a/b" }), "a2a-tasks/bad-task-id"),
293
+ expectCode("cancel: oversized taskId", b.a2a.tasks.cancel({ peerUrl: "https://x", taskId: "z".repeat(65) }), "a2a-tasks/bad-task-id"),
294
+ ]);
295
+ }
296
+
297
+ // ---- Client dispatcher transport paths (stubbed http-client) ----
298
+
299
+ async function testClientTransportSuccess() {
300
+ // tasks/get: string body → JSON-RPC result envelope unwrapped to .result.
301
+ await withTransport(respond({ jsonrpc: "2.0", id: "x", result: { taskId: "t1", status: "completed" } }), async function () {
302
+ var r = await b.a2a.tasks.get({ peerUrl: "https://peer.example/a2a", taskId: "abc-123" });
303
+ check("client get: result envelope unwrapped", r && r.taskId === "t1" && r.status === "completed");
304
+ });
305
+ // Buffer body + explicit timeoutMs + headers (exercises rsp.body.toString
306
+ // and the provided-timeout / provided-headers branches).
307
+ await withTransport(respond({ jsonrpc: "2.0", id: "x", result: { ok: true } }, 200, true), async function () {
308
+ var r = await b.a2a.tasks.get({ peerUrl: "https://peer.example/a2a", taskId: "abc-123", timeoutMs: 8000, headers: { "X-Trace": "1" } });
309
+ check("client get: Buffer body parsed", r && r.ok === true);
310
+ });
311
+ // tasks/send: explicit timeoutMs + headers + audit:false (skips the ok audit emit).
312
+ await withTransport(respond({ jsonrpc: "2.0", id: "x", result: { taskId: "s1", status: "queued" } }), async function () {
313
+ var r = await b.a2a.tasks.send({
314
+ peerUrl: "https://peer.example/a2a",
315
+ task: { skill: "summarize", input: { url: "https://doc" } },
316
+ timeoutMs: 5000,
317
+ headers: { "X-Sig": "abc" },
318
+ audit: false,
319
+ });
320
+ check("client send: result returned on audit-disabled path", r && r.taskId === "s1" && r.status === "queued");
321
+ });
322
+ // tasks/cancel: explicit timeoutMs + provided headers.
323
+ await withTransport(respond({ jsonrpc: "2.0", id: "x", result: { taskId: "c1", status: "canceled" } }), async function () {
324
+ var r = await b.a2a.tasks.cancel({ peerUrl: "https://peer.example/a2a", taskId: "abc-123", timeoutMs: 9000, headers: { "X-H": "y" } });
325
+ check("client cancel: result envelope unwrapped", r && r.status === "canceled");
326
+ });
327
+ }
328
+
329
+ async function testClientTransportErrors() {
330
+ // Transport failure with audit on (default) → a2a-tasks/transport.
331
+ await withTransport(rejectTransport("ECONNREFUSED"), async function () {
332
+ var caught = null;
333
+ try { await b.a2a.tasks.get({ peerUrl: "https://peer.example/a2a", taskId: "abc-123" }); }
334
+ catch (e) { caught = e; }
335
+ check("client get: transport failure mapped (audit on)", caught && caught.code === "a2a-tasks/transport");
336
+ });
337
+ // Transport failure with audit:false (skips the transport_failed audit emit).
338
+ await withTransport(rejectTransport("ETIMEDOUT"), async function () {
339
+ var caught = null;
340
+ try { await b.a2a.tasks.get({ peerUrl: "https://peer.example/a2a", taskId: "abc-123", audit: false }); }
341
+ catch (e) { caught = e; }
342
+ check("client get: transport failure still throws (audit off)", caught && caught.code === "a2a-tasks/transport");
343
+ });
344
+ // Transport failure rejecting with a NON-Error value (no `.message`) →
345
+ // the `err.message || err` stringify fallback is exercised.
346
+ await withTransport(function () { return Promise.reject("raw-string-failure"); }, async function () {
347
+ var caught = null;
348
+ try { await b.a2a.tasks.get({ peerUrl: "https://peer.example/a2a", taskId: "abc-123" }); }
349
+ catch (e) { caught = e; }
350
+ check("client get: non-Error transport reject stringified",
351
+ caught && caught.code === "a2a-tasks/transport" && /raw-string-failure/.test(caught.message));
352
+ });
353
+ // HTTP non-2xx (>= 300) → a2a-tasks/http-error.
354
+ await withTransport(respond("upstream boom", 500), async function () {
355
+ var caught = null;
356
+ try { await b.a2a.tasks.get({ peerUrl: "https://peer.example/a2a", taskId: "abc-123" }); }
357
+ catch (e) { caught = e; }
358
+ check("client get: HTTP 500 → http-error", caught && caught.code === "a2a-tasks/http-error" && /HTTP 500/.test(caught.message));
359
+ });
360
+ // HTTP < 200 (informational) with audit:false → still http-error.
361
+ await withTransport(respond("early", 100), async function () {
362
+ var caught = null;
363
+ try { await b.a2a.tasks.cancel({ peerUrl: "https://peer.example/a2a", taskId: "abc-123", audit: false }); }
364
+ catch (e) { caught = e; }
365
+ check("client cancel: HTTP 100 → http-error", caught && caught.code === "a2a-tasks/http-error");
366
+ });
367
+ // Response body is not JSON → a2a-tasks/bad-response.
368
+ await withTransport(respond("<html>not json</html>", 200), async function () {
369
+ var caught = null;
370
+ try { await b.a2a.tasks.get({ peerUrl: "https://peer.example/a2a", taskId: "abc-123" }); }
371
+ catch (e) { caught = e; }
372
+ check("client get: non-JSON body → bad-response", caught && caught.code === "a2a-tasks/bad-response" && /not valid JSON/.test(caught.message));
373
+ });
374
+ // Valid JSON that is NOT a JSON-RPC 2.0 envelope → a2a-tasks/bad-response.
375
+ await withTransport(respond({ foo: "bar" }, 200), async function () {
376
+ var caught = null;
377
+ try { await b.a2a.tasks.get({ peerUrl: "https://peer.example/a2a", taskId: "abc-123" }); }
378
+ catch (e) { caught = e; }
379
+ check("client get: non-envelope JSON → bad-response", caught && caught.code === "a2a-tasks/bad-response" && /JSON-RPC 2\.0 envelope/.test(caught.message));
380
+ });
381
+ // JSON-RPC error envelope (audit on) → rpc-error carrying rpcCode + rpcData.
382
+ await withTransport(respond({ jsonrpc: "2.0", id: "x", error: { code: -32003, message: "not cancelable", data: { taskId: "abc" } } }), async function () {
383
+ var caught = null;
384
+ try { await b.a2a.tasks.cancel({ peerUrl: "https://peer.example/a2a", taskId: "abc-123" }); }
385
+ catch (e) { caught = e; }
386
+ check("client cancel: rpc error surfaces rpcCode + rpcData",
387
+ caught && caught.code === "a2a-tasks/rpc-error" && caught.rpcCode === -32003 && caught.rpcData && caught.rpcData.taskId === "abc");
388
+ });
389
+ // JSON-RPC error with no message + audit:false → default "rpc error" text.
390
+ await withTransport(respond({ jsonrpc: "2.0", id: "x", error: { code: -32001 } }), async function () {
391
+ var caught = null;
392
+ try { await b.a2a.tasks.send({ peerUrl: "https://peer.example/a2a", task: { skill: "summarize" }, audit: false }); }
393
+ catch (e) { caught = e; }
394
+ check("client send: message-less rpc error → default text (audit off)",
395
+ caught && caught.code === "a2a-tasks/rpc-error" && caught.rpcCode === -32001 && /rpc error/.test(caught.message));
396
+ });
397
+ }
398
+
399
+ // ---- Middleware factory bad-opts (boot-time throws) ----
400
+
401
+ function testMiddlewareBadFactoryOpts() {
402
+ function expectThrow(label, fn, code) {
403
+ var threw = null;
404
+ try { fn(); } catch (e) { threw = e; }
405
+ check(label, threw && threw.code === code);
406
+ }
407
+ expectThrow("mw.tasks: no opts", function () { b.a2a.middleware.tasks(); }, "a2a-tasks/bad-mw-opts");
408
+ expectThrow("mw.tasks: opts not object", function () { b.a2a.middleware.tasks("nope"); }, "a2a-tasks/bad-mw-opts");
409
+ expectThrow("mw.tasks: missing handler", function () { b.a2a.middleware.tasks({}); }, "a2a-tasks/bad-mw-opts");
410
+ expectThrow("mw.tasks: handler not fn", function () { b.a2a.middleware.tasks({ handler: 123 }); }, "a2a-tasks/bad-mw-opts");
411
+ expectThrow("mw.tasks: scopes not object", function () { b.a2a.middleware.tasks({ handler: function () {}, scopes: "s" }); }, "a2a-tasks/bad-mw-opts");
412
+ expectThrow("mw.tasks: scopes array", function () { b.a2a.middleware.tasks({ handler: function () {}, scopes: [] }); }, "a2a-tasks/bad-mw-opts");
413
+ // Non-string scope VALUE (a number, not just the array case the sibling
414
+ // test drives) refused at construction — else the runtime string-check
415
+ // gate silently skips (fail-open authz bypass on the gated skill).
416
+ expectThrow("mw.tasks: numeric scope value", function () { b.a2a.middleware.tasks({ handler: function () {}, scopes: { transfer: 5 } }); }, "a2a-tasks/bad-mw-opts");
417
+ }
418
+
419
+ function testAgentCardBadOpts() {
420
+ function expectThrow(label, fn, code) {
421
+ var threw = null;
422
+ try { fn(); } catch (e) { threw = e; }
423
+ check(label, threw && threw.code === code);
424
+ }
425
+ expectThrow("agentCard: no opts", function () { b.a2a.middleware.agentCard(); }, "a2a-tasks/bad-mw-opts");
426
+ expectThrow("agentCard: opts not object", function () { b.a2a.middleware.agentCard("x"); }, "a2a-tasks/bad-mw-opts");
427
+ expectThrow("agentCard: card missing", function () { b.a2a.middleware.agentCard({}); }, "a2a-tasks/bad-mw-opts");
428
+ expectThrow("agentCard: card not object", function () { b.a2a.middleware.agentCard({ card: "not-an-object" }); }, "a2a-tasks/bad-mw-opts");
429
+ // A present-but-invalid maxAgeSec (negative) is refused by the numeric-bounds gate.
430
+ expectThrow("agentCard: negative maxAgeSec", function () { b.a2a.middleware.agentCard({ card: { x: 1 }, maxAgeSec: -5 }); }, "a2a-tasks/bad-max-age");
431
+ }
432
+
433
+ // ---- Middleware request-path branches ----
434
+
435
+ async function testMiddlewareInvalidEnvelope() {
436
+ // Valid JSON, but not a JSON-RPC 2.0 envelope (no jsonrpc / method) → 400 -32600.
437
+ var handlerRan = false;
438
+ var mw = b.a2a.middleware.tasks({ handler: function () { handlerRan = true; } });
439
+ var req = _mockReq("POST", "application/json", Buffer.from('{"id":7,"foo":"bar"}'), []);
440
+ var res = _mockRes();
441
+ var body = await _runMwAndDecode(mw, req, res);
442
+ check("middleware: non-envelope JSON → 400 invalid-request, handler not run",
443
+ res._statusCode() === 400 && body && body.error && body.error.code === -32600 && handlerRan === false);
444
+ }
445
+
446
+ async function testMiddlewareMissingParams() {
447
+ // tasks/send with NO params → params defaults to {} → task undefined → -32602.
448
+ var handlerRan = false;
449
+ var mw = b.a2a.middleware.tasks({ handler: function () { handlerRan = true; return null; } });
450
+ var req = _mockReq("POST", "application/json", Buffer.from('{"jsonrpc":"2.0","id":1,"method":"tasks/send"}'), []);
451
+ var res = _mockRes();
452
+ var body = await _runMwAndDecode(mw, req, res);
453
+ check("middleware: tasks/send missing params → -32602, handler not run",
454
+ body && body.error && body.error.code === -32602 && handlerRan === false);
455
+ }
456
+
457
+ async function testMiddlewareNoId() {
458
+ // A request without an id → the response id is null (id-defaulting branch).
459
+ var mw = b.a2a.middleware.tasks({ handler: function () { return { taskId: "t0", status: "queued" }; } });
460
+ var req = _mockReq("POST", "application/json",
461
+ Buffer.from('{"jsonrpc":"2.0","method":"tasks/send","params":{"task":{"skill":"summarize"}}}'), []);
462
+ var res = _mockRes();
463
+ var body = await _runMwAndDecode(mw, req, res);
464
+ check("middleware: request without id → response id null",
465
+ body && body.result && body.result.taskId === "t0" && body.id === null);
466
+ }
467
+
468
+ async function testMiddlewareCancelSuccess() {
469
+ // Exercises the tasks/cancel identifier-validation operand + a cancel handler success.
470
+ var captured = null;
471
+ var mw = b.a2a.middleware.tasks({ handler: function (ctx) { captured = ctx; return { taskId: ctx.taskId, status: "canceled" }; } });
472
+ var req = _mockReq("POST", "application/json",
473
+ Buffer.from('{"jsonrpc":"2.0","id":9,"method":"tasks/cancel","params":{"taskId":"abc-123"}}'), []);
474
+ var res = _mockRes();
475
+ var body = await _runMwAndDecode(mw, req, res);
476
+ check("middleware: tasks/cancel routes to handler",
477
+ body && body.result && body.result.status === "canceled" &&
478
+ captured && captured.method === "tasks/cancel" && captured.taskId === "abc-123");
479
+ }
480
+
481
+ async function testMiddlewareScopeDeniedNoGrantedArray() {
482
+ // A gated skill whose request carries NO a2aScopes array at all (the operator
483
+ // auth layer never populated it) → grantedScopes defaults to [] → denied.
484
+ var handlerRan = false;
485
+ var mw = b.a2a.middleware.tasks({
486
+ scopes: { summarize: "a2a:summarize" },
487
+ handler: function () { handlerRan = true; return null; },
488
+ });
489
+ // Pass `undefined` for the a2aScopes arg → req.a2aScopes is not an array.
490
+ var req = _mockReq("POST", "application/json",
491
+ Buffer.from('{"jsonrpc":"2.0","id":1,"method":"tasks/send","params":{"task":{"skill":"summarize"}}}'),
492
+ undefined);
493
+ var res = _mockRes();
494
+ var body = await _runMwAndDecode(mw, req, res);
495
+ check("middleware: gated skill with no granted-scopes array → -32001, handler not run",
496
+ body && body.error && body.error.code === -32001 && handlerRan === false);
497
+ }
498
+
499
+ async function testMiddlewareScopeGranted() {
500
+ // Granted scope present in req.a2aScopes → handler runs (scope check passes).
501
+ var handlerRan = false;
502
+ var mw = b.a2a.middleware.tasks({
503
+ scopes: { summarize: "a2a:summarize" },
504
+ handler: function () { handlerRan = true; return { taskId: "t9", status: "queued" }; },
505
+ });
506
+ var req = _mockReq("POST", "application/json",
507
+ Buffer.from('{"jsonrpc":"2.0","id":1,"method":"tasks/send","params":{"task":{"skill":"summarize"}}}'),
508
+ ["a2a:summarize"]);
509
+ var res = _mockRes();
510
+ var body = await _runMwAndDecode(mw, req, res);
511
+ check("middleware: granted scope → handler runs",
512
+ handlerRan === true && body && body.result && body.result.taskId === "t9");
513
+ }
514
+
515
+ async function testMiddlewareUngatedSkill() {
516
+ // A scopes map is present, but the requested skill isn't in it → un-gated,
517
+ // proceeds to the handler (requiredScope resolves to undefined).
518
+ var handlerRan = false;
519
+ var mw = b.a2a.middleware.tasks({
520
+ scopes: { transfer: "a2a:transfer" },
521
+ handler: function () { handlerRan = true; return { taskId: "t8", status: "queued" }; },
522
+ });
523
+ var req = _mockReq("POST", "application/json",
524
+ Buffer.from('{"jsonrpc":"2.0","id":1,"method":"tasks/send","params":{"task":{"skill":"summarize"}}}'),
525
+ []);
526
+ var res = _mockRes();
527
+ var body = await _runMwAndDecode(mw, req, res);
528
+ check("middleware: un-gated skill bypasses scope check → handler runs",
529
+ handlerRan === true && body && body.result && body.result.taskId === "t8");
530
+ }
531
+
532
+ async function testMiddlewareProtoShadowSkill() {
533
+ // An attacker skill colliding with an Object.prototype member ("constructor")
534
+ // must NOT resolve an inherited scope — own-property lookup only, so it is
535
+ // treated as un-gated and reaches the handler rather than dereferencing a
536
+ // prototype member as its required scope.
537
+ var handlerRan = false;
538
+ var mw = b.a2a.middleware.tasks({
539
+ scopes: { summarize: "a2a:summarize" },
540
+ handler: function () { handlerRan = true; return { taskId: "t7", status: "queued" }; },
541
+ });
542
+ var req = _mockReq("POST", "application/json",
543
+ Buffer.from('{"jsonrpc":"2.0","id":1,"method":"tasks/send","params":{"task":{"skill":"constructor"}}}'),
544
+ []);
545
+ var res = _mockRes();
546
+ var body = await _runMwAndDecode(mw, req, res);
547
+ check("middleware: proto-shadow skill 'constructor' not gated by inherited member",
548
+ handlerRan === true && body && body.result && body.result.taskId === "t7");
549
+ }
550
+
551
+ async function testMiddlewareHandlerError() {
552
+ // Handler throws a plain error → -32603 internal-error envelope, id echoed.
553
+ var mw = b.a2a.middleware.tasks({ handler: function () { throw new Error("boom in handler"); } });
554
+ var req = _mockReq("POST", "application/json",
555
+ Buffer.from('{"jsonrpc":"2.0","id":5,"method":"tasks/send","params":{"task":{"skill":"summarize"}}}'), []);
556
+ var res = _mockRes();
557
+ var body = await _runMwAndDecode(mw, req, res);
558
+ check("middleware: handler throw → -32603 with message",
559
+ body && body.error && body.error.code === -32603 && /boom in handler/.test(body.error.message));
560
+ check("middleware: handler-error id echoed", body && body.id === 5);
561
+ }
562
+
563
+ async function testMiddlewareHandlerErrorRpcCode() {
564
+ // Handler throws an error carrying rpcCode → that code is surfaced (audit off path).
565
+ var mw = b.a2a.middleware.tasks({
566
+ audit: false,
567
+ handler: function () { var e = new Error("not cancelable"); e.rpcCode = -32003; throw e; },
568
+ });
569
+ var req = _mockReq("POST", "application/json",
570
+ Buffer.from('{"jsonrpc":"2.0","id":6,"method":"tasks/cancel","params":{"taskId":"abc-123"}}'), []);
571
+ var res = _mockRes();
572
+ var body = await _runMwAndDecode(mw, req, res);
573
+ check("middleware: handler rpcCode surfaced",
574
+ body && body.error && body.error.code === -32003 && body.id === 6);
575
+ }
576
+
577
+ async function testMiddlewareHandlerFalsyThrow() {
578
+ // A handler that rejects with a FALSY value (no rpcCode, no message) →
579
+ // defaults to -32603 + "handler error" text (both fallback operands).
580
+ var mw = b.a2a.middleware.tasks({ handler: function () { return Promise.reject(null); } });
581
+ var req = _mockReq("POST", "application/json",
582
+ Buffer.from('{"jsonrpc":"2.0","id":8,"method":"tasks/send","params":{"task":{"skill":"summarize"}}}'), []);
583
+ var res = _mockRes();
584
+ var body = await _runMwAndDecode(mw, req, res);
585
+ check("middleware: falsy handler rejection → -32603 + default text",
586
+ body && body.error && body.error.code === -32603 && body.error.message === "handler error");
587
+ }
588
+
589
+ async function testMiddlewareBodyTooLarge() {
590
+ // A body exceeding maxBytes rejects inside _readBody → outer catch → 400 parse-error.
591
+ var handlerRan = false;
592
+ var mw = b.a2a.middleware.tasks({ handler: function () { handlerRan = true; }, maxBytes: 16 });
593
+ var big = Buffer.from(JSON.stringify({
594
+ jsonrpc: "2.0", id: 1, method: "tasks/send",
595
+ params: { task: { skill: "summarize", input: { pad: "x".repeat(200) } } },
596
+ }));
597
+ var req = _mockReq("POST", "application/json", big, []);
598
+ var res = _mockRes();
599
+ var body = await _runMwAndDecode(mw, req, res);
600
+ check("middleware: oversized body → 400 parse-error, handler not run",
601
+ res._statusCode() === 400 && body && body.error && body.error.code === -32700 &&
602
+ /could not read request body/.test(body.error.message) && handlerRan === false);
603
+ }
604
+
605
+ async function testAgentCardMaxAge() {
606
+ // Explicit positive maxAgeSec is honored (Math.floor path) in Cache-Control.
607
+ var mw = b.a2a.middleware.agentCard({ card: { agent: "a", signature: "sig" }, maxAgeSec: 60 });
608
+ var req = _mockReq("GET", null, null, []);
609
+ var res = _mockRes();
610
+ await new Promise(function (resolve) {
611
+ var origEnd = res.end.bind(res);
612
+ res.end = function (chunk) { origEnd(chunk); helpers.passiveObserve(5, "a2a-tasks: post-res.end tick").then(resolve); };
613
+ mw(req, res);
614
+ });
615
+ check("agentCard: explicit maxAgeSec honored", res._getHeaders()["cache-control"] === "public, max-age=60");
616
+ }
617
+
235
618
  async function run() {
236
619
  testTasksSurface();
237
620
  await testClientRefusesBadOpts();
621
+ await testClientRefusesBadTaskShapes();
622
+ await testClientTransportSuccess();
623
+ await testClientTransportErrors();
238
624
  await testMiddlewareMethodNotAllowed();
239
625
  await testMiddlewareBadContentType();
240
626
  await testMiddlewareInvalidJson();
241
627
  await testMiddlewareMethodNotFound();
628
+ await testMiddlewareBadFactoryOpts();
629
+ await testMiddlewareInvalidEnvelope();
630
+ await testMiddlewareMissingParams();
631
+ await testMiddlewareNoId();
632
+ await testMiddlewareCancelSuccess();
242
633
  await testMiddlewareScopeDenied();
634
+ await testMiddlewareScopeDeniedNoGrantedArray();
635
+ await testMiddlewareScopeGranted();
636
+ await testMiddlewareUngatedSkill();
637
+ await testMiddlewareProtoShadowSkill();
243
638
  await testMiddlewareScopeNonStringThrows();
244
639
  await testMiddlewareRejectsHostileSkill();
245
640
  await testMiddlewareRejectsHostileTaskId();
246
641
  await testMiddlewareSuccessSend();
642
+ await testMiddlewareHandlerError();
643
+ await testMiddlewareHandlerErrorRpcCode();
644
+ await testMiddlewareHandlerFalsyThrow();
645
+ await testMiddlewareBodyTooLarge();
646
+ await testAgentCardBadOpts();
247
647
  await testAgentCardMiddleware();
648
+ await testAgentCardMaxAge();
248
649
  }
249
650
 
250
651
  module.exports = { run: run };