@blamejs/core 0.15.68 → 0.16.1

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 (561) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +2 -1
  3. package/bin/blamejs.js +2 -0
  4. package/index.js +2 -0
  5. package/lib/_test/crypto-fixtures.js +2 -0
  6. package/lib/a2a-tasks.js +2 -0
  7. package/lib/a2a.js +2 -0
  8. package/lib/acme.js +2 -0
  9. package/lib/agent-audit.js +2 -0
  10. package/lib/agent-envelope-mac.js +2 -0
  11. package/lib/agent-event-bus.js +2 -0
  12. package/lib/agent-idempotency.js +2 -0
  13. package/lib/agent-orchestrator.js +2 -0
  14. package/lib/agent-posture-chain.js +2 -0
  15. package/lib/agent-saga.js +2 -0
  16. package/lib/agent-snapshot.js +2 -0
  17. package/lib/agent-stream.js +2 -0
  18. package/lib/agent-tenant.js +2 -0
  19. package/lib/agent-trace.js +2 -0
  20. package/lib/ai-adverse-decision.js +2 -0
  21. package/lib/ai-aedt-bias-audit.js +2 -0
  22. package/lib/ai-capability.js +2 -0
  23. package/lib/ai-content-detect.js +2 -0
  24. package/lib/ai-disclosure.js +2 -0
  25. package/lib/ai-dp.js +2 -0
  26. package/lib/ai-frontier-protocol.js +2 -0
  27. package/lib/ai-input.js +2 -0
  28. package/lib/ai-model-manifest.js +2 -0
  29. package/lib/ai-output.js +2 -0
  30. package/lib/ai-pref.js +2 -0
  31. package/lib/ai-prompt.js +2 -0
  32. package/lib/ai-quota.js +2 -0
  33. package/lib/api-key.js +2 -0
  34. package/lib/api-snapshot.js +2 -0
  35. package/lib/app-shutdown.js +2 -0
  36. package/lib/app.js +2 -0
  37. package/lib/archive-adapters.js +2 -0
  38. package/lib/archive-entry-policy.js +2 -0
  39. package/lib/archive-gz.js +2 -0
  40. package/lib/archive-read.js +2 -0
  41. package/lib/archive-tar-read.js +2 -0
  42. package/lib/archive-tar.js +2 -0
  43. package/lib/archive-wrap.js +2 -0
  44. package/lib/archive.js +2 -0
  45. package/lib/arg-parser.js +2 -0
  46. package/lib/argon2-builtin.js +2 -0
  47. package/lib/asn1-der.js +2 -0
  48. package/lib/asyncapi-bindings.js +2 -0
  49. package/lib/asyncapi-traits.js +2 -0
  50. package/lib/asyncapi.js +2 -0
  51. package/lib/atomic-file.js +2 -0
  52. package/lib/audit-chain.js +2 -0
  53. package/lib/audit-daily-review.js +2 -0
  54. package/lib/audit-emit.js +2 -0
  55. package/lib/audit-sign.js +2 -0
  56. package/lib/audit-tools.js +2 -0
  57. package/lib/audit.js +2 -0
  58. package/lib/auth/aal.js +2 -0
  59. package/lib/auth/access-lock.js +2 -0
  60. package/lib/auth/acr-vocabulary.js +2 -0
  61. package/lib/auth/ato-kill-switch.js +2 -0
  62. package/lib/auth/auth-time-tracker.js +2 -0
  63. package/lib/auth/bot-challenge.js +2 -0
  64. package/lib/auth/ciba.js +2 -0
  65. package/lib/auth/dpop.js +2 -0
  66. package/lib/auth/elevation-grant.js +2 -0
  67. package/lib/auth/fal.js +2 -0
  68. package/lib/auth/fido-mds3.js +2 -0
  69. package/lib/auth/jar.js +2 -0
  70. package/lib/auth/jwt-external.js +2 -0
  71. package/lib/auth/jwt.js +2 -0
  72. package/lib/auth/lockout.js +2 -0
  73. package/lib/auth/oauth.js +2 -0
  74. package/lib/auth/oid4vci.js +2 -0
  75. package/lib/auth/oid4vp.js +2 -0
  76. package/lib/auth/openid-federation.js +2 -0
  77. package/lib/auth/passkey.js +2 -0
  78. package/lib/auth/password.js +2 -0
  79. package/lib/auth/saml.js +2 -0
  80. package/lib/auth/sd-jwt-vc-disclosure.js +2 -0
  81. package/lib/auth/sd-jwt-vc-holder.js +2 -0
  82. package/lib/auth/sd-jwt-vc-issuer.js +2 -0
  83. package/lib/auth/sd-jwt-vc.js +2 -0
  84. package/lib/auth/status-list.js +7 -0
  85. package/lib/auth/step-up-policy.js +2 -0
  86. package/lib/auth/step-up.js +2 -0
  87. package/lib/auth-bot-challenge.js +2 -0
  88. package/lib/auth-header.js +2 -0
  89. package/lib/backup/bundle.js +2 -0
  90. package/lib/backup/crypto.js +2 -0
  91. package/lib/backup/index.js +2 -0
  92. package/lib/backup/manifest.js +2 -0
  93. package/lib/base32.js +2 -0
  94. package/lib/boot-gates.js +2 -0
  95. package/lib/bounded-map.js +3 -1
  96. package/lib/breach-deadline.js +2 -0
  97. package/lib/break-glass.js +2 -0
  98. package/lib/budr.js +2 -0
  99. package/lib/bundler.js +2 -0
  100. package/lib/cache-redis.js +2 -0
  101. package/lib/cache-status.js +2 -0
  102. package/lib/cache.js +2 -0
  103. package/lib/calendar.js +2 -0
  104. package/lib/canonical-json.js +2 -0
  105. package/lib/cbor.js +2 -0
  106. package/lib/cdn-cache-control.js +2 -0
  107. package/lib/cert.js +2 -0
  108. package/lib/chain-writer.js +2 -0
  109. package/lib/circuit-breaker.js +2 -0
  110. package/lib/cli-helpers.js +2 -0
  111. package/lib/cli.js +2 -0
  112. package/lib/client-hints.js +2 -0
  113. package/lib/cloud-events.js +2 -0
  114. package/lib/cluster-provider-db.js +2 -0
  115. package/lib/cluster-storage.js +2 -0
  116. package/lib/cluster.js +2 -0
  117. package/lib/cms-codec.js +2 -0
  118. package/lib/codepoint-class.js +2 -0
  119. package/lib/compliance-ai-act-logging.js +2 -0
  120. package/lib/compliance-ai-act-prohibited.js +2 -0
  121. package/lib/compliance-ai-act-risk.js +2 -0
  122. package/lib/compliance-ai-act-transparency.js +2 -0
  123. package/lib/compliance-ai-act.js +2 -0
  124. package/lib/compliance-eaa.js +2 -0
  125. package/lib/compliance-sanctions-aliases.js +2 -0
  126. package/lib/compliance-sanctions-fetcher.js +2 -0
  127. package/lib/compliance-sanctions-fuzzy.js +2 -0
  128. package/lib/compliance-sanctions.js +2 -0
  129. package/lib/compliance.js +2 -0
  130. package/lib/config-drift.js +2 -0
  131. package/lib/config.js +2 -0
  132. package/lib/consent.js +2 -0
  133. package/lib/constants.js +2 -0
  134. package/lib/content-credentials.js +2 -0
  135. package/lib/content-digest.js +2 -0
  136. package/lib/cookies.js +2 -0
  137. package/lib/cose.js +2 -0
  138. package/lib/cra-report.js +2 -0
  139. package/lib/crdt.js +2 -0
  140. package/lib/credential-hash.js +2 -0
  141. package/lib/crypto-field.js +2 -0
  142. package/lib/crypto-hpke-pq.js +2 -0
  143. package/lib/crypto-hpke.js +2 -0
  144. package/lib/crypto-oprf.js +2 -0
  145. package/lib/crypto-xwing.js +2 -0
  146. package/lib/crypto.js +2 -0
  147. package/lib/csp.js +2 -0
  148. package/lib/csv.js +2 -0
  149. package/lib/cwt.js +2 -0
  150. package/lib/daemon.js +2 -0
  151. package/lib/dark-patterns.js +2 -0
  152. package/lib/data-act.js +2 -0
  153. package/lib/db-collection.js +2 -0
  154. package/lib/db-declare-row-policy.js +2 -0
  155. package/lib/db-declare-view.js +2 -0
  156. package/lib/db-file-lifecycle.js +2 -0
  157. package/lib/db-query.js +2 -0
  158. package/lib/db-role-context.js +2 -0
  159. package/lib/db-schema.js +2 -0
  160. package/lib/db.js +2 -0
  161. package/lib/dbsc.js +2 -0
  162. package/lib/ddl-change-control.js +2 -0
  163. package/lib/deprecate.js +2 -0
  164. package/lib/dev.js +2 -0
  165. package/lib/did.js +2 -0
  166. package/lib/dora.js +2 -0
  167. package/lib/dr-runbook.js +2 -0
  168. package/lib/dsa.js +2 -0
  169. package/lib/dsr.js +2 -0
  170. package/lib/dual-control.js +2 -0
  171. package/lib/early-hints.js +2 -0
  172. package/lib/eat.js +2 -0
  173. package/lib/error-page.js +2 -0
  174. package/lib/events.js +2 -0
  175. package/lib/external-db-migrate.js +2 -0
  176. package/lib/external-db.js +2 -0
  177. package/lib/fapi2.js +2 -0
  178. package/lib/fda-21cfr11.js +2 -0
  179. package/lib/fdx.js +2 -0
  180. package/lib/fedcm.js +2 -0
  181. package/lib/file-type.js +2 -0
  182. package/lib/file-upload.js +2 -0
  183. package/lib/flag-cache.js +2 -0
  184. package/lib/flag-evaluation-context.js +2 -0
  185. package/lib/flag-providers.js +2 -0
  186. package/lib/flag-targeting.js +2 -0
  187. package/lib/flag.js +2 -0
  188. package/lib/forms.js +2 -0
  189. package/lib/framework-error.js +2 -0
  190. package/lib/framework-files.js +2 -0
  191. package/lib/framework-schema.js +2 -0
  192. package/lib/framework-sha1-hibp.js +2 -0
  193. package/lib/fsm.js +2 -0
  194. package/lib/gate-contract.js +2 -0
  195. package/lib/gdpr-ropa.js +2 -0
  196. package/lib/graphql-federation.js +2 -0
  197. package/lib/guard-agent-registry.js +2 -0
  198. package/lib/guard-all.js +2 -0
  199. package/lib/guard-archive.js +2 -0
  200. package/lib/guard-auth.js +2 -0
  201. package/lib/guard-cidr.js +2 -0
  202. package/lib/guard-csv.js +2 -0
  203. package/lib/guard-domain.js +2 -0
  204. package/lib/guard-dsn.js +2 -0
  205. package/lib/guard-email.js +2 -0
  206. package/lib/guard-envelope.js +2 -0
  207. package/lib/guard-event-bus-payload.js +2 -0
  208. package/lib/guard-event-bus-topic.js +2 -0
  209. package/lib/guard-filename.js +2 -0
  210. package/lib/guard-graphql.js +2 -0
  211. package/lib/guard-html-wcag-aria.js +2 -0
  212. package/lib/guard-html-wcag-forms.js +2 -0
  213. package/lib/guard-html-wcag-tables.js +2 -0
  214. package/lib/guard-html-wcag-tagwalk.js +2 -0
  215. package/lib/guard-html-wcag.js +2 -0
  216. package/lib/guard-html.js +2 -0
  217. package/lib/guard-idempotency-key.js +2 -0
  218. package/lib/guard-image.js +2 -0
  219. package/lib/guard-imap-command.js +2 -0
  220. package/lib/guard-jmap.js +2 -0
  221. package/lib/guard-json.js +2 -0
  222. package/lib/guard-jsonpath.js +2 -0
  223. package/lib/guard-jwt.js +2 -0
  224. package/lib/guard-list-id.js +2 -0
  225. package/lib/guard-list-unsubscribe.js +2 -0
  226. package/lib/guard-mail-compose.js +2 -0
  227. package/lib/guard-mail-move.js +2 -0
  228. package/lib/guard-mail-query.js +2 -0
  229. package/lib/guard-mail-reply.js +2 -0
  230. package/lib/guard-mail-sieve.js +2 -0
  231. package/lib/guard-managesieve-command.js +2 -0
  232. package/lib/guard-markdown.js +2 -0
  233. package/lib/guard-message-id.js +2 -0
  234. package/lib/guard-mime.js +2 -0
  235. package/lib/guard-oauth.js +2 -0
  236. package/lib/guard-pdf.js +2 -0
  237. package/lib/guard-pop3-command.js +2 -0
  238. package/lib/guard-posture-chain.js +2 -0
  239. package/lib/guard-regex.js +2 -0
  240. package/lib/guard-saga-config.js +2 -0
  241. package/lib/guard-shell.js +2 -0
  242. package/lib/guard-smtp-command.js +2 -0
  243. package/lib/guard-snapshot-envelope.js +2 -0
  244. package/lib/guard-sql.js +2 -0
  245. package/lib/guard-stream-args.js +2 -0
  246. package/lib/guard-svg.js +2 -0
  247. package/lib/guard-template.js +2 -0
  248. package/lib/guard-tenant-id.js +2 -0
  249. package/lib/guard-text.js +2 -0
  250. package/lib/guard-time.js +2 -0
  251. package/lib/guard-trace-context.js +2 -0
  252. package/lib/guard-uuid.js +2 -0
  253. package/lib/guard-xml.js +2 -0
  254. package/lib/guard-yaml.js +2 -0
  255. package/lib/hal.js +2 -0
  256. package/lib/handlers.js +2 -0
  257. package/lib/honeytoken.js +2 -0
  258. package/lib/html-balance.js +2 -0
  259. package/lib/http-client-cache.js +2 -0
  260. package/lib/http-client-cookie-jar.js +2 -0
  261. package/lib/http-client.js +2 -0
  262. package/lib/http-message-signature.js +2 -0
  263. package/lib/http2-teardown.js +2 -0
  264. package/lib/i18n-messageformat.js +2 -0
  265. package/lib/i18n.js +2 -0
  266. package/lib/iab-mspa.js +2 -0
  267. package/lib/iab-tcf.js +2 -0
  268. package/lib/importmap-integrity.js +2 -0
  269. package/lib/inbox.js +2 -0
  270. package/lib/incident-report.js +2 -0
  271. package/lib/ip-utils.js +2 -0
  272. package/lib/jobs.js +2 -0
  273. package/lib/jose-jwe-experimental.js +2 -0
  274. package/lib/json-merge-patch.js +2 -0
  275. package/lib/json-patch.js +2 -0
  276. package/lib/json-path.js +2 -0
  277. package/lib/json-pointer.js +2 -0
  278. package/lib/json-schema.js +2 -0
  279. package/lib/jsonapi.js +2 -0
  280. package/lib/jtd.js +2 -0
  281. package/lib/jwk.js +2 -0
  282. package/lib/keychain.js +2 -0
  283. package/lib/lazy-require.js +2 -0
  284. package/lib/legal-hold.js +2 -0
  285. package/lib/link-header.js +2 -0
  286. package/lib/local-db-thin.js +2 -0
  287. package/lib/log-stream-cloudwatch.js +2 -0
  288. package/lib/log-stream-local.js +2 -0
  289. package/lib/log-stream-otlp-grpc.js +2 -0
  290. package/lib/log-stream-otlp.js +2 -0
  291. package/lib/log-stream-syslog.js +2 -0
  292. package/lib/log-stream-webhook.js +2 -0
  293. package/lib/log-stream.js +2 -0
  294. package/lib/log.js +2 -0
  295. package/lib/lro.js +2 -0
  296. package/lib/mail-agent.js +2 -0
  297. package/lib/mail-arc-reuse-token.js +2 -0
  298. package/lib/mail-arc-sign.js +2 -0
  299. package/lib/mail-arf.js +2 -0
  300. package/lib/mail-auth.js +2 -0
  301. package/lib/mail-bimi.js +2 -0
  302. package/lib/mail-bounce.js +2 -0
  303. package/lib/mail-crypto-pgp.js +2 -0
  304. package/lib/mail-crypto-smime.js +2 -0
  305. package/lib/mail-crypto.js +2 -0
  306. package/lib/mail-dav.js +2 -0
  307. package/lib/mail-deploy.js +2 -0
  308. package/lib/mail-dkim.js +2 -0
  309. package/lib/mail-greylist.js +2 -0
  310. package/lib/mail-helo.js +2 -0
  311. package/lib/mail-journal.js +2 -0
  312. package/lib/mail-mdn.js +2 -0
  313. package/lib/mail-rbl.js +2 -0
  314. package/lib/mail-require-tls.js +2 -0
  315. package/lib/mail-scan.js +2 -0
  316. package/lib/mail-send-deliver.js +2 -0
  317. package/lib/mail-server-imap.js +2 -0
  318. package/lib/mail-server-jmap.js +2 -0
  319. package/lib/mail-server-managesieve.js +2 -0
  320. package/lib/mail-server-mx.js +2 -0
  321. package/lib/mail-server-net.js +2 -0
  322. package/lib/mail-server-pop3.js +2 -0
  323. package/lib/mail-server-rate-limit.js +2 -0
  324. package/lib/mail-server-registry.js +2 -0
  325. package/lib/mail-server-submission.js +2 -0
  326. package/lib/mail-server-tls.js +2 -0
  327. package/lib/mail-sieve.js +2 -0
  328. package/lib/mail-spam-score.js +2 -0
  329. package/lib/mail-srs.js +2 -0
  330. package/lib/mail-store-fts.js +2 -0
  331. package/lib/mail-store.js +2 -0
  332. package/lib/mail-unsubscribe.js +2 -0
  333. package/lib/mail.js +2 -0
  334. package/lib/markup-escape.js +2 -0
  335. package/lib/markup-tokenizer.js +2 -0
  336. package/lib/mcp-tool-registry.js +2 -0
  337. package/lib/mcp.js +2 -0
  338. package/lib/mdoc.js +2 -0
  339. package/lib/metrics.js +2 -0
  340. package/lib/middleware/age-gate.js +2 -0
  341. package/lib/middleware/ai-act-disclosure.js +2 -0
  342. package/lib/middleware/api-encrypt.js +2 -0
  343. package/lib/middleware/assetlinks.js +2 -0
  344. package/lib/middleware/asyncapi-serve.js +2 -0
  345. package/lib/middleware/attach-user.js +2 -0
  346. package/lib/middleware/bearer-auth.js +2 -0
  347. package/lib/middleware/body-parser.js +2 -0
  348. package/lib/middleware/bot-disclose.js +2 -0
  349. package/lib/middleware/bot-guard.js +2 -0
  350. package/lib/middleware/clear-site-data.js +2 -0
  351. package/lib/middleware/compose-pipeline.js +2 -0
  352. package/lib/middleware/compression.js +2 -0
  353. package/lib/middleware/cookies.js +2 -0
  354. package/lib/middleware/cors.js +2 -0
  355. package/lib/middleware/csp-nonce.js +2 -0
  356. package/lib/middleware/csp-report.js +2 -0
  357. package/lib/middleware/csrf-protect.js +2 -0
  358. package/lib/middleware/daily-byte-quota.js +2 -0
  359. package/lib/middleware/db-role-for.js +2 -0
  360. package/lib/middleware/deny-response.js +2 -0
  361. package/lib/middleware/dpop.js +2 -0
  362. package/lib/middleware/error-handler.js +2 -0
  363. package/lib/middleware/fetch-metadata.js +2 -0
  364. package/lib/middleware/flag-context.js +2 -0
  365. package/lib/middleware/gpc.js +2 -0
  366. package/lib/middleware/headers.js +2 -0
  367. package/lib/middleware/health.js +2 -0
  368. package/lib/middleware/host-allowlist.js +2 -0
  369. package/lib/middleware/idempotency-key.js +2 -0
  370. package/lib/middleware/index.js +2 -0
  371. package/lib/middleware/nel.js +2 -0
  372. package/lib/middleware/network-allowlist.js +2 -0
  373. package/lib/middleware/no-cache.js +2 -0
  374. package/lib/middleware/openapi-serve.js +2 -0
  375. package/lib/middleware/protected-resource-metadata.js +2 -0
  376. package/lib/middleware/rate-limit.js +2 -0
  377. package/lib/middleware/request-id.js +2 -0
  378. package/lib/middleware/request-log.js +2 -0
  379. package/lib/middleware/require-aal.js +2 -0
  380. package/lib/middleware/require-auth.js +2 -0
  381. package/lib/middleware/require-bound-key.js +2 -0
  382. package/lib/middleware/require-content-type.js +2 -0
  383. package/lib/middleware/require-methods.js +2 -0
  384. package/lib/middleware/require-mtls.js +2 -0
  385. package/lib/middleware/require-step-up.js +2 -0
  386. package/lib/middleware/scim-server.js +2 -0
  387. package/lib/middleware/security-headers.js +2 -0
  388. package/lib/middleware/security-txt.js +2 -0
  389. package/lib/middleware/span-http-server.js +2 -0
  390. package/lib/middleware/speculation-rules.js +2 -0
  391. package/lib/middleware/sse.js +2 -0
  392. package/lib/middleware/trace-log-correlation.js +2 -0
  393. package/lib/middleware/trace-propagate.js +2 -0
  394. package/lib/middleware/tus-upload.js +2 -0
  395. package/lib/middleware/web-app-manifest.js +2 -0
  396. package/lib/migration-files.js +2 -0
  397. package/lib/migrations.js +2 -0
  398. package/lib/mime-parse.js +2 -0
  399. package/lib/module-loader.js +2 -0
  400. package/lib/money.js +2 -0
  401. package/lib/mtls-ca.js +2 -0
  402. package/lib/mtls-engine-default.js +2 -0
  403. package/lib/network-byte-quota.js +2 -0
  404. package/lib/network-dane.js +2 -0
  405. package/lib/network-dns-resolver.js +2 -0
  406. package/lib/network-dns.js +2 -0
  407. package/lib/network-dnssec.js +2 -0
  408. package/lib/network-heartbeat.js +2 -0
  409. package/lib/network-nts.js +2 -0
  410. package/lib/network-proxy.js +2 -0
  411. package/lib/network-smtp-policy.js +2 -0
  412. package/lib/network-tls.js +2 -0
  413. package/lib/network-tsig.js +2 -0
  414. package/lib/network.js +2 -0
  415. package/lib/nis2-report.js +2 -0
  416. package/lib/nist-crosswalk.js +2 -0
  417. package/lib/nonce-store.js +2 -0
  418. package/lib/notify.js +2 -0
  419. package/lib/ntp-check.js +2 -0
  420. package/lib/numeric-bounds.js +2 -0
  421. package/lib/numeric-checks.js +2 -0
  422. package/lib/object-store/azure-blob-bucket-ops.js +2 -0
  423. package/lib/object-store/azure-blob.js +2 -0
  424. package/lib/object-store/gcs-bucket-ops.js +2 -0
  425. package/lib/object-store/gcs.js +2 -0
  426. package/lib/object-store/http-put.js +2 -0
  427. package/lib/object-store/http-request.js +2 -0
  428. package/lib/object-store/index.js +2 -0
  429. package/lib/object-store/local.js +2 -0
  430. package/lib/object-store/sigv4-bucket-ops.js +2 -0
  431. package/lib/object-store/sigv4.js +2 -0
  432. package/lib/observability-otlp-exporter.js +2 -0
  433. package/lib/observability-tracer.js +2 -0
  434. package/lib/observability.js +2 -0
  435. package/lib/openapi-paths-builder.js +2 -0
  436. package/lib/openapi-schema-walk.js +2 -0
  437. package/lib/openapi-security.js +2 -0
  438. package/lib/openapi-yaml.js +2 -0
  439. package/lib/openapi.js +2 -0
  440. package/lib/otel-export.js +2 -0
  441. package/lib/outbox.js +2 -0
  442. package/lib/pagination.js +2 -0
  443. package/lib/parsers/index.js +2 -0
  444. package/lib/parsers/safe-env.js +2 -0
  445. package/lib/parsers/safe-ini.js +2 -0
  446. package/lib/parsers/safe-toml.js +2 -0
  447. package/lib/parsers/safe-xml.js +2 -0
  448. package/lib/parsers/safe-yaml.js +2 -0
  449. package/lib/permissions.js +2 -0
  450. package/lib/pick.js +2 -0
  451. package/lib/pipl-cn.js +2 -0
  452. package/lib/pqc-agent.js +2 -0
  453. package/lib/pqc-gate.js +2 -0
  454. package/lib/pqc-software.js +2 -0
  455. package/lib/privacy-pass.js +2 -0
  456. package/lib/privacy.js +2 -0
  457. package/lib/problem-details.js +2 -0
  458. package/lib/process-spawn.js +2 -0
  459. package/lib/promise-pool.js +2 -0
  460. package/lib/protobuf-encoder.js +2 -0
  461. package/lib/protocol-dispatcher.js +2 -0
  462. package/lib/public-suffix.js +2 -0
  463. package/lib/pubsub-cluster.js +2 -0
  464. package/lib/pubsub-redis.js +2 -0
  465. package/lib/pubsub.js +2 -0
  466. package/lib/queue-local.js +2 -0
  467. package/lib/queue-redis.js +2 -0
  468. package/lib/queue-sqs.js +2 -0
  469. package/lib/queue.js +2 -0
  470. package/lib/redact.js +2 -0
  471. package/lib/redis-client.js +2 -0
  472. package/lib/render.js +2 -0
  473. package/lib/request-helpers.js +2 -0
  474. package/lib/resource-access-lock.js +2 -0
  475. package/lib/restore-bundle.js +2 -0
  476. package/lib/restore-rollback.js +2 -0
  477. package/lib/restore.js +2 -0
  478. package/lib/retention.js +2 -0
  479. package/lib/retry.js +2 -0
  480. package/lib/rfc3339.js +2 -0
  481. package/lib/router.js +2 -0
  482. package/lib/safe-archive.js +2 -0
  483. package/lib/safe-async.js +2 -0
  484. package/lib/safe-buffer.js +2 -0
  485. package/lib/safe-decompress.js +2 -0
  486. package/lib/safe-dns.js +2 -0
  487. package/lib/safe-ical.js +2 -0
  488. package/lib/safe-icap.js +2 -0
  489. package/lib/safe-json.js +2 -0
  490. package/lib/safe-jsonpath.js +2 -0
  491. package/lib/safe-mime.js +2 -0
  492. package/lib/safe-mount-info.js +2 -0
  493. package/lib/safe-path.js +2 -0
  494. package/lib/safe-redirect.js +2 -0
  495. package/lib/safe-schema.js +2 -0
  496. package/lib/safe-sieve.js +2 -0
  497. package/lib/safe-smtp.js +2 -0
  498. package/lib/safe-sql.js +2 -0
  499. package/lib/safe-url.js +2 -0
  500. package/lib/safe-vcard.js +2 -0
  501. package/lib/sandbox-worker.js +2 -0
  502. package/lib/sandbox.js +2 -0
  503. package/lib/scheduler.js +2 -0
  504. package/lib/scitt.js +2 -0
  505. package/lib/sd-notify.js +2 -0
  506. package/lib/sec-cyber.js +2 -0
  507. package/lib/security-assert.js +2 -0
  508. package/lib/seeders.js +2 -0
  509. package/lib/self-update-standalone-verifier.js +2 -0
  510. package/lib/self-update.js +2 -0
  511. package/lib/server-timing.js +2 -0
  512. package/lib/session-device-binding.js +2 -0
  513. package/lib/session-stores.js +2 -0
  514. package/lib/session.js +2 -0
  515. package/lib/slug.js +2 -0
  516. package/lib/sql.js +2 -0
  517. package/lib/sse.js +2 -0
  518. package/lib/ssrf-guard.js +2 -0
  519. package/lib/standard-webhooks.js +2 -0
  520. package/lib/static.js +2 -0
  521. package/lib/storage.js +2 -0
  522. package/lib/stream-throttle.js +2 -0
  523. package/lib/structured-fields.js +2 -0
  524. package/lib/subject.js +2 -0
  525. package/lib/tcpa-10dlc.js +2 -0
  526. package/lib/template.js +2 -0
  527. package/lib/tenant-quota.js +2 -0
  528. package/lib/test-harness.js +2 -0
  529. package/lib/testing.js +2 -0
  530. package/lib/time.js +2 -0
  531. package/lib/tls-exporter.js +2 -0
  532. package/lib/totp.js +2 -0
  533. package/lib/tracing.js +2 -0
  534. package/lib/tsa.js +2 -0
  535. package/lib/uri-template.js +2 -0
  536. package/lib/uuid.js +2 -0
  537. package/lib/validate-opts.js +2 -0
  538. package/lib/vault/index.js +2 -0
  539. package/lib/vault/passphrase-ops.js +2 -0
  540. package/lib/vault/passphrase-source.js +2 -0
  541. package/lib/vault/rotate.js +2 -0
  542. package/lib/vault/seal-pem-file.js +2 -0
  543. package/lib/vault/wrap.js +2 -0
  544. package/lib/vault-aad.js +2 -0
  545. package/lib/vc.js +2 -0
  546. package/lib/vendor-data.js +2 -0
  547. package/lib/vex.js +2 -0
  548. package/lib/watcher.js +2 -0
  549. package/lib/web-push-vapid.js +2 -0
  550. package/lib/webhook-dispatcher.js +2 -0
  551. package/lib/webhook.js +2 -0
  552. package/lib/websocket-channels.js +2 -0
  553. package/lib/websocket.js +2 -0
  554. package/lib/wiki-concepts.js +2 -0
  555. package/lib/worker-pool.js +2 -0
  556. package/lib/worm.js +2 -0
  557. package/lib/ws-client.js +2 -0
  558. package/lib/x509-chain.js +2 -0
  559. package/lib/xml-c14n.js +2 -0
  560. package/package.json +3 -3
  561. package/sbom.cdx.json +7 -7
