@weaveprotocol/core 0.1.2 → 0.2.1

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 (199) hide show
  1. package/README.md +322 -45
  2. package/dist/doors/doors.d.ts +139 -0
  3. package/dist/doors/doors.d.ts.map +1 -0
  4. package/dist/doors/doors.js +210 -0
  5. package/dist/doors/doors.js.map +1 -0
  6. package/dist/doors/index.d.ts +9 -0
  7. package/dist/doors/index.d.ts.map +1 -0
  8. package/dist/doors/index.js +7 -0
  9. package/dist/doors/index.js.map +1 -0
  10. package/dist/identity/contact-key.d.ts +68 -0
  11. package/dist/identity/contact-key.d.ts.map +1 -0
  12. package/dist/identity/contact-key.js +185 -0
  13. package/dist/identity/contact-key.js.map +1 -0
  14. package/dist/index.d.ts +16 -7
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +10 -5
  17. package/dist/index.js.map +1 -1
  18. package/dist/network/index.d.ts +2 -0
  19. package/dist/network/index.d.ts.map +1 -1
  20. package/dist/network/index.js +1 -0
  21. package/dist/network/index.js.map +1 -1
  22. package/dist/network/mailbox.d.ts +49 -0
  23. package/dist/network/mailbox.d.ts.map +1 -0
  24. package/dist/network/mailbox.js +125 -0
  25. package/dist/network/mailbox.js.map +1 -0
  26. package/dist/network/mesh.d.ts +6 -0
  27. package/dist/network/mesh.d.ts.map +1 -1
  28. package/dist/network/mesh.js +11 -1
  29. package/dist/network/mesh.js.map +1 -1
  30. package/dist/network/multi-signaling.d.ts +12 -2
  31. package/dist/network/multi-signaling.d.ts.map +1 -1
  32. package/dist/network/multi-signaling.js +86 -14
  33. package/dist/network/multi-signaling.js.map +1 -1
  34. package/dist/network/peer-auth.d.ts +50 -16
  35. package/dist/network/peer-auth.d.ts.map +1 -1
  36. package/dist/network/peer-auth.js +52 -15
  37. package/dist/network/peer-auth.js.map +1 -1
  38. package/dist/node/carrier.d.ts +87 -0
  39. package/dist/node/carrier.d.ts.map +1 -1
  40. package/dist/node/carrier.js +180 -59
  41. package/dist/node/carrier.js.map +1 -1
  42. package/dist/node/copy.d.ts.map +1 -1
  43. package/dist/node/copy.js +6 -3
  44. package/dist/node/copy.js.map +1 -1
  45. package/dist/node/host.d.ts +117 -0
  46. package/dist/node/host.d.ts.map +1 -0
  47. package/dist/node/host.js +192 -0
  48. package/dist/node/host.js.map +1 -0
  49. package/dist/node/index.d.ts +6 -2
  50. package/dist/node/index.d.ts.map +1 -1
  51. package/dist/node/index.js +1 -0
  52. package/dist/node/index.js.map +1 -1
  53. package/dist/node/node.d.ts.map +1 -1
  54. package/dist/node/node.js +958 -25
  55. package/dist/node/node.js.map +1 -1
  56. package/dist/node/space-runtime.d.ts +42 -25
  57. package/dist/node/space-runtime.d.ts.map +1 -1
  58. package/dist/node/space-runtime.js +734 -35
  59. package/dist/node/space-runtime.js.map +1 -1
  60. package/dist/node/types.d.ts +375 -3
  61. package/dist/node/types.d.ts.map +1 -1
  62. package/dist/privacy/space-encryption.d.ts +16 -0
  63. package/dist/privacy/space-encryption.d.ts.map +1 -1
  64. package/dist/privacy/space-encryption.js +40 -0
  65. package/dist/privacy/space-encryption.js.map +1 -1
  66. package/dist/query/engine.js +1 -1
  67. package/dist/query/engine.js.map +1 -1
  68. package/dist/query/types.d.ts +7 -0
  69. package/dist/query/types.d.ts.map +1 -1
  70. package/dist/query/types.js.map +1 -1
  71. package/dist/react/use-query.d.ts +1 -1
  72. package/dist/react/use-query.d.ts.map +1 -1
  73. package/dist/records/topics.d.ts +21 -0
  74. package/dist/records/topics.d.ts.map +1 -0
  75. package/dist/records/topics.js +86 -0
  76. package/dist/records/topics.js.map +1 -0
  77. package/dist/schema/collection-def.d.ts +7 -0
  78. package/dist/schema/collection-def.d.ts.map +1 -1
  79. package/dist/schema/collection-def.js +4 -0
  80. package/dist/schema/collection-def.js.map +1 -1
  81. package/dist/schema/expression.d.ts +2 -0
  82. package/dist/schema/expression.d.ts.map +1 -1
  83. package/dist/schema/expression.js +1 -0
  84. package/dist/schema/expression.js.map +1 -1
  85. package/dist/schemas/contacts.d.ts +214 -0
  86. package/dist/schemas/contacts.d.ts.map +1 -0
  87. package/dist/schemas/contacts.js +98 -0
  88. package/dist/schemas/contacts.js.map +1 -0
  89. package/dist/schemas/index.d.ts +2 -0
  90. package/dist/schemas/index.d.ts.map +1 -1
  91. package/dist/schemas/index.js +1 -0
  92. package/dist/schemas/index.js.map +1 -1
  93. package/dist/session/auth.d.ts.map +1 -1
  94. package/dist/session/auth.js +15 -3
  95. package/dist/session/auth.js.map +1 -1
  96. package/dist/session/connect.d.ts +25 -1
  97. package/dist/session/connect.d.ts.map +1 -1
  98. package/dist/session/connect.js +9 -2
  99. package/dist/session/connect.js.map +1 -1
  100. package/dist/session/hosting.d.ts +155 -0
  101. package/dist/session/hosting.d.ts.map +1 -0
  102. package/dist/session/hosting.js +160 -0
  103. package/dist/session/hosting.js.map +1 -0
  104. package/dist/space/account-registry.d.ts +6 -0
  105. package/dist/space/account-registry.d.ts.map +1 -1
  106. package/dist/space/account-registry.js +16 -4
  107. package/dist/space/account-registry.js.map +1 -1
  108. package/dist/space/notify.d.ts +88 -0
  109. package/dist/space/notify.d.ts.map +1 -0
  110. package/dist/space/notify.js +127 -0
  111. package/dist/space/notify.js.map +1 -0
  112. package/dist/space/pass.d.ts +6 -0
  113. package/dist/space/pass.d.ts.map +1 -1
  114. package/dist/space/pass.js +5 -2
  115. package/dist/space/pass.js.map +1 -1
  116. package/dist/space/roles.d.ts +71 -0
  117. package/dist/space/roles.d.ts.map +1 -1
  118. package/dist/space/roles.js +114 -0
  119. package/dist/space/roles.js.map +1 -1
  120. package/dist/space/space-access.d.ts +24 -0
  121. package/dist/space/space-access.d.ts.map +1 -1
  122. package/dist/space/space-access.js +24 -0
  123. package/dist/space/space-access.js.map +1 -1
  124. package/dist/space/space-manager.d.ts +35 -1
  125. package/dist/space/space-manager.d.ts.map +1 -1
  126. package/dist/space/space-manager.js +72 -25
  127. package/dist/space/space-manager.js.map +1 -1
  128. package/dist/storage/blob/memory.d.ts +9 -0
  129. package/dist/storage/blob/memory.d.ts.map +1 -0
  130. package/dist/storage/blob/memory.js +20 -0
  131. package/dist/storage/blob/memory.js.map +1 -0
  132. package/dist/storage/blob/s3.d.ts +16 -0
  133. package/dist/storage/blob/s3.d.ts.map +1 -0
  134. package/dist/storage/blob/s3.js +86 -0
  135. package/dist/storage/blob/s3.js.map +1 -0
  136. package/dist/storage/blob-store.d.ts +26 -0
  137. package/dist/storage/blob-store.d.ts.map +1 -0
  138. package/dist/storage/blob-store.js +2 -0
  139. package/dist/storage/blob-store.js.map +1 -0
  140. package/dist/storage/encrypted-adapter.d.ts +3 -3
  141. package/dist/storage/encrypted-adapter.js +3 -3
  142. package/dist/storage/folder-adapter.d.ts +8 -8
  143. package/dist/storage/folder-adapter.d.ts.map +1 -1
  144. package/dist/storage/folder-adapter.js +7 -7
  145. package/dist/storage/folder-reconcile.d.ts +12 -14
  146. package/dist/storage/folder-reconcile.d.ts.map +1 -1
  147. package/dist/storage/folder-reconcile.js +20 -14
  148. package/dist/storage/folder-reconcile.js.map +1 -1
  149. package/dist/storage/index.d.ts +0 -1
  150. package/dist/storage/index.d.ts.map +1 -1
  151. package/dist/storage/index.js +0 -1
  152. package/dist/storage/index.js.map +1 -1
  153. package/dist/storage/indexeddb-adapter.d.ts.map +1 -1
  154. package/dist/storage/indexeddb-adapter.js +8 -9
  155. package/dist/storage/indexeddb-adapter.js.map +1 -1
  156. package/dist/storage/mirror.d.ts +68 -0
  157. package/dist/storage/mirror.d.ts.map +1 -0
  158. package/dist/storage/mirror.js +174 -0
  159. package/dist/storage/mirror.js.map +1 -0
  160. package/dist/storage/segment.d.ts +20 -0
  161. package/dist/storage/segment.d.ts.map +1 -0
  162. package/dist/storage/segment.js +27 -0
  163. package/dist/storage/segment.js.map +1 -0
  164. package/dist/storage/storage-provider.d.ts +36 -40
  165. package/dist/storage/storage-provider.d.ts.map +1 -1
  166. package/dist/storage/storage-provider.js +208 -117
  167. package/dist/storage/storage-provider.js.map +1 -1
  168. package/dist/sync/index.d.ts +1 -1
  169. package/dist/sync/index.d.ts.map +1 -1
  170. package/dist/sync/index.js +1 -1
  171. package/dist/sync/index.js.map +1 -1
  172. package/dist/sync/negentropy.d.ts +68 -0
  173. package/dist/sync/negentropy.d.ts.map +1 -0
  174. package/dist/sync/negentropy.js +379 -0
  175. package/dist/sync/negentropy.js.map +1 -0
  176. package/dist/sync/sync-engine.d.ts +45 -13
  177. package/dist/sync/sync-engine.d.ts.map +1 -1
  178. package/dist/sync/sync-engine.js +290 -207
  179. package/dist/sync/sync-engine.js.map +1 -1
  180. package/dist/sync/sync-messages.d.ts +42 -32
  181. package/dist/sync/sync-messages.d.ts.map +1 -1
  182. package/dist/sync/sync-messages.js +1 -1
  183. package/dist/sync/sync-messages.js.map +1 -1
  184. package/dist/types.d.ts +9 -0
  185. package/dist/types.d.ts.map +1 -1
  186. package/dist/types.js.map +1 -1
  187. package/dist/utils/hash.d.ts +9 -0
  188. package/dist/utils/hash.d.ts.map +1 -1
  189. package/dist/utils/hash.js +33 -0
  190. package/dist/utils/hash.js.map +1 -1
  191. package/package.json +8 -3
  192. package/dist/storage/mst.d.ts +0 -121
  193. package/dist/storage/mst.d.ts.map +0 -1
  194. package/dist/storage/mst.js +0 -402
  195. package/dist/storage/mst.js.map +0 -1
  196. package/dist/sync/anti-entropy.d.ts +0 -49
  197. package/dist/sync/anti-entropy.d.ts.map +0 -1
  198. package/dist/sync/anti-entropy.js +0 -62
  199. package/dist/sync/anti-entropy.js.map +0 -1
