@blamejs/blamejs-shop 0.0.129 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/lib/admin.js +275 -9
  4. package/lib/affiliates.js +4 -3
  5. package/lib/analytics.js +3 -2
  6. package/lib/api-keys.js +1 -1
  7. package/lib/assembly-instructions.js +2 -1
  8. package/lib/auto-replenish.js +4 -3
  9. package/lib/backorder.js +2 -1
  10. package/lib/business-hours.js +8 -1
  11. package/lib/carrier-accounts.js +1 -1
  12. package/lib/carrier-rates.js +1 -1
  13. package/lib/cart-abandonment.js +3 -2
  14. package/lib/cart-bulk-ops.js +2 -1
  15. package/lib/cart-recovery.js +5 -4
  16. package/lib/cart.js +6 -2
  17. package/lib/catalog-drafts.js +1 -1
  18. package/lib/click-and-collect.js +3 -2
  19. package/lib/clickstream.js +4 -3
  20. package/lib/config.js +2 -1
  21. package/lib/cookie-consent.js +2 -1
  22. package/lib/credit-limits.js +2 -1
  23. package/lib/currency-display.js +2 -1
  24. package/lib/customer-activity.js +3 -2
  25. package/lib/customer-impersonation.js +3 -3
  26. package/lib/customer-merge.js +4 -3
  27. package/lib/customer-portal.js +4 -4
  28. package/lib/customer-risk-profile.js +2 -1
  29. package/lib/customer-segments.js +2 -1
  30. package/lib/customer-surveys.js +6 -3
  31. package/lib/delivery-estimate.js +2 -2
  32. package/lib/demand-forecast.js +2 -1
  33. package/lib/discount-analytics.js +2 -2
  34. package/lib/dunning.js +4 -1
  35. package/lib/email-warmup.js +6 -1
  36. package/lib/email.js +1 -8
  37. package/lib/error-log.js +3 -2
  38. package/lib/event-log.js +3 -2
  39. package/lib/fraud-screen.js +3 -1
  40. package/lib/fulfillment-sla.js +3 -1
  41. package/lib/index.js +11 -3
  42. package/lib/inventory-allocations.js +3 -0
  43. package/lib/inventory-snapshots.js +2 -1
  44. package/lib/invoice-renderer.js +2 -1
  45. package/lib/line-gift-wrap.js +6 -1
  46. package/lib/live-chat.js +2 -1
  47. package/lib/loyalty-redemption.js +2 -1
  48. package/lib/newsletter.js +6 -1
  49. package/lib/operator-activity-feed.js +4 -3
  50. package/lib/operator-sessions.js +7 -7
  51. package/lib/order-exchanges.js +1 -0
  52. package/lib/order-timeline.js +2 -1
  53. package/lib/payment-retries.js +2 -1
  54. package/lib/payment.js +5 -4
  55. package/lib/pixel-events.js +6 -5
  56. package/lib/preorder.js +2 -1
  57. package/lib/print-queue.js +2 -1
  58. package/lib/product-compare.js +2 -1
  59. package/lib/product-qa.js +2 -1
  60. package/lib/push-notifications.js +6 -5
  61. package/lib/recently-viewed.js +7 -2
  62. package/lib/recommendations.js +7 -2
  63. package/lib/referral-leaderboard.js +2 -1
  64. package/lib/refund-automation.js +1 -1
  65. package/lib/refund-policy.js +1 -1
  66. package/lib/reorder-reminders.js +2 -1
  67. package/lib/reorder-thresholds.js +2 -1
  68. package/lib/robots-config.js +1 -0
  69. package/lib/sales-reports.js +17 -14
  70. package/lib/sales-tax-filings.js +2 -1
  71. package/lib/save-for-later.js +2 -1
  72. package/lib/search-suggestions.js +1 -1
  73. package/lib/shipping-insurance.js +2 -1
  74. package/lib/shipping-labels.js +3 -2
  75. package/lib/shipping-zones.js +1 -0
  76. package/lib/shrinkage-report.js +9 -8
  77. package/lib/sms-dispatcher.js +6 -5
  78. package/lib/stock-alerts.js +1 -1
  79. package/lib/stock-receipts.js +2 -1
  80. package/lib/store-credit.js +2 -1
  81. package/lib/storefront-forms.js +1 -1
  82. package/lib/storefront.js +93 -112
  83. package/lib/subscription-analytics.js +7 -2
  84. package/lib/subscription-controls.js +9 -8
  85. package/lib/subscription-gifts.js +2 -1
  86. package/lib/subscriptions.js +2 -0
  87. package/lib/support-tickets.js +4 -4
  88. package/lib/tax-cert-renewals.js +2 -1
  89. package/lib/tax-remittance.js +2 -1
  90. package/lib/theme-assets.js +1 -1
  91. package/lib/vendor/MANIFEST.json +2 -2
  92. package/lib/vendor/blamejs/CHANGELOG.md +16 -0
  93. package/lib/vendor/blamejs/README.md +6 -4
  94. package/lib/vendor/blamejs/SECURITY.md +2 -0
  95. package/lib/vendor/blamejs/api-snapshot.json +255 -2
  96. package/lib/vendor/blamejs/index.js +1 -0
  97. package/lib/vendor/blamejs/lib/cose.js +284 -10
  98. package/lib/vendor/blamejs/lib/crypto.js +119 -0
  99. package/lib/vendor/blamejs/lib/did.js +416 -0
  100. package/lib/vendor/blamejs/lib/mdoc.js +122 -0
  101. package/lib/vendor/blamejs/lib/network-dnssec.js +328 -0
  102. package/lib/vendor/blamejs/lib/network.js +1 -0
  103. package/lib/vendor/blamejs/lib/vc.js +231 -33
  104. package/lib/vendor/blamejs/package.json +1 -1
  105. package/lib/vendor/blamejs/release-notes/v0.12.41.json +18 -0
  106. package/lib/vendor/blamejs/release-notes/v0.12.42.json +18 -0
  107. package/lib/vendor/blamejs/release-notes/v0.12.43.json +18 -0
  108. package/lib/vendor/blamejs/release-notes/v0.12.44.json +18 -0
  109. package/lib/vendor/blamejs/release-notes/v0.12.45.json +18 -0
  110. package/lib/vendor/blamejs/release-notes/v0.12.46.json +18 -0
  111. package/lib/vendor/blamejs/release-notes/v0.12.47.json +18 -0
  112. package/lib/vendor/blamejs/release-notes/v0.12.48.json +22 -0
  113. package/lib/vendor/blamejs/test/layer-0-primitives/codebase-patterns.test.js +47 -2
  114. package/lib/vendor/blamejs/test/layer-0-primitives/cose.test.js +101 -2
  115. package/lib/vendor/blamejs/test/layer-0-primitives/crypto-self-test.test.js +74 -0
  116. package/lib/vendor/blamejs/test/layer-0-primitives/did.test.js +176 -0
  117. package/lib/vendor/blamejs/test/layer-0-primitives/dnssec.test.js +130 -0
  118. package/lib/vendor/blamejs/test/layer-0-primitives/mdoc.test.js +52 -0
  119. package/lib/vendor/blamejs/test/layer-0-primitives/vc.test.js +63 -0
  120. package/lib/vendor-invoices.js +1 -1
  121. package/lib/webhook-receiver.js +8 -2
  122. package/lib/webhook-subscriptions.js +1 -1
  123. package/lib/webhooks.js +6 -5
  124. package/lib/winback-campaigns.js +2 -1
  125. package/lib/wishlist-alerts.js +2 -1
  126. package/lib/wishlist-digest.js +2 -1
  127. package/package.json +1 -1
