@comapeo/core 2.0.1 → 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 (71) hide show
  1. package/dist/blob-store/index.d.ts +5 -8
  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/datastore/index.d.ts +5 -4
  8. package/dist/datastore/index.d.ts.map +1 -1
  9. package/dist/generated/extensions.d.ts +31 -0
  10. package/dist/generated/extensions.d.ts.map +1 -1
  11. package/dist/index.d.ts +2 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/lib/drizzle-helpers.d.ts +6 -0
  14. package/dist/lib/drizzle-helpers.d.ts.map +1 -0
  15. package/dist/lib/error.d.ts +37 -0
  16. package/dist/lib/error.d.ts.map +1 -0
  17. package/dist/lib/get-own.d.ts +9 -0
  18. package/dist/lib/get-own.d.ts.map +1 -0
  19. package/dist/lib/is-hostname-ip-address.d.ts +17 -0
  20. package/dist/lib/is-hostname-ip-address.d.ts.map +1 -0
  21. package/dist/lib/ws-core-replicator.d.ts +11 -0
  22. package/dist/lib/ws-core-replicator.d.ts.map +1 -0
  23. package/dist/mapeo-manager.d.ts +18 -22
  24. package/dist/mapeo-manager.d.ts.map +1 -1
  25. package/dist/mapeo-project.d.ts +448 -15
  26. package/dist/mapeo-project.d.ts.map +1 -1
  27. package/dist/member-api.d.ts +40 -1
  28. package/dist/member-api.d.ts.map +1 -1
  29. package/dist/schema/client.d.ts +17 -5
  30. package/dist/schema/client.d.ts.map +1 -1
  31. package/dist/schema/project.d.ts +210 -0
  32. package/dist/schema/project.d.ts.map +1 -1
  33. package/dist/sync/peer-sync-controller.d.ts.map +1 -1
  34. package/dist/sync/sync-api.d.ts +28 -2
  35. package/dist/sync/sync-api.d.ts.map +1 -1
  36. package/dist/types.d.ts +3 -2
  37. package/dist/types.d.ts.map +1 -1
  38. package/drizzle/client/0001_chubby_cargill.sql +12 -0
  39. package/drizzle/client/meta/0001_snapshot.json +208 -0
  40. package/drizzle/client/meta/_journal.json +7 -0
  41. package/drizzle/project/0001_medical_wendell_rand.sql +22 -0
  42. package/drizzle/project/meta/0001_snapshot.json +1267 -0
  43. package/drizzle/project/meta/_journal.json +7 -0
  44. package/package.json +9 -5
  45. package/src/blob-store/index.js +3 -2
  46. package/src/constants.js +4 -1
  47. package/src/core-manager/index.js +58 -2
  48. package/src/datastore/README.md +1 -2
  49. package/src/datastore/index.js +4 -5
  50. package/src/fastify-plugins/blobs.js +1 -0
  51. package/src/generated/extensions.d.ts +31 -0
  52. package/src/generated/extensions.js +150 -0
  53. package/src/generated/extensions.ts +181 -0
  54. package/src/index.js +10 -0
  55. package/src/invite-api.js +1 -1
  56. package/src/lib/drizzle-helpers.js +79 -0
  57. package/src/lib/error.js +47 -0
  58. package/src/lib/get-own.js +10 -0
  59. package/src/lib/is-hostname-ip-address.js +26 -0
  60. package/src/lib/ws-core-replicator.js +47 -0
  61. package/src/mapeo-manager.js +71 -43
  62. package/src/mapeo-project.js +153 -43
  63. package/src/member-api.js +253 -2
  64. package/src/schema/client.js +4 -3
  65. package/src/schema/project.js +7 -0
  66. package/src/sync/peer-sync-controller.js +1 -0
  67. package/src/sync/sync-api.js +171 -3
  68. package/src/types.ts +4 -3
  69. package/dist/lib/timing-safe-equal.d.ts +0 -15
  70. package/dist/lib/timing-safe-equal.d.ts.map +0 -1
  71. package/src/lib/timing-safe-equal.js +0 -34
