@peerbit/program 5.3.6 → 5.4.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.
@@ -1,8 +1,7 @@
1
1
  import { type Blocks } from "@peerbit/blocks-interface";
2
2
  import type { Identity } from "@peerbit/crypto";
3
- import { logger as loggerFn } from "@peerbit/logger";
4
3
  import type { Address } from "./address.js";
5
- export declare const logger: ReturnType<typeof loggerFn>;
4
+ export declare const logger: import("@libp2p/interface").Logger;
6
5
  type ProgramMergeStrategy = "replace" | "reject" | "reuse";
7
6
  export type ExtractArgs<T> = T extends CanOpen<infer Args> ? Args : never;
8
7
  export type EventOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/handler.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,7 @@
1
1
  import {} from "@peerbit/blocks-interface";
2
2
  import { logger as loggerFn } from "@peerbit/logger";
3
3
  import PQueue from "p-queue";
4
- export const logger = loggerFn({
5
- module: "program-handler",
6
- });
4
+ export const logger = loggerFn("peerbit:program:handler");
7
5
  export const addParent = (child, parent) => {
8
6
  if (child.parents && child.parents.includes(parent) && parent == null) {
9
7
  return; // prevent root parents to exist multiple times. This will allow use to close a program onces even if it is reused multiple times
@@ -115,7 +113,7 @@ export class Handler {
115
113
  }
116
114
  }
117
115
  }
118
- logger.debug(`Open database '${program.constructor.name}`);
116
+ logger.trace(`Open database '${program.constructor.name}`);
119
117
  // todo make this nicer
120
118
  let address = await program.save(this.properties.client.services.blocks, {
121
119
  skipOnAddress: true,
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/handler.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,37 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
6
34
  };
7
- var Program_1;
8
35
  import { getSchema, variant } from "@dao-xyz/borsh";
9
36
  import { deserialize, serialize } from "@dao-xyz/borsh";
10
37
  import { TypedEventEmitter } from "@libp2p/interface";
@@ -72,416 +99,428 @@ class ProgramHandler extends Handler {
72
99
  }
73
100
  }
74
101
  export { ProgramHandler };
