@blamejs/blamejs-shop 0.5.19 → 0.5.21
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 +4 -0
- package/README.md +1 -0
- package/SECURITY.md +17 -0
- package/lib/addresses.js +2 -2
- package/lib/admin.js +49 -45
- package/lib/affiliates.js +7 -23
- package/lib/announcement-bar.js +5 -22
- package/lib/api-keys.js +4 -13
- package/lib/asset-manifest.json +1 -1
- package/lib/banner-ab-tests.js +5 -9
- package/lib/blog-articles.js +8 -26
- package/lib/captcha-gate.js +7 -17
- package/lib/carrier-accounts.js +3 -10
- package/lib/catalog-drafts.js +5 -12
- package/lib/category-navigation.js +4 -20
- package/lib/cms-blocks.js +4 -7
- package/lib/compliance-export.js +4 -11
- package/lib/consent-ledger.js +2 -4
- package/lib/cost-layers.js +56 -21
- package/lib/customer-import.js +2 -2
- package/lib/customer-notes.js +7 -23
- package/lib/customer-roles.js +3 -5
- package/lib/customer-segments.js +17 -14
- package/lib/customer-surveys.js +7 -14
- package/lib/customers.js +2 -4
- package/lib/dispute-resolution.js +5 -13
- package/lib/dropship-forwarding.js +3 -5
- package/lib/dunning.js +2 -7
- package/lib/email-ab-tests.js +4 -8
- package/lib/email-campaigns.js +25 -14
- package/lib/email-warmup.js +2 -7
- package/lib/experiments.js +6 -10
- package/lib/externaldb-d1.js +78 -44
- package/lib/geolocation.js +18 -28
- package/lib/gift-options.js +5 -23
- package/lib/knowledge-base.js +7 -22
- package/lib/line-gift-wrap.js +3 -17
- package/lib/live-chat.js +5 -18
- package/lib/metered-usage.js +3 -8
- package/lib/notifications.js +3 -7
- package/lib/operator-accounts.js +3 -5
- package/lib/operator-approvals.js +6 -8
- package/lib/operator-audit-log.js +2 -7
- package/lib/operator-help-center.js +5 -21
- package/lib/operator-inbox.js +4 -11
- package/lib/operator-roles.js +5 -7
- package/lib/order-escalation.js +2 -2
- package/lib/order-export.js +24 -20
- package/lib/order-notes.js +4 -14
- package/lib/order-ratings.js +4 -10
- package/lib/payment-methods.js +5 -13
- package/lib/payment-retries.js +2 -7
- package/lib/payment.js +103 -58
- package/lib/pixel-events.js +8 -23
- package/lib/plan-changes.js +2 -7
- package/lib/product-qa.js +4 -8
- package/lib/promo-banners.js +7 -15
- package/lib/purchase-orders.js +3 -6
- package/lib/push-notifications.js +7 -32
- package/lib/pwa-manifest.js +6 -11
- package/lib/quotes.js +5 -9
- package/lib/referrals.js +10 -6
- package/lib/reviews.js +4 -10
- package/lib/robots-config.js +6 -14
- package/lib/sales-tax-filings.js +2 -2
- package/lib/search-facets.js +5 -5
- package/lib/search-ranking.js +4 -7
- package/lib/search-synonyms.js +7 -21
- package/lib/security-middleware.js +125 -70
- package/lib/seller-signup.js +10 -26
- package/lib/sidebar-widgets.js +6 -15
- package/lib/site-redirects.js +49 -137
- package/lib/sitemap-generator.js +3 -7
- package/lib/sms-dispatcher.js +7 -23
- package/lib/stock-receipts.js +4 -10
- package/lib/storefront-dashboards.js +2 -10
- package/lib/storefront-forms.js +9 -22
- package/lib/storefront-pages.js +6 -20
- package/lib/storefront.js +21 -23
- package/lib/subscription-billing.js +3 -8
- package/lib/subscription-controls.js +2 -7
- package/lib/suggestion-box.js +9 -26
- package/lib/support-tickets.js +6 -24
- package/lib/tax-remittance.js +2 -2
- package/lib/tenants.js +2 -7
- package/lib/text-guard.js +137 -35
- package/lib/theme-assets.js +4 -16
- package/lib/translations.js +3 -6
- package/lib/trust-badges.js +4 -7
- package/lib/vendor/MANIFEST.json +107 -97
- package/lib/vendor/blamejs/CHANGELOG.md +180 -0
- package/lib/vendor/blamejs/NOTICE +14 -10
- package/lib/vendor/blamejs/README.md +17 -5
- package/lib/vendor/blamejs/index.js +2 -0
- package/lib/vendor/blamejs/lib/acme.js +9 -9
- package/lib/vendor/blamejs/lib/api-snapshot.js +35 -16
- package/lib/vendor/blamejs/lib/app-shutdown.js +1 -1
- package/lib/vendor/blamejs/lib/archive-adapters.js +1 -1
- package/lib/vendor/blamejs/lib/archive.js +13 -24
- package/lib/vendor/blamejs/lib/auth/access-lock.js +2 -1
- package/lib/vendor/blamejs/lib/auth/bot-challenge.js +3 -6
- package/lib/vendor/blamejs/lib/auth/ciba.js +32 -3
- package/lib/vendor/blamejs/lib/auth/oauth.js +65 -8
- package/lib/vendor/blamejs/lib/auth/password.js +1 -1
- package/lib/vendor/blamejs/lib/auth/saml.js +21 -3
- package/lib/vendor/blamejs/lib/auth-bot-challenge.js +3 -3
- package/lib/vendor/blamejs/lib/backup/index.js +5 -5
- package/lib/vendor/blamejs/lib/case-fold-classes.js +491 -0
- package/lib/vendor/blamejs/lib/codepoint-class.js +131 -0
- package/lib/vendor/blamejs/lib/constants.js +79 -0
- package/lib/vendor/blamejs/lib/db-declare-view.js +8 -2
- package/lib/vendor/blamejs/lib/error-page.js +20 -1
- package/lib/vendor/blamejs/lib/external-db.js +5 -1
- package/lib/vendor/blamejs/lib/flag-evaluation-context.js +24 -6
- package/lib/vendor/blamejs/lib/flag.js +28 -2
- package/lib/vendor/blamejs/lib/framework-schema.js +14 -3
- package/lib/vendor/blamejs/lib/guard-regex.js +2345 -89
- package/lib/vendor/blamejs/lib/http-client.js +217 -40
- package/lib/vendor/blamejs/lib/mail-bimi.js +1 -1
- package/lib/vendor/blamejs/lib/mail-crypto-pgp.js +3 -2
- package/lib/vendor/blamejs/lib/mail-dav.js +26 -26
- package/lib/vendor/blamejs/lib/mail-deploy.js +10 -10
- package/lib/vendor/blamejs/lib/mail-scan.js +3 -0
- package/lib/vendor/blamejs/lib/mail-store.js +7 -1
- package/lib/vendor/blamejs/lib/mail.js +5 -1
- package/lib/vendor/blamejs/lib/middleware/age-gate.js +3 -2
- package/lib/vendor/blamejs/lib/middleware/api-encrypt.js +1 -1
- package/lib/vendor/blamejs/lib/middleware/assetlinks.js +2 -1
- package/lib/vendor/blamejs/lib/middleware/asyncapi-serve.js +3 -2
- package/lib/vendor/blamejs/lib/middleware/bearer-auth.js +2 -1
- package/lib/vendor/blamejs/lib/middleware/compression.js +1 -1
- package/lib/vendor/blamejs/lib/middleware/cors.js +1 -1
- package/lib/vendor/blamejs/lib/middleware/csp-report.js +5 -5
- package/lib/vendor/blamejs/lib/middleware/csrf-protect.js +2 -1
- package/lib/vendor/blamejs/lib/middleware/daily-byte-quota.js +2 -2
- package/lib/vendor/blamejs/lib/middleware/deny-response.js +2 -1
- package/lib/vendor/blamejs/lib/middleware/dpop.js +2 -2
- package/lib/vendor/blamejs/lib/middleware/fetch-metadata.js +2 -1
- package/lib/vendor/blamejs/lib/middleware/flag-context.js +17 -0
- package/lib/vendor/blamejs/lib/middleware/idempotency-key.js +10 -8
- package/lib/vendor/blamejs/lib/middleware/openapi-serve.js +3 -2
- package/lib/vendor/blamejs/lib/middleware/require-aal.js +3 -2
- package/lib/vendor/blamejs/lib/middleware/require-auth.js +4 -3
- package/lib/vendor/blamejs/lib/middleware/require-bound-key.js +4 -3
- package/lib/vendor/blamejs/lib/middleware/require-content-type.js +3 -2
- package/lib/vendor/blamejs/lib/middleware/require-methods.js +3 -2
- package/lib/vendor/blamejs/lib/middleware/require-mtls.js +3 -2
- package/lib/vendor/blamejs/lib/middleware/security-txt.js +2 -1
- package/lib/vendor/blamejs/lib/middleware/web-app-manifest.js +2 -1
- package/lib/vendor/blamejs/lib/network-dns-resolver.js +1 -1
- package/lib/vendor/blamejs/lib/network-dns.js +3 -3
- package/lib/vendor/blamejs/lib/network-nts.js +35 -14
- package/lib/vendor/blamejs/lib/network-proxy.js +42 -4
- package/lib/vendor/blamejs/lib/network-smtp-policy.js +1 -1
- package/lib/vendor/blamejs/lib/network-tls.js +341 -11
- package/lib/vendor/blamejs/lib/nist-crosswalk.js +2 -2
- package/lib/vendor/blamejs/lib/ntp-check.js +30 -19
- package/lib/vendor/blamejs/lib/object-store/azure-blob.js +1 -1
- package/lib/vendor/blamejs/lib/object-store/gcs.js +1 -1
- package/lib/vendor/blamejs/lib/object-store/http-put.js +2 -1
- package/lib/vendor/blamejs/lib/object-store/sigv4-bucket-ops.js +5 -5
- package/lib/vendor/blamejs/lib/object-store/sigv4.js +2 -2
- package/lib/vendor/blamejs/lib/observability-otlp-exporter.js +4 -2
- package/lib/vendor/blamejs/lib/openapi.js +1 -1
- package/lib/vendor/blamejs/lib/pqc-agent.js +4 -7
- package/lib/vendor/blamejs/lib/problem-details.js +2 -1
- package/lib/vendor/blamejs/lib/redis-client.js +12 -1
- package/lib/vendor/blamejs/lib/regex-linear.js +1349 -0
- package/lib/vendor/blamejs/lib/render.js +531 -7
- package/lib/vendor/blamejs/lib/request-helpers.js +181 -5
- package/lib/vendor/blamejs/lib/router.js +37 -13
- package/lib/vendor/blamejs/lib/safe-async.js +142 -0
- package/lib/vendor/blamejs/lib/safe-icap.js +3 -0
- package/lib/vendor/blamejs/lib/safe-sql.js +15 -3
- package/lib/vendor/blamejs/lib/self-update.js +2 -2
- package/lib/vendor/blamejs/lib/testing.js +54 -7
- package/lib/vendor/blamejs/lib/validate-opts.js +56 -0
- package/lib/vendor/blamejs/lib/vendor/MANIFEST.json +62 -25
- package/lib/vendor/blamejs/lib/vendor/blamejs-pki.cjs +2004 -142
- package/lib/vendor/blamejs/lib/vendor/browser/noble-ciphers.mjs +727 -0
- package/lib/vendor/blamejs/lib/vendor/browser/noble-hashes.mjs +1070 -0
- package/lib/vendor/blamejs/lib/vendor/browser/noble-post-quantum.mjs +1090 -0
- package/lib/vendor/blamejs/lib/vendor/noble-post-quantum.cjs +510 -227
- package/lib/vendor/blamejs/lib/webhook-hmac.js +19 -2
- package/lib/vendor/blamejs/lib/webhook.js +1 -1
- package/lib/vendor/blamejs/lib/ws-client.js +24 -2
- package/lib/vendor/blamejs/package.json +1 -1
- package/lib/vendor/blamejs/sbom.cdx.json +6 -6
- package/lib/vendor-invoices.js +3 -6
- package/lib/vendors.js +5 -19
- package/lib/webhook-receiver.js +46 -83
- package/lib/webhook-subscriptions.js +3 -13
- package/lib/wishlist-sharing.js +5 -10
- package/package.json +1 -1
|
@@ -262,10 +262,10 @@ function bodyRes() {
|
|
|
262
262
|
|
|
263
263
|
/**
|
|
264
264
|
* @primitive b.testing.streamingRes
|
|
265
|
-
* @signature b.testing.streamingRes()
|
|
265
|
+
* @signature b.testing.streamingRes(opts?)
|
|
266
266
|
* @since 0.1.0
|
|
267
267
|
* @status stable
|
|
268
|
-
* @related b.testing.mockRes, b.testing.bodyRes
|
|
268
|
+
* @related b.testing.mockRes, b.testing.bodyRes, b.render.stream
|
|
269
269
|
*
|
|
270
270
|
* Build an EventEmitter-backed response that buffers every `write()`
|
|
271
271
|
* chunk into `res._chunks` and exposes `res._captured()` as a single
|
|
@@ -273,6 +273,16 @@ function bodyRes() {
|
|
|
273
273
|
* via repeated `res.write(chunk)` calls (gzip, server-sent events,
|
|
274
274
|
* NDJSON producers, range responses).
|
|
275
275
|
*
|
|
276
|
+
* Pass `highWaterMark` to exercise back-pressure. Without it `write()`
|
|
277
|
+
* always returns `true`, which is the one thing a real socket does not
|
|
278
|
+
* do — so a consumer that discards the return value and buffers without
|
|
279
|
+
* limit looks correct here and fails against a slow client. With it the
|
|
280
|
+
* double reports "full" once that many bytes are outstanding and emits
|
|
281
|
+
* `drain` on the next tick, which is the sequence a real socket produces.
|
|
282
|
+
*
|
|
283
|
+
* @opts
|
|
284
|
+
* highWaterMark: 0, // bytes outstanding before write() returns false; 0 disables
|
|
285
|
+
*
|
|
276
286
|
* @example
|
|
277
287
|
* var res = b.testing.streamingRes();
|
|
278
288
|
* res.writeHead(200, { "content-type": "application/octet-stream" });
|
|
@@ -281,9 +291,21 @@ function bodyRes() {
|
|
|
281
291
|
* res.end();
|
|
282
292
|
* res._captured().toString("utf8"); // → "hello"
|
|
283
293
|
* res._statusCode; // → 200
|
|
294
|
+
*
|
|
295
|
+
* var slow = b.testing.streamingRes({ highWaterMark: 4 });
|
|
296
|
+
* slow.write("12345"); // → false, then emits "drain"
|
|
284
297
|
*/
|
|
285
|
-
function streamingRes() {
|
|
298
|
+
function streamingRes(opts) {
|
|
299
|
+
opts = opts || {};
|
|
300
|
+
var highWaterMark = opts.highWaterMark === undefined ? 0 : opts.highWaterMark;
|
|
301
|
+
if (typeof highWaterMark !== "number" || !isFinite(highWaterMark) || highWaterMark < 0) {
|
|
302
|
+
throw new TypeError("testing.streamingRes: opts.highWaterMark must be a non-negative number");
|
|
303
|
+
}
|
|
286
304
|
var res = new EventEmitter();
|
|
305
|
+
res._drainedAt = 0;
|
|
306
|
+
res._written = 0;
|
|
307
|
+
res._pending = 0;
|
|
308
|
+
res._drainScheduled = false;
|
|
287
309
|
res._chunks = [];
|
|
288
310
|
res._headers = {};
|
|
289
311
|
res._statusCode = 200;
|
|
@@ -305,9 +327,34 @@ function streamingRes() {
|
|
|
305
327
|
res.getHeader = function (k) { return res._headers[k.toLowerCase()]; };
|
|
306
328
|
res.removeHeader = function (k) { delete res._headers[k.toLowerCase()]; };
|
|
307
329
|
res.write = function (chunk) {
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
330
|
+
// The running total, counted as each chunk arrives. Asking `_captured()`
|
|
331
|
+
// for it concatenated every chunk written so far, so a test that streamed
|
|
332
|
+
// many small ones copied the whole response for each — quadratic in the
|
|
333
|
+
// output, in the very helper written to test streaming a lot of it.
|
|
334
|
+
if (Buffer.isBuffer(chunk)) { res._chunks.push(chunk); res._written += chunk.length; }
|
|
335
|
+
else if (typeof chunk === "string") {
|
|
336
|
+
var encoded = Buffer.from(chunk);
|
|
337
|
+
res._chunks.push(encoded);
|
|
338
|
+
res._written += encoded.length;
|
|
339
|
+
}
|
|
340
|
+
// Always returning true left the back-pressure path untestable: a consumer
|
|
341
|
+
// that ignores the return value looks correct against this double and
|
|
342
|
+
// buffers without limit against a slow client. With a highWaterMark the
|
|
343
|
+
// double says "full" once that many bytes are outstanding and emits
|
|
344
|
+
// `drain` on the next tick, which is the sequence a real socket produces.
|
|
345
|
+
if (highWaterMark <= 0) return true;
|
|
346
|
+
res._pending = res._written - res._drainedAt;
|
|
347
|
+
if (res._pending < highWaterMark) return true;
|
|
348
|
+
if (!res._drainScheduled) {
|
|
349
|
+
res._drainScheduled = true;
|
|
350
|
+
setImmediate(function () {
|
|
351
|
+
res._drainScheduled = false;
|
|
352
|
+
res._drainedAt = res._written;
|
|
353
|
+
res._pending = 0;
|
|
354
|
+
res.emit("drain");
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
return false;
|
|
311
358
|
};
|
|
312
359
|
res.end = function (chunk) {
|
|
313
360
|
if (chunk != null) res.write(chunk);
|
|
@@ -940,7 +987,7 @@ function request(target) {
|
|
|
940
987
|
if (target && typeof target.handle === "function") {
|
|
941
988
|
server = http.createServer(function (req, res) {
|
|
942
989
|
Promise.resolve(target.handle(req, res)).catch(function (err) {
|
|
943
|
-
if (!res.headersSent) res.writeHead(
|
|
990
|
+
if (!res.headersSent) res.writeHead(C.HTTP.STATUS.INTERNAL_SERVER_ERROR, { "Content-Type": "text/plain" });
|
|
944
991
|
try { res.end((err && err.message) || "Internal Server Error"); } catch (_e) { /* response may already be ended */ }
|
|
945
992
|
});
|
|
946
993
|
});
|
|
@@ -572,6 +572,61 @@ function assignOwnEnumerable(target, source, reservedKeys) {
|
|
|
572
572
|
return Object.assign(target, Object.fromEntries(entries));
|
|
573
573
|
}
|
|
574
574
|
|
|
575
|
+
// outboundHttpOpts — the `{ client, allowedHosts }` an operator hands a
|
|
576
|
+
// primitive that dials out on their behalf.
|
|
577
|
+
//
|
|
578
|
+
// A consumer that already owns an instrumented HTTP client — one circuit
|
|
579
|
+
// breaker, one retry policy, one transcript their tests drive — otherwise has
|
|
580
|
+
// every dial a framework primitive makes fall outside all of it, and no way to
|
|
581
|
+
// narrow a mangled or attacker-influenced base URL down to the host they
|
|
582
|
+
// expect. Both halves default to the framework's behaviour: an absent `client`
|
|
583
|
+
// means the caller's own default, an absent `allowedHosts` means the SSRF gate
|
|
584
|
+
// alone. Naming one is a NARROWING, never a widening.
|
|
585
|
+
//
|
|
586
|
+
// `client` is duck-typed on `request` so a consumer's wrapper qualifies without
|
|
587
|
+
// inheriting from anything. `allowedHosts` is passed through to
|
|
588
|
+
// `b.httpClient.request`, which already enforces it.
|
|
589
|
+
//
|
|
590
|
+
// Returns `{ client, allowedHosts }`, each null when not supplied. Codes are
|
|
591
|
+
// derived from `codePrefix` so each primitive keeps its own error namespace:
|
|
592
|
+
// `<prefix>/bad-http`, `<prefix>/bad-http-client`,
|
|
593
|
+
// `<prefix>/bad-http-allowed-hosts`.
|
|
594
|
+
function outboundHttpOpts(value, callerLabel, errorClass, codePrefix) {
|
|
595
|
+
var label = callerLabel || "opts";
|
|
596
|
+
var prefix = codePrefix || "validate-opts";
|
|
597
|
+
if (value === undefined || value === null) return { client: null, allowedHosts: null };
|
|
598
|
+
optionalPlainObject(value, label + ": http", errorClass, prefix + "/bad-http",
|
|
599
|
+
"must be a plain object of { client, allowedHosts }");
|
|
600
|
+
var known = { client: true, allowedHosts: true };
|
|
601
|
+
var keys = Object.keys(value);
|
|
602
|
+
for (var i = 0; i < keys.length; i += 1) {
|
|
603
|
+
if (!Object.prototype.hasOwnProperty.call(known, keys[i])) {
|
|
604
|
+
_throw(errorClass, prefix + "/bad-http",
|
|
605
|
+
label + ": http has unknown option '" + keys[i] +
|
|
606
|
+
"' — expected client, allowedHosts",
|
|
607
|
+
"validate-opts/bad-http");
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
optionalObjectWithMethod(value.client, "request", label + ": http.client",
|
|
611
|
+
errorClass, prefix + "/bad-http-client",
|
|
612
|
+
"must be a b.httpClient-shaped object (request fn)");
|
|
613
|
+
optionalNonEmptyStringArray(value.allowedHosts, label + ": http.allowedHosts",
|
|
614
|
+
errorClass, prefix + "/bad-http-allowed-hosts");
|
|
615
|
+
if (value.allowedHosts !== undefined && value.allowedHosts !== null &&
|
|
616
|
+
value.allowedHosts.length === 0) {
|
|
617
|
+
// An empty pin reads as "allow nothing" but would behave as "no pin at
|
|
618
|
+
// all" downstream — refuse it rather than let it quietly widen.
|
|
619
|
+
_throw(errorClass, prefix + "/bad-http-allowed-hosts",
|
|
620
|
+
label + ": http.allowedHosts must name at least one host",
|
|
621
|
+
"validate-opts/bad-http-allowed-hosts");
|
|
622
|
+
}
|
|
623
|
+
return {
|
|
624
|
+
client: value.client || null,
|
|
625
|
+
allowedHosts: (value.allowedHosts && value.allowedHosts.length)
|
|
626
|
+
? value.allowedHosts.slice() : null,
|
|
627
|
+
};
|
|
628
|
+
}
|
|
629
|
+
|
|
575
630
|
// observabilityShape — operator-supplied `opts.observability` must
|
|
576
631
|
// expose an `event` function. Parallel to auditShape; the n=1 catalog
|
|
577
632
|
// tracks both inline-shape regexes.
|
|
@@ -599,6 +654,7 @@ module.exports.optionalNonEmptyString = optionalNonEmptyString;
|
|
|
599
654
|
module.exports.optionalNonEmptyStringArray = optionalNonEmptyStringArray;
|
|
600
655
|
module.exports.optionalObjectWithMethod = optionalObjectWithMethod;
|
|
601
656
|
module.exports.optionalPlainObject = optionalPlainObject;
|
|
657
|
+
module.exports.outboundHttpOpts = outboundHttpOpts;
|
|
602
658
|
module.exports.requireNonEmptyString = requireNonEmptyString;
|
|
603
659
|
module.exports.observabilityShape = observabilityShape;
|
|
604
660
|
module.exports.requireObject = requireObject;
|
|
@@ -6,19 +6,49 @@
|
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "Paul Miller",
|
|
8
8
|
"source": "https://github.com/paulmillr/noble-ciphers",
|
|
9
|
+
"_about": "The server and browser bundles are built from ONE npm install in a single vendor-update run, so the two halves of a hybrid exchange cannot be different versions of the same cipher. One `version` field covers both files.",
|
|
9
10
|
"exports": [
|
|
10
11
|
"xchacha20poly1305"
|
|
11
12
|
],
|
|
12
13
|
"files": {
|
|
13
|
-
"server": "lib/vendor/noble-ciphers.cjs"
|
|
14
|
+
"server": "lib/vendor/noble-ciphers.cjs",
|
|
15
|
+
"browser": "lib/vendor/browser/noble-ciphers.mjs"
|
|
14
16
|
},
|
|
15
|
-
"bundler": "esbuild --format=cjs --platform=node",
|
|
16
|
-
"bundledAt": "2026-08-
|
|
17
|
+
"bundler": "esbuild --format=cjs --platform=node (server), esbuild --format=esm --platform=browser (browser)",
|
|
18
|
+
"bundledAt": "2026-08-10T00:00:00Z",
|
|
17
19
|
"cpe": "cpe:2.3:a:paulmillr:noble-ciphers:2.3.0:*:*:*:*:node.js:*:*",
|
|
18
20
|
"hashes": {
|
|
19
|
-
"server": "sha256:f3325f480cb8eb814fcb0baaa19336cbbf2b993f48624c6aa9600ffd69d0be5e"
|
|
21
|
+
"server": "sha256:f3325f480cb8eb814fcb0baaa19336cbbf2b993f48624c6aa9600ffd69d0be5e",
|
|
22
|
+
"browser": "sha256:0ffd91540bcb586a29b56e52ee1c29df69097b50776beb4036a07558f7a4e12e"
|
|
20
23
|
},
|
|
21
|
-
"refreshedAt": "2026-08-
|
|
24
|
+
"refreshedAt": "2026-08-10T18:39:35.028Z"
|
|
25
|
+
},
|
|
26
|
+
"@noble/hashes": {
|
|
27
|
+
"version": "2.3.0",
|
|
28
|
+
"license": "MIT",
|
|
29
|
+
"author": "Paul Miller",
|
|
30
|
+
"source": "https://github.com/paulmillr/noble-hashes",
|
|
31
|
+
"_about": "Browser build only. The server side reaches SHAKE256, SHA3-512, HMAC and HKDF through node:crypto, which has carried all four since the Node floor — a .cjs here would be a bundle nothing requires. A browser has no node:crypto, so the client half of a hybrid exchange needs its own copy, and this is the one blamejs owns, hashes, currency-checks and lists in its SBOM rather than a second vendoring path maintained consumer-side. The version matches the copy that @noble/curves and @noble/post-quantum already inline, so the browser hash and the hash inside the server's PQC bundle are the same code.",
|
|
32
|
+
"exports": [
|
|
33
|
+
"shake128",
|
|
34
|
+
"shake256",
|
|
35
|
+
"sha3_256",
|
|
36
|
+
"sha3_512",
|
|
37
|
+
"sha256",
|
|
38
|
+
"sha512",
|
|
39
|
+
"hmac",
|
|
40
|
+
"hkdf"
|
|
41
|
+
],
|
|
42
|
+
"files": {
|
|
43
|
+
"browser": "lib/vendor/browser/noble-hashes.mjs"
|
|
44
|
+
},
|
|
45
|
+
"bundler": "esbuild --format=esm --platform=browser (browser only)",
|
|
46
|
+
"bundledAt": "2026-08-10T00:00:00Z",
|
|
47
|
+
"cpe": "cpe:2.3:a:paulmillr:noble-hashes:2.3.0:*:*:*:*:node.js:*:*",
|
|
48
|
+
"hashes": {
|
|
49
|
+
"browser": "sha256:dfe4b7ae3c9880e388c8da4b68f44742b229b53afacd1e674179527e33da62b0"
|
|
50
|
+
},
|
|
51
|
+
"refreshedAt": "2026-08-10T18:39:35.028Z"
|
|
22
52
|
},
|
|
23
53
|
"@noble/curves": {
|
|
24
54
|
"version": "2.3.0",
|
|
@@ -40,7 +70,7 @@
|
|
|
40
70
|
"hashes": {
|
|
41
71
|
"server": "sha256:b5fe88d1ea780d0581dee6145d666f89d46fc9531b5db35db2e5b16627840890"
|
|
42
72
|
},
|
|
43
|
-
"refreshedAt": "2026-08-
|
|
73
|
+
"refreshedAt": "2026-08-10T18:39:35.028Z",
|
|
44
74
|
"components": {
|
|
45
75
|
"@noble/hashes": {
|
|
46
76
|
"url": "https://github.com/paulmillr/noble-hashes",
|
|
@@ -49,7 +79,7 @@
|
|
|
49
79
|
}
|
|
50
80
|
},
|
|
51
81
|
"@noble/post-quantum": {
|
|
52
|
-
"version": "0.
|
|
82
|
+
"version": "0.7.0",
|
|
53
83
|
"license": "MIT",
|
|
54
84
|
"author": "Paul Miller",
|
|
55
85
|
"source": "https://github.com/paulmillr/noble-post-quantum",
|
|
@@ -68,28 +98,35 @@
|
|
|
68
98
|
"slh_dsa_shake_192f",
|
|
69
99
|
"slh_dsa_shake_256f"
|
|
70
100
|
],
|
|
101
|
+
"browser_exports": [
|
|
102
|
+
"ml_kem512",
|
|
103
|
+
"ml_kem768",
|
|
104
|
+
"ml_kem1024"
|
|
105
|
+
],
|
|
71
106
|
"files": {
|
|
72
|
-
"server": "lib/vendor/noble-post-quantum.cjs"
|
|
107
|
+
"server": "lib/vendor/noble-post-quantum.cjs",
|
|
108
|
+
"browser": "lib/vendor/browser/noble-post-quantum.mjs"
|
|
73
109
|
},
|
|
74
|
-
"bundler": "esbuild --format=cjs --platform=node",
|
|
75
|
-
"bundledAt": "2026-
|
|
76
|
-
"cpe": "cpe:2.3:a:paulmillr:noble-post-quantum:0.
|
|
110
|
+
"bundler": "esbuild --format=cjs --platform=node (server), esbuild --format=esm --platform=browser (browser)",
|
|
111
|
+
"bundledAt": "2026-08-10T00:00:00Z",
|
|
112
|
+
"cpe": "cpe:2.3:a:paulmillr:noble-post-quantum:0.7.0:*:*:*:*:node.js:*:*",
|
|
77
113
|
"hashes": {
|
|
78
|
-
"server": "sha256:
|
|
114
|
+
"server": "sha256:fab7ebe5737793862c473444f4ee5912f79dd1edec86683acbb4eecbca0f5892",
|
|
115
|
+
"browser": "sha256:cae1d5bbdc7184b202b6ca68df6e1db7b0d0f668c77809ded189ca7f271accc9"
|
|
79
116
|
},
|
|
80
|
-
"refreshedAt": "2026-08-
|
|
117
|
+
"refreshedAt": "2026-08-10T18:39:35.028Z",
|
|
81
118
|
"components": {
|
|
82
119
|
"@noble/hashes": {
|
|
83
120
|
"url": "https://github.com/paulmillr/noble-hashes",
|
|
84
|
-
"version": "2.
|
|
121
|
+
"version": "2.3.0"
|
|
85
122
|
},
|
|
86
123
|
"@noble/curves": {
|
|
87
124
|
"url": "https://github.com/paulmillr/noble-curves",
|
|
88
|
-
"version": "2.
|
|
125
|
+
"version": "2.3.0"
|
|
89
126
|
},
|
|
90
127
|
"@noble/ciphers": {
|
|
91
128
|
"url": "https://github.com/paulmillr/noble-ciphers",
|
|
92
|
-
"version": "2.
|
|
129
|
+
"version": "2.3.0"
|
|
93
130
|
}
|
|
94
131
|
}
|
|
95
132
|
},
|
|
@@ -114,7 +151,7 @@
|
|
|
114
151
|
"hashes": {
|
|
115
152
|
"server": "sha256:e83195dc9f189385da9c856ef38843f4466f93ea8f3d7fc2efcb1e1b18da6f20"
|
|
116
153
|
},
|
|
117
|
-
"refreshedAt": "2026-08-
|
|
154
|
+
"refreshedAt": "2026-08-10T18:39:35.028Z"
|
|
118
155
|
},
|
|
119
156
|
"SecLists-common-passwords-top-10000": {
|
|
120
157
|
"version": "10k-most-common (master)",
|
|
@@ -134,7 +171,7 @@
|
|
|
134
171
|
},
|
|
135
172
|
"runtime_artifact": "lib/vendor/common-passwords-top-10000.data.js",
|
|
136
173
|
"integrity_layers": "sha256 + sha3-512 + SLH-DSA-SHAKE-256f signature + in-payload canary (where applicable)",
|
|
137
|
-
"refreshedAt": "2026-08-
|
|
174
|
+
"refreshedAt": "2026-08-10T18:39:35.028Z"
|
|
138
175
|
},
|
|
139
176
|
"bimi-trust-anchors": {
|
|
140
177
|
"version": "operator-managed",
|
|
@@ -159,7 +196,7 @@
|
|
|
159
196
|
},
|
|
160
197
|
"runtime_artifact": "lib/vendor/bimi-trust-anchors.data.js",
|
|
161
198
|
"integrity_layers": "sha256 + sha3-512 + SLH-DSA-SHAKE-256f signature + in-payload canary (where applicable)",
|
|
162
|
-
"refreshedAt": "2026-08-
|
|
199
|
+
"refreshedAt": "2026-08-10T18:39:35.028Z"
|
|
163
200
|
},
|
|
164
201
|
"publicsuffix-list": {
|
|
165
202
|
"version": "master",
|
|
@@ -179,10 +216,10 @@
|
|
|
179
216
|
},
|
|
180
217
|
"runtime_artifact": "lib/vendor/public-suffix-list.data.js",
|
|
181
218
|
"integrity_layers": "sha256 + sha3-512 + SLH-DSA-SHAKE-256f signature + in-payload canary (where applicable)",
|
|
182
|
-
"refreshedAt": "2026-08-
|
|
219
|
+
"refreshedAt": "2026-08-10T18:39:35.028Z"
|
|
183
220
|
},
|
|
184
221
|
"@blamejs/pki": {
|
|
185
|
-
"version": "0.4.
|
|
222
|
+
"version": "0.4.13",
|
|
186
223
|
"license": "Apache-2.0",
|
|
187
224
|
"author": "blamejs",
|
|
188
225
|
"source": "https://github.com/blamejs/pki",
|
|
@@ -202,12 +239,12 @@
|
|
|
202
239
|
"server": "lib/vendor/blamejs-pki.cjs"
|
|
203
240
|
},
|
|
204
241
|
"bundler": "esbuild --format=cjs --platform=node --external:crypto --external:node:crypto",
|
|
205
|
-
"bundledAt": "2026-08-
|
|
206
|
-
"cpe": "cpe:2.3:a:blamejs:pki:0.4.
|
|
242
|
+
"bundledAt": "2026-08-10T00:00:00Z",
|
|
243
|
+
"cpe": "cpe:2.3:a:blamejs:pki:0.4.13:*:*:*:*:node.js:*:*",
|
|
207
244
|
"hashes": {
|
|
208
|
-
"server": "sha256:
|
|
245
|
+
"server": "sha256:067ac05899ef04f7851a8d010dc4289e7a01706d5fd2cdc1ce59860631bba284"
|
|
209
246
|
},
|
|
210
|
-
"refreshedAt": "2026-08-
|
|
247
|
+
"refreshedAt": "2026-08-10T18:39:35.028Z"
|
|
211
248
|
}
|
|
212
249
|
}
|
|
213
250
|
}
|