@cross-deck/node 1.10.0 → 1.11.0

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/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- export { A as AliasIdentityInput, a as AliasResult, b as AuditDecision, c as AuditEntry, B as BlockVerdict, d as Breadcrumb, e as BreadcrumbCategory, f as BreadcrumbLevel, C as CROSSDECK_API_VERSION, g as CapturedError, h as Contract, i as ContractAppliesTo, j as ContractFailureInput, k as ContractPillar, l as ContractStatus, m as ContractTestRef, n as CrossdeckAuthenticationError, o as CrossdeckConfigurationError, p as CrossdeckContracts, q as CrossdeckError, r as CrossdeckErrorPayload, s as CrossdeckErrorType, t as CrossdeckInternalError, u as CrossdeckNetworkError, v as CrossdeckPermissionError, w as CrossdeckRateLimitError, x as CrossdeckServer, y as CrossdeckServerOptions, z as CrossdeckValidationError, D as DEFAULT_BASE_URL, E as DEFAULT_TIMEOUT_MS, F as Diagnostics, G as EntitlementCacheOptions, H as EntitlementMutationResult, I as EntitlementStore, J as EntitlementsListResponse, K as EntitlementsListener, L as Environment, M as ErrorCaptureConfig, N as ErrorLevel, O as EventProperties, P as ForgetResult, Q as GrantDuration, R as GrantEntitlementInput, S as GroupMembership, T as HeartbeatResponse, U as HttpRequestInfo, V as HttpResponseInfo, W as HttpRetriesConfig, X as IdentifyOptions, Y as IdentityHints, Z as IngestOptions, _ as IngestResponse, $ as OwnerStatusInput, a0 as PublicEntitlement, a1 as PurchaseResult, a2 as RequestOptions, a3 as ResolveInput, a4 as ResolveResult, a5 as RevokeEntitlementInput, a6 as RuntimeHost, a7 as RuntimeInfo, a8 as ServerEvent, a9 as StackFrame, aa as StoredEntitlements, ab as SyncPurchaseInput, ac as makeCrossdeckError } from './crossdeck-server-C4nWPQzH.mjs';
1
+ export { A as AliasIdentityInput, a as AliasResult, b as AuditDecision, c as AuditEntry, B as BlockVerdict, d as Breadcrumb, e as BreadcrumbCategory, f as BreadcrumbLevel, C as CROSSDECK_API_VERSION, g as CapturedError, h as Contract, i as ContractAppliesTo, j as ContractFailureInput, k as ContractPillar, l as ContractStatus, m as ContractTestRef, n as CrossdeckAuthenticationError, o as CrossdeckConfigurationError, p as CrossdeckContracts, q as CrossdeckError, r as CrossdeckErrorPayload, s as CrossdeckErrorType, t as CrossdeckInternalError, u as CrossdeckNetworkError, v as CrossdeckPermissionError, w as CrossdeckRateLimitError, x as CrossdeckServer, y as CrossdeckServerOptions, z as CrossdeckValidationError, D as DEFAULT_BASE_URL, E as DEFAULT_TIMEOUT_MS, F as Diagnostics, G as EntitlementCacheOptions, H as EntitlementMutationResult, I as EntitlementStore, J as EntitlementsListResponse, K as EntitlementsListener, L as Environment, M as ErrorCaptureConfig, N as ErrorLevel, O as EventProperties, P as ForgetResult, Q as GateInput, R as GateVerdict, S as GrantDuration, T as GrantEntitlementInput, U as GroupMembership, V as HeartbeatResponse, W as HttpRequestInfo, X as HttpResponseInfo, Y as HttpRetriesConfig, Z as IdentifyOptions, _ as IdentityHints, $ as IngestOptions, a0 as IngestResponse, a1 as OwnerStatusInput, a2 as PublicEntitlement, a3 as PurchaseResult, a4 as RequestOptions, a5 as ResolveInput, a6 as ResolveResult, a7 as RevokeEntitlementInput, a8 as RuntimeHost, a9 as RuntimeInfo, aa as ServerEvent, ab as StackFrame, ac as StoredEntitlements, ad as SyncPurchaseInput, ae as makeCrossdeckError } from './crossdeck-server-DAQX_7rm.mjs';
2
2
  import 'node:events';
