@xyo-network/xl1-cli-lib 1.18.0 → 1.18.2

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.
Files changed (32) hide show
  1. package/dist/node/commands/bridge/runBridge.d.ts +1 -1
  2. package/dist/node/commands/bridge/runBridge.d.ts.map +1 -1
  3. package/dist/node/commands/index.d.ts +0 -1
  4. package/dist/node/commands/index.d.ts.map +1 -1
  5. package/dist/node/commands/mempool/runMempool.d.ts +1 -1
  6. package/dist/node/commands/mempool/runMempool.d.ts.map +1 -1
  7. package/dist/node/commands/rewardRedemption/runRewardRedemptionApi.d.ts +1 -1
  8. package/dist/node/commands/rewardRedemption/runRewardRedemptionApi.d.ts.map +1 -1
  9. package/dist/node/commands/validator/runValidator.d.ts +2 -5
  10. package/dist/node/commands/validator/runValidator.d.ts.map +1 -1
  11. package/dist/node/index.mjs +20 -22
  12. package/dist/node/index.mjs.map +1 -1
  13. package/dist/node/initLogger.d.ts +1 -1
  14. package/dist/node/initLogger.d.ts.map +1 -1
  15. package/dist/node/runCLI.d.ts.map +1 -1
  16. package/dist/node/xl1.mjs +20 -22
  17. package/dist/node/xl1.mjs.map +1 -1
  18. package/package.json +30 -29
  19. package/src/commands/bridge/runBridge.ts +1 -1
  20. package/src/commands/index.ts +0 -1
  21. package/src/commands/mempool/runMempool.ts +1 -1
  22. package/src/commands/rewardRedemption/runRewardRedemptionApi.ts +1 -1
  23. package/src/commands/validator/runValidator.ts +4 -5
  24. package/src/initLogger.ts +1 -1
  25. package/src/optionsFromGlobalZodRegistry.ts +2 -2
  26. package/src/runCLI.ts +15 -6
  27. package/dist/node/commands/api/index.d.ts +0 -2
  28. package/dist/node/commands/api/index.d.ts.map +0 -1
  29. package/dist/node/commands/api/runApi.d.ts +0 -9
  30. package/dist/node/commands/api/runApi.d.ts.map +0 -1
  31. package/src/commands/api/index.ts +0 -1
  32. package/src/commands/api/runApi.ts +0 -12
@@ -1,5 +1,5 @@
1
1
  import type { Logger } from '@xylabs/sdk-js';