@@ -6,6 +6,8 @@ export const kProjectReplicate: unique symbol;
6
6
  export const kDataTypes: unique symbol;
7
7
  export const kProjectLeave: unique symbol;
8
8
  export const kClearDataIfLeft: unique symbol;
9
+ export const kSetIsArchiveDevice: unique symbol;
10
+ export const kIsArchiveDevice: unique symbol;
9
11
  /**
10
12
  * @extends {TypedEmitter<{ close: () => void }>}
11
13
  */
@@ -26,10 +28,11 @@ export class MapeoProject extends TypedEmitter<{
26
28
  * @param {CoreStorage} opts.coreStorage Folder to store all hypercore data
27
29
  * @param {(mediaType: 'blobs' | 'icons') => Promise<string>} opts.getMediaBaseUrl
28
30
  * @param {import('./local-peers.js').LocalPeers} opts.localPeers
31
+ * @param {boolean} opts.isArchiveDevice Whether this device is an archive device
29
32
  * @param {Logger} [opts.logger]
30
33
  *
31
34
  */
32
- constructor({ dbPath, projectMigrationsFolder, sharedDb, sharedIndexWriter, coreStorage, keyManager, projectKey, projectSecretKey, encryptionKeys, getMediaBaseUrl, localPeers, logger, }: {
35
+ constructor({ dbPath, projectMigrationsFolder, sharedDb, sharedIndexWriter, coreStorage, keyManager, projectKey, projectSecretKey, encryptionKeys, getMediaBaseUrl, localPeers, logger, isArchiveDevice, }: {
33
36
  dbPath: string;
34
37
  projectMigrationsFolder: string;
35
38
  keyManager: import("@mapeo/crypto/dist/key-manager.js");
@@ -41,6 +44,7 @@ export class MapeoProject extends TypedEmitter<{
41
44
  coreStorage: CoreStorage;
42
45
  getMediaBaseUrl: (mediaType: "blobs" | "icons") => Promise<string>;
43
46
  localPeers: import("./local-peers.js").LocalPeers;
47
+ isArchiveDevice: boolean;
44
48
  logger?: Logger | undefined;
45
49
  });
46
50
  $blobs: BlobApi;
@@ -54,7 +58,7 @@ export class MapeoProject extends TypedEmitter<{
54
58
  /**
55
59
  */
56
60
  close(): Promise<void>;
57
- get observation(): DataType<DataStore<"data", "observation" | "track">, import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
61
+ get observation(): DataType<DataStore<"data", "observation" | "track" | "remoteDetectionAlert">, import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
58
62
  name: "observation";
59
63
  schema: undefined;
60
64
  columns: {
@@ -324,7 +328,7 @@ export class MapeoProject extends TypedEmitter<{
324
328
  versionId: string;
325
329
  } | undefined;
326
330
  }>;
327
- get track(): DataType<DataStore<"data", "observation" | "track">, import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
331
+ get track(): DataType<DataStore<"data", "observation" | "track" | "remoteDetectionAlert">, import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
328
332
  name: "track";
329
333
  schema: undefined;
330
334
  columns: {
@@ -1038,6 +1042,208 @@ export class MapeoProject extends TypedEmitter<{
1038
1042
  placeholder?: string | undefined;
1039
1043
  helperText?: string | undefined;
1040
1044
  }>;
1045
+ get remoteDetectionAlert(): DataType<DataStore<"data", "observation" | "track" | "remoteDetectionAlert">, import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1046
+ name: "remoteDetectionAlert";
1047
+ schema: undefined;
1048
+ columns: {
1049
+ readonly docId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1050
+ name: "docId";
1051
+ tableName: "remoteDetectionAlert";
1052
+ dataType: "string";
1053
+ columnType: "SQLiteText";
1054
+ data: string;
1055
+ driverParam: string;
1056
+ notNull: true;
1057
+ hasDefault: false;
1058
+ enumValues: [string, ...string[]];
1059
+ baseColumn: never;
1060
+ }, object>;
1061
+ readonly versionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1062
+ name: "versionId";
1063
+ tableName: "remoteDetectionAlert";
1064
+ dataType: "string";
1065
+ columnType: "SQLiteText";
1066
+ data: string;
1067
+ driverParam: string;
1068
+ notNull: true;
1069
+ hasDefault: false;
1070
+ enumValues: [string, ...string[]];
1071
+ baseColumn: never;
1072
+ }, object>;
1073
+ readonly originalVersionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1074
+ name: "originalVersionId";
1075
+ tableName: "remoteDetectionAlert";
1076
+ dataType: "string";
1077
+ columnType: "SQLiteText";
1078
+ data: string;
1079
+ driverParam: string;
1080
+ notNull: true;
1081
+ hasDefault: false;
1082
+ enumValues: [string, ...string[]];
1083
+ baseColumn: never;
1084
+ }, object>;
1085
+ readonly schemaName: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1086
+ name: "schemaName";
1087
+ tableName: "remoteDetectionAlert";
1088
+ dataType: "string";
1089
+ columnType: "SQLiteText";
1090
+ data: "remoteDetectionAlert";
1091
+ driverParam: string;
1092
+ notNull: true;
1093
+ hasDefault: false;
1094
+ enumValues: ["remoteDetectionAlert"];
1095
+ baseColumn: never;
1096
+ }, object>;
1097
+ readonly createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1098
+ name: "createdAt";
1099
+ tableName: "remoteDetectionAlert";
1100
+ dataType: "string";
1101
+ columnType: "SQLiteText";
1102
+ data: string;
1103
+ driverParam: string;
1104
+ notNull: true;
1105
+ hasDefault: false;
1106
+ enumValues: [string, ...string[]];
1107
+ baseColumn: never;
1108
+ }, object>;
1109
+ readonly updatedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1110
+ name: "updatedAt";
1111
+ tableName: "remoteDetectionAlert";
1112
+ dataType: "string";
1113
+ columnType: "SQLiteText";
1114
+ data: string;
1115
+ driverParam: string;
1116
+ notNull: true;
1117
+ hasDefault: false;
1118
+ enumValues: [string, ...string[]];
1119
+ baseColumn: never;
1120
+ }, object>;
1121
+ readonly links: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1122
+ name: "links";
1123
+ tableName: "remoteDetectionAlert";
1124
+ dataType: "custom";
1125
+ columnType: "SQLiteCustomColumn";
1126
+ data: string[];
1127
+ driverParam: string;
1128
+ notNull: true;
1129
+ hasDefault: false;
1130
+ enumValues: undefined;
1131
+ baseColumn: never;
1132
+ }, object>;
1133
+ readonly deleted: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1134
+ name: "deleted";
1135
+ tableName: "remoteDetectionAlert";
1136
+ dataType: "boolean";
1137
+ columnType: "SQLiteBoolean";
1138
+ data: boolean;
1139
+ driverParam: number;
1140
+ notNull: true;
1141
+ hasDefault: false;
1142
+ enumValues: undefined;
1143
+ baseColumn: never;
1144
+ }, object>;
1145
+ readonly detectionDateStart: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1146
+ name: "detectionDateStart";
1147
+ tableName: "remoteDetectionAlert";
1148
+ dataType: "string";
1149
+ columnType: "SQLiteText";
1150
+ data: string;
1151
+ driverParam: string;
1152
+ notNull: true;
1153
+ hasDefault: false;
1154
+ enumValues: [string, ...string[]];
1155
+ baseColumn: never;
1156
+ }, object>;
1157
+ readonly detectionDateEnd: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1158
+ name: "detectionDateEnd";
1159
+ tableName: "remoteDetectionAlert";
1160
+ dataType: "string";
1161
+ columnType: "SQLiteText";
1162
+ data: string;
1163
+ driverParam: string;
1164
+ notNull: true;
1165
+ hasDefault: false;
1166
+ enumValues: [string, ...string[]];
1167
+ baseColumn: never;
1168
+ }, object>;
1169
+ readonly sourceId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1170
+ name: "sourceId";
1171
+ tableName: "remoteDetectionAlert";
1172
+ dataType: "string";
1173
+ columnType: "SQLiteText";
1174
+ data: string;
1175
+ driverParam: string;
1176
+ notNull: true;
1177
+ hasDefault: false;
1178
+ enumValues: [string, ...string[]];
1179
+ baseColumn: never;
1180
+ }, object>;
1181
+ readonly metadata: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1182
+ name: "metadata";
1183
+ tableName: "remoteDetectionAlert";
1184
+ dataType: "custom";
1185
+ columnType: "SQLiteCustomColumn";
1186
+ data: {
1187
+ [k: string]: string | number | boolean | (string | number | boolean | null)[] | null;
1188
+ };
1189
+ driverParam: string;
1190
+ notNull: true;
1191
+ hasDefault: false;
1192
+ enumValues: undefined;
1193
+ baseColumn: never;
1194
+ }, object>;
1195
+ readonly geometry: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1196
+ name: "geometry";
1197
+ tableName: "remoteDetectionAlert";
1198
+ dataType: "custom";
1199
+ columnType: "SQLiteCustomColumn";
1200
+ data: import("@comapeo/schema/dist/schema/remoteDetectionAlert.js").Geometry;
1201
+ driverParam: string;
1202
+ notNull: true;
1203
+ hasDefault: false;
1204
+ enumValues: undefined;
1205
+ baseColumn: never;
1206
+ }, object>;
1207
+ forks: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1208
+ name: "forks";
1209
+ tableName: "remoteDetectionAlert";
1210
+ dataType: "custom";
1211
+ columnType: "SQLiteCustomColumn";
1212
+ data: string[];
1213
+ driverParam: string;
1214
+ notNull: true;
1215
+ hasDefault: false;
1216
+ enumValues: undefined;
1217
+ baseColumn: never;
1218
+ }, object>;
1219
+ };
1220
+ dialect: "sqlite";
1221
+ }>, "remoteDetectionAlert", {
1222
+ schemaName: "remoteDetectionAlert";
1223
+ detectionDateStart: string;
1224
+ detectionDateEnd: string;
1225
+ sourceId: string;
1226
+ metadata: {
1227
+ [k: string]: boolean | number | string | null | (boolean | number | string | null)[];
1228
+ };
1229
+ geometry: import("@comapeo/schema/dist/schema/remoteDetectionAlert.js").Geometry;
1230
+ docId: string;
1231
+ versionId: string;
1232
+ originalVersionId: string;
1233
+ createdAt: string;
1234
+ updatedAt: string;
1235
+ links: string[];
1236
+ deleted: boolean;
1237
+ }, {
1238
+ schemaName: "remoteDetectionAlert";
1239
+ detectionDateStart: string;
1240
+ detectionDateEnd: string;
1241
+ sourceId: string;
1242
+ metadata: {
1243
+ [k: string]: boolean | number | string | null | (boolean | number | string | null)[];
1244
+ };
1245
+ geometry: import("@comapeo/schema/dist/schema/remoteDetectionAlert.js").Geometry;
1246
+ }>;
1041
1247
  get $member(): MemberApi;
