@comapeo/core 1.0.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 (186) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +31 -0
  3. package/dist/blob-api.d.ts +92 -0
  4. package/dist/blob-api.d.ts.map +1 -0
  5. package/dist/blob-store/index.d.ts +163 -0
  6. package/dist/blob-store/index.d.ts.map +1 -0
  7. package/dist/blob-store/live-download.d.ts +107 -0
  8. package/dist/blob-store/live-download.d.ts.map +1 -0
  9. package/dist/config-import.d.ts +74 -0
  10. package/dist/config-import.d.ts.map +1 -0
  11. package/dist/constants.d.ts +14 -0
  12. package/dist/constants.d.ts.map +1 -0
  13. package/dist/core-manager/bitfield-rle.d.ts +25 -0
  14. package/dist/core-manager/bitfield-rle.d.ts.map +1 -0
  15. package/dist/core-manager/core-index.d.ts +56 -0
  16. package/dist/core-manager/core-index.d.ts.map +1 -0
  17. package/dist/core-manager/index.d.ts +125 -0
  18. package/dist/core-manager/index.d.ts.map +1 -0
  19. package/dist/core-manager/random-access-file-pool.d.ts +17 -0
  20. package/dist/core-manager/random-access-file-pool.d.ts.map +1 -0
  21. package/dist/core-manager/remote-bitfield.d.ts +146 -0
  22. package/dist/core-manager/remote-bitfield.d.ts.map +1 -0
  23. package/dist/core-ownership.d.ts +112 -0
  24. package/dist/core-ownership.d.ts.map +1 -0
  25. package/dist/datastore/index.d.ts +91 -0
  26. package/dist/datastore/index.d.ts.map +1 -0
  27. package/dist/datatype/index.d.ts +108 -0
  28. package/dist/discovery/local-discovery.d.ts +64 -0
  29. package/dist/discovery/local-discovery.d.ts.map +1 -0
  30. package/dist/errors.d.ts +4 -0
  31. package/dist/errors.d.ts.map +1 -0
  32. package/dist/fastify-controller.d.ts +27 -0
  33. package/dist/fastify-controller.d.ts.map +1 -0
  34. package/dist/fastify-plugins/blobs.d.ts +6 -0
  35. package/dist/fastify-plugins/blobs.d.ts.map +1 -0
  36. package/dist/fastify-plugins/constants.d.ts +3 -0
  37. package/dist/fastify-plugins/constants.d.ts.map +1 -0
  38. package/dist/fastify-plugins/icons.d.ts +6 -0
  39. package/dist/fastify-plugins/icons.d.ts.map +1 -0
  40. package/dist/fastify-plugins/maps/index.d.ts +11 -0
  41. package/dist/fastify-plugins/maps/index.d.ts.map +1 -0
  42. package/dist/fastify-plugins/maps/offline-fallback-map.d.ts +12 -0
  43. package/dist/fastify-plugins/maps/offline-fallback-map.d.ts.map +1 -0
  44. package/dist/fastify-plugins/maps/static-maps.d.ts +11 -0
  45. package/dist/fastify-plugins/maps/static-maps.d.ts.map +1 -0
  46. package/dist/fastify-plugins/utils.d.ts +23 -0
  47. package/dist/fastify-plugins/utils.d.ts.map +1 -0
  48. package/dist/generated/extensions.d.ts +44 -0
  49. package/dist/generated/extensions.d.ts.map +1 -0
  50. package/dist/generated/keys.d.ts +36 -0
  51. package/dist/generated/keys.d.ts.map +1 -0
  52. package/dist/generated/rpc.d.ts +87 -0
  53. package/dist/generated/rpc.d.ts.map +1 -0
  54. package/dist/icon-api.d.ts +109 -0
  55. package/dist/icon-api.d.ts.map +1 -0
  56. package/dist/index-writer/index.d.ts +51 -0
  57. package/dist/index-writer/index.d.ts.map +1 -0
  58. package/dist/index.d.ts +14 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/invite-api.d.ts +70 -0
  61. package/dist/invite-api.d.ts.map +1 -0
  62. package/dist/lib/hashmap.d.ts +62 -0
  63. package/dist/lib/hashmap.d.ts.map +1 -0
  64. package/dist/lib/hypercore-helpers.d.ts +6 -0
  65. package/dist/lib/hypercore-helpers.d.ts.map +1 -0
  66. package/dist/lib/noise-secret-stream-helpers.d.ts +45 -0
  67. package/dist/lib/noise-secret-stream-helpers.d.ts.map +1 -0
  68. package/dist/lib/ponyfills.d.ts +10 -0
  69. package/dist/lib/ponyfills.d.ts.map +1 -0
  70. package/dist/lib/string.d.ts +2 -0
  71. package/dist/lib/string.d.ts.map +1 -0
  72. package/dist/lib/timing-safe-equal.d.ts +15 -0
  73. package/dist/lib/timing-safe-equal.d.ts.map +1 -0
  74. package/dist/local-peers.d.ts +151 -0
  75. package/dist/local-peers.d.ts.map +1 -0
  76. package/dist/logger.d.ts +32 -0
  77. package/dist/logger.d.ts.map +1 -0
  78. package/dist/mapeo-manager.d.ts +178 -0
  79. package/dist/mapeo-manager.d.ts.map +1 -0
  80. package/dist/mapeo-project.d.ts +3233 -0
  81. package/dist/mapeo-project.d.ts.map +1 -0
  82. package/dist/member-api.d.ts +114 -0
  83. package/dist/member-api.d.ts.map +1 -0
  84. package/dist/roles.d.ts +157 -0
  85. package/dist/roles.d.ts.map +1 -0
  86. package/dist/schema/client.d.ts +284 -0
  87. package/dist/schema/client.d.ts.map +1 -0
  88. package/dist/schema/project.d.ts +1812 -0
  89. package/dist/schema/project.d.ts.map +1 -0
  90. package/dist/schema/schema-to-drizzle.d.ts +20 -0
  91. package/dist/schema/schema-to-drizzle.d.ts.map +1 -0
  92. package/dist/schema/types.d.ts +98 -0
  93. package/dist/schema/types.d.ts.map +1 -0
  94. package/dist/schema/utils.d.ts +55 -0
  95. package/dist/schema/utils.d.ts.map +1 -0
  96. package/dist/sync/core-sync-state.d.ts +252 -0
  97. package/dist/sync/core-sync-state.d.ts.map +1 -0
  98. package/dist/sync/namespace-sync-state.d.ts +47 -0
  99. package/dist/sync/namespace-sync-state.d.ts.map +1 -0
  100. package/dist/sync/peer-sync-controller.d.ts +44 -0
  101. package/dist/sync/peer-sync-controller.d.ts.map +1 -0
  102. package/dist/sync/sync-api.d.ts +158 -0
  103. package/dist/sync/sync-api.d.ts.map +1 -0
  104. package/dist/sync/sync-state.d.ts +40 -0
  105. package/dist/sync/sync-state.d.ts.map +1 -0
  106. package/dist/translation-api.d.ts +288 -0
  107. package/dist/translation-api.d.ts.map +1 -0
  108. package/dist/types.d.ts +115 -0
  109. package/dist/types.d.ts.map +1 -0
  110. package/dist/utils.d.ts +115 -0
  111. package/dist/utils.d.ts.map +1 -0
  112. package/dist/utils_types.d.ts +14 -0
  113. package/drizzle/client/0000_bumpy_carnage.sql +33 -0
  114. package/drizzle/client/meta/0000_snapshot.json +199 -0
  115. package/drizzle/client/meta/_journal.json +13 -0
  116. package/drizzle/project/0000_spooky_lady_ursula.sql +192 -0
  117. package/drizzle/project/meta/0000_snapshot.json +1137 -0
  118. package/drizzle/project/meta/_journal.json +13 -0
  119. package/package.json +202 -0
  120. package/src/blob-api.js +139 -0
  121. package/src/blob-store/index.js +325 -0
  122. package/src/blob-store/live-download.js +373 -0
  123. package/src/config-import.js +604 -0
  124. package/src/constants.js +34 -0
  125. package/src/core-manager/bitfield-rle.js +235 -0
  126. package/src/core-manager/core-index.js +87 -0
  127. package/src/core-manager/index.js +504 -0
  128. package/src/core-manager/random-access-file-pool.js +30 -0
  129. package/src/core-manager/remote-bitfield.js +416 -0
  130. package/src/core-ownership.js +235 -0
  131. package/src/datastore/README.md +46 -0
  132. package/src/datastore/index.js +234 -0
  133. package/src/datatype/README.md +33 -0
  134. package/src/datatype/index.d.ts +108 -0
  135. package/src/datatype/index.js +358 -0
  136. package/src/discovery/local-discovery.js +303 -0
  137. package/src/errors.js +5 -0
  138. package/src/fastify-controller.js +84 -0
  139. package/src/fastify-plugins/blobs.js +139 -0
  140. package/src/fastify-plugins/constants.js +5 -0
  141. package/src/fastify-plugins/icons.js +158 -0
  142. package/src/fastify-plugins/maps/index.js +173 -0
  143. package/src/fastify-plugins/maps/offline-fallback-map.js +114 -0
  144. package/src/fastify-plugins/maps/static-maps.js +271 -0
  145. package/src/fastify-plugins/utils.js +52 -0
  146. package/src/generated/README.md +3 -0
  147. package/src/generated/extensions.d.ts +44 -0
  148. package/src/generated/extensions.js +196 -0
  149. package/src/generated/extensions.ts +237 -0
  150. package/src/generated/keys.d.ts +36 -0
  151. package/src/generated/keys.js +148 -0
  152. package/src/generated/keys.ts +185 -0
  153. package/src/generated/rpc.d.ts +87 -0
  154. package/src/generated/rpc.js +389 -0
  155. package/src/generated/rpc.ts +463 -0
  156. package/src/icon-api.js +282 -0
  157. package/src/index-writer/README.md +38 -0
  158. package/src/index-writer/index.js +124 -0
  159. package/src/index.js +16 -0
  160. package/src/invite-api.js +450 -0
  161. package/src/lib/hashmap.js +91 -0
  162. package/src/lib/hypercore-helpers.js +18 -0
  163. package/src/lib/noise-secret-stream-helpers.js +37 -0
  164. package/src/lib/ponyfills.js +25 -0
  165. package/src/lib/string.js +7 -0
  166. package/src/lib/timing-safe-equal.js +34 -0
  167. package/src/local-peers.js +737 -0
  168. package/src/logger.js +99 -0
  169. package/src/mapeo-manager.js +914 -0
  170. package/src/mapeo-project.js +980 -0
  171. package/src/member-api.js +319 -0
  172. package/src/roles.js +412 -0
  173. package/src/schema/client.js +55 -0
  174. package/src/schema/project.js +44 -0
  175. package/src/schema/schema-to-drizzle.js +118 -0
  176. package/src/schema/types.ts +153 -0
  177. package/src/schema/utils.js +51 -0
  178. package/src/sync/core-sync-state.js +440 -0
  179. package/src/sync/namespace-sync-state.js +193 -0
  180. package/src/sync/peer-sync-controller.js +332 -0
  181. package/src/sync/sync-api.js +588 -0
  182. package/src/sync/sync-state.js +63 -0
  183. package/src/translation-api.js +141 -0
  184. package/src/types.ts +149 -0
  185. package/src/utils.js +210 -0
  186. package/src/utils_types.d.ts +14 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapeo-project.d.ts","sourceRoot":"","sources":["../src/mapeo-project.js"],"names":[],"mappings":"AA2DA,yCAAiD;AACjD,2CAAqD;AACrD,8CAA4D;AAC5D,uCAA6C;AAC7C,8CAA4D;AAC5D,uCAA6C;AAC7C,0CAAoD;AACpD,6CAAoE;AAIpE;;GAEG;AACH;WAFmC,MAAM,IAAI;;IAsB3C,4CAAsD;IAEtD;;;;;;;;;;;;;;;OAeG;IACH,2LAdG;QAAqB,MAAM,EAAnB,MAAM;QACO,uBAAuB,EAApC,MAAM;QACmC,UAAU,EAAnD,2CAAkC;QACrB,UAAU,EAAvB,MAAM;QACQ,gBAAgB;QACqB,cAAc,EAAjE,OAAO,qBAAqB,EAAE,cAAc;QACqB,QAAQ,EAAzE,OAAO,4BAA4B,EAAE,qBAAqB;QACxC,iBAAiB,EAAnC,WAAW;QACO,WAAW,EAA7B,WAAW;QAC6C,eAAe,EAAvE,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC;QACL,UAAU,EAAtD,OAAO,kBAAkB,EAAE,UAAU;QACvB,MAAM;KAE9B,EAqRA;IAxEC,gBASE;IA0FJ,uBAEC;IAED;;;;OAIG;IACH,SAFa,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;OACG;IACH,uBAYC;IA+CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCA1a+B,CAAC;wCAI/B,CAAC;;wCAkBG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAhCR,oEAAoE;YAEpE,kFAAkF;YAClF,uEAAuE;YAEvE,CALA,CAAA,oEAAoE;oBAAzC,CAAC;6BAAsC,CAAA;4BAKrD,CAAC;4BAKmB,CAAC;gCAI/B,CAAC;;gCAkBG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAhCR,oEAAoE;YAEpE,kFAAkF;YAClF,uEAAuE;YAEvE,CALA,CAAA,oEAAoE;oBAAzC,CAAC;6BAAsC,CAAA;4BAKrD,CAAC;4BAKmB,CAAC;gCAI/B,CAAC;;gCAkBG,CAAC;;;;;;;OAsZL;IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAEC;IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAEC;IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAEC;IAED,yBAEC;IAED,qBAEC;IAED,mCAEC;IAED;;;OAGG;IACH,8BAHW,OAAO,CAAC,uBAAuB,CAAC,GAC9B,OAAO,CAAC,uBAAuB,CAAC,CA6B5C;IAED;;OAEG;IACH,uBAFa,OAAO,CAAC,uBAAuB,CAAC,CAW5C;IAED,+KAEC;IAED;;;;OAIG;IACH,gDAJW,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,CAU3B;IAoDD;;OAEG;IACH,sBAEC;IAsFD;;;OAGG;IACH,6BAHI;QAAqB,UAAU,EAAvB,MAAM;KACd,GAAU,OAAO,CAAC,KAAK,EAAE,CAAC,CAkK7B;IA9eD;;OAEG;IACH,kCAEC;IAED;;OAEG;IACH,sCAEC;IAED;;OAEG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAxV+B,CAAC;4CAI/B,CAAC;;4CAkBG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAhCR,oEAAoE;gBAEpE,kFAAkF;gBAClF,uEAAuE;gBAEvE,CALA,CAAA,oEAAoE;wBAAzC,CAAC;iCAAsC,CAAA;gCAKrD,CAAC;gCAKmB,CAAC;oCAI/B,CAAC;;oCAkBG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAhCR,oEAAoE;gBAEpE,kFAAkF;gBAClF,uEAAuE;gBAEvE,CALA,CAAA,oEAAoE;wBAAzC,CAAC;iCAAsC,CAAA;gCAKrD,CAAC;gCAKmB,CAAC;oCAI/B,CAAC;;oCAkBG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAoUL;IAED,8BAEC;IAsKD;;;;;;;OAOG;IACH,4BAFW,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;;;;+HAezD;IAED;;;OAGG;IACH,2BAHW,IAAI,CAAC,OAAO,iBAAiB,EAAE,eAAe,EAAE,MAAM,GAAG,YAAY,CAAC,GACpE,OAAO,CAAC,OAAO,iBAAiB,EAAE,UAAU,CAAC,CAuBzD;IA6CD,iCAMC;IAED;;;OAGG;IACH,sBAFa,OAAO,CAAC,IAAI,CAAC,CAoCzB;;CAuKF;sCA9zBa,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC;6BACxC,oBAAoB,CAAC,gBAAgB,CAAC;6BAjDvB,oBAAoB;wBAOzB,eAAe;0BAHb,sBAAsB;yBACL,qBAAqB;0BAkCtC,iBAAiB;wBACE,oBAAoB;2BAItC,sBAAsB;wBAFzB,eAAe;4BAvCX,yBAAyB;8BAsB9C,qBAAqB;0BAnBF,uBAAuB;4BAErB,yBAAyB;iCAsCA,YAAY;uBAL1C,aAAa;0CAIM,iBAAiB"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * @import {
