@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
|
@@ -341,7 +341,7 @@ function create(config) {
|
|
|
341
341
|
var headers = _signed("DELETE", url, {});
|
|
342
342
|
return _httpRequest("DELETE", url, headers, null, reqOpts).then(
|
|
343
343
|
function () { return true; },
|
|
344
|
-
function (e) { if (e.statusCode ===
|
|
344
|
+
function (e) { if (e.statusCode === C.HTTP.STATUS.NOT_FOUND) return false; throw e; }
|
|
345
345
|
);
|
|
346
346
|
}
|
|
347
347
|
|
|
@@ -278,7 +278,7 @@ function create(config) {
|
|
|
278
278
|
await _httpRequest("DELETE", url, authHeader.bearer(token), null, reqOpts);
|
|
279
279
|
return true;
|
|
280
280
|
} catch (e) {
|
|
281
|
-
if (e.statusCode ===
|
|
281
|
+
if (e.statusCode === C.HTTP.STATUS.NOT_FOUND) return false;
|
|
282
282
|
throw e;
|
|
283
283
|
}
|
|
284
284
|
}
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
* Errors are surfaced as object-store errors with statusCode set so the
|
|
19
19
|
* retry layer can classify retryable vs permanent.
|
|
20
20
|
*/
|
|
21
|
+
var C = require("../constants");
|
|
21
22
|
var { ObjectStoreError } = require("../framework-error");
|
|
22
23
|
var safeUrl = require("../safe-url");
|
|
23
24
|
var sharedRequest = require("./http-request");
|
|
@@ -122,7 +123,7 @@ function create(config) {
|
|
|
122
123
|
return _request("DELETE", url, null, headers, reqOpts).then(
|
|
123
124
|
function () { return true; },
|
|
124
125
|
function (e) {
|
|
125
|
-
if (e.statusCode ===
|
|
126
|
+
if (e.statusCode === C.HTTP.STATUS.NOT_FOUND) return false;
|
|
126
127
|
throw e;
|
|
127
128
|
}
|
|
128
129
|
);
|
|
@@ -396,7 +396,7 @@ function _buildLegalHoldXml(status) {
|
|
|
396
396
|
// `get*` methods can surface a clean default instead of throwing.
|
|
397
397
|
function _isLockNotConfigured(err) {
|
|
398
398
|
if (!err) return false;
|
|
399
|
-
if (err.statusCode !==
|
|
399
|
+
if (err.statusCode !== C.HTTP.STATUS.NOT_FOUND && err.statusCode !== C.HTTP.STATUS.BAD_REQUEST) return false;
|
|
400
400
|
var msg = String(err.message || "");
|
|
401
401
|
return msg.indexOf("ObjectLockConfigurationNotFoundError") !== -1 ||
|
|
402
402
|
msg.indexOf("NoSuchObjectLockConfiguration") !== -1;
|
|
@@ -617,10 +617,10 @@ function create(config) {
|
|
|
617
617
|
function (e) {
|
|
618
618
|
// Map S3 conflict response codes into stable framework codes.
|
|
619
619
|
var mapped = e;
|
|
620
|
-
if (e.statusCode ===
|
|
620
|
+
if (e.statusCode === C.HTTP.STATUS.CONFLICT && /BucketAlreadyOwnedByYou/.test(e.message || "")) {
|
|
621
621
|
mapped = _err("BUCKET_ALREADY_OWNED",
|
|
622
622
|
"bucket '" + name + "' already exists and is owned by this account", true);
|
|
623
|
-
} else if (e.statusCode ===
|
|
623
|
+
} else if (e.statusCode === C.HTTP.STATUS.CONFLICT) {
|
|
624
624
|
mapped = _err("BUCKET_NAME_TAKEN",
|
|
625
625
|
"bucket name '" + name + "' is taken in S3's global namespace", true);
|
|
626
626
|
}
|
|
@@ -663,7 +663,7 @@ function create(config) {
|
|
|
663
663
|
return true;
|
|
664
664
|
},
|
|
665
665
|
function (e) {
|
|
666
|
-
if (e.statusCode ===
|
|
666
|
+
if (e.statusCode === C.HTTP.STATUS.NOT_FOUND) {
|
|
667
667
|
// Idempotent: missing bucket → false. Audit as success-with-noop
|
|
668
668
|
// so the trail still records "operator attempted delete".
|
|
669
669
|
if (auditSuccess) {
|
|
@@ -678,7 +678,7 @@ function create(config) {
|
|
|
678
678
|
return false;
|
|
679
679
|
}
|
|
680
680
|
var mapped = e;
|
|
681
|
-
if (e.statusCode ===
|
|
681
|
+
if (e.statusCode === C.HTTP.STATUS.CONFLICT && /BucketNotEmpty/.test(e.message || "")) {
|
|
682
682
|
mapped = _err("BUCKET_NOT_EMPTY",
|
|
683
683
|
"bucket '" + name + "' is not empty; delete all objects + " +
|
|
684
684
|
"noncurrent versions + delete-markers first", true);
|
|
@@ -788,7 +788,7 @@ function create(config) {
|
|
|
788
788
|
// to — so existence probes via head() (e.g. the backup objectStore
|
|
789
789
|
// adapter's hasKey / statKey) get the uniform missing-key signal instead
|
|
790
790
|
// of a raw HTTP 404 they don't recognize.
|
|
791
|
-
if (e && e.statusCode ===
|
|
791
|
+
if (e && e.statusCode === C.HTTP.STATUS.NOT_FOUND) {
|
|
792
792
|
throw _err("NOT_FOUND", "key not found: " + key, true);
|
|
793
793
|
}
|
|
794
794
|
throw e;
|
|
@@ -816,7 +816,7 @@ function create(config) {
|
|
|
816
816
|
var headers = _makeSigned("DELETE", url, sha256Hex(Buffer.alloc(0)), extra);
|
|
817
817
|
return _request("DELETE", url, headers, null, reqOpts).then(
|
|
818
818
|
function () { return true; },
|
|
819
|
-
function (e) { if (e.statusCode ===
|
|
819
|
+
function (e) { if (e.statusCode === C.HTTP.STATUS.NOT_FOUND) return false; throw e; }
|
|
820
820
|
);
|
|
821
821
|
}
|
|
822
822
|
|
|
@@ -68,7 +68,7 @@ function _defaultFetchImpl(endpoint, init) {
|
|
|
68
68
|
}).then(function (res) {
|
|
69
69
|
var status = res && res.statusCode;
|
|
70
70
|
return {
|
|
71
|
-
ok: status
|
|
71
|
+
ok: typeof status === "number" && C.HTTP.success(status),
|
|
72
72
|
status: status,
|
|
73
73
|
};
|
|
74
74
|
});
|
|
@@ -553,7 +553,9 @@ function create(opts) {
|
|
|
553
553
|
if (res && res.ok) return { ok: true, status: res.status };
|
|
554
554
|
var status = res && res.status;
|
|
555
555
|
// 5xx + 408/429 → retryable; everything else permanent
|
|
556
|
-
var retryable =
|
|
556
|
+
var retryable = typeof status === "number" &&
|
|
557
|
+
(C.HTTP.serverError(status) || status === C.HTTP.STATUS.REQUEST_TIMEOUT ||
|
|
558
|
+
status === C.HTTP.STATUS.TOO_MANY_REQUESTS);
|
|
557
559
|
if (retryable && attempt < maxAttempts) {
|
|
558
560
|
await _sleep(_backoffMs(attempt));
|
|
559
561
|
return await _post(payload, attempt + 1);
|
|
@@ -407,7 +407,7 @@ function create(opts) {
|
|
|
407
407
|
var mw = function (req, res, next) {
|
|
408
408
|
if (typeof res.writeHead !== "function") return next();
|
|
409
409
|
var body = cachedString;
|
|
410
|
-
res.writeHead(
|
|
410
|
+
res.writeHead(C.HTTP.STATUS.OK, { // HTTP 200 status
|
|
411
411
|
"Content-Type": "application/json; charset=utf-8",
|
|
412
412
|
"Content-Length": Buffer.byteLength(body),
|
|
413
413
|
"Cache-Control": cacheControl,
|
|
@@ -225,13 +225,10 @@ function _buildAgentOpts(opts) {
|
|
|
225
225
|
// handshake obeyed the policy and the other did not, decided by ALPN.
|
|
226
226
|
merged.ecdhCurve = networkTls.outboundPosture().ecdhCurve;
|
|
227
227
|
}
|
|
228
|
-
//
|
|
229
|
-
//
|
|
230
|
-
//
|
|
231
|
-
//
|
|
232
|
-
// context filler re-derive `groups` from STATE.tlsKeyShares — a
|
|
233
|
-
// different ordering that would ignore the caller's ecdhCurve.
|
|
234
|
-
merged.groups = merged.ecdhCurve;
|
|
228
|
+
// `applyToContext` fills the group preference only when the base does not
|
|
229
|
+
// already carry one, so the resolved ecdhCurve above stands as the caller's
|
|
230
|
+
// narrowed or reordered selection rather than being re-derived from the
|
|
231
|
+
// configured key shares in a different order.
|
|
235
232
|
merged.minVersion = "TLSv1.3";
|
|
236
233
|
if (networkTls && typeof networkTls.applyToContext === "function") {
|
|
237
234
|
merged = networkTls.applyToContext({ base: merged });
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
* RFC 9457 Problem Details for HTTP APIs — standardized error response envelope with `application/problem+json` content type, supersedes RFC 7807.
|
|
41
41
|
*/
|
|
42
42
|
|
|
43
|
+
var C = require("./constants");
|
|
43
44
|
var pick = require("./pick");
|
|
44
45
|
var validateOpts = require("./validate-opts");
|
|
45
46
|
var { defineClass } = require("./framework-error");
|
|
@@ -387,7 +388,7 @@ function respond(res, problem, req) {
|
|
|
387
388
|
"respond: problem must be a non-null object", true);
|
|
388
389
|
}
|
|
389
390
|
var status = (typeof problem.status === "number" && Number.isInteger(problem.status) &&
|
|
390
|
-
problem.status >= 100 && problem.status <= 599) ? problem.status :
|
|
391
|
+
problem.status >= 100 && problem.status <= 599) ? problem.status : C.HTTP.STATUS.INTERNAL_SERVER_ERROR; // HTTP status range + default 500
|
|
391
392
|
var body = JSON.stringify(problem);
|
|
392
393
|
// Seal the problem body when an encrypted session is active — the
|
|
393
394
|
// encoder is present only after a request body decrypted, so its
|
|
@@ -467,7 +467,18 @@ function create(opts) {
|
|
|
467
467
|
} else {
|
|
468
468
|
sock = net.connect({ host: host, port: port }, onOk);
|
|
469
469
|
}
|
|
470
|
-
sock.once("error",
|
|
470
|
+
sock.once("error", function (err) {
|
|
471
|
+
// rediss:// negotiates on the shared posture, so a refusal here is
|
|
472
|
+
// usually the posture rather than Redis; say which part of it.
|
|
473
|
+
if (useTls) {
|
|
474
|
+
networkTls().annotateOutboundFailure(err, {
|
|
475
|
+
host: host,
|
|
476
|
+
port: port,
|
|
477
|
+
tlsOpts: tlsConnectOpts,
|
|
478
|
+
});
|
|
479
|
+
}
|
|
480
|
+
onErr(err);
|
|
481
|
+
});
|
|
471
482
|
});
|
|
472
483
|
socket = newSocket;
|
|
473
484
|
socket.setNoDelay(true);
|