@comapeo/core 2.0.0 → 2.1.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.
Files changed (82) hide show
  1. package/dist/blob-store/index.d.ts +23 -49
  2. package/dist/blob-store/index.d.ts.map +1 -1
  3. package/dist/constants.d.ts +2 -1
  4. package/dist/constants.d.ts.map +1 -1
  5. package/dist/core-manager/index.d.ts +10 -0
  6. package/dist/core-manager/index.d.ts.map +1 -1
  7. package/dist/core-ownership.d.ts.map +1 -1
  8. package/dist/datastore/index.d.ts +5 -4
  9. package/dist/datastore/index.d.ts.map +1 -1
  10. package/dist/generated/extensions.d.ts +31 -0
  11. package/dist/generated/extensions.d.ts.map +1 -1
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/lib/drizzle-helpers.d.ts +6 -0
  15. package/dist/lib/drizzle-helpers.d.ts.map +1 -0
  16. package/dist/lib/error.d.ts +37 -0
  17. package/dist/lib/error.d.ts.map +1 -0
  18. package/dist/lib/get-own.d.ts +9 -0
  19. package/dist/lib/get-own.d.ts.map +1 -0
  20. package/dist/lib/is-hostname-ip-address.d.ts +17 -0
  21. package/dist/lib/is-hostname-ip-address.d.ts.map +1 -0
  22. package/dist/lib/omit.d.ts +17 -0
  23. package/dist/lib/omit.d.ts.map +1 -0
  24. package/dist/lib/ws-core-replicator.d.ts +11 -0
  25. package/dist/lib/ws-core-replicator.d.ts.map +1 -0
  26. package/dist/mapeo-manager.d.ts +18 -22
  27. package/dist/mapeo-manager.d.ts.map +1 -1
  28. package/dist/mapeo-project.d.ts +454 -37
  29. package/dist/mapeo-project.d.ts.map +1 -1
  30. package/dist/member-api.d.ts +40 -1
  31. package/dist/member-api.d.ts.map +1 -1
  32. package/dist/schema/client.d.ts +17 -5
  33. package/dist/schema/client.d.ts.map +1 -1
  34. package/dist/schema/project.d.ts +211 -1
  35. package/dist/schema/project.d.ts.map +1 -1
  36. package/dist/sync/peer-sync-controller.d.ts.map +1 -1
  37. package/dist/sync/sync-api.d.ts +28 -2
  38. package/dist/sync/sync-api.d.ts.map +1 -1
  39. package/dist/translation-api.d.ts.map +1 -1
  40. package/dist/types.d.ts +3 -2
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/utils.d.ts.map +1 -1
  43. package/drizzle/client/0001_chubby_cargill.sql +12 -0
  44. package/drizzle/client/meta/0001_snapshot.json +208 -0
  45. package/drizzle/client/meta/_journal.json +7 -0
  46. package/drizzle/project/0001_medical_wendell_rand.sql +22 -0
  47. package/drizzle/project/meta/0001_snapshot.json +1267 -0
  48. package/drizzle/project/meta/_journal.json +7 -0
  49. package/package.json +10 -6
  50. package/src/blob-store/index.js +20 -4
  51. package/src/config-import.js +0 -1
  52. package/src/constants.js +4 -1
  53. package/src/core-manager/index.js +58 -2
  54. package/src/core-ownership.js +5 -2
  55. package/src/datastore/README.md +1 -2
  56. package/src/datastore/index.js +4 -5
  57. package/src/fastify-plugins/blobs.js +1 -0
  58. package/src/fastify-plugins/maps.js +11 -3
  59. package/src/generated/extensions.d.ts +31 -0
  60. package/src/generated/extensions.js +150 -0
  61. package/src/generated/extensions.ts +181 -0
  62. package/src/index.js +10 -0
  63. package/src/invite-api.js +1 -1
  64. package/src/lib/drizzle-helpers.js +79 -0
  65. package/src/lib/error.js +47 -0
  66. package/src/lib/get-own.js +10 -0
  67. package/src/lib/is-hostname-ip-address.js +26 -0
  68. package/src/lib/omit.js +28 -0
  69. package/src/lib/ws-core-replicator.js +47 -0
  70. package/src/mapeo-manager.js +76 -53
  71. package/src/mapeo-project.js +155 -46
  72. package/src/member-api.js +253 -2
  73. package/src/schema/client.js +4 -3
  74. package/src/schema/project.js +7 -0
  75. package/src/sync/peer-sync-controller.js +1 -0
  76. package/src/sync/sync-api.js +171 -3
  77. package/src/translation-api.js +2 -2
  78. package/src/types.ts +4 -3
  79. package/src/utils.js +11 -14
  80. package/dist/lib/timing-safe-equal.d.ts +0 -15
  81. package/dist/lib/timing-safe-equal.d.ts.map +0 -1
  82. package/src/lib/timing-safe-equal.js +0 -34
@@ -6,11 +6,13 @@
6
6
  * ProjectSettingsValue
7
7
  * } from '@comapeo/schema'
8
8
  */
9
+ /** @import { Promisable } from 'type-fest' */
9
10
  /** @import { Invite, InviteResponse } from './generated/rpc.js' */
10
11
  /** @import { DataType } from './datatype/index.js' */
11
12
  /** @import { DataStore } from './datastore/index.js' */
12
13
  /** @import { deviceInfoTable } from './schema/project.js' */
13
14
  /** @import { projectSettingsTable } from './schema/client.js' */
15
+ /** @import { ReplicationStream } from './types.js' */
14
16
  /** @typedef {DataType<DataStore<'config'>, typeof deviceInfoTable, "deviceInfo", DeviceInfo, DeviceInfoValue>} DeviceInfoDataType */
15
17
  /** @typedef {DataType<DataStore<'config'>, typeof projectSettingsTable, "projectSettings", ProjectSettings, ProjectSettingsValue>} ProjectDataType */
