@zokugun/artifact 0.7.0 → 0.9.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 (107) hide show
  1. package/README.md +22 -2
  2. package/lib/cli.js +16 -11
  3. package/lib/commands/add.js +95 -22
  4. package/lib/commands/index.d.ts +1 -0
  5. package/lib/commands/index.js +3 -1
  6. package/lib/commands/list.js +25 -7
  7. package/lib/commands/outdated.d.ts +1 -0
  8. package/lib/commands/outdated.js +73 -0
  9. package/lib/commands/remove.js +39 -18
  10. package/lib/commands/update.js +36 -21
  11. package/lib/compositors/codec.d.ts +3 -0
  12. package/lib/compositors/codec.js +46 -0
  13. package/lib/compositors/compose.d.ts +1 -0
  14. package/lib/compositors/compose.js +4 -0
  15. package/lib/compositors/index.d.ts +1 -0
  16. package/lib/compositors/index.js +3 -1
  17. package/lib/compositors/json.js +3 -66
  18. package/lib/compositors/rc.js +3 -56
  19. package/lib/compositors/yaml.js +24 -3
  20. package/lib/configs/install/read-install-config.d.ts +2 -5
  21. package/lib/configs/install/read-install-config.js +20 -18
  22. package/lib/configs/install/write-install-config.d.ts +2 -2
  23. package/lib/configs/install/write-install-config.js +2 -1
  24. package/lib/configs/package/read-listing-config.d.ts +7 -0
  25. package/lib/configs/package/read-listing-config.js +71 -0
  26. package/lib/configs/package/read-package-config.d.ts +2 -1
  27. package/lib/configs/package/read-package-config.js +96 -10
  28. package/lib/configs/utils/constants.d.ts +2 -2
  29. package/lib/configs/utils/constants.js +2 -2
  30. package/lib/configs/utils/merge-upsert-property.js +0 -8
  31. package/lib/configs/utils/normalize-file-always.js +5 -0
  32. package/lib/configs/utils/normalize-file-upsert.d.ts +2 -1
  33. package/lib/configs/utils/normalize-file-upsert.js +12 -5
  34. package/lib/journeys/commitlint/index.d.ts +1 -1
  35. package/lib/journeys/config.ts/index.d.ts +1 -1
  36. package/lib/journeys/config.ts/index.js +2 -6
  37. package/lib/journeys/default/index.d.ts +1 -1
  38. package/lib/journeys/gitignore/index.d.ts +1 -1
  39. package/lib/journeys/ignore/index.d.ts +1 -1
  40. package/lib/journeys/index.d.ts +2 -2
  41. package/lib/journeys/index.js +9 -11
  42. package/lib/journeys/npmignore/index.d.ts +1 -1
  43. package/lib/journeys/package/index.d.ts +1 -1
  44. package/lib/journeys/rc/index.d.ts +1 -1
  45. package/lib/journeys/tsconfig/index.d.ts +1 -1
  46. package/lib/parsers/index.d.ts +4 -0
  47. package/lib/parsers/index.js +41 -0
  48. package/lib/parsers/json.d.ts +4 -2
  49. package/lib/parsers/json.js +7 -2
  50. package/lib/parsers/jsonc/parse.d.ts +2 -5
  51. package/lib/parsers/jsonc/parse.js +8 -6
  52. package/lib/parsers/to-format.d.ts +2 -0
  53. package/lib/parsers/to-format.js +50 -0
  54. package/lib/parsers/yaml.d.ts +4 -2
  55. package/lib/parsers/yaml.js +7 -2
  56. package/lib/routes/command.js +7 -0
  57. package/lib/routes/index.d.ts +4 -3
  58. package/lib/routes/index.js +9 -7
  59. package/lib/routes/{list-sort-concat.d.ts → list-concat-after.d.ts} +1 -1
  60. package/lib/routes/{list-sort-concat.js → list-concat-after.js} +2 -2
  61. package/lib/routes/merge-dot-js.d.ts +2 -0
  62. package/lib/routes/merge-dot-js.js +8 -0
  63. package/lib/steps/configure-install-file-actions.js +1 -20
  64. package/lib/steps/configure-update-file-actions.js +1 -20
  65. package/lib/steps/execute-first-block.js +1 -1
  66. package/lib/steps/index.d.ts +0 -2
  67. package/lib/steps/index.js +4 -3
  68. package/lib/steps/merge-text-files.d.ts +1 -1
  69. package/lib/steps/merge-text-files.js +6 -2
  70. package/lib/steps/read-files.d.ts +1 -1
  71. package/lib/steps/read-files.js +56 -42
  72. package/lib/steps/read-incoming-config.js +1 -1
  73. package/lib/steps/remove-files.d.ts +1 -1
  74. package/lib/steps/remove-files.js +3 -2
  75. package/lib/steps/rename-files.d.ts +1 -1
  76. package/lib/steps/rename-files.js +3 -2
  77. package/lib/steps/validate-newer-package.d.ts +1 -1
  78. package/lib/steps/validate-newer-package.js +13 -2
  79. package/lib/types/config.d.ts +11 -7
  80. package/lib/types/context.d.ts +23 -3
  81. package/lib/types/context.js +6 -0
  82. package/lib/types/travel.d.ts +1 -0
  83. package/lib/utils/build-journey-plan.d.ts +2 -2
  84. package/lib/utils/build-route.d.ts +1 -1
  85. package/lib/utils/build-route.js +50 -19
  86. package/lib/utils/build-travel-plan.js +1 -0
  87. package/lib/utils/command/merge-and-chains.js +1 -1
  88. package/lib/utils/command/merge-command-records.js +1 -1
  89. package/lib/utils/command/merge-parts-by-prefix.js +12 -1
  90. package/lib/utils/command/merge-semicolon-segments.js +161 -4
  91. package/lib/utils/fnmatch.d.ts +1 -0
  92. package/lib/utils/fnmatch.js +11 -0
  93. package/lib/utils/format-table.d.ts +1 -0
  94. package/lib/utils/format-table.js +58 -0
  95. package/lib/utils/get-format.js +2 -9
  96. package/lib/utils/load-package.d.ts +6 -0
  97. package/lib/utils/load-package.js +26 -0
  98. package/lib/utils/template.js +1 -3
  99. package/lib/utils/time-difference.d.ts +1 -0
  100. package/lib/utils/time-difference.js +28 -0
  101. package/package.json +128 -125
  102. package/lib/journeys/fixpack/index.d.ts +0 -2
  103. package/lib/journeys/fixpack/index.js +0 -16
  104. package/lib/steps/validate-not-present-package.d.ts +0 -3
  105. package/lib/steps/validate-not-present-package.js +0 -24
  106. package/lib/utils/try-json.d.ts +0 -1
  107. package/lib/utils/try-json.js +0 -11
