@xyo-network/chain-orchestration 1.8.4 → 1.10.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.
@@ -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("@xyo-network/node-model").NodeModuleEventData>>;
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(".store/@xyo-network-node-model-npm-5.0.0-2eba65f2d2/package").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,oIA6C/B,CAAA"}
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,wKA6C/B,CAAA"}
@@ -1,16 +1,11 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
-
4
1
  // src/archivist/initArchivistSync.ts
5
2
  import { ArchivistSyncDiviner } from "@xyo-network/chain-modules";
6
3
  import { DivinerConfigSchema } from "@xyo-network/diviner-model";
7
4
  import { MemoryNode } from "@xyo-network/node-memory";
8
5
  import { MemorySentinel } from "@xyo-network/sentinel-memory";
9
6
  import { SentinelConfigSchema } from "@xyo-network/sentinel-model";
10
- var initArchivistSync = /* @__PURE__ */ __name(async (name, inArchivist, outArchivist, frequency = 1e3, max = 1e3, traceProvider) => {
11
- const node = await MemoryNode.create({
12
- account: "random"
13
- });
7
+ var initArchivistSync = async (name, inArchivist, outArchivist, frequency = 1e3, max = 1e3, traceProvider) => {
8
+ const node = await MemoryNode.create({ account: "random" });
14
9
  const finalizedArchivistSyncDiviner = await ArchivistSyncDiviner.create({
15
10
  account: "random",
16
11
  inArchivist,
@@ -51,7 +46,7 @@ var initArchivistSync = /* @__PURE__ */ __name(async (name, inArchivist, outArch
51
46
  await node.register(sentinel);
52
47
  await node.attach(sentinel.address);
53
48
  return node;
54
- }, "initArchivistSync");
49
+ };
55
50
 
56
51
  // src/archivist/wrapWithReadCachingArchivist.ts
57
52
  import { MemoryArchivist, MemoryArchivistConfigSchema } from "@xyo-network/archivist-memory";
@@ -60,19 +55,17 @@ var DefaultReadCachingArchivistConfig = {
60
55
  // requireAllParents: true,
61
56
  schema: MemoryArchivistConfigSchema
62
57
  };
63
- var getDynamicDefaultReadCachingArchivistConfig = /* @__PURE__ */ __name((archivist) => {
58
+ var getDynamicDefaultReadCachingArchivistConfig = (archivist) => {
64
59
  const { id } = archivist;
65
60
  const name = `${id}-CachingArchivist`;
66
- const dynamicDefaults = {
67
- name
68
- };
61
+ const dynamicDefaults = { name };
69
62
  return dynamicDefaults;
70
- }, "getDynamicDefaultReadCachingArchivistConfig");
71
- var getDynamicReadCachingArchivistConfig = /* @__PURE__ */ __name((_archivist) => {
63
+ };
64
+ var getDynamicReadCachingArchivistConfig = (_archivist) => {
72
65
  const dynamicConfig = {};
73
66
  return dynamicConfig;
74
- }, "getDynamicReadCachingArchivistConfig");
75
- var wrapWithReadCachingArchivist = /* @__PURE__ */ __name(async (archivist, config = DefaultReadCachingArchivistConfig) => {
67
+ };
68
+ var wrapWithReadCachingArchivist = async (archivist, config = DefaultReadCachingArchivistConfig) => {
76
69
  const dynamicDefaultReadCachingArchivistConfig = getDynamicDefaultReadCachingArchivistConfig(archivist);
77
70
  const dynamicReadCachingArchivistConfig = getDynamicReadCachingArchivistConfig(archivist);
78
71
  const materializedConfig = {
@@ -85,20 +78,22 @@ var wrapWithReadCachingArchivist = /* @__PURE__ */ __name(async (archivist, conf
85
78
  // Use they dynamic config
86
79
  ...dynamicReadCachingArchivistConfig
87
80
  };
88
- const cachingArchivist = await MemoryArchivist.create({
89
- account: "random",
90
- config: materializedConfig
91
- });
92
- await initArchivistSync(`${cachingArchivist.id}-Sync`, archivist, cachingArchivist, 1e3);
81
+ const cachingArchivist = await MemoryArchivist.create({ account: "random", config: materializedConfig });
82
+ await initArchivistSync(
83
+ `${cachingArchivist.id}-Sync`,
84
+ archivist,
85
+ cachingArchivist,
86
+ 1e3
87
+ );
93
88
  return cachingArchivist;
94
- }, "wrapWithReadCachingArchivist");
89
+ };
95
90
 
96
91
  // src/bridge.ts
97
92
  import { HttpBridge, HttpBridgeConfigSchema } from "@xyo-network/bridge-http";
98
93
  import { Mutex } from "async-mutex";
99
94
  var initMutex = new Mutex();
100
95
  var bridgeSingletonMap = /* @__PURE__ */ new Map();
101
- var initBridge = /* @__PURE__ */ __name(async (nodeUrl) => {
96
+ var initBridge = async (nodeUrl) => {
102
97
  return await initMutex.runExclusive(async () => {
103
98
  const existing = bridgeSingletonMap.get(nodeUrl);
104
99
  if (existing) return existing;
@@ -106,21 +101,16 @@ var initBridge = /* @__PURE__ */ __name(async (nodeUrl) => {
106
101
  account: "random",
107
102
  config: {
108
103
  name: "HttpBridge",
109
- client: {
110
- url: nodeUrl,
111
- discoverRoots: "start"
112
- },
104
+ client: { url: nodeUrl, discoverRoots: "start" },
113
105
  schema: HttpBridgeConfigSchema,
114
- security: {
115
- allowAnonymous: true
116
- }
106
+ security: { allowAnonymous: true }
117
107
  }
118
108
  });
119
109
  await bridge.start();
120
110
  bridgeSingletonMap.set(nodeUrl, bridge);
121
111
  return bridge;
122
112
  });
123
- }, "initBridge");
113
+ };
124
114
 
125
115
  // src/initBridgedModule.ts
126
116
  import { assertEx } from "@xylabs/assert";
@@ -129,7 +119,7 @@ import { asAttachableModuleInstance } from "@xyo-network/module-model";
129
119
  import { Mutex as Mutex2 } from "async-mutex";
130
120
  var initMutex2 = new Mutex2();
131
121
  var bridgedModuleDictionary = {};
132
- var initBridgedModule = /* @__PURE__ */ __name(async ({ bridge, moduleName }) => {
122
+ var initBridgedModule = async ({ bridge, moduleName }) => {
133
123
  return await initMutex2.runExclusive(async () => {
134
124
  const existing = bridgedModuleDictionary?.[bridge.address]?.[moduleName];
135
125
  if (existing) return existing;
@@ -143,13 +133,13 @@ var initBridgedModule = /* @__PURE__ */ __name(async ({ bridge, moduleName }) =>
143
133
  moduleMap[moduleName] = moduleInstance;
144
134
  return moduleInstance;
145
135
  });
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");
136
+ };
137
+ var initBridgedArchivistModule = async ({ bridge, moduleName }) => {
138
+ return assertEx(
139
+ asAttachableArchivistInstance(await initBridgedModule({ bridge, moduleName })),
140
+ () => `Error: Could not convert ${moduleName} to attachable archivist instance`
141
+ );
142
+ };
153
143
  export {
154
144
  DefaultReadCachingArchivistConfig,
155
145
  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":["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"]}
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"]}
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.8.4",
4
+ "version": "1.10.0",
5
5
  "description": "XYO Layer One SDK Orchestration",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -36,29 +36,28 @@
36
36
  "src"
37
37
  ],
38
38
  "dependencies": {
39
- "@opentelemetry/api": "^1.9.0",
40
- "@xylabs/assert": "^4.15.3",
41
- "@xylabs/logger": "^4.15.3",
42
- "@xyo-network/archivist-memory": "^4.3.0",
43
- "@xyo-network/archivist-model": "^4.3.0",
44
- "@xyo-network/bridge-http": "^4.3.0",
45
- "@xyo-network/bridge-model": "^4.3.0",
46
- "@xyo-network/chain-modules": "^1.8.4",
47
- "@xyo-network/diviner-model": "^4.3.0",
48
- "@xyo-network/module-model": "^4.3.0",
49
- "@xyo-network/node-memory": "^4.3.0",
50
- "@xyo-network/sentinel-memory": "^4.3.0",
51
- "@xyo-network/sentinel-model": "^4.3.0",
52
- "@xyo-network/xl1-protocol": "^1.7.33",
53
- "async-mutex": "^0.5.0"
39
+ "@opentelemetry/api": "~1.9.0",
40
+ "@xylabs/assert": "~5.0.2",
41
+ "@xylabs/logger": "~5.0.2",
42
+ "@xyo-network/archivist-memory": "~5.0.0",
43
+ "@xyo-network/archivist-model": "~5.0.0",
44
+ "@xyo-network/bridge-http": "~5.0.0",
45
+ "@xyo-network/bridge-model": "~5.0.0",
46
+ "@xyo-network/chain-modules": "~1.10.0",
47
+ "@xyo-network/diviner-model": "~5.0.0",
48
+ "@xyo-network/module-model": "~5.0.0",
49
+ "@xyo-network/node-memory": "~5.0.0",
50
+ "@xyo-network/sentinel-memory": "~5.0.0",
51
+ "@xyo-network/sentinel-model": "~5.0.0",
52
+ "@xyo-network/xl1-protocol": "~1.9.3",
53
+ "async-mutex": "~0.5.0"
54
54
  },
55
55
  "devDependencies": {
56
- "@types/node": "^24.1.0",
57
- "@xylabs/hex": "^4.15.3",
58
- "@xylabs/ts-scripts-yarn3": "^7.0.2",
59
- "@xylabs/tsconfig": "^7.0.2",
60
- "knip": "^5.62.0",
61
- "typescript": "^5.8.3"
56
+ "@types/node": "~24.2.0",
57
+ "@xylabs/hex": "~5.0.2",
58
+ "@xylabs/ts-scripts-yarn3": "~7.0.3",
59
+ "@xylabs/tsconfig": "~7.0.3",
60
+ "typescript": "~5.9.2"
62
61
  },
63
62
  "engines": {
64
63
  "node": ">=22.3 <23"