@@ -92,6 +92,7 @@ The framework bundles the surface a typical Node app reaches for. Every primitiv
92
92
  ### Crypto
93
93
 
94
94
  - **At-rest envelope** — envelope-versioned PQC (ML-KEM-1024 + P-384 hybrid, XChaCha20-Poly1305, SHAKE256); vault sealing (`b.crypto`, `b.vault`)
95
+ - **Power-on self-test** — `b.crypto.selfTest()` runs FIPS 140-3-style integrity checks: NIST FIPS 202 known-answer tests (SHA3-256/512, SHAKE256), AEAD round-trip + tamper-detect, and ML-KEM-1024 / ML-DSA-87 / SLH-DSA-SHAKE-256f pairwise-consistency + negative tests; fails closed (throws) on any mismatch
95
96
  - **Field-level + crypto-shred** — `b.cryptoField.eraseRow`; per-column data residency tagging + per-row keys (`K_row = HKDF(K_table, rowId)`) so erasing the per-row key makes WAL / replica residuals undecryptable (`b.cryptoField.declareColumnResidency`, `b.cryptoField.declarePerRowKey`)
96
97
  - **AAD-bound sealed columns** — AEAD tag tied to `(table, rowId, column, schemaVersion)`; copy-paste between rows or schema-version replay surfaces as refused decrypt (`b.vault.aad`)
