@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,64 @@
1
+ export const ERR_DUPLICATE: "Duplicate connection";
2
+ /**
3
+ * @typedef {Object} DiscoveryEvents
4
+ * @property {(connection: OpenedNetNoiseStream) => void} connection
5
+ */
6
+ /**
7
+ * @extends {TypedEmitter<DiscoveryEvents>}
8
+ */
9
+ export class LocalDiscovery extends TypedEmitter<DiscoveryEvents> {
10
+ /**
11
+ * @param {Object} opts
12
+ * @param {Keypair} opts.identityKeypair
13
+ * @param {Logger} [opts.logger]
14
+ */
15
+ constructor({ identityKeypair, logger }: {
16
+ identityKeypair: Keypair;
17
+ logger?: Logger | undefined;
18
+ });
19
+ /** @returns {Promise<{ name: string, port: number }>} */
20
+ start(): Promise<{
21
+ name: string;
22
+ port: number;
23
+ }>;
24
+ /**
25
+ * @param {object} peer
26
+ * @param {string} peer.address
27
+ * @param {number} peer.port
28
+ * @param {string} peer.name
29
+ * @returns {void}
30
+ */
31
+ connectPeer({ address, port, name }: {
32
+ address: string;
33
+ port: number;
34
+ name: string;
35
+ }): void;
36
+ /**
37
+ * Close all servers and stop multicast advertising and browsing. Will wait
38
+ * for open sockets to close unless opts.force=true in which case open sockets
39
+ * are force-closed after opts.timeout milliseconds
40
+ *
41
+ * @param {object} [opts]
42
+ * @param {boolean} [opts.force=false] Force-close open sockets after timeout milliseconds
43
+ * @param {number} [opts.timeout=0] Optional timeout when calling stop() with force=true
44
+ * @returns {Promise<void>}
45
+ */
46
+ stop(opts?: {
47
+ force?: boolean | undefined;
48
+ timeout?: number | undefined;
49
+ } | undefined): Promise<void>;
50
+ #private;
51
+ }
52
+ export type Keypair = {
53
+ publicKey: Buffer;
54
+ secretKey: Buffer;
55
+ };
56
+ export type OpenedNetNoiseStream = OpenedNoiseStream<net.Socket>;
57
+ export type DiscoveryEvents = {
58
+ connection: (connection: OpenedNetNoiseStream) => void;
59
+ };
60
+ import { TypedEmitter } from 'tiny-typed-emitter';
61
+ import { Logger } from '../logger.js';
62
+ import net from 'node:net';
63
+ import type { OpenedNoiseStream } from '../lib/noise-secret-stream-helpers.js';
64
+ //# sourceMappingURL=local-discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-discovery.d.ts","sourceRoot":"","sources":["../../src/discovery/local-discovery.js"],"names":[],"mappings":"AAoBA,mDAAmD;AAEnD;;;GAGG;AAEH;;GAEG;AACH;IAYE;;;;OAIG;IACH,yCAHG;QAAsB,eAAe,EAA7B,OAAO;QACO,MAAM;KAAC,EAqB/B;IAED,yDAAyD;IACzD,SADc,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAIpD;IAWD;;;;;;OAMG;IACH,qCALG;QAAqB,OAAO,EAApB,MAAM;QACO,IAAI,EAAjB,MAAM;QACO,IAAI,EAAjB,MAAM;KACd,GAAU,IAAI,CAkBhB;IAqJD;;;;;;;;;OASG;IACH;;;oBAFa,OAAO,CAAC,IAAI,CAAC,CAIzB;;CAqBF;sBAnRa;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;mCACxC,kBAAkB,GAAG,CAAC,MAAM,CAAC;;gBAU7B,CAAC,UAAU,EAAE,oBAAoB,KAAK,IAAI;;6BAxB3B,oBAAoB;uBAU1B,cAAc;gBATrB,UAAU;uCAUa,uCAAuC"}
@@ -0,0 +1,4 @@
1
+ export class NotFoundError extends Error {
2
+ constructor();
3
+ }
4
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.js"],"names":[],"mappings":"AAAA;IACE,cAEC;CACF"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @typedef {Object} StartOpts
3
+ *
4
+ * @property {string} [host]
5
+ * @property {number} [port]
6
+ */
7
+ export class FastifyController {
8
+ /**
9
+ * @param {Object} opts
10
+ * @param {import('fastify').FastifyInstance} opts.fastify
11
+ */
12
+ constructor({ fastify }: {
13
+ fastify: import("fastify").FastifyInstance;
14
+ });
15
+ /**
16
+ * @param {StartOpts} [opts]
17
+ */
18
+ start(opts?: StartOpts | undefined): Promise<void>;
19
+ started(): Promise<void>;
20
+ stop(): Promise<void>;
21
+ #private;
22
+ }
23
+ export type StartOpts = {
24
+ host?: string | undefined;
25
+ port?: number | undefined;
26
+ };
27
+ //# sourceMappingURL=fastify-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fastify-controller.d.ts","sourceRoot":"","sources":["../src/fastify-controller.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AAGH;IAKE;;;OAGG;IACH,yBAFG;QAAgD,OAAO,EAA/C,OAAO,SAAS,EAAE,eAAe;KAC3C,EAUA;IAwCD;;OAEG;IACH,mDAEC;IAED,yBAEC;IAED,sBAEC;;CACF"}
@@ -0,0 +1,6 @@
1
+ declare function _default(instance: import("fastify").FastifyInstance<import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault>, opts: import("fastify").RegisterOptions & BlobServerPluginOpts): Promise<void>;
2
+ export default _default;
3
+ export type BlobServerPluginOpts = {
4
+ getBlobStore: (projectPublicId: string) => Promise<import("../blob-store/index.js").BlobStore>;
5
+ };
6
+ //# sourceMappingURL=blobs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blobs.d.ts","sourceRoot":"","sources":["../../src/fastify-plugins/blobs.js"],"names":[],"mappings":";;;kBAiBc,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,wBAAwB,EAAE,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export const HEX_REGEX_32_BYTES: "^[0-9a-fA-F]{64}$";
2
+ export const Z_BASE_32_REGEX_32_BYTES: "^[0-9a-zA-Z]{52}$";
3
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/fastify-plugins/constants.js"],"names":[],"mappings":"AACA,qDAAqD;AAGrD,2DAA2D"}
@@ -0,0 +1,6 @@
1
+ declare function _default(instance: import("fastify").FastifyInstance<import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault>, opts: import("fastify").RegisterOptions & IconServerPluginOpts): Promise<void>;
2
+ export default _default;
3
+ export type IconServerPluginOpts = {
4
+ getProject: (projectId: string) => Promise<import("../mapeo-project.js").MapeoProject>;
5
+ };
6
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/fastify-plugins/icons.js"],"names":[],"mappings":";;;gBAqDc,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,qBAAqB,EAAE,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ export const PLUGIN_NAME: "mapeo-maps";
2
+ export const DEFAULT_MAPBOX_STYLE_URL: "https://api.mapbox.com/styles/v1/mapbox/outdoors-v12";
3
+ export function plugin(instance: import("fastify").FastifyInstance<import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault>, opts: MapsPluginOpts): Promise<void>;
4
+ export type MapsPluginOpts = {
5
+ prefix?: string | undefined;
6
+ defaultOnlineStyleUrl?: string | undefined;
7
+ };
8
+ export type MapsPluginContext = {
9
+ getStyleJsonUrl: () => Promise<string>;
10
+ };
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fastify-plugins/maps/index.js"],"names":[],"mappings":"AAYA,uCAAuC;AACvC,8FACwD;;;;;;;qBA8B1C,MAAM,OAAO,CAAC,MAAM,CAAC"}
@@ -0,0 +1,12 @@
1
+ export const PLUGIN_NAME: "mapeo-static-maps";
2
+ export function plugin(instance: import("fastify").FastifyInstance<import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault>, opts: OfflineFallbackMapPluginOpts): Promise<void>;
3
+ export type OfflineFallbackMapPluginOpts = {
4
+ prefix?: string | undefined;
5
+ styleJsonPath: string;
6
+ sourcesDir: string;
7
+ };
8
+ export type FallbackMapPluginDecorator = {
9
+ getResolvedStyleJson: (serverAddress: string) => Promise<any>;
10
+ getStyleJsonStats: () => Promise<import("node:fs").Stats>;
11
+ };
12
+ //# sourceMappingURL=offline-fallback-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offline-fallback-map.d.ts","sourceRoot":"","sources":["../../../src/fastify-plugins/maps/offline-fallback-map.js"],"names":[],"mappings":"AAWA,8CAA8C;;;;mBAUhC,MAAM;gBACN,MAAM;;;0BAKN,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC;uBACvC,MAAM,OAAO,CAAC,OAAO,SAAS,EAAE,KAAK,CAAC"}
@@ -0,0 +1,11 @@
1
+ export const PLUGIN_NAME: "mapeo-static-maps";
2
+ export function plugin(instance: import("fastify").FastifyInstance<import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault>, opts: StaticMapsPluginOpts): Promise<void>;
3
+ export type StaticMapsPluginOpts = {
4
+ prefix?: string | undefined;
5
+ staticRootDir: string;
6
+ };
7
+ export type StaticMapsPluginDecorator = {
8
+ getResolvedStyleJson: (styleId: string, serverAddress: string) => Promise<string>;
9
+ getStyleJsonStats: (styleId: string) => Promise<import("node:fs").Stats>;
10
+ };
11
+ //# sourceMappingURL=static-maps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-maps.d.ts","sourceRoot":"","sources":["../../../src/fastify-plugins/maps/static-maps.js"],"names":[],"mappings":"AAeA,8CAA8C;;;;mBAUhC,MAAM;;;0BAKN,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;uBAC3D,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,SAAS,EAAE,KAAK,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @param {import('node:http').Server} server
3
+ * @param {{ timeout?: number }} [options]
4
+ * @returns {Promise<string>}
5
+ */
6
+ export function getFastifyServerAddress(server: import("node:http").Server, { timeout }?: {
7
+ timeout?: number;
8
+ } | undefined): Promise<string>;
9
+ /**
10
+ * @param {Readonly<Date>} lastModified
11
+ */
12
+ export function createStyleJsonResponseHeaders(lastModified: Readonly<Date>): {
13
+ 'Cache-Control': string;
14
+ 'Access-Control-Allow-Headers': string;
15
+ 'Access-Control-Allow-Origin': string;
16
+ 'Last-Modified': string;
17
+ };
18
+ export const NotFoundError: createError.FastifyErrorConstructor<{
19
+ code: "FST_RESOURCE_NOT_FOUND";
20
+ statusCode: 404;
21
+ }, [any?, any?, any?]>;
22
+ import createError from '@fastify/error';
23
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fastify-plugins/utils.js"],"names":[],"mappings":"AASA;;;;GAIG;AACH,gDAJW,OAAO,WAAW,EAAE,MAAM;cACd,MAAM;gBAChB,OAAO,CAAC,MAAM,CAAC,CA0B3B;AAED;;GAEG;AACH,6DAFW,QAAQ,CAAC,IAAI,CAAC;;;;;EAUxB;AAhDD;;;uBAIC;wBANuB,gBAAgB"}
@@ -0,0 +1,44 @@
1
+ import _m0 from "protobufjs/minimal.js";
2
+ export interface ProjectExtension {
3
+ authCoreKeys: Buffer[];
4
+ }
5
+ export interface HaveExtension {
6
+ discoveryKey: Buffer;
7
+ start: number;
8
+ encodedBitfield: Buffer;
9
+ namespace: HaveExtension_Namespace;
10
+ }
11
+ export declare const HaveExtension_Namespace: {
12
+ readonly auth: "auth";
13
+ readonly config: "config";
14
+ readonly data: "data";
15
+ readonly blobIndex: "blobIndex";
16
+ readonly blob: "blob";
17
+ readonly UNRECOGNIZED: "UNRECOGNIZED";
18
+ };
19
+ export type HaveExtension_Namespace = typeof HaveExtension_Namespace[keyof typeof HaveExtension_Namespace];
20
+ export declare function haveExtension_NamespaceFromJSON(object: any): HaveExtension_Namespace;
21
+ export declare function haveExtension_NamespaceToNumber(object: HaveExtension_Namespace): number;
22
+ export declare const ProjectExtension: {
23
+ encode(message: ProjectExtension, writer?: _m0.Writer): _m0.Writer;
24
+ decode(input: _m0.Reader | Uint8Array, length?: number): ProjectExtension;
25
+ create<I extends Exact<DeepPartial<ProjectExtension>, I>>(base?: I): ProjectExtension;
26
+ fromPartial<I extends Exact<DeepPartial<ProjectExtension>, I>>(object: I): ProjectExtension;
27
+ };
28
+ export declare const HaveExtension: {
29
+ encode(message: HaveExtension, writer?: _m0.Writer): _m0.Writer;
30
+ decode(input: _m0.Reader | Uint8Array, length?: number): HaveExtension;
31
+ create<I extends Exact<DeepPartial<HaveExtension>, I>>(base?: I): HaveExtension;
32
+ fromPartial<I extends Exact<DeepPartial<HaveExtension>, I>>(object: I): HaveExtension;
33
+ };
34
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
35
+ type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
36
+ [K in keyof T]?: DeepPartial<T[K]>;
37
+ } : Partial<T>;
38
+ type KeysOfUnion<T> = T extends T ? keyof T : never;
39
+ type Exact<P, I extends P> = P extends Builtin ? P : P & {
40
+ [K in keyof P]: Exact<P[K], I[K]>;
41
+ } & {
42
+ [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
43
+ };
44
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/generated/extensions.ts"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,uBAAuB,CAAC;AAExC,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,uBAAuB,CAAC;CACpC;AAED,eAAO,MAAM,uBAAuB;;;;;;;CAO1B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC,MAAM,OAAO,uBAAuB,CAAC,CAAC;AAE3G,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,GAAG,GAAG,uBAAuB,CAsBpF;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAgBvF;AAMD,eAAO,MAAM,gBAAgB;oBACX,gBAAgB,WAAU,GAAG,CAAC,MAAM,GAAyB,GAAG,CAAC,MAAM;kBAOzE,GAAG,CAAC,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,gBAAgB;WAuBlE,CAAC,SAAS,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,gBAAgB;gBAGzE,CAAC,SAAS,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,gBAAgB;CAK5F,CAAC;AAWF,eAAO,MAAM,aAAa;oBACR,aAAa,WAAU,GAAG,CAAC,MAAM,GAAyB,GAAG,CAAC,MAAM;kBAgBtE,GAAG,CAAC,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,aAAa;WA4C/D,CAAC,SAAS,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,aAAa;gBAGnE,CAAC,SAAS,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,aAAa;CAQtF,CAAC;AAqBF,KAAK,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEpF,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,CAAC,GACvC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACnH,CAAC,SAAS,EAAE,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACrD,OAAO,CAAC,CAAC,CAAC,CAAC;AAEf,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC;AACpD,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,CAAC,GAC9C,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG;KAAG,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;CAAE,CAAC"}
@@ -0,0 +1,36 @@
1
+ import _m0 from "protobufjs/minimal.js";
2
+ export interface EncryptionKeys {
3
+ auth: Buffer;
4
+ data?: Buffer | undefined;
5
+ config?: Buffer | undefined;
6
+ blobIndex?: Buffer | undefined;
7
+ blob?: Buffer | undefined;
8
+ }
9
+ export interface ProjectKeys {
10
+ projectKey: Buffer;
11
+ projectSecretKey?: Buffer | undefined;
12
+ encryptionKeys: EncryptionKeys | undefined;
13
+ }
14
+ export declare const EncryptionKeys: {
15
+ encode(message: EncryptionKeys, writer?: _m0.Writer): _m0.Writer;
16
+ decode(input: _m0.Reader | Uint8Array, length?: number): EncryptionKeys;
17
+ create<I extends Exact<DeepPartial<EncryptionKeys>, I>>(base?: I): EncryptionKeys;
18
+ fromPartial<I extends Exact<DeepPartial<EncryptionKeys>, I>>(object: I): EncryptionKeys;
19
+ };
20
+ export declare const ProjectKeys: {
21
+ encode(message: ProjectKeys, writer?: _m0.Writer): _m0.Writer;
22
+ decode(input: _m0.Reader | Uint8Array, length?: number): ProjectKeys;
23
+ create<I extends Exact<DeepPartial<ProjectKeys>, I>>(base?: I): ProjectKeys;
24
+ fromPartial<I extends Exact<DeepPartial<ProjectKeys>, I>>(object: I): ProjectKeys;
25
+ };
26
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
27
+ type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
28
+ [K in keyof T]?: DeepPartial<T[K]>;
29
+ } : Partial<T>;
30
+ type KeysOfUnion<T> = T extends T ? keyof T : never;
31
+ type Exact<P, I extends P> = P extends Builtin ? P : P & {
32
+ [K in keyof P]: Exact<P[K], I[K]>;
33
+ } & {
34
+ [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
35
+ };
36
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/generated/keys.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,uBAAuB,CAAC;AAExC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;CAC5C;AAMD,eAAO,MAAM,cAAc;oBACT,cAAc,WAAU,GAAG,CAAC,MAAM,GAAyB,GAAG,CAAC,MAAM;kBAmBvE,GAAG,CAAC,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,cAAc;WAmDhE,CAAC,SAAS,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,cAAc;gBAGrE,CAAC,SAAS,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,cAAc;CASxF,CAAC;AAMF,eAAO,MAAM,WAAW;oBACN,WAAW,WAAU,GAAG,CAAC,MAAM,GAAyB,GAAG,CAAC,MAAM;kBAapE,GAAG,CAAC,MAAM,GAAG,UAAU,WAAW,MAAM,GAAG,WAAW;WAqC7D,CAAC,SAAS,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,WAAW;gBAG/D,CAAC,SAAS,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,WAAW;CASlF,CAAC;AAEF,KAAK,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEpF,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,CAAC,GACvC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACnH,CAAC,SAAS,EAAE,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACrD,OAAO,CAAC,CAAC,CAAC,CAAC;AAEf,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC;AACpD,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,CAAC,GAC9C,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG;KAAG,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;CAAE,CAAC"}
@@ -0,0 +1,87 @@
1
+ import _m0 from "protobufjs/minimal.js";
2
+ import { EncryptionKeys } from "./keys.js";
3
+ export interface Invite {
4
+ inviteId: Buffer;
5
+ projectInviteId: Buffer;
6
+ projectName: string;
7
+ roleName?: string | undefined;
8
+ roleDescription?: string | undefined;
9
+ invitorName: string;
10
+ }
11
+ export interface InviteCancel {
12
+ inviteId: Buffer;
13
+ }
14
+ export interface InviteResponse {
15
+ inviteId: Buffer;
16
+ decision: InviteResponse_Decision;
17
+ }
18
+ export declare const InviteResponse_Decision: {
19
+ readonly DECISION_UNSPECIFIED: "DECISION_UNSPECIFIED";
20
+ readonly REJECT: "REJECT";
21
+ readonly ACCEPT: "ACCEPT";
22
+ readonly ALREADY: "ALREADY";
23
+ readonly UNRECOGNIZED: "UNRECOGNIZED";
24
+ };
25
+ export type InviteResponse_Decision = typeof InviteResponse_Decision[keyof typeof InviteResponse_Decision];
26
+ export declare function inviteResponse_DecisionFromJSON(object: any): InviteResponse_Decision;
27
+ export declare function inviteResponse_DecisionToNumber(object: InviteResponse_Decision): number;
28
+ export interface ProjectJoinDetails {
29
+ inviteId: Buffer;
30
+ projectKey: Buffer;
31
+ encryptionKeys: EncryptionKeys | undefined;
32
+ }
33
+ export interface DeviceInfo {
34
+ name: string;
35
+ deviceType?: DeviceInfo_DeviceType | undefined;
36
+ }
37
+ export declare const DeviceInfo_DeviceType: {
38
+ readonly device_type_unspecified: "device_type_unspecified";
39
+ readonly mobile: "mobile";
40
+ readonly tablet: "tablet";
41
+ readonly desktop: "desktop";
42
+ readonly UNRECOGNIZED: "UNRECOGNIZED";
43
+ };
44
+ export type DeviceInfo_DeviceType = typeof DeviceInfo_DeviceType[keyof typeof DeviceInfo_DeviceType];
45
+ export declare function deviceInfo_DeviceTypeFromJSON(object: any): DeviceInfo_DeviceType;
46
+ export declare function deviceInfo_DeviceTypeToNumber(object: DeviceInfo_DeviceType): number;
47
+ export declare const Invite: {
48
+ encode(message: Invite, writer?: _m0.Writer): _m0.Writer;
49
+ decode(input: _m0.Reader | Uint8Array, length?: number): Invite;
50
+ create<I extends Exact<DeepPartial<Invite>, I>>(base?: I): Invite;
51
+ fromPartial<I extends Exact<DeepPartial<Invite>, I>>(object: I): Invite;
52
+ };
53
+ export declare const InviteCancel: {
54
+ encode(message: InviteCancel, writer?: _m0.Writer): _m0.Writer;
55
+ decode(input: _m0.Reader | Uint8Array, length?: number): InviteCancel;
56
+ create<I extends Exact<DeepPartial<InviteCancel>, I>>(base?: I): InviteCancel;
57
+ fromPartial<I extends Exact<DeepPartial<InviteCancel>, I>>(object: I): InviteCancel;
58
+ };
59
+ export declare const InviteResponse: {
60
+ encode(message: InviteResponse, writer?: _m0.Writer): _m0.Writer;
61
+ decode(input: _m0.Reader | Uint8Array, length?: number): InviteResponse;
62
+ create<I extends Exact<DeepPartial<InviteResponse>, I>>(base?: I): InviteResponse;
63
+ fromPartial<I extends Exact<DeepPartial<InviteResponse>, I>>(object: I): InviteResponse;
64
+ };
65
+ export declare const ProjectJoinDetails: {
66
+ encode(message: ProjectJoinDetails, writer?: _m0.Writer): _m0.Writer;
67
+ decode(input: _m0.Reader | Uint8Array, length?: number): ProjectJoinDetails;
68
+ create<I extends Exact<DeepPartial<ProjectJoinDetails>, I>>(base?: I): ProjectJoinDetails;
69
+ fromPartial<I extends Exact<DeepPartial<ProjectJoinDetails>, I>>(object: I): ProjectJoinDetails;
70
+ };
71
+ export declare const DeviceInfo: {
72
+ encode(message: DeviceInfo, writer?: _m0.Writer): _m0.Writer;
73
+ decode(input: _m0.Reader | Uint8Array, length?: number): DeviceInfo;
74
+ create<I extends Exact<DeepPartial<DeviceInfo>, I>>(base?: I): DeviceInfo;
75
+ fromPartial<I extends Exact<DeepPartial<DeviceInfo>, I>>(object: I): DeviceInfo;
76
+ };
77
+ type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
78
+ type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
79
+ [K in keyof T]?: DeepPartial<T[K]>;
80
+ } : Partial<T>;
81
+ type KeysOfUnion<T> = T extends T ? keyof T : never;
82
+ type Exact<P, I extends P> = P extends Builtin ? P : P & {
83
+ [K in keyof P]: Exact<P[K], I[K]>;
84
+ } & {
85
+ [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
86
+ };
87
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/generated/rpc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Given a list of icon variants returns the variant that most closely matches the desired parameters.
3
+ * Rules, in order of precedence:
4
+ *
5
+ * 1. Matching mime type (throw if no matches)
6
+ * 2. Matching size. If no exact match:
7
+ * 1. If smaller ones exist, prefer closest smaller size.
8
+ * 2. Otherwise prefer closest larger size.
9
+ * 3. Matching pixel density (when asking for PNGs). If no exact match:
10
+ * 1. If smaller ones exist, prefer closest smaller density.
11
+ * 2. Otherwise prefer closest larger density.
12
+ *
13
+ * @param {IconVariants} variants
14
+ * @param {BitmapOpts | SvgOpts} opts
15
+ */
16
+ export function getBestVariant(variants: IconVariants, opts: BitmapOpts | SvgOpts): {
17
+ mimeType: "image/png";
18
+ size: import("@comapeo/schema/dist/schema/icon.js").Size;
19
+ pixelDensity: 1 | 2 | 3;
20
+ blobVersionId: import("@comapeo/schema/dist/schema/icon.js").BlobVersionId;
21
+ } | {
22
+ size: import("@comapeo/schema/dist/schema/icon.js").Size;
23
+ mimeType: "image/svg+xml";
24
+ blobVersionId: import("@comapeo/schema/dist/schema/icon.js").BlobVersionId;
25
+ };
26
+ /**
27
+ * General purpose path builder for an icon
28
+ *
29
+ * @param {object} opts
30
+ * @param {string} opts.iconId
31
+ * @param {string} opts.size
32
+ * @param {number} [opts.pixelDensity]
33
+ * @param {string} opts.extension
34
+ *
35
+ * @returns {string}
36
+ */
37
+ export function constructIconPath({ size, pixelDensity, iconId, extension }: {
38
+ iconId: string;
39
+ size: string;
40
+ pixelDensity?: number | undefined;
41
+ extension: string;
42
+ }): string;
43
+ /** @import { PresetValue, IconValue } from '@comapeo/schema' */
44
+ export const kGetIconBlob: unique symbol;
45
+ export class IconApi {
46
+ /**
47
+ * @param {Object} opts
48
+ * @param {import('./datatype/index.js').DataType<
49
+ * import('./datastore/index.js').DataStore<'config'>,
50
+ * typeof import('./schema/project.js').iconTable,
51
+ * 'icon',
52
+ * import('@comapeo/schema').Icon,
53
+ * import('@comapeo/schema').IconValue
54
+ * >} opts.iconDataType
55
+ * @param {import('./datastore/index.js').DataStore<'config'>} opts.iconDataStore
56
+ * @param {() => Promise<string>} opts.getMediaBaseUrl
57
+ */
58
+ constructor({ iconDataType, iconDataStore, getMediaBaseUrl }: {
59
+ iconDataType: import("./datatype/index.js").DataType<import("./datastore/index.js").DataStore<"config">, typeof import("./schema/project.js").iconTable, "icon", import("@comapeo/schema").Icon, import("@comapeo/schema").IconValue>;
60
+ iconDataStore: import("./datastore/index.js").DataStore<"config">;
61
+ getMediaBaseUrl: () => Promise<string>;
62
+ });
63
+ /**
64
+ * @param {object} icon
65
+ * @param {import('@comapeo/schema').IconValue['name']} icon.name
66
+ * @param {Array<(BitmapOpts | SvgOpts) & { blob: Buffer }>} icon.variants
67
+ *
68
+ * @returns {Promise<import('@comapeo/schema').Icon>}
69
+ */
70
+ create(icon: {
71
+ name: import("@comapeo/schema").IconValue["name"];
72
+ variants: Array<(BitmapOpts | SvgOpts) & {
73
+ blob: Buffer;
74
+ }>;
75
+ }): Promise<import("@comapeo/schema").Icon>;
76
+ /**
77
+ * @param {string} iconId
78
+ * @param {BitmapOpts | SvgOpts} opts
79
+ *
80
+ * @returns {Promise<string>}
81
+ */
82
+ getIconUrl(iconId: string, opts: BitmapOpts | SvgOpts): Promise<string>;
83
+ /**
84
+ * @param {string} iconId
85
+ * @param {BitmapOpts | SvgOpts} opts
86
+ *
87
+ * @returns {Promise<Buffer>}
88
+ */
89
+ [kGetIconBlob](iconId: string, opts: BitmapOpts | SvgOpts): Promise<Buffer>;
90
+ #private;
91
+ }
92
+ export type IconRef = PresetValue["iconRef"];
93
+ export type IconVariants = IconValue["variants"];
94
+ export type IconVariant = IconVariants[number];
95
+ export type ValidSizes = Exclude<IconVariant["size"], "size_unspecified">;
96
+ export type BitmapOpts = {
97
+ mimeType: Extract<IconVariant["mimeType"], "image/png">;
98
+ pixelDensity: Extract<IconVariant, {
99
+ mimeType: "image/png";
100
+ }>["pixelDensity"];
101
+ size: ValidSizes;
102
+ };
103
+ export type SvgOpts = {
104
+ mimeType: Extract<IconVariant["mimeType"], "image/svg+xml">;
105
+ size: ValidSizes;
106
+ };
107
+ import type { PresetValue } from '@comapeo/schema';
108
+ import type { IconValue } from '@comapeo/schema';
109
+ //# sourceMappingURL=icon-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-api.d.ts","sourceRoot":"","sources":["../src/icon-api.js"],"names":[],"mappings":"AAyIA;;;;;;;;;;;;;;GAcG;AACH,yCAHW,YAAY,QACZ,UAAU,GAAG,OAAO;;;;;;;;;EAuD9B;AAgDD;;;;;;;;;;GAUG;AACH,6EAPG;IAAqB,MAAM,EAAnB,MAAM;IACO,IAAI,EAAjB,MAAM;IACQ,YAAY;IACb,SAAS,EAAtB,MAAM;CAEd,GAAU,MAAM,CAmBlB;AAzRD,gEAAgE;AAEhE,yCAA6C;AA2B7C;IAKE;;;;;;;;;;;OAWG;IACH,8DAVG;QAMQ,YAAY,EANZ,OAAO,qBAAqB,EAAE,QAAQ,CAChD,OAAW,sBAAsB,EAAE,SAAS,CAAC,QAAQ,CAAC,EACtD,cAAkB,qBAAqB,EAAE,SAAS,EAClD,MAAU,EACV,OAAW,iBAAiB,EAAE,IAAI,EAClC,OAAW,iBAAiB,EAAE,SAAS,CACpC;QACgE,aAAa,EAAtE,OAAO,sBAAsB,EAAE,SAAS,CAAC,QAAQ,CAAC;QACtB,eAAe,EAA3C,MAAM,OAAO,CAAC,MAAM,CAAC;KAC/B,EAKA;IAED;;;;;;OAMG;IACH,aALG;QAA0D,IAAI,EAAtD,OAAO,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC;QACY,QAAQ,EAA/D,KAAK,CAAC,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KAExD,GAAU,OAAO,CAAC,OAAO,iBAAiB,EAAE,IAAI,CAAC,CAmBnD;IAeD;;;;;OAKG;IACH,mBALW,MAAM,QACN,UAAU,GAAG,OAAO,GAElB,OAAO,CAAC,MAAM,CAAC,CA4B3B;IA7CD;;;;;OAKG;IACH,uBALW,MAAM,QACN,UAAU,GAAG,OAAO,GAElB,OAAO,CAAC,MAAM,CAAC,CAO3B;;CAmCF;sBAxHa,WAAW,CAAC,SAAS,CAAC;2BACtB,SAAS,CAAC,UAAU,CAAC;0BACrB,YAAY,CAAC,MAAM,CAAC;yBAGrB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC;;cAK/C,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC;kBAC7C,OAAO,CAAC,WAAW,EAAE;QAAC,QAAQ,EAAE,WAAW,CAAA;KAAC,CAAC,CAAC,cAAc,CAAC;UAC7D,UAAU;;;cAGV,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;UACjD,UAAU;;iCApBoB,iBAAiB;+BAAjB,iBAAiB"}
@@ -0,0 +1,51 @@
1
+ /** @import { MapeoDoc, VersionIdObject } from '@comapeo/schema' */
2
+ /** @import { MapeoDocTables } from '../datatype/index.js' */
3
+ /**
4
+ * @typedef {{ [K in MapeoDoc['schemaName']]?: string[] }} IndexedDocIds
5
+ */
6
+ /**
7
+ * @typedef {ReturnType<typeof decode>} MapeoDocInternal
8
+ */
9
+ /**
10
+ * @template {MapeoDocTables} [TTables=MapeoDocTables]
11
+ */
12
+ export class IndexWriter<TTables extends MapeoDocTables = MapeoDocTables> {
13
+ /**
14
+ *
15
+ * @param {object} opts
16
+ * @param {import('better-sqlite3').Database} opts.sqlite
17
+ * @param {TTables[]} opts.tables
18
+ * @param {(doc: MapeoDocInternal, version: VersionIdObject) => MapeoDoc} [opts.mapDoc] optionally transform a document prior to indexing. Can also validate, if an error is thrown then the document will not be indexed
19
+ * @param {typeof import('@mapeo/sqlite-indexer').defaultGetWinner} [opts.getWinner] custom function to determine the "winner" of two forked documents. Defaults to choosing the document with the most recent `updatedAt`
20
+ * @param {Logger} [opts.logger]
21
+ */
22
+ constructor({ tables, sqlite, mapDoc, getWinner, logger }: {
23
+ sqlite: import("better-sqlite3").Database;
24
+ tables: TTables[];
25
+ mapDoc?: ((doc: MapeoDocInternal, version: VersionIdObject) => MapeoDoc) | undefined;
26
+ getWinner?: typeof import("@mapeo/sqlite-indexer").defaultGetWinner | undefined;
27
+ logger?: Logger | undefined;
28
+ });
29
+ /**
30
+ * @returns {Iterable<SchemaName>}
31
+ */
32
+ get schemas(): Iterable<TTables["_"]["name"]>;
33
+ /**
34
+ * @param {import('multi-core-indexer').Entry[]} entries
35
+ * @returns {Promise<IndexedDocIds>} map of indexed docIds by schemaName
36
+ */
37
+ batch(entries: import("multi-core-indexer").Entry[]): Promise<IndexedDocIds>;
38
+ /**
39
+ * @param {SchemaName} schemaName
40
+ */
41
+ deleteSchema(schemaName: TTables["_"]["name"]): void;
42
+ #private;
43
+ }
44
+ export type IndexedDocIds = { [K in MapeoDoc["schemaName"]]?: string[]; };
45
+ export type MapeoDocInternal = ReturnType<typeof decode>;
46
+ import type { MapeoDocTables } from '../datatype/index.js';
47
+ import type { VersionIdObject } from '@comapeo/schema';
48
+ import type { MapeoDoc } from '@comapeo/schema';
49
+ import { Logger } from '../logger.js';
50
+ import { decode } from '@comapeo/schema';
51
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index-writer/index.js"],"names":[],"mappings":"AAMA,mEAAmE;AACnE,6DAA6D;AAE7D;;GAEG;AACH;;GAEG;AAEH;;GAEG;AACH,yBAF+B,OAAO,SAAzB,cAAgB;IAY3B;;;;;;;;OAQG;IACH,2DANG;QAAgD,MAAM,EAA9C,OAAO,gBAAgB,EAAE,QAAQ;QACjB,MAAM,EAAtB,OAAO,EAAE;QAC4D,MAAM,UAArE,gBAAgB,WAAW,eAAe,KAAK,QAAQ;QACE,SAAS;QAC1D,MAAM;KAAC,EAiB/B;IAED;;OAEG;IACH,8CAEC;IAED;;;OAGG;IACH,eAHW,OAAO,oBAAoB,EAAE,KAAK,EAAE,GAClC,OAAO,CAAC,aAAa,CAAC,CA+ClC;IAED;;OAEG;IACH,qDAMC;;CACF;4BAjHY,GAAG,CAA2B,IAAtB,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAE;+BAG5C,UAAU,CAAC,OAAO,MAAM,CAAC;oCANF,sBAAsB;qCADX,iBAAiB;8BAAjB,iBAAiB;uBADzC,cAAc;uBALd,iBAAiB"}
@@ -0,0 +1,14 @@
1
+ export { plugin as MapeoStaticMapsFastifyPlugin } from "./fastify-plugins/maps/static-maps.js";
2
+ export { plugin as MapeoOfflineFallbackMapFastifyPlugin } from "./fastify-plugins/maps/offline-fallback-map.js";
3
+ export { plugin as MapeoMapsFastifyPlugin } from "./fastify-plugins/maps/index.js";
4
+ export { FastifyController } from "./fastify-controller.js";
5
+ export { MapeoManager } from "./mapeo-manager.js";
6
+ export namespace roles {
7
+ export { CREATOR_ROLE_ID };
8
+ export { COORDINATOR_ROLE_ID };
9
+ export { MEMBER_ROLE_ID };
10
+ }
11
+ import { CREATOR_ROLE_ID } from './roles.js';
12
+ import { COORDINATOR_ROLE_ID } from './roles.js';
13
+ import { MEMBER_ROLE_ID } from './roles.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;gCAIO,YAAY;oCAAZ,YAAY;+BAAZ,YAAY"}