@@ -11,7 +11,13 @@ const split_segments_js_1 = require("./split-segments.js");
11
11
  function mergeSemicolonSegments(current, incoming) {
12
12
  let currentSegments = (0, split_segments_js_1.splitSegments)(current);
13
13
  const incomingSegments = (0, split_segments_js_1.splitSegments)(incoming);
14
- for (const incomingSegment of incomingSegments) {
14
+ // Pre-scan incoming segments to find which ones match existing current segments by prefix
15
+ const initialMatchedIndices = incomingSegments.map((seg) => {
16
+ const p = (0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(seg).prefix;
17
+ return currentSegments.findIndex((cs) => (0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(cs).prefix === p);
18
+ });
19
+ for (let incomingIndex = 0; incomingIndex < incomingSegments.length; incomingIndex++) {
20
+ const incomingSegment = incomingSegments[incomingIndex];
15
21
  // If the incoming segment is itself a chain (&& or ||), merge subparts accordingly
16
22
  if (incomingSegment.includes('||')) {
17
23
  const incomingParts = incomingSegment.split('||').map((s) => s.trim()).filter(Boolean);
@@ -38,7 +44,58 @@ function mergeSemicolonSegments(current, incoming) {
38
44
  }
39
45
  }
40
46
  if (!mergedIntoCurrent) {
41
- currentSegments.push(incomingSegment);
47
+ // Determine insertion position based on matched incoming segments context
48
+ let previousMatch = -1;
49
+ for (let j = incomingIndex - 1; j >= 0; j--) {
50
+ const mi = initialMatchedIndices[j];
51
+ if (mi >= 0) {
52
+ const pref = (0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(incomingSegments[j]).prefix;
53
+ const pos = currentSegments.findIndex((cs) => (0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(cs).prefix === pref);
54
+ if (pos !== -1) {
55
+ previousMatch = pos;
56
+ break;
57
+ }
58
+ }
59
+ }
60
+ let nextMatch = -1;
61
+ for (let j = incomingIndex + 1; j < incomingSegments.length; j++) {
62
+ const mi = initialMatchedIndices[j];
63
+ if (mi >= 0) {
64
+ const pref = (0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(incomingSegments[j]).prefix;
65
+ const pos = currentSegments.findIndex((cs) => (0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(cs).prefix === pref);
66
+ if (pos !== -1) {
67
+ nextMatch = pos;
68
+ break;
69
+ }
70
+ }
71
+ }
72
+ const incomingBase = ((0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(incomingSegment).prefix || incomingSegment).split(' ')[0];
73
+ let basePos = null;
74
+ for (let k = currentSegments.length - 1; k >= 0; k--) {
75
+ const cp = (0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(currentSegments[k]).prefix || currentSegments[k];
76
+ const cpBase = cp.split(' ')[0];
77
+ if (cpBase === incomingBase) {
78
+ basePos = k;
79
+ break;
80
+ }
81
+ }
82
+ let insertPos;
83
+ if ((previousMatch >= 0) && (nextMatch >= 0)) {
84
+ insertPos = previousMatch + 1;
85
+ }
86
+ else if ((basePos !== null) && (nextMatch < 0)) {
87
+ insertPos = basePos + 1;
88
+ }
89
+ else if (previousMatch >= 0) {
90
+ insertPos = previousMatch + 1;
91
+ }
92
+ else if (nextMatch >= 0) {
93
+ insertPos = nextMatch + 1;
94
+ }
95
+ else {
96
+ insertPos = currentSegments.length;
97
+ }
98
+ currentSegments.splice(insertPos, 0, incomingSegment);
42
99
  }
43
100
  continue;
44
101
  }
@@ -95,7 +152,57 @@ function mergeSemicolonSegments(current, incoming) {
95
152
  }
96
153
  }
97
154
  if (!mergedIntoCurrent) {
98
- currentSegments.push(incomingSegment);
155
+ let previousMatch = -1;
156
+ for (let j = incomingIndex - 1; j >= 0; j--) {
157
+ const mi = initialMatchedIndices[j];
158
+ if (mi >= 0) {
159
+ const pref = (0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(incomingSegments[j]).prefix;
160
+ const pos = currentSegments.findIndex((cs) => (0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(cs).prefix === pref);
161
+ if (pos !== -1) {
162
+ previousMatch = pos;
163
+ break;
164
+ }
165
+ }
166
+ }
167
+ let nextMatch = -1;
168
+ for (let j = incomingIndex + 1; j < incomingSegments.length; j++) {
169
+ const mi = initialMatchedIndices[j];
170
+ if (mi >= 0) {
171
+ const pref = (0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(incomingSegments[j]).prefix;
172
+ const pos = currentSegments.findIndex((cs) => (0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(cs).prefix === pref);
173
+ if (pos !== -1) {
174
+ nextMatch = pos;
175
+ break;
176
+ }
177
+ }
178
+ }
179
+ const incomingBase = ((0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(incomingSegment).prefix || incomingSegment).split(' ')[0];
180
+ let basePos = null;
181
+ for (let k = currentSegments.length - 1; k >= 0; k--) {
182
+ const cp = (0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(currentSegments[k]).prefix || currentSegments[k];
183
+ const cpBase = cp.split(' ')[0];
184
+ if (cpBase === incomingBase) {
185
+ basePos = k;
186
+ break;
187
+ }
188
+ }
189
+ let insertPos;
190
+ if ((previousMatch >= 0) && (nextMatch >= 0)) {
191
+ insertPos = previousMatch + 1;
192
+ }
193
+ else if ((basePos !== null) && (nextMatch < 0)) {
194
+ insertPos = basePos + 1;
195
+ }
196
+ else if (previousMatch >= 0) {
197
+ insertPos = previousMatch + 1;
198
+ }
199
+ else if (nextMatch >= 0) {
200
+ insertPos = nextMatch + 1;
201
+ }
202
+ else {
203
+ insertPos = currentSegments.length;
204
+ }
205
+ currentSegments.splice(insertPos, 0, incomingSegment);
99
206
  }
100
207
  continue;
101
208
  }
@@ -110,7 +217,57 @@ function mergeSemicolonSegments(current, incoming) {
110
217
  }
111
218
  }
112
219
  if (!matched) {
113
- currentSegments.push(incomingSegment);
220
+ let previousMatch = -1;
221
+ for (let j = incomingIndex - 1; j >= 0; j--) {
222
+ const mi = initialMatchedIndices[j];
223
+ if (mi >= 0) {
224
+ const pref = (0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(incomingSegments[j]).prefix;
225
+ const pos = currentSegments.findIndex((cs) => (0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(cs).prefix === pref);
226
+ if (pos !== -1) {
227
+ previousMatch = pos;
228
+ break;
229
+ }
230
+ }
231
+ }
232
+ let nextMatch = -1;
233
+ for (let j = incomingIndex + 1; j < incomingSegments.length; j++) {
234
+ const mi = initialMatchedIndices[j];
235
+ if (mi >= 0) {
236
+ const pref = (0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(incomingSegments[j]).prefix;
237
+ const pos = currentSegments.findIndex((cs) => (0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(cs).prefix === pref);
238
+ if (pos !== -1) {
239
+ nextMatch = pos;
240
+ break;
241
+ }
242
+ }
243
+ }
244
+ const incomingBase = (incomingPartsObject.prefix || incomingSegment).split(' ')[0];
245
+ let basePos = null;
246
+ for (let k = currentSegments.length - 1; k >= 0; k--) {
247
+ const cp = (0, split_prefix_and_flags_js_1.splitPrefixAndFlags)(currentSegments[k]).prefix || currentSegments[k];
248
+ const cpBase = cp.split(' ')[0];
249
+ if (cpBase === incomingBase) {
250
+ basePos = k;
251
+ break;
252
+ }
253
+ }
254
+ let insertPos;
255
+ if ((previousMatch >= 0) && (nextMatch >= 0)) {
256
+ insertPos = previousMatch + 1;
257
+ }
258
+ else if ((basePos !== null) && (nextMatch < 0)) {
259
+ insertPos = basePos + 1;
260
+ }
261
+ else if (previousMatch >= 0) {
262
+ insertPos = previousMatch + 1;
263
+ }
264
+ else if (nextMatch >= 0) {
265
+ insertPos = nextMatch + 1;
266
+ }
267
+ else {
268
+ insertPos = currentSegments.length;
269
+ }
270
+ currentSegments.splice(insertPos, 0, incomingSegment);
114
271
  }
115
272
  }
116
273
  // Deduplicate top-level semicolon segments by prefix, preserving first occurrence
@@ -0,0 +1 @@
1
+ export declare function fnmatch(filepath: string, glob: string): boolean;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.fnmatch = fnmatch;
7
+ const fnmatch_1 = __importDefault(require("editorconfig/src/lib/fnmatch"));
8
+ function fnmatch(filepath, glob) {
9
+ const matchOptions = { matchBase: true, dot: true, noext: true };
10
+ return (0, fnmatch_1.default)(filepath, glob, matchOptions);
11
+ } // }}}
@@ -0,0 +1 @@
1
+ export declare function formatTable(rows: string[][], align: string, spaces?: string): string[];
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatTable = formatTable;
4
+ const node_util_1 = require("node:util");
5
+ function formatTable(rows, align, spaces = ' ') {
6
+ const maxLength = [];
7
+ for (const row of rows) {
8
+ for (const [index, cell] of row.entries()) {
9
+ const length = getVisualLength(cell);
10
+ if (!maxLength[index] || maxLength[index] < length) {
11
+ maxLength[index] = length;
12
+ }
13
+ }
14
+ }
15
+ const lines = [];
16
+ for (const row of rows) {
17
+ const cells = [];
18
+ for (const [index, cell] of row.entries()) {
19
+ const pad = align[index] === 'R' ? visualPadStart : visualPadEnd;
20
+ cells.push(pad(cell, maxLength[index]));
21
+ }
22
+ lines.push(cells.join(spaces));
23
+ }
24
+ return lines;
25
+ }
26
+ function getVisualLength(cell) {
27
+ if (cell === '') {
28
+ return 0;
29
+ }
30
+ cell = (0, node_util_1.stripVTControlCharacters)(cell);
31
+ let width = 0;
32
+ for (let i = 0; i < cell.length; i++) {
33
+ const code = cell.codePointAt(i);
34
+ if (!code) {
35
+ continue;
36
+ }
37
+ // Ignore control characters
38
+ if (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) {
39
+ continue;
40
+ }
41
+ // Ignore combining characters
42
+ if (code >= 0x3_00 && code <= 0x3_6F) {
43
+ continue;
44
+ }
45
+ // Surrogates
46
+ if (code > 0xFF_FF) {
47
+ i++;
48
+ }
49
+ width += 1;
50
+ }
51
+ return width;
52
+ }
53
+ function visualPadStart(text, pad, char = ' ') {
54
+ return text.padStart(pad - getVisualLength(text) + text.length, char);
55
+ }
56
+ function visualPadEnd(text, pad, char = ' ') {
57
+ return text.padEnd(pad - getVisualLength(text) + text.length, char);
58
+ }
@@ -1,17 +1,10 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.getFormat = getFormat;
7
- const fnmatch_1 = __importDefault(require("editorconfig/src/lib/fnmatch"));
8
- function fnmatch(filepath, glob) {
9
- const matchOptions = { matchBase: true, dot: true, noext: true };
10
- return (0, fnmatch_1.default)(filepath, glob, matchOptions);
11
- } // }}}
4
+ const fnmatch_js_1 = require("./fnmatch.js");
12
5
  function getFormat(name, formats) {
13
6
  for (const format of formats) {
14
- if (fnmatch(name, format.glob)) {
7
+ if ((0, fnmatch_js_1.fnmatch)(name, format.glob)) {
15
8
  return format;
16
9
  }
17
10
  }
@@ -0,0 +1,6 @@
1
+ import { type Spinner } from '@zokugun/cli-utils/logger';
2
+ export declare function loadPackage(spec: string, spinner: Spinner, options: {
3
+ force?: boolean;
4
+ skip?: boolean;
5
+ verbose?: boolean;
6
+ }): Promise<string | null>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.loadPackage = loadPackage;
7
+ const cli_utils_1 = require("@zokugun/cli-utils");
8
+ const pacote_1 = __importDefault(require("pacote"));
9
+ const tempy_1 = __importDefault(require("tempy"));
10
+ async function loadPackage(spec, spinner, options) {
11
+ const dir = tempy_1.default.directory();
12
+ const pkgResult = await pacote_1.default.extract(spec, dir);
13
+ if (!pkgResult.resolved) {
14
+ if (options.force || options.skip) {
15
+ spinner.fail();
16
+ if (options.verbose) {
17
+ cli_utils_1.logger.warn(`The artifact '${spec}' couldn't be found, skipping...`);
18
+ }
19
+ return null;
20
+ }
21
+ else {
22
+ cli_utils_1.logger.fatal(pkgResult.from);
23
+ }
24
+ }
25
+ return dir;
26
+ }
@@ -46,7 +46,6 @@ const utc_1 = __importDefault(require("dayjs/plugin/utc"));
46
46
  const git_url_parse_1 = __importDefault(require("git-url-parse"));
47
47
  const lodash_es_1 = require("lodash-es");
48
48
  const YAML = __importStar(require("../parsers/yaml.js"));
49
- const try_json_js_1 = require("./try-json.js");
50
49
  dayjs_1.default.extend(utc_1.default);
51
50
  const EXPRESSION_REGEX = /#\[\[(.*?)]]/g;
52
51
  const PATH_PROPERTY_REGEX = /^(\w+?)(?:\.|$)(.*)$/;
@@ -157,7 +156,7 @@ class TemplateEngine {
157
156
  return (0, xtry_1.ok)(YAML.parse(content));
158
157
  }
159
158
  else {
160
- return (0, xtry_1.ok)((0, try_json_js_1.tryJSON)(content) ?? YAML.parse(content));
159
+ return (0, xtry_1.ok)(JSON.parse(content) ?? YAML.parse(content));
161
160
  }
162
161
  }
163
162
  catch (parseError) {
@@ -197,7 +196,6 @@ class TemplateEngine {
197
196
  if (readResult.fails) {
198
197
  return readResult;
199
198
  }
200
- // const getValueResult = this.getValueByPath(readResult.value, propertyPath);
201
199
  const evalResult = this.evaluateExpression(propertyPath, readResult.value);
202
200
  if (evalResult.fails) {
203
201
  return evalResult;
@@ -0,0 +1 @@
1
+ export declare function timeDifference(from: number | string, to?: number): string;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.timeDifference = timeDifference;
4
+ const cli_utils_1 = require("@zokugun/cli-utils");
5
+ const is_it_type_1 = require("@zokugun/is-it-type");
6
+ const msPerMinute = 60 * 1000;
7
+ const msPerHour = msPerMinute * 60;
8
+ const msPerDay = msPerHour * 24;
9
+ const msPerMonth = msPerDay * 30;
10
+ const msPerYear = msPerDay * 365;
11
+ function timeDifference(from, to = Date.now()) {
12
+ if ((0, is_it_type_1.isString)(from)) {
13
+ from = (new Date(from)).getTime();
14
+ }
15
+ const elapsed = to - from;
16
+ if (elapsed < msPerDay) {
17
+ return cli_utils_1.c.gray('⩽1d');
18
+ }
19
+ else if (elapsed < msPerMonth) {
20
+ return cli_utils_1.c.green(`~${Math.round(elapsed / msPerDay)}d`);
21
+ }
22
+ else if (elapsed < msPerYear) {
23
+ return cli_utils_1.c.yellow(`~${Math.round(elapsed / msPerMonth)}mo`);
24
+ }
25
+ else {
26
+ return cli_utils_1.c.red(`~${(elapsed / msPerYear).toFixed(1)}y`);
27
+ }
28
+ }
package/package.json CHANGED
@@ -1,127 +1,130 @@
1
1
  {
2
- "name": "@zokugun/artifact",
3
- "description": "Boilerplate your project & keep your configurations up to date",
4
- "version": "0.7.0",
5
- "author": {
6
- "name": "Baptiste Augrain",
7
- "email": "daiyam@zokugun.org"
8
- },
9
- "license": "MIT",
10
- "homepage": "https://github.com/zokugun/artifact",
11
- "repository": {
12
- "type": "git",
13
- "url": "https://github.com/zokugun/artifact.git"
14
- },
15
- "bugs": {
16
- "url": "https://github.com/zokugun/artifact/discussions/categories/issue-triage"
17
- },
18
- "engines": {
19
- "node": ">=18.20"
20
- },
21
- "bin": {
22
- "artifact": "bin/artifact",
23
- "atf": "bin/artifact"
24
- },
25
- "scripts": {
26
- "audit:fix": "npm audit fix --min-release-age=0",
27
- "build": "npm run clean && npm run compile:src",
28
- "ci:lint": "zizmor .",
29
- "ci:lint:fix": "zizmor . --fix=all",
30
- "clean": "rimraf .test lib",
31
- "compile:src": "tsc -p src",
32
- "lint": "xo",
33
- "lint:all": "fixpack && npm run ci:lint && npm run lint",
34
- "lint:fix": "xo --fix",
35
- "prepack": "npm run build",
36
- "prepare": "husky; fixpack || true",
37
- "release": "release-it",
38
- "test": "tsc -p test && mocha",
39
- "test:dev": "mocha",
40
- "test:watch": "tsc-watch -p src -p test --onSuccess 'mocha -g=\"vars.exp.pipe.gitname.dotprop\"'",
41
- "update:artifacts": "artifact update",
42
- "update:ci": "PINACT_MIN_AGE=7 pinact run",
43
- "update:deps": "taze",
44
- "watch:build": "tsc-watch -p src --onSuccess 'npm run build'",
45
- "watch:src": "tsc-watch -p src",
46
- "watch:test": "tsc-watch -p test"
47
- },
48
- "dependencies": {
49
- "@zokugun/cli-utils": "0.3.1",
50
- "@zokugun/configdotts-merge": "0.2.1",
51
- "@zokugun/fs-extra-plus": "0.3.7",
52
- "@zokugun/is-it-type": "0.8.1",
53
- "@zokugun/xtry": "0.11.4",
54
- "dayjs": "1.11.20",
55
- "editorconfig": "0.15.3",
56
- "git-url-parse": "16.1.0",
57
- "globby": "11.1.0",
58
- "istextorbinary": "6.0.0",
59
- "jq-wasm": "1.1.0-jq-1.8.1",
60
- "jsonc-parser": "3.3.1",
61
- "lodash-es": "4.18.1",
62
- "micromatch": "4.0.8",
63
- "pacote": "21.5.0",
64
- "semver": "7.7.4",
65
- "tempy": "1.0.1",
66
- "untildify": "4.0.0",
67
- "yaml": "2.8.3"
68
- },
69
- "devDependencies": {
70
- "@commitlint/cli": "19.8.1",
71
- "@commitlint/config-conventional": "19.8.1",
72
- "@types/chai": "4.3.20",
73
- "@types/chai-as-promised": "7.1.8",
74
- "@types/lodash-es": "4.17.12",
75
- "@types/micromatch": "4.0.10",
76
- "@types/mocha": "9.1.1",
77
- "@types/node": "20.19.39",
78
- "@types/npm": "7.19.3",
79
- "@types/pacote": "11.1.8",
80
- "@types/semver": "7.7.1",
81
- "@types/universalify": "1.0.3",
82
- "camelcase": "6.3.0",
83
- "chai": "4.5.0",
84
- "chai-as-promised": "7.1.2",
85
- "eslint": "8.11.0",
86
- "eslint-plugin-chai-friendly": "0.7.4",
87
- "fixpack": "4.0.0",
88
- "husky": "9.1.7",
89
- "lint-staged": "16.4.0",
90
- "memfs": "3.6.0",
91
- "mocha": "9.2.2",
92
- "release-it": "20.0.0",
93
- "rewiremock": "3.14.6",
94
- "source-map-support": "0.5.21",
95
- "taze": "19.11.0",
96
- "tsc-watch": "7.2.0",
97
- "typescript": "5.9.3",
98
- "universalify": "2.0.1",
99
- "xo": "0.60.0"
100
- },
101
- "overrides": {
102
- "mocha": {
103
- "diff": "5.2.2",
104
- "glob": "8.1.0",
105
- "js-yaml": "4.1.1",
106
- "minimatch": "4.2.6",
107
- "nanoid": "3.3.11",
108
- "serialize-javascript": "7.0.5"
109
- }
110
- },
111
- "keywords": [
112
- "artifact",
113
- "boilerplate",
114
- "boilerplates",
115
- "codegeneration",
116
- "codemod",
117
- "codemods",
118
- "configuration",
119
- "configurations",
120
- "generate",
121
- "generator",
122
- "project-generator",
123
- "project-starter",
124
- "project-template",
125
- "scaffold"
126
- ]
2
+ "name": "@zokugun/artifact",
3
+ "description": "Boilerplate your project & keep your configurations up to date",
4
+ "version": "0.9.0",
5
+ "author": {
6
+ "name": "Baptiste Augrain",
7
+ "email": "daiyam@zokugun.org"
8
+ },
9
+ "license": "MIT",
10
+ "homepage": "https://github.com/zokugun/artifact",
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/zokugun/artifact.git"
14
+ },
15
+ "bugs": {
16
+ "url": "https://github.com/zokugun/artifact/discussions/categories/issue-triage"
17
+ },
18
+ "engines": {
19
+ "node": ">=18.20"
20
+ },
21
+ "bin": {
22
+ "artifact": "bin/artifact",
23
+ "atf": "bin/artifact"
24
+ },
25
+ "scripts": {
26
+ "audit:fix": "npm audit fix --min-release-age=0",
27
+ "build": "npm run clean && npm run compile:src",
28
+ "ci:lint": "zizmor .",
29
+ "ci:lint:fix": "zizmor . --fix=all",
30
+ "clean": "rimraf .test lib",
31
+ "compile:src": "tsc -p src",
32
+ "lint": "xo",
33
+ "lint:all": "fixpack && npm run lint:package && npm run ci:lint && npm run lint",
34
+ "lint:fix": "xo --fix",
35
+ "lint:package": "fixpack || true",
36
+ "prepare": "husky; npm run lint:package",
37
+ "release": "release-it",
38
+ "test": "tsc -p test && mocha",
39
+ "test:dev": "mocha",
40
+ "test:watch": "tsc-watch -p src -p test --onSuccess 'mocha -g=\"\"'",
41
+ "update:artifacts": "artifact update",
42
+ "update:ci": "PINACT_MIN_AGE=7 pinact run --update",
43
+ "update:deps": "taze --all",
44
+ "watch:build": "tsc-watch -p src --onSuccess 'npm run build'",
45
+ "watch:src": "tsc-watch -p src",
46
+ "watch:test": "tsc-watch -p test"
47
+ },
48
+ "dependencies": {
49
+ "@types/cli-progress": "3.11.6",
50
+ "@zokugun/cli-utils": "0.3.2",
51
+ "@zokugun/configdotts-merge": "0.3.0",
52
+ "@zokugun/fs-extra-plus": "0.3.7",
53
+ "@zokugun/is-it-type": "0.8.1",
54
+ "@zokugun/xtry": "0.11.4",
55
+ "cli-progress": "3.12.0",
56
+ "dayjs": "1.11.20",
57
+ "editorconfig": "0.15.3",
58
+ "git-url-parse": "16.1.0",
59
+ "globby": "11.1.0",
60
+ "istextorbinary": "6.0.0",
61
+ "jq-wasm": "1.1.0-jq-1.8.1",
62
+ "jsonc-parser": "3.3.1",
63
+ "lodash-es": "4.18.1",
64
+ "micromatch": "4.0.8",
65
+ "pacote": "21.5.0",
66
+ "semver": "7.7.4",
67
+ "tempy": "1.0.1",
68
+ "untildify": "4.0.0",
69
+ "yaml": "2.8.3"
70
+ },
71
+ "devDependencies": {
72
+ "@commitlint/cli": "20.5.2",
73
+ "@commitlint/config-conventional": "20.5.0",
74
+ "@types/chai": "4.3.20",
75
+ "@types/chai-as-promised": "7.1.8",
76
+ "@types/lodash-es": "4.17.12",
77
+ "@types/micromatch": "4.0.10",
78
+ "@types/mocha": "9.1.1",
79
+ "@types/node": "20.19.39",
80
+ "@types/npm": "7.19.3",
81
+ "@types/pacote": "11.1.8",
82
+ "@types/semver": "7.7.1",
83
+ "@types/universalify": "1.0.3",
84
+ "camelcase": "6.3.0",
85
+ "chai": "4.5.0",
86
+ "chai-as-promised": "7.1.2",
87
+ "eslint": "8.11.0",
88
+ "eslint-plugin-chai-friendly": "0.7.4",
89
+ "fixpack": "4.0.0",
90
+ "husky": "9.1.7",
91
+ "lint-staged": "16.4.0",
92
+ "memfs": "3.6.0",
93
+ "mocha": "9.2.2",
94
+ "release-it": "20.0.1",
95
+ "rewiremock": "3.14.6",
96
+ "rimraf": "6.1.3",
97
+ "source-map-support": "0.5.21",
98
+ "taze": "19.11.0",
99
+ "tsc-watch": "7.2.0",
100
+ "typescript": "5.9.3",
101
+ "universalify": "2.0.1",
102
+ "xo": "0.60.0"
103
+ },
104
+ "overrides": {
105
+ "mocha": {
106
+ "diff": "5.2.2",
107
+ "glob": "8.1.0",
108
+ "js-yaml": "4.1.1",
109
+ "minimatch": "4.2.6",
110
+ "nanoid": "3.3.11",
111
+ "serialize-javascript": "7.0.5"
112
+ }
113
+ },
114
+ "keywords": [
115
+ "artifact",
116
+ "boilerplate",
117
+ "boilerplates",
118
+ "codegeneration",
119
+ "codemod",
120
+ "codemods",
121
+ "configuration",
122
+ "configurations",
123
+ "generate",
124
+ "generator",
125
+ "project-generator",
126
+ "project-starter",
127
+ "project-template",
128
+ "scaffold"
129
+ ]
127
130
  }
@@ -1,2 +0,0 @@
1
- declare const _default: (basename: string) => import("../../types/travel.js").Journey | undefined;
2
- export default _default;