97
98
  - **Signed webhooks + API encryption** — SLH-DSA-SHAKE-256f default; ML-DSA-65 opt-in; ECIES API encryption (`b.webhook`, `b.crypto`)
@@ -119,20 +120,21 @@ The framework bundles the surface a typical Node app reaches for. Every primitiv
119
120
  - In-process CIDR fence (`b.middleware.networkAllowlist`)
120
121
  - `Cache-Control: no-store` on every 401 from `requireAuth` / `requireAal` / `requireStepUp` per RFC 9111 §5.2.2.5
121
122
  - **Outbound HTTP client** — HTTP/1.1 + HTTP/2 with SSRF gate (cloud-metadata IPs hard-denied; private / loopback / link-local overridable per call); scheme + userinfo + per-host destination allowlist; redirects, multipart, interceptors, progress, encrypted cookie jar (`b.httpClient`, `b.ssrfGuard`, `b.safeUrl`)
122
- - **Network configurability (`b.network`)** — env-driven NTP / NTS (RFC 8915), IPv4/IPv6 NTP, DNS with IPv6 / DoH / DoT (private-CA pinning) / cache / lookup timeout; outbound HTTP proxy (`HTTP_PROXY` / `HTTPS_PROXY` / `NO_PROXY`); runtime DPI trust-store CA additions; application-level heartbeats; TCP socket defaults
123
+ - **Network configurability (`b.network`)** — env-driven NTP / NTS (RFC 8915), IPv4/IPv6 NTP, DNS with IPv6 / DoH / DoT (private-CA pinning) / cache / lookup timeout; local DNSSEC signature verification (RFC 4035 — `b.network.dns.dnssec.verifyRrset` over a canonicalised RRset against RSA / ECDSA P-256·P-384 / Ed25519 DNSKEYs, plus DS-digest + key-tag) so a resolver client can verify an answer instead of trusting the upstream AD bit; outbound HTTP proxy (`HTTP_PROXY` / `HTTPS_PROXY` / `NO_PROXY`); runtime DPI trust-store CA additions; application-level heartbeats; TCP socket defaults
123
124
  - **Error pages** — operator-rendered, no app-frame leakage (`b.errorPage`)
124
125
  ### Defensive parsers
125
126
 
126
127
  - **JSON / SQL / schema** — `b.safeJson` (with `maxKeys` cap defending CVE-2026-21717 V8 HashDoS), `b.safeBuffer`, `b.safeSql`, `b.safeSchema`
127
128
  - **URL + path** — `b.safeUrl` (IDN mixed-script / homograph refuse); `b.safeJsonPath` (refuses filter `?(...)`, deep-scan `$..`, script-shape `(@.x)` for safe Postgres JSONB ops)
