@interop/was-client 0.41.0 → 0.43.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/Collection.d.ts.map +1 -1
- package/dist/Collection.js +27 -83
- package/dist/Collection.js.map +1 -1
- package/dist/Resource.d.ts +10 -7
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +32 -99
- package/dist/Resource.js.map +1 -1
- package/dist/codec.d.ts +18 -4
- package/dist/codec.d.ts.map +1 -1
- package/dist/codec.js.map +1 -1
- package/dist/edv/EdvCodec.d.ts +77 -8
- package/dist/edv/EdvCodec.d.ts.map +1 -1
- package/dist/edv/EdvCodec.js +361 -224
- package/dist/edv/EdvCodec.js.map +1 -1
- package/dist/edv/WasTransport.js +2 -2
- package/dist/edv/WasTransport.js.map +1 -1
- package/dist/edv/constants.d.ts +0 -8
- package/dist/edv/constants.d.ts.map +1 -1
- package/dist/edv/constants.js +0 -8
- package/dist/edv/constants.js.map +1 -1
- package/dist/edv/descriptorStore.d.ts +10 -6
- package/dist/edv/descriptorStore.d.ts.map +1 -1
- package/dist/edv/descriptorStore.js +5 -3
- package/dist/edv/descriptorStore.js.map +1 -1
- package/dist/edv/didKeyRecipient.d.ts.map +1 -1
- package/dist/edv/didKeyRecipient.js +1 -1
- package/dist/edv/didKeyRecipient.js.map +1 -1
- package/dist/edv/docCipher.d.ts.map +1 -1
- package/dist/edv/docCipher.js +22 -38
- package/dist/edv/docCipher.js.map +1 -1
- package/dist/edv/epochCrypto.d.ts +7 -0
- package/dist/edv/epochCrypto.d.ts.map +1 -1
- package/dist/edv/epochCrypto.js +12 -5
- package/dist/edv/epochCrypto.js.map +1 -1
- package/dist/edv/epochKeys.d.ts.map +1 -1
- package/dist/edv/epochKeys.js +21 -37
- package/dist/edv/epochKeys.js.map +1 -1
- package/dist/edv/epochRoster.d.ts +24 -0
- package/dist/edv/epochRoster.d.ts.map +1 -1
- package/dist/edv/epochRoster.js +26 -0
- package/dist/edv/epochRoster.js.map +1 -1
- package/dist/edv/index.d.ts +2 -2
- package/dist/edv/index.d.ts.map +1 -1
- package/dist/edv/index.js +1 -1
- package/dist/edv/index.js.map +1 -1
- package/dist/edv/recipients.d.ts +2 -2
- package/dist/edv/recipients.d.ts.map +1 -1
- package/dist/edv/recipients.js +238 -202
- package/dist/edv/recipients.js.map +1 -1
- package/dist/internal/codec.d.ts.map +1 -1
- package/dist/internal/codec.js +5 -18
- package/dist/internal/codec.js.map +1 -1
- package/dist/internal/conditional.d.ts +33 -2
- package/dist/internal/conditional.d.ts.map +1 -1
- package/dist/internal/conditional.js +52 -0
- package/dist/internal/conditional.js.map +1 -1
- package/dist/internal/content.d.ts +7 -0
- package/dist/internal/content.d.ts.map +1 -1
- package/dist/internal/content.js +7 -0
- package/dist/internal/content.js.map +1 -1
- package/dist/internal/features.d.ts.map +1 -1
- package/dist/internal/features.js +9 -9
- package/dist/internal/features.js.map +1 -1
- package/dist/internal/indexSchema.d.ts +0 -10
- package/dist/internal/indexSchema.d.ts.map +1 -1
- package/dist/internal/indexSchema.js +1 -1
- package/dist/internal/indexSchema.js.map +1 -1
- package/dist/internal/memo.d.ts +39 -0
- package/dist/internal/memo.d.ts.map +1 -0
- package/dist/internal/memo.js +59 -0
- package/dist/internal/memo.js.map +1 -0
- package/dist/internal/meta.d.ts +92 -0
- package/dist/internal/meta.d.ts.map +1 -0
- package/dist/internal/meta.js +126 -0
- package/dist/internal/meta.js.map +1 -0
- package/dist/internal/pagination.js +1 -1
- package/dist/internal/pagination.js.map +1 -1
- package/dist/internal/withCodec.d.ts +26 -0
- package/dist/internal/withCodec.d.ts.map +1 -0
- package/dist/internal/withCodec.js +15 -0
- package/dist/internal/withCodec.js.map +1 -0
- package/dist/internal/write.d.ts +5 -8
- package/dist/internal/write.d.ts.map +1 -1
- package/dist/internal/write.js +25 -11
- package/dist/internal/write.js.map +1 -1
- package/dist/log/logStore.d.ts +6 -3
- package/dist/log/logStore.d.ts.map +1 -1
- package/dist/log/logStore.js +6 -3
- package/dist/log/logStore.js.map +1 -1
- package/dist/sync/cid.d.ts.map +1 -1
- package/dist/sync/cid.js +1 -6
- package/dist/sync/cid.js.map +1 -1
- package/dist/sync/index.d.ts +2 -1
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +5 -1
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/port.d.ts +0 -14
- package/dist/sync/port.d.ts.map +1 -1
- package/dist/sync/port.js +6 -19
- package/dist/sync/port.js.map +1 -1
- package/dist/sync/provisioning.d.ts.map +1 -1
- package/dist/sync/provisioning.js +23 -2
- package/dist/sync/provisioning.js.map +1 -1
- package/package.json +1 -1
package/dist/edv/epochKeys.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { KeyUnwrapError } from '../errors.js';
|
|
2
|
+
import { Memo } from '../internal/memo.js';
|
|
2
3
|
import { epochKeyIdFor, reconstructEpochKeyPair, unwrapEpochSecret } from './epochCrypto.js';
|
|
4
|
+
import { pickEpoch } from './epochRoster.js';
|
|
3
5
|
/**
|
|
4
6
|
* Resolves the reader's epoch keys from a descriptor. Returns `null` when the
|
|
5
7
|
* descriptor declares no epochs (the epoch codec refuses such a descriptor
|
|
@@ -30,16 +32,10 @@ export async function resolveEpochKeys({ encryption, keyAgreementKey }) {
|
|
|
30
32
|
"reader's key-agreement key). Add this reader with addRecipient, or " +
|
|
31
33
|
'supply the correct key-agreement key.');
|
|
32
34
|
}
|
|
33
|
-
//
|
|
34
|
-
//
|
|
35
|
-
//
|
|
36
|
-
|
|
37
|
-
// recipient of `currentEpoch` is a removed/archive reader whose writes the
|
|
38
|
-
// server rejects via its revoked zcap anyway; selecting a deterministic
|
|
39
|
-
// fallback here only keeps the local `writeEpoch`/`writeKey` well-defined
|
|
40
|
-
// instead of assuming the `epochs` array is append-ordered newest-last.
|
|
41
|
-
const writeEpochEntry = namedEpochs.find(epoch => epoch.id === encryption.currentEpoch) ??
|
|
42
|
-
namedEpochs.at(-1);
|
|
35
|
+
// The candidates are only the epochs this reader is named in: it can write
|
|
36
|
+
// under no other, so a `currentEpoch` it does not hold falls back within its
|
|
37
|
+
// own epochs rather than to a roster entry it cannot unwrap.
|
|
38
|
+
const writeEpochEntry = pickEpoch(namedEpochs, encryption.currentEpoch);
|
|
43
39
|
// The write epoch is unwrapped eagerly: `writeKey` must be a full key pair the
|
|
44
40
|
// EDV cipher can name recipients with and encrypt under right away.
|
|
45
41
|
const writeKey = await unwrapEpochKey({
|
|
@@ -103,37 +99,25 @@ async function unwrapEpochKey({ epoch, keyAgreementKey }) {
|
|
|
103
99
|
* @returns {IKeyAgreementKey}
|
|
104
100
|
*/
|
|
105
101
|
function lazyEpochKey({ epoch, keyAgreementKey }) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
return key;
|
|
119
|
-
});
|
|
120
|
-
// Cache only a successful unwrap: drop a rejected promise so the next
|
|
121
|
-
// read re-attempts (the failure may have been transient), rather than
|
|
122
|
-
// replaying the same cached rejection for the life of the handle. The
|
|
123
|
-
// identity guard avoids clobbering a newer in-flight attempt.
|
|
124
|
-
promise.catch(() => {
|
|
125
|
-
if (pending === promise) {
|
|
126
|
-
pending = undefined;
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
pending = promise;
|
|
102
|
+
// The memo caches only a successful unwrap: a rejected attempt is dropped so
|
|
103
|
+
// the next read re-attempts (the failure may have been transient), rather
|
|
104
|
+
// than replaying the same cached rejection for the life of the handle.
|
|
105
|
+
const memo = new Memo(async () => {
|
|
106
|
+
const key = await unwrapEpochKey({ epoch, keyAgreementKey });
|
|
107
|
+
if (!key) {
|
|
108
|
+
// The reader was named in this epoch (else no lazy key was built) but its
|
|
109
|
+
// entry did not unwrap: a corrupt entry. The codec's `_decrypt` catches
|
|
110
|
+
// this and tries the next candidate before surfacing its own typed
|
|
111
|
+
// failure.
|
|
112
|
+
throw new KeyUnwrapError(`This reader's recipient entry for epoch "${epoch.id}" did not ` +
|
|
113
|
+
'unwrap (a corrupt entry).');
|
|
130
114
|
}
|
|
131
|
-
return
|
|
132
|
-
};
|
|
115
|
+
return key;
|
|
116
|
+
});
|
|
133
117
|
return {
|
|
134
118
|
id: epochKeyIdFor(epoch.id),
|
|
135
119
|
async deriveSecret(options) {
|
|
136
|
-
const key = await
|
|
120
|
+
const key = await memo.get();
|
|
137
121
|
return key.deriveSecret(options);
|
|
138
122
|
}
|
|
139
123
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epochKeys.js","sourceRoot":"","sources":["../../src/edv/epochKeys.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"epochKeys.js","sourceRoot":"","sources":["../../src/edv/epochKeys.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAK1C,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAuB5C;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,UAAU,EACV,eAAe,EAIhB;IACC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;IAChC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IACD,yEAAyE;IACzE,sEAAsE;IACtE,6EAA6E;IAC7E,8DAA8D;IAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxC,KAAK,CAAC,UAAU,CAAC,IAAI,CACnB,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,eAAe,CAAC,EAAE,CACzD,CACF,CAAA;IACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,cAAc,CACtB,oEAAoE;YAClE,mEAAmE;YACnE,qEAAqE;YACrE,uCAAuC,CAC1C,CAAA;IACH,CAAC;IACD,2EAA2E;IAC3E,6EAA6E;IAC7E,6DAA6D;IAC7D,MAAM,eAAe,GAAG,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,YAAY,CAAC,CAAA;IACvE,+EAA+E;IAC/E,oEAAoE;IACpE,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC;QACpC,KAAK,EAAE,eAAe;QACtB,eAAe;KAChB,CAAC,CAAA;IACF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,cAAc,CACtB,oDAAoD;YAClD,IAAI,eAAe,CAAC,EAAE,6CAA6C;YACnE,qEAAqE;YACrE,MAAM,CACT,CAAA;IACH,CAAC;IACD,8EAA8E;IAC9E,8EAA8E;IAC9E,+EAA+E;IAC/E,yEAAyE;IACzE,wEAAwE;IACxE,4EAA4E;IAC5E,iBAAiB;IACjB,MAAM,QAAQ,GAAuB,CAAC,QAAQ,CAAC,CAAA;IAC/C,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,CAAA;QACzD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;AAC/D,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,cAAc,CAAC,EAC5B,KAAK,EACL,eAAe,EAIhB;IACC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CACjC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,eAAe,CAAC,EAAE,CACzD,CAAA;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAA;IAClE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,uBAAuB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;AAC/D,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,YAAY,CAAC,EACpB,KAAK,EACL,eAAe,EAIhB;IACC,6EAA6E;IAC7E,0EAA0E;IAC1E,uEAAuE;IACvE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAA;QAC5D,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,0EAA0E;YAC1E,wEAAwE;YACxE,mEAAmE;YACnE,WAAW;YACX,MAAM,IAAI,cAAc,CACtB,4CAA4C,KAAK,CAAC,EAAE,YAAY;gBAC9D,2BAA2B,CAC9B,CAAA;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;IACF,OAAO;QACL,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,YAAY,CAAC,OAA+B;YAChD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,OAAO,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAClC,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -50,4 +50,28 @@ export declare function hasKeyEpochs(encryption?: CollectionEncryption): encrypt
|
|
|
50
50
|
* @returns {boolean}
|
|
51
51
|
*/
|
|
52
52
|
export declare function epochRostersEqual(current?: CollectionEncryption, next?: CollectionEncryption): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Picks the epoch to write under from a roster: the entry named by
|
|
55
|
+
* `currentEpoch` when the list holds it, otherwise the LAST entry in the
|
|
56
|
+
* list's canonical order.
|
|
57
|
+
*
|
|
58
|
+
* The fallback is defined against the list's own order rather than against the
|
|
59
|
+
* incidental order in which secrets happened to unwrap, so the choice is
|
|
60
|
+
* deterministic for every caller. Callers pass the list they are entitled to
|
|
61
|
+
* write under -- the full roster during a rotation, or only the epochs a given
|
|
62
|
+
* reader names -- and the rule itself does not vary between them. A reader that
|
|
63
|
+
* does not hold `currentEpoch` is a removed/archive reader whose writes the
|
|
64
|
+
* server rejects via its revoked zcap anyway; the fallback only keeps the
|
|
65
|
+
* selection well-defined instead of assuming the list is append-ordered
|
|
66
|
+
* newest-last.
|
|
67
|
+
*
|
|
68
|
+
* The list must be non-empty -- every caller has already established that it
|
|
69
|
+
* holds at least one epoch, so an empty list is a programming error rather than
|
|
70
|
+
* a state this can report on.
|
|
71
|
+
*
|
|
72
|
+
* @param epochs {CollectionEncryptionEpoch[]} the non-empty list to pick from
|
|
73
|
+
* @param [currentEpoch] {string} the descriptor's declared write epoch
|
|
74
|
+
* @returns {CollectionEncryptionEpoch}
|
|
75
|
+
*/
|
|
76
|
+
export declare function pickEpoch(epochs: CollectionEncryptionEpoch[], currentEpoch?: string): CollectionEncryptionEpoch;
|
|
53
77
|
//# sourceMappingURL=epochRoster.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epochRoster.d.ts","sourceRoot":"","sources":["../../src/edv/epochRoster.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,aAAa,CAAA;AAEpB;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAC1B,UAAU,CAAC,EAAE,oBAAoB,GAChC,UAAU,IAAI,oBAAoB,GAAG;IACtC,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,yBAAyB,EAAE,CAAA;CACpC,CAOA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,CAAC,EAAE,oBAAoB,EAC9B,IAAI,CAAC,EAAE,oBAAoB,GAC1B,OAAO,CAaT"}
|
|
1
|
+
{"version":3,"file":"epochRoster.d.ts","sourceRoot":"","sources":["../../src/edv/epochRoster.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,aAAa,CAAA;AAEpB;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAC1B,UAAU,CAAC,EAAE,oBAAoB,GAChC,UAAU,IAAI,oBAAoB,GAAG;IACtC,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,yBAAyB,EAAE,CAAA;CACpC,CAOA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,CAAC,EAAE,oBAAoB,EAC9B,IAAI,CAAC,EAAE,oBAAoB,GAC1B,OAAO,CAaT;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,yBAAyB,EAAE,EACnC,YAAY,CAAC,EAAE,MAAM,GACpB,yBAAyB,CAE3B"}
|
package/dist/edv/epochRoster.js
CHANGED
|
@@ -46,4 +46,30 @@ export function epochRostersEqual(current, next) {
|
|
|
46
46
|
return (currentIds.length === nextIds.length &&
|
|
47
47
|
currentIds.every((id, index) => id === nextIds[index]));
|
|
48
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Picks the epoch to write under from a roster: the entry named by
|
|
51
|
+
* `currentEpoch` when the list holds it, otherwise the LAST entry in the
|
|
52
|
+
* list's canonical order.
|
|
53
|
+
*
|
|
54
|
+
* The fallback is defined against the list's own order rather than against the
|
|
55
|
+
* incidental order in which secrets happened to unwrap, so the choice is
|
|
56
|
+
* deterministic for every caller. Callers pass the list they are entitled to
|
|
57
|
+
* write under -- the full roster during a rotation, or only the epochs a given
|
|
58
|
+
* reader names -- and the rule itself does not vary between them. A reader that
|
|
59
|
+
* does not hold `currentEpoch` is a removed/archive reader whose writes the
|
|
60
|
+
* server rejects via its revoked zcap anyway; the fallback only keeps the
|
|
61
|
+
* selection well-defined instead of assuming the list is append-ordered
|
|
62
|
+
* newest-last.
|
|
63
|
+
*
|
|
64
|
+
* The list must be non-empty -- every caller has already established that it
|
|
65
|
+
* holds at least one epoch, so an empty list is a programming error rather than
|
|
66
|
+
* a state this can report on.
|
|
67
|
+
*
|
|
68
|
+
* @param epochs {CollectionEncryptionEpoch[]} the non-empty list to pick from
|
|
69
|
+
* @param [currentEpoch] {string} the descriptor's declared write epoch
|
|
70
|
+
* @returns {CollectionEncryptionEpoch}
|
|
71
|
+
*/
|
|
72
|
+
export function pickEpoch(epochs, currentEpoch) {
|
|
73
|
+
return epochs.find(epoch => epoch.id === currentEpoch) ?? epochs.at(-1);
|
|
74
|
+
}
|
|
49
75
|
//# sourceMappingURL=epochRoster.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epochRoster.js","sourceRoot":"","sources":["../../src/edv/epochRoster.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAC1B,UAAiC;IAKjC,OAAO,CACL,UAAU,KAAK,SAAS;QACxB,OAAO,UAAU,CAAC,YAAY,KAAK,QAAQ;QAC3C,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QAChC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAC7B,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA8B,EAC9B,IAA2B;IAE3B,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAChD,OAAO,OAAO,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,CAAA;IACpD,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAChE,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC1D,OAAO,CACL,UAAU,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;QACpC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CACvD,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"epochRoster.js","sourceRoot":"","sources":["../../src/edv/epochRoster.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAC1B,UAAiC;IAKjC,OAAO,CACL,UAAU,KAAK,SAAS;QACxB,OAAO,UAAU,CAAC,YAAY,KAAK,QAAQ;QAC3C,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QAChC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAC7B,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA8B,EAC9B,IAA2B;IAE3B,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAChD,OAAO,OAAO,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,CAAA;IACpD,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAChE,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC1D,OAAO,CACL,UAAU,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;QACpC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CACvD,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,SAAS,CACvB,MAAmC,EACnC,YAAqB;IAErB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,YAAY,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAA;AAC1E,CAAC"}
|
package/dist/edv/index.d.ts
CHANGED
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
* recipient key is always derived from an identifier both sides already hold
|
|
43
43
|
* rather than transmitted.
|
|
44
44
|
*/
|
|
45
|
-
export { createEdvEncryption, EdvCodec } from './EdvCodec.js';
|
|
46
|
-
export type { EdvKeys } from './EdvCodec.js';
|
|
45
|
+
export { createEdvEncryption, EdvCodec, wasTransportFactory } from './EdvCodec.js';
|
|
46
|
+
export type { CodecTransportFactory, EdvKeys } from './EdvCodec.js';
|
|
47
47
|
export { WasTransport } from './WasTransport.js';
|
|
48
48
|
export { EDV_SCHEME_VERSION, JOSE_CONTENT_TYPE } from './constants.js';
|
|
49
49
|
export { ensureFirstEpoch, initRecipients, addRecipient, removeRecipient, replaceRecipient } from './recipients.js';
|
package/dist/edv/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/edv/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/edv/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,EACL,mBAAmB,EACnB,QAAQ,EACR,mBAAmB,EACpB,MAAM,eAAe,CAAA;AACtB,YAAY,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACtE,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EACL,eAAe,EACf,yBAAyB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,EACL,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EACL,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,cAAc,EACf,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA"}
|
package/dist/edv/index.js
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
* recipient key is always derived from an identifier both sides already hold
|
|
43
43
|
* rather than transmitted.
|
|
44
44
|
*/
|
|
45
|
-
export { createEdvEncryption, EdvCodec } from './EdvCodec.js';
|
|
45
|
+
export { createEdvEncryption, EdvCodec, wasTransportFactory } from './EdvCodec.js';
|
|
46
46
|
export { WasTransport } from './WasTransport.js';
|
|
47
47
|
export { EDV_SCHEME_VERSION, JOSE_CONTENT_TYPE } from './constants.js';
|
|
48
48
|
export { ensureFirstEpoch, initRecipients, addRecipient, removeRecipient, replaceRecipient } from './recipients.js';
|
package/dist/edv/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/edv/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/edv/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,EACL,mBAAmB,EACnB,QAAQ,EACR,mBAAmB,EACpB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACtE,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,eAAe,EACf,yBAAyB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,EACL,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,cAAc,EACf,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,kBAAkB,EAClB,6BAA6B,EAC7B,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,gBAAgB,CAAA"}
|
package/dist/edv/recipients.d.ts
CHANGED
|
@@ -250,8 +250,8 @@ export declare function removeRecipient({ collection, store, space, recipientId,
|
|
|
250
250
|
* already run elsewhere (e.g. a DID-document edit under a current-key-set
|
|
251
251
|
* rule) passes a no-op `pull`.
|
|
252
252
|
*
|
|
253
|
-
* The rotation
|
|
254
|
-
* key still opens every pre-rotation epoch it was a recipient of.
|
|
253
|
+
* The limits of the rotation are unchanged: nothing is re-encrypted, so a
|
|
254
|
+
* retired key still opens every pre-rotation epoch it was a recipient of.
|
|
255
255
|
*
|
|
256
256
|
* A blinded-index HMAC key on the descriptor follows the same shape in the same
|
|
257
257
|
* write: the incoming recipient gains a wrap entry, the retiring kid(s) lose
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipients.d.ts","sourceRoot":"","sources":["../../src/edv/recipients.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAQxC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,KAAK,EACV,oBAAoB,EAIpB,cAAc,EACf,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"recipients.d.ts","sourceRoot":"","sources":["../../src/edv/recipients.ts"],"names":[],"mappings":"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"}
|