3
3
 
4
4
  /**
@@ -17,7 +17,7 @@ import 'node:events';
17
17
  *
18
18
  * Do NOT edit by hand — `node scripts/sync-sdk-versions.mjs`.
19
19
  */
20
- declare const SDK_VERSION = "1.10.0";
20
+ declare const SDK_VERSION = "1.11.0";
21
21
  declare const SDK_NAME = "@cross-deck/node";
22
22
 
23
23
  /**
@@ -501,7 +501,7 @@ declare function scrubPiiFromProperties(properties: Record<string, unknown>): Re
501
501
  * - `sdk.no_durable_store`
502
502
  * - `sdk.super_property_registered`
503
503
  */
504
- type DebugSignal = "sdk.configured" | "sdk.first_event_sent" | "sdk.invalid_key" | "sdk.no_identity" | "sdk.entitlement_cache_used" | "sdk.entitlement_cache_warm" | "sdk.entitlement_cache_stale" | "sdk.entitlement_store_recovered" | "sdk.no_durable_store" | "sdk.purchase_evidence_sent" | "sdk.environment_mismatch" | "sdk.sensitive_property_warning" | "sdk.property_coerced" | "sdk.flush_retry_scheduled" | "sdk.flush_permanent_failure" | "sdk.parked" | "sdk.flush_on_exit_started" | "sdk.flush_on_exit_completed" | "sdk.webhook_verified" | "sdk.runtime_detected" | "sdk.super_property_registered" | "sdk.boot_heartbeat_failed" | "sdk.resolve_missing_identity" | "sdk.resolve_failed" | "sdk.owner_status_missing_identity" | "sdk.owner_status_failed";
504
+ type DebugSignal = "sdk.configured" | "sdk.first_event_sent" | "sdk.invalid_key" | "sdk.no_identity" | "sdk.entitlement_cache_used" | "sdk.entitlement_cache_warm" | "sdk.entitlement_cache_stale" | "sdk.entitlement_store_recovered" | "sdk.no_durable_store" | "sdk.purchase_evidence_sent" | "sdk.environment_mismatch" | "sdk.sensitive_property_warning" | "sdk.property_coerced" | "sdk.flush_retry_scheduled" | "sdk.flush_permanent_failure" | "sdk.parked" | "sdk.flush_on_exit_started" | "sdk.flush_on_exit_completed" | "sdk.webhook_verified" | "sdk.runtime_detected" | "sdk.super_property_registered" | "sdk.boot_heartbeat_failed" | "sdk.resolve_missing_identity" | "sdk.resolve_failed" | "sdk.owner_status_missing_identity" | "sdk.owner_status_failed" | "sdk.gate_missing_input" | "sdk.gate_failed";
505
505
  interface DebugContext {
506
506
  [key: string]: unknown;
507
507
  }
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { A as AliasIdentityInput, a as AliasResult, b as AuditDecision, c as AuditEntry, B as BlockVerdict, d as Breadcrumb, e as BreadcrumbCategory, f as BreadcrumbLevel, C as CROSSDECK_API_VERSION, g as CapturedError, h as Contract, i as ContractAppliesTo, j as ContractFailureInput, k as ContractPillar, l as ContractStatus, m as ContractTestRef, n as CrossdeckAuthenticationError, o as CrossdeckConfigurationError, p as CrossdeckContracts, q as CrossdeckError, r as CrossdeckErrorPayload, s as CrossdeckErrorType, t as CrossdeckInternalError, u as CrossdeckNetworkError, v as CrossdeckPermissionError, w as CrossdeckRateLimitError, x as CrossdeckServer, y as CrossdeckServerOptions, z as CrossdeckValidationError, D as DEFAULT_BASE_URL, E as DEFAULT_TIMEOUT_MS, F as Diagnostics, G as EntitlementCacheOptions, H as EntitlementMutationResult, I as EntitlementStore, J as EntitlementsListResponse, K as EntitlementsListener, L as Environment, M as ErrorCaptureConfig, N as ErrorLevel, O as EventProperties, P as ForgetResult, Q as GrantDuration, R as GrantEntitlementInput, S as GroupMembership, T as HeartbeatResponse, U as HttpRequestInfo, V as HttpResponseInfo, W as HttpRetriesConfig, X as IdentifyOptions, Y as IdentityHints, Z as IngestOptions, _ as IngestResponse, $ as OwnerStatusInput, a0 as PublicEntitlement, a1 as PurchaseResult, a2 as RequestOptions, a3 as ResolveInput, a4 as ResolveResult, a5 as RevokeEntitlementInput, a6 as RuntimeHost, a7 as RuntimeInfo, a8 as ServerEvent, a9 as StackFrame, aa as StoredEntitlements, ab as SyncPurchaseInput, ac as makeCrossdeckError } from './crossdeck-server-C4nWPQzH.js';
1
+ export { A as AliasIdentityInput, a as AliasResult, b as AuditDecision, c as AuditEntry, B as BlockVerdict, d as Breadcrumb, e as BreadcrumbCategory, f as BreadcrumbLevel, C as CROSSDECK_API_VERSION, g as CapturedError, h as Contract, i as ContractAppliesTo, j as ContractFailureInput, k as ContractPillar, l as ContractStatus, m as ContractTestRef, n as CrossdeckAuthenticationError, o as CrossdeckConfigurationError, p as CrossdeckContracts, q as CrossdeckError, r as CrossdeckErrorPayload, s as CrossdeckErrorType, t as CrossdeckInternalError, u as CrossdeckNetworkError, v as CrossdeckPermissionError, w as CrossdeckRateLimitError, x as CrossdeckServer, y as CrossdeckServerOptions, z as CrossdeckValidationError, D as DEFAULT_BASE_URL, E as DEFAULT_TIMEOUT_MS, F as Diagnostics, G as EntitlementCacheOptions, H as EntitlementMutationResult, I as EntitlementStore, J as EntitlementsListResponse, K as EntitlementsListener, L as Environment, M as ErrorCaptureConfig, N as ErrorLevel, O as EventProperties, P as ForgetResult, Q as GateInput, R as GateVerdict, S as GrantDuration, T as GrantEntitlementInput, U as GroupMembership, V as HeartbeatResponse, W as HttpRequestInfo, X as HttpResponseInfo, Y as HttpRetriesConfig, Z as IdentifyOptions, _ as IdentityHints, $ as IngestOptions, a0 as IngestResponse, a1 as OwnerStatusInput, a2 as PublicEntitlement, a3 as PurchaseResult, a4 as RequestOptions, a5 as ResolveInput, a6 as ResolveResult, a7 as RevokeEntitlementInput, a8 as RuntimeHost, a9 as RuntimeInfo, aa as ServerEvent, ab as StackFrame, ac as StoredEntitlements, ad as SyncPurchaseInput, ae as makeCrossdeckError } from './crossdeck-server-DAQX_7rm.js';
2
2
  import 'node:events';
