@cross-deck/node 1.5.3 → 1.6.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/CHANGELOG.md +31 -0
- package/dist/auto-events/index.d.mts +1 -1
- package/dist/auto-events/index.d.ts +1 -1
- package/dist/contracts.json +18 -13
- package/dist/{crossdeck-server-BFTTwCEP.d.mts → crossdeck-server-C1Ue0rv4.d.mts} +21 -2
- package/dist/{crossdeck-server-BFTTwCEP.d.ts → crossdeck-server-C1Ue0rv4.d.ts} +21 -2
- package/dist/index.cjs +69 -15
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.mjs +69 -15
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,37 @@ All notable changes to `@cross-deck/node` will be documented here. The
|
|
|
4
4
|
format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
|
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [1.6.0] — 2026-06-10
|
|
8
|
+
|
|
9
|
+
Event Envelope v1 conformance — server-enforced contract (spec
|
|
10
|
+
`backend/docs/event-envelope-spec-v1.md`).
|
|
11
|
+
|
|
12
|
+
**Added:**
|
|
13
|
+
|
|
14
|
+
- **`envelopeVersion: 1`** (integer) on every batch POST body. Both the
|
|
15
|
+
queue-flush path (`EventQueue.flush()`) and the direct `ingest()` path
|
|
16
|
+
now emit this field. The server will reject payloads missing this field
|
|
17
|
+
once ingest enforcement lands.
|
|
18
|
+
- **`seq`** (number) on every wire event — per-session monotonic sequence
|
|
19
|
+
number. Captured synchronously with the event's `timestamp` at
|
|
20
|
+
`track()` / enqueue time. Counter starts at 0 when the `CrossdeckServer`
|
|
21
|
+
instance is constructed (session start) and increments once per event.
|
|
22
|
+
Matches spec §3: monotonic within a session, never reset between
|
|
23
|
+
background/foreground (Node has no such lifecycle; the instance lifetime
|
|
24
|
+
IS the session).
|
|
25
|
+
- **`context`** (object) on every wire event — standardized device/platform
|
|
26
|
+
context (spec §4), promoted out of `properties`. Common fields: `os`,
|
|
27
|
+
`osVersion`, `appVersion`, `sdkName`, `sdkVersion`, `locale`, `timezone`.
|
|
28
|
+
Node-specific: `nodeVersion`, `host`, `region` (the existing
|
|
29
|
+
`runtime.*` props, promoted).
|
|
30
|
+
|
|
31
|
+
**Changed:**
|
|
32
|
+
|
|
33
|
+
- `track()` no longer merges `runtime.*` keys into `properties`. Those
|
|
34
|
+
facts now live in the top-level `context` object on the wire event.
|
|
35
|
+
Super-properties registered via `server.register()` continue to appear
|
|
36
|
+
in `properties` unchanged (caller-supplied values are unaffected).
|
|
37
|
+
|
|
7
38
|
## [1.5.1] — 2026-05-27
|
|
8
39
|
|
|
9
40
|
`crossdeck.contract_failed` is now single-fire to a dedicated
|
package/dist/contracts.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"generatedAt": "2026-
|
|
3
|
+
"generatedAt": "2026-06-10T12:59:27.493Z",
|
|
4
4
|
"sdk": "@cross-deck/node",
|
|
5
|
-
"sdkVersion": "1.
|
|
6
|
-
"bundledIn": "@cross-deck/node@1.
|
|
5
|
+
"sdkVersion": "1.6.0",
|
|
6
|
+
"bundledIn": "@cross-deck/node@1.6.0",
|
|
7
7
|
"count": 10,
|
|
8
8
|
"contracts": [
|
|
9
9
|
{
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
"legal/security/index.html#diagnostic",
|
|
127
127
|
"legal/sdk-data/index.html#b-diagnostic"
|
|
128
128
|
],
|
|
129
|
-
"bundledIn": "@cross-deck/node@1.
|
|
129
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
132
|
"id": "documentation-honesty",
|
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
],
|
|
159
159
|
"registeredAt": "2026-05-26",
|
|
160
160
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 — phase 7.1",
|
|
161
|
-
"bundledIn": "@cross-deck/node@1.
|
|
161
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
162
162
|
},
|
|
163
163
|
{
|
|
164
164
|
"id": "error-envelope-shape",
|
|
@@ -197,7 +197,7 @@
|
|
|
197
197
|
],
|
|
198
198
|
"registeredAt": "2026-05-26",
|
|
199
199
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 — phase 8 (codifies existing contract)",
|
|
200
|
-
"bundledIn": "@cross-deck/node@1.
|
|
200
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
201
201
|
},
|
|
202
202
|
{
|
|
203
203
|
"id": "flush-interval-parity",
|
|
@@ -242,7 +242,7 @@
|
|
|
242
242
|
],
|
|
243
243
|
"registeredAt": "2026-05-26",
|
|
244
244
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 — phase 3.3",
|
|
245
|
-
"bundledIn": "@cross-deck/node@1.
|
|
245
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
246
246
|
},
|
|
247
247
|
{
|
|
248
248
|
"id": "idempotency-key-deterministic",
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
],
|
|
348
348
|
"registeredAt": "2026-05-26",
|
|
349
349
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 — phase 2.2.a + 2.2.b + 2.2.c",
|
|
350
|
-
"bundledIn": "@cross-deck/node@1.
|
|
350
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
351
351
|
},
|
|
352
352
|
{
|
|
353
353
|
"id": "node-pii-scrubber",
|
|
@@ -386,7 +386,7 @@
|
|
|
386
386
|
],
|
|
387
387
|
"registeredAt": "2026-05-26",
|
|
388
388
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 — phase 3.1",
|
|
389
|
-
"bundledIn": "@cross-deck/node@1.
|
|
389
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
390
390
|
},
|
|
391
391
|
{
|
|
392
392
|
"id": "node-shutdown-awaits-flush",
|
|
@@ -419,7 +419,7 @@
|
|
|
419
419
|
],
|
|
420
420
|
"registeredAt": "2026-05-26",
|
|
421
421
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 — phase 5.4",
|
|
422
|
-
"bundledIn": "@cross-deck/node@1.
|
|
422
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
423
423
|
},
|
|
424
424
|
{
|
|
425
425
|
"id": "sdk-error-codes-catalogue",
|
|
@@ -433,9 +433,14 @@
|
|
|
433
433
|
"codeRef": [
|
|
434
434
|
"sdks/web/src/error-codes.ts",
|
|
435
435
|
"sdks/node/src/error-codes.ts",
|
|
436
|
+
"sdks/web/src/_contract-verifiers.ts",
|
|
436
437
|
"backend/src/api/v1-errors.ts"
|
|
437
438
|
],
|
|
438
439
|
"testRef": [
|
|
440
|
+
{
|
|
441
|
+
"file": "sdks/web/tests/contract-verifiers.test.ts",
|
|
442
|
+
"name": "sdk-error-codes-catalogue covers every backend wire code with remediation"
|
|
443
|
+
},
|
|
439
444
|
{
|
|
440
445
|
"file": "sdks/web/tests/error-codes-backfill.test.ts",
|
|
441
446
|
"name": "includes backend code"
|
|
@@ -459,7 +464,7 @@
|
|
|
459
464
|
],
|
|
460
465
|
"registeredAt": "2026-05-26",
|
|
461
466
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 — phase 6.2",
|
|
462
|
-
"bundledIn": "@cross-deck/node@1.
|
|
467
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
463
468
|
},
|
|
464
469
|
{
|
|
465
470
|
"id": "sync-purchases-funnel-parity",
|
|
@@ -492,7 +497,7 @@
|
|
|
492
497
|
],
|
|
493
498
|
"registeredAt": "2026-05-26",
|
|
494
499
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 — phase 3.5",
|
|
495
|
-
"bundledIn": "@cross-deck/node@1.
|
|
500
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
496
501
|
},
|
|
497
502
|
{
|
|
498
503
|
"id": "verifier-timestamp-mandatory",
|
|
@@ -546,7 +551,7 @@
|
|
|
546
551
|
],
|
|
547
552
|
"registeredAt": "2026-05-26",
|
|
548
553
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 — phase 7.2",
|
|
549
|
-
"bundledIn": "@cross-deck/node@1.
|
|
554
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
550
555
|
}
|
|
551
556
|
]
|
|
552
557
|
}
|
|
@@ -173,8 +173,8 @@ declare const CrossdeckContracts: {
|
|
|
173
173
|
readonly byId: (id: string) => Contract | undefined;
|
|
174
174
|
readonly byPillar: (pillar: ContractPillar) => readonly Contract[];
|
|
175
175
|
readonly withStatus: (status: ContractStatus) => readonly Contract[];
|
|
176
|
-
readonly sdkVersion: "1.
|
|
177
|
-
readonly bundledIn: "@cross-deck/node@1.
|
|
176
|
+
readonly sdkVersion: "1.6.0";
|
|
177
|
+
readonly bundledIn: "@cross-deck/node@1.6.0";
|
|
178
178
|
/**
|
|
179
179
|
* Resolve a failing test back to the contract it exercises.
|
|
180
180
|
* Used by test-framework hooks to find the contract id of a
|
|
@@ -1312,6 +1312,8 @@ declare class CrossdeckServer extends EventEmitter {
|
|
|
1312
1312
|
private readonly processAnonymousId;
|
|
1313
1313
|
private readonly runtime;
|
|
1314
1314
|
private readonly runtimeProperties;
|
|
1315
|
+
/** Envelope v1 §4 context object — built once at SDK init, reused on every event. */
|
|
1316
|
+
private readonly eventContext;
|
|
1315
1317
|
private readonly breadcrumbs;
|
|
1316
1318
|
private readonly eventQueue;
|
|
1317
1319
|
private readonly errorTracker;
|
|
@@ -1329,6 +1331,23 @@ declare class CrossdeckServer extends EventEmitter {
|
|
|
1329
1331
|
*/
|
|
1330
1332
|
private readonly entitlementStore;
|
|
1331
1333
|
private readonly debug;
|
|
1334
|
+
/**
|
|
1335
|
+
* Event Envelope v1 §3 — per-session monotonic sequence counter.
|
|
1336
|
+
*
|
|
1337
|
+
* Node has no mobile "session" lifecycle (no app launch / background /
|
|
1338
|
+
* foreground). We model a session as the SDK instance lifetime: the
|
|
1339
|
+
* counter starts at 0 on construction and increments once per
|
|
1340
|
+
* `track()` call. `session.started` is the boot-telemetry event
|
|
1341
|
+
* (the first `track()` called from `emitBootTelemetryEvent()`), so
|
|
1342
|
+
* the seq will be 0 for that event, matching the spec's "reset to 0
|
|
1343
|
+
* at session.started" clause — by construction, it's the zeroth event
|
|
1344
|
+
* of this instance's lifecycle.
|
|
1345
|
+
*
|
|
1346
|
+
* The counter persists for the entire process lifetime of the SDK
|
|
1347
|
+
* instance (spec §3 clause 1: background/foreground does not reset).
|
|
1348
|
+
* A new `CrossdeckServer` construction is the only reset (new session).
|
|
1349
|
+
*/
|
|
1350
|
+
private sessionSeq;
|
|
1332
1351
|
/**
|
|
1333
1352
|
* Alias map — `developerUserId` / `anonymousId` → canonical
|
|
1334
1353
|
* `crossdeckCustomerId`. Populated by `getEntitlements()` so a
|
|
@@ -173,8 +173,8 @@ declare const CrossdeckContracts: {
|
|
|
173
173
|
readonly byId: (id: string) => Contract | undefined;
|
|
174
174
|
readonly byPillar: (pillar: ContractPillar) => readonly Contract[];
|
|
175
175
|
readonly withStatus: (status: ContractStatus) => readonly Contract[];
|
|
176
|
-
readonly sdkVersion: "1.
|
|
177
|
-
readonly bundledIn: "@cross-deck/node@1.
|
|
176
|
+
readonly sdkVersion: "1.6.0";
|
|
177
|
+
readonly bundledIn: "@cross-deck/node@1.6.0";
|
|
178
178
|
/**
|
|
179
179
|
* Resolve a failing test back to the contract it exercises.
|
|
180
180
|
* Used by test-framework hooks to find the contract id of a
|
|
@@ -1312,6 +1312,8 @@ declare class CrossdeckServer extends EventEmitter {
|
|
|
1312
1312
|
private readonly processAnonymousId;
|
|
1313
1313
|
private readonly runtime;
|
|
1314
1314
|
private readonly runtimeProperties;
|
|
1315
|
+
/** Envelope v1 §4 context object — built once at SDK init, reused on every event. */
|
|
1316
|
+
private readonly eventContext;
|
|
1315
1317
|
private readonly breadcrumbs;
|
|
1316
1318
|
private readonly eventQueue;
|
|
1317
1319
|
private readonly errorTracker;
|
|
@@ -1329,6 +1331,23 @@ declare class CrossdeckServer extends EventEmitter {
|
|
|
1329
1331
|
*/
|
|
1330
1332
|
private readonly entitlementStore;
|
|
1331
1333
|
private readonly debug;
|
|
1334
|
+
/**
|
|
1335
|
+
* Event Envelope v1 §3 — per-session monotonic sequence counter.
|
|
1336
|
+
*
|
|
1337
|
+
* Node has no mobile "session" lifecycle (no app launch / background /
|
|
1338
|
+
* foreground). We model a session as the SDK instance lifetime: the
|
|
1339
|
+
* counter starts at 0 on construction and increments once per
|
|
1340
|
+
* `track()` call. `session.started` is the boot-telemetry event
|
|
1341
|
+
* (the first `track()` called from `emitBootTelemetryEvent()`), so
|
|
1342
|
+
* the seq will be 0 for that event, matching the spec's "reset to 0
|
|
1343
|
+
* at session.started" clause — by construction, it's the zeroth event
|
|
1344
|
+
* of this instance's lifecycle.
|
|
1345
|
+
*
|
|
1346
|
+
* The counter persists for the entire process lifetime of the SDK
|
|
1347
|
+
* instance (spec §3 clause 1: background/foreground does not reset).
|
|
1348
|
+
* A new `CrossdeckServer` construction is the only reset (new session).
|
|
1349
|
+
*/
|
|
1350
|
+
private sessionSeq;
|
|
1332
1351
|
/**
|
|
1333
1352
|
* Alias map — `developerUserId` / `anonymousId` → canonical
|
|
1334
1353
|
* `crossdeckCustomerId`. Populated by `getEntitlements()` so a
|
package/dist/index.cjs
CHANGED
|
@@ -378,7 +378,7 @@ function byteLength(s) {
|
|
|
378
378
|
var https = __toESM(require("https"));
|
|
379
379
|
|
|
380
380
|
// src/_version.ts
|
|
381
|
-
var SDK_VERSION = "1.
|
|
381
|
+
var SDK_VERSION = "1.6.0";
|
|
382
382
|
var SDK_NAME = "@cross-deck/node";
|
|
383
383
|
|
|
384
384
|
// src/_diagnostic-telemetry.ts
|
|
@@ -962,6 +962,11 @@ var EventQueue = class {
|
|
|
962
962
|
try {
|
|
963
963
|
const env = this.cfg.envelope();
|
|
964
964
|
const body = {
|
|
965
|
+
// Event Envelope v1 §1 — schema/wire version the server uses to
|
|
966
|
+
// decide whether it can parse this payload. Integer 1; only bumped
|
|
967
|
+
// on a breaking wire change. Distinct from sdk.version (which
|
|
968
|
+
// answers "which build?") — two questions, two fields.
|
|
969
|
+
envelopeVersion: 1,
|
|
965
970
|
events: batch,
|
|
966
971
|
sdk: env.sdk
|
|
967
972
|
};
|
|
@@ -1946,6 +1951,25 @@ function runtimeInfoToProperties(info) {
|
|
|
1946
1951
|
if (info.appVersion) out.appVersion = info.appVersion;
|
|
1947
1952
|
return out;
|
|
1948
1953
|
}
|
|
1954
|
+
function buildEventContext(info, sdkName, sdkVersion) {
|
|
1955
|
+
const ctx = {
|
|
1956
|
+
// Common fields (spec §4, all platforms)
|
|
1957
|
+
os: info.platform,
|
|
1958
|
+
osVersion: info.platformRelease,
|
|
1959
|
+
appVersion: info.appVersion ?? null,
|
|
1960
|
+
sdkName,
|
|
1961
|
+
sdkVersion,
|
|
1962
|
+
// locale / timezone: Node has no process-level locale by default;
|
|
1963
|
+
// surface them from the environment if available, otherwise null.
|
|
1964
|
+
locale: typeof process !== "undefined" && process.env["LANG"] || null,
|
|
1965
|
+
timezone: typeof Intl !== "undefined" && Intl.DateTimeFormat().resolvedOptions().timeZone || null,
|
|
1966
|
+
// Node-specific runtime context (spec §4 Node section)
|
|
1967
|
+
nodeVersion: info.nodeVersion,
|
|
1968
|
+
host: info.host,
|
|
1969
|
+
region: info.region ?? null
|
|
1970
|
+
};
|
|
1971
|
+
return ctx;
|
|
1972
|
+
}
|
|
1949
1973
|
|
|
1950
1974
|
// src/flush-on-exit.ts
|
|
1951
1975
|
var SIGNALS = ["SIGTERM", "SIGINT"];
|
|
@@ -2613,6 +2637,8 @@ var CrossdeckServer = class extends import_node_events.EventEmitter {
|
|
|
2613
2637
|
processAnonymousId;
|
|
2614
2638
|
runtime;
|
|
2615
2639
|
runtimeProperties;
|
|
2640
|
+
/** Envelope v1 §4 context object — built once at SDK init, reused on every event. */
|
|
2641
|
+
eventContext;
|
|
2616
2642
|
breadcrumbs;
|
|
2617
2643
|
eventQueue;
|
|
2618
2644
|
errorTracker;
|
|
@@ -2630,6 +2656,23 @@ var CrossdeckServer = class extends import_node_events.EventEmitter {
|
|
|
2630
2656
|
*/
|
|
2631
2657
|
entitlementStore;
|
|
2632
2658
|
debug;
|
|
2659
|
+
/**
|
|
2660
|
+
* Event Envelope v1 §3 — per-session monotonic sequence counter.
|
|
2661
|
+
*
|
|
2662
|
+
* Node has no mobile "session" lifecycle (no app launch / background /
|
|
2663
|
+
* foreground). We model a session as the SDK instance lifetime: the
|
|
2664
|
+
* counter starts at 0 on construction and increments once per
|
|
2665
|
+
* `track()` call. `session.started` is the boot-telemetry event
|
|
2666
|
+
* (the first `track()` called from `emitBootTelemetryEvent()`), so
|
|
2667
|
+
* the seq will be 0 for that event, matching the spec's "reset to 0
|
|
2668
|
+
* at session.started" clause — by construction, it's the zeroth event
|
|
2669
|
+
* of this instance's lifecycle.
|
|
2670
|
+
*
|
|
2671
|
+
* The counter persists for the entire process lifetime of the SDK
|
|
2672
|
+
* instance (spec §3 clause 1: background/foreground does not reset).
|
|
2673
|
+
* A new `CrossdeckServer` construction is the only reset (new session).
|
|
2674
|
+
*/
|
|
2675
|
+
sessionSeq = 0;
|
|
2633
2676
|
/**
|
|
2634
2677
|
* Alias map — `developerUserId` / `anonymousId` → canonical
|
|
2635
2678
|
* `crossdeckCustomerId`. Populated by `getEntitlements()` so a
|
|
@@ -2689,6 +2732,7 @@ var CrossdeckServer = class extends import_node_events.EventEmitter {
|
|
|
2689
2732
|
appVersion: options.appVersion
|
|
2690
2733
|
});
|
|
2691
2734
|
this.runtimeProperties = runtimeInfoToProperties(this.runtime);
|
|
2735
|
+
this.eventContext = buildEventContext(this.runtime, SDK_NAME, this.sdkVersion);
|
|
2692
2736
|
this.breadcrumbs = new BreadcrumbBuffer(options.breadcrumbsMaxSize ?? 50);
|
|
2693
2737
|
this.superProps = new SuperPropertyStore();
|
|
2694
2738
|
this.entitlementCache = new EntitlementCache({
|
|
@@ -3140,7 +3184,6 @@ var CrossdeckServer = class extends import_node_events.EventEmitter {
|
|
|
3140
3184
|
}
|
|
3141
3185
|
}
|
|
3142
3186
|
const properties = {
|
|
3143
|
-
...this.runtimeProperties,
|
|
3144
3187
|
...this.superProps.getSuperProperties(),
|
|
3145
3188
|
...sanitized
|
|
3146
3189
|
};
|
|
@@ -3149,10 +3192,14 @@ var CrossdeckServer = class extends import_node_events.EventEmitter {
|
|
|
3149
3192
|
properties.$groups = groupIds;
|
|
3150
3193
|
}
|
|
3151
3194
|
const identity = this.resolveIdentity(event);
|
|
3195
|
+
const seq = this.sessionSeq++;
|
|
3196
|
+
const timestamp = event.timestamp ?? Date.now();
|
|
3152
3197
|
const queued = {
|
|
3153
3198
|
eventId: event.eventId ?? mintId("evt", 8),
|
|
3154
3199
|
name: event.name,
|
|
3155
|
-
timestamp
|
|
3200
|
+
timestamp,
|
|
3201
|
+
seq,
|
|
3202
|
+
context: this.eventContext,
|
|
3156
3203
|
properties,
|
|
3157
3204
|
...identity
|
|
3158
3205
|
};
|
|
@@ -3191,6 +3238,8 @@ var CrossdeckServer = class extends import_node_events.EventEmitter {
|
|
|
3191
3238
|
}
|
|
3192
3239
|
const normalized = events.map((event) => this.normalizeIngestEvent(event));
|
|
3193
3240
|
const body = {
|
|
3241
|
+
// Event Envelope v1 §1 — wire version (parity with the queue path).
|
|
3242
|
+
envelopeVersion: 1,
|
|
3194
3243
|
events: normalized,
|
|
3195
3244
|
sdk: { name: SDK_NAME, version: this.sdkVersion },
|
|
3196
3245
|
// Match the queue's batch envelope (see event-queue.ts) — backend
|
|
@@ -4449,8 +4498,8 @@ function normaliseSecrets(input) {
|
|
|
4449
4498
|
}
|
|
4450
4499
|
|
|
4451
4500
|
// src/_contracts-bundled.ts
|
|
4452
|
-
var BUNDLED_IN = "@cross-deck/node@1.
|
|
4453
|
-
var SDK_VERSION2 = "1.
|
|
4501
|
+
var BUNDLED_IN = "@cross-deck/node@1.6.0";
|
|
4502
|
+
var SDK_VERSION2 = "1.6.0";
|
|
4454
4503
|
var BUNDLED_CONTRACTS = Object.freeze([
|
|
4455
4504
|
{
|
|
4456
4505
|
"id": "contract-failed-payload-schema-lock",
|
|
@@ -4572,7 +4621,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
|
|
|
4572
4621
|
"legal/security/index.html#diagnostic",
|
|
4573
4622
|
"legal/sdk-data/index.html#b-diagnostic"
|
|
4574
4623
|
],
|
|
4575
|
-
"bundledIn": "@cross-deck/node@1.
|
|
4624
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
4576
4625
|
},
|
|
4577
4626
|
{
|
|
4578
4627
|
"id": "documentation-honesty",
|
|
@@ -4604,7 +4653,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
|
|
|
4604
4653
|
],
|
|
4605
4654
|
"registeredAt": "2026-05-26",
|
|
4606
4655
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 7.1",
|
|
4607
|
-
"bundledIn": "@cross-deck/node@1.
|
|
4656
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
4608
4657
|
},
|
|
4609
4658
|
{
|
|
4610
4659
|
"id": "error-envelope-shape",
|
|
@@ -4643,7 +4692,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
|
|
|
4643
4692
|
],
|
|
4644
4693
|
"registeredAt": "2026-05-26",
|
|
4645
4694
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 8 (codifies existing contract)",
|
|
4646
|
-
"bundledIn": "@cross-deck/node@1.
|
|
4695
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
4647
4696
|
},
|
|
4648
4697
|
{
|
|
4649
4698
|
"id": "flush-interval-parity",
|
|
@@ -4688,7 +4737,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
|
|
|
4688
4737
|
],
|
|
4689
4738
|
"registeredAt": "2026-05-26",
|
|
4690
4739
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 3.3",
|
|
4691
|
-
"bundledIn": "@cross-deck/node@1.
|
|
4740
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
4692
4741
|
},
|
|
4693
4742
|
{
|
|
4694
4743
|
"id": "idempotency-key-deterministic",
|
|
@@ -4793,7 +4842,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
|
|
|
4793
4842
|
],
|
|
4794
4843
|
"registeredAt": "2026-05-26",
|
|
4795
4844
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 2.2.a + 2.2.b + 2.2.c",
|
|
4796
|
-
"bundledIn": "@cross-deck/node@1.
|
|
4845
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
4797
4846
|
},
|
|
4798
4847
|
{
|
|
4799
4848
|
"id": "node-pii-scrubber",
|
|
@@ -4832,7 +4881,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
|
|
|
4832
4881
|
],
|
|
4833
4882
|
"registeredAt": "2026-05-26",
|
|
4834
4883
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 3.1",
|
|
4835
|
-
"bundledIn": "@cross-deck/node@1.
|
|
4884
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
4836
4885
|
},
|
|
4837
4886
|
{
|
|
4838
4887
|
"id": "node-shutdown-awaits-flush",
|
|
@@ -4865,7 +4914,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
|
|
|
4865
4914
|
],
|
|
4866
4915
|
"registeredAt": "2026-05-26",
|
|
4867
4916
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 5.4",
|
|
4868
|
-
"bundledIn": "@cross-deck/node@1.
|
|
4917
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
4869
4918
|
},
|
|
4870
4919
|
{
|
|
4871
4920
|
"id": "sdk-error-codes-catalogue",
|
|
@@ -4879,9 +4928,14 @@ var BUNDLED_CONTRACTS = Object.freeze([
|
|
|
4879
4928
|
"codeRef": [
|
|
4880
4929
|
"sdks/web/src/error-codes.ts",
|
|
4881
4930
|
"sdks/node/src/error-codes.ts",
|
|
4931
|
+
"sdks/web/src/_contract-verifiers.ts",
|
|
4882
4932
|
"backend/src/api/v1-errors.ts"
|
|
4883
4933
|
],
|
|
4884
4934
|
"testRef": [
|
|
4935
|
+
{
|
|
4936
|
+
"file": "sdks/web/tests/contract-verifiers.test.ts",
|
|
4937
|
+
"name": "sdk-error-codes-catalogue covers every backend wire code with remediation"
|
|
4938
|
+
},
|
|
4885
4939
|
{
|
|
4886
4940
|
"file": "sdks/web/tests/error-codes-backfill.test.ts",
|
|
4887
4941
|
"name": "includes backend code"
|
|
@@ -4905,7 +4959,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
|
|
|
4905
4959
|
],
|
|
4906
4960
|
"registeredAt": "2026-05-26",
|
|
4907
4961
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 6.2",
|
|
4908
|
-
"bundledIn": "@cross-deck/node@1.
|
|
4962
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
4909
4963
|
},
|
|
4910
4964
|
{
|
|
4911
4965
|
"id": "sync-purchases-funnel-parity",
|
|
@@ -4938,7 +4992,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
|
|
|
4938
4992
|
],
|
|
4939
4993
|
"registeredAt": "2026-05-26",
|
|
4940
4994
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 3.5",
|
|
4941
|
-
"bundledIn": "@cross-deck/node@1.
|
|
4995
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
4942
4996
|
},
|
|
4943
4997
|
{
|
|
4944
4998
|
"id": "verifier-timestamp-mandatory",
|
|
@@ -4992,7 +5046,7 @@ var BUNDLED_CONTRACTS = Object.freeze([
|
|
|
4992
5046
|
],
|
|
4993
5047
|
"registeredAt": "2026-05-26",
|
|
4994
5048
|
"firstRegisteredIn": "bank-grade reconciliation v1.4.0 \u2014 phase 7.2",
|
|
4995
|
-
"bundledIn": "@cross-deck/node@1.
|
|
5049
|
+
"bundledIn": "@cross-deck/node@1.6.0"
|
|
4996
5050
|
}
|
|
4997
5051
|
]);
|
|
4998
5052
|
|