@comapeo/core 5.3.0 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export namespace roles {
7
7
  export { COORDINATOR_ROLE_ID };
8
8
  export { MEMBER_ROLE_ID };
9
9
  }
10
+ export type MapShare = import("./mapeo-project.js").MapShare;
10
11
  export type MapeoProject = import("./mapeo-project.js").MapeoProject;
11
12
  export type EditableProjectSettings = import("./mapeo-project.js").EditableProjectSettings;
12
13
  export namespace IconApi {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":";;;AAgDO,0CARI,YAAY,uBACZ,CACV,OAAW,GACX,OAAW,QAAQ,EAAE,MAAM,GAC3B,OAAW,SAAS,EAAE,MAAM,CACzB,GACS,OAAO,YAAY,EAAE,iBAAiB,CAGF;;;;;;2BAtCnC,OAAO,oBAAoB,EAAE,YAAY;sCACzC,OAAO,oBAAoB,EAAE,uBAAuB;;sBAGrD,OAAO,eAAe,EAAE,UAAU;mBAClC,OAAO,eAAe,EAAE,OAAO;;;kBAI/B,OAAO,YAAY,EAAE,MAAM;oBAC3B,OAAO,eAAe,EAAE,QAAQ;qBAIA,SAAS,SAAzC,OAAQ,YAAY,EAAE,QAAS,IAC/B,OAAO,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC;;;kBAI3C,OAAO,wBAAwB,EAAE,MAAM;;;sBAIvC,OAAO,iBAAiB,EAAE,UAAU;kBACpC,OAAO,YAAY,EAAE,MAAM;8BAC3B,OAAO,YAAY,EAAE,kBAAkB;oCACvC,OAAO,YAAY,EAAE,wBAAwB;;gCAjCnD,YAAY;oCAAZ,YAAY;+BAAZ,YAAY"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":";;;AAiDO,0CARI,YAAY,uBACZ,CACV,OAAW,GACX,OAAW,QAAQ,EAAE,MAAM,GAC3B,OAAW,SAAS,EAAE,MAAM,CACzB,GACS,OAAO,YAAY,EAAE,iBAAiB,CAGF;;;;;;uBAvCnC,OAAO,oBAAoB,EAAE,QAAQ;2BACrC,OAAO,oBAAoB,EAAE,YAAY;sCACzC,OAAO,oBAAoB,EAAE,uBAAuB;;sBAGrD,OAAO,eAAe,EAAE,UAAU;mBAClC,OAAO,eAAe,EAAE,OAAO;;;kBAI/B,OAAO,YAAY,EAAE,MAAM;oBAC3B,OAAO,eAAe,EAAE,QAAQ;qBAIA,SAAS,SAAzC,OAAQ,YAAY,EAAE,QAAS,IAC/B,OAAO,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC;;;kBAI3C,OAAO,wBAAwB,EAAE,MAAM;;;sBAIvC,OAAO,iBAAiB,EAAE,UAAU;kBACpC,OAAO,YAAY,EAAE,MAAM;8BAC3B,OAAO,YAAY,EAAE,kBAAkB;oCACvC,OAAO,YAAY,EAAE,wBAAwB;;gCAlCnD,YAAY;oCAAZ,YAAY;+BAAZ,YAAY"}
@@ -7,6 +7,8 @@ export const DEFAULT_IS_ARCHIVE_DEVICE: true;
7
7
  /**
8
8
  * @typedef {object} MapeoManagerEvents
9
9
  * @property {(peers: PublicPeerInfo[]) => void} local-peers Emitted when the list of connected peers changes (new ones added, or connection status changes)
10
+ * @property {(mapShare: import('./mapeo-project.js').MapShare) => void} map-share Emitted when a project has recieved a map share request
11
+ * @property {(e: Error, mapShare: MapShareExtension) => void} map-share-error - Emitted when an incoming map share fails to be recieved due to formatting issues
10
12
  */
11
13
  /**
12
14
  * @extends {TypedEmitter<MapeoManagerEvents>}
@@ -189,6 +191,14 @@ export type MapeoManagerEvents = {
189
191
  * Emitted when the list of connected peers changes (new ones added, or connection status changes)
190
192
  */
191
193
  "local-peers": (peers: PublicPeerInfo[]) => void;
194
+ /**
195
+ * Emitted when a project has recieved a map share request
196
+ */
197
+ "map-share": (mapShare: import("./mapeo-project.js").MapShare) => void;
198
+ /**
199
+ * - Emitted when an incoming map share fails to be recieved due to formatting issues
200
+ */
201
+ "map-share-error": (e: Error, mapShare: MapShareExtension) => void;
192
202
  };
193
203
  import { TypedEmitter } from 'tiny-typed-emitter';
