@udondan/avanti 0.5.0 → 0.6.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 (45) hide show
  1. package/README.md +101 -1
  2. package/dist/cli.js +6 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/diff.d.ts.map +1 -1
  5. package/dist/commands/diff.js +45 -2
  6. package/dist/commands/diff.js.map +1 -1
  7. package/dist/commands/log.d.ts +3 -0
  8. package/dist/commands/log.d.ts.map +1 -0
  9. package/dist/commands/log.js +100 -0
  10. package/dist/commands/log.js.map +1 -0
  11. package/dist/commands/pull.d.ts.map +1 -1
  12. package/dist/commands/pull.js +67 -19
  13. package/dist/commands/pull.js.map +1 -1
  14. package/dist/commands/reset.d.ts +3 -0
  15. package/dist/commands/reset.d.ts.map +1 -0
  16. package/dist/commands/reset.js +106 -0
  17. package/dist/commands/reset.js.map +1 -0
  18. package/dist/commands/revert.d.ts +3 -0
  19. package/dist/commands/revert.d.ts.map +1 -0
  20. package/dist/commands/revert.js +153 -0
  21. package/dist/commands/revert.js.map +1 -0
  22. package/dist/diff.d.ts +1 -0
  23. package/dist/diff.d.ts.map +1 -1
  24. package/dist/diff.js +10 -1
  25. package/dist/diff.js.map +1 -1
  26. package/dist/history.d.ts +64 -0
  27. package/dist/history.d.ts.map +1 -0
  28. package/dist/history.js +316 -0
  29. package/dist/history.js.map +1 -0
  30. package/dist/processors/json.d.ts.map +1 -1
  31. package/dist/processors/json.js +8 -5
  32. package/dist/processors/json.js.map +1 -1
  33. package/dist/prompt.d.ts +2 -0
  34. package/dist/prompt.d.ts.map +1 -0
  35. package/dist/prompt.js +42 -0
  36. package/dist/prompt.js.map +1 -0
  37. package/dist/writer.d.ts +1 -1
  38. package/dist/writer.d.ts.map +1 -1
  39. package/dist/writer.js +10 -1
  40. package/dist/writer.js.map +1 -1
  41. package/package.json +6 -1
  42. package/.prettierignore +0 -2
  43. package/CHANGELOG.md +0 -59
  44. package/eslint.config.mjs +0 -25
  45. package/prettier.config.mjs +0 -5
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatJson = exports.mergeJson = void 0;
4
+ const comment_json_1 = require("comment-json");
4
5
  function isPlainObject(v) {
5
6
  return v !== null && typeof v === 'object' && !Array.isArray(v);
6
7
  }
@@ -27,14 +28,16 @@ function mergeValues(path, a, b, opts) {
27
28
  return b;
28
29
  }
