@blamejs/core 0.9.15 → 0.9.17

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 (100) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/lib/a2a-tasks.js +2 -2
  3. package/lib/acme.js +2 -2
  4. package/lib/api-snapshot.js +1 -1
  5. package/lib/app-shutdown.js +2 -2
  6. package/lib/app.js +2 -2
  7. package/lib/argon2-builtin.js +1 -1
  8. package/lib/atomic-file.js +8 -8
  9. package/lib/audit-sign.js +3 -3
  10. package/lib/audit-tools.js +2 -2
  11. package/lib/auth/dpop.js +1 -1
  12. package/lib/auth/elevation-grant.js +4 -4
  13. package/lib/auth/fido-mds3.js +6 -6
  14. package/lib/auth/jwt-external.js +3 -3
  15. package/lib/auth/jwt.js +1 -1
  16. package/lib/auth/oauth.js +1 -1
  17. package/lib/auth/status-list.js +1 -1
  18. package/lib/backup/bundle.js +2 -2
  19. package/lib/backup/index.js +7 -7
  20. package/lib/bundler.js +4 -4
  21. package/lib/cli.js +1 -1
  22. package/lib/cloud-events.js +1 -1
  23. package/lib/compliance-sanctions.js +1 -1
  24. package/lib/compliance.js +6 -7
  25. package/lib/config.js +6 -6
  26. package/lib/credential-hash.js +4 -4
  27. package/lib/crypto-field.js +9 -9
  28. package/lib/crypto-hpke.js +1 -1
  29. package/lib/crypto.js +3 -3
  30. package/lib/daemon.js +2 -2
  31. package/lib/db-file-lifecycle.js +5 -5
  32. package/lib/db-schema.js +1 -1
  33. package/lib/db.js +3 -3
  34. package/lib/dev.js +5 -5
  35. package/lib/dr-runbook.js +2 -2
  36. package/lib/external-db-migrate.js +16 -16
  37. package/lib/flag-evaluation-context.js +3 -3
  38. package/lib/flag-providers.js +1 -1
  39. package/lib/http-client.js +11 -11
  40. package/lib/http-message-signature.js +1 -1
  41. package/lib/keychain.js +6 -6
  42. package/lib/local-db-thin.js +2 -2
  43. package/lib/log-stream-local.js +3 -3
  44. package/lib/log-stream-syslog.js +4 -4
  45. package/lib/log.js +2 -2
  46. package/lib/mail-arc-sign.js +1 -1
  47. package/lib/mail-dkim.js +1 -1
  48. package/lib/mail.js +7 -7
  49. package/lib/mcp-tool-registry.js +6 -6
  50. package/lib/middleware/asyncapi-serve.js +1 -1
  51. package/lib/middleware/body-parser.js +6 -6
  52. package/lib/middleware/openapi-serve.js +1 -1
  53. package/lib/middleware/require-bound-key.js +4 -4
  54. package/lib/middleware/require-mtls.js +4 -4
  55. package/lib/middleware/tus-upload.js +1 -1
  56. package/lib/migrations.js +3 -3
  57. package/lib/mtls-ca.js +4 -4
  58. package/lib/network-byte-quota.js +2 -2
  59. package/lib/network-smtp-policy.js +1 -1
  60. package/lib/network.js +12 -12
  61. package/lib/notify.js +8 -8
  62. package/lib/ntp-check.js +1 -1
  63. package/lib/object-store/azure-blob.js +3 -3
  64. package/lib/object-store/gcs.js +3 -3
  65. package/lib/object-store/http-put.js +1 -1
  66. package/lib/object-store/local.js +3 -3
  67. package/lib/object-store/sigv4-bucket-ops.js +1 -1
  68. package/lib/object-store/sigv4.js +3 -3
  69. package/lib/observability.js +1 -1
  70. package/lib/parsers/safe-env.js +3 -3
  71. package/lib/process-spawn.js +2 -2
  72. package/lib/restore-bundle.js +3 -3
  73. package/lib/restore-rollback.js +4 -4
  74. package/lib/restore.js +3 -3
  75. package/lib/retry.js +1 -1
  76. package/lib/router.js +16 -16
  77. package/lib/safe-url.js +2 -2
  78. package/lib/sandbox.js +1 -1
  79. package/lib/security-assert.js +1 -1
  80. package/lib/seeders.js +4 -4
  81. package/lib/self-update-standalone-verifier.js +2 -2
  82. package/lib/self-update.js +5 -5
  83. package/lib/session-device-binding.js +1 -1
  84. package/lib/storage.js +1 -1
  85. package/lib/template.js +2 -2
  86. package/lib/testing.js +2 -2
  87. package/lib/totp.js +1 -1
  88. package/lib/vault/index.js +2 -2
  89. package/lib/vault/passphrase-ops.js +2 -2
  90. package/lib/vault/passphrase-source.js +2 -2
  91. package/lib/vault/rotate.js +7 -7
  92. package/lib/vault/seal-pem-file.js +8 -8
  93. package/lib/vault-aad.js +5 -5
  94. package/lib/vendor-data.js +1 -1
  95. package/lib/watcher.js +5 -5
  96. package/lib/webhook.js +1 -1
  97. package/lib/websocket.js +3 -3
  98. package/lib/ws-client.js +8 -8
  99. package/package.json +1 -1
  100. package/sbom.cdx.json +6 -6
