@peerbit/program 4.0.7 → 5.0.0-3a75d6e
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/src/address.d.ts +2 -0
- package/dist/src/address.d.ts.map +1 -0
- package/dist/src/client.d.ts +27 -0
- package/dist/src/client.d.ts.map +1 -0
- package/dist/src/client.js +5 -0
- package/dist/src/client.js.map +1 -0
- package/{lib/esm → dist/src}/handler.d.ts +3 -2
- package/dist/src/handler.d.ts.map +1 -0
- package/{lib/esm → dist/src}/handler.js +4 -3
- package/dist/src/handler.js.map +1 -0
- package/{lib/esm → dist/src}/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -0
- package/{lib/esm → dist/src}/index.js +1 -0
- package/dist/src/index.js.map +1 -0
- package/{lib/esm → dist/src}/program.d.ts +10 -9
- package/dist/src/program.d.ts.map +1 -0
- package/{lib/esm → dist/src}/program.js +19 -9
- package/dist/src/program.js.map +1 -0
- package/{lib/esm → dist/src}/utils.d.ts +2 -1
- package/dist/src/utils.d.ts.map +1 -0
- package/{lib/esm → dist/src}/utils.js +1 -22
- package/dist/src/utils.js.map +1 -0
- package/package.json +66 -38
- package/src/client.ts +16 -9
- package/src/handler.ts +21 -21
- package/src/index.ts +1 -1
- package/src/program.ts +55 -49
- package/src/utils.ts +5 -35
- package/lib/esm/address.d.ts +0 -1
- package/lib/esm/client.d.ts +0 -24
- package/lib/esm/client.js +0 -2
- package/lib/esm/client.js.map +0 -1
- package/lib/esm/handler.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/program.js.map +0 -1
- package/lib/esm/utils.js.map +0 -1
- /package/{lib/esm → dist/src}/address.js +0 -0
- /package/{lib/esm → dist/src}/address.js.map +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { PeerId as Libp2pPeerId } from "@libp2p/interface";
|
|
2
|
+
import type { Multiaddr } from "@multiformats/multiaddr";
|
|
3
|
+
import type { AnyStore } from "@peerbit/any-store-interface";
|
|
4
|
+
import { type Blocks } from "@peerbit/blocks-interface";
|
|
5
|
+
import { type Ed25519PublicKey, type Identity } from "@peerbit/crypto";
|
|
6
|
+
import type { Indices } from "@peerbit/indexer-interface";
|
|
7
|
+
import { type Keychain } from "@peerbit/keychain";
|
|
8
|
+
import { type PubSub } from "@peerbit/pubsub-interface";
|
|
9
|
+
import type { Address } from "./address.js";
|
|
10
|
+
import type { CanOpen, ExtractArgs, Manageable, OpenOptions } from "./handler.js";
|
|
11
|
+
export interface Client<T extends Manageable<ExtractArgs<T>>> {
|
|
12
|
+
peerId: Libp2pPeerId;
|
|
13
|
+
identity: Identity<Ed25519PublicKey>;
|
|
14
|
+
getMultiaddrs: () => Multiaddr[];
|
|
15
|
+
dial(address: string | Multiaddr | Multiaddr[]): Promise<boolean>;
|
|
16
|
+
services: {
|
|
17
|
+
pubsub: PubSub;
|
|
18
|
+
blocks: Blocks;
|
|
19
|
+
keychain: Keychain;
|
|
20
|
+
};
|
|
21
|
+
storage: AnyStore;
|
|
22
|
+
indexer: Indices;
|
|
23
|
+
start(): Promise<void>;
|
|
24
|
+
stop(): Promise<void>;
|
|
25
|
+
open<S extends T & CanOpen<ExtractArgs<S>>>(program: S | Address, options?: OpenOptions<S>): Promise<S>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EACX,OAAO,EACP,WAAW,EACX,UAAU,EACV,WAAW,EACX,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACrC,aAAa,EAAE,MAAM,SAAS,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,QAAQ,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,QAAQ,CAAC;KACnB,CAAC;IACF,OAAO,EAAE,QAAQ,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACzC,OAAO,EAAE,CAAC,GAAG,OAAO,EACpB,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,CAAC,CAAC,CAAC;CACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAwC,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAiB,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAe,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Blocks } from "@peerbit/blocks-interface";
|
|
2
|
-
import { Address } from "./address.js";
|
|
1
|
+
import { type Blocks } from "@peerbit/blocks-interface";
|
|
2
|
+
import type { Address } from "./address.js";
|
|
3
3
|
export declare const logger: import("pino").Logger<never>;
|
|
4
4
|
type ProgramMergeStrategy = "replace" | "reject" | "reuse";
|
|
5
5
|
export type ExtractArgs<T> = T extends CanOpen<infer Args> ? Args : never;
|
|
@@ -80,3 +80,4 @@ export declare class Handler<T extends Manageable<any>> {
|
|
|
80
80
|
open<S extends T>(storeOrAddress: S | Address | string, options?: OpenOptions<S>): Promise<S>;
|
|
81
81
|
}
|
|
82
82
|
export {};
|
|
83
|
+
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {} from "@peerbit/blocks-interface";
|
|
2
2
|
import { logger as loggerFn } from "@peerbit/logger";
|
|
3
|
+
import PQueue from "p-queue";
|
|
3
4
|
export const logger = loggerFn({ module: "program-handler" });
|
|
4
5
|
export const addParent = (child, parent) => {
|
|
5
6
|
(child.parents || (child.parents = [])).push(parent);
|
|
@@ -75,7 +76,7 @@ export class Handler {
|
|
|
75
76
|
}
|
|
76
77
|
}
|
|
77
78
|
else {
|
|
78
|
-
if (options.parent
|
|
79
|
+
if (options.parent === program) {
|
|
79
80
|
throw new Error("Parent program can not be equal to the program");
|
|
80
81
|
}
|
|
81
82
|
if (!program.closed) {
|
|
@@ -123,7 +124,7 @@ export class Handler {
|
|
|
123
124
|
return this._onProgamClose(p);
|
|
124
125
|
}
|
|
125
126
|
},
|
|
126
|
-
...options
|
|
127
|
+
...options,
|
|
127
128
|
// If the program opens more programs
|
|
128
129
|
// reset: options.reset,
|
|
129
130
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export { type ProgramInitializationOptions, type OpenOptions } from "./handler.js";
|
|
1
|
+
export { type ProgramInitializationOptions, type OpenOptions, } from "./handler.js";
|
|
2
2
|
export * from "./client.js";
|
|
3
3
|
export * from "./program.js";
|
|
4
4
|
export * from "./address.js";
|
|
5
5
|
export type { ExtractArgs } from "./handler.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,4BAA4B,EACjC,KAAK,WAAW,GAChB,MAAM,cAAc,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,MAAM,cAAc,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
+
import { type Constructor } from "@dao-xyz/borsh";
|
|
2
|
+
import { type PeerId as Libp2pPeerId, type TypedEventTarget } from "@libp2p/interface";
|
|
3
|
+
import { type Blocks } from "@peerbit/blocks-interface";
|
|
1
4
|
import { PublicSignKey } from "@peerbit/crypto";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { Blocks } from "@peerbit/blocks-interface";
|
|
6
|
-
import { PeerId as Libp2pPeerId } from "@libp2p/interface";
|
|
7
|
-
import { Address } from "./address.js";
|
|
8
|
-
import { Handler, Manageable, ProgramInitializationOptions } from "./handler.js";
|
|
5
|
+
import { type Address } from "./address.js";
|
|
6
|
+
import { type Client } from "./client.js";
|
|
7
|
+
import { Handler, type Manageable, type ProgramInitializationOptions } from "./handler.js";
|
|
9
8
|
export type OpenProgram = (program: Program) => Promise<Program>;
|
|
10
9
|
export interface NetworkEvents {
|
|
11
10
|
join: CustomEvent<PublicSignKey>;
|
|
@@ -36,6 +35,7 @@ export declare abstract class Program<Args = any, Events extends ProgramEvents =
|
|
|
36
35
|
private _address?;
|
|
37
36
|
get address(): Address;
|
|
38
37
|
set address(address: Address);
|
|
38
|
+
calculateAddress(): Promise<Address>;
|
|
39
39
|
get events(): TypedEventTarget<Events>;
|
|
40
40
|
get closed(): boolean;
|
|
41
41
|
set closed(closed: boolean);
|
|
@@ -75,5 +75,6 @@ export declare abstract class Program<Args = any, Events extends ProgramEvents =
|
|
|
75
75
|
}): Promise<P | undefined>;
|
|
76
76
|
static open<T extends Program<ExtractArgs<T>>>(this: Constructor<T>, address: string, node: ProgramClient, options?: ProgramInitializationOptions<ExtractArgs<T>, T>): Promise<T>;
|
|
77
77
|
}
|
|
78
|
-
export declare const getProgramFromVariants: <T extends Program
|
|
79
|
-
export declare const getProgramFromVariant: <T extends Program
|
|
78
|
+
export declare const getProgramFromVariants: <T extends Program>() => Constructor<T>[];
|
|
79
|
+
export declare const getProgramFromVariant: <T extends Program>(variant: string) => Constructor<T> | undefined;
|
|
80
|
+
//# sourceMappingURL=program.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/program.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,12 +5,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
var Program_1;
|
|
8
|
-
import { PublicSignKey, getPublicKeyFromPeerId } from "@peerbit/crypto";
|
|
9
8
|
import { getSchema, variant } from "@dao-xyz/borsh";
|
|
9
|
+
import { deserialize, serialize } from "@dao-xyz/borsh";
|
|
10
|
+
import { CustomEvent, TypedEventEmitter, } from "@libp2p/interface";
|
|
11
|
+
import { calculateRawCid } from "@peerbit/blocks-interface";
|
|
12
|
+
import { PublicSignKey, getPublicKeyFromPeerId } from "@peerbit/crypto";
|
|
13
|
+
import { SubscriptionEvent, UnsubcriptionEvent, } from "@peerbit/pubsub-interface";
|
|
14
|
+
import {} from "./address.js";
|
|
15
|
+
import {} from "./client.js";
|
|
16
|
+
import { Handler, addParent, } from "./handler.js";
|
|
10
17
|
import { getValuesWithType } from "./utils.js";
|
|
11
|
-
import { serialize, deserialize } from "@dao-xyz/borsh";
|
|
12
|
-
import { CustomEvent, TypedEventEmitter } from "@libp2p/interface";
|
|
13
|
-
import { Handler, addParent } from "./handler.js";
|
|
14
18
|
const intersection = (a, b) => {
|
|
15
19
|
const newSet = new Map();
|
|
16
20
|
if (Array.isArray(b)) {
|
|
@@ -50,7 +54,7 @@ class ProgramHandler extends Handler {
|
|
|
50
54
|
super({
|
|
51
55
|
client: properties.client,
|
|
52
56
|
shouldMonitor: (p) => p instanceof Program,
|
|
53
|
-
load: Program.load
|
|
57
|
+
load: Program.load,
|
|
54
58
|
});
|
|
55
59
|
}
|
|
56
60
|
}
|
|
@@ -72,6 +76,10 @@ let Program = Program_1 = class Program {
|
|
|
72
76
|
set address(address) {
|
|
73
77
|
this._address = address;
|
|
74
78
|
}
|
|
79
|
+
async calculateAddress() {
|
|
80
|
+
this._address = await calculateRawCid(serialize(this));
|
|
81
|
+
return this._address;
|
|
82
|
+
}
|
|
75
83
|
get events() {
|
|
76
84
|
return this._events || (this._events = new TypedEventEmitter());
|
|
77
85
|
}
|
|
@@ -95,7 +103,7 @@ let Program = Program_1 = class Program {
|
|
|
95
103
|
// check that a discriminator exist
|
|
96
104
|
const schema = getSchema(this.constructor);
|
|
97
105
|
if (!schema || typeof schema.variant !== "string") {
|
|
98
|
-
throw new Error(`Expecting class to be decorated with a string variant. Example:\n
|
|
106
|
+
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} { ...`);
|
|
99
107
|
}
|
|
100
108
|
await this.save(node.services.blocks);
|
|
101
109
|
if (getAllParentAddresses(this).includes(this.address)) {
|
|
@@ -191,12 +199,15 @@ let Program = Program_1 = class Program {
|
|
|
191
199
|
}
|
|
192
200
|
async end(type, from) {
|
|
193
201
|
if (this.closed) {
|
|
202
|
+
if (type === "drop") {
|
|
203
|
+
throw new Error("Program is closed, cannot drop");
|
|
204
|
+
}
|
|
194
205
|
return true;
|
|
195
206
|
}
|
|
196
207
|
let parentIdx = -1;
|
|
197
208
|
let close = true;
|
|
198
209
|
if (this.parents) {
|
|
199
|
-
parentIdx = this.parents.findIndex((x) => x
|
|
210
|
+
parentIdx = this.parents.findIndex((x) => x === from);
|
|
200
211
|
if (parentIdx !== -1) {
|
|
201
212
|
if (this.parents.length === 1) {
|
|
202
213
|
close = true;
|
|
@@ -328,8 +339,7 @@ let Program = Program_1 = class Program {
|
|
|
328
339
|
}
|
|
329
340
|
async save(store = this.node.services.blocks) {
|
|
330
341
|
const existingAddress = this._address;
|
|
331
|
-
|
|
332
|
-
this._address = hash;
|
|
342
|
+
this._address = await store.put(serialize(this));
|
|
333
343
|
if (!this.address) {
|
|
334
344
|
throw new Error("Unexpected");
|
|
335
345
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/program.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import { AbstractType, Constructor } from "@dao-xyz/borsh";
|
|
1
|
+
import { type AbstractType, type Constructor } from "@dao-xyz/borsh";
|
|
2
2
|
export declare const getValuesWithType: <T>(from: any, type: Constructor<T> | AbstractType<T>, stopAtType?: Constructor<any> | AbstractType<any>) => T[];
|
|
3
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,WAAW,EAEhB,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,iBAAiB,GAAI,CAAC,QAC5B,GAAG,QACH,WAAW,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,eACzB,WAAW,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,KAC/C,CAAC,EAgCH,CAAC"}
|
|
@@ -1,25 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const MAX_PROTOTYPE_SEARCH = 500;
|
|
3
|
-
const PROTOTYPE_DESERIALIZATION_HANDLER_OFFSET = 500;
|
|
4
|
-
const PROTOTYPE_DEPENDENCY_HANDLER_OFFSET = PROTOTYPE_DESERIALIZATION_HANDLER_OFFSET + MAX_PROTOTYPE_SEARCH;
|
|
5
|
-
const getDependencies = (ctor, offset) => ctor.prototype[PROTOTYPE_DEPENDENCY_HANDLER_OFFSET + offset];
|
|
6
|
-
const getSchemasBottomUp = (ctor) => {
|
|
7
|
-
let last = undefined;
|
|
8
|
-
const ret = [];
|
|
9
|
-
for (let i = 0; i < 1000; i++) {
|
|
10
|
-
const curr = getSchema(ctor, i);
|
|
11
|
-
if (!curr) {
|
|
12
|
-
if (last && !getDependencies(ctor, i)?.length) {
|
|
13
|
-
return ret;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
ret.push(curr);
|
|
18
|
-
last = curr;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return ret;
|
|
22
|
-
};
|
|
1
|
+
import { getSchemasBottomUp, } from "@dao-xyz/borsh";
|
|
23
2
|
export const getValuesWithType = (from, type, stopAtType) => {
|
|
24
3
|
const schemas = getSchemasBottomUp(from.constructor);
|
|
25
4
|
const values = [];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,kBAAkB,GAClB,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAChC,IAAS,EACT,IAAsC,EACtC,UAAiD,EAC3C,EAAE;IACR,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACZ,SAAS;YACV,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,OAAY,EAAE,EAAE;gBAC1B,IAAI,OAAO,IAAI,OAAO,YAAY,IAAI,EAAE,CAAC;oBACxC,MAAM,CAAC,IAAI,CAAC,OAAY,CAAC,CAAC;gBAC3B,CAAC;qBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACxC,IAAI,UAAU,IAAI,OAAO,YAAY,UAAU,EAAE,CAAC;wBACjD,OAAO;oBACR,CAAC;oBACD,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;oBAClE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC1B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,CAAC,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC,CAAC;YACF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;oBAC7B,CAAC,CAAC,OAAO,CAAC,CAAC;gBACZ,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,CAAC,CAAC,KAAK,CAAC,CAAC;YACV,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,40 +1,68 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
2
|
+
"name": "@peerbit/program",
|
|
3
|
+
"version": "5.0.0-3a75d6e",
|
|
4
|
+
"description": "Program interface",
|
|
5
|
+
"sideEffects": false,
|
|
6
|
+
"type": "module",
|
|
7
|
+
"types": "./dist/src/index.d.ts",
|
|
8
|
+
"typesVersions": {
|
|
9
|
+
"*": {
|
|
10
|
+
"*": [
|
|
11
|
+
"*",
|
|
12
|
+
"dist/*",
|
|
13
|
+
"dist/src/*",
|
|
14
|
+
"dist/src/*/index"
|
|
15
|
+
],
|
|
16
|
+
"src/*": [
|
|
17
|
+
"*",
|
|
18
|
+
"dist/*",
|
|
19
|
+
"dist/src/*",
|
|
20
|
+
"dist/src/*/index"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"src",
|
|
26
|
+
"dist",
|
|
27
|
+
"!dist/e2e",
|
|
28
|
+
"!dist/test",
|
|
29
|
+
"!**/*.tsbuildinfo"
|
|
30
|
+
],
|
|
31
|
+
"exports": {
|
|
32
|
+
".": {
|
|
33
|
+
"types": "./dist/src/index.d.ts",
|
|
34
|
+
"import": "./dist/src/index.js"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"eslintConfig": {
|
|
38
|
+
"extends": "peerbit",
|
|
39
|
+
"parserOptions": {
|
|
40
|
+
"project": true,
|
|
41
|
+
"sourceType": "module"
|
|
42
|
+
},
|
|
43
|
+
"ignorePatterns": [
|
|
44
|
+
"!.aegir.js",
|
|
45
|
+
"test/ts-use",
|
|
46
|
+
"*.d.ts"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"publishConfig": {
|
|
50
|
+
"access": "public"
|
|
51
|
+
},
|
|
52
|
+
"scripts": {
|
|
53
|
+
"clean": "aegir clean",
|
|
54
|
+
"build": "aegir build --no-bundle",
|
|
55
|
+
"test": "aegir test",
|
|
56
|
+
"lint": "aegir lint"
|
|
57
|
+
},
|
|
58
|
+
"author": "dao.xyz",
|
|
59
|
+
"license": "MIT",
|
|
60
|
+
"dependencies": {
|
|
61
|
+
"@dao-xyz/borsh": "^5.2.3",
|
|
62
|
+
"@peerbit/crypto": "2.3.0-3a75d6e",
|
|
63
|
+
"@peerbit/keychain": "1.0.18-3a75d6e",
|
|
64
|
+
"@peerbit/blocks-interface": "1.3.0-3a75d6e",
|
|
65
|
+
"@peerbit/pubsub-interface": "3.0.4-3a75d6e",
|
|
66
|
+
"@peerbit/any-store-interface": "1.0.0-3a75d6e"
|
|
67
|
+
}
|
|
40
68
|
}
|
package/src/client.ts
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import type { PeerId as Libp2pPeerId } from "@libp2p/interface";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import type {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
2
|
+
import type { Multiaddr } from "@multiformats/multiaddr";
|
|
3
|
+
import type { AnyStore } from "@peerbit/any-store-interface";
|
|
4
|
+
import { type Blocks } from "@peerbit/blocks-interface";
|
|
5
|
+
import { type Ed25519PublicKey, type Identity } from "@peerbit/crypto";
|
|
6
|
+
import type { Indices } from "@peerbit/indexer-interface";
|
|
7
|
+
import { type Keychain } from "@peerbit/keychain";
|
|
8
|
+
import { type PubSub } from "@peerbit/pubsub-interface";
|
|
9
|
+
import type { Address } from "./address.js";
|
|
10
|
+
import type {
|
|
11
|
+
CanOpen,
|
|
12
|
+
ExtractArgs,
|
|
13
|
+
Manageable,
|
|
14
|
+
OpenOptions,
|
|
15
|
+
} from "./handler.js";
|
|
10
16
|
|
|
11
17
|
export interface Client<T extends Manageable<ExtractArgs<T>>> {
|
|
12
18
|
peerId: Libp2pPeerId;
|
|
@@ -19,10 +25,11 @@ export interface Client<T extends Manageable<ExtractArgs<T>>> {
|
|
|
19
25
|
keychain: Keychain;
|
|
20
26
|
};
|
|
21
27
|
storage: AnyStore;
|
|
28
|
+
indexer: Indices;
|
|
22
29
|
start(): Promise<void>;
|
|
23
30
|
stop(): Promise<void>;
|
|
24
31
|
open<S extends T & CanOpen<ExtractArgs<S>>>(
|
|
25
32
|
program: S | Address,
|
|
26
|
-
options?: OpenOptions<S
|
|
33
|
+
options?: OpenOptions<S>,
|
|
27
34
|
): Promise<S>;
|
|
28
35
|
}
|
package/src/handler.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Blocks } from "@peerbit/blocks-interface";
|
|
2
|
-
import PQueue from "p-queue";
|
|
3
|
-
import { Address } from "./address.js";
|
|
1
|
+
import { type Blocks } from "@peerbit/blocks-interface";
|
|
4
2
|
import { logger as loggerFn } from "@peerbit/logger";
|
|
3
|
+
import PQueue from "p-queue";
|
|
4
|
+
import type { Address } from "./address.js";
|
|
5
5
|
|
|
6
6
|
export const logger = loggerFn({ module: "program-handler" });
|
|
7
7
|
|
|
@@ -30,7 +30,7 @@ export interface Saveable {
|
|
|
30
30
|
options?: {
|
|
31
31
|
format?: string;
|
|
32
32
|
timeout?: number;
|
|
33
|
-
}
|
|
33
|
+
},
|
|
34
34
|
): Promise<Address>;
|
|
35
35
|
|
|
36
36
|
delete(): Promise<void>;
|
|
@@ -76,10 +76,10 @@ export class Handler<T extends Manageable<any>> {
|
|
|
76
76
|
load: (
|
|
77
77
|
address: Address,
|
|
78
78
|
blocks: Blocks,
|
|
79
|
-
options?: { timeout?: number }
|
|
79
|
+
options?: { timeout?: number },
|
|
80
80
|
) => Promise<T | undefined>;
|
|
81
81
|
shouldMonitor: (thing: any) => boolean;
|
|
82
|
-
}
|
|
82
|
+
},
|
|
83
83
|
) {
|
|
84
84
|
this._openQueue = new Map();
|
|
85
85
|
this.items = new Map();
|
|
@@ -90,13 +90,13 @@ export class Handler<T extends Manageable<any>> {
|
|
|
90
90
|
[...this._openQueue.values()].map((x) => {
|
|
91
91
|
x.clear();
|
|
92
92
|
return x.onIdle();
|
|
93
|
-
})
|
|
93
|
+
}),
|
|
94
94
|
);
|
|
95
95
|
this._openQueue.clear();
|
|
96
96
|
|
|
97
97
|
// Close all open databases
|
|
98
98
|
await Promise.all(
|
|
99
|
-
[...this.items.values()].map((program) => program.close())
|
|
99
|
+
[...this.items.values()].map((program) => program.close()),
|
|
100
100
|
);
|
|
101
101
|
|
|
102
102
|
// Remove all databases from the state
|
|
@@ -112,7 +112,7 @@ export class Handler<T extends Manageable<any>> {
|
|
|
112
112
|
private async checkProcessExisting<S extends T>(
|
|
113
113
|
address: Address,
|
|
114
114
|
toOpen: Manageable<any>,
|
|
115
|
-
mergeSrategy: ProgramMergeStrategy = "reject"
|
|
115
|
+
mergeSrategy: ProgramMergeStrategy = "reject",
|
|
116
116
|
): Promise<S | undefined> {
|
|
117
117
|
const prev = this.items.get(address);
|
|
118
118
|
if (mergeSrategy === "reject") {
|
|
@@ -130,7 +130,7 @@ export class Handler<T extends Manageable<any>> {
|
|
|
130
130
|
|
|
131
131
|
async open<S extends T>(
|
|
132
132
|
storeOrAddress: S | Address | string,
|
|
133
|
-
options: OpenOptions<S> = {}
|
|
133
|
+
options: OpenOptions<S> = {},
|
|
134
134
|
): Promise<S> {
|
|
135
135
|
const fn = async (): Promise<S> => {
|
|
136
136
|
// TODO add locks for store lifecycle, e.g. what happens if we try to open and close a store at the same time?
|
|
@@ -141,7 +141,7 @@ export class Handler<T extends Manageable<any>> {
|
|
|
141
141
|
const existing = await this.checkProcessExisting(
|
|
142
142
|
storeOrAddress.toString(),
|
|
143
143
|
program,
|
|
144
|
-
options?.existing
|
|
144
|
+
options?.existing,
|
|
145
145
|
);
|
|
146
146
|
if (existing) {
|
|
147
147
|
return existing as S;
|
|
@@ -150,28 +150,28 @@ export class Handler<T extends Manageable<any>> {
|
|
|
150
150
|
program = (await this.properties.load(
|
|
151
151
|
storeOrAddress,
|
|
152
152
|
this.properties.client.services.blocks,
|
|
153
|
-
options
|
|
153
|
+
options,
|
|
154
154
|
)) as S; // TODO fix typings
|
|
155
155
|
|
|
156
156
|
if (!this.properties.shouldMonitor(program)) {
|
|
157
157
|
if (!program) {
|
|
158
158
|
throw new Error(
|
|
159
|
-
"Failed to resolve program with address: " + storeOrAddress
|
|
159
|
+
"Failed to resolve program with address: " + storeOrAddress,
|
|
160
160
|
);
|
|
161
161
|
}
|
|
162
162
|
throw new Error(
|
|
163
|
-
`Failed to open program because program is of type ${program?.constructor.name}
|
|
163
|
+
`Failed to open program because program is of type ${program?.constructor.name} `,
|
|
164
164
|
);
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
167
|
} catch (error) {
|
|
168
168
|
logger.error(
|
|
169
|
-
"Failed to load store with address: " + storeOrAddress.toString()
|
|
169
|
+
"Failed to load store with address: " + storeOrAddress.toString(),
|
|
170
170
|
);
|
|
171
171
|
throw error;
|
|
172
172
|
}
|
|
173
173
|
} else {
|
|
174
|
-
if (options.parent
|
|
174
|
+
if (options.parent === program) {
|
|
175
175
|
throw new Error("Parent program can not be equal to the program");
|
|
176
176
|
}
|
|
177
177
|
|
|
@@ -185,7 +185,7 @@ export class Handler<T extends Manageable<any>> {
|
|
|
185
185
|
const existing = await this.checkProcessExisting(
|
|
186
186
|
program.address,
|
|
187
187
|
program,
|
|
188
|
-
options?.existing
|
|
188
|
+
options?.existing,
|
|
189
189
|
);
|
|
190
190
|
|
|
191
191
|
if (existing) {
|
|
@@ -205,13 +205,13 @@ export class Handler<T extends Manageable<any>> {
|
|
|
205
205
|
|
|
206
206
|
// TODO prevent resave if already saved
|
|
207
207
|
const address = await program.save(
|
|
208
|
-
this.properties.client.services.blocks
|
|
208
|
+
this.properties.client.services.blocks,
|
|
209
209
|
);
|
|
210
210
|
|
|
211
211
|
const existing = await this.checkProcessExisting(
|
|
212
212
|
address,
|
|
213
213
|
program,
|
|
214
|
-
options?.existing
|
|
214
|
+
options?.existing,
|
|
215
215
|
);
|
|
216
216
|
if (existing) {
|
|
217
217
|
return existing as S;
|
|
@@ -233,7 +233,7 @@ export class Handler<T extends Manageable<any>> {
|
|
|
233
233
|
return this._onProgamClose(p);
|
|
234
234
|
}
|
|
235
235
|
},
|
|
236
|
-
...options
|
|
236
|
+
...options,
|
|
237
237
|
// If the program opens more programs
|
|
238
238
|
// reset: options.reset,
|
|
239
239
|
});
|
|
@@ -254,7 +254,7 @@ export class Handler<T extends Manageable<any>> {
|
|
|
254
254
|
} else {
|
|
255
255
|
if (storeOrAddress.closed) {
|
|
256
256
|
address = await storeOrAddress.save(
|
|
257
|
-
this.properties.client.services.blocks
|
|
257
|
+
this.properties.client.services.blocks,
|
|
258
258
|
);
|
|
259
259
|
} else {
|
|
260
260
|
address = storeOrAddress.address;
|
package/src/index.ts
CHANGED
package/src/program.ts
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { getValuesWithType } from "./utils.js";
|
|
4
|
-
import { serialize, deserialize } from "@dao-xyz/borsh";
|
|
1
|
+
import { type Constructor, getSchema, variant } from "@dao-xyz/borsh";
|
|
2
|
+
import { deserialize, serialize } from "@dao-xyz/borsh";
|
|
5
3
|
import {
|
|
6
|
-
TypedEventTarget,
|
|
7
4
|
CustomEvent,
|
|
8
|
-
|
|
5
|
+
type PeerId as Libp2pPeerId,
|
|
6
|
+
TypedEventEmitter,
|
|
7
|
+
type TypedEventTarget,
|
|
9
8
|
} from "@libp2p/interface";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { PeerId as Libp2pPeerId } from "@libp2p/interface";
|
|
9
|
+
import { type Blocks, calculateRawCid } from "@peerbit/blocks-interface";
|
|
10
|
+
import { PublicSignKey, getPublicKeyFromPeerId } from "@peerbit/crypto";
|
|
13
11
|
import {
|
|
14
12
|
SubscriptionEvent,
|
|
15
|
-
UnsubcriptionEvent
|
|
13
|
+
UnsubcriptionEvent,
|
|
16
14
|
} from "@peerbit/pubsub-interface";
|
|
17
|
-
import { Address } from "./address.js";
|
|
15
|
+
import { type Address } from "./address.js";
|
|
16
|
+
import { type Client } from "./client.js";
|
|
18
17
|
import {
|
|
19
|
-
EventOptions,
|
|
18
|
+
type EventOptions,
|
|
20
19
|
Handler,
|
|
21
|
-
Manageable,
|
|
22
|
-
ProgramInitializationOptions,
|
|
23
|
-
addParent
|
|
20
|
+
type Manageable,
|
|
21
|
+
type ProgramInitializationOptions,
|
|
22
|
+
addParent,
|
|
24
23
|
} from "./handler.js";
|
|
24
|
+
import { getValuesWithType } from "./utils.js";
|
|
25
25
|
|
|
26
26
|
const intersection = (
|
|
27
27
|
a: Map<string, PublicSignKey> | undefined,
|
|
28
|
-
b: Map<string, PublicSignKey> | PublicSignKey[]
|
|
28
|
+
b: Map<string, PublicSignKey> | PublicSignKey[],
|
|
29
29
|
) => {
|
|
30
30
|
const newSet = new Map<string, PublicSignKey>();
|
|
31
31
|
|
|
@@ -84,7 +84,7 @@ class ProgramHandler extends Handler<Program> {
|
|
|
84
84
|
super({
|
|
85
85
|
client: properties.client,
|
|
86
86
|
shouldMonitor: (p) => p instanceof Program,
|
|
87
|
-
load: Program.load
|
|
87
|
+
load: Program.load,
|
|
88
88
|
});
|
|
89
89
|
}
|
|
90
90
|
}
|
|
@@ -95,7 +95,7 @@ type ExtractArgs<T> = T extends Program<infer Args> ? Args : never;
|
|
|
95
95
|
@variant(0)
|
|
96
96
|
export abstract class Program<
|
|
97
97
|
Args = any,
|
|
98
|
-
Events extends ProgramEvents = ProgramEvents
|
|
98
|
+
Events extends ProgramEvents = ProgramEvents,
|
|
99
99
|
> implements Manageable<Args>
|
|
100
100
|
{
|
|
101
101
|
private _node: ProgramClient;
|
|
@@ -112,7 +112,7 @@ export abstract class Program<
|
|
|
112
112
|
get address(): Address {
|
|
113
113
|
if (!this._address) {
|
|
114
114
|
throw new Error(
|
|
115
|
-
"Address does not exist, please open or save this program once to obtain it"
|
|
115
|
+
"Address does not exist, please open or save this program once to obtain it",
|
|
116
116
|
);
|
|
117
117
|
}
|
|
118
118
|
return this._address;
|
|
@@ -122,8 +122,13 @@ export abstract class Program<
|
|
|
122
122
|
this._address = address;
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
+
async calculateAddress(): Promise<Address> {
|
|
126
|
+
this._address = await calculateRawCid(serialize(this));
|
|
127
|
+
return this._address;
|
|
128
|
+
}
|
|
129
|
+
|
|
125
130
|
get events(): TypedEventTarget<Events> {
|
|
126
|
-
return this._events || (this._events = new TypedEventEmitter());
|
|
131
|
+
return this._events || (this._events = new TypedEventEmitter<Events>());
|
|
127
132
|
}
|
|
128
133
|
|
|
129
134
|
get closed(): boolean {
|
|
@@ -148,20 +153,20 @@ export abstract class Program<
|
|
|
148
153
|
|
|
149
154
|
async beforeOpen(
|
|
150
155
|
node: ProgramClient,
|
|
151
|
-
options?: ProgramInitializationOptions<Args, this
|
|
156
|
+
options?: ProgramInitializationOptions<Args, this>,
|
|
152
157
|
) {
|
|
153
158
|
// check that a discriminator exist
|
|
154
159
|
const schema = getSchema(this.constructor);
|
|
155
160
|
if (!schema || typeof schema.variant !== "string") {
|
|
156
161
|
throw new Error(
|
|
157
|
-
`Expecting class to be decorated with a string variant. Example:\n
|
|
162
|
+
`Expecting class to be decorated with a string variant. Example:\n'import { variant } "@dao-xyz/borsh"\n@variant("example-db")\nclass ${this.constructor.name} { ...`,
|
|
158
163
|
);
|
|
159
164
|
}
|
|
160
165
|
|
|
161
166
|
await this.save(node.services.blocks);
|
|
162
167
|
if (getAllParentAddresses(this as Program).includes(this.address)) {
|
|
163
168
|
throw new Error(
|
|
164
|
-
"Subprogram has same address as some parent program. This is not currently supported"
|
|
169
|
+
"Subprogram has same address as some parent program. This is not currently supported",
|
|
165
170
|
);
|
|
166
171
|
}
|
|
167
172
|
|
|
@@ -183,13 +188,13 @@ export abstract class Program<
|
|
|
183
188
|
"subscribe",
|
|
184
189
|
this._subscriptionEventListener ||
|
|
185
190
|
(this._subscriptionEventListener = (s) =>
|
|
186
|
-
!this.closed && this._emitJoinNetworkEvents(s.detail))
|
|
191
|
+
!this.closed && this._emitJoinNetworkEvents(s.detail)),
|
|
187
192
|
);
|
|
188
193
|
await this.node.services.pubsub.addEventListener(
|
|
189
194
|
"unsubscribe",
|
|
190
195
|
this._unsubscriptionEventListener ||
|
|
191
196
|
(this._unsubscriptionEventListener = (s) =>
|
|
192
|
-
!this.closed && this._emitLeaveNetworkEvents(s.detail))
|
|
197
|
+
!this.closed && this._emitLeaveNetworkEvents(s.detail)),
|
|
193
198
|
);
|
|
194
199
|
|
|
195
200
|
await this._eventOptions?.onBeforeOpen?.(this);
|
|
@@ -221,7 +226,7 @@ export abstract class Program<
|
|
|
221
226
|
for (const topic of allTopics) {
|
|
222
227
|
if (
|
|
223
228
|
!(await this.node.services.pubsub.getSubscribers(topic))?.find((x) =>
|
|
224
|
-
s.from.equals(x)
|
|
229
|
+
s.from.equals(x),
|
|
225
230
|
)
|
|
226
231
|
) {
|
|
227
232
|
return;
|
|
@@ -240,7 +245,7 @@ export abstract class Program<
|
|
|
240
245
|
for (const topic of allTopics) {
|
|
241
246
|
if (
|
|
242
247
|
(await this.node.services.pubsub.getSubscribers(topic))?.find((x) =>
|
|
243
|
-
s.from.equals(x)
|
|
248
|
+
s.from.equals(x),
|
|
244
249
|
)
|
|
245
250
|
) {
|
|
246
251
|
return;
|
|
@@ -250,10 +255,10 @@ export abstract class Program<
|
|
|
250
255
|
}
|
|
251
256
|
|
|
252
257
|
private _subscriptionEventListener: (
|
|
253
|
-
e: CustomEvent<SubscriptionEvent
|
|
258
|
+
e: CustomEvent<SubscriptionEvent>,
|
|
254
259
|
) => void;
|
|
255
260
|
private _unsubscriptionEventListener: (
|
|
256
|
-
e: CustomEvent<UnsubcriptionEvent
|
|
261
|
+
e: CustomEvent<UnsubcriptionEvent>,
|
|
257
262
|
) => void;
|
|
258
263
|
|
|
259
264
|
private async processEnd(type: "drop" | "close") {
|
|
@@ -288,13 +293,16 @@ export abstract class Program<
|
|
|
288
293
|
|
|
289
294
|
private async end(type: "drop" | "close", from?: Program): Promise<boolean> {
|
|
290
295
|
if (this.closed) {
|
|
296
|
+
if (type === "drop") {
|
|
297
|
+
throw new Error("Program is closed, cannot drop");
|
|
298
|
+
}
|
|
291
299
|
return true;
|
|
292
300
|
}
|
|
293
301
|
|
|
294
302
|
let parentIdx = -1;
|
|
295
303
|
let close = true;
|
|
296
304
|
if (this.parents) {
|
|
297
|
-
parentIdx = this.parents.findIndex((x) => x
|
|
305
|
+
parentIdx = this.parents.findIndex((x) => x === from);
|
|
298
306
|
if (parentIdx !== -1) {
|
|
299
307
|
if (this.parents.length === 1) {
|
|
300
308
|
close = true;
|
|
@@ -311,11 +319,11 @@ export abstract class Program<
|
|
|
311
319
|
if (end) {
|
|
312
320
|
this.node?.services.pubsub.removeEventListener(
|
|
313
321
|
"subscribe",
|
|
314
|
-
this._subscriptionEventListener
|
|
322
|
+
this._subscriptionEventListener,
|
|
315
323
|
);
|
|
316
324
|
this.node?.services.pubsub.removeEventListener(
|
|
317
325
|
"unsubscribe",
|
|
318
|
-
this._unsubscriptionEventListener
|
|
326
|
+
this._unsubscriptionEventListener,
|
|
319
327
|
);
|
|
320
328
|
|
|
321
329
|
this._eventOptions = undefined;
|
|
@@ -355,22 +363,22 @@ export abstract class Program<
|
|
|
355
363
|
*/
|
|
356
364
|
async waitFor(
|
|
357
365
|
other: PublicSignKey | Libp2pPeerId | (PublicSignKey | Libp2pPeerId)[],
|
|
358
|
-
options?: { signal?: AbortSignal; timeout?: number }
|
|
366
|
+
options?: { signal?: AbortSignal; timeout?: number },
|
|
359
367
|
): Promise<void> {
|
|
360
368
|
const ids = Array.isArray(other) ? other : [other];
|
|
361
369
|
const expectedHashes = new Set(
|
|
362
370
|
ids.map((x) =>
|
|
363
371
|
x instanceof PublicSignKey
|
|
364
372
|
? x.hashcode()
|
|
365
|
-
: getPublicKeyFromPeerId(x).hashcode()
|
|
366
|
-
)
|
|
373
|
+
: getPublicKeyFromPeerId(x).hashcode(),
|
|
374
|
+
),
|
|
367
375
|
);
|
|
368
376
|
|
|
369
377
|
// make sure nodes are reachable
|
|
370
378
|
await Promise.all(
|
|
371
379
|
ids.map((x) =>
|
|
372
|
-
this.node.services.pubsub.waitFor(x, { signal: options?.signal })
|
|
373
|
-
)
|
|
380
|
+
this.node.services.pubsub.waitFor(x, { signal: options?.signal }),
|
|
381
|
+
),
|
|
374
382
|
);
|
|
375
383
|
|
|
376
384
|
// wait for subscribing to topics
|
|
@@ -381,7 +389,7 @@ export abstract class Program<
|
|
|
381
389
|
options?.signal?.removeEventListener("abort", abortListener);
|
|
382
390
|
reject(new Error("Timeout"));
|
|
383
391
|
},
|
|
384
|
-
options?.timeout || 10 * 1000
|
|
392
|
+
options?.timeout || 10 * 1000,
|
|
385
393
|
);
|
|
386
394
|
|
|
387
395
|
const abortListener = (e: Event) => {
|
|
@@ -463,16 +471,14 @@ export abstract class Program<
|
|
|
463
471
|
|
|
464
472
|
async save(store: Blocks = this.node.services.blocks): Promise<Address> {
|
|
465
473
|
const existingAddress = this._address;
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
this._address = hash;
|
|
474
|
+
this._address = await store.put(serialize(this));
|
|
469
475
|
if (!this.address) {
|
|
470
476
|
throw new Error("Unexpected");
|
|
471
477
|
}
|
|
472
478
|
|
|
473
479
|
if (existingAddress && existingAddress !== this.address) {
|
|
474
480
|
throw new Error(
|
|
475
|
-
"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"
|
|
481
|
+
"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",
|
|
476
482
|
);
|
|
477
483
|
}
|
|
478
484
|
|
|
@@ -491,7 +497,7 @@ export abstract class Program<
|
|
|
491
497
|
store: Blocks,
|
|
492
498
|
options?: {
|
|
493
499
|
timeout?: number;
|
|
494
|
-
}
|
|
500
|
+
},
|
|
495
501
|
): Promise<P | undefined> {
|
|
496
502
|
const bytes = await store.get(address, options);
|
|
497
503
|
if (!bytes) {
|
|
@@ -506,29 +512,29 @@ export abstract class Program<
|
|
|
506
512
|
this: Constructor<T>,
|
|
507
513
|
address: string,
|
|
508
514
|
node: ProgramClient,
|
|
509
|
-
options?: ProgramInitializationOptions<ExtractArgs<T>, T
|
|
515
|
+
options?: ProgramInitializationOptions<ExtractArgs<T>, T>,
|
|
510
516
|
): Promise<T> {
|
|
511
517
|
const p = await Program.load<T>(address, node.services.blocks);
|
|
512
518
|
|
|
513
519
|
if (!p) {
|
|
514
520
|
throw new Error("Failed to load program");
|
|
515
521
|
}
|
|
516
|
-
await node.open<
|
|
522
|
+
await node.open<any>(p, options as any); // TODO fix types
|
|
517
523
|
return p as T;
|
|
518
524
|
}
|
|
519
525
|
}
|
|
520
526
|
|
|
521
527
|
export const getProgramFromVariants = <
|
|
522
|
-
T extends Program
|
|
528
|
+
T extends Program,
|
|
523
529
|
>(): Constructor<T>[] => {
|
|
524
|
-
const deps = Program.prototype[1000]; /// TODO improve BORSH lib to provide all necessary utility methods
|
|
530
|
+
const deps = (Program.prototype as any)[1000]; /// TODO improve BORSH lib to provide all necessary utility methods
|
|
525
531
|
return (deps || []) as Constructor<T>[];
|
|
526
532
|
};
|
|
527
533
|
|
|
528
534
|
export const getProgramFromVariant = <T extends Program>(
|
|
529
|
-
variant: string
|
|
535
|
+
variant: string,
|
|
530
536
|
): Constructor<T> | undefined => {
|
|
531
537
|
return getProgramFromVariants().filter(
|
|
532
|
-
(x) => getSchema(x).variant === variant
|
|
538
|
+
(x) => getSchema(x).variant === variant,
|
|
533
539
|
)[0] as Constructor<T>;
|
|
534
540
|
};
|
package/src/utils.ts
CHANGED
|
@@ -1,43 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
|
-
AbstractType,
|
|
3
|
-
Constructor,
|
|
4
|
-
|
|
5
|
-
StructKind
|
|
2
|
+
type AbstractType,
|
|
3
|
+
type Constructor,
|
|
4
|
+
getSchemasBottomUp,
|
|
6
5
|
} from "@dao-xyz/borsh";
|
|
7
6
|
|
|
8
|
-
const MAX_PROTOTYPE_SEARCH = 500;
|
|
9
|
-
const PROTOTYPE_DESERIALIZATION_HANDLER_OFFSET = 500;
|
|
10
|
-
const PROTOTYPE_DEPENDENCY_HANDLER_OFFSET =
|
|
11
|
-
PROTOTYPE_DESERIALIZATION_HANDLER_OFFSET + MAX_PROTOTYPE_SEARCH;
|
|
12
|
-
const getDependencies = <T>(
|
|
13
|
-
ctor: Constructor<T> | AbstractType<T>,
|
|
14
|
-
offset: number
|
|
15
|
-
): Constructor<T> | AbstractType<T> | undefined =>
|
|
16
|
-
ctor.prototype[PROTOTYPE_DEPENDENCY_HANDLER_OFFSET + offset];
|
|
17
|
-
|
|
18
|
-
const getSchemasBottomUp = <T>(
|
|
19
|
-
ctor: Constructor<T> | AbstractType<T>
|
|
20
|
-
): StructKind[] => {
|
|
21
|
-
let last: StructKind | undefined = undefined;
|
|
22
|
-
const ret: StructKind[] = [];
|
|
23
|
-
for (let i = 0; i < 1000; i++) {
|
|
24
|
-
const curr = getSchema(ctor, i);
|
|
25
|
-
if (!curr) {
|
|
26
|
-
if (last && !getDependencies(ctor, i)?.length) {
|
|
27
|
-
return ret;
|
|
28
|
-
}
|
|
29
|
-
} else {
|
|
30
|
-
ret.push(curr);
|
|
31
|
-
last = curr;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return ret;
|
|
35
|
-
};
|
|
36
|
-
|
|
37
7
|
export const getValuesWithType = <T>(
|
|
38
8
|
from: any,
|
|
39
9
|
type: Constructor<T> | AbstractType<T>,
|
|
40
|
-
stopAtType?: Constructor<any> | AbstractType<any
|
|
10
|
+
stopAtType?: Constructor<any> | AbstractType<any>,
|
|
41
11
|
): T[] => {
|
|
42
12
|
const schemas = getSchemasBottomUp(from.constructor);
|
|
43
13
|
const values: T[] = [];
|
|
@@ -47,7 +17,7 @@ export const getValuesWithType = <T>(
|
|
|
47
17
|
if (!value) {
|
|
48
18
|
continue;
|
|
49
19
|
}
|
|
50
|
-
const p = (element) => {
|
|
20
|
+
const p = (element: any) => {
|
|
51
21
|
if (element && element instanceof type) {
|
|
52
22
|
values.push(element as T);
|
|
53
23
|
} else if (typeof element === "object") {
|
package/lib/esm/address.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export type Address = string;
|
package/lib/esm/client.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { PeerId as Libp2pPeerId } from "@libp2p/interface";
|
|
2
|
-
import { Blocks } from "@peerbit/blocks-interface";
|
|
3
|
-
import { PubSub } from "@peerbit/pubsub-interface";
|
|
4
|
-
import { Ed25519PublicKey, Identity } from "@peerbit/crypto";
|
|
5
|
-
import { Keychain } from "@peerbit/keychain";
|
|
6
|
-
import type { AnyStore } from "@peerbit/any-store";
|
|
7
|
-
import { Multiaddr } from "@multiformats/multiaddr";
|
|
8
|
-
import { Address } from "./address.js";
|
|
9
|
-
import { CanOpen, ExtractArgs, Manageable, OpenOptions } from "./handler.js";
|
|
10
|
-
export interface Client<T extends Manageable<ExtractArgs<T>>> {
|
|
11
|
-
peerId: Libp2pPeerId;
|
|
12
|
-
identity: Identity<Ed25519PublicKey>;
|
|
13
|
-
getMultiaddrs: () => Multiaddr[];
|
|
14
|
-
dial(address: string | Multiaddr | Multiaddr[]): Promise<boolean>;
|
|
15
|
-
services: {
|
|
16
|
-
pubsub: PubSub;
|
|
17
|
-
blocks: Blocks;
|
|
18
|
-
keychain: Keychain;
|
|
19
|
-
};
|
|
20
|
-
storage: AnyStore;
|
|
21
|
-
start(): Promise<void>;
|
|
22
|
-
stop(): Promise<void>;
|
|
23
|
-
open<S extends T & CanOpen<ExtractArgs<S>>>(program: S | Address, options?: OpenOptions<S>): Promise<S>;
|
|
24
|
-
}
|
package/lib/esm/client.js
DELETED
package/lib/esm/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":""}
|
package/lib/esm/handler.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/handler.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
|
package/lib/esm/program.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/program.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,SAAS,EAET,MAAM,gBAAgB,CAAC;AAExB,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,wCAAwC,GAAG,GAAG,CAAC;AACrD,MAAM,mCAAmC,GACxC,wCAAwC,GAAG,oBAAoB,CAAC;AACjE,MAAM,eAAe,GAAG,CACvB,IAAsC,EACtC,MAAc,EACiC,EAAE,CACjD,IAAI,CAAC,SAAS,CAAC,mCAAmC,GAAG,MAAM,CAAC,CAAC;AAE9D,MAAM,kBAAkB,GAAG,CAC1B,IAAsC,EACvB,EAAE;IACjB,IAAI,IAAI,GAA2B,SAAS,CAAC;IAC7C,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;gBAC/C,OAAO,GAAG,CAAC;YACZ,CAAC;QACF,CAAC;aAAM,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,GAAG,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAChC,IAAS,EACT,IAAsC,EACtC,UAAiD,EAC3C,EAAE;IACR,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACZ,SAAS;YACV,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE;gBACrB,IAAI,OAAO,IAAI,OAAO,YAAY,IAAI,EAAE,CAAC;oBACxC,MAAM,CAAC,IAAI,CAAC,OAAY,CAAC,CAAC;gBAC3B,CAAC;qBAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACxC,IAAI,UAAU,IAAI,OAAO,YAAY,UAAU,EAAE,CAAC;wBACjD,OAAO;oBACR,CAAC;oBACD,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;oBAClE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC1B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,CAAC,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC,CAAC;YACF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;oBAC7B,CAAC,CAAC,OAAO,CAAC,CAAC;gBACZ,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,CAAC,CAAC,KAAK,CAAC,CAAC;YACV,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC,CAAC"}
|
|
File without changes
|
|
File without changes
|