@comapeo/core 3.1.0 → 3.1.1
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/errors.d.ts +16 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/local-peers.d.ts.map +1 -1
- package/dist/mapeo-project.d.ts +1 -1
- package/dist/mapeo-project.d.ts.map +1 -1
- package/dist/member-api.d.ts.map +1 -1
- package/dist/roles.d.ts +4 -3
- package/dist/roles.d.ts.map +1 -1
- package/dist/sync/sync-api.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/errors.js +32 -0
- package/src/local-peers.js +6 -2
- package/src/member-api.js +32 -9
- package/src/roles.js +37 -0
package/dist/errors.d.ts
CHANGED
|
@@ -18,6 +18,22 @@ export class InviteAbortedError extends Error {
|
|
|
18
18
|
/** @param {string} [message] */
|
|
19
19
|
constructor(message?: string | undefined);
|
|
20
20
|
}
|
|
21
|
+
export class ProjectDetailsSendFailError extends Error {
|
|
22
|
+
/** @param {string} [message] */
|
|
23
|
+
constructor(message?: string | undefined);
|
|
24
|
+
}
|
|
25
|
+
export class InviteInitialSyncFailError extends Error {
|
|
26
|
+
/** @param {string} [message] */
|
|
27
|
+
constructor(message?: string | undefined);
|
|
28
|
+
}
|
|
29
|
+
export class RPCDisconnectBeforeSendingError extends Error {
|
|
30
|
+
/** @param {string} [message] */
|
|
31
|
+
constructor(message?: string | undefined);
|
|
32
|
+
}
|
|
33
|
+
export class RPCDisconnectBeforeAckError extends Error {
|
|
34
|
+
/** @param {string} [message] */
|
|
35
|
+
constructor(message?: string | undefined);
|
|
36
|
+
}
|
|
21
37
|
export class TimeoutError extends Error {
|
|
22
38
|
/** @param {string} [message] */
|
|
23
39
|
constructor(message?: string | undefined);
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.js"],"names":[],"mappings":"AAuEA;;;GAGG;AACH,oCAHW,OAAO,GACL,IAAI,CAKhB;AA9ED;IACE,8BAGC;CACF;AAED;IACE,gCAAgC;IAChC,0CAGC;CACF;AAED;IACE,gCAAgC;IAChC,0CAGC;CACF;AAED;IACE,gCAAgC;IAChC,0CAGC;CACF;AAED;IACE,gCAAgC;IAChC,0CAGC;CACF;AAED;IACE,gCAAgC;IAChC,0CAGC;CACF;AAED;IACE,gCAAgC;IAChC,0CAGC;CACF;AAED;IACE,gCAAgC;IAChC,0CAGC;CACF;AAED;IACE,gCAAgC;IAChC,0CAGC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-peers.d.ts","sourceRoot":"","sources":["../src/local-peers.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"local-peers.d.ts","sourceRoot":"","sources":["../src/local-peers.js"],"names":[],"mappings":"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"}
|
package/dist/mapeo-project.d.ts
CHANGED
|
@@ -1265,7 +1265,7 @@ export class MapeoProject extends TypedEmitter<{
|
|
|
1265
1265
|
* @returns {Promise<EditableProjectSettings>}
|
|
1266
1266
|
*/
|
|
1267
1267
|
$getProjectSettings(): Promise<EditableProjectSettings>;
|
|
1268
|
-
$getOwnRole(): Promise<import("./roles.js").Role<"a12a6702b93bd7ff" | "f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9" | "8ced989b1904606b" | "08e4251e36f6e7ed">>;
|
|
1268
|
+
$getOwnRole(): Promise<import("./roles.js").Role<"a12a6702b93bd7ff" | "f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9" | "8ced989b1904606b" | "a24eaca65ab5d5d0" | "08e4251e36f6e7ed">>;
|
|
1269
1269
|
/**
|
|
1270
1270
|
* @param {string} originalVersionId The `originalVersionId` from a document.
|
|
1271
1271
|
* @returns {Promise<string>} The device ID for this creator.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapeo-project.d.ts","sourceRoot":"","sources":["../src/mapeo-project.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mapeo-project.d.ts","sourceRoot":"","sources":["../src/mapeo-project.js"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6Zf;IAED,8BAEC;IAoLD;;;;;;;;;;;OAWG;IACH,yCAPW,CACV,OAAW,GACX,OAAW,QAAQ,EAAE,MAAM,GAC3B,OAAW,SAAS,EAAE,MAAM,CACzB,GACS,iBAAiB,CAqB7B;IAED;;;OAGG;IACH,2BAHW,IAAI,CAAC,OAAO,iBAAiB,EAAE,eAAe,EAAE,MAAM,GAAG,YAAY,GAAG,yBAAyB,CAAC,GAChG,OAAO,CAAC,OAAO,iBAAiB,EAAE,UAAU,CAAC,CAwBzD;IAED,uCAAuC;IACvC,uCADY,OAAO,iBAGlB;IAED,yBAAyB;IACzB,kCAEC;IA6CD,iCAMC;IAED;;;OAGG;IACH,sBAFa,OAAO,CAAC,IAAI,CAAC,CAoCzB;;CAuKF;sCAz6Ba,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC;6BACxC,oBAAoB,CAAC,gBAAgB,CAAC;6BA3DvB,oBAAoB;wBAOzB,eAAe;0BAHb,sBAAsB;yBACL,qBAAqB;0BAsCtC,iBAAiB;wBAKpC,oBAAoB;2BAIA,sBAAsB;wBAFzB,eAAe;4BA/CX,yBAAyB;8BAuB9C,qBAAqB;0BApBF,uBAAuB;uCAkD8E,YAAY;4BAhD/G,yBAAyB;iCAgD0E,YAAY;0BAFjH,IAAI;uBALP,aAAa;0CAMM,iBAAiB"}
|
package/dist/member-api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-api.d.ts","sourceRoot":"","sources":["../src/member-api.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"member-api.d.ts","sourceRoot":"","sources":["../src/member-api.js"],"names":[],"mappings":"AAgCA;;;;;;;GAOG;AACH,8CAA8C;AAC9C,mEAAmE;AACnE,sDAAsD;AACtD,wDAAwD;AACxD,6DAA6D;AAC7D,iEAAiE;AACjE,sDAAsD;AAEtD,qIAAqI;AACrI,sJAAsJ;AACtJ;;;;;;;;;GASG;AAEH;IAgBE;;;;;;;;;;;;;;;OAeG;IACH,8KAdG;QAAqB,QAAQ,EAArB,MAAM;QAC2B,KAAK,EAAtC,OAAO,YAAY,EAAE,KAAK;QACwB,aAAa,EAA/D,OAAO,qBAAqB,EAAE,aAAa;QACQ,cAAc,EAAjE,OAAO,qBAAqB,EAAE,cAAc;QACD,cAAc,EAAzD,MAAM,WAAW,SAAS,GAAG,MAAM,CAAC;QACvB,UAAU,EAAvB,MAAM;QACsC,GAAG,EAA/C,OAAO,kBAAkB,EAAE,UAAU;QACH,aAAa,UAAzC,MAAM,KAAK,SAAS;QACI,oBAAoB,EAAlD,MAAM,iBAAiB;QAC6C,0BAA0B,EAA9F,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC;QAChD,SAAS,EAC9B;YAA2E,UAAU,EAA7E,IAAI,CAAC,kBAAkB,EAAE,YAAY,GAAG,SAAS,CAAC;YACE,OAAO,EAA3D,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC;SAC7C;KAAA,EA0BA;IAED;;;;;;;;;;;;;;;OAeG;IACH,iBAZW,MAAM,8DAEd;QAAsD,MAAM,EAApD,OAAO,YAAY,EAAE,kBAAkB;QACzB,QAAQ;QACR,eAAe;QACf,kBAAkB;KACxC,GAAU,OAAO,CAAC,CACpB,OAAW,uBAAuB,CAAC,MAAM,GACzC,OAAW,uBAAuB,CAAC,MAAM,GACzC,OAAW,uBAAuB,CAAC,OAAO,CACvC,CAAC,CA4GJ;IAmDD;;;;;;;OAOG;IACH,8BAHW,MAAM,GACJ,IAAI,CAIhB;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,uBALW,MAAM;;oBAGJ,OAAO,CAAC,IAAI,CAAC,CAqBzB;IAED;;;;;;;OAOG;IACH,iCALW,MAAM;;oBAGJ,OAAO,CAAC,IAAI,CAAC,CAgCzB;IAkHD;;;OAGG;IACH,kBAHW,MAAM,GACJ,OAAO,CAAC,UAAU,CAAC,CA6B/B;IAED;;OAEG;IACH,WAFa,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAqCtC;IAED;;;;OAIG;IACH,qBAJW,MAAM,UACN,OAAO,YAAY,EAAE,wBAAwB,GAC3C,OAAO,CAAC,IAAI,CAAC,CAIzB;;CACF;iCAxhBa,SAAS,UAAU,QAAQ,CAAC,EAAE,sBAAsB,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,CAAC;8BAChG,SAAS,UAAU,QAAQ,CAAC,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,eAAe,EAAE,oBAAoB,CAAC;;cAGxH,MAAM;UACN,OAAO,YAAY,EAAE,IAAI;;;;;iBAKzB,MAAM;;;6BAvDa,oBAAoB;wCAET,oBAAoB;gCAmC5B,WAAW;sBAtCrB,IAAI;uCA4Ca,YAAY;+BAHpB,sBAAsB;qCAChB,qBAAqB;gCANhD,iBAAiB;qCAAjB,iBAAiB;8BAIG,qBAAqB;0CAGT,oBAAoB;qCAPpD,iBAAiB;0CAAjB,iBAAiB"}
|
package/dist/roles.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export const COORDINATOR_ROLE_ID: "f7c150f5a3a9a855";
|
|
|
4
4
|
export const MEMBER_ROLE_ID: "012fd2d431c0bf60";
|
|
5
5
|
export const BLOCKED_ROLE_ID: "9e6d29263cba36c9";
|
|
6
6
|
export const LEFT_ROLE_ID: "8ced989b1904606b";
|
|
7
|
+
export const FAILED_ROLE_ID: "a24eaca65ab5d5d0";
|
|
7
8
|
export const NO_ROLE_ID: "08e4251e36f6e7ed";
|
|
8
9
|
export const isRoleIdForNewInvite: (value: unknown) => value is "f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9";
|
|
9
10
|
export const isRoleIdAssignableToOthers: (value: unknown) => value is "f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9";
|
|
@@ -126,7 +127,7 @@ export type DocCapability = {
|
|
|
126
127
|
*/
|
|
127
128
|
writeOthers: boolean;
|
|
128
129
|
};
|
|
129
|
-
export type Role<T extends RoleId = "a12a6702b93bd7ff" | "f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9" | "8ced989b1904606b" | "08e4251e36f6e7ed"> = {
|
|
130
|
+
export type Role<T extends RoleId = "a12a6702b93bd7ff" | "f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9" | "8ced989b1904606b" | "a24eaca65ab5d5d0" | "08e4251e36f6e7ed"> = {
|
|
130
131
|
roleId: T;
|
|
131
132
|
name: string;
|
|
132
133
|
docs: Record<import("@comapeo/schema").MapeoDoc["schemaName"], DocCapability>;
|
|
@@ -145,13 +146,13 @@ import { TypedEmitter } from 'tiny-typed-emitter';
|
|
|
145
146
|
* @template T
|
|
146
147
|
*/
|
|
147
148
|
/** @typedef {ElementOf<typeof ROLE_IDS>} RoleId */
|
|
148
|
-
declare const ROLE_IDS: Set<"a12a6702b93bd7ff" | "f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9" | "8ced989b1904606b" | "08e4251e36f6e7ed">;
|
|
149
|
+
declare const ROLE_IDS: Set<"a12a6702b93bd7ff" | "f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9" | "8ced989b1904606b" | "a24eaca65ab5d5d0" | "08e4251e36f6e7ed">;
|
|
149
150
|
/** @typedef {ElementOf<typeof ROLE_IDS_FOR_NEW_INVITE>} RoleIdForNewInvite */
|
|
150
151
|
declare const ROLE_IDS_FOR_NEW_INVITE: Set<"f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9">;
|
|
151
152
|
/** @typedef {ElementOf<typeof ROLE_IDS_ASSIGNABLE_TO_OTHERS>} RoleIdAssignableToOthers */
|
|
152
153
|
declare const ROLE_IDS_ASSIGNABLE_TO_OTHERS: Set<"f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9">;
|
|
153
154
|
/** @typedef {ElementOf<typeof ROLE_IDS_ASSIGNABLE_TO_ANYONE>} RoleIdAssignableToAnyone */
|
|
154
|
-
declare const ROLE_IDS_ASSIGNABLE_TO_ANYONE: Set<"f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9" | "8ced989b1904606b">;
|
|
155
|
+
declare const ROLE_IDS_ASSIGNABLE_TO_ANYONE: Set<"f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9" | "8ced989b1904606b" | "a24eaca65ab5d5d0">;
|
|
155
156
|
import type { Namespace } from './types.js';
|
|
156
157
|
export {};
|
|
157
158
|
//# sourceMappingURL=roles.d.ts.map
|
package/dist/roles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../src/roles.js"],"names":[],"mappings":"AAMA,8CAA8C;AAG9C,iDAAiD;AACjD,qDAAqD;AACrD,gDAAgD;AAChD,iDAAiD;AACjD,8CAA8C;AAC9C,4CAA4C;
|
|
1
|
+
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../src/roles.js"],"names":[],"mappings":"AAMA,8CAA8C;AAG9C,iDAAiD;AACjD,qDAAqD;AACrD,gDAAgD;AAChD,iDAAiD;AACjD,8CAA8C;AAC9C,gDAAgD;AAChD,4CAA4C;AAyB5C,6HAAmE;AAMnE,mIAA+E;AAc/E;;;;;;GAMG;AAEH;;;;;;;;GAQG;AAEH;;;;;;GAMG;AACH,2BAFU,IAAI,CAAC,OAAO,eAAe,CAAC,CAmBrC;AAyDD;;;;;;;;;GASG;AACH,sBAFU,IAAI,CAAC,OAAO,UAAU,CAAC,CAmBhC;AAED,yCAAyC;AACzC,oBADW,GAAG,CAAW,IAAN,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAE,CAiEpC;AAED;;;GAGG;AAEH;;GAEG;AACH;IAOE,yCAAwB;IAExB;;;;;;;;;;;;;;OAcG;IACH,6EAZG;QAMQ,QAAQ,EANR,OAAO,qBAAqB,EAAE,QAAQ,CAChD,OAAW,sBAAsB,EAAE,SAAS,CAAC,MAAM,CAAC,EACpD,cAAkB,qBAAqB,EAAE,SAAS,EAClD,MAAU,EACV,OAAW,iBAAiB,EAAE,IAAI,EAClC,OAAW,iBAAiB,EAAE,SAAS,CACpC;QACyD,aAAa,EAA/D,OAAO,qBAAqB,EAAE,aAAa;QACS,WAAW,EAA/D,OAAO,yBAAyB,EAAE,WAAW;QAChC,UAAU,EAAvB,MAAM;QACO,SAAS,EAAtB,MAAM;KAChB,EASA;IAED;;;;;OAKG;IACH,kBAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAuBzB;IAED;;;;;;;OAOG;IACH,UAFa,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAsCtC;IAED;;;;;;;;OAQG;IACH,qBAHW,MAAM,UACN,wBAAwB,iBAmElC;;CAQF;sBAnbY,CAAC,IADD,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;qBAItC,SAAS,CAAC,OAAO,QAAQ,CAAC;iCAc1B,SAAS,CAAC,OAAO,uBAAuB,CAAC;uCAMzC,SAAS,CAAC,OAAO,6BAA6B,CAAC;uCAM/C,SAAS,CAAC,OAAO,6BAA6B,CAAC;;;;;aAc/C,OAAO;;;;cACP,OAAO;;;;gBACP,OAAO;;;;iBACP,OAAO;;iBAIE,CAAC,SAAV,MAAO;YAEP,CAAC;UACD,MAAM;UACN,MAAM,CAAC,OAAO,iBAAiB,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC;oBACvE,wBAAwB,EAAE;UAC1B,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;;;;;;YAsLxC,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI;;6BA5Pd,oBAAoB;AAYjD;;;GAGG;AAEH,mDAAmD;AACnD,8KAUC;AAGD,8EAA8E;AAC9E,yGAEC;AAGD,0FAA0F;AAC1F,+GAEC;AAGD,0FAA0F;AAC1F,yJAQC;+BAnD8B,YAAY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-api.d.ts","sourceRoot":"","sources":["../../src/sync/sync-api.js"],"names":[],"mappings":"AAcA,2EAA2E;AAC3E,yCAAyC;AACzC,4DAA4D;AAC5D,iFAAiF;AACjF,mEAAmE;AAEnE,gDAAiE;AACjE,uCAA8C;AAC9C,6CAAoD;AACpD,oDAA2D;AAC3D,wDAEC;AAED;;GAEG;AAEH;;GAEG;AAEH;;;;;;;GAOG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;;GAKG;AAEH;;;GAGG;AAEH;;GAEG;AACH;IA4BE;;;;;;;;;;;OAWG;IACH,gJAVG;QAA6D,WAAW,EAAhE,OAAO,0BAA0B,EAAE,WAAW;QAC1B,aAAa,EAAjC,aAAa;QACqB,KAAK,EAAvC,OAAO,aAAa,EAAE,KAAK;QACO,aAAa,UAAzC,MAAM,KAAK,SAAS;QACY,sBAAsB,EAA5D,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACD,oBAAoB,EAAlD,MAAM,iBAAiB;QAC0B,SAAS,EAA1D,OAAO,wBAAwB,EAAE,SAAS;QAC5B,UAAU;QACV,MAAM;KAAC,EAkD/B;IA8BD;;;OAGG;IACH,YAFa,KAAK,CAIjB;IAqHD;;OAEG;IACH,kBAFa,IAAI,CAsDhB;IAED;;OAEG;IACH,qBAFa,IAAI,CAQhB;IAED;;;;;;;;;;OAUG;IACH;;yBAOC;IAED;;;;OAIG;IACH,aAGC;IAkBD;;;OAGG;IACH,kDAHW,IAAI,GAAG,MAAM,GACX,IAAI,CAOhB;IAED;;;OAGG;IACH,kBAHW,QAAQ,GACN,OAAO,CAAC,IAAI,CAAC,CAazB;
|
|
1
|
+
{"version":3,"file":"sync-api.d.ts","sourceRoot":"","sources":["../../src/sync/sync-api.js"],"names":[],"mappings":"AAcA,2EAA2E;AAC3E,yCAAyC;AACzC,4DAA4D;AAC5D,iFAAiF;AACjF,mEAAmE;AAEnE,gDAAiE;AACjE,uCAA8C;AAC9C,6CAAoD;AACpD,oDAA2D;AAC3D,wDAEC;AAED;;GAEG;AAEH;;GAEG;AAEH;;;;;;;GAOG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;;GAKG;AAEH;;;GAGG;AAEH;;GAEG;AACH;IA4BE;;;;;;;;;;;OAWG;IACH,gJAVG;QAA6D,WAAW,EAAhE,OAAO,0BAA0B,EAAE,WAAW;QAC1B,aAAa,EAAjC,aAAa;QACqB,KAAK,EAAvC,OAAO,aAAa,EAAE,KAAK;QACO,aAAa,UAAzC,MAAM,KAAK,SAAS;QACY,sBAAsB,EAA5D,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACD,oBAAoB,EAAlD,MAAM,iBAAiB;QAC0B,SAAS,EAA1D,OAAO,wBAAwB,EAAE,SAAS;QAC5B,UAAU;QACV,MAAM;KAAC,EAkD/B;IA8BD;;;OAGG;IACH,YAFa,KAAK,CAIjB;IAqHD;;OAEG;IACH,kBAFa,IAAI,CAsDhB;IAED;;OAEG;IACH,qBAFa,IAAI,CAQhB;IAED;;;;;;;;;;OAUG;IACH;;yBAOC;IAED;;;;OAIG;IACH,aAGC;IAkBD;;;OAGG;IACH,kDAHW,IAAI,GAAG,MAAM,GACX,IAAI,CAOhB;IAED;;;OAGG;IACH,kBAHW,QAAQ,GACN,OAAO,CAAC,IAAI,CAAC,CAazB;oFAPa,2BACE;IApChB;;OAEG;IACH,2BAGC;IAED;;OAEG;IACH,kCAGC;IA8BD;;;;OAIG;IACH,wCAJW,MAAM,eACN,WAAW,GACT,OAAO,CAAC,IAAI,CAAC,CA6BzB;IApWC,wBAME;;CA6eL;uBA5lBY,SAAS,GAAG,MAAM;+BAIlB,MAAM,GAAG,SAAS,GAAG,KAAK;;WAMzB,MAAM;YACN,MAAM;gBACN,MAAM;YACN,MAAM;;;;;;mBAMN,OAAO;;;;UACP,MAAM;;;;YACN,MAAM;;;;;;;;;aAMN,mCAAmC;;;;UACnC,mCAAmC;;;;;;aAKnC;QAAE,aAAa,EAAE,OAAO,CAAA;KAAE;;;;UAC1B;QAAE,aAAa,EAAE,OAAO,CAAA;KAAE;;;;2BAC1B,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC;;;kBAKrC,CAAC,SAAS,EAAE,KAAK,KAAK,IAAI;;6BArEX,oBAAoB;0BAEvB,iBAAiB;mCAcR,sBAAsB;sBAfnC,IAAI;uCAiByB,aAAa;uBAdzC,cAAc"}
|
package/package.json
CHANGED
package/src/errors.js
CHANGED
|
@@ -29,6 +29,38 @@ export class InviteAbortedError extends Error {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
export class ProjectDetailsSendFailError extends Error {
|
|
33
|
+
/** @param {string} [message] */
|
|
34
|
+
constructor(message = 'Project details failed to send') {
|
|
35
|
+
super(message)
|
|
36
|
+
this.name = 'ProjectDetailsSendFailError'
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export class InviteInitialSyncFailError extends Error {
|
|
41
|
+
/** @param {string} [message] */
|
|
42
|
+
constructor(message = 'Failed to sync config for invite') {
|
|
43
|
+
super(message)
|
|
44
|
+
this.name = 'InviteInitialSyncFailError'
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export class RPCDisconnectBeforeSendingError extends Error {
|
|
49
|
+
/** @param {string} [message] */
|
|
50
|
+
constructor(message = 'RPC disconnected before sending') {
|
|
51
|
+
super(message)
|
|
52
|
+
this.name = 'RPCDisconnectBeforeSendingError'
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export class RPCDisconnectBeforeAckError extends Error {
|
|
57
|
+
/** @param {string} [message] */
|
|
58
|
+
constructor(message = 'RPC disconnected before receiving acknowledgement') {
|
|
59
|
+
super(message)
|
|
60
|
+
this.name = 'RPCDisconnectBeforeAckError'
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
32
64
|
export class TimeoutError extends Error {
|
|
33
65
|
/** @param {string} [message] */
|
|
34
66
|
constructor(message = 'TimeoutError') {
|
package/src/local-peers.js
CHANGED
|
@@ -19,6 +19,10 @@ import {
|
|
|
19
19
|
import pDefer from 'p-defer'
|
|
20
20
|
import { Logger } from './logger.js'
|
|
21
21
|
import pTimeout, { TimeoutError } from 'p-timeout'
|
|
22
|
+
import {
|
|
23
|
+
RPCDisconnectBeforeAckError,
|
|
24
|
+
RPCDisconnectBeforeSendingError,
|
|
25
|
+
} from './errors.js'
|
|
22
26
|
/** @import NoiseStream from '@hyperswarm/secret-stream' */
|
|
23
27
|
/** @import { OpenedNoiseStream } from './lib/noise-secret-stream-helpers.js' */
|
|
24
28
|
/** @import {DeferredPromise} from 'p-defer' */
|
|
@@ -191,11 +195,11 @@ class Peer {
|
|
|
191
195
|
// This promise should have already resolved, but if the peer never connected then we reject here
|
|
192
196
|
this.#connected.reject(new PeerFailedConnectionError())
|
|
193
197
|
for (const listener of this.#drainedListeners) {
|
|
194
|
-
listener.reject(new
|
|
198
|
+
listener.reject(new RPCDisconnectBeforeSendingError())
|
|
195
199
|
}
|
|
196
200
|
for (const waiters of this.#ackWaiters.values()) {
|
|
197
201
|
for (const { deferred } of waiters) {
|
|
198
|
-
deferred.reject(new
|
|
202
|
+
deferred.reject(new RPCDisconnectBeforeAckError())
|
|
199
203
|
}
|
|
200
204
|
}
|
|
201
205
|
this.#ackWaiters.clear()
|
package/src/member-api.js
CHANGED
|
@@ -17,10 +17,15 @@ import { abortSignalAny } from './lib/ponyfills.js'
|
|
|
17
17
|
import timingSafeEqual from 'string-timing-safe-equal'
|
|
18
18
|
import { isHostnameIpAddress } from './lib/is-hostname-ip-address.js'
|
|
19
19
|
import { ErrorWithCode, getErrorMessage } from './lib/error.js'
|
|
20
|
-
import {
|
|
20
|
+
import {
|
|
21
|
+
InviteAbortedError,
|
|
22
|
+
InviteInitialSyncFailError,
|
|
23
|
+
ProjectDetailsSendFailError,
|
|
24
|
+
} from './errors.js'
|
|
21
25
|
import { wsCoreReplicator } from './lib/ws-core-replicator.js'
|
|
22
26
|
import {
|
|
23
27
|
BLOCKED_ROLE_ID,
|
|
28
|
+
FAILED_ROLE_ID,
|
|
24
29
|
MEMBER_ROLE_ID,
|
|
25
30
|
ROLES,
|
|
26
31
|
isRoleIdForNewInvite,
|
|
@@ -200,16 +205,34 @@ export class MemberApi extends TypedEmitter {
|
|
|
200
205
|
case InviteResponse_Decision.DECISION_UNSPECIFIED:
|
|
201
206
|
return InviteResponse_Decision.REJECT
|
|
202
207
|
case InviteResponse_Decision.ACCEPT:
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
projectKey: this.#projectKey,
|
|
206
|
-
encryptionKeys: this.#encryptionKeys,
|
|
207
|
-
})
|
|
208
|
-
|
|
209
|
-
// Only add after we know they got the details
|
|
210
|
-
// Otherwise the joiner will be stuck unable to join
|
|
208
|
+
// Technically we can assign after sending project details
|
|
209
|
+
// This lets us test role removal
|
|
211
210
|
await this.#roles.assignRole(deviceId, roleId)
|
|
212
211
|
|
|
212
|
+
try {
|
|
213
|
+
await this.#rpc.sendProjectJoinDetails(deviceId, {
|
|
214
|
+
inviteId,
|
|
215
|
+
projectKey: this.#projectKey,
|
|
216
|
+
encryptionKeys: this.#encryptionKeys,
|
|
217
|
+
})
|
|
218
|
+
} catch {
|
|
219
|
+
try {
|
|
220
|
+
// Mark them as "failed" so we can retry the flow
|
|
221
|
+
await this.#roles.assignRole(deviceId, FAILED_ROLE_ID)
|
|
222
|
+
} catch (e) {
|
|
223
|
+
console.error(e)
|
|
224
|
+
}
|
|
225
|
+
throw new ProjectDetailsSendFailError()
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
try {
|
|
229
|
+
await this.#waitForInitialSyncWithPeer(deviceId, abortSignal)
|
|
230
|
+
} catch {
|
|
231
|
+
// Mark them as "failed" so we can retry the flow
|
|
232
|
+
await this.#roles.assignRole(deviceId, FAILED_ROLE_ID)
|
|
233
|
+
throw new InviteInitialSyncFailError()
|
|
234
|
+
}
|
|
235
|
+
|
|
213
236
|
return inviteResponse.decision
|
|
214
237
|
default:
|
|
215
238
|
throw new ExhaustivenessError(inviteResponse.decision)
|
package/src/roles.js
CHANGED
|
@@ -12,6 +12,7 @@ export const COORDINATOR_ROLE_ID = 'f7c150f5a3a9a855'
|
|
|
12
12
|
export const MEMBER_ROLE_ID = '012fd2d431c0bf60'
|
|
13
13
|
export const BLOCKED_ROLE_ID = '9e6d29263cba36c9'
|
|
14
14
|
export const LEFT_ROLE_ID = '8ced989b1904606b'
|
|
15
|
+
export const FAILED_ROLE_ID = 'a24eaca65ab5d5d0'
|
|
15
16
|
export const NO_ROLE_ID = '08e4251e36f6e7ed'
|
|
16
17
|
|
|
17
18
|
/**
|
|
@@ -27,6 +28,7 @@ const ROLE_IDS = new Set(
|
|
|
27
28
|
MEMBER_ROLE_ID,
|
|
28
29
|
BLOCKED_ROLE_ID,
|
|
29
30
|
LEFT_ROLE_ID,
|
|
31
|
+
FAILED_ROLE_ID,
|
|
30
32
|
NO_ROLE_ID,
|
|
31
33
|
])
|
|
32
34
|
)
|
|
@@ -51,6 +53,7 @@ const ROLE_IDS_ASSIGNABLE_TO_ANYONE = new Set(
|
|
|
51
53
|
MEMBER_ROLE_ID,
|
|
52
54
|
BLOCKED_ROLE_ID,
|
|
53
55
|
LEFT_ROLE_ID,
|
|
56
|
+
FAILED_ROLE_ID,
|
|
54
57
|
])
|
|
55
58
|
)
|
|
56
59
|
const isRoleIdAssignableToAnyone = setHas(ROLE_IDS_ASSIGNABLE_TO_ANYONE)
|
|
@@ -126,6 +129,34 @@ const BLOCKED_ROLE = {
|
|
|
126
129
|
},
|
|
127
130
|
}
|
|
128
131
|
|
|
132
|
+
/**
|
|
133
|
+
* This role is used for devices that failed to sync after accepting an invite and being added
|
|
134
|
+
* @type {Role<typeof FAILED_ROLE_ID>}
|
|
135
|
+
*/
|
|
136
|
+
const FAILED_ROLE = {
|
|
137
|
+
roleId: FAILED_ROLE_ID,
|
|
138
|
+
name: 'Failed',
|
|
139
|
+
docs: mapObject(currentSchemaVersions, (key) => {
|
|
140
|
+
return [
|
|
141
|
+
key,
|
|
142
|
+
{
|
|
143
|
+
readOwn: false,
|
|
144
|
+
writeOwn: false,
|
|
145
|
+
readOthers: false,
|
|
146
|
+
writeOthers: false,
|
|
147
|
+
},
|
|
148
|
+
]
|
|
149
|
+
}),
|
|
150
|
+
roleAssignment: [],
|
|
151
|
+
sync: {
|
|
152
|
+
auth: 'blocked',
|
|
153
|
+
config: 'blocked',
|
|
154
|
+
data: 'blocked',
|
|
155
|
+
blobIndex: 'blocked',
|
|
156
|
+
blob: 'blocked',
|
|
157
|
+
},
|
|
158
|
+
}
|
|
159
|
+
|
|
129
160
|
/**
|
|
130
161
|
* This is the role assumed for a device when no role record can be found. This
|
|
131
162
|
* can happen when an invited device did not manage to sync with the device that
|
|
@@ -219,6 +250,7 @@ export const ROLES = {
|
|
|
219
250
|
},
|
|
220
251
|
},
|
|
221
252
|
[NO_ROLE_ID]: NO_ROLE,
|
|
253
|
+
[FAILED_ROLE_ID]: FAILED_ROLE,
|
|
222
254
|
}
|
|
223
255
|
|
|
224
256
|
/**
|
|
@@ -380,6 +412,11 @@ export class Roles extends TypedEmitter {
|
|
|
380
412
|
if (deviceId !== this.#ownDeviceId) {
|
|
381
413
|
throw new Error('Cannot assign LEFT role to another device')
|
|
382
414
|
}
|
|
415
|
+
} else if (roleId === FAILED_ROLE_ID) {
|
|
416
|
+
const ownRole = await this.getRole(this.#ownDeviceId)
|
|
417
|
+
if (!ownRole.roleAssignment.includes(COORDINATOR_ROLE_ID)) {
|
|
418
|
+
throw new Error('Lacks permission to assign role ' + roleId)
|
|
419
|
+
}
|
|
383
420
|
} else {
|
|
384
421
|
const ownRole = await this.getRole(this.#ownDeviceId)
|
|
385
422
|
if (!ownRole.roleAssignment.includes(roleId)) {
|