package/lib/seeders.js CHANGED
@@ -15,7 +15,7 @@
15
15
  *
16
16
  * module.exports = {
17
17
  * description: "Create default admin user for local dev",
18
- * // Optional — when omitted, the env is inferred from the nodePath.
18
+ * // Optional — when omitted, the env is inferred from the path.
19
19
  * // When present, this seed only applies under one of these envs.
20
20
  * envs: ["dev", "test"],
21
21
  * // Default false — applied once and recorded in registry.
@@ -54,7 +54,7 @@
54
54
  * applied state)
55
55
  */
56
56
 
57
- var nodePath = require("path");
57
+ var nodePath = require("node:path");
58
58
  var atomicFile = require("./atomic-file");
59
59
  var C = require("./constants");
60
60
  var dbSchema = require("./db-schema");
@@ -67,7 +67,7 @@ var { SeederError } = require("./framework-error");
67
67
 
68
68
  var log = boot("seeders");
69
69
 
70
- var dbModule = lazyRequire(function () { return require("./db"); });
70
+ var db = lazyRequire(function () { return require("./db"); });
71
71
  var observability = lazyRequire(function () { return require("./observability"); });
72
72
 
73
73
  var _err = SeederError.factory;
@@ -151,7 +151,7 @@ function _validateCreateOpts(opts) {
151
151
 
152
152
  function _resolveDb(opts) {
153
153
  if (opts && opts.db && typeof opts.db.prepare === "function") return opts.db;
154
- var d = dbModule();
154
+ var d = db();
155
155
  if (typeof d.prepare !== "function") {
156
156
  throw _err("NO_DB", "seeders: no db handle: pass opts.db or initialize b.db before create()");
157
157
  }
@@ -83,8 +83,8 @@
83
83
  * or systemd `install.sh`. node:crypto + node:fs only.
84
84
  */
85
85
 
86
- var nodeCrypto = require("crypto");
87
- var nodeFs = require("fs");
86
+ var nodeCrypto = require("node:crypto");
87
+ var nodeFs = require("node:fs");
88
88
 
89
89
  // _streamHashAndVerify — read the asset in 64 KiB chunks, feed each
90
90
  // chunk into sha256, sha3-512, AND the signature verifier in parallel.
@@ -47,16 +47,16 @@
47
47
  * Framework / vendored-deps integrity check plus version pinning — refuses to install a new build when the asset's detached signature does not verify against the operator-supplied public key, or when the vendored SHA the new build would ship does not match the manifest the opera...
48
48
  */
49
49
 
50
- var nodeFs = require("fs");
51
- var nodePath = require("path");
52
- var nodeCrypto = require("crypto");
50
+ var nodeFs = require("node:fs");
51
+ var nodePath = require("node:path");
52
+ var nodeCrypto = require("node:crypto");
53
53
  var numericBounds = require("./numeric-bounds");
54
54
  var atomicFile = require("./atomic-file");
55
55
  var validateOpts = require("./validate-opts");
56
56
  var bCrypto = require("./crypto");
57
57
  var httpClient = require("./http-client");
58
58
  var safeJson = require("./safe-json");
59
- var { URL: NodeUrl } = require("url");
59
+ var { URL: NodeUrl } = require("node:url");
60
60
  var lazyRequire = require("./lazy-require");
61
61
  var C = require("./constants");
62
62
  var standaloneVerifier = require("./self-update-standalone-verifier");
@@ -178,7 +178,7 @@ function _matchAsset(name, pattern, fallback) {
178
178
  * Fetch a releases feed and report whether a newer tag is available.
179
179
  * Tags are compared semver-style with a leading `v` stripped. When
180
180
  * `opts.etag` is supplied an `If-None-Match` header makes a 304 a fast
181
- * "no update" nodePath. The match against asset and signature URLs uses
181
+ * "no update" path. The match against asset and signature URLs uses
182
182
  * `opts.assetPattern` and `opts.signaturePattern` (RegExp or substring)
183
183
  * with conservative fallbacks. Throws SelfUpdateError on a non-2xx
184
184
  * upstream, malformed JSON, or unexpected shape.
@@ -70,7 +70,7 @@
70
70
 
71
71
  var C = require("./constants");
72
72
  var bCrypto = require("./crypto");
73
- var nodeCrypto = require("crypto");
73
+ var nodeCrypto = require("node:crypto");
74
74
  var lazyRequire = require("./lazy-require");
75
75
  var requestHelpers = require("./request-helpers");
76
76
  var validateOpts = require("./validate-opts");
package/lib/storage.js CHANGED
@@ -399,7 +399,7 @@ async function getFileStream(key, sealedKey, opts) {
399
399
  // to the consumer. Chunked-encryption with per-chunk AEAD would let us
400
400
  // stream end-to-end, but at the cost of finer-grained tampering windows.
401
401
  var buf = await getFileBuffer(key, sealedKey, opts);
402
- return require("stream").Readable.from(buf);
402
+ return require("node:stream").Readable.from(buf);
403
403
  }
404
404
 
405
405
  /**
package/lib/template.js CHANGED
@@ -89,8 +89,8 @@
89
89
  * is the second line: even if a template loaded, it can't execute
90
90
  * arbitrary JS — only the limited expression grammar above.
91
91
  */
92
- var nodeFs = require("fs");
93
- var nodePath = require("path");
92
+ var nodeFs = require("node:fs");
93
+ var nodePath = require("node:path");
94
94
  var lazyRequire = require("./lazy-require");
95
95
  var validateOpts = require("./validate-opts");
96
96
 
package/lib/testing.js CHANGED
@@ -62,7 +62,7 @@ var { TestingError } = require("./framework-error");
62
62
  // metrics is the only place that exposes the global `tap` slot the
63
63
  // captureMetricsTap helper swaps; pulling it lazily keeps testing.js
64
64
  // safe to require at any framework load order.
65
- var metricsModule = lazyRequire(function () { return require("./metrics"); });
65
+ var metrics = lazyRequire(function () { return require("./metrics"); });
66
66
 
67
67
  var _err = TestingError.factory;
68
68
 
@@ -563,7 +563,7 @@ function captureObservability() {
563
563
  * }
564
564
  */
565
565
  function captureMetricsTap() {
566
- var m = metricsModule();
566
+ var m = metrics();
567
567
  var original = m.tap;
568
568
  var captured = [];
569
569
  m.tap = function (name, value, labels) {
package/lib/totp.js CHANGED
@@ -59,7 +59,7 @@
59
59
  * operators should choose an authenticator that does (Authy,
60
60
  * 1Password, Bitwarden, Aegis, Microsoft Authenticator all do).
61
61
  */
62
- var nodeCrypto = require("crypto");
62
+ var nodeCrypto = require("node:crypto");
63
63
  var C = require("./constants");
64
64
  var { generateBytes, generateToken, timingSafeEqual } = require("./crypto");
65
65
  var { AuthError } = require("./framework-error");
@@ -62,8 +62,8 @@
62
62
  * @card
63
63
  * Sealed keystore that anchors every other framework subsystem holding secrets at rest: db field encryption, encrypted session storage, audit-log signing keys, OAuth refresh tokens, anything that flows through `b.vault.seal` / `b.vault.unseal`.
64
64
  */
65
- var nodeFs = require("fs");
66
- var nodePath = require("path");
65
+ var nodeFs = require("node:fs");
66
+ var nodePath = require("node:path");
67
67
  var atomicFile = require("../atomic-file");
68
68
  var C = require("../constants");
69
69
  var { generateEncryptionKeyPair, encrypt, decrypt } = require("../crypto");
@@ -35,8 +35,8 @@
35
35
  * with the original file untouched.
36
36
  */
37
37
 
38
- var nodeFs = require("fs");
39
- var nodePath = require("path");
38
+ var nodeFs = require("node:fs");
39
+ var nodePath = require("node:path");
40
40
  var atomicFile = require("../atomic-file");
41
41
  var vaultWrap = require("./wrap");
42
42
  var { defineClass } = require("../framework-error");
@@ -23,8 +23,8 @@
23
23
  * exposure to later env-dump surfaces. This doesn't zero the memory
24
24
  * (JavaScript can't) but does remove the env-object reference.
25
25
  */
26
- var nodeFs = require("fs");
27
- var readline = require("readline");
26
+ var nodeFs = require("node:fs");
27
+ var readline = require("node:readline");
28
28
  var safeEnv = require("../parsers/safe-env");
29
29
  var safeBuffer = require("../safe-buffer");
30
30
 
@@ -48,8 +48,8 @@
48
48
  * sampler skips them.
49
49
  */
50
50
 
51
- var nodeFs = require("fs");
52
- var nodePath = require("path");
51
+ var nodeFs = require("node:fs");
52
+ var nodePath = require("node:path");
53
53
  var { DatabaseSync } = require("node:sqlite");
54
54
  var atomicFile = require("../atomic-file");
55
55
  var safeSql = require("../safe-sql");
@@ -709,9 +709,9 @@ async function rotate(opts) {
709
709
  // one for this run); log at debug so the cleanup attempt isn't
710
710
  // silently swallowed when something genuinely unexpected fails.
711
711
  try { nodeFs.unlinkSync(tmpDbPath + "-wal"); }
712
- catch (e) { rotateLog.debug("cleanup-failed", { op: "nodeFs.unlinkSync", path: tmpDbPath + "-wal", error: e.message }); }
712
+ catch (e) { rotateLog.debug("cleanup-failed", { op: "fs.unlinkSync", path: tmpDbPath + "-wal", error: e.message }); }
713
713
  try { nodeFs.unlinkSync(tmpDbPath + "-shm"); }
714
- catch (e) { rotateLog.debug("cleanup-failed", { op: "nodeFs.unlinkSync", path: tmpDbPath + "-shm", error: e.message }); }
714
+ catch (e) { rotateLog.debug("cleanup-failed", { op: "fs.unlinkSync", path: tmpDbPath + "-shm", error: e.message }); }
715
715
 
716
716
  var rotatedBytes = nodeFs.readFileSync(tmpDbPath);
717
717
  nodeFs.writeFileSync(nodePath.join(stagingDir, paths.encryptedDb),
@@ -729,11 +729,11 @@ async function rotate(opts) {
729
729
  } finally {
730
730
  vdb.close();
731
731
  try { nodeFs.unlinkSync(verifyTmp); }
732
- catch (e) { rotateLog.debug("cleanup-failed", { op: "nodeFs.unlinkSync", path: verifyTmp, error: e.message }); }
732
+ catch (e) { rotateLog.debug("cleanup-failed", { op: "fs.unlinkSync", path: verifyTmp, error: e.message }); }
733
733
  try { nodeFs.unlinkSync(verifyTmp + "-wal"); }
734
- catch (e) { rotateLog.debug("cleanup-failed", { op: "nodeFs.unlinkSync", path: verifyTmp + "-wal", error: e.message }); }
734
+ catch (e) { rotateLog.debug("cleanup-failed", { op: "fs.unlinkSync", path: verifyTmp + "-wal", error: e.message }); }
735
735
  try { nodeFs.unlinkSync(verifyTmp + "-shm"); }
736
- catch (e) { rotateLog.debug("cleanup-failed", { op: "nodeFs.unlinkSync", path: verifyTmp + "-shm", error: e.message }); }
736
+ catch (e) { rotateLog.debug("cleanup-failed", { op: "fs.unlinkSync", path: verifyTmp + "-shm", error: e.message }); }
737
737
  }
738
738
  if (!verifyResult.ok) {
739
739
  throw new VaultRotateError("vault-rotate/verify-failed",
@@ -19,7 +19,7 @@
19
19
  * source: "/etc/letsencrypt/live/example.com/privkey.pem",
20
20
  * destination: "/var/lib/blamejs/server.key.sealed",
21
21
  * audit: true, // default
22
- * pollInterval: b.constants.TIME.seconds(2), // nodeFs.watchFile cadence
22
+ * pollInterval: b.constants.TIME.seconds(2), // fs.watchFile cadence
23
23
  * onResealed: function (info) { ... }, // { srcPath, destPath, bytes,
24
24
  * resealedAt, generation }
25
25
  * onError: function (err) { ... }, // sealing failed
@@ -42,10 +42,10 @@
42
42
  * (rename did not happen). The recovery routine re-runs the seal from
43
43
  * source — idempotent because the source PEM is the source of truth.
44
44
  *
45
- * nodeFs.watchFile semantics:
45
+ * fs.watchFile semantics:
46
46
  *
47
- * Node's nodeFs.watchFile is a polling stat() loop with the configured
48
- * pollInterval. It fires on mtime / size change. nodeFs.watch (the
47
+ * Node's fs.watchFile is a polling stat() loop with the configured
48
+ * pollInterval. It fires on mtime / size change. fs.watch (the
49
49
  * inotify / kqueue backend) is more efficient but inconsistent across
50
50
  * platforms — single rename events surface as multiple change events
51
51
  * on Linux (events fire on the directory entry, the file, and the
@@ -54,8 +54,8 @@
54
54
  * pollInterval) is acceptable for renewal cadences measured in days.
55
55
  */
56
56
 
57
- var nodeFs = require("fs");
58
- var nodePath = require("path");
57
+ var nodeFs = require("node:fs");
58
+ var nodePath = require("node:path");
59
59
  var atomicFile = require("../atomic-file");
60
60
  var C = require("../constants");
61
61
  var lazyRequire = require("../lazy-require");
@@ -76,7 +76,7 @@ var SealPemFileError = defineClass("SealPemFileError", { alwaysPermanent: true }
76
76
  // 2-second worst-case re-seal latency — negligible against the
77
77
  // renewal cadence. Operators with sub-second-sensitive use cases
78
78
  // override via opts.pollInterval.
79
- // H6 #6 — nodeFs.watchFile default cadence reduced from 2s to 500ms so a
79
+ // H6 #6 — fs.watchFile default cadence reduced from 2s to 500ms so a
80
80
  // fast renewal-then-revert (mtime bump then second bump within ~2s)
81
81
  // doesn't sneak past the watcher. Operators with extremely-quiet
82
82
  // renewal cycles can override via opts.pollInterval; the cost of
@@ -126,7 +126,7 @@ var DEFAULT_MAX_SOURCE_BYTES = C.BYTES.mib(1);
126
126
  * source: string, // plaintext PEM path (required)
127
127
  * destination: string, // sealed-output path (required, must differ from source)
128
128
  * audit: boolean, // emit b.audit events on every reseal (default true)
129
- * pollInterval: number, // nodeFs.watchFile cadence in ms (default 500)
129
+ * pollInterval: number, // fs.watchFile cadence in ms (default 500)
130
130
  * onResealed: function, // (info) => void — { srcPath, destPath, bytes, resealedAt, generation }
131
131
  * onError: function, // (err) => void — sealing failed
132
132
  * maxSourceBytes: number, // refuse source larger than this (default 1 MiB)
package/lib/vault-aad.js CHANGED
@@ -52,7 +52,7 @@ var C = require("./constants");
52
52
  var { defineClass } = require("./framework-error");
53
53
  var VaultAadError = defineClass("VaultAadError", { alwaysPermanent: true });
54
54
 
55
- var crypto = lazyRequire(function () { return require("./crypto"); });
55
+ var bCrypto = lazyRequire(function () { return require("./crypto"); });
56
56
  var vault = lazyRequire(function () { return require("./vault"); });
57
57
  var audit = lazyRequire(function () { return require("./audit"); });
58
58
 
@@ -154,11 +154,11 @@ function _deriveKey(aadBytes) {
154
154
  // this is a deterministic derivation; rotating vault keys produces
155
155
  // a different root and breaks all prior AAD-sealed values (operator
156
156
  // intent: rotation = re-seal).
157
- var rootHash = crypto().sha3Hash(keysJson);
157
+ var rootHash = bCrypto().sha3Hash(keysJson);
158
158
  var prefix = Buffer.from("vault.aad/v1/", "utf8");
159
159
  var rootBuf = Buffer.from(rootHash, "hex");
160
160
  var input = Buffer.concat([prefix, rootBuf, aadBytes]);
161
- return crypto().kdf(input, C.BYTES.bytes(32));
161
+ return bCrypto().kdf(input, C.BYTES.bytes(32));
162
162
  }
163
163
 
164
164
  function seal(plaintext, aadParts) {
@@ -178,7 +178,7 @@ function seal(plaintext, aadParts) {
178
178
  var aadBytes = _canonicalize(aadParts);
179
179
  var key = _deriveKey(aadBytes);
180
180
  var ptBuf = Buffer.from(plaintext, "utf8");
181
- var packed = crypto().encryptPacked(ptBuf, key, aadBytes);
181
+ var packed = bCrypto().encryptPacked(ptBuf, key, aadBytes);
182
182
 
183
183
  try {
184
184
  audit().safeEmit({
@@ -213,7 +213,7 @@ function unseal(value, aadParts) {
213
213
  "unseal: base64 decode failed - " + e.message);
214
214
  }
215
215
  var pt;
216
- try { pt = crypto().decryptPacked(packed, key, aadBytes); }
216
+ try { pt = bCrypto().decryptPacked(packed, key, aadBytes); }
217
217
  catch (e) {
218
218
  try {
219
219
  audit().safeEmit({
@@ -36,7 +36,7 @@
36
36
  * not `fs.readFileSync`-loaded.
37
37
  */
38
38
 
39
- var nodeCrypto = require("crypto");
39
+ var nodeCrypto = require("node:crypto");
40
40
  var safeEnv = require("./parsers/safe-env");
41
41
  var { defineClass } = require("./framework-error");
42
42
  var pqcSoftware = require("./pqc-software");
package/lib/watcher.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * b.watcher — recursive filesystem-watch primitive with cross-platform
4
4
  * event normalization.
5
5
  *
6
- * Wraps `nodeFs.watch(root, { recursive: true })` and turns the per-platform
6
+ * Wraps `fs.watch(root, { recursive: true })` and turns the per-platform
7
7
  * event soup (Linux inotify "rename" + "change", macOS FSEvents
8
8
  * coalesced "rename", Windows ReadDirectoryChangesW pure "rename" /
9
9
  * "change") into a single shape:
@@ -15,7 +15,7 @@
15
15
  * `type` is one of "file" or "dir". The watcher is build-tool-shaped:
16
16
  * use it to drive incremental rebuilds, hot-reload-on-change,
17
17
  * config-file watching, or content-store cache busts. It is NOT a
18
- * security primitive — nodeFs.watch is best-effort across kernels and the
18
+ * security primitive — fs.watch is best-effort across kernels and the
19
19
  * caller must not rely on it for audit-grade change detection.
20
20
  *
21
21
  * Cross-platform notes baked in:
@@ -45,8 +45,8 @@
45
45
  * watcher.WatcherError
46
46
  */
47
47
 
48
- var nodeFs = require("fs");
49
- var nodePath = require("path");
48
+ var nodeFs = require("node:fs");
49
+ var nodePath = require("node:path");
50
50
  var lazyRequire = require("./lazy-require");
51
51
  var validateOpts = require("./validate-opts");
52
52
  var { WatcherError } = require("./framework-error");
@@ -434,7 +434,7 @@ function create(opts) {
434
434
  ((e && e.message) || String(e)) + " — pass mode: \"poll\" to fall back to interval polling");
435
435
  }
436
436
  throw new WatcherError("watcher/start-failed",
437
- "watcher.create: nodeFs.watch failed: " + ((e && e.message) || String(e)));
437
+ "watcher.create: fs.watch failed: " + ((e && e.message) || String(e)));
438
438
  }
439
439
  }
440
440
 
package/lib/webhook.js CHANGED
@@ -47,7 +47,7 @@
47
47
  * Outbound webhook delivery with cryptographic signing in a single `Webhook-Signature` header, retry + dead-letter via `b.retry`, and idempotency keys baked into the signed string so a captured signature cannot be replayed with a fresh id.
48
48
  */
49
49
 
50
- var nodeCrypto = require("crypto");
50
+ var nodeCrypto = require("node:crypto");
51
51
  var bCrypto = require("./crypto");
52
52
  var httpClient = require("./http-client");
53
53
  var safeBuffer = require("./safe-buffer");
package/lib/websocket.js CHANGED
@@ -74,9 +74,9 @@
74
74
  * RFC 6455 WebSocket server on top of Node's `'upgrade'` event, plus RFC 8441 Extended CONNECT for HTTP/2.
75
75
  */
76
76
 
77
- var nodeCrypto = require("crypto");
78
- var zlib = require("zlib");
79
- var { EventEmitter } = require("events");
77
+ var nodeCrypto = require("node:crypto");
78
+ var zlib = require("node:zlib");
79
+ var { EventEmitter } = require("node:events");
80
80
  var C = require("./constants");
81
81
  var requestHelpers = require("./request-helpers");
82
82
  var safeAsync = require("./safe-async");
package/lib/ws-client.js CHANGED
@@ -45,16 +45,16 @@
45
45
  * (operator opts in to mTLS via tlsOpts). HSTS-style, no soft-fail.
46
46
  */
47
47
 
48
- var net = require("net");
49
- var nodeUrl = require("url");
50
- var nodeCrypto = require("crypto");
51
- var EventEmitter = require("events");
48
+ var net = require("node:net");
49
+ var nodeUrl = require("node:url");
50
+ var nodeCrypto = require("node:crypto");
51
+ var { EventEmitter } = require("node:events");
52
52
 
53
53
  var lazyRequire = require("./lazy-require");
54
54
  var validateOpts = require("./validate-opts");
55
55
  var safeAsync = require("./safe-async");
56
56
  var safeBuffer = require("./safe-buffer");
57
- var fwCrypto = lazyRequire(function () { return require("./crypto"); });
57
+ var bCrypto = lazyRequire(function () { return require("./crypto"); });
58
58
  var websocket = lazyRequire(function () { return require("./websocket"); });
59
59
  var audit = lazyRequire(function () { return require("./audit"); });
60
60
  var networkTls = lazyRequire(function () { return require("./network-tls"); });
@@ -137,7 +137,7 @@ function _inflateRawCappedSync(zlib, compressed, maxBytes, windowBits) {
137
137
  }
138
138
 
139
139
  function _generateKey() {
140
- return fwCrypto().generateBytes(C.BYTES.bytes(16)).toString("base64");
140
+ return bCrypto().generateBytes(C.BYTES.bytes(16)).toString("base64");
141
141
  }
142
142
 
143
143
  function _expectedAccept(secKey, handshakeGuid) {
@@ -389,7 +389,7 @@ class WsClient extends EventEmitter {
389
389
 
390
390
  var socket;
391
391
  if (parsed.protocol === "wss:") {
392
- var tls = require("tls"); // allow:inline-require — node:tls only on TLS path
392
+ var tls = require("node:tls"); // allow:inline-require — node:tls only on TLS path
393
393
  var tlsOpts = Object.assign({
394
394
  host: host,
395
395
  port: port,
@@ -710,7 +710,7 @@ class WsClient extends EventEmitter {
710
710
  this._fragmentRsv1 = false;
711
711
  if (this._negotiatedDeflate && firstFrameRsv1) {
712
712
  try {
713
- var zlib = require("zlib"); // allow:inline-require — zlib only on deflate-negotiated path
713
+ var zlib = require("node:zlib"); // allow:inline-require — zlib only on deflate-negotiated path
714
714
  var compressed = Buffer.concat([fullPayload, Buffer.from([0x00, 0x00, 0xff, 0xff])]); // allow:raw-byte-literal — RFC 7692 §7.2.2 deflate trailer
715
715
  // Decompression-bomb defense: zlib.inflateRawSync's
716
716
  // `maxOutputLength` aborts the inflate the moment the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blamejs/core",
3
- "version": "0.9.15",
3
+ "version": "0.9.17",
4
4
  "description": "The Node framework that owns its stack.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "blamejs contributors",
package/sbom.cdx.json CHANGED
@@ -2,10 +2,10 @@
2
2
  "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json",
3
3
  "bomFormat": "CycloneDX",
4
4
  "specVersion": "1.6",
5
- "serialNumber": "urn:uuid:40df0b28-c547-4f48-9bbf-f005b59cbd1b",
5
+ "serialNumber": "urn:uuid:bfd9c116-6a09-4b5c-a673-96fa322cab83",
6
6
  "version": 1,
7
7
  "metadata": {
8
- "timestamp": "2026-05-14T00:04:25.956Z",
8
+ "timestamp": "2026-05-14T06:23:47.607Z",
9
9
  "lifecycles": [
10
10
  {
11
11
  "phase": "build"
@@ -19,14 +19,14 @@
19
19
  }
20
20
  ],
21
21
  "component": {
22
- "bom-ref": "@blamejs/core@0.9.15",
22
+ "bom-ref": "@blamejs/core@0.9.17",
23
23
  "type": "library",
24
24
  "name": "blamejs",
25
- "version": "0.9.15",
25
+ "version": "0.9.17",
26
26
  "scope": "required",
27
27
  "author": "blamejs contributors",
28
28
  "description": "The Node framework that owns its stack.",
29
- "purl": "pkg:npm/%40blamejs/core@0.9.15",
29
+ "purl": "pkg:npm/%40blamejs/core@0.9.17",
30
30
  "properties": [],
31
31
  "externalReferences": [
32
32
  {
@@ -54,7 +54,7 @@
54
54
  "components": [],
55
55
  "dependencies": [
56
56
  {
57
- "ref": "@blamejs/core@0.9.15",
57
+ "ref": "@blamejs/core@0.9.17",
58
58
  "dependsOn": []
59
59
  }
60
60
  ]