3
3
 
4
4
  /**
@@ -17,7 +17,7 @@ import 'node:events';
17
17
  *
18
18
  * Do NOT edit by hand — `node scripts/sync-sdk-versions.mjs`.
19
19
  */
20
- declare const SDK_VERSION = "1.10.0";
20
+ declare const SDK_VERSION = "1.11.0";
21
21
  declare const SDK_NAME = "@cross-deck/node";
22
22
 
23
23
  /**
@@ -501,7 +501,7 @@ declare function scrubPiiFromProperties(properties: Record<string, unknown>): Re
501
501
  * - `sdk.no_durable_store`
502
502
  * - `sdk.super_property_registered`
503
503
  */
504
- type DebugSignal = "sdk.configured" | "sdk.first_event_sent" | "sdk.invalid_key" | "sdk.no_identity" | "sdk.entitlement_cache_used" | "sdk.entitlement_cache_warm" | "sdk.entitlement_cache_stale" | "sdk.entitlement_store_recovered" | "sdk.no_durable_store" | "sdk.purchase_evidence_sent" | "sdk.environment_mismatch" | "sdk.sensitive_property_warning" | "sdk.property_coerced" | "sdk.flush_retry_scheduled" | "sdk.flush_permanent_failure" | "sdk.parked" | "sdk.flush_on_exit_started" | "sdk.flush_on_exit_completed" | "sdk.webhook_verified" | "sdk.runtime_detected" | "sdk.super_property_registered" | "sdk.boot_heartbeat_failed" | "sdk.resolve_missing_identity" | "sdk.resolve_failed" | "sdk.owner_status_missing_identity" | "sdk.owner_status_failed";
504
+ type DebugSignal = "sdk.configured" | "sdk.first_event_sent" | "sdk.invalid_key" | "sdk.no_identity" | "sdk.entitlement_cache_used" | "sdk.entitlement_cache_warm" | "sdk.entitlement_cache_stale" | "sdk.entitlement_store_recovered" | "sdk.no_durable_store" | "sdk.purchase_evidence_sent" | "sdk.environment_mismatch" | "sdk.sensitive_property_warning" | "sdk.property_coerced" | "sdk.flush_retry_scheduled" | "sdk.flush_permanent_failure" | "sdk.parked" | "sdk.flush_on_exit_started" | "sdk.flush_on_exit_completed" | "sdk.webhook_verified" | "sdk.runtime_detected" | "sdk.super_property_registered" | "sdk.boot_heartbeat_failed" | "sdk.resolve_missing_identity" | "sdk.resolve_failed" | "sdk.owner_status_missing_identity" | "sdk.owner_status_failed" | "sdk.gate_missing_input" | "sdk.gate_failed";
505
505
  interface DebugContext {
506
506
  [key: string]: unknown;
507
507
  }
