@xpack/xpm-lib 3.1.2 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/README.md +16 -212
  2. package/dist/classes/actions.d.ts +58 -0
  3. package/dist/classes/actions.d.ts.map +1 -0
  4. package/dist/classes/actions.js +250 -0
  5. package/dist/classes/actions.js.map +1 -0
  6. package/dist/classes/build-configurations.d.ts +78 -0
  7. package/dist/classes/build-configurations.d.ts.map +1 -0
  8. package/dist/classes/build-configurations.js +489 -0
  9. package/dist/classes/build-configurations.js.map +1 -0
  10. package/dist/classes/combinations-generator.d.ts +19 -0
  11. package/dist/classes/combinations-generator.d.ts.map +1 -0
  12. package/dist/classes/combinations-generator.js +48 -0
  13. package/dist/classes/combinations-generator.js.map +1 -0
  14. package/dist/classes/data-model.d.ts +21 -0
  15. package/dist/classes/data-model.d.ts.map +1 -0
  16. package/dist/classes/data-model.js +47 -0
  17. package/dist/classes/data-model.js.map +1 -0
  18. package/dist/classes/errors.d.ts +13 -0
  19. package/dist/classes/errors.d.ts.map +1 -0
  20. package/dist/classes/errors.js +13 -0
  21. package/dist/classes/errors.js.map +1 -0
  22. package/dist/classes/init-template-base.d.ts +47 -0
  23. package/dist/classes/init-template-base.d.ts.map +1 -0
  24. package/dist/classes/init-template-base.js +358 -0
  25. package/dist/classes/init-template-base.js.map +1 -0
  26. package/dist/classes/liquid-drop.d.ts +28 -0
  27. package/dist/classes/liquid-drop.d.ts.map +1 -0
  28. package/dist/classes/liquid-drop.js +70 -0
  29. package/dist/classes/liquid-drop.js.map +1 -0
  30. package/dist/classes/liquid-engine.d.ts +7 -0
  31. package/dist/classes/liquid-engine.d.ts.map +1 -0
  32. package/dist/classes/liquid-engine.js +72 -0
  33. package/dist/classes/liquid-engine.js.map +1 -0
  34. package/dist/classes/package.d.ts +31 -0
  35. package/dist/classes/package.d.ts.map +1 -0
  36. package/dist/classes/package.js +268 -0
  37. package/dist/classes/package.js.map +1 -0
  38. package/dist/classes/platform-detector.d.ts +14 -0
  39. package/dist/classes/platform-detector.d.ts.map +1 -0
  40. package/dist/classes/platform-detector.js +26 -0
  41. package/dist/classes/platform-detector.js.map +1 -0
  42. package/dist/classes/policies.d.ts +14 -0
  43. package/dist/classes/policies.d.ts.map +1 -0
  44. package/dist/classes/policies.js +20 -0
  45. package/dist/classes/policies.js.map +1 -0
  46. package/dist/classes/template-expander.d.ts +29 -0
  47. package/dist/classes/template-expander.d.ts.map +1 -0
  48. package/dist/classes/template-expander.js +62 -0
  49. package/dist/classes/template-expander.js.map +1 -0
  50. package/dist/data/substitutions-variables.d.ts +43 -0
  51. package/dist/data/substitutions-variables.d.ts.map +1 -0
  52. package/dist/{lib → data}/substitutions-variables.js +1 -16
  53. package/dist/data/substitutions-variables.js.map +1 -0
  54. package/dist/functions/chmod-recursively.d.ts +9 -0
  55. package/dist/functions/chmod-recursively.d.ts.map +1 -0
  56. package/dist/functions/chmod-recursively.js +66 -0
  57. package/dist/functions/chmod-recursively.js.map +1 -0
  58. package/dist/functions/filter-paths.d.ts +5 -0
  59. package/dist/functions/filter-paths.d.ts.map +1 -0
  60. package/dist/functions/filter-paths.js +16 -0
  61. package/dist/functions/filter-paths.js.map +1 -0
  62. package/dist/functions/is-something.d.ts +9 -0
  63. package/dist/functions/is-something.d.ts.map +1 -0
  64. package/dist/functions/is-something.js +25 -0
  65. package/dist/functions/is-something.js.map +1 -0
  66. package/dist/functions/matrix-expander.d.ts +17 -0
  67. package/dist/functions/matrix-expander.d.ts.map +1 -0
  68. package/dist/functions/matrix-expander.js +52 -0
  69. package/dist/functions/matrix-expander.js.map +1 -0
  70. package/dist/functions/perform-substitutions.d.ts +12 -0
  71. package/dist/functions/perform-substitutions.d.ts.map +1 -0
  72. package/dist/functions/perform-substitutions.js +76 -0
  73. package/dist/functions/perform-substitutions.js.map +1 -0
  74. package/dist/functions/utils.d.ts +8 -0
  75. package/dist/functions/utils.d.ts.map +1 -0
  76. package/dist/functions/utils.js +16 -0
  77. package/dist/functions/utils.js.map +1 -0
  78. package/dist/index.d.ts +22 -15
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +22 -29
  81. package/dist/index.js.map +1 -1
  82. package/dist/{lib/types.d.ts → types/json.d.ts} +31 -22
  83. package/dist/types/json.d.ts.map +1 -0
  84. package/dist/types/json.js +2 -0
  85. package/dist/types/json.js.map +1 -0
  86. package/dist/types/xpm-init-template.d.ts +21 -0
  87. package/dist/types/xpm-init-template.d.ts.map +1 -0
  88. package/dist/types/xpm-init-template.js +2 -0
  89. package/dist/types/xpm-init-template.js.map +1 -0
  90. package/dist/types/xpm.d.ts +16 -0
  91. package/dist/types/xpm.d.ts.map +1 -0
  92. package/dist/types/xpm.js +2 -0
  93. package/dist/types/xpm.js.map +1 -0
  94. package/package.json +53 -44
  95. package/src/CODE-REVIEW.md +2167 -0
  96. package/src/README.md +393 -6
  97. package/src/classes/actions.ts +1157 -0
  98. package/src/classes/build-configurations.ts +2127 -0
  99. package/src/classes/combinations-generator.ts +331 -0
  100. package/src/classes/data-model.ts +337 -0
  101. package/src/classes/errors.ts +105 -0
  102. package/src/classes/init-template-base.ts +1028 -0
  103. package/src/classes/liquid-drop.ts +376 -0
  104. package/src/classes/liquid-engine.ts +249 -0
  105. package/src/classes/package.ts +765 -0
  106. package/src/classes/platform-detector.ts +237 -0
  107. package/src/classes/policies.ts +200 -0
  108. package/src/classes/template-expander.ts +330 -0
  109. package/src/data/substitutions-variables.ts +390 -0
  110. package/src/functions/chmod-recursively.ts +195 -0
  111. package/src/functions/filter-paths.ts +126 -0
  112. package/src/functions/is-something.ts +223 -0
  113. package/src/functions/matrix-expander.ts +172 -0
  114. package/src/functions/perform-substitutions.ts +253 -0
  115. package/src/functions/utils.ts +151 -0
  116. package/src/index.ts +72 -19
  117. package/src/types/json.ts +519 -0
  118. package/src/types/xpm-init-template.ts +282 -0
  119. package/src/types/xpm.ts +162 -0
  120. package/dist/lib/chmod-recursive.d.ts +0 -7
  121. package/dist/lib/chmod-recursive.d.ts.map +0 -1
  122. package/dist/lib/chmod-recursive.js +0 -81
  123. package/dist/lib/chmod-recursive.js.map +0 -1
  124. package/dist/lib/errors.d.ts +0 -11
  125. package/dist/lib/errors.d.ts.map +0 -1
  126. package/dist/lib/errors.js +0 -26
  127. package/dist/lib/errors.js.map +0 -1
  128. package/dist/lib/functions/chmod-recursive.d.ts +0 -7
  129. package/dist/lib/functions/chmod-recursive.d.ts.map +0 -1
  130. package/dist/lib/functions/chmod-recursive.js +0 -81
  131. package/dist/lib/functions/chmod-recursive.js.map +0 -1
  132. package/dist/lib/functions/perform-substitutions.d.ts +0 -20
  133. package/dist/lib/functions/perform-substitutions.d.ts.map +0 -1
  134. package/dist/lib/functions/perform-substitutions.js +0 -85
  135. package/dist/lib/functions/perform-substitutions.js.map +0 -1
  136. package/dist/lib/functions/utils.d.ts +0 -30
  137. package/dist/lib/functions/utils.d.ts.map +0 -1
  138. package/dist/lib/functions/utils.js +0 -70
  139. package/dist/lib/functions/utils.js.map +0 -1
  140. package/dist/lib/init-template-base.d.ts +0 -46
  141. package/dist/lib/init-template-base.d.ts.map +0 -1
  142. package/dist/lib/init-template-base.js +0 -281
  143. package/dist/lib/init-template-base.js.map +0 -1
  144. package/dist/lib/liquid-actions.d.ts +0 -37
  145. package/dist/lib/liquid-actions.d.ts.map +0 -1
  146. package/dist/lib/liquid-actions.js +0 -148
  147. package/dist/lib/liquid-actions.js.map +0 -1
  148. package/dist/lib/liquid-build-configurations.d.ts +0 -47
  149. package/dist/lib/liquid-build-configurations.d.ts.map +0 -1
  150. package/dist/lib/liquid-build-configurations.js +0 -282
  151. package/dist/lib/liquid-build-configurations.js.map +0 -1
  152. package/dist/lib/liquid-drop.d.ts +0 -13
  153. package/dist/lib/liquid-drop.d.ts.map +0 -1
  154. package/dist/lib/liquid-drop.js +0 -56
  155. package/dist/lib/liquid-drop.js.map +0 -1
  156. package/dist/lib/liquid-engine.d.ts +0 -5
  157. package/dist/lib/liquid-engine.d.ts.map +0 -1
  158. package/dist/lib/liquid-engine.js +0 -85
  159. package/dist/lib/liquid-engine.js.map +0 -1
  160. package/dist/lib/liquid-package.d.ts +0 -17
  161. package/dist/lib/liquid-package.d.ts.map +0 -1
  162. package/dist/lib/liquid-package.js +0 -70
  163. package/dist/lib/liquid-package.js.map +0 -1
  164. package/dist/lib/package.d.ts +0 -66
  165. package/dist/lib/package.d.ts.map +0 -1
  166. package/dist/lib/package.js +0 -700
  167. package/dist/lib/package.js.map +0 -1
  168. package/dist/lib/perform-substitutions.d.ts +0 -20
  169. package/dist/lib/perform-substitutions.d.ts.map +0 -1
  170. package/dist/lib/perform-substitutions.js +0 -85
  171. package/dist/lib/perform-substitutions.js.map +0 -1
  172. package/dist/lib/policies.d.ts +0 -14
  173. package/dist/lib/policies.d.ts.map +0 -1
  174. package/dist/lib/policies.js +0 -33
  175. package/dist/lib/policies.js.map +0 -1
  176. package/dist/lib/substitutions-variables.d.ts +0 -117
  177. package/dist/lib/substitutions-variables.d.ts.map +0 -1
  178. package/dist/lib/substitutions-variables.js.map +0 -1
  179. package/dist/lib/types.d.ts.map +0 -1
  180. package/dist/lib/types.js +0 -13
  181. package/dist/lib/types.js.map +0 -1
  182. package/dist/lib/utils.d.ts +0 -30
  183. package/dist/lib/utils.d.ts.map +0 -1
  184. package/dist/lib/utils.js +0 -70
  185. package/dist/lib/utils.js.map +0 -1
  186. package/dist/tsconfig.tsbuildinfo +0 -1
  187. package/src/lib/errors.ts +0 -29
  188. package/src/lib/functions/chmod-recursive.ts +0 -103
  189. package/src/lib/functions/perform-substitutions.ts +0 -116
  190. package/src/lib/functions/utils.ts +0 -88
  191. package/src/lib/init-template-base.ts +0 -408
  192. package/src/lib/liquid-actions.ts +0 -223
  193. package/src/lib/liquid-build-configurations.ts +0 -433
  194. package/src/lib/liquid-drop.ts +0 -99
  195. package/src/lib/liquid-engine.ts +0 -135
  196. package/src/lib/liquid-package.ts +0 -108
  197. package/src/lib/package.ts +0 -947
  198. package/src/lib/policies.ts +0 -51
  199. package/src/lib/substitutions-variables.ts +0 -177
  200. package/src/lib/types.ts +0 -109
  201. package/src/package.json +0 -3
  202. package/src/tsconfig.json +0 -10