128
129
  - **Binary codec** — `b.cbor` bounded deterministic CBOR (RFC 8949 §4.2): depth/size caps, indefinite-length + reserved-info + tag + duplicate-key refusal, `requireDeterministic` canonical-form check; the in-tree substrate under COSE / CWT / SCITT / WebAuthn attestation
129
- - **COSE signing + encryption** — `b.cose` COSE_Sign1 sign/verify + COSE_Encrypt0 (RFC 9052) over `b.cbor`: classical ES256/384/512 + EdDSA (final COSE ids, interoperable today) plus ML-DSA-87 (PQC-forward, draft id); bounded + alg-allowlisted + crit-bypass-checked verification; single-recipient AEAD (ChaCha20/Poly1305 default, AES-GCM opt-in) with Enc_structure-bound AAD; the signed-statement substrate under SCITT / CWT / C2PA
130
+ - **COSE messages** — `b.cose` the full RFC 9052 message-type set over `b.cbor`: COSE_Sign1 sign/verify (attached or detached payload), COSE_Encrypt0 single-recipient AEAD, COSE_Mac0 shared-key HMAC (mac0/macVerify0), plus `importKey` (COSE_Key → KeyObject). Signatures use classical ES256/384/512 + EdDSA (final COSE ids, interoperable today) plus ML-DSA-87 (PQC-forward, draft id); bounded + alg-allowlisted + crit-bypass-checked verification; AEAD ChaCha20/Poly1305 default (AES-GCM opt-in); the signed-statement substrate under SCITT / CWT / mdoc / C2PA
130
131
  - **CBOR Web Token** — `b.cwt` CWT sign/verify (RFC 8392) over `b.cose`: standard-claim mapping (iss/sub/aud/exp/nbf/iat/cti) + `exp`/`nbf` clock-skew enforcement + `iss`/`aud` matching; the CBOR-native JWT for constrained / IoT / FIDO / verifiable-credential contexts
131
132
  - **Entity Attestation Token** — `b.eat` EAT sign/verify (RFC 9711) over `b.cwt`: device + software attestation claims (ueid / oemid / hwmodel / measurements / submods) with verifier-nonce freshness binding, `dbgstat` debug-status policy, and `eat_profile` pinning
132
133
  - **SCITT signed statements** — `b.scitt` sign/verify a signed, attributable claim about an artifact (signed SBOM, build attestation, release approval) over `b.cose`: the issuer + subject bind in the integrity-protected CWT_Claims header (RFC 9597); verification refuses any statement missing the iss/sub binding. The issuer side, on finalized RFCs; the transparency receipt (COSE Receipts draft) opts in on publication
133
134
  - **Trusted timestamping** — `b.tsa` RFC 3161 timestamp client: `buildRequest` a TimeStampReq, `parseResponse`, and `verifyToken` against your data — the message imprint, sent nonce, critical/sole `id-kp-timeStamping` EKU, and CMS signature are all checked, with optional certificate-chain verification. Timestamp a release artifact, audit checkpoint, or signed statement against any RFC 3161 TSA. Composes `b.cms` + the in-tree ASN.1 DER codec
