@udondan/avanti 0.13.0 → 0.15.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 (84) hide show
  1. package/README.md +303 -265
  2. package/dist/commands/diff.d.ts.map +1 -1
  3. package/dist/commands/diff.js +116 -32
  4. package/dist/commands/diff.js.map +1 -1
  5. package/dist/commands/lock.js +19 -10
  6. package/dist/commands/lock.js.map +1 -1
  7. package/dist/commands/log.js +18 -9
  8. package/dist/commands/log.js.map +1 -1
  9. package/dist/commands/pull.d.ts.map +1 -1
  10. package/dist/commands/pull.js +142 -36
  11. package/dist/commands/pull.js.map +1 -1
  12. package/dist/commands/reset.js +18 -9
  13. package/dist/commands/reset.js.map +1 -1
  14. package/dist/commands/revert.js +18 -9
  15. package/dist/commands/revert.js.map +1 -1
  16. package/dist/config-writeback.d.ts.map +1 -1
  17. package/dist/config-writeback.js +44 -18
  18. package/dist/config-writeback.js.map +1 -1
  19. package/dist/config.d.ts +1 -0
  20. package/dist/config.d.ts.map +1 -1
  21. package/dist/config.js +96 -62
  22. package/dist/config.js.map +1 -1
  23. package/dist/diff.d.ts.map +1 -1
  24. package/dist/diff.js +25 -15
  25. package/dist/diff.js.map +1 -1
  26. package/dist/fetch.d.ts +0 -1
  27. package/dist/fetch.d.ts.map +1 -1
  28. package/dist/fetch.js +2 -2
  29. package/dist/fetch.js.map +1 -1
  30. package/dist/history.js +17 -7
  31. package/dist/history.js.map +1 -1
  32. package/dist/processors/json.js +2 -3
  33. package/dist/processors/json.js.map +1 -1
  34. package/dist/processors/post.d.ts.map +1 -1
  35. package/dist/processors/post.js +4 -3
  36. package/dist/processors/post.js.map +1 -1
  37. package/dist/processors/replace.js +1 -2
  38. package/dist/processors/replace.js.map +1 -1
  39. package/dist/processors/yaml.js +2 -3
  40. package/dist/processors/yaml.js.map +1 -1
  41. package/dist/prompt.js +18 -9
  42. package/dist/prompt.js.map +1 -1
  43. package/dist/sha.js +18 -9
  44. package/dist/sha.js.map +1 -1
  45. package/dist/shell.d.ts +6 -0
  46. package/dist/shell.d.ts.map +1 -0
  47. package/dist/shell.js +76 -0
  48. package/dist/shell.js.map +1 -0
  49. package/dist/sources/bitbucket.js +18 -9
  50. package/dist/sources/bitbucket.js.map +1 -1
  51. package/dist/sources/exec.d.ts.map +1 -1
  52. package/dist/sources/exec.js +4 -3
  53. package/dist/sources/exec.js.map +1 -1
  54. package/dist/sources/git.js +18 -9
  55. package/dist/sources/git.js.map +1 -1
  56. package/dist/sources/github.js +18 -9
  57. package/dist/sources/github.js.map +1 -1
  58. package/dist/sources/gitlab.js +18 -9
  59. package/dist/sources/gitlab.js.map +1 -1
  60. package/dist/sources/http.d.ts +3 -0
  61. package/dist/sources/http.d.ts.map +1 -1
  62. package/dist/sources/http.js +24 -12
  63. package/dist/sources/http.js.map +1 -1
  64. package/dist/sources/index.d.ts +4 -1
  65. package/dist/sources/index.d.ts.map +1 -1
  66. package/dist/sources/index.js +152 -31
  67. package/dist/sources/index.js.map +1 -1
  68. package/dist/sources/local.d.ts +2 -1
  69. package/dist/sources/local.d.ts.map +1 -1
  70. package/dist/sources/local.js +23 -15
  71. package/dist/sources/local.js.map +1 -1
  72. package/dist/sources/s3.js +18 -9
  73. package/dist/sources/s3.js.map +1 -1
  74. package/dist/sources/vault.js +18 -9
  75. package/dist/sources/vault.js.map +1 -1
  76. package/dist/types.d.ts +15 -3
  77. package/dist/types.d.ts.map +1 -1
  78. package/dist/variables.d.ts.map +1 -1
  79. package/dist/variables.js +42 -31
  80. package/dist/variables.js.map +1 -1
  81. package/dist/writer.d.ts.map +1 -1
  82. package/dist/writer.js +37 -12
  83. package/dist/writer.js.map +1 -1
  84. package/package.json +10 -9