29
30
  function deepMerge(a, b, opts, basePath) {
30
- const result = { ...a };
31
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
+ const result = (0, comment_json_1.assign)({}, a);
31
33
  for (const [key, bVal] of Object.entries(b)) {
32
34
  const childPath = basePath ? `${basePath}.${key}` : key;
33
35
  if (key in result) {
34
36
  result[key] = mergeValues(childPath, result[key], bVal, opts);
35
37
  }
36
38
  else {
37
- result[key] = bVal;
39
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
40
+ (0, comment_json_1.assign)(result, b, [key]);
38
41
  }
39
42
  }
40
43
  return result;
@@ -49,7 +52,7 @@ function mergeJson(parts, opts = {}) {
49
52
  return 'null';
50
53
  const parsed = parts.map((p, i) => {
51
54
  try {
52
- return JSON.parse(p);
55
+ return (0, comment_json_1.parse)(p);
53
56
  }
54
57
  catch (e) {
55
58
  throw new Error(`[source ${i}]: invalid JSON: ${e.message}`, { cause: e });
@@ -59,12 +62,12 @@ function mergeJson(parts, opts = {}) {
59
62
  for (let i = 1; i < parsed.length; i++) {
60
63
  result = mergeValues('', result, parsed[i], resolved);
61
64
  }
62
- return JSON.stringify(result, null, 2);
65
+ return (0, comment_json_1.stringify)(result, null, 2);
63
66
  }
64
67
  exports.mergeJson = mergeJson;
65
68
  function formatJson(content) {
66
69
  try {
67
- return JSON.stringify(JSON.parse(content), null, 2);
70
+ return (0, comment_json_1.stringify)((0, comment_json_1.parse)(content), null, 2);
68
71
  }
69
72
  catch (e) {
70
73
  throw new Error(`invalid JSON: ${e.message}`, {
@@ -1 +1 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/processors/json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/processors/json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function confirm(question: string): Promise<boolean>;
2
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAEA,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAchE"}
package/dist/prompt.js ADDED
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
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
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.confirm = void 0;
27
+ const readline = __importStar(require("readline"));
28
+ async function confirm(question) {
29
+ const rl = readline.createInterface({
30
+ input: process.stdin,
31
+ output: process.stdout,
32
+ });
33
+ return new Promise((resolve) => {
34
+ rl.question(question, (answer) => {
35
+ rl.close();
36
+ resolve(answer.trim().toLowerCase() === 'y' ||
37
+ answer.trim().toLowerCase() === 'yes');
38
+ });
39
+ });
40
+ }
41
+ exports.confirm = confirm;
42
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAqC;AAE9B,KAAK,UAAU,OAAO,CAAC,QAAgB;IAC5C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YAC/B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CACL,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG;gBACjC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK,CACxC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAdD,0BAcC"}
package/dist/writer.d.ts CHANGED
@@ -3,5 +3,5 @@ export interface WriteTarget {
3
3
  content: string;
4
4
  mode?: string;
5
5
  }
6
- export declare function atomicWrite(targets: WriteTarget[]): void;
6
+ export declare function atomicWrite(targets: WriteTarget[], deletions?: string[]): void;
7
7
  //# sourceMappingURL=writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CA4BxD"}
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"AAIA,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,CAqCN"}
package/dist/writer.js CHANGED
@@ -27,7 +27,7 @@ exports.atomicWrite = void 0;
27
27
  const fs = __importStar(require("fs"));
28
28
  const os = __importStar(require("os"));
29
29
  const path = __importStar(require("path"));
30
- function atomicWrite(targets) {
30
+ function atomicWrite(targets, deletions = []) {
31
31
  const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'fileferry-'));
32
32
  try {
33
33
  // Stage all files to temp dir first
@@ -52,6 +52,15 @@ function atomicWrite(targets) {
52
52
  finally {
53
53
  fs.rmSync(tmpDir, { recursive: true, force: true });
54
54
  }
55
+ // Deletions happen after writes succeed; each failure is non-fatal
56
+ for (const p of deletions) {
57
+ try {
58
+ fs.rmSync(p, { force: true });
59
+ }
60
+ catch (err) {
61
+ console.warn(`Warning: could not delete ${p}: ${err.message}`);
62
+ }
63
+ }
55
64
  }
56
65
  exports.atomicWrite = atomicWrite;
57
66
  //# sourceMappingURL=writer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"writer.js","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAQ7B,SAAgB,WAAW,CAAC,OAAsB;IAChD,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC;QACH,oCAAoC;QACpC,MAAM,MAAM,GAAwD,EAAE,CAAC;QACvE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CACvB,MAAM,EACN,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,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,oDAAoD;QACpD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjC,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,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/B,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,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AA5BD,kCA4BC"}
1
+ {"version":3,"file":"writer.js","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAQ7B,SAAgB,WAAW,CACzB,OAAsB,EACtB,YAAsB,EAAE;IAExB,MAAM,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC;QACH,oCAAoC;QACpC,MAAM,MAAM,GAAwD,EAAE,CAAC;QACvE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CACvB,MAAM,EACN,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,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,oDAAoD;QACpD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjC,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,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/B,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,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,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;AAxCD,kCAwCC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@udondan/avanti",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Assemble local files from any source via a declarative YAML spec",
5
5
  "bin": {
6
6
  "avanti": "dist/cli.js"
@@ -30,6 +30,10 @@
30
30
  "type": "github",
31
31
  "url": "https://github.com/sponsors/udondan"
32
32
  },
33
+ "files": [
34
+ "dist",
35
+ "LICENSE"
36
+ ],
33
37
  "license": "MIT",
34
38
  "repository": {
35
39
  "type": "git",
@@ -38,6 +42,7 @@
38
42
  "dependencies": {
39
43
  "chalk": "5.3.0",
40
44
  "commander": "12.1.0",
45
+ "comment-json": "^5.0.0",
41
46
  "diff": "5.2.2",
42
47
  "js-yaml": "4.1.1"
43
48
  },
package/.prettierignore DELETED
@@ -1,2 +0,0 @@
1
- dist/
2
- CHANGELOG.md
package/CHANGELOG.md DELETED
@@ -1,59 +0,0 @@
1
- # Changelog
2
-
3
- ## [0.5.0](https://github.com/udondan/avanti/compare/v0.4.0...v0.5.0) (2026-05-07)
4
-
5
-
6
- ### Features
7
-
8
- * **fetch:** add exponential backoff retry for all HTTP requests ([#27](https://github.com/udondan/avanti/issues/27)) ([2caf0f3](https://github.com/udondan/avanti/commit/2caf0f3dc368fd6a7cead8a2946dc4504693d6f1))
9
- * **sources:** replace mandatory CLI tools with native HTTP for GitHub and GitLab ([#21](https://github.com/udondan/avanti/issues/21)) ([990b8ee](https://github.com/udondan/avanti/commit/990b8eedc60047d9743eb69358d0967852c8d9a2))
10
-
11
-
12
- ### Performance Improvements
13
-
14
- * parallelize directory file fetches for GitHub and GitLab ([#26](https://github.com/udondan/avanti/issues/26)) ([c11d2e2](https://github.com/udondan/avanti/commit/c11d2e25871eccf75398cf11eb6b315db7c7a16b))
15
-
16
- ## [0.4.0](https://github.com/udondan/avanti/compare/v0.3.2...v0.4.0) (2026-05-07)
17
-
18
-
19
- ### Features
20
-
21
- * **json:** add JSON merge and pretty-print processor ([#19](https://github.com/udondan/avanti/issues/19)) ([6fab171](https://github.com/udondan/avanti/commit/6fab171e1d1b85e86060213f6f0be6b9606ca96f))
22
-
23
- ## [0.3.2](https://github.com/udondan/avanti/compare/v0.3.1...v0.3.2) (2026-05-07)
24
-
25
-
26
- ### Bug Fixes
27
-
28
- * **sources:** fix GitLab pagination, add archive fast path, and explicit directory detection ([#17](https://github.com/udondan/avanti/issues/17)) ([5b348ef](https://github.com/udondan/avanti/commit/5b348ef68b0ba9caebebd5ec6668fd9b07d4eafe))
29
-
30
- ## [0.3.1](https://github.com/udondan/avanti/compare/v0.3.0...v0.3.1) (2026-05-07)
31
-
32
-
33
- ### Bug Fixes
34
-
35
- * read CLI version dynamically from package.json ([#14](https://github.com/udondan/avanti/issues/14)) ([8ccbb80](https://github.com/udondan/avanti/commit/8ccbb80aeea645a50439ddc41693fd20931ad860))
36
-
37
- ## [0.3.0](https://github.com/udondan/avanti/compare/v0.2.1...v0.3.0) (2026-05-07)
38
-
39
-
40
- ### Features
41
-
42
- * add inline raw source content ([#7](https://github.com/udondan/avanti/issues/7)) ([dd46cba](https://github.com/udondan/avanti/commit/dd46cba2a8a79f2882847a7da3beaf5ae002b799))
43
- * add variables and env var support ([#10](https://github.com/udondan/avanti/issues/10)) ([c5eea93](https://github.com/udondan/avanti/commit/c5eea9374d3fb3aeeb6413e6bf6aecfe825465b4))
44
- * add working directory constraint and -w/--working-dir flag ([#9](https://github.com/udondan/avanti/issues/9)) ([5cc731e](https://github.com/udondan/avanti/commit/5cc731e223e4dca893f26f64158f2377c077cbe8))
45
- * resolve variables in target path ([#12](https://github.com/udondan/avanti/issues/12)) ([9aa64fb](https://github.com/udondan/avanti/commit/9aa64fb121ad5a9a052df5ac2afa096fcf1f728a))
46
-
47
- ## [0.2.1](https://github.com/udondan/avanti/compare/v0.2.0...v0.2.1) (2026-05-07)
48
-
49
-
50
- ### Bug Fixes
51
-
52
- * add repository url to package.json ([#5](https://github.com/udondan/avanti/issues/5)) ([842c843](https://github.com/udondan/avanti/commit/842c843f433243b1ef131f0e9192e10fb7816e98))
53
-
54
- ## [0.2.0](https://github.com/udondan/avanti/compare/v0.1.0...v0.2.0) (2026-05-07)
55
-
56
-
57
- ### Features
58
-
59
- * initial implementation ([#1](https://github.com/udondan/avanti/issues/1)) ([a97bbfa](https://github.com/udondan/avanti/commit/a97bbfa0fb07b9bb0dc6518bf8345aaf789bf09f))
package/eslint.config.mjs DELETED
@@ -1,25 +0,0 @@
1
- // @ts-check
2
- import js from '@eslint/js';
3
- import tseslint from 'typescript-eslint';
4
- import prettierConfig from 'eslint-config-prettier';
5
-
6
- export default tseslint.config(
7
- js.configs.recommended,
8
- ...tseslint.configs.recommendedTypeChecked,
9
- prettierConfig,
10
- {
11
- languageOptions: {
12
- parserOptions: {
13
- projectService: true,
14
- tsconfigRootDir: import.meta.dirname,
15
- },
16
- },
17
- rules: {
18
- 'no-console': 'off',
19
- '@typescript-eslint/no-deprecated': 'error',
20
- },
21
- },
22
- {
23
- ignores: ['dist/**', 'node_modules/**'],
24
- },
25
- );
@@ -1,5 +0,0 @@
1
- /** @type {import("prettier").Config} */
2
- export default {
3
- singleQuote: true,
4
- trailingComma: 'all',
5
- };