@blamejs/core 0.14.0 → 0.14.2

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 (277) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/lib/_test/crypto-fixtures.js +3 -3
  3. package/lib/a2a-tasks.js +18 -18
  4. package/lib/a2a.js +4 -4
  5. package/lib/acme.js +3 -3
  6. package/lib/agent-idempotency.js +1 -1
  7. package/lib/agent-orchestrator.js +8 -8
  8. package/lib/agent-posture-chain.js +2 -2
  9. package/lib/agent-saga.js +1 -1
  10. package/lib/agent-snapshot.js +1 -1
  11. package/lib/agent-stream.js +1 -1
  12. package/lib/agent-tenant.js +1 -1
  13. package/lib/agent-trace.js +3 -3
  14. package/lib/ai-capability.js +1 -1
  15. package/lib/ai-dp.js +4 -4
  16. package/lib/ai-input.js +3 -3
  17. package/lib/ai-model-manifest.js +7 -7
  18. package/lib/ai-pref.js +3 -3
  19. package/lib/archive-gz.js +2 -2
  20. package/lib/archive-read.js +25 -25
  21. package/lib/archive-tar-read.js +2 -2
  22. package/lib/archive-tar.js +20 -20
  23. package/lib/archive-wrap.js +10 -10
  24. package/lib/argon2-builtin.js +1 -1
  25. package/lib/asn1-der.js +45 -34
  26. package/lib/atomic-file.js +2 -2
  27. package/lib/audit-daily-review.js +3 -3
  28. package/lib/audit-sign.js +5 -5
  29. package/lib/audit-tools.js +1 -1
  30. package/lib/audit.js +2 -2
  31. package/lib/auth/acr-vocabulary.js +2 -2
  32. package/lib/auth/bot-challenge.js +3 -3
  33. package/lib/auth/ciba.js +7 -7
  34. package/lib/auth/dpop.js +3 -3
  35. package/lib/auth/fido-mds3.js +8 -8
  36. package/lib/auth/jar.js +11 -0
  37. package/lib/auth/jwt-external.js +5 -5
  38. package/lib/auth/oauth.js +7 -9
  39. package/lib/auth/oid4vci.js +10 -10
  40. package/lib/auth/oid4vp.js +2 -2
  41. package/lib/auth/openid-federation.js +2 -2
  42. package/lib/auth/passkey.js +3 -3
  43. package/lib/auth/saml.js +29 -25
  44. package/lib/auth/sd-jwt-vc-disclosure.js +1 -1
  45. package/lib/auth/sd-jwt-vc.js +4 -4
  46. package/lib/auth/status-list.js +10 -10
  47. package/lib/auth/step-up.js +1 -1
  48. package/lib/auth-bot-challenge.js +1 -1
  49. package/lib/backup/index.js +7 -7
  50. package/lib/base32.js +8 -8
  51. package/lib/budr.js +2 -2
  52. package/lib/cache-status.js +2 -2
  53. package/lib/calendar.js +23 -23
  54. package/lib/cbor.js +12 -12
  55. package/lib/cdn-cache-control.js +1 -1
  56. package/lib/cert.js +5 -5
  57. package/lib/cloud-events.js +5 -5
  58. package/lib/cms-codec.js +21 -21
  59. package/lib/codepoint-class.js +12 -12
  60. package/lib/compliance-sanctions-fuzzy.js +4 -4
  61. package/lib/compliance-sanctions.js +4 -4
  62. package/lib/compliance.js +29 -29
  63. package/lib/content-credentials.js +36 -36
  64. package/lib/cookies.js +1 -1
  65. package/lib/cose.js +13 -13
  66. package/lib/cra-report.js +1 -1
  67. package/lib/crdt.js +1 -1
  68. package/lib/crypto-field.js +2 -2
  69. package/lib/crypto-xwing.js +7 -7
  70. package/lib/crypto.js +6 -6
  71. package/lib/csp.js +2 -2
  72. package/lib/cwt.js +4 -4
  73. package/lib/dark-patterns.js +2 -2
  74. package/lib/data-act.js +2 -2
  75. package/lib/db-file-lifecycle.js +4 -4
  76. package/lib/db-query.js +1 -1
  77. package/lib/db.js +6 -6
  78. package/lib/dbsc.js +13 -13
  79. package/lib/did.js +17 -17
  80. package/lib/dora.js +4 -4
  81. package/lib/dsr.js +1 -1
  82. package/lib/early-hints.js +2 -2
  83. package/lib/eat.js +4 -4
  84. package/lib/external-db-migrate.js +1 -1
  85. package/lib/external-db.js +1 -1
  86. package/lib/flag-cache.js +1 -1
  87. package/lib/flag-evaluation-context.js +2 -2
  88. package/lib/graphql-federation.js +4 -4
  89. package/lib/guard-agent-registry.js +5 -5
  90. package/lib/guard-archive.js +24 -24
  91. package/lib/guard-cidr.js +33 -33
  92. package/lib/guard-csv.js +1 -1
  93. package/lib/guard-domain.js +10 -10
  94. package/lib/guard-dsn.js +4 -4
  95. package/lib/guard-email.js +19 -19
  96. package/lib/guard-event-bus-payload.js +4 -4
  97. package/lib/guard-event-bus-topic.js +6 -6
  98. package/lib/guard-filename.js +7 -7
  99. package/lib/guard-graphql.js +9 -9
  100. package/lib/guard-html-wcag-tagwalk.js +1 -1
  101. package/lib/guard-html-wcag.js +4 -4
  102. package/lib/guard-html.js +7 -7
  103. package/lib/guard-idempotency-key.js +6 -6
  104. package/lib/guard-image.js +4 -4
  105. package/lib/guard-imap-command.js +17 -17
  106. package/lib/guard-jmap.js +20 -20
  107. package/lib/guard-json.js +12 -12
  108. package/lib/guard-jsonpath.js +3 -3
  109. package/lib/guard-jwt.js +4 -4
  110. package/lib/guard-list-id.js +7 -7
  111. package/lib/guard-list-unsubscribe.js +8 -8
  112. package/lib/guard-mail-compose.js +4 -4
  113. package/lib/guard-mail-move.js +5 -5
  114. package/lib/guard-mail-query.js +3 -3
  115. package/lib/guard-mail-reply.js +3 -3
  116. package/lib/guard-mail-sieve.js +6 -6
  117. package/lib/guard-managesieve-command.js +25 -25
  118. package/lib/guard-markdown.js +31 -31
  119. package/lib/guard-message-id.js +5 -5
  120. package/lib/guard-mime.js +1 -1
  121. package/lib/guard-oauth.js +3 -3
  122. package/lib/guard-pdf.js +6 -6
  123. package/lib/guard-pop3-command.js +11 -11
  124. package/lib/guard-posture-chain.js +5 -5
  125. package/lib/guard-regex.js +10 -10
  126. package/lib/guard-saga-config.js +5 -5
  127. package/lib/guard-smtp-command.js +6 -6
  128. package/lib/guard-snapshot-envelope.js +3 -3
  129. package/lib/guard-stream-args.js +4 -4
  130. package/lib/guard-svg.js +11 -11
  131. package/lib/guard-tenant-id.js +5 -5
  132. package/lib/guard-time.js +15 -15
  133. package/lib/guard-trace-context.js +4 -4
  134. package/lib/guard-uuid.js +11 -11
  135. package/lib/guard-xml.js +12 -12
  136. package/lib/guard-yaml.js +16 -16
  137. package/lib/honeytoken.js +5 -5
  138. package/lib/http-client.js +1 -1
  139. package/lib/http-message-signature.js +2 -2
  140. package/lib/iab-mspa.js +3 -3
  141. package/lib/iab-tcf.js +70 -70
  142. package/lib/inbox.js +4 -4
  143. package/lib/ip-utils.js +15 -15
  144. package/lib/jose-jwe-experimental.js +2 -2
  145. package/lib/json-path.js +3 -3
  146. package/lib/json-schema.js +1 -1
  147. package/lib/jsonapi.js +3 -3
  148. package/lib/jtd.js +2 -2
  149. package/lib/link-header.js +1 -1
  150. package/lib/local-db-thin.js +1 -1
  151. package/lib/log.js +1 -1
  152. package/lib/lro.js +4 -4
  153. package/lib/mail-agent.js +1 -1
  154. package/lib/mail-arc-sign.js +6 -6
  155. package/lib/mail-auth.js +43 -43
  156. package/lib/mail-bimi.js +3 -3
  157. package/lib/mail-crypto-pgp.js +53 -45
  158. package/lib/mail-crypto-smime.js +5 -5
  159. package/lib/mail-dav.js +1 -1
  160. package/lib/mail-deploy.js +39 -39
  161. package/lib/mail-dkim.js +11 -11
  162. package/lib/mail-greylist.js +12 -12
  163. package/lib/mail-helo.js +1 -1
  164. package/lib/mail-journal.js +8 -8
  165. package/lib/mail-rbl.js +7 -7
  166. package/lib/mail-scan.js +7 -7
  167. package/lib/mail-send-deliver.js +2 -2
  168. package/lib/mail-server-imap.js +12 -12
  169. package/lib/mail-server-jmap.js +16 -16
  170. package/lib/mail-server-managesieve.js +4 -4
  171. package/lib/mail-server-mx.js +17 -17
  172. package/lib/mail-server-pop3.js +4 -4
  173. package/lib/mail-server-rate-limit.js +2 -2
  174. package/lib/mail-server-submission.js +21 -21
  175. package/lib/mail-sieve.js +2 -2
  176. package/lib/mail-spam-score.js +5 -5
  177. package/lib/mail-srs.js +12 -12
  178. package/lib/mail-store-fts.js +2 -2
  179. package/lib/mail-store.js +8 -8
  180. package/lib/mail-unsubscribe.js +4 -4
  181. package/lib/mail.js +4 -4
  182. package/lib/mcp-tool-registry.js +4 -4
  183. package/lib/mcp.js +8 -8
  184. package/lib/mdoc.js +2 -2
  185. package/lib/metrics.js +8 -8
  186. package/lib/middleware/age-gate.js +1 -1
  187. package/lib/middleware/api-encrypt.js +7 -7
  188. package/lib/middleware/assetlinks.js +2 -2
  189. package/lib/middleware/asyncapi-serve.js +2 -2
  190. package/lib/middleware/bearer-auth.js +5 -5
  191. package/lib/middleware/body-parser.js +5 -5
  192. package/lib/middleware/compose-pipeline.js +15 -15
  193. package/lib/middleware/csp-report.js +4 -4
  194. package/lib/middleware/daily-byte-quota.js +1 -1
  195. package/lib/middleware/dpop.js +1 -1
  196. package/lib/middleware/headers.js +2 -2
  197. package/lib/middleware/host-allowlist.js +1 -1
  198. package/lib/middleware/idempotency-key.js +12 -12
  199. package/lib/middleware/nel.js +1 -1
  200. package/lib/middleware/openapi-serve.js +2 -2
  201. package/lib/middleware/protected-resource-metadata.js +2 -2
  202. package/lib/middleware/require-aal.js +1 -1
  203. package/lib/middleware/require-bound-key.js +2 -2
  204. package/lib/middleware/require-content-type.js +1 -1
  205. package/lib/middleware/require-methods.js +1 -1
  206. package/lib/middleware/require-step-up.js +2 -2
  207. package/lib/middleware/scim-server.js +1 -1
  208. package/lib/middleware/security-txt.js +3 -3
  209. package/lib/middleware/tus-upload.js +12 -12
  210. package/lib/middleware/web-app-manifest.js +2 -2
  211. package/lib/network-byte-quota.js +1 -1
  212. package/lib/network-dns-resolver.js +23 -23
  213. package/lib/network-dns.js +29 -29
  214. package/lib/network-dnssec.js +33 -33
  215. package/lib/network-smtp-policy.js +10 -10
  216. package/lib/network-tls.js +99 -94
  217. package/lib/network-tsig.js +33 -33
  218. package/lib/nis2-report.js +1 -1
  219. package/lib/ntp-check.js +3 -3
  220. package/lib/observability-otlp-exporter.js +17 -17
  221. package/lib/observability-tracer.js +6 -6
  222. package/lib/observability.js +8 -8
  223. package/lib/openapi-yaml.js +1 -1
  224. package/lib/openapi.js +1 -1
  225. package/lib/outbox.js +6 -6
  226. package/lib/pqc-agent.js +4 -4
  227. package/lib/pqc-software.js +1 -1
  228. package/lib/privacy-pass.js +5 -5
  229. package/lib/problem-details.js +5 -5
  230. package/lib/promise-pool.js +1 -1
  231. package/lib/protobuf-encoder.js +9 -1
  232. package/lib/queue.js +4 -2
  233. package/lib/redact.js +2 -2
  234. package/lib/request-helpers.js +1 -1
  235. package/lib/router.js +10 -10
  236. package/lib/safe-async.js +2 -2
  237. package/lib/safe-dns.js +71 -71
  238. package/lib/safe-ical.js +19 -19
  239. package/lib/safe-icap.js +24 -24
  240. package/lib/safe-jsonpath.js +2 -2
  241. package/lib/safe-mime.js +10 -10
  242. package/lib/safe-mount-info.js +3 -3
  243. package/lib/safe-redirect.js +1 -1
  244. package/lib/safe-sieve.js +23 -23
  245. package/lib/safe-smtp.js +1 -1
  246. package/lib/safe-vcard.js +14 -14
  247. package/lib/sandbox.js +5 -5
  248. package/lib/sec-cyber.js +1 -1
  249. package/lib/self-update-standalone-verifier.js +3 -3
  250. package/lib/self-update.js +3 -3
  251. package/lib/server-timing.js +3 -3
  252. package/lib/session-device-binding.js +7 -7
  253. package/lib/session.js +8 -8
  254. package/lib/standard-webhooks.js +4 -4
  255. package/lib/storage.js +2 -2
  256. package/lib/stream-throttle.js +1 -1
  257. package/lib/structured-fields.js +15 -15
  258. package/lib/subject.js +1 -1
  259. package/lib/tcpa-10dlc.js +1 -1
  260. package/lib/tenant-quota.js +3 -3
  261. package/lib/test-harness.js +1 -1
  262. package/lib/tracing.js +1 -1
  263. package/lib/tsa.js +5 -5
  264. package/lib/uri-template.js +5 -5
  265. package/lib/vault/index.js +2 -2
  266. package/lib/vault/seal-pem-file.js +4 -4
  267. package/lib/vc.js +2 -2
  268. package/lib/vendor-data.js +1 -1
  269. package/lib/watcher.js +4 -4
  270. package/lib/web-push-vapid.js +21 -21
  271. package/lib/webhook.js +2 -2
  272. package/lib/websocket.js +3 -3
  273. package/lib/worker-pool.js +3 -3
  274. package/lib/ws-client.js +24 -24
  275. package/lib/xml-c14n.js +2 -2
  276. package/package.json +1 -1
  277. package/sbom.cdx.json +6 -6