package/dist/variables.js CHANGED
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveVarsShellSafe = exports.resolveVars = exports.validateVariables = exports.RESERVED_VARS = void 0;
3
+ exports.RESERVED_VARS = void 0;
4
+ exports.validateVariables = validateVariables;
5
+ exports.resolveVars = resolveVars;
6
+ exports.resolveVarsShellSafe = resolveVarsShellSafe;
4
7
  // $latest is a special sentinel used by the GitLab source to resolve the newest tag.
5
8
  exports.RESERVED_VARS = new Set(['latest']);
6
9
  function validateVariables(vars) {
@@ -10,51 +13,59 @@ function validateVariables(vars) {
10
13
  }
11
14
  }
12
15
  }
13
- exports.validateVariables = validateVariables;
16
+ // Single-pass regex: $$ → literal $, then $env:NAME, then $name.
17
+ // Ordering within the alternation matters: $$ must come first so it is
18
+ // consumed before the $name branch can match the second $.
19
+ const TOKEN = /\$\$|\$env:([A-Za-z_][A-Za-z0-9_]*)|\$([A-Za-z_][A-Za-z0-9_]*)/g;
14
20
  function resolveVars(value, vars) {
15
- // First pass: $env:NAME → process.env value (must come before $name pass)
16
- const afterEnv = value.replace(/\$env:([A-Za-z_][A-Za-z0-9_]*)/g, (_, name) => {
17
- const val = process.env[name];
18
- if (val === undefined) {
19
- throw new Error(`Undefined environment variable: $env:${name}`);
21
+ return value.replace(TOKEN, (match, envName, varName) => {
22
+ if (match === '$$')
23
+ return '$';
24
+ if (envName !== undefined) {
25
+ const val = process.env[envName];
26
+ if (val === undefined) {
27
+ throw new Error(`Undefined environment variable: $env:${envName}`);
28
+ }
29
+ return val;
20
30
  }
21
- return val;
22
- });
23
- // Second pass: $name → variable value (reserved names are passed through unchanged)
24
- return afterEnv.replace(/\$([A-Za-z_][A-Za-z0-9_]*)/g, (match, name) => {
25
- if (exports.RESERVED_VARS.has(name))
31
+ if (exports.RESERVED_VARS.has(varName))
26
32
  return match;
27
- if (!(name in vars)) {
28
- throw new Error(`Undefined variable: $${name}`);
33
+ if (!(varName in vars)) {
34
+ throw new Error(`Undefined variable: $${varName}`);
29
35
  }
30
- return vars[name];
36
+ return vars[varName];
31
37
  });
32
38
  }
33
- exports.resolveVars = resolveVars;
34
- // POSIX single-quote escaping: wrap in ' and escape embedded ' as '\''
39
+ // Single-quote escaping for shell injection prevention.
40
+ // POSIX sh: escape ' as '\'' — PowerShell: escape ' as ''
35
41
  function shellQuote(val) {
42
+ if (process.platform === 'win32') {
43
+ return "'" + val.replace(/'/g, "''") + "'";
44
+ }
36
45
  return "'" + val.replace(/'/g, "'\\''") + "'";
37
46
  }
38
47
  // Like resolveVars but shell-quotes each substituted value, preventing
39
48
  // metacharacters in variable values (especially $env: vars) from being
40
- // interpreted by the shell. Use this when the resolved string is passed
41
- // to sh -c (exec sources, post processors).
49
+ // interpreted by the shell. Used by exec sources and post processors.
50
+ // On Unix the resolved script is passed to sh -c; on Windows it is
51
+ // Base64-encoded and passed to PowerShell via -EncodedCommand.
42
52
  function resolveVarsShellSafe(value, vars) {
43
- const afterEnv = value.replace(/\$env:([A-Za-z_][A-Za-z0-9_]*)/g, (_, name) => {
44
- const val = process.env[name];
45
- if (val === undefined) {
46
- throw new Error(`Undefined environment variable: $env:${name}`);
53
+ return value.replace(TOKEN, (match, envName, varName) => {
54
+ if (match === '$$')
55
+ return '$';
56
+ if (envName !== undefined) {
57
+ const val = process.env[envName];
58
+ if (val === undefined) {
59
+ throw new Error(`Undefined environment variable: $env:${envName}`);
60
+ }
61
+ return shellQuote(val);
47
62
  }
48
- return shellQuote(val);
49
- });
50
- return afterEnv.replace(/\$([A-Za-z_][A-Za-z0-9_]*)/g, (match, name) => {
51
- if (exports.RESERVED_VARS.has(name))
63
+ if (exports.RESERVED_VARS.has(varName))
52
64
  return match;
53
- if (!(name in vars)) {
54
- throw new Error(`Undefined variable: $${name}`);
65
+ if (!(varName in vars)) {
66
+ throw new Error(`Undefined variable: $${varName}`);
55
67
  }
56
- return shellQuote(vars[name]);
68
+ return shellQuote(vars[varName]);
57
69
  });
58
70
  }
59
- exports.resolveVarsShellSafe = resolveVarsShellSafe;
60
71
  //# sourceMappingURL=variables.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"variables.js","sourceRoot":"","sources":["../src/variables.ts"],"names":[],"mappings":";;;AAEA,qFAAqF;AACxE,QAAA,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEjD,SAAgB,iBAAiB,CAAC,IAAe;IAC/C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,IAAI,qBAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,kCAAkC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;AACH,CAAC;AAND,8CAMC;AAED,SAAgB,WAAW,CAAC,KAAa,EAAE,IAAe;IACxD,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAC5B,iCAAiC,EACjC,CAAC,CAAC,EAAE,IAAY,EAAE,EAAE;QAClB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CACF,CAAC;IAEF,oFAAoF;IACpF,OAAO,QAAQ,CAAC,OAAO,CACrB,6BAA6B,EAC7B,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QACtB,IAAI,qBAAa,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CACF,CAAC;AACJ,CAAC;AAxBD,kCAwBC;AAED,uEAAuE;AACvE,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;AAChD,CAAC;AAED,uEAAuE;AACvE,uEAAuE;AACvE,wEAAwE;AACxE,4CAA4C;AAC5C,SAAgB,oBAAoB,CAAC,KAAa,EAAE,IAAe;IACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAC5B,iCAAiC,EACjC,CAAC,CAAC,EAAE,IAAY,EAAE,EAAE;QAClB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CACF,CAAC;IAEF,OAAO,QAAQ,CAAC,OAAO,CACrB,6BAA6B,EAC7B,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QACtB,IAAI,qBAAa,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC,CACF,CAAC;AACJ,CAAC;AAtBD,oDAsBC"}
1
+ {"version":3,"file":"variables.js","sourceRoot":"","sources":["../src/variables.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,WAAW,EAAE,EACtB,SAAS,GAAE,MAAM,EAAO,GACvB,IAAI,CA2CN"}
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,WAAW,EAAE,EACtB,SAAS,GAAE,MAAM,EAAO,GACvB,IAAI,CA4DN"}
package/dist/writer.js CHANGED
@@ -15,15 +15,25 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.atomicWrite = void 0;
36
+ exports.atomicWrite = atomicWrite;
27
37
  const fs = __importStar(require("fs"));
28
38
  const path = __importStar(require("path"));
29
39
  function atomicWrite(targets, deletions = []) {
@@ -38,13 +48,29 @@ function atomicWrite(targets, deletions = []) {
38
48
  }
39
49
  const tmpFile = path.join(dir, '.' + path.basename(t.targetPath) + '.avanti-tmp');
40
50
  fs.writeFileSync(tmpFile, t.content, 'utf8');
41
- staged.push({ tmp: tmpFile, dest: t.targetPath, mode: t.mode });
51
+ // Resolve the effective mode: explicit config value wins; otherwise
52
+ // preserve the existing file's full permission bits (0o7777) so rename(2)
53
+ // doesn't silently reset them to the umask default. New files get the
54
+ // OS umask default.
55
+ let effectiveMode;
56
+ if (t.mode) {
57
+ effectiveMode = parseInt(t.mode, 8);
58
+ }
59
+ else {
60
+ try {
61
+ effectiveMode = fs.statSync(t.targetPath).mode & 0o7777;
62
+ }
63
+ catch {
64
+ // file doesn't exist yet — leave the temp file's umask permissions
65
+ }
66
+ }
67
+ staged.push({ tmp: tmpFile, dest: t.targetPath, effectiveMode });
42
68
  }
43
69
  // All staging succeeded — atomically rename each temp file into place
44
70
  for (const s of staged) {
45
71
  fs.renameSync(s.tmp, s.dest);
46
- if (s.mode) {
47
- fs.chmodSync(s.dest, parseInt(s.mode, 8));
72
+ if (s.effectiveMode !== undefined) {
73
+ fs.chmodSync(s.dest, s.effectiveMode);
48
74
  }
49
75
  }
50
76
  }
@@ -68,5 +94,4 @@ function atomicWrite(targets, deletions = []) {
68
94
  }
69
95
  }
70
96
  }
71
- exports.atomicWrite = atomicWrite;
72
97
  //# sourceMappingURL=writer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"writer.js","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAQ7B,SAAgB,WAAW,CACzB,OAAsB,EACtB,YAAsB,EAAE;IAExB,uEAAuE;IACvE,iEAAiE;IACjE,MAAM,MAAM,GAAwD,EAAE,CAAC;IACvE,IAAI,CAAC;QACH,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CACvB,GAAG,EACH,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,aAAa,CAClD,CAAC;YACF,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,sEAAsE;QACtE,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACX,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,8CAA8C;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;AACH,CAAC;AA9CD,kCA8CC"}
1
+ {"version":3,"file":"writer.js","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,kCA+DC;AAxED,uCAAyB;AACzB,2CAA6B;AAQ7B,SAAgB,WAAW,CACzB,OAAsB,EACtB,YAAsB,EAAE;IAExB,uEAAuE;IACvE,iEAAiE;IACjE,MAAM,MAAM,GACV,EAAE,CAAC;IACL,IAAI,CAAC;QACH,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CACvB,GAAG,EACH,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,aAAa,CAClD,CAAC;YACF,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE7C,oEAAoE;YACpE,0EAA0E;YAC1E,sEAAsE;YACtE,oBAAoB;YACpB,IAAI,aAAiC,CAAC;YACtC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACX,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBACH,aAAa,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC;gBAC1D,CAAC;gBAAC,MAAM,CAAC;oBACP,mEAAmE;gBACrE,CAAC;YACH,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,sEAAsE;QACtE,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBAClC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,8CAA8C;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@udondan/avanti",
3
- "version": "0.13.0",
3
+ "version": "0.15.0",
4
4
  "description": "Assemble local files from any source via a declarative YAML spec",
5
5
  "bin": {
6
6
  "avanti": "dist/cli.js"
@@ -11,6 +11,7 @@
11
11
  "dev": "tsx src/cli.ts",
12
12
  "test": "vitest run",
13
13
  "test:watch": "vitest",
14
+ "typecheck": "tsc --noEmit",
14
15
  "lint": "eslint src test",
15
16
  "format": "prettier --write .",
16
17
  "format:check": "prettier --check ."
@@ -40,24 +41,24 @@
40
41
  "url": "https://github.com/udondan/avanti.git"
41
42
  },
42
43
  "dependencies": {
43
- "chalk": "5.3.0",
44
- "commander": "12.1.0",
44
+ "chalk": "5.6.2",
45
+ "commander": "14.0.3",
45
46
  "comment-json": "5.0.0",
46
- "diff": "5.2.2",
47
+ "diff": "9.0.0",
47
48
  "js-yaml": "4.1.1",
48
49
  "yaml": "2.8.4"
49
50
  },
50
51
  "devDependencies": {
51
52
  "@eslint/js": "10.0.1",
52
- "@types/diff": "5.2.1",
53
+ "@types/diff": "8.0.0",
53
54
  "@types/js-yaml": "4.0.9",
54
- "@types/node": "20.14.0",
55
+ "@types/node": "25.6.2",
55
56
  "eslint": "10.3.0",
56
57
  "eslint-config-prettier": "10.1.8",
57
58
  "prettier": "3.8.3",
58
- "tsx": "4.15.0",
59
- "typescript": "5.4.5",
59
+ "tsx": "4.21.0",
60
+ "typescript": "6.0.3",
60
61
  "typescript-eslint": "8.59.2",
61
- "vitest": "1.6.0"
62
+ "vitest": "4.1.5"
62
63
  }
63
64
  }