@udondan/avanti 0.24.0 → 0.26.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 (100) hide show
  1. package/README.md +488 -64
  2. package/dist/commands/diff.d.ts.map +1 -1
  3. package/dist/commands/diff.js +82 -18
  4. package/dist/commands/diff.js.map +1 -1
  5. package/dist/commands/lock.d.ts.map +1 -1
  6. package/dist/commands/lock.js +6 -4
  7. package/dist/commands/lock.js.map +1 -1
  8. package/dist/commands/log.d.ts.map +1 -1
  9. package/dist/commands/log.js +7 -5
  10. package/dist/commands/log.js.map +1 -1
  11. package/dist/commands/pull.d.ts.map +1 -1
  12. package/dist/commands/pull.js +682 -42
  13. package/dist/commands/pull.js.map +1 -1
  14. package/dist/commands/reset.d.ts.map +1 -1
  15. package/dist/commands/reset.js +43 -11
  16. package/dist/commands/reset.js.map +1 -1
  17. package/dist/commands/revert.d.ts.map +1 -1
  18. package/dist/commands/revert.js +68 -14
  19. package/dist/commands/revert.js.map +1 -1
  20. package/dist/condition.d.ts.map +1 -1
  21. package/dist/condition.js +9 -6
  22. package/dist/condition.js.map +1 -1
  23. package/dist/config-writeback.d.ts.map +1 -1
  24. package/dist/config-writeback.js +17 -0
  25. package/dist/config-writeback.js.map +1 -1
  26. package/dist/config.d.ts +12 -0
  27. package/dist/config.d.ts.map +1 -1
  28. package/dist/config.js +346 -3
  29. package/dist/config.js.map +1 -1
  30. package/dist/diff.d.ts +19 -0
  31. package/dist/diff.d.ts.map +1 -1
  32. package/dist/diff.js +317 -12
  33. package/dist/diff.js.map +1 -1
  34. package/dist/extract.d.ts +4 -0
  35. package/dist/extract.d.ts.map +1 -0
  36. package/dist/extract.js +142 -0
  37. package/dist/extract.js.map +1 -0
  38. package/dist/filter.d.ts +3 -0
  39. package/dist/filter.d.ts.map +1 -0
  40. package/dist/filter.js +126 -0
  41. package/dist/filter.js.map +1 -0
  42. package/dist/history.d.ts +7 -1
  43. package/dist/history.d.ts.map +1 -1
  44. package/dist/history.js +89 -9
  45. package/dist/history.js.map +1 -1
  46. package/dist/paths.d.ts +4 -0
  47. package/dist/paths.d.ts.map +1 -1
  48. package/dist/paths.js +97 -0
  49. package/dist/paths.js.map +1 -1
  50. package/dist/processors/ini.d.ts +33 -0
  51. package/dist/processors/ini.d.ts.map +1 -0
  52. package/dist/processors/ini.js +500 -0
  53. package/dist/processors/ini.js.map +1 -0
  54. package/dist/processors/insert.d.ts.map +1 -1
  55. package/dist/processors/insert.js +338 -15
  56. package/dist/processors/insert.js.map +1 -1
  57. package/dist/processors/on.d.ts +4 -0
  58. package/dist/processors/on.d.ts.map +1 -0
  59. package/dist/processors/on.js +54 -0
  60. package/dist/processors/on.js.map +1 -0
  61. package/dist/ref.d.ts +21 -0
  62. package/dist/ref.d.ts.map +1 -0
  63. package/dist/ref.js +65 -0
  64. package/dist/ref.js.map +1 -0
  65. package/dist/sources/bitbucket.d.ts.map +1 -1
  66. package/dist/sources/bitbucket.js +51 -12
  67. package/dist/sources/bitbucket.js.map +1 -1
  68. package/dist/sources/git.d.ts.map +1 -1
  69. package/dist/sources/git.js +54 -6
  70. package/dist/sources/git.js.map +1 -1
  71. package/dist/sources/github.d.ts.map +1 -1
  72. package/dist/sources/github.js +188 -51
  73. package/dist/sources/github.js.map +1 -1
  74. package/dist/sources/gitlab.d.ts.map +1 -1
  75. package/dist/sources/gitlab.js +242 -44
  76. package/dist/sources/gitlab.js.map +1 -1
  77. package/dist/sources/index.d.ts +4 -2
  78. package/dist/sources/index.d.ts.map +1 -1
  79. package/dist/sources/index.js +220 -49
  80. package/dist/sources/index.js.map +1 -1
  81. package/dist/sources/local.d.ts +3 -0
  82. package/dist/sources/local.d.ts.map +1 -1
  83. package/dist/sources/local.js +44 -0
  84. package/dist/sources/local.js.map +1 -1
  85. package/dist/types.d.ts +38 -2
  86. package/dist/types.d.ts.map +1 -1
  87. package/dist/types.js.map +1 -1
  88. package/dist/variables-remote.d.ts +1 -1
  89. package/dist/variables-remote.d.ts.map +1 -1
  90. package/dist/variables-remote.js +4 -3
  91. package/dist/variables-remote.js.map +1 -1
  92. package/dist/variables.d.ts +1 -0
  93. package/dist/variables.d.ts.map +1 -1
  94. package/dist/variables.js +37 -2
  95. package/dist/variables.js.map +1 -1
  96. package/dist/writer.d.ts +17 -0
  97. package/dist/writer.d.ts.map +1 -1
  98. package/dist/writer.js +848 -20
  99. package/dist/writer.js.map +1 -1
  100. package/package.json +14 -10
