@layerzerolabs/vm-tooling 0.2.66 → 0.2.68

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 (73) hide show
  1. package/dist/{BAPGOHFS.js → 44LEKNKN.js} +11 -6
  2. package/dist/44LEKNKN.js.map +1 -0
  3. package/dist/{HSCHZUOV.cjs → 5AWAMWCO.cjs} +12 -8
  4. package/dist/5AWAMWCO.cjs.map +1 -0
  5. package/dist/{LTB3CQLO.cjs → 6MRAL2HJ.cjs} +6 -6
  6. package/dist/{LTB3CQLO.cjs.map → 6MRAL2HJ.cjs.map} +1 -1
  7. package/dist/{ERBSYZRH.js → 7SGBC6QF.js} +13 -9
  8. package/dist/7SGBC6QF.js.map +1 -0
  9. package/dist/{S2D5P2IJ.js → EOA5BV6N.js} +8 -7
  10. package/dist/EOA5BV6N.js.map +1 -0
  11. package/dist/{Z7EACAGJ.cjs → GLKB4X7V.cjs} +11 -10
  12. package/dist/GLKB4X7V.cjs.map +1 -0
  13. package/dist/{HVWLZZTF.js → HFI4IGT2.js} +2 -2
  14. package/dist/{HVWLZZTF.js.map → HFI4IGT2.js.map} +1 -1
  15. package/dist/{7FXZ63DE.cjs → O2BYFSSA.cjs} +4 -4
  16. package/dist/{7FXZ63DE.cjs.map → O2BYFSSA.cjs.map} +1 -1
  17. package/dist/{BJD6YP5Q.cjs → QAZW6YGU.cjs} +19 -18
  18. package/dist/QAZW6YGU.cjs.map +1 -0
  19. package/dist/{ECZCFJB4.js → QEKX6RRO.js} +3 -3
  20. package/dist/{ECZCFJB4.js.map → QEKX6RRO.js.map} +1 -1
  21. package/dist/{KPLQJLFW.js → RIXAO4GX.js} +3 -3
  22. package/dist/{KPLQJLFW.js.map → RIXAO4GX.js.map} +1 -1
  23. package/dist/{KDX2NZOU.js → SEXGHPU5.js} +17 -16
  24. package/dist/SEXGHPU5.js.map +1 -0
  25. package/dist/{XFDJEDQJ.cjs → VKQ2FF2R.cjs} +10 -5
  26. package/dist/VKQ2FF2R.cjs.map +1 -0
  27. package/dist/{O2P6E7GR.cjs → VP57EIXW.cjs} +2 -2
  28. package/dist/{O2P6E7GR.cjs.map → VP57EIXW.cjs.map} +1 -1
  29. package/dist/{TGTQ2DSF.js → VRSINTOC.js} +3 -3
  30. package/dist/{TGTQ2DSF.js.map → VRSINTOC.js.map} +1 -1
  31. package/dist/{HXE3NVSB.cjs → WIEZSBV6.cjs} +4 -4
  32. package/dist/{HXE3NVSB.cjs.map → WIEZSBV6.cjs.map} +1 -1
  33. package/dist/cli.cjs +6 -6
  34. package/dist/cli.d.ts.map +1 -1
  35. package/dist/cli.js +5 -5
  36. package/dist/core/index.cjs +4 -4
  37. package/dist/core/index.js +3 -3
  38. package/dist/core/lock.cjs +4 -4
  39. package/dist/core/lock.d.ts.map +1 -1
  40. package/dist/core/lock.js +1 -1
  41. package/dist/core/lock.test.cjs +8 -8
  42. package/dist/core/lock.test.cjs.map +1 -1
  43. package/dist/core/lock.test.js +3 -3
  44. package/dist/core/lock.test.js.map +1 -1
  45. package/dist/core/tool-executor.cjs +4 -4
  46. package/dist/core/tool-executor.d.ts +2 -1
  47. package/dist/core/tool-executor.d.ts.map +1 -1
  48. package/dist/core/tool-executor.js +3 -3
  49. package/dist/display/index.cjs +3 -3
  50. package/dist/display/index.js +1 -1
  51. package/dist/display/version-display.cjs +3 -3
  52. package/dist/display/version-display.js +1 -1
  53. package/dist/github/index.cjs +4 -4
  54. package/dist/github/index.js +3 -3
  55. package/dist/github/matrix.cjs +3 -3
  56. package/dist/github/matrix.js +2 -2
  57. package/dist/index.cjs +12 -12
  58. package/dist/index.js +8 -8
  59. package/dist/test.cjs +3 -3
  60. package/dist/test.js +2 -2
  61. package/dist/utils/docker.cjs +6 -6
  62. package/dist/utils/docker.d.ts +1 -1
  63. package/dist/utils/docker.d.ts.map +1 -1
  64. package/dist/utils/docker.js +1 -1
  65. package/package.json +4 -4
  66. package/dist/BAPGOHFS.js.map +0 -1
  67. package/dist/BJD6YP5Q.cjs.map +0 -1
  68. package/dist/ERBSYZRH.js.map +0 -1
  69. package/dist/HSCHZUOV.cjs.map +0 -1
  70. package/dist/KDX2NZOU.js.map +0 -1
  71. package/dist/S2D5P2IJ.js.map +0 -1
  72. package/dist/XFDJEDQJ.cjs.map +0 -1
  73. package/dist/Z7EACAGJ.cjs.map +0 -1
@@ -2,9 +2,10 @@ import { init_esm_shims, __name } from './6AHA7PAZ.js';
2
2
  import { delay } from 'es-toolkit';
3
3
  import * as console from 'console';
4
4
  import { rmSync } from 'fs';
5
- import { mkdir, open, constants } from 'fs/promises';
5
+ import { mkdir, open, constants, stat } from 'fs/promises';
6
6
  import { homedir } from 'os';
7
7
  import { join } from 'path';
8
+ import { env } from 'process';
8
9
 
9
10
  // src/core/lock.ts
10
11
  init_esm_shims();