134
- - **Verifiable Credentials** — `b.vc` W3C Verifiable Credentials Data Model 2.0 (VC-JOSE-COSE): `issue` / `verify` a signed credential as a compact JWS (`vc+jwt`, ES256/384/512 + EdDSA) or a COSE_Sign1 (`vc+cose`, + ML-DSA-87) over `b.cose`. VCDM structural + `validFrom`/`validUntil` checks; the JOSE `none` algorithm is always refused. The W3C model, distinct from the IETF SD-JWT VC at `b.auth.sdJwtVc`
135
- - **Mobile credentials (mDL)** — `b.mdoc` ISO/IEC 18013-5 issuer-data verification: `verifyIssuerSigned` checks the COSE_Sign1 IssuerAuth (issuer cert from the `x5chain` header), the Mobile Security Object validity window, and every disclosed element's digest against the MSO `valueDigests` (the selective-disclosure integrity check), with optional issuer-chain verification. The ISO credential ecosystem alongside `b.vc` and `b.auth.sdJwtVc`. Composes `b.cose` + `b.cbor`
135
+ - **Verifiable Credentials** — `b.vc` W3C Verifiable Credentials Data Model 2.0 (VC-JOSE-COSE): `issue` / `verify` a signed credential, and `present` / `verifyPresentation` a holder-signed Verifiable Presentation wrapping credentials (with `nonce`/`audience` holder-binding) — as a compact JWS (`vc+jwt` / `vp+jwt`, ES256/384/512 + EdDSA) or a COSE_Sign1 (`vc+cose` / `vp+cose`, + ML-DSA-87) over `b.cose`. VCDM structural + `validFrom`/`validUntil` checks; the JOSE `none` algorithm is always refused. The W3C model, distinct from the IETF SD-JWT VC at `b.auth.sdJwtVc`
136
+ - **Mobile credentials (mDL)** — `b.mdoc` ISO/IEC 18013-5 verification: `verifyIssuerSigned` checks the COSE_Sign1 IssuerAuth (issuer cert from the `x5chain` header), the MSO validity window, and every disclosed element's digest against the MSO `valueDigests` (selective-disclosure integrity), with optional issuer-chain verification; `verifyDeviceAuth` proves holder binding (§9.1.3 signature variant) — the device COSE_Sign1 over the `DeviceAuthentication` structure with the MSO device key + protocol `sessionTranscript`. The ISO credential ecosystem alongside `b.vc` and `b.auth.sdJwtVc`. Composes `b.cose` + `b.cbor`
137
+ - **Decentralized Identifiers** — `b.did` W3C DID resolution (DID Core 1.0): `resolve` a `did:key` / `did:jwk` (deterministic, offline — Ed25519 / P-256 / P-384 / secp256k1) or `did:web` (operator-fetched document) to `node:crypto` verification keys, so a credential's issuer DID resolves to the key that verifies it (`b.vc` / `b.mdoc` / `b.scitt`). `keyToDid` names a key as a `did:key` or `did:jwk`; document/JWK keys are kty/crv-allowlisted before import
136
138
  - **Document parsers** — `b.parsers` (XML / TOML / YAML / .env); `b.config` (schema-validated env)
137
139
  - **File-type detection** — `b.fileType` magic-byte content classification with deny-on-upload categories (image / document / archive / executable / etc.)
138
140
  ### Content-safety gates
@@ -278,6 +278,7 @@ This is the minimum-viable security posture for a production deployment. The fra
278
278
  - [ ] Confirm `vault: { mode: "wrapped" }` in the app's config (not `"plaintext"`)
279
279
  - [ ] Store the passphrase in a secret manager (1Password / Vault / AWS Secrets Manager / sops) — never in git, never in shell history
280
280
  - [ ] Rotate the vault passphrase quarterly: `blamejs vault rotate`
281
+ - [ ] In FIPS / regulated deployments, run `b.crypto.selfTest()` at start-up as a power-on integrity gate — it KATs SHA3/SHAKE against NIST FIPS 202 vectors and pairwise-tests ML-KEM-1024 / ML-DSA-87 / SLH-DSA-SHAKE-256f, throwing `crypto/self-test-failed` (fail closed) if the crypto stack is broken
281
282
 
282
283
  **Audit chain**
283
284
  - [ ] Run `blamejs audit verify-chain --db <path>` weekly via cron — walks the live audit chain end-to-end and reports tampering with `breakAt` / `breakRowId` / expected-vs-actual prevHash
@@ -350,6 +351,7 @@ This is the minimum-viable security posture for a production deployment. The fra
350
351
  - [ ] At boot, before any outbound socket opens: call `b.network.bootFromEnv({ env: process.env, audit: b.audit })` so operator-supplied NTP / DNS / proxy / DPI-trust / TCP socket settings (`BLAMEJS_NTP_*`, `BLAMEJS_DNS_*`, `HTTP_PROXY` / `HTTPS_PROXY` / `NO_PROXY`, `BLAMEJS_EXTRA_CA_CERTS`, `BLAMEJS_SOCKET_*`) apply uniformly