@@ -41,6 +41,7 @@ const smol_toml_1 = require("smol-toml");
41
41
  const json_1 = require("./json");
42
42
  const yaml_2 = require("./yaml");
43
43
  const toml_1 = require("./toml");
44
+ const ini_1 = require("./ini");
44
45
  const sources_1 = require("../sources");
45
46
  // ── Utilities ────────────────────────────────────────────────────────────────
46
47
  function isPlainObject(v) {
@@ -69,25 +70,31 @@ function sortedStringify(v) {
69
70
  function deepEqual(a, b) {
70
71
  return sortedStringify(a) === sortedStringify(b);
71
72
  }
72
- function deepRemoveFromJsonObj(existing, oldContrib) {
73
+ function deepRemoveFromJsonObj(existing, oldContrib, newContrib = null) {
73
74
  for (const key of Object.keys(oldContrib)) {
74
75
  if (!Object.hasOwn(existing, key))
75
76
  continue;
76
77
  const oldVal = oldContrib[key];
77
78
  const curVal = existing[key];
79
+ const newVal = newContrib != null && Object.hasOwn(newContrib, key)
80
+ ? newContrib[key]
81
+ : undefined;
78
82
  if (isPlainObject(oldVal) && isPlainObject(curVal)) {
79
- deepRemoveFromJsonObj(curVal, oldVal);
80
- if (Object.keys(curVal).length === 0) {
83
+ const nestedNew = isPlainObject(newVal) ? newVal : null;
84
+ deepRemoveFromJsonObj(curVal, oldVal, nestedNew);
85
+ if (Object.keys(curVal).length === 0 && newVal === undefined) {
81
86
  delete existing[key];
82
87
  }
83
88
  }
84
89
  else if (Array.isArray(oldVal) && Array.isArray(curVal)) {
85
90
  removeArrayContribution(curVal, oldVal);
86
- if (curVal.length === 0) {
91
+ if (curVal.length === 0 && newVal === undefined) {
87
92
  delete existing[key];
88
93
  }
89
94
  }
90
95
  else {
96
+ if (newVal !== undefined)
97
+ continue;
91
98
  if (deepEqual(curVal, oldVal)) {
92
99
  delete existing[key];
93
100
  }
@@ -108,7 +115,7 @@ function yamlNodeToJs(node) {
108
115
  }
109
116
  return node;
110
117
  }
111
- function deepRemoveFromYamlMap(base, oldContrib) {
118
+ function deepRemoveFromYamlMap(base, oldContrib, newContrib = null) {
112
119
  if (!(0, yaml_1.isMap)(base))
113
120
  return;
114
121
  for (const key of Object.keys(oldContrib)) {
@@ -118,45 +125,58 @@ function deepRemoveFromYamlMap(base, oldContrib) {
118
125
  const pair = base.items[pairIdx];
119
126
  const oldVal = oldContrib[key];
120
127
  const pairVal = pair.value;
128
+ const newVal = newContrib != null && Object.hasOwn(newContrib, key)
129
+ ? newContrib[key]
130
+ : undefined;
121
131
  if (isPlainObject(oldVal) && (0, yaml_1.isMap)(pairVal)) {
122
- deepRemoveFromYamlMap(pairVal, oldVal);
123
- if (pairVal.items.length === 0) {
132
+ const nestedNew = isPlainObject(newVal) ? newVal : null;
133
+ deepRemoveFromYamlMap(pairVal, oldVal, nestedNew);
134
+ if (pairVal.items.length === 0 &&
135
+ newVal === undefined) {
124
136
  base.items.splice(pairIdx, 1);
125
137
  }
126
138
  }
127
139
  else if (Array.isArray(oldVal) && (0, yaml_1.isSeq)(pairVal)) {
128
140
  const seqItems = pairVal.items;
129
141
  removeArrayContribution(seqItems, oldVal, (item) => yamlNodeToJs(item));
130
- if (seqItems.length === 0) {
142
+ if (seqItems.length === 0 && newVal === undefined) {
131
143
  base.items.splice(pairIdx, 1);
132
144
  }
133
145
  }
134
146
  else {
147
+ if (newVal !== undefined)
148
+ continue;
135
149
  if (deepEqual(yamlNodeToJs(pairVal), oldVal)) {
136
150
  base.items.splice(pairIdx, 1);
137
151
  }
138
152
  }
139
153
  }
140
154
  }
141
- function deepRemoveFromTomlObj(existing, oldContrib) {
155
+ function deepRemoveFromTomlObj(existing, oldContrib, newContrib = null) {
142
156
  for (const key of Object.keys(oldContrib)) {
143
157
  if (!Object.hasOwn(existing, key))
144
158
  continue;
145
159
  const oldVal = oldContrib[key];
146
160
  const curVal = existing[key];
161
+ const newVal = newContrib != null && Object.hasOwn(newContrib, key)
162
+ ? newContrib[key]
163
+ : undefined;
147
164
  if (isPlainObject(oldVal) && isPlainObject(curVal)) {
148
- deepRemoveFromTomlObj(curVal, oldVal);
149
- if (Object.keys(curVal).length === 0) {
165
+ const nestedNew = isPlainObject(newVal) ? newVal : null;
166
+ deepRemoveFromTomlObj(curVal, oldVal, nestedNew);
167
+ if (Object.keys(curVal).length === 0 && newVal === undefined) {
150
168
  delete existing[key];
151
169
  }
152
170
  }
153
171
  else if (Array.isArray(oldVal) && Array.isArray(curVal)) {
154
172
  removeArrayContribution(curVal, oldVal);
155
- if (curVal.length === 0) {
173
+ if (curVal.length === 0 && newVal === undefined) {
156
174
  delete existing[key];
157
175
  }
158
176
  }
159
177
  else {
178
+ if (newVal !== undefined)
179
+ continue;
160
180
  if (deepEqual(curVal, oldVal)) {
161
181
  delete existing[key];
162
182
  }
@@ -175,6 +195,203 @@ function removeArrayContribution(existing, oldItems, toJs = (x) => x) {
175
195
  }
176
196
  }
177
197
  }
198
+ // Remove contiguous comment/blank nodes immediately preceding `idx` in `items`.
199
+ // Stops when it reaches a kv or section boundary, preventing unrelated comments
200
+ // from being stripped. Call this after splicing a kv node to avoid leaving
201
+ // orphaned comments that would appear to annotate the next key.
202
+ function splicePrecedingCommentBlanks(items, idx) {
203
+ let k = idx - 1;
204
+ while (k >= 0 && (items[k].kind === 'comment' || items[k].kind === 'blank')) {
205
+ items.splice(k, 1);
206
+ k--;
207
+ }
208
+ }
209
+ function deepRemoveFromIniSectionItems(items, oldContrib, newContrib) {
210
+ for (const key of Object.keys(oldContrib)) {
211
+ const oldVal = oldContrib[key];
212
+ const newVal = newContrib != null && Object.hasOwn(newContrib, key)
213
+ ? newContrib[key]
214
+ : undefined;
215
+ if (Array.isArray(oldVal)) {
216
+ const iniKey = key.startsWith(INI_ARRAY_PREFIX)
217
+ ? key.slice(INI_ARRAY_PREFIX.length)
218
+ : key;
219
+ let node;
220
+ for (let j = items.length - 1; j >= 0; j--) {
221
+ const it = items[j];
222
+ if (it.kind === 'kv' && it.key === iniKey && it.isArray) {
223
+ node = it;
224
+ break;
225
+ }
226
+ }
227
+ if (!node)
228
+ continue;
229
+ const curArr = node.value;
230
+ removeArrayContribution(curArr, oldVal);
231
+ // Remove the array node when it becomes empty and newVal is not an array
232
+ // (key removed or type changed to scalar).
233
+ if (curArr.length === 0 && !Array.isArray(newVal)) {
234
+ const idx = items.indexOf(node);
235
+ if (idx !== -1) {
236
+ items.splice(idx, 1);
237
+ splicePrecedingCommentBlanks(items, idx);
238
+ }
239
+ }
240
+ }
241
+ else {
242
+ let node;
243
+ for (let j = items.length - 1; j >= 0; j--) {
244
+ const it = items[j];
245
+ if (it.kind === 'kv' && it.key === key && !it.isArray) {
246
+ node = it;
247
+ break;
248
+ }
249
+ }
250
+ if (!node)
251
+ continue;
252
+ // Skip only when newVal is the same scalar type; if it changed to an
253
+ // array, remove the old scalar node so mergeIni can insert the new shape.
254
+ if (newVal !== undefined && !Array.isArray(newVal))
255
+ continue;
256
+ if (deepEqual(node.value, oldVal)) {
257
+ const idx = items.indexOf(node);
258
+ if (idx !== -1) {
259
+ items.splice(idx, 1);
260
+ splicePrecedingCommentBlanks(items, idx);
261
+ }
262
+ }
263
+ }
264
+ }
265
+ }
266
+ function deepRemoveFromIniDoc(doc, oldContrib, newContrib) {
267
+ for (const key of Object.keys(oldContrib)) {
268
+ const oldVal = oldContrib[key];
269
+ const newVal = newContrib != null && Object.hasOwn(newContrib, key)
270
+ ? newContrib[key]
271
+ : undefined;
272
+ if (isPlainObject(oldVal)) {
273
+ const sectionName = key.startsWith(INI_SECTION_PREFIX)
274
+ ? key.slice(INI_SECTION_PREFIX.length)
275
+ : key;
276
+ const subsectionMatch = /^(.+?)\s+"([^"]*)"$/.exec(sectionName);
277
+ let section;
278
+ for (let j = doc.items.length - 1; j >= 0; j--) {
279
+ const it = doc.items[j];
280
+ if (it.kind !== 'section')
281
+ continue;
282
+ if (subsectionMatch) {
283
+ if (it.name === subsectionMatch[1] &&
284
+ it.subName === subsectionMatch[2]) {
285
+ section = it;
286
+ break;
287
+ }
288
+ }
289
+ else if (it.name === sectionName && it.subName === undefined) {
290
+ section = it;
291
+ break;
292
+ }
293
+ }
294
+ if (!section)
295
+ continue;
296
+ const nestedNew = isPlainObject(newVal) ? newVal : null;
297
+ deepRemoveFromIniSectionItems(section.items, oldVal, nestedNew);
298
+ // Remove the section when it's empty and newVal is not also a section
299
+ // (key removed or type changed to scalar/array).
300
+ if (section.items.filter((it) => it.kind === 'kv').length === 0 &&
301
+ !isPlainObject(newVal)) {
302
+ const idx = doc.items.indexOf(section);
303
+ if (idx !== -1) {
304
+ doc.items.splice(idx, 1);
305
+ // Do not strip preceding comment/blank nodes at the doc level —
306
+ // they may be file-level separators unrelated to this section.
307
+ }
308
+ }
309
+ }
310
+ else if (Array.isArray(oldVal)) {
311
+ const iniKey = key.startsWith(INI_ARRAY_PREFIX)
312
+ ? key.slice(INI_ARRAY_PREFIX.length)
313
+ : key;
314
+ let node;
315
+ for (let j = doc.items.length - 1; j >= 0; j--) {
316
+ const it = doc.items[j];
317
+ if (it.kind === 'kv' && it.key === iniKey && it.isArray) {
318
+ node = it;
319
+ break;
320
+ }
321
+ }
322
+ if (!node)
323
+ continue;
324
+ const curArr = node.value;
325
+ removeArrayContribution(curArr, oldVal);
326
+ // Remove the array node when it becomes empty and newVal is not an array
327
+ // (key removed or type changed to scalar/section).
328
+ if (curArr.length === 0 && !Array.isArray(newVal)) {
329
+ const idx = doc.items.indexOf(node);
330
+ if (idx !== -1) {
331
+ doc.items.splice(idx, 1);
332
+ // Do not strip preceding comment/blank nodes at the doc level.
333
+ }
334
+ }
335
+ }
336
+ else {
337
+ let node;
338
+ for (let j = doc.items.length - 1; j >= 0; j--) {
339
+ const it = doc.items[j];
340
+ if (it.kind === 'kv' && it.key === key && !it.isArray) {
341
+ node = it;
342
+ break;
343
+ }
344
+ }
345
+ if (!node)
346
+ continue;
347
+ // Skip only when newVal is the same scalar type; remove the old node
348
+ // when type changes to array or section so the merge can re-add it.
349
+ if (newVal !== undefined &&
350
+ !Array.isArray(newVal) &&
351
+ !isPlainObject(newVal))
352
+ continue;
353
+ if (deepEqual(node.value, oldVal)) {
354
+ const idx = doc.items.indexOf(node);
355
+ if (idx !== -1) {
356
+ doc.items.splice(idx, 1);
357
+ // Do not strip preceding comment/blank nodes at the doc level.
358
+ }
359
+ }
360
+ }
361
+ }
362
+ }
363
+ // Sentinel prefix for section keys in the JS representation so that a global
364
+ // key named "db" and a section named [db] never collide in the same object.
365
+ // Real INI keys cannot contain null bytes, making this unambiguous.
366
+ const INI_SECTION_PREFIX = '\0s:';
367
+ // Sentinel prefix for array KV keys (key[] = val) so they never collide with
368
+ // a scalar KV of the same name (key = val) in the same JS object.
369
+ const INI_ARRAY_PREFIX = '\0a:';
370
+ function iniDocToJs(doc) {
371
+ const result = Object.create(null);
372
+ for (const item of doc.items) {
373
+ if (item.kind === 'kv') {
374
+ const jsKey = item.isArray ? INI_ARRAY_PREFIX + item.key : item.key;
375
+ result[jsKey] = item.value;
376
+ }
377
+ else if (item.kind === 'section') {
378
+ const sectionKey = item.subName !== undefined
379
+ ? `${item.name} "${item.subName}"`
380
+ : item.name;
381
+ const obj = Object.create(null);
382
+ for (const child of item.items) {
383
+ if (child.kind === 'kv') {
384
+ const jsKey = child.isArray
385
+ ? INI_ARRAY_PREFIX + child.key
386
+ : child.key;
387
+ obj[jsKey] = child.value;
388
+ }
389
+ }
390
+ result[INI_SECTION_PREFIX + sectionKey] = obj;
391
+ }
392
+ }
393
+ return result;
394
+ }
178
395
  // ── Structured insert helpers ─────────────────────────────────────────────────
179
396
  function applyJsonInsert(existingContent, processedText, lastProcessed, opts) {
180
397
  let cleanedJson;
@@ -189,7 +406,25 @@ function applyJsonInsert(existingContent, processedText, lastProcessed, opts) {
189
406
  try {
190
407
  const oldContrib = (0, comment_json_1.parse)(lastProcessed);
191
408
  if (isPlainObject(existingParsed) && isPlainObject(oldContrib)) {
192
- deepRemoveFromJsonObj(existingParsed, oldContrib);
409
+ // Order-preservation only works under last_wins; with first_wins the
410
+ // stale key would persist, and with abort mergeJson would throw on
411
+ // the un-removed key.
412
+ const rawConflicts = opts['conflicts'];
413
+ const effectiveConflicts = rawConflicts === 'abort' || rawConflicts === 'first_wins'
414
+ ? rawConflicts
415
+ : 'last_wins';
416
+ let newContrib = null;
417
+ if (effectiveConflicts === 'last_wins') {
418
+ try {
419
+ const p = (0, comment_json_1.parse)(processedText);
420
+ if (isPlainObject(p))
421
+ newContrib = p;
422
+ }
423
+ catch {
424
+ // unparseable processedText → null (old behaviour)
425
+ }
426
+ }
427
+ deepRemoveFromJsonObj(existingParsed, oldContrib, newContrib);
193
428
  }
194
429
  }
195
430
  catch {
@@ -214,7 +449,28 @@ function applyYamlInsert(existingContent, processedText, lastProcessed, opts) {
214
449
  if (lpDoc.errors.length === 0) {
215
450
  const oldContrib = lpDoc.toJSON();
216
451
  if (isPlainObject(oldContrib)) {
217
- deepRemoveFromYamlMap(doc.contents, oldContrib);
452
+ // Order-preservation only works under last_wins; with first_wins the
453
+ // stale key would persist, and with abort mergeYaml would throw on
454
+ // the un-removed key.
455
+ const rawConflicts = opts['conflicts'];
456
+ const effectiveConflicts = rawConflicts === 'abort' || rawConflicts === 'first_wins'
457
+ ? rawConflicts
458
+ : 'last_wins';
459
+ let newContrib = null;
460
+ if (effectiveConflicts === 'last_wins') {
461
+ try {
462
+ const ptDoc = (0, yaml_1.parseDocument)(processedText);
463
+ if (ptDoc.errors.length === 0) {
464
+ const p = ptDoc.toJSON();
465
+ if (isPlainObject(p))
466
+ newContrib = p;
467
+ }
468
+ }
469
+ catch {
470
+ // unparseable processedText → null (old behaviour)
471
+ }
472
+ }
473
+ deepRemoveFromYamlMap(doc.contents, oldContrib, newContrib);
218
474
  }
219
475
  }
220
476
  }
@@ -237,7 +493,25 @@ function applyTomlInsert(existingContent, processedText, lastProcessed, opts) {
237
493
  }
238
494
  try {
239
495
  const oldContrib = (0, smol_toml_1.parse)(lastProcessed);
240
- deepRemoveFromTomlObj(existingParsed, oldContrib);
496
+ // Order-preservation only works under last_wins; with first_wins the
497
+ // stale key would persist, and with abort mergeToml would throw on
498
+ // the un-removed key.
499
+ const rawConflicts = opts['conflicts'];
500
+ const effectiveConflicts = rawConflicts === 'abort' || rawConflicts === 'first_wins'
501
+ ? rawConflicts
502
+ : 'last_wins';
503
+ let newContrib = null;
504
+ if (effectiveConflicts === 'last_wins') {
505
+ try {
506
+ const p = (0, smol_toml_1.parse)(processedText);
507
+ if (isPlainObject(p))
508
+ newContrib = p;
509
+ }
510
+ catch {
511
+ // unparseable processedText → null (old behaviour)
512
+ }
513
+ }
514
+ deepRemoveFromTomlObj(existingParsed, oldContrib, newContrib);
241
515
  }
242
516
  catch {
243
517
  // Corrupted history fragment — skip key removal, fall through to merge
@@ -249,6 +523,49 @@ function applyTomlInsert(existingContent, processedText, lastProcessed, opts) {
249
523
  }
250
524
  return (0, toml_1.mergeToml)([cleanedToml, processedText], opts);
251
525
  }
526
+ function applyIniInsert(existingContent, processedText, lastProcessed, opts) {
527
+ let cleanedIni;
528
+ if (lastProcessed !== null) {
529
+ let existingDoc;
530
+ try {
531
+ existingDoc = (0, ini_1.parseIniDoc)(existingContent);
532
+ }
533
+ catch (err) {
534
+ throw new Error(`insert mode: existing file is not valid INI: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
535
+ }
536
+ try {
537
+ const oldDoc = (0, ini_1.parseIniDoc)(lastProcessed);
538
+ const oldContrib = iniDocToJs(oldDoc);
539
+ // Order-preservation only works under last_wins; with first_wins the
540
+ // stale key would persist, and with abort mergeIni would throw on
541
+ // the un-removed key.
542
+ const rawConflicts = opts['conflicts'];
543
+ const effectiveConflicts = rawConflicts === 'abort' || rawConflicts === 'first_wins'
544
+ ? rawConflicts
545
+ : 'last_wins';
546
+ let newContrib = null;
547
+ if (effectiveConflicts === 'last_wins') {
548
+ try {
549
+ const p = iniDocToJs((0, ini_1.parseIniDoc)(processedText));
550
+ if (isPlainObject(p))
551
+ newContrib = p;
552
+ }
553
+ catch {
554
+ // unparseable processedText → null (old behaviour)
555
+ }
556
+ }
557
+ deepRemoveFromIniDoc(existingDoc, oldContrib, newContrib);
558
+ }
559
+ catch {
560
+ // Corrupted history fragment — skip key removal, fall through to merge
561
+ }
562
+ cleanedIni = (0, ini_1.stringifyIniDoc)(existingDoc);
563
+ }
564
+ else {
565
+ cleanedIni = existingContent;
566
+ }
567
+ return (0, ini_1.mergeIni)([cleanedIni, processedText], opts);
568
+ }
252
569
  // ── Public API ────────────────────────────────────────────────────────────────
253
570
  function applyInsertMode(entry, processedText, lastProcessed, targetPath) {
254
571
  if (!fs.existsSync(targetPath)) {
@@ -261,6 +578,9 @@ function applyInsertMode(entry, processedText, lastProcessed, targetPath) {
261
578
  const tomlOpts = jsonOpts === null && yamlOpts === null
262
579
  ? (0, sources_1.resolveTomlOptions)(entry, srcs)
263
580
  : null;
581
+ const iniOpts = jsonOpts === null && yamlOpts === null && tomlOpts === null
582
+ ? (0, sources_1.resolveIniOptions)(entry, srcs)
583
+ : null;
264
584
  if (jsonOpts !== null) {
265
585
  return applyJsonInsert(existingContent, processedText, lastProcessed, jsonOpts);
266
586
  }
@@ -270,6 +590,9 @@ function applyInsertMode(entry, processedText, lastProcessed, targetPath) {
270
590
  if (tomlOpts !== null) {
271
591
  return applyTomlInsert(existingContent, processedText, lastProcessed, tomlOpts);
272
592
  }
593
+ if (iniOpts !== null) {
594
+ return applyIniInsert(existingContent, processedText, lastProcessed, iniOpts);
595
+ }
273
596
  // Plain text: find old fragment in file and replace; otherwise append
274
597
  if (lastProcessed !== null &&
275
598
  lastProcessed.length > 0 &&
@@ -1 +1 @@
1
- {"version":3,"file":"insert.js","sourceRoot":"","sources":["../../src/processors/insert.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoRA,0CA4DC;AAhVD,uCAAyB;AACzB,+CAA8E;AAC9E,+BAAwE;AACxE,yCAA2E;AAE3E,iCAAmC;AACnC,iCAAmC;AACnC,iCAAmC;AACnC,wCAIoB;AAEpB,gFAAgF;AAEhF,SAAS,aAAa,CAAC,CAAU;IAC/B,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1E,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAY,CAAC;IAClD,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACtD,CAAC;AAED,SAAS,eAAe,CAAC,CAAU;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACtD,CAAC;IACD,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,CACL,GAAG;YACH,IAAI;iBACD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3D,IAAI,CAAC,GAAG,CAAC;YACZ,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,mEAAmE;IACnE,IAAI,CAAC,YAAY,IAAI;QAAE,OAAO,QAAQ,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC;IACzD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,CAAU,EAAE,CAAU;IACvC,OAAO,eAAe,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAMD,SAAS,qBAAqB,CAC5B,QAA0C,EAC1C,UAAmC;IAEnC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC;YAAE,SAAS;QAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE7B,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACtC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC9B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF,SAAS,WAAW,CAAC,IAAU;IAC7B,IAAI,IAAA,eAAQ,EAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAE,IAAI,CAAC,GAA0B,CAAC,KAAK,CAAC,CAAC;IAC9E,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY,CAAC,IAAa;IACjC,IACE,IAAI,KAAK,IAAI;QACb,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAQ,IAAgC,CAAC,QAAQ,CAAC,KAAK,UAAU,EACjE,CAAC;QACD,OAAQ,IAA8B,CAAC,MAAM,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAA2D,EAC3D,UAAmC;IAEnC,IAAI,CAAC,IAAA,YAAK,EAAC,IAAI,CAAC;QAAE,OAAO;IAEzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QACpE,IAAI,OAAO,KAAK,CAAC,CAAC;YAAE,SAAS;QAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAE3B,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,IAAA,YAAK,EAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACvC,IAAK,OAAgC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAA,YAAK,EAAC,OAAO,CAAC,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAI,OAAgC,CAAC,KAAK,CAAC;YACzD,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YACxE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAMD,SAAS,qBAAqB,CAC5B,QAAoB,EACpB,UAAmC;IAEnC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC;YAAE,SAAS;QAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE7B,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACtC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC9B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF,SAAS,uBAAuB,CAC9B,QAAmB,EACnB,QAAmB,EACnB,OAAmC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE3C,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;gBACzC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,SAAS,eAAe,CACtB,eAAuB,EACvB,aAAqB,EACrB,aAA4B,EAC5B,IAA6B;IAE7B,IAAI,WAAmB,CAAC;IACxB,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,IAAI,cAAgD,CAAC;QACrD,IAAI,CAAC;YACH,cAAc,GAAG,IAAA,oBAAS,EAAC,eAAe,CAGzC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,uDAAuD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EACzG,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAA,oBAAS,EAAC,aAAa,CAA4B,CAAC;YACvE,IAAI,aAAa,CAAC,cAAc,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/D,qBAAqB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uEAAuE;QACzE,CAAC;QACD,WAAW,GAAG,IAAA,wBAAa,EAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,eAAe,CAAC;IAChC,CAAC;IACD,OAAO,IAAA,gBAAS,EAAC,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,eAAe,CACtB,eAAuB,EACvB,aAAqB,EACrB,aAA4B,EAC5B,IAA6B;IAE7B,IAAI,WAAmB,CAAC;IACxB,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAA,oBAAa,EAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,iDAAiD,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EACxE,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACzB,CAAC;QACJ,CAAC;QACD,IAAI,IAAA,YAAK,EAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAA,oBAAa,EAAC,aAAa,CAAC,CAAC;YAC3C,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAA6B,CAAC;gBAC7D,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9B,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;QACD,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,eAAe,CAAC;IAChC,CAAC;IACD,OAAO,IAAA,gBAAS,EAAC,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,eAAe,CACtB,eAAuB,EACvB,aAAqB,EACrB,aAA4B,EAC5B,IAA6B;IAE7B,IAAI,WAAmB,CAAC;IACxB,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,IAAI,cAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,cAAc,GAAG,IAAA,iBAAS,EAAC,eAAe,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,iDAAiD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EACnG,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAA,iBAAS,EAAC,aAAa,CAA4B,CAAC;YACvE,qBAAqB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,uEAAuE;QACzE,CAAC;QACD,WAAW,GAAG,IAAA,qBAAa,EAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,eAAe,CAAC;IAChC,CAAC;IACD,OAAO,IAAA,gBAAS,EAAC,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,iFAAiF;AAEjF,SAAgB,eAAe,CAC7B,KAAgB,EAChB,aAAqB,EACrB,aAA4B,EAC5B,UAAkB;IAElB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAc,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE3E,MAAM,QAAQ,GAAG,IAAA,4BAAkB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAA,4BAAkB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,MAAM,QAAQ,GACZ,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI;QACpC,CAAC,CAAC,IAAA,4BAAkB,EAAC,KAAK,EAAE,IAAI,CAAC;QACjC,CAAC,CAAC,IAAI,CAAC;IAEX,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,eAAe,CACpB,eAAe,EACf,aAAa,EACb,aAAa,EACb,QAAmC,CACpC,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,eAAe,CACpB,eAAe,EACf,aAAa,EACb,aAAa,EACb,QAAmC,CACpC,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,eAAe,CACpB,eAAe,EACf,aAAa,EACb,aAAa,EACb,QAAmC,CACpC,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,IACE,aAAa,KAAK,IAAI;QACtB,aAAa,CAAC,MAAM,GAAG,CAAC;QACxB,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,EACvC,CAAC;QACD,MAAM,GAAG,GAAG,eAAe,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QACvD,OAAO,CACL,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YAC7B,aAAa;YACb,eAAe,CAAC,KAAK,CAAC,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAClD,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,OAAO,eAAe,GAAG,GAAG,GAAG,aAAa,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"insert.js","sourceRoot":"","sources":["../../src/processors/insert.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Variables } from '../types';
2
+ export declare function applyWriteHook(content: string, script: string, vars?: Variables): string;
3
+ export declare function runHook(script: string, extraEnv?: Record<string, string>): void;
4
+ //# sourceMappingURL=on.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"on.d.ts","sourceRoot":"","sources":["../../src/processors/on.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAIrC,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,SAAc,GACnB,MAAM,CAsBR;AAGD,wBAAgB,OAAO,CACrB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACpC,IAAI,CAuBN"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyWriteHook = applyWriteHook;
4
+ exports.runHook = runHook;
5
+ const child_process_1 = require("child_process");
6
+ const variables_1 = require("../variables");
7
+ const shell_1 = require("../shell");
8
+ function applyWriteHook(content, script, vars = {}) {
9
+ const resolvedScript = (0, variables_1.resolveVarsShellSafe)(script, vars);
10
+ const { shell, args } = (0, shell_1.getShellArgs)(resolvedScript);
11
+ const result = (0, child_process_1.spawnSync)(shell, args, {
12
+ input: content,
13
+ encoding: 'utf8',
14
+ });
15
+ // Skip EPIPE: child exited before reading all stdin — not a true spawn failure.
16
+ if (result.error &&
17
+ result.error.code !== 'EPIPE') {
18
+ throw new Error(`on.write script failed to spawn: ${result.error.message}`);
19
+ }
20
+ if (result.status !== 0 || result.signal) {
21
+ const stderr = result.stderr?.trim() ?? '';
22
+ const detail = result.signal
23
+ ? `killed by signal ${result.signal}`
24
+ : `exited with code ${result.status ?? 'null'}`;
25
+ throw new Error(`on.write script ${detail}${stderr ? ': ' + stderr : ''}`);
26
+ }
27
+ return result.stdout;
28
+ }
29
+ // Side-effect hooks: scripts are passed verbatim; $AVANTI_TARGET/$AVANTI_IS_NEW are env vars.
30
+ function runHook(script, extraEnv = {}) {
31
+ let resolvedScript = script;
32
+ if (shell_1.isWindows && Object.keys(extraEnv).length > 0) {
33
+ const prelude = Object.keys(extraEnv)
34
+ .map((k) => `$${k} = $env:${k};`)
35
+ .join('');
36
+ // Inner & { } keeps param() as the first statement of its own scope.
37
+ resolvedScript = prelude + '& {' + script + '}';
38
+ }
39
+ const { shell, args } = (0, shell_1.getShellArgs)(resolvedScript);
40
+ const result = (0, child_process_1.spawnSync)(shell, args, {
41
+ env: { ...process.env, ...extraEnv },
42
+ stdio: 'inherit',
43
+ });
44
+ if (result.error) {
45
+ throw new Error(`hook script failed to spawn: ${result.error.message}`);
46
+ }
47
+ if (result.status !== 0 || result.signal) {
48
+ const detail = result.signal
49
+ ? `killed by signal ${result.signal}`
50
+ : `exited with code ${result.status ?? 'null'}`;
51
+ throw new Error(`hook script ${detail}`);
52
+ }
53
+ }
54
+ //# sourceMappingURL=on.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"on.js","sourceRoot":"","sources":["../../src/processors/on.ts"],"names":[],"mappings":";;AAKA,wCA0BC;AAGD,0BA0BC;AA5DD,iDAA0C;AAE1C,4CAAoD;AACpD,oCAAmD;AAEnD,SAAgB,cAAc,CAC5B,OAAe,EACf,MAAc,EACd,OAAkB,EAAE;IAEpB,MAAM,cAAc,GAAG,IAAA,gCAAoB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1D,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAA,oBAAY,EAAC,cAAc,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,KAAK,EAAE,IAAI,EAAE;QACpC,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IACH,gFAAgF;IAChF,IACE,MAAM,CAAC,KAAK;QACX,MAAM,CAAC,KAA+B,CAAC,IAAI,KAAK,OAAO,EACxD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;YAC1B,CAAC,CAAC,oBAAoB,MAAM,CAAC,MAAM,EAAE;YACrC,CAAC,CAAC,oBAAoB,MAAM,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAED,8FAA8F;AAC9F,SAAgB,OAAO,CACrB,MAAc,EACd,WAAmC,EAAE;IAErC,IAAI,cAAc,GAAG,MAAM,CAAC;IAC5B,IAAI,iBAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;aAChC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,qEAAqE;QACrE,cAAc,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,GAAG,CAAC;IAClD,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAA,oBAAY,EAAC,cAAc,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,KAAK,EAAE,IAAI,EAAE;QACpC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE;QACpC,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;YAC1B,CAAC,CAAC,oBAAoB,MAAM,CAAC,MAAM,EAAE;YACrC,CAAC,CAAC,oBAAoB,MAAM,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,eAAe,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC"}
package/dist/ref.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ /** Matches stable semver tags: vX.Y.Z or X.Y.Z (exactly three components). */
2
+ export declare const SEMVER_PATTERN: RegExp;
3
+ /** Return the tag with the highest semver among the given list, or null if the list is empty or contains no semver tags. */
4
+ export declare function maxSemverTag(tags: string[]): string | null;
5
+ export declare function isLatestSentinel(ref: string | undefined): boolean;
6
+ export declare function isRecentSentinel(ref: string | undefined): boolean;
7
+ /**
8
+ * Parse a regex pattern from a ref string of the form `/pattern/` or `/pattern/flags`.
9
+ * Returns the compiled RegExp, or null if the ref does not match that form.
10
+ * Throws if the pattern body or flags are syntactically invalid.
11
+ *
12
+ * Supported subset (intentional differences from JS regex literal syntax):
13
+ * - The pattern body must be non-empty: `//` is not recognised and returns null
14
+ * (treated as a literal ref, since an empty pattern is not useful for tag matching).
15
+ * - The closing `/` is the last `/` in the string, so inner unescaped slashes are
16
+ * absorbed into the pattern body (e.g. `/foo/bar/` → pattern `foo/bar`).
17
+ * - Stateful flags `g` and `y` are silently stripped because callers use `.test()`.
18
+ * - Any other unrecognised flags cause `new RegExp()` to throw a descriptive error.
19
+ */
20
+ export declare function parseRefPattern(ref: string): RegExp | null;
21
+ //# sourceMappingURL=ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref.d.ts","sourceRoot":"","sources":["../src/ref.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,eAAO,MAAM,cAAc,QAAsB,CAAC;AAQlD,4HAA4H;AAC5H,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAU1D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEjE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEjE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY1D"}