@codeperfect/eslint-config 1.2.0 → 1.4.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 (177) hide show
  1. package/README.md +21 -3
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/codeperfect-eslint-config-1.0.0.tgz +0 -0
  4. package/dist/domain/config-composition.d.ts +8 -0
  5. package/dist/domain/config-composition.d.ts.map +1 -0
  6. package/dist/domain/config-composition.js +55 -0
  7. package/dist/domain/index.d.ts +3 -1
  8. package/dist/domain/index.d.ts.map +1 -1
  9. package/dist/domain/index.js +3 -2
  10. package/dist/{module-taxonomy.d.ts → domain/module-taxonomy.d.ts} +3 -3
  11. package/dist/domain/module-taxonomy.d.ts.map +1 -0
  12. package/dist/domain/module-taxonomy.js +22 -0
  13. package/dist/{types.d.ts → domain/types.d.ts} +31 -6
  14. package/dist/domain/types.d.ts.map +1 -0
  15. package/dist/domain/types.js +2 -0
  16. package/dist/index.d.ts +2 -2
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +2 -2
  19. package/dist/infrastructure/architecture/boundaries.d.ts +22 -0
  20. package/dist/infrastructure/architecture/boundaries.d.ts.map +1 -0
  21. package/dist/infrastructure/architecture/boundaries.js +175 -0
  22. package/dist/infrastructure/architecture/import-x.d.ts.map +1 -0
  23. package/dist/infrastructure/architecture/import-x.js +79 -0
  24. package/dist/infrastructure/architecture/index.d.ts +3 -0
  25. package/dist/infrastructure/architecture/index.d.ts.map +1 -0
  26. package/dist/infrastructure/architecture/index.js +3 -0
  27. package/dist/{config-factory.d.ts → infrastructure/config-factory.d.ts} +1 -1
  28. package/dist/infrastructure/config-factory.d.ts.map +1 -0
  29. package/dist/infrastructure/config-factory.js +44 -0
  30. package/dist/infrastructure/configs/index.d.ts +7 -0
  31. package/dist/infrastructure/configs/index.d.ts.map +1 -0
  32. package/dist/infrastructure/configs/index.js +7 -0
  33. package/dist/infrastructure/core/codeperfect.d.ts.map +1 -0
  34. package/dist/infrastructure/core/codeperfect.js +14 -0
  35. package/dist/infrastructure/core/eslint.d.ts.map +1 -0
  36. package/dist/infrastructure/core/eslint.js +62 -0
  37. package/dist/infrastructure/core/index.d.ts +5 -0
  38. package/dist/infrastructure/core/index.d.ts.map +1 -0
  39. package/dist/infrastructure/core/index.js +5 -0
  40. package/dist/infrastructure/core/resolver.d.ts.map +1 -0
  41. package/dist/infrastructure/core/resolver.js +27 -0
  42. package/dist/infrastructure/core/typescript.d.ts.map +1 -0
  43. package/dist/infrastructure/core/typescript.js +63 -0
  44. package/dist/{diagnostics.d.ts → infrastructure/diagnostics.d.ts} +13 -3
  45. package/dist/infrastructure/diagnostics.d.ts.map +1 -0
  46. package/dist/infrastructure/diagnostics.js +90 -0
  47. package/dist/infrastructure/docs/comments.d.ts.map +1 -0
  48. package/dist/infrastructure/docs/comments.js +30 -0
  49. package/dist/infrastructure/docs/index.d.ts +3 -0
  50. package/dist/infrastructure/docs/index.d.ts.map +1 -0
  51. package/dist/infrastructure/docs/index.js +3 -0
  52. package/dist/infrastructure/docs/jsdoc-config.d.ts +14 -0
  53. package/dist/infrastructure/docs/jsdoc-config.d.ts.map +1 -0
  54. package/dist/infrastructure/docs/jsdoc-config.js +126 -0
  55. package/dist/infrastructure/docs/jsdoc.d.ts.map +1 -0
  56. package/dist/infrastructure/docs/jsdoc.js +15 -0
  57. package/dist/infrastructure/index.d.ts +5 -0
  58. package/dist/infrastructure/index.d.ts.map +1 -0
  59. package/dist/infrastructure/index.js +4 -0
  60. package/dist/{plugin-loaders.d.ts → infrastructure/plugin-loaders.d.ts} +2 -2
  61. package/dist/infrastructure/plugin-loaders.d.ts.map +1 -0
  62. package/dist/infrastructure/plugin-loaders.js +115 -0
  63. package/dist/infrastructure/plugin-state.d.ts +26 -0
  64. package/dist/infrastructure/plugin-state.d.ts.map +1 -0
  65. package/dist/infrastructure/plugin-state.js +54 -0
  66. package/dist/infrastructure/rxjs-x.d.ts.map +1 -0
  67. package/dist/infrastructure/rxjs-x.js +27 -0
  68. package/dist/infrastructure/style/index.d.ts +5 -0
  69. package/dist/infrastructure/style/index.d.ts.map +1 -0
  70. package/dist/infrastructure/style/index.js +5 -0
  71. package/dist/infrastructure/style/perfectionist.d.ts.map +1 -0
  72. package/dist/infrastructure/style/perfectionist.js +31 -0
  73. package/dist/infrastructure/style/prettier.d.ts.map +1 -0
  74. package/dist/infrastructure/style/prettier.js +15 -0
  75. package/dist/infrastructure/style/stylistic.d.ts.map +1 -0
  76. package/dist/infrastructure/style/stylistic.js +17 -0
  77. package/dist/infrastructure/style/unicorn.d.ts.map +1 -0
  78. package/dist/infrastructure/style/unicorn.js +15 -0
  79. package/dist/infrastructure/testing/index.d.ts +5 -0
  80. package/dist/infrastructure/testing/index.d.ts.map +1 -0
  81. package/dist/infrastructure/testing/index.js +5 -0
  82. package/dist/infrastructure/testing/jasmine.d.ts.map +1 -0
  83. package/dist/infrastructure/testing/jasmine.js +25 -0
  84. package/dist/infrastructure/testing/jest.d.ts.map +1 -0
  85. package/dist/infrastructure/testing/jest.js +27 -0
  86. package/dist/infrastructure/testing/playwright.d.ts.map +1 -0
  87. package/dist/infrastructure/testing/playwright.js +29 -0
  88. package/dist/infrastructure/testing/vitest.d.ts.map +1 -0
  89. package/dist/infrastructure/testing/vitest.js +33 -0
  90. package/dist/{utilities.d.ts → infrastructure/utilities.d.ts} +2 -13
  91. package/dist/infrastructure/utilities.d.ts.map +1 -0
  92. package/dist/infrastructure/utilities.js +112 -0
  93. package/package.json +43 -37
  94. package/dist/architecture/boundaries.d.ts +0 -17
  95. package/dist/architecture/boundaries.d.ts.map +0 -1
  96. package/dist/architecture/boundaries.js +0 -69
  97. package/dist/architecture/import-x.d.ts.map +0 -1
  98. package/dist/architecture/import-x.js +0 -80
  99. package/dist/architecture/index.d.ts +0 -3
  100. package/dist/architecture/index.d.ts.map +0 -1
  101. package/dist/architecture/index.js +0 -3
  102. package/dist/config-composition.d.ts +0 -6
  103. package/dist/config-composition.d.ts.map +0 -1
  104. package/dist/config-composition.js +0 -39
  105. package/dist/config-factory.d.ts.map +0 -1
  106. package/dist/config-factory.js +0 -42
  107. package/dist/configs/index.d.ts +0 -7
  108. package/dist/configs/index.d.ts.map +0 -1
  109. package/dist/configs/index.js +0 -7
  110. package/dist/core/codeperfect.d.ts.map +0 -1
  111. package/dist/core/codeperfect.js +0 -14
  112. package/dist/core/eslint.d.ts.map +0 -1
  113. package/dist/core/eslint.js +0 -58
  114. package/dist/core/index.d.ts +0 -5
  115. package/dist/core/index.d.ts.map +0 -1
  116. package/dist/core/index.js +0 -5
  117. package/dist/core/resolver.d.ts.map +0 -1
  118. package/dist/core/resolver.js +0 -27
  119. package/dist/core/typescript.d.ts.map +0 -1
  120. package/dist/core/typescript.js +0 -63
  121. package/dist/diagnostics.d.ts.map +0 -1
  122. package/dist/diagnostics.js +0 -74
  123. package/dist/docs/comments.d.ts.map +0 -1
  124. package/dist/docs/comments.js +0 -30
  125. package/dist/docs/index.d.ts +0 -3
  126. package/dist/docs/index.d.ts.map +0 -1
  127. package/dist/docs/index.js +0 -3
  128. package/dist/docs/jsdoc.d.ts.map +0 -1
  129. package/dist/docs/jsdoc.js +0 -126
  130. package/dist/domain/rxjs-x.d.ts.map +0 -1
  131. package/dist/domain/rxjs-x.js +0 -27
  132. package/dist/module-taxonomy.d.ts.map +0 -1
  133. package/dist/module-taxonomy.js +0 -22
  134. package/dist/plugin-loaders.d.ts.map +0 -1
  135. package/dist/plugin-loaders.js +0 -115
  136. package/dist/style/index.d.ts +0 -5
  137. package/dist/style/index.d.ts.map +0 -1
  138. package/dist/style/index.js +0 -5
  139. package/dist/style/perfectionist.d.ts.map +0 -1
  140. package/dist/style/perfectionist.js +0 -31
  141. package/dist/style/prettier.d.ts.map +0 -1
  142. package/dist/style/prettier.js +0 -15
  143. package/dist/style/stylistic.d.ts.map +0 -1
  144. package/dist/style/stylistic.js +0 -17
  145. package/dist/style/unicorn.d.ts.map +0 -1
  146. package/dist/style/unicorn.js +0 -15
  147. package/dist/testing/index.d.ts +0 -5
  148. package/dist/testing/index.d.ts.map +0 -1
  149. package/dist/testing/index.js +0 -5
  150. package/dist/testing/jasmine.d.ts.map +0 -1
  151. package/dist/testing/jasmine.js +0 -25
  152. package/dist/testing/jest.d.ts.map +0 -1
  153. package/dist/testing/jest.js +0 -27
  154. package/dist/testing/playwright.d.ts.map +0 -1
  155. package/dist/testing/playwright.js +0 -29
  156. package/dist/testing/vitest.d.ts.map +0 -1
  157. package/dist/testing/vitest.js +0 -33
  158. package/dist/types.d.ts.map +0 -1
  159. package/dist/types.js +0 -2
  160. package/dist/utilities.d.ts.map +0 -1
  161. package/dist/utilities.js +0 -125
  162. /package/dist/{architecture → infrastructure/architecture}/import-x.d.ts +0 -0
  163. /package/dist/{core → infrastructure/core}/codeperfect.d.ts +0 -0
  164. /package/dist/{core → infrastructure/core}/eslint.d.ts +0 -0
  165. /package/dist/{core → infrastructure/core}/resolver.d.ts +0 -0
  166. /package/dist/{core → infrastructure/core}/typescript.d.ts +0 -0
  167. /package/dist/{docs → infrastructure/docs}/comments.d.ts +0 -0
  168. /package/dist/{docs → infrastructure/docs}/jsdoc.d.ts +0 -0
  169. /package/dist/{domain → infrastructure}/rxjs-x.d.ts +0 -0
  170. /package/dist/{style → infrastructure/style}/perfectionist.d.ts +0 -0
  171. /package/dist/{style → infrastructure/style}/prettier.d.ts +0 -0
  172. /package/dist/{style → infrastructure/style}/stylistic.d.ts +0 -0
  173. /package/dist/{style → infrastructure/style}/unicorn.d.ts +0 -0
  174. /package/dist/{testing → infrastructure/testing}/jasmine.d.ts +0 -0
  175. /package/dist/{testing → infrastructure/testing}/jest.d.ts +0 -0
  176. /package/dist/{testing → infrastructure/testing}/playwright.d.ts +0 -0
  177. /package/dist/{testing → infrastructure/testing}/vitest.d.ts +0 -0
