@xyo-network/chain-orchestration 1.11.0 → 1.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -2,5 +2,5 @@ import type { TracerProvider } from '@opentelemetry/api';
|
|
|
2
2
|
import type { ArchivistInstance } from '@xyo-network/archivist-model';
|
|
3
3
|
import type { ModuleIdentifier } from '@xyo-network/module-model';
|
|
4
4
|
import { MemoryNode } from '@xyo-network/node-memory';
|
|
5
|
-
export declare const initArchivistSync: (name: ModuleIdentifier, inArchivist: ArchivistInstance, outArchivist: ArchivistInstance, frequency?: number, max?: number, traceProvider?: TracerProvider) => Promise<MemoryNode<import("@xyo-network/node-memory").MemoryNodeParams, import("
|
|
5
|
+
export declare const initArchivistSync: (name: ModuleIdentifier, inArchivist: ArchivistInstance, outArchivist: ArchivistInstance, frequency?: number, max?: number, traceProvider?: TracerProvider) => Promise<MemoryNode<import("@xyo-network/node-memory").MemoryNodeParams, import("@xyo-network/node-model").NodeModuleEventData>>;
|
|
6
6
|
//# sourceMappingURL=initArchivistSync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initArchivistSync.d.ts","sourceRoot":"","sources":["../../../src/archivist/initArchivistSync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAGrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAIrD,eAAO,MAAM,iBAAiB,GAC5B,MAAM,gBAAgB,EACtB,aAAa,iBAAiB,EAC9B,cAAc,iBAAiB,EAC/B,kBAAgB,EAChB,YAAU,EACV,gBAAgB,cAAc,
|
|
1
|
+
{"version":3,"file":"initArchivistSync.d.ts","sourceRoot":"","sources":["../../../src/archivist/initArchivistSync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAGrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAIrD,eAAO,MAAM,iBAAiB,GAC5B,MAAM,gBAAgB,EACtB,aAAa,iBAAiB,EAC9B,cAAc,iBAAiB,EAC/B,kBAAgB,EAChB,YAAU,EACV,gBAAgB,cAAc,oIA6C/B,CAAA"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
1
4
|
// src/archivist/initArchivistSync.ts
|
|
2
5
|
import { ArchivistSyncDiviner } from "@xyo-network/chain-modules";
|
|
3
6
|
import { DivinerConfigSchema } from "@xyo-network/diviner-model";
|
|
4
7
|
import { MemoryNode } from "@xyo-network/node-memory";
|
|
5
8
|
import { MemorySentinel } from "@xyo-network/sentinel-memory";
|
|
6
9
|
import { SentinelConfigSchema } from "@xyo-network/sentinel-model";
|
|
7
|
-
var initArchivistSync = async (name, inArchivist, outArchivist, frequency = 1e3, max = 1e3, traceProvider) => {
|
|
8
|
-
const node = await MemoryNode.create({
|
|
10
|
+
var initArchivistSync = /* @__PURE__ */ __name(async (name, inArchivist, outArchivist, frequency = 1e3, max = 1e3, traceProvider) => {
|
|
11
|
+
const node = await MemoryNode.create({
|
|
12
|
+
account: "random"
|
|
13
|
+
});
|
|
9
14
|
const finalizedArchivistSyncDiviner = await ArchivistSyncDiviner.create({
|
|
10
15
|
account: "random",
|
|
11
16
|
inArchivist,
|
|
@@ -46,7 +51,7 @@ var initArchivistSync = async (name, inArchivist, outArchivist, frequency = 1e3,
|
|
|
46
51
|
await node.register(sentinel);
|
|
47
52
|
await node.attach(sentinel.address);
|
|
48
53
|
return node;
|
|
49
|
-
};
|
|
54
|
+
}, "initArchivistSync");
|
|
50
55
|
|
|
51
56
|
// src/archivist/wrapWithReadCachingArchivist.ts
|
|
52
57
|
import { MemoryArchivist, MemoryArchivistConfigSchema } from "@xyo-network/archivist-memory";
|
|
@@ -55,17 +60,19 @@ var DefaultReadCachingArchivistConfig = {
|
|
|
55
60
|
// requireAllParents: true,
|
|
56
61
|
schema: MemoryArchivistConfigSchema
|
|
57
62
|
};
|
|
58
|
-
var getDynamicDefaultReadCachingArchivistConfig = (archivist) => {
|
|
63
|
+
var getDynamicDefaultReadCachingArchivistConfig = /* @__PURE__ */ __name((archivist) => {
|
|
59
64
|
const { id } = archivist;
|
|
60
65
|
const name = `${id}-CachingArchivist`;
|
|
61
|
-
const dynamicDefaults = {
|
|
66
|
+
const dynamicDefaults = {
|
|
67
|
+
name
|
|
68
|
+
};
|
|
62
69
|
return dynamicDefaults;
|
|
63
|
-
};
|
|
64
|
-
var getDynamicReadCachingArchivistConfig = (_archivist) => {
|
|
70
|
+
}, "getDynamicDefaultReadCachingArchivistConfig");
|
|
71
|
+
var getDynamicReadCachingArchivistConfig = /* @__PURE__ */ __name((_archivist) => {
|
|
65
72
|
const dynamicConfig = {};
|
|
66
73
|
return dynamicConfig;
|
|
67
|
-
};
|
|
68
|
-
var wrapWithReadCachingArchivist = async (archivist, config = DefaultReadCachingArchivistConfig) => {
|
|
74
|
+
}, "getDynamicReadCachingArchivistConfig");
|
|
75
|
+
var wrapWithReadCachingArchivist = /* @__PURE__ */ __name(async (archivist, config = DefaultReadCachingArchivistConfig) => {
|
|
69
76
|
const dynamicDefaultReadCachingArchivistConfig = getDynamicDefaultReadCachingArchivistConfig(archivist);
|
|
70
77
|
const dynamicReadCachingArchivistConfig = getDynamicReadCachingArchivistConfig(archivist);
|
|
71
78
|
const materializedConfig = {
|
|
@@ -78,22 +85,20 @@ var wrapWithReadCachingArchivist = async (archivist, config = DefaultReadCaching
|
|
|
78
85
|
// Use they dynamic config
|
|
79
86
|
...dynamicReadCachingArchivistConfig
|
|
80
87
|
};
|
|
81
|
-
const cachingArchivist = await MemoryArchivist.create({
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
1e3
|
|
87
|
-
);
|
|
88
|
+
const cachingArchivist = await MemoryArchivist.create({
|
|
89
|
+
account: "random",
|
|
90
|
+
config: materializedConfig
|
|
91
|
+
});
|
|
92
|
+
await initArchivistSync(`${cachingArchivist.id}-Sync`, archivist, cachingArchivist, 1e3);
|
|
88
93
|
return cachingArchivist;
|
|
89
|
-
};
|
|
94
|
+
}, "wrapWithReadCachingArchivist");
|
|
90
95
|
|
|
91
96
|
// src/bridge.ts
|
|
92
97
|
import { HttpBridge, HttpBridgeConfigSchema } from "@xyo-network/bridge-http";
|
|
93
98
|
import { Mutex } from "async-mutex";
|
|
94
99
|
var initMutex = new Mutex();
|
|
95
100
|
var bridgeSingletonMap = /* @__PURE__ */ new Map();
|
|
96
|
-
var initBridge = async (nodeUrl) => {
|
|
101
|
+
var initBridge = /* @__PURE__ */ __name(async (nodeUrl) => {
|
|
97
102
|
return await initMutex.runExclusive(async () => {
|
|
98
103
|
const existing = bridgeSingletonMap.get(nodeUrl);
|
|
99
104
|
if (existing) return existing;
|
|
@@ -101,16 +106,21 @@ var initBridge = async (nodeUrl) => {
|
|
|
101
106
|
account: "random",
|
|
102
107
|
config: {
|
|
103
108
|
name: "HttpBridge",
|
|
104
|
-
client: {
|
|
109
|
+
client: {
|
|
110
|
+
url: nodeUrl,
|
|
111
|
+
discoverRoots: "start"
|
|
112
|
+
},
|
|
105
113
|
schema: HttpBridgeConfigSchema,
|
|
106
|
-
security: {
|
|
114
|
+
security: {
|
|
115
|
+
allowAnonymous: true
|
|
116
|
+
}
|
|
107
117
|
}
|
|
108
118
|
});
|
|
109
119
|
await bridge.start();
|
|
110
120
|
bridgeSingletonMap.set(nodeUrl, bridge);
|
|
111
121
|
return bridge;
|
|
112
122
|
});
|
|
113
|
-
};
|
|
123
|
+
}, "initBridge");
|
|
114
124
|
|
|
115
125
|
// src/initBridgedModule.ts
|
|
116
126
|
import { assertEx } from "@xylabs/assert";
|
|
@@ -119,7 +129,7 @@ import { asAttachableModuleInstance } from "@xyo-network/module-model";
|
|
|
119
129
|
import { Mutex as Mutex2 } from "async-mutex";
|
|
120
130
|
var initMutex2 = new Mutex2();
|
|
121
131
|
var bridgedModuleDictionary = {};
|
|
122
|
-
var initBridgedModule = async ({ bridge, moduleName }) => {
|
|
132
|
+
var initBridgedModule = /* @__PURE__ */ __name(async ({ bridge, moduleName }) => {
|
|
123
133
|
return await initMutex2.runExclusive(async () => {
|
|
124
134
|
const existing = bridgedModuleDictionary?.[bridge.address]?.[moduleName];
|
|
125
135
|
if (existing) return existing;
|
|
@@ -133,13 +143,13 @@ var initBridgedModule = async ({ bridge, moduleName }) => {
|
|
|
133
143
|
moduleMap[moduleName] = moduleInstance;
|
|
134
144
|
return moduleInstance;
|
|
135
145
|
});
|
|
136
|
-
};
|
|
137
|
-
var initBridgedArchivistModule = async ({ bridge, moduleName }) => {
|
|
138
|
-
return assertEx(
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
);
|
|
142
|
-
};
|
|
146
|
+
}, "initBridgedModule");
|
|
147
|
+
var initBridgedArchivistModule = /* @__PURE__ */ __name(async ({ bridge, moduleName }) => {
|
|
148
|
+
return assertEx(asAttachableArchivistInstance(await initBridgedModule({
|
|
149
|
+
bridge,
|
|
150
|
+
moduleName
|
|
151
|
+
})), () => `Error: Could not convert ${moduleName} to attachable archivist instance`);
|
|
152
|
+
}, "initBridgedArchivistModule");
|
|
143
153
|
export {
|
|
144
154
|
DefaultReadCachingArchivistConfig,
|
|
145
155
|
initArchivistSync,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/archivist/initArchivistSync.ts","../../src/archivist/wrapWithReadCachingArchivist.ts","../../src/bridge.ts","../../src/initBridgedModule.ts"],"sourcesContent":["import type { TracerProvider } from '@opentelemetry/api'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { ArchivistSyncDiviner } from '@xyo-network/chain-modules'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport type { ModuleIdentifier } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { MemorySentinel } from '@xyo-network/sentinel-memory'\nimport { SentinelConfigSchema } from '@xyo-network/sentinel-model'\n\nexport const initArchivistSync = async (\n name: ModuleIdentifier,\n inArchivist: ArchivistInstance,\n outArchivist: ArchivistInstance,\n frequency = 1000,\n max = 1000,\n traceProvider?: TracerProvider,\n) => {\n const node = await MemoryNode.create({ account: 'random' })\n const finalizedArchivistSyncDiviner = await ArchivistSyncDiviner.create({\n account: 'random',\n inArchivist,\n outArchivist,\n traceProvider,\n config: {\n schema: DivinerConfigSchema, name, max,\n },\n })\n\n await node.register(finalizedArchivistSyncDiviner)\n await node.attach(finalizedArchivistSyncDiviner.address)\n\n const sentinel = await MemorySentinel.create({\n account: 'random',\n config: {\n name,\n synchronous: true,\n schema: SentinelConfigSchema,\n tasks: [\n {\n required: true,\n mod: finalizedArchivistSyncDiviner.address,\n endPoint: 'divine',\n },\n ],\n automations: [\n {\n frequency,\n frequencyUnits: 'millis',\n schema: 'network.xyo.automation.interval',\n start: Date.now(),\n type: 'interval',\n },\n ],\n },\n })\n\n await node.register(sentinel)\n await node.attach(sentinel.address)\n\n return node\n}\n","import type { MemoryArchivistConfig } from '@xyo-network/archivist-memory'\nimport { MemoryArchivist, MemoryArchivistConfigSchema } from '@xyo-network/archivist-memory'\nimport type { AttachableArchivistInstance } from '@xyo-network/archivist-model'\n\nimport { initArchivistSync } from './initArchivistSync.ts'\n\nexport const DefaultReadCachingArchivistConfig: MemoryArchivistConfig = {\n max: 100_000,\n // requireAllParents: true,\n schema: MemoryArchivistConfigSchema,\n}\n\nconst getDynamicDefaultReadCachingArchivistConfig = (archivist: AttachableArchivistInstance): Partial<MemoryArchivistConfig> => {\n const { id } = archivist\n const name = `${id}-CachingArchivist`\n const dynamicDefaults: Partial<MemoryArchivistConfig> = { name }\n return dynamicDefaults\n}\n\nconst getDynamicReadCachingArchivistConfig = (_archivist: AttachableArchivistInstance): Partial<MemoryArchivistConfig> => {\n // const parents = {\n // read: [archivist.address], write: [], commit: [],\n // }\n // const dynamicConfig: Partial<MemoryArchivistConfig> = { parents }\n const dynamicConfig: Partial<MemoryArchivistConfig> = {}\n return dynamicConfig\n}\n\nexport const wrapWithReadCachingArchivist = async (\n archivist: AttachableArchivistInstance,\n config: Partial<MemoryArchivistConfig> = DefaultReadCachingArchivistConfig,\n): Promise<AttachableArchivistInstance> => {\n const dynamicDefaultReadCachingArchivistConfig = getDynamicDefaultReadCachingArchivistConfig(archivist)\n const dynamicReadCachingArchivistConfig = getDynamicReadCachingArchivistConfig(archivist)\n\n // Create a materialized config with precedence\n const materializedConfig: MemoryArchivistConfig = {\n // Use the static defaults\n ...DefaultReadCachingArchivistConfig,\n // Use the dynamic defaults\n ...dynamicDefaultReadCachingArchivistConfig,\n // Use the supplied config\n ...config,\n // Use they dynamic config\n ...dynamicReadCachingArchivistConfig,\n }\n const cachingArchivist = await MemoryArchivist.create({ account: 'random', config: materializedConfig })\n await initArchivistSync(\n `${cachingArchivist.id}-Sync`,\n archivist,\n cachingArchivist,\n 1000,\n )\n\n return cachingArchivist\n}\n","import { HttpBridge, HttpBridgeConfigSchema } from '@xyo-network/bridge-http'\nimport type { AttachableBridgeInstance } from '@xyo-network/bridge-model'\nimport { Mutex } from 'async-mutex'\n\nconst initMutex = new Mutex()\nconst bridgeSingletonMap = new Map<string, AttachableBridgeInstance>()\n\nexport const initBridge = async (nodeUrl: string): Promise<AttachableBridgeInstance> => {\n return await initMutex.runExclusive(async () => {\n const existing = bridgeSingletonMap.get(nodeUrl)\n if (existing) return existing\n const bridge = await HttpBridge.create({\n account: 'random',\n config: {\n name: 'HttpBridge',\n client: { url: nodeUrl, discoverRoots: 'start' },\n schema: HttpBridgeConfigSchema,\n security: { allowAnonymous: true },\n },\n })\n await bridge.start()\n bridgeSingletonMap.set(nodeUrl, bridge)\n return bridge\n })\n}\n","import { assertEx } from '@xylabs/assert'\nimport type { Address } from '@xylabs/hex'\nimport type { Logger } from '@xylabs/logger'\nimport type { AttachableArchivistInstance } from '@xyo-network/archivist-model'\nimport { asAttachableArchivistInstance } from '@xyo-network/archivist-model'\nimport type { BridgeInstance } from '@xyo-network/bridge-model'\nimport type { AttachableModuleInstance, ModuleIdentifier } from '@xyo-network/module-model'\nimport { asAttachableModuleInstance } from '@xyo-network/module-model'\nimport type { Initializable } from '@xyo-network/xl1-protocol'\nimport { Mutex } from 'async-mutex'\n\nconst initMutex = new Mutex()\ntype ModuleDictionary = Record<ModuleIdentifier, AttachableModuleInstance | undefined>\ntype BridgedModuleDictionary = Record<Address, ModuleDictionary | undefined>\nconst bridgedModuleDictionary: BridgedModuleDictionary = {}\n\nexport const initBridgedModule: Initializable<\n { bridge: BridgeInstance; moduleName: ModuleIdentifier }, AttachableModuleInstance\n> = async ({ bridge, moduleName }): Promise<AttachableModuleInstance> => {\n return await initMutex.runExclusive(async () => {\n const existing = bridgedModuleDictionary?.[bridge.address]?.[moduleName]\n if (existing) return existing\n const mod = assertEx(await bridge.resolve(moduleName), () => `Error: Could not resolve ${moduleName}`)\n const moduleInstance = assertEx(asAttachableModuleInstance(mod), () => `Error: Could not convert ${moduleName} to attachable module instance`)\n // Initialize the nested dictionary if needed\n let moduleMap = bridgedModuleDictionary[bridge.address]\n if (moduleMap === undefined) {\n moduleMap = {}\n bridgedModuleDictionary[bridge.address] = moduleMap\n }\n // Store and return the module instance\n moduleMap[moduleName] = moduleInstance\n return moduleInstance\n })\n}\n\nexport const initBridgedArchivistModule: Initializable<\n { bridge: BridgeInstance; logger?: Logger; moduleName: ModuleIdentifier }, AttachableArchivistInstance\n> = async ({ bridge, moduleName }): Promise<AttachableArchivistInstance> => {\n return assertEx(\n asAttachableArchivistInstance(await initBridgedModule({ bridge, moduleName })),\n () => `Error: Could not convert ${moduleName} to attachable archivist instance`,\n )\n}\n"],"mappings":"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","names":["Mutex","initMutex"]}
|
|
1
|
+
{"version":3,"sources":["../../src/archivist/initArchivistSync.ts","../../src/archivist/wrapWithReadCachingArchivist.ts","../../src/bridge.ts","../../src/initBridgedModule.ts"],"sourcesContent":["import type { TracerProvider } from '@opentelemetry/api'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { ArchivistSyncDiviner } from '@xyo-network/chain-modules'\nimport { DivinerConfigSchema } from '@xyo-network/diviner-model'\nimport type { ModuleIdentifier } from '@xyo-network/module-model'\nimport { MemoryNode } from '@xyo-network/node-memory'\nimport { MemorySentinel } from '@xyo-network/sentinel-memory'\nimport { SentinelConfigSchema } from '@xyo-network/sentinel-model'\n\nexport const initArchivistSync = async (\n name: ModuleIdentifier,\n inArchivist: ArchivistInstance,\n outArchivist: ArchivistInstance,\n frequency = 1000,\n max = 1000,\n traceProvider?: TracerProvider,\n) => {\n const node = await MemoryNode.create({ account: 'random' })\n const finalizedArchivistSyncDiviner = await ArchivistSyncDiviner.create({\n account: 'random',\n inArchivist,\n outArchivist,\n traceProvider,\n config: {\n schema: DivinerConfigSchema, name, max,\n },\n })\n\n await node.register(finalizedArchivistSyncDiviner)\n await node.attach(finalizedArchivistSyncDiviner.address)\n\n const sentinel = await MemorySentinel.create({\n account: 'random',\n config: {\n name,\n synchronous: true,\n schema: SentinelConfigSchema,\n tasks: [\n {\n required: true,\n mod: finalizedArchivistSyncDiviner.address,\n endPoint: 'divine',\n },\n ],\n automations: [\n {\n frequency,\n frequencyUnits: 'millis',\n schema: 'network.xyo.automation.interval',\n start: Date.now(),\n type: 'interval',\n },\n ],\n },\n })\n\n await node.register(sentinel)\n await node.attach(sentinel.address)\n\n return node\n}\n","import type { MemoryArchivistConfig } from '@xyo-network/archivist-memory'\nimport { MemoryArchivist, MemoryArchivistConfigSchema } from '@xyo-network/archivist-memory'\nimport type { AttachableArchivistInstance } from '@xyo-network/archivist-model'\n\nimport { initArchivistSync } from './initArchivistSync.ts'\n\nexport const DefaultReadCachingArchivistConfig: MemoryArchivistConfig = {\n max: 100_000,\n // requireAllParents: true,\n schema: MemoryArchivistConfigSchema,\n}\n\nconst getDynamicDefaultReadCachingArchivistConfig = (archivist: AttachableArchivistInstance): Partial<MemoryArchivistConfig> => {\n const { id } = archivist\n const name = `${id}-CachingArchivist`\n const dynamicDefaults: Partial<MemoryArchivistConfig> = { name }\n return dynamicDefaults\n}\n\nconst getDynamicReadCachingArchivistConfig = (_archivist: AttachableArchivistInstance): Partial<MemoryArchivistConfig> => {\n // const parents = {\n // read: [archivist.address], write: [], commit: [],\n // }\n // const dynamicConfig: Partial<MemoryArchivistConfig> = { parents }\n const dynamicConfig: Partial<MemoryArchivistConfig> = {}\n return dynamicConfig\n}\n\nexport const wrapWithReadCachingArchivist = async (\n archivist: AttachableArchivistInstance,\n config: Partial<MemoryArchivistConfig> = DefaultReadCachingArchivistConfig,\n): Promise<AttachableArchivistInstance> => {\n const dynamicDefaultReadCachingArchivistConfig = getDynamicDefaultReadCachingArchivistConfig(archivist)\n const dynamicReadCachingArchivistConfig = getDynamicReadCachingArchivistConfig(archivist)\n\n // Create a materialized config with precedence\n const materializedConfig: MemoryArchivistConfig = {\n // Use the static defaults\n ...DefaultReadCachingArchivistConfig,\n // Use the dynamic defaults\n ...dynamicDefaultReadCachingArchivistConfig,\n // Use the supplied config\n ...config,\n // Use they dynamic config\n ...dynamicReadCachingArchivistConfig,\n }\n const cachingArchivist = await MemoryArchivist.create({ account: 'random', config: materializedConfig })\n await initArchivistSync(\n `${cachingArchivist.id}-Sync`,\n archivist,\n cachingArchivist,\n 1000,\n )\n\n return cachingArchivist\n}\n","import { HttpBridge, HttpBridgeConfigSchema } from '@xyo-network/bridge-http'\nimport type { AttachableBridgeInstance } from '@xyo-network/bridge-model'\nimport { Mutex } from 'async-mutex'\n\nconst initMutex = new Mutex()\nconst bridgeSingletonMap = new Map<string, AttachableBridgeInstance>()\n\nexport const initBridge = async (nodeUrl: string): Promise<AttachableBridgeInstance> => {\n return await initMutex.runExclusive(async () => {\n const existing = bridgeSingletonMap.get(nodeUrl)\n if (existing) return existing\n const bridge = await HttpBridge.create({\n account: 'random',\n config: {\n name: 'HttpBridge',\n client: { url: nodeUrl, discoverRoots: 'start' },\n schema: HttpBridgeConfigSchema,\n security: { allowAnonymous: true },\n },\n })\n await bridge.start()\n bridgeSingletonMap.set(nodeUrl, bridge)\n return bridge\n })\n}\n","import { assertEx } from '@xylabs/assert'\nimport type { Address } from '@xylabs/hex'\nimport type { Logger } from '@xylabs/logger'\nimport type { AttachableArchivistInstance } from '@xyo-network/archivist-model'\nimport { asAttachableArchivistInstance } from '@xyo-network/archivist-model'\nimport type { BridgeInstance } from '@xyo-network/bridge-model'\nimport type { AttachableModuleInstance, ModuleIdentifier } from '@xyo-network/module-model'\nimport { asAttachableModuleInstance } from '@xyo-network/module-model'\nimport type { Initializable } from '@xyo-network/xl1-protocol'\nimport { Mutex } from 'async-mutex'\n\nconst initMutex = new Mutex()\ntype ModuleDictionary = Record<ModuleIdentifier, AttachableModuleInstance | undefined>\ntype BridgedModuleDictionary = Record<Address, ModuleDictionary | undefined>\nconst bridgedModuleDictionary: BridgedModuleDictionary = {}\n\nexport const initBridgedModule: Initializable<\n { bridge: BridgeInstance; moduleName: ModuleIdentifier }, AttachableModuleInstance\n> = async ({ bridge, moduleName }): Promise<AttachableModuleInstance> => {\n return await initMutex.runExclusive(async () => {\n const existing = bridgedModuleDictionary?.[bridge.address]?.[moduleName]\n if (existing) return existing\n const mod = assertEx(await bridge.resolve(moduleName), () => `Error: Could not resolve ${moduleName}`)\n const moduleInstance = assertEx(asAttachableModuleInstance(mod), () => `Error: Could not convert ${moduleName} to attachable module instance`)\n // Initialize the nested dictionary if needed\n let moduleMap = bridgedModuleDictionary[bridge.address]\n if (moduleMap === undefined) {\n moduleMap = {}\n bridgedModuleDictionary[bridge.address] = moduleMap\n }\n // Store and return the module instance\n moduleMap[moduleName] = moduleInstance\n return moduleInstance\n })\n}\n\nexport const initBridgedArchivistModule: Initializable<\n { bridge: BridgeInstance; logger?: Logger; moduleName: ModuleIdentifier }, AttachableArchivistInstance\n> = async ({ bridge, moduleName }): Promise<AttachableArchivistInstance> => {\n return assertEx(\n asAttachableArchivistInstance(await initBridgedModule({ bridge, moduleName })),\n () => `Error: Could not convert ${moduleName} to attachable archivist instance`,\n )\n}\n"],"mappings":"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","names":["ArchivistSyncDiviner","DivinerConfigSchema","MemoryNode","MemorySentinel","SentinelConfigSchema","initArchivistSync","name","inArchivist","outArchivist","frequency","max","traceProvider","node","MemoryNode","create","account","finalizedArchivistSyncDiviner","ArchivistSyncDiviner","config","schema","DivinerConfigSchema","register","attach","address","sentinel","MemorySentinel","synchronous","SentinelConfigSchema","tasks","required","mod","endPoint","automations","frequencyUnits","start","Date","now","type","MemoryArchivist","MemoryArchivistConfigSchema","DefaultReadCachingArchivistConfig","max","schema","MemoryArchivistConfigSchema","getDynamicDefaultReadCachingArchivistConfig","archivist","id","name","dynamicDefaults","getDynamicReadCachingArchivistConfig","_archivist","dynamicConfig","wrapWithReadCachingArchivist","config","dynamicDefaultReadCachingArchivistConfig","dynamicReadCachingArchivistConfig","materializedConfig","cachingArchivist","MemoryArchivist","create","account","initArchivistSync","HttpBridge","HttpBridgeConfigSchema","Mutex","initMutex","Mutex","bridgeSingletonMap","Map","initBridge","nodeUrl","runExclusive","existing","get","bridge","HttpBridge","create","account","config","name","client","url","discoverRoots","schema","HttpBridgeConfigSchema","security","allowAnonymous","start","set","assertEx","asAttachableArchivistInstance","asAttachableModuleInstance","Mutex","initMutex","Mutex","bridgedModuleDictionary","initBridgedModule","bridge","moduleName","runExclusive","existing","address","mod","assertEx","resolve","moduleInstance","asAttachableModuleInstance","moduleMap","undefined","initBridgedArchivistModule","asAttachableArchivistInstance"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@xyo-network/chain-orchestration",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.12.1",
|
|
5
5
|
"description": "XYO Layer One SDK Orchestration",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
@@ -37,26 +37,26 @@
|
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@opentelemetry/api": "~1.9.0",
|
|
40
|
-
"@xylabs/assert": "~5.0.
|
|
41
|
-
"@xylabs/logger": "~5.0.
|
|
42
|
-
"@xyo-network/archivist-memory": "~5.0.
|
|
43
|
-
"@xyo-network/archivist-model": "~5.0.
|
|
44
|
-
"@xyo-network/bridge-http": "~5.0.
|
|
45
|
-
"@xyo-network/bridge-model": "~5.0.
|
|
46
|
-
"@xyo-network/chain-modules": "~1.
|
|
47
|
-
"@xyo-network/diviner-model": "~5.0.
|
|
48
|
-
"@xyo-network/module-model": "~5.0.
|
|
49
|
-
"@xyo-network/node-memory": "~5.0.
|
|
50
|
-
"@xyo-network/sentinel-memory": "~5.0.
|
|
51
|
-
"@xyo-network/sentinel-model": "~5.0.
|
|
52
|
-
"@xyo-network/xl1-protocol": "~1.10.
|
|
40
|
+
"@xylabs/assert": "~5.0.8",
|
|
41
|
+
"@xylabs/logger": "~5.0.8",
|
|
42
|
+
"@xyo-network/archivist-memory": "~5.0.5",
|
|
43
|
+
"@xyo-network/archivist-model": "~5.0.5",
|
|
44
|
+
"@xyo-network/bridge-http": "~5.0.5",
|
|
45
|
+
"@xyo-network/bridge-model": "~5.0.5",
|
|
46
|
+
"@xyo-network/chain-modules": "~1.12.1",
|
|
47
|
+
"@xyo-network/diviner-model": "~5.0.5",
|
|
48
|
+
"@xyo-network/module-model": "~5.0.5",
|
|
49
|
+
"@xyo-network/node-memory": "~5.0.5",
|
|
50
|
+
"@xyo-network/sentinel-memory": "~5.0.5",
|
|
51
|
+
"@xyo-network/sentinel-model": "~5.0.5",
|
|
52
|
+
"@xyo-network/xl1-protocol": "~1.10.13",
|
|
53
53
|
"async-mutex": "~0.5.0"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@types/node": "~24.2.
|
|
57
|
-
"@xylabs/hex": "~5.0.
|
|
58
|
-
"@xylabs/ts-scripts-yarn3": "~7.1.
|
|
59
|
-
"@xylabs/tsconfig": "~7.1.
|
|
56
|
+
"@types/node": "~24.2.1",
|
|
57
|
+
"@xylabs/hex": "~5.0.8",
|
|
58
|
+
"@xylabs/ts-scripts-yarn3": "~7.1.2",
|
|
59
|
+
"@xylabs/tsconfig": "~7.1.2",
|
|
60
60
|
"typescript": "~5.9.2"
|
|
61
61
|
},
|
|
62
62
|
"engines": {
|