package/lib/cose.js CHANGED
@@ -60,12 +60,12 @@ var { defineClass } = require("./framework-error");
60
60
 
61
61
  var CoseError = defineClass("CoseError", { alwaysPermanent: true });
62
62
 
63
- var COSE_SIGN1_TAG = 18; // allow:raw-byte-literal — RFC 9052 COSE_Sign1 CBOR tag
63
+ var COSE_SIGN1_TAG = 18; // RFC 9052 COSE_Sign1 CBOR tag
64
64
  var HDR_ALG = 1; // RFC 9052 §3.1 header label: alg
65
65
  var HDR_CRIT = 2; // header label: crit
66
66
  var HDR_CONTENT_TYPE = 3; // header label: content type
67
67
  var HDR_KID = 4; // header label: kid
68
- var HDR_CWT_CLAIMS = 15; // allow:raw-byte-literal — RFC 9597 CWT Claims header label (carries SCITT iss/sub)
68
+ var HDR_CWT_CLAIMS = 15; // RFC 9597 CWT Claims header label (carries SCITT iss/sub)
69
69
 
70
70
  // COSE algorithm identifiers. ML-DSA-87 is a NON-FINAL requested
71
71
  // assignment (draft-ietf-cose-dilithium) — pinned deliberately, re-open
