@blamejs/core 0.7.1 → 0.7.18
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.
- package/CHANGELOG.md +423 -389
- package/README.md +150 -149
- package/bin/blamejs.js +0 -0
- package/index.js +308 -282
- package/lib/api-key.js +660 -672
- package/lib/api-snapshot.js +338 -338
- package/lib/app-shutdown.js +385 -385
- package/lib/app.js +365 -365
- package/lib/archive.js +250 -250
- package/lib/atomic-file.js +544 -544
- package/lib/audit-chain.js +177 -177
- package/lib/audit-sign.js +344 -344
- package/lib/audit-tools.js +677 -677
- package/lib/audit.js +766 -766
- package/lib/auth/jwt.js +311 -311
- package/lib/auth/lockout.js +436 -436
- package/lib/auth/oauth.js +721 -721
- package/lib/auth/passkey.js +181 -181
- package/lib/auth/password.js +594 -594
- package/lib/backup/bundle.js +217 -217
- package/lib/backup/crypto.js +176 -176
- package/lib/backup/index.js +515 -515
- package/lib/backup/manifest.js +282 -282
- package/lib/break-glass.js +1338 -1338
- package/lib/bundler.js +441 -441
- package/lib/cache-redis.js +256 -266
- package/lib/cache.js +1206 -1211
- package/lib/canonical-json.js +115 -115
- package/lib/chain-writer.js +234 -234
- package/lib/cli-helpers.js +206 -206
- package/lib/cli.js +2334 -2334
- package/lib/cluster-provider-db.js +317 -317
- package/lib/cluster-storage.js +226 -226
- package/lib/cluster.js +703 -703
- package/lib/codepoint-class.js +196 -0
- package/lib/config-drift.js +301 -301
- package/lib/consent.js +222 -222
- package/lib/constants.js +191 -191
- package/lib/cookies.js +315 -315
- package/lib/credential-hash.js +322 -322
- package/lib/crypto.js +266 -266
- package/lib/csv.js +275 -286
- package/lib/db-declare-row-policy.js +267 -267
- package/lib/db-declare-view.js +420 -421
- package/lib/db-query.js +406 -406
- package/lib/db-schema.js +319 -319
- package/lib/db.js +1288 -1288
- package/lib/deprecate.js +222 -222
- package/lib/dev.js +335 -335
- package/lib/dual-control.js +473 -473
- package/lib/error-page.js +420 -420
- package/lib/external-db-migrate.js +441 -441
- package/lib/external-db.js +1061 -1061
- package/lib/file-type.js +273 -273
- package/lib/file-upload.js +1136 -0
- package/lib/forms.js +422 -422
- package/lib/framework-error.js +293 -202
- package/lib/framework-schema.js +717 -717
- package/lib/gate-contract.js +971 -0
- package/lib/guard-all.js +405 -0
- package/lib/guard-archive.js +739 -0
- package/lib/guard-csv.js +816 -0
- package/lib/guard-email.js +744 -0
- package/lib/guard-filename.js +724 -0
- package/lib/guard-html.js +976 -0
- package/lib/guard-json.js +729 -0
- package/lib/guard-markdown.js +586 -0
- package/lib/guard-svg.js +976 -0
- package/lib/guard-xml.js +405 -0
- package/lib/guard-yaml.js +529 -0
- package/lib/handlers.js +350 -350
- package/lib/http-client-cookie-jar.js +508 -508
- package/lib/http-client.js +1195 -1195
- package/lib/i18n.js +878 -878
- package/lib/jobs.js +185 -185
- package/lib/log-stream-cloudwatch.js +369 -369
- package/lib/log-stream-local.js +146 -146
- package/lib/log-stream-otlp-grpc.js +410 -410
- package/lib/log-stream-otlp.js +286 -286
- package/lib/log-stream-syslog.js +302 -302
- package/lib/log-stream-webhook.js +199 -199
- package/lib/log-stream.js +330 -330
- package/lib/log.js +500 -500
- package/lib/mail-bounce.js +528 -528
- package/lib/mail-dkim.js +369 -362
- package/lib/mail.js +981 -962
- package/lib/metrics.js +683 -683
- package/lib/middleware/api-encrypt.js +936 -573
- package/lib/middleware/attach-user.js +157 -157
- package/lib/middleware/body-parser.js +1170 -1091
- package/lib/middleware/bot-guard.js +178 -178
- package/lib/middleware/compression.js +452 -452
- package/lib/middleware/cors.js +314 -314
- package/lib/middleware/csp-nonce.js +348 -348
- package/lib/middleware/csrf-protect.js +316 -316
- package/lib/middleware/db-role-for.js +264 -269
- package/lib/middleware/health.js +392 -392
- package/lib/middleware/index.js +79 -79
- package/lib/middleware/rate-limit.js +358 -358
- package/lib/middleware/request-id.js +61 -61
- package/lib/middleware/request-log.js +168 -168
- package/lib/middleware/require-auth.js +104 -104
- package/lib/middleware/security-headers.js +116 -116
- package/lib/middleware/sse.js +166 -166
- package/lib/migrations.js +383 -383
- package/lib/mtls-ca.js +518 -518
- package/lib/mtls-engine-default.js +481 -481
- package/lib/network-dns.js +632 -632
- package/lib/network-heartbeat.js +290 -290
- package/lib/network-nts.js +574 -574
- package/lib/network-proxy.js +265 -265
- package/lib/network-tls.js +328 -328
- package/lib/network.js +233 -233
- package/lib/notify.js +612 -614
- package/lib/ntp-check.js +229 -229
- package/lib/numeric-bounds.js +111 -91
- package/lib/object-store/azure-blob-bucket-ops.js +349 -349
- package/lib/object-store/azure-blob.js +488 -451
- package/lib/object-store/gcs-bucket-ops.js +351 -351
- package/lib/object-store/gcs.js +519 -479
- package/lib/object-store/http-put.js +153 -153
- package/lib/object-store/index.js +197 -197
- package/lib/object-store/sigv4-bucket-ops.js +1092 -1092
- package/lib/object-store/sigv4.js +903 -855
- package/lib/observability.js +151 -151
- package/lib/otel-export.js +269 -269
- package/lib/pagination.js +464 -464
- package/lib/parsers/index.js +80 -80
- package/lib/parsers/safe-env.js +642 -642
- package/lib/parsers/safe-ini.js +292 -292
- package/lib/parsers/safe-toml.js +784 -784
- package/lib/parsers/safe-xml.js +390 -390
- package/lib/parsers/safe-yaml.js +1015 -1015
- package/lib/permissions.js +708 -708
- package/lib/pqc-agent.js +87 -87
- package/lib/pqc-gate.js +279 -279
- package/lib/protobuf-encoder.js +190 -190
- package/lib/protocol-dispatcher.js +161 -161
- package/lib/pubsub-redis.js +167 -177
- package/lib/pubsub.js +429 -429
- package/lib/queue-local.js +476 -476
- package/lib/queue-redis.js +745 -752
- package/lib/queue-sqs.js +319 -319
- package/lib/queue.js +695 -695
- package/lib/redis-client.js +519 -489
- package/lib/request-helpers.js +340 -336
- package/lib/restore-bundle.js +237 -237
- package/lib/restore-rollback.js +259 -259
- package/lib/restore.js +409 -409
- package/lib/retry.js +376 -376
- package/lib/router.js +748 -748
- package/lib/safe-async.js +735 -735
- package/lib/safe-buffer.js +237 -237
- package/lib/safe-json.js +541 -541
- package/lib/safe-schema.js +1266 -1266
- package/lib/safe-url.js +159 -159
- package/lib/scheduler.js +706 -706
- package/lib/security-assert.js +373 -373
- package/lib/seeders.js +618 -630
- package/lib/session.js +478 -478
- package/lib/slug.js +269 -269
- package/lib/ssrf-guard.js +401 -401
- package/lib/static.js +879 -114
- package/lib/storage.js +471 -471
- package/lib/subject.js +281 -281
- package/lib/template.js +791 -791
- package/lib/testing.js +798 -798
- package/lib/time.js +310 -310
- package/lib/totp.js +302 -302
- package/lib/tracing.js +494 -494
- package/lib/uuid.js +132 -132
- package/lib/validate-opts.js +340 -270
- package/lib/vault/index.js +308 -308
- package/lib/vault/rotate.js +784 -784
- package/lib/vault/wrap.js +296 -296
- package/lib/vendor/noble-ciphers.cjs +9 -9
- package/lib/webhook.js +595 -598
- package/lib/websocket.js +1048 -1048
- package/package.json +77 -77
- package/sbom.cyclonedx.json +7 -7
package/lib/pqc-agent.js
CHANGED
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* pqc-agent — outbound HTTPS agent locked to PQC group preference.
|
|
4
|
-
*
|
|
5
|
-
* The framework's posture is "all outbound TLS is PQC-only". This is
|
|
6
|
-
* the single primitive that defines what that means at the agent
|
|
7
|
-
* level: TLSv1.3 minimum, ecdhCurve set to the framework's PQC hybrid
|
|
8
|
-
* preference (constants.TLS_GROUP_CURVE_STR), keep-alive on.
|
|
9
|
-
*
|
|
10
|
-
* Two surfaces:
|
|
11
|
-
*
|
|
12
|
-
* 1. b.pqcAgent.agent — a process-wide default agent, lazy-built on
|
|
13
|
-
* first access. Use this for one-off outbound calls that go
|
|
14
|
-
* through node:https directly:
|
|
15
|
-
*
|
|
16
|
-
* https.request(url, { agent: b.pqcAgent.agent }, ...);
|
|
17
|
-
*
|
|
18
|
-
* 2. b.pqcAgent.create(opts) — build a fresh agent with custom
|
|
19
|
-
* pool / timeout opts. ecdhCurve and minVersion CANNOT be
|
|
20
|
-
* weakened via opts; operator-supplied values for those are
|
|
21
|
-
* ignored and the framework's defaults win. Operators who need
|
|
22
|
-
* a non-PQC agent for a deliberate one-off integration with a
|
|
23
|
-
* non-PQC server construct their own new https.Agent() directly,
|
|
24
|
-
* outside this primitive.
|
|
25
|
-
*
|
|
26
|
-
* lib/http-client.js's transport cache uses pqcAgent.create() under
|
|
27
|
-
* the hood, so the framework's bundled HTTP client and any operator-
|
|
28
|
-
* direct https.request calls converge on the same agent posture.
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
var https = require("node:https");
|
|
32
|
-
var http = require("node:http");
|
|
33
|
-
var C = require("./constants");
|
|
34
|
-
var networkTls = require("./network-tls");
|
|
35
|
-
|
|
36
|
-
// Defaults for connection pooling. These ARE overridable via opts —
|
|
37
|
-
// only the cryptographic posture (ecdhCurve / minVersion) is locked.
|
|
38
|
-
var DEFAULT_OPTS = {
|
|
39
|
-
keepAlive: true,
|
|
40
|
-
keepAliveMsecs: C.TIME.seconds(30),
|
|
41
|
-
maxSockets: 50,
|
|
42
|
-
// Pool counts are protocol-side concurrency tunables, not byte
|
|
43
|
-
// quantities — hex form keeps the byte-shape detector out of it.
|
|
44
|
-
maxFreeSockets: 0x10,
|
|
45
|
-
scheduling: "lifo",
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
function _buildAgentOpts(opts) {
|
|
49
|
-
opts = opts || {};
|
|
50
|
-
var merged = Object.assign({}, DEFAULT_OPTS, opts);
|
|
51
|
-
merged.ecdhCurve = C.TLS_GROUP_CURVE_STR;
|
|
52
|
-
merged.minVersion = "TLSv1.3";
|
|
53
|
-
if (networkTls && typeof networkTls.applyToContext === "function") {
|
|
54
|
-
merged = networkTls.applyToContext({ base: merged });
|
|
55
|
-
}
|
|
56
|
-
return merged;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function create(opts) {
|
|
60
|
-
return new https.Agent(_buildAgentOpts(opts));
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// http (cleartext) variant — same pool defaults but obviously no TLS
|
|
64
|
-
// posture to enforce. Operator-side, almost no caller wants this; it
|
|
65
|
-
// exists so http-client's h1 transport for cleartext origins (h2c
|
|
66
|
-
// fixtures, internal services) shares the pool tuning.
|
|
67
|
-
function createHttp(opts) {
|
|
68
|
-
return new http.Agent(Object.assign({}, DEFAULT_OPTS, opts || {}));
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Lazy-built default agent. Most callers use this; the lazy build
|
|
72
|
-
// avoids creating an https.Agent at require time for processes that
|
|
73
|
-
// never make an outbound HTTPS call.
|
|
74
|
-
var _defaultAgent = null;
|
|
75
|
-
function _getDefaultAgent() {
|
|
76
|
-
if (!_defaultAgent) _defaultAgent = create();
|
|
77
|
-
return _defaultAgent;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
module.exports = {
|
|
81
|
-
// Read property — getter so the agent is built on first access.
|
|
82
|
-
get agent() { return _getDefaultAgent(); },
|
|
83
|
-
create: create,
|
|
84
|
-
createHttp: createHttp,
|
|
85
|
-
DEFAULT_OPTS: DEFAULT_OPTS,
|
|
86
|
-
enforced: true,
|
|
87
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* pqc-agent — outbound HTTPS agent locked to PQC group preference.
|
|
4
|
+
*
|
|
5
|
+
* The framework's posture is "all outbound TLS is PQC-only". This is
|
|
6
|
+
* the single primitive that defines what that means at the agent
|
|
7
|
+
* level: TLSv1.3 minimum, ecdhCurve set to the framework's PQC hybrid
|
|
8
|
+
* preference (constants.TLS_GROUP_CURVE_STR), keep-alive on.
|
|
9
|
+
*
|
|
10
|
+
* Two surfaces:
|
|
11
|
+
*
|
|
12
|
+
* 1. b.pqcAgent.agent — a process-wide default agent, lazy-built on
|
|
13
|
+
* first access. Use this for one-off outbound calls that go
|
|
14
|
+
* through node:https directly:
|
|
15
|
+
*
|
|
16
|
+
* https.request(url, { agent: b.pqcAgent.agent }, ...);
|
|
17
|
+
*
|
|
18
|
+
* 2. b.pqcAgent.create(opts) — build a fresh agent with custom
|
|
19
|
+
* pool / timeout opts. ecdhCurve and minVersion CANNOT be
|
|
20
|
+
* weakened via opts; operator-supplied values for those are
|
|
21
|
+
* ignored and the framework's defaults win. Operators who need
|
|
22
|
+
* a non-PQC agent for a deliberate one-off integration with a
|
|
23
|
+
* non-PQC server construct their own new https.Agent() directly,
|
|
24
|
+
* outside this primitive.
|
|
25
|
+
*
|
|
26
|
+
* lib/http-client.js's transport cache uses pqcAgent.create() under
|
|
27
|
+
* the hood, so the framework's bundled HTTP client and any operator-
|
|
28
|
+
* direct https.request calls converge on the same agent posture.
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
var https = require("node:https");
|
|
32
|
+
var http = require("node:http");
|
|
33
|
+
var C = require("./constants");
|
|
34
|
+
var networkTls = require("./network-tls");
|
|
35
|
+
|
|
36
|
+
// Defaults for connection pooling. These ARE overridable via opts —
|
|
37
|
+
// only the cryptographic posture (ecdhCurve / minVersion) is locked.
|
|
38
|
+
var DEFAULT_OPTS = {
|
|
39
|
+
keepAlive: true,
|
|
40
|
+
keepAliveMsecs: C.TIME.seconds(30),
|
|
41
|
+
maxSockets: 50,
|
|
42
|
+
// Pool counts are protocol-side concurrency tunables, not byte
|
|
43
|
+
// quantities — hex form keeps the byte-shape detector out of it.
|
|
44
|
+
maxFreeSockets: 0x10,
|
|
45
|
+
scheduling: "lifo",
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
function _buildAgentOpts(opts) {
|
|
49
|
+
opts = opts || {};
|
|
50
|
+
var merged = Object.assign({}, DEFAULT_OPTS, opts);
|
|
51
|
+
merged.ecdhCurve = C.TLS_GROUP_CURVE_STR;
|
|
52
|
+
merged.minVersion = "TLSv1.3";
|
|
53
|
+
if (networkTls && typeof networkTls.applyToContext === "function") {
|
|
54
|
+
merged = networkTls.applyToContext({ base: merged });
|
|
55
|
+
}
|
|
56
|
+
return merged;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function create(opts) {
|
|
60
|
+
return new https.Agent(_buildAgentOpts(opts));
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// http (cleartext) variant — same pool defaults but obviously no TLS
|
|
64
|
+
// posture to enforce. Operator-side, almost no caller wants this; it
|
|
65
|
+
// exists so http-client's h1 transport for cleartext origins (h2c
|
|
66
|
+
// fixtures, internal services) shares the pool tuning.
|
|
67
|
+
function createHttp(opts) {
|
|
68
|
+
return new http.Agent(Object.assign({}, DEFAULT_OPTS, opts || {}));
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Lazy-built default agent. Most callers use this; the lazy build
|
|
72
|
+
// avoids creating an https.Agent at require time for processes that
|
|
73
|
+
// never make an outbound HTTPS call.
|
|
74
|
+
var _defaultAgent = null;
|
|
75
|
+
function _getDefaultAgent() {
|
|
76
|
+
if (!_defaultAgent) _defaultAgent = create();
|
|
77
|
+
return _defaultAgent;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
module.exports = {
|
|
81
|
+
// Read property — getter so the agent is built on first access.
|
|
82
|
+
get agent() { return _getDefaultAgent(); },
|
|
83
|
+
create: create,
|
|
84
|
+
createHttp: createHttp,
|
|
85
|
+
DEFAULT_OPTS: DEFAULT_OPTS,
|
|
86
|
+
enforced: true,
|
|
87
|
+
};
|