@keyneom/sync-kit 0.2.0-rc.1 → 0.2.0-rc.10

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.
Files changed (35) hide show
  1. package/dist/sharing/appdata-identity-store.d.ts +36 -0
  2. package/dist/sharing/appdata-identity-store.d.ts.map +1 -0
  3. package/dist/sharing/appdata-identity-store.js +49 -0
  4. package/dist/sharing/appdata-identity-store.js.map +1 -0
  5. package/dist/sharing/controller.d.ts +58 -3
  6. package/dist/sharing/controller.d.ts.map +1 -1
  7. package/dist/sharing/controller.js +316 -117
  8. package/dist/sharing/controller.js.map +1 -1
  9. package/dist/sharing/index.d.ts +1 -0
  10. package/dist/sharing/index.d.ts.map +1 -1
  11. package/dist/sharing/index.js +1 -0
  12. package/dist/sharing/index.js.map +1 -1
  13. package/dist/sharing/link-exchange.d.ts +51 -0
  14. package/dist/sharing/link-exchange.d.ts.map +1 -0
  15. package/dist/sharing/link-exchange.js +131 -0
  16. package/dist/sharing/link-exchange.js.map +1 -0
  17. package/dist/sharing/migrating-identity-store.d.ts +29 -0
  18. package/dist/sharing/migrating-identity-store.d.ts.map +1 -0
  19. package/dist/sharing/migrating-identity-store.js +37 -0
  20. package/dist/sharing/migrating-identity-store.js.map +1 -0
  21. package/dist/sharing/transport.d.ts +2 -0
  22. package/dist/sharing/transport.d.ts.map +1 -1
  23. package/dist/stores/google-drive/index.d.ts +20 -0
  24. package/dist/stores/google-drive/index.d.ts.map +1 -1
  25. package/dist/stores/google-drive/index.js +64 -0
  26. package/dist/stores/google-drive/index.js.map +1 -1
  27. package/dist/stores/google-drive/picker.d.ts +20 -0
  28. package/dist/stores/google-drive/picker.d.ts.map +1 -1
  29. package/dist/stores/google-drive/picker.js +64 -0
  30. package/dist/stores/google-drive/picker.js.map +1 -1
  31. package/dist/stores/google-drive/sharing.d.ts +2 -0
  32. package/dist/stores/google-drive/sharing.d.ts.map +1 -1
  33. package/dist/stores/google-drive/sharing.js +83 -6
  34. package/dist/stores/google-drive/sharing.js.map +1 -1
  35. package/package.json +15 -3
