@xyo-network/bridge-worker 2.102.0
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/LICENSE +165 -0
- package/README.md +13 -0
- package/dist/browser/WorkerBridge.d.cts +63 -0
- package/dist/browser/WorkerBridge.d.cts.map +1 -0
- package/dist/browser/WorkerBridge.d.mts +63 -0
- package/dist/browser/WorkerBridge.d.mts.map +1 -0
- package/dist/browser/WorkerBridge.d.ts +63 -0
- package/dist/browser/WorkerBridge.d.ts.map +1 -0
- package/dist/browser/WorkerBridgeConfig.d.cts +6 -0
- package/dist/browser/WorkerBridgeConfig.d.cts.map +1 -0
- package/dist/browser/WorkerBridgeConfig.d.mts +6 -0
- package/dist/browser/WorkerBridgeConfig.d.mts.map +1 -0
- package/dist/browser/WorkerBridgeConfig.d.ts +6 -0
- package/dist/browser/WorkerBridgeConfig.d.ts.map +1 -0
- package/dist/browser/defaultNodeManifest.d.cts +3 -0
- package/dist/browser/defaultNodeManifest.d.cts.map +1 -0
- package/dist/browser/defaultNodeManifest.d.mts +3 -0
- package/dist/browser/defaultNodeManifest.d.mts.map +1 -0
- package/dist/browser/defaultNodeManifest.d.ts +3 -0
- package/dist/browser/defaultNodeManifest.d.ts.map +1 -0
- package/dist/browser/docsEntry.d.cts +4 -0
- package/dist/browser/docsEntry.d.cts.map +1 -0
- package/dist/browser/docsEntry.d.mts +4 -0
- package/dist/browser/docsEntry.d.mts.map +1 -0
- package/dist/browser/docsEntry.d.ts +4 -0
- package/dist/browser/docsEntry.d.ts.map +1 -0
- package/dist/browser/index.cjs +261 -0
- package/dist/browser/index.cjs.map +1 -0
- package/dist/browser/index.d.cts +5 -0
- package/dist/browser/index.d.cts.map +1 -0
- package/dist/browser/index.d.mts +5 -0
- package/dist/browser/index.d.mts.map +1 -0
- package/dist/browser/index.d.ts +5 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +239 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/worker/Worker.d.cts +2 -0
- package/dist/browser/worker/Worker.d.cts.map +1 -0
- package/dist/browser/worker/Worker.d.mts +2 -0
- package/dist/browser/worker/Worker.d.mts.map +1 -0
- package/dist/browser/worker/Worker.d.ts +2 -0
- package/dist/browser/worker/Worker.d.ts.map +1 -0
- package/dist/browser/worker/WorkerNodeHost.d.cts +22 -0
- package/dist/browser/worker/WorkerNodeHost.d.cts.map +1 -0
- package/dist/browser/worker/WorkerNodeHost.d.mts +22 -0
- package/dist/browser/worker/WorkerNodeHost.d.mts.map +1 -0
- package/dist/browser/worker/WorkerNodeHost.d.ts +22 -0
- package/dist/browser/worker/WorkerNodeHost.d.ts.map +1 -0
- package/dist/browser/worker/index.d.cts +2 -0
- package/dist/browser/worker/index.d.cts.map +1 -0
- package/dist/browser/worker/index.d.mts +2 -0
- package/dist/browser/worker/index.d.mts.map +1 -0
- package/dist/browser/worker/index.d.ts +2 -0
- package/dist/browser/worker/index.d.ts.map +1 -0
- package/dist/neutral/WorkerBridge.d.cts +63 -0
- package/dist/neutral/WorkerBridge.d.cts.map +1 -0
- package/dist/neutral/WorkerBridge.d.mts +63 -0
- package/dist/neutral/WorkerBridge.d.mts.map +1 -0
- package/dist/neutral/WorkerBridge.d.ts +63 -0
- package/dist/neutral/WorkerBridge.d.ts.map +1 -0
- package/dist/neutral/WorkerBridgeConfig.d.cts +6 -0
- package/dist/neutral/WorkerBridgeConfig.d.cts.map +1 -0
- package/dist/neutral/WorkerBridgeConfig.d.mts +6 -0
- package/dist/neutral/WorkerBridgeConfig.d.mts.map +1 -0
- package/dist/neutral/WorkerBridgeConfig.d.ts +6 -0
- package/dist/neutral/WorkerBridgeConfig.d.ts.map +1 -0
- package/dist/neutral/defaultNodeManifest.d.cts +3 -0
- package/dist/neutral/defaultNodeManifest.d.cts.map +1 -0
- package/dist/neutral/defaultNodeManifest.d.mts +3 -0
- package/dist/neutral/defaultNodeManifest.d.mts.map +1 -0
- package/dist/neutral/defaultNodeManifest.d.ts +3 -0
- package/dist/neutral/defaultNodeManifest.d.ts.map +1 -0
- package/dist/neutral/docsEntry.d.cts +4 -0
- package/dist/neutral/docsEntry.d.cts.map +1 -0
- package/dist/neutral/docsEntry.d.mts +4 -0
- package/dist/neutral/docsEntry.d.mts.map +1 -0
- package/dist/neutral/docsEntry.d.ts +4 -0
- package/dist/neutral/docsEntry.d.ts.map +1 -0
- package/dist/neutral/index.cjs +261 -0
- package/dist/neutral/index.cjs.map +1 -0
- package/dist/neutral/index.d.cts +5 -0
- package/dist/neutral/index.d.cts.map +1 -0
- package/dist/neutral/index.d.mts +5 -0
- package/dist/neutral/index.d.mts.map +1 -0
- package/dist/neutral/index.d.ts +5 -0
- package/dist/neutral/index.d.ts.map +1 -0
- package/dist/neutral/index.js +239 -0
- package/dist/neutral/index.js.map +1 -0
- package/dist/neutral/worker/Worker.d.cts +2 -0
- package/dist/neutral/worker/Worker.d.cts.map +1 -0
- package/dist/neutral/worker/Worker.d.mts +2 -0
- package/dist/neutral/worker/Worker.d.mts.map +1 -0
- package/dist/neutral/worker/Worker.d.ts +2 -0
- package/dist/neutral/worker/Worker.d.ts.map +1 -0
- package/dist/neutral/worker/WorkerNodeHost.d.cts +22 -0
- package/dist/neutral/worker/WorkerNodeHost.d.cts.map +1 -0
- package/dist/neutral/worker/WorkerNodeHost.d.mts +22 -0
- package/dist/neutral/worker/WorkerNodeHost.d.mts.map +1 -0
- package/dist/neutral/worker/WorkerNodeHost.d.ts +22 -0
- package/dist/neutral/worker/WorkerNodeHost.d.ts.map +1 -0
- package/dist/neutral/worker/index.d.cts +2 -0
- package/dist/neutral/worker/index.d.cts.map +1 -0
- package/dist/neutral/worker/index.d.mts +2 -0
- package/dist/neutral/worker/index.d.mts.map +1 -0
- package/dist/neutral/worker/index.d.ts +2 -0
- package/dist/neutral/worker/index.d.ts.map +1 -0
- package/dist/node/WorkerBridge.d.cts +63 -0
- package/dist/node/WorkerBridge.d.cts.map +1 -0
- package/dist/node/WorkerBridge.d.mts +63 -0
- package/dist/node/WorkerBridge.d.mts.map +1 -0
- package/dist/node/WorkerBridge.d.ts +63 -0
- package/dist/node/WorkerBridge.d.ts.map +1 -0
- package/dist/node/WorkerBridgeConfig.d.cts +6 -0
- package/dist/node/WorkerBridgeConfig.d.cts.map +1 -0
- package/dist/node/WorkerBridgeConfig.d.mts +6 -0
- package/dist/node/WorkerBridgeConfig.d.mts.map +1 -0
- package/dist/node/WorkerBridgeConfig.d.ts +6 -0
- package/dist/node/WorkerBridgeConfig.d.ts.map +1 -0
- package/dist/node/defaultNodeManifest.d.cts +3 -0
- package/dist/node/defaultNodeManifest.d.cts.map +1 -0
- package/dist/node/defaultNodeManifest.d.mts +3 -0
- package/dist/node/defaultNodeManifest.d.mts.map +1 -0
- package/dist/node/defaultNodeManifest.d.ts +3 -0
- package/dist/node/defaultNodeManifest.d.ts.map +1 -0
- package/dist/node/docsEntry.d.cts +4 -0
- package/dist/node/docsEntry.d.cts.map +1 -0
- package/dist/node/docsEntry.d.mts +4 -0
- package/dist/node/docsEntry.d.mts.map +1 -0
- package/dist/node/docsEntry.d.ts +4 -0
- package/dist/node/docsEntry.d.ts.map +1 -0
- package/dist/node/index.cjs +275 -0
- package/dist/node/index.cjs.map +1 -0
- package/dist/node/index.d.cts +5 -0
- package/dist/node/index.d.cts.map +1 -0
- package/dist/node/index.d.mts +5 -0
- package/dist/node/index.d.mts.map +1 -0
- package/dist/node/index.d.ts +5 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +247 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/worker/Worker.d.cts +2 -0
- package/dist/node/worker/Worker.d.cts.map +1 -0
- package/dist/node/worker/Worker.d.mts +2 -0
- package/dist/node/worker/Worker.d.mts.map +1 -0
- package/dist/node/worker/Worker.d.ts +2 -0
- package/dist/node/worker/Worker.d.ts.map +1 -0
- package/dist/node/worker/WorkerNodeHost.d.cts +22 -0
- package/dist/node/worker/WorkerNodeHost.d.cts.map +1 -0
- package/dist/node/worker/WorkerNodeHost.d.mts +22 -0
- package/dist/node/worker/WorkerNodeHost.d.mts.map +1 -0
- package/dist/node/worker/WorkerNodeHost.d.ts +22 -0
- package/dist/node/worker/WorkerNodeHost.d.ts.map +1 -0
- package/dist/node/worker/index.d.cts +2 -0
- package/dist/node/worker/index.d.cts.map +1 -0
- package/dist/node/worker/index.d.mts +2 -0
- package/dist/node/worker/index.d.mts.map +1 -0
- package/dist/node/worker/index.d.ts +2 -0
- package/dist/node/worker/index.d.ts.map +1 -0
- package/package.json +70 -0
- package/src/WorkerBridge.ts +119 -0
- package/src/WorkerBridgeConfig.ts +7 -0
- package/src/defaultNodeManifest.ts +40 -0
- package/src/docsEntry.ts +4 -0
- package/src/index.ts +4 -0
- package/src/worker/Worker.ts +3 -0
- package/src/worker/WorkerNodeHost.ts +90 -0
- package/src/worker/index.ts +1 -0
- package/typedoc.json +5 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { generateMnemonic } from '@scure/bip39'
|
|
2
|
+
// eslint-disable-next-line import/no-internal-modules
|
|
3
|
+
import { wordlist } from '@scure/bip39/wordlists/english'
|
|
4
|
+
import { forget } from '@xylabs/forget'
|
|
5
|
+
import { Address } from '@xylabs/hex'
|
|
6
|
+
import { Logger } from '@xylabs/logger'
|
|
7
|
+
import { HDWallet } from '@xyo-network/account'
|
|
8
|
+
import { ManifestWrapper, PackageManifestPayload } from '@xyo-network/manifest'
|
|
9
|
+
import { NodeInstance } from '@xyo-network/node-model'
|
|
10
|
+
|
|
11
|
+
import { Message, QueryMessage, QueryResultMessage } from '../WorkerBridge'
|
|
12
|
+
|
|
13
|
+
export type QueryEvent = MessageEvent<QueryMessage>
|
|
14
|
+
|
|
15
|
+
export interface CreateNodeMessage extends Message<'createNode'> {
|
|
16
|
+
manifest: PackageManifestPayload
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export type CreateNodeEvent = MessageEvent<CreateNodeMessage>
|
|
20
|
+
|
|
21
|
+
export interface NodeCreatedMessage extends Message<'nodeCreated'> {
|
|
22
|
+
address: Address
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export class WorkerNodeHost {
|
|
26
|
+
constructor(
|
|
27
|
+
protected node: NodeInstance,
|
|
28
|
+
protected logger?: Logger,
|
|
29
|
+
) {}
|
|
30
|
+
|
|
31
|
+
static async create(config: PackageManifestPayload) {
|
|
32
|
+
const mnemonic = generateMnemonic(wordlist, 256)
|
|
33
|
+
const manifest = new ManifestWrapper(config, await HDWallet.fromPhrase(mnemonic))
|
|
34
|
+
const [node] = await manifest.loadNodes()
|
|
35
|
+
const worker = new this(node)
|
|
36
|
+
worker.attachNode(node)
|
|
37
|
+
return worker
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static start(logger?: Logger) {
|
|
41
|
+
const listener = async (event: MessageEvent) => {
|
|
42
|
+
switch (event.data.type) {
|
|
43
|
+
case 'createNode': {
|
|
44
|
+
const message: CreateNodeMessage = event.data
|
|
45
|
+
const worker = await this.create(message.manifest)
|
|
46
|
+
logger?.log(`createNode: ${worker.node.address}`)
|
|
47
|
+
const response: NodeCreatedMessage = { address: worker.node.address, type: 'nodeCreated' }
|
|
48
|
+
postMessage(response)
|
|
49
|
+
break
|
|
50
|
+
}
|
|
51
|
+
default: {
|
|
52
|
+
const message: Message = event.data
|
|
53
|
+
logger?.debug(`Unknown Event (Static) [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)
|
|
54
|
+
break
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
self.addEventListener('message', (event: MessageEvent) => {
|
|
60
|
+
forget(listener(event))
|
|
61
|
+
})
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
private attachNode(node: NodeInstance) {
|
|
65
|
+
const listener = async (event: MessageEvent) => {
|
|
66
|
+
const message = event.data as Message
|
|
67
|
+
switch (message.type) {
|
|
68
|
+
case 'xyoQuery': {
|
|
69
|
+
const message: QueryMessage = event.data
|
|
70
|
+
const { address, msgId, query, payloads } = message
|
|
71
|
+
const module = address ? await node.resolve(address, { direction: 'down' }) : node
|
|
72
|
+
if (module) {
|
|
73
|
+
const result: QueryResultMessage = { address, msgId, result: await module.query(query, payloads) }
|
|
74
|
+
self.postMessage(result)
|
|
75
|
+
}
|
|
76
|
+
break
|
|
77
|
+
}
|
|
78
|
+
default: {
|
|
79
|
+
const message: Message = event.data
|
|
80
|
+
this.logger?.debug(`Unknown Event [${JSON.stringify(event)}]: ${JSON.stringify(message, null, 2)}`)
|
|
81
|
+
break
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
self.addEventListener('message', (event: MessageEvent) => {
|
|
87
|
+
forget(listener(event))
|
|
88
|
+
})
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './WorkerNodeHost'
|