1042
1248
  get $sync(): SyncApi;
1043
1249
  get $translation(): TranslationApi;
@@ -1080,7 +1286,7 @@ export class MapeoProject extends TypedEmitter<{
1080
1286
  * DataTypes object mappings, used for tests
1081
1287
  */
1082
1288
  get [kDataTypes](): {
1083
- observation: DataType<DataStore<"data", "observation" | "track">, import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1289
+ observation: DataType<DataStore<"data", "observation" | "track" | "remoteDetectionAlert">, import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1084
1290
  name: "observation";
1085
1291
  schema: undefined;
1086
1292
  columns: {
@@ -1350,7 +1556,7 @@ export class MapeoProject extends TypedEmitter<{
1350
1556
  versionId: string;
1351
1557
  } | undefined;
1352
1558
  }>;
1353
- track: DataType<DataStore<"data", "observation" | "track">, import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1559
+ track: DataType<DataStore<"data", "observation" | "track" | "remoteDetectionAlert">, import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1354
1560
  name: "track";
1355
1561
  schema: undefined;
1356
1562
  columns: {
@@ -1533,6 +1739,208 @@ export class MapeoProject extends TypedEmitter<{
1533
1739
  [k: string]: boolean | number | string | null | (boolean | number | string | null)[];
1534
1740
  };
1535
1741
  }>;
1742
+ remoteDetectionAlert: DataType<DataStore<"data", "observation" | "track" | "remoteDetectionAlert">, import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1743
+ name: "remoteDetectionAlert";
1744
+ schema: undefined;
1745
+ columns: {
1746
+ readonly docId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1747
+ name: "docId";
1748
+ tableName: "remoteDetectionAlert";
1749
+ dataType: "string";
1750
+ columnType: "SQLiteText";
1751
+ data: string;
1752
+ driverParam: string;
1753
+ notNull: true;
1754
+ hasDefault: false;
1755
+ enumValues: [string, ...string[]];
1756
+ baseColumn: never;
1757
+ }, object>;
1758
+ readonly versionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1759
+ name: "versionId";
1760
+ tableName: "remoteDetectionAlert";
1761
+ dataType: "string";
1762
+ columnType: "SQLiteText";
1763
+ data: string;
1764
+ driverParam: string;
1765
+ notNull: true;
1766
+ hasDefault: false;
1767
+ enumValues: [string, ...string[]];
1768
+ baseColumn: never;
1769
+ }, object>;
1770
+ readonly originalVersionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1771
+ name: "originalVersionId";
1772
+ tableName: "remoteDetectionAlert";
1773
+ dataType: "string";
1774
+ columnType: "SQLiteText";
1775
+ data: string;
1776
+ driverParam: string;
1777
+ notNull: true;
1778
+ hasDefault: false;
1779
+ enumValues: [string, ...string[]];
1780
+ baseColumn: never;
1781
+ }, object>;
1782
+ readonly schemaName: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1783
+ name: "schemaName";
1784
+ tableName: "remoteDetectionAlert";
1785
+ dataType: "string";
1786
+ columnType: "SQLiteText";
1787
+ data: "remoteDetectionAlert";
1788
+ driverParam: string;
1789
+ notNull: true;
1790
+ hasDefault: false;
1791
+ enumValues: ["remoteDetectionAlert"];
1792
+ baseColumn: never;
1793
+ }, object>;
1794
+ readonly createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1795
+ name: "createdAt";
1796
+ tableName: "remoteDetectionAlert";
1797
+ dataType: "string";
1798
+ columnType: "SQLiteText";
1799
+ data: string;
1800
+ driverParam: string;
1801
+ notNull: true;
1802
+ hasDefault: false;
1803
+ enumValues: [string, ...string[]];
1804
+ baseColumn: never;
1805
+ }, object>;
1806
+ readonly updatedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1807
+ name: "updatedAt";
1808
+ tableName: "remoteDetectionAlert";
1809
+ dataType: "string";
1810
+ columnType: "SQLiteText";
1811
+ data: string;
1812
+ driverParam: string;
1813
+ notNull: true;
1814
+ hasDefault: false;
1815
+ enumValues: [string, ...string[]];
1816
+ baseColumn: never;
1817
+ }, object>;
1818
+ readonly links: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1819
+ name: "links";
1820
+ tableName: "remoteDetectionAlert";
1821
+ dataType: "custom";
1822
+ columnType: "SQLiteCustomColumn";
1823
+ data: string[];
1824
+ driverParam: string;
1825
+ notNull: true;
1826
+ hasDefault: false;
1827
+ enumValues: undefined;
1828
+ baseColumn: never;
1829
+ }, object>;
1830
+ readonly deleted: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1831
+ name: "deleted";
1832
+ tableName: "remoteDetectionAlert";
1833
+ dataType: "boolean";
1834
+ columnType: "SQLiteBoolean";
1835
+ data: boolean;
1836
+ driverParam: number;
1837
+ notNull: true;
1838
+ hasDefault: false;
1839
+ enumValues: undefined;
1840
+ baseColumn: never;
1841
+ }, object>;
1842
+ readonly detectionDateStart: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1843
+ name: "detectionDateStart";
1844
+ tableName: "remoteDetectionAlert";
1845
+ dataType: "string";
1846
+ columnType: "SQLiteText";
1847
+ data: string;
1848
+ driverParam: string;
1849
+ notNull: true;
1850
+ hasDefault: false;
1851
+ enumValues: [string, ...string[]];
1852
+ baseColumn: never;
1853
+ }, object>;
1854
+ readonly detectionDateEnd: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1855
+ name: "detectionDateEnd";
1856
+ tableName: "remoteDetectionAlert";
1857
+ dataType: "string";
1858
+ columnType: "SQLiteText";
1859
+ data: string;
1860
+ driverParam: string;
1861
+ notNull: true;
1862
+ hasDefault: false;
1863
+ enumValues: [string, ...string[]];
1864
+ baseColumn: never;
1865
+ }, object>;
1866
+ readonly sourceId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1867
+ name: "sourceId";
1868
+ tableName: "remoteDetectionAlert";
1869
+ dataType: "string";
1870
+ columnType: "SQLiteText";
1871
+ data: string;
1872
+ driverParam: string;
1873
+ notNull: true;
1874
+ hasDefault: false;
1875
+ enumValues: [string, ...string[]];
1876
+ baseColumn: never;
1877
+ }, object>;
1878
+ readonly metadata: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1879
+ name: "metadata";
1880
+ tableName: "remoteDetectionAlert";
1881
+ dataType: "custom";
1882
+ columnType: "SQLiteCustomColumn";
1883
+ data: {
1884
+ [k: string]: string | number | boolean | (string | number | boolean | null)[] | null;
1885
+ };
1886
+ driverParam: string;
1887
+ notNull: true;
1888
+ hasDefault: false;
1889
+ enumValues: undefined;
1890
+ baseColumn: never;
1891
+ }, object>;
1892
+ readonly geometry: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1893
+ name: "geometry";
1894
+ tableName: "remoteDetectionAlert";
1895
+ dataType: "custom";
1896
+ columnType: "SQLiteCustomColumn";
1897
+ data: import("@comapeo/schema/dist/schema/remoteDetectionAlert.js").Geometry;
1898
+ driverParam: string;
1899
+ notNull: true;
1900
+ hasDefault: false;
1901
+ enumValues: undefined;
1902
+ baseColumn: never;
1903
+ }, object>;
1904
+ forks: import("drizzle-orm/sqlite-core").SQLiteColumn<{
1905
+ name: "forks";
1906
+ tableName: "remoteDetectionAlert";
1907
+ dataType: "custom";
1908
+ columnType: "SQLiteCustomColumn";
1909
+ data: string[];
1910
+ driverParam: string;
1911
+ notNull: true;
1912
+ hasDefault: false;
1913
+ enumValues: undefined;
1914
+ baseColumn: never;
1915
+ }, object>;
1916
+ };
1917
+ dialect: "sqlite";
1918
+ }>, "remoteDetectionAlert", {
1919
+ schemaName: "remoteDetectionAlert";
1920
+ detectionDateStart: string;
1921
+ detectionDateEnd: string;
1922
+ sourceId: string;
1923
+ metadata: {
1924
+ [k: string]: boolean | number | string | null | (boolean | number | string | null)[];
1925
+ };
1926
+ geometry: import("@comapeo/schema/dist/schema/remoteDetectionAlert.js").Geometry;
1927
+ docId: string;
1928
+ versionId: string;
1929
+ originalVersionId: string;
1930
+ createdAt: string;
1931
+ updatedAt: string;
1932
+ links: string[];
1933
+ deleted: boolean;
1934
+ }, {
1935
+ schemaName: "remoteDetectionAlert";
1936
+ detectionDateStart: string;
1937
+ detectionDateEnd: string;
1938
+ sourceId: string;
1939
+ metadata: {
1940
+ [k: string]: boolean | number | string | null | (boolean | number | string | null)[];
1941
+ };
1942
+ geometry: import("@comapeo/schema/dist/schema/remoteDetectionAlert.js").Geometry;
1943
+ }>;
1536
1944
  preset: DataType<DataStore<"config", "translation" | "preset" | "field" | "projectSettings" | "deviceInfo" | "icon">, import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
