@interop/wallet-core 0.7.0 → 0.8.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/README.md +31 -3
- package/dist/descriptors/acquire.d.ts +110 -0
- package/dist/descriptors/acquire.d.ts.map +1 -0
- package/dist/{markers → descriptors}/acquire.js +28 -25
- package/dist/descriptors/acquire.js.map +1 -0
- package/dist/{markers → descriptors}/cipher.d.ts +19 -19
- package/dist/descriptors/cipher.d.ts.map +1 -0
- package/dist/{markers → descriptors}/cipher.js +11 -11
- package/dist/descriptors/cipher.js.map +1 -0
- package/dist/descriptors/index.d.ts +32 -0
- package/dist/descriptors/index.d.ts.map +1 -0
- package/dist/descriptors/index.js +31 -0
- package/dist/descriptors/index.js.map +1 -0
- package/dist/{markers → descriptors}/refresh.d.ts +8 -8
- package/dist/descriptors/refresh.d.ts.map +1 -0
- package/dist/{markers → descriptors}/refresh.js +8 -8
- package/dist/descriptors/refresh.js.map +1 -0
- package/dist/enrollment/enrollment.d.ts +4 -4
- package/dist/enrollment/enrollment.d.ts.map +1 -1
- package/dist/enrollment/enrollment.js +4 -4
- package/dist/enrollment/enrollment.js.map +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/keys/index.d.ts +7 -6
- package/dist/keys/index.d.ts.map +1 -1
- package/dist/keys/index.js +7 -6
- package/dist/keys/index.js.map +1 -1
- package/dist/keys/pukRoster.d.ts +24 -20
- package/dist/keys/pukRoster.d.ts.map +1 -1
- package/dist/keys/pukRoster.js +27 -24
- package/dist/keys/pukRoster.js.map +1 -1
- package/dist/keys/rosterStore.d.ts +6 -6
- package/dist/keys/rosterStore.d.ts.map +1 -1
- package/dist/keys/rosterStore.js +7 -7
- package/dist/keys/rosterStore.js.map +1 -1
- package/dist/space/collections.d.ts +1 -1
- package/dist/space/collections.js +1 -1
- package/dist/sync/collections.d.ts +2 -1
- package/dist/sync/collections.d.ts.map +1 -1
- package/package.json +7 -7
- package/dist/markers/acquire.d.ts +0 -107
- package/dist/markers/acquire.d.ts.map +0 -1
- package/dist/markers/acquire.js.map +0 -1
- package/dist/markers/cipher.d.ts.map +0 -1
- package/dist/markers/cipher.js.map +0 -1
- package/dist/markers/index.d.ts +0 -30
- package/dist/markers/index.d.ts.map +0 -1
- package/dist/markers/index.js +0 -29
- package/dist/markers/index.js.map +0 -1
- package/dist/markers/refresh.d.ts.map +0 -1
- package/dist/markers/refresh.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@interop/wallet-core",
|
|
3
3
|
"description": "Shared wallet-domain logic (WAS sync engine core and wallet Space layout contracts) for Interop wallet apps.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.8.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "pnpm run clear && tsc",
|
|
@@ -72,11 +72,11 @@
|
|
|
72
72
|
"import": "./dist/webvh/index.js",
|
|
73
73
|
"default": "./dist/webvh/index.js"
|
|
74
74
|
},
|
|
75
|
-
"./
|
|
76
|
-
"types": "./dist/
|
|
77
|
-
"react-native": "./dist/
|
|
78
|
-
"import": "./dist/
|
|
79
|
-
"default": "./dist/
|
|
75
|
+
"./descriptors": {
|
|
76
|
+
"types": "./dist/descriptors/index.d.ts",
|
|
77
|
+
"react-native": "./dist/descriptors/index.js",
|
|
78
|
+
"import": "./dist/descriptors/index.js",
|
|
79
|
+
"default": "./dist/descriptors/index.js"
|
|
80
80
|
},
|
|
81
81
|
"./recovery": {
|
|
82
82
|
"types": "./dist/recovery/index.d.ts",
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
"@interop/ezcap": "^7.4.1",
|
|
117
117
|
"@interop/security-document-loader": "^9.5.0",
|
|
118
118
|
"@interop/vc": "^11.0.6",
|
|
119
|
-
"@interop/was-client": "^0.
|
|
119
|
+
"@interop/was-client": "^0.23.0",
|
|
120
120
|
"@interop/webkms-client": "^14.7.1",
|
|
121
121
|
"@interop/x25519-key-agreement-key": "^5.2.1",
|
|
122
122
|
"@noble/hashes": "^2.2.0",
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Collection-encryption marker acquisition: reading a collection's
|
|
6
|
-
* `CollectionEncryption` marker (its key-epoch roster) from the Collection
|
|
7
|
-
* Description, caching each success, and falling back to the cached copy when
|
|
8
|
-
* the description cannot be fetched -- offline, a previously-shared collection
|
|
9
|
-
* must keep encrypting under its current epoch. A successful fetch that
|
|
10
|
-
* returns no marker (an unshared collection) yields `undefined`: the
|
|
11
|
-
* single-key path.
|
|
12
|
-
*
|
|
13
|
-
* The two seams are deliberately narrow, so a wallet app's own classes satisfy
|
|
14
|
-
* them structurally -- no adapter needed. A {@link MarkerSource} is one signed
|
|
15
|
-
* describe; a {@link MarkerCache} is a durable get/put the host has already
|
|
16
|
-
* scoped to one account's Space (a web wallet: a localStorage pair keyed by
|
|
17
|
-
* Space id; a mobile wallet: a per-(profile, collection) table column), so no
|
|
18
|
-
* scope key appears in the interface.
|
|
19
|
-
*/
|
|
20
|
-
import type { CollectionEncryption, WasClient } from '@interop/was-client';
|
|
21
|
-
/**
|
|
22
|
-
* Where markers come from: one signed read of the collection's Description.
|
|
23
|
-
* Resolves `undefined` for a collection that is plaintext or has no marker;
|
|
24
|
-
* network errors throw through (callers treat the fetch as best-effort and
|
|
25
|
-
* fall back to a cached copy).
|
|
26
|
-
*/
|
|
27
|
-
export interface MarkerSource {
|
|
28
|
-
collectionEncryption(options: {
|
|
29
|
-
collectionId: string;
|
|
30
|
-
}): Promise<CollectionEncryption | undefined>;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Where fetched markers survive offline: a durable get/put pre-scoped by the
|
|
34
|
-
* host to one account's Space. `readMarker` resolves `undefined` when nothing
|
|
35
|
-
* is cached (never throws for absence).
|
|
36
|
-
*/
|
|
37
|
-
export interface MarkerCache {
|
|
38
|
-
readMarker(options: {
|
|
39
|
-
collectionId: string;
|
|
40
|
-
}): Promise<CollectionEncryption | undefined>;
|
|
41
|
-
writeMarker(options: {
|
|
42
|
-
collectionId: string;
|
|
43
|
-
marker: CollectionEncryption;
|
|
44
|
-
}): Promise<void>;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* The {@link MarkerSource} over a was-client handle: reads the collection's
|
|
48
|
-
* Description in the given Space and returns its `encryption` marker.
|
|
49
|
-
*
|
|
50
|
-
* @param options {object}
|
|
51
|
-
* @param options.was {WasClient} a client whose signer can read the Space
|
|
52
|
-
* @param options.spaceId {string}
|
|
53
|
-
* @returns {MarkerSource}
|
|
54
|
-
*/
|
|
55
|
-
export declare function wasMarkerSource({ was, spaceId }: {
|
|
56
|
-
was: WasClient;
|
|
57
|
-
spaceId: string;
|
|
58
|
-
}): MarkerSource;
|
|
59
|
-
/**
|
|
60
|
-
* Acquires one collection's marker: fetches it from the source, caching a
|
|
61
|
-
* success; falls back to the cached copy when the fetch fails; and with no
|
|
62
|
-
* source at all (a purely local code path) reads the cache alone. A
|
|
63
|
-
* successful fetch that returns no marker resolves `undefined` -- an unshared
|
|
64
|
-
* collection stays on the single-key path -- and deliberately leaves any
|
|
65
|
-
* cached copy in place, mirroring the fetch-failure fallback.
|
|
66
|
-
*
|
|
67
|
-
* @param options {object}
|
|
68
|
-
* @param [options.source] {MarkerSource} omit for cache-only acquisition
|
|
69
|
-
* @param options.cache {MarkerCache}
|
|
70
|
-
* @param options.collectionId {string}
|
|
71
|
-
* @param [options.onFetchError] {function} observes a swallowed fetch
|
|
72
|
-
* failure (the cached-fallback branch); errors from the cache itself throw
|
|
73
|
-
* through
|
|
74
|
-
* @returns {Promise<CollectionEncryption | undefined>}
|
|
75
|
-
*/
|
|
76
|
-
export declare function acquireMarker({ source, cache, collectionId, onFetchError }: {
|
|
77
|
-
source?: MarkerSource;
|
|
78
|
-
cache: MarkerCache;
|
|
79
|
-
collectionId: string;
|
|
80
|
-
onFetchError?: (err: unknown, info: {
|
|
81
|
-
collectionId: string;
|
|
82
|
-
}) => void;
|
|
83
|
-
}): Promise<CollectionEncryption | undefined>;
|
|
84
|
-
/**
|
|
85
|
-
* Acquires markers for a set of collections concurrently (each fetch is an
|
|
86
|
-
* independent signed round trip, so a session start is not gated on a serial
|
|
87
|
-
* chain of describes). Collections that resolve no marker are simply absent
|
|
88
|
-
* from the result.
|
|
89
|
-
*
|
|
90
|
-
* @param options {object}
|
|
91
|
-
* @param [options.source] {MarkerSource} omit for cache-only acquisition
|
|
92
|
-
* @param options.cache {MarkerCache}
|
|
93
|
-
* @param options.collectionIds {string[]}
|
|
94
|
-
* @param [options.onFetchError] {function} observes each swallowed fetch
|
|
95
|
-
* failure
|
|
96
|
-
* @returns {Promise<Record<string, CollectionEncryption>>} keyed by
|
|
97
|
-
* collection id
|
|
98
|
-
*/
|
|
99
|
-
export declare function acquireMarkers({ source, cache, collectionIds, onFetchError }: {
|
|
100
|
-
source?: MarkerSource;
|
|
101
|
-
cache: MarkerCache;
|
|
102
|
-
collectionIds: string[];
|
|
103
|
-
onFetchError?: (err: unknown, info: {
|
|
104
|
-
collectionId: string;
|
|
105
|
-
}) => void;
|
|
106
|
-
}): Promise<Record<string, CollectionEncryption>>;
|
|
107
|
-
//# sourceMappingURL=acquire.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acquire.d.ts","sourceRoot":"","sources":["../../src/markers/acquire.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE1E;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,oBAAoB,CAAC,OAAO,EAAE;QAC5B,YAAY,EAAE,MAAM,CAAA;KACrB,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAA;CAC9C;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,OAAO,EAAE;QAClB,YAAY,EAAE,MAAM,CAAA;KACrB,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAA;IAC7C,WAAW,CAAC,OAAO,EAAE;QACnB,YAAY,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,oBAAoB,CAAA;KAC7B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,EAC9B,GAAG,EACH,OAAO,EACR,EAAE;IACD,GAAG,EAAE,SAAS,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB,GAAG,YAAY,CAUf;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,aAAa,CAAC,EAClC,MAAM,EACN,KAAK,EACL,YAAY,EACZ,YAAY,EACb,EAAE;IACD,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,KAAK,EAAE,WAAW,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACtE,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAe5C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAAC,EACnC,MAAM,EACN,KAAK,EACL,aAAa,EACb,YAAY,EACb,EAAE;IACD,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,KAAK,EAAE,WAAW,CAAA;IAClB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACtE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAiBhD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acquire.js","sourceRoot":"","sources":["../../src/markers/acquire.ts"],"names":[],"mappings":"AAgDA;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,GAAG,EACH,OAAO,EAIR;IACC,OAAO;QACL,KAAK,CAAC,oBAAoB,CAAC,EAAE,YAAY,EAAE;YACzC,MAAM,WAAW,GAAG,MAAM,GAAG;iBAC1B,KAAK,CAAC,OAAO,CAAC;iBACd,UAAU,CAAC,YAAY,CAAC;iBACxB,QAAQ,EAAE,CAAA;YACb,OAAO,WAAW,EAAE,UAAU,IAAI,SAAS,CAAA;QAC7C,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAClC,MAAM,EACN,KAAK,EACL,YAAY,EACZ,YAAY,EAMb;IACC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC,CAAA;IAC3C,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,EAAE,YAAY,EAAE,CAAC,CAAA;QACnE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,KAAK,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;YAC1D,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,CAAC,CAAA;QACrC,OAAO,KAAK,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC,CAAA;IAC3C,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EACnC,MAAM,EACN,KAAK,EACL,aAAa,EACb,YAAY,EAMb;IACC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,aAAa,CAAC,GAAG,CACf,KAAK,EAAC,YAAY,EAAC,EAAE,CACnB;QACE,YAAY;QACZ,MAAM,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;KAC1D,CACb,CACF,CAAA;IACD,MAAM,OAAO,GAAyC,EAAE,CAAA;IACxD,KAAK,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC9C,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,CAAA;QAChC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cipher.d.ts","sourceRoot":"","sources":["../../src/markers/cipher.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACb,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,cAAc,CAAA;AAErB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,4BAA4B,CAAC,EACjD,eAAe,EACf,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,KAAK,EACL,YAAY,EACb,EAAE;IACD,eAAe,EAAE,gBAAgB,CAAA;IACjC,WAAW,EAAE,YAAY,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;IACnC,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,KAAK,EAAE,WAAW,CAAA;IAClB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACtE,GAAG,OAAO,CAAC,SAAS,CAAC,CAqDrB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cipher.js","sourceRoot":"","sources":["../../src/markers/cipher.ts"],"names":[],"mappings":"AAuBA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EAElB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,aAAa,EAGd,MAAM,cAAc,CAAA;AAErB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,EACjD,eAAe,EACf,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,KAAK,EACL,YAAY,EASb;IACC,MAAM,KAAK,GAAG,KAAK,IAAwB,EAAE,CAC3C,kBAAkB,CAAC;QACjB,eAAe;QACf,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,UAAU,EAAE,MAAM,aAAa,CAAC;YAC9B,MAAM;YACN,KAAK;YACL,YAAY;YACZ,YAAY;SACb,CAAC;KACH,CAAC,CAAA;IAEJ,IAAI,KAAK,GAAG,MAAM,KAAK,EAAE,CAAA;IACzB,sEAAsE;IACtE,yEAAyE;IACzE,+CAA+C;IAC/C,IAAI,SAAS,GAAyB,IAAI,CAAA;IAE1C,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAE1C,aAAa,EAAE,OAAO,CAAC,EAAE;YACvB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACb,eAAe,YAAY,kCAAkC,CAC9D,CAAA;YACH,CAAC;YACD,OAAO,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QACrC,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE;YACxB,IAAI,CAAC;gBACH,OAAO,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;YAC1C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,CAAC,GAAG,YAAY,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACnD,MAAM,GAAG,CAAA;gBACX,CAAC;gBACD,SAAS,KAAK,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAClC,KAAK,GAAG,MAAM,CAAA;gBAChB,CAAC,CAAC,CAAA;gBACF,MAAM,SAAS,CAAA;gBACf,iEAAiE;gBACjE,8DAA8D;gBAC9D,+DAA+D;gBAC/D,iEAAiE;gBACjE,2BAA2B;gBAC3B,OAAO,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
|
package/dist/markers/index.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* The `@interop/wallet-core/markers` subpath: collection-encryption marker
|
|
6
|
-
* acquisition and the unknown-epoch refresh policy -- the one implementation
|
|
7
|
-
* of "which key epoch does this collection encrypt under, and when do we ask
|
|
8
|
-
* again" that every wallet replica must share (a drift here does not fail
|
|
9
|
-
* loudly; it fails as a resource one replica cannot decrypt).
|
|
10
|
-
*
|
|
11
|
-
* - `MarkerSource` / `MarkerCache` -- the narrow seams a host implements:
|
|
12
|
-
* one signed Collection Description read, and a durable get/put pre-scoped
|
|
13
|
-
* to one account's Space.
|
|
14
|
-
* - `wasMarkerSource` -- the `MarkerSource` over a was-client handle.
|
|
15
|
-
* - `acquireMarker` / `acquireMarkers` -- fetch + cache with the cached
|
|
16
|
-
* fallback (offline, a previously-shared collection keeps encrypting under
|
|
17
|
-
* its current epoch; no marker at all is the single-key path).
|
|
18
|
-
* - `MarkerRefreshPolicy` -- the once-per-collection-per-session unknown-epoch
|
|
19
|
-
* refresh guard, plus the refresh-and-re-read-once wrapper for hosts whose
|
|
20
|
-
* reads scan rows and count unknown-epoch skips.
|
|
21
|
-
* - `createRefreshingEdvDocCipher` -- `createEdvDocCipher` bound to both: a
|
|
22
|
-
* cipher that acquires its own marker and, on an unknown-epoch decrypt,
|
|
23
|
-
* re-reads the description, swaps itself, and retries exactly once per
|
|
24
|
-
* instance.
|
|
25
|
-
*/
|
|
26
|
-
export { acquireMarker, acquireMarkers, wasMarkerSource } from './acquire.js';
|
|
27
|
-
export type { MarkerCache, MarkerSource } from './acquire.js';
|
|
28
|
-
export { MarkerRefreshPolicy } from './refresh.js';
|
|
29
|
-
export { createRefreshingEdvDocCipher } from './cipher.js';
|
|
30
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/markers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC7E,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/markers/index.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* The `@interop/wallet-core/markers` subpath: collection-encryption marker
|
|
6
|
-
* acquisition and the unknown-epoch refresh policy -- the one implementation
|
|
7
|
-
* of "which key epoch does this collection encrypt under, and when do we ask
|
|
8
|
-
* again" that every wallet replica must share (a drift here does not fail
|
|
9
|
-
* loudly; it fails as a resource one replica cannot decrypt).
|
|
10
|
-
*
|
|
11
|
-
* - `MarkerSource` / `MarkerCache` -- the narrow seams a host implements:
|
|
12
|
-
* one signed Collection Description read, and a durable get/put pre-scoped
|
|
13
|
-
* to one account's Space.
|
|
14
|
-
* - `wasMarkerSource` -- the `MarkerSource` over a was-client handle.
|
|
15
|
-
* - `acquireMarker` / `acquireMarkers` -- fetch + cache with the cached
|
|
16
|
-
* fallback (offline, a previously-shared collection keeps encrypting under
|
|
17
|
-
* its current epoch; no marker at all is the single-key path).
|
|
18
|
-
* - `MarkerRefreshPolicy` -- the once-per-collection-per-session unknown-epoch
|
|
19
|
-
* refresh guard, plus the refresh-and-re-read-once wrapper for hosts whose
|
|
20
|
-
* reads scan rows and count unknown-epoch skips.
|
|
21
|
-
* - `createRefreshingEdvDocCipher` -- `createEdvDocCipher` bound to both: a
|
|
22
|
-
* cipher that acquires its own marker and, on an unknown-epoch decrypt,
|
|
23
|
-
* re-reads the description, swaps itself, and retries exactly once per
|
|
24
|
-
* instance.
|
|
25
|
-
*/
|
|
26
|
-
export { acquireMarker, acquireMarkers, wasMarkerSource } from './acquire.js';
|
|
27
|
-
export { MarkerRefreshPolicy } from './refresh.js';
|
|
28
|
-
export { createRefreshingEdvDocCipher } from './cipher.js';
|
|
29
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/markers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../src/markers/refresh.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;GAQG;AAEH;;;;;;GAMG;AACH,qBAAa,mBAAmB;;gBAKlB,EACV,OAAO,EACR,EAAE;QACD,OAAO,EAAE,CAAC,OAAO,EAAE;YAAE,YAAY,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAC9D;IAID,mEAAmE;IACnE,aAAa,CAAC,EAAE,YAAY,EAAE,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAIlE;;;;;;;;;;;OAWG;IACG,eAAe,CAAC,CAAC,EAAE,EACvB,YAAY,EACZ,IAAI,EACL,EAAE;QACD,YAAY,EAAE,MAAM,CAAA;QACpB,IAAI,EAAE,MAAM,OAAO,CAAC;YAAE,KAAK,EAAE,CAAC,CAAC;YAAC,YAAY,EAAE,OAAO,CAAA;SAAE,CAAC,CAAA;KACzD,GAAG,OAAO,CAAC,CAAC,CAAC;IAUd;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAOjD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"refresh.js","sourceRoot":"","sources":["../../src/markers/refresh.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;GAQG;AAEH;;;;;;GAMG;AACH,MAAM,OAAO,mBAAmB;IACrB,QAAQ,CAAsD;IACvE,kEAAkE;IACzD,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;IAEvC,YAAY,EACV,OAAO,EAGR;QACC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACzB,CAAC;IAED,mEAAmE;IACnE,aAAa,CAAC,EAAE,YAAY,EAA4B;QACtD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IAC3C,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,eAAe,CAAI,EACvB,YAAY,EACZ,IAAI,EAIL;QACC,MAAM,KAAK,GAAG,MAAM,IAAI,EAAE,CAAA;QAC1B,IAAI,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YACjC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC,CAAA;YACrC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAA;QAC7B,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAA;IACpB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAmC;QACvC,IAAI,OAAO,EAAE,YAAY,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;CACF"}
|