@cero-base/cero 1.1.0 → 1.1.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cero-base/cero",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "The ideal p2p API — everything is a handle, handles contain refs, refs contain rows.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -83,7 +83,7 @@
83
83
  "test": "ls test/*.test.js | xargs -P1 -n1 brittle-node"
84
84
  },
85
85
  "dependencies": {
86
- "@cero-base/core": "^1.1.0",
86
+ "@cero-base/core": "^1.1.1",
87
87
  "b4a": "^1.8.1",
88
88
  "bare-abort-controller": "^1.1.2",
89
89
  "bare-crypto": "^1.15.3",
@@ -0,0 +1,3 @@
1
+ <claude-mem-context>
2
+
3
+ </claude-mem-context>
@@ -0,0 +1,3 @@
1
+ <claude-mem-context>
2
+
3
+ </claude-mem-context>
package/src/index.js CHANGED
@@ -65,7 +65,7 @@ export { t, schema } from './lib/spec.js'
65
65
  * @property {Record<string, Function>} [routes] Custom RPC routes for the database dispatcher.
66
66
  * @property {(err: any) => void} [onerror] Background-task error handler.
67
67
  * @property {boolean} [recovery] Recovery flow — wipe local state and re-claim a writer slot.
68
- * @property {number} [recoveryTimeout] Max wait for writer capability during recovery.
68
+ * @property {number} [recoveryTimeout] Max wait for peer data + writer capability during recovery.
69
69
  */
70
70
 
71
71
  /**
@@ -140,7 +140,8 @@ export async function cero(dir, spec, opts = {}) {
140
140
  const result = await me.bootstrap({
141
141
  name: opts.name || null,
142
142
  isMobile: opts.isMobile === true,
143
- recovering: opts.recovery === true
143
+ recovering: opts.recovery === true,
144
+ ...(opts.recoveryTimeout ? { timeout: opts.recoveryTimeout } : {})
144
145
  })
145
146
  if (local && result?.writer) {
146
147
  await local.store.set('keypair', {
@@ -202,7 +203,9 @@ export async function restore(me, phrase) {
202
203
  if (current.id === me.identity.id) return me
203
204
 
204
205
  const { _dir: dir, spec, _opts: opts } = me
205
- const { name, bootstrap, isMobile, onerror, routes, recoveryTimeout } = opts
206
+ // channel must carry over without it the recovered instance rejoins the
207
+ // global identity topic and never meets its channeled peers (recovery timeout).
208
+ const { name, bootstrap, isMobile, onerror, routes, recoveryTimeout, channel } = opts
206
209
 
207
210
  await me.close()
208
211
  await fs.promises.rm(`${dir}/main`, { recursive: true, force: true })
@@ -214,6 +217,7 @@ export async function restore(me, phrase) {
214
217
  onerror,
215
218
  routes,
216
219
  recoveryTimeout,
220
+ channel,
217
221
  phrase,
218
222
  recovery: true
219
223
  })
package/types/index.d.ts CHANGED
@@ -16,7 +16,7 @@
16
16
  * @property {Record<string, Function>} [routes] Custom RPC routes for the database dispatcher.
17
17
  * @property {(err: any) => void} [onerror] Background-task error handler.
18
18
  * @property {boolean} [recovery] Recovery flow — wipe local state and re-claim a writer slot.
19
- * @property {number} [recoveryTimeout] Max wait for writer capability during recovery.
19
+ * @property {number} [recoveryTimeout] Max wait for peer data + writer capability during recovery.
20
20
  */
21
21
  /**
22
22
  * Open (or create) a cero handle at `dir`. Sets up storage, network and
@@ -118,7 +118,7 @@ export type CeroOpts = {
118
118
  */
119
119
  recovery?: boolean;
120
120
  /**
121
- * Max wait for writer capability during recovery.
121
+ * Max wait for peer data + writer capability during recovery.
122
122
  */
123
123
  recoveryTimeout?: number;
124
124
  };