@comapeo/core 5.1.0 → 5.1.2
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/blob-store/index.d.ts +7 -0
- package/dist/blob-store/index.d.ts.map +1 -1
- package/dist/core-manager/index.d.ts.map +1 -1
- package/dist/invite/invite-api.d.ts +2 -1
- package/dist/invite/invite-api.d.ts.map +1 -1
- package/dist/mapeo-manager.d.ts +5 -0
- package/dist/mapeo-manager.d.ts.map +1 -1
- package/dist/mapeo-project.d.ts +4 -4
- package/dist/mapeo-project.d.ts.map +1 -1
- package/dist/roles.d.ts +2 -2
- package/dist/roles.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/blob-store/index.js +26 -0
- package/src/core-manager/index.js +6 -0
- package/src/invite/invite-api.js +10 -5
- package/src/mapeo-manager.js +32 -3
- package/src/mapeo-project.js +11 -2
- package/src/roles.js +2 -2
|
@@ -80,6 +80,13 @@ export class BlobStore extends TypedEmitter<BlobStoreEvents> {
|
|
|
80
80
|
getEntryBlob(driveId: BlobId["driveId"], entry: import("hyperdrive").HyperdriveEntry, { length }?: {
|
|
81
81
|
length?: number | undefined;
|
|
82
82
|
} | undefined): Promise<Buffer | null>;
|
|
83
|
+
/**
|
|
84
|
+
* Check if all the blocks for a given blob entry have been downloaded
|
|
85
|
+
* @param {BlobId['driveId']} driveId Hyperdrive drive id
|
|
86
|
+
* @param {import('hyperdrive').HyperdriveEntry} entry Hyperdrive entry
|
|
87
|
+
* @returns {Promise<boolean>}
|
|
88
|
+
*/
|
|
89
|
+
hasDownloadedBlobEntry(driveId: BlobId["driveId"], entry: import("hyperdrive").HyperdriveEntry): Promise<boolean>;
|
|
83
90
|
/**
|
|
84
91
|
*
|
|
85
92
|
* @param {Omit<BlobId, 'driveId'>} blobId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/blob-store/index.js"],"names":[],"mappings":"AA6DA,+CAA+C;AAC/C;IAoFE;;;;;OAKG;IACH,sDAJG;QAAgE,WAAW,EAAnE,OAAO,0BAA0B,EAAE,WAAW;QAC5B,eAAe;QACO,MAAM;KAAC,EAsBzD;IAED;;OAEG;IACH,4BAEC;IAED,+BAEC;IAED;;;OAGG;IACH,sBAHW,MAAM,GACJ,iBAAiB,GAAG,IAAI,CAIpC;IAED,uCAAuC;IACvC,oCADY,OAAO,iBAkBlB;IAYD;;;;;;OAMG;IACH,sCANW,MAAM,sBAEd;QAAqB,IAAI;QACJ,OAAO;KAC5B,GAAU,OAAO,CAAC,UAAU,CAAC,CAQ/B;IAED;;;;;;OAMG;IACH,mDANW,MAAM;;;oBAIJ,QAAQ,CAYpB;IAED;;;;;;;;OAQG;IACH,2CAJG;QAAuB,IAAI;QACkC,MAAM;KACnE,GAAU,sBAAsB,CAOlC;IAED;;;;;;;;OAQG;IACH,mCANW,MAAM,CAAC,SAAS,CAAC,SACjB,OAAO,YAAY,EAAE,eAAe;;oBAGlC,OAAO,CAAC,QAAQ,CAAC,CAa7B;IAED;;;;;;OAMG;IACH,sBANW,MAAM,CAAC,SAAS,CAAC,SACjB,OAAO,YAAY,EAAE,eAAe;;oBAGlC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAalC;IAED;;;;;;;OAOG;IACH,6BANW,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,QACvB,MAAM;;oBAGJ,OAAO,CAAC,MAAM,CAAC,CAM3B;IAED;;;;;OAKG;IACH,2CALW,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;;oBAGrB,QAAQ,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAQ1C;IAED;;;;;;;OAOG;IACH,wCAPW,MAAM;;;;oBAKJ,OAAO,CAAC,OAAO,YAAY,EAAE,eAAe,GAAG,IAAI,CAAC,CAWhE;IAED;;;;;OAKG;IACH,wCALW,MAAM;;oBAGL,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAO7C;IAED,cAMC;;CACF;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/blob-store/index.js"],"names":[],"mappings":"AA6DA,+CAA+C;AAC/C;IAoFE;;;;;OAKG;IACH,sDAJG;QAAgE,WAAW,EAAnE,OAAO,0BAA0B,EAAE,WAAW;QAC5B,eAAe;QACO,MAAM;KAAC,EAsBzD;IAED;;OAEG;IACH,4BAEC;IAED,+BAEC;IAED;;;OAGG;IACH,sBAHW,MAAM,GACJ,iBAAiB,GAAG,IAAI,CAIpC;IAED,uCAAuC;IACvC,oCADY,OAAO,iBAkBlB;IAYD;;;;;;OAMG;IACH,sCANW,MAAM,sBAEd;QAAqB,IAAI;QACJ,OAAO;KAC5B,GAAU,OAAO,CAAC,UAAU,CAAC,CAQ/B;IAED;;;;;;OAMG;IACH,mDANW,MAAM;;;oBAIJ,QAAQ,CAYpB;IAED;;;;;;;;OAQG;IACH,2CAJG;QAAuB,IAAI;QACkC,MAAM;KACnE,GAAU,sBAAsB,CAOlC;IAED;;;;;;;;OAQG;IACH,mCANW,MAAM,CAAC,SAAS,CAAC,SACjB,OAAO,YAAY,EAAE,eAAe;;oBAGlC,OAAO,CAAC,QAAQ,CAAC,CAa7B;IAED;;;;;;OAMG;IACH,sBANW,MAAM,CAAC,SAAS,CAAC,SACjB,OAAO,YAAY,EAAE,eAAe;;oBAGlC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAalC;IAED;;;;;OAKG;IACH,gCAJW,MAAM,CAAC,SAAS,CAAC,SACjB,OAAO,YAAY,EAAE,eAAe,GAClC,OAAO,CAAC,OAAO,CAAC,CAoB5B;IAED;;;;;;;OAOG;IACH,6BANW,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,QACvB,MAAM;;oBAGJ,OAAO,CAAC,MAAM,CAAC,CAM3B;IAED;;;;;OAKG;IACH,2CALW,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;;oBAGrB,QAAQ,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAQ1C;IAED;;;;;;;OAOG;IACH,wCAPW,MAAM;;;;oBAKJ,OAAO,CAAC,OAAO,YAAY,EAAE,eAAe,GAAG,IAAI,CAAC,CAWhE;IAED;;;;;OAKG;IACH,wCALW,MAAM;;oBAGL,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAO7C;IAED,cAMC;;CACF;;mBArYS,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,GAAG,IAAI,KAAK,IAAI;uBAC9D,CAAC,IAAI,EAAE;QACZ,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;QACd,UAAU,EAAE,MAAM,CAAA;KACnB,KAAK,IAAI;WACH,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;;uBAKnB,YAAY,GAAG,eAAe;;;;;;6BAzBd,oBAAoB;uCASkC,aAAa;4BAAb,aAAa;4CAAb,aAAa;gCAHhE,WAAW;8BAEgB,SAAS;uBAN7C,cAAc;8CAKS,aAAa;iDACA,SAAS"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core-manager/index.js"],"names":[],"mappings":"AAwBA,kDAAqE;AAErE,kDAAkD;AAClD,8EAA8E;AAC9E;;;;;GAKG;AAEH;;GAEG;AACH;IAiBE,kFAEC;IAED;;;;;;;;;;OAUG;IACH,8GATG;QAA4E,EAAE,EAAtE,OAAO,4BAA4B,EAAE,qBAAqB;QACd,UAAU,EAAtD,2CAAkC;QAClB,UAAU,EAA1B,MAAM;QACW,gBAAgB;QACY,cAAc;QACb,OAAO,EAArD,OAAO,WAAW,EAAE,gBAAgB;QAClB,YAAY;QACb,MAAM;KAAC,EAyHlC;IAED,uBAEC;IAED,wBAEC;IAED,oCAEC;IAED;;;;OAIG;IACH,SAFa,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;;OAIG;IACH,yBAFW,SAAS,cAInB;IAED;;;;OAIG;IACH,oBAFW,SAAS,gBAInB;IAED;;;;;OAKG;IACH,kBAHW,MAAM,GACJ,IAAI,GAAG,SAAS,CAK5B;IAED;;;;;OAKG;IACH,oCAHW,MAAM,GACJ,UAAU,GAAG,SAAS,CAOlC;IAED;;;OAGG;IACH,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core-manager/index.js"],"names":[],"mappings":"AAwBA,kDAAqE;AAErE,kDAAkD;AAClD,8EAA8E;AAC9E;;;;;GAKG;AAEH;;GAEG;AACH;IAiBE,kFAEC;IAED;;;;;;;;;;OAUG;IACH,8GATG;QAA4E,EAAE,EAAtE,OAAO,4BAA4B,EAAE,qBAAqB;QACd,UAAU,EAAtD,2CAAkC;QAClB,UAAU,EAA1B,MAAM;QACW,gBAAgB;QACY,cAAc;QACb,OAAO,EAArD,OAAO,WAAW,EAAE,gBAAgB;QAClB,YAAY;QACb,MAAM;KAAC,EAyHlC;IAED,uBAEC;IAED,wBAEC;IAED,oCAEC;IAED;;;;OAIG;IACH,SAFa,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;;OAIG;IACH,yBAFW,SAAS,cAInB;IAED;;;;OAIG;IACH,oBAFW,SAAS,gBAInB;IAED;;;;;OAKG;IACH,kBAHW,MAAM,GACJ,IAAI,GAAG,SAAS,CAK5B;IAED;;;;;OAKG;IACH,oCAHW,MAAM,GACJ,UAAU,GAAG,SAAS,CAOlC;IAED;;;OAGG;IACH,uBAcC;IAED;;;;;;OAMG;IACH,aAJW,MAAM,aACN,SAAS,GACP,UAAU,CAItB;IAiJD;;;OAGG;IACH,gCAHW,UAAU,GAAG,IAAI,QACjB,aAAa,QAIvB;IAgDD;;;OAGG;IACH,4BAHW,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,GACxB,OAAO,CAAC,IAAI,CAAC,CAgBzB;IAhCD;;;;;;;;OAQG;IACH,gCAFW,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,qBAK/C;;CAqBF;mBA3da,UAAU,QAAQ,EAAE,MAAM,CAAC;yBAC3B;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE;;gBAGjD,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI;iBAChC,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI;4BACtH,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI;;;kBAyd9D,MAAM;WACN,MAAM;cACN,WAAW;eACX,SAAS;;6BA5fM,oBAAoB;+BAoB4B,aAAa;gCAAb,aAAa;mCAAb,aAAa;sBAnBpE,WAAW;uBAUV,cAAc;2BAQV,WAAW;uCACuC,aAAa"}
|
|
@@ -32,7 +32,7 @@ export class InviteApi extends TypedEmitter<InviteApiEvents> {
|
|
|
32
32
|
* @param {Object} options
|
|
33
33
|
* @param {import('../local-peers.js').LocalPeers} options.rpc
|
|
34
34
|
* @param {object} options.queries
|
|
35
|
-
* @param {(projectInviteId: Readonly<Buffer>) => undefined | { projectPublicId: string }} options.queries.getProjectByInviteId
|
|
35
|
+
* @param {(projectInviteId: Readonly<Buffer>) => undefined | { projectPublicId: string, hasLeftProject: boolean }} options.queries.getProjectByInviteId
|
|
36
36
|
* @param {AddProjectQuery} options.queries.addProject
|
|
37
37
|
* @param {Logger} [options.logger]
|
|
38
38
|
*/
|
|
@@ -41,6 +41,7 @@ export class InviteApi extends TypedEmitter<InviteApiEvents> {
|
|
|
41
41
|
queries: {
|
|
42
42
|
getProjectByInviteId: (projectInviteId: Readonly<Buffer>) => undefined | {
|
|
43
43
|
projectPublicId: string;
|
|
44
|
+
hasLeftProject: boolean;
|
|
44
45
|
};
|
|
45
46
|
addProject: AddProjectQuery;
|
|
46
47
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invite-api.d.ts","sourceRoot":"","sources":["../../src/invite/invite-api.js"],"names":[],"mappings":"AAcA,iEAAiE;AACjE,gDAAgD;AAChD;;;;;;GAMG;AAQH;;;GAGG;AACH,4GAA4G;AAC5G,+LAA+L;AAE/L;;GAEG;AAEH;;;;GAIG;AAEH;;GAEG;AAEH;;GAEG;AACH;IAOE;;;;;;;OAOG;IACH,sCANG;QAAwD,GAAG,EAAnD,OAAO,mBAAmB,EAAE,UAAU;QACtB,OAAO,EAC/B;
|
|
1
|
+
{"version":3,"file":"invite-api.d.ts","sourceRoot":"","sources":["../../src/invite/invite-api.js"],"names":[],"mappings":"AAcA,iEAAiE;AACjE,gDAAgD;AAChD;;;;;;GAMG;AAQH;;;GAGG;AACH,4GAA4G;AAC5G,+LAA+L;AAE/L;;GAEG;AAEH;;;;GAIG;AAEH;;GAEG;AAEH;;GAEG;AACH;IAOE;;;;;;;OAOG;IACH,sCANG;QAAwD,GAAG,EAAnD,OAAO,mBAAmB,EAAE,UAAU;QACtB,OAAO,EAC/B;YAAiI,oBAAoB,EAA7I,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,SAAS,GAAG;gBAAE,eAAe,EAAE,MAAM,CAAC;gBAAC,cAAc,EAAE,OAAO,CAAA;aAAE;YACtE,UAAU,EAA3C,eAAe;SACvB;QAAyB,MAAM;KAAC,EAkClC;IA3BC,4CAAc;IA4KhB;;;;OAIG;IACH,WAFa,KAAK,CAAC,MAAM,CAAC,CAUzB;IAED;;;;;OAKG;IACH,wBAHW,MAAM,GACJ,MAAM,CASlB;IAED;;;;;;;;;;;;OAYG;IACH,qCAHW,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,GACtB,OAAO,CAAC,MAAM,CAAC,CAwC3B;IAED;;;OAGG;IACH,qCAHW,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,GACtB,IAAI,CAWhB;;CACF;+BAmD0C,CAAC,SAA/B,OAAQ,QAAQ,EAAE,UAAW,IAC7B,CAAC,SAAS,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,OAAO,QAAQ,EAAE,aAAa,GAAG,MAAM,CAAC,GAAG,KAAK;6BA3WjF,gBAAgB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE;0BAExC,kBAAkB,CAAC,OAAO,QAAQ,EAAE,cAAc,CAAC,OAAO,kBAAkB,CAAC,CAAC;qBAC9E,OAAO,WAAW,EAAE,QAAQ,CAAC,WAAW,cAAc,CAAC,GAAG;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,GAAG,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC;;iBAGvK,OAAO,QAAQ,EAAE,YAAY,CAAC,OAAO,kBAAkB,CAAC;;;uBAKvD,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;sBACxB,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI;;8BAIzB,CAAC,cAAc,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,CAAC;6BAhDxC,oBAAoB;uBAK1B,cAAc;gDAgB3B,qBAAqB;mCAdI,2BAA2B;gCAQ9B,aAAa;yCADJ,qBAAqB"}
|
package/dist/mapeo-manager.d.ts
CHANGED
|
@@ -161,6 +161,11 @@ export class MapeoManager extends TypedEmitter<MapeoManagerEvents> {
|
|
|
161
161
|
*/
|
|
162
162
|
leaveProject(projectPublicId: string): Promise<void>;
|
|
163
163
|
getMapStyleJsonUrl(): Promise<string>;
|
|
164
|
+
/**
|
|
165
|
+
* Cleans up open resorces and closes open projects
|
|
166
|
+
* @returns {Promise<void>}
|
|
167
|
+
*/
|
|
168
|
+
close(): Promise<void>;
|
|
164
169
|
#private;
|
|
165
170
|
}
|
|
166
171
|
export type ValidatedProjectKeys = SetNonNullable<ProjectKeys, "encryptionKeys">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapeo-manager.d.ts","sourceRoot":"","sources":["../src/mapeo-manager.js"],"names":[],"mappings":"AAuFA,oDAEC;AAED,mFAC6C;AAE7C,6CAA6C;AAE7C;;GAEG;AAEH;;;GAGG;AAEH;;GAEG;AACH;
|
|
1
|
+
{"version":3,"file":"mapeo-manager.d.ts","sourceRoot":"","sources":["../src/mapeo-manager.js"],"names":[],"mappings":"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"}
|
package/dist/mapeo-project.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export const kIsArchiveDevice: unique symbol;
|
|
|
18
18
|
export const kGeoJSONFileName: unique symbol;
|
|
19
19
|
/**
|
|
20
20
|
* @typedef RoleChangeEvent
|
|
21
|
-
* @property {Role & {reason: string |
|
|
21
|
+
* @property {Role & {reason: string | undefined}} role
|
|
22
22
|
*/
|
|
23
23
|
/**
|
|
24
24
|
* @typedef {object} ProjectEvents
|
|
@@ -2441,10 +2441,10 @@ export class MapeoProject extends TypedEmitter<ProjectEvents> {
|
|
|
2441
2441
|
*/
|
|
2442
2442
|
$hasSyncedProjectSettings(): Promise<boolean>;
|
|
2443
2443
|
/**
|
|
2444
|
-
* @returns {Promise<Role & {reason: string |
|
|
2444
|
+
* @returns {Promise<Role & {reason: string | undefined}>}
|
|
2445
2445
|
*/
|
|
2446
2446
|
$getOwnRole(): Promise<Role & {
|
|
2447
|
-
reason: string |
|
|
2447
|
+
reason: string | undefined;
|
|
2448
2448
|
}>;
|
|
2449
2449
|
/**
|
|
2450
2450
|
* @deprecated
|
|
@@ -5733,7 +5733,7 @@ export type ProjectStats = {
|
|
|
5733
5733
|
};
|
|
5734
5734
|
export type RoleChangeEvent = {
|
|
5735
5735
|
role: Role & {
|
|
5736
|
-
reason: string |
|
|
5736
|
+
reason: string | undefined;
|
|
5737
5737
|
};
|
|
5738
5738
|
};
|
|
5739
5739
|
export type ProjectEvents = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapeo-project.d.ts","sourceRoot":"","sources":["../src/mapeo-project.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mapeo-project.d.ts","sourceRoot":"","sources":["../src/mapeo-project.js"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BA7BJ,CAAC;wBAGN,CAAA;iCAAsC,CAAA;gCAI3B,CAAC;gCAKc,CAAA;oCAGtB,CAAC;;oCAcG,CAAC;;;;;;;;;;;;;;;;;;;;;;;8BA7BJ,CAAC;wBAGN,CAAA;iCAAsC,CAAA;gCAI3B,CAAC;gCAKc,CAAA;oCAGtB,CAAC;;oCAcG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAybN;IAED,8BAEC;IAkND;;;;;;;;;;;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;IAsPD;;;;OAIG;IACH,iCAJW,OAAO,UACP,OAAO,GACL,OAAO,CAAC,MAAM,CAAC,CAY3B;IAoPD,iCAUC;IAED;;;OAGG;IACH,gBAFa,OAAO,CAAC,IAAI,CAAC,CA+BzB;;CAsCF;sCA90Ca,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC;6BACxC,oBAAoB,CAAC,gBAAgB,CAAC;8BACtC,GAAG,CAAC,MAAM,EAAC,UAAU,CAAC;;cAE1B,MAAM,GAAC,SAAS;YAChB,MAAM;;;aAIF,MAAM,EAAE;YACR,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;;;oBAIvB,MAAM;kBACN,KAAK;YACL,KAAK;aACL,KAAK;;;UAwBL,IAAI,GAAG;QAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAAC;;;;;;WAKnC,MAAM,IAAI;uBACV,CAAC,WAAW,EAAE,eAAe,KAAK,IAAI;;6BAjHvB,oBAAoB;wBAYzB,eAAe;0BAHb,sBAAsB;yBACL,qBAAqB;0BAuCtC,iBAAiB;wBAKpC,oBAAoB;2BAIA,sBAAsB;0BAOzB,YAAY;wBATZ,eAAe;4BAhDX,yBAAyB;8BAuB9C,qBAAqB;0BApBF,uBAAuB;uCAqD8H,YAAY;4BAnD/J,yBAAyB;iCAmD0H,YAAY;0BAJjK,IAAI;uBALP,aAAa;0CAQ0B,iBAAiB;gCACgG,YAAY;4BAAZ,YAAY"}
|
package/dist/roles.d.ts
CHANGED
|
@@ -86,9 +86,9 @@ export class Roles extends TypedEmitter<RolesEvents> {
|
|
|
86
86
|
* Get the reason for the role of `deviceId` (if it exists).
|
|
87
87
|
*
|
|
88
88
|
* @param {string} deviceId
|
|
89
|
-
* @returns {Promise<string |
|
|
89
|
+
* @returns {Promise<string | undefined>}
|
|
90
90
|
*/
|
|
91
|
-
getRoleReason(deviceId: string): Promise<string |
|
|
91
|
+
getRoleReason(deviceId: string): Promise<string | undefined>;
|
|
92
92
|
/**
|
|
93
93
|
* Get roles of all devices in the project. For your own device, if you have
|
|
94
94
|
* not yet synced your own role record, the "no role" capabilties is
|
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;AAwB5C,6HAAmE;AAMnE,mIAA+E;AAa/E;;;;;;GAMG;AAEH;;;;;;;;GAQG;AAEH;;;;;;GAMG;AACH,2BAFU,IAAI,CAAC,OAAO,eAAe,CAAC,CAmBrC;AA6BD;;;;;;;;;GASG;AACH,sBAFU,IAAI,CAAC,OAAO,UAAU,CAAC,CAmBhC;AAED,yCAAyC;AACzC,oBADW,GAAG,CAAW,IAAN,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAE,CAgEpC;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;;;;;OAKG;IACH,wBAHW,MAAM,GACJ,OAAO,CAAC,MAAM,GAAG,
|
|
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;AAwB5C,6HAAmE;AAMnE,mIAA+E;AAa/E;;;;;;GAMG;AAEH;;;;;;;;GAQG;AAEH;;;;;;GAMG;AACH,2BAFU,IAAI,CAAC,OAAO,eAAe,CAAC,CAmBrC;AA6BD;;;;;;;;;GASG;AACH,sBAFU,IAAI,CAAC,OAAO,UAAU,CAAC,CAmBhC;AAED,yCAAyC;AACzC,oBADW,GAAG,CAAW,IAAN,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAE,CAgEpC;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;;;;;OAKG;IACH,wBAHW,MAAM,GACJ,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAOvC;IAED;;;;;;;OAOG;IACH,UAFa,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAsCtC;IAED;;;;;;;;;;OAUG;IACH,qBALW,MAAM,UACN,wBAAwB;gBAExB,MAAM;kCA+DhB;;CAQF;sBA/ZY,CAAC,IADD,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;qBAItC,SAAS,CAAC,OAAO,QAAQ,CAAC;iCAa1B,SAAS,CAAC,OAAO,uBAAuB,CAAC;uCAMzC,SAAS,CAAC,OAAO,6BAA6B,CAAC;uCAM/C,SAAS,CAAC,OAAO,6BAA6B,CAAC;;;;;aAa/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;;;;;;YAyJxC,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI;;6BA5Nd,oBAAoB;AAWjD;;;GAGG;AAEH,mDAAmD;AACnD,yJASC;AAGD,8EAA8E;AAC9E,yGAEC;AAGD,0FAA0F;AAC1F,+GAEC;AAGD,0FAA0F;AAC1F,oIAOC;+BAhD8B,YAAY"}
|
package/package.json
CHANGED
package/src/blob-store/index.js
CHANGED
|
@@ -313,6 +313,32 @@ export class BlobStore extends TypedEmitter {
|
|
|
313
313
|
return blobs.get(entry.value.blob, { wait: false, start: 0, length })
|
|
314
314
|
}
|
|
315
315
|
|
|
316
|
+
/**
|
|
317
|
+
* Check if all the blocks for a given blob entry have been downloaded
|
|
318
|
+
* @param {BlobId['driveId']} driveId Hyperdrive drive id
|
|
319
|
+
* @param {import('hyperdrive').HyperdriveEntry} entry Hyperdrive entry
|
|
320
|
+
* @returns {Promise<boolean>}
|
|
321
|
+
*/
|
|
322
|
+
async hasDownloadedBlobEntry(driveId, entry) {
|
|
323
|
+
const drive = this.#getDrive(driveId)
|
|
324
|
+
const blobs = await drive.getBlobs()
|
|
325
|
+
|
|
326
|
+
if (!blobs) {
|
|
327
|
+
return false
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
const { blockOffset, blockLength } = entry.value.blob
|
|
331
|
+
|
|
332
|
+
const core = blobs.core.session()
|
|
333
|
+
try {
|
|
334
|
+
const start = blockOffset
|
|
335
|
+
const end = blockOffset + blockLength
|
|
336
|
+
return core.has(start, end)
|
|
337
|
+
} catch {
|
|
338
|
+
return false
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
316
342
|
/**
|
|
317
343
|
*
|
|
318
344
|
* @param {Omit<BlobId, 'driveId'>} blobId
|
|
@@ -258,11 +258,17 @@ export class CoreManager extends TypedEmitter {
|
|
|
258
258
|
*/
|
|
259
259
|
async close() {
|
|
260
260
|
this.#state = 'closing'
|
|
261
|
+
|
|
262
|
+
// Closes all cores in the index
|
|
261
263
|
const promises = []
|
|
262
264
|
for (const { core } of this.#coreIndex) {
|
|
263
265
|
promises.push(core.close())
|
|
264
266
|
}
|
|
265
267
|
await Promise.all(promises)
|
|
268
|
+
|
|
269
|
+
// Closes sessions in the corestore
|
|
270
|
+
await this.#corestore.close()
|
|
271
|
+
|
|
266
272
|
this.#state = 'closed'
|
|
267
273
|
}
|
|
268
274
|
|
package/src/invite/invite-api.js
CHANGED
|
@@ -63,7 +63,7 @@ export class InviteApi extends TypedEmitter {
|
|
|
63
63
|
* @param {Object} options
|
|
64
64
|
* @param {import('../local-peers.js').LocalPeers} options.rpc
|
|
65
65
|
* @param {object} options.queries
|
|
66
|
-
* @param {(projectInviteId: Readonly<Buffer>) => undefined | { projectPublicId: string }} options.queries.getProjectByInviteId
|
|
66
|
+
* @param {(projectInviteId: Readonly<Buffer>) => undefined | { projectPublicId: string, hasLeftProject: boolean }} options.queries.getProjectByInviteId
|
|
67
67
|
* @param {AddProjectQuery} options.queries.addProject
|
|
68
68
|
* @param {Logger} [options.logger]
|
|
69
69
|
*/
|
|
@@ -138,7 +138,11 @@ export class InviteApi extends TypedEmitter {
|
|
|
138
138
|
return
|
|
139
139
|
}
|
|
140
140
|
|
|
141
|
-
const
|
|
141
|
+
const existingProject = this.#getProjectByInviteId(projectInviteId)
|
|
142
|
+
const isAlreadyMember = existingProject
|
|
143
|
+
? !existingProject.hasLeftProject
|
|
144
|
+
: false
|
|
145
|
+
|
|
142
146
|
if (isAlreadyMember) {
|
|
143
147
|
this.#l.log('Invite %h: already in project', inviteId)
|
|
144
148
|
this.rpc
|
|
@@ -169,9 +173,10 @@ export class InviteApi extends TypedEmitter {
|
|
|
169
173
|
guards: {
|
|
170
174
|
isNotAlreadyJoiningOrInProject: () => {
|
|
171
175
|
const isJoining = this.#isJoiningProject(projectInviteId)
|
|
172
|
-
const
|
|
173
|
-
|
|
174
|
-
|
|
176
|
+
const existingProject = this.#getProjectByInviteId(projectInviteId)
|
|
177
|
+
const isAlreadyMember = existingProject
|
|
178
|
+
? !existingProject.hasLeftProject
|
|
179
|
+
: false
|
|
175
180
|
return !isJoining && !isAlreadyMember
|
|
176
181
|
},
|
|
177
182
|
},
|
package/src/mapeo-manager.js
CHANGED
|
@@ -2,7 +2,7 @@ import { randomBytes } from 'crypto'
|
|
|
2
2
|
import path from 'path'
|
|
3
3
|
import { KeyManager } from '@mapeo/crypto'
|
|
4
4
|
import Database from 'better-sqlite3'
|
|
5
|
-
import { eq } from 'drizzle-orm'
|
|
5
|
+
import { eq, and } from 'drizzle-orm'
|
|
6
6
|
import { drizzle } from 'drizzle-orm/better-sqlite3'
|
|
7
7
|
import Hypercore from 'hypercore'
|
|
8
8
|
import { TypedEmitter } from 'tiny-typed-emitter'
|
|
@@ -110,6 +110,7 @@ export class MapeoManager extends TypedEmitter {
|
|
|
110
110
|
#keyManager
|
|
111
111
|
#projectSettingsIndexWriter
|
|
112
112
|
#db
|
|
113
|
+
#sqlite
|
|
113
114
|
// Maps project public id -> project instance
|
|
114
115
|
/** @type {Map<string, MapeoProject>} */
|
|
115
116
|
#activeProjects
|
|
@@ -182,6 +183,8 @@ export class MapeoManager extends TypedEmitter {
|
|
|
182
183
|
},
|
|
183
184
|
})
|
|
184
185
|
|
|
186
|
+
this.#sqlite = sqlite
|
|
187
|
+
|
|
185
188
|
this.#localPeers = new LocalPeers({ logger })
|
|
186
189
|
this.#localPeers.on('peers', (peers) => {
|
|
187
190
|
this.emit('local-peers', omitPeerProtomux(peers))
|
|
@@ -691,11 +694,15 @@ export class MapeoManager extends TypedEmitter {
|
|
|
691
694
|
const projectExists = this.#db
|
|
692
695
|
.select()
|
|
693
696
|
.from(projectKeysTable)
|
|
694
|
-
.where(
|
|
697
|
+
.where(
|
|
698
|
+
and(
|
|
699
|
+
eq(projectKeysTable.projectId, projectId),
|
|
700
|
+
eq(projectKeysTable.hasLeftProject, false)
|
|
701
|
+
)
|
|
702
|
+
)
|
|
695
703
|
.get()
|
|
696
704
|
|
|
697
705
|
if (projectExists) {
|
|
698
|
-
// TODO: Define behavior for adding a project that the user has left
|
|
699
706
|
throw new Error(`Project with ID ${projectPublicId} already exists`)
|
|
700
707
|
}
|
|
701
708
|
|
|
@@ -716,6 +723,7 @@ export class MapeoManager extends TypedEmitter {
|
|
|
716
723
|
projectDescription,
|
|
717
724
|
sendStats,
|
|
718
725
|
},
|
|
726
|
+
hasLeftProject: false,
|
|
719
727
|
})
|
|
720
728
|
|
|
721
729
|
// Any errors from here we need to remove project from db because it has not
|
|
@@ -734,6 +742,11 @@ export class MapeoManager extends TypedEmitter {
|
|
|
734
742
|
throw e
|
|
735
743
|
}
|
|
736
744
|
|
|
745
|
+
// Make sure to clean up when closed
|
|
746
|
+
project.once('close', () => {
|
|
747
|
+
this.#activeProjects.delete(projectPublicId)
|
|
748
|
+
})
|
|
749
|
+
|
|
737
750
|
try {
|
|
738
751
|
const deviceInfo = this.getDeviceInfo()
|
|
739
752
|
if (hasSavedDeviceInfo(deviceInfo)) {
|
|
@@ -1056,12 +1069,28 @@ export class MapeoManager extends TypedEmitter {
|
|
|
1056
1069
|
const project = await this.getProject(projectPublicId)
|
|
1057
1070
|
|
|
1058
1071
|
await project[kProjectLeave]()
|
|
1072
|
+
|
|
1073
|
+
// Sync any role changes from project leave
|
|
1074
|
+
await this.#waitForInitialSync(project)
|
|
1059
1075
|
}
|
|
1060
1076
|
|
|
1061
1077
|
async getMapStyleJsonUrl() {
|
|
1062
1078
|
await pTimeout(this.#fastify.ready(), { milliseconds: 1000 })
|
|
1063
1079
|
return (await this.#getMediaBaseUrl('maps')) + '/style.json'
|
|
1064
1080
|
}
|
|
1081
|
+
|
|
1082
|
+
/**
|
|
1083
|
+
* Cleans up open resorces and closes open projects
|
|
1084
|
+
* @returns {Promise<void>}
|
|
1085
|
+
*/
|
|
1086
|
+
async close() {
|
|
1087
|
+
// This added for workers PR
|
|
1088
|
+
// await this.#projectSettingsIndexWriter.close()
|
|
1089
|
+
await Promise.all(
|
|
1090
|
+
[...this.#activeProjects.values()].map((project) => project.close())
|
|
1091
|
+
)
|
|
1092
|
+
this.#sqlite.close()
|
|
1093
|
+
}
|
|
1065
1094
|
}
|
|
1066
1095
|
|
|
1067
1096
|
// We use the `protomux` property of connected peers internally, but we don't
|
package/src/mapeo-project.js
CHANGED
|
@@ -111,7 +111,7 @@ const VARIANT_EXPORT_ORDER = ['original', 'preview', 'thumbnail']
|
|
|
111
111
|
|
|
112
112
|
/**
|
|
113
113
|
* @typedef RoleChangeEvent
|
|
114
|
-
* @property {Role & {reason: string |
|
|
114
|
+
* @property {Role & {reason: string | undefined}} role
|
|
115
115
|
*/
|
|
116
116
|
|
|
117
117
|
/**
|
|
@@ -428,6 +428,8 @@ export class MapeoProject extends TypedEmitter {
|
|
|
428
428
|
})
|
|
429
429
|
|
|
430
430
|
this.#blobStore.on('error', (err) => {
|
|
431
|
+
// Ignore hypercore inflight request cancellation
|
|
432
|
+
if (ensureError(err).message.includes('REQUEST_CANCELLED')) return
|
|
431
433
|
// TODO: Handle this error in some way - this error will come from an
|
|
432
434
|
// unexpected error with background blob downloads
|
|
433
435
|
console.error('BlobStore error', err)
|
|
@@ -741,7 +743,7 @@ export class MapeoProject extends TypedEmitter {
|
|
|
741
743
|
}
|
|
742
744
|
|
|
743
745
|
/**
|
|
744
|
-
* @returns {Promise<Role & {reason: string |
|
|
746
|
+
* @returns {Promise<Role & {reason: string | undefined}>}
|
|
745
747
|
*/
|
|
746
748
|
async $getOwnRole() {
|
|
747
749
|
const reason = await this.#roles.getRoleReason(this.#deviceId)
|
|
@@ -1162,6 +1164,13 @@ export class MapeoProject extends TypedEmitter {
|
|
|
1162
1164
|
continue
|
|
1163
1165
|
}
|
|
1164
1166
|
}
|
|
1167
|
+
const hasDownloaded = await this.#blobStore.hasDownloadedBlobEntry(
|
|
1168
|
+
blobId.driveId,
|
|
1169
|
+
entry
|
|
1170
|
+
)
|
|
1171
|
+
if (!hasDownloaded) {
|
|
1172
|
+
continue
|
|
1173
|
+
}
|
|
1165
1174
|
return { blobId, mimeType }
|
|
1166
1175
|
} catch (e) {
|
|
1167
1176
|
if (!(e instanceof Error)) throw e
|
package/src/roles.js
CHANGED
|
@@ -296,13 +296,13 @@ export class Roles extends TypedEmitter {
|
|
|
296
296
|
* Get the reason for the role of `deviceId` (if it exists).
|
|
297
297
|
*
|
|
298
298
|
* @param {string} deviceId
|
|
299
|
-
* @returns {Promise<string |
|
|
299
|
+
* @returns {Promise<string | undefined>}
|
|
300
300
|
*/
|
|
301
301
|
async getRoleReason(deviceId) {
|
|
302
302
|
const roleRecord = await this.#dataType
|
|
303
303
|
.getByDocId(deviceId)
|
|
304
304
|
.catch(nullIfNotFound)
|
|
305
|
-
return roleRecord?.reason ??
|
|
305
|
+
return roleRecord?.reason ?? undefined
|
|
306
306
|
}
|
|
307
307
|
|
|
308
308
|
/**
|