@layerzerolabs/vm-tooling 0.2.63 → 0.2.65

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 (57) hide show
  1. package/dist/{7FZK5RET.cjs → 7FXZ63DE.cjs} +7 -4
  2. package/dist/7FXZ63DE.cjs.map +1 -0
  3. package/dist/{2NTYK3VO.cjs → 7PWQZJWC.cjs} +2 -2
  4. package/dist/{2NTYK3VO.cjs.map → 7PWQZJWC.cjs.map} +1 -1
  5. package/dist/{NQIX4C7Z.cjs → BJD6YP5Q.cjs} +5 -5
  6. package/dist/{NQIX4C7Z.cjs.map → BJD6YP5Q.cjs.map} +1 -1
  7. package/dist/ECZCFJB4.js +66 -0
  8. package/dist/ECZCFJB4.js.map +1 -0
  9. package/dist/{GPDDKHCR.js → ERBSYZRH.js} +3 -3
  10. package/dist/{GPDDKHCR.js.map → ERBSYZRH.js.map} +1 -1
  11. package/dist/{533SFXIE.cjs → HSCHZUOV.cjs} +4 -4
  12. package/dist/{533SFXIE.cjs.map → HSCHZUOV.cjs.map} +1 -1
  13. package/dist/{33TVTWFZ.cjs → HXE3NVSB.cjs} +4 -4
  14. package/dist/{33TVTWFZ.cjs.map → HXE3NVSB.cjs.map} +1 -1
  15. package/dist/{WUF26TGR.js → KDX2NZOU.js} +3 -3
  16. package/dist/{WUF26TGR.js.map → KDX2NZOU.js.map} +1 -1
  17. package/dist/{VF2UWSC3.js → KPLQJLFW.js} +6 -3
  18. package/dist/KPLQJLFW.js.map +1 -0
  19. package/dist/LTB3CQLO.cjs +68 -0
  20. package/dist/LTB3CQLO.cjs.map +1 -0
  21. package/dist/{FD5JIY4L.js → S2D5P2IJ.js} +4 -4
  22. package/dist/{FD5JIY4L.js.map → S2D5P2IJ.js.map} +1 -1
  23. package/dist/{M2CDZILC.js → TGTQ2DSF.js} +3 -3
  24. package/dist/{M2CDZILC.js.map → TGTQ2DSF.js.map} +1 -1
  25. package/dist/{46I6PSJ7.js → X4R3PN6F.js} +2 -2
  26. package/dist/{46I6PSJ7.js.map → X4R3PN6F.js.map} +1 -1
  27. package/dist/{L364LHEH.cjs → Z7EACAGJ.cjs} +6 -6
  28. package/dist/{L364LHEH.cjs.map → Z7EACAGJ.cjs.map} +1 -1
  29. package/dist/cli.cjs +5 -5
  30. package/dist/cli.js +4 -4
  31. package/dist/config.cjs +5 -5
  32. package/dist/config.d.ts +0 -1
  33. package/dist/config.d.ts.map +1 -1
  34. package/dist/config.js +1 -1
  35. package/dist/core/index.cjs +4 -4
  36. package/dist/core/index.js +3 -3
  37. package/dist/core/tool-executor.cjs +4 -4
  38. package/dist/core/tool-executor.js +3 -3
  39. package/dist/github/index.cjs +5 -5
  40. package/dist/github/index.js +4 -4
  41. package/dist/github/matrix.cjs +4 -4
  42. package/dist/github/matrix.d.ts.map +1 -1
  43. package/dist/github/matrix.js +3 -3
  44. package/dist/index.cjs +12 -12
  45. package/dist/index.js +7 -7
  46. package/dist/test.cjs +4 -4
  47. package/dist/test.d.ts.map +1 -1
  48. package/dist/test.js +3 -3
  49. package/dist/utils/docker.cjs +6 -6
  50. package/dist/utils/docker.js +2 -2
  51. package/package.json +4 -6
  52. package/dist/7FZK5RET.cjs.map +0 -1
  53. package/dist/PKAOFTZV.js +0 -120
  54. package/dist/PKAOFTZV.js.map +0 -1
  55. package/dist/Q6HPQZPT.cjs +0 -142
  56. package/dist/Q6HPQZPT.cjs.map +0 -1
  57. package/dist/VF2UWSC3.js.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,18 +1,18 @@
1
1
  'use strict';
2
2
 
3
- var _33TVTWFZ_cjs = require('./33TVTWFZ.cjs');
4
- require('./7FZK5RET.cjs');
5
- var L364LHEH_cjs = require('./L364LHEH.cjs');
3
+ var HXE3NVSB_cjs = require('./HXE3NVSB.cjs');
4
+ require('./7FXZ63DE.cjs');
5
+ var Z7EACAGJ_cjs = require('./Z7EACAGJ.cjs');
6
6
  require('./Y76LNXBO.cjs');
7
7
  require('./O2P6E7GR.cjs');
8
8
  require('./IPYOACCU.cjs');
9
- var Q6HPQZPT_cjs = require('./Q6HPQZPT.cjs');
9
+ var LTB3CQLO_cjs = require('./LTB3CQLO.cjs');
10
10
  require('./24NWZBNF.cjs');
11
- var NQIX4C7Z_cjs = require('./NQIX4C7Z.cjs');
11
+ var BJD6YP5Q_cjs = require('./BJD6YP5Q.cjs');
12
12
  require('./T3GK7LED.cjs');