@@ -25,7 +26,7 @@ var lock = /* @__PURE__ */ __name(async (key, run, options = {}) => {
25
26
  ...options
26
27
  };
27
28
  const path = buildLockFilePath(key);
28
- const packageName = process.env.npm_package_name;
29
+ const packageName = env.npm_package_name;
29
30
  const info = [
30
31
  ...packageName ? [
31
32
  "for",
@@ -34,7 +35,6 @@ var lock = /* @__PURE__ */ __name(async (key, run, options = {}) => {
34
35
  "at",
35
36
  path
36
37
  ].join(" ");
37
- const time = Date.now();
38
38
  const unlock = /* @__PURE__ */ __name(() => rmSync(path, {
39
39
  force: true
40
40
  }), "unlock");
@@ -50,7 +50,12 @@ var lock = /* @__PURE__ */ __name(async (key, run, options = {}) => {
50
50
  } catch (error) {
51
51
  lockError = error;
52
52
  }
53
- if (Date.now() - time > timeout) {
53
+ let time;
54
+ try {
55
+ time = (await stat(path)).birthtime;
56
+ } catch (_error) {
57
+ }
58
+ if (time && Date.now() - time.getTime() > timeout) {
54
59
  unlock();
55
60
  throw new Error(`Timeout waiting for lock file ${info}: ${lockError.message}`);
56
61
  }
@@ -76,5 +81,5 @@ var lockMany = /* @__PURE__ */ __name(async (keys, run) => (
76
81
  ), "lockMany");
77
82
 
78
83
  export { buildLockFilePath, lock, lockMany };
79
- //# sourceMappingURL=BAPGOHFS.js.map
80
- //# sourceMappingURL=BAPGOHFS.js.map
84
+ //# sourceMappingURL=44LEKNKN.js.map
85
+ //# sourceMappingURL=44LEKNKN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/lock.ts"],"names":["directory","join","homedir","defaultOptions","interval","timeout","signals","buildLockFilePath","key","lock","run","options","path","packageName","env","npm_package_name","info","unlock","rmSync","force","lockError","mkdir","recursive","handle","open","constants","O_CREAT","O_EXCL","close","error","time","stat","birthtime","_error","Date","now","getTime","Error","message","delay","signal","process","addListener","console","log","removeListener","lockMany","keys","sort","reduce"],"mappings":"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","file":"44LEKNKN.js","sourcesContent":["import { delay } from 'es-toolkit';\nimport * as console from 'node:console';\nimport { rmSync } from 'node:fs';\nimport { stat } from 'node:fs/promises';\nimport { constants, mkdir, open } from 'node:fs/promises';\nimport { homedir } from 'node:os';\nimport { join } from 'node:path';\nimport { env } from 'node:process';\n\ninterface LockOptions {\n interval?: number;\n timeout?: number;\n}\n\nconst directory = join(homedir(), '.cache/vm-tooling/locks');\nconst defaultOptions = { interval: 1000, timeout: 15 * 60_000 };\nconst signals = ['SIGINT', 'SIGTERM', 'SIGHUP'] as const;\n\nexport const buildLockFilePath = (key: string): string => join(directory, key);\n\nexport const lock = async <T>(key: string, run: () => Promise<T>, options: LockOptions = {}) => {\n const { interval, timeout } = { ...defaultOptions, ...options };\n\n const path = buildLockFilePath(key);\n const packageName = env.npm_package_name;\n const info = [...(packageName ? ['for', packageName] : []), 'at', path].join(' ');\n\n const unlock = () => rmSync(path, { force: true });\n\n while (true) {\n let lockError;\n\n try {\n await mkdir(directory, { recursive: true });\n const handle = await open(path, constants.O_CREAT | constants.O_EXCL);\n await handle.close();\n break;\n } catch (error: unknown) {\n lockError = error as Error;\n }\n\n let time: Date | undefined;\n\n try {\n time = (await stat(path)).birthtime;\n } catch (_error) {\n // \"Crush\" errors as the lock is unlocked between the `open` and `stat`.\n }\n\n if (time && Date.now() - time.getTime() > timeout) {\n // If the timeout is reached, we assume that the previous run is\n // in a bad state and recover automatically by removing the lock file\n // even when it is actually running still.\n unlock();\n throw new Error(`Timeout waiting for lock file ${info}: ${lockError.message}`);\n }\n\n await delay(interval);\n }\n\n for (const signal of signals) {\n process.addListener(signal, unlock);\n }\n\n console.log(`🔒 Acquired lock ${info}`);\n\n try {\n return await run();\n } finally {\n for (const signal of signals) {\n process.removeListener(signal, unlock);\n }\n\n unlock();\n\n console.log(`🔓 Released lock ${info}`);\n }\n};\n\nexport const lockMany = async <T>(keys: string[], run: () => Promise<T>): Promise<T> =>\n // Sort keys to avoid deadlocks.\n keys.sort().reduce((run, key) => () => lock(key, run), run)();\n"]}
@@ -4,6 +4,7 @@ var _7PWQZJWC_cjs = require('./7PWQZJWC.cjs');
4
4
  var _5GPMTH2I_cjs = require('./5GPMTH2I.cjs');
5
5
  var _24WEKBY3_cjs = require('./24WEKBY3.cjs');
6
6
  var path = require('path');
7
+ var process = require('process');
7
8
 
8
9
  // src/utils/docker.ts
9
10
  _24WEKBY3_cjs.init_cjs_shims();
@@ -31,9 +32,9 @@ var getImageTag = /* @__PURE__ */ _24WEKBY3_cjs.__name(({ versions, patch }, sep
31
32
  patch
32
33
  ] : []
33
34
  ].join(separator), "getImageTag");
34
- var getVolumeName = /* @__PURE__ */ _24WEKBY3_cjs.__name((volume) => {
35
- if (volume.type === "host") {
36
- return `${volume.hostPath}:${volume.containerPath}`;
35
+ var qualifyVolumeName = /* @__PURE__ */ _24WEKBY3_cjs.__name((volume) => {
36
+ if (volume.type !== "isolate") {
37
+ return volume;
37
38
  }
38
39
  const components = [
39
40
  "lz-tooling-cache",
@@ -46,12 +47,15 @@ var getVolumeName = /* @__PURE__ */ _24WEKBY3_cjs.__name((volume) => {
46
47
  }
47
48
  components.push(path.basename(packageName));
48
49
  }
49
- return `${components.join("-")}:${volume.containerPath}`;
50
- }, "getVolumeName");
50
+ return {
51
+ ...volume,
52
+ name: components.join("-")
53
+ };
54
+ }, "qualifyVolumeName");
51
55
 
52
56
  exports.getImageTag = getImageTag;
53
57
  exports.getImageUri = getImageUri;
54
58
  exports.getImageUriForTool = getImageUriForTool;
55
- exports.getVolumeName = getVolumeName;
56
- //# sourceMappingURL=HSCHZUOV.cjs.map
57
- //# sourceMappingURL=HSCHZUOV.cjs.map
59
+ exports.qualifyVolumeName = qualifyVolumeName;
60
+ //# sourceMappingURL=5AWAMWCO.cjs.map
61
+ //# sourceMappingURL=5AWAMWCO.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/docker.ts"],"names":["init_cjs_shims","getImageUriForTool","__name","context","toolName","version","separator","image","versionCombinations","flatMap","combination","imageId","images","findToolVersionsForCombination","Error","getImageUri","join","getRegistry","getImageDirectory","getImageName","name","getImageTag","versions","patch","Object","entries","sort","flat","qualifyVolumeName","volume","type","components","shared","packageName","env","npm_package_name","push","basename"],"mappings":";;;;;;;;;AAAAA,4BAAA,EAAA;AAQO,IAAMC,qCAAqBC,oBAAA,CAAA,OAC9BC,OAAAA,EACAC,QAAAA,EACAC,OAAAA,EACAC,YAAuB,GAAA,KAAG;AAE1B,EAAA,MAAM,CAACC,KAAAA,CAAAA,GAASJ,QAAQK,mBAAAA,CAAoBC,OAAAA,CAAQ,CAACC,WAAAA,KAAAA;AACjD,IAAA,MAAMC,OAAAA,GAAUD,WAAAA,CAAYE,MAAAA,CAAOR,QAAAA,CAAAA;AAEnC,IAAA,IAAI,CAACO,OAAAA,EAAS;AACV,MAAA,OAAO,EAAA;AACX,IAAA;AAEA,IAAA,MAAMJ,MAAAA,GAAQJ,OAAAA,CAAQS,MAAAA,CAAOD,OAAAA,CAAAA;AAE7B,IAAA,OAAOJ,UAASM,4CAAAA,CAA+BV,OAAAA,EAASO,WAAAA,CAAAA,CAAaN,QAAAA,MAAcC,OAAAA,GAC7E;AAACE,MAAAA;QACD,EAAA;EACV,CAAA,CAAA;AAEA,EAAA,IAAI,CAACA,KAAAA,EAAO;AACR,IAAA,MAAM,IAAIO,KAAAA,CACN,CAAA,sCAAA,EAAyCV,QAAAA,CAAAA,cAAAA,EAAyBC,OAAAA,CAAAA,CAAS,CAAA;AAEnF,EAAA;AAEA,EAAA,OAAOU,WAAAA,CAAYR,OAAOD,SAAAA,CAAAA;AAC9B,CAAA,EA3BkC,oBAAA;AA6B3B,IAAMS,WAAAA,+CAAqBR,KAAAA,EAAcD,SAAAA,GAAuB,QACnEU,SAAAA,CACI,MAAMC,yBAAAA,EAAAA,EACN,MAAMC,+BAAAA,IACN,CAAA,EAAGC,0BAAAA,CAAaZ,KAAAA,CAAMa,IAAI,CAAA,CAAA,CAAA,EAAKC,YAAYd,KAAAA,EAAOD,SAAAA,CAAAA,CAAAA,CAAY,CAAA,EAJ3C,aAAA;AAOpB,IAAMe,8BAAcnB,oBAAA,CAAA,CAAC,EAAEoB,UAAUC,KAAAA,EAAK,EAAWjB,YAAuB,GAAA,KAC3E;AAAIkB,EAAAA,GAAAA,MAAAA,CAAOC,OAAAA,CAAQH,QAAAA,CAAAA,CAAUI,IAAAA,GAAOC,IAAAA,EAAI;KAAQJ,KAAAA,GAAQ;AAAC,IAAA,OAAA;AAASA,IAAAA;MAAS;AAAKP,CAAAA,CAAAA,IAAAA,CAAKV,SAAAA,CAAAA,EAD9D,aAAA;AAGpB,IAAMsB,iBAAAA,yCAAqBC,MAAAA,KAAAA;AAC9B,EAAA,IAAIA,MAAAA,CAAOC,SAAS,SAAA,EAAW;AAC3B,IAAA,OAAOD,MAAAA;AACX,EAAA;AAEA,EAAA,MAAME,UAAAA,GAAa;AAAC,IAAA,kBAAA;IAAoBF,MAAAA,CAAOT;;AAE/C,EAAA,IAAI,CAACS,OAAOG,MAAAA,EAAQ;AAEhB,IAAA,MAAMC,cAAcC,WAAAA,CAAIC,gBAAAA;AAExB,IAAA,IAAI,CAACF,WAAAA,EAAa;AACd,MAAA,MAAM,IAAInB,MAAM,mDAAA,CAAA;AACpB,IAAA;AAEAiB,IAAAA,UAAAA,CAAWK,IAAAA,CAAKC,aAAAA,CAASJ,WAAAA,CAAAA,CAAAA;AAC7B,EAAA;AAEA,EAAA,OAAO;IAAE,GAAGJ,MAAAA;IAAQT,IAAAA,EAAMW,UAAAA,CAAWf,KAAK,GAAA;AAAK,GAAA;AACnD,CAAA,EAnBiC,mBAAA","file":"5AWAMWCO.cjs","sourcesContent":["import { basename, join } from 'node:path';\nimport { env } from 'node:process';\n\nimport type { Image, VolumeMapping } from '../config';\nimport { getImageDirectory, getRegistry } from '../config';\nimport type { ChainContext } from '../context';\nimport { findToolVersionsForCombination, getImageName } from './finder';\n\nexport const getImageUriForTool = async <TImageId extends string>(\n context: ChainContext<TImageId>,\n toolName: string,\n version: string,\n separator: '_' | '-' = '_',\n): Promise<string> => {\n const [image] = context.versionCombinations.flatMap((combination) => {\n const imageId = combination.images[toolName];\n\n if (!imageId) {\n return [];\n }\n\n const image = context.images[imageId];\n\n return image && findToolVersionsForCombination(context, combination)[toolName] === version\n ? [image]\n : [];\n });\n\n if (!image) {\n throw new Error(\n `No version combination found for tool ${toolName} with version ${version}`,\n );\n }\n\n return getImageUri(image, separator);\n};\n\nexport const getImageUri = async (image: Image, separator: '_' | '-' = '_'): Promise<string> =>\n join(\n await getRegistry(),\n await getImageDirectory(),\n `${getImageName(image.name)}:${getImageTag(image, separator)}`,\n );\n\nexport const getImageTag = ({ versions, patch }: Image, separator: '_' | '-' = '_'): string =>\n [...Object.entries(versions).sort().flat(), ...(patch ? ['patch', patch] : [])].join(separator);\n\nexport const qualifyVolumeName = (volume: VolumeMapping): VolumeMapping => {\n if (volume.type !== 'isolate') {\n return volume;\n }\n\n const components = ['lz-tooling-cache', volume.name];\n\n if (!volume.shared) {\n // This is the package name where the `lz-tool` command is executed.\n const packageName = env.npm_package_name;\n\n if (!packageName) {\n throw new Error('npm_package_name environment variable not defined');\n }\n\n components.push(basename(packageName));\n }\n\n return { ...volume, name: components.join('-') };\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var HSCHZUOV_cjs = require('./HSCHZUOV.cjs');
3
+ var _5AWAMWCO_cjs = require('./5AWAMWCO.cjs');
4
4
  var _24WEKBY3_cjs = require('./24WEKBY3.cjs');
5
5
  var child_process = require('child_process');
6
6
  var util = require('util');
@@ -29,7 +29,7 @@ var testTools = /* @__PURE__ */ _24WEKBY3_cjs.__name(({ describe, expect, it, be
29
29
  it(`has an image ID of ${name}`, () => {
30
30
  expect([
31
31
  image.name,
32
- HSCHZUOV_cjs.getImageTag(image, "-")
32
+ _5AWAMWCO_cjs.getImageTag(image, "-")
33
33
  ].join(":")).toBe(name);
34
34
  });
35
35
  }
@@ -37,10 +37,10 @@ var testTools = /* @__PURE__ */ _24WEKBY3_cjs.__name(({ describe, expect, it, be
37
37
  describe("Tool versions", () => {
38
38
  for (const literalImage of Object.values(images)) {
39
39
  const image = literalImage;
40
- describe(HSCHZUOV_cjs.getImageTag(image), () => {
40
+ describe(_5AWAMWCO_cjs.getImageTag(image), () => {
41
41
  let imageUri;
42
42
  beforeAll(async () => {
43
- imageUri = await HSCHZUOV_cjs.getImageUri(image, "_");
43
+ imageUri = await _5AWAMWCO_cjs.getImageUri(image, "_");
44
44
  await ensureDockerImageExists(imageUri);
45
45
  }, PULL_TIMEOUT);
46
46
  for (const [tool, expectedVersion] of Object.entries(image.versions)) {
@@ -64,5 +64,5 @@ var testTools = /* @__PURE__ */ _24WEKBY3_cjs.__name(({ describe, expect, it, be
64
64
  }, "testTools");
65
65
 
66
66
  exports.testTools = testTools;
67
- //# sourceMappingURL=LTB3CQLO.cjs.map
68
- //# sourceMappingURL=LTB3CQLO.cjs.map
67
+ //# sourceMappingURL=6MRAL2HJ.cjs.map
68
+ //# sourceMappingURL=6MRAL2HJ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/test.ts"],"names":["init_cjs_shims","COMMAND_TIMEOUT","PULL_TIMEOUT","VERSION_TEST_TIMEOUT","runCommand","__name","command","args","timeout","promisify","execFile","killSignal","stdout","trim","ensureDockerImageExists","imageUri","testTools","describe","expect","it","beforeAll","images","_versionCombinations","versionCommands","name","image","Object","entries","getImageTag","join","toBe","literalImage","values","getImageUri","tool","expectedVersion","versions","Array","Error","version","toContain"],"mappings":"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","file":"LTB3CQLO.cjs","sourcesContent":["import { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\nimport type * as vitest from 'vitest';\n\nimport type { VersionCombination } from './config';\nimport { type Image } from './config';\nimport { getImageTag, getImageUri } from './utils/docker';\n\nconst COMMAND_TIMEOUT = 5 * 60_000;\nconst PULL_TIMEOUT = 10 * 60_000;\nconst VERSION_TEST_TIMEOUT = 15 * 60_000;\n\nconst runCommand = async (\n command: string,\n args: string[],\n timeout = COMMAND_TIMEOUT,\n): Promise<string> =>\n (\n await promisify(execFile)(command, args, {\n timeout,\n killSignal: 'SIGKILL', // Force kill if timeout\n })\n ).stdout.trim();\n\n/** Run a no-op command in the image to trigger a pull if it's not available locally. */\nconst ensureDockerImageExists = async (imageUri: string): Promise<void> => {\n await runCommand('docker', ['run', '--rm', '--entrypoint', 'true', imageUri], PULL_TIMEOUT);\n};\n\nexport const testTools = (\n { describe, expect, it, beforeAll }: typeof vitest,\n images: Record<string, Image>,\n _versionCombinations: VersionCombination<string>[],\n versionCommands: Record<string, string[]>,\n): void => {\n describe('Docker image IDs', () => {\n for (const [name, image] of Object.entries(images)) {\n it(`has an image ID of ${name}`, () => {\n expect([image.name, getImageTag(image, '-')].join(':')).toBe(name);\n });\n }\n });\n\n describe('Tool versions', () => {\n for (const literalImage of Object.values(images)) {\n const image: Image = literalImage;\n\n describe(getImageTag(image), () => {\n let imageUri: string;\n\n beforeAll(async () => {\n imageUri = await getImageUri(image, '_');\n await ensureDockerImageExists(imageUri);\n }, PULL_TIMEOUT);\n\n for (const [tool, expectedVersion] of Object.entries(image.versions)) {\n it(\n `should have ${tool} of version ${expectedVersion}`,\n async () => {\n if (!(versionCommands[tool] instanceof Array)) {\n throw new Error('Missing version command');\n }\n\n const version = await runCommand('docker', [\n 'run',\n '--rm',\n '--privileged',\n imageUri,\n ...versionCommands[tool],\n ]);\n\n expect(version).toContain(expectedVersion);\n },\n VERSION_TEST_TIMEOUT,\n );\n }\n });\n }\n });\n};\n"]}
1
+ {"version":3,"sources":["../src/test.ts"],"names":["init_cjs_shims","COMMAND_TIMEOUT","PULL_TIMEOUT","VERSION_TEST_TIMEOUT","runCommand","__name","command","args","timeout","promisify","execFile","killSignal","stdout","trim","ensureDockerImageExists","imageUri","testTools","describe","expect","it","beforeAll","images","_versionCombinations","versionCommands","name","image","Object","entries","getImageTag","join","toBe","literalImage","values","getImageUri","tool","expectedVersion","versions","Array","Error","version","toContain"],"mappings":"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","file":"6MRAL2HJ.cjs","sourcesContent":["import { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\nimport type * as vitest from 'vitest';\n\nimport type { VersionCombination } from './config';\nimport { type Image } from './config';\nimport { getImageTag, getImageUri } from './utils/docker';\n\nconst COMMAND_TIMEOUT = 5 * 60_000;\nconst PULL_TIMEOUT = 10 * 60_000;\nconst VERSION_TEST_TIMEOUT = 15 * 60_000;\n\nconst runCommand = async (\n command: string,\n args: string[],\n timeout = COMMAND_TIMEOUT,\n): Promise<string> =>\n (\n await promisify(execFile)(command, args, {\n timeout,\n killSignal: 'SIGKILL', // Force kill if timeout\n })\n ).stdout.trim();\n\n/** Run a no-op command in the image to trigger a pull if it's not available locally. */\nconst ensureDockerImageExists = async (imageUri: string): Promise<void> => {\n await runCommand('docker', ['run', '--rm', '--entrypoint', 'true', imageUri], PULL_TIMEOUT);\n};\n\nexport const testTools = (\n { describe, expect, it, beforeAll }: typeof vitest,\n images: Record<string, Image>,\n _versionCombinations: VersionCombination<string>[],\n versionCommands: Record<string, string[]>,\n): void => {\n describe('Docker image IDs', () => {\n for (const [name, image] of Object.entries(images)) {\n it(`has an image ID of ${name}`, () => {\n expect([image.name, getImageTag(image, '-')].join(':')).toBe(name);\n });\n }\n });\n\n describe('Tool versions', () => {\n for (const literalImage of Object.values(images)) {\n const image: Image = literalImage;\n\n describe(getImageTag(image), () => {\n let imageUri: string;\n\n beforeAll(async () => {\n imageUri = await getImageUri(image, '_');\n await ensureDockerImageExists(imageUri);\n }, PULL_TIMEOUT);\n\n for (const [tool, expectedVersion] of Object.entries(image.versions)) {\n it(\n `should have ${tool} of version ${expectedVersion}`,\n async () => {\n if (!(versionCommands[tool] instanceof Array)) {\n throw new Error('Missing version command');\n }\n\n const version = await runCommand('docker', [\n 'run',\n '--rm',\n '--privileged',\n imageUri,\n ...versionCommands[tool],\n ]);\n\n expect(version).toContain(expectedVersion);\n },\n VERSION_TEST_TIMEOUT,\n );\n }\n });\n }\n });\n};\n"]}
@@ -2,6 +2,7 @@ import { getRegistry, getImageDirectory } from './X4R3PN6F.js';
2
2
  import { findToolVersionsForCombination, getImageName } from './KWRJPB5T.js';
3
3
  import { init_esm_shims, __name } from './6AHA7PAZ.js';
4
4
  import { join, basename } from 'path';
5
+ import { env } from 'process';
5
6
 
6
7
  // src/utils/docker.ts
7
8
  init_esm_shims();
@@ -29,24 +30,27 @@ var getImageTag = /* @__PURE__ */ __name(({ versions, patch }, separator = "_")
29
30
  patch
30
31
  ] : []
31
32
  ].join(separator), "getImageTag");
32
- var getVolumeName = /* @__PURE__ */ __name((volume) => {
33
- if (volume.type === "host") {
34
- return `${volume.hostPath}:${volume.containerPath}`;
33
+ var qualifyVolumeName = /* @__PURE__ */ __name((volume) => {
34
+ if (volume.type !== "isolate") {
35
+ return volume;
35
36
  }
36
37
  const components = [
37
38
  "lz-tooling-cache",
38
39
  volume.name
39
40
  ];
40
41
  if (!volume.shared) {
41
- const packageName = process.env.npm_package_name;
42
+ const packageName = env.npm_package_name;
42
43
  if (!packageName) {
43
44
  throw new Error("npm_package_name environment variable not defined");
44
45
  }
45
46
  components.push(basename(packageName));
46
47
  }
47
- return `${components.join("-")}:${volume.containerPath}`;
48
- }, "getVolumeName");
48
+ return {
49
+ ...volume,
50
+ name: components.join("-")
51
+ };
52
+ }, "qualifyVolumeName");
49
53
 
50
- export { getImageTag, getImageUri, getImageUriForTool, getVolumeName };
51
- //# sourceMappingURL=ERBSYZRH.js.map
52
- //# sourceMappingURL=ERBSYZRH.js.map
54
+ export { getImageTag, getImageUri, getImageUriForTool, qualifyVolumeName };
55
+ //# sourceMappingURL=7SGBC6QF.js.map
56
+ //# sourceMappingURL=7SGBC6QF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/docker.ts"],"names":["getImageUriForTool","context","toolName","version","separator","image","versionCombinations","flatMap","combination","imageId","images","findToolVersionsForCombination","Error","getImageUri","join","getRegistry","getImageDirectory","getImageName","name","getImageTag","versions","patch","Object","entries","sort","flat","qualifyVolumeName","volume","type","components","shared","packageName","env","npm_package_name","push","basename"],"mappings":";;;;;;;AAAA,cAAA,EAAA;AAQO,IAAMA,qCAAqB,MAAA,CAAA,OAC9BC,OAAAA,EACAC,QAAAA,EACAC,OAAAA,EACAC,YAAuB,GAAA,KAAG;AAE1B,EAAA,MAAM,CAACC,KAAAA,CAAAA,GAASJ,QAAQK,mBAAAA,CAAoBC,OAAAA,CAAQ,CAACC,WAAAA,KAAAA;AACjD,IAAA,MAAMC,OAAAA,GAAUD,WAAAA,CAAYE,MAAAA,CAAOR,QAAAA,CAAAA;AAEnC,IAAA,IAAI,CAACO,OAAAA,EAAS;AACV,MAAA,OAAO,EAAA;AACX,IAAA;AAEA,IAAA,MAAMJ,MAAAA,GAAQJ,OAAAA,CAAQS,MAAAA,CAAOD,OAAAA,CAAAA;AAE7B,IAAA,OAAOJ,UAASM,8BAAAA,CAA+BV,OAAAA,EAASO,WAAAA,CAAAA,CAAaN,QAAAA,MAAcC,OAAAA,GAC7E;AAACE,MAAAA;QACD,EAAA;EACV,CAAA,CAAA;AAEA,EAAA,IAAI,CAACA,KAAAA,EAAO;AACR,IAAA,MAAM,IAAIO,KAAAA,CACN,CAAA,sCAAA,EAAyCV,QAAAA,CAAAA,cAAAA,EAAyBC,OAAAA,CAAAA,CAAS,CAAA;AAEnF,EAAA;AAEA,EAAA,OAAOU,WAAAA,CAAYR,OAAOD,SAAAA,CAAAA;AAC9B,CAAA,EA3BkC,oBAAA;AA6B3B,IAAMS,WAAAA,iCAAqBR,KAAAA,EAAcD,SAAAA,GAAuB,QACnEU,IAAAA,CACI,MAAMC,WAAAA,EAAAA,EACN,MAAMC,iBAAAA,IACN,CAAA,EAAGC,YAAAA,CAAaZ,KAAAA,CAAMa,IAAI,CAAA,CAAA,CAAA,EAAKC,YAAYd,KAAAA,EAAOD,SAAAA,CAAAA,CAAAA,CAAY,CAAA,EAJ3C,aAAA;AAOpB,IAAMe,8BAAc,MAAA,CAAA,CAAC,EAAEC,UAAUC,KAAAA,EAAK,EAAWjB,YAAuB,GAAA,KAC3E;AAAIkB,EAAAA,GAAAA,MAAAA,CAAOC,OAAAA,CAAQH,QAAAA,CAAAA,CAAUI,IAAAA,GAAOC,IAAAA,EAAI;KAAQJ,KAAAA,GAAQ;AAAC,IAAA,OAAA;AAASA,IAAAA;MAAS;AAAKP,CAAAA,CAAAA,IAAAA,CAAKV,SAAAA,CAAAA,EAD9D,aAAA;AAGpB,IAAMsB,iBAAAA,2BAAqBC,MAAAA,KAAAA;AAC9B,EAAA,IAAIA,MAAAA,CAAOC,SAAS,SAAA,EAAW;AAC3B,IAAA,OAAOD,MAAAA;AACX,EAAA;AAEA,EAAA,MAAME,UAAAA,GAAa;AAAC,IAAA,kBAAA;IAAoBF,MAAAA,CAAOT;;AAE/C,EAAA,IAAI,CAACS,OAAOG,MAAAA,EAAQ;AAEhB,IAAA,MAAMC,cAAcC,GAAAA,CAAIC,gBAAAA;AAExB,IAAA,IAAI,CAACF,WAAAA,EAAa;AACd,MAAA,MAAM,IAAInB,MAAM,mDAAA,CAAA;AACpB,IAAA;AAEAiB,IAAAA,UAAAA,CAAWK,IAAAA,CAAKC,QAAAA,CAASJ,WAAAA,CAAAA,CAAAA;AAC7B,EAAA;AAEA,EAAA,OAAO;IAAE,GAAGJ,MAAAA;IAAQT,IAAAA,EAAMW,UAAAA,CAAWf,KAAK,GAAA;AAAK,GAAA;AACnD,CAAA,EAnBiC,mBAAA","file":"7SGBC6QF.js","sourcesContent":["import { basename, join } from 'node:path';\nimport { env } from 'node:process';\n\nimport type { Image, VolumeMapping } from '../config';\nimport { getImageDirectory, getRegistry } from '../config';\nimport type { ChainContext } from '../context';\nimport { findToolVersionsForCombination, getImageName } from './finder';\n\nexport const getImageUriForTool = async <TImageId extends string>(\n context: ChainContext<TImageId>,\n toolName: string,\n version: string,\n separator: '_' | '-' = '_',\n): Promise<string> => {\n const [image] = context.versionCombinations.flatMap((combination) => {\n const imageId = combination.images[toolName];\n\n if (!imageId) {\n return [];\n }\n\n const image = context.images[imageId];\n\n return image && findToolVersionsForCombination(context, combination)[toolName] === version\n ? [image]\n : [];\n });\n\n if (!image) {\n throw new Error(\n `No version combination found for tool ${toolName} with version ${version}`,\n );\n }\n\n return getImageUri(image, separator);\n};\n\nexport const getImageUri = async (image: Image, separator: '_' | '-' = '_'): Promise<string> =>\n join(\n await getRegistry(),\n await getImageDirectory(),\n `${getImageName(image.name)}:${getImageTag(image, separator)}`,\n );\n\nexport const getImageTag = ({ versions, patch }: Image, separator: '_' | '-' = '_'): string =>\n [...Object.entries(versions).sort().flat(), ...(patch ? ['patch', patch] : [])].join(separator);\n\nexport const qualifyVolumeName = (volume: VolumeMapping): VolumeMapping => {\n if (volume.type !== 'isolate') {\n return volume;\n }\n\n const components = ['lz-tooling-cache', volume.name];\n\n if (!volume.shared) {\n // This is the package name where the `lz-tool` command is executed.\n const packageName = env.npm_package_name;\n\n if (!packageName) {\n throw new Error('npm_package_name environment variable not defined');\n }\n\n components.push(basename(packageName));\n }\n\n return { ...volume, name: components.join('-') };\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { displayVersionCombinations, displayToolVersionInfo } from './HVWLZZTF.js';
2
- import { executeToolCommand } from './KDX2NZOU.js';
1
+ import { displayVersionCombinations, displayToolVersionInfo } from './HFI4IGT2.js';
2
+ import { executeToolCommand } from './SEXGHPU5.js';
3
3
  import { volumeMappingSchema } from './X4R3PN6F.js';
4
4
  import { getToolDefaultVersion, getToolSupportedVersions } from './KWRJPB5T.js';
5
5
  import { init_esm_shims, __name } from './6AHA7PAZ.js';
@@ -18,7 +18,7 @@ var createCli = /* @__PURE__ */ __name((context, registerExtraCommands) => {
18
18
  name
19
19
  ]));
20
20
  const parseGlobalOptions = /* @__PURE__ */ __name(async (command) => {
21
- const { cwd, volume, ...options } = command.opts();
21
+ const { cwd, volume, defaultVolumes, ...options } = command.opts();
22
22
  const resolvedCwd = cwd ?? process.cwd();
23
23
  const cliVersions = Object.fromEntries(Object.entries(options).map(([name, version]) => [
24
24
  toolVersionOptions[name],
@@ -33,7 +33,8 @@ var createCli = /* @__PURE__ */ __name((context, registerExtraCommands) => {
33
33
  ...options,
34
34
  cwd: resolvedCwd,
35
35
  volumes: volume,
36
- versions
36
+ versions,
37
+ defaultVolumesEnabled: defaultVolumes
37
38
  };
38
39
  }, "parseGlobalOptions");
39
40
  const program = new Command();
@@ -99,7 +100,7 @@ var createCli = /* @__PURE__ */ __name((context, registerExtraCommands) => {
99
100
  }, []).option("-p, --publish <host_port:container_port>", "Publish a container's port(s) to the host (repeatable)", (value, previous) => [
100
101
  ...previous,
101
102
  value
102
- ], []);
103
+ ], []).option("--no-default-volumes", "Disable default volumes for the tool");
103
104
  for (const tool of tools) {
104
105
  const defaultVersion = getToolDefaultVersion(context, tool.name);
105
106
  const supportedVersions = getToolSupportedVersions(context, tool.name);
@@ -127,5 +128,5 @@ var runCli = /* @__PURE__ */ __name(async (config, registerExtraCommands) => {
127
128
  }, "runCli");
128
129
 
129
130
  export { runCli };
130
- //# sourceMappingURL=S2D5P2IJ.js.map
131
- //# sourceMappingURL=S2D5P2IJ.js.map
131
+ //# sourceMappingURL=EOA5BV6N.js.map
132
+ //# sourceMappingURL=EOA5BV6N.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli.ts"],"names":["createCli","context","registerExtraCommands","tools","toolVersionOptions","Object","fromEntries","map","name","camelCase","parseGlobalOptions","command","cwd","volume","defaultVolumes","options","opts","resolvedCwd","process","cliVersions","entries","version","filter","tool","configVersions","getDefaultVersions","versions","volumes","defaultVolumesEnabled","program","Command","description","enablePositionalOptions","argv","includes","displayVersionCombinations","exit","option","input","Error","path","isAbsolute","fs","existsSync","statSync","isDirectory","variables","valueParts","split","length","value","join","type","hostPath","containerPath","volumeMappingSchema","parse","previous","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","action","toolName","displayToolVersionInfo","isDefault","passThroughOptions","allowUnknownOption","helpOption","argument","args","executeToolCommand","runCli","config","parseAsync","error","console"],"mappings":"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","file":"EOA5BV6N.js","sourcesContent":["import { Command } from 'commander';\nimport { camelCase } from 'es-toolkit';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\n\nimport type { EnvironmentVariable, VolumeMapping } from './config';\nimport { volumeMappingSchema } from './config';\nimport type { ChainContext } from './context';\nimport type { ToolCommandExecutionOptions } from './core';\nimport { executeToolCommand } from './core';\nimport { displayToolVersionInfo, displayVersionCombinations } from './display';\nimport { getToolDefaultVersion, getToolSupportedVersions } from './utils/finder';\n\ninterface GlobalOptions {\n cwd?: string;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n publish?: string[];\n script?: string;\n customEntrypoint?: string;\n defaultVolumes: boolean;\n}\n\ntype RegisterExtraCommands = (\n program: Command,\n parseGlobalOptions: (command: Command) => Promise<ToolCommandExecutionOptions>,\n) => void;\n\nconst createCli = <TImageId extends string>(\n context: ChainContext<TImageId>,\n registerExtraCommands?: RegisterExtraCommands,\n): Command => {\n const { tools } = context;\n const toolVersionOptions = Object.fromEntries(\n tools.map(({ name }) => [`${camelCase(name)}Version`, name]),\n );\n\n const parseGlobalOptions = async (command: Command): Promise<ToolCommandExecutionOptions> => {\n const { cwd, volume, defaultVolumes, ...options } = command.opts<GlobalOptions>();\n const resolvedCwd = cwd ?? process.cwd();\n\n // CLI flags take precedence over project config versions\n const cliVersions = Object.fromEntries(\n Object.entries(options)\n .map(([name, version]) => [toolVersionOptions[name], version])\n .filter(([tool]) => tool),\n );\n\n // Read defaults from project config (e.g., Anchor.toml) if the chain provides a hook\n const configVersions = (await context.getDefaultVersions?.(resolvedCwd)) ?? {};\n const versions = { ...configVersions, ...cliVersions };\n\n return {\n ...options,\n cwd: resolvedCwd,\n volumes: volume,\n versions,\n defaultVolumesEnabled: defaultVolumes,\n };\n };\n\n const program = new Command();\n\n program\n .name('lz-tool')\n .description(\n '🚀 LayerZero VM tooling with intelligent version management\\n' +\n '\\n' +\n 'Usage pattern:\\n' +\n ' lz-tool [global-options] <tool> [tool-args...]\\n' +\n '\\n' +\n 'Examples:\\n' +\n ' lz-tool -e bash sui --help\\n' +\n ' lz-tool --sui-version 1.38.0 sui client\\n' +\n '\\n' +\n 'Note: All lz-tool options must appear BEFORE the tool name.',\n )\n .version('1.0.0')\n .enablePositionalOptions(); // Required for passThroughOptions to work\n\n // Check for --list-versions before parsing to avoid help display\n if (process.argv.includes('--list-versions')) {\n displayVersionCombinations(context);\n process.exit(0);\n }\n\n // Add global options.\n program\n .option('-c, --cwd <path>', 'Current working directory', (input: string) => {\n if (typeof input !== 'string') {\n throw new Error('cwd flag must be a string');\n }\n\n if (!path.isAbsolute(input)) {\n throw new Error('cwd must be an absolute path if provided');\n }\n\n if (!fs.existsSync(input)) {\n throw new Error('cwd does not exist');\n }\n\n if (!fs.statSync(input).isDirectory()) {\n throw new Error('cwd must be a directory');\n }\n\n return input;\n })\n .option(\n '-e, --custom-entrypoint <entrypoint>',\n 'Override the default Docker entrypoint for the tool',\n )\n .option(\n '--script <script>',\n 'Execute a custom script using bash -c in the Docker container (e.g., --script \"npm install && npm test\")',\n )\n .option(\n '--env <name=value>',\n 'Set environment variables for Docker container (e.g., --env NODE_ENV=production)',\n (input: string, variables: EnvironmentVariable[]) => {\n const [name, ...valueParts] = input.split('=');\n\n if (!name || !valueParts.length) {\n throw new Error(\n `Invalid environment variable format: ${input}. Use --env NAME=VALUE`,\n );\n }\n\n return [...variables, { name, value: valueParts.join('=') }];\n },\n [],\n )\n .option(\n '-v, --volume <type:hostPath:containerPath[:name]>',\n 'Volume mappings in the format type:hostPath:containerPath[:name] (e.g., host:/host/path:/container/path or isolate::/container/path:volumeName)',\n (input: string, volumes: VolumeMapping[]) => {\n const [type, hostPath, containerPath, name] = input.split(':');\n\n switch (type) {\n case 'host':\n if (!hostPath) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n break;\n case 'isolate':\n if (!name) {\n throw new Error(`Name is required for volume type 'isolate'`);\n }\n break;\n default:\n throw new Error(`Invalid volume type: ${type}`);\n }\n\n if (!containerPath) {\n throw new Error(`Container path is required`);\n }\n\n return [\n ...volumes,\n volumeMappingSchema.parse({ type, hostPath, containerPath, name }),\n ];\n },\n [],\n )\n .option(\n '-p, --publish <host_port:container_port>',\n \"Publish a container's port(s) to the host (repeatable)\",\n (value: string, previous: string[]) => [...previous, value],\n [],\n )\n .option('--no-default-volumes', 'Disable default volumes for the tool');\n\n // Add version options for each tool dynamically\n for (const tool of tools) {\n const defaultVersion = getToolDefaultVersion(context, tool.name);\n const supportedVersions = getToolSupportedVersions(context, tool.name);\n\n program.option(\n `--${tool.name}-version <version>`,\n `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(', ')})`,\n );\n }\n\n // Add utility options\n program.option('--list-versions', 'Display all supported version combinations and exit');\n\n // Add version info command\n program\n .command('version-info <tool>')\n .description('Display detailed version information for a specific tool')\n .action((toolName: string) => displayToolVersionInfo(context, toolName));\n\n for (const tool of tools) {\n // Don't add any options to the subcommand level.\n // All lz-tool options must be specified before the subcommand.\n program\n .command(tool.name, { isDefault: false })\n .description(`Run ${tool.name} with version checking`)\n .passThroughOptions(true) // Pass through all options after the subcommand\n .allowUnknownOption()\n .helpOption(false) // Disable automatic help option to pass --help to the tool\n .argument('[args...]', 'Arguments to pass to the tool')\n .action(async (args: string[]) => {\n await executeToolCommand(\n context,\n tool.name,\n args,\n await parseGlobalOptions(program),\n );\n });\n }\n\n // Allow external registration of extra commands\n registerExtraCommands?.(program, parseGlobalOptions);\n\n return program;\n};\n\nexport const runCli = async <TImageId extends string>(\n config: ChainContext<TImageId>,\n registerExtraCommands?: RegisterExtraCommands,\n): Promise<void> => {\n try {\n await createCli<TImageId>(config, registerExtraCommands).parseAsync();\n } catch (error) {\n console.error('❌ VM tool execution failed', error);\n process.exit(1);\n }\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var O2P6E7GR_cjs = require('./O2P6E7GR.cjs');
4
- var BJD6YP5Q_cjs = require('./BJD6YP5Q.cjs');
3
+ var VP57EIXW_cjs = require('./VP57EIXW.cjs');
4
+ var QAZW6YGU_cjs = require('./QAZW6YGU.cjs');
5
5
  var _7PWQZJWC_cjs = require('./7PWQZJWC.cjs');
6
6
  var _5GPMTH2I_cjs = require('./5GPMTH2I.cjs');
7
7
  var _24WEKBY3_cjs = require('./24WEKBY3.cjs');
@@ -26,7 +26,7 @@ var createCli = /* @__PURE__ */ _24WEKBY3_cjs.__name((context, registerExtraComm
26
26
  name
27
27
  ]));
28
28
  const parseGlobalOptions = /* @__PURE__ */ _24WEKBY3_cjs.__name(async (command) => {
29
- const { cwd, volume, ...options } = command.opts();
29
+ const { cwd, volume, defaultVolumes, ...options } = command.opts();
30
30
  const resolvedCwd = cwd ?? process__default.default.cwd();
31
31
  const cliVersions = Object.fromEntries(Object.entries(options).map(([name, version]) => [
32
32
  toolVersionOptions[name],
@@ -41,13 +41,14 @@ var createCli = /* @__PURE__ */ _24WEKBY3_cjs.__name((context, registerExtraComm
41
41
  ...options,
42
42
  cwd: resolvedCwd,
43
43
  volumes: volume,
44
- versions
44
+ versions,
45
+ defaultVolumesEnabled: defaultVolumes
45
46
  };
46
47
  }, "parseGlobalOptions");
47
48
  const program = new commander.Command();
48
49
  program.name("lz-tool").description("\u{1F680} LayerZero VM tooling with intelligent version management\n\nUsage pattern:\n lz-tool [global-options] <tool> [tool-args...]\n\nExamples:\n lz-tool -e bash sui --help\n lz-tool --sui-version 1.38.0 sui client\n\nNote: All lz-tool options must appear BEFORE the tool name.").version("1.0.0").enablePositionalOptions();
49
50
  if (process__default.default.argv.includes("--list-versions")) {
50
- O2P6E7GR_cjs.displayVersionCombinations(context);
51
+ VP57EIXW_cjs.displayVersionCombinations(context);
51
52
  process__default.default.exit(0);
52
53
  }
53
54
  program.option("-c, --cwd <path>", "Current working directory", (input) => {
@@ -107,19 +108,19 @@ var createCli = /* @__PURE__ */ _24WEKBY3_cjs.__name((context, registerExtraComm
107
108
  }, []).option("-p, --publish <host_port:container_port>", "Publish a container's port(s) to the host (repeatable)", (value, previous) => [
108
109
  ...previous,
109
110
  value
110
- ], []);
111
+ ], []).option("--no-default-volumes", "Disable default volumes for the tool");
111
112
  for (const tool of tools) {
112
113
  const defaultVersion = _5GPMTH2I_cjs.getToolDefaultVersion(context, tool.name);
113
114
  const supportedVersions = _5GPMTH2I_cjs.getToolSupportedVersions(context, tool.name);
114
115
  program.option(`--${tool.name}-version <version>`, `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(", ")})`);
115
116
  }
116
117
  program.option("--list-versions", "Display all supported version combinations and exit");
117
- program.command("version-info <tool>").description("Display detailed version information for a specific tool").action((toolName) => O2P6E7GR_cjs.displayToolVersionInfo(context, toolName));
118
+ program.command("version-info <tool>").description("Display detailed version information for a specific tool").action((toolName) => VP57EIXW_cjs.displayToolVersionInfo(context, toolName));
118
119
  for (const tool of tools) {
119
120
  program.command(tool.name, {
120
121
  isDefault: false
121
122
  }).description(`Run ${tool.name} with version checking`).passThroughOptions(true).allowUnknownOption().helpOption(false).argument("[args...]", "Arguments to pass to the tool").action(async (args) => {
122
- await BJD6YP5Q_cjs.executeToolCommand(context, tool.name, args, await parseGlobalOptions(program));
123
+ await QAZW6YGU_cjs.executeToolCommand(context, tool.name, args, await parseGlobalOptions(program));
123
124
  });
124
125
  }
125
126
  registerExtraCommands?.(program, parseGlobalOptions);
@@ -135,5 +136,5 @@ var runCli = /* @__PURE__ */ _24WEKBY3_cjs.__name(async (config, registerExtraCo
135
136
  }, "runCli");
136
137
 
137
138
  exports.runCli = runCli;
138
- //# sourceMappingURL=Z7EACAGJ.cjs.map
139
- //# sourceMappingURL=Z7EACAGJ.cjs.map
139
+ //# sourceMappingURL=GLKB4X7V.cjs.map
140
+ //# sourceMappingURL=GLKB4X7V.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli.ts"],"names":["init_cjs_shims","createCli","__name","context","registerExtraCommands","tools","toolVersionOptions","Object","fromEntries","map","name","camelCase","parseGlobalOptions","command","cwd","volume","defaultVolumes","options","opts","resolvedCwd","process","cliVersions","entries","version","filter","tool","configVersions","getDefaultVersions","versions","volumes","defaultVolumesEnabled","program","Command","description","enablePositionalOptions","argv","includes","displayVersionCombinations","exit","option","input","Error","path","isAbsolute","fs","existsSync","statSync","isDirectory","variables","valueParts","split","length","value","join","type","hostPath","containerPath","volumeMappingSchema","parse","previous","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","action","toolName","displayToolVersionInfo","isDefault","passThroughOptions","allowUnknownOption","helpOption","argument","args","executeToolCommand","runCli","config","parseAsync","error","console"],"mappings":"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","file":"GLKB4X7V.cjs","sourcesContent":["import { Command } from 'commander';\nimport { camelCase } from 'es-toolkit';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\n\nimport type { EnvironmentVariable, VolumeMapping } from './config';\nimport { volumeMappingSchema } from './config';\nimport type { ChainContext } from './context';\nimport type { ToolCommandExecutionOptions } from './core';\nimport { executeToolCommand } from './core';\nimport { displayToolVersionInfo, displayVersionCombinations } from './display';\nimport { getToolDefaultVersion, getToolSupportedVersions } from './utils/finder';\n\ninterface GlobalOptions {\n cwd?: string;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n publish?: string[];\n script?: string;\n customEntrypoint?: string;\n defaultVolumes: boolean;\n}\n\ntype RegisterExtraCommands = (\n program: Command,\n parseGlobalOptions: (command: Command) => Promise<ToolCommandExecutionOptions>,\n) => void;\n\nconst createCli = <TImageId extends string>(\n context: ChainContext<TImageId>,\n registerExtraCommands?: RegisterExtraCommands,\n): Command => {\n const { tools } = context;\n const toolVersionOptions = Object.fromEntries(\n tools.map(({ name }) => [`${camelCase(name)}Version`, name]),\n );\n\n const parseGlobalOptions = async (command: Command): Promise<ToolCommandExecutionOptions> => {\n const { cwd, volume, defaultVolumes, ...options } = command.opts<GlobalOptions>();\n const resolvedCwd = cwd ?? process.cwd();\n\n // CLI flags take precedence over project config versions\n const cliVersions = Object.fromEntries(\n Object.entries(options)\n .map(([name, version]) => [toolVersionOptions[name], version])\n .filter(([tool]) => tool),\n );\n\n // Read defaults from project config (e.g., Anchor.toml) if the chain provides a hook\n const configVersions = (await context.getDefaultVersions?.(resolvedCwd)) ?? {};\n const versions = { ...configVersions, ...cliVersions };\n\n return {\n ...options,\n cwd: resolvedCwd,\n volumes: volume,\n versions,\n defaultVolumesEnabled: defaultVolumes,\n };\n };\n\n const program = new Command();\n\n program\n .name('lz-tool')\n .description(\n '🚀 LayerZero VM tooling with intelligent version management\\n' +\n '\\n' +\n 'Usage pattern:\\n' +\n ' lz-tool [global-options] <tool> [tool-args...]\\n' +\n '\\n' +\n 'Examples:\\n' +\n ' lz-tool -e bash sui --help\\n' +\n ' lz-tool --sui-version 1.38.0 sui client\\n' +\n '\\n' +\n 'Note: All lz-tool options must appear BEFORE the tool name.',\n )\n .version('1.0.0')\n .enablePositionalOptions(); // Required for passThroughOptions to work\n\n // Check for --list-versions before parsing to avoid help display\n if (process.argv.includes('--list-versions')) {\n displayVersionCombinations(context);\n process.exit(0);\n }\n\n // Add global options.\n program\n .option('-c, --cwd <path>', 'Current working directory', (input: string) => {\n if (typeof input !== 'string') {\n throw new Error('cwd flag must be a string');\n }\n\n if (!path.isAbsolute(input)) {\n throw new Error('cwd must be an absolute path if provided');\n }\n\n if (!fs.existsSync(input)) {\n throw new Error('cwd does not exist');\n }\n\n if (!fs.statSync(input).isDirectory()) {\n throw new Error('cwd must be a directory');\n }\n\n return input;\n })\n .option(\n '-e, --custom-entrypoint <entrypoint>',\n 'Override the default Docker entrypoint for the tool',\n )\n .option(\n '--script <script>',\n 'Execute a custom script using bash -c in the Docker container (e.g., --script \"npm install && npm test\")',\n )\n .option(\n '--env <name=value>',\n 'Set environment variables for Docker container (e.g., --env NODE_ENV=production)',\n (input: string, variables: EnvironmentVariable[]) => {\n const [name, ...valueParts] = input.split('=');\n\n if (!name || !valueParts.length) {\n throw new Error(\n `Invalid environment variable format: ${input}. Use --env NAME=VALUE`,\n );\n }\n\n return [...variables, { name, value: valueParts.join('=') }];\n },\n [],\n )\n .option(\n '-v, --volume <type:hostPath:containerPath[:name]>',\n 'Volume mappings in the format type:hostPath:containerPath[:name] (e.g., host:/host/path:/container/path or isolate::/container/path:volumeName)',\n (input: string, volumes: VolumeMapping[]) => {\n const [type, hostPath, containerPath, name] = input.split(':');\n\n switch (type) {\n case 'host':\n if (!hostPath) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n break;\n case 'isolate':\n if (!name) {\n throw new Error(`Name is required for volume type 'isolate'`);\n }\n break;\n default:\n throw new Error(`Invalid volume type: ${type}`);\n }\n\n if (!containerPath) {\n throw new Error(`Container path is required`);\n }\n\n return [\n ...volumes,\n volumeMappingSchema.parse({ type, hostPath, containerPath, name }),\n ];\n },\n [],\n )\n .option(\n '-p, --publish <host_port:container_port>',\n \"Publish a container's port(s) to the host (repeatable)\",\n (value: string, previous: string[]) => [...previous, value],\n [],\n )\n .option('--no-default-volumes', 'Disable default volumes for the tool');\n\n // Add version options for each tool dynamically\n for (const tool of tools) {\n const defaultVersion = getToolDefaultVersion(context, tool.name);\n const supportedVersions = getToolSupportedVersions(context, tool.name);\n\n program.option(\n `--${tool.name}-version <version>`,\n `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(', ')})`,\n );\n }\n\n // Add utility options\n program.option('--list-versions', 'Display all supported version combinations and exit');\n\n // Add version info command\n program\n .command('version-info <tool>')\n .description('Display detailed version information for a specific tool')\n .action((toolName: string) => displayToolVersionInfo(context, toolName));\n\n for (const tool of tools) {\n // Don't add any options to the subcommand level.\n // All lz-tool options must be specified before the subcommand.\n program\n .command(tool.name, { isDefault: false })\n .description(`Run ${tool.name} with version checking`)\n .passThroughOptions(true) // Pass through all options after the subcommand\n .allowUnknownOption()\n .helpOption(false) // Disable automatic help option to pass --help to the tool\n .argument('[args...]', 'Arguments to pass to the tool')\n .action(async (args: string[]) => {\n await executeToolCommand(\n context,\n tool.name,\n args,\n await parseGlobalOptions(program),\n );\n });\n }\n\n // Allow external registration of extra commands\n registerExtraCommands?.(program, parseGlobalOptions);\n\n return program;\n};\n\nexport const runCli = async <TImageId extends string>(\n config: ChainContext<TImageId>,\n registerExtraCommands?: RegisterExtraCommands,\n): Promise<void> => {\n try {\n await createCli<TImageId>(config, registerExtraCommands).parseAsync();\n } catch (error) {\n console.error('❌ VM tool execution failed', error);\n process.exit(1);\n }\n};\n"]}
@@ -64,5 +64,5 @@ function displayToolVersionInfo(context, toolName) {
64
64
  __name(displayToolVersionInfo, "displayToolVersionInfo");
65
65
 
66
66
  export { displayToolVersionInfo, displayVersionCombinations };
67
- //# sourceMappingURL=HVWLZZTF.js.map
68
- //# sourceMappingURL=HVWLZZTF.js.map
67
+ //# sourceMappingURL=HFI4IGT2.js.map
68
+ //# sourceMappingURL=HFI4IGT2.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/display/version-display.ts"],"names":["displayVersionCombinations","context","console","log","combinations","versionCombinations","toolNames","Set","flatMap","images","Object","keys","sort","join","repeat","formatVersionCombination","index","combination","entries","displayToolVersionInfo","toolName","tool","findToolByName","Error","name","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","toUpperCase","defaultVolumes","length","forEach","volume","volumeDesc","type","containerPath","hostPath"],"mappings":"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","file":"HVWLZZTF.js","sourcesContent":["import type { ChainContext } from '../context';\nimport { findToolByName, getToolDefaultVersion, getToolSupportedVersions } from '../utils/finder';\nimport { formatVersionCombination } from './formatters';\n\n/**\n * Display all supported version combinations\n */\nexport function displayVersionCombinations(context: ChainContext<string>): void {\n console.log('\\n🚀 LayerZero VM Tool - Supported Version Combinations\\n');\n\n const combinations = context.versionCombinations;\n const toolNames = [...new Set(combinations.flatMap(({ images }) => Object.keys(images)))]\n .sort()\n .join(', ');\n\n console.log(`📦 Tools: ${toolNames}`);\n console.log('─'.repeat(50));\n\n console.log('🎯 Default:');\n console.log(formatVersionCombination(context, combinations[0], true));\n console.log();\n\n // Show all combinations\n console.log('📋 All supported combinations:');\n for (const [index, combination] of combinations.entries()) {\n console.log(formatVersionCombination(context, combination, !index));\n }\n console.log();\n\n console.log('💡 Usage examples:');\n console.log(' lz-tool anchor --anchor-version 0.29.0 --solana-version 1.17.31 build');\n console.log(\n ' lz-tool anchor --anchor-version 0.31.1 build # Auto-selects compatible solana version',\n );\n console.log();\n}\n\n/**\n * Display tool-specific version information\n */\nexport function displayToolVersionInfo<TImageId extends string>(\n context: ChainContext<TImageId>,\n toolName: string,\n): void {\n const tool = findToolByName(context, toolName);\n const combinations = context.versionCombinations;\n\n if (!combinations) {\n throw new Error(`No version matrix found for tool: ${tool.name}`);\n }\n\n const defaultVersion = getToolDefaultVersion(context, tool.name);\n const supportedVersions = getToolSupportedVersions(context, tool.name);\n\n console.log(`\\n🔧 ${tool.name.toUpperCase()} Version Information`);\n console.log('─'.repeat(40));\n console.log(`Default version: ${defaultVersion}`);\n console.log(`Supported versions: ${supportedVersions.join(', ')}`);\n console.log();\n\n // Display default cache volumes\n if (tool.defaultVolumes && tool.defaultVolumes.length > 0) {\n console.log('📦 Default cache volumes:');\n tool.defaultVolumes.forEach((volume) => {\n const volumeDesc =\n volume.type === 'isolate'\n ? `${volume.name} → ${volume.containerPath}`\n : `${volume.hostPath} → ${volume.containerPath}`;\n console.log(` • ${volumeDesc}`);\n });\n console.log(' 💡 Use -v to override or add additional volumes');\n console.log();\n }\n\n console.log('🔗 Compatible combinations with other tools:');\n for (const [index, combination] of combinations.entries()) {\n if (combination.images[tool.name]) {\n console.log(formatVersionCombination(context, combination, !index));\n }\n }\n console.log();\n\n console.log('📝 Version resolution priority:');\n console.log(' 1. Command line options (--{tool}-version)');\n console.log(' 2. Default version');\n console.log();\n}\n"]}
1
+ {"version":3,"sources":["../src/display/version-display.ts"],"names":["displayVersionCombinations","context","console","log","combinations","versionCombinations","toolNames","Set","flatMap","images","Object","keys","sort","join","repeat","formatVersionCombination","index","combination","entries","displayToolVersionInfo","toolName","tool","findToolByName","Error","name","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","toUpperCase","defaultVolumes","length","forEach","volume","volumeDesc","type","containerPath","hostPath"],"mappings":"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","file":"HFI4IGT2.js","sourcesContent":["import type { ChainContext } from '../context';\nimport { findToolByName, getToolDefaultVersion, getToolSupportedVersions } from '../utils/finder';\nimport { formatVersionCombination } from './formatters';\n\n/**\n * Display all supported version combinations\n */\nexport function displayVersionCombinations(context: ChainContext<string>): void {\n console.log('\\n🚀 LayerZero VM Tool - Supported Version Combinations\\n');\n\n const combinations = context.versionCombinations;\n const toolNames = [...new Set(combinations.flatMap(({ images }) => Object.keys(images)))]\n .sort()\n .join(', ');\n\n console.log(`📦 Tools: ${toolNames}`);\n console.log('─'.repeat(50));\n\n console.log('🎯 Default:');\n console.log(formatVersionCombination(context, combinations[0], true));\n console.log();\n\n // Show all combinations\n console.log('📋 All supported combinations:');\n for (const [index, combination] of combinations.entries()) {\n console.log(formatVersionCombination(context, combination, !index));\n }\n console.log();\n\n console.log('💡 Usage examples:');\n console.log(' lz-tool anchor --anchor-version 0.29.0 --solana-version 1.17.31 build');\n console.log(\n ' lz-tool anchor --anchor-version 0.31.1 build # Auto-selects compatible solana version',\n );\n console.log();\n}\n\n/**\n * Display tool-specific version information\n */\nexport function displayToolVersionInfo<TImageId extends string>(\n context: ChainContext<TImageId>,\n toolName: string,\n): void {\n const tool = findToolByName(context, toolName);\n const combinations = context.versionCombinations;\n\n if (!combinations) {\n throw new Error(`No version matrix found for tool: ${tool.name}`);\n }\n\n const defaultVersion = getToolDefaultVersion(context, tool.name);\n const supportedVersions = getToolSupportedVersions(context, tool.name);\n\n console.log(`\\n🔧 ${tool.name.toUpperCase()} Version Information`);\n console.log('─'.repeat(40));\n console.log(`Default version: ${defaultVersion}`);\n console.log(`Supported versions: ${supportedVersions.join(', ')}`);\n console.log();\n\n // Display default volumes\n if (tool.defaultVolumes && tool.defaultVolumes.length > 0) {\n console.log('📦 Default cache volumes:');\n tool.defaultVolumes.forEach((volume) => {\n const volumeDesc =\n volume.type === 'isolate'\n ? `${volume.name} → ${volume.containerPath}`\n : `${volume.hostPath} → ${volume.containerPath}`;\n console.log(` • ${volumeDesc}`);\n });\n console.log(' 💡 Use -v to override or add additional volumes');\n console.log();\n }\n\n console.log('🔗 Compatible combinations with other tools:');\n for (const [index, combination] of combinations.entries()) {\n if (combination.images[tool.name]) {\n console.log(formatVersionCombination(context, combination, !index));\n }\n }\n console.log();\n\n console.log('📝 Version resolution priority:');\n console.log(' 1. Command line options (--{tool}-version)');\n console.log(' 2. Default version');\n console.log();\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var HSCHZUOV_cjs = require('./HSCHZUOV.cjs');
3
+ var _5AWAMWCO_cjs = require('./5AWAMWCO.cjs');
4
4
  var _5GPMTH2I_cjs = require('./5GPMTH2I.cjs');
5
5
  var _24WEKBY3_cjs = require('./24WEKBY3.cjs');
6
6
  var esToolkit = require('es-toolkit');
@@ -15,7 +15,7 @@ var TAG_SEPARATORS = [
15
15
  var generateGithubMatrix = /* @__PURE__ */ _24WEKBY3_cjs.__name((images, directory, versionCombinations) => {
16
16
  const createImageEntry = /* @__PURE__ */ _24WEKBY3_cjs.__name(([imageId, image]) => {
17
17
  const imageName = _5GPMTH2I_cjs.getImageName(image.name);
18
- const tags = TAG_SEPARATORS.map((separator) => HSCHZUOV_cjs.getImageTag(image, separator));
18
+ const tags = TAG_SEPARATORS.map((separator) => _5AWAMWCO_cjs.getImageTag(image, separator));
19
19
  if (tags.length === 0 || !tags[0]) {
20
20
  throw new Error(`Image "${imageId}" produced no tags. Every image must have at least one non-empty tag.`);
21
21
  }
@@ -56,5 +56,5 @@ var generateGithubMatrix = /* @__PURE__ */ _24WEKBY3_cjs.__name((images, directo
56
56
  }, "generateGithubMatrix");
57
57
 
58
58
  exports.generateGithubMatrix = generateGithubMatrix;
59
- //# sourceMappingURL=7FXZ63DE.cjs.map
60
- //# sourceMappingURL=7FXZ63DE.cjs.map
59
+ //# sourceMappingURL=O2BYFSSA.cjs.map
60
+ //# sourceMappingURL=O2BYFSSA.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/github/matrix.ts"],"names":["init_cjs_shims","TAG_SEPARATORS","generateGithubMatrix","__name","images","directory","versionCombinations","createImageEntry","imageId","image","imageName","getImageName","name","tags","map","separator","getImageTag","length","Error","entry","id","build_args","Object","entries","versions","dependencies","sort","key","value","constantCase","join","image_name","results","imageEntries","r","mirroredImages","filter","result","mirrorRegistries","flatMap","mirror","activeImages","activeImageIds","Set","combo","values","push"],"mappings":"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","file":"7FXZ63DE.cjs","sourcesContent":["import { constantCase } from 'es-toolkit';\nimport { join } from 'node:path';\n\nimport { type Image, type VersionCombination } from '../config';\nimport { getImageTag } from '../utils/docker';\nimport { getImageName } from '../utils/finder';\n\ninterface ImageEntry {\n id: string;\n name: string;\n build_args: string[];\n image_name: string;\n tags: string[];\n directory: string;\n}\n\ninterface MirroredImageEntry {\n id: string;\n name: string;\n image_name: string;\n tags: string[];\n mirror: string;\n}\n\ninterface GithubMatrixOutput {\n images: ImageEntry[];\n mirroredImages: MirroredImageEntry[];\n activeImages: string[];\n}\n\n// TODO Remove underscore which is not standard in the Docker tag naming scheme.\nconst TAG_SEPARATORS = ['-', '_'] as const;\n\nexport const generateGithubMatrix = (\n images: Record<string, Image>,\n directory: string,\n versionCombinations?: VersionCombination<string>[],\n): GithubMatrixOutput => {\n const createImageEntry = ([imageId, image]: [string, Image]): {\n entry: ImageEntry;\n image: Image;\n } => {\n const imageName = getImageName(image.name);\n const tags = TAG_SEPARATORS.map((separator) => getImageTag(image, separator));\n\n if (tags.length === 0 || !tags[0]) {\n throw new Error(\n `Image \"${imageId}\" produced no tags. Every image must have at least one non-empty tag.`,\n );\n }\n\n return {\n entry: {\n id: imageId,\n name: image.name,\n build_args: Object.entries({ ...image.versions, ...image.dependencies })\n .sort()\n .map(([key, value]) => `${constantCase(key)}_VERSION=${value}`),\n directory: join(directory, 'docker', image.name),\n image_name: imageName,\n tags,\n },\n image,\n };\n };\n\n const results = Object.entries(images).map(createImageEntry);\n\n const imageEntries = results.map((r) => r.entry);\n\n const mirroredImages = results\n .filter((result) => result.image.mirrorRegistries?.length)\n .flatMap((result) =>\n result.image.mirrorRegistries!.map((mirror) => ({\n id: result.entry.id,\n name: result.entry.name,\n image_name: result.entry.image_name,\n tags: result.entry.tags,\n mirror,\n })),\n );\n\n const activeImages: string[] = [];\n if (versionCombinations) {\n const activeImageIds = new Set(\n versionCombinations.flatMap((combo) => Object.values(combo.images)),\n );\n activeImages.push(...activeImageIds);\n }\n\n return { images: imageEntries, mirroredImages, activeImages };\n};\n"]}
1
+ {"version":3,"sources":["../src/github/matrix.ts"],"names":["init_cjs_shims","TAG_SEPARATORS","generateGithubMatrix","__name","images","directory","versionCombinations","createImageEntry","imageId","image","imageName","getImageName","name","tags","map","separator","getImageTag","length","Error","entry","id","build_args","Object","entries","versions","dependencies","sort","key","value","constantCase","join","image_name","results","imageEntries","r","mirroredImages","filter","result","mirrorRegistries","flatMap","mirror","activeImages","activeImageIds","Set","combo","values","push"],"mappings":"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","file":"O2BYFSSA.cjs","sourcesContent":["import { constantCase } from 'es-toolkit';\nimport { join } from 'node:path';\n\nimport { type Image, type VersionCombination } from '../config';\nimport { getImageTag } from '../utils/docker';\nimport { getImageName } from '../utils/finder';\n\ninterface ImageEntry {\n id: string;\n name: string;\n build_args: string[];\n image_name: string;\n tags: string[];\n directory: string;\n}\n\ninterface MirroredImageEntry {\n id: string;\n name: string;\n image_name: string;\n tags: string[];\n mirror: string;\n}\n\ninterface GithubMatrixOutput {\n images: ImageEntry[];\n mirroredImages: MirroredImageEntry[];\n activeImages: string[];\n}\n\n// TODO Remove underscore which is not standard in the Docker tag naming scheme.\nconst TAG_SEPARATORS = ['-', '_'] as const;\n\nexport const generateGithubMatrix = (\n images: Record<string, Image>,\n directory: string,\n versionCombinations?: VersionCombination<string>[],\n): GithubMatrixOutput => {\n const createImageEntry = ([imageId, image]: [string, Image]): {\n entry: ImageEntry;\n image: Image;\n } => {\n const imageName = getImageName(image.name);\n const tags = TAG_SEPARATORS.map((separator) => getImageTag(image, separator));\n\n if (tags.length === 0 || !tags[0]) {\n throw new Error(\n `Image \"${imageId}\" produced no tags. Every image must have at least one non-empty tag.`,\n );\n }\n\n return {\n entry: {\n id: imageId,\n name: image.name,\n build_args: Object.entries({ ...image.versions, ...image.dependencies })\n .sort()\n .map(([key, value]) => `${constantCase(key)}_VERSION=${value}`),\n directory: join(directory, 'docker', image.name),\n image_name: imageName,\n tags,\n },\n image,\n };\n };\n\n const results = Object.entries(images).map(createImageEntry);\n\n const imageEntries = results.map((r) => r.entry);\n\n const mirroredImages = results\n .filter((result) => result.image.mirrorRegistries?.length)\n .flatMap((result) =>\n result.image.mirrorRegistries!.map((mirror) => ({\n id: result.entry.id,\n name: result.entry.name,\n image_name: result.entry.image_name,\n tags: result.entry.tags,\n mirror,\n })),\n );\n\n const activeImages: string[] = [];\n if (versionCombinations) {\n const activeImageIds = new Set(\n versionCombinations.flatMap((combo) => Object.values(combo.images)),\n );\n activeImages.push(...activeImageIds);\n }\n\n return { images: imageEntries, mirroredImages, activeImages };\n};\n"]}