@cdklabs/eslint-plugin 1.3.0 → 1.3.2

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.
@@ -5,9 +5,11 @@ exports.create = create;
5
5
  exports.meta = {
6
6
  hasSuggestions: true,
7
7
  };
8
+ // list of paths that should trigger the toolkit error suggestions
9
+ const toolkitErrorPaths = ['packages/aws-cdk/', 'packages/@aws-cdk/toolkit/'];
8
10
  function create(context) {
9
11
  const fileName = context.filename;
10
- const isCliFile = fileName.includes('packages/aws-cdk/');
12
+ const isToolkitFile = toolkitErrorPaths.some((path) => fileName.includes(path));
11
13
  return {
12
14
  ThrowStatement(node) {
13
15
  if (node.argument.type !== 'NewExpression') {
@@ -17,55 +19,34 @@ function create(context) {
17
19
  if (newExpr.callee &&
18
20
  newExpr.callee.type === 'Identifier' &&
19
21
  newExpr.callee.name === 'Error') {
20
- const suggestions = [
21
- {
22
- desc: 'Replace with `ValidationError`',
22
+ const suggestions = [];
23
+ const replaceErrorClassSuggestion = (suggested) => {
24
+ return {
25
+ desc: `Replace with \`${suggested}\``,
23
26
  fix: (fixer) => {
24
- var _a;
25
- // no existing args
27
+ // no args
26
28
  if (newExpr.arguments.length === 0) {
27
- return fixer.replaceText(newExpr, "new ValidationError('<insert error message>', this)");
29
+ return fixer.replaceText(newExpr, `new ${suggested}('<insert error message>')`);
28
30
  }
29
- const fixes = [
30
- fixer.replaceText(newExpr.callee, 'ValidationError'),
31
- ];
32
- const last = (_a = newExpr.arguments.at(-1)) === null || _a === void 0 ? void 0 : _a.range;
33
- if (last) {
34
- fixes.push(fixer.insertTextAfterRange(last, ', this'));
35
- }
36
- return fixes;
31
+ return [fixer.replaceText(newExpr.callee, suggested)];
37
32
  },
38
- },
39
- ];
33
+ };
34
+ };
40
35
  // Adds ToolkitError and AuthenticationError suggestions for CLI files.
41
- if (isCliFile) {
36
+ if (isToolkitFile) {
37
+ suggestions.push(replaceErrorClassSuggestion('ToolkitError'), replaceErrorClassSuggestion('AuthenticationError'), replaceErrorClassSuggestion('AssemblyError'), replaceErrorClassSuggestion('ContextProviderError'));
38
+ }
39
+ else {
42
40
  suggestions.push({
43
- desc: 'Replace with `ToolkitError`',
44
- fix: (fixer) => {
45
- var _a;
46
- // no existing args
47
- if (newExpr.arguments.length === 0) {
48
- return fixer.replaceText(newExpr, "new ToolkitError('<insert error message>')");
49
- }
50
- const fixes = [
51
- fixer.replaceText(newExpr.callee, 'ToolkitError'),
52
- ];
53
- const last = (_a = newExpr.arguments.at(-1)) === null || _a === void 0 ? void 0 : _a.range;
54
- if (last) {
55
- fixes.push(fixer.insertTextAfterRange(last, ', this'));
56
- }
57
- return fixes;
58
- },
59
- }, {
60
- desc: 'Replace with `AuthenticationError`',
41
+ desc: 'Replace with `ValidationError`',
61
42
  fix: (fixer) => {
62
43
  var _a;
63
44
  // no existing args
64
45
  if (newExpr.arguments.length === 0) {
65
- return fixer.replaceText(newExpr, "new AuthenticationError('<insert error message>')");
46
+ return fixer.replaceText(newExpr, "new ValidationError('<insert error message>', this)");
66
47
  }
67
48
  const fixes = [
68
- fixer.replaceText(newExpr.callee, 'AuthenticationError'),
49
+ fixer.replaceText(newExpr.callee, 'ValidationError'),
69
50
  ];
70
51
  const last = (_a = newExpr.arguments.at(-1)) === null || _a === void 0 ? void 0 : _a.range;
71
52
  if (last) {
@@ -84,4 +65,4 @@ function create(context) {
84
65
  },
85
66
  };
86
67
  }
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tdGhyb3ctZGVmYXVsdC1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby10aHJvdy1kZWZhdWx0LWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9BLHdCQW1HQztBQXZHWSxRQUFBLElBQUksR0FBRztJQUNsQixjQUFjLEVBQUUsSUFBSTtDQUNyQixDQUFDO0FBRUYsU0FBZ0IsTUFBTSxDQUFDLE9BQXlCO0lBQzlDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDbEMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRXpELE9BQU87UUFDTCxjQUFjLENBQUMsSUFBb0I7WUFDakMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxlQUFlLEVBQUUsQ0FBQztnQkFDM0MsT0FBTztZQUNULENBQUM7WUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBeUIsQ0FBQztZQUMvQyxJQUNFLE9BQU8sQ0FBQyxNQUFNO2dCQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFlBQVk7Z0JBQ3BDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFDL0IsQ0FBQztnQkFDRCxNQUFNLFdBQVcsR0FBRztvQkFDbEI7d0JBQ0UsSUFBSSxFQUFFLGdDQUFnQzt3QkFDdEMsR0FBRyxFQUFFLENBQUMsS0FBcUIsRUFBRSxFQUFFOzs0QkFDN0IsbUJBQW1COzRCQUNuQixJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dDQUNuQyxPQUFPLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLHFEQUFxRCxDQUFDLENBQUM7NEJBQzNGLENBQUM7NEJBRUQsTUFBTSxLQUFLLEdBQUc7Z0NBQ1osS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDOzZCQUNyRCxDQUFDOzRCQUVGLE1BQU0sSUFBSSxHQUFHLE1BQUEsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsMENBQUUsS0FBSyxDQUFDOzRCQUM3QyxJQUFJLElBQUksRUFBRSxDQUFDO2dDQUNULEtBQUssQ0FBQyxJQUFJLENBQ1IsS0FBSyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FDM0MsQ0FBQzs0QkFDSixDQUFDOzRCQUVELE9BQU8sS0FBSyxDQUFDO3dCQUNmLENBQUM7cUJBQ0Y7aUJBQ0YsQ0FBQztnQkFFRix1RUFBdUU7Z0JBQ3ZFLElBQUksU0FBUyxFQUFFLENBQUM7b0JBQ2QsV0FBVyxDQUFDLElBQUksQ0FDZDt3QkFDRSxJQUFJLEVBQUUsNkJBQTZCO3dCQUNuQyxHQUFHLEVBQUUsQ0FBQyxLQUFxQixFQUFFLEVBQUU7OzRCQUM3QixtQkFBbUI7NEJBQ25CLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0NBQ25DLE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsNENBQTRDLENBQUMsQ0FBQzs0QkFDbEYsQ0FBQzs0QkFFRCxNQUFNLEtBQUssR0FBRztnQ0FDWixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDOzZCQUNsRCxDQUFDOzRCQUVGLE1BQU0sSUFBSSxHQUFHLE1BQUEsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsMENBQUUsS0FBSyxDQUFDOzRCQUM3QyxJQUFJLElBQUksRUFBRSxDQUFDO2dDQUNULEtBQUssQ0FBQyxJQUFJLENBQ1IsS0FBSyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FDM0MsQ0FBQzs0QkFDSixDQUFDOzRCQUVELE9BQU8sS0FBSyxDQUFDO3dCQUNmLENBQUM7cUJBQ0YsRUFDRDt3QkFDRSxJQUFJLEVBQUUsb0NBQW9DO3dCQUMxQyxHQUFHLEVBQUUsQ0FBQyxLQUFxQixFQUFFLEVBQUU7OzRCQUM3QixtQkFBbUI7NEJBQ25CLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0NBQ25DLE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsbURBQW1ELENBQUMsQ0FBQzs0QkFDekYsQ0FBQzs0QkFFRCxNQUFNLEtBQUssR0FBRztnQ0FDWixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUM7NkJBQ3pELENBQUM7NEJBRUYsTUFBTSxJQUFJLEdBQUcsTUFBQSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQ0FBRSxLQUFLLENBQUM7NEJBQzdDLElBQUksSUFBSSxFQUFFLENBQUM7Z0NBQ1QsS0FBSyxDQUFDLElBQUksQ0FDUixLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUMzQyxDQUFDOzRCQUNKLENBQUM7NEJBRUQsT0FBTyxLQUFLLENBQUM7d0JBQ2YsQ0FBQztxQkFDRixDQUNGLENBQUM7Z0JBQ0osQ0FBQztnQkFFRCxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUNiLElBQUksRUFBRSxPQUFPO29CQUNiLE9BQU8sRUFBRSxtREFBbUQ7b0JBQzVELE9BQU8sRUFBRSxXQUFXO2lCQUNyQixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUnVsZSB9IGZyb20gJ2VzbGludCc7XG5pbXBvcnQgdHlwZSB7IE5ld0V4cHJlc3Npb24sIFRocm93U3RhdGVtZW50IH0gZnJvbSAnZXN0cmVlJztcblxuZXhwb3J0IGNvbnN0IG1ldGEgPSB7XG4gIGhhc1N1Z2dlc3Rpb25zOiB0cnVlLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5Ob2RlTGlzdGVuZXIge1xuICBjb25zdCBmaWxlTmFtZSA9IGNvbnRleHQuZmlsZW5hbWU7XG4gIGNvbnN0IGlzQ2xpRmlsZSA9IGZpbGVOYW1lLmluY2x1ZGVzKCdwYWNrYWdlcy9hd3MtY2RrLycpO1xuXG4gIHJldHVybiB7XG4gICAgVGhyb3dTdGF0ZW1lbnQobm9kZTogVGhyb3dTdGF0ZW1lbnQpIHtcbiAgICAgIGlmIChub2RlLmFyZ3VtZW50LnR5cGUgIT09ICdOZXdFeHByZXNzaW9uJykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld0V4cHIgPSBub2RlLmFyZ3VtZW50IGFzIE5ld0V4cHJlc3Npb247XG4gICAgICBpZiAoXG4gICAgICAgIG5ld0V4cHIuY2FsbGVlICYmXG4gICAgICAgIG5ld0V4cHIuY2FsbGVlLnR5cGUgPT09ICdJZGVudGlmaWVyJyAmJlxuICAgICAgICBuZXdFeHByLmNhbGxlZS5uYW1lID09PSAnRXJyb3InXG4gICAgICApIHtcbiAgICAgICAgY29uc3Qgc3VnZ2VzdGlvbnMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGVzYzogJ1JlcGxhY2Ugd2l0aCBgVmFsaWRhdGlvbkVycm9yYCcsXG4gICAgICAgICAgICBmaXg6IChmaXhlcjogUnVsZS5SdWxlRml4ZXIpID0+IHtcbiAgICAgICAgICAgICAgLy8gbm8gZXhpc3RpbmcgYXJnc1xuICAgICAgICAgICAgICBpZiAobmV3RXhwci5hcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpeGVyLnJlcGxhY2VUZXh0KG5ld0V4cHIsIFwibmV3IFZhbGlkYXRpb25FcnJvcignPGluc2VydCBlcnJvciBtZXNzYWdlPicsIHRoaXMpXCIpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgZml4ZXMgPSBbXG4gICAgICAgICAgICAgICAgZml4ZXIucmVwbGFjZVRleHQobmV3RXhwci5jYWxsZWUsICdWYWxpZGF0aW9uRXJyb3InKSxcbiAgICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgICBjb25zdCBsYXN0ID0gbmV3RXhwci5hcmd1bWVudHMuYXQoLTEpPy5yYW5nZTtcbiAgICAgICAgICAgICAgaWYgKGxhc3QpIHtcbiAgICAgICAgICAgICAgICBmaXhlcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgZml4ZXIuaW5zZXJ0VGV4dEFmdGVyUmFuZ2UobGFzdCwgJywgdGhpcycpLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4gZml4ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG5cbiAgICAgICAgLy8gQWRkcyBUb29sa2l0RXJyb3IgYW5kIEF1dGhlbnRpY2F0aW9uRXJyb3Igc3VnZ2VzdGlvbnMgZm9yIENMSSBmaWxlcy5cbiAgICAgICAgaWYgKGlzQ2xpRmlsZSkge1xuICAgICAgICAgIHN1Z2dlc3Rpb25zLnB1c2goXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGRlc2M6ICdSZXBsYWNlIHdpdGggYFRvb2xraXRFcnJvcmAnLFxuICAgICAgICAgICAgICBmaXg6IChmaXhlcjogUnVsZS5SdWxlRml4ZXIpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBubyBleGlzdGluZyBhcmdzXG4gICAgICAgICAgICAgICAgaWYgKG5ld0V4cHIuYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpeGVyLnJlcGxhY2VUZXh0KG5ld0V4cHIsIFwibmV3IFRvb2xraXRFcnJvcignPGluc2VydCBlcnJvciBtZXNzYWdlPicpXCIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGZpeGVzID0gW1xuICAgICAgICAgICAgICAgICAgZml4ZXIucmVwbGFjZVRleHQobmV3RXhwci5jYWxsZWUsICdUb29sa2l0RXJyb3InKSxcbiAgICAgICAgICAgICAgICBdO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgbGFzdCA9IG5ld0V4cHIuYXJndW1lbnRzLmF0KC0xKT8ucmFuZ2U7XG4gICAgICAgICAgICAgICAgaWYgKGxhc3QpIHtcbiAgICAgICAgICAgICAgICAgIGZpeGVzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIGZpeGVyLmluc2VydFRleHRBZnRlclJhbmdlKGxhc3QsICcsIHRoaXMnKSxcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpeGVzO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZGVzYzogJ1JlcGxhY2Ugd2l0aCBgQXV0aGVudGljYXRpb25FcnJvcmAnLFxuICAgICAgICAgICAgICBmaXg6IChmaXhlcjogUnVsZS5SdWxlRml4ZXIpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBubyBleGlzdGluZyBhcmdzXG4gICAgICAgICAgICAgICAgaWYgKG5ld0V4cHIuYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpeGVyLnJlcGxhY2VUZXh0KG5ld0V4cHIsIFwibmV3IEF1dGhlbnRpY2F0aW9uRXJyb3IoJzxpbnNlcnQgZXJyb3IgbWVzc2FnZT4nKVwiKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBmaXhlcyA9IFtcbiAgICAgICAgICAgICAgICAgIGZpeGVyLnJlcGxhY2VUZXh0KG5ld0V4cHIuY2FsbGVlLCAnQXV0aGVudGljYXRpb25FcnJvcicpLFxuICAgICAgICAgICAgICAgIF07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBsYXN0ID0gbmV3RXhwci5hcmd1bWVudHMuYXQoLTEpPy5yYW5nZTtcbiAgICAgICAgICAgICAgICBpZiAobGFzdCkge1xuICAgICAgICAgICAgICAgICAgZml4ZXMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgZml4ZXIuaW5zZXJ0VGV4dEFmdGVyUmFuZ2UobGFzdCwgJywgdGhpcycpLFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZml4ZXM7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZTogbmV3RXhwcixcbiAgICAgICAgICBtZXNzYWdlOiAnRXhwZWN0ZWQgYSBub24tZGVmYXVsdCBlcnJvciBvYmplY3QgdG8gYmUgdGhyb3duLicsXG4gICAgICAgICAgc3VnZ2VzdDogc3VnZ2VzdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tdGhyb3ctZGVmYXVsdC1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby10aHJvdy1kZWZhdWx0LWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVVBLHdCQTRFQztBQW5GWSxRQUFBLElBQUksR0FBRztJQUNsQixjQUFjLEVBQUUsSUFBSTtDQUNyQixDQUFDO0FBRUYsa0VBQWtFO0FBQ2xFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO0FBRTlFLFNBQWdCLE1BQU0sQ0FBQyxPQUF5QjtJQUM5QyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ2xDLE1BQU0sYUFBYSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3BELFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQ3hCLENBQUM7SUFFRixPQUFPO1FBQ0wsY0FBYyxDQUFDLElBQW9CO1lBQ2pDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssZUFBZSxFQUFFLENBQUM7Z0JBQzNDLE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQXlCLENBQUM7WUFDL0MsSUFDRSxPQUFPLENBQUMsTUFBTTtnQkFDZCxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZO2dCQUNwQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQy9CLENBQUM7Z0JBQ0QsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO2dCQUV2QixNQUFNLDJCQUEyQixHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFO29CQUN4RCxPQUFPO3dCQUNMLElBQUksRUFBRSxrQkFBa0IsU0FBUyxJQUFJO3dCQUNyQyxHQUFHLEVBQUUsQ0FBQyxLQUFxQixFQUFFLEVBQUU7NEJBQzdCLFVBQVU7NEJBQ1YsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQ0FDbkMsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLFNBQVMsNEJBQTRCLENBQUMsQ0FBQzs0QkFDbEYsQ0FBQzs0QkFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7d0JBQ3hELENBQUM7cUJBQ0YsQ0FBQztnQkFDSixDQUFDLENBQUM7Z0JBR0YsdUVBQXVFO2dCQUN2RSxJQUFJLGFBQWEsRUFBRSxDQUFDO29CQUNsQixXQUFXLENBQUMsSUFBSSxDQUNkLDJCQUEyQixDQUFDLGNBQWMsQ0FBQyxFQUMzQywyQkFBMkIsQ0FBQyxxQkFBcUIsQ0FBQyxFQUNsRCwyQkFBMkIsQ0FBQyxlQUFlLENBQUMsRUFDNUMsMkJBQTJCLENBQUMsc0JBQXNCLENBQUMsQ0FDcEQsQ0FBQztnQkFDSixDQUFDO3FCQUFNLENBQUM7b0JBQ04sV0FBVyxDQUFDLElBQUksQ0FBQzt3QkFDZixJQUFJLEVBQUUsZ0NBQWdDO3dCQUN0QyxHQUFHLEVBQUUsQ0FBQyxLQUFxQixFQUFFLEVBQUU7OzRCQUM3QixtQkFBbUI7NEJBQ25CLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0NBQ25DLE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FDdEIsT0FBTyxFQUNQLHFEQUFxRCxDQUN0RCxDQUFDOzRCQUNKLENBQUM7NEJBRUQsTUFBTSxLQUFLLEdBQUc7Z0NBQ1osS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDOzZCQUNyRCxDQUFDOzRCQUVGLE1BQU0sSUFBSSxHQUFHLE1BQUEsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsMENBQUUsS0FBSyxDQUFDOzRCQUM3QyxJQUFJLElBQUksRUFBRSxDQUFDO2dDQUNULEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDOzRCQUN6RCxDQUFDOzRCQUVELE9BQU8sS0FBSyxDQUFDO3dCQUNmLENBQUM7cUJBQ0YsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBRUQsT0FBTyxDQUFDLE1BQU0sQ0FBQztvQkFDYixJQUFJLEVBQUUsT0FBTztvQkFDYixPQUFPLEVBQUUsbURBQW1EO29CQUM1RCxPQUFPLEVBQUUsV0FBVztpQkFDckIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJ1bGUgfSBmcm9tICdlc2xpbnQnO1xuaW1wb3J0IHR5cGUgeyBOZXdFeHByZXNzaW9uLCBUaHJvd1N0YXRlbWVudCB9IGZyb20gJ2VzdHJlZSc7XG5cbmV4cG9ydCBjb25zdCBtZXRhID0ge1xuICBoYXNTdWdnZXN0aW9uczogdHJ1ZSxcbn07XG5cbi8vIGxpc3Qgb2YgcGF0aHMgdGhhdCBzaG91bGQgdHJpZ2dlciB0aGUgdG9vbGtpdCBlcnJvciBzdWdnZXN0aW9uc1xuY29uc3QgdG9vbGtpdEVycm9yUGF0aHMgPSBbJ3BhY2thZ2VzL2F3cy1jZGsvJywgJ3BhY2thZ2VzL0Bhd3MtY2RrL3Rvb2xraXQvJ107XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuTm9kZUxpc3RlbmVyIHtcbiAgY29uc3QgZmlsZU5hbWUgPSBjb250ZXh0LmZpbGVuYW1lO1xuICBjb25zdCBpc1Rvb2xraXRGaWxlID0gdG9vbGtpdEVycm9yUGF0aHMuc29tZSgocGF0aCkgPT5cbiAgICBmaWxlTmFtZS5pbmNsdWRlcyhwYXRoKSxcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIFRocm93U3RhdGVtZW50KG5vZGU6IFRocm93U3RhdGVtZW50KSB7XG4gICAgICBpZiAobm9kZS5hcmd1bWVudC50eXBlICE9PSAnTmV3RXhwcmVzc2lvbicpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBuZXdFeHByID0gbm9kZS5hcmd1bWVudCBhcyBOZXdFeHByZXNzaW9uO1xuICAgICAgaWYgKFxuICAgICAgICBuZXdFeHByLmNhbGxlZSAmJlxuICAgICAgICBuZXdFeHByLmNhbGxlZS50eXBlID09PSAnSWRlbnRpZmllcicgJiZcbiAgICAgICAgbmV3RXhwci5jYWxsZWUubmFtZSA9PT0gJ0Vycm9yJ1xuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHN1Z2dlc3Rpb25zID0gW107XG5cbiAgICAgICAgY29uc3QgcmVwbGFjZUVycm9yQ2xhc3NTdWdnZXN0aW9uID0gKHN1Z2dlc3RlZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRlc2M6IGBSZXBsYWNlIHdpdGggXFxgJHtzdWdnZXN0ZWR9XFxgYCxcbiAgICAgICAgICAgIGZpeDogKGZpeGVyOiBSdWxlLlJ1bGVGaXhlcikgPT4ge1xuICAgICAgICAgICAgICAvLyBubyBhcmdzXG4gICAgICAgICAgICAgIGlmIChuZXdFeHByLmFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZml4ZXIucmVwbGFjZVRleHQobmV3RXhwciwgYG5ldyAke3N1Z2dlc3RlZH0oJzxpbnNlcnQgZXJyb3IgbWVzc2FnZT4nKWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBbZml4ZXIucmVwbGFjZVRleHQobmV3RXhwci5jYWxsZWUsIHN1Z2dlc3RlZCldO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICB9O1xuXG5cbiAgICAgICAgLy8gQWRkcyBUb29sa2l0RXJyb3IgYW5kIEF1dGhlbnRpY2F0aW9uRXJyb3Igc3VnZ2VzdGlvbnMgZm9yIENMSSBmaWxlcy5cbiAgICAgICAgaWYgKGlzVG9vbGtpdEZpbGUpIHtcbiAgICAgICAgICBzdWdnZXN0aW9ucy5wdXNoKFxuICAgICAgICAgICAgcmVwbGFjZUVycm9yQ2xhc3NTdWdnZXN0aW9uKCdUb29sa2l0RXJyb3InKSxcbiAgICAgICAgICAgIHJlcGxhY2VFcnJvckNsYXNzU3VnZ2VzdGlvbignQXV0aGVudGljYXRpb25FcnJvcicpLFxuICAgICAgICAgICAgcmVwbGFjZUVycm9yQ2xhc3NTdWdnZXN0aW9uKCdBc3NlbWJseUVycm9yJyksXG4gICAgICAgICAgICByZXBsYWNlRXJyb3JDbGFzc1N1Z2dlc3Rpb24oJ0NvbnRleHRQcm92aWRlckVycm9yJyksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdWdnZXN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgIGRlc2M6ICdSZXBsYWNlIHdpdGggYFZhbGlkYXRpb25FcnJvcmAnLFxuICAgICAgICAgICAgZml4OiAoZml4ZXI6IFJ1bGUuUnVsZUZpeGVyKSA9PiB7XG4gICAgICAgICAgICAgIC8vIG5vIGV4aXN0aW5nIGFyZ3NcbiAgICAgICAgICAgICAgaWYgKG5ld0V4cHIuYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmaXhlci5yZXBsYWNlVGV4dChcbiAgICAgICAgICAgICAgICAgIG5ld0V4cHIsXG4gICAgICAgICAgICAgICAgICBcIm5ldyBWYWxpZGF0aW9uRXJyb3IoJzxpbnNlcnQgZXJyb3IgbWVzc2FnZT4nLCB0aGlzKVwiLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjb25zdCBmaXhlcyA9IFtcbiAgICAgICAgICAgICAgICBmaXhlci5yZXBsYWNlVGV4dChuZXdFeHByLmNhbGxlZSwgJ1ZhbGlkYXRpb25FcnJvcicpLFxuICAgICAgICAgICAgICBdO1xuXG4gICAgICAgICAgICAgIGNvbnN0IGxhc3QgPSBuZXdFeHByLmFyZ3VtZW50cy5hdCgtMSk/LnJhbmdlO1xuICAgICAgICAgICAgICBpZiAobGFzdCkge1xuICAgICAgICAgICAgICAgIGZpeGVzLnB1c2goZml4ZXIuaW5zZXJ0VGV4dEFmdGVyUmFuZ2UobGFzdCwgJywgdGhpcycpKTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiBmaXhlcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbm9kZTogbmV3RXhwcixcbiAgICAgICAgICBtZXNzYWdlOiAnRXhwZWN0ZWQgYSBub24tZGVmYXVsdCBlcnJvciBvYmplY3QgdG8gYmUgdGhyb3duLicsXG4gICAgICAgICAgc3VnZ2VzdDogc3VnZ2VzdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG4iXX0=
package/package.json CHANGED
@@ -53,14 +53,14 @@
53
53
  "projen": "^0.90.5",
54
54
  "ts-jest": "^29.2.5",
55
55
  "ts-node": "^10.9.2",
56
- "typescript": "^5.7.2"
56
+ "typescript": "^5.7.3"
57
57
  },
58
58
  "peerDependencies": {
59
59
  "@typescript-eslint/parser": "^7.18.0",
60
60
  "eslint": ">=6 <9"
61
61
  },
62
62
  "dependencies": {
63
- "fs-extra": "^11.2.0"
63
+ "fs-extra": "^11.3.0"
64
64
  },
65
65
  "engines": {
66
66
  "node": ">= 18.12.0"
@@ -70,7 +70,7 @@
70
70
  "publishConfig": {
71
71
  "access": "public"
72
72
  },
73
- "version": "1.3.0",
73
+ "version": "1.3.2",
74
74
  "jest": {
75
75
  "coverageProvider": "v8",
76
76
  "testMatch": [