@comapeo/core 2.0.1 → 2.2.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/blob-store/downloader.d.ts +43 -0
- package/dist/blob-store/downloader.d.ts.map +1 -0
- package/dist/blob-store/entries-stream.d.ts +13 -0
- package/dist/blob-store/entries-stream.d.ts.map +1 -0
- package/dist/blob-store/hyperdrive-index.d.ts +20 -0
- package/dist/blob-store/hyperdrive-index.d.ts.map +1 -0
- package/dist/blob-store/index.d.ts +34 -29
- package/dist/blob-store/index.d.ts.map +1 -1
- package/dist/blob-store/utils.d.ts +27 -0
- package/dist/blob-store/utils.d.ts.map +1 -0
- package/dist/constants.d.ts +2 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/core-manager/index.d.ts +11 -1
- package/dist/core-manager/index.d.ts.map +1 -1
- package/dist/core-ownership.d.ts.map +1 -1
- package/dist/datastore/index.d.ts +5 -4
- package/dist/datastore/index.d.ts.map +1 -1
- package/dist/datatype/index.d.ts +5 -1
- package/dist/discovery/local-discovery.d.ts.map +1 -1
- package/dist/errors.d.ts +6 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/fastify-plugins/blobs.d.ts.map +1 -1
- package/dist/fastify-plugins/maps.d.ts.map +1 -1
- package/dist/generated/extensions.d.ts +31 -0
- package/dist/generated/extensions.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/drizzle-helpers.d.ts +6 -0
- package/dist/lib/drizzle-helpers.d.ts.map +1 -0
- package/dist/lib/error.d.ts +51 -0
- package/dist/lib/error.d.ts.map +1 -0
- package/dist/lib/get-own.d.ts +9 -0
- package/dist/lib/get-own.d.ts.map +1 -0
- package/dist/lib/is-hostname-ip-address.d.ts +17 -0
- package/dist/lib/is-hostname-ip-address.d.ts.map +1 -0
- package/dist/lib/ws-core-replicator.d.ts +11 -0
- package/dist/lib/ws-core-replicator.d.ts.map +1 -0
- package/dist/mapeo-manager.d.ts +18 -22
- package/dist/mapeo-manager.d.ts.map +1 -1
- package/dist/mapeo-project.d.ts +459 -26
- package/dist/mapeo-project.d.ts.map +1 -1
- package/dist/member-api.d.ts +44 -1
- package/dist/member-api.d.ts.map +1 -1
- package/dist/roles.d.ts.map +1 -1
- package/dist/schema/client.d.ts +17 -5
- package/dist/schema/client.d.ts.map +1 -1
- package/dist/schema/project.d.ts +212 -2
- package/dist/schema/project.d.ts.map +1 -1
- package/dist/sync/core-sync-state.d.ts +20 -15
- package/dist/sync/core-sync-state.d.ts.map +1 -1
- package/dist/sync/namespace-sync-state.d.ts +13 -1
- package/dist/sync/namespace-sync-state.d.ts.map +1 -1
- package/dist/sync/peer-sync-controller.d.ts +1 -1
- package/dist/sync/peer-sync-controller.d.ts.map +1 -1
- package/dist/sync/sync-api.d.ts +47 -2
- package/dist/sync/sync-api.d.ts.map +1 -1
- package/dist/sync/sync-state.d.ts +12 -0
- package/dist/sync/sync-state.d.ts.map +1 -1
- package/dist/translation-api.d.ts +2 -2
- package/dist/translation-api.d.ts.map +1 -1
- package/dist/types.d.ts +10 -2
- package/dist/types.d.ts.map +1 -1
- package/drizzle/client/0001_chubby_cargill.sql +12 -0
- package/drizzle/client/meta/0001_snapshot.json +208 -0
- package/drizzle/client/meta/_journal.json +7 -0
- package/drizzle/project/0001_medical_wendell_rand.sql +22 -0
- package/drizzle/project/meta/0001_snapshot.json +1267 -0
- package/drizzle/project/meta/_journal.json +7 -0
- package/package.json +14 -5
- package/src/blob-store/downloader.js +130 -0
- package/src/blob-store/entries-stream.js +81 -0
- package/src/blob-store/hyperdrive-index.js +122 -0
- package/src/blob-store/index.js +59 -117
- package/src/blob-store/utils.js +54 -0
- package/src/constants.js +4 -1
- package/src/core-manager/index.js +60 -3
- package/src/core-ownership.js +2 -4
- package/src/datastore/README.md +1 -2
- package/src/datastore/index.js +8 -8
- package/src/datatype/index.d.ts +5 -1
- package/src/datatype/index.js +22 -9
- package/src/discovery/local-discovery.js +2 -1
- package/src/errors.js +11 -2
- package/src/fastify-plugins/blobs.js +17 -1
- package/src/fastify-plugins/maps.js +2 -1
- package/src/generated/extensions.d.ts +31 -0
- package/src/generated/extensions.js +150 -0
- package/src/generated/extensions.ts +181 -0
- package/src/index.js +10 -0
- package/src/invite-api.js +1 -1
- package/src/lib/drizzle-helpers.js +79 -0
- package/src/lib/error.js +71 -0
- package/src/lib/get-own.js +10 -0
- package/src/lib/is-hostname-ip-address.js +26 -0
- package/src/lib/ws-core-replicator.js +47 -0
- package/src/mapeo-manager.js +74 -45
- package/src/mapeo-project.js +238 -58
- package/src/member-api.js +295 -2
- package/src/roles.js +38 -32
- package/src/schema/client.js +4 -3
- package/src/schema/project.js +7 -0
- package/src/sync/core-sync-state.js +39 -23
- package/src/sync/namespace-sync-state.js +22 -0
- package/src/sync/peer-sync-controller.js +1 -0
- package/src/sync/sync-api.js +197 -3
- package/src/sync/sync-state.js +18 -0
- package/src/translation-api.js +5 -9
- package/src/types.ts +12 -3
- package/dist/blob-store/live-download.d.ts +0 -107
- package/dist/blob-store/live-download.d.ts.map +0 -1
- package/dist/lib/timing-safe-equal.d.ts +0 -15
- package/dist/lib/timing-safe-equal.d.ts.map +0 -1
- package/src/blob-store/live-download.js +0 -373
- package/src/lib/timing-safe-equal.js +0 -34
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** @import { WebSocket } from 'ws' */
|
|
2
|
+
/** @import { ReplicationStream } from '../types.js' */
|
|
3
|
+
/**
|
|
4
|
+
* @param {WebSocket} ws
|
|
5
|
+
* @param {ReplicationStream} replicationStream
|
|
6
|
+
* @returns {Promise<void>}
|
|
7
|
+
*/
|
|
8
|
+
export function wsCoreReplicator(ws: WebSocket, replicationStream: ReplicationStream): Promise<void>;
|
|
9
|
+
import type { WebSocket } from 'ws';
|
|
10
|
+
import type { ReplicationStream } from '../types.js';
|
|
11
|
+
//# sourceMappingURL=ws-core-replicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-core-replicator.d.ts","sourceRoot":"","sources":["../../src/lib/ws-core-replicator.js"],"names":[],"mappings":"AAGA,sCAAsC;AACtC,uDAAuD;AAEvD;;;;GAIG;AACH,qCAJW,SAAS,qBACT,iBAAiB,GACf,OAAO,CAAC,IAAI,CAAC,CAmBzB;+BAzB8B,IAAI;uCACI,aAAa"}
|
package/dist/mapeo-manager.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
export const DEFAULT_FALLBACK_MAP_FILE_PATH: string;
|
|
2
2
|
export const DEFAULT_ONLINE_STYLE_URL: "https://demotiles.maplibre.org/style.json";
|
|
3
|
-
export const kRPC: unique symbol;
|
|
4
|
-
export const kManagerReplicate: unique symbol;
|
|
5
3
|
/**
|
|
6
4
|
* @typedef {Omit<import('./local-peers.js').PeerInfo, 'protomux'>} PublicPeerInfo
|
|
7
5
|
*/
|
|
@@ -72,7 +70,7 @@ export class MapeoManager extends TypedEmitter<MapeoManagerEvents> {
|
|
|
72
70
|
* downloaded their proof of project membership and the project config.
|
|
73
71
|
*
|
|
74
72
|
* @param {Pick<import('./generated/rpc.js').ProjectJoinDetails, 'projectKey' | 'encryptionKeys'> & { projectName: string }} projectJoinDetails
|
|
75
|
-
* @param {{ waitForSync?: boolean }} [opts]
|
|
73
|
+
* @param {{ waitForSync?: boolean }} [opts] Set opts.waitForSync = false to not wait for sync during addProject()
|
|
76
74
|
* @returns {Promise<string>}
|
|
77
75
|
*/
|
|
78
76
|
addProject: ({ projectKey, encryptionKeys, projectName }: Pick<import("./generated/rpc.js").ProjectJoinDetails, "projectKey" | "encryptionKeys"> & {
|
|
@@ -81,9 +79,7 @@ export class MapeoManager extends TypedEmitter<MapeoManagerEvents> {
|
|
|
81
79
|
waitForSync?: boolean;
|
|
82
80
|
} | undefined) => Promise<string>;
|
|
83
81
|
/**
|
|
84
|
-
* @typedef {
|
|
85
|
-
* import('./schema/client.js').DeviceInfoParam['deviceType'],
|
|
86
|
-
* 'selfHostedServer'>} RPCDeviceType
|
|
82
|
+
* @typedef {import('./schema/client.js').DeviceInfoParam['deviceType']} RPCDeviceType
|
|
87
83
|
*/
|
|
88
84
|
/**
|
|
89
85
|
* @template {import('type-fest').Exact<
|
|
@@ -91,7 +87,7 @@ export class MapeoManager extends TypedEmitter<MapeoManagerEvents> {
|
|
|
91
87
|
* @param {T} deviceInfo
|
|
92
88
|
*/
|
|
93
89
|
setDeviceInfo<T extends import("type-fest").Exact<import("./schema/client.js").DeviceInfoParam & {
|
|
94
|
-
deviceType?: "UNRECOGNIZED" | "device_type_unspecified" | "mobile" | "tablet" | "desktop";
|
|
90
|
+
deviceType?: "UNRECOGNIZED" | "device_type_unspecified" | "mobile" | "tablet" | "desktop" | "selfHostedServer";
|
|
95
91
|
}, T>>(deviceInfo: T): Promise<void>;
|
|
96
92
|
/**
|
|
97
93
|
* @returns {(
|
|
@@ -105,6 +101,21 @@ export class MapeoManager extends TypedEmitter<MapeoManagerEvents> {
|
|
|
105
101
|
deviceId: string;
|
|
106
102
|
deviceType: DeviceInfoParam["deviceType"];
|
|
107
103
|
} & Partial<DeviceInfoParam>);
|
|
104
|
+
/**
|
|
105
|
+
* Set whether this device is an archive device. Archive devices will download
|
|
106
|
+
* all media during sync, where-as non-archive devices will not download media
|
|
107
|
+
* original variants, and only download preview and thumbnail variants.
|
|
108
|
+
* @param {boolean} isArchiveDevice
|
|
109
|
+
* @returns {void}
|
|
110
|
+
*/
|
|
111
|
+
setIsArchiveDevice(isArchiveDevice: boolean): void;
|
|
112
|
+
/**
|
|
113
|
+
* Get whether this device is an archive device. Archive devices will download
|
|
114
|
+
* all media during sync, where-as non-archive devices will not download media
|
|
115
|
+
* original variants, and only download preview and thumbnail variants.
|
|
116
|
+
* @returns {boolean} isArchiveDevice
|
|
117
|
+
*/
|
|
118
|
+
getIsArchiveDevice(): boolean;
|
|
108
119
|
/**
|
|
109
120
|
* @returns {InviteApi}
|
|
110
121
|
*/
|
|
@@ -150,20 +161,6 @@ export class MapeoManager extends TypedEmitter<MapeoManagerEvents> {
|
|
|
150
161
|
*/
|
|
151
162
|
leaveProject(projectPublicId: string): Promise<void>;
|
|
152
163
|
getMapStyleJsonUrl(): Promise<string>;
|
|
153
|
-
/**
|
|
154
|
-
* MapeoRPC instance, used for tests
|
|
155
|
-
*/
|
|
156
|
-
get [kRPC](): LocalPeers;
|
|
157
|
-
/**
|
|
158
|
-
* Create a Mapeo replication stream. This replication connects the Mapeo RPC
|
|
159
|
-
* channel and allows invites. All active projects will sync automatically to
|
|
160
|
-
* this replication stream. Only use for local (trusted) connections, because
|
|
161
|
-
* the RPC channel key is public. To sync a specific project without
|
|
162
|
-
* connecting RPC, use project[kProjectReplication].
|
|
163
|
-
*
|
|
164
|
-
* @param {boolean} isInitiator
|
|
165
|
-
*/
|
|
166
|
-
[kManagerReplicate](isInitiator: boolean): import("./types.js").ReplicationStream;
|
|
167
164
|
#private;
|
|
168
165
|
}
|
|
169
166
|
export type ValidatedProjectKeys = SetNonNullable<ProjectKeys, "encryptionKeys">;
|
|
@@ -179,7 +176,6 @@ import { MapeoProject } from './mapeo-project.js';
|
|
|
179
176
|
import type { ProjectSettingsValue as ProjectValue } from '@comapeo/schema';
|
|
180
177
|
import type { DeviceInfoParam } from './schema/client.js';
|
|
181
178
|
import { InviteApi } from './invite-api.js';
|
|
182
|
-
import { LocalPeers } from './local-peers.js';
|
|
183
179
|
import type { CoreStorage } from './types.js';
|
|
184
180
|
import { ProjectKeys } from './generated/keys.js';
|
|
185
181
|
import type { SetNonNullable } from 'type-fest';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapeo-manager.d.ts","sourceRoot":"","sources":["../src/mapeo-manager.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mapeo-manager.d.ts","sourceRoot":"","sources":["../src/mapeo-manager.js"],"names":[],"mappings":"AA4EA,oDAEC;AAED,mFAC6C;AAE7C;;GAEG;AAEH;;;GAGG;AAEH;;GAEG;AACH;IAqBE;;;;;;;;;;;;OAYG;IACH,qLAXG;QAAqB,OAAO,EAApB,MAAM;QACO,QAAQ,EAArB,MAAM;QACO,uBAAuB,EAApC,MAAM;QACO,sBAAsB,EAAnC,MAAM;QACqB,WAAW,EAAtC,MAAM,GAAG,WAAW;QACoB,OAAO,EAA/C,OAAO,SAAS,EAAE,eAAe;QACnB,iBAAiB;QACjB,aAAa;QACb,eAAe;QACf,qBAAqB;KAC7C,EA4FA;IAED,uBAEC;IAiID;;;;;;;;;OASG;IACH;;qBALsB,MAAM;oBAGf,OAAO,CAAC,MAAM,CAAC,CA2E3B;IAED;;;OAGG;IACH,4BAHW,MAAM,GACJ,OAAO,CAAC,YAAY,CAAC,CAuCjC;IAuBD;;OAEG;IACH,gBAFa,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC,CAgDrH;IAED;;;;;;;;OAQG;IACH,0DAJW,IAAI,CAAC,OAAO,oBAAoB,EAAE,kBAAkB,EAAE,YAAY,GAAG,gBAAgB,CAAC,GAAG;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE;sBAChG,OAAO;sBACrB,OAAO,CAAC,MAAM,CAAC,CAgF3B;IAwED;;OAEG;IAEH;;;;OAIG;IACH,cAHoF,CAAC,SADxE,OAAQ,WAAW,EAAE,KAAK,CACtC,OAAS,oBAAoB,EAAE,eAAe,GAAG;QAAC,UAAU,CAAC,oGAAe;KAAC,EAAE,CAAC,CAAE,cACxE,CAAC,iBAuCX;IAED;;;;;;;OAOG;IACH,iBAPa,CACZ;QACM,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,eAAe,CAAC,YAAY,CAAC,CAAA;KAC1C,GAAG,OAAO,CAAC,eAAe,CAAC,CAC7B,CAaH;IAED;;;;;;OAMG;IACH,oCAHW,OAAO,GACL,IAAI,CAkBhB;IAED;;;;;OAKG;IACH,sBAFa,OAAO,CAanB;IAED;;OAEG;IACH,wBAEC;IAED,yDAAyD;IACzD,iCADc,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAGpD;;;;;;;;;;IAYD;;OAEG;IACH,kBAFa,OAAO,CAAC,cAAc,EAAE,CAAC,CAIrC;IAED;;;;;;;OAOG;IACH,kBAFa,IAAI,CAKhB;IAED;;;;;;;OAOG;IACH,kBAFa,IAAI,CAKhB;IAED;;OAEG;IACH,8BAFW,MAAM,iBAgDhB;IAED,sCAGC;;CACF;mCA32Ba,eAAe,WAAW,EAAE,gBAAgB,CAAC;6BAwB9C,IAAI,CAAC,OAAO,kBAAkB,EAAE,QAAQ,EAAE,UAAU,CAAC;;;;;mBAKpD,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI;;6BAjFlB,oBAAoB;6BAY1C,oBAAoB;0DAkC+B,iBAAiB;qCAItC,oBAAoB;0BAd/B,iBAAiB;iCAaC,YAAY;4BA/B5B,qBAAqB;oCA8Bb,WAAW"}
|