@@ -22,7 +22,12 @@
22
22
  * registry are never opened.
23
23
  */
24
24
  import type { CryptoProvider } from '../types.js';
25
+ import { type SpaceRecord } from '../space/space-manager.js';
26
+ import { type CarriedSubscription } from '../space/notify.js';
27
+ import { type LocalHub } from '../network/local-transport.js';
28
+ import { type SpaceRuntime } from './space-runtime.js';
25
29
  import type { StoreFactory } from './stores.js';
30
+ import type { BlobStore } from '../storage/blob-store.js';
26
31
  import type { ConnectionState, NodeNetworkConfig } from './types.js';
27
32
  export interface CarrierConfig {
28
33
  /** Its own key — who it is to peers. Never the account's. */
@@ -63,7 +68,34 @@ export type CarrierEvent =
63
68
  /** The account stopped using this carrier: forget everything */
64
69
  | {
65
70
  readonly type: 'closed';
71
+ }
72
+ /**
73
+ * A record arrived that one of the account's subscriptions asks about. Only
74
+ * what the carrier can see: which subscription, which space, which record.
75
+ */
76
+ | {
77
+ readonly type: 'notify';
78
+ readonly subscription: CarriedSubscriptionView;
79
+ readonly space: {
80
+ readonly id: string;
81
+ readonly name: string;
82
+ };
83
+ readonly record: {
84
+ readonly key: string;
85
+ readonly collection: string;
86
+ readonly createdAt: string;
87
+ };
66
88
  };
89
+ /** A subscription as the carrier holds it: the person's label, what it looks at, where a click goes */
90
+ export interface CarriedSubscriptionView {
91
+ readonly id: string;
92
+ readonly label: string;
93
+ readonly collection: string;
94
+ /** The spaces it looks at, by name; empty for every space */
95
+ readonly spaces: ReadonlyArray<string>;
96
+ readonly open?: string;
97
+ readonly paused: boolean;
98
+ }
67
99
  export interface CarrierNode {
68
100
  readonly did: string;
69
101
  /** The carry space's id */
@@ -74,12 +106,67 @@ export interface CarrierNode {
74
106
  * data path in it. Null stops writing there; the carrier's own copy goes on.
75
107
  */
76
108
  usePod(stores: StoreFactory | null): Promise<void>;
109
+ /** The account's subscriptions, as this carrier holds them */
110
+ subscriptions(): Promise<ReadonlyArray<CarriedSubscriptionView>>;
77
111
  subscribe(listener: (event: CarrierEvent) => void): () => void;
78
112
  close(): Promise<void>;
79
113
  }
114
+ interface Carried {
115
+ readonly record: SpaceRecord;
116
+ readonly hub: LocalHub;
117
+ readonly runtime: SpaceRuntime;
118
+ pod: Promise<SpaceRuntime> | null;
119
+ }
120
+ /** An account's carry space, as a carrying node holds it */
121
+ interface Carry {
122
+ readonly account: string;
123
+ /** The spaces its passes named last time they were read */
124
+ wants: ReadonlySet<string>;
125
+ /** Its subscriptions, by key, as last read */
126
+ subscriptions: ReadonlyMap<string, CarriedSubscription>;
127
+ }
128
+ export interface CarryCoreConfig {
129
+ readonly key: CryptoKeyPair;
130
+ readonly stores: StoreFactory;
131
+ readonly network?: NodeNetworkConfig;
132
+ readonly provider?: CryptoProvider;
133
+ readonly watchIntervalMs?: number;
134
+ readonly emit: (event: CarrierEvent) => void;
135
+ /** An account wrote `carry:closed` into its carry space: it stopped using this node */
136
+ readonly onClosed: (carrySpace: string) => void;
137
+ /** A file store every carried space is also kept in — a host's bucket */
138
+ readonly mirror?: BlobStore;
139
+ /** A space nobody asks for any more was let go — not one opened again after a key change */
140
+ readonly onRelease?: (spaceId: string) => Promise<void>;
141
+ }
142
+ /**
143
+ * What a carrier and a host share: carry spaces — one per account it carries
144
+ * for — and every space their passes name, each held once however many
145
+ * accounts ask for it.
146
+ */
147
+ export declare function createCarryCore(config: CarryCoreConfig): Promise<{
148
+ did: string;
149
+ podDid: string;
150
+ carried: ReadonlyMap<string, Carried>;
151
+ carries: ReadonlyMap<string, Carry>;
152
+ /**
153
+ * Starts carrying for an account: joins its carry space and every space
154
+ * its passes name.
155
+ * @returns The carry space's id
156
+ * @throws When the invite is not a readable invite to a private space
157
+ */
158
+ addCarry(account: string, invite: string): Promise<string>;
159
+ /** Stops carrying for an account: its carry space, and every space nobody else still asks for */
160
+ removeCarry(carrySpace: string): Promise<void>;
161
+ setPod(stores: StoreFactory | null): Promise<void>;
162
+ subscriptions(): Promise<ReadonlyArray<CarriedSubscriptionView>>;
163
+ spaces(): Promise<ReadonlyArray<CarriedSpace>>;
164
+ close(): Promise<void>;
165
+ }>;
80
166
  /**
81
167
  * Starts a carrier.
82
168
  * @throws When the carry invite is not a readable invite to a private space
83
169
  */
84
170
  export declare function createCarrierNode(config: CarrierConfig): Promise<CarrierNode>;
171
+ export {};
85
172
  //# sourceMappingURL=carrier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"carrier.d.ts","sourceRoot":"","sources":["../../src/node/carrier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AASlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAa,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEhF,MAAM,WAAW,aAAa;IAC5B,6DAA6D;IAC7D,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC1C,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,YAAY;AACtB,wCAAwC;AACtC;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE;AAC7B,0DAA0D;GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACrD,gEAAgE;GAC9D;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEhC,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;IAC/C;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AASD;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAkLnF"}
1
+ {"version":3,"file":"carrier.d.ts","sourceRoot":"","sources":["../../src/node/carrier.ts"],"names":[],"mappings":"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"}
@@ -4,16 +4,19 @@ import { createSigner } from '../schema/signer.js';
4
4
  import { createSchemaEngine } from '../schema/schema-engine.js';
5
5
  import { createSpaceManager, parseSpaceInvite } from '../space/space-manager.js';
6
6
  import { carriedRecord, CARRY_CLOSED_KEY, openPass, PASS_COLLECTION } from '../space/pass.js';
7
+ import { matchesSubscription, readCarried, SUBSCRIPTION_COLLECTION } from '../space/notify.js';
7
8
  import { createLocalHub } from '../network/local-transport.js';
8
9
  import { meshFor, openSpaceRuntime } from './space-runtime.js';
9
10
  /**
10
- * Starts a carrier.
11
- * @throws When the carry invite is not a readable invite to a private space
11
+ * What a carrier and a host share: carry spaces — one per account it carries
12
+ * for — and every space their passes name, each held once however many
13
+ * accounts ask for it.
12
14
  */
13
- export async function createCarrierNode(config) {
15
+ export async function createCarryCore(config) {
14
16
  const provider = config.provider ?? createP256Provider();
15
17
  const signer = createSigner(provider);
16
18
  const schemas = createSchemaEngine();
19
+ const { emit } = config;
17
20
  const did = publicKeyToDid(await provider.exportPublicKey(config.key.publicKey), P256_MULTICODEC);
18
21
  // It never writes, so it never needs a note; the session only names it on the wire.
19
22
  const session = { did, key: config.key.privateKey, proof: () => '' };
@@ -21,31 +24,19 @@ export async function createCarrierNode(config) {
21
24
  const podKeys = await provider.generateKeyPair();
22
25
  const podDid = publicKeyToDid(await provider.exportPublicKey(podKeys.publicKey), P256_MULTICODEC);
23
26
  const podSession = { did: podDid, key: podKeys.privateKey, proof: () => '' };
24
- const listeners = new Set();
25
- const emit = (event) => {
26
- for (const listener of listeners) {
27
- try {
28
- listener(event);
29
- }
30
- catch (error) {
31
- console.error('Error in carrier listener:', error);
32
- }
33
- }
34
- };
35
- // The carry space is joined like any space: it is the one key the carrier holds.
27
+ // Carry spaces are joined like any space: their keys are the only ones a carrier holds.
36
28
  const registryStore = await config.stores('registry');
37
29
  const registry = createSpaceManager(registryStore, provider);
38
- const carrySpace = parseSpaceInvite(config.carry).space.id;
39
- const carryRecord = (await registry.get(carrySpace)) ?? (await registry.join(config.carry));
40
- if (carryRecord.space.visibility !== 'private' || !carryRecord.key)
41
- throw new Error('That is not an invite to a carry space.');
42
30
  let closed = false;
43
31
  let podStores = null;
32
+ const carries = new Map();
44
33
  const carried = new Map();
45
34
  const mesh = meshFor(config.network, did);
46
- const open = (record, stores, as, network, onEvent) => openSpaceRuntime({
47
- // The carrier's own spaces meet through relays; its copy in the pod only over the local link.
35
+ const open = (record, stores, as, network, onEvent, onArrived) => openSpaceRuntime({
36
+ ...(onArrived ? { onArrived } : {}),
37
+ // Carried spaces meet through relays; the copy in the pod only over the local link.
48
38
  ...(as === session && mesh ? { mesh } : {}),
39
+ ...(as === session && config.mirror ? { mirrors: [config.mirror] } : {}),
49
40
  record,
50
41
  stores,
51
42
  provider,
@@ -80,9 +71,9 @@ export async function createCarrierNode(config) {
80
71
  const runtime = await open(record, config.stores, session, network, (event) => {
81
72
  if (event.type === 'records' || event.type === 'status')
82
73
  emit({ type: 'status', space: spaceId });
83
- if (event.type === 'records' && spaceId === carrySpace)
74
+ if (event.type === 'records' && carries.has(spaceId))
84
75
  void refresh();
85
- });
76
+ }, (version) => arrived(record, version));
86
77
  if (closed)
87
78
  return void (await runtime.close());
88
79
  const entry = { record, hub, runtime, pod: null };
@@ -90,6 +81,39 @@ export async function createCarrierNode(config) {
90
81
  if (podStores)
91
82
  entry.pod = openPod(record, hub, podStores);
92
83
  }
84
+ /** Records already said something about — one can arrive twice, from a peer and from the pod */
85
+ const noticed = new Set();
86
+ /** A record arrived in a space: does any subscription of an account carrying it ask about it? */
87
+ function arrived(record, version) {
88
+ const spaceId = record.space.id;
89
+ if (noticed.has(version.id) || carries.has(spaceId))
90
+ return;
91
+ for (const entry of carries.values()) {
92
+ if (!entry.wants.has(spaceId))
93
+ continue;
94
+ for (const [id, sub] of entry.subscriptions) {
95
+ if (!matchesSubscription(sub, spaceId, version, entry.account))
96
+ continue;
97
+ noticed.add(version.id);
98
+ if (noticed.size > 1000)
99
+ noticed.delete(noticed.values().next().value);
100
+ emit({
101
+ type: 'notify',
102
+ subscription: view(id, sub),
103
+ space: { id: spaceId, name: record.space.name },
104
+ record: { key: version.key, collection: version.collection, createdAt: version.createdAt },
105
+ });
106
+ }
107
+ }
108
+ }
109
+ const view = (id, sub) => ({
110
+ id,
111
+ label: sub.label,
112
+ collection: sub.collection,
113
+ spaces: sub.spaces === 'all' ? [] : sub.spaces.map((space) => carried.get(space)?.record.space.name ?? 'a space'),
114
+ ...(sub.open ? { open: sub.open } : {}),
115
+ paused: sub.paused,
116
+ });
93
117
  async function drop(spaceId) {
94
118
  const entry = carried.get(spaceId);
95
119
  if (!entry)
@@ -103,48 +127,119 @@ export async function createCarrierNode(config) {
103
127
  function refresh() {
104
128
  refreshing = refreshing.then(refreshOnce).catch((error) => {
105
129
  if (!closed)
106
- console.error('Could not read the carry space:', error);
130
+ console.error('Could not read a carry space:', error);
107
131
  });
108
132
  return refreshing;
109
133
  }
110
134
  async function refreshOnce() {
111
- const carryRuntime = carried.get(carrySpace)?.runtime;
112
- if (!carryRuntime || closed)
113
- return;
114
- const records = (await carryRuntime.list({ collection: PASS_COLLECTION })).filter((record) => record.verified && record.root === config.account);
115
- if (records.some((record) => record.key === CARRY_CLOSED_KEY)) {
116
- emit({ type: 'closed' });
135
+ if (closed)
117
136
  return;
118
- }
119
137
  const wanted = new Map();
120
- for (const record of records) {
121
- if (!record.key.startsWith('pass:'))
138
+ for (const [carrySpace, entry] of carries) {
139
+ const carryRuntime = carried.get(carrySpace)?.runtime;
140
+ if (!carryRuntime)
122
141
  continue;
123
- const pass = await openPass(record.body, provider);
124
- if (pass && pass.space.id !== carrySpace)
125
- wanted.set(pass.space.id, carriedRecord(pass));
142
+ const records = (await carryRuntime.list({ collection: PASS_COLLECTION })).filter((record) => record.verified && record.root === entry.account);
143
+ if (records.some((record) => record.key === CARRY_CLOSED_KEY)) {
144
+ entry.wants = new Set();
145
+ config.onClosed(carrySpace);
146
+ continue;
147
+ }
148
+ const subscriptions = new Map();
149
+ for (const record of await carryRuntime.list({ collection: SUBSCRIPTION_COLLECTION })) {
150
+ if (!record.verified || record.root !== entry.account)
151
+ continue;
152
+ const sub = readCarried(record.body);
153
+ if (sub)
154
+ subscriptions.set(record.key, sub);
155
+ }
156
+ entry.subscriptions = subscriptions;
157
+ const wants = new Set();
158
+ for (const record of records) {
159
+ if (!record.key.startsWith('pass:'))
160
+ continue;
161
+ const pass = await openPass(record.body, provider);
162
+ if (!pass || carries.has(pass.space.id))
163
+ continue;
164
+ wants.add(pass.space.id);
165
+ // Two accounts naming one space: a pass for a later key beats one for the space's first,
166
+ // since an account whose pass is behind just hasn't caught up yet.
167
+ const known = wanted.get(pass.space.id);
168
+ const later = (read) => !!read && read.did !== pass.space.readKey;
169
+ if (!known || (!later(known.read) && later(pass.read)))
170
+ wanted.set(pass.space.id, carriedRecord(pass));
171
+ }
172
+ entry.wants = wants;
126
173
  }
127
174
  let changed = false;
128
175
  for (const [spaceId, record] of wanted) {
129
- if (carried.has(spaceId))
176
+ const held = carried.get(spaceId);
177
+ if (held && held.record.read?.did === record.read?.did)
130
178
  continue;
179
+ // The space's key changed: carried again, proving the new read key.
180
+ if (held)
181
+ await drop(spaceId);
131
182
  await carry(record);
132
183
  changed = true;
133
184
  }
134
185
  for (const spaceId of [...carried.keys()]) {
135
- if (spaceId === carrySpace || wanted.has(spaceId))
186
+ if (carries.has(spaceId) || wanted.has(spaceId))
136
187
  continue;
137
188
  await drop(spaceId);
189
+ await config.onRelease?.(spaceId).catch(() => { });
138
190
  changed = true;
139
191
  }
140
192
  if (changed)
141
193
  emit({ type: 'spaces' });
142
194
  }
143
- await carry(carryRecord);
144
- await refresh();
145
- return Object.freeze({
195
+ return {
146
196
  did,
147
- carrySpace,
197
+ podDid,
198
+ carried: carried,
199
+ carries: carries,
200
+ /**
201
+ * Starts carrying for an account: joins its carry space and every space
202
+ * its passes name.
203
+ * @returns The carry space's id
204
+ * @throws When the invite is not a readable invite to a private space
205
+ */
206
+ async addCarry(account, invite) {
207
+ const carrySpace = parseSpaceInvite(invite).space.id;
208
+ const record = (await registry.get(carrySpace)) ?? (await registry.join(invite));
209
+ if (record.space.visibility !== 'private' || !record.key) {
210
+ await registry.remove(carrySpace);
211
+ throw new Error('That is not an invite to a carry space.');
212
+ }
213
+ if (!carries.has(carrySpace))
214
+ carries.set(carrySpace, { account, wants: new Set(), subscriptions: new Map() });
215
+ await carry(record);
216
+ await refresh();
217
+ return carrySpace;
218
+ },
219
+ /** Stops carrying for an account: its carry space, and every space nobody else still asks for */
220
+ async removeCarry(carrySpace) {
221
+ if (!carries.delete(carrySpace))
222
+ return;
223
+ await drop(carrySpace);
224
+ await registry.remove(carrySpace);
225
+ await config.onRelease?.(carrySpace).catch(() => { });
226
+ await refresh();
227
+ },
228
+ async setPod(stores) {
229
+ podStores = stores;
230
+ for (const entry of carried.values()) {
231
+ const was = entry.pod;
232
+ entry.pod = null;
233
+ await (await was?.catch(() => null))?.close();
234
+ if (stores)
235
+ entry.pod = openPod(entry.record, entry.hub, stores);
236
+ }
237
+ emit({ type: 'spaces' });
238
+ },
239
+ async subscriptions() {
240
+ await refreshing;
241
+ return [...carries.values()].flatMap((entry) => [...entry.subscriptions].map(([id, sub]) => view(id, sub)));
242
+ },
148
243
  async spaces() {
149
244
  const found = [];
150
245
  for (const [spaceId, entry] of carried) {
@@ -153,7 +248,7 @@ export async function createCarrierNode(config) {
153
248
  id: spaceId,
154
249
  name: entry.record.space.name,
155
250
  visibility: entry.record.space.visibility,
156
- carry: spaceId === carrySpace,
251
+ carry: carries.has(spaceId),
157
252
  connection: status.connection,
158
253
  peers: status.peers.filter((peer) => peer !== podDid).length,
159
254
  inPod: entry.pod !== null,
@@ -161,17 +256,48 @@ export async function createCarrierNode(config) {
161
256
  }
162
257
  return found;
163
258
  },
164
- async usePod(stores) {
165
- podStores = stores;
166
- for (const entry of carried.values()) {
167
- const was = entry.pod;
168
- entry.pod = null;
169
- await (await was?.catch(() => null))?.close();
170
- if (stores)
171
- entry.pod = openPod(entry.record, entry.hub, stores);
172
- }
173
- emit({ type: 'spaces' });
259
+ async close() {
260
+ if (closed)
261
+ return;
262
+ closed = true;
263
+ await refreshing;
264
+ await Promise.all([...carried.keys()].map((spaceId) => drop(spaceId)));
265
+ await registryStore.close();
174
266
  },
267
+ };
268
+ }
269
+ /**
270
+ * Starts a carrier.
271
+ * @throws When the carry invite is not a readable invite to a private space
272
+ */
273
+ export async function createCarrierNode(config) {
274
+ const listeners = new Set();
275
+ const emit = (event) => {
276
+ for (const listener of listeners) {
277
+ try {
278
+ listener(event);
279
+ }
280
+ catch (error) {
281
+ console.error('Error in carrier listener:', error);
282
+ }
283
+ }
284
+ };
285
+ const core = await createCarryCore({
286
+ key: config.key,
287
+ stores: config.stores,
288
+ ...(config.network ? { network: config.network } : {}),
289
+ ...(config.provider ? { provider: config.provider } : {}),
290
+ ...(config.watchIntervalMs !== undefined ? { watchIntervalMs: config.watchIntervalMs } : {}),
291
+ emit,
292
+ onClosed: () => emit({ type: 'closed' }),
293
+ });
294
+ const carrySpace = await core.addCarry(config.account, config.carry);
295
+ return Object.freeze({
296
+ did: core.did,
297
+ carrySpace,
298
+ spaces: core.spaces,
299
+ usePod: core.setPod,
300
+ subscriptions: core.subscriptions,
175
301
  subscribe(listener) {
176
302
  listeners.add(listener);
177
303
  return () => {
@@ -179,12 +305,7 @@ export async function createCarrierNode(config) {
179
305
  };
180
306
  },
181
307
  async close() {
182
- if (closed)
183
- return;
184
- closed = true;
185
- await refreshing;
186
- await Promise.all([...carried.keys()].map((spaceId) => drop(spaceId)));
187
- await registryStore.close();
308
+ await core.close();
188
309
  listeners.clear();
189
310
  },
190
311
  });
@@ -1 +1 @@
1
- {"version":3,"file":"carrier.js","sourceRoot":"","sources":["../../src/node/carrier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"carrier.js","sourceRoot":"","sources":["../../src/node/carrier.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../src/node/copy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,sDAAsD;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7D;AAED,MAAM,WAAW,UAAU;IACzB,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kDAAkD;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CA0CpF"}
1
+ {"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../src/node/copy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,sDAAsD;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7D;AAED,MAAM,WAAW,UAAU;IACzB,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kDAAkD;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CA4CpF"}
package/dist/node/copy.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { createSpaceManager } from '../space/space-manager.js';
2
- import { deriveAccountRegistry } from '../space/account-registry.js';
2
+ import { deriveAccountRegistry, deriveContactsSpace } from '../space/account-registry.js';
3
3
  import { createStorageProvider } from '../storage/storage-provider.js';
4
4
  /**
5
5
  * Copies every space an account holds, with its key and its records, into
@@ -10,6 +10,8 @@ export async function copyAccountData(params) {
10
10
  const toRegistryStore = await params.to('registry', { seal: true });
11
11
  const fromRegistry = createSpaceManager(fromRegistryStore);
12
12
  const toRegistry = createSpaceManager(toRegistryStore);
13
+ // The contacts space is copied like any other, but it is not one the person counts as theirs.
14
+ const contacts = params.accountKey ? (await deriveContactsSpace(params.accountKey, params.did)).space.id : null;
13
15
  let spacesAdded = 0;
14
16
  const spaceIds = [];
15
17
  for (const { space } of await fromRegistry.list()) {
@@ -18,7 +20,8 @@ export async function copyAccountData(params) {
18
20
  continue;
19
21
  // An invite carries exactly what a registry needs: the space, and its key.
20
22
  await toRegistry.join(await fromRegistry.createInvite(space.id, params.did));
21
- spacesAdded++;
23
+ if (space.id !== contacts)
24
+ spacesAdded++;
22
25
  }
23
26
  if (params.accountKey)
24
27
  spaceIds.push((await deriveAccountRegistry(params.accountKey, params.did)).space.id);
@@ -30,7 +33,7 @@ export async function copyAccountData(params) {
30
33
  // Every version the source keeps — current, first, retained — goes
31
34
  // through the ordering rule on arrival, so the target ends up with what
32
35
  // it would have reached by syncing with the source.
33
- const ids = new Set((await source.entries()).map((entry) => entry.value));
36
+ const ids = new Set(await source.versionIds());
34
37
  for (const id of ids) {
35
38
  const held = await target.getExpression(id);
36
39
  const expression = await source.getExpression(id);
@@ -1 +1 @@
1
- {"version":3,"file":"copy.js","sourceRoot":"","sources":["../../src/node/copy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copy.js","sourceRoot":"","sources":["../../src/node/copy.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAsBvE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAyB;IAC7D,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAEvD,8FAA8F;IAC9F,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,mBAAmB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAChH,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QAClD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,MAAM,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,SAAS;QAC7C,2EAA2E;QAC3E,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,IAAI,KAAK,CAAC,EAAE,KAAK,QAAQ;YAAE,WAAW,EAAE,CAAC;IAC3C,CAAC;IACD,IAAI,MAAM,CAAC,UAAU;QAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAE5G,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,MAAM,CAAC,EAAE,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC;YACH,mEAAmE;YACnE,wEAAwE;YACxE,oDAAoD;YACpD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC/C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBAC5C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBAClD,IAAI,CAAC,UAAU;oBAAE,SAAS;gBAC1B,MAAM,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBACvC,yFAAyF;gBACzF,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;oBAAE,YAAY,EAAE,CAAC;YAChE,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACxE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;AAChE,CAAC"}