@@ -73,7 +73,7 @@ var HDR_CWT_CLAIMS = 15;
73
73
  // (RFC 9053). SLH-DSA is intentionally absent (no registered COSE id).
74
74
  var ALG_NAME_TO_ID = {
75
75
  "ML-DSA-87": -50,
76
- "ES256": -7, "ES384": -35, "ES512": -36, "EdDSA": -8, // allow:raw-byte-literal — COSE algorithm identifiers (RFC 9053), not byte sizes
76
+ "ES256": -7, "ES384": -35, "ES512": -36, "EdDSA": -8, // COSE algorithm identifiers (RFC 9053), not byte sizes
77
77
  };
78
78
  var ALG_ID_TO_NAME = {};
79
79
  Object.keys(ALG_NAME_TO_ID).forEach(function (k) { ALG_ID_TO_NAME[ALG_NAME_TO_ID[k]] = k; });
@@ -100,7 +100,7 @@ function _toKeyObject(key, kind) {
100
100
  function _algParamsFor(algId) {
101
101
  switch (algId) {
102
102
  case -50: return { nodeAlg: null }; // ML-DSA-87 (KeyObject specifies the hash)
103
- case -8: return { nodeAlg: null }; // allow:raw-byte-literal — EdDSA COSE alg id (RFC 9053), not a size
103
+ case -8: return { nodeAlg: null }; // EdDSA COSE alg id (RFC 9053), not a size
104
104
  case -7: return { nodeAlg: "sha256", dsaEncoding: "ieee-p1363" }; // ES256
105
105
  case -35: return { nodeAlg: "sha384", dsaEncoding: "ieee-p1363" }; // ES384
106
106
  case -36: return { nodeAlg: "sha512", dsaEncoding: "ieee-p1363" }; // ES512
@@ -374,22 +374,22 @@ async function verify(coseSign1, opts) {
374
374
 
375
375
  // ---- COSE_Encrypt0 (RFC 9052 §5.2) — single-recipient AEAD ----
376
376
 
377
- var COSE_ENCRYPT0_TAG = 16; // allow:raw-byte-literal — RFC 9052 COSE_Encrypt0 CBOR tag
377
+ var COSE_ENCRYPT0_TAG = 16; // RFC 9052 COSE_Encrypt0 CBOR tag
378
378
  var HDR_IV = 5; // RFC 9052 §3.1 unprotected header label: IV
379
- var AEAD_TAG_LEN = 16; // allow:raw-byte-literal — AEAD authentication tag length (bytes)
379
+ var AEAD_TAG_LEN = 16; // AEAD authentication tag length (bytes)
380
380
 
381
381
  // AEAD algorithm: COSE id → node cipher + key / IV sizes. ChaCha20/
382
382
  // Poly1305 (24) is the default; AES-GCM is opt-in (project hard-rule
383
383
  // #2 forbids AES-GCM as a default).
384
- var AEAD_NAME_TO_ID = { "ChaCha20-Poly1305": 24, "A256GCM": 3, "A128GCM": 1 }; // allow:raw-byte-literal — COSE AEAD algorithm identifiers (RFC 9053), not sizes
384
+ var AEAD_NAME_TO_ID = { "ChaCha20-Poly1305": 24, "A256GCM": 3, "A128GCM": 1 }; // COSE AEAD algorithm identifiers (RFC 9053), not sizes
385
385
  var AEAD_ID_TO_NAME = {};
386
386
  Object.keys(AEAD_NAME_TO_ID).forEach(function (k) { AEAD_ID_TO_NAME[AEAD_NAME_TO_ID[k]] = k; });
387
387
 
388
388
  function _aeadParams(algId) {
389
389
  switch (algId) {
390
- case 24: return { cipher: "chacha20-poly1305", keyLen: 32, ivLen: 12 }; // allow:raw-byte-literal — ChaCha20/Poly1305 key+IV sizes
391
- case 3: return { cipher: "aes-256-gcm", keyLen: 32, ivLen: 12 }; // allow:raw-byte-literal — AES-256-GCM key+IV sizes
392
- case 1: return { cipher: "aes-128-gcm", keyLen: 16, ivLen: 12 }; // allow:raw-byte-literal — AES-128-GCM key+IV sizes
390
+ case 24: return { cipher: "chacha20-poly1305", keyLen: 32, ivLen: 12 }; // ChaCha20/Poly1305 key+IV sizes
391
+ case 3: return { cipher: "aes-256-gcm", keyLen: 32, ivLen: 12 }; // AES-256-GCM key+IV sizes
392
+ case 1: return { cipher: "aes-128-gcm", keyLen: 16, ivLen: 12 }; // AES-128-GCM key+IV sizes
393
393
  default:
394
394
  throw new CoseError("cose/unknown-alg", "cose: unrecognized AEAD COSE alg id " + algId);
395
395
  }
@@ -552,11 +552,11 @@ function decrypt0(coseEncrypt0, opts) {
552
552
 
553
553
  // ---- COSE_Mac0 (RFC 9052 §6.2) — single shared-key MAC ----
554
554
 
555
- var COSE_MAC0_TAG = 17; // allow:raw-byte-literal — RFC 9052 COSE_Mac0 CBOR tag
555
+ var COSE_MAC0_TAG = 17; // RFC 9052 COSE_Mac0 CBOR tag
556
556
  // HMAC algorithms (RFC 9053 §3.1). Only the full-length tags are offered —
557
557
  // the truncated HMAC 256/64 (id 4) is omitted. HMAC is symmetric, so its
558
558
  // post-quantum strength is fine; these are the COSE-standard MAC algs.
559
- var HMAC_NAME_TO_ID = { "HMAC-256/256": 5, "HMAC-384/384": 6, "HMAC-512/512": 7 }; // allow:raw-byte-literal — COSE HMAC algorithm ids (RFC 9053)
559
+ var HMAC_NAME_TO_ID = { "HMAC-256/256": 5, "HMAC-384/384": 6, "HMAC-512/512": 7 }; // COSE HMAC algorithm ids (RFC 9053)
560
560
  var HMAC_ID_TO_NAME = {};
561
561
  Object.keys(HMAC_NAME_TO_ID).forEach(function (k) { HMAC_ID_TO_NAME[HMAC_NAME_TO_ID[k]] = k; });
562
562
  function _hmacHash(algId) {
@@ -747,7 +747,7 @@ var COSE_EC2_CRV = { 1: "P-256", 2: "P-384", 3: "P-521" };
747
747
  var COSE_EC2_CRV_ID = { "P-256": 1, "P-384": 2, "P-521": 3 };
748
748
  var COSE_KTY_OKP = 1;
749
749
  var COSE_KTY_EC2 = 2;
750
- var COSE_OKP_ED25519 = 6; // allow:raw-byte-literal — COSE OKP Ed25519 crv id (RFC 9053)
750
+ var COSE_OKP_ED25519 = 6; // COSE OKP Ed25519 crv id (RFC 9053)
751
751
  // COSE_Key common-parameter labels (RFC 9052 §7.1): 1=kty, 2=kid, 3=alg.
752
752
  var COSE_KEY_LABEL_KTY = 1;
753
753
  var COSE_KEY_LABEL_KID = 2;
package/lib/cra-report.js CHANGED
@@ -113,7 +113,7 @@ function create(opts) {
113
113
  body: Buffer.from(JSON.stringify(payload), "utf8"),
114
114
  responseMode: "always-resolve",
115
115
  });
116
- var ok = res.statusCode >= 200 && res.statusCode < 300; // allow:raw-byte-literal — HTTP status range
116
+ var ok = res.statusCode >= 200 && res.statusCode < 300; // HTTP status range
117
117
  _emitAudit("submitted", ok ? "success" : "failure", {
118
118
  statusCode: res.statusCode, productId: productId,
119
119
  });
package/lib/crdt.js CHANGED
@@ -47,7 +47,7 @@ var CrdtError = defineClass("CrdtError", { alwaysPermanent: true });
47
47
 
48
48
  function _replicaId(opts) {
49
49
  var id = opts && opts.replicaId;
50
- if (id == null) return bCrypto.generateToken(8); // allow:raw-byte-literal — random replica-id token length
50
+ if (id == null) return bCrypto.generateToken(8); // random replica-id token length
51
51
  if (typeof id !== "string" || id.length === 0) throw new CrdtError("crdt/bad-replica-id", "crdt: replicaId must be a non-empty string");
52
52
  return id;
53
53
  }
@@ -841,9 +841,9 @@ function declarePerRowKey(table, opts) {
841
841
  throw new Error("declarePerRowKey: table must be a non-empty string");
842
842
  }
843
843
  opts = opts || {};
844
- var keySize = opts.keySize === undefined ? 32 : opts.keySize; // allow:raw-byte-literal — XChaCha20-Poly1305 key length in bytes
844
+ var keySize = opts.keySize === undefined ? 32 : opts.keySize; // XChaCha20-Poly1305 key length in bytes
845
845
  if (typeof keySize !== "number" || !isFinite(keySize) ||
846
- keySize < 16 || Math.floor(keySize) !== keySize) { // allow:raw-byte-literal — minimum AES-128 key length in bytes
846
+ keySize < 16 || Math.floor(keySize) !== keySize) { // minimum AES-128 key length in bytes
847
847
  throw new Error("declarePerRowKey: opts.keySize must be an integer >= 16 (bytes)");
848
848
  }
849
849
  var info = opts.info || ("blamejs-per-row-key:" + table);
@@ -47,15 +47,15 @@ var XWING_LABEL = Buffer.from("5c2e2f2f5e5c", "hex");
47
47
 
48
48
  // Component + composite sizes (bytes), fixed by the draft — protocol wire
49
49
  // widths, not buffer-capacity tunables.
50
- var ML_KEM_PK = 1184; // allow:raw-byte-literal — ML-KEM-768 public key
51
- var ML_KEM_CT = 1088; // allow:raw-byte-literal — ML-KEM-768 ciphertext
52
- var X25519_LEN = 32; // allow:raw-byte-literal — X25519 key/share length
53
- var SEED_LEN = 32; // allow:raw-byte-literal — X-Wing seed length
54
- var SS_LEN = 32; // allow:raw-byte-literal — shared-secret length
50
+ var ML_KEM_PK = 1184; // ML-KEM-768 public key
51
+ var ML_KEM_CT = 1088; // ML-KEM-768 ciphertext
52
+ var X25519_LEN = 32; // X25519 key/share length
53
+ var SEED_LEN = 32; // X-Wing seed length
54
+ var SS_LEN = 32; // shared-secret length
55
55
  var PK_LEN = ML_KEM_PK + X25519_LEN; // 1216
56
56
  var CT_LEN = ML_KEM_CT + X25519_LEN; // 1120
57
- var MLKEM_SEED = 64; // allow:raw-byte-literal — d ‖ z for ML-KEM KeyGen_internal
58
- var EXPAND_LEN = 96; // allow:raw-byte-literal — SHAKE256(seed) → d ‖ z ‖ sk_X
57
+ var MLKEM_SEED = 64; // d ‖ z for ML-KEM KeyGen_internal
58
+ var EXPAND_LEN = 96; // SHAKE256(seed) → d ‖ z ‖ sk_X
59
59
 
60
60
  // X25519 raw-scalar helpers via fixed PKCS8 / SPKI DER prefixes (OID
61
61
  // 1.3.101.110). Node clamps the scalar per RFC 7748 on use, matching X-Wing.
package/lib/crypto.js CHANGED
@@ -319,9 +319,9 @@ function hashFilesParallel(filePaths, opts) {
319
319
  }
320
320
  var concurrency = opts.concurrency !== undefined
321
321
  ? opts.concurrency
322
- : Math.min(8, Math.max(1, filePaths.length)); // allow:raw-byte-literal — worker fan-out cap, not bytes
322
+ : Math.min(8, Math.max(1, filePaths.length)); // worker fan-out cap, not bytes
323
323
  if (typeof concurrency !== "number" || !isFinite(concurrency) ||
324
- concurrency < 1 || concurrency > 256 || // allow:raw-byte-literal — concurrency upper cap
324
+ concurrency < 1 || concurrency > 256 || // concurrency upper cap
325
325
  Math.floor(concurrency) !== concurrency) {
326
326
  return Promise.reject(new TypeError(
327
327
  "crypto.hashFilesParallel: opts.concurrency must be an integer in [1, 256], got " + concurrency
@@ -830,7 +830,7 @@ function fromBase64Url(s, opts) {
830
830
  // `/=+$/` CodeQL flags, where `=+` can backtrack on long input
831
831
  // ending in many `=`. Walking from end is O(n) worst-case.
832
832
  var trimEnd = s.length;
833
- while (trimEnd > 0 && s.charCodeAt(trimEnd - 1) === 0x3D) trimEnd -= 1; // allow:raw-byte-literal — '=' codepoint
833
+ while (trimEnd > 0 && s.charCodeAt(trimEnd - 1) === 0x3D) trimEnd -= 1; // '=' codepoint
834
834
  var unpadded = s.slice(0, trimEnd);
835
835
  if (!_BASE64URL_STRICT_RE.test(s)) {
836
836
  throw new TypeError(
@@ -838,7 +838,7 @@ function fromBase64Url(s, opts) {
838
838
  "base64url alphabet (A-Z a-z 0-9 - _ =) — pass {strict:false} to allow non-canonical input"
839
839
  );
840
840
  }
841
- if (unpadded.length % 4 === 1) { // allow:raw-byte-literal — base64 group length, not bytes
841
+ if (unpadded.length % 4 === 1) { // base64 group length, not bytes
842
842
  throw new TypeError(
843
843
  "crypto.fromBase64Url: input length %% 4 === 1 is not a valid base64url encoding " +
844
844
  "(every conforming encoder produces 0 / 2 / 3 remainder; got " + unpadded.length + " chars)"
@@ -1194,7 +1194,7 @@ function encryptMlkemOnly(plaintext, publicKeyPem) {
1194
1194
  */
1195
1195
  function decrypt(ciphertext, privateKeys, opts) {
1196
1196
  var packed = Buffer.from(ciphertext, "base64");
1197
- if (packed[0] === 0xE1) { // allow:raw-byte-literal — legacy envelope magic
1197
+ if (packed[0] === 0xE1) { // legacy envelope magic
1198
1198
  if (!opts || !opts.allowLegacy) {
1199
1199
  throw new Error("Invalid envelope: legacy 0xE1 format predates the FixedInfo " +
1200
1200
  "KDF binding (NIST SP 800-56C r2 §4.1) — re-seal data under the current envelope, " +
@@ -1303,7 +1303,7 @@ function decryptEnvelope(packed, privateKeys, internalOpts) {
1303
1303
  // Re-derive the 4-byte envelope-header AAD from the bytes we just
1304
1304
  // dispatched on. A tampered header (algorithm-substitution attack)
1305
1305
  // surfaces here as a Poly1305 tag verification failure.
1306
- var headerAad = packed.subarray(0, 4); // allow:raw-byte-literal — envelope-header byte slice
1306
+ var headerAad = packed.subarray(0, 4); // envelope-header byte slice
1307
1307
  var plainBuf = Buffer.from(
1308
1308
  xchacha20poly1305(symmetricKey, nonce, headerAad).decrypt(packed.subarray(pos))
1309
1309
  );
package/lib/csp.js CHANGED
@@ -222,8 +222,8 @@ function build(directives, opts) {
222
222
  * b.csp.build({ "script-src": ["'self'", "'nonce-" + req.cspNonce + "'"] }));
223
223
  */
224
224
  function nonce(byteLen) {
225
- var n = typeof byteLen === "number" ? byteLen : 32; // allow:raw-byte-literal — 256-bit nonce default
226
- if (!isFinite(n) || n < 16 || n > 64) { // allow:raw-byte-literal — CSP3 §6.2.x nonce bounds
225
+ var n = typeof byteLen === "number" ? byteLen : 32; // 256-bit nonce default
226
+ if (!isFinite(n) || n < 16 || n > 64) { // CSP3 §6.2.x nonce bounds
227
227
  throw new CspError("csp/bad-nonce-len",
228
228
  "csp.nonce: byteLen must be 16-64 (CSP3 §6.2 recommends ≥16 bytes)");
229
229
  }
package/lib/cwt.js CHANGED
@@ -52,7 +52,7 @@ Object.keys(STD).forEach(function (k) { STD_BY_LABEL[STD[k]] = k; });
52
52
  var NUMERIC_DATE_CLAIMS = { exp: true, nbf: true, iat: true };
53
53
 
54
54
  // CWT CBOR tag (RFC 8392 §6) — 61, encoded as the 2-byte head 0xd8 0x3d.
55
- var CWT_TAG_PREFIX = Buffer.from([0xd8, 0x3d]); // allow:raw-byte-literal — CBOR tag-61 head (0xd8=tag 1-byte arg, 0x3d=61)
55
+ var CWT_TAG_PREFIX = Buffer.from([0xd8, 0x3d]); // CBOR tag-61 head (0xd8=tag 1-byte arg, 0x3d=61)
56
56
 
57
57
  function _nowSec(opts) {
58
58
  var ms = (opts && typeof opts.now === "number") ? opts.now : Date.now();
@@ -62,10 +62,10 @@ function _nowSec(opts) {
62
62
  // Read a leading CBOR tag head (major type 6) in any of its encodings;
63
63
  // returns { tag, len } or null if the buffer doesn't start with a tag.
64
64
  function _readTagHead(buf) {
65
- if (buf.length < 1 || (buf[0] >> 5) !== 6) return null; // allow:raw-byte-literal — CBOR major-type 6 (tag) shift
65
+ if (buf.length < 1 || (buf[0] >> 5) !== 6) return null; // CBOR major-type 6 (tag) shift
66
66
  var ai = buf[0] & 0x1f;
67
67
  if (ai < 24) return { tag: ai, len: 1 };
68
- if (ai === 24) return buf.length >= 2 ? { tag: buf[1], len: 2 } : null; // allow:raw-byte-literal — CBOR additional-info threshold (RFC 8949 §3), not a size
68
+ if (ai === 24) return buf.length >= 2 ? { tag: buf[1], len: 2 } : null; // CBOR additional-info threshold (RFC 8949 §3), not a size
69
69
  if (ai === 25) return buf.length >= 3 ? { tag: buf.readUInt16BE(1), len: 3 } : null;
70
70
  if (ai === 26) return buf.length >= 5 ? { tag: buf.readUInt32BE(1), len: 5 } : null;
71
71
  if (ai === 27) return buf.length >= 9 ? { tag: Number(buf.readBigUInt64BE(1)), len: 9 } : null;
@@ -178,7 +178,7 @@ async function verify(cwt, opts) {
178
178
  // an external CBOR encoder may emit a non-minimal but valid tag 61.
179
179
  var coseBytes = Buffer.from(cwt);
180
180
  var head = _readTagHead(coseBytes);
181
- if (head && head.tag === 61) coseBytes = coseBytes.subarray(head.len); // allow:raw-byte-literal — CWT CBOR tag number (RFC 8392 §6)
181
+ if (head && head.tag === 61) coseBytes = coseBytes.subarray(head.len); // CWT CBOR tag number (RFC 8392 §6)
182
182
 
183
183
  var verified = await cose.verify(coseBytes, {
184
184
  algorithms: opts.algorithms, publicKey: opts.publicKey,
@@ -28,8 +28,8 @@
28
28
  var audit = require("./audit");
29
29
  var { defineClass } = require("./framework-error");
30
30
 
31
- var STR_LEN_MAX = 256; // allow:raw-byte-literal — string-length cap, not bytes
32
- var FONT_WEIGHT_MAX = 1000; // allow:raw-byte-literal — CSS font-weight ceiling (CSS Fonts L4)
31
+ var STR_LEN_MAX = 256; // string-length cap, not bytes
32
+ var FONT_WEIGHT_MAX = 1000; // CSS font-weight ceiling (CSS Fonts L4)
33
33
  var DarkPatternsError = defineClass("DarkPatternsError", { alwaysPermanent: true });
34
34
 
35
35
  var CHANNELS = ["web", "mobile", "phone", "email", "in-person", "mail"];
package/lib/data-act.js CHANGED
@@ -298,8 +298,8 @@ function recordSwitchRequest(opts) {
298
298
  throw new DataActError("dataact/no-data-slices",
299
299
  "recordSwitchRequest: dataSlices must be a non-empty array");
300
300
  }
301
- var noticePeriod = typeof opts.noticePeriodDays === "number" ? opts.noticePeriodDays : 30; // allow:raw-byte-literal — Art 28 §3 30-day cap
302
- if (noticePeriod > 30) { // allow:raw-byte-literal — Art 28 §3 30-day cap
301
+ var noticePeriod = typeof opts.noticePeriodDays === "number" ? opts.noticePeriodDays : 30; // Art 28 §3 30-day cap
302
+ if (noticePeriod > 30) { // Art 28 §3 30-day cap
303
303
  throw new DataActError("dataact/notice-period-too-long",
304
304
  "recordSwitchRequest: noticePeriodDays " + noticePeriod + " exceeds Art 28 §3 cap of 30 days");
305
305
  }
@@ -74,8 +74,8 @@ var emit = validateOpts.makeNamespacedEmitters("db.fileLifecycle", { audit: audi
74
74
  var DbFileLifecycleError = defineClass("DbFileLifecycleError", { alwaysPermanent: true });
75
75
 
76
76
  var DEFAULT_FLUSH_INTERVAL_MS = C.TIME.minutes(5);
77
- var DB_ENC_KEY_BYTES = 32; // allow:raw-byte-literal — 256-bit symmetric key
78
- var TMP_NAME_BYTES = 16; // allow:raw-byte-literal — random suffix
77
+ var DB_ENC_KEY_BYTES = 32; // 256-bit symmetric key
78
+ var TMP_NAME_BYTES = 16; // random suffix
79
79
 
80
80
  var _emitAudit = emit.audit;
81
81
  var _emitMetric = emit.metric;
@@ -212,7 +212,7 @@ function fileLifecycle(opts) {
212
212
  generateToken(TMP_NAME_BYTES) + ".db");
213
213
  if (nodeFs.existsSync(encPath)) {
214
214
  var packed = nodeFs.readFileSync(encPath);
215
- if (packed.length < 26) { // allow:raw-byte-literal — minimum envelope length
215
+ if (packed.length < 26) { // minimum envelope length
216
216
  throw new DbFileLifecycleError("db-file-lifecycle/short-envelope",
217
217
  "fileLifecycle: " + encPath + " too short to be a valid envelope (" + packed.length + " bytes)");
218
218
  }
@@ -279,7 +279,7 @@ function fileLifecycle(opts) {
279
279
  "fileLifecycle.startFlushTimer: timer already running — call stop() first");
280
280
  }
281
281
  var interval = sopts.intervalMs || flushIntervalMs;
282
- encTimer = setInterval(function () { // allow:setinterval-unref — .unref() called immediately below; timer doesn't pin the event loop
282
+ encTimer = setInterval(function () { // allow:timer-no-unref — .unref() called immediately below; timer doesn't pin the event loop
283
283
  try { flushNow(db); }
284
284
  catch (e) {
285
285
  _emitAudit("flush_failed", "failure", {
package/lib/db-query.js CHANGED
@@ -629,7 +629,7 @@ class Query {
629
629
  opts = opts || {};
630
630
  var limit = opts.limit === undefined ? 25 : opts.limit;
631
631
  var offset = opts.offset === undefined ? 0 : opts.offset;
632
- if (!Number.isInteger(limit) || limit <= 0 || limit > 1000) { // allow:raw-byte-literal — paginate page-size cap, not bytes
632
+ if (!Number.isInteger(limit) || limit <= 0 || limit > 1000) { // paginate page-size cap, not bytes
633
633
  throw new Error("paginate: limit must be a positive integer ≤ 1000 (default 25)");
634
634
  }
635
635
  if (!Number.isInteger(offset) || offset < 0) {
package/lib/db.js CHANGED
@@ -158,7 +158,7 @@ var tableMetadata = {}; // table name → metadata snapshot (PK/FK/sealed/de
158
158
  // generous-but-bounded 1M rows so an accidentally-unbounded export
159
159
  // surfaces a thrown error instead of OOM. v0.7.67's maxRowsPerQuery
160
160
  // bounds .all() / .first() — this is its streaming counterpart.
161
- var streamLimit = C.BYTES.bytes(1000000); // allow:raw-byte-literal — row-count ceiling, not bytes
161
+ var streamLimit = C.BYTES.bytes(1000000); // row-count ceiling, not bytes
162
162
 
163
163
  // ---- Framework-baked tables ----
164
164
  //
@@ -1501,7 +1501,7 @@ function from(tableName) {
1501
1501
  // the same SQL string returns the cached Statement (the canonical
1502
1502
  // node:sqlite-style win); previously this was ad-hoc and operators
1503
1503
  // re-preparing in a hot path leaked fds.
1504
- var PREPARE_CACHE_MAX = 256; // allow:raw-byte-literal — distinct-statement cache cap
1504
+ var PREPARE_CACHE_MAX = 256; // distinct-statement cache cap
1505
1505
  var _prepareCache = new Map(); // sql → Statement (insertion order = LRU)
1506
1506
 
1507
1507
  /**
@@ -1688,7 +1688,7 @@ function _reportSlowSqlite(durationMs, statement) {
1688
1688
  backend: "sqlite",
1689
1689
  bucket: bucket.label,
1690
1690
  statementClass: _classifyStatementLocal(statement),
1691
- "db.statement": String(statement || "").slice(0, 256), // allow:raw-byte-literal — log-truncation length, not bytes
1691
+ "db.statement": String(statement || "").slice(0, 256), // log-truncation length, not bytes
1692
1692
  });
1693
1693
  } catch (_e) { /* hot-path observability sink — drop-silent by design */ }
1694
1694
  return;
@@ -1717,7 +1717,7 @@ function execRaw(sql) {
1717
1717
  // OTel can correlate without an adapter.
1718
1718
  "db.system": "sqlite",
1719
1719
  "db.operation": String(sql).match(DDL_RE)[1].toUpperCase(),
1720
- "db.statement": String(sql).slice(0, 256), // allow:raw-byte-literal — log-truncation length, not bytes
1720
+ "db.statement": String(sql).slice(0, 256), // log-truncation length, not bytes
1721
1721
  durationMs: durationMs,
1722
1722
  },
1723
1723
  });
@@ -1734,7 +1734,7 @@ function execRaw(sql) {
1734
1734
  metadata: {
1735
1735
  "db.system": "sqlite",
1736
1736
  "db.operation": String(sql).match(DDL_RE)[1].toUpperCase(),
1737
- "db.statement": String(sql).slice(0, 256), // allow:raw-byte-literal — log-truncation length, not bytes
1737
+ "db.statement": String(sql).slice(0, 256), // log-truncation length, not bytes
1738
1738
  durationMs: failureMs,
1739
1739
  },
1740
1740
  });
@@ -2684,7 +2684,7 @@ function vacuumAfterErase(opts) {
2684
2684
  } else {
2685
2685
  require("./numeric-bounds").requirePositiveFiniteIntIfPresent(
2686
2686
  opts.pages, "pages", DbError, "db/bad-vacuum-pages");
2687
- var pages = (opts.pages == null) ? 1000 // allow:raw-byte-literal — incremental_vacuum default page count
2687
+ var pages = (opts.pages == null) ? 1000 // incremental_vacuum default page count
2688
2688
  : Math.floor(opts.pages);
2689
2689
  sqlStmt = "PRAGMA incremental_vacuum(" + pages + ");";
2690
2690
  }
package/lib/dbsc.js CHANGED
@@ -69,14 +69,14 @@ var DEFAULT_CHALLENGE_TTL_MS = C.TIME.minutes(5);
69
69
  function challenge(opts) {
70
70
  opts = validateOpts.requireObject(opts, "dbsc.challenge", DbscError, "dbsc/bad-opts");
71
71
  validateOpts(opts, ["secretKey", "ttlMs", "nonce"], "dbsc.challenge");
72
- if (!Buffer.isBuffer(opts.secretKey) || opts.secretKey.length < 32) { // allow:raw-byte-literal — 32-byte HMAC secret floor
72
+ if (!Buffer.isBuffer(opts.secretKey) || opts.secretKey.length < 32) { // 32-byte HMAC secret floor
73
73
  throw new DbscError("dbsc/bad-secret",
74
74
  "challenge: opts.secretKey must be a Buffer (>= 32 bytes)");
75
75
  }
76
76
  validateOpts.optionalPositiveFinite(opts.ttlMs, "dbsc.challenge: ttlMs",
77
77
  DbscError, "dbsc/bad-ttl");
78
78
  var ttlMs = opts.ttlMs || DEFAULT_CHALLENGE_TTL_MS;
79
- var nonceBuf = opts.nonce ? Buffer.from(String(opts.nonce), "utf8") : bCrypto.generateBytes(32); // allow:raw-byte-literal — 32-byte nonce
79
+ var nonceBuf = opts.nonce ? Buffer.from(String(opts.nonce), "utf8") : bCrypto.generateBytes(32); // 32-byte nonce
80
80
  var expiresAt = Date.now() + ttlMs;
81
81
  var msg = nonceBuf.toString("base64") + "." + expiresAt;
82
82
  var mac = nodeCrypto.createHmac("sha3-512", opts.secretKey).update(msg).digest("base64");
@@ -110,7 +110,7 @@ function verifyChallenge(challengeStr, opts) {
110
110
  throw new DbscError("dbsc/bad-challenge",
111
111
  "verifyChallenge: challenge must be a string");
112
112
  }
113
- if (!Buffer.isBuffer(opts.secretKey) || opts.secretKey.length < 32) { // allow:raw-byte-literal — 32-byte HMAC secret floor
113
+ if (!Buffer.isBuffer(opts.secretKey) || opts.secretKey.length < 32) { // 32-byte HMAC secret floor
114
114
  throw new DbscError("dbsc/bad-secret",
115
115
  "verifyChallenge: opts.secretKey must be a Buffer (>= 32 bytes)");
116
116
  }
@@ -209,7 +209,7 @@ function verifyBindingAssertion(assertion, opts) {
209
209
  var ok;
210
210
  if (headerJson.alg === "ES256") {
211
211
  // JWT raw r||s → DER for nodeCrypto.verify.
212
- if (sigBytes.length !== 64) { // allow:raw-byte-literal — P-256 r||s shape
212
+ if (sigBytes.length !== 64) { // P-256 r||s shape
213
213
  throw new DbscError("dbsc/bad-sig", "ES256 signature must be 64 bytes raw");
214
214
  }
215
215
  var derSig = _ecdsaRawToDer(sigBytes);
@@ -237,8 +237,8 @@ function verifyBindingAssertion(assertion, opts) {
237
237
  "or 'challenge' (server-nonce-bound); without freshness material the " +
238
238
  "assertion replays indefinitely");
239
239
  }
240
- var maxAge = (opts.maxAgeSec || 300) * 1000; // allow:raw-byte-literal allow:raw-time-literal — 5min default
241
- if (typeof payloadJson.iat === "number" && Date.now() - payloadJson.iat * 1000 > maxAge) { // allow:raw-byte-literal allow:raw-time-literal — sec→ms
240
+ var maxAge = (opts.maxAgeSec || 300) * 1000; // allow:raw-time-literal — 5min default
241
+ if (typeof payloadJson.iat === "number" && Date.now() - payloadJson.iat * 1000 > maxAge) { // allow:raw-time-literal — sec→ms
242
242
  throw new DbscError("dbsc/stale",
243
243
  "verifyBindingAssertion: iat is more than " + opts.maxAgeSec + "s old");
244
244
  }
@@ -252,23 +252,23 @@ function verifyBindingAssertion(assertion, opts) {
252
252
  }
253
253
 
254
254
  function _ecdsaRawToDer(raw) {
255
- if (raw.length !== 64) throw new DbscError("dbsc/bad-sig", "raw r||s must be 64 bytes"); // allow:raw-byte-literal — P-256 r||s shape
256
- var r = _trimLeadingZeros(raw.slice(0, 32)); // allow:raw-byte-literal — 32-byte r
257
- var s = _trimLeadingZeros(raw.slice(32)); // allow:raw-byte-literal — 32-byte s offset
255
+ if (raw.length !== 64) throw new DbscError("dbsc/bad-sig", "raw r||s must be 64 bytes"); // P-256 r||s shape
256
+ var r = _trimLeadingZeros(raw.slice(0, 32)); // 32-byte r
257
+ var s = _trimLeadingZeros(raw.slice(32)); // 32-byte s offset
258
258
  function _intDer(buf) {
259
259
  // Prepend 0x00 if high bit set (positive INTEGER per DER).
260
- if (buf[0] & 0x80) buf = Buffer.concat([Buffer.from([0x00]), buf]); // allow:raw-byte-literal — DER sign-bit pad
261
- return Buffer.concat([Buffer.from([0x02, buf.length]), buf]); // allow:raw-byte-literal — ASN.1 INTEGER tag
260
+ if (buf[0] & 0x80) buf = Buffer.concat([Buffer.from([0x00]), buf]); // DER sign-bit pad
261
+ return Buffer.concat([Buffer.from([0x02, buf.length]), buf]); // ASN.1 INTEGER tag
262
262
  }
263
263
  var rDer = _intDer(r);
264
264
  var sDer = _intDer(s);
265
265
  var seqBody = Buffer.concat([rDer, sDer]);
266
- return Buffer.concat([Buffer.from([0x30, seqBody.length]), seqBody]); // allow:raw-byte-literal — ASN.1 SEQUENCE tag
266
+ return Buffer.concat([Buffer.from([0x30, seqBody.length]), seqBody]); // ASN.1 SEQUENCE tag
267
267
  }
268
268
 
269
269
  function _trimLeadingZeros(buf) {
270
270
  var i = 0;
271
- while (i < buf.length - 1 && buf[i] === 0x00) i += 1; // allow:raw-byte-literal — leading zero byte
271
+ while (i < buf.length - 1 && buf[i] === 0x00) i += 1; // leading zero byte
272
272
  return buf.slice(i);
273
273
  }
274
274
 
package/lib/did.js CHANGED
@@ -58,15 +58,15 @@ var B58_MAP = (function () {
58
58
  for (var i = 0; i < B58_ALPHABET.length; i += 1) m[B58_ALPHABET[i]] = i;
59
59
  return m;
60
60
  })();
61
- var MAX_MULTIBASE_CHARS = 1024; // allow:raw-byte-literal — bounded did:key multibase length (DoS cap)
62
- var MAX_JWK_B64_CHARS = 8192; // allow:raw-byte-literal — bounded did:jwk encoded-JWK length (DoS cap)
61
+ var MAX_MULTIBASE_CHARS = 1024; // bounded did:key multibase length (DoS cap)
62
+ var MAX_JWK_B64_CHARS = 8192; // bounded did:jwk encoded-JWK length (DoS cap)
63
63
 
64
64
  // multicodec public-key codes (unsigned-varint) → curve descriptor.
65
65
  // keyLen is the multicodec payload: Ed25519 raw 32; EC compressed point.
66
66
  var MULTICODEC = {
67
67
  0xed: { name: "Ed25519", kind: "okp" }, // ed25519-pub
68
- 0x1200: { name: "P-256", kind: "ec", curveOid: "1.2.840.10045.3.1.7" }, // allow:raw-byte-literal allow:raw-time-literal — p256-pub multicodec code + OID dotted-form
69
- 0x1201: { name: "P-384", kind: "ec", curveOid: "1.3.132.0.34" }, // allow:raw-byte-literal — p384-pub multicodec code
68
+ 0x1200: { name: "P-256", kind: "ec", curveOid: "1.2.840.10045.3.1.7" }, // allow:raw-time-literal — p256-pub multicodec code + OID dotted-form
69
+ 0x1201: { name: "P-384", kind: "ec", curveOid: "1.3.132.0.34" }, // p384-pub multicodec code
70
70
  0xe7: { name: "secp256k1", kind: "ec", curveOid: "1.3.132.0.10" }, // secp256k1-pub
71
71
  };
72
72
  var NAME_TO_CODE = {};
@@ -86,9 +86,9 @@ function _b58decode(str) {
86
86
  for (var j = 0; j < bytes.length; j += 1) {
87
87
  carry += bytes[j] * 58;
88
88
  bytes[j] = carry & 0xff;
89
- carry >>= 8; // allow:raw-byte-literal — base-256 carry
89
+ carry >>= 8; // base-256 carry
90
90
  }
91
- while (carry > 0) { bytes.push(carry & 0xff); carry >>= 8; } // allow:raw-byte-literal — base-256 carry
91
+ while (carry > 0) { bytes.push(carry & 0xff); carry >>= 8; } // base-256 carry
92
92
  }
93
93
  // Leading '1's are leading zero bytes.
94
94
  for (var k = 0; k < str.length && str[k] === "1"; k += 1) bytes.push(0);
@@ -100,7 +100,7 @@ function _b58encode(buf) {
100
100
  for (var i = 0; i < buf.length; i += 1) {
101
101
  var carry = buf[i];
102
102
  for (var j = 0; j < digits.length; j += 1) {
103
- carry += digits[j] << 8; // allow:raw-byte-literal — base-256 shift
103
+ carry += digits[j] << 8; // base-256 shift
104
104
  digits[j] = carry % 58;
105
105
  carry = (carry / 58) | 0;
106
106
  }
@@ -115,19 +115,19 @@ function _b58encode(buf) {
115
115
  // Read an unsigned LEB128 varint (multicodec code). Bounded to 4 bytes.
116
116
  function _readVarint(buf) {
117
117
  var value = 0, shift = 0, len = 0;
118
- for (var i = 0; i < buf.length && i < 4; i += 1) { // allow:raw-byte-literal — multicodec varint ≤ 4 bytes
118
+ for (var i = 0; i < buf.length && i < 4; i += 1) { // multicodec varint ≤ 4 bytes
119
119
  var b = buf[i];
120
120
  value |= (b & 0x7f) << shift;
121
121
  len += 1;
122
122
  if ((b & 0x80) === 0) return { value: value >>> 0, length: len };
123
- shift += 7; // allow:raw-byte-literal — 7 bits per varint byte
123
+ shift += 7; // 7 bits per varint byte
124
124
  }
125
125
  throw new DidError("did/bad-multicodec", "did: multicodec varint did not terminate");
126
126
  }
127
127
  function _encodeVarint(code) {
128
128
  var out = [];
129
129
  var n = code;
130
- do { var b = n & 0x7f; n >>>= 7; if (n > 0) b |= 0x80; out.push(b); } while (n > 0); // allow:raw-byte-literal — LEB128 7-bit groups
130
+ do { var b = n & 0x7f; n >>>= 7; if (n > 0) b |= 0x80; out.push(b); } while (n > 0); // LEB128 7-bit groups
131
131
  return Buffer.from(out);
132
132
  }
133
133
 
@@ -137,9 +137,9 @@ var ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex"); // R
137
137
 
138
138
  function _keyObjectFromMulticodec(code, keyBytes) {
139
139
  var desc = MULTICODEC[code];
140
- if (!desc) throw new DidError("did/unsupported-key", "did: unsupported multicodec key code 0x" + code.toString(16)); // allow:raw-byte-literal — hex radix
140
+ if (!desc) throw new DidError("did/unsupported-key", "did: unsupported multicodec key code 0x" + code.toString(16)); // hex radix
141
141
  if (desc.kind === "okp") {
142
- if (keyBytes.length !== 32) { // allow:raw-byte-literal — Ed25519 public key is 32 bytes
142
+ if (keyBytes.length !== 32) { // Ed25519 public key is 32 bytes
143
143
  throw new DidError("did/bad-key", "did: Ed25519 key must be 32 bytes (got " + keyBytes.length + ")");
144
144
  }
145
145
  return nodeCrypto.createPublicKey({ key: Buffer.concat([ED25519_SPKI_PREFIX, keyBytes]), format: "der", type: "spki" });
@@ -152,25 +152,25 @@ function _keyObjectFromMulticodec(code, keyBytes) {
152
152
  var algid = _ecAlgId(desc.curveOid);
153
153
  var bitstr = Buffer.concat([Buffer.from([0x03, keyBytes.length + 1, 0x00]), keyBytes]);
154
154
  var body = Buffer.concat([algid, bitstr]);
155
- var spki = Buffer.concat([Buffer.from([0x30, body.length]), body]); // allow:raw-byte-literal — SEQUENCE tag; single-byte DER length holds for these curves
155
+ var spki = Buffer.concat([Buffer.from([0x30, body.length]), body]); // SEQUENCE tag; single-byte DER length holds for these curves
156
156
  try { return nodeCrypto.createPublicKey({ key: spki, format: "der", type: "spki" }); }
157
157
  catch (e) { throw new DidError("did/bad-key", "did: could not import EC key: " + ((e && e.message) || e)); }
158
158
  }
159
159
 
160
160
  // AlgorithmIdentifier SEQUENCE { id-ecPublicKey, namedCurve OID }.
161
161
  function _ecAlgId(curveOid) {
162
- var idEcPublicKey = Buffer.from("06072a8648ce3d0201", "hex"); // allow:raw-byte-literal allow:raw-time-literal — DER OID for id-ecPublicKey
162
+ var idEcPublicKey = Buffer.from("06072a8648ce3d0201", "hex"); // allow:raw-time-literal — DER OID for id-ecPublicKey
163
163
  var curve = _oidDer(curveOid);
164
164
  var inner = Buffer.concat([idEcPublicKey, curve]);
165
165
  return Buffer.concat([Buffer.from([0x30, inner.length]), inner]);
166
166
  }
167
167
  function _oidDer(dotted) {
168
168
  var parts = dotted.split(".").map(Number);
169
- var bytes = [parts[0] * 40 + parts[1]]; // allow:raw-byte-literal — X.690 first-arc encoding
169
+ var bytes = [parts[0] * 40 + parts[1]]; // X.690 first-arc encoding
170
170
  for (var i = 2; i < parts.length; i += 1) {
171
171
  var arc = parts[i], stack = [];
172
- do { stack.unshift(arc & 0x7f); arc >>>= 7; } while (arc > 0); // allow:raw-byte-literal — base-128 OID arc
173
- for (var j = 0; j < stack.length - 1; j += 1) stack[j] |= 0x80; // allow:raw-byte-literal — continuation bit
172
+ do { stack.unshift(arc & 0x7f); arc >>>= 7; } while (arc > 0); // base-128 OID arc
173
+ for (var j = 0; j < stack.length - 1; j += 1) stack[j] |= 0x80; // continuation bit
174
174
  bytes = bytes.concat(stack);
175
175
  }
176
176
  return Buffer.concat([Buffer.from([0x06, bytes.length]), Buffer.from(bytes)]);
package/lib/dora.js CHANGED
@@ -46,9 +46,9 @@ var observability = lazyRequire(function () { return require("./observability");
46
46
  // - Critical-process disruption >= 8h
47
47
  // - Reputational impact (media coverage)
48
48
  var MAJOR_INCIDENT_THRESHOLDS = Object.freeze({
49
- affectedClientsAbsolute: 100000, // allow:raw-byte-literal — RTS 2024/1772 Art. 1(1)(a) regulator-fixed cap (100k clients)
49
+ affectedClientsAbsolute: 100000, // RTS 2024/1772 Art. 1(1)(a) regulator-fixed cap (100k clients)
50
50
  affectedClientsPercentile: 0.10, // RTS Art. 1(1)(a) — 10% client base
51
- economicImpactEur: 100000, // allow:raw-byte-literal — RTS 2024/1772 Art. 1(1)(c) regulator-fixed cap (100k EUR)
51
+ economicImpactEur: 100000, // RTS 2024/1772 Art. 1(1)(c) regulator-fixed cap (100k EUR)
52
52
  geographicMemberStates: 2, // RTS Art. 1(1)(d) — 2+ member states
53
53
  durationCriticalProcessMs: C.TIME.hours(8), // RTS Art. 1(1)(e) — 8h
54
54
  });
@@ -56,9 +56,9 @@ var MAJOR_INCIDENT_THRESHOLDS = Object.freeze({
56
56
  // Article 8 — significant incident (one threshold below major).
57
57
  // Default threshold values per ESA guidelines.
58
58
  var SIGNIFICANT_INCIDENT_THRESHOLDS = Object.freeze({
59
- affectedClientsAbsolute: 10000, // allow:raw-byte-literal — ESA-guideline regulator-fixed cap (10k clients)
59
+ affectedClientsAbsolute: 10000, // ESA-guideline regulator-fixed cap (10k clients)
60
60
  affectedClientsPercentile: 0.01, // 1% client base
61
- economicImpactEur: 10000, // allow:raw-byte-literal — ESA-guideline regulator-fixed cap (10k EUR)
61
+ economicImpactEur: 10000, // ESA-guideline regulator-fixed cap (10k EUR)
62
62
  durationCriticalProcessMs: C.TIME.hours(2), // 2h
63
63
  });
64
64
 
package/lib/dsr.js CHANGED
@@ -368,7 +368,7 @@ function create(opts) {
368
368
  }
369
369
 
370
370
  function _newTicketId() {
371
- var ts = String(Date.now()).slice(-7); // allow:raw-byte-literal — last 7 chars of unix-ms timestamp; collision-resistant when paired with the random suffix
371
+ var ts = String(Date.now()).slice(-7); // last 7 chars of unix-ms timestamp; collision-resistant when paired with the random suffix
372
372
  var rnd = bCrypto.generateBytes(C.BYTES.bytes(6)).toString("hex").toUpperCase();
373
373
  return "DSR-" + ts + "-" + rnd;
374
374
  }
@@ -67,7 +67,7 @@ var REFUSED_HEADERS = Object.freeze([
67
67
  ]);
68
68
 
69
69
  var LINK_RELATION_RE = /^(preload|preconnect|prefetch|dns-prefetch|modulepreload|prerender|next|prev)$/i;
70
- var LINK_MAX_BYTES = 4096; // allow:raw-byte-literal — per-link length cap, not bytes
70
+ var LINK_MAX_BYTES = 4096; // per-link length cap, not bytes
71
71
 
72
72
  /**
73
73
  * @primitive b.earlyHints.send
@@ -194,7 +194,7 @@ function _validateLink(linkValue, idx) {
194
194
  throw new EarlyHintsError("early-hints/bad-link",
195
195
  "link[" + idx + "] missing rel= parameter (RFC 8288)");
196
196
  }
197
- if (relMatch[1].length > 32 || !LINK_RELATION_RE.test(relMatch[1])) { // allow:raw-byte-literal — rel-token length cap, not bytes
197
+ if (relMatch[1].length > 32 || !LINK_RELATION_RE.test(relMatch[1])) { // rel-token length cap, not bytes
198
198
  throw new EarlyHintsError("early-hints/bad-link",
199
199
  "link[" + idx + "].rel '" + relMatch[1] + "' must be one of: " +
200
200
  "preload, preconnect, prefetch, dns-prefetch, modulepreload, prerender, next, prev");
package/lib/eat.js CHANGED
@@ -54,10 +54,10 @@ var { defineClass } = require("./framework-error");
54
54
  var EatError = defineClass("EatError", { alwaysPermanent: true });
55
55
 
56
56
  // RFC 9711 / IANA CWT Claims registry claim keys.
57
- var EAT = { // allow:raw-byte-literal — RFC 9711 / IANA CWT claim-key labels, not byte sizes
58
- nonce: 10, ueid: 256, sueids: 257, oemid: 258, hwmodel: 259, hwversion: 260, // allow:raw-byte-literal — CWT claim keys
59
- uptime: 261, oemboot: 262, dbgstat: 263, location: 264, eat_profile: 265, // allow:raw-byte-literal — CWT claim keys
60
- submods: 266, swname: 270, swversion: 271, manifests: 272, measurements: 273, // allow:raw-byte-literal — CWT claim keys
57
+ var EAT = { // RFC 9711 / IANA CWT claim-key labels, not byte sizes
58
+ nonce: 10, ueid: 256, sueids: 257, oemid: 258, hwmodel: 259, hwversion: 260, // CWT claim keys
59
+ uptime: 261, oemboot: 262, dbgstat: 263, location: 264, eat_profile: 265, // CWT claim keys
60
+ submods: 266, swname: 270, swversion: 271, manifests: 272, measurements: 273, // CWT claim keys
61
61
  };
62
62
  var EAT_BY_LABEL = {};
63
63
  Object.keys(EAT).forEach(function (k) { EAT_BY_LABEL[EAT[k]] = k; });