package/CHANGELOG.md CHANGED
@@ -6,6 +6,12 @@ Pre-1.0 the surface is intentionally evolving — every release may
6
6
  change something operators depend on. Read each entry before
7
7
  upgrading across more than a few patches at a time.
8
8
 
9
+ ## v0.16.x
10
+
11
+ - v0.16.1 (2026-07-03) — **Every source file now carries an SPDX license + copyright header; the wiki example emits its full HSTS when it runs behind a TLS-terminating reverse proxy; and a good-first-issue on-ramp lands for new contributors.** This patch stamps a per-file `SPDX-License-Identifier: Apache-2.0` and a copyright line onto every first-party source file, so the license of any single file is unambiguous when it is read, audited, or vendored in isolation. The project stays Apache-2.0 — this is a clarity change, not a license change, and vendored third-party files under lib/vendor/ keep their own upstream headers. The wiki example now passes its trusted-proxy CIDRs to the securityHeaders middleware: a deployment behind a TLS-terminating reverse proxy (Caddy or nginx) that forwards `X-Forwarded-Proto: https` now emits the framework's strong HSTS (two-year max-age, includeSubDomains, preload) instead of suppressing it on the plain-HTTP hop from the proxy — the wiki e2e asserts both the proxied-https and the direct-http cases. CONTRIBUTING gains a good-first-issue on-ramp so new contributors have a clear, small first step. **Added:** *Per-file SPDX license and copyright headers* — Every first-party source file now begins with `// SPDX-License-Identifier: Apache-2.0` and a copyright line, so the license and holder of any individual file are explicit when it is read or extracted on its own. No license change — the project remains Apache-2.0. Vendored files under `lib/vendor/` are untouched and retain their upstream license headers. **Changed:** *Good-first-issue on-ramp for new contributors* — CONTRIBUTING now points new contributors at issues labelled `good first issue` — small, self-contained tasks (a doc or wiki-example fix, a test for an uncovered branch) that are the easiest first step into the codebase. **Security:** *Wiki example emits its full HSTS behind a TLS-terminating reverse proxy* — The wiki example app now hands its trusted-proxy CIDRs to `securityHeaders`, so behind Caddy or nginx forwarding `X-Forwarded-Proto: https` it emits `Strict-Transport-Security: max-age=63072000; includeSubDomains; preload` rather than dropping HSTS on the internal HTTP hop from the proxy. Operators modelling their own app on the example inherit the fix by declaring their proxy CIDRs via `WIKI_ADMIN_TRUSTED_PROXIES` (the production compose already defaults to the private ranges). The framework's `securityHeaders` primitive is unchanged; this closes a wiring gap in the example.
12
+
13
+ - v0.16.0 (2026-07-03) — **Raises the minimum Node.js engine to 24.18.0; the status-list verifier now binds the token type against a typ-confusion replay; and CI supply-chain pinning is consolidated behind committed dev/example lockfiles, `npm ci`, and a single aggregating pin tool that closes the OpenSSF Scorecard pinned-dependency gaps.** This minor raises the supported Node.js floor from 24.16.0 to 24.18.0 — operators must run Node 24.18.0 or newer (24.17.0 was a security release; 24.18.0 bundles SQLite 3.53.1 and a backup-path fix, and guarantees the native OpenSSL 3.5 SLH-DSA surface). b.auth.statusList.fromJwt now enforces RFC 8725 §3.11 by binding the JWS header typ to the "statuslist+jwt" that toJwt stamps, so a token minted for another purpose can't be replayed as a status list. The build's supply-chain pinning is reworked so OpenSSF Scorecard sees pinned installs everywhere it can: the dev-tool, example, and fuzz manifests now ship committed lockfiles and CI installs them with `npm ci` (Scorecard keys pinning on the `ci` verb, not on an `@version` specifier), the vendored fuzz toolchain and the oss-fuzz base image are pinned, and a new scripts/pin-all.js aggregates every pin — regenerating all lockfiles, pinning the GitHub Action SHAs, and syncing the Docker base-image digests in one `--fix`, with a `--check` gate wired into CI and the release flow so no pin can silently drift. The committed lockfiles are dev/example-only and excluded from the published tarball; the zero-npm-RUNTIME-deps rule is unchanged. **Added:** *scripts/pin-all.js — aggregated supply-chain pin tool* — One command re-pins every supply-chain segment: `--fix` regenerates the committed lockfiles (root / examples/wiki / fuzz), pins the GitHub Action SHAs, and syncs the Docker base-image digests; `--check` (wired into CI and the release flow) verifies the lockfile and digest segments — including each lockfile's package version — are in sync and fails closed on drift. Contributor tooling — it does not ship in the tarball. · *Project-governance and assurance documentation; OpenSSF Best Practices silver badge* — Adds a ROADMAP.md (documented direction plus an explicit out-of-scope list), a Developer Certificate of Origin policy in CONTRIBUTING.md (contributions carry a Signed-off-by; releases sign off through the release tooling), and an explicit security assurance case in SECURITY.md (a top security claim decomposed into evidence-backed sub-claims, with a residual-risk statement). The project earned the OpenSSF Best Practices silver badge, linked from the README. **Changed:** *Minimum Node.js engine raised to 24.18.0* — engines.node is now >=24.18.0 (was >=24.16.0). Operators must run Node 24.18.0 or newer. 24.17.0 was a security release and 24.18.0 bundles SQLite 3.53.1 plus a backup-keepalive fix; the floor also guarantees the native OpenSSL 3.5 SLH-DSA sign/verify surface. CI, the release container, and the docs are updated to the new floor. · *Supply-chain pinning consolidated behind committed lockfiles + `npm ci` + one aggregating pin tool* — The root dev-tool (esbuild, postject), examples/wiki, and fuzz (jazzer.js) manifests now ship committed package-lock.json files, and CI installs them with `npm ci` instead of `npm install pkg@version` — OpenSSF Scorecard's Pinned-Dependencies check treats only the `npm ci` verb as pinned, so this is what actually clears those alerts (an exact `@version` specifier does not). The vendored fuzz toolchain is pinned to an exact jazzer version and the oss-fuzz base image is digest-pinned (mirroring the Dependabot-tracked .clusterfuzzlite digest). A new scripts/pin-all.js aggregates every pinning segment — it regenerates all committed lockfiles, pins the GitHub Action SHAs (via check-actions-currency), and syncs the Docker base-image digests in one `--fix`; a `--check` mode runs in CI and scripts/release.js so a stale lockfile or drifted digest fails closed. The committed lockfiles are dev/example-only, excluded from the published tarball's files allowlist; the zero-npm-RUNTIME-deps rule is unchanged. **Security:** *Status-list verification binds the token type (RFC 8725 §3.11 typ-confusion)* — b.auth.statusList.fromJwt now passes expectedTyp "statuslist+jwt" to the JWT verifier, matching the typ that b.auth.statusList.toJwt stamps and every sibling verifier enforces. A token minted for another purpose — even one that happens to carry a status_list.lst claim — is now refused on the type binding before the claim is read, closing the typ-confusion class where such a token could be replayed as a status list.
14
+
9
15
  ## v0.15.x