2
- import type { Config } from '@xyo-network/xl1-protocol-sdk';
2
+ import type { Config } from '@xyo-network/xl1-sdk';
3
3
  interface RunBridgeContext {
4
4
  config: Config;
5
5
  logger?: Logger;
@@ -1 +1 @@
1
- {"version":3,"file":"runBridge.d.ts","sourceRoot":"","sources":["../../../../src/commands/bridge/runBridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAE3D,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,QAElD"}
1
+ {"version":3,"file":"runBridge.d.ts","sourceRoot":"","sources":["../../../../src/commands/bridge/runBridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAElD,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,QAElD"}
@@ -1,4 +1,3 @@
1
- export * from './api/index.ts';
2
1
  export * from './bridge/index.ts';
3
2
  export * from './mempool/index.ts';
4
3
  export * from './rewardRedemption/index.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sBAAsB,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import type { Logger } from '@xylabs/sdk-js';
2
- import type { Config } from '@xyo-network/xl1-protocol-sdk';
2
+ import type { Config } from '@xyo-network/xl1-sdk';
3
3
  interface RunMempoolContext {
4
4
  config: Config;
5
5
  logger: Logger;
@@ -1 +1 @@
1
- {"version":3,"file":"runMempool.d.ts","sourceRoot":"","sources":["../../../../src/commands/mempool/runMempool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAE3D,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,QAEpD"}
1
+ {"version":3,"file":"runMempool.d.ts","sourceRoot":"","sources":["../../../../src/commands/mempool/runMempool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAElD,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,QAEpD"}
@@ -1,5 +1,5 @@
1
1
  import type { Logger } from '@xylabs/sdk-js';
2
- import type { Config } from '@xyo-network/xl1-protocol-sdk';
2
+ import type { Config } from '@xyo-network/xl1-sdk';
3
3
  interface RunRewardRedemptionApiContext {
4
4
  config: Config;
5
5
  logger?: Logger;
@@ -1 +1 @@
1
- {"version":3,"file":"runRewardRedemptionApi.d.ts","sourceRoot":"","sources":["../../../../src/commands/rewardRedemption/runRewardRedemptionApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAE3D,UAAU,6BAA6B;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,6BAA6B,QAE5E"}
1
+ {"version":3,"file":"runRewardRedemptionApi.d.ts","sourceRoot":"","sources":["../../../../src/commands/rewardRedemption/runRewardRedemptionApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAElD,UAAU,6BAA6B;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,6BAA6B,QAE5E"}
@@ -1,14 +1,11 @@
1
- import type { Logger } from '@xylabs/sdk-js';
2
1
  import type { AccountInstance } from '@xyo-network/account-model';
3
2
  import type { OrchestratorInstance } from '@xyo-network/chain-orchestration';
4
- import type { Config, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-protocol-sdk';
5
- interface RunValidatorContext {
3
+ import type { CachingBaseContext, Config, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-sdk';
4
+ interface RunValidatorContext extends CachingBaseContext {
6
5
  account: AccountInstance;
7
6
  config: Config;
8
7
  locator: ProviderFactoryLocatorInstance;
9
- logger: Logger;
10
8
  orchestrator: OrchestratorInstance;
11
- singletons: {};
12
9
  }
13
10
  export declare const runValidator: (context: RunValidatorContext) => Promise<void>;
14
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"runValidator.d.ts","sourceRoot":"","sources":["../../../../src/commands/validator/runValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,KAAK,EAAE,MAAM,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAA;AAE3F,UAAU,mBAAmB;IAC3B,OAAO,EAAE,eAAe,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,8BAA8B,CAAA;IACvC,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,oBAAoB,CAAA;IAClC,UAAU,EAAE,EAAE,CAAA;CACf;AAED,eAAO,MAAM,YAAY,GAAU,SAAS,mBAAmB,kBAqB9D,CAAA"}
1
+ {"version":3,"file":"runValidator.d.ts","sourceRoot":"","sources":["../../../../src/commands/validator/runValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,KAAK,EACV,kBAAkB,EAAE,MAAM,EAAE,8BAA8B,EAC3D,MAAM,sBAAsB,CAAA;AAE7B,UAAU,mBAAoB,SAAQ,kBAAkB;IACtD,OAAO,EAAE,eAAe,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,8BAA8B,CAAA;IACvC,YAAY,EAAE,oBAAoB,CAAA;CACnC;AAED,eAAO,MAAM,YAAY,GAAU,SAAS,mBAAmB,kBAqB9D,CAAA"}
@@ -3,38 +3,32 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
3
3
 
4
4
  // src/runCLI.ts
5
5
  import { deepMerge, isDefined as isDefined3 } from "@xylabs/sdk-js";
6
+ import { runApi } from "@xyo-network/chain-api";
6
7
  import { Orchestrator } from "@xyo-network/chain-orchestration";
7
8
  import { runProducer } from "@xyo-network/chain-producer";
8
- import { ConfigZod } from "@xyo-network/xl1-protocol-sdk";
9
+ import { ConfigZod } from "@xyo-network/xl1-sdk";
9
10
  import yargs from "yargs";
10
11
  import { hideBin } from "yargs/helpers";
11
12
  import { ZodError } from "zod";
12
13
 
13
- // src/commands/api/runApi.ts
14
- import { getServer } from "@xyo-network/chain-api";
15
- function runApi(context) {
16
- void getServer(context);
17
- }
18
- __name(runApi, "runApi");
19
-
20
14
  // src/commands/bridge/runBridge.ts
21
- import { getServer as getServer2 } from "@xyo-network/chain-bridge";
15
+ import { getServer } from "@xyo-network/chain-bridge";
22
16
  function runBridge(context) {
23
- void getServer2(context);
17
+ void getServer(context);
24
18
  }
25
19
  __name(runBridge, "runBridge");
26
20
 
27
21
  // src/commands/mempool/runMempool.ts
28
- import { getServer as getServer3 } from "@xyo-network/chain-mempool";
22
+ import { getServer as getServer2 } from "@xyo-network/chain-mempool";
29
23
  function runMempool(context) {
30
- void getServer3(context);
24
+ void getServer2(context);
31
25
  }
32
26
  __name(runMempool, "runMempool");
33
27
 
34
28
  // src/commands/rewardRedemption/runRewardRedemptionApi.ts
35
- import { getServer as getServer4 } from "@xyo-network/chain-reward-redemption";
29
+ import { getServer as getServer3 } from "@xyo-network/chain-reward-redemption";
36
30
  function runRewardRedemptionApi(context) {
37
- void getServer4(context);
31
+ void getServer3(context);
38
32
  }
39
33
  __name(runRewardRedemptionApi, "runRewardRedemptionApi");
40
34
 
@@ -77,7 +71,7 @@ var initLogger = /* @__PURE__ */ __name((config2) => {
77
71
  }, "initLogger");
78
72
 
79
73
  // src/optionsFromGlobalZodRegistry.ts
80
- import { isUsageMeta } from "@xyo-network/xl1-protocol-sdk";
74
+ import { isUsageMeta } from "@xyo-network/xl1-sdk";
81
75
  import { globalRegistry } from "zod";
82
76
  var usageMetaToOptions = /* @__PURE__ */ __name((meta) => {
83
77
  return meta;
@@ -133,7 +127,7 @@ var waitForHostPort = /* @__PURE__ */ __name((host, port) => {
133
127
 
134
128
  // src/runCLI.ts
135
129
  var configuration;
136
- var version = isDefined3("1.18.0-rc.1") ? "1.18.0-rc.1" : "unknown";
130
+ var version = isDefined3("1.18.1") ? "1.18.1" : "unknown";
137
131
  var getContextFromConfig = /* @__PURE__ */ __name(async (configuration2) => {
138
132
  const logger = initLogger(configuration2);
139
133
  const orchestrator = await Orchestrator.create({
@@ -185,9 +179,10 @@ $0 <command> [options]`).parserConfiguration({
185
179
  return yargs2.command("$0", "Run a XL1 API Node", () => {
186
180
  }, async () => {
187
181
  const context = await getContextFromConfig(configuration);
188
- runApi({
182
+ await runApi({
189
183
  ...context,
190
- config: configuration
184
+ config: configuration,
185
+ singletons: {}
191
186
  });
192
187
  });
193
188
  }).command("bridge", "Run a XL1 Bridge Node", (yargs2) => {
@@ -214,7 +209,8 @@ $0 <command> [options]`).parserConfiguration({
214
209
  const context = await getContextFromConfig(configuration);
215
210
  await runProducer({
216
211
  ...context,
217
- config: configuration
212
+ config: configuration,
213
+ singletons: {}
218
214
  });
219
215
  });
220
216
  }).command("reward-redemption-api", "Run a XL1 Rewards Redemption API Node", (yargs2) => {
@@ -236,14 +232,16 @@ $0 <command> [options]`).parserConfiguration({
236
232
  });
237
233
  await waitForHostPort(configuration.mempool.host, configuration.mempool.port);
238
234
  }
239
- runApi({
235
+ await runApi({
240
236
  ...context,
241
- config: configuration
237
+ config: configuration,
238
+ singletons: {}
242
239
  });
243
240
  await waitForHostPort(configuration.api.host, configuration.api.port);
244
241
  await runProducer({
245
242
  ...context,
246
- config: configuration
243
+ config: configuration,
244
+ singletons: {}
247
245
  });
248
246
  }).help().alias("help", "h").version(version).argv;
249
247
  await argv;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/runCLI.ts","../../src/commands/api/runApi.ts","../../src/commands/bridge/runBridge.ts","../../src/commands/mempool/runMempool.ts","../../src/commands/rewardRedemption/runRewardRedemptionApi.ts","../../src/images.ts","../../src/initLogger.ts","../../src/optionsFromGlobalZodRegistry.ts","../../src/tryParseConfig.ts","../../src/waitForHostPort.ts","../../src/start.ts"],"sourcesContent":["import type { Logger } from '@xylabs/sdk-js'\nimport { deepMerge, isDefined } from '@xylabs/sdk-js'\nimport { Orchestrator } from '@xyo-network/chain-orchestration'\nimport { runProducer } from '@xyo-network/chain-producer'\nimport { type Config, ConfigZod } from '@xyo-network/xl1-protocol-sdk'\nimport type { Argv } from 'yargs'\nimport yargs from 'yargs'\nimport { hideBin } from 'yargs/helpers'\nimport { ZodError } from 'zod'\n\nimport {\n runApi, runBridge, runMempool, runRewardRedemptionApi,\n} from './commands/index.ts'\nimport { XL1LogoColorizedAscii } from './images.ts'\nimport { initLogger } from './initLogger.ts'\nimport { optionsFromGlobalZodRegistry } from './optionsFromGlobalZodRegistry.ts'\nimport { tryParseConfig } from './tryParseConfig.ts'\nimport { waitForHostPort } from './waitForHostPort.ts'\n\n/** Version string injected by Rollup at build time. */\ndeclare const __VERSION__: string\n\ninterface RunCliContext {\n logger: Logger\n orchestrator: Orchestrator\n}\n\n/**\n * The configuration that will be used throughout the CLI.\n * This is materialized after parsing the command-line arguments,\n * environment variables, and defaults.\n */\nlet configuration: Config\n\nconst version = isDefined(__VERSION__) ? __VERSION__ : 'unknown'\n\nconst getContextFromConfig = async (configuration: Config): Promise<RunCliContext> => {\n const logger = initLogger(configuration)\n const orchestrator = await Orchestrator.create({ logger })\n // Handle cancellation (Ctrl+C)\n process.on('SIGINT', () => {\n void (async () => {\n try {\n logger.log('\\nSIGINT received. Attempting graceful shutdown...')\n await orchestrator?.stop()\n logger.log('Orchestrator stopped, exiting now.')\n process.exit(0)\n } catch (err) {\n logger.error('Error stopping orchestrator:', err)\n process.exit(1)\n }\n })()\n })\n return { logger, orchestrator }\n}\n\n// Main entry point\nexport async function runCLI() {\n // Parse command-line arguments using Yargs\n const y = yargs(hideBin(process.argv)) as Argv<Config>\n const argv = y\n .usage(`\n🚀 XL1 Node CLI (${version})\n${XL1LogoColorizedAscii}\nRun various components of the XL1 ecosystem.\n\nUsage:\n$0 <command> [options]`)\n .parserConfiguration({\n 'dot-notation': true, // foo.bar → { foo: { bar } }\n 'parse-numbers': false, // Don't auto-parse numbers to allow strings like \"0x1\"\n 'populate--': true, // Populate -- with all options so we can detected user-supplied vs defaults\n })\n .env('XL1')\n .scriptName('xl1')\n .middleware((argv) => {\n try {\n // Parse the various config sources\n const parsedConfigFile = tryParseConfig() // Config file\n const parsedConfigArgs = argv // Command-line arguments & ENV VARs\n // Deep merge with precedence\n // TODO: Would like precedence to be defaults < file < ENV < CLI Args\n // but there is currently no way to determine which are defaults vs\n // user-supplied CLI Args since we set the CLI args to the defaults\n // and receive a flattened object. We might need to manually invoke\n // the parser without the defaults to achieve this.\n const mergedConfig = deepMerge(parsedConfigArgs, parsedConfigFile)\n // Validate the merged configuration\n configuration = ConfigZod.parse(mergedConfig)\n } catch (err) {\n if (err instanceof ZodError) {\n console.error(`${err.message}`)\n }\n throw new Error('Invalid configuration')\n }\n })\n .options(optionsFromGlobalZodRegistry())\n // .commandDir('./command/commands', opts) // Not yet supported for ESM\n .wrap(y.terminalWidth())\n .command('api', 'Run a XL1 API Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 API Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n runApi({ ...context, config: configuration })\n })\n })\n .command('bridge', 'Run a XL1 Bridge Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 Bridge Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n runBridge({ ...context, config: configuration })\n })\n })\n .command('mempool', 'Run a XL1 Mempool Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 Mempool Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n runMempool({ ...context, config: configuration })\n })\n })\n .command('producer', 'Run a XL1 Producer Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 Producer Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n await runProducer({ ...context, config: configuration })\n })\n })\n .command('reward-redemption-api', 'Run a XL1 Rewards Redemption API Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 Rewards Redemption API Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n runRewardRedemptionApi({ ...context, config: configuration })\n })\n })\n .command('$0', 'Run a full XL1 Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n if (configuration.mempool.enabled) {\n // Start Mempool but do not block\n runMempool({ ...context, config: configuration })\n // Wait for Mempool to be ready\n await waitForHostPort(configuration.mempool.host, configuration.mempool.port)\n }\n // Start API but do not block\n runApi({ ...context, config: configuration })\n // Wait for API to be ready\n await waitForHostPort(configuration.api.host, configuration.api.port)\n // Start Producer and block on it\n await runProducer({ ...context, config: configuration })\n })\n .help()\n .alias('help', 'h')\n .version(version)\n .argv\n\n await argv\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { getServer } from '@xyo-network/chain-api'\nimport type { Config } from '@xyo-network/xl1-protocol-sdk'\n\ninterface RunApiContext {\n config: Config\n logger?: Logger\n}\n\nexport function runApi(context: RunApiContext) {\n void getServer(context)\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { getServer } from '@xyo-network/chain-bridge'\nimport type { Config } from '@xyo-network/xl1-protocol-sdk'\n\ninterface RunBridgeContext {\n config: Config\n logger?: Logger\n}\n\nexport function runBridge(context: RunBridgeContext) {\n void getServer(context)\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { getServer } from '@xyo-network/chain-mempool'\nimport type { Config } from '@xyo-network/xl1-protocol-sdk'\n\ninterface RunMempoolContext {\n config: Config\n logger: Logger\n}\n\nexport function runMempool(context: RunMempoolContext) {\n void getServer(context)\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { getServer } from '@xyo-network/chain-reward-redemption'\nimport type { Config } from '@xyo-network/xl1-protocol-sdk'\n\ninterface RunRewardRedemptionApiContext {\n config: Config\n logger?: Logger\n}\n\nexport function runRewardRedemptionApi(context: RunRewardRedemptionApiContext) {\n void getServer(context)\n}\n","/* eslint-disable @stylistic/max-len */\nexport const XL1LogoColorizedAscii = `\u001b[38;2;128;128;128m                    \u001b[0m\u001b[38;2;118;111;144m_\u001b[0m\n\u001b[38;2;128;128;128m                   \u001b[0m\u001b[38;2;72;32;223m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\n\u001b[38;2;128;128;128m                   ╠╠\u001b[0m\u001b[38;2;103;85;170m_\u001b[0m\n\u001b[38;2;128;128;128m        \u001b[0m\u001b[38;2;79;121;152m╦\u001b[0m\u001b[38;2;82;121;151m╦\u001b[0m\u001b[38;2;112;125;136m_       \u001b[0m\u001b[38;2;88;59;196m[\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;73;34;221m▒       \u001b[0m\u001b[38;2;121;121;127m_\u001b[0m\u001b[38;2;100;101;128m╔\u001b[0m\u001b[38;2;93;94;127m╦\u001b[0m\n\u001b[38;2;128;128;128m        \u001b[0m\u001b[38;2;82;121;151m²\u001b[0m\u001b[38;2;44;116;170m╠\u001b[0m\u001b[38;2;44;116;171m▒\u001b[0m\u001b[38;2;51;117;167mD\u001b[0m\u001b[38;2;80;121;152m╦\u001b[0m\u001b[38;2;111;125;136m_    \u001b[0m\u001b[38;2;67;23;232m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠    \u001b[0m\u001b[38;2;120;121;128m_\u001b[0m\u001b[38;2;100;101;127m╔\u001b[0m\u001b[38;2;79;81;127mR\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;88;90;127m╙\u001b[0m\n\u001b[38;2;128;128;128m          \u001b[0m\u001b[38;2;55;117;165m╚\u001b[0m\u001b[38;2;44;116;171m▒\u001b[0m\u001b[38;2;44;116;171m▒▒\u001b[0m\u001b[38;2;50;116;167mD\u001b[0m\u001b[38;2;80;121;152m╦ \u001b[0m\u001b[38;2;106;90;165mj\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠\u001b[0m\u001b[38;2;89;61;194mH \u001b[0m\u001b[38;2;99;100;127m╔\u001b[0m\u001b[38;2;79;80;127mD\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;71;73;128m▒▒╠\u001b[0m\n\u001b[38;2;128;128;128m           \u001b[0m\u001b[38;2;83;121;150m²\u001b[0m\u001b[38;2;44;116;170m▒\u001b[0m\u001b[38;2;44;116;171m▒▒▒ \u001b[0m\u001b[38;2;76;38;217m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠ \u001b[0m\u001b[38;2;74;76;128m╠\u001b[0m\u001b[38;2;71;73;128m▒▒▒\u001b[0m\u001b[38;2;89;90;128m╙\u001b[0m\n\u001b[38;2;128;128;128m             \u001b[0m\u001b[38;2;90;118;148m\\`\u001b[0m\u001b[38;2;89;107;153m_\u001b[0m\u001b[38;2;93;97;154m,\u001b[0m\u001b[38;2;105;89;166m╓\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠\u001b[0m\u001b[38;2;95;72;183m╓\u001b[0m\u001b[38;2;106;96;152m_\u001b[0m\u001b[38;2;100;94;143m\\`\u001b[0m\u001b[38;2;101;100;133m\\`\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;122;118;137m_\u001b[0m\u001b[38;2;113;102;153m,\u001b[0m\u001b[38;2;108;94;161m╓\u001b[0m\u001b[38;2;104;86;169m╓\u001b[0m\u001b[38;2;98;77;178m╔\u001b[0m\u001b[38;2;93;67;188m╗\u001b[0m\u001b[38;2;88;59;196mφ\u001b[0m\u001b[38;2;83;51;204m@\u001b[0m\u001b[38;2;78;42;213mD\u001b[0m\u001b[38;2;72;32;223m▒\u001b[0m\u001b[38;2;68;24;231m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠\u001b[0m\u001b[38;2;71;30;225m▒\u001b[0m\u001b[38;2;77;40;215m▒\u001b[0m\u001b[38;2;82;49;206mK\u001b[0m\u001b[38;2;87;57;198mφ\u001b[0m\u001b[38;2;91;65;190m╗\u001b[0m\u001b[38;2;97;75;180m╦\u001b[0m\u001b[38;2;103;84;171m╖\u001b[0m\u001b[38;2;107;92;163m²\u001b[0m\u001b[38;2;112;101;154m_\u001b[0m\u001b[38;2;119;112;143m_\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;106;91;164m\\`\u001b[0m\u001b[38;2;94;70;185m^\u001b[0m\u001b[38;2;89;62;193m╙\u001b[0m\u001b[38;2;85;54;201m╙\u001b[0m\u001b[38;2;80;45;210m╚\u001b[0m\u001b[38;2;74;35;220m╝\u001b[0m\u001b[38;2;69;26;229m╠\u001b[0m\u001b[38;2;66;22;233m╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠\u001b[0m\u001b[38;2;73;33;222m╝\u001b[0m\u001b[38;2;79;43;212m╩\u001b[0m\u001b[38;2;84;52;203m╜\u001b[0m\u001b[38;2;88;60;195m╙\u001b[0m\u001b[38;2;93;68;187m^\u001b[0m\u001b[38;2;100;80;175m\\`\u001b[0m\n\u001b[38;2;128;128;128m             \u001b[0m\u001b[38;2;113;84;152m\\`\u001b[0m\u001b[38;2;103;79;169m'\u001b[0m\u001b[38;2;95;72;183m\"\u001b[0m\u001b[38;2;87;57;198m╙\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠\u001b[0m\u001b[38;2;80;46;209m╜\u001b[0m\u001b[38;2;94;70;185m^\u001b[0m\u001b[38;2;102;77;175m^\u001b[0m\u001b[38;2;112;81;162m\\`\u001b[0m\u001b[38;2;115;92;155m\\`\u001b[0m\n\u001b[38;2;128;128;128m           \u001b[0m\u001b[38;2;145;116;107m,\u001b[0m\u001b[38;2;199;82;45m╠\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒╠ \u001b[0m\u001b[38;2;70;28;227m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠ \u001b[0m\u001b[38;2;189;49;97må\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠\u001b[0m\u001b[38;2;155;92;114m,\u001b[0m\n\u001b[38;2;128;128;128m          \u001b[0m\u001b[38;2;175;98;73m╔\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒▒▒\u001b[0m\u001b[38;2;197;83;47m╩ \u001b[0m\u001b[38;2;98;76;179m[\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠\u001b[0m\u001b[38;2;81;48;207mH \u001b[0m\u001b[38;2;188;51;98m╚\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠╠\u001b[0m\u001b[38;2;183;57;100mH\u001b[0m\n\u001b[38;2;128;128;128m        \u001b[0m\u001b[38;2;146;116;106m,\u001b[0m\u001b[38;2;199;82;44m╠\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;196;84;48m╩\u001b[0m\u001b[38;2;168;102;81m^    \u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠    \u001b[0m\u001b[38;2;160;87;111m'\u001b[0m\u001b[38;2;187;52;98m╚\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠\u001b[0m\u001b[38;2;156;91;113m,\u001b[0m\n\u001b[38;2;128;128;128m        \u001b[0m\u001b[38;2;198;83;46m╩\u001b[0m\u001b[38;2;194;85;50m╩\u001b[0m\u001b[38;2;167;102;82m^       \u001b[0m\u001b[38;2;81;46;209m╚\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠       \u001b[0m\u001b[38;2;159;88;112m'\u001b[0m\u001b[38;2;186;53;98m╚\u001b[0m\u001b[38;2;197;40;93m╩\u001b[0m\n\u001b[38;2;128;128;128m                  \u001b[0m\u001b[38;2;110;97;158m'\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;94;69;186mH\u001b[0m\n\u001b[38;2;128;128;128m                   \u001b[0m\u001b[38;2;68;25;230m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\n\u001b[38;2;128;128;128m                   \u001b[0m\u001b[38;2;108;93;162m²\u001b[0m\u001b[38;2;99;79;176m^\u001b[0m`\n","import type { Logger, LogLevelValue } from '@xylabs/sdk-js'\nimport {\n Base,\n ConsoleLogger, isDefined,\n LogLevel, SilentLogger,\n} from '@xylabs/sdk-js'\nimport type { Config } from '@xyo-network/xl1-protocol-sdk'\n\nexport const initLogger = (config: Config): Logger => {\n let logger: Logger\n if (config.silent) {\n logger = new SilentLogger()\n } else {\n let level: LogLevelValue | undefined\n if (isDefined(config.logLevel)) {\n const parsed = LogLevel[config.logLevel.toLowerCase() as keyof typeof LogLevel]\n if (isDefined(parsed)) level = parsed\n }\n logger = new ConsoleLogger(level)\n }\n Base.defaultLogger = logger\n return logger\n}\n","import type { UsageMeta } from '@xyo-network/xl1-protocol-sdk'\nimport { isUsageMeta } from '@xyo-network/xl1-protocol-sdk'\nimport type { Options } from 'yargs'\nimport { globalRegistry } from 'zod'\n\nconst usageMetaToOptions = (meta: UsageMeta): Options => {\n return meta\n}\n\nexport const optionsFromGlobalZodRegistry = (): Record<string, Options> => {\n const opts: Record<string, Options> = {}\n for (const schema of Object.values(globalRegistry._map)) {\n if (isUsageMeta(schema)) {\n if (schema.hidden) continue // skip hidden options\n opts[schema.title] = usageMetaToOptions(schema)\n }\n }\n return opts\n}\n","import { isDefined, isNull } from '@xylabs/sdk-js'\nimport { cosmiconfigSync } from 'cosmiconfig'\n\n/**\n * The name of the configuration file to search for.\n */\nconst configName = 'xyo'\n\n/**\n * The name of the section within the configuration file to parse.\n */\nconst configSection = 'xl1' // Default section in the config file\n\n/**\n * Attempts to parse the configuration from a file using cosmiconfig.\n * @returns The parsed configuration object if found and valid, otherwise undefined.\n */\nexport const tryParseConfig = (): Record<string, unknown> => {\n const explorer = cosmiconfigSync(\n configName,\n /* {\n searchPlaces: [\n 'package.json', // Looks under `xyo` key in package.json\n '.xyorc.json', // Supports common dotfile format\n 'xyo.config.json', // Supports custom-named config file\n ],\n loaders: {\n '.json': defaultLoaders['.json'],\n 'noExt': defaultLoaders['.json'],\n },\n }, */\n )\n const result = explorer.search()\n if (!isNull(result)) {\n const section = result?.config?.[configSection]\n if (isDefined(section) && typeof section === 'object') {\n return section\n }\n }\n return {}\n}\n","import net from 'node:net'\n\nexport const waitForHostPort = (host: string, port: number): Promise<void> => {\n return new Promise((resolve) => {\n const tryConnect = () => {\n const socket = new net.Socket()\n\n socket\n .setTimeout(1000)\n .once('error', () => {\n socket.destroy()\n setTimeout(tryConnect, 500) // retry after 500ms\n })\n .once('timeout', () => {\n socket.destroy()\n setTimeout(tryConnect, 500)\n })\n .connect(port, host, () => {\n socket.end()\n resolve()\n })\n }\n\n tryConnect()\n })\n}\n","import { config } from 'dotenv'\n\nimport { runCLI } from './runCLI.ts'\n\nexport const start = async () => {\n config({ quiet: true })\n await runCLI()\n}\n"],"mappings":"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","names":["deepMerge","isDefined","Orchestrator","runProducer","ConfigZod","yargs","hideBin","ZodError","getServer","runApi","context","getServer","getServer","runBridge","context","getServer","getServer","runMempool","context","getServer","getServer","runRewardRedemptionApi","context","getServer","XL1LogoColorizedAscii","Base","ConsoleLogger","isDefined","LogLevel","SilentLogger","initLogger","config","logger","silent","SilentLogger","level","isDefined","logLevel","parsed","LogLevel","toLowerCase","ConsoleLogger","Base","defaultLogger","isUsageMeta","globalRegistry","usageMetaToOptions","meta","optionsFromGlobalZodRegistry","opts","schema","Object","values","globalRegistry","_map","isUsageMeta","hidden","title","isDefined","isNull","cosmiconfigSync","configName","configSection","tryParseConfig","explorer","cosmiconfigSync","result","search","isNull","section","config","isDefined","net","waitForHostPort","host","port","Promise","resolve","tryConnect","socket","net","Socket","setTimeout","once","destroy","connect","end","configuration","version","isDefined","__VERSION__","getContextFromConfig","logger","initLogger","orchestrator","Orchestrator","create","process","on","log","stop","exit","err","error","runCLI","y","yargs","hideBin","argv","usage","XL1LogoColorizedAscii","parserConfiguration","env","scriptName","middleware","parsedConfigFile","tryParseConfig","parsedConfigArgs","mergedConfig","deepMerge","ConfigZod","parse","ZodError","console","message","Error","options","optionsFromGlobalZodRegistry","wrap","terminalWidth","command","context","runApi","config","runBridge","runMempool","runProducer","runRewardRedemptionApi","mempool","enabled","waitForHostPort","host","port","api","help","alias","config","start","config","quiet","runCLI"]}
1
+ {"version":3,"sources":["../../src/runCLI.ts","../../src/commands/bridge/runBridge.ts","../../src/commands/mempool/runMempool.ts","../../src/commands/rewardRedemption/runRewardRedemptionApi.ts","../../src/images.ts","../../src/initLogger.ts","../../src/optionsFromGlobalZodRegistry.ts","../../src/tryParseConfig.ts","../../src/waitForHostPort.ts","../../src/start.ts"],"sourcesContent":["import type { Logger } from '@xylabs/sdk-js'\nimport { deepMerge, isDefined } from '@xylabs/sdk-js'\nimport { runApi } from '@xyo-network/chain-api'\nimport { Orchestrator } from '@xyo-network/chain-orchestration'\nimport { runProducer } from '@xyo-network/chain-producer'\nimport { type Config, ConfigZod } from '@xyo-network/xl1-sdk'\nimport type { Argv } from 'yargs'\nimport yargs from 'yargs'\nimport { hideBin } from 'yargs/helpers'\nimport { ZodError } from 'zod'\n\nimport {\n runBridge, runMempool, runRewardRedemptionApi,\n} from './commands/index.ts'\nimport { XL1LogoColorizedAscii } from './images.ts'\nimport { initLogger } from './initLogger.ts'\nimport { optionsFromGlobalZodRegistry } from './optionsFromGlobalZodRegistry.ts'\nimport { tryParseConfig } from './tryParseConfig.ts'\nimport { waitForHostPort } from './waitForHostPort.ts'\n\n/** Version string injected by Rollup at build time. */\ndeclare const __VERSION__: string\n\ninterface RunCliContext {\n logger: Logger\n orchestrator: Orchestrator\n}\n\n/**\n * The configuration that will be used throughout the CLI.\n * This is materialized after parsing the command-line arguments,\n * environment variables, and defaults.\n */\nlet configuration: Config\n\nconst version = isDefined(__VERSION__) ? __VERSION__ : 'unknown'\n\nconst getContextFromConfig = async (configuration: Config): Promise<RunCliContext> => {\n const logger = initLogger(configuration)\n const orchestrator = await Orchestrator.create({ logger })\n // Handle cancellation (Ctrl+C)\n process.on('SIGINT', () => {\n void (async () => {\n try {\n logger.log('\\nSIGINT received. Attempting graceful shutdown...')\n await orchestrator?.stop()\n logger.log('Orchestrator stopped, exiting now.')\n process.exit(0)\n } catch (err) {\n logger.error('Error stopping orchestrator:', err)\n process.exit(1)\n }\n })()\n })\n return { logger, orchestrator }\n}\n\n// Main entry point\nexport async function runCLI() {\n // Parse command-line arguments using Yargs\n const y = yargs(hideBin(process.argv)) as Argv<Config>\n const argv = y\n .usage(`\n🚀 XL1 Node CLI (${version})\n${XL1LogoColorizedAscii}\nRun various components of the XL1 ecosystem.\n\nUsage:\n$0 <command> [options]`)\n .parserConfiguration({\n 'dot-notation': true, // foo.bar → { foo: { bar } }\n 'parse-numbers': false, // Don't auto-parse numbers to allow strings like \"0x1\"\n 'populate--': true, // Populate -- with all options so we can detected user-supplied vs defaults\n })\n .env('XL1')\n .scriptName('xl1')\n .middleware((argv) => {\n try {\n // Parse the various config sources\n const parsedConfigFile = tryParseConfig() // Config file\n const parsedConfigArgs = argv // Command-line arguments & ENV VARs\n // Deep merge with precedence\n // TODO: Would like precedence to be defaults < file < ENV < CLI Args\n // but there is currently no way to determine which are defaults vs\n // user-supplied CLI Args since we set the CLI args to the defaults\n // and receive a flattened object. We might need to manually invoke\n // the parser without the defaults to achieve this.\n const mergedConfig = deepMerge(parsedConfigArgs, parsedConfigFile)\n // Validate the merged configuration\n configuration = ConfigZod.parse(mergedConfig)\n } catch (err) {\n if (err instanceof ZodError) {\n console.error(`${err.message}`)\n }\n throw new Error('Invalid configuration')\n }\n })\n .options(optionsFromGlobalZodRegistry())\n // .commandDir('./command/commands', opts) // Not yet supported for ESM\n .wrap(y.terminalWidth())\n .command('api', 'Run a XL1 API Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 API Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n await runApi({\n ...context, config: configuration, singletons: {},\n })\n })\n })\n .command('bridge', 'Run a XL1 Bridge Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 Bridge Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n runBridge({ ...context, config: configuration })\n })\n })\n .command('mempool', 'Run a XL1 Mempool Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 Mempool Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n runMempool({ ...context, config: configuration })\n })\n })\n .command('producer', 'Run a XL1 Producer Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 Producer Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n await runProducer({\n ...context, config: configuration, singletons: {},\n })\n })\n })\n .command('reward-redemption-api', 'Run a XL1 Rewards Redemption API Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 Rewards Redemption API Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n runRewardRedemptionApi({ ...context, config: configuration })\n })\n })\n .command('$0', 'Run a full XL1 Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n if (configuration.mempool.enabled) {\n // Start Mempool but do not block\n runMempool({ ...context, config: configuration })\n // Wait for Mempool to be ready\n await waitForHostPort(configuration.mempool.host, configuration.mempool.port)\n }\n // Start API but do not block\n await runApi({\n ...context, config: configuration, singletons: {},\n })\n // Wait for API to be ready\n await waitForHostPort(configuration.api.host, configuration.api.port)\n // Start Producer and block on it\n await runProducer({\n ...context, config: configuration, singletons: {},\n })\n })\n .help()\n .alias('help', 'h')\n .version(version)\n .argv\n\n await argv\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { getServer } from '@xyo-network/chain-bridge'\nimport type { Config } from '@xyo-network/xl1-sdk'\n\ninterface RunBridgeContext {\n config: Config\n logger?: Logger\n}\n\nexport function runBridge(context: RunBridgeContext) {\n void getServer(context)\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { getServer } from '@xyo-network/chain-mempool'\nimport type { Config } from '@xyo-network/xl1-sdk'\n\ninterface RunMempoolContext {\n config: Config\n logger: Logger\n}\n\nexport function runMempool(context: RunMempoolContext) {\n void getServer(context)\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { getServer } from '@xyo-network/chain-reward-redemption'\nimport type { Config } from '@xyo-network/xl1-sdk'\n\ninterface RunRewardRedemptionApiContext {\n config: Config\n logger?: Logger\n}\n\nexport function runRewardRedemptionApi(context: RunRewardRedemptionApiContext) {\n void getServer(context)\n}\n","/* eslint-disable @stylistic/max-len */\nexport const XL1LogoColorizedAscii = `\u001b[38;2;128;128;128m                    \u001b[0m\u001b[38;2;118;111;144m_\u001b[0m\n\u001b[38;2;128;128;128m                   \u001b[0m\u001b[38;2;72;32;223m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\n\u001b[38;2;128;128;128m                   ╠╠\u001b[0m\u001b[38;2;103;85;170m_\u001b[0m\n\u001b[38;2;128;128;128m        \u001b[0m\u001b[38;2;79;121;152m╦\u001b[0m\u001b[38;2;82;121;151m╦\u001b[0m\u001b[38;2;112;125;136m_       \u001b[0m\u001b[38;2;88;59;196m[\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;73;34;221m▒       \u001b[0m\u001b[38;2;121;121;127m_\u001b[0m\u001b[38;2;100;101;128m╔\u001b[0m\u001b[38;2;93;94;127m╦\u001b[0m\n\u001b[38;2;128;128;128m        \u001b[0m\u001b[38;2;82;121;151m²\u001b[0m\u001b[38;2;44;116;170m╠\u001b[0m\u001b[38;2;44;116;171m▒\u001b[0m\u001b[38;2;51;117;167mD\u001b[0m\u001b[38;2;80;121;152m╦\u001b[0m\u001b[38;2;111;125;136m_    \u001b[0m\u001b[38;2;67;23;232m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠    \u001b[0m\u001b[38;2;120;121;128m_\u001b[0m\u001b[38;2;100;101;127m╔\u001b[0m\u001b[38;2;79;81;127mR\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;88;90;127m╙\u001b[0m\n\u001b[38;2;128;128;128m          \u001b[0m\u001b[38;2;55;117;165m╚\u001b[0m\u001b[38;2;44;116;171m▒\u001b[0m\u001b[38;2;44;116;171m▒▒\u001b[0m\u001b[38;2;50;116;167mD\u001b[0m\u001b[38;2;80;121;152m╦ \u001b[0m\u001b[38;2;106;90;165mj\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠\u001b[0m\u001b[38;2;89;61;194mH \u001b[0m\u001b[38;2;99;100;127m╔\u001b[0m\u001b[38;2;79;80;127mD\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;71;73;128m▒▒╠\u001b[0m\n\u001b[38;2;128;128;128m           \u001b[0m\u001b[38;2;83;121;150m²\u001b[0m\u001b[38;2;44;116;170m▒\u001b[0m\u001b[38;2;44;116;171m▒▒▒ \u001b[0m\u001b[38;2;76;38;217m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠ \u001b[0m\u001b[38;2;74;76;128m╠\u001b[0m\u001b[38;2;71;73;128m▒▒▒\u001b[0m\u001b[38;2;89;90;128m╙\u001b[0m\n\u001b[38;2;128;128;128m             \u001b[0m\u001b[38;2;90;118;148m\\`\u001b[0m\u001b[38;2;89;107;153m_\u001b[0m\u001b[38;2;93;97;154m,\u001b[0m\u001b[38;2;105;89;166m╓\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠\u001b[0m\u001b[38;2;95;72;183m╓\u001b[0m\u001b[38;2;106;96;152m_\u001b[0m\u001b[38;2;100;94;143m\\`\u001b[0m\u001b[38;2;101;100;133m\\`\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;122;118;137m_\u001b[0m\u001b[38;2;113;102;153m,\u001b[0m\u001b[38;2;108;94;161m╓\u001b[0m\u001b[38;2;104;86;169m╓\u001b[0m\u001b[38;2;98;77;178m╔\u001b[0m\u001b[38;2;93;67;188m╗\u001b[0m\u001b[38;2;88;59;196mφ\u001b[0m\u001b[38;2;83;51;204m@\u001b[0m\u001b[38;2;78;42;213mD\u001b[0m\u001b[38;2;72;32;223m▒\u001b[0m\u001b[38;2;68;24;231m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠\u001b[0m\u001b[38;2;71;30;225m▒\u001b[0m\u001b[38;2;77;40;215m▒\u001b[0m\u001b[38;2;82;49;206mK\u001b[0m\u001b[38;2;87;57;198mφ\u001b[0m\u001b[38;2;91;65;190m╗\u001b[0m\u001b[38;2;97;75;180m╦\u001b[0m\u001b[38;2;103;84;171m╖\u001b[0m\u001b[38;2;107;92;163m²\u001b[0m\u001b[38;2;112;101;154m_\u001b[0m\u001b[38;2;119;112;143m_\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;106;91;164m\\`\u001b[0m\u001b[38;2;94;70;185m^\u001b[0m\u001b[38;2;89;62;193m╙\u001b[0m\u001b[38;2;85;54;201m╙\u001b[0m\u001b[38;2;80;45;210m╚\u001b[0m\u001b[38;2;74;35;220m╝\u001b[0m\u001b[38;2;69;26;229m╠\u001b[0m\u001b[38;2;66;22;233m╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠\u001b[0m\u001b[38;2;73;33;222m╝\u001b[0m\u001b[38;2;79;43;212m╩\u001b[0m\u001b[38;2;84;52;203m╜\u001b[0m\u001b[38;2;88;60;195m╙\u001b[0m\u001b[38;2;93;68;187m^\u001b[0m\u001b[38;2;100;80;175m\\`\u001b[0m\n\u001b[38;2;128;128;128m             \u001b[0m\u001b[38;2;113;84;152m\\`\u001b[0m\u001b[38;2;103;79;169m'\u001b[0m\u001b[38;2;95;72;183m\"\u001b[0m\u001b[38;2;87;57;198m╙\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠\u001b[0m\u001b[38;2;80;46;209m╜\u001b[0m\u001b[38;2;94;70;185m^\u001b[0m\u001b[38;2;102;77;175m^\u001b[0m\u001b[38;2;112;81;162m\\`\u001b[0m\u001b[38;2;115;92;155m\\`\u001b[0m\n\u001b[38;2;128;128;128m           \u001b[0m\u001b[38;2;145;116;107m,\u001b[0m\u001b[38;2;199;82;45m╠\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒╠ \u001b[0m\u001b[38;2;70;28;227m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠ \u001b[0m\u001b[38;2;189;49;97må\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠\u001b[0m\u001b[38;2;155;92;114m,\u001b[0m\n\u001b[38;2;128;128;128m          \u001b[0m\u001b[38;2;175;98;73m╔\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒▒▒\u001b[0m\u001b[38;2;197;83;47m╩ \u001b[0m\u001b[38;2;98;76;179m[\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠\u001b[0m\u001b[38;2;81;48;207mH \u001b[0m\u001b[38;2;188;51;98m╚\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠╠\u001b[0m\u001b[38;2;183;57;100mH\u001b[0m\n\u001b[38;2;128;128;128m        \u001b[0m\u001b[38;2;146;116;106m,\u001b[0m\u001b[38;2;199;82;44m╠\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;196;84;48m╩\u001b[0m\u001b[38;2;168;102;81m^    \u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠    \u001b[0m\u001b[38;2;160;87;111m'\u001b[0m\u001b[38;2;187;52;98m╚\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠\u001b[0m\u001b[38;2;156;91;113m,\u001b[0m\n\u001b[38;2;128;128;128m        \u001b[0m\u001b[38;2;198;83;46m╩\u001b[0m\u001b[38;2;194;85;50m╩\u001b[0m\u001b[38;2;167;102;82m^       \u001b[0m\u001b[38;2;81;46;209m╚\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠       \u001b[0m\u001b[38;2;159;88;112m'\u001b[0m\u001b[38;2;186;53;98m╚\u001b[0m\u001b[38;2;197;40;93m╩\u001b[0m\n\u001b[38;2;128;128;128m                  \u001b[0m\u001b[38;2;110;97;158m'\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;94;69;186mH\u001b[0m\n\u001b[38;2;128;128;128m                   \u001b[0m\u001b[38;2;68;25;230m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\n\u001b[38;2;128;128;128m                   \u001b[0m\u001b[38;2;108;93;162m²\u001b[0m\u001b[38;2;99;79;176m^\u001b[0m`\n","import type { Logger, LogLevelValue } from '@xylabs/sdk-js'\nimport {\n Base,\n ConsoleLogger, isDefined,\n LogLevel, SilentLogger,\n} from '@xylabs/sdk-js'\nimport type { Config } from '@xyo-network/xl1-sdk'\n\nexport const initLogger = (config: Config): Logger => {\n let logger: Logger\n if (config.silent) {\n logger = new SilentLogger()\n } else {\n let level: LogLevelValue | undefined\n if (isDefined(config.logLevel)) {\n const parsed = LogLevel[config.logLevel.toLowerCase() as keyof typeof LogLevel]\n if (isDefined(parsed)) level = parsed\n }\n logger = new ConsoleLogger(level)\n }\n Base.defaultLogger = logger\n return logger\n}\n","import type { UsageMeta } from '@xyo-network/xl1-sdk'\nimport { isUsageMeta } from '@xyo-network/xl1-sdk'\nimport type { Options } from 'yargs'\nimport { globalRegistry } from 'zod'\n\nconst usageMetaToOptions = (meta: UsageMeta): Options => {\n return meta\n}\n\nexport const optionsFromGlobalZodRegistry = (): Record<string, Options> => {\n const opts: Record<string, Options> = {}\n for (const schema of Object.values(globalRegistry._map)) {\n if (isUsageMeta(schema)) {\n if (schema.hidden) continue // skip hidden options\n opts[schema.title] = usageMetaToOptions(schema)\n }\n }\n return opts\n}\n","import { isDefined, isNull } from '@xylabs/sdk-js'\nimport { cosmiconfigSync } from 'cosmiconfig'\n\n/**\n * The name of the configuration file to search for.\n */\nconst configName = 'xyo'\n\n/**\n * The name of the section within the configuration file to parse.\n */\nconst configSection = 'xl1' // Default section in the config file\n\n/**\n * Attempts to parse the configuration from a file using cosmiconfig.\n * @returns The parsed configuration object if found and valid, otherwise undefined.\n */\nexport const tryParseConfig = (): Record<string, unknown> => {\n const explorer = cosmiconfigSync(\n configName,\n /* {\n searchPlaces: [\n 'package.json', // Looks under `xyo` key in package.json\n '.xyorc.json', // Supports common dotfile format\n 'xyo.config.json', // Supports custom-named config file\n ],\n loaders: {\n '.json': defaultLoaders['.json'],\n 'noExt': defaultLoaders['.json'],\n },\n }, */\n )\n const result = explorer.search()\n if (!isNull(result)) {\n const section = result?.config?.[configSection]\n if (isDefined(section) && typeof section === 'object') {\n return section\n }\n }\n return {}\n}\n","import net from 'node:net'\n\nexport const waitForHostPort = (host: string, port: number): Promise<void> => {\n return new Promise((resolve) => {\n const tryConnect = () => {\n const socket = new net.Socket()\n\n socket\n .setTimeout(1000)\n .once('error', () => {\n socket.destroy()\n setTimeout(tryConnect, 500) // retry after 500ms\n })\n .once('timeout', () => {\n socket.destroy()\n setTimeout(tryConnect, 500)\n })\n .connect(port, host, () => {\n socket.end()\n resolve()\n })\n }\n\n tryConnect()\n })\n}\n","import { config } from 'dotenv'\n\nimport { runCLI } from './runCLI.ts'\n\nexport const start = async () => {\n config({ quiet: true })\n await runCLI()\n}\n"],"mappings":"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","names":["deepMerge","isDefined","runApi","Orchestrator","runProducer","ConfigZod","yargs","hideBin","ZodError","getServer","runBridge","context","getServer","getServer","runMempool","context","getServer","getServer","runRewardRedemptionApi","context","getServer","XL1LogoColorizedAscii","Base","ConsoleLogger","isDefined","LogLevel","SilentLogger","initLogger","config","logger","silent","SilentLogger","level","isDefined","logLevel","parsed","LogLevel","toLowerCase","ConsoleLogger","Base","defaultLogger","isUsageMeta","globalRegistry","usageMetaToOptions","meta","optionsFromGlobalZodRegistry","opts","schema","Object","values","globalRegistry","_map","isUsageMeta","hidden","title","isDefined","isNull","cosmiconfigSync","configName","configSection","tryParseConfig","explorer","cosmiconfigSync","result","search","isNull","section","config","isDefined","net","waitForHostPort","host","port","Promise","resolve","tryConnect","socket","net","Socket","setTimeout","once","destroy","connect","end","configuration","version","isDefined","__VERSION__","getContextFromConfig","logger","initLogger","orchestrator","Orchestrator","create","process","on","log","stop","exit","err","error","runCLI","y","yargs","hideBin","argv","usage","XL1LogoColorizedAscii","parserConfiguration","env","scriptName","middleware","parsedConfigFile","tryParseConfig","parsedConfigArgs","mergedConfig","deepMerge","ConfigZod","parse","ZodError","console","message","Error","options","optionsFromGlobalZodRegistry","wrap","terminalWidth","command","context","runApi","config","singletons","runBridge","runMempool","runProducer","runRewardRedemptionApi","mempool","enabled","waitForHostPort","host","port","api","help","alias","config","start","config","quiet","runCLI"]}
@@ -1,4 +1,4 @@
1
1
  import type { Logger } from '@xylabs/sdk-js';
2
- import type { Config } from '@xyo-network/xl1-protocol-sdk';
2
+ import type { Config } from '@xyo-network/xl1-sdk';
3
3
  export declare const initLogger: (config: Config) => Logger;
4
4
  //# sourceMappingURL=initLogger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"initLogger.d.ts","sourceRoot":"","sources":["../../src/initLogger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,gBAAgB,CAAA;AAM3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAE3D,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,KAAG,MAc3C,CAAA"}
1
+ {"version":3,"file":"initLogger.d.ts","sourceRoot":"","sources":["../../src/initLogger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,gBAAgB,CAAA;AAM3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAElD,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,KAAG,MAc3C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"runCLI.d.ts","sourceRoot":"","sources":["../../src/runCLI.ts"],"names":[],"mappings":"AAyDA,wBAAsB,MAAM,kBAkG3B"}
1
+ {"version":3,"file":"runCLI.d.ts","sourceRoot":"","sources":["../../src/runCLI.ts"],"names":[],"mappings":"AA0DA,wBAAsB,MAAM,kBA0G3B"}
package/dist/node/xl1.mjs CHANGED
@@ -6,38 +6,32 @@ import { config } from "dotenv";
6
6
 
7
7
  // src/runCLI.ts
8
8
  import { deepMerge, isDefined as isDefined3 } from "@xylabs/sdk-js";
9
+ import { runApi } from "@xyo-network/chain-api";
9
10
  import { Orchestrator } from "@xyo-network/chain-orchestration";
10
11
  import { runProducer } from "@xyo-network/chain-producer";
11
- import { ConfigZod } from "@xyo-network/xl1-protocol-sdk";
12
+ import { ConfigZod } from "@xyo-network/xl1-sdk";
12
13
  import yargs from "yargs";
13
14
  import { hideBin } from "yargs/helpers";
14
15
  import { ZodError } from "zod";
15
16
 
16
- // src/commands/api/runApi.ts
17
- import { getServer } from "@xyo-network/chain-api";
18
- function runApi(context) {
19
- void getServer(context);
20
- }
21
- __name(runApi, "runApi");
22
-
23
17
  // src/commands/bridge/runBridge.ts
24
- import { getServer as getServer2 } from "@xyo-network/chain-bridge";
18
+ import { getServer } from "@xyo-network/chain-bridge";
25
19
  function runBridge(context) {
26
- void getServer2(context);
20
+ void getServer(context);
27
21
  }
28
22
  __name(runBridge, "runBridge");
29
23
 
30
24
  // src/commands/mempool/runMempool.ts
31
- import { getServer as getServer3 } from "@xyo-network/chain-mempool";
25
+ import { getServer as getServer2 } from "@xyo-network/chain-mempool";
32
26
  function runMempool(context) {
33
- void getServer3(context);
27
+ void getServer2(context);
34
28
  }
35
29
  __name(runMempool, "runMempool");
36
30
 
37
31
  // src/commands/rewardRedemption/runRewardRedemptionApi.ts
38
- import { getServer as getServer4 } from "@xyo-network/chain-reward-redemption";
32
+ import { getServer as getServer3 } from "@xyo-network/chain-reward-redemption";
39
33
  function runRewardRedemptionApi(context) {
40
- void getServer4(context);
34
+ void getServer3(context);
41
35
  }
42
36
  __name(runRewardRedemptionApi, "runRewardRedemptionApi");
43
37
 
@@ -80,7 +74,7 @@ var initLogger = /* @__PURE__ */ __name((config2) => {
80
74
  }, "initLogger");
81
75
 
82
76
  // src/optionsFromGlobalZodRegistry.ts
83
- import { isUsageMeta } from "@xyo-network/xl1-protocol-sdk";
77
+ import { isUsageMeta } from "@xyo-network/xl1-sdk";
84
78
  import { globalRegistry } from "zod";
85
79
  var usageMetaToOptions = /* @__PURE__ */ __name((meta) => {
86
80
  return meta;
@@ -136,7 +130,7 @@ var waitForHostPort = /* @__PURE__ */ __name((host, port) => {
136
130
 
137
131
  // src/runCLI.ts
138
132
  var configuration;
139
- var version = isDefined3("1.18.0-rc.1") ? "1.18.0-rc.1" : "unknown";
133
+ var version = isDefined3("1.18.1") ? "1.18.1" : "unknown";
140
134
  var getContextFromConfig = /* @__PURE__ */ __name(async (configuration2) => {
141
135
  const logger = initLogger(configuration2);
142
136
  const orchestrator = await Orchestrator.create({
@@ -188,9 +182,10 @@ $0 <command> [options]`).parserConfiguration({
188
182
  return yargs2.command("$0", "Run a XL1 API Node", () => {
189
183
  }, async () => {
190
184
  const context = await getContextFromConfig(configuration);
191
- runApi({
185
+ await runApi({
192
186
  ...context,
193
- config: configuration
187
+ config: configuration,
188
+ singletons: {}
194
189
  });
195
190
  });
196
191
  }).command("bridge", "Run a XL1 Bridge Node", (yargs2) => {
@@ -217,7 +212,8 @@ $0 <command> [options]`).parserConfiguration({
217
212
  const context = await getContextFromConfig(configuration);
218
213
  await runProducer({
219
214
  ...context,
220
- config: configuration
215
+ config: configuration,
216
+ singletons: {}
221
217
  });
222
218
  });
223
219
  }).command("reward-redemption-api", "Run a XL1 Rewards Redemption API Node", (yargs2) => {
@@ -239,14 +235,16 @@ $0 <command> [options]`).parserConfiguration({
239
235
  });
240
236
  await waitForHostPort(configuration.mempool.host, configuration.mempool.port);
241
237
  }
242
- runApi({
238
+ await runApi({
243
239
  ...context,
244
- config: configuration
240
+ config: configuration,
241
+ singletons: {}
245
242
  });
246
243
  await waitForHostPort(configuration.api.host, configuration.api.port);
247
244
  await runProducer({
248
245
  ...context,
249
- config: configuration
246
+ config: configuration,
247
+ singletons: {}
250
248
  });
251
249
  }).help().alias("help", "h").version(version).argv;
252
250
  await argv;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/start.ts","../../src/runCLI.ts","../../src/commands/api/runApi.ts","../../src/commands/bridge/runBridge.ts","../../src/commands/mempool/runMempool.ts","../../src/commands/rewardRedemption/runRewardRedemptionApi.ts","../../src/images.ts","../../src/initLogger.ts","../../src/optionsFromGlobalZodRegistry.ts","../../src/tryParseConfig.ts","../../src/waitForHostPort.ts","../../src/xl1.ts"],"sourcesContent":["import { config } from 'dotenv'\n\nimport { runCLI } from './runCLI.ts'\n\nexport const start = async () => {\n config({ quiet: true })\n await runCLI()\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { deepMerge, isDefined } from '@xylabs/sdk-js'\nimport { Orchestrator } from '@xyo-network/chain-orchestration'\nimport { runProducer } from '@xyo-network/chain-producer'\nimport { type Config, ConfigZod } from '@xyo-network/xl1-protocol-sdk'\nimport type { Argv } from 'yargs'\nimport yargs from 'yargs'\nimport { hideBin } from 'yargs/helpers'\nimport { ZodError } from 'zod'\n\nimport {\n runApi, runBridge, runMempool, runRewardRedemptionApi,\n} from './commands/index.ts'\nimport { XL1LogoColorizedAscii } from './images.ts'\nimport { initLogger } from './initLogger.ts'\nimport { optionsFromGlobalZodRegistry } from './optionsFromGlobalZodRegistry.ts'\nimport { tryParseConfig } from './tryParseConfig.ts'\nimport { waitForHostPort } from './waitForHostPort.ts'\n\n/** Version string injected by Rollup at build time. */\ndeclare const __VERSION__: string\n\ninterface RunCliContext {\n logger: Logger\n orchestrator: Orchestrator\n}\n\n/**\n * The configuration that will be used throughout the CLI.\n * This is materialized after parsing the command-line arguments,\n * environment variables, and defaults.\n */\nlet configuration: Config\n\nconst version = isDefined(__VERSION__) ? __VERSION__ : 'unknown'\n\nconst getContextFromConfig = async (configuration: Config): Promise<RunCliContext> => {\n const logger = initLogger(configuration)\n const orchestrator = await Orchestrator.create({ logger })\n // Handle cancellation (Ctrl+C)\n process.on('SIGINT', () => {\n void (async () => {\n try {\n logger.log('\\nSIGINT received. Attempting graceful shutdown...')\n await orchestrator?.stop()\n logger.log('Orchestrator stopped, exiting now.')\n process.exit(0)\n } catch (err) {\n logger.error('Error stopping orchestrator:', err)\n process.exit(1)\n }\n })()\n })\n return { logger, orchestrator }\n}\n\n// Main entry point\nexport async function runCLI() {\n // Parse command-line arguments using Yargs\n const y = yargs(hideBin(process.argv)) as Argv<Config>\n const argv = y\n .usage(`\n🚀 XL1 Node CLI (${version})\n${XL1LogoColorizedAscii}\nRun various components of the XL1 ecosystem.\n\nUsage:\n$0 <command> [options]`)\n .parserConfiguration({\n 'dot-notation': true, // foo.bar → { foo: { bar } }\n 'parse-numbers': false, // Don't auto-parse numbers to allow strings like \"0x1\"\n 'populate--': true, // Populate -- with all options so we can detected user-supplied vs defaults\n })\n .env('XL1')\n .scriptName('xl1')\n .middleware((argv) => {\n try {\n // Parse the various config sources\n const parsedConfigFile = tryParseConfig() // Config file\n const parsedConfigArgs = argv // Command-line arguments & ENV VARs\n // Deep merge with precedence\n // TODO: Would like precedence to be defaults < file < ENV < CLI Args\n // but there is currently no way to determine which are defaults vs\n // user-supplied CLI Args since we set the CLI args to the defaults\n // and receive a flattened object. We might need to manually invoke\n // the parser without the defaults to achieve this.\n const mergedConfig = deepMerge(parsedConfigArgs, parsedConfigFile)\n // Validate the merged configuration\n configuration = ConfigZod.parse(mergedConfig)\n } catch (err) {\n if (err instanceof ZodError) {\n console.error(`${err.message}`)\n }\n throw new Error('Invalid configuration')\n }\n })\n .options(optionsFromGlobalZodRegistry())\n // .commandDir('./command/commands', opts) // Not yet supported for ESM\n .wrap(y.terminalWidth())\n .command('api', 'Run a XL1 API Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 API Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n runApi({ ...context, config: configuration })\n })\n })\n .command('bridge', 'Run a XL1 Bridge Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 Bridge Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n runBridge({ ...context, config: configuration })\n })\n })\n .command('mempool', 'Run a XL1 Mempool Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 Mempool Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n runMempool({ ...context, config: configuration })\n })\n })\n .command('producer', 'Run a XL1 Producer Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 Producer Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n await runProducer({ ...context, config: configuration })\n })\n })\n .command('reward-redemption-api', 'Run a XL1 Rewards Redemption API Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 Rewards Redemption API Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n runRewardRedemptionApi({ ...context, config: configuration })\n })\n })\n .command('$0', 'Run a full XL1 Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n if (configuration.mempool.enabled) {\n // Start Mempool but do not block\n runMempool({ ...context, config: configuration })\n // Wait for Mempool to be ready\n await waitForHostPort(configuration.mempool.host, configuration.mempool.port)\n }\n // Start API but do not block\n runApi({ ...context, config: configuration })\n // Wait for API to be ready\n await waitForHostPort(configuration.api.host, configuration.api.port)\n // Start Producer and block on it\n await runProducer({ ...context, config: configuration })\n })\n .help()\n .alias('help', 'h')\n .version(version)\n .argv\n\n await argv\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { getServer } from '@xyo-network/chain-api'\nimport type { Config } from '@xyo-network/xl1-protocol-sdk'\n\ninterface RunApiContext {\n config: Config\n logger?: Logger\n}\n\nexport function runApi(context: RunApiContext) {\n void getServer(context)\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { getServer } from '@xyo-network/chain-bridge'\nimport type { Config } from '@xyo-network/xl1-protocol-sdk'\n\ninterface RunBridgeContext {\n config: Config\n logger?: Logger\n}\n\nexport function runBridge(context: RunBridgeContext) {\n void getServer(context)\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { getServer } from '@xyo-network/chain-mempool'\nimport type { Config } from '@xyo-network/xl1-protocol-sdk'\n\ninterface RunMempoolContext {\n config: Config\n logger: Logger\n}\n\nexport function runMempool(context: RunMempoolContext) {\n void getServer(context)\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { getServer } from '@xyo-network/chain-reward-redemption'\nimport type { Config } from '@xyo-network/xl1-protocol-sdk'\n\ninterface RunRewardRedemptionApiContext {\n config: Config\n logger?: Logger\n}\n\nexport function runRewardRedemptionApi(context: RunRewardRedemptionApiContext) {\n void getServer(context)\n}\n","/* eslint-disable @stylistic/max-len */\nexport const XL1LogoColorizedAscii = `\u001b[38;2;128;128;128m                    \u001b[0m\u001b[38;2;118;111;144m_\u001b[0m\n\u001b[38;2;128;128;128m                   \u001b[0m\u001b[38;2;72;32;223m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\n\u001b[38;2;128;128;128m                   ╠╠\u001b[0m\u001b[38;2;103;85;170m_\u001b[0m\n\u001b[38;2;128;128;128m        \u001b[0m\u001b[38;2;79;121;152m╦\u001b[0m\u001b[38;2;82;121;151m╦\u001b[0m\u001b[38;2;112;125;136m_       \u001b[0m\u001b[38;2;88;59;196m[\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;73;34;221m▒       \u001b[0m\u001b[38;2;121;121;127m_\u001b[0m\u001b[38;2;100;101;128m╔\u001b[0m\u001b[38;2;93;94;127m╦\u001b[0m\n\u001b[38;2;128;128;128m        \u001b[0m\u001b[38;2;82;121;151m²\u001b[0m\u001b[38;2;44;116;170m╠\u001b[0m\u001b[38;2;44;116;171m▒\u001b[0m\u001b[38;2;51;117;167mD\u001b[0m\u001b[38;2;80;121;152m╦\u001b[0m\u001b[38;2;111;125;136m_    \u001b[0m\u001b[38;2;67;23;232m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠    \u001b[0m\u001b[38;2;120;121;128m_\u001b[0m\u001b[38;2;100;101;127m╔\u001b[0m\u001b[38;2;79;81;127mR\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;88;90;127m╙\u001b[0m\n\u001b[38;2;128;128;128m          \u001b[0m\u001b[38;2;55;117;165m╚\u001b[0m\u001b[38;2;44;116;171m▒\u001b[0m\u001b[38;2;44;116;171m▒▒\u001b[0m\u001b[38;2;50;116;167mD\u001b[0m\u001b[38;2;80;121;152m╦ \u001b[0m\u001b[38;2;106;90;165mj\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠\u001b[0m\u001b[38;2;89;61;194mH \u001b[0m\u001b[38;2;99;100;127m╔\u001b[0m\u001b[38;2;79;80;127mD\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;71;73;128m▒▒╠\u001b[0m\n\u001b[38;2;128;128;128m           \u001b[0m\u001b[38;2;83;121;150m²\u001b[0m\u001b[38;2;44;116;170m▒\u001b[0m\u001b[38;2;44;116;171m▒▒▒ \u001b[0m\u001b[38;2;76;38;217m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠ \u001b[0m\u001b[38;2;74;76;128m╠\u001b[0m\u001b[38;2;71;73;128m▒▒▒\u001b[0m\u001b[38;2;89;90;128m╙\u001b[0m\n\u001b[38;2;128;128;128m             \u001b[0m\u001b[38;2;90;118;148m\\`\u001b[0m\u001b[38;2;89;107;153m_\u001b[0m\u001b[38;2;93;97;154m,\u001b[0m\u001b[38;2;105;89;166m╓\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠\u001b[0m\u001b[38;2;95;72;183m╓\u001b[0m\u001b[38;2;106;96;152m_\u001b[0m\u001b[38;2;100;94;143m\\`\u001b[0m\u001b[38;2;101;100;133m\\`\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;122;118;137m_\u001b[0m\u001b[38;2;113;102;153m,\u001b[0m\u001b[38;2;108;94;161m╓\u001b[0m\u001b[38;2;104;86;169m╓\u001b[0m\u001b[38;2;98;77;178m╔\u001b[0m\u001b[38;2;93;67;188m╗\u001b[0m\u001b[38;2;88;59;196mφ\u001b[0m\u001b[38;2;83;51;204m@\u001b[0m\u001b[38;2;78;42;213mD\u001b[0m\u001b[38;2;72;32;223m▒\u001b[0m\u001b[38;2;68;24;231m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠\u001b[0m\u001b[38;2;71;30;225m▒\u001b[0m\u001b[38;2;77;40;215m▒\u001b[0m\u001b[38;2;82;49;206mK\u001b[0m\u001b[38;2;87;57;198mφ\u001b[0m\u001b[38;2;91;65;190m╗\u001b[0m\u001b[38;2;97;75;180m╦\u001b[0m\u001b[38;2;103;84;171m╖\u001b[0m\u001b[38;2;107;92;163m²\u001b[0m\u001b[38;2;112;101;154m_\u001b[0m\u001b[38;2;119;112;143m_\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;106;91;164m\\`\u001b[0m\u001b[38;2;94;70;185m^\u001b[0m\u001b[38;2;89;62;193m╙\u001b[0m\u001b[38;2;85;54;201m╙\u001b[0m\u001b[38;2;80;45;210m╚\u001b[0m\u001b[38;2;74;35;220m╝\u001b[0m\u001b[38;2;69;26;229m╠\u001b[0m\u001b[38;2;66;22;233m╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠\u001b[0m\u001b[38;2;73;33;222m╝\u001b[0m\u001b[38;2;79;43;212m╩\u001b[0m\u001b[38;2;84;52;203m╜\u001b[0m\u001b[38;2;88;60;195m╙\u001b[0m\u001b[38;2;93;68;187m^\u001b[0m\u001b[38;2;100;80;175m\\`\u001b[0m\n\u001b[38;2;128;128;128m             \u001b[0m\u001b[38;2;113;84;152m\\`\u001b[0m\u001b[38;2;103;79;169m'\u001b[0m\u001b[38;2;95;72;183m\"\u001b[0m\u001b[38;2;87;57;198m╙\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠\u001b[0m\u001b[38;2;80;46;209m╜\u001b[0m\u001b[38;2;94;70;185m^\u001b[0m\u001b[38;2;102;77;175m^\u001b[0m\u001b[38;2;112;81;162m\\`\u001b[0m\u001b[38;2;115;92;155m\\`\u001b[0m\n\u001b[38;2;128;128;128m           \u001b[0m\u001b[38;2;145;116;107m,\u001b[0m\u001b[38;2;199;82;45m╠\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒╠ \u001b[0m\u001b[38;2;70;28;227m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠ \u001b[0m\u001b[38;2;189;49;97må\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠\u001b[0m\u001b[38;2;155;92;114m,\u001b[0m\n\u001b[38;2;128;128;128m          \u001b[0m\u001b[38;2;175;98;73m╔\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒▒▒\u001b[0m\u001b[38;2;197;83;47m╩ \u001b[0m\u001b[38;2;98;76;179m[\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠\u001b[0m\u001b[38;2;81;48;207mH \u001b[0m\u001b[38;2;188;51;98m╚\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠╠\u001b[0m\u001b[38;2;183;57;100mH\u001b[0m\n\u001b[38;2;128;128;128m        \u001b[0m\u001b[38;2;146;116;106m,\u001b[0m\u001b[38;2;199;82;44m╠\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;196;84;48m╩\u001b[0m\u001b[38;2;168;102;81m^    \u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠    \u001b[0m\u001b[38;2;160;87;111m'\u001b[0m\u001b[38;2;187;52;98m╚\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠\u001b[0m\u001b[38;2;156;91;113m,\u001b[0m\n\u001b[38;2;128;128;128m        \u001b[0m\u001b[38;2;198;83;46m╩\u001b[0m\u001b[38;2;194;85;50m╩\u001b[0m\u001b[38;2;167;102;82m^       \u001b[0m\u001b[38;2;81;46;209m╚\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠       \u001b[0m\u001b[38;2;159;88;112m'\u001b[0m\u001b[38;2;186;53;98m╚\u001b[0m\u001b[38;2;197;40;93m╩\u001b[0m\n\u001b[38;2;128;128;128m                  \u001b[0m\u001b[38;2;110;97;158m'\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;94;69;186mH\u001b[0m\n\u001b[38;2;128;128;128m                   \u001b[0m\u001b[38;2;68;25;230m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\n\u001b[38;2;128;128;128m                   \u001b[0m\u001b[38;2;108;93;162m²\u001b[0m\u001b[38;2;99;79;176m^\u001b[0m`\n","import type { Logger, LogLevelValue } from '@xylabs/sdk-js'\nimport {\n Base,\n ConsoleLogger, isDefined,\n LogLevel, SilentLogger,\n} from '@xylabs/sdk-js'\nimport type { Config } from '@xyo-network/xl1-protocol-sdk'\n\nexport const initLogger = (config: Config): Logger => {\n let logger: Logger\n if (config.silent) {\n logger = new SilentLogger()\n } else {\n let level: LogLevelValue | undefined\n if (isDefined(config.logLevel)) {\n const parsed = LogLevel[config.logLevel.toLowerCase() as keyof typeof LogLevel]\n if (isDefined(parsed)) level = parsed\n }\n logger = new ConsoleLogger(level)\n }\n Base.defaultLogger = logger\n return logger\n}\n","import type { UsageMeta } from '@xyo-network/xl1-protocol-sdk'\nimport { isUsageMeta } from '@xyo-network/xl1-protocol-sdk'\nimport type { Options } from 'yargs'\nimport { globalRegistry } from 'zod'\n\nconst usageMetaToOptions = (meta: UsageMeta): Options => {\n return meta\n}\n\nexport const optionsFromGlobalZodRegistry = (): Record<string, Options> => {\n const opts: Record<string, Options> = {}\n for (const schema of Object.values(globalRegistry._map)) {\n if (isUsageMeta(schema)) {\n if (schema.hidden) continue // skip hidden options\n opts[schema.title] = usageMetaToOptions(schema)\n }\n }\n return opts\n}\n","import { isDefined, isNull } from '@xylabs/sdk-js'\nimport { cosmiconfigSync } from 'cosmiconfig'\n\n/**\n * The name of the configuration file to search for.\n */\nconst configName = 'xyo'\n\n/**\n * The name of the section within the configuration file to parse.\n */\nconst configSection = 'xl1' // Default section in the config file\n\n/**\n * Attempts to parse the configuration from a file using cosmiconfig.\n * @returns The parsed configuration object if found and valid, otherwise undefined.\n */\nexport const tryParseConfig = (): Record<string, unknown> => {\n const explorer = cosmiconfigSync(\n configName,\n /* {\n searchPlaces: [\n 'package.json', // Looks under `xyo` key in package.json\n '.xyorc.json', // Supports common dotfile format\n 'xyo.config.json', // Supports custom-named config file\n ],\n loaders: {\n '.json': defaultLoaders['.json'],\n 'noExt': defaultLoaders['.json'],\n },\n }, */\n )\n const result = explorer.search()\n if (!isNull(result)) {\n const section = result?.config?.[configSection]\n if (isDefined(section) && typeof section === 'object') {\n return section\n }\n }\n return {}\n}\n","import net from 'node:net'\n\nexport const waitForHostPort = (host: string, port: number): Promise<void> => {\n return new Promise((resolve) => {\n const tryConnect = () => {\n const socket = new net.Socket()\n\n socket\n .setTimeout(1000)\n .once('error', () => {\n socket.destroy()\n setTimeout(tryConnect, 500) // retry after 500ms\n })\n .once('timeout', () => {\n socket.destroy()\n setTimeout(tryConnect, 500)\n })\n .connect(port, host, () => {\n socket.end()\n resolve()\n })\n }\n\n tryConnect()\n })\n}\n","import { start } from './start.ts'\n\nstart().catch((err) => {\n // If we're in development mode, log the stack trace to the console\n if (process.env.NODE_ENV === 'development') console.error('An error occurred during startup:', err)\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(1)\n})\n"],"mappings":"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","names":["config","deepMerge","isDefined","Orchestrator","runProducer","ConfigZod","yargs","hideBin","ZodError","getServer","runApi","context","getServer","getServer","runBridge","context","getServer","getServer","runMempool","context","getServer","getServer","runRewardRedemptionApi","context","getServer","XL1LogoColorizedAscii","Base","ConsoleLogger","isDefined","LogLevel","SilentLogger","initLogger","config","logger","silent","SilentLogger","level","isDefined","logLevel","parsed","LogLevel","toLowerCase","ConsoleLogger","Base","defaultLogger","isUsageMeta","globalRegistry","usageMetaToOptions","meta","optionsFromGlobalZodRegistry","opts","schema","Object","values","globalRegistry","_map","isUsageMeta","hidden","title","isDefined","isNull","cosmiconfigSync","configName","configSection","tryParseConfig","explorer","cosmiconfigSync","result","search","isNull","section","config","isDefined","net","waitForHostPort","host","port","Promise","resolve","tryConnect","socket","net","Socket","setTimeout","once","destroy","connect","end","configuration","version","isDefined","__VERSION__","getContextFromConfig","logger","initLogger","orchestrator","Orchestrator","create","process","on","log","stop","exit","err","error","runCLI","y","yargs","hideBin","argv","usage","XL1LogoColorizedAscii","parserConfiguration","env","scriptName","middleware","parsedConfigFile","tryParseConfig","parsedConfigArgs","mergedConfig","deepMerge","ConfigZod","parse","ZodError","console","message","Error","options","optionsFromGlobalZodRegistry","wrap","terminalWidth","command","context","runApi","config","runBridge","runMempool","runProducer","runRewardRedemptionApi","mempool","enabled","waitForHostPort","host","port","api","help","alias","start","config","quiet","runCLI","start","catch","err","process","env","NODE_ENV","console","error","exit"]}
1
+ {"version":3,"sources":["../../src/start.ts","../../src/runCLI.ts","../../src/commands/bridge/runBridge.ts","../../src/commands/mempool/runMempool.ts","../../src/commands/rewardRedemption/runRewardRedemptionApi.ts","../../src/images.ts","../../src/initLogger.ts","../../src/optionsFromGlobalZodRegistry.ts","../../src/tryParseConfig.ts","../../src/waitForHostPort.ts","../../src/xl1.ts"],"sourcesContent":["import { config } from 'dotenv'\n\nimport { runCLI } from './runCLI.ts'\n\nexport const start = async () => {\n config({ quiet: true })\n await runCLI()\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { deepMerge, isDefined } from '@xylabs/sdk-js'\nimport { runApi } from '@xyo-network/chain-api'\nimport { Orchestrator } from '@xyo-network/chain-orchestration'\nimport { runProducer } from '@xyo-network/chain-producer'\nimport { type Config, ConfigZod } from '@xyo-network/xl1-sdk'\nimport type { Argv } from 'yargs'\nimport yargs from 'yargs'\nimport { hideBin } from 'yargs/helpers'\nimport { ZodError } from 'zod'\n\nimport {\n runBridge, runMempool, runRewardRedemptionApi,\n} from './commands/index.ts'\nimport { XL1LogoColorizedAscii } from './images.ts'\nimport { initLogger } from './initLogger.ts'\nimport { optionsFromGlobalZodRegistry } from './optionsFromGlobalZodRegistry.ts'\nimport { tryParseConfig } from './tryParseConfig.ts'\nimport { waitForHostPort } from './waitForHostPort.ts'\n\n/** Version string injected by Rollup at build time. */\ndeclare const __VERSION__: string\n\ninterface RunCliContext {\n logger: Logger\n orchestrator: Orchestrator\n}\n\n/**\n * The configuration that will be used throughout the CLI.\n * This is materialized after parsing the command-line arguments,\n * environment variables, and defaults.\n */\nlet configuration: Config\n\nconst version = isDefined(__VERSION__) ? __VERSION__ : 'unknown'\n\nconst getContextFromConfig = async (configuration: Config): Promise<RunCliContext> => {\n const logger = initLogger(configuration)\n const orchestrator = await Orchestrator.create({ logger })\n // Handle cancellation (Ctrl+C)\n process.on('SIGINT', () => {\n void (async () => {\n try {\n logger.log('\\nSIGINT received. Attempting graceful shutdown...')\n await orchestrator?.stop()\n logger.log('Orchestrator stopped, exiting now.')\n process.exit(0)\n } catch (err) {\n logger.error('Error stopping orchestrator:', err)\n process.exit(1)\n }\n })()\n })\n return { logger, orchestrator }\n}\n\n// Main entry point\nexport async function runCLI() {\n // Parse command-line arguments using Yargs\n const y = yargs(hideBin(process.argv)) as Argv<Config>\n const argv = y\n .usage(`\n🚀 XL1 Node CLI (${version})\n${XL1LogoColorizedAscii}\nRun various components of the XL1 ecosystem.\n\nUsage:\n$0 <command> [options]`)\n .parserConfiguration({\n 'dot-notation': true, // foo.bar → { foo: { bar } }\n 'parse-numbers': false, // Don't auto-parse numbers to allow strings like \"0x1\"\n 'populate--': true, // Populate -- with all options so we can detected user-supplied vs defaults\n })\n .env('XL1')\n .scriptName('xl1')\n .middleware((argv) => {\n try {\n // Parse the various config sources\n const parsedConfigFile = tryParseConfig() // Config file\n const parsedConfigArgs = argv // Command-line arguments & ENV VARs\n // Deep merge with precedence\n // TODO: Would like precedence to be defaults < file < ENV < CLI Args\n // but there is currently no way to determine which are defaults vs\n // user-supplied CLI Args since we set the CLI args to the defaults\n // and receive a flattened object. We might need to manually invoke\n // the parser without the defaults to achieve this.\n const mergedConfig = deepMerge(parsedConfigArgs, parsedConfigFile)\n // Validate the merged configuration\n configuration = ConfigZod.parse(mergedConfig)\n } catch (err) {\n if (err instanceof ZodError) {\n console.error(`${err.message}`)\n }\n throw new Error('Invalid configuration')\n }\n })\n .options(optionsFromGlobalZodRegistry())\n // .commandDir('./command/commands', opts) // Not yet supported for ESM\n .wrap(y.terminalWidth())\n .command('api', 'Run a XL1 API Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 API Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n await runApi({\n ...context, config: configuration, singletons: {},\n })\n })\n })\n .command('bridge', 'Run a XL1 Bridge Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 Bridge Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n runBridge({ ...context, config: configuration })\n })\n })\n .command('mempool', 'Run a XL1 Mempool Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 Mempool Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n runMempool({ ...context, config: configuration })\n })\n })\n .command('producer', 'Run a XL1 Producer Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 Producer Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n await runProducer({\n ...context, config: configuration, singletons: {},\n })\n })\n })\n .command('reward-redemption-api', 'Run a XL1 Rewards Redemption API Node', (yargs) => {\n return yargs\n .command('$0', 'Run a XL1 Rewards Redemption API Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n runRewardRedemptionApi({ ...context, config: configuration })\n })\n })\n .command('$0', 'Run a full XL1 Node', () => {}, async () => {\n const context = await getContextFromConfig(configuration)\n if (configuration.mempool.enabled) {\n // Start Mempool but do not block\n runMempool({ ...context, config: configuration })\n // Wait for Mempool to be ready\n await waitForHostPort(configuration.mempool.host, configuration.mempool.port)\n }\n // Start API but do not block\n await runApi({\n ...context, config: configuration, singletons: {},\n })\n // Wait for API to be ready\n await waitForHostPort(configuration.api.host, configuration.api.port)\n // Start Producer and block on it\n await runProducer({\n ...context, config: configuration, singletons: {},\n })\n })\n .help()\n .alias('help', 'h')\n .version(version)\n .argv\n\n await argv\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { getServer } from '@xyo-network/chain-bridge'\nimport type { Config } from '@xyo-network/xl1-sdk'\n\ninterface RunBridgeContext {\n config: Config\n logger?: Logger\n}\n\nexport function runBridge(context: RunBridgeContext) {\n void getServer(context)\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { getServer } from '@xyo-network/chain-mempool'\nimport type { Config } from '@xyo-network/xl1-sdk'\n\ninterface RunMempoolContext {\n config: Config\n logger: Logger\n}\n\nexport function runMempool(context: RunMempoolContext) {\n void getServer(context)\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport { getServer } from '@xyo-network/chain-reward-redemption'\nimport type { Config } from '@xyo-network/xl1-sdk'\n\ninterface RunRewardRedemptionApiContext {\n config: Config\n logger?: Logger\n}\n\nexport function runRewardRedemptionApi(context: RunRewardRedemptionApiContext) {\n void getServer(context)\n}\n","/* eslint-disable @stylistic/max-len */\nexport const XL1LogoColorizedAscii = `\u001b[38;2;128;128;128m                    \u001b[0m\u001b[38;2;118;111;144m_\u001b[0m\n\u001b[38;2;128;128;128m                   \u001b[0m\u001b[38;2;72;32;223m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\n\u001b[38;2;128;128;128m                   ╠╠\u001b[0m\u001b[38;2;103;85;170m_\u001b[0m\n\u001b[38;2;128;128;128m        \u001b[0m\u001b[38;2;79;121;152m╦\u001b[0m\u001b[38;2;82;121;151m╦\u001b[0m\u001b[38;2;112;125;136m_       \u001b[0m\u001b[38;2;88;59;196m[\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;73;34;221m▒       \u001b[0m\u001b[38;2;121;121;127m_\u001b[0m\u001b[38;2;100;101;128m╔\u001b[0m\u001b[38;2;93;94;127m╦\u001b[0m\n\u001b[38;2;128;128;128m        \u001b[0m\u001b[38;2;82;121;151m²\u001b[0m\u001b[38;2;44;116;170m╠\u001b[0m\u001b[38;2;44;116;171m▒\u001b[0m\u001b[38;2;51;117;167mD\u001b[0m\u001b[38;2;80;121;152m╦\u001b[0m\u001b[38;2;111;125;136m_    \u001b[0m\u001b[38;2;67;23;232m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠    \u001b[0m\u001b[38;2;120;121;128m_\u001b[0m\u001b[38;2;100;101;127m╔\u001b[0m\u001b[38;2;79;81;127mR\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;88;90;127m╙\u001b[0m\n\u001b[38;2;128;128;128m          \u001b[0m\u001b[38;2;55;117;165m╚\u001b[0m\u001b[38;2;44;116;171m▒\u001b[0m\u001b[38;2;44;116;171m▒▒\u001b[0m\u001b[38;2;50;116;167mD\u001b[0m\u001b[38;2;80;121;152m╦ \u001b[0m\u001b[38;2;106;90;165mj\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠\u001b[0m\u001b[38;2;89;61;194mH \u001b[0m\u001b[38;2;99;100;127m╔\u001b[0m\u001b[38;2;79;80;127mD\u001b[0m\u001b[38;2;71;73;128m▒\u001b[0m\u001b[38;2;71;73;128m▒▒╠\u001b[0m\n\u001b[38;2;128;128;128m           \u001b[0m\u001b[38;2;83;121;150m²\u001b[0m\u001b[38;2;44;116;170m▒\u001b[0m\u001b[38;2;44;116;171m▒▒▒ \u001b[0m\u001b[38;2;76;38;217m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠ \u001b[0m\u001b[38;2;74;76;128m╠\u001b[0m\u001b[38;2;71;73;128m▒▒▒\u001b[0m\u001b[38;2;89;90;128m╙\u001b[0m\n\u001b[38;2;128;128;128m             \u001b[0m\u001b[38;2;90;118;148m\\`\u001b[0m\u001b[38;2;89;107;153m_\u001b[0m\u001b[38;2;93;97;154m,\u001b[0m\u001b[38;2;105;89;166m╓\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠\u001b[0m\u001b[38;2;95;72;183m╓\u001b[0m\u001b[38;2;106;96;152m_\u001b[0m\u001b[38;2;100;94;143m\\`\u001b[0m\u001b[38;2;101;100;133m\\`\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;122;118;137m_\u001b[0m\u001b[38;2;113;102;153m,\u001b[0m\u001b[38;2;108;94;161m╓\u001b[0m\u001b[38;2;104;86;169m╓\u001b[0m\u001b[38;2;98;77;178m╔\u001b[0m\u001b[38;2;93;67;188m╗\u001b[0m\u001b[38;2;88;59;196mφ\u001b[0m\u001b[38;2;83;51;204m@\u001b[0m\u001b[38;2;78;42;213mD\u001b[0m\u001b[38;2;72;32;223m▒\u001b[0m\u001b[38;2;68;24;231m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠\u001b[0m\u001b[38;2;71;30;225m▒\u001b[0m\u001b[38;2;77;40;215m▒\u001b[0m\u001b[38;2;82;49;206mK\u001b[0m\u001b[38;2;87;57;198mφ\u001b[0m\u001b[38;2;91;65;190m╗\u001b[0m\u001b[38;2;97;75;180m╦\u001b[0m\u001b[38;2;103;84;171m╖\u001b[0m\u001b[38;2;107;92;163m²\u001b[0m\u001b[38;2;112;101;154m_\u001b[0m\u001b[38;2;119;112;143m_\u001b[0m\n\u001b[38;2;128;128;128m \u001b[0m\u001b[38;2;106;91;164m\\`\u001b[0m\u001b[38;2;94;70;185m^\u001b[0m\u001b[38;2;89;62;193m╙\u001b[0m\u001b[38;2;85;54;201m╙\u001b[0m\u001b[38;2;80;45;210m╚\u001b[0m\u001b[38;2;74;35;220m╝\u001b[0m\u001b[38;2;69;26;229m╠\u001b[0m\u001b[38;2;66;22;233m╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠\u001b[0m\u001b[38;2;73;33;222m╝\u001b[0m\u001b[38;2;79;43;212m╩\u001b[0m\u001b[38;2;84;52;203m╜\u001b[0m\u001b[38;2;88;60;195m╙\u001b[0m\u001b[38;2;93;68;187m^\u001b[0m\u001b[38;2;100;80;175m\\`\u001b[0m\n\u001b[38;2;128;128;128m             \u001b[0m\u001b[38;2;113;84;152m\\`\u001b[0m\u001b[38;2;103;79;169m'\u001b[0m\u001b[38;2;95;72;183m\"\u001b[0m\u001b[38;2;87;57;198m╙\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠╠\u001b[0m\u001b[38;2;80;46;209m╜\u001b[0m\u001b[38;2;94;70;185m^\u001b[0m\u001b[38;2;102;77;175m^\u001b[0m\u001b[38;2;112;81;162m\\`\u001b[0m\u001b[38;2;115;92;155m\\`\u001b[0m\n\u001b[38;2;128;128;128m           \u001b[0m\u001b[38;2;145;116;107m,\u001b[0m\u001b[38;2;199;82;45m╠\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒╠ \u001b[0m\u001b[38;2;70;28;227m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠╠ \u001b[0m\u001b[38;2;189;49;97må\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠\u001b[0m\u001b[38;2;155;92;114m,\u001b[0m\n\u001b[38;2;128;128;128m          \u001b[0m\u001b[38;2;175;98;73m╔\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒▒▒\u001b[0m\u001b[38;2;197;83;47m╩ \u001b[0m\u001b[38;2;98;76;179m[\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠\u001b[0m\u001b[38;2;81;48;207mH \u001b[0m\u001b[38;2;188;51;98m╚\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠╠\u001b[0m\u001b[38;2;183;57;100mH\u001b[0m\n\u001b[38;2;128;128;128m        \u001b[0m\u001b[38;2;146;116;106m,\u001b[0m\u001b[38;2;199;82;44m╠\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;207;77;35m▒\u001b[0m\u001b[38;2;196;84;48m╩\u001b[0m\u001b[38;2;168;102;81m^    \u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠╠    \u001b[0m\u001b[38;2;160;87;111m'\u001b[0m\u001b[38;2;187;52;98m╚\u001b[0m\u001b[38;2;203;32;90m╠\u001b[0m\u001b[38;2;203;32;90m╠╠\u001b[0m\u001b[38;2;156;91;113m,\u001b[0m\n\u001b[38;2;128;128;128m        \u001b[0m\u001b[38;2;198;83;46m╩\u001b[0m\u001b[38;2;194;85;50m╩\u001b[0m\u001b[38;2;167;102;82m^       \u001b[0m\u001b[38;2;81;46;209m╚\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠╠       \u001b[0m\u001b[38;2;159;88;112m'\u001b[0m\u001b[38;2;186;53;98m╚\u001b[0m\u001b[38;2;197;40;93m╩\u001b[0m\n\u001b[38;2;128;128;128m                  \u001b[0m\u001b[38;2;110;97;158m'\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\u001b[38;2;94;69;186mH\u001b[0m\n\u001b[38;2;128;128;128m                   \u001b[0m\u001b[38;2;68;25;230m╠\u001b[0m\u001b[38;2;66;21;234m╠\u001b[0m\n\u001b[38;2;128;128;128m                   \u001b[0m\u001b[38;2;108;93;162m²\u001b[0m\u001b[38;2;99;79;176m^\u001b[0m`\n","import type { Logger, LogLevelValue } from '@xylabs/sdk-js'\nimport {\n Base,\n ConsoleLogger, isDefined,\n LogLevel, SilentLogger,\n} from '@xylabs/sdk-js'\nimport type { Config } from '@xyo-network/xl1-sdk'\n\nexport const initLogger = (config: Config): Logger => {\n let logger: Logger\n if (config.silent) {\n logger = new SilentLogger()\n } else {\n let level: LogLevelValue | undefined\n if (isDefined(config.logLevel)) {\n const parsed = LogLevel[config.logLevel.toLowerCase() as keyof typeof LogLevel]\n if (isDefined(parsed)) level = parsed\n }\n logger = new ConsoleLogger(level)\n }\n Base.defaultLogger = logger\n return logger\n}\n","import type { UsageMeta } from '@xyo-network/xl1-sdk'\nimport { isUsageMeta } from '@xyo-network/xl1-sdk'\nimport type { Options } from 'yargs'\nimport { globalRegistry } from 'zod'\n\nconst usageMetaToOptions = (meta: UsageMeta): Options => {\n return meta\n}\n\nexport const optionsFromGlobalZodRegistry = (): Record<string, Options> => {\n const opts: Record<string, Options> = {}\n for (const schema of Object.values(globalRegistry._map)) {\n if (isUsageMeta(schema)) {\n if (schema.hidden) continue // skip hidden options\n opts[schema.title] = usageMetaToOptions(schema)\n }\n }\n return opts\n}\n","import { isDefined, isNull } from '@xylabs/sdk-js'\nimport { cosmiconfigSync } from 'cosmiconfig'\n\n/**\n * The name of the configuration file to search for.\n */\nconst configName = 'xyo'\n\n/**\n * The name of the section within the configuration file to parse.\n */\nconst configSection = 'xl1' // Default section in the config file\n\n/**\n * Attempts to parse the configuration from a file using cosmiconfig.\n * @returns The parsed configuration object if found and valid, otherwise undefined.\n */\nexport const tryParseConfig = (): Record<string, unknown> => {\n const explorer = cosmiconfigSync(\n configName,\n /* {\n searchPlaces: [\n 'package.json', // Looks under `xyo` key in package.json\n '.xyorc.json', // Supports common dotfile format\n 'xyo.config.json', // Supports custom-named config file\n ],\n loaders: {\n '.json': defaultLoaders['.json'],\n 'noExt': defaultLoaders['.json'],\n },\n }, */\n )\n const result = explorer.search()\n if (!isNull(result)) {\n const section = result?.config?.[configSection]\n if (isDefined(section) && typeof section === 'object') {\n return section\n }\n }\n return {}\n}\n","import net from 'node:net'\n\nexport const waitForHostPort = (host: string, port: number): Promise<void> => {\n return new Promise((resolve) => {\n const tryConnect = () => {\n const socket = new net.Socket()\n\n socket\n .setTimeout(1000)\n .once('error', () => {\n socket.destroy()\n setTimeout(tryConnect, 500) // retry after 500ms\n })\n .once('timeout', () => {\n socket.destroy()\n setTimeout(tryConnect, 500)\n })\n .connect(port, host, () => {\n socket.end()\n resolve()\n })\n }\n\n tryConnect()\n })\n}\n","import { start } from './start.ts'\n\nstart().catch((err) => {\n // If we're in development mode, log the stack trace to the console\n if (process.env.NODE_ENV === 'development') console.error('An error occurred during startup:', err)\n // eslint-disable-next-line unicorn/no-process-exit\n process.exit(1)\n})\n"],"mappings":"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","names":["config","deepMerge","isDefined","runApi","Orchestrator","runProducer","ConfigZod","yargs","hideBin","ZodError","getServer","runBridge","context","getServer","getServer","runMempool","context","getServer","getServer","runRewardRedemptionApi","context","getServer","XL1LogoColorizedAscii","Base","ConsoleLogger","isDefined","LogLevel","SilentLogger","initLogger","config","logger","silent","SilentLogger","level","isDefined","logLevel","parsed","LogLevel","toLowerCase","ConsoleLogger","Base","defaultLogger","isUsageMeta","globalRegistry","usageMetaToOptions","meta","optionsFromGlobalZodRegistry","opts","schema","Object","values","globalRegistry","_map","isUsageMeta","hidden","title","isDefined","isNull","cosmiconfigSync","configName","configSection","tryParseConfig","explorer","cosmiconfigSync","result","search","isNull","section","config","isDefined","net","waitForHostPort","host","port","Promise","resolve","tryConnect","socket","net","Socket","setTimeout","once","destroy","connect","end","configuration","version","isDefined","__VERSION__","getContextFromConfig","logger","initLogger","orchestrator","Orchestrator","create","process","on","log","stop","exit","err","error","runCLI","y","yargs","hideBin","argv","usage","XL1LogoColorizedAscii","parserConfiguration","env","scriptName","middleware","parsedConfigFile","tryParseConfig","parsedConfigArgs","mergedConfig","deepMerge","ConfigZod","parse","ZodError","console","message","Error","options","optionsFromGlobalZodRegistry","wrap","terminalWidth","command","context","runApi","config","singletons","runBridge","runMempool","runProducer","runRewardRedemptionApi","mempool","enabled","waitForHostPort","host","port","api","help","alias","start","config","quiet","runCLI","start","catch","err","process","env","NODE_ENV","console","error","exit"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/xl1-cli-lib",
3
- "version": "1.18.0",
3
+ "version": "1.18.2",
4
4
  "description": "XYO Layer One CLI Library",
5
5
  "homepage": "https://xylabs.com",
6
6
  "bugs": {
@@ -43,45 +43,46 @@
43
43
  "start": "node ./dist/node/xl1.mjs"
44
44
  },
45
45
  "dependencies": {
46
- "@xylabs/sdk-js": "~5.0.51",
47
- "@xyo-network/chain-api": "~1.18.0",
48
- "@xyo-network/chain-bridge": "~1.18.0",
49
- "@xyo-network/chain-mempool": "~1.18.0",
50
- "@xyo-network/chain-orchestration": "~1.18.0",
51
- "@xyo-network/chain-producer": "~1.18.0",
52
- "@xyo-network/chain-reward-redemption": "~1.18.0",
53
- "@xyo-network/xl1-protocol-sdk": "~1.18.0",
46
+ "@xylabs/sdk-js": "~5.0.64",
47
+ "@xyo-network/chain-api": "~1.18.2",
48
+ "@xyo-network/chain-bridge": "~1.18.2",
49
+ "@xyo-network/chain-mempool": "~1.18.2",
50
+ "@xyo-network/chain-orchestration": "~1.18.2",
51
+ "@xyo-network/chain-producer": "~1.18.2",
52
+ "@xyo-network/chain-reward-redemption": "~1.18.2",
53
+ "@xyo-network/xl1-sdk": "~1.19.4",
54
54
  "cosmiconfig": "~9.0.0",
55
55
  "dotenv": "~17.2.3",
56
- "yargs": "~18.0.0",
57
- "zod": "~4.1.13"
56
+ "yargs": "~18.0.0"
58
57
  },
59
58
  "devDependencies": {
60
- "@xylabs/ts-scripts-yarn3": "~7.2.32",
61
- "@xylabs/tsconfig": "~7.2.32",
62
- "@xylabs/vitest-extended": "~5.0.51",
63
- "@xyo-network/account-model": "~5.2.17",
64
- "@xyo-network/archivist-lmdb": "~5.2.17",
65
- "@xyo-network/archivist-mongodb": "~5.2.17",
66
- "@xyo-network/chain-services": "~1.18.0",
67
- "@xyo-network/chain-test": "~1.18.0",
68
- "@xyo-network/wallet": "~5.2.17",
69
- "@xyo-network/wallet-model": "~5.2.17",
70
- "@xyo-network/xl1-protocol": "~1.14.17",
71
- "@xyo-network/xl1-rpc": "~1.18.0",
72
- "@xyo-network/xl1-validation": "~1.18.0",
59
+ "@xylabs/ts-scripts-yarn3": "~7.3.2",
60
+ "@xylabs/tsconfig": "~7.3.2",
61
+ "@xylabs/vitest-extended": "~5.0.64",
62
+ "@xyo-network/account-model": "~5.2.25",
63
+ "@xyo-network/archivist-lmdb": "~5.2.25",
64
+ "@xyo-network/archivist-mongodb": "~5.2.25",
65
+ "@xyo-network/chain-ethereum": "~1.18.2",
66
+ "@xyo-network/chain-services": "~1.18.2",
67
+ "@xyo-network/chain-test": "~1.18.2",
68
+ "@xyo-network/typechain": "~4.1.1",
69
+ "@xyo-network/wallet": "~5.2.25",
70
+ "@xyo-network/wallet-model": "~5.2.25",
71
+ "@xyo-network/xl1-sdk": "~1.19.4",
73
72
  "eslint": "^9.39.2",
74
73
  "ethers": "^6.16.0",
75
- "lmdb": "~3.4.4",
74
+ "lmdb": "~3.5.0",
76
75
  "nodemon": "~3.1.11",
77
76
  "rimraf": "~6.1.2",
78
77
  "tslib": "~2.8.1",
79
78
  "typescript": "~5.9.3",
80
- "vitest": "~4.0.15",
81
- "vitest-mock-extended": "~3.1.0"
79
+ "vitest": "~4.0.18",
80
+ "vitest-mock-extended": "~3.1.0",
81
+ "zod": "~4.3.6"
82
82
  },
83
83
  "peerDependencies": {
84
- "lmdb": "^3.4.3"
84
+ "lmdb": "^3.4.3",
85
+ "zod": "^4"
85
86
  },
86
87
  "engines": {
87
88
  "node": ">=22.3 <23"
@@ -90,4 +91,4 @@
90
91
  "publishConfig": {
91
92
  "access": "public"
92
93
  }
93
- }
94
+ }
@@ -1,6 +1,6 @@
1
1
  import type { Logger } from '@xylabs/sdk-js'
2
2
  import { getServer } from '@xyo-network/chain-bridge'
3
- import type { Config } from '@xyo-network/xl1-protocol-sdk'
3
+ import type { Config } from '@xyo-network/xl1-sdk'
4
4
 
5
5
  interface RunBridgeContext {
6
6
  config: Config
@@ -1,4 +1,3 @@
1
- export * from './api/index.ts'
2
1
  export * from './bridge/index.ts'
3
2
  export * from './mempool/index.ts'
4
3
  export * from './rewardRedemption/index.ts'
@@ -1,6 +1,6 @@
1
1
  import type { Logger } from '@xylabs/sdk-js'
2
2
  import { getServer } from '@xyo-network/chain-mempool'
3
- import type { Config } from '@xyo-network/xl1-protocol-sdk'
3
+ import type { Config } from '@xyo-network/xl1-sdk'
4
4
 
5
5
  interface RunMempoolContext {
6
6
  config: Config
@@ -1,6 +1,6 @@
1
1
  import type { Logger } from '@xylabs/sdk-js'
2
2
  import { getServer } from '@xyo-network/chain-reward-redemption'
3
- import type { Config } from '@xyo-network/xl1-protocol-sdk'
3
+ import type { Config } from '@xyo-network/xl1-sdk'
4
4
 
5
5
  interface RunRewardRedemptionApiContext {
6
6
  config: Config
@@ -1,19 +1,18 @@
1
- import type { Logger } from '@xylabs/sdk-js'
2
1
  import type { AccountInstance } from '@xyo-network/account-model'
3
2
  import type {
4
3
  OrchestratorInstance,
5
4
  ValidatorActorParams,
6
5
  } from '@xyo-network/chain-orchestration'
7
6
  import { ValidatorActor } from '@xyo-network/chain-orchestration'
8
- import type { Config, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-protocol-sdk'
7
+ import type {
8
+ CachingBaseContext, Config, ProviderFactoryLocatorInstance,
9
+ } from '@xyo-network/xl1-sdk'
9
10
 
10
- interface RunValidatorContext {
11
+ interface RunValidatorContext extends CachingBaseContext {
11
12
  account: AccountInstance
12
13
  config: Config
13
14
  locator: ProviderFactoryLocatorInstance
14
- logger: Logger
15
15
  orchestrator: OrchestratorInstance
16
- singletons: {}
17
16
  }
18
17
 
19
18
  export const runValidator = async (context: RunValidatorContext) => {
package/src/initLogger.ts CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  ConsoleLogger, isDefined,
5
5
  LogLevel, SilentLogger,
6
6
  } from '@xylabs/sdk-js'
7
- import type { Config } from '@xyo-network/xl1-protocol-sdk'
7
+ import type { Config } from '@xyo-network/xl1-sdk'
8
8
 
9
9
  export const initLogger = (config: Config): Logger => {
10
10
  let logger: Logger
@@ -1,5 +1,5 @@
1
- import type { UsageMeta } from '@xyo-network/xl1-protocol-sdk'
2
- import { isUsageMeta } from '@xyo-network/xl1-protocol-sdk'
1
+ import type { UsageMeta } from '@xyo-network/xl1-sdk'
2
+ import { isUsageMeta } from '@xyo-network/xl1-sdk'
3
3
  import type { Options } from 'yargs'
4
4
  import { globalRegistry } from 'zod'
5
5
 
package/src/runCLI.ts CHANGED
@@ -1,15 +1,16 @@
1
1
  import type { Logger } from '@xylabs/sdk-js'
2
2
  import { deepMerge, isDefined } from '@xylabs/sdk-js'
3
+ import { runApi } from '@xyo-network/chain-api'
3
4
  import { Orchestrator } from '@xyo-network/chain-orchestration'
4
5
  import { runProducer } from '@xyo-network/chain-producer'
5
- import { type Config, ConfigZod } from '@xyo-network/xl1-protocol-sdk'
6
+ import { type Config, ConfigZod } from '@xyo-network/xl1-sdk'
6
7
  import type { Argv } from 'yargs'
7
8
  import yargs from 'yargs'
8
9
  import { hideBin } from 'yargs/helpers'
9
10
  import { ZodError } from 'zod'
10
11
 
11
12
  import {
12
- runApi, runBridge, runMempool, runRewardRedemptionApi,
13
+ runBridge, runMempool, runRewardRedemptionApi,
13
14
  } from './commands/index.ts'
14
15
  import { XL1LogoColorizedAscii } from './images.ts'
15
16
  import { initLogger } from './initLogger.ts'
@@ -101,7 +102,9 @@ $0 <command> [options]`)
101
102
  return yargs
102
103
  .command('$0', 'Run a XL1 API Node', () => {}, async () => {
103
104
  const context = await getContextFromConfig(configuration)
104
- runApi({ ...context, config: configuration })
105
+ await runApi({
106
+ ...context, config: configuration, singletons: {},
107
+ })
105
108
  })
106
109
  })
107
110
  .command('bridge', 'Run a XL1 Bridge Node', (yargs) => {
@@ -122,7 +125,9 @@ $0 <command> [options]`)
122
125
  return yargs
123
126
  .command('$0', 'Run a XL1 Producer Node', () => {}, async () => {
124
127
  const context = await getContextFromConfig(configuration)
125
- await runProducer({ ...context, config: configuration })
128
+ await runProducer({
129
+ ...context, config: configuration, singletons: {},
130
+ })
126
131
  })
127
132
  })
128
133
  .command('reward-redemption-api', 'Run a XL1 Rewards Redemption API Node', (yargs) => {
@@ -141,11 +146,15 @@ $0 <command> [options]`)
141
146
  await waitForHostPort(configuration.mempool.host, configuration.mempool.port)
142
147
  }
143
148
  // Start API but do not block
144
- runApi({ ...context, config: configuration })
149
+ await runApi({
150
+ ...context, config: configuration, singletons: {},
151
+ })
145
152
  // Wait for API to be ready
146
153
  await waitForHostPort(configuration.api.host, configuration.api.port)
147
154
  // Start Producer and block on it
148
- await runProducer({ ...context, config: configuration })
155
+ await runProducer({
156
+ ...context, config: configuration, singletons: {},
157
+ })
149
158
  })
150
159
  .help()
151
160
  .alias('help', 'h')
@@ -1,2 +0,0 @@
1
- export * from './runApi.ts';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA"}
@@ -1,9 +0,0 @@
1
- import type { Logger } from '@xylabs/sdk-js';
2
- import type { Config } from '@xyo-network/xl1-protocol-sdk';
3
- interface RunApiContext {
4
- config: Config;
5
- logger?: Logger;
6
- }
7
- export declare function runApi(context: RunApiContext): void;
8
- export {};
9
- //# sourceMappingURL=runApi.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runApi.d.ts","sourceRoot":"","sources":["../../../../src/commands/api/runApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAE3D,UAAU,aAAa;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,QAE5C"}
@@ -1 +0,0 @@
1
- export * from './runApi.ts'
@@ -1,12 +0,0 @@
1
- import type { Logger } from '@xylabs/sdk-js'
2
- import { getServer } from '@xyo-network/chain-api'
3
- import type { Config } from '@xyo-network/xl1-protocol-sdk'
4
-
5
- interface RunApiContext {
6
- config: Config
7
- logger?: Logger
8
- }
9
-
10
- export function runApi(context: RunApiContext) {
11
- void getServer(context)
12
- }