@@ -0,0 +1,36 @@
1
+ import type { Authorization } from "../core/types.js";
2
+ import { GoogleDriveAppDataStore } from "../stores/google-drive/index.js";
3
+ import { type ProtectedSharingIdentityStore, type ProtectedSharingIdentityV1 } from "./web-passkey.js";
4
+ export type DriveAppDataProtectedSharingIdentityStoreOptions = {
5
+ /**
6
+ * Supplies a Drive authorization scoped to `drive.appdata`. The same Google
7
+ * account on any device returns the same private app-data folder, which is
8
+ * how a single sharing identity follows the user across devices.
9
+ */
10
+ authorization(): Promise<Authorization>;
11
+ /** Overrides the app-data filename derived from the app id. */
12
+ filename?(appId: string): string;
13
+ drive?: GoogleDriveAppDataStore;
14
+ };
15
+ /**
16
+ * Hosts the passkey-wrapped sharing identity in the signed-in Google account's
17
+ * private `drive.appdata` folder instead of device-local storage. Because the
18
+ * record is already AES-GCM-encrypted with the passkey PRF secret, app-data is
19
+ * a plaintext-safe transport: Drive only ever sees an opaque JSON blob whose
20
+ * `encryptedPrivateKeys` field it cannot read.
21
+ *
22
+ * The single-user, multi-device continuity this restores is deliberately
23
+ * distinct from the sharing (multi-user) protocol: the identity here is one
24
+ * account's own key, replicated to its own devices, never granted to another
25
+ * participant.
26
+ */
27
+ export declare class DriveAppDataProtectedSharingIdentityStore implements ProtectedSharingIdentityStore {
28
+ private readonly options;
29
+ private readonly drive;
30
+ constructor(options: DriveAppDataProtectedSharingIdentityStoreOptions);
31
+ load(appId: string): Promise<ProtectedSharingIdentityV1 | null>;
32
+ save(record: ProtectedSharingIdentityV1): Promise<void>;
33
+ delete(appId: string): Promise<void>;
34
+ private filename;
35
+ }
36
+ //# sourceMappingURL=appdata-identity-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appdata-identity-store.d.ts","sourceRoot":"","sources":["../../src/sharing/appdata-identity-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAEL,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAChC,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,gDAAgD,GAAG;IAC7D;;;;OAIG;IACH,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IACxC,+DAA+D;IAC/D,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,KAAK,CAAC,EAAE,uBAAuB,CAAC;CACjC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,qBAAa,yCACX,YAAW,6BAA6B;IAKtC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAH1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;gBAG7B,OAAO,EAAE,gDAAgD;IAKtE,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC;IAQ/D,IAAI,CAAC,MAAM,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1C,OAAO,CAAC,QAAQ;CAKjB"}
@@ -0,0 +1,49 @@
1
+ import { GoogleDriveAppDataStore } from "../stores/google-drive/index.js";
2
+ import { parseProtectedSharingIdentityV1, } from "./web-passkey.js";
3
+ /**
4
+ * Hosts the passkey-wrapped sharing identity in the signed-in Google account's
5
+ * private `drive.appdata` folder instead of device-local storage. Because the
6
+ * record is already AES-GCM-encrypted with the passkey PRF secret, app-data is
7
+ * a plaintext-safe transport: Drive only ever sees an opaque JSON blob whose
8
+ * `encryptedPrivateKeys` field it cannot read.
9
+ *
10
+ * The single-user, multi-device continuity this restores is deliberately
11
+ * distinct from the sharing (multi-user) protocol: the identity here is one
12
+ * account's own key, replicated to its own devices, never granted to another
13
+ * participant.
14
+ */
15
+ export class DriveAppDataProtectedSharingIdentityStore {
16
+ options;
17
+ drive;
18
+ constructor(options) {
19
+ this.options = options;
20
+ this.drive = options.drive ?? new GoogleDriveAppDataStore();
21
+ }
22
+ async load(appId) {
23
+ const authorization = await this.options.authorization();
24
+ const found = await this.drive.find(this.filename(appId), authorization);
25
+ if (!found)
26
+ return null;
27
+ const text = await this.drive.readText(found.fileId, authorization);
28
+ return parseProtectedSharingIdentityV1(text);
29
+ }
30
+ async save(record) {
31
+ const authorization = await this.options.authorization();
32
+ const name = this.filename(record.appId);
33
+ const found = await this.drive.find(name, authorization);
34
+ await this.drive.write(name, JSON.stringify(record), authorization, {
35
+ ...(found ? { existingId: found.fileId } : {}),
36
+ contentType: "application/json",
37
+ });
38
+ }
39
+ async delete(appId) {
40
+ const authorization = await this.options.authorization();
41
+ const found = await this.drive.find(this.filename(appId), authorization);
42
+ if (found)
43
+ await this.drive.delete(found.fileId, authorization);
44
+ }
45
+ filename(appId) {
46
+ return (this.options.filename?.(appId) ?? `sync-kit-sharing-identity-${appId}.json`);
47
+ }
48
+ }
49
+ //# sourceMappingURL=appdata-identity-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appdata-identity-store.js","sourceRoot":"","sources":["../../src/sharing/appdata-identity-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EACL,+BAA+B,GAGhC,MAAM,kBAAkB,CAAC;AAc1B;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,yCAAyC;IAMjC;IAHF,KAAK,CAA0B;IAEhD,YACmB,OAAyD;QAAzD,YAAO,GAAP,OAAO,CAAkD;QAE1E,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,uBAAuB,EAAE,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa;QACtB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACpE,OAAO,+BAA+B,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAkC;QAC3C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE;YAClE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,WAAW,EAAE,kBAAkB;SAChC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC;QACzE,IAAI,KAAK;YAAE,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAClE,CAAC;IAEO,QAAQ,CAAC,KAAa;QAC5B,OAAO,CACL,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,6BAA6B,KAAK,OAAO,CAC5E,CAAC;IACJ,CAAC;CACF"}
@@ -1,4 +1,5 @@
1
- import { type SharedBackupCodec, type SharingAccountBindingV1, type SharingDatasetGrantV1, type SharingInvitationV1, type SharingRole } from "./index.js";
1
+ import { type SharedBackupCodec, type SharingAccountBindingV1, type SharingDatasetGrantV1, type SharingInvitationV1, type SharingPublicKeyResponseV1, type SharingRole } from "./index.js";
2
+ import type { SharingDatasetFileV1 } from "./link-exchange.js";
2
3
  import type { SharedBackupStorage, SharedBackupTransport, SharedDatasetFile, SharedExchangeFile } from "./transport.js";
3
4
  import { type WebCryptoSharingIdentity } from "./web-crypto.js";
4
5
  export { IndexedDbSharedBackupRegistry } from "./registry-indexeddb.js";
@@ -30,7 +31,7 @@ export type SharedDatasetResult<T> = {
30
31
  fileId: string;
31
32
  revisionId: string;
32
33
  value: T;
33
- outcome: "created" | "loaded" | "updated" | "unchanged";
34
+ outcome: "created" | "adopted" | "loaded" | "updated" | "unchanged";
34
35
  };