package/dist/index.mjs CHANGED
@@ -329,7 +329,7 @@ function byteLength(s) {
329
329
  import * as https from "https";
330
330
 
331
331
  // src/_version.ts
332
- var SDK_VERSION = "1.10.0";
332
+ var SDK_VERSION = "1.11.0";
333
333
  var SDK_NAME = "@cross-deck/node";
334
334
 
335
335
  // src/_diagnostic-telemetry.ts
@@ -3127,10 +3127,10 @@ var CrossdeckServer = class extends EventEmitter {
3127
3127
  anonymousId: input?.anonymousId ?? null,
3128
3128
  identityError: null
3129
3129
  });
3130
- if (!input || !input.anonymousId && !(input.userId && input.idToken)) {
3130
+ if (!input || !input.anonymousId && !input.userId) {
3131
3131
  this.debug.emit(
3132
3132
  "sdk.resolve_missing_identity",
3133
- "resolve() needs anonymousId OR (userId + idToken); returning fail-open blocked:false."
3133
+ "resolve() needs an anonymousId or a userId; returning fail-open blocked:false."
3134
3134
  );
3135
3135
  return failOpen();
3136
3136
  }
@@ -3149,6 +3149,8 @@ var CrossdeckServer = class extends EventEmitter {
3149
3149
  blocked: raw.blocked === true,
3150
3150
  blockReason: raw.blockReason ?? null,
3151
3151
  blockedKey: raw.blockedKey ?? null,
3152
+ reference: raw.reference ?? null,
3153
+ supportEmail: raw.supportEmail ?? null,
3152
3154
  status: typeof raw.status === "string" ? raw.status : "active",
3153
3155
  entitlements: Array.isArray(raw.entitlements) ? raw.entitlements.filter((e) => typeof e === "string") : [],
3154
3156
  crossdeckCustomerId: raw.crossdeckCustomerId ?? raw.user?.id ?? null,
@@ -3215,6 +3217,62 @@ var CrossdeckServer = class extends EventEmitter {
3215
3217
  return { blocked: false, blockReason: null, blockedKey: null, degraded: true };
3216
3218
  }
3217
3219
  }
3220
+ /**
3221
+ * The brand-new-signup door (§3 of the Blocking developer guide). Block a user Crossdeck
3222
+ * has **never seen** — at the instant they sign up — by the two strings you have then:
3223
+ * their `email` and `ip`. There's no identity to ride yet, so {@link resolve} can't catch
3224
+ * them; this matches `email` / domain / `ip` blocklist rules directly. Call it BEFORE you
3225
+ * create the account; on `action: "block"`, reject the signup.
3226
+ *
3227
+ * **Fail-open by contract** — never throws, never blocks on uncertainty: any error →
3228
+ * `{ action: "allow", allow: true, degraded: true }`, so a glitch can't reject a real signup.
3229
+ *
3230
+ * @experimental Preview — Crossdeck Trust ships with Crossdeck v2.
3231
+ */
3232
+ async gate(input, options) {
3233
+ const failOpen = () => ({
3234
+ action: "allow",
3235
+ allow: true,
3236
+ blockReason: null,
3237
+ blockedKey: null,
3238
+ degraded: true
3239
+ });
3240
+ if (!input || !input.email && !input.ip && !input.domain) {
3241
+ this.debug.emit(
3242
+ "sdk.gate_missing_input",
3243
+ "gate() needs at least one of email / ip / domain; returning fail-open allow:true."
3244
+ );
3245
+ return failOpen();
3246
+ }
3247
+ try {
3248
+ const raw = await this.http.request("POST", "/trust/gate", {
3249
+ body: {
3250
+ ...input.email ? { email: input.email } : {},
3251
+ ...input.ip ? { ip: input.ip } : {},
3252
+ ...input.domain ? { domain: input.domain } : {},
3253
+ ...input.fingerprint ? { fingerprint: input.fingerprint } : {}
3254
+ },
3255
+ signal: options?.signal,
3256
+ timeoutMs: options?.timeoutMs
3257
+ });
3258
+ const action = raw.action === "block" || raw.action === "review" ? raw.action : "allow";
3259
+ return {
3260
+ action,
3261
+ allow: raw.allow !== false && action !== "block",
3262
+ blockReason: raw.blockReason ?? null,
3263
+ blockedKey: raw.blockedKey ?? null,
3264
+ reference: raw.reference ?? null,
3265
+ supportEmail: raw.supportEmail ?? null
3266
+ };
3267
+ } catch (err) {
3268
+ this.debug.emit(
3269
+ "sdk.gate_failed",
3270
+ `gate() failed \u2014 fail-open allow:true. ${err instanceof Error ? err.message : String(err)}`,
3271
+ { error: err instanceof Error ? err.message : String(err) }
3272
+ );
3273
+ return failOpen();
3274
+ }
3275
+ }
3218
3276
  /**
3219
3277
  * Synchronous entitlement check. Returns `true` iff the customer
3220
3278
  * has the entitlement AND the cache entry is fresh (within
@@ -4662,8 +4720,8 @@ function normaliseSecrets(input) {
4662
4720
  }
4663
4721
 
4664
4722
  // src/_contracts-bundled.ts
4665
- var BUNDLED_IN = "@cross-deck/node@1.10.0";
4666
- var SDK_VERSION2 = "1.10.0";
4723
+ var BUNDLED_IN = "@cross-deck/node@1.11.0";
4724
+ var SDK_VERSION2 = "1.11.0";
4667
4725
  var BUNDLED_CONTRACTS = Object.freeze([
4668
4726
  {
4669
4727
  "id": "contract-failed-payload-schema-lock",
@@ -4785,7 +4843,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
4785
4843
  "legal/security/index.html#diagnostic",
4786
4844
  "legal/sdk-data/index.html#b-diagnostic"
4787
4845
  ],
4788
- "bundledIn": "@cross-deck/node@1.10.0"
4846
+ "bundledIn": "@cross-deck/node@1.11.0"
4789
4847
  },
4790
4848
  {
4791
4849
  "id": "documentation-honesty",
@@ -4817,7 +4875,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
4817
4875
  ],
4818
4876
  "registeredAt": "2026-05-26",
4819
4877
  "firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 7.1",
4820
- "bundledIn": "@cross-deck/node@1.10.0"
4878
+ "bundledIn": "@cross-deck/node@1.11.0"
4821
4879
  },
4822
4880
  {
4823
4881
  "id": "error-envelope-shape",
@@ -4856,7 +4914,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
4856
4914
  ],
4857
4915
  "registeredAt": "2026-05-26",
4858
4916
  "firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 8 (codifies existing contract)",
4859
- "bundledIn": "@cross-deck/node@1.10.0"
4917
+ "bundledIn": "@cross-deck/node@1.11.0"
4860
4918
  },
4861
4919
  {
4862
4920
  "id": "flush-interval-parity",
@@ -4901,7 +4959,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
4901
4959
  ],
4902
4960
  "registeredAt": "2026-05-26",
4903
4961
  "firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 3.3",
4904
- "bundledIn": "@cross-deck/node@1.10.0"
4962
+ "bundledIn": "@cross-deck/node@1.11.0"
4905
4963
  },
4906
4964
  {
4907
4965
  "id": "idempotency-key-deterministic",
@@ -5006,7 +5064,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
5006
5064
  ],
5007
5065
  "registeredAt": "2026-05-26",
5008
5066
  "firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 2.2.a + 2.2.b + 2.2.c",
5009
- "bundledIn": "@cross-deck/node@1.10.0"
5067
+ "bundledIn": "@cross-deck/node@1.11.0"
5010
5068
  },
5011
5069
  {
5012
5070
  "id": "invalid-input-rejected-natively",
@@ -5062,7 +5120,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
5062
5120
  ],
5063
5121
  "registeredAt": "2026-06-11",
5064
5122
  "firstRegisteredIn": "swift trap-on-input class fix \u2014 first machine-tested Swift release",
5065
- "bundledIn": "@cross-deck/node@1.10.0"
5123
+ "bundledIn": "@cross-deck/node@1.11.0"
5066
5124
  },
5067
5125
  {
5068
5126
  "id": "node-pii-scrubber",
@@ -5101,7 +5159,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
5101
5159
  ],
5102
5160
  "registeredAt": "2026-05-26",
5103
5161
  "firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 3.1",
5104
- "bundledIn": "@cross-deck/node@1.10.0"
5162
+ "bundledIn": "@cross-deck/node@1.11.0"
5105
5163
  },
5106
5164
  {
5107
5165
  "id": "node-shutdown-awaits-flush",
@@ -5134,7 +5192,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
5134
5192
  ],
5135
5193
  "registeredAt": "2026-05-26",
5136
5194
  "firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 5.4",
5137
- "bundledIn": "@cross-deck/node@1.10.0"
5195
+ "bundledIn": "@cross-deck/node@1.11.0"
5138
5196
  },
5139
5197
  {
5140
5198
  "id": "sdk-error-codes-catalogue",
@@ -5179,7 +5237,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
5179
5237
  ],
5180
5238
  "registeredAt": "2026-05-26",
5181
5239
  "firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 6.2",
5182
- "bundledIn": "@cross-deck/node@1.10.0"
5240
+ "bundledIn": "@cross-deck/node@1.11.0"
5183
5241
  },
5184
5242
  {
5185
5243
  "id": "sync-purchases-funnel-parity",
@@ -5212,7 +5270,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
5212
5270
  ],
5213
5271
  "registeredAt": "2026-05-26",
5214
5272
  "firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 3.5",
5215
- "bundledIn": "@cross-deck/node@1.10.0"
5273
+ "bundledIn": "@cross-deck/node@1.11.0"
5216
5274
  },
5217
5275
  {
5218
5276
  "id": "verifier-timestamp-mandatory",
@@ -5266,7 +5324,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
5266
5324
  ],
5267
5325
  "registeredAt": "2026-05-26",
5268
5326
  "firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 7.2",
5269
- "bundledIn": "@cross-deck/node@1.10.0"
5327
+ "bundledIn": "@cross-deck/node@1.11.0"
5270
5328
  }
5271
5329
  ]);
5272
5330