351
352
  - [ ] If the deployment sits behind a deep-packet-inspection proxy with its own re-signing CA: install the CA via `b.network.tls.addCa("/path/to/corp-ca.pem", { label: "corp-mitm" })` and pass `allowDpiTrust: true` to `b.security.assertProduction` — every CA addition audits with subject + fingerprint so a forensic review can reconstruct the trust path
352
353
  - [ ] For authenticated time (HIPAA / PCI / FIPS shops): use `b.network.ntp.nts.query({ host: ntsKeServer })` (RFC 8915) instead of plain SNTP; set `BLAMEJS_NTS_REQUIRE=1` to fail closed on negotiation failure
354
+ - [ ] When a DNS answer drives a trust decision (DANE / TLSA pinning, SSHFP, CAA enforcement, OPENPGPKEY lookup) and the upstream resolver isn't itself trusted: verify the answer's DNSSEC signature with `b.network.dns.dnssec.verifyRrset(...)` rather than trusting the resolver's AD bit — an on-path or compromised resolver can set AD on a forged answer, but cannot forge the RRSIG. Validate the DNSKEY against the parent's DS with `b.network.dns.dnssec.verifyDs(...)` up the chain to a trust anchor you pin
353
355
  - [ ] At boot in production: call `await b.security.assertProduction({ vault: "wrapped", dbAtRest: "encrypted", auditSigning: "wrapped", ntpStrict: true, requireEnv: ["BLAMEJS_VAULT_PASSPHRASE"], dataDir: "./data" })` to refuse to start on weak posture instead of warning
354
356
  - [ ] At boot: call `await b.configDrift.create({ dataDir, audit }).checkpoint({ allowedOrigins, csp, vaultMode, ... })` so the next boot detects + audits any silent runtime config change
355
357
  - [ ] At boot, before any listener opens: call `b.configDrift.verifyVendorIntegrity({ manifestPath: "./lib/vendor/MANIFEST.json", audit: b.audit })` so a tampered `lib/vendor/*.cjs` artifact aborts start instead of running with a swapped crypto bundle
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 1,
3
- "frameworkVersion": "0.12.40",
4
- "createdAt": "2026-05-25T03:52:08.305Z",
3
+ "frameworkVersion": "0.12.48",
4
+ "createdAt": "2026-05-25T11:29:28.593Z",
5
5
  "exports": {
6
6
  "a2a": {
7
7
  "type": "object",
@@ -13501,6 +13501,10 @@
13501
13501
  "type": "primitive",
13502
13502
  "valueType": "number"
13503
13503
  },
13504
+ "COSE_MAC0_TAG": {
13505
+ "type": "primitive",
13506
+ "valueType": "number"
13507
+ },
13504
13508
  "COSE_SIGN1_TAG": {
13505
13509
  "type": "primitive",
13506
13510
  "valueType": "number"
@@ -13509,6 +13513,23 @@
13509
13513
  "type": "function",
13510
13514
  "arity": 4
13511
13515
  },
13516
+ "MAC_ALGORITHMS": {
13517
+ "type": "object",
13518
+ "members": {
13519
+ "HMAC-256/256": {
13520
+ "type": "primitive",
13521
+ "valueType": "number"
13522
+ },
13523
+ "HMAC-384/384": {
13524
+ "type": "primitive",
13525
+ "valueType": "number"
13526
+ },
13527
+ "HMAC-512/512": {
13528
+ "type": "primitive",
13529
+ "valueType": "number"
13530
+ }
13531
+ }
13532
+ },
13512
13533
  "decrypt0": {
13513
13534
  "type": "function",
13514
13535
  "arity": 2
@@ -13517,6 +13538,18 @@
13517
13538
  "type": "function",
13518
13539
  "arity": 2
13519
13540
  },
13541
+ "importKey": {
13542
+ "type": "function",
13543
+ "arity": 1
13544
+ },
13545
+ "mac0": {
13546
+ "type": "function",
13547
+ "arity": 2
13548
+ },
13549
+ "macVerify0": {
13550
+ "type": "function",
13551
+ "arity": 2
13552
+ },
13520
13553
  "sign": {
13521
13554
  "type": "function",
13522
13555
  "arity": 2
@@ -13805,6 +13838,10 @@
13805
13838
  "type": "function",
13806
13839
  "arity": 2
13807
13840
  },
13841
+ "selfTest": {
13842
+ "type": "function",
13843
+ "arity": 1
13844
+ },
13808
13845
  "sha3Hash": {
13809
13846
  "type": "function",
13810
13847
  "arity": 1
@@ -14411,6 +14448,96 @@
14411
14448
  }
14412
14449
  }