75
- let Program = Program_1 = class Program {
76
- _node;
77
- _allPrograms;
78
- _events;
79
- _closed;
80
- parents;
81
- children;
82
- _address;
83
- get address() {
84
- if (!this._address) {
85
- throw new MissingAddressError();
86
- }
87
- return this._address;
88
- }
89
- set address(address) {
90
- this._address = address;
91
- }
92
- get isRoot() {
93
- return this.parents == null || this.parents.filter((x) => !!x).length === 0;
94
- }
95
- get rootAddress() {
96
- let root = this;
97
- while (root.parents && root.parents.length > 0) {
98
- if (root.parents.length > 1) {
99
- throw new Error("Multiple parents not supported");
100
- }
101
- if (root.isRoot) {
102
- return root.address;
102
+ let Program = (() => {
103
+ let _classDecorators = [variant(0)];
104
+ let _classDescriptor;
105
+ let _classExtraInitializers = [];
106
+ let _classThis;
107
+ var Program = class {
108
+ static { _classThis = this; }
109
+ static {
110
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
111
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
112
+ Program = _classThis = _classDescriptor.value;
113
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
114
+ __runInitializers(_classThis, _classExtraInitializers);
115
+ }
116
+ _node;
117
+ _allPrograms;
118
+ _events;
119
+ _closed;
120
+ parents;
121
+ children;
122
+ _address;
123
+ get address() {
124
+ if (!this._address) {
125
+ throw new MissingAddressError();
103
126
  }
104
- root = root.parents[0];
127
+ return this._address;
105
128
  }
106
- return root.address;
107
- }
108
- async calculateAddress(options) {
109
- if (this._address && !options?.reset) {
110
- return { address: this._address, block: undefined };
111
- }
112
- const out = await calculateRawCid(serialize(this));
113
- this._address = out.cid;
114
- return {
115
- address: out.cid,
116
- block: out.block,
117
- };
118
- }
119
- get events() {
120
- return this._events || (this._events = new TypedEventEmitter());
121
- }
122
- get closed() {
123
- if (this._closed == null) {
124
- return true;
129
+ set address(address) {
130
+ this._address = address;
125
131
  }
126
- return this._closed;
127
- }
128
- set closed(closed) {
129
- this._closed = closed;
130
- }
131
- get node() {
132
- return this._node;
133
- }
134
- set node(node) {
135
- this._node = node;
136
- }
137
- _eventOptions;
138
- async beforeOpen(node, options) {
139
- // check that a discriminator exist
140
- const schema = getSchema(this.constructor);
141
- if (!schema || typeof schema.variant !== "string") {
142
- throw new Error(`Expecting class to be decorated with a string variant. Example:\n'import { variant } "@dao-xyz/borsh"\n@variant("example-db")\nclass ${this.constructor.name} { ...`);
143
- }
144
- // only store the root program, or programs that have been opened with a parent refernece ("loose programs")
145
- // TODO do we need addresses for subprograms? if so we also need to call this
146
- await this.calculateAddress();
147
- // await this.save(node.services.blocks, { skipOnAddress: true, save: () => !options?.parent || this.isRoot });
148
- // TODO is this check needed?
149
- if (getAllParentAddresses(this).includes(this.address)) {
150
- throw new Error("Subprogram has same address as some parent program. This is not currently supported");
151
- }
152
- if (!this.closed) {
153
- addParent(this, options?.parent);
154
- return;
155
- }
156
- else {
157
- addParent(this, options?.parent);
158
- }
159
- this._eventOptions = options;
160
- this.node = node;
161
- const nexts = this.programs;
162
- for (const next of nexts) {
163
- await next.beforeOpen(node, { ...options, parent: this });
164
- }
165
- await this._eventOptions?.onBeforeOpen?.(this);
166
- this.closed = false;
167
- }
168
- async afterOpen() {
169
- if (!this.closed) {
170
- await this.node.services.pubsub.addEventListener("subscribe", this._subscriptionEventListener ||
171
- (this._subscriptionEventListener = (s) => !this.closed && this._emitJoinNetworkEvents(s.detail)));
172
- await this.node.services.pubsub.addEventListener("unsubscribe", this._unsubscriptionEventListener ||
173
- (this._unsubscriptionEventListener = (s) => !this.closed && this._emitLeaveNetworkEvents(s.detail)));
174
- this.emitEvent(new CustomEvent("open", { detail: this }), true);
175
- await this._eventOptions?.onOpen?.(this);
176
- const nexts = this.programs;
177
- for (const next of nexts) {
178
- await next.afterOpen();
132
+ get isRoot() {
133
+ return this.parents == null || this.parents.filter((x) => !!x).length === 0;
134
+ }
135
+ get rootAddress() {
136
+ let root = this;
137
+ while (root.parents && root.parents.length > 0) {
138
+ if (root.parents.length > 1) {
139
+ throw new Error("Multiple parents not supported");
140
+ }
141
+ if (root.isRoot) {
142
+ return root.address;
143
+ }
144
+ root = root.parents[0];
179
145
  }
146
+ return root.address;
180
147
  }
181
- }
182
- _clear() {
183
- this._allPrograms = undefined;
184
- }
185
- _emittedEventsFor;
186
- get emittedEventsFor() {
187
- return (this._emittedEventsFor = this._emittedEventsFor || new Set());
188
- }
189
- getAllTopicsIncludingThis() {
190
- const allTopics = [this, ...this.allPrograms]
191
- // TODO test this code path closed true/false
192
- .map((x) => x.closed === false && x.getTopics?.())
193
- .filter((x) => x)
194
- .flat();
195
- return allTopics;
196
- }
197
- async _emitJoinNetworkEvents(s) {
198
- if (this.emittedEventsFor.has(s.from.hashcode())) {
199
- return;
148
+ async calculateAddress(options) {
149
+ if (this._address && !options?.reset) {
150
+ return { address: this._address, block: undefined };
151
+ }
152
+ const out = await calculateRawCid(serialize(this));
153
+ this._address = out.cid;
154
+ return {
155
+ address: out.cid,
156
+ block: out.block,
157
+ };
200
158
  }
201
- const allTopics = this.getAllTopicsIncludingThis();
202
- if (allTopics.length === 0) {
203
- return; // this is important (see events.spec.ts)
159
+ get events() {
160
+ return this._events || (this._events = new TypedEventEmitter());
204
161
  }
205
- // if subscribing to all topics, emit "join" event
206
- for (const topic of allTopics) {
207
- if (!(await this.node.services.pubsub.getSubscribers(topic))?.find((x) => s.from.equals(x))) {
208
- return;
162
+ get closed() {
163
+ if (this._closed == null) {
164
+ return true;
209
165
  }
166
+ return this._closed;
210
167
  }
211
- if (this.emittedEventsFor.has(s.from.hashcode())) {
212
- return;
168
+ set closed(closed) {
169
+ this._closed = closed;
213
170
  }
214
- this.emittedEventsFor.add(s.from.hashcode());
215
- this.events.dispatchEvent(new CustomEvent("join", { detail: s.from }));
216
- }
217
- async _emitLeaveNetworkEvents(s) {
218
- if (!this.emittedEventsFor.has(s.from.hashcode())) {
219
- return;
171
+ get node() {
172
+ return this._node;
220
173
  }
221
- const allTopics = this.getAllTopicsIncludingThis();
222
- if (allTopics.length === 0) {
223
- return; // this is important (see events.spec.ts)
174
+ set node(node) {
175
+ this._node = node;
224
176
  }
225
- // if subscribing not subscribing to any topics, emit "leave" event
226
- let hasAllTopics = true;
227
- for (const topic of allTopics) {
228
- if (!(await this.node.services.pubsub.getSubscribers(topic))?.find((x) => s.from.equals(x))) {
229
- hasAllTopics = false;
230
- break;
177
+ _eventOptions;
178
+ async beforeOpen(node, options) {
179
+ // check that a discriminator exist
180
+ const schema = getSchema(this.constructor);
181
+ if (!schema || typeof schema.variant !== "string") {
182
+ throw new Error(`Expecting class to be decorated with a string variant. Example:\n'import { variant } "@dao-xyz/borsh"\n@variant("example-db")\nclass ${this.constructor.name} { ...`);
183
+ }
184
+ // only store the root program, or programs that have been opened with a parent refernece ("loose programs")
185
+ // TODO do we need addresses for subprograms? if so we also need to call this
186
+ await this.calculateAddress();
187
+ // await this.save(node.services.blocks, { skipOnAddress: true, save: () => !options?.parent || this.isRoot });
188
+ // TODO is this check needed?
189
+ if (getAllParentAddresses(this).includes(this.address)) {
190
+ throw new Error("Subprogram has same address as some parent program. This is not currently supported");
191
+ }
192
+ if (!this.closed) {
193
+ addParent(this, options?.parent);
194
+ return;
195
+ }
196
+ else {
197
+ addParent(this, options?.parent);
198
+ }
199
+ this._eventOptions = options;
200
+ this.node = node;
201
+ const nexts = this.programs;
202
+ for (const next of nexts) {
203
+ await next.beforeOpen(node, { ...options, parent: this });
204
+ }
205
+ await this._eventOptions?.onBeforeOpen?.(this);
206
+ this.closed = false;
207
+ }
208
+ async afterOpen() {
209
+ if (!this.closed) {
210
+ await this.node.services.pubsub.addEventListener("subscribe", this._subscriptionEventListener ||
211
+ (this._subscriptionEventListener = (s) => !this.closed && this._emitJoinNetworkEvents(s.detail)));
212
+ await this.node.services.pubsub.addEventListener("unsubscribe", this._unsubscriptionEventListener ||
213
+ (this._unsubscriptionEventListener = (s) => !this.closed && this._emitLeaveNetworkEvents(s.detail)));
214
+ this.emitEvent(new CustomEvent("open", { detail: this }), true);
215
+ await this._eventOptions?.onOpen?.(this);
216
+ const nexts = this.programs;
217
+ for (const next of nexts) {
218
+ await next.afterOpen();
219
+ }
231
220
  }
232
221
  }
233
- if (hasAllTopics) {
234
- return; // still here!?
222
+ _clear() {
223
+ this._allPrograms = undefined;
235
224
  }
236
- if (!this.emittedEventsFor.has(s.from.hashcode())) {
237
- return;
225
+ _emittedEventsFor;
226
+ get emittedEventsFor() {
227
+ return (this._emittedEventsFor = this._emittedEventsFor || new Set());
238
228
  }
239
- this.emittedEventsFor.delete(s.from.hashcode());
240
- this.events.dispatchEvent(new CustomEvent("leave", { detail: s.from }));
241
- }
242
- _subscriptionEventListener;
243
- _unsubscriptionEventListener;
244
- async processEnd(type) {
245
- if (!this.closed) {
246
- this.emitEvent(new CustomEvent(type, { detail: this }), true);
247
- if (type === "close") {
248
- this._eventOptions?.onClose?.(this);
229
+ getAllTopicsIncludingThis() {
230
+ const allTopics = [this, ...this.allPrograms]
231
+ // TODO test this code path closed true/false
232
+ .map((x) => x.closed === false && x.getTopics?.())
233
+ .filter((x) => x)
234
+ .flat();
235
+ return allTopics;
236
+ }
237
+ async _emitJoinNetworkEvents(s) {
238
+ if (this.emittedEventsFor.has(s.from.hashcode())) {
239
+ return;
249
240
  }
250
- else if (type === "drop") {
251
- this._eventOptions?.onDrop?.(this);
241
+ const allTopics = this.getAllTopicsIncludingThis();
242
+ if (allTopics.length === 0) {
243
+ return; // this is important (see events.spec.ts)
252
244
  }
253
- else {
254
- throw new Error("Unsupported event type: " + type);
255
- }
256
- const promises = [];
257
- if (this.children) {
258
- for (const program of this.children) {
259
- if (program.closed) {
260
- if (type === "close") {
261
- continue;
262
- }
263
- }
264
- promises.push(program[type](this)); // TODO types
245
+ // if subscribing to all topics, emit "join" event
246
+ for (const topic of allTopics) {
247
+ if (!(await this.node.services.pubsub.getSubscribers(topic))?.find((x) => s.from.equals(x))) {
248
+ return;
265
249
  }
266
- this.children = [];
267
250
  }
268
- await Promise.all(promises);
269
- this._clear();
270
- this.closed = true;
271
- return true;
272
- }
273
- else {
274
- this._clear();
275
- return true;
251
+ if (this.emittedEventsFor.has(s.from.hashcode())) {
252
+ return;
253
+ }
254
+ this.emittedEventsFor.add(s.from.hashcode());
255
+ this.events.dispatchEvent(new CustomEvent("join", { detail: s.from }));
276
256
  }
277
- }
278
- async end(type, from) {
279
- if (this.closed) {
280
- if (type === "drop") {
281
- throw new ClosedError("Program is closed, can not drop");
282
- }
283
- return true;
284
- }
285
- let parentIdx = -1;
286
- let close = true;
287
- if (this.parents) {
288
- parentIdx = this.parents.findIndex((x) => x === from);
289
- if (parentIdx !== -1) {
290
- if (this.parents.length === 1) {
291
- close = true;
257
+ async _emitLeaveNetworkEvents(s) {
258
+ if (!this.emittedEventsFor.has(s.from.hashcode())) {
259
+ return;
260
+ }
261
+ const allTopics = this.getAllTopicsIncludingThis();
262
+ if (allTopics.length === 0) {
263
+ return; // this is important (see events.spec.ts)
264
+ }
265
+ // if subscribing not subscribing to any topics, emit "leave" event
266
+ let hasAllTopics = true;
267
+ for (const topic of allTopics) {
268
+ if (!(await this.node.services.pubsub.getSubscribers(topic))?.find((x) => s.from.equals(x))) {
269
+ hasAllTopics = false;
270
+ break;
271
+ }
272
+ }
273
+ if (hasAllTopics) {
274
+ return; // still here!?
275
+ }
276
+ if (!this.emittedEventsFor.has(s.from.hashcode())) {
277
+ return;
278
+ }
279
+ this.emittedEventsFor.delete(s.from.hashcode());
280
+ this.events.dispatchEvent(new CustomEvent("leave", { detail: s.from }));
281
+ }
282
+ _subscriptionEventListener;
283
+ _unsubscriptionEventListener;
284
+ async processEnd(type) {
285
+ if (!this.closed) {
286
+ this.emitEvent(new CustomEvent(type, { detail: this }), true);
287
+ if (type === "close") {
288
+ this._eventOptions?.onClose?.(this);
289
+ }
290
+ else if (type === "drop") {
291
+ this._eventOptions?.onDrop?.(this);
292
292
  }
293
293
  else {
294
- this.parents.splice(parentIdx, 1);
295
- close = false;
294
+ throw new Error("Unsupported event type: " + type);
295
+ }
296
+ const promises = [];
297
+ if (this.children) {
298
+ for (const program of this.children) {
299
+ if (program.closed) {
300
+ if (type === "close") {
301
+ continue;
302
+ }
303
+ }
304
+ promises.push(program[type](this)); // TODO types
305
+ }
306
+ this.children = [];
296
307
  }
308
+ await Promise.all(promises);
309
+ this._clear();
310
+ this.closed = true;
311
+ return true;
297
312
  }
298
- else if (from) {
299
- throw new Error("Could not find from in parents");
313
+ else {
314
+ this._clear();
315
+ return true;
300
316
  }
301
317
  }
302
- const end = close && (await this.processEnd(type));
303
- if (end) {
304
- this.node?.services.pubsub.removeEventListener("subscribe", this._subscriptionEventListener);
305
- this.node?.services.pubsub.removeEventListener("unsubscribe", this._unsubscriptionEventListener);
306
- this._eventOptions = undefined;
307
- if (parentIdx !== -1) {
308
- this.parents.splice(parentIdx, 1); // We splice this here because this._end depends on this parent to exist
318
+ async end(type, from) {
319
+ if (this.closed) {
320
+ if (type === "drop") {
321
+ throw new ClosedError("Program is closed, can not drop");
322
+ }
323
+ return true;
309
324
  }
325
+ let parentIdx = -1;
326
+ let close = true;
327
+ if (this.parents) {
328
+ parentIdx = this.parents.findIndex((x) => x === from);
329
+ if (parentIdx !== -1) {
330
+ if (this.parents.length === 1) {
331
+ close = true;
332
+ }
333
+ else {
334
+ this.parents.splice(parentIdx, 1);
335
+ close = false;
336
+ }
337
+ }
338
+ else if (from) {
339
+ throw new Error("Could not find from in parents");
340
+ }
341
+ }
342
+ const end = close && (await this.processEnd(type));
343
+ if (end) {
344
+ this.node?.services.pubsub.removeEventListener("subscribe", this._subscriptionEventListener);
345
+ this.node?.services.pubsub.removeEventListener("unsubscribe", this._unsubscriptionEventListener);
346
+ this._eventOptions = undefined;
347
+ if (parentIdx !== -1) {
348
+ this.parents.splice(parentIdx, 1); // We splice this here because this._end depends on this parent to exist
349
+ }
350
+ }
351
+ return end;
310
352
  }
311
- return end;
312
- }
313
- async close(from) {
314
- this._emittedEventsFor = undefined;
315
- return this.end("close", from);
316
- }
317
- async drop(from) {
318
- const dropped = await this.end("drop", from);
319
- if (dropped) {
320
- await this.delete();
353
+ async close(from) {
354
+ this._emittedEventsFor = undefined;
355
+ return this.end("close", from);
321
356
  }
322
- return dropped;
323
- }
324
- emitEvent(event, parents = false) {
325
- this.events.dispatchEvent(event);
326
- if (parents) {
327
- if (this.parents) {
328
- for (const parent of this.parents) {
329
- parent?.emitEvent(event, parents);
357
+ async drop(from) {
358
+ const dropped = await this.end("drop", from);
359
+ if (dropped) {
360
+ await this.delete();
361
+ }
362
+ return dropped;
363
+ }
364
+ emitEvent(event, parents = false) {
365
+ this.events.dispatchEvent(event);
366
+ if (parents) {
367
+ if (this.parents) {
368
+ for (const parent of this.parents) {
369
+ parent?.emitEvent(event, parents);
370
+ }
330
371
  }
331
372
  }
332
373
  }
333
- }
334
- /**
335
- * Wait for another peer to be 'ready' to talk with you for this particular program
336
- * @param other
337
- * @throws TimeoutError if the timeout is reached
338
- */
339
- async waitFor(other, options) {
340
- // make sure nodes are reachable
341
- let expectedHashes = await this.node.services.pubsub.waitFor(other, {
342
- seek: options?.seek,
343
- signal: options?.signal,
344
- timeout: options?.timeout,
345
- });
346
- // wait for subscribing to topics
347
- return new Promise((resolve, reject) => {
348
- const timeout = setTimeout(() => {
349
- this.node.services.pubsub.removeEventListener("subscribe", listener);
350
- options?.signal?.removeEventListener("abort", abortListener);
351
- reject(new TimeoutError("Timeout waiting for replicating peer"));
352
- }, options?.timeout || 10 * 1000);
353
- const abortListener = (e) => {
354
- this.node.services.pubsub.removeEventListener("subscribe", listener);
355
- clearTimeout(timeout);
356
- reject(new Error("Aborted"));
357
- };
358
- options?.signal?.addEventListener("abort", abortListener);
359
- const checkReady = async () => {
360
- let ready = true;
361
- try {
362
- const allReadyHashes = await this.getReady();
363
- for (const hash of expectedHashes) {
364
- if (!allReadyHashes.has(hash)) {
365
- ready = false;
366
- break;
374
+ /**
375
+ * Wait for another peer to be 'ready' to talk with you for this particular program
376
+ * @param other
377
+ * @throws TimeoutError if the timeout is reached
378
+ */
379
+ async waitFor(other, options) {
380
+ // make sure nodes are reachable
381
+ let expectedHashes = await this.node.services.pubsub.waitFor(other, {
382
+ seek: options?.seek,
383
+ signal: options?.signal,
384
+ timeout: options?.timeout,
385
+ });
386
+ // wait for subscribing to topics
387
+ return new Promise((resolve, reject) => {
388
+ const timeout = setTimeout(() => {
389
+ this.node.services.pubsub.removeEventListener("subscribe", listener);
390
+ options?.signal?.removeEventListener("abort", abortListener);
391
+ reject(new TimeoutError("Timeout waiting for replicating peer"));
392
+ }, options?.timeout || 10 * 1000);
393
+ const abortListener = (e) => {
394
+ this.node.services.pubsub.removeEventListener("subscribe", listener);
395
+ clearTimeout(timeout);
396
+ reject(new Error("Aborted"));
397
+ };
398
+ options?.signal?.addEventListener("abort", abortListener);
399
+ const checkReady = async () => {
400
+ let ready = true;
401
+ try {
402
+ const allReadyHashes = await this.getReady();
403
+ for (const hash of expectedHashes) {
404
+ if (!allReadyHashes.has(hash)) {
405
+ ready = false;
406
+ break;
407
+ }
408
+ }
409
+ if (ready) {
410
+ this.node.services.pubsub.removeEventListener("subscribe", listener);
411
+ clearTimeout(timeout);
412
+ options?.signal?.removeEventListener("abort", abortListener);
413
+ resolve(expectedHashes);
367
414
  }
368
415
  }
369
- if (ready) {
370
- this.node.services.pubsub.removeEventListener("subscribe", listener);
371
- clearTimeout(timeout);
372
- options?.signal?.removeEventListener("abort", abortListener);
373
- resolve(expectedHashes);
416
+ catch (error) {
417
+ reject(error);
374
418
  }
419
+ };
420
+ const listener = () => {
421
+ return checkReady();
422
+ };
423
+ this.node.services.pubsub.addEventListener("subscribe", listener);
424
+ checkReady();
425
+ });
426
+ }
427
+ async getReady() {
428
+ // all peers that subscribe to all topics
429
+ let ready = undefined; // the interesection of all ready
430
+ const allTopics = this.getAllTopicsIncludingThis();
431
+ if (allTopics.length === 0) {
432
+ throw new Error("Program has no topics, cannot get ready");
433
+ }
434
+ for (const topic of allTopics) {
435
+ const subscribers = await this.node.services.pubsub.getSubscribers(topic);
436
+ if (!subscribers) {
437
+ continue;
375
438
  }
376
- catch (error) {
377
- reject(error);
378
- }
379
- };
380
- const listener = () => {
381
- return checkReady();
382
- };
383
- this.node.services.pubsub.addEventListener("subscribe", listener);
384
- checkReady();
385
- });
386
- }
387
- async getReady() {
388
- // all peers that subscribe to all topics
389
- let ready = undefined; // the interesection of all ready
390
- const allTopics = this.getAllTopicsIncludingThis();
391
- if (allTopics.length === 0) {
392
- throw new Error("Program has no topics, cannot get ready");
393
- }
394
- for (const topic of allTopics) {
395
- const subscribers = await this.node.services.pubsub.getSubscribers(topic);
396
- if (!subscribers) {
397
- continue;
439
+ ready = intersection(ready, subscribers);
398
440
  }
399
- ready = intersection(ready, subscribers);
400
- }
401
- if (ready == null) {
402
- return new Map();
441
+ if (ready == null) {
442
+ return new Map();
443
+ }
444
+ return ready;
403
445
  }
404
- return ready;
405
- }
406
- get allPrograms() {
407
- if (this._allPrograms) {
446
+ get allPrograms() {
447
+ if (this._allPrograms) {
448
+ return this._allPrograms;
449
+ }
450
+ const arr = this.programs;
451
+ const nexts = this.programs;
452
+ for (const next of nexts) {
453
+ arr.push(...next.allPrograms);
454
+ }
455
+ this._allPrograms = arr;
408
456
  return this._allPrograms;
409
457
  }
410
- const arr = this.programs;
411
- const nexts = this.programs;
412
- for (const next of nexts) {
413
- arr.push(...next.allPrograms);
458
+ get programs() {
459
+ return getValuesWithType(this, Program);
414
460
  }
415
- this._allPrograms = arr;
416
- return this._allPrograms;
417
- }
418
- get programs() {
419
- return getValuesWithType(this, Program_1);
420
- }
421
- clone() {
422
- return deserialize(serialize(this), this.constructor);
423
- }
424
- async save(store = this.node.services.blocks, options) {
425
- const existingAddress = this._address;
426
- if (existingAddress) {
427
- if (options?.skipOnAddress) {
428
- return existingAddress;
429
- }
430
- }
431
- // always reset the address on save
432
- const toPut = await this.calculateAddress({ reset: true }); // this will also set the address (this.address)
433
- if (!options?.reset &&
434
- existingAddress &&
435
- existingAddress !== this.address) {
436
- this._address = existingAddress;
437
- throw new Error("Program properties has been changed after constructor so that the hash has changed. Make sure that the 'setup(...)' function does not modify any properties that are to be serialized");
438
- }
439
- if ((options?.save && !(await options.save(toPut.address))) ||
440
- (await store.has(toPut.address))) {
441
- return this.address;
461
+ clone() {
462
+ return deserialize(serialize(this), this.constructor);
442
463
  }
443
- await store.put(toPut.block
444
- ? { cid: toPut.address, block: toPut.block }
445
- : serialize(this));
446
- if (options?.reset) {
447
- // delete the old address if it exists and different from the new one
448
- if (existingAddress && existingAddress !== this.address) {
449
- await store.rm(existingAddress);
464
+ async save(store = this.node.services.blocks, options) {
465
+ const existingAddress = this._address;
466
+ if (existingAddress) {
467
+ if (options?.skipOnAddress) {
468
+ return existingAddress;
469
+ }
450
470
  }
471
+ // always reset the address on save
472
+ const toPut = await this.calculateAddress({ reset: true }); // this will also set the address (this.address)
473
+ if (!options?.reset &&
474
+ existingAddress &&
475
+ existingAddress !== this.address) {
476
+ this._address = existingAddress;
477
+ throw new Error("Program properties has been changed after constructor so that the hash has changed. Make sure that the 'setup(...)' function does not modify any properties that are to be serialized");
478
+ }
479
+ if ((options?.save && !(await options.save(toPut.address))) ||
480
+ (await store.has(toPut.address))) {
481
+ return this.address;
482
+ }
483
+ await store.put(toPut.block
484
+ ? { cid: toPut.address, block: toPut.block }
485
+ : serialize(this));
486
+ if (options?.reset) {
487
+ // delete the old address if it exists and different from the new one
488
+ if (existingAddress && existingAddress !== this.address) {
489
+ await store.rm(existingAddress);
490
+ }
491
+ }
492
+ return this.address;
451
493
  }
452
- return this.address;
453
- }
454
- async delete() {
455
- if (this._address) {
456
- return this.node.services.blocks.rm(this.address);
457
- }
458
- // Not saved
459
- }
460
- static async load(address, store, options) {
461
- const bytes = await store.get(address, {
462
- remote: {
463
- timeout: options?.timeout,
464
- },
465
- });
466
- if (!bytes) {
467
- return undefined;
468
- }
469
- const der = deserialize(bytes, Program_1);
470
- der.address = address;
471
- return der;
472
- }
473
- static async open(address, node, options) {
474
- const p = await Program_1.load(address, node.services.blocks);
475
- if (!p) {
476
- throw new Error("Failed to load program");
494
+ async delete() {
495
+ if (this._address) {
496
+ return this.node.services.blocks.rm(this.address);
497
+ }
498
+ // Not saved
499
+ }
500
+ static async load(address, store, options) {
501
+ const bytes = await store.get(address, {
502
+ remote: {
503
+ timeout: options?.timeout,
504
+ },
505
+ });
506
+ if (!bytes) {
507
+ return undefined;
508
+ }
509
+ const der = deserialize(bytes, Program);
510
+ der.address = address;
511
+ return der;
512
+ }
513
+ static async open(address, node, options) {
514
+ const p = await Program.load(address, node.services.blocks);
515
+ if (!p) {
516
+ throw new Error("Failed to load program");
517
+ }
518
+ await node.open(p, options); // TODO fix types
519
+ return p;
477
520
  }
478
- await node.open(p, options); // TODO fix types
479
- return p;
480
- }
481
- };
482
- Program = Program_1 = __decorate([
483
- variant(0)
484
- ], Program);
521
+ };
522
+ return Program = _classThis;
523
+ })();
485
524
  export { Program };
486
525
  export const getProgramFromVariants = () => {
487
526
  const deps = Program.prototype[1000]; /// TODO improve BORSH lib to provide all necessary utility methods
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/program.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/program",
3
- "version": "5.3.6",
3
+ "version": "5.4.1",
4
4
  "description": "Program interface",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -52,23 +52,23 @@
52
52
  "author": "dao.xyz",
53
53
  "license": "MIT",
54
54
  "dependencies": {
55
- "@dao-xyz/borsh": "^5.2.3",
56
- "@libp2p/interface": "^3.0.0",
55
+ "@dao-xyz/borsh": "^6.0.0",
56
+ "@libp2p/interface": "^3.1.0",
57
57
  "@multiformats/multiaddr": "^13.0.1",
58
58
  "multiformats": "^13.4.1",
59
59
  "p-queue": "^8.0.1",
60
- "@peerbit/keychain": "1.1.2",
61
- "@peerbit/crypto": "2.3.13",
62
- "@peerbit/any-store-interface": "1.0.1",
63
- "@peerbit/indexer-interface": "2.0.14",
64
- "@peerbit/stream-interface": "5.2.10",
65
- "@peerbit/time": "2.2.0",
66
- "@peerbit/logger": "1.0.4",
67
- "@peerbit/blocks": "3.0.15",
68
- "@peerbit/pubsub": "4.0.18",
69
- "@peerbit/blocks-interface": "1.4.14",
70
- "@peerbit/pubsub-interface": "4.0.9",
71
- "@peerbit/libp2p-test-utils": "2.1.21"
60
+ "@peerbit/crypto": "2.4.0",
61
+ "@peerbit/keychain": "1.2.1",
62
+ "@peerbit/blocks-interface": "1.5.0",
63
+ "@peerbit/pubsub-interface": "4.1.0",
64
+ "@peerbit/any-store-interface": "1.1.0",
65
+ "@peerbit/libp2p-test-utils": "2.2.0",
66
+ "@peerbit/indexer-interface": "2.1.0",
67
+ "@peerbit/stream-interface": "5.3.0",
68
+ "@peerbit/time": "2.3.0",
69
+ "@peerbit/logger": "2.0.0",
70
+ "@peerbit/blocks": "3.1.1",
71
+ "@peerbit/pubsub": "4.1.0"
72
72
  },
73
73
  "scripts": {
74
74
  "clean": "aegir clean",
package/src/handler.ts CHANGED
@@ -4,9 +4,7 @@ import { logger as loggerFn } from "@peerbit/logger";
4
4
  import PQueue from "p-queue";
5
5
  import type { Address } from "./address.js";
6
6
 
7
- export const logger: ReturnType<typeof loggerFn> = loggerFn({
8
- module: "program-handler",
9
- });
7
+ export const logger = loggerFn("peerbit:program:handler");
10
8
 
11
9
  type ProgramMergeStrategy = "replace" | "reject" | "reuse";
12
10
  export type ExtractArgs<T> = T extends CanOpen<infer Args> ? Args : never;
@@ -231,7 +229,7 @@ export class Handler<T extends Manageable<any>> {
231
229
  }
232
230
  }
233
231
 
234
- logger.debug(`Open database '${program.constructor.name}`);
232
+ logger.trace(`Open database '${program.constructor.name}`);
235
233
 
236
234
  // todo make this nicer
237
235
  let address = await program.save(this.properties.client.services.blocks, {