@blamejs/blamejs-shop 0.5.12 → 0.5.13
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 +2 -0
- package/lib/asset-manifest.json +1 -1
- package/lib/vendor/MANIFEST.json +632 -416
- package/lib/vendor/blamejs/.clusterfuzzlite/Dockerfile +21 -10
- package/lib/vendor/blamejs/.clusterfuzzlite/build.sh +30 -9
- package/lib/vendor/blamejs/.github/dependabot.yml +8 -0
- package/lib/vendor/blamejs/.github/workflows/actions-lint.yml +3 -3
- package/lib/vendor/blamejs/.github/workflows/cflite_batch.yml +7 -2
- package/lib/vendor/blamejs/.github/workflows/cflite_pr.yml +7 -2
- package/lib/vendor/blamejs/.github/workflows/ci.yml +21 -21
- package/lib/vendor/blamejs/.github/workflows/codeql.yml +3 -3
- package/lib/vendor/blamejs/.github/workflows/npm-publish.yml +4 -4
- package/lib/vendor/blamejs/.github/workflows/release-container.yml +7 -7
- package/lib/vendor/blamejs/.github/workflows/scorecard.yml +3 -3
- package/lib/vendor/blamejs/.github/workflows/sha-to-tag-verify.yml +1 -1
- package/lib/vendor/blamejs/.gitignore +2 -0
- package/lib/vendor/blamejs/CHANGELOG.md +122 -0
- package/lib/vendor/blamejs/NOTICE +26 -1
- package/lib/vendor/blamejs/SECURITY.md +1 -1
- package/lib/vendor/blamejs/api-snapshot.json +207 -5
- package/lib/vendor/blamejs/docker/keycloak/realm-blamejs-test.json +29 -0
- package/lib/vendor/blamejs/examples/wiki/DEPLOY.md +1 -0
- package/lib/vendor/blamejs/examples/wiki/lib/build-app.js +31 -0
- package/lib/vendor/blamejs/examples/wiki/lib/source-comment-block-validator.js +109 -0
- package/lib/vendor/blamejs/examples/wiki/nginx.conf +106 -0
- package/lib/vendor/blamejs/examples/wiki/package-lock.json +1 -1
- package/lib/vendor/blamejs/examples/wiki/test/e2e.js +92 -0
- package/lib/vendor/blamejs/fuzz/asn1-der.fuzz.js +28 -0
- package/lib/vendor/blamejs/fuzz/cms-codec.fuzz.js +17 -0
- package/lib/vendor/blamejs/fuzz/link-header.fuzz.js +18 -0
- package/lib/vendor/blamejs/index.js +6 -0
- package/lib/vendor/blamejs/lib/a2a.js +4 -4
- package/lib/vendor/blamejs/lib/agent-idempotency.js +18 -2
- package/lib/vendor/blamejs/lib/agent-saga.js +36 -8
- package/lib/vendor/blamejs/lib/agent-snapshot.js +63 -6
- package/lib/vendor/blamejs/lib/app-shutdown.js +23 -20
- package/lib/vendor/blamejs/lib/archive-read.js +8 -0
- package/lib/vendor/blamejs/lib/archive-tar.js +12 -2
- package/lib/vendor/blamejs/lib/arg-parser.js +49 -5
- package/lib/vendor/blamejs/lib/asn1-der.js +12 -0
- package/lib/vendor/blamejs/lib/audit-sign.js +47 -1
- package/lib/vendor/blamejs/lib/audit.js +71 -8
- package/lib/vendor/blamejs/lib/auth/ciba.js +14 -2
- package/lib/vendor/blamejs/lib/auth/fido-mds3.js +58 -47
- package/lib/vendor/blamejs/lib/auth/jwt.js +34 -0
- package/lib/vendor/blamejs/lib/auth/oauth.js +90 -13
- package/lib/vendor/blamejs/lib/auth/oid4vci.js +20 -17
- package/lib/vendor/blamejs/lib/auth/openid-federation.js +214 -23
- package/lib/vendor/blamejs/lib/auth/saml.js +38 -20
- package/lib/vendor/blamejs/lib/auth/sd-jwt-vc.js +10 -4
- package/lib/vendor/blamejs/lib/backup/bundle.js +13 -3
- package/lib/vendor/blamejs/lib/backup/index.js +16 -5
- package/lib/vendor/blamejs/lib/backup/manifest.js +18 -5
- package/lib/vendor/blamejs/lib/base32.js +21 -0
- package/lib/vendor/blamejs/lib/break-glass.js +19 -10
- package/lib/vendor/blamejs/lib/bundler.js +5 -1
- package/lib/vendor/blamejs/lib/cache-status.js +3 -7
- package/lib/vendor/blamejs/lib/calendar.js +21 -1
- package/lib/vendor/blamejs/lib/cbor.js +12 -1
- package/lib/vendor/blamejs/lib/cert.js +29 -11
- package/lib/vendor/blamejs/lib/cli.js +94 -24
- package/lib/vendor/blamejs/lib/cloud-events.js +2 -2
- package/lib/vendor/blamejs/lib/cluster-provider-db.js +13 -3
- package/lib/vendor/blamejs/lib/codepoint-class.js +85 -0
- package/lib/vendor/blamejs/lib/compliance-ai-act-prohibited.js +8 -4
- package/lib/vendor/blamejs/lib/compliance-ai-act-transparency.js +19 -4
- package/lib/vendor/blamejs/lib/compliance-ai-act.js +6 -8
- package/lib/vendor/blamejs/lib/content-credentials.js +1 -1
- package/lib/vendor/blamejs/lib/content-digest.js +2 -1
- package/lib/vendor/blamejs/lib/cookies.js +13 -3
- package/lib/vendor/blamejs/lib/cose.js +31 -16
- package/lib/vendor/blamejs/lib/crypto-field.js +32 -0
- package/lib/vendor/blamejs/lib/crypto-oprf.js +11 -2
- package/lib/vendor/blamejs/lib/crypto-xwing.js +22 -4
- package/lib/vendor/blamejs/lib/crypto.js +314 -19
- package/lib/vendor/blamejs/lib/csp.js +11 -3
- package/lib/vendor/blamejs/lib/daemon.js +270 -24
- package/lib/vendor/blamejs/lib/dark-patterns.js +5 -2
- package/lib/vendor/blamejs/lib/db-declare-view.js +2 -2
- package/lib/vendor/blamejs/lib/db-query.js +34 -7
- package/lib/vendor/blamejs/lib/db.js +18 -6
- package/lib/vendor/blamejs/lib/dbsc.js +17 -0
- package/lib/vendor/blamejs/lib/dev.js +21 -2
- package/lib/vendor/blamejs/lib/dsr.js +157 -102
- package/lib/vendor/blamejs/lib/external-db.js +41 -2
- package/lib/vendor/blamejs/lib/file-upload.js +25 -7
- package/lib/vendor/blamejs/lib/flag-providers.js +27 -15
- package/lib/vendor/blamejs/lib/forms.js +113 -27
- package/lib/vendor/blamejs/lib/gate-contract.js +23 -10
- package/lib/vendor/blamejs/lib/gdpr-ropa.js +8 -1
- package/lib/vendor/blamejs/lib/guard-agent-registry.js +1 -1
- package/lib/vendor/blamejs/lib/guard-archive.js +2 -2
- package/lib/vendor/blamejs/lib/guard-cidr.js +27 -1
- package/lib/vendor/blamejs/lib/guard-graphql.js +30 -11
- package/lib/vendor/blamejs/lib/guard-html.js +26 -53
- package/lib/vendor/blamejs/lib/guard-image.js +24 -5
- package/lib/vendor/blamejs/lib/guard-imap-command.js +10 -2
- package/lib/vendor/blamejs/lib/guard-jmap.js +19 -3
- package/lib/vendor/blamejs/lib/guard-jwt.js +18 -2
- package/lib/vendor/blamejs/lib/guard-list-unsubscribe.js +2 -2
- package/lib/vendor/blamejs/lib/guard-managesieve-command.js +10 -2
- package/lib/vendor/blamejs/lib/guard-markdown.js +11 -24
- package/lib/vendor/blamejs/lib/guard-pdf.js +18 -2
- package/lib/vendor/blamejs/lib/guard-pop3-command.js +10 -2
- package/lib/vendor/blamejs/lib/guard-regex.js +8 -5
- package/lib/vendor/blamejs/lib/guard-svg.js +31 -32
- package/lib/vendor/blamejs/lib/guard-time.js +1 -1
- package/lib/vendor/blamejs/lib/guard-uuid.js +2 -2
- package/lib/vendor/blamejs/lib/html-balance.js +3 -3
- package/lib/vendor/blamejs/lib/http-client-cache.js +82 -4
- package/lib/vendor/blamejs/lib/http-client-cookie-jar.js +16 -1
- package/lib/vendor/blamejs/lib/http-client.js +39 -7
- package/lib/vendor/blamejs/lib/http-message-signature.js +35 -1
- package/lib/vendor/blamejs/lib/i18n-messageformat.js +31 -6
- package/lib/vendor/blamejs/lib/i18n.js +35 -21
- package/lib/vendor/blamejs/lib/incident-report.js +8 -1
- package/lib/vendor/blamejs/lib/ip-utils.js +11 -1
- package/lib/vendor/blamejs/lib/json-path.js +23 -1
- package/lib/vendor/blamejs/lib/jwk.js +20 -3
- package/lib/vendor/blamejs/lib/link-header.js +2 -1
- package/lib/vendor/blamejs/lib/log-stream-otlp-grpc.js +5 -1
- package/lib/vendor/blamejs/lib/log-stream-otlp.js +5 -1
- package/lib/vendor/blamejs/lib/log-stream.js +8 -3
- package/lib/vendor/blamejs/lib/mail-auth.js +123 -22
- package/lib/vendor/blamejs/lib/mail-bimi.js +1 -1
- package/lib/vendor/blamejs/lib/mail-bounce.js +8 -0
- package/lib/vendor/blamejs/lib/mail-crypto-pgp.js +46 -10
- package/lib/vendor/blamejs/lib/mail-dav.js +22 -3
- package/lib/vendor/blamejs/lib/mail-dkim.js +96 -30
- package/lib/vendor/blamejs/lib/mail-helo.js +6 -1
- package/lib/vendor/blamejs/lib/mail-scan.js +23 -16
- package/lib/vendor/blamejs/lib/mail-send-deliver.js +34 -8
- package/lib/vendor/blamejs/lib/mail-server-imap.js +3 -4
- package/lib/vendor/blamejs/lib/mail-server-managesieve.js +7 -11
- package/lib/vendor/blamejs/lib/mail-server-mx.js +93 -7
- package/lib/vendor/blamejs/lib/mail-server-registry.js +8 -2
- package/lib/vendor/blamejs/lib/mail.js +15 -5
- package/lib/vendor/blamejs/lib/metrics.js +268 -63
- package/lib/vendor/blamejs/lib/middleware/age-gate.js +7 -1
- package/lib/vendor/blamejs/lib/middleware/asyncapi-serve.js +1 -1
- package/lib/vendor/blamejs/lib/middleware/body-parser.js +19 -4
- package/lib/vendor/blamejs/lib/middleware/bot-guard.js +5 -9
- package/lib/vendor/blamejs/lib/middleware/csp-report.js +40 -8
- package/lib/vendor/blamejs/lib/middleware/csrf-protect.js +24 -10
- package/lib/vendor/blamejs/lib/middleware/dpop.js +10 -5
- package/lib/vendor/blamejs/lib/middleware/index.js +6 -1
- package/lib/vendor/blamejs/lib/middleware/nel.js +1 -1
- package/lib/vendor/blamejs/lib/middleware/openapi-serve.js +1 -1
- package/lib/vendor/blamejs/lib/middleware/rate-limit.js +12 -1
- package/lib/vendor/blamejs/lib/middleware/require-bound-key.js +1 -1
- package/lib/vendor/blamejs/lib/middleware/scim-server.js +1 -1
- package/lib/vendor/blamejs/lib/middleware/tus-upload.js +6 -2
- package/lib/vendor/blamejs/lib/mtls-ca.js +18 -2
- package/lib/vendor/blamejs/lib/network-dns-resolver.js +11 -1
- package/lib/vendor/blamejs/lib/network-dns.js +21 -2
- package/lib/vendor/blamejs/lib/network-tls.js +69 -7
- package/lib/vendor/blamejs/lib/nonce-store.js +9 -1
- package/lib/vendor/blamejs/lib/object-store/gcs.js +7 -0
- package/lib/vendor/blamejs/lib/object-store/sigv4.js +31 -0
- package/lib/vendor/blamejs/lib/observability-otlp-exporter.js +1 -1
- package/lib/vendor/blamejs/lib/outbox.js +1 -1
- package/lib/vendor/blamejs/lib/parsers/safe-ini.js +9 -1
- package/lib/vendor/blamejs/lib/parsers/safe-toml.js +10 -1
- package/lib/vendor/blamejs/lib/permissions.js +6 -3
- package/lib/vendor/blamejs/lib/pid-probe.js +55 -0
- package/lib/vendor/blamejs/lib/pqc-agent.js +8 -1
- package/lib/vendor/blamejs/lib/pqc-software.js +3 -3
- package/lib/vendor/blamejs/lib/pubsub.js +20 -9
- package/lib/vendor/blamejs/lib/queue-local.js +8 -1
- package/lib/vendor/blamejs/lib/queue-redis.js +5 -0
- package/lib/vendor/blamejs/lib/redact.js +54 -0
- package/lib/vendor/blamejs/lib/restore-bundle.js +10 -2
- package/lib/vendor/blamejs/lib/restore.js +19 -0
- package/lib/vendor/blamejs/lib/retention.js +12 -4
- package/lib/vendor/blamejs/lib/router.js +60 -6
- package/lib/vendor/blamejs/lib/safe-buffer.js +69 -0
- package/lib/vendor/blamejs/lib/safe-decompress.js +8 -2
- package/lib/vendor/blamejs/lib/safe-dns.js +25 -20
- package/lib/vendor/blamejs/lib/safe-ical.js +7 -3
- package/lib/vendor/blamejs/lib/safe-mime.js +12 -1
- package/lib/vendor/blamejs/lib/safe-object.js +80 -0
- package/lib/vendor/blamejs/lib/safe-path.js +52 -4
- package/lib/vendor/blamejs/lib/safe-redirect.js +10 -2
- package/lib/vendor/blamejs/lib/safe-schema.js +4 -1
- package/lib/vendor/blamejs/lib/safe-sieve.js +33 -1
- package/lib/vendor/blamejs/lib/safe-sql.js +88 -0
- package/lib/vendor/blamejs/lib/safe-vcard.js +7 -3
- package/lib/vendor/blamejs/lib/scheduler.js +8 -1
- package/lib/vendor/blamejs/lib/security-assert.js +6 -6
- package/lib/vendor/blamejs/lib/self-update-standalone-verifier.js +74 -27
- package/lib/vendor/blamejs/lib/self-update.js +517 -87
- package/lib/vendor/blamejs/lib/server-timing.js +2 -4
- package/lib/vendor/blamejs/lib/session.js +34 -12
- package/lib/vendor/blamejs/lib/sql.js +15 -1
- package/lib/vendor/blamejs/lib/ssrf-guard.js +52 -0
- package/lib/vendor/blamejs/lib/static.js +55 -13
- package/lib/vendor/blamejs/lib/storage.js +8 -2
- package/lib/vendor/blamejs/lib/subject.js +6 -1
- package/lib/vendor/blamejs/lib/tenant-quota.js +52 -13
- package/lib/vendor/blamejs/lib/tls-exporter.js +3 -3
- package/lib/vendor/blamejs/lib/tsa.js +34 -13
- package/lib/vendor/blamejs/lib/uri-template.js +8 -1
- package/lib/vendor/blamejs/lib/vault/index.js +13 -0
- package/lib/vendor/blamejs/lib/vc.js +44 -5
- package/lib/vendor/blamejs/lib/vendor/MANIFEST.json +26 -26
- package/lib/vendor/blamejs/lib/vendor/noble-ciphers.cjs +792 -1
- package/lib/vendor/blamejs/lib/vendor/noble-curves.cjs +3443 -1
- package/lib/vendor/blamejs/lib/vendor/noble-post-quantum.cjs +2737 -1
- package/lib/vendor/blamejs/lib/vendor/pki.cjs +39550 -13
- package/lib/vendor/blamejs/lib/vendor/public-suffix-list.dat +55 -53
- package/lib/vendor/blamejs/lib/vendor/public-suffix-list.data.js +5551 -5554
- package/lib/vendor/blamejs/lib/vendor/simplewebauthn-server.cjs +22459 -32
- package/lib/vendor/blamejs/lib/watcher.js +89 -17
- package/lib/vendor/blamejs/lib/webhook-dispatcher.js +25 -3
- package/lib/vendor/blamejs/lib/webhook.js +12 -2
- package/lib/vendor/blamejs/lib/ws-client.js +32 -1
- package/lib/vendor/blamejs/lib/xml-c14n.js +29 -1
- package/lib/vendor/blamejs/oss-fuzz/projects/blamejs/Dockerfile +1 -1
- package/lib/vendor/blamejs/package-lock.json +2 -2
- package/lib/vendor/blamejs/package.json +1 -1
- package/lib/vendor/blamejs/release-notes/v0.16.x.json +1462 -0
- package/lib/vendor/blamejs/release-notes/v0.17.0.json +31 -0
- package/lib/vendor/blamejs/release-notes/v0.17.1.json +31 -0
- package/lib/vendor/blamejs/release-notes/v0.17.10.json +30 -0
- package/lib/vendor/blamejs/release-notes/v0.17.11.json +22 -0
- package/lib/vendor/blamejs/release-notes/v0.17.12.json +18 -0
- package/lib/vendor/blamejs/release-notes/v0.17.13.json +77 -0
- package/lib/vendor/blamejs/release-notes/v0.17.14.json +40 -0
- package/lib/vendor/blamejs/release-notes/v0.17.15.json +18 -0
- package/lib/vendor/blamejs/release-notes/v0.17.16.json +27 -0
- package/lib/vendor/blamejs/release-notes/v0.17.17.json +31 -0
- package/lib/vendor/blamejs/release-notes/v0.17.18.json +18 -0
- package/lib/vendor/blamejs/release-notes/v0.17.19.json +18 -0
- package/lib/vendor/blamejs/release-notes/v0.17.2.json +26 -0
- package/lib/vendor/blamejs/release-notes/v0.17.20.json +43 -0
- package/lib/vendor/blamejs/release-notes/v0.17.21.json +26 -0
- package/lib/vendor/blamejs/release-notes/v0.17.22.json +18 -0
- package/lib/vendor/blamejs/release-notes/v0.17.3.json +43 -0
- package/lib/vendor/blamejs/release-notes/v0.17.4.json +35 -0
- package/lib/vendor/blamejs/release-notes/v0.17.5.json +26 -0
- package/lib/vendor/blamejs/release-notes/v0.17.6.json +26 -0
- package/lib/vendor/blamejs/release-notes/v0.17.7.json +35 -0
- package/lib/vendor/blamejs/release-notes/v0.17.8.json +22 -0
- package/lib/vendor/blamejs/release-notes/v0.17.9.json +26 -0
- package/lib/vendor/blamejs/scripts/validate-source-comment-blocks.js +4 -0
- package/lib/vendor/blamejs/scripts/vendor-update.sh +293 -9
- package/lib/vendor/blamejs/socket.yml +94 -0
- package/lib/vendor/blamejs/test/00-primitives.js +605 -0
- package/lib/vendor/blamejs/test/helpers/drivers.js +12 -9
- package/lib/vendor/blamejs/test/integration/audit-stack-mysql.test.js +90 -1
- package/lib/vendor/blamejs/test/integration/audit-stack-postgres.test.js +122 -1
- package/lib/vendor/blamejs/test/integration/data-layer-mysql.test.js +30 -0
- package/lib/vendor/blamejs/test/integration/data-layer-pg.test.js +29 -0
- package/lib/vendor/blamejs/test/integration/dsr-cluster-mysql.test.js +479 -0
- package/lib/vendor/blamejs/test/integration/dsr-cluster-pg.test.js +487 -0
- package/lib/vendor/blamejs/test/integration/federation-auth.test.js +313 -5
- package/lib/vendor/blamejs/test/integration/mail-dkim.test.js +80 -0
- package/lib/vendor/blamejs/test/integration/openid-federation-chain.test.js +275 -0
- package/lib/vendor/blamejs/test/integration/webhook-dispatcher-pg.test.js +96 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/a2a-tasks.test.js +401 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/acme.test.js +1649 -2
- package/lib/vendor/blamejs/test/layer-0-primitives/age-gate.test.js +33 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/agent-idempotency.test.js +0 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/agent-saga.test.js +60 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/agent-snapshot.test.js +524 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/api-encrypt.test.js +891 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/app-shutdown.test.js +128 -1
- package/lib/vendor/blamejs/test/layer-0-primitives/archive-adapters.test.js +271 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/archive-read.test.js +628 -1
- package/lib/vendor/blamejs/test/layer-0-primitives/archive-tar-read.test.js +0 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/archive-wrap.test.js +227 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/arg-parser.test.js +15 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/asn1-der.test.js +73 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/atomic-file.test.js +114 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/audit-sign-anchor.test.js +141 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/audit-tools.test.js +624 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/audit.test.js +769 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/auth-jwt-defenses.test.js +436 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/auth-oauth.test.js +1697 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/auth-oid4vp.test.js +495 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/auth-password.test.js +500 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/auth-saml.test.js +1809 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/auth-status-list.test.js +243 -1
- package/lib/vendor/blamejs/test/layer-0-primitives/backup-index.test.js +2226 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/backup-manifest-signature.test.js +183 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/base32.test.js +105 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/break-glass.test.js +693 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/cache.test.js +603 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/calendar.test.js +557 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/case-insensitive-security-token-guard.test.js +214 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/cbor.test.js +25 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/cert.test.js +843 -6
- package/lib/vendor/blamejs/test/layer-0-primitives/ciba-authreqid-binding.test.js +77 -2
- package/lib/vendor/blamejs/test/layer-0-primitives/ciba.test.js +866 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/clear-site-data.test.js +18 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/cli-erase.test.js +19 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/cli.test.js +2790 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/cluster-lease-renewal-ttl.test.js +114 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/cluster.test.js +1032 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/cms-codec.test.js +575 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/codebase-patterns.test.js +739 -1
- package/lib/vendor/blamejs/test/layer-0-primitives/codepoint-class.test.js +8 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/compliance-ai-act.test.js +194 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/compliance-lifecycle-proto-key.test.js +104 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/compliance-sanctions.test.js +254 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/content-credentials.test.js +613 -3
- package/lib/vendor/blamejs/test/layer-0-primitives/cookies.test.js +140 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/cose.test.js +407 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/crypto-adversarial.test.js +352 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/crypto-field-derived-hash.test.js +32 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/crypto-field.test.js +575 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/crypto-hash-files-parallel.test.js +10 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/crypto-hash-stream.test.js +24 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/crypto-oprf.test.js +17 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/crypto-spki-pin.test.js +183 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/crypto-xwing.test.js +48 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/crypto.test.js +345 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/csp-report.test.js +58 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/csv.test.js +48 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/daemon.test.js +459 -1
- package/lib/vendor/blamejs/test/layer-0-primitives/dark-patterns.test.js +19 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/db-query.test.js +1019 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/db-raw-residency-gate.test.js +77 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/db.test.js +1621 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/ddl-change-control.test.js +462 -3
- package/lib/vendor/blamejs/test/layer-0-primitives/dnssec.test.js +323 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/dpop-middleware-verify.test.js +562 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/dsr.test.js +901 -1
- package/lib/vendor/blamejs/test/layer-0-primitives/dual-control.test.js +249 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/external-db-migrate.test.js +561 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/external-db.test.js +1214 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/fal.test.js +21 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/fedcm-dbsc.test.js +46 -20
- package/lib/vendor/blamejs/test/layer-0-primitives/federation-vc-suite.test.js +147 -3
- package/lib/vendor/blamejs/test/layer-0-primitives/fido-mds3.test.js +907 -38
- package/lib/vendor/blamejs/test/layer-0-primitives/file-upload-content-safety-skip-audit.test.js +29 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/file-upload.test.js +1135 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/flag.test.js +30 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/forms.test.js +747 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/gate-contract.test.js +1855 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/gdpr-ropa.test.js +30 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-archive.test.js +86 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-auth.test.js +117 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-cidr.test.js +151 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-domain.test.js +422 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-filename.test.js +424 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/{guard-gate-disposition-coverage.test.js → guard-gate-disposition.test.js} +1 -1
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-graphql.test.js +340 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-html.test.js +29 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-idempotency-key.test.js +28 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-image.test.js +519 -45
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-imap-command.test.js +0 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-jmap.test.js +51 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-jsonpath.test.js +66 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-jwt.test.js +436 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-managesieve-command.test.js +25 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-markdown.test.js +16 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-mime.test.js +86 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-oauth.test.js +140 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-pdf.test.js +80 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-pop3-command.test.js +27 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-regex.test.js +99 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-shell.test.js +76 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/{guard-sql-coverage.test.js → guard-sql.test.js} +3 -3
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-svg.test.js +524 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-template.test.js +71 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-time.test.js +92 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/guard-uuid.test.js +86 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/html-balance.test.js +38 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/http-client-cache-authorization.test.js +347 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/http-client-cache.test.js +908 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/http-client.test.js +2874 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/http-message-signature.test.js +643 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/i18n-messageformat.test.js +38 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/i18n.test.js +1153 -1
- package/lib/vendor/blamejs/test/layer-0-primitives/idempotency-key.test.js +494 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/ip-utils.test.js +30 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/jsdoc-example-execution.test.js +177 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/json-path.test.js +103 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/json-schema.test.js +214 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/jwk.test.js +41 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/jwt-external.test.js +276 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/keychain.test.js +0 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/log-stream.test.js +241 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/log.test.js +106 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-agent.test.js +441 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-auth.test.js +2136 -4
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-bimi.test.js +759 -12
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-bounce.test.js +811 -1
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-crypto-pgp-experimental.test.js +401 -3
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-crypto-pgp.test.js +751 -8
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-crypto-smime.test.js +864 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-crypto.test.js +110 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-dav.test.js +830 -1
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-deploy.test.js +635 -86
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-dkim.test.js +818 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-helo.test.js +27 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-scan.test.js +199 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-send-deliver.test.js +686 -2
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-imap.test.js +778 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-jmap.test.js +1438 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-managesieve.test.js +449 -6
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-mx.test.js +773 -2
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-pop3.test.js +623 -3
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-rate-limit.test.js +55 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-registry.test.js +13 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-server-submission.test.js +877 -1
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-sieve.test.js +326 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-store-fts.test.js +55 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-store.test.js +242 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/mail.test.js +1596 -2
- package/lib/vendor/blamejs/test/layer-0-primitives/mcp.test.js +440 -4
- package/lib/vendor/blamejs/test/layer-0-primitives/metrics-snapshot.test.js +89 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/metrics.test.js +1230 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/middleware-assetlinks.test.js +113 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/middleware-body-parser.test.js +1169 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/middleware-bot-disclose.test.js +123 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/middleware-cookies.test.js +108 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/middleware-gpc.test.js +121 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/middleware-headers.test.js +163 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/middleware-host-allowlist.test.js +154 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/middleware-require-content-type.test.js +127 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/{middleware-tus-upload-coverage.test.js → middleware-tus-upload.test.js} +45 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/middleware-web-app-manifest.test.js +132 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/mtls-ca-crl-fingerprint-only.test.js +92 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/network-dns-resolver.test.js +65 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/network-dns.test.js +1727 -1
- package/lib/vendor/blamejs/test/layer-0-primitives/network-nts.test.js +699 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/network-smtp-policy.test.js +1181 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/network-tls.test.js +1876 -3
- package/lib/vendor/blamejs/test/layer-0-primitives/network.test.js +32 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/nonce-store-enforce-replay-nonboolean.test.js +81 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/ntp-check.test.js +122 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/observability-tracing.test.js +378 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/observability.test.js +77 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/oid4vci.test.js +1016 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/openid-federation.test.js +946 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/outbox.test.js +818 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/own-property-membership-guards.test.js +109 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/parsers-safe-toml.test.js +543 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/{parsers-safe-yaml-coverage.test.js → parsers-safe-yaml.test.js} +2 -2
- package/lib/vendor/blamejs/test/layer-0-primitives/parsers-standalone.test.js +73 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/passkey.test.js +649 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/permissions.test.js +524 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/pqc-agent-curve.test.js +22 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/pubsub.test.js +295 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/queue-flow-repeat.test.js +36 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/queue.test.js +83 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/rate-limit-xff-spoofing.test.js +34 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/redact.test.js +1031 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/request-helpers.test.js +94 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/require-bound-key.test.js +401 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/restore-empty-manifest-wipe.test.js +154 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/retention.test.js +600 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/router-host-path-injection.test.js +231 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/router-tls0rtt.test.js +21 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/router.test.js +1277 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/safe-async.test.js +133 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/safe-buffer-linear-scans.test.js +14 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/safe-buffer.test.js +80 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/safe-decompress.test.js +28 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/safe-dns.test.js +245 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/safe-ical.test.js +32 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/safe-ini.test.js +376 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/safe-json.test.js +175 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/safe-mime.test.js +518 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/safe-object.test.js +62 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/safe-path.test.js +30 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/safe-schema.test.js +104 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/safe-sql.test.js +142 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/safe-url.test.js +112 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/safe-vcard.test.js +26 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/scheduler.test.js +157 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/scim-server.test.js +396 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/sd-jwt-vc.test.js +930 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/security-assert.test.js +755 -82
- package/lib/vendor/blamejs/test/layer-0-primitives/self-update.test.js +1053 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/session-device-binding.test.js +200 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/session-strict-binding-missing-failclosed.test.js +110 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/sigv4-bucket-ops.test.js +636 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/sql-offset-without-limit.test.js +94 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/sql.test.js +1190 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/ssrf-guard.test.js +21 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/static.test.js +850 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/storage-presigned-url.test.js +146 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/storage.test.js +621 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/subject.test.js +47 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/template.test.js +582 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/tenant-quota.test.js +587 -25
- package/lib/vendor/blamejs/test/layer-0-primitives/time.test.js +11 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/tsa.test.js +524 -63
- package/lib/vendor/blamejs/test/layer-0-primitives/uri-template.test.js +27 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/vault-rotate.test.js +866 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/vault.test.js +74 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/vc.test.js +215 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/watcher.test.js +550 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/webhook-dispatcher.test.js +388 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/webhook.test.js +262 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/websocket.test.js +1294 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/ws-client.test.js +629 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/xml-c14n-attr-normalization.test.js +164 -0
- package/lib/vendor/blamejs/test/smoke.js +2 -0
- package/package.json +1 -1
- package/lib/vendor/blamejs/release-notes/v0.16.0.json +0 -44
- package/lib/vendor/blamejs/release-notes/v0.16.1.json +0 -36
- package/lib/vendor/blamejs/release-notes/v0.16.2.json +0 -71
- package/lib/vendor/blamejs/release-notes/v0.16.3.json +0 -71
- package/lib/vendor/blamejs/test/layer-0-primitives/acme-coverage.test.js +0 -441
- package/lib/vendor/blamejs/test/layer-0-primitives/auth-oauth-coverage.test.js +0 -482
- package/lib/vendor/blamejs/test/layer-0-primitives/auth-saml-coverage.test.js +0 -671
- package/lib/vendor/blamejs/test/layer-0-primitives/backup-index-coverage.test.js +0 -690
- package/lib/vendor/blamejs/test/layer-0-primitives/cli-coverage.test.js +0 -238
- package/lib/vendor/blamejs/test/layer-0-primitives/content-credentials-coverage.test.js +0 -319
- package/lib/vendor/blamejs/test/layer-0-primitives/keychain-coverage.test.js +0 -0
- package/lib/vendor/blamejs/test/layer-0-primitives/mail-auth-coverage.test.js +0 -437
- package/lib/vendor/blamejs/test/layer-0-primitives/mcp-coverage.test.js +0 -443
- package/lib/vendor/blamejs/test/layer-0-primitives/metrics-coverage.test.js +0 -395
- package/lib/vendor/blamejs/test/layer-0-primitives/network-smtp-policy-coverage.test.js +0 -565
- package/lib/vendor/blamejs/test/layer-0-primitives/router-coverage.test.js +0 -592
- package/lib/vendor/blamejs/test/layer-0-primitives/sql-coverage.test.js +0 -422
- package/lib/vendor/blamejs/test/layer-0-primitives/test-coverage.test.js +0 -573
|
@@ -25,6 +25,16 @@ Used for: XChaCha20-Poly1305 authenticated encryption (lib/crypto.js,
|
|
|
25
25
|
lib/vault-wrap.js, via lib/vendor/noble-ciphers.cjs).
|
|
26
26
|
Thank you to Paul Miller for the audited noble-ciphers suite.
|
|
27
27
|
--------------------------------------------------------------------------------
|
|
28
|
+
Component: @noble/curves
|
|
29
|
+
Version: 2.2.0
|
|
30
|
+
Source: https://github.com/paulmillr/noble-curves
|
|
31
|
+
License: MIT
|
|
32
|
+
Copyright: Copyright (c) 2022 Paul Miller (https://paulmillr.com)
|
|
33
|
+
Used for: RFC 9497 Oblivious Pseudo-Random Function (OPRF / VOPRF / POPRF)
|
|
34
|
+
over ristretto255 / P-256 / P-384 / P-521 (lib/crypto-oprf.js,
|
|
35
|
+
via lib/vendor/noble-curves.cjs). Thank you to Paul Miller for the
|
|
36
|
+
audited noble-curves suite.
|
|
37
|
+
--------------------------------------------------------------------------------
|
|
28
38
|
Component: @noble/post-quantum
|
|
29
39
|
Version: 0.6.1
|
|
30
40
|
Source: https://github.com/paulmillr/noble-post-quantum
|
|
@@ -41,7 +51,7 @@ Used for: FIPS 203 ML-KEM (ml_kem_512 / ml_kem_768 / ml_kem_1024),
|
|
|
41
51
|
reference implementation.
|
|
42
52
|
--------------------------------------------------------------------------------
|
|
43
53
|
Component: @simplewebauthn/server
|
|
44
|
-
Version: 13.3.
|
|
54
|
+
Version: 13.3.2
|
|
45
55
|
Source: https://github.com/MasterKale/SimpleWebAuthn
|
|
46
56
|
License: MIT
|
|
47
57
|
Copyright: Copyright (c) Matthew Miller
|
|
@@ -79,3 +89,18 @@ Used for: Top-10000 most-common (breach-derived) passwords. Loaded by
|
|
|
79
89
|
project maintainers for keeping a curated, freely-redistributable
|
|
80
90
|
baseline.
|
|
81
91
|
--------------------------------------------------------------------------------
|
|
92
|
+
Component: publicsuffix-list (Mozilla Public Suffix List)
|
|
93
|
+
Version: master snapshot (bundled 2026-07-24)
|
|
94
|
+
Source: https://publicsuffix.org/list/public_suffix_list.dat
|
|
95
|
+
License: MPL-2.0
|
|
96
|
+
Copyright: Copyright (c) Mozilla Foundation and Public Suffix List contributors
|
|
97
|
+
Used for: Canonical catalog of effective top-level domains. Loaded at module
|
|
98
|
+
init by b.publicSuffix to derive organizational domains for
|
|
99
|
+
DMARCbis (psd= / np=) alignment, BIMI issuer scoping, cookie-scope
|
|
100
|
+
confinement, and same-site policy (lib/public-suffix.js, via
|
|
101
|
+
lib/vendor/public-suffix-list.dat). This is data, not a code
|
|
102
|
+
bundle. The list is vendored verbatim and unmodified and remains
|
|
103
|
+
licensed under the Mozilla Public License 2.0; its complete source
|
|
104
|
+
is available at the canonical URL above, satisfying MPL-2.0 §3.2.
|
|
105
|
+
The full MPL-2.0 text is at https://www.mozilla.org/MPL/2.0/.
|
|
106
|
+
--------------------------------------------------------------------------------
|
|
@@ -203,7 +203,7 @@ What blamejs defends against, by design:
|
|
|
203
203
|
- **Online brute-force against credentials** — `b.auth.lockout` tracks failed attempts per account (or any operator-chosen key) and engages an exponential-backoff lockout (1m → 5m → 15m → 1h → 6h+, clamped). State lives in `b.cache` so it shares across cluster nodes when the cluster backend is wired. Operator-driven `unlock(key, { req, reason })` audits with the admin's 5 W's. Backend errors fail open (the framework's job is to slow attackers, not to lock operators out of their own admin accounts when Redis dies).
|
|
204
204
|
- **Inline-script injection** — strict CSP default (`script-src 'self' 'nonce-...'`) blocks anything an XSS payload could ship.
|
|
205
205
|
- **Algorithm-substitution attacks** — every encrypted blob carries a 4-byte algorithm-ID header; `b.crypto.decrypt` dispatches on the header bytes, not on a guess at the active default. An attacker swapping a weaker algorithm into the envelope fails the AEAD tag check.
|
|
206
|
-
- **Supply-chain compromise via npm transitive deps** — zero npm runtime dependencies. Every external library is vendored under `lib/vendor/` with a manifest pinning version + license + provenance. Build reproducibility is verified via the GHCR image's SLSA provenance attestation (see DEPLOY.md → "Release verification").
|
|
206
|
+
- **Supply-chain compromise via npm transitive deps** — zero npm runtime dependencies. Every external library is vendored under `lib/vendor/` as an unminified, reviewable bundle, with a manifest pinning version + license + provenance. Build reproducibility is verified via the GHCR image's SLSA provenance attestation (see DEPLOY.md → "Release verification").
|
|
207
207
|
- **A published CVE in a vendored library going unnoticed** — because the crypto is vendored rather than installed, `npm audit` / Dependabot / Socket never see it. Every PR builds a CycloneDX SBOM of `lib/vendor/` (each library carries an npm purl) and runs it through OSV-Scanner, matching the exact pinned version against the OSV vulnerability database (CVE + GHSA). A match fails the build — the vendored copy is refreshed before merge. This runs alongside CodeQL (semantic SAST), a complementary Semgrep pass (registry security-audit + javascript packs at ERROR severity), gitleaks (secret scan over full history), and actionlint (workflow static analysis).
|
|
208
208
|
- **Replay of API requests** — `apiEncrypt` middleware nonce-stores + replay-windows the `_ek` field; old session keys can't be reused.
|
|
209
209
|
- **Error-detail leakage on an encrypted channel** — when `apiEncrypt` is active, terminal error responses (the error page, schema-validation refusals, RFC 9457 problem+json, deny-middleware bodies) are sealed in the same `{ _ct }` envelope as successes via `req.apiEncryptEncode`, so error detail (paths, field names, refusal reasons) doesn't ship in plaintext while the surrounding traffic is encrypted. Errors raised before a session exists (Bearer 401, handshake reject, replay refusal) stay plaintext so the caller can read them; the client opts into reading a non-2xx with `b.httpClient.encrypted({ responseMode: "passthrough" })` instead of throwing on the shape.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"frameworkVersion": "0.
|
|
4
|
-
"createdAt": "2026-07-
|
|
3
|
+
"frameworkVersion": "0.17.22",
|
|
4
|
+
"createdAt": "2026-07-25T13:46:32.462Z",
|
|
5
5
|
"exports": {
|
|
6
6
|
"a2a": {
|
|
7
7
|
"type": "object",
|
|
@@ -2126,7 +2126,7 @@
|
|
|
2126
2126
|
},
|
|
2127
2127
|
"parseRaw": {
|
|
2128
2128
|
"type": "function",
|
|
2129
|
-
"arity":
|
|
2129
|
+
"arity": 2
|
|
2130
2130
|
}
|
|
2131
2131
|
}
|
|
2132
2132
|
},
|
|
@@ -6827,6 +6827,127 @@
|
|
|
6827
6827
|
"type": "instance",
|
|
6828
6828
|
"ctorName": "RegExp"
|
|
6829
6829
|
},
|
|
6830
|
+
"NAMED_ENTITY_ASCII": {
|
|
6831
|
+
"type": "object",
|
|
6832
|
+
"members": {
|
|
6833
|
+
"NewLine": {
|
|
6834
|
+
"type": "primitive",
|
|
6835
|
+
"valueType": "string"
|
|
6836
|
+
},
|
|
6837
|
+
"Tab": {
|
|
6838
|
+
"type": "primitive",
|
|
6839
|
+
"valueType": "string"
|
|
6840
|
+
},
|
|
6841
|
+
"amp": {
|
|
6842
|
+
"type": "primitive",
|
|
6843
|
+
"valueType": "string"
|
|
6844
|
+
},
|
|
6845
|
+
"apos": {
|
|
6846
|
+
"type": "primitive",
|
|
6847
|
+
"valueType": "string"
|
|
6848
|
+
},
|
|
6849
|
+
"ast": {
|
|
6850
|
+
"type": "primitive",
|
|
6851
|
+
"valueType": "string"
|
|
6852
|
+
},
|
|
6853
|
+
"bsol": {
|
|
6854
|
+
"type": "primitive",
|
|
6855
|
+
"valueType": "string"
|
|
6856
|
+
},
|
|
6857
|
+
"colon": {
|
|
6858
|
+
"type": "primitive",
|
|
6859
|
+
"valueType": "string"
|
|
6860
|
+
},
|
|
6861
|
+
"commat": {
|
|
6862
|
+
"type": "primitive",
|
|
6863
|
+
"valueType": "string"
|
|
6864
|
+
},
|
|
6865
|
+
"dollar": {
|
|
6866
|
+
"type": "primitive",
|
|
6867
|
+
"valueType": "string"
|
|
6868
|
+
},
|
|
6869
|
+
"excl": {
|
|
6870
|
+
"type": "primitive",
|
|
6871
|
+
"valueType": "string"
|
|
6872
|
+
},
|
|
6873
|
+
"gt": {
|
|
6874
|
+
"type": "primitive",
|
|
6875
|
+
"valueType": "string"
|
|
6876
|
+
},
|
|
6877
|
+
"hyphen": {
|
|
6878
|
+
"type": "primitive",
|
|
6879
|
+
"valueType": "string"
|
|
6880
|
+
},
|
|
6881
|
+
"lcub": {
|
|
6882
|
+
"type": "primitive",
|
|
6883
|
+
"valueType": "string"
|
|
6884
|
+
},
|
|
6885
|
+
"lowbar": {
|
|
6886
|
+
"type": "primitive",
|
|
6887
|
+
"valueType": "string"
|
|
6888
|
+
},
|
|
6889
|
+
"lpar": {
|
|
6890
|
+
"type": "primitive",
|
|
6891
|
+
"valueType": "string"
|
|
6892
|
+
},
|
|
6893
|
+
"lsqb": {
|
|
6894
|
+
"type": "primitive",
|
|
6895
|
+
"valueType": "string"
|
|
6896
|
+
},
|
|
6897
|
+
"lt": {
|
|
6898
|
+
"type": "primitive",
|
|
6899
|
+
"valueType": "string"
|
|
6900
|
+
},
|
|
6901
|
+
"nbsp": {
|
|
6902
|
+
"type": "primitive",
|
|
6903
|
+
"valueType": "string"
|
|
6904
|
+
},
|
|
6905
|
+
"num": {
|
|
6906
|
+
"type": "primitive",
|
|
6907
|
+
"valueType": "string"
|
|
6908
|
+
},
|
|
6909
|
+
"percnt": {
|
|
6910
|
+
"type": "primitive",
|
|
6911
|
+
"valueType": "string"
|
|
6912
|
+
},
|
|
6913
|
+
"period": {
|
|
6914
|
+
"type": "primitive",
|
|
6915
|
+
"valueType": "string"
|
|
6916
|
+
},
|
|
6917
|
+
"plus": {
|
|
6918
|
+
"type": "primitive",
|
|
6919
|
+
"valueType": "string"
|
|
6920
|
+
},
|
|
6921
|
+
"quest": {
|
|
6922
|
+
"type": "primitive",
|
|
6923
|
+
"valueType": "string"
|
|
6924
|
+
},
|
|
6925
|
+
"quot": {
|
|
6926
|
+
"type": "primitive",
|
|
6927
|
+
"valueType": "string"
|
|
6928
|
+
},
|
|
6929
|
+
"rcub": {
|
|
6930
|
+
"type": "primitive",
|
|
6931
|
+
"valueType": "string"
|
|
6932
|
+
},
|
|
6933
|
+
"rpar": {
|
|
6934
|
+
"type": "primitive",
|
|
6935
|
+
"valueType": "string"
|
|
6936
|
+
},
|
|
6937
|
+
"rsqb": {
|
|
6938
|
+
"type": "primitive",
|
|
6939
|
+
"valueType": "string"
|
|
6940
|
+
},
|
|
6941
|
+
"semi": {
|
|
6942
|
+
"type": "primitive",
|
|
6943
|
+
"valueType": "string"
|
|
6944
|
+
},
|
|
6945
|
+
"sol": {
|
|
6946
|
+
"type": "primitive",
|
|
6947
|
+
"valueType": "string"
|
|
6948
|
+
}
|
|
6949
|
+
}
|
|
6950
|
+
},
|
|
6830
6951
|
"NULL_BYTE": {
|
|
6831
6952
|
"type": "primitive",
|
|
6832
6953
|
"valueType": "string"
|
|
@@ -6920,6 +7041,10 @@
|
|
|
6920
7041
|
"type": "function",
|
|
6921
7042
|
"arity": 1
|
|
6922
7043
|
},
|
|
7044
|
+
"decodeMarkupEntities": {
|
|
7045
|
+
"type": "function",
|
|
7046
|
+
"arity": 1
|
|
7047
|
+
},
|
|
6923
7048
|
"decodeNumericEntities": {
|
|
6924
7049
|
"type": "function",
|
|
6925
7050
|
"arity": 1
|
|
@@ -6963,6 +7088,10 @@
|
|
|
6963
7088
|
"scriptFor": {
|
|
6964
7089
|
"type": "function",
|
|
6965
7090
|
"arity": 1
|
|
7091
|
+
},
|
|
7092
|
+
"stripUrlSchemeWhitespace": {
|
|
7093
|
+
"type": "function",
|
|
7094
|
+
"arity": 1
|
|
6966
7095
|
}
|
|
6967
7096
|
}
|
|
6968
7097
|
},
|
|
@@ -14630,6 +14759,14 @@
|
|
|
14630
14759
|
"type": "function",
|
|
14631
14760
|
"arity": 2
|
|
14632
14761
|
},
|
|
14762
|
+
"spkiPin": {
|
|
14763
|
+
"type": "function",
|
|
14764
|
+
"arity": 1
|
|
14765
|
+
},
|
|
14766
|
+
"spkiPinVerifier": {
|
|
14767
|
+
"type": "function",
|
|
14768
|
+
"arity": 1
|
|
14769
|
+
},
|
|
14633
14770
|
"sri": {
|
|
14634
14771
|
"type": "function",
|
|
14635
14772
|
"arity": 2
|
|
@@ -15004,6 +15141,10 @@
|
|
|
15004
15141
|
"type": "function",
|
|
15005
15142
|
"arity": 1
|
|
15006
15143
|
},
|
|
15144
|
+
"status": {
|
|
15145
|
+
"type": "function",
|
|
15146
|
+
"arity": 1
|
|
15147
|
+
},
|
|
15007
15148
|
"stop": {
|
|
15008
15149
|
"type": "function",
|
|
15009
15150
|
"arity": 1
|
|
@@ -42369,7 +42510,7 @@
|
|
|
42369
42510
|
"members": {
|
|
42370
42511
|
"verify": {
|
|
42371
42512
|
"type": "function",
|
|
42372
|
-
"arity":
|
|
42513
|
+
"arity": 2
|
|
42373
42514
|
}
|
|
42374
42515
|
}
|
|
42375
42516
|
},
|
|
@@ -49274,6 +49415,10 @@
|
|
|
49274
49415
|
"type": "function",
|
|
49275
49416
|
"arity": 2
|
|
49276
49417
|
},
|
|
49418
|
+
"redactText": {
|
|
49419
|
+
"type": "function",
|
|
49420
|
+
"arity": 1
|
|
49421
|
+
},
|
|
49277
49422
|
"registerFieldRule": {
|
|
49278
49423
|
"type": "function",
|
|
49279
49424
|
"arity": 2
|
|
@@ -49903,6 +50048,10 @@
|
|
|
49903
50048
|
"type": "function",
|
|
49904
50049
|
"arity": 2
|
|
49905
50050
|
},
|
|
50051
|
+
"byteLengthOfIfMeasurable": {
|
|
50052
|
+
"type": "function",
|
|
50053
|
+
"arity": 1
|
|
50054
|
+
},
|
|
49906
50055
|
"collectStream": {
|
|
49907
50056
|
"type": "function",
|
|
49908
50057
|
"arity": 2
|
|
@@ -49931,6 +50080,10 @@
|
|
|
49931
50080
|
"type": "function",
|
|
49932
50081
|
"arity": 2
|
|
49933
50082
|
},
|
|
50083
|
+
"quoteString": {
|
|
50084
|
+
"type": "function",
|
|
50085
|
+
"arity": 1
|
|
50086
|
+
},
|
|
49934
50087
|
"secureZero": {
|
|
49935
50088
|
"type": "function",
|
|
49936
50089
|
"arity": 1
|
|
@@ -51066,6 +51219,19 @@
|
|
|
51066
51219
|
}
|
|
51067
51220
|
}
|
|
51068
51221
|
},
|
|
51222
|
+
"safeObject": {
|
|
51223
|
+
"type": "object",
|
|
51224
|
+
"members": {
|
|
51225
|
+
"ownProp": {
|
|
51226
|
+
"type": "function",
|
|
51227
|
+
"arity": 2
|
|
51228
|
+
},
|
|
51229
|
+
"ownSet": {
|
|
51230
|
+
"type": "function",
|
|
51231
|
+
"arity": 3
|
|
51232
|
+
}
|
|
51233
|
+
}
|
|
51234
|
+
},
|
|
51069
51235
|
"safePath": {
|
|
51070
51236
|
"type": "object",
|
|
51071
51237
|
"members": {
|
|
@@ -51073,6 +51239,10 @@
|
|
|
51073
51239
|
"type": "function",
|
|
51074
51240
|
"arity": 4
|
|
51075
51241
|
},
|
|
51242
|
+
"confineToBase": {
|
|
51243
|
+
"type": "function",
|
|
51244
|
+
"arity": 3
|
|
51245
|
+
},
|
|
51076
51246
|
"resolve": {
|
|
51077
51247
|
"type": "function",
|
|
51078
51248
|
"arity": 3
|
|
@@ -51544,6 +51714,10 @@
|
|
|
51544
51714
|
"type": "function",
|
|
51545
51715
|
"arity": 1
|
|
51546
51716
|
},
|
|
51717
|
+
"normalizeForScan": {
|
|
51718
|
+
"type": "function",
|
|
51719
|
+
"arity": 1
|
|
51720
|
+
},
|
|
51547
51721
|
"quoteIdentifier": {
|
|
51548
51722
|
"type": "function",
|
|
51549
51723
|
"arity": 3
|
|
@@ -52304,10 +52478,22 @@
|
|
|
52304
52478
|
"type": "function",
|
|
52305
52479
|
"arity": 4
|
|
52306
52480
|
},
|
|
52481
|
+
"beginProbation": {
|
|
52482
|
+
"type": "function",
|
|
52483
|
+
"arity": 1
|
|
52484
|
+
},
|
|
52307
52485
|
"compareTags": {
|
|
52308
52486
|
"type": "function",
|
|
52309
52487
|
"arity": 2
|
|
52310
52488
|
},
|
|
52489
|
+
"confirmHealthy": {
|
|
52490
|
+
"type": "function",
|
|
52491
|
+
"arity": 1
|
|
52492
|
+
},
|
|
52493
|
+
"evaluateOnBoot": {
|
|
52494
|
+
"type": "function",
|
|
52495
|
+
"arity": 1
|
|
52496
|
+
},
|
|
52311
52497
|
"poll": {
|
|
52312
52498
|
"type": "function",
|
|
52313
52499
|
"arity": 1
|
|
@@ -52325,7 +52511,7 @@
|
|
|
52325
52511
|
},
|
|
52326
52512
|
"verify": {
|
|
52327
52513
|
"type": "function",
|
|
52328
|
-
"arity":
|
|
52514
|
+
"arity": 4
|
|
52329
52515
|
}
|
|
52330
52516
|
}
|
|
52331
52517
|
},
|
|
@@ -52751,6 +52937,10 @@
|
|
|
52751
52937
|
"type": "function",
|
|
52752
52938
|
"arity": 1
|
|
52753
52939
|
},
|
|
52940
|
+
"isExactLoopbackName": {
|
|
52941
|
+
"type": "function",
|
|
52942
|
+
"arity": 1
|
|
52943
|
+
},
|
|
52754
52944
|
"isLinkLocal": {
|
|
52755
52945
|
"type": "function",
|
|
52756
52946
|
"arity": 1
|
|
@@ -52759,6 +52949,10 @@
|
|
|
52759
52949
|
"type": "function",
|
|
52760
52950
|
"arity": 1
|
|
52761
52951
|
},
|
|
52952
|
+
"isLoopbackHost": {
|
|
52953
|
+
"type": "function",
|
|
52954
|
+
"arity": 1
|
|
52955
|
+
},
|
|
52762
52956
|
"isPrivate": {
|
|
52763
52957
|
"type": "function",
|
|
52764
52958
|
"arity": 1
|
|
@@ -53981,6 +54175,14 @@
|
|
|
53981
54175
|
"watcher": {
|
|
53982
54176
|
"type": "object",
|
|
53983
54177
|
"members": {
|
|
54178
|
+
"MAX_IGNORE_PATTERN_LEN": {
|
|
54179
|
+
"type": "primitive",
|
|
54180
|
+
"valueType": "number"
|
|
54181
|
+
},
|
|
54182
|
+
"MAX_IGNORE_STAR_COUNT": {
|
|
54183
|
+
"type": "primitive",
|
|
54184
|
+
"valueType": "number"
|
|
54185
|
+
},
|
|
53984
54186
|
"WatcherError": {
|
|
53985
54187
|
"type": "function",
|
|
53986
54188
|
"arity": 4
|
|
@@ -82,6 +82,35 @@
|
|
|
82
82
|
"saml.authnstatement": "true"
|
|
83
83
|
},
|
|
84
84
|
"defaultClientScopes": ["role_list"]
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"clientId": "https://sp-enc.blamejs-test.example",
|
|
88
|
+
"name": "blamejs SAML SP encrypted (integration test)",
|
|
89
|
+
"description": "SP entityID for the EncryptedAssertion decrypt-interop stage. Keycloak encrypts the assertion CEK to saml.encryption.certificate; the integration test overrides that cert with a runtime-generated one (via the admin API) so it holds the matching private key. The algorithm attributes request AES-GCM + RSA-OAEP-SHA256, which Keycloak >= 26.2 honors; Keycloak 26.0.x ignores them and emits aes128-cbc + rsa-oaep-mgf1p(SHA-1), which the framework refuses by design.",
|
|
90
|
+
"enabled": true,
|
|
91
|
+
"protocol": "saml",
|
|
92
|
+
"publicClient": true,
|
|
93
|
+
"redirectUris": [
|
|
94
|
+
"http://127.0.0.1:18099/saml/acs"
|
|
95
|
+
],
|
|
96
|
+
"frontchannelLogout": false,
|
|
97
|
+
"attributes": {
|
|
98
|
+
"saml.assertion.signature": "true",
|
|
99
|
+
"saml.server.signature": "false",
|
|
100
|
+
"saml.signature.algorithm": "RSA_SHA256",
|
|
101
|
+
"saml.client.signature": "false",
|
|
102
|
+
"saml.encrypt": "true",
|
|
103
|
+
"saml.encryption.certificate": "MIIDJTCCAg2gAwIBAgIUJ7mxaTrHZabJZAzkMg4eMDoFQRcwDQYJKoZIhvcNAQELBQAwIjEgMB4GA1UEAwwXc3AuYmxhbWVqcy10ZXN0LmV4YW1wbGUwHhcNMjYwNzE3MDQ1NjUzWhcNMzYwNzE0MDQ1NjUzWjAiMSAwHgYDVQQDDBdzcC5ibGFtZWpzLXRlc3QuZXhhbXBsZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKm+j361HUDN3Ii1mTVy+zLJosG0NbR1AGbd2HiD8IxdogG4qg6/K5sNQ/qPMDszC596dqPKnIZFCj+xf6GwRxN83Eetbn8dq7BJJjuRrifEDrW7E+xMvYyecKuNccDOzOlQ4fsy2UKjP50XCZyosXUT02I7mm93IKVDy4KWBOizrTXOiD7Mfx/rUTarFObzxrOMBIFOhfeDxg+hRJjN6+LC/lzpbpxQZglkBhUq2gUU3/jTQPdEyCpFJ3gyndUufi7Drxlqp7Taod/jINbL1sHScsHapth1JB8836uOAuXPQ1NAKvLcQEDmd6Y+08N++hkO4PRDFPbGnKwNEzZYDqUCAwEAAaNTMFEwHQYDVR0OBBYEFOaSe3V7aicztXNyr/D67j/bZUvBMB8GA1UdIwQYMBaAFOaSe3V7aicztXNyr/D67j/bZUvBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAEIIw7N99KMxgLDz7ZLesUupzNX+M5iWx9Ip3RVaRzf//nTQQUvGsaFgCeoFzAZ3TsfCtAqWu51pLmnox4bgyC+q1cPfFGjbfieF6VcK1+gnMRAQuDF7TSB98CIkIum+Y2jFXFnrP5nwplW6L00SFWaeqT9x8whNT0QEHbQ05IVeCn+IDUZwNLf+XIZWD3xpfilQ7KBE1USznYH9bqVQljWqPnUphnU2izIgQ/Ggsq9sZSmN1qcFl9QSJVJAmNXaddeQSXNUf7NtLs4OmuXZye66KJWg4W7oHb92sEiZIkKVHTlJSFzzumMToJsgBzvbkIvOy5mTP/JgrbOwTczIu40=",
|
|
104
|
+
"saml.encryption.algorithm": "AES_256_GCM",
|
|
105
|
+
"saml.encryption.keyAlgorithm": "RSA-OAEP",
|
|
106
|
+
"saml.encryption.digestMethod": "SHA-256",
|
|
107
|
+
"saml.encryption.maskGenerationFunction": "MGF1-SHA256",
|
|
108
|
+
"saml.force.post.binding": "true",
|
|
109
|
+
"saml_assertion_consumer_url_post": "http://127.0.0.1:18099/saml/acs",
|
|
110
|
+
"saml_name_id_format": "username",
|
|
111
|
+
"saml.authnstatement": "true"
|
|
112
|
+
},
|
|
113
|
+
"defaultClientScopes": ["role_list"]
|
|
85
114
|
}
|
|
86
115
|
]
|
|
87
116
|
}
|
|
@@ -97,6 +97,7 @@ Every passphrase / webhook secret in the table above is **never** ENV-baked into
|
|
|
97
97
|
- The wiki container persists state in the `wiki-data` named volume — vault key, sealed audit-signing key, sqlite database, audit chain. **Back this up.** Losing it loses the audit chain and admin credentials.
|
|
98
98
|
- Caddy persists ACME state in the `caddy-data` named volume. Deleting it forces a re-issuance from scratch — Let's Encrypt rate limits apply, so don't.
|
|
99
99
|
- All TLS is Caddy's. The wiki container only speaks HTTP on the compose network.
|
|
100
|
+
- Prefer nginx? [`nginx.conf`](./nginx.conf) is an equivalent reference config — same TLS 1.3 floor, `www.`→apex 308 redirect, `X-Forwarded-Proto https` / `X-Forwarded-For`, and HSTS `max-age=63072000; includeSubDomains; preload`. nginx does not issue certificates itself; pair it with certbot for the cert paths it references, and set `WIKI_ADMIN_TRUSTED_PROXIES` to the proxy's CIDR so the wiki trusts the forwarded headers.
|
|
100
101
|
|
|
101
102
|
## Updating to a new version
|
|
102
103
|
|
|
@@ -494,6 +494,37 @@ async function buildApp(opts) {
|
|
|
494
494
|
nonceMw: nonceMw,
|
|
495
495
|
siteUrl: opts.siteUrl || "https://blamejs.com",
|
|
496
496
|
};
|
|
497
|
+
// ---- Age-gated demo route ----
|
|
498
|
+
// Demonstrates b.middleware.ageGate riding the full wired stack
|
|
499
|
+
// (securityHeaders, compression, rate limit). The age is derived
|
|
500
|
+
// from the ?age= query field via Number(): a value that fails to
|
|
501
|
+
// parse yields NaN, which the gate classifies as "unknown" and
|
|
502
|
+
// answers with the child-safety privacy defaults (Cache-Control:
|
|
503
|
+
// private, no-store; Referrer-Policy: no-referrer;
|
|
504
|
+
// X-Privacy-Posture) instead of admitting the request as an
|
|
505
|
+
// adult. consentRequired follows the COPPA threshold (13 and
|
|
506
|
+
// under); requireAge stays null so the route classifies + sets
|
|
507
|
+
// headers without refusing. Registered as a literal path so it
|
|
508
|
+
// wins over the /:group catch-all.
|
|
509
|
+
var ageGateDemo = b.middleware.ageGate({
|
|
510
|
+
getAge: function (req) {
|
|
511
|
+
return Number(req.query && req.query.age);
|
|
512
|
+
},
|
|
513
|
+
consentRequired: 13,
|
|
514
|
+
});
|
|
515
|
+
router.get("/age-check", function (req, res, next) {
|
|
516
|
+
// ageGate publishes its classification on req.locals when the
|
|
517
|
+
// object exists; seed it so the handler below can echo the
|
|
518
|
+
// decision back to the caller.
|
|
519
|
+
if (!req.locals || typeof req.locals !== "object") req.locals = {};
|
|
520
|
+
return next();
|
|
521
|
+
}, ageGateDemo, function (req, res) {
|
|
522
|
+
res.setHeader("Content-Type", "application/json; charset=utf-8");
|
|
523
|
+
res.end(JSON.stringify({
|
|
524
|
+
classification: (req.locals && req.locals.ageGateClassification) || null,
|
|
525
|
+
}));
|
|
526
|
+
});
|
|
527
|
+
|
|
497
528
|
pagesRoute.registerSpecific(router, routeCtx);
|
|
498
529
|
adminRoute.register(router, routeCtx);
|
|
499
530
|
pagesRoute.registerCatchAll(router, routeCtx);
|
|
@@ -88,6 +88,97 @@ function _moduleNs(modTag) {
|
|
|
88
88
|
function _firstSegment(primTag) {
|
|
89
89
|
return _bare(primTag).split(".")[0];
|
|
90
90
|
}
|
|
91
|
+
function _reEscape(s) {
|
|
92
|
+
return String(s).replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // allow:regex-no-length-cap — escapes short in-repo identifiers
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// ---- primitive-without-test (config.testDirs) ----
|
|
96
|
+
//
|
|
97
|
+
// Every @primitive block must be exercised somewhere in the repo's test
|
|
98
|
+
// corpus. "Referenced" is keyed on BOTH the namespace and the method —
|
|
99
|
+
// a bare `.parse(` match alone would false-green half the catalog:
|
|
100
|
+
//
|
|
101
|
+
// 1. the full dotted form `b.<ns>.<method>` appears verbatim, OR
|
|
102
|
+
// 2. the namespace is referenced (`b.<ns>` verbatim, or a require()
|
|
103
|
+
// of the primitive's own lib module) AND the method is invoked
|
|
104
|
+
// (`.<method>(`) — covers handle / instance methods
|
|
105
|
+
// (`var q = b.queue.init(...); q.enqueue(...)`).
|
|
106
|
+
//
|
|
107
|
+
// Static "referenced" only — whether the reference actually EXECUTES is
|
|
108
|
+
// the coverage gate's job (c8), not a static validator's.
|
|
109
|
+
//
|
|
110
|
+
// TEST_REF_ALLOWLIST: the register of primitives the test corpus does
|
|
111
|
+
// not yet reference. Currently empty — every documented @primitive is
|
|
112
|
+
// exercised by a test. Add an entry ONLY with a specific reason coverage
|
|
113
|
+
// is indirect (a runbook-only key, a fixture-dependent path); a new
|
|
114
|
+
// primitive must land with its own test reference, not an entry here.
|
|
115
|
+
var TEST_REF_ALLOWLIST = {
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
function _walkJsFiles(dir, out) {
|
|
119
|
+
var entries;
|
|
120
|
+
try { entries = fs.readdirSync(dir, { withFileTypes: true }); }
|
|
121
|
+
catch (_e) { return out; }
|
|
122
|
+
for (var i = 0; i < entries.length; i += 1) {
|
|
123
|
+
var ent = entries[i];
|
|
124
|
+
var p = path.join(dir, ent.name);
|
|
125
|
+
if (ent.isDirectory()) {
|
|
126
|
+
if (ent.name === "node_modules" || ent.name === ".test-output" || ent.name.indexOf("data") === 0) continue;
|
|
127
|
+
_walkJsFiles(p, out);
|
|
128
|
+
} else if (ent.isFile() && /\.(js|cjs|mjs)$/.test(ent.name)) {
|
|
129
|
+
out.push(p);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return out;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function _readTestCorpus(testDirs) {
|
|
136
|
+
// Per-file contents, not one concatenated blob: the split signal in
|
|
137
|
+
// _testReferenced requires the namespace and the method to co-occur
|
|
138
|
+
// in the SAME test file — corpus-wide matching would count a
|
|
139
|
+
// primitive as covered when one test names the namespace and an
|
|
140
|
+
// unrelated test happens to call the same common method name
|
|
141
|
+
// (`.create(`, `.parse(`).
|
|
142
|
+
var files = [];
|
|
143
|
+
for (var d = 0; d < testDirs.length; d += 1) {
|
|
144
|
+
var paths = _walkJsFiles(testDirs[d], []);
|
|
145
|
+
for (var i = 0; i < paths.length; i += 1) {
|
|
146
|
+
try { files.push(fs.readFileSync(paths[i], "utf8")); }
|
|
147
|
+
catch (_e) { /* drop unreadable */ }
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return { files: files };
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// primBare: the @primitive without the `b.` prefix (e.g.
|
|
154
|
+
// "metrics.snapshot.render"). moduleRel: the primitive's home file
|
|
155
|
+
// relative to lib/ (e.g. "auth/oauth.js") — a require() of that module
|
|
156
|
+
// counts as a namespace reference.
|
|
157
|
+
function _testReferenced(corpus, primBare, moduleRel) {
|
|
158
|
+
var files = corpus.files;
|
|
159
|
+
var full = new RegExp("\\bb\\." + _reEscape(primBare) + "(?![A-Za-z0-9_$])"); // allow:dynamic-regex — built from the in-repo @primitive tag, _reEscape'd; no operator input
|
|
160
|
+
var i;
|
|
161
|
+
for (i = 0; i < files.length; i += 1) {
|
|
162
|
+
if (full.test(files[i])) return true;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
var segs = primBare.split(".");
|
|
166
|
+
if (segs.length < 2) return false; // single-segment: only the verbatim form counts
|
|
167
|
+
var ns = segs.slice(0, -1).join(".");
|
|
168
|
+
var method = segs[segs.length - 1];
|
|
169
|
+
|
|
170
|
+
var nsRef = new RegExp("\\bb\\." + _reEscape(ns) + "(?![A-Za-z0-9_$])"); // allow:dynamic-regex — built from the in-repo @primitive tag, _reEscape'd; no operator input
|
|
171
|
+
var modNoExt = String(moduleRel).replace(/\\/g, "/").replace(/\.js$/, "");
|
|
172
|
+
var modRef = new RegExp("require\\([^)]*[\\\\/]" + _reEscape(modNoExt).replace(/\//g, "[\\\\/]") + "(?:\\.js)?[\"']"); // allow:dynamic-regex — built from the lib-relative file path of the primitive's own module, _reEscape'd; no operator input
|
|
173
|
+
var methodRef = new RegExp("\\." + _reEscape(method) + "\\s*\\("); // allow:dynamic-regex — built from the in-repo @primitive tag's method segment, _reEscape'd; no operator input
|
|
174
|
+
// Namespace (or owning-module require) and method invocation must
|
|
175
|
+
// co-occur in the SAME file — a namespace reference in one test and
|
|
176
|
+
// an unrelated `.create(` in another is not coverage of b.<ns>.create.
|
|
177
|
+
for (i = 0; i < files.length; i += 1) {
|
|
178
|
+
if ((nsRef.test(files[i]) || modRef.test(files[i])) && methodRef.test(files[i])) return true;
|
|
179
|
+
}
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
91
182
|
|
|
92
183
|
// Probe the universe of primitive signatures available for @related
|
|
93
184
|
// cross-reference. Sources: every @primitive block under lib/, plus
|
|
@@ -345,6 +436,14 @@ function validate(config) {
|
|
|
345
436
|
var docs = parser.parseTree(libDir);
|
|
346
437
|
var known = _knownPrimitiveSet(docs, seederIndex, parser);
|
|
347
438
|
|
|
439
|
+
// Optional test-corpus for the primitive-without-test check. When
|
|
440
|
+
// config.testDirs is absent the check silently skips (mirrors
|
|
441
|
+
// optsResolver) — every other check still runs.
|
|
442
|
+
var testCorpus = null;
|
|
443
|
+
if (Array.isArray(config.testDirs) && config.testDirs.length > 0) {
|
|
444
|
+
testCorpus = _readTestCorpus(config.testDirs);
|
|
445
|
+
}
|
|
446
|
+
|
|
348
447
|
var declaredNs = {};
|
|
349
448
|
curationPages.forEach(function (page) {
|
|
350
449
|
(page.namespaces || []).forEach(function (ns) { declaredNs[ns] = page.slug; });
|
|
@@ -493,6 +592,16 @@ function validate(config) {
|
|
|
493
592
|
}
|
|
494
593
|
}
|
|
495
594
|
|
|
595
|
+
if (testCorpus) {
|
|
596
|
+
var testBare = _bare(primTag);
|
|
597
|
+
if (!TEST_REF_ALLOWLIST[testBare] && !_testReferenced(testCorpus, testBare, rel)) {
|
|
598
|
+
findings.push({
|
|
599
|
+
kind: "primitive-without-test", file: rel, primitive: primTag,
|
|
600
|
+
msg: "no test reference — need `b." + testBare + "` verbatim, or the namespace / owning module referenced plus `." + testBare.split(".").pop() + "(` invoked, anywhere in the test corpus. Add a test, or a TEST_REF_ALLOWLIST entry with the reason coverage is indirect.",
|
|
601
|
+
});
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
|
|
496
605
|
var ns = _firstSegment(primTag);
|
|
497
606
|
if (declaredNs[ns]) nsHasPrimitive[ns] = true;
|
|
498
607
|
// Nested-namespace match — declared namespaces like
|