1537
1945
  name: "preset";
1538
1946
  schema: undefined;
@@ -2739,6 +3147,20 @@ export class MapeoProject extends TypedEmitter<{
2739
3147
  enumValues: ["device_type_unspecified", "mobile", "tablet", "desktop", "selfHostedServer", "UNRECOGNIZED"];
2740
3148
  baseColumn: never;
2741
3149
  }, object>;
3150
+ readonly selfHostedServerDetails: import("drizzle-orm/sqlite-core").SQLiteColumn<{
3151
+ name: "selfHostedServerDetails";
3152
+ tableName: "deviceInfo";
3153
+ dataType: "custom";
3154
+ columnType: "SQLiteCustomColumn";
3155
+ data: {
3156
+ baseUrl: string;
3157
+ } | undefined;
3158
+ driverParam: string;
3159
+ notNull: false;
3160
+ hasDefault: false;
3161
+ enumValues: undefined;
3162
+ baseColumn: never;
3163
+ }, object>;
2742
3164
  forks: import("drizzle-orm/sqlite-core").SQLiteColumn<{
2743
3165
  name: "forks";
2744
3166
  tableName: "deviceInfo";
@@ -2757,6 +3179,9 @@ export class MapeoProject extends TypedEmitter<{
2757
3179
  schemaName: "deviceInfo";
2758
3180
  name: string;
2759
3181
  deviceType: "device_type_unspecified" | "mobile" | "tablet" | "desktop" | "selfHostedServer" | "UNRECOGNIZED";
3182
+ selfHostedServerDetails?: {
3183
+ baseUrl: string;
3184
+ } | undefined;
2760
3185
  docId: string;
2761
3186
  versionId: string;
2762
3187
  originalVersionId: string;
@@ -2768,6 +3193,9 @@ export class MapeoProject extends TypedEmitter<{
2768
3193
  schemaName: "deviceInfo";
2769
3194
  name: string;
2770
3195
  deviceType: "device_type_unspecified" | "mobile" | "tablet" | "desktop" | "selfHostedServer" | "UNRECOGNIZED";
3196
+ selfHostedServerDetails?: {
3197
+ baseUrl: string;
3198
+ } | undefined;
2771
3199
  }>;
2772
3200
  icon: DataType<DataStore<"config", "translation" | "preset" | "field" | "projectSettings" | "deviceInfo" | "icon">, import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
2773
3201
  name: "icon";
@@ -3174,21 +3602,25 @@ export class MapeoProject extends TypedEmitter<{
3174
3602
  /**
3175
3603
  * Replicate a project to a @hyperswarm/secret-stream. Invites will not
3176
3604
  * function because the RPC channel is not connected for project replication,
3177
- * and only this project will replicate (to replicate multiple projects you
3178
- * need to replicate the manager instance via manager[kManagerReplicate])
3605
+ * and only this project will replicate.
3179
3606
  *
3180
- * @param {Parameters<import('hypercore')['replicate']>[0]} stream A duplex stream, a @hyperswarm/secret-stream, or a Protomux instance
3607
+ * @param {(
3608
+ * boolean |
3609
+ * import('stream').Duplex |
3610
+ * import('streamx').Duplex
3611
+ * )} isInitiatorOrStream
3612
+ * @returns {ReplicationStream}
3181
3613
  */
3182
- [kProjectReplicate](stream: Parameters<import("hypercore")["replicate"]>[0]): import("streamx").Duplex<any, any, any, any, true, true, import("streamx").DuplexEvents<any, any>> & {
3183
- noiseStream: Omit<import("@hyperswarm/secret-stream")<import("streamx").Duplex<any, any, any, any, true, true, import("streamx").DuplexEvents<any, any>>>, "userData"> & {
3184
- userData: import("protomux");
3185
- };
3186
- } & import("protomux")<import("streamx").Duplex<any, any, any, any, true, true, import("streamx").DuplexEvents<any, any>>>;
3614
+ [kProjectReplicate](isInitiatorOrStream: (boolean | import("stream").Duplex | import("streamx").Duplex)): ReplicationStream;
3187
3615
  /**
3188
- * @param {Pick<import('@comapeo/schema').DeviceInfoValue, 'name' | 'deviceType'>} value
3616
+ * @param {Pick<import('@comapeo/schema').DeviceInfoValue, 'name' | 'deviceType' | 'selfHostedServerDetails'>} value
3189
3617
  * @returns {Promise<import('@comapeo/schema').DeviceInfo>}
3190
3618
  */
3191
- [kSetOwnDeviceInfo](value: Pick<import("@comapeo/schema").DeviceInfoValue, "name" | "deviceType">): Promise<import("@comapeo/schema").DeviceInfo>;
3619
+ [kSetOwnDeviceInfo](value: Pick<import("@comapeo/schema").DeviceInfoValue, "name" | "deviceType" | "selfHostedServerDetails">): Promise<import("@comapeo/schema").DeviceInfo>;
3620
+ /** @param {boolean} isArchiveDevice */
3621
+ [kSetIsArchiveDevice](isArchiveDevice: boolean): Promise<void>;
3622
+ /** @returns {boolean} */
3623
+ get [kIsArchiveDevice](): boolean;
3192
3624
  [kProjectLeave](): Promise<void>;
3193
3625
  /**
3194
3626
  * Clear data if we've left the project. No-op if you're still in the project.
@@ -3210,6 +3642,7 @@ import { IconApi } from './icon-api.js';
3210
3642
  import { CoreManager } from './core-manager/index.js';
3211
3643
  import { CoreOwnership } from './core-ownership.js';
3212
3644
  import { BlobStore } from './blob-store/index.js';
3645
+ import type { ReplicationStream } from './types.js';
3213
3646
  import { IndexWriter } from './index-writer/index.js';
3214
3647
  import type { CoreStorage } from './types.js';
3215
3648
  import { Logger } from './logger.js';
@@ -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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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgZlB;IAED,8BAEC;IAwLD;;;;;;;;;;;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,iBAIlB;IAED,yBAAyB;IACzB,kCAEC;IA6CD,iCAMC;IAED;;;OAGG;IACH,sBAFa,OAAO,CAAC,IAAI,CAAC,CAoCzB;;CAuKF;sCAp6Ba,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC;6BACxC,oBAAoB,CAAC,gBAAgB,CAAC;6BAzDvB,oBAAoB;wBAOzB,eAAe;0BAHb,sBAAsB;yBACL,qBAAqB;0BAsCtC,iBAAiB;wBAKpC,oBAAoB;2BAIA,sBAAsB;wBAFzB,eAAe;4BA/CX,yBAAyB;8BAuB9C,qBAAqB;0BApBF,uBAAuB;uCAgDuB,YAAY;4BA9CxD,yBAAyB;iCA8CmB,YAAY;uBAL7D,aAAa;0CAIM,iBAAiB"}