3
+ * DeviceInfo,
4
+ * DeviceInfoValue,
5
+ * ProjectSettings,
6
+ * ProjectSettingsValue
7
+ * } from '@comapeo/schema'
8
+ */
9
+ /** @import { Invite, InviteResponse } from './generated/rpc.js' */
10
+ /** @import { DataType } from './datatype/index.js' */
11
+ /** @import { DataStore } from './datastore/index.js' */
12
+ /** @import { deviceInfoTable } from './schema/project.js' */
13
+ /** @import { projectSettingsTable } from './schema/client.js' */
14
+ /** @typedef {DataType<DataStore<'config'>, typeof deviceInfoTable, "deviceInfo", DeviceInfo, DeviceInfoValue>} DeviceInfoDataType */
15
+ /** @typedef {DataType<DataStore<'config'>, typeof projectSettingsTable, "projectSettings", ProjectSettings, ProjectSettingsValue>} ProjectDataType */
16
+ /**
17
+ * @typedef {object} MemberInfo
18
+ * @prop {string} deviceId
19
+ * @prop {import('./roles.js').Role} role
20
+ * @prop {DeviceInfo['name']} [name]
21
+ * @prop {DeviceInfo['deviceType']} [deviceType]
22
+ * @prop {DeviceInfo['createdAt']} [joinedAt]
23
+ */
24
+ export class MemberApi extends TypedEmitter<import("tiny-typed-emitter").DefaultListener> {
25
+ /**
26
+ * @param {Object} opts
27
+ * @param {string} opts.deviceId public key of this device as hex string
28
+ * @param {import('./roles.js').Roles} opts.roles
29
+ * @param {import('./core-ownership.js').CoreOwnership} opts.coreOwnership
30
+ * @param {import('./generated/keys.js').EncryptionKeys} opts.encryptionKeys
31
+ * @param {Buffer} opts.projectKey
32
+ * @param {import('./local-peers.js').LocalPeers} opts.rpc
33
+ * @param {Object} opts.dataTypes
34
+ * @param {Pick<DeviceInfoDataType, 'getByDocId' | 'getMany'>} opts.dataTypes.deviceInfo
35
+ * @param {Pick<ProjectDataType, 'getByDocId'>} opts.dataTypes.project
36
+ */
37
+ constructor({ deviceId, roles, coreOwnership, encryptionKeys, projectKey, rpc, dataTypes, }: {
38
+ deviceId: string;
39
+ roles: import("./roles.js").Roles;
40
+ coreOwnership: import("./core-ownership.js").CoreOwnership;
41
+ encryptionKeys: import("./generated/keys.js").EncryptionKeys;
42
+ projectKey: Buffer;
43
+ rpc: import("./local-peers.js").LocalPeers;
44
+ dataTypes: {
45
+ deviceInfo: Pick<DeviceInfoDataType, "getByDocId" | "getMany">;
46
+ project: Pick<ProjectDataType, "getByDocId">;
47
+ };
48
+ });
49
+ /**
50
+ * Send an invite. Resolves when receiving a response. Rejects if the invite
51
+ * is canceled, or if something else goes wrong.
52
+ *
53
+ * @param {string} deviceId
54
+ * @param {Object} opts
55
+ * @param {import('./roles.js').RoleIdForNewInvite} opts.roleId
56
+ * @param {string} [opts.roleName]
57
+ * @param {string} [opts.roleDescription]
58
+ * @returns {Promise<(
59
+ * typeof InviteResponse_Decision.ACCEPT |
60
+ * typeof InviteResponse_Decision.REJECT |
61
+ * typeof InviteResponse_Decision.ALREADY
62
+ * )>}
63
+ */
64
+ invite(deviceId: string, { roleId, roleName, roleDescription }: {
65
+ roleId: import("./roles.js").RoleIdForNewInvite;
66
+ roleName?: string | undefined;
67
+ roleDescription?: string | undefined;
68
+ }): Promise<(typeof InviteResponse_Decision.ACCEPT | typeof InviteResponse_Decision.REJECT | typeof InviteResponse_Decision.ALREADY)>;
69
+ /**
70
+ * Attempt to cancel an outbound invite, if it exists.
71
+ *
72
+ * No-op if we weren't inviting this device.
73
+ *
74
+ * @param {string} deviceId
75
+ * @returns {void}
76
+ */
77
+ requestCancelInvite(deviceId: string): void;
78
+ /**
79
+ * @param {string} deviceId
80
+ * @returns {Promise<MemberInfo>}
81
+ */
82
+ getById(deviceId: string): Promise<MemberInfo>;
83
+ /**
84
+ * @returns {Promise<Array<MemberInfo>>}
85
+ */
86
+ getMany(): Promise<Array<MemberInfo>>;
87
+ /**
88
+ * @param {string} deviceId
89
+ * @param {import('./roles.js').RoleIdAssignableToOthers} roleId
90
+ * @returns {Promise<void>}
91
+ */
92
+ assignRole(deviceId: string, roleId: import("./roles.js").RoleIdAssignableToOthers): Promise<void>;
93
+ #private;
94
+ }
95
+ export type DeviceInfoDataType = DataType<DataStore<"config">, typeof deviceInfoTable, "deviceInfo", DeviceInfo, DeviceInfoValue>;
96
+ export type ProjectDataType = DataType<DataStore<"config">, typeof projectSettingsTable, "projectSettings", ProjectSettings, ProjectSettingsValue>;
97
+ export type MemberInfo = {
98
+ deviceId: string;
99
+ role: import("./roles.js").Role;
100
+ name?: string | undefined;
101
+ deviceType?: "UNRECOGNIZED" | "device_type_unspecified" | "mobile" | "tablet" | "desktop" | "selfHostedServer" | undefined;
102
+ joinedAt?: string | undefined;
103
+ };
104
+ import { TypedEmitter } from 'tiny-typed-emitter';
105
+ import { InviteResponse_Decision } from './generated/rpc.js';
106
+ import type { DataStore } from './datastore/index.js';
107
+ import type { deviceInfoTable } from './schema/project.js';
108
+ import type { DeviceInfo } from '@comapeo/schema';
109
+ import type { DeviceInfoValue } from '@comapeo/schema';
110
+ import type { DataType } from './datatype/index.js';
111
+ import type { projectSettingsTable } from './schema/client.js';
112
+ import type { ProjectSettings } from '@comapeo/schema';
113
+ import type { ProjectSettingsValue } from '@comapeo/schema';
114
+ //# sourceMappingURL=member-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"member-api.d.ts","sourceRoot":"","sources":["../src/member-api.js"],"names":[],"mappings":"AAcA;;;;;;;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;;;;;;;;;;;;;;OAcG;IACH,iBAXW,MAAM,yCAEd;QAAsD,MAAM,EAApD,OAAO,YAAY,EAAE,kBAAkB;QACzB,QAAQ;QACR,eAAe;KACrC,GAAU,OAAO,CAAC,CACpB,OAAW,uBAAuB,CAAC,MAAM,GACzC,OAAW,uBAAuB,CAAC,MAAM,GACzC,OAAW,uBAAuB,CAAC,OAAO,CACvC,CAAC,CAkFJ;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;iCAlSa,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;;;;;6BAhCN,oBAAoB;wCAET,oBAAoB;+BAqB7B,sBAAsB;qCAChB,qBAAqB;gCALhD,iBAAiB;qCAAjB,iBAAiB;8BAGG,qBAAqB;0CAGT,oBAAoB;qCANpD,iBAAiB;0CAAjB,iBAAiB"}
@@ -0,0 +1,157 @@
1
+ /** @import { Namespace } from './types.js' */
2
+ export const CREATOR_ROLE_ID: "a12a6702b93bd7ff";
3
+ export const COORDINATOR_ROLE_ID: "f7c150f5a3a9a855";
4
+ export const MEMBER_ROLE_ID: "012fd2d431c0bf60";
5
+ export const BLOCKED_ROLE_ID: "9e6d29263cba36c9";
6
+ export const LEFT_ROLE_ID: "8ced989b1904606b";
7
+ export const NO_ROLE_ID: "08e4251e36f6e7ed";
8
+ export const isRoleIdForNewInvite: (value: unknown) => value is "f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9";
9
+ export const isRoleIdAssignableToOthers: (value: unknown) => value is "f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9";
10
+ /**
11
+ * @typedef {object} DocCapability
12
+ * @property {boolean} readOwn - can read own data
13
+ * @property {boolean} writeOwn - can write own data
14
+ * @property {boolean} readOthers - can read other's data
15
+ * @property {boolean} writeOthers - can edit or delete other's data
16
+ */
17
+ /**
18
+ * @template {RoleId} [T=RoleId]
19
+ * @typedef {object} Role
20
+ * @property {T} roleId
21
+ * @property {string} name
22
+ * @property {Record<import('@comapeo/schema').MapeoDoc['schemaName'], DocCapability>} docs
23
+ * @property {RoleIdAssignableToOthers[]} roleAssignment
24
+ * @property {Record<Namespace, 'allowed' | 'blocked'>} sync
25
+ */
26
+ /**
27
+ * This is currently the same as 'Coordinator' role, but defined separately
28
+ * because the creator should always have ALL powers, but we could edit the
29
+ * 'Coordinator' powers in the future.
30
+ *
31
+ * @type {Role<typeof CREATOR_ROLE_ID>}
32
+ */
33
+ export const CREATOR_ROLE: Role<typeof CREATOR_ROLE_ID>;
34
+ /**
35
+ * This is the role assumed for a device when no role record can be found. This
36
+ * can happen when an invited device did not manage to sync with the device that
37
+ * invited them, and they then try to sync with someone else. We want them to be
38
+ * able to sync the auth and config store, because that way they may be able to
39
+ * receive their role record, and they can get the project config so that they
40
+ * can start collecting data.
41
+ *
42
+ * @type {Role<typeof NO_ROLE_ID>}
43
+ */
44
+ export const NO_ROLE: Role<typeof NO_ROLE_ID>;
45
+ /** @type {{ [K in RoleId]: Role<K> }} */
46
+ export const ROLES: { [K in RoleId]: Role<K>; };
47
+ /**
48
+ * @typedef {object} RolesEvents
49
+ * @property {(docIds: Set<string>) => void} update Emitted when new role records are indexed
50
+ */
51
+ /**
52
+ * @extends {TypedEmitter<RolesEvents>}
53
+ */
54
+ export class Roles extends TypedEmitter<RolesEvents> {
55
+ static NO_ROLE: Role<"08e4251e36f6e7ed">;
56
+ /**
57
+ *
58
+ * @param {object} opts
59
+ * @param {import('./datatype/index.js').DataType<
60
+ * import('./datastore/index.js').DataStore<'auth'>,
61
+ * typeof import('./schema/project.js').roleTable,
62
+ * 'role',
63
+ * import('@comapeo/schema').Role,
64
+ * import('@comapeo/schema').RoleValue
65
+ * >} opts.dataType
66
+ * @param {import('./core-ownership.js').CoreOwnership} opts.coreOwnership
67
+ * @param {import('./core-manager/index.js').CoreManager} opts.coreManager
68
+ * @param {Buffer} opts.projectKey
69
+ * @param {Buffer} opts.deviceKey public key of this device
70
+ */
71
+ constructor({ dataType, coreOwnership, coreManager, projectKey, deviceKey }: {
72
+ dataType: import("./datatype/index.js").DataType<import("./datastore/index.js").DataStore<"auth">, typeof import("./schema/project.js").roleTable, "role", import("@comapeo/schema").Role, import("@comapeo/schema").RoleValue>;
73
+ coreOwnership: import("./core-ownership.js").CoreOwnership;
74
+ coreManager: import("./core-manager/index.js").CoreManager;
75
+ projectKey: Buffer;
76
+ deviceKey: Buffer;
77
+ });
78
+ /**
79
+ * Get the role for device `deviceId`.
80
+ *
81
+ * @param {string} deviceId
82
+ * @returns {Promise<Role>}
83
+ */
84
+ getRole(deviceId: string): Promise<Role>;
85
+ /**
86
+ * Get roles of all devices in the project. For your own device, if you have
87
+ * not yet synced your own role record, the "no role" capabilties is
88
+ * returned. The project creator will have the creator role unless a
89
+ * different one has been assigned.
90
+ *
91
+ * @returns {Promise<Map<string, Role>>} Map of deviceId to Role
92
+ */
93
+ getAll(): Promise<Map<string, Role>>;
94
+ /**
95
+ * Assign a role to the specified `deviceId`. Devices without an assigned role
96
+ * are unable to sync, except the project creator who can do anything. Only
97
+ * the project creator can assign their own role. Will throw if the device's
98
+ * role cannot assign the role by consulting `roleAssignment`.
99
+ *
100
+ * @param {string} deviceId
101
+ * @param {RoleIdAssignableToAnyone} roleId
102
+ */
103
+ assignRole(deviceId: string, roleId: RoleIdAssignableToAnyone): Promise<void>;
104
+ #private;
105
+ }
106
+ export type ElementOf<T> = T extends Iterable<infer U> ? U : never;
107
+ export type RoleId = ElementOf<typeof ROLE_IDS>;
108
+ export type RoleIdForNewInvite = ElementOf<typeof ROLE_IDS_FOR_NEW_INVITE>;
109
+ export type RoleIdAssignableToOthers = ElementOf<typeof ROLE_IDS_ASSIGNABLE_TO_OTHERS>;
110
+ export type RoleIdAssignableToAnyone = ElementOf<typeof ROLE_IDS_ASSIGNABLE_TO_ANYONE>;
111
+ export type DocCapability = {
112
+ /**
113
+ * - can read own data
114
+ */
115
+ readOwn: boolean;
116
+ /**
117
+ * - can write own data
118
+ */
119
+ writeOwn: boolean;
120
+ /**
121
+ * - can read other's data
122
+ */
123
+ readOthers: boolean;
124
+ /**
125
+ * - can edit or delete other's data
126
+ */
127
+ writeOthers: boolean;
128
+ };
129
+ export type Role<T extends RoleId = "a12a6702b93bd7ff" | "f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9" | "8ced989b1904606b" | "08e4251e36f6e7ed"> = {
130
+ roleId: T;
131
+ name: string;
132
+ docs: Record<import("@comapeo/schema").MapeoDoc["schemaName"], DocCapability>;
133
+ roleAssignment: RoleIdAssignableToOthers[];
134
+ sync: Record<Namespace, "allowed" | "blocked">;
135
+ };
136
+ export type RolesEvents = {
137
+ /**
138
+ * Emitted when new role records are indexed
139
+ */
140
+ update: (docIds: Set<string>) => void;
141
+ };
142
+ import { TypedEmitter } from 'tiny-typed-emitter';
143
+ /**
144
+ * @typedef {T extends Iterable<infer U> ? U : never} ElementOf
145
+ * @template T
146
+ */
147
+ /** @typedef {ElementOf<typeof ROLE_IDS>} RoleId */
148
+ declare const ROLE_IDS: Set<"a12a6702b93bd7ff" | "f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9" | "8ced989b1904606b" | "08e4251e36f6e7ed">;
149
+ /** @typedef {ElementOf<typeof ROLE_IDS_FOR_NEW_INVITE>} RoleIdForNewInvite */
150
+ declare const ROLE_IDS_FOR_NEW_INVITE: Set<"f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9">;
151
+ /** @typedef {ElementOf<typeof ROLE_IDS_ASSIGNABLE_TO_OTHERS>} RoleIdAssignableToOthers */
152
+ declare const ROLE_IDS_ASSIGNABLE_TO_OTHERS: Set<"f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9">;
153
+ /** @typedef {ElementOf<typeof ROLE_IDS_ASSIGNABLE_TO_ANYONE>} RoleIdAssignableToAnyone */
154
+ declare const ROLE_IDS_ASSIGNABLE_TO_ANYONE: Set<"f7c150f5a3a9a855" | "012fd2d431c0bf60" | "9e6d29263cba36c9" | "8ced989b1904606b">;
155
+ import type { Namespace } from './types.js';
156
+ export {};
157
+ //# sourceMappingURL=roles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../src/roles.js"],"names":[],"mappings":"AAKA,8CAA8C;AAG9C,iDAAiD;AACjD,qDAAqD;AACrD,gDAAgD;AAChD,iDAAiD;AACjD,8CAA8C;AAC9C,4CAA4C;AAwB5C,uDAiBA,KAAI,iEAjB+D;AAMnE,6DAWA,KAAI,iEAX2E;AAa/E;;;;;;GAMG;AAEH;;;;;;;;GAQG;AAEH;;;;;;GAMG;AACH,2BAFU,IAAI,CAAC,OAAO,eAAe,CAAC,CAmBrC;AAED;;;;;;;;;GASG;AACH,sBAFU,IAAI,CAAC,OAAO,UAAU,CAAC,CAmBhC;AAED,yCAAyC;AACzC,oBADW,GAAG,CAAW,IAAN,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAE,CAsFpC;AAED;;;GAGG;AAEH;;GAEG;AACH;IAOE,yCAAwB;IAExB;;;;;;;;;;;;;;OAcG;IACH,6EAZG;QAMQ,QAAQ,EANR,OAAO,qBAAqB,EAAE,QAAQ,CAChD,OAAW,sBAAsB,EAAE,SAAS,CAAC,MAAM,CAAC,EACpD,cAAkB,qBAAqB,EAAE,SAAS,EAClD,MAAU,EACV,OAAW,iBAAiB,EAAE,IAAI,EAClC,OAAW,iBAAiB,EAAE,SAAS,CACpC;QACyD,aAAa,EAA/D,OAAO,qBAAqB,EAAE,aAAa;QACS,WAAW,EAA/D,OAAO,yBAAyB,EAAE,WAAW;QAChC,UAAU,EAAvB,MAAM;QACO,SAAS,EAAtB,MAAM;KAChB,EASA;IAED;;;;;OAKG;IACH,kBAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAuBzB;IAED;;;;;;;OAOG;IACH,UAFa,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAsCtC;IAED;;;;;;;;OAQG;IACH,qBAHW,MAAM,UACN,wBAAwB,iBA8DlC;;CAQF;sBA1YY,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;;;;;;YAoJxC,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI;;6BAvNd,oBAAoB;AAWjD;;;GAGG;AAEH,mDAAmD;AACnD,yJASC;AAGD,8EAA8E;AAC9E,yGAEC;AAGD,0FAA0F;AAC1F,+GAEC;AAGD,0FAA0F;AAC1F,oIAOC;+BAhD8B,YAAY"}
@@ -0,0 +1,284 @@
1
+ export const projectSettingsTable: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
2
+ name: "projectSettings";
3
+ schema: undefined;
4
+ columns: {
5
+ readonly docId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
6
+ name: "docId";
7
+ tableName: "projectSettings";
8
+ dataType: "string";
9
+ columnType: "SQLiteText";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: false;
14
+ enumValues: [string, ...string[]];
15
+ baseColumn: never;
16
+ }, object>;
17
+ readonly versionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
18
+ name: "versionId";
19
+ tableName: "projectSettings";
20
+ dataType: "string";
21
+ columnType: "SQLiteText";
22
+ data: string;
23
+ driverParam: string;
24
+ notNull: true;
25
+ hasDefault: false;
26
+ enumValues: [string, ...string[]];
27
+ baseColumn: never;
28
+ }, object>;
29
+ readonly originalVersionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
30
+ name: "originalVersionId";
31
+ tableName: "projectSettings";
32
+ dataType: "string";
33
+ columnType: "SQLiteText";
34
+ data: string;
35
+ driverParam: string;
36
+ notNull: true;
37
+ hasDefault: false;
38
+ enumValues: [string, ...string[]];
39
+ baseColumn: never;
40
+ }, object>;
41
+ readonly schemaName: import("drizzle-orm/sqlite-core").SQLiteColumn<{
42
+ name: "schemaName";
43
+ tableName: "projectSettings";
44
+ dataType: "string";
45
+ columnType: "SQLiteText";
46
+ data: "projectSettings";
47
+ driverParam: string;
48
+ notNull: true;
49
+ hasDefault: false;
50
+ enumValues: ["projectSettings"];
51
+ baseColumn: never;
52
+ }, object>;
53
+ readonly createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
54
+ name: "createdAt";
55
+ tableName: "projectSettings";
56
+ dataType: "string";
57
+ columnType: "SQLiteText";
58
+ data: string;
59
+ driverParam: string;
60
+ notNull: true;
61
+ hasDefault: false;
62
+ enumValues: [string, ...string[]];
63
+ baseColumn: never;
64
+ }, object>;
65
+ readonly updatedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
66
+ name: "updatedAt";
67
+ tableName: "projectSettings";
68
+ dataType: "string";
69
+ columnType: "SQLiteText";
70
+ data: string;
71
+ driverParam: string;
72
+ notNull: true;
73
+ hasDefault: false;
74
+ enumValues: [string, ...string[]];
75
+ baseColumn: never;
76
+ }, object>;
77
+ readonly links: import("drizzle-orm/sqlite-core").SQLiteColumn<{
78
+ name: "links";
79
+ tableName: "projectSettings";
80
+ dataType: "custom";
81
+ columnType: "SQLiteCustomColumn";
82
+ data: string[];
83
+ driverParam: string;
84
+ notNull: true;
85
+ hasDefault: false;
86
+ enumValues: undefined;
87
+ baseColumn: never;
88
+ }, object>;
89
+ readonly deleted: import("drizzle-orm/sqlite-core").SQLiteColumn<{
90
+ name: "deleted";
91
+ tableName: "projectSettings";
92
+ dataType: "boolean";
93
+ columnType: "SQLiteBoolean";
94
+ data: boolean;
95
+ driverParam: number;
96
+ notNull: true;
97
+ hasDefault: false;
98
+ enumValues: undefined;
99
+ baseColumn: never;
100
+ }, object>;
101
+ readonly name: import("drizzle-orm/sqlite-core").SQLiteColumn<{
102
+ name: "name";
103
+ tableName: "projectSettings";
104
+ dataType: "string";
105
+ columnType: "SQLiteText";
106
+ data: string;
107
+ driverParam: string;
108
+ notNull: false;
109
+ hasDefault: false;
110
+ enumValues: [string, ...string[]];
111
+ baseColumn: never;
112
+ }, object>;
113
+ readonly defaultPresets: import("drizzle-orm/sqlite-core").SQLiteColumn<{
114
+ name: "defaultPresets";
115
+ tableName: "projectSettings";
116
+ dataType: "custom";
117
+ columnType: "SQLiteCustomColumn";
118
+ data: {
119
+ point: string[];
120
+ area: string[];
121
+ vertex: string[];
122
+ line: string[];
123
+ relation: string[];
124
+ } | undefined;
125
+ driverParam: string;
126
+ notNull: false;
127
+ hasDefault: false;
128
+ enumValues: undefined;
129
+ baseColumn: never;
130
+ }, object>;
131
+ readonly configMetadata: import("drizzle-orm/sqlite-core").SQLiteColumn<{
132
+ name: "configMetadata";
133
+ tableName: "projectSettings";
134
+ dataType: "custom";
135
+ columnType: "SQLiteCustomColumn";
136
+ data: {
137
+ name: string;
138
+ buildDate: string;
139
+ importDate: string;
140
+ fileVersion: string;
141
+ } | undefined;
142
+ driverParam: string;
143
+ notNull: false;
144
+ hasDefault: false;
145
+ enumValues: undefined;
146
+ baseColumn: never;
147
+ }, object>;
148
+ forks: import("drizzle-orm/sqlite-core").SQLiteColumn<{
149
+ name: "forks";
150
+ tableName: "projectSettings";
151
+ dataType: "custom";
152
+ columnType: "SQLiteCustomColumn";
153
+ data: string[];
154
+ driverParam: string;
155
+ notNull: true;
156
+ hasDefault: false;
157
+ enumValues: undefined;
158
+ baseColumn: never;
159
+ }, object>;
160
+ };
161
+ dialect: "sqlite";
162
+ }>;
163
+ export const projectBacklinkTable: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
164
+ name: string;
165
+ schema: undefined;
166
+ columns: {
167
+ versionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
168
+ name: "versionId";
169
+ tableName: string;
170
+ dataType: "string";
171
+ columnType: "SQLiteText";
172
+ data: string;
173
+ driverParam: string;
174
+ notNull: true;
175
+ hasDefault: false;
176
+ enumValues: [string, ...string[]];
177
+ baseColumn: never;
178
+ }, object>;
179
+ };
180
+ dialect: "sqlite";
181
+ }>;
182
+ export const projectKeysTable: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
183
+ name: "projectKeys";
184
+ schema: undefined;
185
+ columns: {
186
+ projectId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
187
+ name: "projectId";
188
+ tableName: "projectKeys";
189
+ dataType: "string";
190
+ columnType: "SQLiteText";
191
+ data: string;
192
+ driverParam: string;
193
+ notNull: true;
194
+ hasDefault: false;
195
+ enumValues: [string, ...string[]];
196
+ baseColumn: never;
197
+ }, object>;
198
+ projectPublicId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
199
+ name: "projectPublicId";
200
+ tableName: "projectKeys";
201
+ dataType: "string";
202
+ columnType: "SQLiteText";
203
+ data: string;
204
+ driverParam: string;
205
+ notNull: true;
206
+ hasDefault: false;
207
+ enumValues: [string, ...string[]];
208
+ baseColumn: never;
209
+ }, object>;
210
+ projectInviteId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
211
+ name: "projectInviteId";
212
+ tableName: "projectKeys";
213
+ dataType: "json";
214
+ columnType: "SQLiteBlobJson";
215
+ data: unknown;
216
+ driverParam: Buffer;
217
+ notNull: true;
218
+ hasDefault: false;
219
+ enumValues: undefined;
220
+ baseColumn: never;
221
+ }, object>;
222
+ keysCipher: import("drizzle-orm/sqlite-core").SQLiteColumn<{
223
+ name: "keysCipher";
224
+ tableName: "projectKeys";
225
+ dataType: "buffer";
226
+ columnType: "SQLiteBlobBuffer";
227
+ data: Buffer;
228
+ driverParam: Buffer;
229
+ notNull: true;
230
+ hasDefault: false;
231
+ enumValues: undefined;
232
+ baseColumn: never;
233
+ }, object>;
234
+ projectInfo: import("drizzle-orm/sqlite-core").SQLiteColumn<{
235
+ name: "projectInfo";
236
+ tableName: "projectKeys";
237
+ dataType: "custom";
238
+ columnType: "SQLiteCustomColumn";
239
+ data: ProjectInfo;
240
+ driverParam: unknown;
241
+ notNull: true;
242
+ hasDefault: true;
243
+ enumValues: undefined;
244
+ baseColumn: never;
245
+ }, object>;
246
+ };
247
+ dialect: "sqlite";
248
+ }>;
249
+ export const localDeviceInfoTable: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
250
+ name: "localDeviceInfo";
251
+ schema: undefined;
252
+ columns: {
253
+ deviceId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
254
+ name: "deviceId";
255
+ tableName: "localDeviceInfo";
256
+ dataType: "string";
257
+ columnType: "SQLiteText";
258
+ data: string;
259
+ driverParam: string;
260
+ notNull: true;
261
+ hasDefault: false;
262
+ enumValues: [string, ...string[]];
263
+ baseColumn: never;
264
+ }, object>;
265
+ deviceInfo: import("drizzle-orm/sqlite-core").SQLiteColumn<{
266
+ name: "deviceInfo";
267
+ tableName: "localDeviceInfo";
268
+ dataType: "custom";
269
+ columnType: "SQLiteCustomColumn";
270
+ data: DeviceInfoParam;
271
+ driverParam: unknown;
272
+ notNull: true;
273
+ hasDefault: false;
274
+ enumValues: undefined;
275
+ baseColumn: never;
276
+ }, object>;
277
+ };
278
+ dialect: "sqlite";
279
+ }>;
280
+ export type ProjectInfo = {
281
+ name?: string | undefined;
282
+ };
283
+ export type DeviceInfoParam = Omit<import("@comapeo/schema").DeviceInfoValue, "schemaName">;
284
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +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"}