@@ -0,0 +1,79 @@
1
+ import { defineConfig } from "eslint/config";
2
+ /**
3
+ * Build custom error rules for import-x plugin by excluding certain rules
4
+ * and ensuring no overlap with existing configurations.
5
+ * @returns Return value output.
6
+ * @example
7
+ * ```typescript
8
+ * await buildCustomErrorRules();
9
+ * ```
10
+ */
11
+ async function buildCustomErrorRules() {
12
+ const { flatConfigs, rules } = await import("eslint-plugin-import-x");
13
+ const { recommended, typescript, warnings } = flatConfigs;
14
+ const customIgnore = new Set([
15
+ "dynamic-import-chunkname",
16
+ "no-deprecated",
17
+ "no-named-export",
18
+ "no-namespace",
19
+ "no-unused-modules",
20
+ "order",
21
+ "prefer-default-export",
22
+ ]);
23
+ const allConfigs = new Set([warnings, recommended, typescript].flatMap((config) => Object.keys(config.rules ?? {})));
24
+ const customError = Object.fromEntries(Object.keys(rules)
25
+ .filter((rule) => !customIgnore.has(rule))
26
+ .map((rule) => `import-x/${rule}`)
27
+ .filter((rule) => !allConfigs.has(rule))
28
+ .map((rule) => [rule, "error"]));
29
+ return [
30
+ warnings,
31
+ recommended,
32
+ typescript,
33
+ {
34
+ name: "import-x/custom-error",
35
+ rules: customError,
36
+ },
37
+ ];
38
+ }
39
+ /**
40
+ * Loads the import-x plugin configuration.
41
+ * @returns Return value output.
42
+ * @example
43
+ * ```typescript
44
+ * await importX();
45
+ * ```
46
+ */
47
+ async function importX() {
48
+ return defineConfig(...(await buildCustomErrorRules()), {
49
+ name: "import-x/custom-typescript",
50
+ rules: {
51
+ "import-x/no-relative-parent-imports": "off",
52
+ "import-x/unambiguous": "off",
53
+ },
54
+ }, {
55
+ name: "import-x/custom-node_modules",
56
+ rules: {
57
+ "import-x/no-internal-modules": [
58
+ "error",
59
+ {
60
+ allow: [
61
+ "eslint/config",
62
+ "eslint-plugin-boundaries/config",
63
+ "eslint-plugin-prettier/recommended",
64
+ "vitest/config",
65
+ "@eslint-community/eslint-plugin-eslint-comments/configs",
66
+ ],
67
+ },
68
+ ],
69
+ },
70
+ }, {
71
+ files: ["*", "packages/*/*"],
72
+ name: "import-x/custom-root-config-files",
73
+ rules: {
74
+ "import-x/no-default-export": "off",
75
+ },
76
+ });
77
+ }
78
+ export { importX };
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvYXJjaGl0ZWN0dXJlL2ltcG9ydC14LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0M7Ozs7Ozs7O0dBUUc7QUFDSCxLQUFLLFVBQVUscUJBQXFCO0lBQ2xDLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUN0RSxNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxXQUFXLENBQUM7SUFFMUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLENBQUM7UUFDM0IsMEJBQTBCO1FBQzFCLGVBQWU7UUFDZixpQkFBaUI7UUFDakIsY0FBYztRQUNkLG1CQUFtQjtRQUNuQixPQUFPO1FBQ1AsdUJBQXVCO0tBQ3hCLENBQUMsQ0FBQztJQUVILE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUN4QixDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDckQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUNoQyxDQUNGLENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNmLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztTQUNqQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN2QyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBVSxDQUFDLENBQzNDLENBQUM7SUFFRixPQUFPO1FBQ0wsUUFBeUI7UUFDekIsV0FBNEI7UUFDNUIsVUFBMkI7UUFDM0I7WUFDRSxJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLEtBQUssRUFBRSxXQUFXO1NBQ25CO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsS0FBSyxVQUFVLE9BQU87SUFDcEIsT0FBTyxZQUFZLENBQ2pCLEdBQUcsQ0FBQyxNQUFNLHFCQUFxQixFQUFFLENBQUMsRUFDbEM7UUFDRSxJQUFJLEVBQUUsNEJBQTRCO1FBQ2xDLEtBQUssRUFBRTtZQUNMLHFDQUFxQyxFQUFFLEtBQUs7WUFDNUMsc0JBQXNCLEVBQUUsS0FBSztTQUM5QjtLQUNGLEVBQ0Q7UUFDRSxJQUFJLEVBQUUsOEJBQThCO1FBQ3BDLEtBQUssRUFBRTtZQUNMLDhCQUE4QixFQUFFO2dCQUM5QixPQUFPO2dCQUNQO29CQUNFLEtBQUssRUFBRTt3QkFDTCxlQUFlO3dCQUNmLGlDQUFpQzt3QkFDakMsb0NBQW9DO3dCQUNwQyxlQUFlO3dCQUNmLHlEQUF5RDtxQkFDMUQ7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsRUFDRDtRQUNFLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUM7UUFDNUIsSUFBSSxFQUFFLG1DQUFtQztRQUN6QyxLQUFLLEVBQUU7WUFDTCw0QkFBNEIsRUFBRSxLQUFLO1NBQ3BDO0tBQ0YsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwiZXNsaW50L2NvbmZpZ1wiO1xuXG4vKipcbiAqIEJ1aWxkIGN1c3RvbSBlcnJvciBydWxlcyBmb3IgaW1wb3J0LXggcGx1Z2luIGJ5IGV4Y2x1ZGluZyBjZXJ0YWluIHJ1bGVzXG4gKiBhbmQgZW5zdXJpbmcgbm8gb3ZlcmxhcCB3aXRoIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhd2FpdCBidWlsZEN1c3RvbUVycm9yUnVsZXMoKTtcbiAqIGBgYFxuICovXG5hc3luYyBmdW5jdGlvbiBidWlsZEN1c3RvbUVycm9yUnVsZXMoKTogUHJvbWlzZTxMaW50ZXIuQ29uZmlnW10+IHtcbiAgY29uc3QgeyBmbGF0Q29uZmlncywgcnVsZXMgfSA9IGF3YWl0IGltcG9ydChcImVzbGludC1wbHVnaW4taW1wb3J0LXhcIik7XG4gIGNvbnN0IHsgcmVjb21tZW5kZWQsIHR5cGVzY3JpcHQsIHdhcm5pbmdzIH0gPSBmbGF0Q29uZmlncztcblxuICBjb25zdCBjdXN0b21JZ25vcmUgPSBuZXcgU2V0KFtcbiAgICBcImR5bmFtaWMtaW1wb3J0LWNodW5rbmFtZVwiLFxuICAgIFwibm8tZGVwcmVjYXRlZFwiLFxuICAgIFwibm8tbmFtZWQtZXhwb3J0XCIsXG4gICAgXCJuby1uYW1lc3BhY2VcIixcbiAgICBcIm5vLXVudXNlZC1tb2R1bGVzXCIsXG4gICAgXCJvcmRlclwiLFxuICAgIFwicHJlZmVyLWRlZmF1bHQtZXhwb3J0XCIsXG4gIF0pO1xuXG4gIGNvbnN0IGFsbENvbmZpZ3MgPSBuZXcgU2V0KFxuICAgIFt3YXJuaW5ncywgcmVjb21tZW5kZWQsIHR5cGVzY3JpcHRdLmZsYXRNYXAoKGNvbmZpZykgPT5cbiAgICAgIE9iamVjdC5rZXlzKGNvbmZpZy5ydWxlcyA/PyB7fSksXG4gICAgKSxcbiAgKTtcblxuICBjb25zdCBjdXN0b21FcnJvciA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3Qua2V5cyhydWxlcylcbiAgICAgIC5maWx0ZXIoKHJ1bGUpID0+ICFjdXN0b21JZ25vcmUuaGFzKHJ1bGUpKVxuICAgICAgLm1hcCgocnVsZSkgPT4gYGltcG9ydC14LyR7cnVsZX1gKVxuICAgICAgLmZpbHRlcigocnVsZSkgPT4gIWFsbENvbmZpZ3MuaGFzKHJ1bGUpKVxuICAgICAgLm1hcCgocnVsZSkgPT4gW3J1bGUsIFwiZXJyb3JcIl0gYXMgY29uc3QpLFxuICApO1xuXG4gIHJldHVybiBbXG4gICAgd2FybmluZ3MgYXMgTGludGVyLkNvbmZpZyxcbiAgICByZWNvbW1lbmRlZCBhcyBMaW50ZXIuQ29uZmlnLFxuICAgIHR5cGVzY3JpcHQgYXMgTGludGVyLkNvbmZpZyxcbiAgICB7XG4gICAgICBuYW1lOiBcImltcG9ydC14L2N1c3RvbS1lcnJvclwiLFxuICAgICAgcnVsZXM6IGN1c3RvbUVycm9yLFxuICAgIH0sXG4gIF07XG59XG5cbi8qKlxuICogTG9hZHMgdGhlIGltcG9ydC14IHBsdWdpbiBjb25maWd1cmF0aW9uLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhd2FpdCBpbXBvcnRYKCk7XG4gKiBgYGBcbiAqL1xuYXN5bmMgZnVuY3Rpb24gaW1wb3J0WCgpOiBQcm9taXNlPExpbnRlci5Db25maWdbXT4ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFxuICAgIC4uLihhd2FpdCBidWlsZEN1c3RvbUVycm9yUnVsZXMoKSksXG4gICAge1xuICAgICAgbmFtZTogXCJpbXBvcnQteC9jdXN0b20tdHlwZXNjcmlwdFwiLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgXCJpbXBvcnQteC9uby1yZWxhdGl2ZS1wYXJlbnQtaW1wb3J0c1wiOiBcIm9mZlwiLFxuICAgICAgICBcImltcG9ydC14L3VuYW1iaWd1b3VzXCI6IFwib2ZmXCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJpbXBvcnQteC9jdXN0b20tbm9kZV9tb2R1bGVzXCIsXG4gICAgICBydWxlczoge1xuICAgICAgICBcImltcG9ydC14L25vLWludGVybmFsLW1vZHVsZXNcIjogW1xuICAgICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICBcImVzbGludC9jb25maWdcIixcbiAgICAgICAgICAgICAgXCJlc2xpbnQtcGx1Z2luLWJvdW5kYXJpZXMvY29uZmlnXCIsXG4gICAgICAgICAgICAgIFwiZXNsaW50LXBsdWdpbi1wcmV0dGllci9yZWNvbW1lbmRlZFwiLFxuICAgICAgICAgICAgICBcInZpdGVzdC9jb25maWdcIixcbiAgICAgICAgICAgICAgXCJAZXNsaW50LWNvbW11bml0eS9lc2xpbnQtcGx1Z2luLWVzbGludC1jb21tZW50cy9jb25maWdzXCIsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZXM6IFtcIipcIiwgXCJwYWNrYWdlcy8qLypcIl0sXG4gICAgICBuYW1lOiBcImltcG9ydC14L2N1c3RvbS1yb290LWNvbmZpZy1maWxlc1wiLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgXCJpbXBvcnQteC9uby1kZWZhdWx0LWV4cG9ydFwiOiBcIm9mZlwiLFxuICAgICAgfSxcbiAgICB9LFxuICApO1xufVxuXG5leHBvcnQgeyBpbXBvcnRYIH07XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export { boundaries, defaultBoundariesConfig } from "./boundaries.js";
2
+ export { importX } from "./import-x.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/architecture/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { boundaries, defaultBoundariesConfig } from "./boundaries.js";
2
+ export { importX } from "./import-x.js";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvYXJjaGl0ZWN0dXJlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGJvdW5kYXJpZXMsIGRlZmF1bHRCb3VuZGFyaWVzQ29uZmlnIH0gZnJvbSBcIi4vYm91bmRhcmllc1wiO1xuZXhwb3J0IHsgaW1wb3J0WCB9IGZyb20gXCIuL2ltcG9ydC14XCI7XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import type { Linter } from "eslint";
2
- import type { ConfigOptions } from "./types";
2
+ import type { ConfigOptions } from "../domain/index.js";
3
3
  /**
4
4
  * Creates the ESLint configuration with optional plugin and rule customization.
5
5
  * @param options Input options value.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-factory.d.ts","sourceRoot":"","sources":["../../src/infrastructure/config-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAuC/C;;;;;;;;GAQG;AACH,iBAAe,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAc3E;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { defineConfig } from "eslint/config";
2
+ import { moduleTaxonomy } from "../domain/index.js";
3
+ import { pluginLoaders } from "./plugin-loaders.js";
4
+ import { resolvePluginState } from "./plugin-state.js";
5
+ import { applyRuleOverrides, collectAvailablePlugins, loadPluginConfig, } from "./utilities.js";
6
+ /**
7
+ * Builds the list of plugin config loaders.
8
+ * @param options Input options value.
9
+ * @returns Return value output.
10
+ * @example
11
+ * ```typescript
12
+ * buildPluginConfigLoaders({});
13
+ * ```
14
+ */
15
+ function buildPluginConfigLoaders(options) {
16
+ const loaders = [];
17
+ for (const { pluginName } of moduleTaxonomy) {
18
+ const loaderEntry = pluginLoaders[pluginName];
19
+ const loadConfig = loaderEntry.loader(options);
20
+ const isEnabled = resolvePluginState(pluginName, options.plugins);
21
+ if (isEnabled) {
22
+ loaders.push(loadPluginConfig(pluginName, loadConfig, loaderEntry.mode));
23
+ }
24
+ }
25
+ return loaders;
26
+ }
27
+ /**
28
+ * Creates the ESLint configuration with optional plugin and rule customization.
29
+ * @param options Input options value.
30
+ * @returns Return value output.
31
+ * @example
32
+ * ```typescript
33
+ * config();
34
+ * ```
35
+ */
36
+ async function config(options = {}) {
37
+ const { rules: ruleOverrides } = options;
38
+ const pluginConfigResults = await Promise.all(buildPluginConfigLoaders(options));
39
+ const pluginConfigs = pluginConfigResults.flat();
40
+ const finalConfig = applyRuleOverrides(pluginConfigs, ruleOverrides, collectAvailablePlugins(pluginConfigs));
41
+ return finalConfig.length === 0 ? [] : defineConfig(...finalConfig);
42
+ }
43
+ export { config };
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvY29uZmlnLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2QixnQkFBZ0IsR0FDakIsTUFBTSxhQUFhLENBQUM7QUFFckI7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLHdCQUF3QixDQUMvQixPQUFzQjtJQUV0QixNQUFNLE9BQU8sR0FBK0IsRUFBRSxDQUFDO0lBRS9DLEtBQUssTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQzVDLE1BQU0sV0FBVyxHQUFzQixhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakUsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWxFLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDM0UsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxLQUFLLFVBQVUsTUFBTSxDQUFDLFVBQXlCLEVBQUU7SUFDL0MsTUFBTSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFekMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQzNDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUNsQyxDQUFDO0lBQ0YsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakQsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQ3BDLGFBQWEsRUFDYixhQUFhLEVBQ2IsdUJBQXVCLENBQUMsYUFBYSxDQUFDLENBQ3ZDLENBQUM7SUFFRixPQUFPLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFFRCxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpbnRlciB9IGZyb20gXCJlc2xpbnRcIjtcclxuXHJcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJlc2xpbnQvY29uZmlnXCI7XHJcblxyXG5pbXBvcnQgdHlwZSB7IENvbmZpZ09wdGlvbnMgfSBmcm9tIFwiLi4vZG9tYWluXCI7XHJcbmltcG9ydCB0eXBlIHsgUGx1Z2luTG9hZGVyRW50cnkgfSBmcm9tIFwiLi9wbHVnaW4tbG9hZGVyc1wiO1xyXG5cclxuaW1wb3J0IHsgbW9kdWxlVGF4b25vbXkgfSBmcm9tIFwiLi4vZG9tYWluXCI7XHJcbmltcG9ydCB7IHBsdWdpbkxvYWRlcnMgfSBmcm9tIFwiLi9wbHVnaW4tbG9hZGVyc1wiO1xyXG5pbXBvcnQgeyByZXNvbHZlUGx1Z2luU3RhdGUgfSBmcm9tIFwiLi9wbHVnaW4tc3RhdGVcIjtcclxuaW1wb3J0IHtcclxuICBhcHBseVJ1bGVPdmVycmlkZXMsXHJcbiAgY29sbGVjdEF2YWlsYWJsZVBsdWdpbnMsXHJcbiAgbG9hZFBsdWdpbkNvbmZpZyxcclxufSBmcm9tIFwiLi91dGlsaXRpZXNcIjtcclxuXHJcbi8qKlxyXG4gKiBCdWlsZHMgdGhlIGxpc3Qgb2YgcGx1Z2luIGNvbmZpZyBsb2FkZXJzLlxyXG4gKiBAcGFyYW0gb3B0aW9ucyBJbnB1dCBvcHRpb25zIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGJ1aWxkUGx1Z2luQ29uZmlnTG9hZGVycyh7fSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRQbHVnaW5Db25maWdMb2FkZXJzKFxyXG4gIG9wdGlvbnM6IENvbmZpZ09wdGlvbnMsXHJcbik6IFByb21pc2U8TGludGVyLkNvbmZpZ1tdPltdIHtcclxuICBjb25zdCBsb2FkZXJzOiBQcm9taXNlPExpbnRlci5Db25maWdbXT5bXSA9IFtdO1xyXG5cclxuICBmb3IgKGNvbnN0IHsgcGx1Z2luTmFtZSB9IG9mIG1vZHVsZVRheG9ub215KSB7XHJcbiAgICBjb25zdCBsb2FkZXJFbnRyeTogUGx1Z2luTG9hZGVyRW50cnkgPSBwbHVnaW5Mb2FkZXJzW3BsdWdpbk5hbWVdO1xyXG4gICAgY29uc3QgbG9hZENvbmZpZyA9IGxvYWRlckVudHJ5LmxvYWRlcihvcHRpb25zKTtcclxuICAgIGNvbnN0IGlzRW5hYmxlZCA9IHJlc29sdmVQbHVnaW5TdGF0ZShwbHVnaW5OYW1lLCBvcHRpb25zLnBsdWdpbnMpO1xyXG5cclxuICAgIGlmIChpc0VuYWJsZWQpIHtcclxuICAgICAgbG9hZGVycy5wdXNoKGxvYWRQbHVnaW5Db25maWcocGx1Z2luTmFtZSwgbG9hZENvbmZpZywgbG9hZGVyRW50cnkubW9kZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGxvYWRlcnM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIHRoZSBFU0xpbnQgY29uZmlndXJhdGlvbiB3aXRoIG9wdGlvbmFsIHBsdWdpbiBhbmQgcnVsZSBjdXN0b21pemF0aW9uLlxyXG4gKiBAcGFyYW0gb3B0aW9ucyBJbnB1dCBvcHRpb25zIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbmZpZygpO1xyXG4gKiBgYGBcclxuICovXHJcbmFzeW5jIGZ1bmN0aW9uIGNvbmZpZyhvcHRpb25zOiBDb25maWdPcHRpb25zID0ge30pOiBQcm9taXNlPExpbnRlci5Db25maWdbXT4ge1xyXG4gIGNvbnN0IHsgcnVsZXM6IHJ1bGVPdmVycmlkZXMgfSA9IG9wdGlvbnM7XHJcblxyXG4gIGNvbnN0IHBsdWdpbkNvbmZpZ1Jlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgIGJ1aWxkUGx1Z2luQ29uZmlnTG9hZGVycyhvcHRpb25zKSxcclxuICApO1xyXG4gIGNvbnN0IHBsdWdpbkNvbmZpZ3MgPSBwbHVnaW5Db25maWdSZXN1bHRzLmZsYXQoKTtcclxuICBjb25zdCBmaW5hbENvbmZpZyA9IGFwcGx5UnVsZU92ZXJyaWRlcyhcclxuICAgIHBsdWdpbkNvbmZpZ3MsXHJcbiAgICBydWxlT3ZlcnJpZGVzLFxyXG4gICAgY29sbGVjdEF2YWlsYWJsZVBsdWdpbnMocGx1Z2luQ29uZmlncyksXHJcbiAgKTtcclxuXHJcbiAgcmV0dXJuIGZpbmFsQ29uZmlnLmxlbmd0aCA9PT0gMCA/IFtdIDogZGVmaW5lQ29uZmlnKC4uLmZpbmFsQ29uZmlnKTtcclxufVxyXG5cclxuZXhwb3J0IHsgY29uZmlnIH07XHJcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ export { boundaries, importX } from "../architecture/index.js";
2
+ export { codeperfect, eslint, resolver, typescript } from "../core/index.js";
3
+ export { comments, jsdoc } from "../docs/index.js";
4
+ export { rxjsX } from "../rxjs-x.js";
5
+ export { perfectionist, prettier, stylistic, unicorn } from "../style/index.js";
6
+ export { jasmine, jest, playwright, vitest } from "../testing/index.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/configs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { boundaries, importX } from "../architecture/index.js";
2
+ export { codeperfect, eslint, resolver, typescript } from "../core/index.js";
3
+ export { comments, jsdoc } from "../docs/index.js";
4
+ export { rxjsX } from "../rxjs-x.js";
5
+ export { perfectionist, prettier, stylistic, unicorn } from "../style/index.js";
6
+ export { jasmine, jest, playwright, vitest } from "../testing/index.js";
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvY29uZmlncy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBib3VuZGFyaWVzLCBpbXBvcnRYIH0gZnJvbSBcIi4uL2FyY2hpdGVjdHVyZVwiO1xuZXhwb3J0IHsgY29kZXBlcmZlY3QsIGVzbGludCwgcmVzb2x2ZXIsIHR5cGVzY3JpcHQgfSBmcm9tIFwiLi4vY29yZVwiO1xuZXhwb3J0IHsgY29tbWVudHMsIGpzZG9jIH0gZnJvbSBcIi4uL2RvY3NcIjtcbmV4cG9ydCB7IHJ4anNYIH0gZnJvbSBcIi4uL3J4anMteFwiO1xuZXhwb3J0IHsgcGVyZmVjdGlvbmlzdCwgcHJldHRpZXIsIHN0eWxpc3RpYywgdW5pY29ybiB9IGZyb20gXCIuLi9zdHlsZVwiO1xuZXhwb3J0IHsgamFzbWluZSwgamVzdCwgcGxheXdyaWdodCwgdml0ZXN0IH0gZnJvbSBcIi4uL3Rlc3RpbmdcIjtcbiJdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeperfect.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/core/codeperfect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC;;;;;;;GAOG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAI5D"}
@@ -0,0 +1,14 @@
1
+ import { defineConfig } from "eslint/config";
2
+ /**
3
+ * Load the upstream CodePerfect ESLint configuration.
4
+ * @returns The upstream CodePerfect config array.
5
+ * @example
6
+ * ```typescript
7
+ * const configs = await codeperfect();
8
+ * ```
9
+ */
10
+ export async function codeperfect() {
11
+ const pluginModule = await import("@codeperfect/eslint-plugin");
12
+ return defineConfig(pluginModule.all);
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXBlcmZlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvY29yZS9jb2RlcGVyZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFdBQVc7SUFDL0IsTUFBTSxZQUFZLEdBQUcsTUFBTSxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUVoRSxPQUFPLFlBQVksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xyXG5cclxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcImVzbGludC9jb25maWdcIjtcclxuXHJcbi8qKlxyXG4gKiBMb2FkIHRoZSB1cHN0cmVhbSBDb2RlUGVyZmVjdCBFU0xpbnQgY29uZmlndXJhdGlvbi5cclxuICogQHJldHVybnMgVGhlIHVwc3RyZWFtIENvZGVQZXJmZWN0IGNvbmZpZyBhcnJheS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBjb25zdCBjb25maWdzID0gYXdhaXQgY29kZXBlcmZlY3QoKTtcclxuICogYGBgXHJcbiAqL1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29kZXBlcmZlY3QoKTogUHJvbWlzZTxMaW50ZXIuQ29uZmlnW10+IHtcclxuICBjb25zdCBwbHVnaW5Nb2R1bGUgPSBhd2FpdCBpbXBvcnQoXCJAY29kZXBlcmZlY3QvZXNsaW50LXBsdWdpblwiKTtcclxuXHJcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhwbHVnaW5Nb2R1bGUuYWxsKTtcclxufVxyXG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/core/eslint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AA8BrC;;;;;;;;GAQG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAuCxC"}
@@ -0,0 +1,62 @@
1
+ import { configs } from "@eslint/js";
2
+ import { defineConfig, globalIgnores } from "eslint/config";
3
+ /** Rules excluded from custom errors. */
4
+ const customIgnore = new Set([
5
+ "capitalized-comments",
6
+ "func-style",
7
+ "no-magic-numbers",
8
+ "no-ternary",
9
+ "no-unused-vars",
10
+ "no-use-before-define",
11
+ "no-void",
12
+ "no-warning-comments",
13
+ "one-var",
14
+ "sort-imports",
15
+ ]);
16
+ /** Rules included in eslint:recommended. */
17
+ const recommended = new Set(Object.keys(configs.recommended.rules));
18
+ /** Error rules excluding ignored or recommended. */
19
+ const customError = Object.fromEntries(Object.keys(configs.all.rules)
20
+ .filter((rule) => !customIgnore.has(rule))
21
+ .filter((rule) => !recommended.has(rule))
22
+ .map((rule) => [rule, "error"]));
23
+ /**
24
+ * Assemble base configuration combining the official eslint-js recommendations with
25
+ * project-specific overrides and linter options.
26
+ * @returns Base ESLint config array.
27
+ * @example
28
+ * ```typescript
29
+ * const base = eslint();
30
+ * ```
31
+ */
32
+ export function eslint() {
33
+ return defineConfig(configs.recommended, globalIgnores(["**/dist/**", "docs/", "**/coverage"], "@eslint/js/custom-ignore-directory"), {
34
+ linterOptions: {
35
+ reportUnusedDisableDirectives: "error",
36
+ reportUnusedInlineConfigs: "error",
37
+ },
38
+ }, {
39
+ name: "@eslint/js/custom",
40
+ rules: {
41
+ ...customError,
42
+ "new-cap": ["error", { capIsNewExceptionPattern: "^@" }],
43
+ "no-duplicate-imports": ["error", { allowSeparateTypeImports: true }],
44
+ },
45
+ }, {
46
+ files: ["**/*.spec.ts", "**/*.e2e.ts"],
47
+ name: "@eslint/js/custom-spec",
48
+ rules: {
49
+ "init-declarations": "off",
50
+ "max-lines-per-function": "off",
51
+ "unicorn/prevent-abbreviations": [
52
+ "error",
53
+ { ignore: [String.raw `\.e2e$`] },
54
+ ],
55
+ },
56
+ }, {
57
+ files: ["scripts/*.ts"],
58
+ name: "@eslint/js/custom-scripts",
59
+ rules: { "no-console": "off" },
60
+ });
61
+ }
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNsaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2luZnJhc3RydWN0dXJlL2NvcmUvZXNsaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUQseUNBQXlDO0FBQ3pDLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDO0lBQzNCLHNCQUFzQjtJQUN0QixZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsc0JBQXNCO0lBQ3RCLFNBQVM7SUFDVCxxQkFBcUI7SUFDckIsU0FBUztJQUNULGNBQWM7Q0FDZixDQUFDLENBQUM7QUFFSCw0Q0FBNEM7QUFDNUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFFcEUsb0RBQW9EO0FBQ3BELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7S0FDM0IsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDeEMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQVUsQ0FBQyxDQUMzQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsTUFBTTtJQUNwQixPQUFPLFlBQVksQ0FDakIsT0FBTyxDQUFDLFdBQVcsRUFDbkIsYUFBYSxDQUNYLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsRUFDdEMsb0NBQW9DLENBQ3JDLEVBQ0Q7UUFDRSxhQUFhLEVBQUU7WUFDYiw2QkFBNkIsRUFBRSxPQUFPO1lBQ3RDLHlCQUF5QixFQUFFLE9BQU87U0FDbkM7S0FDRixFQUNEO1FBQ0UsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixLQUFLLEVBQUU7WUFDTCxHQUFHLFdBQVc7WUFDZCxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN4RCxzQkFBc0IsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLHdCQUF3QixFQUFFLElBQUksRUFBRSxDQUFDO1NBQ3RFO0tBQ0YsRUFDRDtRQUNFLEtBQUssRUFBRSxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUM7UUFDdEMsSUFBSSxFQUFFLHdCQUF3QjtRQUM5QixLQUFLLEVBQUU7WUFDTCxtQkFBbUIsRUFBRSxLQUFLO1lBQzFCLHdCQUF3QixFQUFFLEtBQUs7WUFDL0IsK0JBQStCLEVBQUU7Z0JBQy9CLE9BQU87Z0JBQ1AsRUFBRSxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFBLFFBQVEsQ0FBQyxFQUFFO2FBQ2pDO1NBQ0Y7S0FDRixFQUNEO1FBQ0UsS0FBSyxFQUFFLENBQUMsY0FBYyxDQUFDO1FBQ3ZCLElBQUksRUFBRSwyQkFBMkI7UUFDakMsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRTtLQUMvQixDQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaW50ZXIgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7IGNvbmZpZ3MgfSBmcm9tIFwiQGVzbGludC9qc1wiO1xuaW1wb3J0IHsgZGVmaW5lQ29uZmlnLCBnbG9iYWxJZ25vcmVzIH0gZnJvbSBcImVzbGludC9jb25maWdcIjtcblxuLyoqIFJ1bGVzIGV4Y2x1ZGVkIGZyb20gY3VzdG9tIGVycm9ycy4gKi9cbmNvbnN0IGN1c3RvbUlnbm9yZSA9IG5ldyBTZXQoW1xuICBcImNhcGl0YWxpemVkLWNvbW1lbnRzXCIsXG4gIFwiZnVuYy1zdHlsZVwiLFxuICBcIm5vLW1hZ2ljLW51bWJlcnNcIixcbiAgXCJuby10ZXJuYXJ5XCIsXG4gIFwibm8tdW51c2VkLXZhcnNcIixcbiAgXCJuby11c2UtYmVmb3JlLWRlZmluZVwiLFxuICBcIm5vLXZvaWRcIixcbiAgXCJuby13YXJuaW5nLWNvbW1lbnRzXCIsXG4gIFwib25lLXZhclwiLFxuICBcInNvcnQtaW1wb3J0c1wiLFxuXSk7XG5cbi8qKiBSdWxlcyBpbmNsdWRlZCBpbiBlc2xpbnQ6cmVjb21tZW5kZWQuICovXG5jb25zdCByZWNvbW1lbmRlZCA9IG5ldyBTZXQoT2JqZWN0LmtleXMoY29uZmlncy5yZWNvbW1lbmRlZC5ydWxlcykpO1xuXG4vKiogRXJyb3IgcnVsZXMgZXhjbHVkaW5nIGlnbm9yZWQgb3IgcmVjb21tZW5kZWQuICovXG5jb25zdCBjdXN0b21FcnJvciA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgT2JqZWN0LmtleXMoY29uZmlncy5hbGwucnVsZXMpXG4gICAgLmZpbHRlcigocnVsZSkgPT4gIWN1c3RvbUlnbm9yZS5oYXMocnVsZSkpXG4gICAgLmZpbHRlcigocnVsZSkgPT4gIXJlY29tbWVuZGVkLmhhcyhydWxlKSlcbiAgICAubWFwKChydWxlKSA9PiBbcnVsZSwgXCJlcnJvclwiXSBhcyBjb25zdCksXG4pO1xuXG4vKipcbiAqIEFzc2VtYmxlIGJhc2UgY29uZmlndXJhdGlvbiBjb21iaW5pbmcgdGhlIG9mZmljaWFsIGVzbGludC1qcyByZWNvbW1lbmRhdGlvbnMgd2l0aFxuICogcHJvamVjdC1zcGVjaWZpYyBvdmVycmlkZXMgYW5kIGxpbnRlciBvcHRpb25zLlxuICogQHJldHVybnMgQmFzZSBFU0xpbnQgY29uZmlnIGFycmF5LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGJhc2UgPSBlc2xpbnQoKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZXNsaW50KCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoXG4gICAgY29uZmlncy5yZWNvbW1lbmRlZCxcbiAgICBnbG9iYWxJZ25vcmVzKFxuICAgICAgW1wiKiovZGlzdC8qKlwiLCBcImRvY3MvXCIsIFwiKiovY292ZXJhZ2VcIl0sXG4gICAgICBcIkBlc2xpbnQvanMvY3VzdG9tLWlnbm9yZS1kaXJlY3RvcnlcIixcbiAgICApLFxuICAgIHtcbiAgICAgIGxpbnRlck9wdGlvbnM6IHtcbiAgICAgICAgcmVwb3J0VW51c2VkRGlzYWJsZURpcmVjdGl2ZXM6IFwiZXJyb3JcIixcbiAgICAgICAgcmVwb3J0VW51c2VkSW5saW5lQ29uZmlnczogXCJlcnJvclwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwiQGVzbGludC9qcy9jdXN0b21cIixcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgIC4uLmN1c3RvbUVycm9yLFxuICAgICAgICBcIm5ldy1jYXBcIjogW1wiZXJyb3JcIiwgeyBjYXBJc05ld0V4Y2VwdGlvblBhdHRlcm46IFwiXkBcIiB9XSxcbiAgICAgICAgXCJuby1kdXBsaWNhdGUtaW1wb3J0c1wiOiBbXCJlcnJvclwiLCB7IGFsbG93U2VwYXJhdGVUeXBlSW1wb3J0czogdHJ1ZSB9XSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogW1wiKiovKi5zcGVjLnRzXCIsIFwiKiovKi5lMmUudHNcIl0sXG4gICAgICBuYW1lOiBcIkBlc2xpbnQvanMvY3VzdG9tLXNwZWNcIixcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgIFwiaW5pdC1kZWNsYXJhdGlvbnNcIjogXCJvZmZcIixcbiAgICAgICAgXCJtYXgtbGluZXMtcGVyLWZ1bmN0aW9uXCI6IFwib2ZmXCIsXG4gICAgICAgIFwidW5pY29ybi9wcmV2ZW50LWFiYnJldmlhdGlvbnNcIjogW1xuICAgICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAgICB7IGlnbm9yZTogW1N0cmluZy5yYXdgXFwuZTJlJGBdIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZXM6IFtcInNjcmlwdHMvKi50c1wiXSxcbiAgICAgIG5hbWU6IFwiQGVzbGludC9qcy9jdXN0b20tc2NyaXB0c1wiLFxuICAgICAgcnVsZXM6IHsgXCJuby1jb25zb2xlXCI6IFwib2ZmXCIgfSxcbiAgICB9LFxuICApO1xufVxuIl19
@@ -0,0 +1,5 @@
1
+ export { codeperfect } from "./codeperfect.js";
2
+ export { eslint } from "./eslint.js";
3
+ export { resolver } from "./resolver.js";
4
+ export { typescript } from "./typescript.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { codeperfect } from "./codeperfect.js";
2
+ export { eslint } from "./eslint.js";
3
+ export { resolver } from "./resolver.js";
4
+ export { typescript } from "./typescript.js";
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgY29kZXBlcmZlY3QgfSBmcm9tIFwiLi9jb2RlcGVyZmVjdFwiO1xuZXhwb3J0IHsgZXNsaW50IH0gZnJvbSBcIi4vZXNsaW50XCI7XG5leHBvcnQgeyByZXNvbHZlciB9IGZyb20gXCIuL3Jlc29sdmVyXCI7XG5leHBvcnQgeyB0eXBlc2NyaXB0IH0gZnJvbSBcIi4vdHlwZXNjcmlwdFwiO1xuIl19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/core/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC;;;;;;;GAOG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAkBzD"}
@@ -0,0 +1,27 @@
1
+ import { defineConfig } from "eslint/config";
2
+ /**
3
+ * Return resolver settings configured for TypeScript imports.
4
+ * @returns Return value output.
5
+ * @example
6
+ * ```typescript
7
+ * await resolver();
8
+ * ```
9
+ */
10
+ export async function resolver() {
11
+ const { createTypeScriptImportResolver } = await import("eslint-import-resolver-typescript");
12
+ return defineConfig({
13
+ settings: {
14
+ "import-x/resolver-next": [
15
+ createTypeScriptImportResolver({
16
+ alwaysTryTypes: true,
17
+ }),
18
+ ],
19
+ "import/resolver": {
20
+ typescript: {
21
+ alwaysTryTypes: true,
22
+ },
23
+ },
24
+ },
25
+ });
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvY29yZS9yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFFBQVE7SUFDNUIsTUFBTSxFQUFFLDhCQUE4QixFQUFFLEdBQ3RDLE1BQU0sTUFBTSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7SUFFcEQsT0FBTyxZQUFZLENBQUM7UUFDbEIsUUFBUSxFQUFFO1lBQ1Isd0JBQXdCLEVBQUU7Z0JBQ3hCLDhCQUE4QixDQUFDO29CQUM3QixjQUFjLEVBQUUsSUFBSTtpQkFDckIsQ0FBQzthQUNIO1lBQ0QsaUJBQWlCLEVBQUU7Z0JBQ2pCLFVBQVUsRUFBRTtvQkFDVixjQUFjLEVBQUUsSUFBSTtpQkFDckI7YUFDRjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwiZXNsaW50L2NvbmZpZ1wiO1xuXG4vKipcbiAqIFJldHVybiByZXNvbHZlciBzZXR0aW5ncyBjb25maWd1cmVkIGZvciBUeXBlU2NyaXB0IGltcG9ydHMuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGF3YWl0IHJlc29sdmVyKCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVyKCk6IFByb21pc2U8TGludGVyLkNvbmZpZ1tdPiB7XG4gIGNvbnN0IHsgY3JlYXRlVHlwZVNjcmlwdEltcG9ydFJlc29sdmVyIH0gPVxuICAgIGF3YWl0IGltcG9ydChcImVzbGludC1pbXBvcnQtcmVzb2x2ZXItdHlwZXNjcmlwdFwiKTtcblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKHtcbiAgICBzZXR0aW5nczoge1xuICAgICAgXCJpbXBvcnQteC9yZXNvbHZlci1uZXh0XCI6IFtcbiAgICAgICAgY3JlYXRlVHlwZVNjcmlwdEltcG9ydFJlc29sdmVyKHtcbiAgICAgICAgICBhbHdheXNUcnlUeXBlczogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgICAgXCJpbXBvcnQvcmVzb2x2ZXJcIjoge1xuICAgICAgICB0eXBlc2NyaXB0OiB7XG4gICAgICAgICAgYWx3YXlzVHJ5VHlwZXM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xufVxuIl19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/core/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAoBrC;;;;;;;GAOG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CA+C3D"}
@@ -0,0 +1,63 @@
1
+ import { defineConfig } from "eslint/config";
2
+ /** TypeScript rule names to disable. */
3
+ const off = [
4
+ "no-magic-numbers",
5
+ "no-type-alias",
6
+ "sort-type-constituents",
7
+ "naming-convention",
8
+ "no-use-before-define",
9
+ "member-ordering",
10
+ "no-unsafe-type-assertion",
11
+ ];
12
+ /** TypeScript rules disabled as a map. */
13
+ const customOff = Object.fromEntries(off.map((rule) => [`@typescript-eslint/${rule}`, "off"]));
14
+ /**
15
+ * Build and return TypeScript-specific ESLint configs and rule adjustments.
16
+ * @returns The TypeScript ESLint config array.
17
+ * @example
18
+ * ```typescript
19
+ * const typescriptConfigs = await typescript();
20
+ * ```
21
+ */
22
+ export async function typescript() {
23
+ const { configs } = await import("typescript-eslint");
24
+ const { all } = configs;
25
+ return defineConfig(all, {
26
+ languageOptions: {
27
+ parserOptions: {
28
+ projectService: true,
29
+ },
30
+ },
31
+ }, {
32
+ name: "@typescript-eslint/custom",
33
+ rules: {
34
+ ...customOff,
35
+ "@typescript-eslint/strict-boolean-expressions": [
36
+ "error",
37
+ {
38
+ allowNullableEnum: false,
39
+ allowNullableObject: false,
40
+ allowNumber: false,
41
+ allowString: false,
42
+ },
43
+ ],
44
+ "@typescript-eslint/unified-signatures": [
45
+ "error",
46
+ { ignoreDifferentlyNamedParameters: true },
47
+ ],
48
+ },
49
+ }, {
50
+ name: "@typescript-eslint/custom-compat",
51
+ rules: {
52
+ "@typescript-eslint/prefer-readonly-parameter-types": "off",
53
+ },
54
+ }, {
55
+ files: ["**/*.spec.ts", "**/*.e2e.ts"],
56
+ name: "@typescript-eslint/custom-spec",
57
+ rules: {
58
+ "@typescript-eslint/init-declarations": "off",
59
+ "@typescript-eslint/unbound-method": "off",
60
+ },
61
+ });
62
+ }
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9jb3JlL3R5cGVzY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3Qyx3Q0FBd0M7QUFDeEMsTUFBTSxHQUFHLEdBQUc7SUFDVixrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLHdCQUF3QjtJQUN4QixtQkFBbUI7SUFDbkIsc0JBQXNCO0lBQ3RCLGlCQUFpQjtJQUNqQiwwQkFBMEI7Q0FDM0IsQ0FBQztBQUVGLDBDQUEwQztBQUMxQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUNsQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBRSxLQUFLLENBQVUsQ0FBQyxDQUNsRSxDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsVUFBVTtJQUM5QixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN0RCxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRXhCLE9BQU8sWUFBWSxDQUNqQixHQUFHLEVBQ0g7UUFDRSxlQUFlLEVBQUU7WUFDZixhQUFhLEVBQUU7Z0JBQ2IsY0FBYyxFQUFFLElBQUk7YUFDckI7U0FDRjtLQUNGLEVBQ0Q7UUFDRSxJQUFJLEVBQUUsMkJBQTJCO1FBQ2pDLEtBQUssRUFBRTtZQUNMLEdBQUcsU0FBUztZQUNaLCtDQUErQyxFQUFFO2dCQUMvQyxPQUFPO2dCQUNQO29CQUNFLGlCQUFpQixFQUFFLEtBQUs7b0JBQ3hCLG1CQUFtQixFQUFFLEtBQUs7b0JBQzFCLFdBQVcsRUFBRSxLQUFLO29CQUNsQixXQUFXLEVBQUUsS0FBSztpQkFDbkI7YUFDRjtZQUNELHVDQUF1QyxFQUFFO2dCQUN2QyxPQUFPO2dCQUNQLEVBQUUsZ0NBQWdDLEVBQUUsSUFBSSxFQUFFO2FBQzNDO1NBQ0Y7S0FDRixFQUNEO1FBQ0UsSUFBSSxFQUFFLGtDQUFrQztRQUN4QyxLQUFLLEVBQUU7WUFDTCxvREFBb0QsRUFBRSxLQUFLO1NBQzVEO0tBQ0YsRUFDRDtRQUNFLEtBQUssRUFBRSxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUM7UUFDdEMsSUFBSSxFQUFFLGdDQUFnQztRQUN0QyxLQUFLLEVBQUU7WUFDTCxzQ0FBc0MsRUFBRSxLQUFLO1lBQzdDLG1DQUFtQyxFQUFFLEtBQUs7U0FDM0M7S0FDRixDQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaW50ZXIgfSBmcm9tIFwiZXNsaW50XCI7XHJcblxyXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwiZXNsaW50L2NvbmZpZ1wiO1xyXG5cclxuLyoqIFR5cGVTY3JpcHQgcnVsZSBuYW1lcyB0byBkaXNhYmxlLiAqL1xyXG5jb25zdCBvZmYgPSBbXHJcbiAgXCJuby1tYWdpYy1udW1iZXJzXCIsXHJcbiAgXCJuby10eXBlLWFsaWFzXCIsXHJcbiAgXCJzb3J0LXR5cGUtY29uc3RpdHVlbnRzXCIsXHJcbiAgXCJuYW1pbmctY29udmVudGlvblwiLFxyXG4gIFwibm8tdXNlLWJlZm9yZS1kZWZpbmVcIixcclxuICBcIm1lbWJlci1vcmRlcmluZ1wiLFxyXG4gIFwibm8tdW5zYWZlLXR5cGUtYXNzZXJ0aW9uXCIsXHJcbl07XHJcblxyXG4vKiogVHlwZVNjcmlwdCBydWxlcyBkaXNhYmxlZCBhcyBhIG1hcC4gKi9cclxuY29uc3QgY3VzdG9tT2ZmID0gT2JqZWN0LmZyb21FbnRyaWVzKFxyXG4gIG9mZi5tYXAoKHJ1bGUpID0+IFtgQHR5cGVzY3JpcHQtZXNsaW50LyR7cnVsZX1gLCBcIm9mZlwiXSBhcyBjb25zdCksXHJcbik7XHJcblxyXG4vKipcclxuICogQnVpbGQgYW5kIHJldHVybiBUeXBlU2NyaXB0LXNwZWNpZmljIEVTTGludCBjb25maWdzIGFuZCBydWxlIGFkanVzdG1lbnRzLlxyXG4gKiBAcmV0dXJucyBUaGUgVHlwZVNjcmlwdCBFU0xpbnQgY29uZmlnIGFycmF5LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGNvbnN0IHR5cGVzY3JpcHRDb25maWdzID0gYXdhaXQgdHlwZXNjcmlwdCgpO1xyXG4gKiBgYGBcclxuICovXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0eXBlc2NyaXB0KCk6IFByb21pc2U8TGludGVyLkNvbmZpZ1tdPiB7XHJcbiAgY29uc3QgeyBjb25maWdzIH0gPSBhd2FpdCBpbXBvcnQoXCJ0eXBlc2NyaXB0LWVzbGludFwiKTtcclxuICBjb25zdCB7IGFsbCB9ID0gY29uZmlncztcclxuXHJcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhcclxuICAgIGFsbCxcclxuICAgIHtcclxuICAgICAgbGFuZ3VhZ2VPcHRpb25zOiB7XHJcbiAgICAgICAgcGFyc2VyT3B0aW9uczoge1xyXG4gICAgICAgICAgcHJvamVjdFNlcnZpY2U6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6IFwiQHR5cGVzY3JpcHQtZXNsaW50L2N1c3RvbVwiLFxyXG4gICAgICBydWxlczoge1xyXG4gICAgICAgIC4uLmN1c3RvbU9mZixcclxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9zdHJpY3QtYm9vbGVhbi1leHByZXNzaW9uc1wiOiBbXHJcbiAgICAgICAgICBcImVycm9yXCIsXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFsbG93TnVsbGFibGVFbnVtOiBmYWxzZSxcclxuICAgICAgICAgICAgYWxsb3dOdWxsYWJsZU9iamVjdDogZmFsc2UsXHJcbiAgICAgICAgICAgIGFsbG93TnVtYmVyOiBmYWxzZSxcclxuICAgICAgICAgICAgYWxsb3dTdHJpbmc6IGZhbHNlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICAgIFwiQHR5cGVzY3JpcHQtZXNsaW50L3VuaWZpZWQtc2lnbmF0dXJlc1wiOiBbXHJcbiAgICAgICAgICBcImVycm9yXCIsXHJcbiAgICAgICAgICB7IGlnbm9yZURpZmZlcmVudGx5TmFtZWRQYXJhbWV0ZXJzOiB0cnVlIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6IFwiQHR5cGVzY3JpcHQtZXNsaW50L2N1c3RvbS1jb21wYXRcIixcclxuICAgICAgcnVsZXM6IHtcclxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItcmVhZG9ubHktcGFyYW1ldGVyLXR5cGVzXCI6IFwib2ZmXCIsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBmaWxlczogW1wiKiovKi5zcGVjLnRzXCIsIFwiKiovKi5lMmUudHNcIl0sXHJcbiAgICAgIG5hbWU6IFwiQHR5cGVzY3JpcHQtZXNsaW50L2N1c3RvbS1zcGVjXCIsXHJcbiAgICAgIHJ1bGVzOiB7XHJcbiAgICAgICAgXCJAdHlwZXNjcmlwdC1lc2xpbnQvaW5pdC1kZWNsYXJhdGlvbnNcIjogXCJvZmZcIixcclxuICAgICAgICBcIkB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZFwiOiBcIm9mZlwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICApO1xyXG59XHJcbiJdfQ==
@@ -1,5 +1,5 @@
1
- import type { PluginName } from "./types";
2
- import type { LoadMode } from "./utilities";
1
+ import type { PluginName } from "../domain/index.js";
2
+ import type { LoadMode } from "./utilities.js";
3
3
  /**
4
4
  * Checks whether an error represents a missing runtime module.
5
5
  * @param error Input error value.
@@ -29,6 +29,16 @@ declare function reportMissingBoundariesConfig(): void;
29
29
  * ```
30
30
  */
31
31
  declare function reportPluginLoadIssue(pluginName: PluginName, error: unknown, mode: LoadMode): void;
32
+ /**
33
+ * Reports that a plugin-state override is redundant with the default state.
34
+ * @param pluginName Input pluginName value.
35
+ * @param enabled Input enabled value.
36
+ * @example
37
+ * ```typescript
38
+ * reportRedundantPluginState("jest", false);
39
+ * ```
40
+ */
41
+ declare function reportRedundantPluginState(pluginName: PluginName, enabled: boolean): void;
32
42
  /**
33
43
  * Reports a skipped rule override when the target plugin is unavailable.
34
44
  * @param ruleName Input ruleName value.
@@ -39,5 +49,5 @@ declare function reportPluginLoadIssue(pluginName: PluginName, error: unknown, m
39
49
  * ```
40
50
  */
41
51
  declare function reportRuleOverrideSkip(ruleName: string, pluginName: string): void;
42
- export { isMissingModuleError, reportMissingBoundariesConfig, reportPluginLoadIssue, reportRuleOverrideSkip, };
52
+ export { isMissingModuleError, reportMissingBoundariesConfig, reportPluginLoadIssue, reportRedundantPluginState, reportRuleOverrideSkip, };
43
53
  //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/infrastructure/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAe5C;;;;;;;;GAQG;AACH,iBAAS,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAErD;AAED;;;;;;GAMG;AACH,iBAAS,6BAA6B,IAAI,IAAI,CAK7C;AAED;;;;;;;;;GASG;AACH,iBAAS,qBAAqB,CAC5B,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,QAAQ,GACb,IAAI,CAaN;AAED;;;;;;;;GAQG;AACH,iBAAS,0BAA0B,CACjC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,GACf,IAAI,CAMN;AAED;;;;;;;;GAQG;AACH,iBAAS,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAK1E;AAED,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,GACvB,CAAC"}
@@ -0,0 +1,90 @@
1
+ /** ANSI escape sequences for colored console output. */
2
+ const ansi = {
3
+ bold: "\u001B[1m",
4
+ cyan: "\u001B[36m",
5
+ red: "\u001B[31m",
6
+ reset: "\u001B[0m",
7
+ yellow: "\u001B[33m",
8
+ };
9
+ /** Matches common missing-module error text across package managers and runtimes. */
10
+ const missingModulePattern = /Cannot find module|ERR_MODULE_NOT_FOUND|MODULE_NOT_FOUND/u;
11
+ /**
12
+ * Checks whether an error represents a missing runtime module.
13
+ * @param error Input error value.
14
+ * @returns Return value output.
15
+ * @example
16
+ * ```typescript
17
+ * const missing = isMissingModuleError(new Error("Cannot find module 'x'"));
18
+ * ```
19
+ */
20
+ function isMissingModuleError(error) {
21
+ return missingModulePattern.test(String(error));
22
+ }
23
+ /**
24
+ * Reports that repository-owned boundaries input is missing.
25
+ * @example
26
+ * ```typescript
27
+ * reportMissingBoundariesConfig();
28
+ * ```
29
+ */
30
+ function reportMissingBoundariesConfig() {
31
+ const header = `${ansi.bold}${ansi.red}Skipped boundaries config${ansi.reset}`;
32
+ const detail = `${ansi.yellow}Provide repository-owned boundaries files, elements, and element-types.${ansi.reset}`;
33
+ const hint = `${ansi.cyan}Hint:${ansi.reset} Provide boundaries config via config({ boundaries: { ... } }) or disable the plugin with plugins: { "boundaries": false }.`;
34
+ process.stderr.write(`${[header, detail, hint].join("\n")}\n`);
35
+ }
36
+ /**
37
+ * Reports a plugin loading issue using runtime-aware messaging.
38
+ * @param pluginName Input pluginName value.
39
+ * @param error Input error value.
40
+ * @param mode Specifies whether loader failures are fatal or skippable.
41
+ * @example
42
+ * ```typescript
43
+ * reportPluginLoadIssue("vitest", new Error("Cannot find module"), "optional");
44
+ * ```
45
+ */
46
+ function reportPluginLoadIssue(pluginName, error, mode) {
47
+ const message = String(error);
48
+ const isMissingOptionalDependency = mode === "optional" && isMissingModuleError(error);
49
+ const header = isMissingOptionalDependency
50
+ ? `${ansi.bold}${ansi.yellow}Skipped optional ESLint plugin config: ${pluginName}${ansi.reset}`
51
+ : `${ansi.bold}${ansi.red}Failed to load ESLint plugin config: ${pluginName}${ansi.reset}`;
52
+ const detail = `${ansi.yellow}${message}${ansi.reset}`;
53
+ const hint = mode === "required"
54
+ ? `${ansi.cyan}Hint:${ansi.reset} Install the required peer dependency backing "${pluginName}" before using config().`
55
+ : `${ansi.cyan}Hint:${ansi.reset} Install the plugin or disable it via config({ plugins: { "${pluginName}": false } }).`;
56
+ process.stderr.write(`${[header, detail, hint].join("\n")}\n`);
57
+ }
58
+ /**
59
+ * Reports that a plugin-state override is redundant with the default state.
60
+ * @param pluginName Input pluginName value.
61
+ * @param enabled Input enabled value.
62
+ * @example
63
+ * ```typescript
64
+ * reportRedundantPluginState("jest", false);
65
+ * ```
66
+ */
67
+ function reportRedundantPluginState(pluginName, enabled) {
68
+ const stateLabel = enabled ? "enabled" : "disabled";
69
+ const header = `${ansi.bold}${ansi.yellow}Redundant plugin state override: ${pluginName}${ansi.reset}`;
70
+ const detail = `${ansi.yellow}Plugin "${pluginName}" is already ${stateLabel} by default.${ansi.reset}`;
71
+ const hint = `${ansi.cyan}Hint:${ansi.reset} Remove the redundant override from config({ plugins: { "${pluginName}": ${String(enabled)} } }).`;
72
+ process.stderr.write(`${[header, detail, hint].join("\n")}\n`);
73
+ }
74
+ /**
75
+ * Reports a skipped rule override when the target plugin is unavailable.
76
+ * @param ruleName Input ruleName value.
77
+ * @param pluginName Input pluginName value.
78
+ * @example
79
+ * ```typescript
80
+ * reportRuleOverrideSkip("vitest/no-focused-tests", "vitest");
81
+ * ```
82
+ */
83
+ function reportRuleOverrideSkip(ruleName, pluginName) {
84
+ const header = `${ansi.bold}${ansi.red}Skipped rule override: ${ruleName}${ansi.reset}`;
85
+ const detail = `${ansi.yellow}Plugin "${pluginName}" is not available in the final config.${ansi.reset}`;
86
+ const hint = `${ansi.cyan}Hint:${ansi.reset} Install the plugin or remove the rule override.`;
87
+ process.stderr.write(`${[header, detail, hint].join("\n")}\n`);
88
+ }
89
+ export { isMissingModuleError, reportMissingBoundariesConfig, reportPluginLoadIssue, reportRedundantPluginState, reportRuleOverrideSkip, };
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ25vc3RpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvZGlhZ25vc3RpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0Esd0RBQXdEO0FBQ3hELE1BQU0sSUFBSSxHQUFHO0lBQ1gsSUFBSSxFQUFFLFdBQVc7SUFDakIsSUFBSSxFQUFFLFlBQVk7SUFDbEIsR0FBRyxFQUFFLFlBQVk7SUFDakIsS0FBSyxFQUFFLFdBQVc7SUFDbEIsTUFBTSxFQUFFLFlBQVk7Q0FDWixDQUFDO0FBRVgscUZBQXFGO0FBQ3JGLE1BQU0sb0JBQW9CLEdBQ3hCLDJEQUEyRCxDQUFDO0FBRTlEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxvQkFBb0IsQ0FBQyxLQUFjO0lBQzFDLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLDZCQUE2QjtJQUNwQyxNQUFNLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsNEJBQTRCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMvRSxNQUFNLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLDBFQUEwRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEgsTUFBTSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxRQUFRLElBQUksQ0FBQyxLQUFLLDZIQUE2SCxDQUFDO0lBQ3pLLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMscUJBQXFCLENBQzVCLFVBQXNCLEVBQ3RCLEtBQWMsRUFDZCxJQUFjO0lBRWQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLE1BQU0sMkJBQTJCLEdBQy9CLElBQUksS0FBSyxVQUFVLElBQUksb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsTUFBTSxNQUFNLEdBQUcsMkJBQTJCO1FBQ3hDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sMENBQTBDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQy9GLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsd0NBQXdDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0YsTUFBTSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkQsTUFBTSxJQUFJLEdBQ1IsSUFBSSxLQUFLLFVBQVU7UUFDakIsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksUUFBUSxJQUFJLENBQUMsS0FBSyxrREFBa0QsVUFBVSwwQkFBMEI7UUFDdEgsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksUUFBUSxJQUFJLENBQUMsS0FBSyw4REFBOEQsVUFBVSxnQkFBZ0IsQ0FBQztJQUM3SCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsMEJBQTBCLENBQ2pDLFVBQXNCLEVBQ3RCLE9BQWdCO0lBRWhCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDcEQsTUFBTSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLG9DQUFvQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZHLE1BQU0sTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sV0FBVyxVQUFVLGdCQUFnQixVQUFVLGVBQWUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3hHLE1BQU0sSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksUUFBUSxJQUFJLENBQUMsS0FBSyw0REFBNEQsVUFBVSxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQy9JLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxRQUFnQixFQUFFLFVBQWtCO0lBQ2xFLE1BQU0sTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRywwQkFBMEIsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4RixNQUFNLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLFdBQVcsVUFBVSwwQ0FBMEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pHLE1BQU0sSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksUUFBUSxJQUFJLENBQUMsS0FBSyxrREFBa0QsQ0FBQztJQUM5RixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFFRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLDZCQUE2QixFQUM3QixxQkFBcUIsRUFDckIsMEJBQTBCLEVBQzFCLHNCQUFzQixHQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQbHVnaW5OYW1lIH0gZnJvbSBcIi4uL2RvbWFpblwiO1xuaW1wb3J0IHR5cGUgeyBMb2FkTW9kZSB9IGZyb20gXCIuL3V0aWxpdGllc1wiO1xuXG4vKiogQU5TSSBlc2NhcGUgc2VxdWVuY2VzIGZvciBjb2xvcmVkIGNvbnNvbGUgb3V0cHV0LiAqL1xuY29uc3QgYW5zaSA9IHtcbiAgYm9sZDogXCJcXHUwMDFCWzFtXCIsXG4gIGN5YW46IFwiXFx1MDAxQlszNm1cIixcbiAgcmVkOiBcIlxcdTAwMUJbMzFtXCIsXG4gIHJlc2V0OiBcIlxcdTAwMUJbMG1cIixcbiAgeWVsbG93OiBcIlxcdTAwMUJbMzNtXCIsXG59IGFzIGNvbnN0O1xuXG4vKiogTWF0Y2hlcyBjb21tb24gbWlzc2luZy1tb2R1bGUgZXJyb3IgdGV4dCBhY3Jvc3MgcGFja2FnZSBtYW5hZ2VycyBhbmQgcnVudGltZXMuICovXG5jb25zdCBtaXNzaW5nTW9kdWxlUGF0dGVybiA9XG4gIC9DYW5ub3QgZmluZCBtb2R1bGV8RVJSX01PRFVMRV9OT1RfRk9VTkR8TU9EVUxFX05PVF9GT1VORC91O1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGFuIGVycm9yIHJlcHJlc2VudHMgYSBtaXNzaW5nIHJ1bnRpbWUgbW9kdWxlLlxuICogQHBhcmFtIGVycm9yIElucHV0IGVycm9yIHZhbHVlLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBtaXNzaW5nID0gaXNNaXNzaW5nTW9kdWxlRXJyb3IobmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICd4J1wiKSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gaXNNaXNzaW5nTW9kdWxlRXJyb3IoZXJyb3I6IHVua25vd24pOiBib29sZWFuIHtcbiAgcmV0dXJuIG1pc3NpbmdNb2R1bGVQYXR0ZXJuLnRlc3QoU3RyaW5nKGVycm9yKSk7XG59XG5cbi8qKlxuICogUmVwb3J0cyB0aGF0IHJlcG9zaXRvcnktb3duZWQgYm91bmRhcmllcyBpbnB1dCBpcyBtaXNzaW5nLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydE1pc3NpbmdCb3VuZGFyaWVzQ29uZmlnKCk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gcmVwb3J0TWlzc2luZ0JvdW5kYXJpZXNDb25maWcoKTogdm9pZCB7XG4gIGNvbnN0IGhlYWRlciA9IGAke2Fuc2kuYm9sZH0ke2Fuc2kucmVkfVNraXBwZWQgYm91bmRhcmllcyBjb25maWcke2Fuc2kucmVzZXR9YDtcbiAgY29uc3QgZGV0YWlsID0gYCR7YW5zaS55ZWxsb3d9UHJvdmlkZSByZXBvc2l0b3J5LW93bmVkIGJvdW5kYXJpZXMgZmlsZXMsIGVsZW1lbnRzLCBhbmQgZWxlbWVudC10eXBlcy4ke2Fuc2kucmVzZXR9YDtcbiAgY29uc3QgaGludCA9IGAke2Fuc2kuY3lhbn1IaW50OiR7YW5zaS5yZXNldH0gUHJvdmlkZSBib3VuZGFyaWVzIGNvbmZpZyB2aWEgY29uZmlnKHsgYm91bmRhcmllczogeyAuLi4gfSB9KSBvciBkaXNhYmxlIHRoZSBwbHVnaW4gd2l0aCBwbHVnaW5zOiB7IFwiYm91bmRhcmllc1wiOiBmYWxzZSB9LmA7XG4gIHByb2Nlc3Muc3RkZXJyLndyaXRlKGAke1toZWFkZXIsIGRldGFpbCwgaGludF0uam9pbihcIlxcblwiKX1cXG5gKTtcbn1cblxuLyoqXG4gKiBSZXBvcnRzIGEgcGx1Z2luIGxvYWRpbmcgaXNzdWUgdXNpbmcgcnVudGltZS1hd2FyZSBtZXNzYWdpbmcuXG4gKiBAcGFyYW0gcGx1Z2luTmFtZSBJbnB1dCBwbHVnaW5OYW1lIHZhbHVlLlxuICogQHBhcmFtIGVycm9yIElucHV0IGVycm9yIHZhbHVlLlxuICogQHBhcmFtIG1vZGUgU3BlY2lmaWVzIHdoZXRoZXIgbG9hZGVyIGZhaWx1cmVzIGFyZSBmYXRhbCBvciBza2lwcGFibGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmVwb3J0UGx1Z2luTG9hZElzc3VlKFwidml0ZXN0XCIsIG5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZVwiKSwgXCJvcHRpb25hbFwiKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiByZXBvcnRQbHVnaW5Mb2FkSXNzdWUoXG4gIHBsdWdpbk5hbWU6IFBsdWdpbk5hbWUsXG4gIGVycm9yOiB1bmtub3duLFxuICBtb2RlOiBMb2FkTW9kZSxcbik6IHZvaWQge1xuICBjb25zdCBtZXNzYWdlID0gU3RyaW5nKGVycm9yKTtcbiAgY29uc3QgaXNNaXNzaW5nT3B0aW9uYWxEZXBlbmRlbmN5ID1cbiAgICBtb2RlID09PSBcIm9wdGlvbmFsXCIgJiYgaXNNaXNzaW5nTW9kdWxlRXJyb3IoZXJyb3IpO1xuICBjb25zdCBoZWFkZXIgPSBpc01pc3NpbmdPcHRpb25hbERlcGVuZGVuY3lcbiAgICA/IGAke2Fuc2kuYm9sZH0ke2Fuc2kueWVsbG93fVNraXBwZWQgb3B0aW9uYWwgRVNMaW50IHBsdWdpbiBjb25maWc6ICR7cGx1Z2luTmFtZX0ke2Fuc2kucmVzZXR9YFxuICAgIDogYCR7YW5zaS5ib2xkfSR7YW5zaS5yZWR9RmFpbGVkIHRvIGxvYWQgRVNMaW50IHBsdWdpbiBjb25maWc6ICR7cGx1Z2luTmFtZX0ke2Fuc2kucmVzZXR9YDtcbiAgY29uc3QgZGV0YWlsID0gYCR7YW5zaS55ZWxsb3d9JHttZXNzYWdlfSR7YW5zaS5yZXNldH1gO1xuICBjb25zdCBoaW50ID1cbiAgICBtb2RlID09PSBcInJlcXVpcmVkXCJcbiAgICAgID8gYCR7YW5zaS5jeWFufUhpbnQ6JHthbnNpLnJlc2V0fSBJbnN0YWxsIHRoZSByZXF1aXJlZCBwZWVyIGRlcGVuZGVuY3kgYmFja2luZyBcIiR7cGx1Z2luTmFtZX1cIiBiZWZvcmUgdXNpbmcgY29uZmlnKCkuYFxuICAgICAgOiBgJHthbnNpLmN5YW59SGludDoke2Fuc2kucmVzZXR9IEluc3RhbGwgdGhlIHBsdWdpbiBvciBkaXNhYmxlIGl0IHZpYSBjb25maWcoeyBwbHVnaW5zOiB7IFwiJHtwbHVnaW5OYW1lfVwiOiBmYWxzZSB9IH0pLmA7XG4gIHByb2Nlc3Muc3RkZXJyLndyaXRlKGAke1toZWFkZXIsIGRldGFpbCwgaGludF0uam9pbihcIlxcblwiKX1cXG5gKTtcbn1cblxuLyoqXG4gKiBSZXBvcnRzIHRoYXQgYSBwbHVnaW4tc3RhdGUgb3ZlcnJpZGUgaXMgcmVkdW5kYW50IHdpdGggdGhlIGRlZmF1bHQgc3RhdGUuXG4gKiBAcGFyYW0gcGx1Z2luTmFtZSBJbnB1dCBwbHVnaW5OYW1lIHZhbHVlLlxuICogQHBhcmFtIGVuYWJsZWQgSW5wdXQgZW5hYmxlZCB2YWx1ZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiByZXBvcnRSZWR1bmRhbnRQbHVnaW5TdGF0ZShcImplc3RcIiwgZmFsc2UpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHJlcG9ydFJlZHVuZGFudFBsdWdpblN0YXRlKFxuICBwbHVnaW5OYW1lOiBQbHVnaW5OYW1lLFxuICBlbmFibGVkOiBib29sZWFuLFxuKTogdm9pZCB7XG4gIGNvbnN0IHN0YXRlTGFiZWwgPSBlbmFibGVkID8gXCJlbmFibGVkXCIgOiBcImRpc2FibGVkXCI7XG4gIGNvbnN0IGhlYWRlciA9IGAke2Fuc2kuYm9sZH0ke2Fuc2kueWVsbG93fVJlZHVuZGFudCBwbHVnaW4gc3RhdGUgb3ZlcnJpZGU6ICR7cGx1Z2luTmFtZX0ke2Fuc2kucmVzZXR9YDtcbiAgY29uc3QgZGV0YWlsID0gYCR7YW5zaS55ZWxsb3d9UGx1Z2luIFwiJHtwbHVnaW5OYW1lfVwiIGlzIGFscmVhZHkgJHtzdGF0ZUxhYmVsfSBieSBkZWZhdWx0LiR7YW5zaS5yZXNldH1gO1xuICBjb25zdCBoaW50ID0gYCR7YW5zaS5jeWFufUhpbnQ6JHthbnNpLnJlc2V0fSBSZW1vdmUgdGhlIHJlZHVuZGFudCBvdmVycmlkZSBmcm9tIGNvbmZpZyh7IHBsdWdpbnM6IHsgXCIke3BsdWdpbk5hbWV9XCI6ICR7U3RyaW5nKGVuYWJsZWQpfSB9IH0pLmA7XG4gIHByb2Nlc3Muc3RkZXJyLndyaXRlKGAke1toZWFkZXIsIGRldGFpbCwgaGludF0uam9pbihcIlxcblwiKX1cXG5gKTtcbn1cblxuLyoqXG4gKiBSZXBvcnRzIGEgc2tpcHBlZCBydWxlIG92ZXJyaWRlIHdoZW4gdGhlIHRhcmdldCBwbHVnaW4gaXMgdW5hdmFpbGFibGUuXG4gKiBAcGFyYW0gcnVsZU5hbWUgSW5wdXQgcnVsZU5hbWUgdmFsdWUuXG4gKiBAcGFyYW0gcGx1Z2luTmFtZSBJbnB1dCBwbHVnaW5OYW1lIHZhbHVlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydFJ1bGVPdmVycmlkZVNraXAoXCJ2aXRlc3Qvbm8tZm9jdXNlZC10ZXN0c1wiLCBcInZpdGVzdFwiKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiByZXBvcnRSdWxlT3ZlcnJpZGVTa2lwKHJ1bGVOYW1lOiBzdHJpbmcsIHBsdWdpbk5hbWU6IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCBoZWFkZXIgPSBgJHthbnNpLmJvbGR9JHthbnNpLnJlZH1Ta2lwcGVkIHJ1bGUgb3ZlcnJpZGU6ICR7cnVsZU5hbWV9JHthbnNpLnJlc2V0fWA7XG4gIGNvbnN0IGRldGFpbCA9IGAke2Fuc2kueWVsbG93fVBsdWdpbiBcIiR7cGx1Z2luTmFtZX1cIiBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBmaW5hbCBjb25maWcuJHthbnNpLnJlc2V0fWA7XG4gIGNvbnN0IGhpbnQgPSBgJHthbnNpLmN5YW59SGludDoke2Fuc2kucmVzZXR9IEluc3RhbGwgdGhlIHBsdWdpbiBvciByZW1vdmUgdGhlIHJ1bGUgb3ZlcnJpZGUuYDtcbiAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoYCR7W2hlYWRlciwgZGV0YWlsLCBoaW50XS5qb2luKFwiXFxuXCIpfVxcbmApO1xufVxuXG5leHBvcnQge1xuICBpc01pc3NpbmdNb2R1bGVFcnJvcixcbiAgcmVwb3J0TWlzc2luZ0JvdW5kYXJpZXNDb25maWcsXG4gIHJlcG9ydFBsdWdpbkxvYWRJc3N1ZSxcbiAgcmVwb3J0UmVkdW5kYW50UGx1Z2luU3RhdGUsXG4gIHJlcG9ydFJ1bGVPdmVycmlkZVNraXAsXG59O1xuIl19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/docs/comments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC;;;;;;;GAOG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CA0BzD"}
@@ -0,0 +1,30 @@
1
+ import { defineConfig } from "eslint/config";
2
+ /**
3
+ * Resolve and return plugin configuration for eslint-comments when available.
4
+ * @returns Return value output.
5
+ * @example
6
+ * ```typescript
7
+ * await comments();
8
+ * ```
9
+ */
10
+ export async function comments() {
11
+ const eslintCommentsModule = await import("@eslint-community/eslint-plugin-eslint-comments");
12
+ const eslintCommentsConfigs = await import("@eslint-community/eslint-plugin-eslint-comments/configs");
13
+ const { rules } = eslintCommentsModule;
14
+ const { recommended } = eslintCommentsConfigs;
15
+ const customIgnore = new Set(["no-use"]);
16
+ const recommendedRules = new Set(Object.keys(recommended.rules ?? {}));
17
+ const customError = Object.fromEntries(Object.keys(rules)
18
+ .filter((rule) => !customIgnore.has(rule))
19
+ .map((rule) => `@eslint-community/eslint-comments/${rule}`)
20
+ .filter((rule) => !recommendedRules.has(rule))
21
+ .map((rule) => [rule, "error"]));
22
+ return defineConfig(recommended, {
23
+ name: "@eslint-community/eslint-comments/custom",
24
+ rules: {
25
+ ...customError,
26
+ "@eslint-community/eslint-comments/disable-enable-pair": "off",
27
+ },
28
+ });
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvZG9jcy9jb21tZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFFBQVE7SUFDNUIsTUFBTSxvQkFBb0IsR0FDeEIsTUFBTSxNQUFNLENBQUMsaURBQWlELENBQUMsQ0FBQztJQUNsRSxNQUFNLHFCQUFxQixHQUN6QixNQUFNLE1BQU0sQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0lBQzFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxvQkFBb0IsQ0FBQztJQUN2QyxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcscUJBQXFCLENBQUM7SUFFOUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFdkUsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDZixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLHFDQUFxQyxJQUFJLEVBQUUsQ0FBQztTQUMxRCxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFVLENBQUMsQ0FDM0MsQ0FBQztJQUVGLE9BQU8sWUFBWSxDQUFDLFdBQVcsRUFBRTtRQUMvQixJQUFJLEVBQUUsMENBQTBDO1FBQ2hELEtBQUssRUFBRTtZQUNMLEdBQUcsV0FBVztZQUNkLHVEQUF1RCxFQUFFLEtBQUs7U0FDL0Q7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaW50ZXIgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJlc2xpbnQvY29uZmlnXCI7XG5cbi8qKlxuICogUmVzb2x2ZSBhbmQgcmV0dXJuIHBsdWdpbiBjb25maWd1cmF0aW9uIGZvciBlc2xpbnQtY29tbWVudHMgd2hlbiBhdmFpbGFibGUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGF3YWl0IGNvbW1lbnRzKCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbW1lbnRzKCk6IFByb21pc2U8TGludGVyLkNvbmZpZ1tdPiB7XG4gIGNvbnN0IGVzbGludENvbW1lbnRzTW9kdWxlID1cbiAgICBhd2FpdCBpbXBvcnQoXCJAZXNsaW50LWNvbW11bml0eS9lc2xpbnQtcGx1Z2luLWVzbGludC1jb21tZW50c1wiKTtcbiAgY29uc3QgZXNsaW50Q29tbWVudHNDb25maWdzID1cbiAgICBhd2FpdCBpbXBvcnQoXCJAZXNsaW50LWNvbW11bml0eS9lc2xpbnQtcGx1Z2luLWVzbGludC1jb21tZW50cy9jb25maWdzXCIpO1xuICBjb25zdCB7IHJ1bGVzIH0gPSBlc2xpbnRDb21tZW50c01vZHVsZTtcbiAgY29uc3QgeyByZWNvbW1lbmRlZCB9ID0gZXNsaW50Q29tbWVudHNDb25maWdzO1xuXG4gIGNvbnN0IGN1c3RvbUlnbm9yZSA9IG5ldyBTZXQoW1wibm8tdXNlXCJdKTtcbiAgY29uc3QgcmVjb21tZW5kZWRSdWxlcyA9IG5ldyBTZXQoT2JqZWN0LmtleXMocmVjb21tZW5kZWQucnVsZXMgPz8ge30pKTtcblxuICBjb25zdCBjdXN0b21FcnJvciA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3Qua2V5cyhydWxlcylcbiAgICAgIC5maWx0ZXIoKHJ1bGUpID0+ICFjdXN0b21JZ25vcmUuaGFzKHJ1bGUpKVxuICAgICAgLm1hcCgocnVsZSkgPT4gYEBlc2xpbnQtY29tbXVuaXR5L2VzbGludC1jb21tZW50cy8ke3J1bGV9YClcbiAgICAgIC5maWx0ZXIoKHJ1bGUpID0+ICFyZWNvbW1lbmRlZFJ1bGVzLmhhcyhydWxlKSlcbiAgICAgIC5tYXAoKHJ1bGUpID0+IFtydWxlLCBcImVycm9yXCJdIGFzIGNvbnN0KSxcbiAgKTtcblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKHJlY29tbWVuZGVkLCB7XG4gICAgbmFtZTogXCJAZXNsaW50LWNvbW11bml0eS9lc2xpbnQtY29tbWVudHMvY3VzdG9tXCIsXG4gICAgcnVsZXM6IHtcbiAgICAgIC4uLmN1c3RvbUVycm9yLFxuICAgICAgXCJAZXNsaW50LWNvbW11bml0eS9lc2xpbnQtY29tbWVudHMvZGlzYWJsZS1lbmFibGUtcGFpclwiOiBcIm9mZlwiLFxuICAgIH0sXG4gIH0pO1xufVxuIl19
@@ -0,0 +1,3 @@
1
+ export { comments } from "./comments.js";
2
+ export { jsdoc } from "./jsdoc.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/docs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { comments } from "./comments.js";
2
+ export { jsdoc } from "./jsdoc.js";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvZG9jcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBjb21tZW50cyB9IGZyb20gXCIuL2NvbW1lbnRzXCI7XG5leHBvcnQgeyBqc2RvYyB9IGZyb20gXCIuL2pzZG9jXCI7XG4iXX0=