14413
14450
  },
14451
+ "did": {
14452
+ "type": "object",
14453
+ "members": {
14454
+ "DidError": {
14455
+ "type": "function",
14456
+ "arity": 4
14457
+ },
14458
+ "MULTICODEC": {
14459
+ "type": "object",
14460
+ "members": {
14461
+ "231": {
14462
+ "type": "object",
14463
+ "members": {
14464
+ "curveOid": {
14465
+ "type": "primitive",
14466
+ "valueType": "string"
14467
+ },
14468
+ "kind": {
14469
+ "type": "primitive",
14470
+ "valueType": "string"
14471
+ },
14472
+ "name": {
14473
+ "type": "primitive",
14474
+ "valueType": "string"
14475
+ }
14476
+ }
14477
+ },
14478
+ "237": {
14479
+ "type": "object",
14480
+ "members": {
14481
+ "kind": {
14482
+ "type": "primitive",
14483
+ "valueType": "string"
14484
+ },
14485
+ "name": {
14486
+ "type": "primitive",
14487
+ "valueType": "string"
14488
+ }
14489
+ }
14490
+ },
14491
+ "4608": {
14492
+ "type": "object",
14493
+ "members": {
14494
+ "curveOid": {
14495
+ "type": "primitive",
14496
+ "valueType": "string"
14497
+ },
14498
+ "kind": {
14499
+ "type": "primitive",
14500
+ "valueType": "string"
14501
+ },
14502
+ "name": {
14503
+ "type": "primitive",
14504
+ "valueType": "string"
14505
+ }
14506
+ }
14507
+ },
14508
+ "4609": {
14509
+ "type": "object",
14510
+ "members": {
14511
+ "curveOid": {
14512
+ "type": "primitive",
14513
+ "valueType": "string"
14514
+ },
14515
+ "kind": {
14516
+ "type": "primitive",
14517
+ "valueType": "string"
14518
+ },
14519
+ "name": {
14520
+ "type": "primitive",
14521
+ "valueType": "string"
14522
+ }
14523
+ }
14524
+ }
14525
+ }
14526
+ },
14527
+ "keyToDid": {
14528
+ "type": "function",
14529
+ "arity": 2
14530
+ },
14531
+ "parse": {
14532
+ "type": "function",
14533
+ "arity": 1
14534
+ },
14535
+ "resolve": {
14536
+ "type": "function",
14537
+ "arity": 2
14538
+ }
14539
+ }
14540
+ },
14414
14541
  "dora": {
14415
14542
  "type": "object",
14416
14543
  "members": {
@@ -40343,6 +40470,10 @@
40343
40470
  "type": "function",
40344
40471
  "arity": 4
40345
40472
  },
40473
+ "verifyDeviceAuth": {
40474
+ "type": "function",
40475
+ "arity": 1
40476
+ },
40346
40477
  "verifyIssuerSigned": {
40347
40478
  "type": "function",
40348
40479
  "arity": 2
@@ -41447,6 +41578,120 @@
41447
41578
  "type": "function",
41448
41579
  "arity": 1
41449
41580
  },
41581
+ "dnssec": {
41582
+ "type": "object",
41583
+ "members": {
41584
+ "ALGORITHMS": {
41585
+ "type": "object",
41586
+ "members": {
41587
+ "8": {
41588
+ "type": "object",
41589
+ "members": {
41590
+ "hash": {
41591
+ "type": "primitive",
41592
+ "valueType": "string"
41593
+ },
41594
+ "kind": {
41595
+ "type": "primitive",
41596
+ "valueType": "string"
41597
+ },
41598
+ "name": {
41599
+ "type": "primitive",
41600
+ "valueType": "string"
41601
+ }
41602
+ }
41603
+ },
41604
+ "13": {
41605
+ "type": "object",
41606
+ "members": {
41607
+ "coord": {
41608
+ "type": "primitive",
41609
+ "valueType": "number"
41610
+ },
41611
+ "crv": {
41612
+ "type": "primitive",
41613
+ "valueType": "string"
41614
+ },
41615
+ "hash": {
41616
+ "type": "primitive",
41617
+ "valueType": "string"
41618
+ },
41619
+ "kind": {
41620
+ "type": "primitive",
41621
+ "valueType": "string"
41622
+ },
41623
+ "name": {
41624
+ "type": "primitive",
41625
+ "valueType": "string"
41626
+ }
41627
+ }
41628
+ },
41629
+ "14": {
41630
+ "type": "object",
41631
+ "members": {
41632
+ "coord": {
41633
+ "type": "primitive",
41634
+ "valueType": "number"
41635
+ },
41636
+ "crv": {
41637
+ "type": "primitive",
41638
+ "valueType": "string"
41639
+ },
41640
+ "hash": {
41641
+ "type": "primitive",
41642
+ "valueType": "string"
41643
+ },
41644
+ "kind": {
41645
+ "type": "primitive",
41646
+ "valueType": "string"
41647
+ },
41648
+ "name": {
41649
+ "type": "primitive",
41650
+ "valueType": "string"
41651
+ }
41652
+ }
41653
+ },
41654
+ "15": {
41655
+ "type": "object",
41656
+ "members": {
41657
+ "crv": {
41658
+ "type": "primitive",
41659
+ "valueType": "string"
41660
+ },
41661
+ "hash": {
41662
+ "type": "primitive",
41663
+ "valueType": "null"
41664
+ },
41665
+ "kind": {
41666
+ "type": "primitive",
41667
+ "valueType": "string"
41668
+ },
41669
+ "name": {
41670
+ "type": "primitive",
41671
+ "valueType": "string"
41672
+ }
41673
+ }
41674
+ }
41675
+ }
41676
+ },
41677
+ "DnssecError": {
41678
+ "type": "function",
41679
+ "arity": 4
41680
+ },
41681
+ "keyTag": {
41682
+ "type": "function",
41683
+ "arity": 1
41684
+ },
41685
+ "verifyDs": {
41686
+ "type": "function",
41687
+ "arity": 1
41688
+ },
41689
+ "verifyRrset": {
41690
+ "type": "function",
41691
+ "arity": 1
41692
+ }
41693
+ }
41694
+ },
41450
41695
  "getServers": {
41451
41696
  "type": "function",
41452
41697
  "arity": 0
@@ -49131,9 +49376,17 @@
49131
49376
  "type": "function",
49132
49377
  "arity": 2
49133
49378
  },
49379
+ "present": {
49380
+ "type": "function",
49381
+ "arity": 1
49382
+ },
49134
49383
  "verify": {
49135
49384
  "type": "function",
49136
49385
  "arity": 2
49386
+ },
49387
+ "verifyPresentation": {
49388
+ "type": "function",
49389
+ "arity": 2
49137
49390
  }
49138
49391
  }
49139
49392
  },
@@ -463,6 +463,7 @@ module.exports = {
463
463
  tsa: require("./lib/tsa"),
464
464
  vc: require("./lib/vc"),
465
465
  mdoc: require("./lib/mdoc"),
466
+ did: require("./lib/did"),
466
467
  queue: queue,
467
468
  logStream: logStream,
468
469
  redact: redact,