13
13
  var A5X4BLYY_cjs = require('./A5X4BLYY.cjs');
14
- require('./533SFXIE.cjs');
15
- var _2NTYK3VO_cjs = require('./2NTYK3VO.cjs');
14
+ require('./HSCHZUOV.cjs');
15
+ var _7PWQZJWC_cjs = require('./7PWQZJWC.cjs');
16
16
  var _2Z4Y2ZR3_cjs = require('./2Z4Y2ZR3.cjs');
17
17
  require('./5GPMTH2I.cjs');
18
18
  require('./XFDJEDQJ.cjs');
@@ -23,19 +23,19 @@ _24WEKBY3_cjs.init_cjs_shims();
23
23
 
24
24
  Object.defineProperty(exports, "runGithubMatrixGenerator", {
25
25
  enumerable: true,
26
- get: function () { return _33TVTWFZ_cjs.runGithubMatrixGenerator; }
26
+ get: function () { return HXE3NVSB_cjs.runGithubMatrixGenerator; }
27
27
  });
28
28
  Object.defineProperty(exports, "runCli", {
29
29
  enumerable: true,
30
- get: function () { return L364LHEH_cjs.runCli; }
30
+ get: function () { return Z7EACAGJ_cjs.runCli; }
31
31
  });
32
32
  Object.defineProperty(exports, "testTools", {
33
33
  enumerable: true,
34
- get: function () { return Q6HPQZPT_cjs.testTools; }
34
+ get: function () { return LTB3CQLO_cjs.testTools; }
35
35
  });
36
36
  Object.defineProperty(exports, "executeToolCommand", {
37
37
  enumerable: true,
38
- get: function () { return NQIX4C7Z_cjs.executeToolCommand; }
38
+ get: function () { return BJD6YP5Q_cjs.executeToolCommand; }
39
39
  });