@@ -1,19 +1,6 @@
1
- /*
2
- * This file is part of the xPack project (http://xpack.github.io).
3
- * Copyright (c) 2021-2026 Liviu Ionescu. All rights reserved.
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software
6
- * for any purpose is hereby granted, under the terms of the MIT license.
7
- *
8
- * If a copy of the license was not distributed with this file, it can
9
- * be obtained from https://opensource.org/license/mit.
10
- */
11
- /* eslint max-len: [ "error", 80, { "ignoreUrls": true } ] */
12
- // ----------------------------------------------------------------------------
13
1
  import * as os from 'node:os';
14
2
  import * as path from 'node:path';
15
- // eslint-disable-next-line max-len
16
- export const xpmLiquidSubstitutionsVariablesBase = {
3
+ export const liquidSubstitutionsVariablesBase = {
17
4
  env: process.env,
18
5
  os: {
19
6
  EOL: os.EOL,
@@ -30,7 +17,6 @@ export const xpmLiquidSubstitutionsVariablesBase = {
30
17
  release: os.release(),
31
18
  tmpdir: os.tmpdir(),
32
19
  type: os.type(),
33
- // os.version() available since 12.x
34
20
  version: os.version(),
35
21
  },
36
22
  path: {
@@ -47,5 +33,4 @@ export const xpmLiquidSubstitutionsVariablesBase = {
47
33
  },
48
34
  properties: {},
49
35
  };
50
- // ----------------------------------------------------------------------------
51
36
  //# sourceMappingURL=substitutions-variables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"substitutions-variables.js","sourceRoot":"","sources":["../../src/data/substitutions-variables.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAoVjC,MAAM,CAAC,MAAM,gCAAgC,GAAiC;IAC5E,GAAG,EAAE,OAAO,CAAC,GAAG;IAChB,EAAE,EAAE;QACF,GAAG,EAAE,EAAE,CAAC,GAAG;QACX,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;QACf,SAAS,EAAE;YACT,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO;YAC7B,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK;SAC1B;QACD,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;QACf,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE;QAC3B,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE;QACrB,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;QACvB,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;QACvB,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE;QACrB,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE;QACnB,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;QAEf,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE;KACtB;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE;YACL,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;SACpB;QACD,KAAK,EAAE;YACL,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;SACpB;KACF;IACD,UAAU,EAAE,EAAE;CACf,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { Logger } from '@xpack/logger';
2
+ export declare function chmodRecursively({ inputPath, readOnly, log, depth, maxDepth, }: {
3
+ inputPath: string;
4
+ readOnly: boolean;
5
+ log: Logger;
6
+ depth?: number;
7
+ maxDepth?: number;
8
+ }): Promise<void>;
9
+ //# sourceMappingURL=chmod-recursively.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chmod-recursively.d.ts","sourceRoot":"","sources":["../../src/functions/chmod-recursively.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAoEtC,wBAAsB,gBAAgB,CAAC,EACrC,SAAS,EACT,QAAQ,EACR,GAAG,EACH,KAAS,EACT,QAAsC,GACvC,EAAE;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8FhB"}
@@ -0,0 +1,66 @@
1
+ import assert from 'node:assert';
2
+ import * as fs from 'node:fs/promises';
3
+ import * as path from 'node:path';
4
+ import { ConfigurationError } from '../index.js';
5
+ const CHMOD_RECURSIVELY_MAX_DEPTH = 42;
6
+ export async function chmodRecursively({ inputPath, readOnly, log, depth = 0, maxDepth = CHMOD_RECURSIVELY_MAX_DEPTH, }) {
7
+ assert(inputPath, 'inputPath is required');
8
+ assert(log, 'log is required');
9
+ assert(maxDepth > 0, 'maxDepth must be a positive integer');
10
+ if (depth > maxDepth) {
11
+ throw new ConfigurationError(`Recursion depth limit exceeded ` +
12
+ `(${String(maxDepth)} levels) ` +
13
+ `whilst processing: ${inputPath}`);
14
+ }
15
+ const stat = await fs.lstat(inputPath);
16
+ if (stat.isSymbolicLink()) {
17
+ log.trace(inputPath, 'is a symbolic link, skipping');
18
+ return;
19
+ }
20
+ if (readOnly && stat.isDirectory()) {
21
+ log.trace(inputPath);
22
+ const dirents = await fs.readdir(inputPath, {
23
+ withFileTypes: true,
24
+ });
25
+ for (const dirent of dirents) {
26
+ await chmodRecursively({
27
+ inputPath: path.resolve(inputPath, dirent.name),
28
+ readOnly,
29
+ log,
30
+ depth: depth + 1,
31
+ });
32
+ }
33
+ }
34
+ const mode = stat.mode;
35
+ const newMode = readOnly
36
+ ? mode &
37
+ ~(fs.constants.S_IWUSR | fs.constants.S_IWGRP | fs.constants.S_IWOTH)
38
+ : mode | fs.constants.S_IWUSR;
39
+ await fs.chmod(inputPath, newMode);
40
+ const actualStat = await fs.stat(inputPath);
41
+ if (readOnly) {
42
+ if ((actualStat.mode & fs.constants.S_IWUSR) !== 0) {
43
+ log.warn(`${inputPath} not set to RO`);
44
+ }
45
+ }
46
+ else {
47
+ if ((actualStat.mode & fs.constants.S_IWUSR) === 0) {
48
+ log.warn(`${inputPath} not set to RW`);
49
+ }
50
+ }
51
+ if (!readOnly && stat.isDirectory()) {
52
+ log.trace(inputPath);
53
+ const dirents = await fs.readdir(inputPath, {
54
+ withFileTypes: true,
55
+ });
56
+ for (const dirent of dirents) {
57
+ await chmodRecursively({
58
+ inputPath: path.resolve(inputPath, dirent.name),
59
+ readOnly,
60
+ log,
61
+ depth: depth + 1,
62
+ });
63
+ }
64
+ }
65
+ }
66
+ //# sourceMappingURL=chmod-recursively.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chmod-recursively.js","sourceRoot":"","sources":["../../src/functions/chmod-recursively.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { PlatformDetector } from '../classes/platform-detector.js';
2
+ export declare function filterPath(input: string, platformDetector?: PlatformDetector): string;
3
+ export declare function filterPosixPath(input: string): string;
4
+ export declare function filterWin32Path(input: string): string;
5
+ //# sourceMappingURL=filter-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-paths.d.ts","sourceRoot":"","sources":["../../src/functions/filter-paths.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAqClE,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,gBAAgB,GAAE,gBAAyC,GAC1D,MAAM,CAKR;AA2BD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrD;AA4BD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrD"}
@@ -0,0 +1,16 @@
1
+ import { PlatformDetector } from '../classes/platform-detector.js';
2
+ export function filterPath(input, platformDetector = new PlatformDetector()) {
3
+ const fixed = platformDetector.isWindows()
4
+ ? input.replace(/[^a-zA-Z0-9\\:]+/g, '-')
5
+ : input.replace(/[^a-zA-Z0-9/]+/g, '-');
6
+ return fixed.replace(/--/g, '-');
7
+ }
8
+ export function filterPosixPath(input) {
9
+ const fixed = input.replace(/[^a-zA-Z0-9/]+/g, '-');
10
+ return fixed.replace(/--/g, '-');
11
+ }
12
+ export function filterWin32Path(input) {
13
+ const fixed = input.replace(/[^a-zA-Z0-9\\:]+/g, '-');
14
+ return fixed.replace(/--/g, '-');
15
+ }
16
+ //# sourceMappingURL=filter-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-paths.js","sourceRoot":"","sources":["../../src/functions/filter-paths.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAqClE,MAAM,UAAU,UAAU,CACxB,KAAa,EACb,mBAAqC,IAAI,gBAAgB,EAAE;IAE3D,MAAM,KAAK,GAAG,gBAAgB,CAAC,SAAS,EAAE;QACxC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC;QACzC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAA;IACzC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAClC,CAAC;AA2BD,MAAM,UAAU,eAAe,CAAC,KAAa;IAE3C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAA;IAEnD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAClC,CAAC;AA4BD,MAAM,UAAU,eAAe,CAAC,KAAa;IAE3C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAA;IAErD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAClC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare function isPrimitive(value: unknown): boolean;
2
+ export declare function isString(value: unknown): boolean;
3
+ export declare function isNumber(value: unknown): boolean;
4
+ export declare function isBoolean(value: unknown): boolean;
5
+ export declare function isObject(value: unknown): boolean;
6
+ export declare function isJsonObject(value: unknown): boolean;
7
+ export declare function isJsonArray(value: unknown): boolean;
8
+ export declare function isNonEmptyJsonObject(value: unknown): boolean;
9
+ //# sourceMappingURL=is-something.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-something.d.ts","sourceRoot":"","sources":["../../src/functions/is-something.ts"],"names":[],"mappings":"AAkCA,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAInD;AAwBD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEhD;AA6BD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEhD;AAoBD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEjD;AAsBD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEhD;AAyBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpD;AAsBD,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEnD;AA0BD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE5D"}
@@ -0,0 +1,25 @@
1
+ export function isPrimitive(value) {
2
+ return ((typeof value !== 'object' && typeof value !== 'function') || value === null);
3
+ }
4
+ export function isString(value) {
5
+ return typeof value === 'string';
6
+ }
7
+ export function isNumber(value) {
8
+ return typeof value === 'number' && isFinite(value);
9
+ }
10
+ export function isBoolean(value) {
11
+ return typeof value === 'boolean';
12
+ }
13
+ export function isObject(value) {
14
+ return typeof value === 'object' && !Array.isArray(value);
15
+ }
16
+ export function isJsonObject(value) {
17
+ return value !== undefined && !isPrimitive(value) && !Array.isArray(value);
18
+ }
19
+ export function isJsonArray(value) {
20
+ return value !== undefined && Array.isArray(value);
21
+ }
22
+ export function isNonEmptyJsonObject(value) {
23
+ return isJsonObject(value) && Object.keys(value).length > 0;
24
+ }
25
+ //# sourceMappingURL=is-something.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-something.js","sourceRoot":"","sources":["../../src/functions/is-something.ts"],"names":[],"mappings":"AAkCA,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,CACL,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC,IAAI,KAAK,KAAK,IAAI,CAC7E,CAAA;AACH,CAAC;AAwBD,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAA;AAClC,CAAC;AA6BD,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAA;AACrD,CAAC;AAoBD,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,SAAS,CAAA;AACnC,CAAC;AAsBD,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC3D,CAAC;AAyBD,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,KAAK,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC5E,CAAC;AAsBD,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AACpD,CAAC;AA0BD,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;AACvE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { Logger } from '@xpack/logger';
2
+ import { LiquidEngine } from '../classes/liquid-engine.js';
3
+ import { LiquidSubstitutionsVariables } from '../data/substitutions-variables.js';
4
+ import { JsonTemplateMatrix } from '../types/json.js';
5
+ export interface ProcessedMatrix {
6
+ matrixKeys: string[];
7
+ matrixValues: string[][];
8
+ }
9
+ export declare function processMatrixForExpansion({ matrix, templateName, templateType, engine, substitutionsVariables, log, }: {
10
+ matrix: JsonTemplateMatrix;
11
+ templateName: string;
12
+ templateType: 'action' | 'buildConfiguration';
13
+ engine: LiquidEngine;
14
+ substitutionsVariables: LiquidSubstitutionsVariables;
15
+ log: Logger;
16
+ }): Promise<ProcessedMatrix>;
17
+ //# sourceMappingURL=matrix-expander.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix-expander.d.ts","sourceRoot":"","sources":["../../src/functions/matrix-expander.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAItC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAA;AAMjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAWrD,MAAM,WAAW,eAAe;IAI9B,UAAU,EAAE,MAAM,EAAE,CAAA;IAKpB,YAAY,EAAE,MAAM,EAAE,EAAE,CAAA;CACzB;AA8CD,wBAAsB,yBAAyB,CAAC,EAC9C,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,sBAAsB,EACtB,GAAG,GACJ,EAAE;IACD,MAAM,EAAE,kBAAkB,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,QAAQ,GAAG,oBAAoB,CAAA;IAC7C,MAAM,EAAE,YAAY,CAAA;IACpB,sBAAsB,EAAE,4BAA4B,CAAA;IACpD,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,OAAO,CAAC,eAAe,CAAC,CA8D3B"}
@@ -0,0 +1,52 @@
1
+ import * as os from 'node:os';
2
+ import { ConfigurationError } from '../classes/errors.js';
3
+ import { isJsonArray, isString } from './is-something.js';
4
+ import { performSubstitutions } from './perform-substitutions.js';
5
+ import { hasLiquidSyntax } from './utils.js';
6
+ import { getErrorMessage } from './utils.js';
7
+ export async function processMatrixForExpansion({ matrix, templateName, templateType, engine, substitutionsVariables, log, }) {
8
+ const matrixKeys = [];
9
+ const matrixValues = [];
10
+ for (const [matrixKey, matrixValueArray] of Object.entries(matrix)) {
11
+ if (!isJsonArray(matrixValueArray)) {
12
+ throw new ConfigurationError(`${templateType} "${templateName}" ` +
13
+ `matrix.${matrixKey} is not an array`);
14
+ }
15
+ if (matrixValueArray.length === 0) {
16
+ throw new ConfigurationError(`${templateType} "${templateName}" ` +
17
+ `matrix.${matrixKey} cannot be empty`);
18
+ }
19
+ const validatedArray = matrixValueArray;
20
+ for (const matrixValue of validatedArray) {
21
+ if (!isString(matrixValue)) {
22
+ throw new ConfigurationError(`${templateType} "${templateName}" ` +
23
+ `matrix.${matrixKey} value is not a string`);
24
+ }
25
+ }
26
+ matrixKeys.push(matrixKey);
27
+ const stringValue = validatedArray.join(os.EOL);
28
+ if (hasLiquidSyntax(stringValue)) {
29
+ let substitutedValue;
30
+ try {
31
+ substitutedValue = await performSubstitutions({
32
+ input: stringValue,
33
+ engine,
34
+ substitutionsVariables,
35
+ log,
36
+ });
37
+ }
38
+ catch (error) {
39
+ const message = getErrorMessage(error) +
40
+ ` in ${templateType} "${templateName}" ` +
41
+ `matrix substitution`;
42
+ throw new ConfigurationError(message);
43
+ }
44
+ matrixValues.push(substitutedValue.replace(new RegExp(os.EOL + '$'), '').split(os.EOL));
45
+ }
46
+ else {
47
+ matrixValues.push(validatedArray);
48
+ }
49
+ }
50
+ return { matrixKeys, matrixValues };
51
+ }
52
+ //# sourceMappingURL=matrix-expander.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix-expander.js","sourceRoot":"","sources":["../../src/functions/matrix-expander.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAQ7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAoE5C,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,EAC9C,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,sBAAsB,EACtB,GAAG,GAQJ;IACC,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,MAAM,YAAY,GAAe,EAAE,CAAA;IAEnC,KAAK,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,kBAAkB,CAC1B,GAAG,YAAY,KAAK,YAAY,IAAI;gBAClC,UAAU,SAAS,kBAAkB,CACxC,CAAA;QACH,CAAC;QAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,kBAAkB,CAC1B,GAAG,YAAY,KAAK,YAAY,IAAI;gBAClC,UAAU,SAAS,kBAAkB,CACxC,CAAA;QACH,CAAC;QAGD,MAAM,cAAc,GAAG,gBAA6B,CAAA;QAEpD,KAAK,MAAM,WAAW,IAAI,cAAc,EAAE,CAAC;YACzC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,kBAAkB,CAC1B,GAAG,YAAY,KAAK,YAAY,IAAI;oBAClC,UAAU,SAAS,wBAAwB,CAC9C,CAAA;YACH,CAAC;QACH,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1B,MAAM,WAAW,GAAI,cAA2B,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;QAE7D,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,IAAI,gBAAgB,CAAA;YACpB,IAAI,CAAC;gBACH,gBAAgB,GAAG,MAAM,oBAAoB,CAAC;oBAC5C,KAAK,EAAE,WAAW;oBAClB,MAAM;oBACN,sBAAsB;oBACtB,GAAG;iBACJ,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GACX,eAAe,CAAC,KAAK,CAAC;oBACtB,OAAO,YAAY,KAAK,YAAY,IAAI;oBACxC,qBAAqB,CAAA;gBACvB,MAAM,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAA;YACvC,CAAC;YAGD,YAAY,CAAC,IAAI,CACf,gBAAgB,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CACrE,CAAA;QACH,CAAC;aAAM,CAAC;YAEN,YAAY,CAAC,IAAI,CAAC,cAA0B,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAA;AACrC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Logger } from '@xpack/logger';
2
+ import { LiquidEngine } from '../classes/liquid-engine.js';
3
+ import { LiquidSubstitutionsVariables } from '../data/substitutions-variables.js';
4
+ export declare function performSubstitutions({ engine, input, substitutionsVariables, log, maxIterations, maxOutputSize, }: {
5
+ engine: LiquidEngine;
6
+ input: string;
7
+ substitutionsVariables: LiquidSubstitutionsVariables;
8
+ log: Logger;
9
+ maxIterations?: number;
10
+ maxOutputSize?: number;
11
+ }): Promise<string>;
12
+ //# sourceMappingURL=perform-substitutions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perform-substitutions.d.ts","sourceRoot":"","sources":["../../src/functions/perform-substitutions.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAItC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAM1D,OAAO,EACL,4BAA4B,EAE7B,MAAM,oCAAoC,CAAA;AAyE3C,wBAAsB,oBAAoB,CAAC,EACzC,MAAM,EACN,KAAK,EACL,sBAAsB,EACtB,GAAG,EACH,aAAmD,EACnD,aAAoD,GACrD,EAAE;IACD,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,sBAAsB,EAAE,4BAA4B,CAAA;IACpD,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqIlB"}
@@ -0,0 +1,76 @@
1
+ import assert from 'node:assert';
2
+ import { Context } from 'liquidjs';
3
+ import { TemplateError } from '../classes/errors.js';
4
+ import { LiquidPropertiesDrop, LiquidMatrixDrop, } from '../classes/liquid-drop.js';
5
+ const PERFORM_SUBSTITUTION_MAX_ITERATIONS = 42;
6
+ const PERFORM_SUBSTITUTION_MAX_OUTPUT_SIZE = 42 * 1024;
7
+ export async function performSubstitutions({ engine, input, substitutionsVariables, log, maxIterations = PERFORM_SUBSTITUTION_MAX_ITERATIONS, maxOutputSize = PERFORM_SUBSTITUTION_MAX_OUTPUT_SIZE, }) {
8
+ assert(engine, 'engine is required');
9
+ assert(substitutionsVariables, 'substitutionsVariables is required');
10
+ assert(log, 'log is required');
11
+ assert(maxIterations > 0, 'maxIterations must be a positive integer');
12
+ assert(maxOutputSize > 0, 'maxOutputSize must be a positive integer');
13
+ if (input.trim() === '') {
14
+ return input;
15
+ }
16
+ let properties = substitutionsVariables.properties;
17
+ let matrix = substitutionsVariables.matrix;
18
+ if (Object.keys(substitutionsVariables.properties).length > 0) {
19
+ properties = new LiquidPropertiesDrop({
20
+ log,
21
+ engine,
22
+ properties: substitutionsVariables.properties,
23
+ });
24
+ }
25
+ if (substitutionsVariables.matrix &&
26
+ Object.keys(substitutionsVariables.matrix).length > 0) {
27
+ matrix = new LiquidMatrixDrop({
28
+ log,
29
+ engine,
30
+ matrix: substitutionsVariables.matrix,
31
+ });
32
+ }
33
+ const context = new Context({
34
+ ...substitutionsVariables,
35
+ properties,
36
+ matrix,
37
+ }, engine.options, { sync: false });
38
+ log.trace(`performSubstitutions('${input}')`);
39
+ let current = input;
40
+ let substituted = current;
41
+ let count = 0;
42
+ const LIQUID_SYNTAX_REGEX = /\{\{|\{%/;
43
+ while (LIQUID_SYNTAX_REGEX.test(current)) {
44
+ if (++count > maxIterations) {
45
+ throw new TemplateError(`Substitution limit exceeded ` +
46
+ `(${String(maxIterations)} iterations). ` +
47
+ `Possible circular reference in template.`);
48
+ }
49
+ try {
50
+ substituted = (await engine.parseAndRender(current, context));
51
+ if (substituted.length > maxOutputSize) {
52
+ throw new TemplateError(`Template expansion exceeded size limit ` +
53
+ `(${String(maxOutputSize)} bytes). ` +
54
+ `Output was ${String(substituted.length)} bytes.`);
55
+ }
56
+ if (substituted === current) {
57
+ log.warn(`performSubstitutions() step ${String(count)} => (`, substituted, ') did not change');
58
+ break;
59
+ }
60
+ }
61
+ catch (error) {
62
+ if (error instanceof Error) {
63
+ log.trace(`Liquid error: ${error.message}`);
64
+ const cleanMessage = error.message.replace(/, line:.*/g, '');
65
+ throw new TemplateError(cleanMessage);
66
+ }
67
+ else {
68
+ throw new TemplateError(String(error));
69
+ }
70
+ }
71
+ log.trace(`performSubstitutions() step ${String(count)} => (`, substituted, ')');
72
+ current = substituted;
73
+ }
74
+ return substituted;
75
+ }
76
+ //# sourceMappingURL=perform-substitutions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perform-substitutions.js","sourceRoot":"","sources":["../../src/functions/perform-substitutions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { PlatformDetector } from '../classes/platform-detector.js';
2
+ export declare function getErrorMessage(error: unknown): string;
3
+ export declare function getPlatformKey({ doForce32bit, platformDetector, }?: {
4
+ doForce32bit?: boolean;
5
+ platformDetector?: PlatformDetector;
6
+ }): string;
7
+ export declare function hasLiquidSyntax(value: string): boolean;
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/functions/utils.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAsClE,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKtD;AA0CD,wBAAgB,cAAc,CAAC,EAC7B,YAAoB,EACpB,gBAAyC,GAC1C,GAAE;IACD,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;CAC/B,GAAG,MAAM,CAId;AAsCD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD"}
@@ -0,0 +1,16 @@
1
+ import { PlatformDetector } from '../classes/platform-detector.js';
2
+ export function getErrorMessage(error) {
3
+ if (error instanceof Error) {
4
+ return error.message;
5
+ }
6
+ return String(error);
7
+ }
8
+ export function getPlatformKey({ doForce32bit = false, platformDetector = new PlatformDetector(), } = {}) {
9
+ const { platform, arch } = platformDetector.getPlatformInfo({ doForce32bit });
10
+ const key = `${platform}-${arch}`;
11
+ return key;
12
+ }
13
+ export function hasLiquidSyntax(value) {
14
+ return /\{\{|\{%/.test(value);
15
+ }
16
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/functions/utils.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAsClE,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAA;IACtB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC;AA0CD,MAAM,UAAU,cAAc,CAAC,EAC7B,YAAY,GAAG,KAAK,EACpB,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,MAIvC,EAAE;IACJ,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC,CAAA;IAC7E,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAA;IACjC,OAAO,GAAG,CAAA;AACZ,CAAC;AAsCD,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC/B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,16 +1,23 @@
1
- export * from './lib/functions/chmod-recursive.js';
2
- export * from './lib/functions/perform-substitutions.js';
3
- export * from './lib/functions/utils.js';
4
- export * from './lib/errors.js';
5
- export * from './lib/init-template-base.js';
6
- export * from './lib/liquid-actions.js';
7
- export * from './lib/liquid-build-configurations.js';
8
- export * from './lib/liquid-drop.js';
9
- export * from './lib/liquid-engine.js';
10
- export * from './lib/liquid-package.js';
11
- export * from './lib/package.js';
12
- export * from './lib/policies.js';
13
- export * from './lib/substitutions-variables.js';
14
- export * from './lib/types.js';
15
- export * from 'liquidjs';
1
+ export * from './functions/chmod-recursively.js';
2
+ export * from './functions/filter-paths.js';
3
+ export * from './functions/is-something.js';
4
+ export * from './functions/matrix-expander.js';
5
+ export * from './functions/perform-substitutions.js';
6
+ export * from './functions/utils.js';
7
+ export * from './classes/errors.js';
8
+ export * from './classes/init-template-base.js';
9
+ export * from './classes/actions.js';
10
+ export * from './classes/build-configurations.js';
11
+ export * from './classes/combinations-generator.js';
12
+ export * from './classes/liquid-drop.js';
13
+ export * from './classes/liquid-engine.js';
14
+ export * from './classes/data-model.js';
15
+ export * from './classes/package.js';
16
+ export * from './classes/platform-detector.js';
17
+ export * from './classes/policies.js';
18
+ export * from './classes/template-expander.js';
19
+ export * from './data/substitutions-variables.js';
20
+ export * from './types/json.js';
21
+ export * from './types/xpm-init-template.js';
22
+ export * from './types/xpm.js';
16
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,cAAc,oCAAoC,CAAA;AAClD,cAAc,0CAA0C,CAAA;AACxD,cAAc,0BAA0B,CAAA;AAExC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,sCAAsC,CAAA;AACpD,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kCAAkC,CAAA;AAChD,cAAc,gBAAgB,CAAA;AAE9B,cAAc,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAsDA,cAAc,kCAAkC,CAAA;AAChD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,sCAAsC,CAAA;AACpD,cAAc,sBAAsB,CAAA;AAEpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sBAAsB,CAAA;AACpC,cAAc,mCAAmC,CAAA;AACjD,cAAc,qCAAqC,CAAA;AACnD,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAE9C,cAAc,mCAAmC,CAAA;AAEjD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gBAAgB,CAAA"}
package/dist/index.js CHANGED
@@ -1,30 +1,23 @@
1
- /*
2
- * This file is part of the xPack project (http://xpack.github.io).
3
- * Copyright (c) 2021-2026 Liviu Ionescu. All rights reserved.
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software
6
- * for any purpose is hereby granted, under the terms of the MIT license.
7
- *
8
- * If a copy of the license was not distributed with this file, it can
9
- * be obtained from https://opensource.org/license/mit.
10
- */
11
- /* eslint max-len: [ "error", 80, { "ignoreUrls": true } ] */
12
- // ----------------------------------------------------------------------------
13
- // Re-export all library definitions.
14
- export * from './lib/functions/chmod-recursive.js';
15
- export * from './lib/functions/perform-substitutions.js';
16
- export * from './lib/functions/utils.js';
17
- export * from './lib/errors.js';
18
- export * from './lib/init-template-base.js';
19
- export * from './lib/liquid-actions.js';
20
- export * from './lib/liquid-build-configurations.js';
21
- export * from './lib/liquid-drop.js';
22
- export * from './lib/liquid-engine.js';
23
- export * from './lib/liquid-package.js';
24
- export * from './lib/package.js';
25
- export * from './lib/policies.js';
26
- export * from './lib/substitutions-variables.js';
27
- export * from './lib/types.js';
28
- export * from 'liquidjs';
29
- // ----------------------------------------------------------------------------
1
+ export * from './functions/chmod-recursively.js';
2
+ export * from './functions/filter-paths.js';
3
+ export * from './functions/is-something.js';
4
+ export * from './functions/matrix-expander.js';
5
+ export * from './functions/perform-substitutions.js';
6
+ export * from './functions/utils.js';
7
+ export * from './classes/errors.js';
8
+ export * from './classes/init-template-base.js';
9
+ export * from './classes/actions.js';
10
+ export * from './classes/build-configurations.js';
11
+ export * from './classes/combinations-generator.js';
12
+ export * from './classes/liquid-drop.js';
13
+ export * from './classes/liquid-engine.js';
14
+ export * from './classes/data-model.js';
15
+ export * from './classes/package.js';
16
+ export * from './classes/platform-detector.js';
17
+ export * from './classes/policies.js';
18
+ export * from './classes/template-expander.js';
19
+ export * from './data/substitutions-variables.js';
20
+ export * from './types/json.js';
21
+ export * from './types/xpm-init-template.js';
22
+ export * from './types/xpm.js';
30
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,6DAA6D;AAE7D,+EAA+E;AAE/E,qCAAqC;AACrC,cAAc,oCAAoC,CAAA;AAClD,cAAc,0CAA0C,CAAA;AACxD,cAAc,0BAA0B,CAAA;AAExC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,sCAAsC,CAAA;AACpD,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kCAAkC,CAAA;AAChD,cAAc,gBAAgB,CAAA;AAE9B,cAAc,UAAU,CAAA;AAExB,+EAA+E"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAsDA,cAAc,kCAAkC,CAAA;AAChD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,sCAAsC,CAAA;AACpD,cAAc,sBAAsB,CAAA;AAEpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sBAAsB,CAAA;AACpC,cAAc,mCAAmC,CAAA;AACjD,cAAc,qCAAqC,CAAA;AACnD,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAE9C,cAAc,mCAAmC,CAAA;AAEjD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gBAAgB,CAAA"}
@@ -1,13 +1,22 @@
1
- import { Logger } from '@xpack/logger';
2
- export type JsonActionValue = string | string[];
3
- export type JsonPropertyValue = string;
1
+ export type JsonPropertyValue = any;
4
2
  export type JsonProperties = Record<string, JsonPropertyValue>;
5
3
  export type JsonBuildConfigurationInherits = string[];
6
- export type JsonActions = Record<string, JsonActionValue>;
7
4
  export type JsonScripts = Record<string, string>;
8
- export type JsonDependencies = Record<string, string | JsonDependencyExtended>;
9
- export type JsonDependencyExtended = Record<string, string>;
10
- export interface JsonBuildConfiguration {
5
+ export type JsonDependencies = Record<string, JsonDependenciesContent>;
6
+ export type JsonDependenciesContent = string | JsonDependencyExtended;
7
+ export interface JsonDependencyExtended {
8
+ specifier: string;
9
+ local?: 'link' | 'copy';
10
+ platforms?: string | string[];
11
+ }
12
+ export type JsonActionContent = string | string[];
13
+ export interface JsonActionTemplate {
14
+ matrix: JsonTemplateMatrix;
15
+ template: JsonActionContent;
16
+ }
17
+ export type JsonAction = JsonActionContent | JsonActionTemplate;
18
+ export type JsonActions = Record<string, JsonAction>;
19
+ export interface JsonBuildConfigurationContent {
11
20
  inherits?: JsonBuildConfigurationInherits | string;
12
21
  inherit?: JsonBuildConfigurationInherits | string;
13
22
  hidden?: boolean;
@@ -15,17 +24,25 @@ export interface JsonBuildConfiguration {
15
24
  actions?: JsonActions;
16
25
  dependencies?: JsonDependencies;
17
26
  devDependencies?: JsonDependencies;
27
+ [key: string]: JsonPropertyValue;
28
+ }
29
+ export interface JsonBuildConfigurationTemplate {
30
+ matrix: JsonTemplateMatrix;
31
+ template: JsonBuildConfigurationContent;
18
32
  }
33
+ export type JsonTemplateMatrix = Record<string, JsonTemplateMatrixContent>;
34
+ export type JsonTemplateMatrixContent = string[];
35
+ export type JsonBuildConfiguration = JsonBuildConfigurationContent | JsonBuildConfigurationTemplate;
19
36
  export type JsonBuildConfigurations = Record<string, JsonBuildConfiguration>;
20
37
  export interface JsonXpack {
21
38
  minimumXpmRequired?: string;
22
39
  binaries?: JsonXpmBinaries;
23
40
  executables?: Record<string, string>;
24
41
  bin?: Record<string, string>;
25
- properties?: JsonProperties;
26
- actions?: JsonActions;
27
42
  dependencies?: JsonDependencies;
28
43
  devDependencies?: JsonDependencies;
44
+ properties?: JsonProperties;
45
+ actions?: JsonActions;
29
46
  buildConfigurations?: JsonBuildConfigurations;
30
47
  }
31
48
  export type JsonXpmBinariesPlatforms = Record<string, JsonXpmPlatformFile>;
@@ -54,17 +71,9 @@ export interface JsonNpmPackage {
54
71
  export interface JsonXpmPackage extends JsonNpmPackage {
55
72
  xpack: JsonXpack;
56
73
  }
57
- export type XpmLiquidActionCommands = string[];
58
- export interface XpmConfig {
59
- doForce?: boolean;
60
- doSkipIfInstalled?: boolean;
61
- isDryRun?: boolean;
62
- properties?: Record<string, string | boolean | number>;
63
- [key: string]: unknown;
64
- }
65
- export interface XpmContext {
66
- log: Logger;
67
- config: XpmConfig;
68
- [key: string]: any;
74
+ export interface JsonPackageSpecifier {
75
+ scope?: string;
76
+ name?: string;
77
+ version?: string;
69
78
  }
70
- //# sourceMappingURL=types.d.ts.map
79
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/types/json.ts"],"names":[],"mappings":"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"}