16
18
  /**
@@ -20,6 +22,8 @@
20
22
  * @prop {DeviceInfo['name']} [name]
21
23
  * @prop {DeviceInfo['deviceType']} [deviceType]
22
24
  * @prop {DeviceInfo['createdAt']} [joinedAt]
25
+ * @prop {object} [selfHostedServerDetails]
26
+ * @prop {string} selfHostedServerDetails.baseUrl
23
27
  */
24
28
  export class MemberApi extends TypedEmitter<import("tiny-typed-emitter").DefaultListener> {
25
29
  /**
@@ -28,19 +32,25 @@ export class MemberApi extends TypedEmitter<import("tiny-typed-emitter").Default
28
32
  * @param {import('./roles.js').Roles} opts.roles
29
33
  * @param {import('./core-ownership.js').CoreOwnership} opts.coreOwnership
30
34
  * @param {import('./generated/keys.js').EncryptionKeys} opts.encryptionKeys
35
+ * @param {() => Promisable<undefined | string>} opts.getProjectName
31
36
  * @param {Buffer} opts.projectKey
32
37
  * @param {import('./local-peers.js').LocalPeers} opts.rpc
38
+ * @param {() => ReplicationStream} opts.getReplicationStream
39
+ * @param {(deviceId: string, abortSignal: AbortSignal) => Promise<void>} opts.waitForInitialSyncWithPeer
33
40
  * @param {Object} opts.dataTypes
34
41
  * @param {Pick<DeviceInfoDataType, 'getByDocId' | 'getMany'>} opts.dataTypes.deviceInfo
35
42
  * @param {Pick<ProjectDataType, 'getByDocId'>} opts.dataTypes.project
36
43
  */
37
- constructor({ deviceId, roles, coreOwnership, encryptionKeys, projectKey, rpc, dataTypes, }: {
44
+ constructor({ deviceId, roles, coreOwnership, encryptionKeys, getProjectName, projectKey, rpc, getReplicationStream, waitForInitialSyncWithPeer, dataTypes, }: {
38
45
  deviceId: string;
39
46
  roles: import("./roles.js").Roles;
40
47
  coreOwnership: import("./core-ownership.js").CoreOwnership;
41
48
  encryptionKeys: import("./generated/keys.js").EncryptionKeys;
49
+ getProjectName: () => Promisable<undefined | string>;
42
50
  projectKey: Buffer;
43
51
  rpc: import("./local-peers.js").LocalPeers;
52
+ getReplicationStream: () => ReplicationStream;
53
+ waitForInitialSyncWithPeer: (deviceId: string, abortSignal: AbortSignal) => Promise<void>;
44
54
  dataTypes: {
45
55
  deviceInfo: Pick<DeviceInfoDataType, "getByDocId" | "getMany">;
46
56
  project: Pick<ProjectDataType, "getByDocId">;
@@ -77,6 +87,30 @@ export class MemberApi extends TypedEmitter<import("tiny-typed-emitter").Default
77
87
  * @returns {void}
78
88
  */
79
89
  requestCancelInvite(deviceId: string): void;
90
+ /**
91
+ * Add a server peer.
92
+ *
93
+ * Can reject with any of the following error codes (accessed via `err.code`):
94
+ *
95
+ * - `INVALID_URL`: the base URL is invalid, likely due to user error.
96
+ * - `MISSING_DATA`: some required data is missing in order to add the server
97
+ * peer. For example, the project must have a name.
98
+ * - `NETWORK_ERROR`: there was an issue connecting to the server. Is the
99
+ * device online? Is the server online?
100
+ * - `INVALID_SERVER_RESPONSE`: we connected to the server but it returned
101
+ * an unexpected response. Is the server running a compatible version of
102
+ * CoMapeo Cloud?
103
+ *
104
+ * If `err.code` is not specified, that indicates a bug in this module.
105
+ *
106
+ * @param {string} baseUrl
107
+ * @param {object} [options]
108
+ * @param {boolean} [options.dangerouslyAllowInsecureConnections] Allow insecure network connections. Should only be used in tests.
109
+ * @returns {Promise<void>}
110
+ */
111
+ addServerPeer(baseUrl: string, { dangerouslyAllowInsecureConnections }?: {
112
+ dangerouslyAllowInsecureConnections?: boolean | undefined;
113
+ } | undefined): Promise<void>;
80
114
  /**
81
115
  * @param {string} deviceId
82
116
  * @returns {Promise<MemberInfo>}
@@ -102,9 +136,14 @@ export type MemberInfo = {
102
136
  name?: string | undefined;
103
137
  deviceType?: "UNRECOGNIZED" | "device_type_unspecified" | "mobile" | "tablet" | "desktop" | "selfHostedServer" | undefined;
104
138
  joinedAt?: string | undefined;
139
+ selfHostedServerDetails?: {
140
+ baseUrl: string;
141
+ } | undefined;
105
142
  };
106
143
  import { TypedEmitter } from 'tiny-typed-emitter';
107
144
  import { InviteResponse_Decision } from './generated/rpc.js';
145
+ import type { Promisable } from 'type-fest';
146
+ import type { ReplicationStream } from './types.js';
108
147
  import type { DataStore } from './datastore/index.js';
109
148
  import type { deviceInfoTable } from './schema/project.js';
110
149
  import type { DeviceInfo } from '@comapeo/schema';
@@ -1 +1 @@
1
- {"version":3,"file":"member-api.d.ts","sourceRoot":"","sources":["../src/member-api.js"],"names":[],"mappings":"AAeA;;;;;;;GAOG;AACH,mEAAmE;AACnE,sDAAsD;AACtD,wDAAwD;AACxD,6DAA6D;AAC7D,iEAAiE;AAEjE,qIAAqI;AACrI,sJAAsJ;AACtJ;;;;;;;GAOG;AAEH;IAYE;;;;;;;;;;;OAWG;IACH,6FAVG;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;QAC/B,UAAU,EAAvB,MAAM;QACsC,GAAG,EAA/C,OAAO,kBAAkB,EAAE,UAAU;QACxB,SAAS,EAC9B;YAA2E,UAAU,EAA7E,IAAI,CAAC,kBAAkB,EAAE,YAAY,GAAG,SAAS,CAAC;YACE,OAAO,EAA3D,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC;SAC7C;KAAA,EAkBA;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,CAuFJ;IAmDD;;;;;;;OAOG;IACH,8BAHW,MAAM,GACJ,IAAI,CAIhB;IAED;;;OAGG;IACH,kBAHW,MAAM,GACJ,OAAO,CAAC,UAAU,CAAC,CA4B/B;IAED;;OAEG;IACH,WAFa,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAmCtC;IAED;;;;OAIG;IACH,qBAJW,MAAM,UACN,OAAO,YAAY,EAAE,wBAAwB,GAC3C,OAAO,CAAC,IAAI,CAAC,CAIzB;;CACF;iCAxSa,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;;;;;6BAjCN,oBAAoB;wCAET,oBAAoB;+BAsB7B,sBAAsB;qCAChB,qBAAqB;gCALhD,iBAAiB;qCAAjB,iBAAiB;8BAGG,qBAAqB;0CAGT,oBAAoB;qCANpD,iBAAiB;0CAAjB,iBAAiB"}
1
+ {"version":3,"file":"member-api.d.ts","sourceRoot":"","sources":["../src/member-api.js"],"names":[],"mappings":"AAqBA;;;;;;;GAOG;AACH,8CAA8C;AAC9C,mEAAmE;AACnE,sDAAsD;AACtD,wDAAwD;AACxD,6DAA6D;AAC7D,iEAAiE;AACjE,sDAAsD;AAEtD,qIAAqI;AACrI,sJAAsJ;AACtJ;;;;;;;;;GASG;AAEH;IAeE;;;;;;;;;;;;;;OAcG;IACH,+JAbG;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;QACP,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,EAwBA;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,CAuFJ;IAmDD;;;;;;;OAOG;IACH,8BAHW,MAAM,GACJ,IAAI,CAIhB;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,uBALW,MAAM;;oBAGJ,OAAO,CAAC,IAAI,CAAC,CAqBzB;IAuID;;;OAGG;IACH,kBAHW,MAAM,GACJ,OAAO,CAAC,UAAU,CAAC,CA4B/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;iCAvea,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;;;6BA5Ca,oBAAoB;wCAET,oBAAoB;gCAwB5B,WAAW;uCAMJ,YAAY;+BAHpB,sBAAsB;qCAChB,qBAAqB;gCANhD,iBAAiB;qCAAjB,iBAAiB;8BAIG,qBAAqB;0CAGT,oBAAoB;qCAPpD,iBAAiB;0CAAjB,iBAAiB"}
@@ -246,13 +246,13 @@ export const projectKeysTable: import("drizzle-orm/sqlite-core").SQLiteTableWith
246
246
  };
247
247
  dialect: "sqlite";
248
248
  }>;
249
- export const localDeviceInfoTable: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
250
- name: "localDeviceInfo";
249
+ export const deviceSettingsTable: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
250
+ name: "deviceSettings";
251
251
  schema: undefined;
252
252
  columns: {
253
253
  deviceId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
254
254
  name: "deviceId";
255
- tableName: "localDeviceInfo";
255
+ tableName: "deviceSettings";
256
256
  dataType: "string";
257
257
  columnType: "SQLiteText";
258
258
  data: string;
@@ -264,12 +264,24 @@ export const localDeviceInfoTable: import("drizzle-orm/sqlite-core").SQLiteTable
264
264
  }, object>;
265
265
  deviceInfo: import("drizzle-orm/sqlite-core").SQLiteColumn<{
266
266
  name: "deviceInfo";
267
- tableName: "localDeviceInfo";
267
+ tableName: "deviceSettings";
268
268
  dataType: "custom";
269
269
  columnType: "SQLiteCustomColumn";
270
270
  data: DeviceInfoParam;
271
271
  driverParam: unknown;
272
- notNull: true;
272
+ notNull: false;
273
+ hasDefault: false;
274
+ enumValues: undefined;
275
+ baseColumn: never;
276
+ }, object>;
277
+ isArchiveDevice: import("drizzle-orm/sqlite-core").SQLiteColumn<{
278
+ name: "isArchiveDevice";
279
+ tableName: "deviceSettings";
280
+ dataType: "boolean";
281
+ columnType: "SQLiteBoolean";
282
+ data: boolean;
283
+ driverParam: number;
284
+ notNull: false;
273
285
  hasDefault: false;
274
286
  enumValues: undefined;
275
287
  baseColumn: never;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/schema/client.js"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGC;AACD;;;;;;;;;;;;;;;;;;GAAuE;AACvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAYE;AAYF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGE;;;;8BAZW,IAAI,CAAC,OAAO,iBAAiB,EAAE,eAAe,EAAE,YAAY,CAAC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/schema/client.js"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGC;AACD;;;;;;;;;;;;;;;;;;GAAuE;AACvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAYE;AAYF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAIE;;;;8BAbW,IAAI,CAAC,OAAO,iBAAiB,EAAE,eAAe,EAAE,YAAY,CAAC"}
@@ -551,6 +551,183 @@ export const trackTable: import("drizzle-orm/sqlite-core").SQLiteTableWithColumn
551
551
  };
552
552
  dialect: "sqlite";
553
553
  }>;
554
+ export const remoteDetectionAlertTable: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
555
+ name: "remoteDetectionAlert";
556
+ schema: undefined;
557
+ columns: {
558
+ readonly docId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
559
+ name: "docId";
560
+ tableName: "remoteDetectionAlert";
561
+ dataType: "string";
562
+ columnType: "SQLiteText";
563
+ data: string;
564
+ driverParam: string;
565
+ notNull: true;
566
+ hasDefault: false;
567
+ enumValues: [string, ...string[]];
568
+ baseColumn: never;
569
+ }, object>;
570
+ readonly versionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
571
+ name: "versionId";
572
+ tableName: "remoteDetectionAlert";
573
+ dataType: "string";
574
+ columnType: "SQLiteText";
575
+ data: string;
576
+ driverParam: string;
577
+ notNull: true;
578
+ hasDefault: false;
579
+ enumValues: [string, ...string[]];
580
+ baseColumn: never;
581
+ }, object>;
582
+ readonly originalVersionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
583
+ name: "originalVersionId";
584
+ tableName: "remoteDetectionAlert";
585
+ dataType: "string";
586
+ columnType: "SQLiteText";
587
+ data: string;
588
+ driverParam: string;
589
+ notNull: true;
590
+ hasDefault: false;
591
+ enumValues: [string, ...string[]];
592
+ baseColumn: never;
593
+ }, object>;
594
+ readonly schemaName: import("drizzle-orm/sqlite-core").SQLiteColumn<{
595
+ name: "schemaName";
596
+ tableName: "remoteDetectionAlert";
597
+ dataType: "string";
598
+ columnType: "SQLiteText";
599
+ data: "remoteDetectionAlert";
600
+ driverParam: string;
601
+ notNull: true;
602
+ hasDefault: false;
603
+ enumValues: ["remoteDetectionAlert"];
604
+ baseColumn: never;
605
+ }, object>;
606
+ readonly createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
607
+ name: "createdAt";
608
+ tableName: "remoteDetectionAlert";
609
+ dataType: "string";
610
+ columnType: "SQLiteText";
611
+ data: string;
612
+ driverParam: string;
613
+ notNull: true;
614
+ hasDefault: false;
615
+ enumValues: [string, ...string[]];
616
+ baseColumn: never;
617
+ }, object>;
618
+ readonly updatedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
619
+ name: "updatedAt";
620
+ tableName: "remoteDetectionAlert";
621
+ dataType: "string";
622
+ columnType: "SQLiteText";
623
+ data: string;
624
+ driverParam: string;
625
+ notNull: true;
626
+ hasDefault: false;
627
+ enumValues: [string, ...string[]];
628
+ baseColumn: never;
629
+ }, object>;
630
+ readonly links: import("drizzle-orm/sqlite-core").SQLiteColumn<{
631
+ name: "links";
632
+ tableName: "remoteDetectionAlert";
633
+ dataType: "custom";
634
+ columnType: "SQLiteCustomColumn";
635
+ data: string[];
636
+ driverParam: string;
637
+ notNull: true;
638
+ hasDefault: false;
639
+ enumValues: undefined;
640
+ baseColumn: never;
641
+ }, object>;
642
+ readonly deleted: import("drizzle-orm/sqlite-core").SQLiteColumn<{
643
+ name: "deleted";
644
+ tableName: "remoteDetectionAlert";
645
+ dataType: "boolean";
646
+ columnType: "SQLiteBoolean";
647
+ data: boolean;
648
+ driverParam: number;
649
+ notNull: true;
650
+ hasDefault: false;
651
+ enumValues: undefined;
652
+ baseColumn: never;
653
+ }, object>;
654
+ readonly detectionDateStart: import("drizzle-orm/sqlite-core").SQLiteColumn<{
655
+ name: "detectionDateStart";
656
+ tableName: "remoteDetectionAlert";
657
+ dataType: "string";
658
+ columnType: "SQLiteText";
659
+ data: string;
660
+ driverParam: string;
661
+ notNull: true;
662
+ hasDefault: false;
663
+ enumValues: [string, ...string[]];
664
+ baseColumn: never;
665
+ }, object>;
666
+ readonly detectionDateEnd: import("drizzle-orm/sqlite-core").SQLiteColumn<{
667
+ name: "detectionDateEnd";
668
+ tableName: "remoteDetectionAlert";
669
+ dataType: "string";
670
+ columnType: "SQLiteText";
671
+ data: string;
672
+ driverParam: string;
673
+ notNull: true;
674
+ hasDefault: false;
675
+ enumValues: [string, ...string[]];
676
+ baseColumn: never;
677
+ }, object>;
678
+ readonly sourceId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
679
+ name: "sourceId";
680
+ tableName: "remoteDetectionAlert";
681
+ dataType: "string";
682
+ columnType: "SQLiteText";
683
+ data: string;
684
+ driverParam: string;
685
+ notNull: true;
686
+ hasDefault: false;
687
+ enumValues: [string, ...string[]];
688
+ baseColumn: never;
689
+ }, object>;
690
+ readonly metadata: import("drizzle-orm/sqlite-core").SQLiteColumn<{
691
+ name: "metadata";
692
+ tableName: "remoteDetectionAlert";
693
+ dataType: "custom";
694
+ columnType: "SQLiteCustomColumn";
695
+ data: {
696
+ [k: string]: string | number | boolean | (string | number | boolean | null)[] | null;
697
+ };
698
+ driverParam: string;
699
+ notNull: true;
700
+ hasDefault: false;
701
+ enumValues: undefined;
702
+ baseColumn: never;
703
+ }, object>;
704
+ readonly geometry: import("drizzle-orm/sqlite-core").SQLiteColumn<{
705
+ name: "geometry";
706
+ tableName: "remoteDetectionAlert";
707
+ dataType: "custom";
708
+ columnType: "SQLiteCustomColumn";
709
+ data: import("@comapeo/schema/dist/schema/remoteDetectionAlert.js").Geometry;
710
+ driverParam: string;
711
+ notNull: true;
712
+ hasDefault: false;
713
+ enumValues: undefined;
714
+ baseColumn: never;
715
+ }, object>;
716
+ forks: import("drizzle-orm/sqlite-core").SQLiteColumn<{
717
+ name: "forks";
718
+ tableName: "remoteDetectionAlert";
719
+ dataType: "custom";
720
+ columnType: "SQLiteCustomColumn";
721
+ data: string[];
722
+ driverParam: string;
723
+ notNull: true;
724
+ hasDefault: false;
725
+ enumValues: undefined;
726
+ baseColumn: never;
727
+ }, object>;
728
+ };
729
+ dialect: "sqlite";
730
+ }>;
554
731
  export const presetTable: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
555
732
  name: "preset";
556
733
  schema: undefined;
@@ -897,7 +1074,7 @@ export const fieldTable: import("drizzle-orm/sqlite-core").SQLiteTableWithColumn
897
1074
  tableName: "field";
898
1075
  dataType: "string";
899
1076
  columnType: "SQLiteText";
900
- data: "number" | "UNRECOGNIZED" | "type_unspecified" | "text" | "selectOne" | "selectMultiple";
1077
+ data: "number" | "UNRECOGNIZED" | "text" | "type_unspecified" | "selectOne" | "selectMultiple";
901
1078
  driverParam: string;
902
1079
  notNull: true;
903
1080
  hasDefault: false;
@@ -1444,6 +1621,20 @@ export const deviceInfoTable: import("drizzle-orm/sqlite-core").SQLiteTableWithC
1444
1621
  enumValues: ["device_type_unspecified", "mobile", "tablet", "desktop", "selfHostedServer", "UNRECOGNIZED"];
1445
1622
  baseColumn: never;
1446
1623
  }, object>;
1624
+ readonly selfHostedServerDetails: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1625
+ name: "selfHostedServerDetails";
1626
+ tableName: "deviceInfo";
1627
+ dataType: "custom";
1628
+ columnType: "SQLiteCustomColumn";
1629
+ data: {
1630
+ baseUrl: string;
1631
+ } | undefined;
1632
+ driverParam: string;
1633
+ notNull: false;
1634
+ hasDefault: false;
1635
+ enumValues: undefined;
1636
+ baseColumn: never;
1637
+ }, object>;
1447
1638
  forks: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1448
1639
  name: "forks";
1449
1640
  tableName: "deviceInfo";
@@ -1664,6 +1855,25 @@ export const trackBacklinkTable: import("drizzle-orm/sqlite-core").SQLiteTableWi
1664
1855
  };
1665
1856
  dialect: "sqlite";
1666
1857
  }>;
1858
+ export const remoteDetectionAlertBacklinkTable: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1859
+ name: string;
1860
+ schema: undefined;
1861
+ columns: {
1862
+ versionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1863
+ name: "versionId";
1864
+ tableName: string;
1865
+ dataType: "string";
1866
+ columnType: "SQLiteText";
1867
+ data: string;
1868
+ driverParam: string;
1869
+ notNull: true;
1870
+ hasDefault: false;
1871
+ enumValues: [string, ...string[]];
1872
+ baseColumn: never;
1873
+ }, object>;
1874
+ };
1875
+ dialect: "sqlite";
1876
+ }>;
1667
1877
  export const presetBacklinkTable: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1668
1878
  name: string;
1669
1879
  schema: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/schema/project.js"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGC;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAgC4M,CAAC;oCAA+K,CAAC;;oCAAyW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA7BtuB;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAwE;AACxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA2E;AAC3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAwE;AACxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGC;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAqE;AACrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGC;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAqE;AAErE;;;;;;;;;;;;;;;;;;GAAuE;AACvE;;;;;;;;;;;;;;;;;;GAAuE;AACvE;;;;;;;;;;;;;;;;;;GAA2D;AAC3D;;;;;;;;;;;;;;;;;;GAA6D;AAC7D;;;;;;;;;;;;;;;;;;GAA2D;AAC3D;;;;;;;;;;;;;;;;;;GAA2E;AAC3E;;;;;;;;;;;;;;;;;;GAAyD;AACzD;;;;;;;;;;;;;;;;;;GAAqE;AACrE;;;;;;;;;;;;;;;;;;GAAyD;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGE"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/schema/project.js"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"peer-sync-controller.d.ts","sourceRoot":"","sources":["../../src/sync/peer-sync-controller.js"],"names":[],"mappings":"AAKA,6DAA6D;AAC7D,0CAA0C;AAC1C,wDAAwD;AACxD,+CAA+C;AAC/C,iFAAiF;AAEjF;;GAEG;AAEH;IAsBE;;;;;;;OAOG;IACH,iEANG;QAAoD,QAAQ,EAApD,OAAO,UAAU,EAAE,iBAAiB,CAAC;QACgB,WAAW,EAAhE,OAAO,0BAA0B,EAAE,WAAW;QACJ,SAAS,EAAnD,OAAO,iBAAiB,EAAE,SAAS;QACD,KAAK,EAAvC,OAAO,aAAa,EAAE,KAAK;QACb,MAAM;KAAC,EAkB/B;IAED,sBAEC;IAED,qBAEC;IAED,gGAEC;IAED,iDAAiD;IACjD,sCADY,gBAAgB,QAO3B;IAED;;OAEG;IACH,iCAFW,MAAM,QAoBhB;;CAoMF;wBAGY,GAAG,SAAsB,IAAT,SAAS,CAAC,CAAC,EAAE,OAAO,sBAAsB,EAAE,kBAAkB,GAAE;yBAG/E,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;6BAvSpD,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,SAAS;sCALV,eAAe;uCAEd,uCAAuC;uBAPvD,cAAc;+BAMN,aAAa;0BAFlB,aAAa"}
1
+ {"version":3,"file":"peer-sync-controller.d.ts","sourceRoot":"","sources":["../../src/sync/peer-sync-controller.js"],"names":[],"mappings":"AAKA,6DAA6D;AAC7D,0CAA0C;AAC1C,wDAAwD;AACxD,+CAA+C;AAC/C,iFAAiF;AAEjF;;GAEG;AAEH;IAsBE;;;;;;;OAOG;IACH,iEANG;QAAoD,QAAQ,EAApD,OAAO,UAAU,EAAE,iBAAiB,CAAC;QACgB,WAAW,EAAhE,OAAO,0BAA0B,EAAE,WAAW;QACJ,SAAS,EAAnD,OAAO,iBAAiB,EAAE,SAAS;QACD,KAAK,EAAvC,OAAO,aAAa,EAAE,KAAK;QACb,MAAM;KAAC,EAkB/B;IAED,sBAEC;IAED,qBAEC;IAED,gGAEC;IAED,iDAAiD;IACjD,sCADY,gBAAgB,QAO3B;IAED;;OAEG;IACH,iCAFW,MAAM,QAoBhB;;CAqMF;wBAGY,GAAG,SAAsB,IAAT,SAAS,CAAC,CAAC,EAAE,OAAO,sBAAsB,EAAE,kBAAkB,GAAE;yBAG/E,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;6BAxSpD,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,SAAS;sCALV,eAAe;uCAEd,uCAAuC;uBAPvD,cAAc;+BAMN,aAAa;0BAFlB,aAAa"}
@@ -1,10 +1,14 @@
1
1
  /** @import { CoreOwnership as CoreOwnershipDoc } from '@comapeo/schema' */
2
+ /** @import * as http from 'node:http' */
2
3
  /** @import { CoreOwnership } from '../core-ownership.js' */
3
4
  /** @import { OpenedNoiseStream } from '../lib/noise-secret-stream-helpers.js' */
5
+ /** @import { ReplicationStream } from '../types.js' */
4
6
  export const kHandleDiscoveryKey: unique symbol;
5
7
  export const kSyncState: unique symbol;
6
8
  export const kRequestFullStop: unique symbol;
7
9
  export const kRescindFullStopRequest: unique symbol;
10
+ export const kWaitForInitialSyncWithPeer: unique symbol;
11
+ export const kSetBlobDownloadFilter: unique symbol;
8
12
  /**
9
13
  * @typedef {'initial' | 'full'} SyncType
10
14
  */
@@ -39,18 +43,23 @@ export const kRescindFullStopRequest: unique symbol;
39
43
  */
40
44
  export class SyncApi extends TypedEmitter<SyncEvents> {
41
45
  /**
42
- *
43
46
  * @param {object} opts
44
47
  * @param {import('../core-manager/index.js').CoreManager} opts.coreManager
45
48
  * @param {CoreOwnership} opts.coreOwnership
46
49
  * @param {import('../roles.js').Roles} opts.roles
50
+ * @param {() => Promise<Iterable<string>>} opts.getServerWebsocketUrls
51
+ * @param {() => ReplicationStream} opts.getReplicationStream
52
+ * @param {import('../types.js').BlobFilter | null} opts.blobDownloadFilter
47
53
  * @param {number} [opts.throttleMs]
48
54
  * @param {Logger} [opts.logger]
49
55
  */
50
- constructor({ coreManager, throttleMs, roles, logger, coreOwnership }: {
56
+ constructor({ coreManager, throttleMs, roles, getServerWebsocketUrls, getReplicationStream, logger, coreOwnership, blobDownloadFilter, }: {
51
57
  coreManager: import("../core-manager/index.js").CoreManager;
52
58
  coreOwnership: CoreOwnership;
53
59
  roles: import("../roles.js").Roles;
60
+ getServerWebsocketUrls: () => Promise<Iterable<string>>;
61
+ getReplicationStream: () => ReplicationStream;
62
+ blobDownloadFilter: import("../types.js").BlobFilter | null;
54
63
  throttleMs?: number | undefined;
55
64
  logger?: Logger | undefined;
56
65
  });
@@ -59,6 +68,14 @@ export class SyncApi extends TypedEmitter<SyncEvents> {
59
68
  * @returns {State}
60
69
  */
61
70
  getState(): State;
71
+ /**
72
+ * @returns {void}
73
+ */
74
+ connectServers(): void;
75
+ /**
76
+ * @returns {void}
77
+ */
78
+ disconnectServers(): void;
62
79
  /**
63
80
  * Start syncing data cores.
64
81
  *
@@ -89,6 +106,8 @@ export class SyncApi extends TypedEmitter<SyncEvents> {
89
106
  * @returns {Promise<void>}
90
107
  */
91
108
  waitForSync(type: SyncType): Promise<void>;
109
+ /** @param {import('../types.js').BlobFilter | null} blobDownloadFilter */
110
+ [kSetBlobDownloadFilter](blobDownloadFilter: import("../types.js").BlobFilter | null): void;
92
111
  [kHandleDiscoveryKey](discoveryKey: Buffer, protomux: import("protomux")<import("@hyperswarm/secret-stream")>): void;
93
112
  /**
94
113
  * Request a graceful stop to all sync.
@@ -98,6 +117,12 @@ export class SyncApi extends TypedEmitter<SyncEvents> {
98
117
  * Rescind any requests for a full stop.
99
118
  */
100
119
  [kRescindFullStopRequest](): void;
120
+ /**
121
+ * @param {string} deviceId
122
+ * @param {AbortSignal} abortSignal
123
+ * @returns {Promise<void>}
124
+ */
125
+ [kWaitForInitialSyncWithPeer](deviceId: string, abortSignal: AbortSignal): Promise<void>;
101
126
  [kSyncState]: SyncState;
102
127
  #private;
103
128
  }
@@ -154,5 +179,6 @@ export type SyncEvents = {
154
179
  import { TypedEmitter } from 'tiny-typed-emitter';
155
180
  import { SyncState } from './sync-state.js';
156
181
  import type { CoreOwnership } from '../core-ownership.js';
182
+ import type { ReplicationStream } from '../types.js';
157
183
  import { Logger } from '../logger.js';
158
184
  //# sourceMappingURL=sync-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-api.d.ts","sourceRoot":"","sources":["../../src/sync/sync-api.js"],"names":[],"mappings":"AAWA,2EAA2E;AAC3E,4DAA4D;AAC5D,iFAAiF;AAEjF,gDAAiE;AACjE,uCAA8C;AAC9C,6CAAoD;AACpD,oDAA2D;AAE3D;;GAEG;AAEH;;GAEG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;;GAKG;AAEH;;;GAGG;AAEH;;GAEG;AACH;IAsBE;;;;;;;;OAQG;IACH,uEANG;QAA6D,WAAW,EAAhE,OAAO,0BAA0B,EAAE,WAAW;QAC1B,aAAa,EAAjC,aAAa;QACqB,KAAK,EAAvC,OAAO,aAAa,EAAE,KAAK;QACb,UAAU;QACV,MAAM;KAAC,EAoC/B;IA8BD;;;OAGG;IACH,YAFa,KAAK,CAIjB;IAqHD;;;;;;;;;;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;oFApH4B,2BAG7B;IAuEA;;OAEG;IACH,2BAGC;IAED;;OAEG;IACH,kCAGC;IAjOC,wBAKE;;CAuYL;uBAtdY,SAAS,GAAG,MAAM;+BAIlB,MAAM,GAAG,SAAS,GAAG,KAAK;;;;;mBAMzB,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;;6BApDX,oBAAoB;0BACvB,iBAAiB;mCAWR,sBAAsB;uBATlC,cAAc"}
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,uDAAuD;AAEvD,gDAAiE;AACjE,uCAA8C;AAC9C,6CAAoD;AACpD,oDAA2D;AAC3D,wDAEC;AACD,mDAAmE;AAEnE;;GAEG;AAEH;;GAEG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;;GAKG;AAEH;;;GAGG;AAEH;;GAEG;AACH;IA4BE;;;;;;;;;;OAUG;IACH,0IATG;QAA6D,WAAW,EAAhE,OAAO,0BAA0B,EAAE,WAAW;QAC1B,aAAa,EAAjC,aAAa;QACqB,KAAK,EAAvC,OAAO,aAAa,EAAE,KAAK;QACW,sBAAsB,EAA5D,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACD,oBAAoB,EAAlD,MAAM,iBAAiB;QACuB,kBAAkB,EAAhE,OAAO,aAAa,EAAE,UAAU,GAAG,IAAI;QACzB,UAAU;QACV,MAAM;KAAC,EAgD/B;IAuCD;;;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;IA5SD,0EAA0E;IAC1E,6CADY,OAAO,aAAa,EAAE,UAAU,GAAG,IAAI,QAOlD;oFA8E4E,2BACtD;IA4KvB;;OAEG;IACH,2BAGC;IAED;;OAEG;IACH,kCAGC;IA8BD;;;;OAIG;IACH,wCAJW,MAAM,eACN,WAAW,GACT,OAAO,CAAC,IAAI,CAAC,CA6BzB;IA5WC,wBAKE;;CAyfL;uBA5lBY,SAAS,GAAG,MAAM;+BAIlB,MAAM,GAAG,SAAS,GAAG,KAAK;;;;;mBAMzB,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;;6BA7DX,oBAAoB;0BAEvB,iBAAiB;mCAcR,sBAAsB;uCAElB,aAAa;uBAd7B,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"translation-api.d.ts","sourceRoot":"","sources":["../src/translation-api.js"],"names":[],"mappings":"AAIA,uEAAuE;AACvE,+CAA+C;AAE/C,iEAEC;AACD;IAQE;;;;;;;;;OASG;IACH,0BARG;QAMS,QAAQ,EANT,OAAO,qBAAqB,EAAE,QAAQ,CAChD,OAAW,sBAAsB,EAAE,SAAS,CAAC,QAAQ,CAAC,EACtD,cAAkB,qBAAqB,EAAE,gBAAgB,EACzD,aAAiB,EACjB,WAAe,EACf,gBAAoB,CACjB;KACH,EAWA;IAED,+BAA+B;IAC/B,SADc,OAAO,CAAC,IAAI,CAAC,CAG1B;IAED;;OAEG;IACH,WAFW,gBAAgB;;;;;;;;;;;;;;;;;;;;OAgB1B;IAED,kGAAkG;IAElG;;;;;OAKG;IACH,WALW,YACR,IAAI,CAAC,gBAAgB,EAAC,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC,EAC5D,aAAe,GAAG,YAAY,CAAC,GAAG;QAAC,MAAM;;;UAA6B;KAAC,GAC3D,OAAO,CAAC,OAAO,iBAAiB,EAAE,WAAW,EAAE,CAAC,CAqC5D;IAED;;OAEG;IACH,WAFW,gBAAgB,QAkB1B;IAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAEC;IALD,mHAEC;;CAIF;sCArIkD,iBAAiB;iCACnC,WAAW;iCADO,iBAAiB"}
1
+ {"version":3,"file":"translation-api.d.ts","sourceRoot":"","sources":["../src/translation-api.js"],"names":[],"mappings":"AAKA,uEAAuE;AACvE,+CAA+C;AAE/C,iEAEC;AACD;IAQE;;;;;;;;;OASG;IACH,0BARG;QAMS,QAAQ,EANT,OAAO,qBAAqB,EAAE,QAAQ,CAChD,OAAW,sBAAsB,EAAE,SAAS,CAAC,QAAQ,CAAC,EACtD,cAAkB,qBAAqB,EAAE,gBAAgB,EACzD,aAAiB,EACjB,WAAe,EACf,gBAAoB,CACjB;KACH,EAWA;IAED,+BAA+B;IAC/B,SADc,OAAO,CAAC,IAAI,CAAC,CAG1B;IAED;;OAEG;IACH,WAFW,gBAAgB;;;;;;;;;;;;;;;;;;;;OAe1B;IAED,kGAAkG;IAElG;;;;;OAKG;IACH,WALW,YACR,IAAI,CAAC,gBAAgB,EAAC,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC,EAC5D,aAAe,GAAG,YAAY,CAAC,GAAG;QAAC,MAAM;;;UAA6B;KAAC,GAC3D,OAAO,CAAC,OAAO,iBAAiB,EAAE,WAAW,EAAE,CAAC,CAqC5D;IAED;;OAEG;IACH,WAFW,gBAAgB,QAkB1B;IAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAEC;IALD,mHAEC;;CAIF;sCApIkD,iBAAiB;iCACnC,WAAW;iCADO,iBAAiB"}
package/dist/types.d.ts CHANGED
@@ -25,10 +25,11 @@ type BlobIdBase<T extends BlobType> = {
25
25
  export type BlobId = Simplify<ValueOf<{
26
26
  [KeyType in BlobType]: BlobIdBase<KeyType>;
27
27
  }>>;
28
- type ArrayAtLeastOne<T> = [T, ...T[]];
29
28
  export type BlobFilter = RequireAtLeastOne<{
30
- [KeyType in BlobType]: ArrayAtLeastOne<BlobVariant<KeyType>>;
29
+ [KeyType in BlobType]: Array<BlobVariant<KeyType>>;
31
30
  }>;
31
+ /** Map of blob types to array of blob variants */
32
+ export type GenericBlobFilter = Record<string, string[]>;
32
33
  export type MapeoDocMap = {
33
34
  [K in MapeoDoc['schemaName']]: Extract<MapeoDoc, {
34
35
  schemaName: K;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.js"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,6BAHW,MAAM,SAAO,UASvB;AAUD;;GAEG;AACH,wBAFa,IAAI,CAEQ;AAEzB;;;;GAIG;AACH,kCAJW,OAAO,WACP,MAAM,GACJ,QAAQ,SAAS,CAI7B;AAED;;;;;;;;;;;;;GAaG;AACH,uBATa,CAAC,OACH,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAUd,OAAO,KACL,KAAK,IAAI,CAAC,CAGxB;AAED;;;;GAIG;AACH,0BAJa,CAAC,SACH,SAAS,GAAG,CAAC,GACX,KAAK,IAAI,CAAC,CAItB;AAED;;;;;;;GAOG;AAEH,0BALkB,CAAC,SAAN,EAAI,OACN,CAAC,GACC,OAAO,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAUtD;AAED;;;;GAIG;AACH,wBAJyE,CAAC,SAA5D,OAAO,iBAAiB,EAAE,QAAQ,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAG,OAC7D,CAAC,GACC,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,mBAAmB,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC,CAiB5H;AAED;;;;GAIG;AACH,2CAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;GAIG;AACH,iDAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;GAIG;AACH,wDAHW,QAAQ,CAAC,MAAM,CAAC,GACd,MAAM,CAMlB;AAED;;;GAGG;AACH,4CAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;GAGG;AACH,wCAHW,2CAAkC,GAChC,MAAM,CAIlB;AAED;;;;;;;2DAO2D;AAC3D,0BALsB,CAAC,SAAV,MAAQ,EACF,CAAC,wBACT,aAAa,CAAC,CAAC,CAAC,SAChB,CAAC,GACC,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAOtD;AAED;;;;GAIG;AACH,gCAHW,MAAM,UAQhB;AApKD;IACE,2BAA2B;IAC3B,mBADY,KAAK,EAIhB;CACF"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.js"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,6BAHW,MAAM,SAAO,UASvB;AAUD;;GAEG;AACH,wBAFa,IAAI,CAEQ;AAEzB;;;;GAIG;AACH,kCAJW,OAAO,WACP,MAAM,GACJ,QAAQ,SAAS,CAI7B;AAED;;;;;;;;;;;;;GAaG;AACH,uBATa,CAAC,OACH,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAUd,OAAO,KACL,KAAK,IAAI,CAAC,CAGxB;AAED;;;;GAIG;AACH,0BAJa,CAAC,SACH,SAAS,GAAG,CAAC,GACX,KAAK,IAAI,CAAC,CAItB;AAED;;;;;;;GAOG;AAEH,0BALkB,CAAC,SAAN,EAAI,OACN,CAAC,GACC,OAAO,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAUtD;AAED;;;;GAIG;AACH,wBAJyE,CAAC,SAA5D,OAAO,iBAAiB,EAAE,QAAQ,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAG,OAC7D,CAAC,GACC,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,mBAAmB,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC,CAa5H;AAED;;;;GAIG;AACH,2CAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;GAIG;AACH,iDAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;GAIG;AACH,wDAHW,QAAQ,CAAC,MAAM,CAAC,GACd,MAAM,CAMlB;AAED;;;GAGG;AACH,4CAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;GAGG;AACH,wCAHW,2CAAkC,GAChC,MAAM,CAIlB;AAED;;;;;;;2DAO2D;AAC3D,0BALsB,CAAC,SAAV,MAAQ,EACF,CAAC,wBACT,aAAa,CAAC,CAAC,CAAC,SAChB,CAAC,GACC,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAOtD;AAED;;;;GAIG;AACH,gCAHW,MAAM,UAQhB;AAhKD;IACE,2BAA2B;IAC3B,mBADY,KAAK,EAIhB;CACF"}
@@ -0,0 +1,12 @@
1
+ /*
2
+ Manually generated migration because SQLITE and Drizzle do not support
3
+ altering a column to be nullable.
4
+ */
5
+ ALTER TABLE `localDeviceInfo` RENAME TO `deviceSettings`;--> statement-breakpoint
6
+ DROP INDEX IF EXISTS `localDeviceInfo_deviceId_unique`;--> statement-breakpoint
7
+ ALTER TABLE deviceSettings ADD `isArchiveDevice` integer;--> statement-breakpoint
8
+ ALTER TABLE deviceSettings RENAME COLUMN `deviceInfo` TO `deviceInfoOld`;--> statement-breakpoint
9
+ ALTER TABLE deviceSettings ADD `deviceInfo` text;--> statement-breakpoint
10
+ UPDATE deviceSettings SET `deviceInfo` = `deviceInfoOld`;--> statement-breakpoint
11
+ ALTER TABLE deviceSettings DROP COLUMN `deviceInfoOld`;--> statement-breakpoint
12
+ CREATE UNIQUE INDEX `deviceSettings_deviceId_unique` ON `deviceSettings` (`deviceId`);