40
40
  Object.defineProperty(exports, "resolveTypeVersions", {
41
41
  enumerable: true,
@@ -43,7 +43,7 @@ Object.defineProperty(exports, "resolveTypeVersions", {
43
43
  });
44
44
  Object.defineProperty(exports, "DockerRegistryMirror", {
45
45
  enumerable: true,
46
- get: function () { return _2NTYK3VO_cjs.DockerRegistryMirror; }
46
+ get: function () { return _7PWQZJWC_cjs.DockerRegistryMirror; }
47
47
  });
48
48
  Object.defineProperty(exports, "findFileInParentDirectory", {
49
49
  enumerable: true,
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
- export { runGithubMatrixGenerator } from './M2CDZILC.js';
2
- import './VF2UWSC3.js';
3
- export { runCli } from './FD5JIY4L.js';
1
+ export { runGithubMatrixGenerator } from './TGTQ2DSF.js';
2
+ import './KPLQJLFW.js';
3
+ export { runCli } from './S2D5P2IJ.js';
4
4
  import './XROMTYOP.js';
5
5
  import './HVWLZZTF.js';
6
6
  import './77VFG7S6.js';
7
- export { testTools } from './PKAOFTZV.js';
7
+ export { testTools } from './ECZCFJB4.js';
8
8
  import './22DCFDRO.js';
9
- export { executeToolCommand } from './WUF26TGR.js';
9
+ export { executeToolCommand } from './KDX2NZOU.js';
10
10
  import './7XVJ6B7B.js';
11
11
  export { resolveTypeVersions } from './ZO7WI2XS.js';
12
- import './GPDDKHCR.js';
13
- export { DockerRegistryMirror } from './46I6PSJ7.js';
12
+ import './ERBSYZRH.js';
13
+ export { DockerRegistryMirror } from './X4R3PN6F.js';
14
14
  export { findFileInParentDirectory } from './WSGRZJVU.js';
15
15
  import './KWRJPB5T.js';
16
16
  import './BAPGOHFS.js';
package/dist/test.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var Q6HPQZPT_cjs = require('./Q6HPQZPT.cjs');
4
- require('./533SFXIE.cjs');
5
- require('./2NTYK3VO.cjs');
3
+ var LTB3CQLO_cjs = require('./LTB3CQLO.cjs');
4
+ require('./HSCHZUOV.cjs');
5
+ require('./7PWQZJWC.cjs');
6
6
  require('./5GPMTH2I.cjs');
7
7
  require('./24WEKBY3.cjs');
8
8
 
@@ -10,7 +10,7 @@ require('./24WEKBY3.cjs');
10
10
 
11
11
  Object.defineProperty(exports, "testTools", {
12
12
  enumerable: true,
13
- get: function () { return Q6HPQZPT_cjs.testTools; }
13
+ get: function () { return LTB3CQLO_cjs.testTools; }
14
14
  });
15
15
  //# sourceMappingURL=test.cjs.map
16
16
  //# sourceMappingURL=test.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AA6DtC,eAAO,MAAM,SAAS,GAClB,qCAAqC,OAAO,MAAM,EAClD,QAAQ,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC7B,sBAAsB,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAClD,iBAAiB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,KAC1C,IA0EF,CAAC"}
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AAwBtC,eAAO,MAAM,SAAS,GAClB,qCAAqC,OAAO,MAAM,EAClD,QAAQ,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC7B,sBAAsB,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAClD,iBAAiB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,KAC1C,IA6CF,CAAC"}
package/dist/test.js CHANGED
@@ -1,6 +1,6 @@
1
- export { testTools } from './PKAOFTZV.js';
2
- import './GPDDKHCR.js';
3
- import './46I6PSJ7.js';
1
+ export { testTools } from './ECZCFJB4.js';
2
+ import './ERBSYZRH.js';
3
+ import './X4R3PN6F.js';
4
4
  import './KWRJPB5T.js';
5
5
  import './6AHA7PAZ.js';
6
6
  //# sourceMappingURL=test.js.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var _533SFXIE_cjs = require('../533SFXIE.cjs');
4
- require('../2NTYK3VO.cjs');
3
+ var HSCHZUOV_cjs = require('../HSCHZUOV.cjs');
4
+ require('../7PWQZJWC.cjs');
5
5
  require('../5GPMTH2I.cjs');
6
6
  require('../24WEKBY3.cjs');
7
7
 
@@ -9,19 +9,19 @@ require('../24WEKBY3.cjs');
9
9
 
10
10
  Object.defineProperty(exports, "getImageTag", {
11
11
  enumerable: true,
12
- get: function () { return _533SFXIE_cjs.getImageTag; }
12
+ get: function () { return HSCHZUOV_cjs.getImageTag; }
13
13
  });
14
14
  Object.defineProperty(exports, "getImageUri", {
15
15
  enumerable: true,
16
- get: function () { return _533SFXIE_cjs.getImageUri; }
16
+ get: function () { return HSCHZUOV_cjs.getImageUri; }
17
17
  });
18
18
  Object.defineProperty(exports, "getImageUriForTool", {
19
19
  enumerable: true,
20
- get: function () { return _533SFXIE_cjs.getImageUriForTool; }
20
+ get: function () { return HSCHZUOV_cjs.getImageUriForTool; }
21
21
  });
22
22
  Object.defineProperty(exports, "getVolumeName", {
23
23
  enumerable: true,
24
- get: function () { return _533SFXIE_cjs.getVolumeName; }
24
+ get: function () { return HSCHZUOV_cjs.getVolumeName; }
25
25
  });
26
26
  //# sourceMappingURL=docker.cjs.map
27
27
  //# sourceMappingURL=docker.cjs.map
@@ -1,5 +1,5 @@
1
- export { getImageTag, getImageUri, getImageUriForTool, getVolumeName } from '../GPDDKHCR.js';
2
- import '../46I6PSJ7.js';
1
+ export { getImageTag, getImageUri, getImageUriForTool, getVolumeName } from '../ERBSYZRH.js';
2
+ import '../X4R3PN6F.js';
3
3
  import '../KWRJPB5T.js';
4
4
  import '../6AHA7PAZ.js';
5
5
  //# sourceMappingURL=docker.js.map
package/package.json CHANGED
@@ -22,7 +22,7 @@
22
22
  "semver": "^7.5.4",
23
23
  "zod": "4.3.5",
24
24
  "zx": "^8.8.5",
25
- "@layerzerolabs/common-node-utils": "0.2.63"
25
+ "@layerzerolabs/common-node-utils": "0.2.65"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@jest/globals": "^29.7.0",
@@ -34,8 +34,8 @@
34
34
  "tsx": "^4.19.3",
35
35
  "typescript": "^5.8.2",
36
36
  "vitest": "^3.2.3",
37
- "@layerzerolabs/typescript-configuration": "0.2.63",
38
- "@layerzerolabs/tsup-configuration": "0.2.63"
37
+ "@layerzerolabs/typescript-configuration": "0.2.65",
38
+ "@layerzerolabs/tsup-configuration": "0.2.65"
39
39
  },
40
40
  "publishConfig": {
41
41
  "access": "public",
@@ -44,13 +44,11 @@
44
44
  "externalRepoConfig": {
45
45
  "targets": [
46
46
  "audit-external",
47
- "console-audit",
48
- "everdawn-asset0",
49
47
  "monorepo-external",
50
48
  "onesig-client"
51
49
  ]
52
50
  },
53
- "version": "0.2.63",
51
+ "version": "0.2.65",
54
52
  "scripts": {
55
53
  "build": "tsup",
56
54
  "lint": "eslint . --max-warnings 0 || (eslint . --fix --max-warnings 0 && false)",
@@ -1 +0,0 @@
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","entry","id","build_args","Object","entries","versions","dependencies","sort","key","value","constantCase","join","image_name","results","imageEntries","r","mirroredImages","filter","result","mirrorRegistries","length","flatMap","mirror","activeImages","activeImageIds","Set","combo","values","push"],"mappings":";;;;;;;;;AAAAA,4BAAA,EAAA;AA+BA,IAAMC,cAAAA,GAAiB;AAAC,EAAA,GAAA;AAAK,EAAA;;AAEtB,IAAMC,oBAAAA,mBAAuBC,oBAAA,CAAA,CAChCC,MAAAA,EACAC,SAAAA,EACAC,mBAAAA,KAAAA;AAEA,EAAA,MAAMC,gBAAAA,mBAAmBJ,oBAAA,CAAA,CAAC,CAACK,OAAAA,EAASC,KAAAA,CAAAA,KAAuB;AAIvD,IAAA,MAAMC,SAAAA,GAAYC,0BAAAA,CAAaF,KAAAA,CAAMG,IAAI,CAAA;AACzC,IAAA,MAAMC,IAAAA,GAAOZ,eAAea,GAAAA,CAAI,CAACC,cAAcC,yBAAAA,CAAYP,KAAAA,EAAOM,SAAAA,CAAAA,CAAAA;AAElE,IAAA,OAAO;MACHE,KAAAA,EAAO;QACHC,EAAAA,EAAIV,OAAAA;AACJI,QAAAA,IAAAA,EAAMH,KAAAA,CAAMG,IAAAA;AACZO,QAAAA,UAAAA,EAAYC,OAAOC,OAAAA,CAAQ;AAAE,UAAA,GAAGZ,KAAAA,CAAMa,QAAAA;AAAU,UAAA,GAAGb,KAAAA,CAAMc;AAAa,SAAA,CAAA,CACjEC,IAAAA,EAAI,CACJV,GAAAA,CAAI,CAAC,CAACW,GAAAA,EAAKC,KAAAA,CAAAA,KAAW,GAAGC,sBAAAA,CAAaF,GAAAA,CAAAA,CAAAA,SAAAA,EAAgBC,KAAAA,CAAAA,CAAO,CAAA;AAClErB,QAAAA,SAAAA,EAAWuB,SAAAA,CAAKvB,SAAAA,EAAW,QAAA,EAAUI,KAAAA,CAAMG,IAAI,CAAA;QAC/CiB,UAAAA,EAAYnB,SAAAA;AACZG,QAAAA;AACJ,OAAA;AACAJ,MAAAA;AACJ,KAAA;EACJ,CAAA,EApByB,kBAAA,CAAA;AAsBzB,EAAA,MAAMqB,UAAUV,MAAAA,CAAOC,OAAAA,CAAQjB,MAAAA,CAAAA,CAAQU,IAAIP,gBAAAA,CAAAA;AAE3C,EAAA,MAAMwB,eAAeD,OAAAA,CAAQhB,GAAAA,CAAI,CAACkB,CAAAA,KAAMA,EAAEf,KAAK,CAAA;AAE/C,EAAA,MAAMgB,iBAAiBH,OAAAA,CAClBI,MAAAA,CAAO,CAACC,MAAAA,KAAWA,MAAAA,CAAO1B,MAAM2B,gBAAAA,EAAkBC,MAAAA,CAAAA,CAClDC,OAAAA,CAAQ,CAACH,MAAAA,KACNA,MAAAA,CAAO1B,MAAM2B,gBAAAA,CAAkBtB,GAAAA,CAAI,CAACyB,MAAAA,MAAY;AAC5CrB,IAAAA,EAAAA,EAAIiB,OAAOlB,KAAAA,CAAMC,EAAAA;AACjBN,IAAAA,IAAAA,EAAMuB,OAAOlB,KAAAA,CAAML,IAAAA;AACnBiB,IAAAA,UAAAA,EAAYM,OAAOlB,KAAAA,CAAMY,UAAAA;AACzBhB,IAAAA,IAAAA,EAAMsB,OAAOlB,KAAAA,CAAMJ,IAAAA;AACnB0B,IAAAA;AACJ,GAAA,CAAA,CAAA,CAAA;AAGR,EAAA,MAAMC,eAAyB,EAAA;AAC/B,EAAA,IAAIlC,mBAAAA,EAAqB;AACrB,IAAA,MAAMmC,cAAAA,GAAiB,IAAIC,GAAAA,CACvBpC,mBAAAA,CAAoBgC,OAAAA,CAAQ,CAACK,KAAAA,KAAUvB,MAAAA,CAAOwB,MAAAA,CAAOD,KAAAA,CAAMvC,MAAM,CAAA,CAAA,CAAA;AAErEoC,IAAAA,YAAAA,CAAaK,IAAAA,CAAI,GAAIJ,cAAAA,CAAAA;AACzB,EAAA;AAEA,EAAA,OAAO;IAAErC,MAAAA,EAAQ2B,YAAAA;AAAcE,IAAAA,cAAAA;AAAgBO,IAAAA;AAAa,GAAA;AAChE,CAAA,EApDoC,sBAAA","file":"7FZK5RET.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 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"]}
package/dist/PKAOFTZV.js DELETED
@@ -1,120 +0,0 @@
1
- import { getImageTag, getImageUri } from './GPDDKHCR.js';
2
- import { init_esm_shims, __name } from './6AHA7PAZ.js';
3
- import { execFile } from 'child_process';
4
- import { promisify } from 'util';
5
- import * as z from 'zod';
6
-
7
- // src/test.ts
8
- init_esm_shims();
9
- var COMMAND_TIMEOUT = 5 * 6e4;
10
- var MANIFEST_TEST_TIMEOUT = 6e4;
11
- var VERSION_TEST_TIMEOUT = 15 * 6e4;
12
- var PULL_TIMEOUT = 10 * 6e4;
13
- var slsaSchema = z.object({
14
- SLSA: z.object({})
15
- });
16
- var provenanceSchema = z.object({
17
- ["linux/amd64"]: slsaSchema,
18
- ["linux/arm64"]: slsaSchema
19
- });
20
- var runCommand = /* @__PURE__ */ __name(async (command, args, timeout = COMMAND_TIMEOUT) => (await promisify(execFile)(command, args, {
21
- timeout,
22
- killSignal: "SIGKILL"
23
- })).stdout.trim(), "runCommand");
24
- var isImageCached = /* @__PURE__ */ __name(async (uri) => {
25
- try {
26
- await runCommand("docker", [
27
- "image",
28
- "inspect",
29
- uri
30
- ]);
31
- return true;
32
- } catch {
33
- return false;
34
- }
35
- }, "isImageCached");
36
- var pullLocks = /* @__PURE__ */ new Map();
37
- var ensureImagePulled = /* @__PURE__ */ __name(async (uri) => {
38
- const existingPull = pullLocks.get(uri);
39
- if (existingPull) {
40
- console.log(`\u23F3 Waiting for concurrent pull: ${uri}`);
41
- return existingPull;
42
- }
43
- const pullPromise = (async () => {
44
- if (await isImageCached(uri)) {
45
- console.log(`\u2705 Image already cached: ${uri}`);
46
- return;
47
- }
48
- console.log(`\u{1F4E5} Pulling image: ${uri}`);
49
- await runCommand("docker", [
50
- "pull",
51
- uri
52
- ], PULL_TIMEOUT);
53
- })().finally(() => pullLocks.delete(uri));
54
- pullLocks.set(uri, pullPromise);
55
- return pullPromise;
56
- }, "ensureImagePulled");
57
- var testTools = /* @__PURE__ */ __name(({ describe, expect, it, beforeAll }, images, _versionCombinations, versionCommands) => {
58
- describe("Docker image IDs", () => {
59
- for (const [name, image] of Object.entries(images)) {
60
- it(`has an image ID of ${name}`, () => {
61
- expect([
62
- image.name,
63
- getImageTag(image, "-")
64
- ].join(":")).toBe(name);
65
- });
66
- }
67
- });
68
- describe("Tool versions", () => {
69
- for (const literalImage of Object.values(images)) {
70
- const image = literalImage;
71
- if (image.unreleased) {
72
- continue;
73
- }
74
- describe(getImageTag(image), () => {
75
- let imageUri;
76
- beforeAll(async () => {
77
- imageUri = await getImageUri(image, "_");
78
- await ensureImagePulled(imageUri);
79
- }, PULL_TIMEOUT);
80
- for (const [tool, expectedVersion] of Object.entries(image.versions)) {
81
- it(`should have ${tool} of version ${expectedVersion}`, async () => {
82
- if (!(versionCommands[tool] instanceof Array)) {
83
- throw new Error("Missing version command");
84
- }
85
- const version = await runCommand("docker", [
86
- "run",
87
- "--rm",
88
- "--privileged",
89
- imageUri,
90
- ...versionCommands[tool]
91
- ]);
92
- expect(version).toContain(expectedVersion);
93
- }, VERSION_TEST_TIMEOUT);
94
- }
95
- });
96
- }
97
- });
98
- describe("Docker image manifests", () => {
99
- for (const [id, image] of Object.entries(images)) {
100
- if (image.unreleased) {
101
- continue;
102
- }
103
- it(`has a valid manifest for ${id}`, async () => {
104
- const { stdout } = await promisify(execFile)("docker", [
105
- "buildx",
106
- "imagetools",
107
- "inspect",
108
- "--format",
109
- "{{ json .Provenance }}",
110
- await getImageUri(image, "_")
111
- ]);
112
- expect(provenanceSchema.safeParse(JSON.parse(stdout)).success).toBe(true);
113
- }, MANIFEST_TEST_TIMEOUT);
114
- }
115
- });
116
- }, "testTools");
117
-
118
- export { testTools };
119
- //# sourceMappingURL=PKAOFTZV.js.map
120
- //# sourceMappingURL=PKAOFTZV.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/test.ts"],"names":["COMMAND_TIMEOUT","MANIFEST_TEST_TIMEOUT","VERSION_TEST_TIMEOUT","PULL_TIMEOUT","slsaSchema","object","SLSA","provenanceSchema","runCommand","command","args","timeout","promisify","execFile","killSignal","stdout","trim","isImageCached","uri","pullLocks","Map","ensureImagePulled","existingPull","get","console","log","pullPromise","finally","delete","set","testTools","describe","expect","it","beforeAll","images","_versionCombinations","versionCommands","name","image","Object","entries","getImageTag","join","toBe","literalImage","values","unreleased","imageUri","getImageUri","tool","expectedVersion","versions","Array","Error","version","toContain","id","safeParse","JSON","parse","success"],"mappings":"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","file":"PKAOFTZV.js","sourcesContent":["import { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\nimport type * as vitest from 'vitest';\nimport * as z from 'zod';\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 MANIFEST_TEST_TIMEOUT = 60_000;\nconst VERSION_TEST_TIMEOUT = 15 * 60_000;\nconst PULL_TIMEOUT = 10 * 60_000;\n\nconst slsaSchema = z.object({\n SLSA: z.object({}),\n});\n\n// TODO Require provenance by GitHub Actions.\nconst provenanceSchema = z.object({\n ['linux/amd64']: slsaSchema,\n ['linux/arm64']: slsaSchema,\n});\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\nconst isImageCached = async (uri: string): Promise<boolean> => {\n try {\n await runCommand('docker', ['image', 'inspect', uri]);\n return true;\n } catch {\n return false;\n }\n};\n\nconst pullLocks = new Map<string, Promise<void>>();\n\nconst ensureImagePulled = async (uri: string): Promise<void> => {\n const existingPull = pullLocks.get(uri);\n if (existingPull) {\n console.log(`⏳ Waiting for concurrent pull: ${uri}`);\n return existingPull;\n }\n\n const pullPromise = (async () => {\n if (await isImageCached(uri)) {\n console.log(`✅ Image already cached: ${uri}`);\n return;\n }\n console.log(`📥 Pulling image: ${uri}`);\n await runCommand('docker', ['pull', uri], PULL_TIMEOUT);\n })().finally(() => pullLocks.delete(uri));\n\n pullLocks.set(uri, pullPromise);\n return pullPromise;\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 if (image.unreleased) {\n continue;\n }\n\n describe(getImageTag(image), () => {\n let imageUri: string;\n\n beforeAll(async () => {\n imageUri = await getImageUri(image, '_');\n await ensureImagePulled(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 describe('Docker image manifests', () => {\n for (const [id, image] of Object.entries(images)) {\n if (image.unreleased) {\n continue;\n }\n\n it(\n `has a valid manifest for ${id}`,\n async () => {\n const { stdout } = await promisify(execFile)('docker', [\n 'buildx',\n 'imagetools',\n 'inspect',\n '--format',\n '{{ json .Provenance }}',\n await getImageUri(image, '_'),\n ]);\n\n expect(provenanceSchema.safeParse(JSON.parse(stdout)).success).toBe(true);\n },\n MANIFEST_TEST_TIMEOUT,\n );\n }\n });\n};\n"]}
package/dist/Q6HPQZPT.cjs DELETED
@@ -1,142 +0,0 @@
1
- 'use strict';
2
-
3
- var _533SFXIE_cjs = require('./533SFXIE.cjs');
4
- var _24WEKBY3_cjs = require('./24WEKBY3.cjs');
5
- var child_process = require('child_process');
6
- var util = require('util');
7
- var z = require('zod');
8
-
9
- function _interopNamespace(e) {
10
- if (e && e.__esModule) return e;
11
- var n = Object.create(null);
12
- if (e) {
13
- Object.keys(e).forEach(function (k) {
14
- if (k !== 'default') {
15
- var d = Object.getOwnPropertyDescriptor(e, k);
16
- Object.defineProperty(n, k, d.get ? d : {
17
- enumerable: true,
18
- get: function () { return e[k]; }
19
- });
20
- }
21
- });
22
- }
23
- n.default = e;
24
- return Object.freeze(n);
25
- }
26
-
27
- var z__namespace = /*#__PURE__*/_interopNamespace(z);
28
-
29
- // src/test.ts
30
- _24WEKBY3_cjs.init_cjs_shims();
31
- var COMMAND_TIMEOUT = 5 * 6e4;
32
- var MANIFEST_TEST_TIMEOUT = 6e4;
33
- var VERSION_TEST_TIMEOUT = 15 * 6e4;
34
- var PULL_TIMEOUT = 10 * 6e4;
35
- var slsaSchema = z__namespace.object({
36
- SLSA: z__namespace.object({})
37
- });
38
- var provenanceSchema = z__namespace.object({
39
- ["linux/amd64"]: slsaSchema,
40
- ["linux/arm64"]: slsaSchema
41
- });
42
- var runCommand = /* @__PURE__ */ _24WEKBY3_cjs.__name(async (command, args, timeout = COMMAND_TIMEOUT) => (await util.promisify(child_process.execFile)(command, args, {
43
- timeout,
44
- killSignal: "SIGKILL"
45
- })).stdout.trim(), "runCommand");
46
- var isImageCached = /* @__PURE__ */ _24WEKBY3_cjs.__name(async (uri) => {
47
- try {
48
- await runCommand("docker", [
49
- "image",
50
- "inspect",
51
- uri
52
- ]);
53
- return true;
54
- } catch {
55
- return false;
56
- }
57
- }, "isImageCached");
58
- var pullLocks = /* @__PURE__ */ new Map();
59
- var ensureImagePulled = /* @__PURE__ */ _24WEKBY3_cjs.__name(async (uri) => {
60
- const existingPull = pullLocks.get(uri);
61
- if (existingPull) {
62
- console.log(`\u23F3 Waiting for concurrent pull: ${uri}`);
63
- return existingPull;
64
- }
65
- const pullPromise = (async () => {
66
- if (await isImageCached(uri)) {
67
- console.log(`\u2705 Image already cached: ${uri}`);
68
- return;
69
- }
70
- console.log(`\u{1F4E5} Pulling image: ${uri}`);
71
- await runCommand("docker", [
72
- "pull",
73
- uri
74
- ], PULL_TIMEOUT);
75
- })().finally(() => pullLocks.delete(uri));
76
- pullLocks.set(uri, pullPromise);
77
- return pullPromise;
78
- }, "ensureImagePulled");
79
- var testTools = /* @__PURE__ */ _24WEKBY3_cjs.__name(({ describe, expect, it, beforeAll }, images, _versionCombinations, versionCommands) => {
80
- describe("Docker image IDs", () => {
81
- for (const [name, image] of Object.entries(images)) {
82
- it(`has an image ID of ${name}`, () => {
83
- expect([
84
- image.name,
85
- _533SFXIE_cjs.getImageTag(image, "-")
86
- ].join(":")).toBe(name);
87
- });
88
- }
89
- });
90
- describe("Tool versions", () => {
91
- for (const literalImage of Object.values(images)) {
92
- const image = literalImage;
93
- if (image.unreleased) {
94
- continue;
95
- }
96
- describe(_533SFXIE_cjs.getImageTag(image), () => {
97
- let imageUri;
98
- beforeAll(async () => {
99
- imageUri = await _533SFXIE_cjs.getImageUri(image, "_");
100
- await ensureImagePulled(imageUri);
101
- }, PULL_TIMEOUT);
102
- for (const [tool, expectedVersion] of Object.entries(image.versions)) {
103
- it(`should have ${tool} of version ${expectedVersion}`, async () => {
104
- if (!(versionCommands[tool] instanceof Array)) {
105
- throw new Error("Missing version command");
106
- }
107
- const version = await runCommand("docker", [
108
- "run",
109
- "--rm",
110
- "--privileged",
111
- imageUri,
112
- ...versionCommands[tool]
113
- ]);
114
- expect(version).toContain(expectedVersion);
115
- }, VERSION_TEST_TIMEOUT);
116
- }
117
- });
118
- }
119
- });
120
- describe("Docker image manifests", () => {
121
- for (const [id, image] of Object.entries(images)) {
122
- if (image.unreleased) {
123
- continue;
124
- }
125
- it(`has a valid manifest for ${id}`, async () => {
126
- const { stdout } = await util.promisify(child_process.execFile)("docker", [
127
- "buildx",
128
- "imagetools",
129
- "inspect",
130
- "--format",
131
- "{{ json .Provenance }}",
132
- await _533SFXIE_cjs.getImageUri(image, "_")
133
- ]);
134
- expect(provenanceSchema.safeParse(JSON.parse(stdout)).success).toBe(true);
135
- }, MANIFEST_TEST_TIMEOUT);
136
- }
137
- });
138
- }, "testTools");
139
-
140
- exports.testTools = testTools;
141
- //# sourceMappingURL=Q6HPQZPT.cjs.map
142
- //# sourceMappingURL=Q6HPQZPT.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/test.ts"],"names":["init_cjs_shims","COMMAND_TIMEOUT","MANIFEST_TEST_TIMEOUT","VERSION_TEST_TIMEOUT","PULL_TIMEOUT","slsaSchema","object","SLSA","provenanceSchema","runCommand","__name","command","args","timeout","promisify","execFile","killSignal","stdout","trim","isImageCached","uri","pullLocks","Map","ensureImagePulled","existingPull","get","console","log","pullPromise","finally","delete","set","testTools","describe","expect","it","beforeAll","images","_versionCombinations","versionCommands","name","image","Object","entries","getImageTag","join","toBe","literalImage","values","unreleased","imageUri","getImageUri","tool","expectedVersion","versions","Array","Error","version","toContain","id","safeParse","JSON","parse","success"],"mappings":"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","file":"Q6HPQZPT.cjs","sourcesContent":["import { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\nimport type * as vitest from 'vitest';\nimport * as z from 'zod';\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 MANIFEST_TEST_TIMEOUT = 60_000;\nconst VERSION_TEST_TIMEOUT = 15 * 60_000;\nconst PULL_TIMEOUT = 10 * 60_000;\n\nconst slsaSchema = z.object({\n SLSA: z.object({}),\n});\n\n// TODO Require provenance by GitHub Actions.\nconst provenanceSchema = z.object({\n ['linux/amd64']: slsaSchema,\n ['linux/arm64']: slsaSchema,\n});\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\nconst isImageCached = async (uri: string): Promise<boolean> => {\n try {\n await runCommand('docker', ['image', 'inspect', uri]);\n return true;\n } catch {\n return false;\n }\n};\n\nconst pullLocks = new Map<string, Promise<void>>();\n\nconst ensureImagePulled = async (uri: string): Promise<void> => {\n const existingPull = pullLocks.get(uri);\n if (existingPull) {\n console.log(`⏳ Waiting for concurrent pull: ${uri}`);\n return existingPull;\n }\n\n const pullPromise = (async () => {\n if (await isImageCached(uri)) {\n console.log(`✅ Image already cached: ${uri}`);\n return;\n }\n console.log(`📥 Pulling image: ${uri}`);\n await runCommand('docker', ['pull', uri], PULL_TIMEOUT);\n })().finally(() => pullLocks.delete(uri));\n\n pullLocks.set(uri, pullPromise);\n return pullPromise;\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 if (image.unreleased) {\n continue;\n }\n\n describe(getImageTag(image), () => {\n let imageUri: string;\n\n beforeAll(async () => {\n imageUri = await getImageUri(image, '_');\n await ensureImagePulled(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 describe('Docker image manifests', () => {\n for (const [id, image] of Object.entries(images)) {\n if (image.unreleased) {\n continue;\n }\n\n it(\n `has a valid manifest for ${id}`,\n async () => {\n const { stdout } = await promisify(execFile)('docker', [\n 'buildx',\n 'imagetools',\n 'inspect',\n '--format',\n '{{ json .Provenance }}',\n await getImageUri(image, '_'),\n ]);\n\n expect(provenanceSchema.safeParse(JSON.parse(stdout)).success).toBe(true);\n },\n MANIFEST_TEST_TIMEOUT,\n );\n }\n });\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/github/matrix.ts"],"names":["TAG_SEPARATORS","generateGithubMatrix","images","directory","versionCombinations","createImageEntry","imageId","image","imageName","getImageName","name","tags","map","separator","getImageTag","entry","id","build_args","Object","entries","versions","dependencies","sort","key","value","constantCase","join","image_name","results","imageEntries","r","mirroredImages","filter","result","mirrorRegistries","length","flatMap","mirror","activeImages","activeImageIds","Set","combo","values","push"],"mappings":";;;;;;;AAAA,cAAA,EAAA;AA+BA,IAAMA,cAAAA,GAAiB;AAAC,EAAA,GAAA;AAAK,EAAA;;AAEtB,IAAMC,oBAAAA,mBAAuB,MAAA,CAAA,CAChCC,MAAAA,EACAC,SAAAA,EACAC,mBAAAA,KAAAA;AAEA,EAAA,MAAMC,gBAAAA,mBAAmB,MAAA,CAAA,CAAC,CAACC,OAAAA,EAASC,KAAAA,CAAAA,KAAuB;AAIvD,IAAA,MAAMC,SAAAA,GAAYC,YAAAA,CAAaF,KAAAA,CAAMG,IAAI,CAAA;AACzC,IAAA,MAAMC,IAAAA,GAAOX,eAAeY,GAAAA,CAAI,CAACC,cAAcC,WAAAA,CAAYP,KAAAA,EAAOM,SAAAA,CAAAA,CAAAA;AAElE,IAAA,OAAO;MACHE,KAAAA,EAAO;QACHC,EAAAA,EAAIV,OAAAA;AACJI,QAAAA,IAAAA,EAAMH,KAAAA,CAAMG,IAAAA;AACZO,QAAAA,UAAAA,EAAYC,OAAOC,OAAAA,CAAQ;AAAE,UAAA,GAAGZ,KAAAA,CAAMa,QAAAA;AAAU,UAAA,GAAGb,KAAAA,CAAMc;AAAa,SAAA,CAAA,CACjEC,IAAAA,EAAI,CACJV,GAAAA,CAAI,CAAC,CAACW,GAAAA,EAAKC,KAAAA,CAAAA,KAAW,GAAGC,YAAAA,CAAaF,GAAAA,CAAAA,CAAAA,SAAAA,EAAgBC,KAAAA,CAAAA,CAAO,CAAA;AAClErB,QAAAA,SAAAA,EAAWuB,IAAAA,CAAKvB,SAAAA,EAAW,QAAA,EAAUI,KAAAA,CAAMG,IAAI,CAAA;QAC/CiB,UAAAA,EAAYnB,SAAAA;AACZG,QAAAA;AACJ,OAAA;AACAJ,MAAAA;AACJ,KAAA;EACJ,CAAA,EApByB,kBAAA,CAAA;AAsBzB,EAAA,MAAMqB,UAAUV,MAAAA,CAAOC,OAAAA,CAAQjB,MAAAA,CAAAA,CAAQU,IAAIP,gBAAAA,CAAAA;AAE3C,EAAA,MAAMwB,eAAeD,OAAAA,CAAQhB,GAAAA,CAAI,CAACkB,CAAAA,KAAMA,EAAEf,KAAK,CAAA;AAE/C,EAAA,MAAMgB,iBAAiBH,OAAAA,CAClBI,MAAAA,CAAO,CAACC,MAAAA,KAAWA,MAAAA,CAAO1B,MAAM2B,gBAAAA,EAAkBC,MAAAA,CAAAA,CAClDC,OAAAA,CAAQ,CAACH,MAAAA,KACNA,MAAAA,CAAO1B,MAAM2B,gBAAAA,CAAkBtB,GAAAA,CAAI,CAACyB,MAAAA,MAAY;AAC5CrB,IAAAA,EAAAA,EAAIiB,OAAOlB,KAAAA,CAAMC,EAAAA;AACjBN,IAAAA,IAAAA,EAAMuB,OAAOlB,KAAAA,CAAML,IAAAA;AACnBiB,IAAAA,UAAAA,EAAYM,OAAOlB,KAAAA,CAAMY,UAAAA;AACzBhB,IAAAA,IAAAA,EAAMsB,OAAOlB,KAAAA,CAAMJ,IAAAA;AACnB0B,IAAAA;AACJ,GAAA,CAAA,CAAA,CAAA;AAGR,EAAA,MAAMC,eAAyB,EAAA;AAC/B,EAAA,IAAIlC,mBAAAA,EAAqB;AACrB,IAAA,MAAMmC,cAAAA,GAAiB,IAAIC,GAAAA,CACvBpC,mBAAAA,CAAoBgC,OAAAA,CAAQ,CAACK,KAAAA,KAAUvB,MAAAA,CAAOwB,MAAAA,CAAOD,KAAAA,CAAMvC,MAAM,CAAA,CAAA,CAAA;AAErEoC,IAAAA,YAAAA,CAAaK,IAAAA,CAAI,GAAIJ,cAAAA,CAAAA;AACzB,EAAA;AAEA,EAAA,OAAO;IAAErC,MAAAA,EAAQ2B,YAAAA;AAAcE,IAAAA,cAAAA;AAAgBO,IAAAA;AAAa,GAAA;AAChE,CAAA,EApDoC,sBAAA","file":"VF2UWSC3.js","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 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"]}