10
16
 
11
17
  - v0.15.68 (2026-07-02) — **A security-hardening release: mail delivery-status / return-receipt / ARC builders reject CR, LF, and NUL in header-line fields (header injection); the XML canonicalizer's nesting cap now actually fires (stack-overflow DoS on deeply-nested SAML/WebDAV input); and the Idempotency-Key replay cache is scoped to the authenticated principal (cross-actor response disclosure) — plus archive/SRS byte hardening.** b.mail composes RFC 3464 delivery-status notifications (b.mail.send.deliver(...).buildDsn, b.mailBounce.dsn.build), RFC 8098 message-disposition notifications (b.mailMdn.build), and RFC 8617 ARC signatures (b.mail.arc.sign) by interpolating operator- and peer-supplied values — recipient addresses, the reporting-MTA name, the remote server's 5xx diagnostic reply, and the ARC authserv-id / domain / selector — into `Name: value` header lines. A value containing a CR or LF let a hostile original sender (whose message is being bounced) or a malicious peer MX (whose 5xx reply is echoed into the DSN) inject an extra header or forge an additional multipart/report part. Structured fields (addresses, MTA names, identifiers) are now rejected outright, and the free-text 5xx diagnostic — which is legitimately multi-line — is folded to a single line. The same class is closed in two adjacent places: tar and zip entry names refuse CR/LF (a bare LF in an over-long tar name flowed into the POSIX pax extended header, where a crafted name could forge a `path=` record that overrides the ustar name and escapes the extraction directory), and SRS envelope-from rewriting refuses control characters in the address it re-emits as a MAIL FROM. A new b.safeBuffer.assertHeaderSafe primitive centralizes the reject-CR/LF/NUL check every header builder now composes. **Added:** *b.safeBuffer.assertHeaderSafe(value, label, ErrorClass, code)* — Throws when a string bound for a CRLF-delimited protocol line contains CR, LF, or a NUL byte, in the caller's own error domain. Structured header fields (addresses, domains, identifiers, MTA names) compose it to reject. · *b.safeBuffer.foldHeaderText(value, replacement?)* — Folds free-text bound for a header line onto one line — replaces every CR and LF with the replacement (default a space) and removes every NUL. Used for values that may legitimately wrap, such as a multi-line SMTP 5xx reply echoed into a DSN diagnostic line, where rejecting would be too strict; unlike a plain CR/LF strip it also removes NUL, which is never valid in a header value and is treated specially by downstream mail parsers. **Changed:** *Refreshed the vendored public-suffix list and the pinned CI action SHAs* — The vendored Mozilla Public Suffix List (which backs registrable-domain boundaries in b.guardDomain and cookie-scope checks) is refreshed to its current upstream revision, and the SHA-pinned GitHub Actions in the release and scanning workflows are bumped to their latest upstream releases. No operator action required. · *Concurrent DNS cache misses are coalesced into a single upstream lookup* — b.network.dns.resolver now single-flights in-flight queries: when several callers miss the cache for the same name at once, one upstream lookup is issued and the others await its result, instead of each firing its own request (a cache stampede that amplified load on the upstream resolver). Each caller still applies its own DNSSEC validate gate against the shared answer. **Security:** *Delivery-status notifications refuse header-injecting fields; the 5xx diagnostic is folded* — b.mail.send.deliver(...).buildDsn and b.mailBounce.dsn.build build an RFC 3464 multipart/report message from the failing recipient, the original sender, the reporting-MTA name, the enhanced status code, and the remote server's 5xx diagnostic reply. The 5xx reply is attacker-influenceable (it comes from the peer MX) and the addresses can come from a message being bounced. A CR or LF in any of these smuggled a new header or forged a report part into a message the operator then relays. Structured fields now reject CR/LF/NUL (the composer throws rather than emit an ambiguous message), and the free-text diagnostic is folded to one line so its text is preserved without introducing a line break. · *Message-disposition notifications refuse header-injecting fields* — b.mailMdn.build places the final recipient, original recipient, original message-id, reporting user-agent, and the From/To/Subject of the return receipt on header lines. Because an MDN is generated in response to an inbound message, these fields can carry attacker-chosen content; a CR or LF injected a header into the receipt. Each structured field now rejects CR/LF/NUL before the message is built. · *ARC signing refuses CR/LF/NUL in the authentication-results identity* — b.mail.arc.sign already refused CR/LF in the authentication-results value, but the ARC authserv-id, signing domain, and selector — interpolated verbatim into the ARC-Authentication-Results, ARC-Seal, and ARC-Message-Signature header block — were only checked for emptiness. A CR or LF in one of them injected a header into the signed block. All three now reject CR/LF/NUL. · *Archive entry names refuse CR/LF, closing a pax path-override escape* — tar and zip entry names already rejected a NUL byte and `..` segments but not CR/LF. In a tar archive, a bare LF in an over-long name flowed into the POSIX pax extended header (`len key=value\n`); because a pax `path=` record overrides the ustar header's name, a crafted name could inject an absolute `path=` record and write outside the extraction directory — an escape the `..` check does not catch. Both the tar and zip name normalizers now reject CR/LF. · *SRS envelope rewriting refuses control characters in the address* — b.mail.srs rewrite / srs1Rewrite / reverse embed the address they are given into the SRS0/SRS1 envelope address that becomes a subsequent SMTP MAIL FROM. They now reject CR/LF/NUL in the input address so a malformed address cannot be smuggled into an envelope command. · *The XML canonicalizer's nesting-depth cap now actually fires (stack-overflow DoS)* — b.xmlC14n.parse — the recursive-descent parser behind SAML and WebDAV canonicalization — carried a documented 200-level nesting cap that was dead: the depth counter was a per-frame-local incremented then decremented around each single recursive call, so it never exceeded 1 at the check. Deeply-nested untrusted XML recursed unbounded and overflowed the stack, crashing the process — a pre-authentication denial of service for any endpoint that canonicalizes attacker-supplied XML. The depth is now threaded through the recursion and enforced at entry, so nesting past the cap is refused before it can exhaust the stack. · *The Idempotency-Key replay cache is scoped to the authenticated principal* — b.middleware.idempotencyKey keyed its replay/response cache slot solely on the client-supplied Idempotency-Key header, with no binding to the authenticated principal. Two principals presenting the same (shared or guessed) key collided: one was served the other's cached response (cross-actor disclosure), or an attacker could pre-seed a key to force a 422 on the real client (cross-actor denial). The slot is now scoped to the authenticated principal, resolved via b.requestHelpers.extractActorContext and overridable with the new opts.scopeFn. Mount the middleware after authentication so the request carries the principal; slots for unauthenticated requests share a single anonymous scope. · *Mail and data parsers reject reserved prototype keys in untrusted input* — b.csv.parse, b.mime-parse (Content-Type parameters), b.eat (Entity Attestation Token claims), b.mailBimi (tiny-PS attributes), b.mailArf (feedback-report fields), and b.safeIcap (ICAP response headers) built plain objects keyed by names taken directly from untrusted input. A key of __proto__, constructor, or prototype would shadow or re-parent the object, letting an attacker taint a downstream type check. Every one of these sites now refuses the reserved keys — CSV throws csv/forbidden-header (an operator DDL surface); the parsers that must stay lenient drop the poisoned key and keep parsing. · *Verifiable-credential JOSE verification binds the algorithm to the key's curve* — b.vc.verify / b.vc.verifyPresentation resolved the public key and then verified with the algorithm named in the attacker-controlled JWS header, with no check that the two agree. A header claiming ES384 (or EdDSA) could be verified against a P-256 key an ECDSA curve/type confusion (CWE-347, RFC 7518 §3.4). The verifier now rejects any alg whose required curve/key-type doesn't match the resolved key, before the signature check. · *Span-event names are redacted on the telemetry wire* — The OTLP span exporter ran span names and exception messages through the telemetry redactor but passed span-EVENT names through verbatim, so a value-shape secret (a connection string, a token) placed in an event name egressed unredacted. Event names now route through the same redactor as span names, on both the JSON and protobuf wire paths. · *Session refresh enforces the idle and absolute timeout floors* — b.session.touch refreshed a session's activity timestamp without re-checking the idle / absolute timeout floors that b.session.verify enforces, so a floor-expired session could be resurrected by a refresh instead of being killed. Both floors are now evaluated on the refresh path (as on verify), and a session past either floor is deleted rather than extended.