35
36
  export type SharingInvitationResult = {
36
37
  invitation: SharingInvitationV1;
@@ -113,6 +114,19 @@ export declare class SharedBackupController<T> {
113
114
  ensureStorage(): Promise<SharedBackupStorage>;
114
115
  listDatasets(): Promise<SharedDatasetFile[]>;
115
116
  createDataset(datasetId: string, value: T): Promise<SharedDatasetResult<T>>;
117
+ /**
118
+ * Reconnect to an existing dataset this identity can already decrypt —
119
+ * e.g. after a reinstall, or when an interrupted setup left the remote
120
+ * file without a local registry record. The owner key is pinned from the
121
+ * envelope itself (trust-on-first-use), so callers recovering their own
122
+ * dataset should pass `requireOwned` to insist this identity is the
123
+ * dataset's owner.
124
+ */
125
+ adoptDataset(datasetId: string, options?: {
126
+ requireOwned?: boolean;
127
+ }): Promise<SharedDatasetResult<T>>;
128
+ /** Delete a dataset file from the transport and forget its local record. */
129
+ deleteDataset(datasetId: string): Promise<void>;
116
130
  loadDataset(datasetId: string): Promise<SharedDatasetResult<T>>;
117
131
  syncDataset(datasetId: string, localValue: T): Promise<SharedDatasetResult<T>>;
118
132
  inviteParticipant(input: {
@@ -140,6 +154,46 @@ export declare class SharedBackupController<T> {
140
154
  responseFileId: string;
141
155
  recipientEmailAddress: string;
142
156
  }): Promise<AcceptedDatasetResult[]>;
157
+ /**
158
+ * Applies verified acceptance grants to each dataset: add the participant,
159
+ * re-encrypt, write, and per-email-share the dataset file. Shared by the
160
+ * Drive-file accept path and the link-payload accept path.
161
+ */
162
+ private applyAcceptedGrants;
163
+ /**
164
+ * Owner side of the link-carried exchange. Shares each granted dataset file
165
+ * with the recipient's email (so it lands in their Picker) and returns the
166
+ * signed invitation plus the file list to embed in the join link. Unlike
167
+ * {@link inviteParticipant} it writes no Drive `exchanges/` invitation file.
168
+ */
169
+ inviteParticipantForLink(input: {
170
+ emailAddress: string;
171
+ requestedGrants: SharingDatasetGrantV1[];
172
+ expiresAt?: string;
173
+ }): Promise<{
174
+ invitation: SharingInvitationV1;
175
+ files: SharingDatasetFileV1[];
176
+ }>;
177
+ /**
178
+ * Recipient side of the link-carried exchange. Verifies the invitation carried
179
+ * in the join link, registers the granted datasets with their file ids (so
180
+ * later reads/writes resolve without listing the owner's folder), and returns
181
+ * a signed key response to send back to the owner. Reads/writes no Drive
182
+ * `exchanges/` file.
183
+ */
184
+ submitKeyResponseFromInvitation(invitation: SharingInvitationV1, datasetFiles: SharingDatasetFileV1[]): Promise<SharingPublicKeyResponseV1>;
185
+ /**
186
+ * Owner side. Accepts a key response carried in a response link (no Drive
187
+ * `exchanges/` read), adds the recipient to each granted dataset, and
188
+ * per-email shares the dataset files (re-affirming the invite-time share).
189
+ * The invitation must be supplied by the caller (persisted at invite time,
190
+ * keyed by exchange id).
191
+ */
192
+ acceptKeyResponseFromPayload(input: {
193
+ invitation: SharingInvitationV1;
194
+ response: SharingPublicKeyResponseV1;
195
+ recipientEmailAddress: string;
196
+ }): Promise<AcceptedDatasetResult[]>;
143
197
  setDatasetRole(input: {
144
198
  datasetId: string;
145
199
  keyId: string;
@@ -149,13 +203,14 @@ export declare class SharedBackupController<T> {
149
203
  revokeDatasetKey(input: {
150
204
  datasetId: string;
151
205
  keyId: string;
206
+ emailAddress?: string;
152
207
  }): Promise<SharedDatasetResult<T>>;
208
+ private findDirectDatasetPermission;
153
209
  rotateLocalKey(replacementIdentity: WebCryptoSharingIdentity, datasetIds: string[]): Promise<RotatedDatasetResult[]>;
154
210
  reconcileDrivePermissions(input: {
155
211
  datasetId: string;
156
212
  participantEmails: Record<string, string>;
157
213
  }): Promise<DrivePermissionReconciliationResult>;
158
- private changeParticipants;
159
214
  private readDatasetById;
160
215
  private requiredRegistry;
161
216
  private verifyHead;
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/sharing/controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/sharing/controller.ts"],"names":[],"mappings":"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"}