194
204
  import { MapeoProject } from './mapeo-project.js';
@@ -201,4 +211,5 @@ import type { SetNonNullable } from 'type-fest';
201
211
  import type { ProjectJoinDetails } from './generated/rpc.js';
202
212
  import type { ProjectSettings } from '@comapeo/schema';
203
213
  import type { ProjectInfo } from './schema/client.js';
214
+ import type { MapShareExtension } from './generated/extensions.js';
204
215
  //# sourceMappingURL=mapeo-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapeo-manager.d.ts","sourceRoot":"","sources":["../src/mapeo-manager.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapeo-manager.d.ts","sourceRoot":"","sources":["../src/mapeo-manager.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@comapeo/core",
3
- "version": "5.3.0",
3
+ "version": "5.4.0",
4
4
  "description": "Offline p2p mapping library",
5
5
  "main": "src/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/index.js CHANGED
@@ -9,6 +9,7 @@ export { FastifyController } from './fastify-controller.js'
9
9
  export { MapeoManager } from './mapeo-manager.js'
10
10
 
11
11
  // Type exports
12
+ /** @typedef {import('./mapeo-project.js').MapShare} MapShare */
12
13
  /** @typedef {import('./mapeo-project.js').MapeoProject} MapeoProject */
13
14
  /** @typedef {import('./mapeo-project.js').EditableProjectSettings} EditableProjectSettings */
14
15
  /**
@@ -54,6 +54,7 @@ import { WebSocket } from 'ws'
54
54
  import { excludeKeys } from 'filter-obj'
55
55
  import { migrate } from './lib/drizzle-helpers.js'
56
56
 
57
+ /** @import { MapShareExtension } from './generated/extensions.js' */
57
58
  /** @import NoiseSecretStream from '@hyperswarm/secret-stream' */
58
59
  /** @import { SetNonNullable } from 'type-fest' */
59
60
  /** @import { ProjectJoinDetails, } from './generated/rpc.js' */
@@ -99,6 +100,8 @@ export const DEFAULT_IS_ARCHIVE_DEVICE = true
99
100
  /**
100
101
  * @typedef {object} MapeoManagerEvents
101
102
  * @property {(peers: PublicPeerInfo[]) => void} local-peers Emitted when the list of connected peers changes (new ones added, or connection status changes)
103
+ * @property {(mapShare: import('./mapeo-project.js').MapShare) => void} map-share Emitted when a project has recieved a map share request
104
+ * @property {(e: Error, mapShare: MapShareExtension) => void} map-share-error - Emitted when an incoming map share fails to be recieved due to formatting issues
102
105
  */
103
106
 
104
107
  /**
@@ -465,10 +468,6 @@ export class MapeoManager extends TypedEmitter {
465
468
  projectSecretKey: projectKeypair.secretKey,
466
469
  })
467
470
 
468
- project.once('close', () => {
469
- this.#activeProjects.delete(projectPublicId)
470
- })
471
-
472
471
  // 5. Write project settings to project instance
473
472
  await project.$setProjectSettings({
474
473
  name,
@@ -545,10 +544,6 @@ export class MapeoManager extends TypedEmitter {
545
544
  await project[kClearData]()
546
545
  }
547
546
 
548
- project.once('close', () => {
549
- this.#activeProjects.delete(projectPublicId)
550
- })
551
-
552
547
  // 3. Keep track of project instance as we know it's a properly existing project
553
548
  this.#activeProjects.set(projectPublicId, project)
554
549
 
@@ -580,6 +575,35 @@ export class MapeoManager extends TypedEmitter {
580
575
  .get()?.projectInfo
581
576
  },
582
577
  })
578
+
579
+ const projectPublicId = projectKeyToPublicId(projectKeys.projectKey)
580
+
581
+ /**
582
+ * @param {import('./mapeo-project.js').MapShare} mapShare
583
+ */
584
+ const onMapShare = (mapShare) => {
585
+ this.emit('map-share', mapShare)
586
+ }
587
+
588
+ /**
589
+ *
590
+ * @param {Error} err
591
+ * @param {MapShareExtension} mapShareExtension
592
+ */
593
+ const onMapShareError = (err, mapShareExtension) => {
594
+ this.emit('map-share-error', err, mapShareExtension)
595
+ }
596
+
597
+ project.once('close', () => {
598
+ this.#activeProjects.delete(projectPublicId)
599
+ project.removeListener('map-share', onMapShare)
600
+ project.removeListener('map-share-error', onMapShareError)
601
+ })
602
+
603
+ project.on('map-share', onMapShare)
604
+
605
+ project.on('map-share-error', onMapShareError)
606
+
583
607
  return project
584
608
  }
585
609