package/README.md CHANGED
@@ -13,6 +13,7 @@ One install. One upgrade path. One place to look when something breaks — no bl
13
13
  [![CI](https://img.shields.io/github/actions/workflow/status/blamejs/blamejs/ci.yml?branch=main&label=CI)](https://github.com/blamejs/blamejs/actions/workflows/ci.yml)
14
14
  [![release](https://img.shields.io/github/v/release/blamejs/blamejs?include_prereleases&sort=semver)](https://github.com/blamejs/blamejs/releases)
15
15
  [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/blamejs/blamejs/badge)](https://scorecard.dev/viewer/?uri=github.com/blamejs/blamejs)
16
+ [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/13471/badge)](https://www.bestpractices.dev/projects/13471)
16
17
  [![SLSA Level 3](https://slsa.dev/images/gh-badge-level3.svg)](https://slsa.dev)
17
18
  [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
18
19
  [![node](https://img.shields.io/node/v/@blamejs/core.svg)](https://nodejs.org)
@@ -52,7 +53,7 @@ var b = require("@blamejs/core");
52
53
  })();
53
54
  ```
54
55
 
55
- **Requirements:** Node.js 24.16+ (current active LTS line; 24.14.1 fixed CVE-2026-21713 non-constant-time HMAC compare, 24.16 is the current patch level). Node 26 satisfies the floor and the framework test suite runs cleanly on it today; the floor itself will bump to `>=26.x` when Node 26 promotes to Active LTS. Two Node 26 platform changes operators integrating with blamejs should know about: the new `localStorage` global (the framework's storage backend is `b.backup.diskStorage`; the legacy `b.backup.localStorage` alias was removed in v0.11.20 — update call sites accordingly), and the seed-only ML-KEM / ML-DSA PKCS8 export shape (sealed material from Node 24 re-imports cleanly on Node 26; new material from Node 26 in the seed-only shape). See [SECURITY.md](SECURITY.md#node-26-compatibility) for the details.
56
+ **Requirements:** Node.js 24.18+ (current active LTS line; 24.14.1 fixed CVE-2026-21713 non-constant-time HMAC compare, 24.18 is the current patch level). Node 26 satisfies the floor and the framework test suite runs cleanly on it today; the floor itself will bump to `>=26.x` when Node 26 promotes to Active LTS. Two Node 26 platform changes operators integrating with blamejs should know about: the new `localStorage` global (the framework's storage backend is `b.backup.diskStorage`; the legacy `b.backup.localStorage` alias was removed in v0.11.20 — update call sites accordingly), and the seed-only ML-KEM / ML-DSA PKCS8 export shape (sealed material from Node 24 re-imports cleanly on Node 26; new material from Node 26 in the seed-only shape). See [SECURITY.md](SECURITY.md#node-26-compatibility) for the details.
56
57
 
57
58
  ## What ships in the box
58
59
 
package/bin/blamejs.js CHANGED
@@ -1,4 +1,6 @@
1
1
  #!/usr/bin/env node
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ // Copyright (c) blamejs contributors
2
4
  "use strict";
3
5
  // Thin entrypoint — all dispatch logic lives in lib/cli.js so it can
4
6
  // be driven from tests without spawning a child process.
package/index.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
 
3
5
  // TLS 1.3 minimum, framework-wide. Sets the default for every TLS
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * lib/_test/crypto-fixtures.js — test-only fixtures for crypto round-
package/lib/a2a-tasks.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.a2a
package/lib/a2a.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.a2a
package/lib/acme.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.acme
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * b.agent._audit — internal shared audit-emit helper for the agent
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * b.agent._envelopeMac — internal shared keyed-MAC mechanism for
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.agent.eventBus
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.agent.idempotency
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.agent.orchestrator
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.agent.postureChain
package/lib/agent-saga.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.agent.saga
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.agent.snapshot
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.agent.stream
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.agent.tenant
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.agent.trace
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * b.ai.adverseDecision — adverse-decision wrapper for automated
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.ai.aedtBiasAudit
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.ai.capability
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.ai.aiContentDetect
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.ai.disclosure
package/lib/ai-dp.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.ai.dp
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.ai.frontierModelProtocol
package/lib/ai-input.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.ai.input
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.ai.modelManifest
package/lib/ai-output.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.ai.output
package/lib/ai-pref.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.aiPref
package/lib/ai-prompt.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.ai.prompt
package/lib/ai-quota.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.ai.quota
package/lib/api-key.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.apiKey
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.apiSnapshot
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.appShutdown
package/lib/app.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * createApp — factory that wires the framework's primitives into a
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.archive.adapters
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * lib/archive-entry-policy.js — the entry-type extraction policy shared by the
package/lib/archive-gz.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * archive-gz — gzip composition primitives. Sibling of lib/archive.js
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * archive-read — random-access + trusted-sequential ZIP reader.
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * archive-tar-read — POSIX pax tar reader. Sibling of lib/archive-tar.js
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * archive-tar — POSIX pax tar write + read. Sibling of lib/archive.js
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * archive-wrap — recipient-based whole-archive encryption substrate
package/lib/archive.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.archive
package/lib/arg-parser.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.argParser
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * Thin wrapper over Node's built-in `crypto.argon2` that produces and
package/lib/asn1-der.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * asn1-der — minimal ASN.1 DER walker for the framework's narrow
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * AsyncAPI 3.0 protocol bindings.
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * AsyncAPI 3.0 traits — reusable fragments that operations and
package/lib/asyncapi.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.asyncapi
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.atomicFile
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.auditChain
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.auditDailyReview
package/lib/audit-emit.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
 
3
5
  // audit-emit — the stateless drop-silent audit emitter with a metadata-first,
package/lib/audit-sign.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.auditSign
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.auditTools
package/lib/audit.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.audit
package/lib/auth/aal.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * NIST SP 800-63-4 Authentication Assurance Levels.
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * b.auth.accessLock — three-mode access-lock primitive for stop-the-
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * ACR (Authentication Context Class Reference) vocabulary.
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * b.auth.atoKillSwitch — composite primitive for account-takeover
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * auth_time enforcement helpers per RFC 9470 §3 + OIDC Core 1.0 §2.
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.auth.botChallenge
package/lib/auth/ciba.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.auth.ciba
package/lib/auth/dpop.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * DPoP — Demonstrating Proof of Possession (RFC 9449).
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * Step-up elevation grant — short-lived signed tokens that record a
package/lib/auth/fal.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.auth.fal
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * FIDO Metadata Service v3 (MDS3) — authenticator metadata BLOB
package/lib/auth/jar.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.auth.jar
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * jwt-external — verify JWTs signed by an external IdP using classical
package/lib/auth/jwt.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * JWT (RFC 7519) — PQC-signed JSON Web Tokens.
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * b.auth.lockout — per-key failed-attempt tracking with exponential
package/lib/auth/oauth.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * oauth — OAuth 2 / OIDC client.
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.auth.oid4vci
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.auth.oid4vp
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.auth.openidFederation
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * Passkey / WebAuthn (FIDO2) — registration + authentication primitives.
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * Argon2id password hashing — public framework primitive.
package/lib/auth/saml.js CHANGED
@@ -1,3 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (c) blamejs contributors
1
3
  "use strict";
2
4
  /**
3
5
  * @module b.auth.saml