@econ-v1/ports 7.6.37 → 7.6.39
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/identity.d.ts +13 -0
- package/dist/identity.d.ts.map +1 -1
- package/dist/network.d.ts +3 -1
- package/dist/network.d.ts.map +1 -1
- package/dist/offline-readiness.d.ts +1 -0
- package/dist/offline-readiness.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/identity.js +8 -1
- package/src/network.js +2 -1
- package/src/offline-readiness.js +1 -1
package/dist/identity.d.ts
CHANGED
|
@@ -47,7 +47,20 @@ export type IdentityPort = {
|
|
|
47
47
|
generate: () => Promise<DeviceIdentity>;
|
|
48
48
|
sign: (keyHandle: DeviceKeyHandle, payload: Uint8Array) => Promise<Uint8Array>;
|
|
49
49
|
publicIdentity: () => Promise<DevicePublicIdentity | undefined>;
|
|
50
|
+
/**
|
|
51
|
+
* The scope this
|
|
52
|
+
* device's durable offline data lives under: the current key's DID plus the home node id from
|
|
53
|
+
* connection metadata, or — when that metadata has lost its home node id — the scope this same
|
|
54
|
+
* key last fully activated (see `rememberActivatedScope`). `undefined` while revoked, quarantined
|
|
55
|
+
* or never activated.
|
|
56
|
+
*/
|
|
50
57
|
readOfflineScope: () => Promise<OfflineIdentityScope | undefined>;
|
|
58
|
+
/**
|
|
59
|
+
* Durably
|
|
60
|
+
* records a scope the kernel fully activated, so a cold boot with the home node unreachable can
|
|
61
|
+
* re-open it with no live session (#3726). Cleared by sign-out, revocation and key replacement.
|
|
62
|
+
*/
|
|
63
|
+
rememberActivatedScope?: (scope: OfflineIdentityScope) => Promise<void>;
|
|
51
64
|
loadDelegation: () => Promise<DeviceDelegation | undefined>;
|
|
52
65
|
storeDelegation: (delegation: DeviceDelegation) => Promise<void>;
|
|
53
66
|
loadConnectionMetadata: () => Promise<DeviceConnectionMetadata | undefined>;
|
package/dist/identity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.js"],"names":[],"mappings":"mCAEc,OAAO,wBAAwB,EAAE,oBAAoB;8BAErD;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE;6BACvB,iBAAiB,GAAG,SAAS;mCAC7B;IAAE,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE;+BAC5H;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE;uCACzJ;IAAE,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;6BACzK,oBAAoB,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;CAAE;kCAC9D;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;gCACnG,QAAQ,GAAG,SAAS,GAAG,UAAU;;;;;;mCAKlC;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,sBAAsB,GAAG,eAAe,GAAG,mBAAmB,GAAG,wBAAwB,CAAA;CAAE;;cAKpN,MAAM,OAAO,CAAC,cAAc,CAAC;UAC7B,CAAC,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC;oBACxE,MAAM,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.js"],"names":[],"mappings":"mCAEc,OAAO,wBAAwB,EAAE,oBAAoB;8BAErD;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE;6BACvB,iBAAiB,GAAG,SAAS;mCAC7B;IAAE,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE;+BAC5H;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE;uCACzJ;IAAE,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;6BACzK,oBAAoB,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;CAAE;kCAC9D;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;gCACnG,QAAQ,GAAG,SAAS,GAAG,UAAU;;;;;;mCAKlC;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,sBAAsB,GAAG,eAAe,GAAG,mBAAmB,GAAG,wBAAwB,CAAA;CAAE;;cAKpN,MAAM,OAAO,CAAC,cAAc,CAAC;UAC7B,CAAC,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC;oBACxE,MAAM,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;;;;;;;;sBAC/C,MAAM,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;;;;;;6BAK/C,CAAC,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC;oBAG9C,MAAM,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;qBAC3C,CAAC,UAAU,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC;4BAC/C,MAAM,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC;6BACnD,CAAC,QAAQ,EAAE,wBAAwB,KAAK,OAAO,CAAC,IAAI,CAAC;qBACrD,MAAM,OAAO,CAAC,IAAI,CAAC;WACnB,MAAM,OAAO,CAAC,IAAI,CAAC;4BACnB,MAAM,OAAO,CAAC,cAAc,CAAC;iBAC7B,MAAM,OAAO,CAAC,mBAAmB,CAAC;oBAClC,MAAM,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;6BAC5C,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;8BACjC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;sBAC/B,MAAM,OAAO,CAAC,cAAc,CAAC;4BAC7B,MAAM,OAAO,CAAC,cAAc,CAAC;+BAC7B,MAAM,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;wBAC/C,MAAM,OAAO,CAAC,OAAO,CAAC"}
|
package/dist/network.d.ts
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
/** @typedef {"no-network" | "node-unreachable" | "session-required" | "transport-key-required"} TransportOfflineReason */
|
|
11
11
|
/** @typedef {{ readonly nodeId: string, readonly name: string }} TransportRelayMember */
|
|
12
12
|
/** @typedef {{ readonly status: "idle" | "trying" | "failed" | "direct", readonly reason?: string, readonly retryAt?: number }} TransportPunch */
|
|
13
|
-
/**
|
|
13
|
+
/** `checking` is a live-link sub-state: the connected path remains usable during a probe or rediscovery. */
|
|
14
|
+
/** @typedef {{ readonly changedAt: string, readonly path: "lan-direct" | "lan-webtransport" | "wan-direct" | "iroh-relay" | "webrtc-direct", readonly status: "connected", readonly checking?: boolean, readonly relayMember?: TransportRelayMember, readonly punch?: TransportPunch, readonly rttMs?: number } | { readonly attempt: number, readonly changedAt: string, readonly path: "offline", readonly status: "connecting" } | { readonly attempt: number, readonly changedAt: string, readonly nextRetryAt: string, readonly path: "offline", readonly status: "reconnecting" } | { readonly changedAt: string, readonly path: "offline", readonly reason?: TransportOfflineReason, readonly status: "offline" }} TransportState */
|
|
14
15
|
/** @typedef {{ readonly headers?: Readonly<Record<string, string>>, readonly operation: string, readonly payload: unknown, readonly responseType?: "blob" | "json" }} HomeNodeRequest */
|
|
15
16
|
/** @typedef {{ readonly cursor?: string, readonly domain: string }} DeltaRequest */
|
|
16
17
|
/** @typedef {{ readonly aborted: boolean }} CancellationSignal */
|
|
@@ -48,6 +49,7 @@ export type TransportState = {
|
|
|
48
49
|
readonly changedAt: string;
|
|
49
50
|
readonly path: "lan-direct" | "lan-webtransport" | "wan-direct" | "iroh-relay" | "webrtc-direct";
|
|
50
51
|
readonly status: "connected";
|
|
52
|
+
readonly checking?: boolean;
|
|
51
53
|
readonly relayMember?: TransportRelayMember;
|
|
52
54
|
readonly punch?: TransportPunch;
|
|
53
55
|
readonly rttMs?: number;
|
package/dist/network.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.js"],"names":[],"mappings":"AAEA,gGAAgG;AAChG,yGAAyG;AAEzG,6HAA6H;AAC7H,+DAA+D;AAC/D,sFAAsF;AACtF,wIAAwI;AACxI,kIAAkI;AAClI,qKAAqK;AACrK,+FAA+F;AAC/F,0HAA0H;AAC1H,yFAAyF;AACzF,kJAAkJ;AAClJ
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../src/network.js"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ export type OfflineStageReadiness = {
|
|
|
13
13
|
readonly activeManifestSha256?: string;
|
|
14
14
|
readonly candidateManifestSha256?: string;
|
|
15
15
|
readonly failureCode?: OfflineReadinessFailureCode;
|
|
16
|
+
readonly savedAt?: string;
|
|
16
17
|
readonly state: OfflineStageState;
|
|
17
18
|
readonly updatedAt: string;
|
|
18
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offline-readiness.d.ts","sourceRoot":"","sources":["../src/offline-readiness.js"],"names":[],"mappings":"gCAEc,OAAO,mBAAmB,EAAE,iBAAiB;4BAC7C,OAAO,mBAAmB,EAAE,aAAa;oCACzC,OAAO,mBAAmB,EAAE,qBAAqB;kCACjD,OAAO,uCAAuC,EAAE,mBAAmB;mCAEnE;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE;gCAC3D,gBAAgB,GAAG,kBAAkB,GAAG,eAAe,GAAG,kBAAkB,GAAG,QAAQ,GAAG,UAAU;0CACpG,oBAAoB,GAAG,wBAAwB,GAAG,kBAAkB,GAAG,wBAAwB,GAAG,qBAAqB,GAAG,gBAAgB,GAAG,mBAAmB,GAAG,yBAAyB,GAAG,yBAAyB;oCACxN;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE;
|
|
1
|
+
{"version":3,"file":"offline-readiness.d.ts","sourceRoot":"","sources":["../src/offline-readiness.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/identity.js
CHANGED
|
@@ -22,7 +22,14 @@
|
|
|
22
22
|
* @property {() => Promise<DeviceIdentity>} generate
|
|
23
23
|
* @property {(keyHandle: DeviceKeyHandle, payload: Uint8Array) => Promise<Uint8Array>} sign
|
|
24
24
|
* @property {() => Promise<DevicePublicIdentity | undefined>} publicIdentity
|
|
25
|
-
* @property {() => Promise<OfflineIdentityScope | undefined>} readOfflineScope
|
|
25
|
+
* @property {() => Promise<OfflineIdentityScope | undefined>} readOfflineScope The scope this
|
|
26
|
+
* device's durable offline data lives under: the current key's DID plus the home node id from
|
|
27
|
+
* connection metadata, or — when that metadata has lost its home node id — the scope this same
|
|
28
|
+
* key last fully activated (see `rememberActivatedScope`). `undefined` while revoked, quarantined
|
|
29
|
+
* or never activated.
|
|
30
|
+
* @property {(scope: OfflineIdentityScope) => Promise<void>} [rememberActivatedScope] Durably
|
|
31
|
+
* records a scope the kernel fully activated, so a cold boot with the home node unreachable can
|
|
32
|
+
* re-open it with no live session (#3726). Cleared by sign-out, revocation and key replacement.
|
|
26
33
|
* @property {() => Promise<DeviceDelegation | undefined>} loadDelegation
|
|
27
34
|
* @property {(delegation: DeviceDelegation) => Promise<void>} storeDelegation
|
|
28
35
|
* @property {() => Promise<DeviceConnectionMetadata | undefined>} loadConnectionMetadata
|
package/src/network.js
CHANGED
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
/** @typedef {"no-network" | "node-unreachable" | "session-required" | "transport-key-required"} TransportOfflineReason */
|
|
14
14
|
/** @typedef {{ readonly nodeId: string, readonly name: string }} TransportRelayMember */
|
|
15
15
|
/** @typedef {{ readonly status: "idle" | "trying" | "failed" | "direct", readonly reason?: string, readonly retryAt?: number }} TransportPunch */
|
|
16
|
-
/**
|
|
16
|
+
/** `checking` is a live-link sub-state: the connected path remains usable during a probe or rediscovery. */
|
|
17
|
+
/** @typedef {{ readonly changedAt: string, readonly path: "lan-direct" | "lan-webtransport" | "wan-direct" | "iroh-relay" | "webrtc-direct", readonly status: "connected", readonly checking?: boolean, readonly relayMember?: TransportRelayMember, readonly punch?: TransportPunch, readonly rttMs?: number } | { readonly attempt: number, readonly changedAt: string, readonly path: "offline", readonly status: "connecting" } | { readonly attempt: number, readonly changedAt: string, readonly nextRetryAt: string, readonly path: "offline", readonly status: "reconnecting" } | { readonly changedAt: string, readonly path: "offline", readonly reason?: TransportOfflineReason, readonly status: "offline" }} TransportState */
|
|
17
18
|
/** @typedef {{ readonly headers?: Readonly<Record<string, string>>, readonly operation: string, readonly payload: unknown, readonly responseType?: "blob" | "json" }} HomeNodeRequest */
|
|
18
19
|
/** @typedef {{ readonly cursor?: string, readonly domain: string }} DeltaRequest */
|
|
19
20
|
/** @typedef {{ readonly aborted: boolean }} CancellationSignal */
|
package/src/offline-readiness.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
/** @typedef {{ readonly deviceDid: string, readonly homeNodeId: string }} OfflineIdentityScope */
|
|
9
9
|
/** @typedef {"caching-assets" | "needs-first-sync" | "offline-ready" | "update-available" | "failed" | "removing"} OfflineStageState */
|
|
10
10
|
/** @typedef {"asset-fetch-failed" | "asset-integrity-failed" | "node-unreachable" | "projection-seed-failed" | "schema-incompatible" | "quota-exceeded" | "identity-mismatch" | "active-resource-corrupt" | "active-resource-evicted"} OfflineReadinessFailureCode */
|
|
11
|
-
/** @typedef {{ readonly appName: string, readonly activeManifestSha256?: string, readonly candidateManifestSha256?: string, readonly failureCode?: OfflineReadinessFailureCode, readonly state: OfflineStageState, readonly updatedAt: string }} OfflineStageReadiness */
|
|
11
|
+
/** @typedef {{ readonly appName: string, readonly activeManifestSha256?: string, readonly candidateManifestSha256?: string, readonly failureCode?: OfflineReadinessFailureCode, readonly savedAt?: string, readonly state: OfflineStageState, readonly updatedAt: string }} OfflineStageReadiness */
|
|
12
12
|
/** @typedef {{ readonly assetRevision: string, readonly appName: string, readonly entryUrl: string, readonly manifestSha256: string, readonly version: string }} StageAssetCandidate */
|
|
13
13
|
/** @typedef {{ prepareCandidate(entry: StageCatalogEntry, catalogRevision: string): Promise<StageAssetCandidate>, validateCandidate(candidate: StageAssetCandidate, manifest: StageManifest): Promise<void>, discardCandidate(candidate: StageAssetCandidate): Promise<void>, deleteUnreferenced(keepAssetRevisions: readonly string[]): Promise<void>, reclaimNonessential(): Promise<boolean> }} VerifiedStageAssetPort */
|
|
14
14
|
/** @typedef {{ estimate(): Promise<{ readonly quota?: number, readonly usage?: number }> }} OfflineStorageEstimatePort */
|