@xyo-network/bridge-worker 3.6.8 → 3.6.10
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/browser/WorkerBridgeConfig.d.ts +2 -2
- package/dist/browser/WorkerBridgeConfig.d.ts.map +1 -1
- package/dist/browser/index.mjs +38 -52
- package/dist/browser/index.mjs.map +1 -1
- package/dist/neutral/WorkerBridgeConfig.d.ts +2 -2
- package/dist/neutral/WorkerBridgeConfig.d.ts.map +1 -1
- package/dist/neutral/index.mjs +38 -52
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/node/WorkerBridgeConfig.d.ts +2 -2
- package/dist/node/WorkerBridgeConfig.d.ts.map +1 -1
- package/dist/node/index.mjs +38 -52
- package/dist/node/index.mjs.map +1 -1
- package/package.json +20 -20
- package/src/WorkerBridgeConfig.ts +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { EmptyObject } from '@xylabs/object';
|
|
2
2
|
import type { BridgeConfig } from '@xyo-network/bridge-model';
|
|
3
|
-
export
|
|
4
|
-
export
|
|
3
|
+
export declare const WorkerBridgeConfigSchema: "network.xyo.bridge.worker.config";
|
|
4
|
+
export type WorkerBridgeConfigSchema = typeof WorkerBridgeConfigSchema;
|
|
5
5
|
export type WorkerBridgeConfig<TConfig extends EmptyObject = EmptyObject> = BridgeConfig<TConfig, WorkerBridgeConfigSchema>;
|
|
6
6
|
//# sourceMappingURL=WorkerBridgeConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerBridgeConfig.d.ts","sourceRoot":"","sources":["../../src/WorkerBridgeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,
|
|
1
|
+
{"version":3,"file":"WorkerBridgeConfig.d.ts","sourceRoot":"","sources":["../../src/WorkerBridgeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,eAAO,MAAM,wBAAwB,EAAG,kCAA2C,CAAA;AACnF,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAA;AAEtE,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW,IAAI,YAAY,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAA"}
|
package/dist/browser/index.mjs
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
|
-
var
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
+
var __reflectGet = Reflect.get;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
7
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
8
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
9
|
+
if (decorator = decorators[i])
|
|
10
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
11
|
+
if (kind && result) __defProp(target, key, result);
|
|
12
|
+
return result;
|
|
13
|
+
};
|
|
14
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
15
|
+
var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
|
|
3
16
|
|
|
4
17
|
// src/defaultNodeManifest.ts
|
|
5
18
|
import { ArchivistConfigSchema } from "@xyo-network/archivist-model";
|
|
@@ -49,11 +62,6 @@ import { forget } from "@xylabs/forget";
|
|
|
49
62
|
import { HDWallet } from "@xyo-network/account";
|
|
50
63
|
import { ManifestWrapper } from "@xyo-network/manifest";
|
|
51
64
|
var WorkerNodeHost = class {
|
|
52
|
-
static {
|
|
53
|
-
__name(this, "WorkerNodeHost");
|
|
54
|
-
}
|
|
55
|
-
node;
|
|
56
|
-
logger;
|
|
57
65
|
constructor(node, logger) {
|
|
58
66
|
this.node = node;
|
|
59
67
|
this.logger = logger;
|
|
@@ -67,16 +75,13 @@ var WorkerNodeHost = class {
|
|
|
67
75
|
return worker;
|
|
68
76
|
}
|
|
69
77
|
static start(logger) {
|
|
70
|
-
const listener =
|
|
78
|
+
const listener = async (event) => {
|
|
71
79
|
switch (event.data.type) {
|
|
72
80
|
case "createNode": {
|
|
73
81
|
const message = event.data;
|
|
74
82
|
const worker = await this.create(message.manifest);
|
|
75
83
|
logger?.log(`createNode: ${worker.node.address}`);
|
|
76
|
-
const response = {
|
|
77
|
-
address: worker.node.address,
|
|
78
|
-
type: "nodeCreated"
|
|
79
|
-
};
|
|
84
|
+
const response = { address: worker.node.address, type: "nodeCreated" };
|
|
80
85
|
postMessage(response);
|
|
81
86
|
break;
|
|
82
87
|
}
|
|
@@ -86,21 +91,24 @@ var WorkerNodeHost = class {
|
|
|
86
91
|
break;
|
|
87
92
|
}
|
|
88
93
|
}
|
|
89
|
-
}
|
|
94
|
+
};
|
|
90
95
|
self.addEventListener("message", (event) => {
|
|
91
96
|
forget(listener(event));
|
|
92
97
|
});
|
|
93
98
|
}
|
|
94
99
|
attachNode(node) {
|
|
95
|
-
const listener =
|
|
100
|
+
const listener = async (event) => {
|
|
96
101
|
const message = event.data;
|
|
97
102
|
switch (message.type) {
|
|
98
103
|
case "xyoQuery": {
|
|
99
104
|
const message2 = event.data;
|
|
100
|
-
const {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
105
|
+
const {
|
|
106
|
+
address,
|
|
107
|
+
msgId,
|
|
108
|
+
query,
|
|
109
|
+
payloads
|
|
110
|
+
} = message2;
|
|
111
|
+
const mod = address ? await node.resolve(address, { direction: "down" }) : node;
|
|
104
112
|
if (mod) {
|
|
105
113
|
const result = {
|
|
106
114
|
address,
|
|
@@ -117,7 +125,7 @@ var WorkerNodeHost = class {
|
|
|
117
125
|
break;
|
|
118
126
|
}
|
|
119
127
|
}
|
|
120
|
-
}
|
|
128
|
+
};
|
|
121
129
|
self.addEventListener("message", (event) => {
|
|
122
130
|
forget(listener(event));
|
|
123
131
|
});
|
|
@@ -127,38 +135,22 @@ var WorkerNodeHost = class {
|
|
|
127
135
|
// src/WorkerBridge.ts
|
|
128
136
|
import { assertEx } from "@xylabs/assert";
|
|
129
137
|
import { AbstractBridge } from "@xyo-network/bridge-abstract";
|
|
130
|
-
import {
|
|
138
|
+
import {
|
|
139
|
+
creatableModule
|
|
140
|
+
} from "@xyo-network/module-model";
|
|
131
141
|
import { LRUCache } from "lru-cache";
|
|
132
142
|
|
|
133
143
|
// src/WorkerBridgeConfig.ts
|
|
134
144
|
var WorkerBridgeConfigSchema = "network.xyo.bridge.worker.config";
|
|
135
145
|
|
|
136
146
|
// src/WorkerBridge.ts
|
|
137
|
-
|
|
138
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
139
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
140
|
-
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;
|
|
141
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
142
|
-
}
|
|
143
|
-
__name(_ts_decorate, "_ts_decorate");
|
|
144
|
-
var WorkerBridge = class _WorkerBridge extends AbstractBridge {
|
|
145
|
-
static {
|
|
146
|
-
__name(this, "WorkerBridge");
|
|
147
|
-
}
|
|
148
|
-
static configSchemas = [
|
|
149
|
-
...super.configSchemas,
|
|
150
|
-
WorkerBridgeConfigSchema
|
|
151
|
-
];
|
|
152
|
-
static defaultConfigSchema = WorkerBridgeConfigSchema;
|
|
147
|
+
var WorkerBridge = class extends AbstractBridge {
|
|
153
148
|
_discoverCache;
|
|
154
149
|
_targetConfigs = {};
|
|
155
150
|
_targetQueries = {};
|
|
156
151
|
get discoverCache() {
|
|
157
152
|
const config = this.discoverCacheConfig;
|
|
158
|
-
this._discoverCache = this._discoverCache ?? new LRUCache({
|
|
159
|
-
ttlAutopurge: true,
|
|
160
|
-
...config
|
|
161
|
-
});
|
|
153
|
+
this._discoverCache = this._discoverCache ?? new LRUCache({ ttlAutopurge: true, ...config });
|
|
162
154
|
return this._discoverCache;
|
|
163
155
|
}
|
|
164
156
|
get discoverCacheConfig() {
|
|
@@ -174,12 +166,9 @@ var WorkerBridge = class _WorkerBridge extends AbstractBridge {
|
|
|
174
166
|
}
|
|
175
167
|
static async createWorkerNode(manifest = defaultPackageManifest) {
|
|
176
168
|
const worker = new Worker(new URL("worker/Worker.ts", import.meta?.url ?? __filename));
|
|
177
|
-
worker.postMessage({
|
|
178
|
-
manifest,
|
|
179
|
-
type: "createNode"
|
|
180
|
-
});
|
|
169
|
+
worker.postMessage({ manifest, type: "createNode" });
|
|
181
170
|
await new Promise((resolve, reject) => {
|
|
182
|
-
const eventFunc =
|
|
171
|
+
const eventFunc = (event) => {
|
|
183
172
|
const timeout = setTimeout(() => {
|
|
184
173
|
console.log("Node creation timeout");
|
|
185
174
|
worker.removeEventListener("message", eventFunc);
|
|
@@ -198,15 +187,10 @@ var WorkerBridge = class _WorkerBridge extends AbstractBridge {
|
|
|
198
187
|
break;
|
|
199
188
|
}
|
|
200
189
|
}
|
|
201
|
-
}
|
|
190
|
+
};
|
|
202
191
|
worker.addEventListener("message", eventFunc);
|
|
203
192
|
});
|
|
204
|
-
const bridge = await
|
|
205
|
-
config: {
|
|
206
|
-
schema: WorkerBridgeConfigSchema
|
|
207
|
-
},
|
|
208
|
-
worker
|
|
209
|
-
});
|
|
193
|
+
const bridge = await WorkerBridge.create({ config: { schema: WorkerBridgeConfigSchema }, worker });
|
|
210
194
|
await bridge.start();
|
|
211
195
|
return bridge;
|
|
212
196
|
}
|
|
@@ -223,7 +207,9 @@ var WorkerBridge = class _WorkerBridge extends AbstractBridge {
|
|
|
223
207
|
return [];
|
|
224
208
|
}
|
|
225
209
|
};
|
|
226
|
-
WorkerBridge
|
|
210
|
+
__publicField(WorkerBridge, "configSchemas", [...__superGet(WorkerBridge, WorkerBridge, "configSchemas"), WorkerBridgeConfigSchema]);
|
|
211
|
+
__publicField(WorkerBridge, "defaultConfigSchema", WorkerBridgeConfigSchema);
|
|
212
|
+
WorkerBridge = __decorateClass([
|
|
227
213
|
creatableModule()
|
|
228
214
|
], WorkerBridge);
|
|
229
215
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/defaultNodeManifest.ts","../../src/worker/WorkerNodeHost.ts","../../src/WorkerBridge.ts","../../src/WorkerBridgeConfig.ts"],"sourcesContent":["import { ArchivistConfigSchema } from '@xyo-network/archivist-model'\nimport type { PackageManifestPayload } from '@xyo-network/manifest-model'\nimport { PackageManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { NodeConfigSchema } from '@xyo-network/node-model'\nimport { SentinelConfigSchema } from '@xyo-network/sentinel-model'\n\nexport const defaultPackageManifest: PackageManifestPayload = {\n nodes: [\n {\n config: {\n name: 'SimpleMemoryDapp',\n schema: NodeConfigSchema,\n },\n modules: {\n private: [\n {\n config: {\n name: 'ScratchArchivist',\n schema: ArchivistConfigSchema,\n },\n },\n ],\n public: [\n {\n config: {\n name: 'SimpleArchivist',\n schema: ArchivistConfigSchema,\n },\n },\n {\n config: {\n name: 'SimpleSentinel',\n schema: SentinelConfigSchema,\n },\n },\n ],\n },\n },\n ],\n schema: PackageManifestPayloadSchema,\n}\n","import { generateMnemonic } from '@scure/bip39'\nimport { wordlist } from '@scure/bip39/wordlists/english'\nimport { forget } from '@xylabs/forget'\nimport type { Address } from '@xylabs/hex'\nimport type { Logger } from '@xylabs/logger'\nimport { HDWallet } from '@xyo-network/account'\nimport type { PackageManifestPayload } from '@xyo-network/manifest'\nimport { ManifestWrapper } from '@xyo-network/manifest'\nimport type { NodeInstance } from '@xyo-network/node-model'\n\nimport type {\n Message, QueryMessage, QueryResultMessage,\n} from '../WorkerBridge.ts'\n\nexport type QueryEvent = MessageEvent<QueryMessage>\n\nexport interface CreateNodeMessage extends Message<'createNode'> {\n manifest: PackageManifestPayload\n}\n\nexport type CreateNodeEvent = MessageEvent<CreateNodeMessage>\n\nexport interface NodeCreatedMessage extends Message<'nodeCreated'> {\n address: Address\n}\n\nexport class WorkerNodeHost {\n constructor(\n protected node: NodeInstance,\n protected logger?: Logger,\n ) {}\n\n static async create(config: PackageManifestPayload) {\n const mnemonic = generateMnemonic(wordlist, 256)\n const manifest = new ManifestWrapper(config, await HDWallet.fromPhrase(mnemonic))\n const [node] = await manifest.loadNodes()\n const worker = new this(node)\n worker.attachNode(node)\n return worker\n }\n\n static start(logger?: Logger) {\n const listener = async (event: MessageEvent) => {\n switch (event.data.type) {\n case 'createNode': {\n const message: CreateNodeMessage = event.data\n const worker = await this.create(message.manifest)\n logger?.log(`createNode: ${worker.node.address}`)\n const response: NodeCreatedMessage = { address: worker.node.address, type: 'nodeCreated' }\n postMessage(response)\n break\n }\n default: {\n const message: Message = event.data\n logger?.debug(`Unknown Event (Static) [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n\n self.addEventListener('message', (event: MessageEvent) => {\n forget(listener(event))\n })\n }\n\n private attachNode(node: NodeInstance) {\n const listener = async (event: MessageEvent) => {\n const message = event.data as Message\n switch (message.type) {\n case 'xyoQuery': {\n const message: QueryMessage = event.data\n const {\n address, msgId, query, payloads,\n } = message\n const mod = address ? await node.resolve(address, { direction: 'down' }) : node\n if (mod) {\n const result: QueryResultMessage = {\n address, msgId, result: await mod.query(query, payloads),\n }\n self.postMessage(result)\n }\n break\n }\n default: {\n const message: Message = event.data\n this.logger?.debug(`Unknown Event [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n\n self.addEventListener('message', (event: MessageEvent) => {\n forget(listener(event))\n })\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { AbstractBridge } from '@xyo-network/bridge-abstract'\nimport {\n BridgeExposeOptions, BridgeModule, BridgeUnexposeOptions,\n} from '@xyo-network/bridge-model'\nimport { PackageManifestPayload } from '@xyo-network/manifest-model'\nimport {\n AnyConfigSchema,\n CacheConfig,\n creatableModule,\n ModuleConfig,\n ModuleInstance,\n ModuleParams,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nimport { defaultPackageManifest } from './defaultNodeManifest.ts'\nimport { WorkerBridgeConfig, WorkerBridgeConfigSchema } from './WorkerBridgeConfig.ts'\n\nexport type WorkerBridgeParams<TConfig extends AnyConfigSchema<WorkerBridgeConfig> = AnyConfigSchema<WorkerBridgeConfig>> = ModuleParams<\n TConfig,\n {\n worker?: Worker\n }\n>\n\nexport interface Message<T extends string = string> {\n type: T\n}\n\nexport interface QueryMessage extends Message<'xyoQuery'> {\n address: Address\n msgId?: string\n payloads?: Payload[]\n query: QueryBoundWitness\n}\n\nexport interface QueryResultMessage {\n address: Address\n msgId?: string\n result: ModuleQueryResult\n}\n\n@creatableModule()\nexport class WorkerBridge<TParams extends WorkerBridgeParams = WorkerBridgeParams> extends AbstractBridge<TParams> implements BridgeModule<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, WorkerBridgeConfigSchema]\n static override readonly defaultConfigSchema: Schema = WorkerBridgeConfigSchema\n\n private _discoverCache?: LRUCache<string, Payload[]>\n private _targetConfigs: Record<string, ModuleConfig> = {}\n private _targetQueries: Record<string, string[]> = {}\n\n get discoverCache() {\n const config = this.discoverCacheConfig\n this._discoverCache = this._discoverCache ?? new LRUCache<string, Payload[]>({ ttlAutopurge: true, ...config })\n return this._discoverCache\n }\n\n get discoverCacheConfig(): LRUCache.Options<string, Payload[], unknown> {\n const discoverCacheConfig: CacheConfig | undefined = {}\n return {\n max: 100, ttl: 1000 * 60 * 5, ...discoverCacheConfig,\n }\n }\n\n get worker(): Worker {\n return assertEx(this.params.worker)\n }\n\n static async createWorkerNode(manifest: PackageManifestPayload = defaultPackageManifest as PackageManifestPayload) {\n const worker = new Worker(new URL('worker/Worker.ts', import.meta?.url ?? __filename))\n worker.postMessage({ manifest, type: 'createNode' })\n\n await new Promise((resolve, reject) => {\n const eventFunc = (event: MessageEvent) => {\n const timeout = setTimeout(() => {\n console.log('Node creation timeout')\n worker.removeEventListener('message', eventFunc)\n reject('Timeout')\n }, 1000)\n switch (event.data.type) {\n case 'nodeCreated': {\n clearTimeout(timeout)\n worker.removeEventListener('message', eventFunc)\n resolve(true)\n break\n }\n default: {\n const message: Message = event.data\n console.log(`Unknown Event (nodeCreated listener) [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n worker.addEventListener('message', eventFunc)\n })\n\n const bridge = await WorkerBridge.create({ config: { schema: WorkerBridgeConfigSchema }, worker })\n await bridge.start()\n return bridge\n }\n\n override exposeHandler(_id: string, _options?: BridgeExposeOptions | undefined): Promisable<ModuleInstance[]> {\n return []\n }\n\n override exposedHandler(): Promisable<Address[]> {\n return []\n }\n\n override getRoots(_force?: boolean | undefined): Promise<ModuleInstance[]> {\n return Promise.resolve([])\n }\n\n override unexposeHandler(_id: string, _options?: BridgeUnexposeOptions | undefined): Promisable<ModuleInstance[]> {\n return []\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type { BridgeConfig } from '@xyo-network/bridge-model'\n\nexport type WorkerBridgeConfigSchema = 'network.xyo.bridge.worker.config'\nexport const WorkerBridgeConfigSchema: WorkerBridgeConfigSchema = 'network.xyo.bridge.worker.config'\n\nexport type WorkerBridgeConfig<TConfig extends EmptyObject = EmptyObject> = BridgeConfig<TConfig, WorkerBridgeConfigSchema>\n"],"mappings":";;;;AAAA,SAASA,6BAA6B;AAEtC,SAASC,oCAAoC;AAC7C,SAASC,wBAAwB;AACjC,SAASC,4BAA4B;AAE9B,IAAMC,yBAAiD;EAC5DC,OAAO;IACL;MACEC,QAAQ;QACNC,MAAM;QACNC,QAAQN;MACV;MACAO,SAAS;QACPC,SAAS;UACP;YACEJ,QAAQ;cACNC,MAAM;cACNC,QAAQR;YACV;UACF;;QAEFW,QAAQ;UACN;YACEL,QAAQ;cACNC,MAAM;cACNC,QAAQR;YACV;UACF;UACA;YACEM,QAAQ;cACNC,MAAM;cACNC,QAAQL;YACV;UACF;;MAEJ;IACF;;EAEFK,QAAQP;AACV;;;ACxCA,SAASW,wBAAwB;AACjC,SAASC,gBAAgB;AACzB,SAASC,cAAc;AAGvB,SAASC,gBAAgB;AAEzB,SAASC,uBAAuB;AAmBzB,IAAMC,iBAAN,MAAMA;EA1Bb,OA0BaA;;;;;EACXC,YACYC,MACAC,QACV;SAFUD,OAAAA;SACAC,SAAAA;EACT;EAEH,aAAaC,OAAOC,QAAgC;AAClD,UAAMC,WAAWC,iBAAiBC,UAAU,GAAA;AAC5C,UAAMC,WAAW,IAAIC,gBAAgBL,QAAQ,MAAMM,SAASC,WAAWN,QAAAA,CAAAA;AACvE,UAAM,CAACJ,IAAAA,IAAQ,MAAMO,SAASI,UAAS;AACvC,UAAMC,SAAS,IAAI,KAAKZ,IAAAA;AACxBY,WAAOC,WAAWb,IAAAA;AAClB,WAAOY;EACT;EAEA,OAAOE,MAAMb,QAAiB;AAC5B,UAAMc,WAAW,8BAAOC,UAAAA;AACtB,cAAQA,MAAMC,KAAKC,MAAI;QACrB,KAAK,cAAc;AACjB,gBAAMC,UAA6BH,MAAMC;AACzC,gBAAML,SAAS,MAAM,KAAKV,OAAOiB,QAAQZ,QAAQ;AACjDN,kBAAQmB,IAAI,eAAeR,OAAOZ,KAAKqB,OAAO,EAAE;AAChD,gBAAMC,WAA+B;YAAED,SAAST,OAAOZ,KAAKqB;YAASH,MAAM;UAAc;AACzFK,sBAAYD,QAAAA;AACZ;QACF;QACA,SAAS;AACP,gBAAMH,UAAmBH,MAAMC;AAC/BhB,kBAAQuB,MAAM,2BAA2BC,KAAKC,UAAUV,KAAAA,CAAAA,MAAYS,KAAKC,UAAUP,SAAS,MAAM,CAAA,CAAA,EAAI;AACtG;QACF;MACF;IACF,GAhBiB;AAkBjBQ,SAAKC,iBAAiB,WAAW,CAACZ,UAAAA;AAChCa,aAAOd,SAASC,KAAAA,CAAAA;IAClB,CAAA;EACF;EAEQH,WAAWb,MAAoB;AACrC,UAAMe,WAAW,8BAAOC,UAAAA;AACtB,YAAMG,UAAUH,MAAMC;AACtB,cAAQE,QAAQD,MAAI;QAClB,KAAK,YAAY;AACf,gBAAMC,WAAwBH,MAAMC;AACpC,gBAAM,EACJI,SAASS,OAAOC,OAAOC,SAAQ,IAC7Bb;AACJ,gBAAMc,MAAMZ,UAAU,MAAMrB,KAAKkC,QAAQb,SAAS;YAAEc,WAAW;UAAO,CAAA,IAAKnC;AAC3E,cAAIiC,KAAK;AACP,kBAAMG,SAA6B;cACjCf;cAASS;cAAOM,QAAQ,MAAMH,IAAIF,MAAMA,OAAOC,QAAAA;YACjD;AACAL,iBAAKJ,YAAYa,MAAAA;UACnB;AACA;QACF;QACA,SAAS;AACP,gBAAMjB,WAAmBH,MAAMC;AAC/B,eAAKhB,QAAQuB,MAAM,kBAAkBC,KAAKC,UAAUV,KAAAA,CAAAA,MAAYS,KAAKC,UAAUP,UAAS,MAAM,CAAA,CAAA,EAAI;AAClG;QACF;MACF;IACF,GAvBiB;AAyBjBQ,SAAKC,iBAAiB,WAAW,CAACZ,UAAAA;AAChCa,aAAOd,SAASC,KAAAA,CAAAA;IAClB,CAAA;EACF;AACF;;;AC/FA,SAASqB,gBAAgB;AAIzB,SAASC,sBAAsB;AAK/B,SAGEC,uBAKK;AAEP,SAASC,gBAAgB;;;ACflB,IAAMC,2BAAqD;;;;;;;;;;AD6C3D,IAAMC,eAAN,MAAMA,sBAA8EC,eAAAA;SAAAA;;;EACzF,OAAyBC,gBAA0B;OAAI,MAAMA;IAAeC;;EAC5E,OAAyBC,sBAA8BD;EAE/CE;EACAC,iBAA+C,CAAC;EAChDC,iBAA2C,CAAC;EAEpD,IAAIC,gBAAgB;AAClB,UAAMC,SAAS,KAAKC;AACpB,SAAKL,iBAAiB,KAAKA,kBAAkB,IAAIM,SAA4B;MAAEC,cAAc;MAAM,GAAGH;IAAO,CAAA;AAC7G,WAAO,KAAKJ;EACd;EAEA,IAAIK,sBAAoE;AACtE,UAAMA,sBAA+C,CAAC;AACtD,WAAO;MACLG,KAAK;MAAKC,KAAK,MAAO,KAAK;MAAG,GAAGJ;IACnC;EACF;EAEA,IAAIK,SAAiB;AACnB,WAAOC,SAAS,KAAKC,OAAOF,MAAM;EACpC;EAEA,aAAaG,iBAAiBC,WAAmCC,wBAAkD;AACjH,UAAML,SAAS,IAAIM,OAAO,IAAIC,IAAI,oBAAoB,aAAaC,OAAOC,UAAAA,CAAAA;AAC1ET,WAAOU,YAAY;MAAEN;MAAUO,MAAM;IAAa,CAAA;AAElD,UAAM,IAAIC,QAAQ,CAACC,SAASC,WAAAA;AAC1B,YAAMC,YAAY,wBAACC,UAAAA;AACjB,cAAMC,UAAUC,WAAW,MAAA;AACzBC,kBAAQC,IAAI,uBAAA;AACZpB,iBAAOqB,oBAAoB,WAAWN,SAAAA;AACtCD,iBAAO,SAAA;QACT,GAAG,GAAA;AACH,gBAAQE,MAAMM,KAAKX,MAAI;UACrB,KAAK,eAAe;AAClBY,yBAAaN,OAAAA;AACbjB,mBAAOqB,oBAAoB,WAAWN,SAAAA;AACtCF,oBAAQ,IAAA;AACR;UACF;UACA,SAAS;AACP,kBAAMW,UAAmBR,MAAMM;AAC/BH,oBAAQC,IAAI,yCAAyCK,KAAKC,UAAUV,KAAAA,CAAAA,MAAYS,KAAKC,UAAUF,SAAS,MAAM,CAAA,CAAA,EAAI;AAClH;UACF;QACF;MACF,GAnBkB;AAoBlBxB,aAAO2B,iBAAiB,WAAWZ,SAAAA;IACrC,CAAA;AAEA,UAAMa,SAAS,MAAM3C,cAAa4C,OAAO;MAAEnC,QAAQ;QAAEoC,QAAQ1C;MAAyB;MAAGY;IAAO,CAAA;AAChG,UAAM4B,OAAOG,MAAK;AAClB,WAAOH;EACT;EAESI,cAAcC,KAAaC,UAA0E;AAC5G,WAAO,CAAA;EACT;EAESC,iBAAwC;AAC/C,WAAO,CAAA;EACT;EAESC,SAASC,QAAyD;AACzE,WAAOzB,QAAQC,QAAQ,CAAA,CAAE;EAC3B;EAESyB,gBAAgBL,KAAaC,UAA4E;AAChH,WAAO,CAAA;EACT;AACF;;;;","names":["ArchivistConfigSchema","PackageManifestPayloadSchema","NodeConfigSchema","SentinelConfigSchema","defaultPackageManifest","nodes","config","name","schema","modules","private","public","generateMnemonic","wordlist","forget","HDWallet","ManifestWrapper","WorkerNodeHost","constructor","node","logger","create","config","mnemonic","generateMnemonic","wordlist","manifest","ManifestWrapper","HDWallet","fromPhrase","loadNodes","worker","attachNode","start","listener","event","data","type","message","log","address","response","postMessage","debug","JSON","stringify","self","addEventListener","forget","msgId","query","payloads","mod","resolve","direction","result","assertEx","AbstractBridge","creatableModule","LRUCache","WorkerBridgeConfigSchema","WorkerBridge","AbstractBridge","configSchemas","WorkerBridgeConfigSchema","defaultConfigSchema","_discoverCache","_targetConfigs","_targetQueries","discoverCache","config","discoverCacheConfig","LRUCache","ttlAutopurge","max","ttl","worker","assertEx","params","createWorkerNode","manifest","defaultPackageManifest","Worker","URL","url","__filename","postMessage","type","Promise","resolve","reject","eventFunc","event","timeout","setTimeout","console","log","removeEventListener","data","clearTimeout","message","JSON","stringify","addEventListener","bridge","create","schema","start","exposeHandler","_id","_options","exposedHandler","getRoots","_force","unexposeHandler"]}
|
|
1
|
+
{"version":3,"sources":["../../src/defaultNodeManifest.ts","../../src/worker/WorkerNodeHost.ts","../../src/WorkerBridge.ts","../../src/WorkerBridgeConfig.ts"],"sourcesContent":["import { ArchivistConfigSchema } from '@xyo-network/archivist-model'\nimport type { PackageManifestPayload } from '@xyo-network/manifest-model'\nimport { PackageManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { NodeConfigSchema } from '@xyo-network/node-model'\nimport { SentinelConfigSchema } from '@xyo-network/sentinel-model'\n\nexport const defaultPackageManifest: PackageManifestPayload = {\n nodes: [\n {\n config: {\n name: 'SimpleMemoryDapp',\n schema: NodeConfigSchema,\n },\n modules: {\n private: [\n {\n config: {\n name: 'ScratchArchivist',\n schema: ArchivistConfigSchema,\n },\n },\n ],\n public: [\n {\n config: {\n name: 'SimpleArchivist',\n schema: ArchivistConfigSchema,\n },\n },\n {\n config: {\n name: 'SimpleSentinel',\n schema: SentinelConfigSchema,\n },\n },\n ],\n },\n },\n ],\n schema: PackageManifestPayloadSchema,\n}\n","import { generateMnemonic } from '@scure/bip39'\nimport { wordlist } from '@scure/bip39/wordlists/english'\nimport { forget } from '@xylabs/forget'\nimport type { Address } from '@xylabs/hex'\nimport type { Logger } from '@xylabs/logger'\nimport { HDWallet } from '@xyo-network/account'\nimport type { PackageManifestPayload } from '@xyo-network/manifest'\nimport { ManifestWrapper } from '@xyo-network/manifest'\nimport type { NodeInstance } from '@xyo-network/node-model'\n\nimport type {\n Message, QueryMessage, QueryResultMessage,\n} from '../WorkerBridge.ts'\n\nexport type QueryEvent = MessageEvent<QueryMessage>\n\nexport interface CreateNodeMessage extends Message<'createNode'> {\n manifest: PackageManifestPayload\n}\n\nexport type CreateNodeEvent = MessageEvent<CreateNodeMessage>\n\nexport interface NodeCreatedMessage extends Message<'nodeCreated'> {\n address: Address\n}\n\nexport class WorkerNodeHost {\n constructor(\n protected node: NodeInstance,\n protected logger?: Logger,\n ) {}\n\n static async create(config: PackageManifestPayload) {\n const mnemonic = generateMnemonic(wordlist, 256)\n const manifest = new ManifestWrapper(config, await HDWallet.fromPhrase(mnemonic))\n const [node] = await manifest.loadNodes()\n const worker = new this(node)\n worker.attachNode(node)\n return worker\n }\n\n static start(logger?: Logger) {\n const listener = async (event: MessageEvent) => {\n switch (event.data.type) {\n case 'createNode': {\n const message: CreateNodeMessage = event.data\n const worker = await this.create(message.manifest)\n logger?.log(`createNode: ${worker.node.address}`)\n const response: NodeCreatedMessage = { address: worker.node.address, type: 'nodeCreated' }\n postMessage(response)\n break\n }\n default: {\n const message: Message = event.data\n logger?.debug(`Unknown Event (Static) [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n\n self.addEventListener('message', (event: MessageEvent) => {\n forget(listener(event))\n })\n }\n\n private attachNode(node: NodeInstance) {\n const listener = async (event: MessageEvent) => {\n const message = event.data as Message\n switch (message.type) {\n case 'xyoQuery': {\n const message: QueryMessage = event.data\n const {\n address, msgId, query, payloads,\n } = message\n const mod = address ? await node.resolve(address, { direction: 'down' }) : node\n if (mod) {\n const result: QueryResultMessage = {\n address, msgId, result: await mod.query(query, payloads),\n }\n self.postMessage(result)\n }\n break\n }\n default: {\n const message: Message = event.data\n this.logger?.debug(`Unknown Event [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n\n self.addEventListener('message', (event: MessageEvent) => {\n forget(listener(event))\n })\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { AbstractBridge } from '@xyo-network/bridge-abstract'\nimport {\n BridgeExposeOptions, BridgeModule, BridgeUnexposeOptions,\n} from '@xyo-network/bridge-model'\nimport { PackageManifestPayload } from '@xyo-network/manifest-model'\nimport {\n AnyConfigSchema,\n CacheConfig,\n creatableModule,\n ModuleConfig,\n ModuleInstance,\n ModuleParams,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nimport { defaultPackageManifest } from './defaultNodeManifest.ts'\nimport { WorkerBridgeConfig, WorkerBridgeConfigSchema } from './WorkerBridgeConfig.ts'\n\nexport type WorkerBridgeParams<TConfig extends AnyConfigSchema<WorkerBridgeConfig> = AnyConfigSchema<WorkerBridgeConfig>> = ModuleParams<\n TConfig,\n {\n worker?: Worker\n }\n>\n\nexport interface Message<T extends string = string> {\n type: T\n}\n\nexport interface QueryMessage extends Message<'xyoQuery'> {\n address: Address\n msgId?: string\n payloads?: Payload[]\n query: QueryBoundWitness\n}\n\nexport interface QueryResultMessage {\n address: Address\n msgId?: string\n result: ModuleQueryResult\n}\n\n@creatableModule()\nexport class WorkerBridge<TParams extends WorkerBridgeParams = WorkerBridgeParams> extends AbstractBridge<TParams> implements BridgeModule<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, WorkerBridgeConfigSchema]\n static override readonly defaultConfigSchema: Schema = WorkerBridgeConfigSchema\n\n private _discoverCache?: LRUCache<string, Payload[]>\n private _targetConfigs: Record<string, ModuleConfig> = {}\n private _targetQueries: Record<string, string[]> = {}\n\n get discoverCache() {\n const config = this.discoverCacheConfig\n this._discoverCache = this._discoverCache ?? new LRUCache<string, Payload[]>({ ttlAutopurge: true, ...config })\n return this._discoverCache\n }\n\n get discoverCacheConfig(): LRUCache.Options<string, Payload[], unknown> {\n const discoverCacheConfig: CacheConfig | undefined = {}\n return {\n max: 100, ttl: 1000 * 60 * 5, ...discoverCacheConfig,\n }\n }\n\n get worker(): Worker {\n return assertEx(this.params.worker)\n }\n\n static async createWorkerNode(manifest: PackageManifestPayload = defaultPackageManifest as PackageManifestPayload) {\n const worker = new Worker(new URL('worker/Worker.ts', import.meta?.url ?? __filename))\n worker.postMessage({ manifest, type: 'createNode' })\n\n await new Promise((resolve, reject) => {\n const eventFunc = (event: MessageEvent) => {\n const timeout = setTimeout(() => {\n console.log('Node creation timeout')\n worker.removeEventListener('message', eventFunc)\n reject('Timeout')\n }, 1000)\n switch (event.data.type) {\n case 'nodeCreated': {\n clearTimeout(timeout)\n worker.removeEventListener('message', eventFunc)\n resolve(true)\n break\n }\n default: {\n const message: Message = event.data\n console.log(`Unknown Event (nodeCreated listener) [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n worker.addEventListener('message', eventFunc)\n })\n\n const bridge = await WorkerBridge.create({ config: { schema: WorkerBridgeConfigSchema }, worker })\n await bridge.start()\n return bridge\n }\n\n override exposeHandler(_id: string, _options?: BridgeExposeOptions | undefined): Promisable<ModuleInstance[]> {\n return []\n }\n\n override exposedHandler(): Promisable<Address[]> {\n return []\n }\n\n override getRoots(_force?: boolean | undefined): Promise<ModuleInstance[]> {\n return Promise.resolve([])\n }\n\n override unexposeHandler(_id: string, _options?: BridgeUnexposeOptions | undefined): Promisable<ModuleInstance[]> {\n return []\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type { BridgeConfig } from '@xyo-network/bridge-model'\n\nexport const WorkerBridgeConfigSchema = 'network.xyo.bridge.worker.config' as const\nexport type WorkerBridgeConfigSchema = typeof WorkerBridgeConfigSchema\n\nexport type WorkerBridgeConfig<TConfig extends EmptyObject = EmptyObject> = BridgeConfig<TConfig, WorkerBridgeConfigSchema>\n"],"mappings":"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","names":["message"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { EmptyObject } from '@xylabs/object';
|
|
2
2
|
import type { BridgeConfig } from '@xyo-network/bridge-model';
|
|
3
|
-
export
|
|
4
|
-
export
|
|
3
|
+
export declare const WorkerBridgeConfigSchema: "network.xyo.bridge.worker.config";
|
|
4
|
+
export type WorkerBridgeConfigSchema = typeof WorkerBridgeConfigSchema;
|
|
5
5
|
export type WorkerBridgeConfig<TConfig extends EmptyObject = EmptyObject> = BridgeConfig<TConfig, WorkerBridgeConfigSchema>;
|
|
6
6
|
//# sourceMappingURL=WorkerBridgeConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerBridgeConfig.d.ts","sourceRoot":"","sources":["../../src/WorkerBridgeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,
|
|
1
|
+
{"version":3,"file":"WorkerBridgeConfig.d.ts","sourceRoot":"","sources":["../../src/WorkerBridgeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,eAAO,MAAM,wBAAwB,EAAG,kCAA2C,CAAA;AACnF,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAA;AAEtE,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW,IAAI,YAAY,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAA"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
|
-
var
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
+
var __reflectGet = Reflect.get;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
7
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
8
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
9
|
+
if (decorator = decorators[i])
|
|
10
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
11
|
+
if (kind && result) __defProp(target, key, result);
|
|
12
|
+
return result;
|
|
13
|
+
};
|
|
14
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
15
|
+
var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
|
|
3
16
|
|
|
4
17
|
// src/defaultNodeManifest.ts
|
|
5
18
|
import { ArchivistConfigSchema } from "@xyo-network/archivist-model";
|
|
@@ -49,11 +62,6 @@ import { forget } from "@xylabs/forget";
|
|
|
49
62
|
import { HDWallet } from "@xyo-network/account";
|
|
50
63
|
import { ManifestWrapper } from "@xyo-network/manifest";
|
|
51
64
|
var WorkerNodeHost = class {
|
|
52
|
-
static {
|
|
53
|
-
__name(this, "WorkerNodeHost");
|
|
54
|
-
}
|
|
55
|
-
node;
|
|
56
|
-
logger;
|
|
57
65
|
constructor(node, logger) {
|
|
58
66
|
this.node = node;
|
|
59
67
|
this.logger = logger;
|
|
@@ -67,16 +75,13 @@ var WorkerNodeHost = class {
|
|
|
67
75
|
return worker;
|
|
68
76
|
}
|
|
69
77
|
static start(logger) {
|
|
70
|
-
const listener =
|
|
78
|
+
const listener = async (event) => {
|
|
71
79
|
switch (event.data.type) {
|
|
72
80
|
case "createNode": {
|
|
73
81
|
const message = event.data;
|
|
74
82
|
const worker = await this.create(message.manifest);
|
|
75
83
|
logger?.log(`createNode: ${worker.node.address}`);
|
|
76
|
-
const response = {
|
|
77
|
-
address: worker.node.address,
|
|
78
|
-
type: "nodeCreated"
|
|
79
|
-
};
|
|
84
|
+
const response = { address: worker.node.address, type: "nodeCreated" };
|
|
80
85
|
postMessage(response);
|
|
81
86
|
break;
|
|
82
87
|
}
|
|
@@ -86,21 +91,24 @@ var WorkerNodeHost = class {
|
|
|
86
91
|
break;
|
|
87
92
|
}
|
|
88
93
|
}
|
|
89
|
-
}
|
|
94
|
+
};
|
|
90
95
|
self.addEventListener("message", (event) => {
|
|
91
96
|
forget(listener(event));
|
|
92
97
|
});
|
|
93
98
|
}
|
|
94
99
|
attachNode(node) {
|
|
95
|
-
const listener =
|
|
100
|
+
const listener = async (event) => {
|
|
96
101
|
const message = event.data;
|
|
97
102
|
switch (message.type) {
|
|
98
103
|
case "xyoQuery": {
|
|
99
104
|
const message2 = event.data;
|
|
100
|
-
const {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
105
|
+
const {
|
|
106
|
+
address,
|
|
107
|
+
msgId,
|
|
108
|
+
query,
|
|
109
|
+
payloads
|
|
110
|
+
} = message2;
|
|
111
|
+
const mod = address ? await node.resolve(address, { direction: "down" }) : node;
|
|
104
112
|
if (mod) {
|
|
105
113
|
const result = {
|
|
106
114
|
address,
|
|
@@ -117,7 +125,7 @@ var WorkerNodeHost = class {
|
|
|
117
125
|
break;
|
|
118
126
|
}
|
|
119
127
|
}
|
|
120
|
-
}
|
|
128
|
+
};
|
|
121
129
|
self.addEventListener("message", (event) => {
|
|
122
130
|
forget(listener(event));
|
|
123
131
|
});
|
|
@@ -127,38 +135,22 @@ var WorkerNodeHost = class {
|
|
|
127
135
|
// src/WorkerBridge.ts
|
|
128
136
|
import { assertEx } from "@xylabs/assert";
|
|
129
137
|
import { AbstractBridge } from "@xyo-network/bridge-abstract";
|
|
130
|
-
import {
|
|
138
|
+
import {
|
|
139
|
+
creatableModule
|
|
140
|
+
} from "@xyo-network/module-model";
|
|
131
141
|
import { LRUCache } from "lru-cache";
|
|
132
142
|
|
|
133
143
|
// src/WorkerBridgeConfig.ts
|
|
134
144
|
var WorkerBridgeConfigSchema = "network.xyo.bridge.worker.config";
|
|
135
145
|
|
|
136
146
|
// src/WorkerBridge.ts
|
|
137
|
-
|
|
138
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
139
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
140
|
-
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;
|
|
141
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
142
|
-
}
|
|
143
|
-
__name(_ts_decorate, "_ts_decorate");
|
|
144
|
-
var WorkerBridge = class _WorkerBridge extends AbstractBridge {
|
|
145
|
-
static {
|
|
146
|
-
__name(this, "WorkerBridge");
|
|
147
|
-
}
|
|
148
|
-
static configSchemas = [
|
|
149
|
-
...super.configSchemas,
|
|
150
|
-
WorkerBridgeConfigSchema
|
|
151
|
-
];
|
|
152
|
-
static defaultConfigSchema = WorkerBridgeConfigSchema;
|
|
147
|
+
var WorkerBridge = class extends AbstractBridge {
|
|
153
148
|
_discoverCache;
|
|
154
149
|
_targetConfigs = {};
|
|
155
150
|
_targetQueries = {};
|
|
156
151
|
get discoverCache() {
|
|
157
152
|
const config = this.discoverCacheConfig;
|
|
158
|
-
this._discoverCache = this._discoverCache ?? new LRUCache({
|
|
159
|
-
ttlAutopurge: true,
|
|
160
|
-
...config
|
|
161
|
-
});
|
|
153
|
+
this._discoverCache = this._discoverCache ?? new LRUCache({ ttlAutopurge: true, ...config });
|
|
162
154
|
return this._discoverCache;
|
|
163
155
|
}
|
|
164
156
|
get discoverCacheConfig() {
|
|
@@ -174,12 +166,9 @@ var WorkerBridge = class _WorkerBridge extends AbstractBridge {
|
|
|
174
166
|
}
|
|
175
167
|
static async createWorkerNode(manifest = defaultPackageManifest) {
|
|
176
168
|
const worker = new Worker(new URL("worker/Worker.ts", import.meta?.url ?? __filename));
|
|
177
|
-
worker.postMessage({
|
|
178
|
-
manifest,
|
|
179
|
-
type: "createNode"
|
|
180
|
-
});
|
|
169
|
+
worker.postMessage({ manifest, type: "createNode" });
|
|
181
170
|
await new Promise((resolve, reject) => {
|
|
182
|
-
const eventFunc =
|
|
171
|
+
const eventFunc = (event) => {
|
|
183
172
|
const timeout = setTimeout(() => {
|
|
184
173
|
console.log("Node creation timeout");
|
|
185
174
|
worker.removeEventListener("message", eventFunc);
|
|
@@ -198,15 +187,10 @@ var WorkerBridge = class _WorkerBridge extends AbstractBridge {
|
|
|
198
187
|
break;
|
|
199
188
|
}
|
|
200
189
|
}
|
|
201
|
-
}
|
|
190
|
+
};
|
|
202
191
|
worker.addEventListener("message", eventFunc);
|
|
203
192
|
});
|
|
204
|
-
const bridge = await
|
|
205
|
-
config: {
|
|
206
|
-
schema: WorkerBridgeConfigSchema
|
|
207
|
-
},
|
|
208
|
-
worker
|
|
209
|
-
});
|
|
193
|
+
const bridge = await WorkerBridge.create({ config: { schema: WorkerBridgeConfigSchema }, worker });
|
|
210
194
|
await bridge.start();
|
|
211
195
|
return bridge;
|
|
212
196
|
}
|
|
@@ -223,7 +207,9 @@ var WorkerBridge = class _WorkerBridge extends AbstractBridge {
|
|
|
223
207
|
return [];
|
|
224
208
|
}
|
|
225
209
|
};
|
|
226
|
-
WorkerBridge
|
|
210
|
+
__publicField(WorkerBridge, "configSchemas", [...__superGet(WorkerBridge, WorkerBridge, "configSchemas"), WorkerBridgeConfigSchema]);
|
|
211
|
+
__publicField(WorkerBridge, "defaultConfigSchema", WorkerBridgeConfigSchema);
|
|
212
|
+
WorkerBridge = __decorateClass([
|
|
227
213
|
creatableModule()
|
|
228
214
|
], WorkerBridge);
|
|
229
215
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/defaultNodeManifest.ts","../../src/worker/WorkerNodeHost.ts","../../src/WorkerBridge.ts","../../src/WorkerBridgeConfig.ts"],"sourcesContent":["import { ArchivistConfigSchema } from '@xyo-network/archivist-model'\nimport type { PackageManifestPayload } from '@xyo-network/manifest-model'\nimport { PackageManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { NodeConfigSchema } from '@xyo-network/node-model'\nimport { SentinelConfigSchema } from '@xyo-network/sentinel-model'\n\nexport const defaultPackageManifest: PackageManifestPayload = {\n nodes: [\n {\n config: {\n name: 'SimpleMemoryDapp',\n schema: NodeConfigSchema,\n },\n modules: {\n private: [\n {\n config: {\n name: 'ScratchArchivist',\n schema: ArchivistConfigSchema,\n },\n },\n ],\n public: [\n {\n config: {\n name: 'SimpleArchivist',\n schema: ArchivistConfigSchema,\n },\n },\n {\n config: {\n name: 'SimpleSentinel',\n schema: SentinelConfigSchema,\n },\n },\n ],\n },\n },\n ],\n schema: PackageManifestPayloadSchema,\n}\n","import { generateMnemonic } from '@scure/bip39'\nimport { wordlist } from '@scure/bip39/wordlists/english'\nimport { forget } from '@xylabs/forget'\nimport type { Address } from '@xylabs/hex'\nimport type { Logger } from '@xylabs/logger'\nimport { HDWallet } from '@xyo-network/account'\nimport type { PackageManifestPayload } from '@xyo-network/manifest'\nimport { ManifestWrapper } from '@xyo-network/manifest'\nimport type { NodeInstance } from '@xyo-network/node-model'\n\nimport type {\n Message, QueryMessage, QueryResultMessage,\n} from '../WorkerBridge.ts'\n\nexport type QueryEvent = MessageEvent<QueryMessage>\n\nexport interface CreateNodeMessage extends Message<'createNode'> {\n manifest: PackageManifestPayload\n}\n\nexport type CreateNodeEvent = MessageEvent<CreateNodeMessage>\n\nexport interface NodeCreatedMessage extends Message<'nodeCreated'> {\n address: Address\n}\n\nexport class WorkerNodeHost {\n constructor(\n protected node: NodeInstance,\n protected logger?: Logger,\n ) {}\n\n static async create(config: PackageManifestPayload) {\n const mnemonic = generateMnemonic(wordlist, 256)\n const manifest = new ManifestWrapper(config, await HDWallet.fromPhrase(mnemonic))\n const [node] = await manifest.loadNodes()\n const worker = new this(node)\n worker.attachNode(node)\n return worker\n }\n\n static start(logger?: Logger) {\n const listener = async (event: MessageEvent) => {\n switch (event.data.type) {\n case 'createNode': {\n const message: CreateNodeMessage = event.data\n const worker = await this.create(message.manifest)\n logger?.log(`createNode: ${worker.node.address}`)\n const response: NodeCreatedMessage = { address: worker.node.address, type: 'nodeCreated' }\n postMessage(response)\n break\n }\n default: {\n const message: Message = event.data\n logger?.debug(`Unknown Event (Static) [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n\n self.addEventListener('message', (event: MessageEvent) => {\n forget(listener(event))\n })\n }\n\n private attachNode(node: NodeInstance) {\n const listener = async (event: MessageEvent) => {\n const message = event.data as Message\n switch (message.type) {\n case 'xyoQuery': {\n const message: QueryMessage = event.data\n const {\n address, msgId, query, payloads,\n } = message\n const mod = address ? await node.resolve(address, { direction: 'down' }) : node\n if (mod) {\n const result: QueryResultMessage = {\n address, msgId, result: await mod.query(query, payloads),\n }\n self.postMessage(result)\n }\n break\n }\n default: {\n const message: Message = event.data\n this.logger?.debug(`Unknown Event [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n\n self.addEventListener('message', (event: MessageEvent) => {\n forget(listener(event))\n })\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { AbstractBridge } from '@xyo-network/bridge-abstract'\nimport {\n BridgeExposeOptions, BridgeModule, BridgeUnexposeOptions,\n} from '@xyo-network/bridge-model'\nimport { PackageManifestPayload } from '@xyo-network/manifest-model'\nimport {\n AnyConfigSchema,\n CacheConfig,\n creatableModule,\n ModuleConfig,\n ModuleInstance,\n ModuleParams,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nimport { defaultPackageManifest } from './defaultNodeManifest.ts'\nimport { WorkerBridgeConfig, WorkerBridgeConfigSchema } from './WorkerBridgeConfig.ts'\n\nexport type WorkerBridgeParams<TConfig extends AnyConfigSchema<WorkerBridgeConfig> = AnyConfigSchema<WorkerBridgeConfig>> = ModuleParams<\n TConfig,\n {\n worker?: Worker\n }\n>\n\nexport interface Message<T extends string = string> {\n type: T\n}\n\nexport interface QueryMessage extends Message<'xyoQuery'> {\n address: Address\n msgId?: string\n payloads?: Payload[]\n query: QueryBoundWitness\n}\n\nexport interface QueryResultMessage {\n address: Address\n msgId?: string\n result: ModuleQueryResult\n}\n\n@creatableModule()\nexport class WorkerBridge<TParams extends WorkerBridgeParams = WorkerBridgeParams> extends AbstractBridge<TParams> implements BridgeModule<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, WorkerBridgeConfigSchema]\n static override readonly defaultConfigSchema: Schema = WorkerBridgeConfigSchema\n\n private _discoverCache?: LRUCache<string, Payload[]>\n private _targetConfigs: Record<string, ModuleConfig> = {}\n private _targetQueries: Record<string, string[]> = {}\n\n get discoverCache() {\n const config = this.discoverCacheConfig\n this._discoverCache = this._discoverCache ?? new LRUCache<string, Payload[]>({ ttlAutopurge: true, ...config })\n return this._discoverCache\n }\n\n get discoverCacheConfig(): LRUCache.Options<string, Payload[], unknown> {\n const discoverCacheConfig: CacheConfig | undefined = {}\n return {\n max: 100, ttl: 1000 * 60 * 5, ...discoverCacheConfig,\n }\n }\n\n get worker(): Worker {\n return assertEx(this.params.worker)\n }\n\n static async createWorkerNode(manifest: PackageManifestPayload = defaultPackageManifest as PackageManifestPayload) {\n const worker = new Worker(new URL('worker/Worker.ts', import.meta?.url ?? __filename))\n worker.postMessage({ manifest, type: 'createNode' })\n\n await new Promise((resolve, reject) => {\n const eventFunc = (event: MessageEvent) => {\n const timeout = setTimeout(() => {\n console.log('Node creation timeout')\n worker.removeEventListener('message', eventFunc)\n reject('Timeout')\n }, 1000)\n switch (event.data.type) {\n case 'nodeCreated': {\n clearTimeout(timeout)\n worker.removeEventListener('message', eventFunc)\n resolve(true)\n break\n }\n default: {\n const message: Message = event.data\n console.log(`Unknown Event (nodeCreated listener) [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n worker.addEventListener('message', eventFunc)\n })\n\n const bridge = await WorkerBridge.create({ config: { schema: WorkerBridgeConfigSchema }, worker })\n await bridge.start()\n return bridge\n }\n\n override exposeHandler(_id: string, _options?: BridgeExposeOptions | undefined): Promisable<ModuleInstance[]> {\n return []\n }\n\n override exposedHandler(): Promisable<Address[]> {\n return []\n }\n\n override getRoots(_force?: boolean | undefined): Promise<ModuleInstance[]> {\n return Promise.resolve([])\n }\n\n override unexposeHandler(_id: string, _options?: BridgeUnexposeOptions | undefined): Promisable<ModuleInstance[]> {\n return []\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type { BridgeConfig } from '@xyo-network/bridge-model'\n\nexport type WorkerBridgeConfigSchema = 'network.xyo.bridge.worker.config'\nexport const WorkerBridgeConfigSchema: WorkerBridgeConfigSchema = 'network.xyo.bridge.worker.config'\n\nexport type WorkerBridgeConfig<TConfig extends EmptyObject = EmptyObject> = BridgeConfig<TConfig, WorkerBridgeConfigSchema>\n"],"mappings":"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","names":["ArchivistConfigSchema","PackageManifestPayloadSchema","NodeConfigSchema","SentinelConfigSchema","defaultPackageManifest","nodes","config","name","schema","modules","private","public","generateMnemonic","wordlist","forget","HDWallet","ManifestWrapper","WorkerNodeHost","constructor","node","logger","create","config","mnemonic","generateMnemonic","wordlist","manifest","ManifestWrapper","HDWallet","fromPhrase","loadNodes","worker","attachNode","start","listener","event","data","type","message","log","address","response","postMessage","debug","JSON","stringify","self","addEventListener","forget","msgId","query","payloads","mod","resolve","direction","result","assertEx","AbstractBridge","creatableModule","LRUCache","WorkerBridgeConfigSchema","WorkerBridge","AbstractBridge","configSchemas","WorkerBridgeConfigSchema","defaultConfigSchema","_discoverCache","_targetConfigs","_targetQueries","discoverCache","config","discoverCacheConfig","LRUCache","ttlAutopurge","max","ttl","worker","assertEx","params","createWorkerNode","manifest","defaultPackageManifest","Worker","URL","url","__filename","postMessage","type","Promise","resolve","reject","eventFunc","event","timeout","setTimeout","console","log","removeEventListener","data","clearTimeout","message","JSON","stringify","addEventListener","bridge","create","schema","start","exposeHandler","_id","_options","exposedHandler","getRoots","_force","unexposeHandler"]}
|
|
1
|
+
{"version":3,"sources":["../../src/defaultNodeManifest.ts","../../src/worker/WorkerNodeHost.ts","../../src/WorkerBridge.ts","../../src/WorkerBridgeConfig.ts"],"sourcesContent":["import { ArchivistConfigSchema } from '@xyo-network/archivist-model'\nimport type { PackageManifestPayload } from '@xyo-network/manifest-model'\nimport { PackageManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { NodeConfigSchema } from '@xyo-network/node-model'\nimport { SentinelConfigSchema } from '@xyo-network/sentinel-model'\n\nexport const defaultPackageManifest: PackageManifestPayload = {\n nodes: [\n {\n config: {\n name: 'SimpleMemoryDapp',\n schema: NodeConfigSchema,\n },\n modules: {\n private: [\n {\n config: {\n name: 'ScratchArchivist',\n schema: ArchivistConfigSchema,\n },\n },\n ],\n public: [\n {\n config: {\n name: 'SimpleArchivist',\n schema: ArchivistConfigSchema,\n },\n },\n {\n config: {\n name: 'SimpleSentinel',\n schema: SentinelConfigSchema,\n },\n },\n ],\n },\n },\n ],\n schema: PackageManifestPayloadSchema,\n}\n","import { generateMnemonic } from '@scure/bip39'\nimport { wordlist } from '@scure/bip39/wordlists/english'\nimport { forget } from '@xylabs/forget'\nimport type { Address } from '@xylabs/hex'\nimport type { Logger } from '@xylabs/logger'\nimport { HDWallet } from '@xyo-network/account'\nimport type { PackageManifestPayload } from '@xyo-network/manifest'\nimport { ManifestWrapper } from '@xyo-network/manifest'\nimport type { NodeInstance } from '@xyo-network/node-model'\n\nimport type {\n Message, QueryMessage, QueryResultMessage,\n} from '../WorkerBridge.ts'\n\nexport type QueryEvent = MessageEvent<QueryMessage>\n\nexport interface CreateNodeMessage extends Message<'createNode'> {\n manifest: PackageManifestPayload\n}\n\nexport type CreateNodeEvent = MessageEvent<CreateNodeMessage>\n\nexport interface NodeCreatedMessage extends Message<'nodeCreated'> {\n address: Address\n}\n\nexport class WorkerNodeHost {\n constructor(\n protected node: NodeInstance,\n protected logger?: Logger,\n ) {}\n\n static async create(config: PackageManifestPayload) {\n const mnemonic = generateMnemonic(wordlist, 256)\n const manifest = new ManifestWrapper(config, await HDWallet.fromPhrase(mnemonic))\n const [node] = await manifest.loadNodes()\n const worker = new this(node)\n worker.attachNode(node)\n return worker\n }\n\n static start(logger?: Logger) {\n const listener = async (event: MessageEvent) => {\n switch (event.data.type) {\n case 'createNode': {\n const message: CreateNodeMessage = event.data\n const worker = await this.create(message.manifest)\n logger?.log(`createNode: ${worker.node.address}`)\n const response: NodeCreatedMessage = { address: worker.node.address, type: 'nodeCreated' }\n postMessage(response)\n break\n }\n default: {\n const message: Message = event.data\n logger?.debug(`Unknown Event (Static) [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n\n self.addEventListener('message', (event: MessageEvent) => {\n forget(listener(event))\n })\n }\n\n private attachNode(node: NodeInstance) {\n const listener = async (event: MessageEvent) => {\n const message = event.data as Message\n switch (message.type) {\n case 'xyoQuery': {\n const message: QueryMessage = event.data\n const {\n address, msgId, query, payloads,\n } = message\n const mod = address ? await node.resolve(address, { direction: 'down' }) : node\n if (mod) {\n const result: QueryResultMessage = {\n address, msgId, result: await mod.query(query, payloads),\n }\n self.postMessage(result)\n }\n break\n }\n default: {\n const message: Message = event.data\n this.logger?.debug(`Unknown Event [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n\n self.addEventListener('message', (event: MessageEvent) => {\n forget(listener(event))\n })\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { AbstractBridge } from '@xyo-network/bridge-abstract'\nimport {\n BridgeExposeOptions, BridgeModule, BridgeUnexposeOptions,\n} from '@xyo-network/bridge-model'\nimport { PackageManifestPayload } from '@xyo-network/manifest-model'\nimport {\n AnyConfigSchema,\n CacheConfig,\n creatableModule,\n ModuleConfig,\n ModuleInstance,\n ModuleParams,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nimport { defaultPackageManifest } from './defaultNodeManifest.ts'\nimport { WorkerBridgeConfig, WorkerBridgeConfigSchema } from './WorkerBridgeConfig.ts'\n\nexport type WorkerBridgeParams<TConfig extends AnyConfigSchema<WorkerBridgeConfig> = AnyConfigSchema<WorkerBridgeConfig>> = ModuleParams<\n TConfig,\n {\n worker?: Worker\n }\n>\n\nexport interface Message<T extends string = string> {\n type: T\n}\n\nexport interface QueryMessage extends Message<'xyoQuery'> {\n address: Address\n msgId?: string\n payloads?: Payload[]\n query: QueryBoundWitness\n}\n\nexport interface QueryResultMessage {\n address: Address\n msgId?: string\n result: ModuleQueryResult\n}\n\n@creatableModule()\nexport class WorkerBridge<TParams extends WorkerBridgeParams = WorkerBridgeParams> extends AbstractBridge<TParams> implements BridgeModule<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, WorkerBridgeConfigSchema]\n static override readonly defaultConfigSchema: Schema = WorkerBridgeConfigSchema\n\n private _discoverCache?: LRUCache<string, Payload[]>\n private _targetConfigs: Record<string, ModuleConfig> = {}\n private _targetQueries: Record<string, string[]> = {}\n\n get discoverCache() {\n const config = this.discoverCacheConfig\n this._discoverCache = this._discoverCache ?? new LRUCache<string, Payload[]>({ ttlAutopurge: true, ...config })\n return this._discoverCache\n }\n\n get discoverCacheConfig(): LRUCache.Options<string, Payload[], unknown> {\n const discoverCacheConfig: CacheConfig | undefined = {}\n return {\n max: 100, ttl: 1000 * 60 * 5, ...discoverCacheConfig,\n }\n }\n\n get worker(): Worker {\n return assertEx(this.params.worker)\n }\n\n static async createWorkerNode(manifest: PackageManifestPayload = defaultPackageManifest as PackageManifestPayload) {\n const worker = new Worker(new URL('worker/Worker.ts', import.meta?.url ?? __filename))\n worker.postMessage({ manifest, type: 'createNode' })\n\n await new Promise((resolve, reject) => {\n const eventFunc = (event: MessageEvent) => {\n const timeout = setTimeout(() => {\n console.log('Node creation timeout')\n worker.removeEventListener('message', eventFunc)\n reject('Timeout')\n }, 1000)\n switch (event.data.type) {\n case 'nodeCreated': {\n clearTimeout(timeout)\n worker.removeEventListener('message', eventFunc)\n resolve(true)\n break\n }\n default: {\n const message: Message = event.data\n console.log(`Unknown Event (nodeCreated listener) [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n worker.addEventListener('message', eventFunc)\n })\n\n const bridge = await WorkerBridge.create({ config: { schema: WorkerBridgeConfigSchema }, worker })\n await bridge.start()\n return bridge\n }\n\n override exposeHandler(_id: string, _options?: BridgeExposeOptions | undefined): Promisable<ModuleInstance[]> {\n return []\n }\n\n override exposedHandler(): Promisable<Address[]> {\n return []\n }\n\n override getRoots(_force?: boolean | undefined): Promise<ModuleInstance[]> {\n return Promise.resolve([])\n }\n\n override unexposeHandler(_id: string, _options?: BridgeUnexposeOptions | undefined): Promisable<ModuleInstance[]> {\n return []\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type { BridgeConfig } from '@xyo-network/bridge-model'\n\nexport const WorkerBridgeConfigSchema = 'network.xyo.bridge.worker.config' as const\nexport type WorkerBridgeConfigSchema = typeof WorkerBridgeConfigSchema\n\nexport type WorkerBridgeConfig<TConfig extends EmptyObject = EmptyObject> = BridgeConfig<TConfig, WorkerBridgeConfigSchema>\n"],"mappings":"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","names":["message"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { EmptyObject } from '@xylabs/object';
|
|
2
2
|
import type { BridgeConfig } from '@xyo-network/bridge-model';
|
|
3
|
-
export
|
|
4
|
-
export
|
|
3
|
+
export declare const WorkerBridgeConfigSchema: "network.xyo.bridge.worker.config";
|
|
4
|
+
export type WorkerBridgeConfigSchema = typeof WorkerBridgeConfigSchema;
|
|
5
5
|
export type WorkerBridgeConfig<TConfig extends EmptyObject = EmptyObject> = BridgeConfig<TConfig, WorkerBridgeConfigSchema>;
|
|
6
6
|
//# sourceMappingURL=WorkerBridgeConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerBridgeConfig.d.ts","sourceRoot":"","sources":["../../src/WorkerBridgeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,
|
|
1
|
+
{"version":3,"file":"WorkerBridgeConfig.d.ts","sourceRoot":"","sources":["../../src/WorkerBridgeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,eAAO,MAAM,wBAAwB,EAAG,kCAA2C,CAAA;AACnF,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAA;AAEtE,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW,IAAI,YAAY,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAA"}
|
package/dist/node/index.mjs
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
|
-
var
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
+
var __reflectGet = Reflect.get;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
7
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
8
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
9
|
+
if (decorator = decorators[i])
|
|
10
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
11
|
+
if (kind && result) __defProp(target, key, result);
|
|
12
|
+
return result;
|
|
13
|
+
};
|
|
14
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
15
|
+
var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
|
|
3
16
|
|
|
4
17
|
// src/defaultNodeManifest.ts
|
|
5
18
|
import { ArchivistConfigSchema } from "@xyo-network/archivist-model";
|
|
@@ -49,11 +62,6 @@ import { forget } from "@xylabs/forget";
|
|
|
49
62
|
import { HDWallet } from "@xyo-network/account";
|
|
50
63
|
import { ManifestWrapper } from "@xyo-network/manifest";
|
|
51
64
|
var WorkerNodeHost = class {
|
|
52
|
-
static {
|
|
53
|
-
__name(this, "WorkerNodeHost");
|
|
54
|
-
}
|
|
55
|
-
node;
|
|
56
|
-
logger;
|
|
57
65
|
constructor(node, logger) {
|
|
58
66
|
this.node = node;
|
|
59
67
|
this.logger = logger;
|
|
@@ -67,16 +75,13 @@ var WorkerNodeHost = class {
|
|
|
67
75
|
return worker;
|
|
68
76
|
}
|
|
69
77
|
static start(logger) {
|
|
70
|
-
const listener =
|
|
78
|
+
const listener = async (event) => {
|
|
71
79
|
switch (event.data.type) {
|
|
72
80
|
case "createNode": {
|
|
73
81
|
const message = event.data;
|
|
74
82
|
const worker = await this.create(message.manifest);
|
|
75
83
|
logger?.log(`createNode: ${worker.node.address}`);
|
|
76
|
-
const response = {
|
|
77
|
-
address: worker.node.address,
|
|
78
|
-
type: "nodeCreated"
|
|
79
|
-
};
|
|
84
|
+
const response = { address: worker.node.address, type: "nodeCreated" };
|
|
80
85
|
postMessage(response);
|
|
81
86
|
break;
|
|
82
87
|
}
|
|
@@ -86,21 +91,24 @@ var WorkerNodeHost = class {
|
|
|
86
91
|
break;
|
|
87
92
|
}
|
|
88
93
|
}
|
|
89
|
-
}
|
|
94
|
+
};
|
|
90
95
|
self.addEventListener("message", (event) => {
|
|
91
96
|
forget(listener(event));
|
|
92
97
|
});
|
|
93
98
|
}
|
|
94
99
|
attachNode(node) {
|
|
95
|
-
const listener =
|
|
100
|
+
const listener = async (event) => {
|
|
96
101
|
const message = event.data;
|
|
97
102
|
switch (message.type) {
|
|
98
103
|
case "xyoQuery": {
|
|
99
104
|
const message2 = event.data;
|
|
100
|
-
const {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
105
|
+
const {
|
|
106
|
+
address,
|
|
107
|
+
msgId,
|
|
108
|
+
query,
|
|
109
|
+
payloads
|
|
110
|
+
} = message2;
|
|
111
|
+
const mod = address ? await node.resolve(address, { direction: "down" }) : node;
|
|
104
112
|
if (mod) {
|
|
105
113
|
const result = {
|
|
106
114
|
address,
|
|
@@ -117,7 +125,7 @@ var WorkerNodeHost = class {
|
|
|
117
125
|
break;
|
|
118
126
|
}
|
|
119
127
|
}
|
|
120
|
-
}
|
|
128
|
+
};
|
|
121
129
|
self.addEventListener("message", (event) => {
|
|
122
130
|
forget(listener(event));
|
|
123
131
|
});
|
|
@@ -127,38 +135,22 @@ var WorkerNodeHost = class {
|
|
|
127
135
|
// src/WorkerBridge.ts
|
|
128
136
|
import { assertEx } from "@xylabs/assert";
|
|
129
137
|
import { AbstractBridge } from "@xyo-network/bridge-abstract";
|
|
130
|
-
import {
|
|
138
|
+
import {
|
|
139
|
+
creatableModule
|
|
140
|
+
} from "@xyo-network/module-model";
|
|
131
141
|
import { LRUCache } from "lru-cache";
|
|
132
142
|
|
|
133
143
|
// src/WorkerBridgeConfig.ts
|
|
134
144
|
var WorkerBridgeConfigSchema = "network.xyo.bridge.worker.config";
|
|
135
145
|
|
|
136
146
|
// src/WorkerBridge.ts
|
|
137
|
-
|
|
138
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
139
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
140
|
-
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;
|
|
141
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
142
|
-
}
|
|
143
|
-
__name(_ts_decorate, "_ts_decorate");
|
|
144
|
-
var WorkerBridge = class _WorkerBridge extends AbstractBridge {
|
|
145
|
-
static {
|
|
146
|
-
__name(this, "WorkerBridge");
|
|
147
|
-
}
|
|
148
|
-
static configSchemas = [
|
|
149
|
-
...super.configSchemas,
|
|
150
|
-
WorkerBridgeConfigSchema
|
|
151
|
-
];
|
|
152
|
-
static defaultConfigSchema = WorkerBridgeConfigSchema;
|
|
147
|
+
var WorkerBridge = class extends AbstractBridge {
|
|
153
148
|
_discoverCache;
|
|
154
149
|
_targetConfigs = {};
|
|
155
150
|
_targetQueries = {};
|
|
156
151
|
get discoverCache() {
|
|
157
152
|
const config = this.discoverCacheConfig;
|
|
158
|
-
this._discoverCache = this._discoverCache ?? new LRUCache({
|
|
159
|
-
ttlAutopurge: true,
|
|
160
|
-
...config
|
|
161
|
-
});
|
|
153
|
+
this._discoverCache = this._discoverCache ?? new LRUCache({ ttlAutopurge: true, ...config });
|
|
162
154
|
return this._discoverCache;
|
|
163
155
|
}
|
|
164
156
|
get discoverCacheConfig() {
|
|
@@ -174,12 +166,9 @@ var WorkerBridge = class _WorkerBridge extends AbstractBridge {
|
|
|
174
166
|
}
|
|
175
167
|
static async createWorkerNode(manifest = defaultPackageManifest) {
|
|
176
168
|
const worker = new Worker(new URL("worker/Worker.ts", import.meta?.url ?? __filename));
|
|
177
|
-
worker.postMessage({
|
|
178
|
-
manifest,
|
|
179
|
-
type: "createNode"
|
|
180
|
-
});
|
|
169
|
+
worker.postMessage({ manifest, type: "createNode" });
|
|
181
170
|
await new Promise((resolve, reject) => {
|
|
182
|
-
const eventFunc =
|
|
171
|
+
const eventFunc = (event) => {
|
|
183
172
|
const timeout = setTimeout(() => {
|
|
184
173
|
console.log("Node creation timeout");
|
|
185
174
|
worker.removeEventListener("message", eventFunc);
|
|
@@ -198,15 +187,10 @@ var WorkerBridge = class _WorkerBridge extends AbstractBridge {
|
|
|
198
187
|
break;
|
|
199
188
|
}
|
|
200
189
|
}
|
|
201
|
-
}
|
|
190
|
+
};
|
|
202
191
|
worker.addEventListener("message", eventFunc);
|
|
203
192
|
});
|
|
204
|
-
const bridge = await
|
|
205
|
-
config: {
|
|
206
|
-
schema: WorkerBridgeConfigSchema
|
|
207
|
-
},
|
|
208
|
-
worker
|
|
209
|
-
});
|
|
193
|
+
const bridge = await WorkerBridge.create({ config: { schema: WorkerBridgeConfigSchema }, worker });
|
|
210
194
|
await bridge.start();
|
|
211
195
|
return bridge;
|
|
212
196
|
}
|
|
@@ -223,7 +207,9 @@ var WorkerBridge = class _WorkerBridge extends AbstractBridge {
|
|
|
223
207
|
return [];
|
|
224
208
|
}
|
|
225
209
|
};
|
|
226
|
-
WorkerBridge
|
|
210
|
+
__publicField(WorkerBridge, "configSchemas", [...__superGet(WorkerBridge, WorkerBridge, "configSchemas"), WorkerBridgeConfigSchema]);
|
|
211
|
+
__publicField(WorkerBridge, "defaultConfigSchema", WorkerBridgeConfigSchema);
|
|
212
|
+
WorkerBridge = __decorateClass([
|
|
227
213
|
creatableModule()
|
|
228
214
|
], WorkerBridge);
|
|
229
215
|
export {
|
package/dist/node/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/defaultNodeManifest.ts","../../src/worker/WorkerNodeHost.ts","../../src/WorkerBridge.ts","../../src/WorkerBridgeConfig.ts"],"sourcesContent":["import { ArchivistConfigSchema } from '@xyo-network/archivist-model'\nimport type { PackageManifestPayload } from '@xyo-network/manifest-model'\nimport { PackageManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { NodeConfigSchema } from '@xyo-network/node-model'\nimport { SentinelConfigSchema } from '@xyo-network/sentinel-model'\n\nexport const defaultPackageManifest: PackageManifestPayload = {\n nodes: [\n {\n config: {\n name: 'SimpleMemoryDapp',\n schema: NodeConfigSchema,\n },\n modules: {\n private: [\n {\n config: {\n name: 'ScratchArchivist',\n schema: ArchivistConfigSchema,\n },\n },\n ],\n public: [\n {\n config: {\n name: 'SimpleArchivist',\n schema: ArchivistConfigSchema,\n },\n },\n {\n config: {\n name: 'SimpleSentinel',\n schema: SentinelConfigSchema,\n },\n },\n ],\n },\n },\n ],\n schema: PackageManifestPayloadSchema,\n}\n","import { generateMnemonic } from '@scure/bip39'\nimport { wordlist } from '@scure/bip39/wordlists/english'\nimport { forget } from '@xylabs/forget'\nimport type { Address } from '@xylabs/hex'\nimport type { Logger } from '@xylabs/logger'\nimport { HDWallet } from '@xyo-network/account'\nimport type { PackageManifestPayload } from '@xyo-network/manifest'\nimport { ManifestWrapper } from '@xyo-network/manifest'\nimport type { NodeInstance } from '@xyo-network/node-model'\n\nimport type {\n Message, QueryMessage, QueryResultMessage,\n} from '../WorkerBridge.ts'\n\nexport type QueryEvent = MessageEvent<QueryMessage>\n\nexport interface CreateNodeMessage extends Message<'createNode'> {\n manifest: PackageManifestPayload\n}\n\nexport type CreateNodeEvent = MessageEvent<CreateNodeMessage>\n\nexport interface NodeCreatedMessage extends Message<'nodeCreated'> {\n address: Address\n}\n\nexport class WorkerNodeHost {\n constructor(\n protected node: NodeInstance,\n protected logger?: Logger,\n ) {}\n\n static async create(config: PackageManifestPayload) {\n const mnemonic = generateMnemonic(wordlist, 256)\n const manifest = new ManifestWrapper(config, await HDWallet.fromPhrase(mnemonic))\n const [node] = await manifest.loadNodes()\n const worker = new this(node)\n worker.attachNode(node)\n return worker\n }\n\n static start(logger?: Logger) {\n const listener = async (event: MessageEvent) => {\n switch (event.data.type) {\n case 'createNode': {\n const message: CreateNodeMessage = event.data\n const worker = await this.create(message.manifest)\n logger?.log(`createNode: ${worker.node.address}`)\n const response: NodeCreatedMessage = { address: worker.node.address, type: 'nodeCreated' }\n postMessage(response)\n break\n }\n default: {\n const message: Message = event.data\n logger?.debug(`Unknown Event (Static) [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n\n self.addEventListener('message', (event: MessageEvent) => {\n forget(listener(event))\n })\n }\n\n private attachNode(node: NodeInstance) {\n const listener = async (event: MessageEvent) => {\n const message = event.data as Message\n switch (message.type) {\n case 'xyoQuery': {\n const message: QueryMessage = event.data\n const {\n address, msgId, query, payloads,\n } = message\n const mod = address ? await node.resolve(address, { direction: 'down' }) : node\n if (mod) {\n const result: QueryResultMessage = {\n address, msgId, result: await mod.query(query, payloads),\n }\n self.postMessage(result)\n }\n break\n }\n default: {\n const message: Message = event.data\n this.logger?.debug(`Unknown Event [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n\n self.addEventListener('message', (event: MessageEvent) => {\n forget(listener(event))\n })\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { AbstractBridge } from '@xyo-network/bridge-abstract'\nimport {\n BridgeExposeOptions, BridgeModule, BridgeUnexposeOptions,\n} from '@xyo-network/bridge-model'\nimport { PackageManifestPayload } from '@xyo-network/manifest-model'\nimport {\n AnyConfigSchema,\n CacheConfig,\n creatableModule,\n ModuleConfig,\n ModuleInstance,\n ModuleParams,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nimport { defaultPackageManifest } from './defaultNodeManifest.ts'\nimport { WorkerBridgeConfig, WorkerBridgeConfigSchema } from './WorkerBridgeConfig.ts'\n\nexport type WorkerBridgeParams<TConfig extends AnyConfigSchema<WorkerBridgeConfig> = AnyConfigSchema<WorkerBridgeConfig>> = ModuleParams<\n TConfig,\n {\n worker?: Worker\n }\n>\n\nexport interface Message<T extends string = string> {\n type: T\n}\n\nexport interface QueryMessage extends Message<'xyoQuery'> {\n address: Address\n msgId?: string\n payloads?: Payload[]\n query: QueryBoundWitness\n}\n\nexport interface QueryResultMessage {\n address: Address\n msgId?: string\n result: ModuleQueryResult\n}\n\n@creatableModule()\nexport class WorkerBridge<TParams extends WorkerBridgeParams = WorkerBridgeParams> extends AbstractBridge<TParams> implements BridgeModule<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, WorkerBridgeConfigSchema]\n static override readonly defaultConfigSchema: Schema = WorkerBridgeConfigSchema\n\n private _discoverCache?: LRUCache<string, Payload[]>\n private _targetConfigs: Record<string, ModuleConfig> = {}\n private _targetQueries: Record<string, string[]> = {}\n\n get discoverCache() {\n const config = this.discoverCacheConfig\n this._discoverCache = this._discoverCache ?? new LRUCache<string, Payload[]>({ ttlAutopurge: true, ...config })\n return this._discoverCache\n }\n\n get discoverCacheConfig(): LRUCache.Options<string, Payload[], unknown> {\n const discoverCacheConfig: CacheConfig | undefined = {}\n return {\n max: 100, ttl: 1000 * 60 * 5, ...discoverCacheConfig,\n }\n }\n\n get worker(): Worker {\n return assertEx(this.params.worker)\n }\n\n static async createWorkerNode(manifest: PackageManifestPayload = defaultPackageManifest as PackageManifestPayload) {\n const worker = new Worker(new URL('worker/Worker.ts', import.meta?.url ?? __filename))\n worker.postMessage({ manifest, type: 'createNode' })\n\n await new Promise((resolve, reject) => {\n const eventFunc = (event: MessageEvent) => {\n const timeout = setTimeout(() => {\n console.log('Node creation timeout')\n worker.removeEventListener('message', eventFunc)\n reject('Timeout')\n }, 1000)\n switch (event.data.type) {\n case 'nodeCreated': {\n clearTimeout(timeout)\n worker.removeEventListener('message', eventFunc)\n resolve(true)\n break\n }\n default: {\n const message: Message = event.data\n console.log(`Unknown Event (nodeCreated listener) [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n worker.addEventListener('message', eventFunc)\n })\n\n const bridge = await WorkerBridge.create({ config: { schema: WorkerBridgeConfigSchema }, worker })\n await bridge.start()\n return bridge\n }\n\n override exposeHandler(_id: string, _options?: BridgeExposeOptions | undefined): Promisable<ModuleInstance[]> {\n return []\n }\n\n override exposedHandler(): Promisable<Address[]> {\n return []\n }\n\n override getRoots(_force?: boolean | undefined): Promise<ModuleInstance[]> {\n return Promise.resolve([])\n }\n\n override unexposeHandler(_id: string, _options?: BridgeUnexposeOptions | undefined): Promisable<ModuleInstance[]> {\n return []\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type { BridgeConfig } from '@xyo-network/bridge-model'\n\nexport type WorkerBridgeConfigSchema = 'network.xyo.bridge.worker.config'\nexport const WorkerBridgeConfigSchema: WorkerBridgeConfigSchema = 'network.xyo.bridge.worker.config'\n\nexport type WorkerBridgeConfig<TConfig extends EmptyObject = EmptyObject> = BridgeConfig<TConfig, WorkerBridgeConfigSchema>\n"],"mappings":"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","names":["ArchivistConfigSchema","PackageManifestPayloadSchema","NodeConfigSchema","SentinelConfigSchema","defaultPackageManifest","nodes","config","name","schema","modules","private","public","generateMnemonic","wordlist","forget","HDWallet","ManifestWrapper","WorkerNodeHost","constructor","node","logger","create","config","mnemonic","generateMnemonic","wordlist","manifest","ManifestWrapper","HDWallet","fromPhrase","loadNodes","worker","attachNode","start","listener","event","data","type","message","log","address","response","postMessage","debug","JSON","stringify","self","addEventListener","forget","msgId","query","payloads","mod","resolve","direction","result","assertEx","AbstractBridge","creatableModule","LRUCache","WorkerBridgeConfigSchema","WorkerBridge","AbstractBridge","configSchemas","WorkerBridgeConfigSchema","defaultConfigSchema","_discoverCache","_targetConfigs","_targetQueries","discoverCache","config","discoverCacheConfig","LRUCache","ttlAutopurge","max","ttl","worker","assertEx","params","createWorkerNode","manifest","defaultPackageManifest","Worker","URL","url","__filename","postMessage","type","Promise","resolve","reject","eventFunc","event","timeout","setTimeout","console","log","removeEventListener","data","clearTimeout","message","JSON","stringify","addEventListener","bridge","create","schema","start","exposeHandler","_id","_options","exposedHandler","getRoots","_force","unexposeHandler"]}
|
|
1
|
+
{"version":3,"sources":["../../src/defaultNodeManifest.ts","../../src/worker/WorkerNodeHost.ts","../../src/WorkerBridge.ts","../../src/WorkerBridgeConfig.ts"],"sourcesContent":["import { ArchivistConfigSchema } from '@xyo-network/archivist-model'\nimport type { PackageManifestPayload } from '@xyo-network/manifest-model'\nimport { PackageManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { NodeConfigSchema } from '@xyo-network/node-model'\nimport { SentinelConfigSchema } from '@xyo-network/sentinel-model'\n\nexport const defaultPackageManifest: PackageManifestPayload = {\n nodes: [\n {\n config: {\n name: 'SimpleMemoryDapp',\n schema: NodeConfigSchema,\n },\n modules: {\n private: [\n {\n config: {\n name: 'ScratchArchivist',\n schema: ArchivistConfigSchema,\n },\n },\n ],\n public: [\n {\n config: {\n name: 'SimpleArchivist',\n schema: ArchivistConfigSchema,\n },\n },\n {\n config: {\n name: 'SimpleSentinel',\n schema: SentinelConfigSchema,\n },\n },\n ],\n },\n },\n ],\n schema: PackageManifestPayloadSchema,\n}\n","import { generateMnemonic } from '@scure/bip39'\nimport { wordlist } from '@scure/bip39/wordlists/english'\nimport { forget } from '@xylabs/forget'\nimport type { Address } from '@xylabs/hex'\nimport type { Logger } from '@xylabs/logger'\nimport { HDWallet } from '@xyo-network/account'\nimport type { PackageManifestPayload } from '@xyo-network/manifest'\nimport { ManifestWrapper } from '@xyo-network/manifest'\nimport type { NodeInstance } from '@xyo-network/node-model'\n\nimport type {\n Message, QueryMessage, QueryResultMessage,\n} from '../WorkerBridge.ts'\n\nexport type QueryEvent = MessageEvent<QueryMessage>\n\nexport interface CreateNodeMessage extends Message<'createNode'> {\n manifest: PackageManifestPayload\n}\n\nexport type CreateNodeEvent = MessageEvent<CreateNodeMessage>\n\nexport interface NodeCreatedMessage extends Message<'nodeCreated'> {\n address: Address\n}\n\nexport class WorkerNodeHost {\n constructor(\n protected node: NodeInstance,\n protected logger?: Logger,\n ) {}\n\n static async create(config: PackageManifestPayload) {\n const mnemonic = generateMnemonic(wordlist, 256)\n const manifest = new ManifestWrapper(config, await HDWallet.fromPhrase(mnemonic))\n const [node] = await manifest.loadNodes()\n const worker = new this(node)\n worker.attachNode(node)\n return worker\n }\n\n static start(logger?: Logger) {\n const listener = async (event: MessageEvent) => {\n switch (event.data.type) {\n case 'createNode': {\n const message: CreateNodeMessage = event.data\n const worker = await this.create(message.manifest)\n logger?.log(`createNode: ${worker.node.address}`)\n const response: NodeCreatedMessage = { address: worker.node.address, type: 'nodeCreated' }\n postMessage(response)\n break\n }\n default: {\n const message: Message = event.data\n logger?.debug(`Unknown Event (Static) [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n\n self.addEventListener('message', (event: MessageEvent) => {\n forget(listener(event))\n })\n }\n\n private attachNode(node: NodeInstance) {\n const listener = async (event: MessageEvent) => {\n const message = event.data as Message\n switch (message.type) {\n case 'xyoQuery': {\n const message: QueryMessage = event.data\n const {\n address, msgId, query, payloads,\n } = message\n const mod = address ? await node.resolve(address, { direction: 'down' }) : node\n if (mod) {\n const result: QueryResultMessage = {\n address, msgId, result: await mod.query(query, payloads),\n }\n self.postMessage(result)\n }\n break\n }\n default: {\n const message: Message = event.data\n this.logger?.debug(`Unknown Event [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n\n self.addEventListener('message', (event: MessageEvent) => {\n forget(listener(event))\n })\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { AbstractBridge } from '@xyo-network/bridge-abstract'\nimport {\n BridgeExposeOptions, BridgeModule, BridgeUnexposeOptions,\n} from '@xyo-network/bridge-model'\nimport { PackageManifestPayload } from '@xyo-network/manifest-model'\nimport {\n AnyConfigSchema,\n CacheConfig,\n creatableModule,\n ModuleConfig,\n ModuleInstance,\n ModuleParams,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport { Payload, Schema } from '@xyo-network/payload-model'\nimport { LRUCache } from 'lru-cache'\n\nimport { defaultPackageManifest } from './defaultNodeManifest.ts'\nimport { WorkerBridgeConfig, WorkerBridgeConfigSchema } from './WorkerBridgeConfig.ts'\n\nexport type WorkerBridgeParams<TConfig extends AnyConfigSchema<WorkerBridgeConfig> = AnyConfigSchema<WorkerBridgeConfig>> = ModuleParams<\n TConfig,\n {\n worker?: Worker\n }\n>\n\nexport interface Message<T extends string = string> {\n type: T\n}\n\nexport interface QueryMessage extends Message<'xyoQuery'> {\n address: Address\n msgId?: string\n payloads?: Payload[]\n query: QueryBoundWitness\n}\n\nexport interface QueryResultMessage {\n address: Address\n msgId?: string\n result: ModuleQueryResult\n}\n\n@creatableModule()\nexport class WorkerBridge<TParams extends WorkerBridgeParams = WorkerBridgeParams> extends AbstractBridge<TParams> implements BridgeModule<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, WorkerBridgeConfigSchema]\n static override readonly defaultConfigSchema: Schema = WorkerBridgeConfigSchema\n\n private _discoverCache?: LRUCache<string, Payload[]>\n private _targetConfigs: Record<string, ModuleConfig> = {}\n private _targetQueries: Record<string, string[]> = {}\n\n get discoverCache() {\n const config = this.discoverCacheConfig\n this._discoverCache = this._discoverCache ?? new LRUCache<string, Payload[]>({ ttlAutopurge: true, ...config })\n return this._discoverCache\n }\n\n get discoverCacheConfig(): LRUCache.Options<string, Payload[], unknown> {\n const discoverCacheConfig: CacheConfig | undefined = {}\n return {\n max: 100, ttl: 1000 * 60 * 5, ...discoverCacheConfig,\n }\n }\n\n get worker(): Worker {\n return assertEx(this.params.worker)\n }\n\n static async createWorkerNode(manifest: PackageManifestPayload = defaultPackageManifest as PackageManifestPayload) {\n const worker = new Worker(new URL('worker/Worker.ts', import.meta?.url ?? __filename))\n worker.postMessage({ manifest, type: 'createNode' })\n\n await new Promise((resolve, reject) => {\n const eventFunc = (event: MessageEvent) => {\n const timeout = setTimeout(() => {\n console.log('Node creation timeout')\n worker.removeEventListener('message', eventFunc)\n reject('Timeout')\n }, 1000)\n switch (event.data.type) {\n case 'nodeCreated': {\n clearTimeout(timeout)\n worker.removeEventListener('message', eventFunc)\n resolve(true)\n break\n }\n default: {\n const message: Message = event.data\n console.log(`Unknown Event (nodeCreated listener) [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)\n break\n }\n }\n }\n worker.addEventListener('message', eventFunc)\n })\n\n const bridge = await WorkerBridge.create({ config: { schema: WorkerBridgeConfigSchema }, worker })\n await bridge.start()\n return bridge\n }\n\n override exposeHandler(_id: string, _options?: BridgeExposeOptions | undefined): Promisable<ModuleInstance[]> {\n return []\n }\n\n override exposedHandler(): Promisable<Address[]> {\n return []\n }\n\n override getRoots(_force?: boolean | undefined): Promise<ModuleInstance[]> {\n return Promise.resolve([])\n }\n\n override unexposeHandler(_id: string, _options?: BridgeUnexposeOptions | undefined): Promisable<ModuleInstance[]> {\n return []\n }\n}\n","import type { EmptyObject } from '@xylabs/object'\nimport type { BridgeConfig } from '@xyo-network/bridge-model'\n\nexport const WorkerBridgeConfigSchema = 'network.xyo.bridge.worker.config' as const\nexport type WorkerBridgeConfigSchema = typeof WorkerBridgeConfigSchema\n\nexport type WorkerBridgeConfig<TConfig extends EmptyObject = EmptyObject> = BridgeConfig<TConfig, WorkerBridgeConfigSchema>\n"],"mappings":"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","names":["message"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/bridge-worker",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.10",
|
|
4
4
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
5
5
|
"homepage": "https://xyo.network",
|
|
6
6
|
"bugs": {
|
|
@@ -37,30 +37,30 @@
|
|
|
37
37
|
"module": "dist/neutral/index.mjs",
|
|
38
38
|
"types": "dist/neutral/index.d.ts",
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@scure/bip39": "^1.5.
|
|
41
|
-
"@xylabs/assert": "^4.
|
|
42
|
-
"@xylabs/forget": "^4.
|
|
43
|
-
"@xylabs/hex": "^4.
|
|
44
|
-
"@xylabs/logger": "^4.
|
|
45
|
-
"@xylabs/object": "^4.
|
|
46
|
-
"@xylabs/promise": "^4.
|
|
47
|
-
"@xyo-network/account": "^3.6.
|
|
48
|
-
"@xyo-network/archivist-model": "^3.6.
|
|
49
|
-
"@xyo-network/boundwitness-model": "^3.6.
|
|
50
|
-
"@xyo-network/bridge-abstract": "^3.6.
|
|
51
|
-
"@xyo-network/bridge-model": "^3.6.
|
|
52
|
-
"@xyo-network/manifest": "^3.6.
|
|
53
|
-
"@xyo-network/manifest-model": "^3.6.
|
|
54
|
-
"@xyo-network/module-model": "^3.6.
|
|
55
|
-
"@xyo-network/node-model": "^3.6.
|
|
56
|
-
"@xyo-network/payload-model": "^3.6.
|
|
57
|
-
"@xyo-network/sentinel-model": "^3.6.
|
|
40
|
+
"@scure/bip39": "^1.5.4",
|
|
41
|
+
"@xylabs/assert": "^4.5.1",
|
|
42
|
+
"@xylabs/forget": "^4.5.1",
|
|
43
|
+
"@xylabs/hex": "^4.5.1",
|
|
44
|
+
"@xylabs/logger": "^4.5.1",
|
|
45
|
+
"@xylabs/object": "^4.5.1",
|
|
46
|
+
"@xylabs/promise": "^4.5.1",
|
|
47
|
+
"@xyo-network/account": "^3.6.10",
|
|
48
|
+
"@xyo-network/archivist-model": "^3.6.10",
|
|
49
|
+
"@xyo-network/boundwitness-model": "^3.6.10",
|
|
50
|
+
"@xyo-network/bridge-abstract": "^3.6.10",
|
|
51
|
+
"@xyo-network/bridge-model": "^3.6.10",
|
|
52
|
+
"@xyo-network/manifest": "^3.6.10",
|
|
53
|
+
"@xyo-network/manifest-model": "^3.6.10",
|
|
54
|
+
"@xyo-network/module-model": "^3.6.10",
|
|
55
|
+
"@xyo-network/node-model": "^3.6.10",
|
|
56
|
+
"@xyo-network/payload-model": "^3.6.10",
|
|
57
|
+
"@xyo-network/sentinel-model": "^3.6.10",
|
|
58
58
|
"lru-cache": "^11.0.2"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@xylabs/ts-scripts-yarn3": "^4.2.6",
|
|
62
62
|
"@xylabs/tsconfig": "^4.2.6",
|
|
63
|
-
"typescript": "^5.7.
|
|
63
|
+
"typescript": "^5.7.3"
|
|
64
64
|
},
|
|
65
65
|
"publishConfig": {
|
|
66
66
|
"access": "public"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { EmptyObject } from '@xylabs/object'
|
|
2
2
|
import type { BridgeConfig } from '@xyo-network/bridge-model'
|
|
3
3
|
|
|
4
|
-
export
|
|
5
|
-
export
|
|
4
|
+
export const WorkerBridgeConfigSchema = 'network.xyo.bridge.worker.config' as const
|
|
5
|
+
export type WorkerBridgeConfigSchema = typeof WorkerBridgeConfigSchema
|
|
6
6
|
|
|
7
7
|
export type WorkerBridgeConfig<TConfig extends EmptyObject = EmptyObject> = BridgeConfig<TConfig, WorkerBridgeConfigSchema>
|