@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
package/README.md CHANGED
@@ -38,10 +38,28 @@ Disable modules that do not apply to the repository:
38
38
  import { config } from "@codeperfect/eslint-config";
39
39
 
40
40
  export default config({
41
- disabledPlugins: ["boundaries", "jasmine", "jest"],
41
+ plugins: {
42
+ boundaries: false,
43
+ prettier: false,
44
+ },
42
45
  });
43
46
  ```
44
47
 
48
+ Enable modules that are opt-in by default:
49
+
50
+ ```typescript
51
+ import { config } from "@codeperfect/eslint-config";
52
+
53
+ export default config({
54
+ plugins: {
55
+ jasmine: true,
56
+ jest: true,
57
+ },
58
+ });
59
+ ```
60
+
61
+ `jasmine` and `jest` are disabled by default. All other documented modules are enabled by default unless explicitly set to `false`.
62
+
45
63
  Override final rule severities when the repository needs a narrower policy:
46
64
 
47
65
  ```typescript
@@ -118,8 +136,8 @@ This order is intentional and validated in tests.
118
136
  | `import-x` | `eslint-plugin-import-x` | Optional import analysis module. |
119
137
  | `comments` | `@eslint-community/eslint-plugin-eslint-comments` | Optional ESLint directive-comment rules. |
120
138
  | `jsdoc` | `eslint-plugin-jsdoc` | Optional JSDoc rules and package-level JSDoc defaults. |
121
- | `jasmine` | `eslint-plugin-jasmine` | Optional Jasmine rules. |
122
- | `jest` | `eslint-plugin-jest` | Optional Jest rules. |
139
+ | `jasmine` | `eslint-plugin-jasmine` | Optional Jasmine rules. Disabled by default. |
140
+ | `jest` | `eslint-plugin-jest` | Optional Jest rules. Disabled by default. |
123
141
  | `playwright` | `eslint-plugin-playwright` | Optional Playwright rules. |
124
142
  | `vitest` | `@vitest/eslint-plugin` | Optional Vitest rules. |
125
143
  | `rxjs-x` | `eslint-plugin-rxjs-x` | Optional RxJS rules. |
package/dist/.tsbuildinfo CHANGED
@@ -1 +1 @@
1
- {"root":["../src/config-composition.ts","../src/config-factory.ts","../src/diagnostics.ts","../src/index.ts","../src/module-taxonomy.ts","../src/plugin-loaders.ts","../src/types.ts","../src/utilities.ts","../src/architecture/boundaries.ts","../src/architecture/import-x.ts","../src/architecture/index.ts","../src/configs/index.ts","../src/core/codeperfect.ts","../src/core/eslint.ts","../src/core/index.ts","../src/core/resolver.ts","../src/core/typescript.ts","../src/docs/comments.ts","../src/docs/index.ts","../src/docs/jsdoc.ts","../src/domain/index.ts","../src/domain/rxjs-x.ts","../src/style/index.ts","../src/style/perfectionist.ts","../src/style/prettier.ts","../src/style/stylistic.ts","../src/style/unicorn.ts","../src/testing/index.ts","../src/testing/jasmine.ts","../src/testing/jest.ts","../src/testing/playwright.ts","../src/testing/vitest.ts","../conventional-changelog-conventionalcommits.d.ts","../eslint-plugin-jasmine.d.ts"],"version":"5.9.3"}
1
+ {"root":["../src/index.ts","../src/domain/config-composition.ts","../src/domain/index.ts","../src/domain/module-taxonomy.ts","../src/domain/types.ts","../src/infrastructure/config-factory.ts","../src/infrastructure/diagnostics.ts","../src/infrastructure/index.ts","../src/infrastructure/plugin-loaders.ts","../src/infrastructure/plugin-state.ts","../src/infrastructure/rxjs-x.ts","../src/infrastructure/utilities.ts","../src/infrastructure/architecture/boundaries.ts","../src/infrastructure/architecture/import-x.ts","../src/infrastructure/architecture/index.ts","../src/infrastructure/configs/index.ts","../src/infrastructure/core/codeperfect.ts","../src/infrastructure/core/eslint.ts","../src/infrastructure/core/index.ts","../src/infrastructure/core/resolver.ts","../src/infrastructure/core/typescript.ts","../src/infrastructure/docs/comments.ts","../src/infrastructure/docs/index.ts","../src/infrastructure/docs/jsdoc-config.ts","../src/infrastructure/docs/jsdoc.ts","../src/infrastructure/style/index.ts","../src/infrastructure/style/perfectionist.ts","../src/infrastructure/style/prettier.ts","../src/infrastructure/style/stylistic.ts","../src/infrastructure/style/unicorn.ts","../src/infrastructure/testing/index.ts","../src/infrastructure/testing/jasmine.ts","../src/infrastructure/testing/jest.ts","../src/infrastructure/testing/playwright.ts","../src/infrastructure/testing/vitest.ts","../conventional-changelog-conventionalcommits.d.ts","../eslint-plugin-jasmine.d.ts"],"version":"6.0.3"}
@@ -0,0 +1,8 @@
1
+ /** Expected config names when default-enabled modules are composed in order. */
2
+ declare const defaultCompositionNames: readonly ["core-codeperfect", "core-eslint", "core-resolver", "core-typescript", "architecture-import-x", "docs-comments", "docs-jsdoc", "testing-playwright", "testing-vitest", "domain-rxjs", "style-stylistic", "style-perfectionist", "style-unicorn", "style-prettier", "architecture-boundaries"];
3
+ /** Expected config names when all documented modules are enabled in order. */
4
+ declare const fullCompositionNames: readonly ["core-codeperfect", "core-eslint", "core-resolver", "core-typescript", "architecture-import-x", "docs-comments", "docs-jsdoc", "testing-jasmine", "testing-jest", "testing-playwright", "testing-vitest", "domain-rxjs", "style-stylistic", "style-perfectionist", "style-unicorn", "style-prettier", "architecture-boundaries"];
5
+ /** Expected config names when selected optional modules are disabled. */
6
+ declare const reducedCompositionNames: readonly ["core-codeperfect", "core-eslint", "core-resolver", "core-typescript", "architecture-import-x", "docs-comments", "docs-jsdoc", "testing-playwright", "domain-rxjs", "style-stylistic", "style-perfectionist", "style-unicorn"];
7
+ export { defaultCompositionNames, fullCompositionNames, reducedCompositionNames, };
8
+ //# sourceMappingURL=config-composition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-composition.d.ts","sourceRoot":"","sources":["../../src/domain/config-composition.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,QAAA,MAAM,uBAAuB,ySAgBnB,CAAC;AAEX,8EAA8E;AAC9E,QAAA,MAAM,oBAAoB,4UAkBhB,CAAC;AAEX,yEAAyE;AACzE,QAAA,MAAM,uBAAuB,0OAanB,CAAC;AAEX,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,GACxB,CAAC"}
@@ -0,0 +1,55 @@
1
+ /** Expected config names when default-enabled modules are composed in order. */
2
+ const defaultCompositionNames = [
3
+ "core-codeperfect",
4
+ "core-eslint",
5
+ "core-resolver",
6
+ "core-typescript",
7
+ "architecture-import-x",
8
+ "docs-comments",
9
+ "docs-jsdoc",
10
+ "testing-playwright",
11
+ "testing-vitest",
12
+ "domain-rxjs",
13
+ "style-stylistic",
14
+ "style-perfectionist",
15
+ "style-unicorn",
16
+ "style-prettier",
17
+ "architecture-boundaries",
18
+ ];
19
+ /** Expected config names when all documented modules are enabled in order. */
20
+ const fullCompositionNames = [
21
+ "core-codeperfect",
22
+ "core-eslint",
23
+ "core-resolver",
24
+ "core-typescript",
25
+ "architecture-import-x",
26
+ "docs-comments",
27
+ "docs-jsdoc",
28
+ "testing-jasmine",
29
+ "testing-jest",
30
+ "testing-playwright",
31
+ "testing-vitest",
32
+ "domain-rxjs",
33
+ "style-stylistic",
34
+ "style-perfectionist",
35
+ "style-unicorn",
36
+ "style-prettier",
37
+ "architecture-boundaries",
38
+ ];
39
+ /** Expected config names when selected optional modules are disabled. */
40
+ const reducedCompositionNames = [
41
+ "core-codeperfect",
42
+ "core-eslint",
43
+ "core-resolver",
44
+ "core-typescript",
45
+ "architecture-import-x",
46
+ "docs-comments",
47
+ "docs-jsdoc",
48
+ "testing-playwright",
49
+ "domain-rxjs",
50
+ "style-stylistic",
51
+ "style-perfectionist",
52
+ "style-unicorn",
53
+ ];
54
+ export { defaultCompositionNames, fullCompositionNames, reducedCompositionNames, };
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWNvbXBvc2l0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RvbWFpbi9jb25maWctY29tcG9zaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0ZBQWdGO0FBQ2hGLE1BQU0sdUJBQXVCLEdBQUc7SUFDOUIsa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLHVCQUF1QjtJQUN2QixlQUFlO0lBQ2YsWUFBWTtJQUNaLG9CQUFvQjtJQUNwQixnQkFBZ0I7SUFDaEIsYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQix5QkFBeUI7Q0FDakIsQ0FBQztBQUVYLDhFQUE4RTtBQUM5RSxNQUFNLG9CQUFvQixHQUFHO0lBQzNCLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQix1QkFBdUI7SUFDdkIsZUFBZTtJQUNmLFlBQVk7SUFDWixpQkFBaUI7SUFDakIsY0FBYztJQUNkLG9CQUFvQjtJQUNwQixnQkFBZ0I7SUFDaEIsYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQix5QkFBeUI7Q0FDakIsQ0FBQztBQUVYLHlFQUF5RTtBQUN6RSxNQUFNLHVCQUF1QixHQUFHO0lBQzlCLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQix1QkFBdUI7SUFDdkIsZUFBZTtJQUNmLFlBQVk7SUFDWixvQkFBb0I7SUFDcEIsYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsZUFBZTtDQUNQLENBQUM7QUFFWCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQix1QkFBdUIsR0FDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBFeHBlY3RlZCBjb25maWcgbmFtZXMgd2hlbiBkZWZhdWx0LWVuYWJsZWQgbW9kdWxlcyBhcmUgY29tcG9zZWQgaW4gb3JkZXIuICovXG5jb25zdCBkZWZhdWx0Q29tcG9zaXRpb25OYW1lcyA9IFtcbiAgXCJjb3JlLWNvZGVwZXJmZWN0XCIsXG4gIFwiY29yZS1lc2xpbnRcIixcbiAgXCJjb3JlLXJlc29sdmVyXCIsXG4gIFwiY29yZS10eXBlc2NyaXB0XCIsXG4gIFwiYXJjaGl0ZWN0dXJlLWltcG9ydC14XCIsXG4gIFwiZG9jcy1jb21tZW50c1wiLFxuICBcImRvY3MtanNkb2NcIixcbiAgXCJ0ZXN0aW5nLXBsYXl3cmlnaHRcIixcbiAgXCJ0ZXN0aW5nLXZpdGVzdFwiLFxuICBcImRvbWFpbi1yeGpzXCIsXG4gIFwic3R5bGUtc3R5bGlzdGljXCIsXG4gIFwic3R5bGUtcGVyZmVjdGlvbmlzdFwiLFxuICBcInN0eWxlLXVuaWNvcm5cIixcbiAgXCJzdHlsZS1wcmV0dGllclwiLFxuICBcImFyY2hpdGVjdHVyZS1ib3VuZGFyaWVzXCIsXG5dIGFzIGNvbnN0O1xuXG4vKiogRXhwZWN0ZWQgY29uZmlnIG5hbWVzIHdoZW4gYWxsIGRvY3VtZW50ZWQgbW9kdWxlcyBhcmUgZW5hYmxlZCBpbiBvcmRlci4gKi9cbmNvbnN0IGZ1bGxDb21wb3NpdGlvbk5hbWVzID0gW1xuICBcImNvcmUtY29kZXBlcmZlY3RcIixcbiAgXCJjb3JlLWVzbGludFwiLFxuICBcImNvcmUtcmVzb2x2ZXJcIixcbiAgXCJjb3JlLXR5cGVzY3JpcHRcIixcbiAgXCJhcmNoaXRlY3R1cmUtaW1wb3J0LXhcIixcbiAgXCJkb2NzLWNvbW1lbnRzXCIsXG4gIFwiZG9jcy1qc2RvY1wiLFxuICBcInRlc3RpbmctamFzbWluZVwiLFxuICBcInRlc3RpbmctamVzdFwiLFxuICBcInRlc3RpbmctcGxheXdyaWdodFwiLFxuICBcInRlc3Rpbmctdml0ZXN0XCIsXG4gIFwiZG9tYWluLXJ4anNcIixcbiAgXCJzdHlsZS1zdHlsaXN0aWNcIixcbiAgXCJzdHlsZS1wZXJmZWN0aW9uaXN0XCIsXG4gIFwic3R5bGUtdW5pY29yblwiLFxuICBcInN0eWxlLXByZXR0aWVyXCIsXG4gIFwiYXJjaGl0ZWN0dXJlLWJvdW5kYXJpZXNcIixcbl0gYXMgY29uc3Q7XG5cbi8qKiBFeHBlY3RlZCBjb25maWcgbmFtZXMgd2hlbiBzZWxlY3RlZCBvcHRpb25hbCBtb2R1bGVzIGFyZSBkaXNhYmxlZC4gKi9cbmNvbnN0IHJlZHVjZWRDb21wb3NpdGlvbk5hbWVzID0gW1xuICBcImNvcmUtY29kZXBlcmZlY3RcIixcbiAgXCJjb3JlLWVzbGludFwiLFxuICBcImNvcmUtcmVzb2x2ZXJcIixcbiAgXCJjb3JlLXR5cGVzY3JpcHRcIixcbiAgXCJhcmNoaXRlY3R1cmUtaW1wb3J0LXhcIixcbiAgXCJkb2NzLWNvbW1lbnRzXCIsXG4gIFwiZG9jcy1qc2RvY1wiLFxuICBcInRlc3RpbmctcGxheXdyaWdodFwiLFxuICBcImRvbWFpbi1yeGpzXCIsXG4gIFwic3R5bGUtc3R5bGlzdGljXCIsXG4gIFwic3R5bGUtcGVyZmVjdGlvbmlzdFwiLFxuICBcInN0eWxlLXVuaWNvcm5cIixcbl0gYXMgY29uc3Q7XG5cbmV4cG9ydCB7XG4gIGRlZmF1bHRDb21wb3NpdGlvbk5hbWVzLFxuICBmdWxsQ29tcG9zaXRpb25OYW1lcyxcbiAgcmVkdWNlZENvbXBvc2l0aW9uTmFtZXMsXG59O1xuIl19
@@ -1,2 +1,4 @@
1
- export { rxjsX } from "./rxjs-x";
1
+ export { defaultCompositionNames, fullCompositionNames, reducedCompositionNames, } from "./config-composition.js";
2
+ export { moduleTaxonomy } from "./module-taxonomy.js";
3
+ export type { BoundariesConfig, BoundariesConfigExtension, BoundariesElementTypesOptions, BoundariesElementTypesRuleEntry, ConfigOptions, PluginName, PluginStateOverrides, } from "./types.js";
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EACV,gBAAgB,EAChB,yBAAyB,EACzB,6BAA6B,EAC7B,+BAA+B,EAC/B,aAAa,EACb,UAAU,EACV,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
@@ -1,2 +1,3 @@
1
- export { rxjsX } from "./rxjs-x";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9tYWluL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyByeGpzWCB9IGZyb20gXCIuL3J4anMteFwiO1xuIl19
1
+ export { defaultCompositionNames, fullCompositionNames, reducedCompositionNames, } from "./config-composition.js";
2
+ export { moduleTaxonomy } from "./module-taxonomy.js";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9tYWluL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLHVCQUF1QixHQUN4QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIGRlZmF1bHRDb21wb3NpdGlvbk5hbWVzLFxuICBmdWxsQ29tcG9zaXRpb25OYW1lcyxcbiAgcmVkdWNlZENvbXBvc2l0aW9uTmFtZXMsXG59IGZyb20gXCIuL2NvbmZpZy1jb21wb3NpdGlvblwiO1xuZXhwb3J0IHsgbW9kdWxlVGF4b25vbXkgfSBmcm9tIFwiLi9tb2R1bGUtdGF4b25vbXlcIjtcbmV4cG9ydCB0eXBlIHtcbiAgQm91bmRhcmllc0NvbmZpZyxcbiAgQm91bmRhcmllc0NvbmZpZ0V4dGVuc2lvbixcbiAgQm91bmRhcmllc0VsZW1lbnRUeXBlc09wdGlvbnMsXG4gIEJvdW5kYXJpZXNFbGVtZW50VHlwZXNSdWxlRW50cnksXG4gIENvbmZpZ09wdGlvbnMsXG4gIFBsdWdpbk5hbWUsXG4gIFBsdWdpblN0YXRlT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi90eXBlc1wiO1xuIl19
@@ -1,6 +1,6 @@
1
- import type { PluginName } from "./types";
1
+ import type { PluginName } from "./types.js";
2
2
  /** Taxonomy categories for config modules. */
3
- type ModuleCategory = "architecture" | "core" | "documentation" | "domain" | "repository-architecture" | "style" | "testing";
3
+ type ModuleCategory = "architecture" | "core" | "documentation" | "domain" | "infrastructure" | "repository-architecture" | "style" | "testing";
4
4
  /** Entry describing a documented config module. */
5
5
  interface ModuleTaxonomyEntry {
6
6
  /** Category owning the module. */
@@ -43,7 +43,7 @@ declare const moduleTaxonomy: readonly [{
43
43
  readonly category: "testing";
44
44
  readonly pluginName: "vitest";
45
45
  }, {
46
- readonly category: "domain";
46
+ readonly category: "infrastructure";
47
47
  readonly pluginName: "rxjs-x";
48
48
  }, {
49
49
  readonly category: "style";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-taxonomy.d.ts","sourceRoot":"","sources":["../../src/domain/module-taxonomy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,8CAA8C;AAC9C,KAAK,cAAc,GACf,cAAc,GACd,MAAM,GACN,eAAe,GACf,QAAQ,GACR,gBAAgB,GAChB,yBAAyB,GACzB,OAAO,GACP,SAAS,CAAC;AAEd,mDAAmD;AACnD,UAAU,mBAAmB;IAC3B,kCAAkC;IAClC,QAAQ,EAAE,cAAc,CAAC;IAEzB,iEAAiE;IACjE,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,iDAAiD;AACjD,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkB+B,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,22 @@
1
+ /** Ordered module taxonomy matching RFC-0003. */
2
+ const moduleTaxonomy = [
3
+ { category: "core", pluginName: "codeperfect" },
4
+ { category: "core", pluginName: "eslint" },
5
+ { category: "core", pluginName: "resolver" },
6
+ { category: "core", pluginName: "typescript" },
7
+ { category: "architecture", pluginName: "import-x" },
8
+ { category: "documentation", pluginName: "comments" },
9
+ { category: "documentation", pluginName: "jsdoc" },
10
+ { category: "testing", pluginName: "jasmine" },
11
+ { category: "testing", pluginName: "jest" },
12
+ { category: "testing", pluginName: "playwright" },
13
+ { category: "testing", pluginName: "vitest" },
14
+ { category: "infrastructure", pluginName: "rxjs-x" },
15
+ { category: "style", pluginName: "stylistic" },
16
+ { category: "style", pluginName: "perfectionist" },
17
+ { category: "style", pluginName: "unicorn" },
18
+ { category: "style", pluginName: "prettier" },
19
+ { category: "repository-architecture", pluginName: "boundaries" },
20
+ ];
21
+ export { moduleTaxonomy };
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLXRheG9ub215LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RvbWFpbi9tb2R1bGUtdGF4b25vbXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0JBLGlEQUFpRDtBQUNqRCxNQUFNLGNBQWMsR0FBRztJQUNyQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRTtJQUMvQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRTtJQUMxQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRTtJQUM1QyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRTtJQUM5QyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRTtJQUNwRCxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRTtJQUNyRCxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRTtJQUNsRCxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRTtJQUM5QyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTtJQUMzQyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRTtJQUNqRCxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRTtJQUM3QyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFO0lBQ3BELEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFO0lBQzlDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFO0lBQ2xELEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFO0lBQzVDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFO0lBQzdDLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUU7Q0FDaEIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBsdWdpbk5hbWUgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKiogVGF4b25vbXkgY2F0ZWdvcmllcyBmb3IgY29uZmlnIG1vZHVsZXMuICovXG50eXBlIE1vZHVsZUNhdGVnb3J5ID1cbiAgfCBcImFyY2hpdGVjdHVyZVwiXG4gIHwgXCJjb3JlXCJcbiAgfCBcImRvY3VtZW50YXRpb25cIlxuICB8IFwiZG9tYWluXCJcbiAgfCBcImluZnJhc3RydWN0dXJlXCJcbiAgfCBcInJlcG9zaXRvcnktYXJjaGl0ZWN0dXJlXCJcbiAgfCBcInN0eWxlXCJcbiAgfCBcInRlc3RpbmdcIjtcblxuLyoqIEVudHJ5IGRlc2NyaWJpbmcgYSBkb2N1bWVudGVkIGNvbmZpZyBtb2R1bGUuICovXG5pbnRlcmZhY2UgTW9kdWxlVGF4b25vbXlFbnRyeSB7XG4gIC8qKiBDYXRlZ29yeSBvd25pbmcgdGhlIG1vZHVsZS4gKi9cbiAgY2F0ZWdvcnk6IE1vZHVsZUNhdGVnb3J5O1xuXG4gIC8qKiBQdWJsaWMgbW9kdWxlIG5hbWUgdXNlZCBpbiBjb25maWcgb3B0aW9ucyBhbmQgZGlhZ25vc3RpY3MuICovXG4gIHBsdWdpbk5hbWU6IFBsdWdpbk5hbWU7XG59XG5cbi8qKiBPcmRlcmVkIG1vZHVsZSB0YXhvbm9teSBtYXRjaGluZyBSRkMtMDAwMy4gKi9cbmNvbnN0IG1vZHVsZVRheG9ub215ID0gW1xuICB7IGNhdGVnb3J5OiBcImNvcmVcIiwgcGx1Z2luTmFtZTogXCJjb2RlcGVyZmVjdFwiIH0sXG4gIHsgY2F0ZWdvcnk6IFwiY29yZVwiLCBwbHVnaW5OYW1lOiBcImVzbGludFwiIH0sXG4gIHsgY2F0ZWdvcnk6IFwiY29yZVwiLCBwbHVnaW5OYW1lOiBcInJlc29sdmVyXCIgfSxcbiAgeyBjYXRlZ29yeTogXCJjb3JlXCIsIHBsdWdpbk5hbWU6IFwidHlwZXNjcmlwdFwiIH0sXG4gIHsgY2F0ZWdvcnk6IFwiYXJjaGl0ZWN0dXJlXCIsIHBsdWdpbk5hbWU6IFwiaW1wb3J0LXhcIiB9LFxuICB7IGNhdGVnb3J5OiBcImRvY3VtZW50YXRpb25cIiwgcGx1Z2luTmFtZTogXCJjb21tZW50c1wiIH0sXG4gIHsgY2F0ZWdvcnk6IFwiZG9jdW1lbnRhdGlvblwiLCBwbHVnaW5OYW1lOiBcImpzZG9jXCIgfSxcbiAgeyBjYXRlZ29yeTogXCJ0ZXN0aW5nXCIsIHBsdWdpbk5hbWU6IFwiamFzbWluZVwiIH0sXG4gIHsgY2F0ZWdvcnk6IFwidGVzdGluZ1wiLCBwbHVnaW5OYW1lOiBcImplc3RcIiB9LFxuICB7IGNhdGVnb3J5OiBcInRlc3RpbmdcIiwgcGx1Z2luTmFtZTogXCJwbGF5d3JpZ2h0XCIgfSxcbiAgeyBjYXRlZ29yeTogXCJ0ZXN0aW5nXCIsIHBsdWdpbk5hbWU6IFwidml0ZXN0XCIgfSxcbiAgeyBjYXRlZ29yeTogXCJpbmZyYXN0cnVjdHVyZVwiLCBwbHVnaW5OYW1lOiBcInJ4anMteFwiIH0sXG4gIHsgY2F0ZWdvcnk6IFwic3R5bGVcIiwgcGx1Z2luTmFtZTogXCJzdHlsaXN0aWNcIiB9LFxuICB7IGNhdGVnb3J5OiBcInN0eWxlXCIsIHBsdWdpbk5hbWU6IFwicGVyZmVjdGlvbmlzdFwiIH0sXG4gIHsgY2F0ZWdvcnk6IFwic3R5bGVcIiwgcGx1Z2luTmFtZTogXCJ1bmljb3JuXCIgfSxcbiAgeyBjYXRlZ29yeTogXCJzdHlsZVwiLCBwbHVnaW5OYW1lOiBcInByZXR0aWVyXCIgfSxcbiAgeyBjYXRlZ29yeTogXCJyZXBvc2l0b3J5LWFyY2hpdGVjdHVyZVwiLCBwbHVnaW5OYW1lOiBcImJvdW5kYXJpZXNcIiB9LFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgTW9kdWxlVGF4b25vbXlFbnRyeVtdO1xuXG5leHBvcnQgeyBtb2R1bGVUYXhvbm9teSB9O1xuZXhwb3J0IHR5cGUgeyBNb2R1bGVDYXRlZ29yeSwgTW9kdWxlVGF4b25vbXlFbnRyeSB9O1xuIl19
@@ -5,20 +5,43 @@ type ArchitecturePluginName = "boundaries" | "import-x";
5
5
  /** Type definition for rule data. */
6
6
  interface BoundariesConfig {
7
7
  /** Repository-owned element descriptors for boundaries analysis. */
8
- elements: ElementDescriptors;
8
+ elements?: ElementDescriptors;
9
9
  /** Repository-owned dependency direction rules for boundaries analysis. */
10
- elementTypes: Linter.RuleEntry<DependenciesRuleOptions[]>;
10
+ elementTypes?: BoundariesElementTypesRuleEntry;
11
+ /** Optional additive extensions applied after the repository defaults. */
12
+ extend?: BoundariesConfigExtension;
11
13
  /** Files included in repository-specific boundaries analysis. */
12
- files: readonly string[];
14
+ files?: readonly string[];
13
15
  /** Optional ignore globs excluded from repository-specific boundaries analysis. */
14
16
  ignores?: readonly string[];
15
17
  }
18
+ /** Type definition for additive boundaries extension fields. */
19
+ interface BoundariesConfigExtension {
20
+ /** Additional repository-owned element descriptors appended to the defaults. */
21
+ elements?: ElementDescriptors;
22
+ /**
23
+ * Additional dependency direction rules appended to the default rule set.
24
+ * Only additive dependency rules are supported here.
25
+ */
26
+ elementTypes?: Pick<BoundariesElementTypesOptions, "rules">;
27
+ /** Additional files appended to the default file globs. */
28
+ files?: readonly string[];
29
+ /** Additional ignore globs appended to the default ignore list. */
30
+ ignores?: readonly string[];
31
+ }
32
+ /** Dependency rule options object used by the boundaries plugin. */
33
+ type BoundariesElementTypesOptions = DependenciesRuleOptions;
34
+ /** Rule entry shape used for repository-owned boundaries dependency rules. */
35
+ type BoundariesElementTypesRuleEntry = [
36
+ Linter.RuleSeverity,
37
+ BoundariesElementTypesOptions
38
+ ];
16
39
  /** Type definition for rule data. */
17
40
  interface ConfigOptions {
18
41
  /** Repository-owned architecture input for the optional `boundaries` module. */
19
42
  boundaries?: BoundariesConfig;
20
- /** List of named modules to disable from the composed configuration. */
21
- disabledPlugins?: readonly PluginName[];
43
+ /** Explicit plugin state overrides keyed by public plugin name. */
44
+ plugins?: PluginStateOverrides;
22
45
  /**
23
46
  * Rules to disable or override.
24
47
  * Use 'off' to disable, or provide custom configuration.
@@ -33,9 +56,11 @@ type DocumentationPluginName = "comments" | "jsdoc";
33
56
  type DomainPluginName = "rxjs-x";
34
57
  /** Type definition for rule data. */
35
58
  type PluginName = ArchitecturePluginName | CorePluginName | DocumentationPluginName | DomainPluginName | StylePluginName | TestingPluginName;
59
+ /** Type definition for explicit plugin state overrides. */
60
+ type PluginStateOverrides = Partial<Record<PluginName, boolean>>;
36
61
  /** Type definition for rule data. */
37
62
  type StylePluginName = "perfectionist" | "prettier" | "stylistic" | "unicorn";
38
63
  /** Type definition for rule data. */
39
64
  type TestingPluginName = "jasmine" | "jest" | "playwright" | "vitest";
40
- export type { BoundariesConfig, ConfigOptions, PluginName };
65
+ export type { BoundariesConfig, BoundariesConfigExtension, BoundariesElementTypesOptions, BoundariesElementTypesRuleEntry, ConfigOptions, PluginName, PluginStateOverrides, };
41
66
  //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/domain/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,qCAAqC;AACrC,KAAK,sBAAsB,GAAG,YAAY,GAAG,UAAU,CAAC;AAExD,qCAAqC;AACrC,UAAU,gBAAgB;IACxB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAE9B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,+BAA+B,CAAC;IAE/C,0EAA0E;IAC1E,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAEnC,iEAAiE;IACjE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE1B,mFAAmF;IACnF,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED,gEAAgE;AAChE,UAAU,yBAAyB;IACjC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAE9B;;;OAGG;IACH,YAAY,CAAC,EAAE,IAAI,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;IAE5D,2DAA2D;IAC3D,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE1B,mEAAmE;IACnE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED,oEAAoE;AACpE,KAAK,6BAA6B,GAAG,uBAAuB,CAAC;AAE7D,8EAA8E;AAC9E,KAAK,+BAA+B,GAAG;IACrC,MAAM,CAAC,YAAY;IACnB,6BAA6B;CAC9B,CAAC;AAEF,qCAAqC;AACrC,UAAU,aAAa;IACrB,gFAAgF;IAChF,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B,mEAAmE;IACnE,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAE/B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;CAC5B;AAED,qCAAqC;AACrC,KAAK,cAAc,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3E,qCAAqC;AACrC,KAAK,uBAAuB,GAAG,UAAU,GAAG,OAAO,CAAC;AAEpD,qCAAqC;AACrC,KAAK,gBAAgB,GAAG,QAAQ,CAAC;AAEjC,qCAAqC;AACrC,KAAK,UAAU,GACX,sBAAsB,GACtB,cAAc,GACd,uBAAuB,GACvB,gBAAgB,GAChB,eAAe,GACf,iBAAiB,CAAC;AAEtB,2DAA2D;AAC3D,KAAK,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AAEjE,qCAAqC;AACrC,KAAK,eAAe,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;AAE9E,qCAAqC;AACrC,KAAK,iBAAiB,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,QAAQ,CAAC;AAEtE,YAAY,EACV,gBAAgB,EAChB,yBAAyB,EACzB,6BAA6B,EAC7B,+BAA+B,EAC/B,aAAa,EACb,UAAU,EACV,oBAAoB,GACrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9tYWluL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpbnRlciB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCB0eXBlIHtcbiAgRGVwZW5kZW5jaWVzUnVsZU9wdGlvbnMsXG4gIEVsZW1lbnREZXNjcmlwdG9ycyxcbn0gZnJvbSBcImVzbGludC1wbHVnaW4tYm91bmRhcmllc1wiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIEFyY2hpdGVjdHVyZVBsdWdpbk5hbWUgPSBcImJvdW5kYXJpZXNcIiB8IFwiaW1wb3J0LXhcIjtcblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIEJvdW5kYXJpZXNDb25maWcge1xuICAvKiogUmVwb3NpdG9yeS1vd25lZCBlbGVtZW50IGRlc2NyaXB0b3JzIGZvciBib3VuZGFyaWVzIGFuYWx5c2lzLiAqL1xuICBlbGVtZW50cz86IEVsZW1lbnREZXNjcmlwdG9ycztcblxuICAvKiogUmVwb3NpdG9yeS1vd25lZCBkZXBlbmRlbmN5IGRpcmVjdGlvbiBydWxlcyBmb3IgYm91bmRhcmllcyBhbmFseXNpcy4gKi9cbiAgZWxlbWVudFR5cGVzPzogQm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeTtcblxuICAvKiogT3B0aW9uYWwgYWRkaXRpdmUgZXh0ZW5zaW9ucyBhcHBsaWVkIGFmdGVyIHRoZSByZXBvc2l0b3J5IGRlZmF1bHRzLiAqL1xuICBleHRlbmQ/OiBCb3VuZGFyaWVzQ29uZmlnRXh0ZW5zaW9uO1xuXG4gIC8qKiBGaWxlcyBpbmNsdWRlZCBpbiByZXBvc2l0b3J5LXNwZWNpZmljIGJvdW5kYXJpZXMgYW5hbHlzaXMuICovXG4gIGZpbGVzPzogcmVhZG9ubHkgc3RyaW5nW107XG5cbiAgLyoqIE9wdGlvbmFsIGlnbm9yZSBnbG9icyBleGNsdWRlZCBmcm9tIHJlcG9zaXRvcnktc3BlY2lmaWMgYm91bmRhcmllcyBhbmFseXNpcy4gKi9cbiAgaWdub3Jlcz86IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBhZGRpdGl2ZSBib3VuZGFyaWVzIGV4dGVuc2lvbiBmaWVsZHMuICovXG5pbnRlcmZhY2UgQm91bmRhcmllc0NvbmZpZ0V4dGVuc2lvbiB7XG4gIC8qKiBBZGRpdGlvbmFsIHJlcG9zaXRvcnktb3duZWQgZWxlbWVudCBkZXNjcmlwdG9ycyBhcHBlbmRlZCB0byB0aGUgZGVmYXVsdHMuICovXG4gIGVsZW1lbnRzPzogRWxlbWVudERlc2NyaXB0b3JzO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGRlcGVuZGVuY3kgZGlyZWN0aW9uIHJ1bGVzIGFwcGVuZGVkIHRvIHRoZSBkZWZhdWx0IHJ1bGUgc2V0LlxuICAgKiBPbmx5IGFkZGl0aXZlIGRlcGVuZGVuY3kgcnVsZXMgYXJlIHN1cHBvcnRlZCBoZXJlLlxuICAgKi9cbiAgZWxlbWVudFR5cGVzPzogUGljazxCb3VuZGFyaWVzRWxlbWVudFR5cGVzT3B0aW9ucywgXCJydWxlc1wiPjtcblxuICAvKiogQWRkaXRpb25hbCBmaWxlcyBhcHBlbmRlZCB0byB0aGUgZGVmYXVsdCBmaWxlIGdsb2JzLiAqL1xuICBmaWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKiBBZGRpdGlvbmFsIGlnbm9yZSBnbG9icyBhcHBlbmRlZCB0byB0aGUgZGVmYXVsdCBpZ25vcmUgbGlzdC4gKi9cbiAgaWdub3Jlcz86IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG4vKiogRGVwZW5kZW5jeSBydWxlIG9wdGlvbnMgb2JqZWN0IHVzZWQgYnkgdGhlIGJvdW5kYXJpZXMgcGx1Z2luLiAqL1xudHlwZSBCb3VuZGFyaWVzRWxlbWVudFR5cGVzT3B0aW9ucyA9IERlcGVuZGVuY2llc1J1bGVPcHRpb25zO1xuXG4vKiogUnVsZSBlbnRyeSBzaGFwZSB1c2VkIGZvciByZXBvc2l0b3J5LW93bmVkIGJvdW5kYXJpZXMgZGVwZW5kZW5jeSBydWxlcy4gKi9cbnR5cGUgQm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeSA9IFtcbiAgTGludGVyLlJ1bGVTZXZlcml0eSxcbiAgQm91bmRhcmllc0VsZW1lbnRUeXBlc09wdGlvbnMsXG5dO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgQ29uZmlnT3B0aW9ucyB7XG4gIC8qKiBSZXBvc2l0b3J5LW93bmVkIGFyY2hpdGVjdHVyZSBpbnB1dCBmb3IgdGhlIG9wdGlvbmFsIGBib3VuZGFyaWVzYCBtb2R1bGUuICovXG4gIGJvdW5kYXJpZXM/OiBCb3VuZGFyaWVzQ29uZmlnO1xuXG4gIC8qKiBFeHBsaWNpdCBwbHVnaW4gc3RhdGUgb3ZlcnJpZGVzIGtleWVkIGJ5IHB1YmxpYyBwbHVnaW4gbmFtZS4gKi9cbiAgcGx1Z2lucz86IFBsdWdpblN0YXRlT3ZlcnJpZGVzO1xuXG4gIC8qKlxuICAgKiBSdWxlcyB0byBkaXNhYmxlIG9yIG92ZXJyaWRlLlxuICAgKiBVc2UgJ29mZicgdG8gZGlzYWJsZSwgb3IgcHJvdmlkZSBjdXN0b20gY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJ1bGVzPzogTGludGVyLlJ1bGVzUmVjb3JkO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIENvcmVQbHVnaW5OYW1lID0gXCJjb2RlcGVyZmVjdFwiIHwgXCJlc2xpbnRcIiB8IFwicmVzb2x2ZXJcIiB8IFwidHlwZXNjcmlwdFwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIERvY3VtZW50YXRpb25QbHVnaW5OYW1lID0gXCJjb21tZW50c1wiIHwgXCJqc2RvY1wiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIERvbWFpblBsdWdpbk5hbWUgPSBcInJ4anMteFwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIFBsdWdpbk5hbWUgPVxuICB8IEFyY2hpdGVjdHVyZVBsdWdpbk5hbWVcbiAgfCBDb3JlUGx1Z2luTmFtZVxuICB8IERvY3VtZW50YXRpb25QbHVnaW5OYW1lXG4gIHwgRG9tYWluUGx1Z2luTmFtZVxuICB8IFN0eWxlUGx1Z2luTmFtZVxuICB8IFRlc3RpbmdQbHVnaW5OYW1lO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBleHBsaWNpdCBwbHVnaW4gc3RhdGUgb3ZlcnJpZGVzLiAqL1xudHlwZSBQbHVnaW5TdGF0ZU92ZXJyaWRlcyA9IFBhcnRpYWw8UmVjb3JkPFBsdWdpbk5hbWUsIGJvb2xlYW4+PjtcblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xudHlwZSBTdHlsZVBsdWdpbk5hbWUgPSBcInBlcmZlY3Rpb25pc3RcIiB8IFwicHJldHRpZXJcIiB8IFwic3R5bGlzdGljXCIgfCBcInVuaWNvcm5cIjtcblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xudHlwZSBUZXN0aW5nUGx1Z2luTmFtZSA9IFwiamFzbWluZVwiIHwgXCJqZXN0XCIgfCBcInBsYXl3cmlnaHRcIiB8IFwidml0ZXN0XCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQm91bmRhcmllc0NvbmZpZyxcbiAgQm91bmRhcmllc0NvbmZpZ0V4dGVuc2lvbixcbiAgQm91bmRhcmllc0VsZW1lbnRUeXBlc09wdGlvbnMsXG4gIEJvdW5kYXJpZXNFbGVtZW50VHlwZXNSdWxlRW50cnksXG4gIENvbmZpZ09wdGlvbnMsXG4gIFBsdWdpbk5hbWUsXG4gIFBsdWdpblN0YXRlT3ZlcnJpZGVzLFxufTtcbiJdfQ==
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { config } from "./config-factory";
2
- export type { BoundariesConfig, ConfigOptions } from "./types";
1
+ export { config, defaultBoundariesConfig } from "./infrastructure/index.js";
2
+ export type { BoundariesConfig, ConfigOptions, PluginStateOverrides, } from "./infrastructure/index.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,oBAAoB,GACrB,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { config } from "./config-factory";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgY29uZmlnIH0gZnJvbSBcIi4vY29uZmlnLWZhY3RvcnlcIjtcbmV4cG9ydCB0eXBlIHsgQm91bmRhcmllc0NvbmZpZywgQ29uZmlnT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzXCI7XG4iXX0=
1
+ export { config, defaultBoundariesConfig } from "./infrastructure/index.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgY29uZmlnLCBkZWZhdWx0Qm91bmRhcmllc0NvbmZpZyB9IGZyb20gXCIuL2luZnJhc3RydWN0dXJlXCI7XG5leHBvcnQgdHlwZSB7XG4gIEJvdW5kYXJpZXNDb25maWcsXG4gIENvbmZpZ09wdGlvbnMsXG4gIFBsdWdpblN0YXRlT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi9pbmZyYXN0cnVjdHVyZVwiO1xuIl19
@@ -0,0 +1,22 @@
1
+ import type { Linter } from "eslint";
2
+ import type { BoundariesConfig } from "../../domain/index.js";
3
+ /** Resolved boundaries config used internally after defaults are applied. */
4
+ type ResolvedBoundariesConfig = Omit<Required<BoundariesConfig>, "extend">;
5
+ /** Repository default boundaries topology aligned with Clean Architecture. */
6
+ declare const defaultBoundariesConfig: ResolvedBoundariesConfig;
7
+ /**
8
+ * Load boundaries plugin configuration using the default Clean Architecture
9
+ * topology, with optional per-field overrides and additive extensions.
10
+ * @param config Input config value.
11
+ * @returns Return value output.
12
+ * @example
13
+ * ```typescript
14
+ * const configs = boundaries({
15
+ * extend: { ignores: ["fixtures/example.ts"] },
16
+ * files: ["packages/example/src/index.ts"],
17
+ * });
18
+ * ```
19
+ */
20
+ declare function boundaries(config?: BoundariesConfig): Linter.Config[];
21
+ export { boundaries, defaultBoundariesConfig };
22
+ //# sourceMappingURL=boundaries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boundaries.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/architecture/boundaries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAUrC,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,cAAc,CAAC;AAEtB,6EAA6E;AAC7E,KAAK,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAC;AAmD3E,8EAA8E;AAC9E,QAAA,MAAM,uBAAuB,EAAE,wBAK9B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,iBAAS,UAAU,CAAC,MAAM,GAAE,gBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,CAsBlE;AAmJD,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,175 @@
1
+ import { createConfig, strict } from "eslint-plugin-boundaries/config";
2
+ import { defineConfig } from "eslint/config";
3
+ /** Default repository element descriptors used by the boundaries plugin. */
4
+ const defaultElements = [
5
+ { mode: "full", pattern: "src/index.ts", type: "entrypoint" },
6
+ { basePattern: "src", pattern: "application", type: "application" },
7
+ {
8
+ basePattern: "src",
9
+ pattern: "infrastructure",
10
+ type: "infrastructure",
11
+ },
12
+ { basePattern: "src", pattern: "domain", type: "domain" },
13
+ ];
14
+ /** Default repository dependency rules used by the boundaries plugin. */
15
+ const defaultElementTypes = [
16
+ "error",
17
+ {
18
+ default: "disallow",
19
+ rules: [
20
+ {
21
+ allow: { to: { type: ["application", "infrastructure"] } },
22
+ from: { type: "entrypoint" },
23
+ },
24
+ {
25
+ allow: { to: { type: "domain" } },
26
+ from: { type: "application" },
27
+ },
28
+ {
29
+ allow: { to: { type: ["application", "domain"] } },
30
+ from: { type: "infrastructure" },
31
+ },
32
+ ],
33
+ },
34
+ ];
35
+ /** Default source file globs included in repository boundaries checks. */
36
+ const defaultFiles = ["src/**/*.ts"];
37
+ /** Default source file globs excluded from repository boundaries checks. */
38
+ const defaultIgnores = ["src/**/*.spec.ts"];
39
+ /** Repository default boundaries topology aligned with Clean Architecture. */
40
+ const defaultBoundariesConfig = {
41
+ elements: defaultElements,
42
+ elementTypes: defaultElementTypes,
43
+ files: defaultFiles,
44
+ ignores: defaultIgnores,
45
+ };
46
+ /**
47
+ * Load boundaries plugin configuration using the default Clean Architecture
48
+ * topology, with optional per-field overrides and additive extensions.
49
+ * @param config Input config value.
50
+ * @returns Return value output.
51
+ * @example
52
+ * ```typescript
53
+ * const configs = boundaries({
54
+ * extend: { ignores: ["fixtures/example.ts"] },
55
+ * files: ["packages/example/src/index.ts"],
56
+ * });
57
+ * ```
58
+ */
59
+ function boundaries(config = {}) {
60
+ const { elements, elementTypes, files, ignores } = resolveBoundariesConfig(config);
61
+ const settings = {
62
+ ...strict.settings,
63
+ "boundaries/elements": elements,
64
+ };
65
+ const rules = {
66
+ ...strict.rules,
67
+ "boundaries/dependencies": elementTypes,
68
+ };
69
+ const configObject = createConfig({
70
+ files: [...files],
71
+ ignores: [...ignores],
72
+ rules,
73
+ settings,
74
+ });
75
+ return defineConfig(configObject);
76
+ }
77
+ /**
78
+ * Clone the element-types rule entry so callers do not mutate shared defaults.
79
+ * @param value Rule entry to clone.
80
+ * @returns The cloned rule entry.
81
+ * @example
82
+ * ```typescript
83
+ * cloneElementTypes(defaultBoundariesConfig.elementTypes);
84
+ * ```
85
+ */
86
+ function cloneElementTypes(value) {
87
+ const [severity, options] = value;
88
+ return [severity, { ...options, rules: [...(options.rules ?? [])] }];
89
+ }
90
+ /**
91
+ * Merge the normalized base dependency rules with any additive extension rules.
92
+ * @param baseRules The normalized base dependency rules.
93
+ * @param extensionRules Additional extension rules.
94
+ * @returns The merged dependency rules.
95
+ * @example
96
+ * ```typescript
97
+ * mergeDependencyRules([], []);
98
+ * ```
99
+ */
100
+ function mergeDependencyRules(baseRules, extensionRules) {
101
+ const mergedRules = [];
102
+ for (const rule of baseRules) {
103
+ mergedRules.push(rule);
104
+ }
105
+ for (const rule of extensionRules) {
106
+ mergedRules.push(rule);
107
+ }
108
+ return mergedRules;
109
+ }
110
+ /**
111
+ * Resolve one array field by applying an override first, then appending any
112
+ * additive extensions.
113
+ * @template T Array item type.
114
+ * @param defaults Repository defaults.
115
+ * @param override Optional override that replaces the defaults.
116
+ * @param extension Optional additive extension appended to the base value.
117
+ * @returns The resolved array field.
118
+ * @example
119
+ * ```typescript
120
+ * resolveArrayField(["src/index.ts"], ["packages/example.ts"], ["fixtures/example.ts"]);
121
+ * ```
122
+ */
123
+ function resolveArrayField(defaults, override, extension) {
124
+ const baseValue = override ?? defaults;
125
+ return extension === void 0 ? [...baseValue] : [...baseValue, ...extension];
126
+ }
127
+ /**
128
+ * Resolve the repo default boundaries topology with optional overrides and
129
+ * additive extensions.
130
+ * @param config Input config value.
131
+ * @returns Return value output.
132
+ * @example
133
+ * ```typescript
134
+ * resolveBoundariesConfig({ extend: { ignores: ["fixtures/example.ts"] } });
135
+ * ```
136
+ */
137
+ function resolveBoundariesConfig(config) {
138
+ const { extend, ...overrides } = config;
139
+ return {
140
+ ...defaultBoundariesConfig,
141
+ elements: resolveArrayField(defaultBoundariesConfig.elements, overrides.elements, extend?.elements),
142
+ elementTypes: resolveElementTypes(defaultBoundariesConfig.elementTypes, overrides.elementTypes, extend?.elementTypes),
143
+ files: resolveArrayField(defaultBoundariesConfig.files, overrides.files, extend?.files),
144
+ ignores: resolveArrayField(defaultBoundariesConfig.ignores, overrides.ignores, extend?.ignores),
145
+ };
146
+ }
147
+ /**
148
+ * Resolve the boundaries element-types rule entry with optional replacement and
149
+ * additive rule extensions.
150
+ * @param defaults Repository default element-types rule entry.
151
+ * @param override Optional full replacement rule entry.
152
+ * @param extension Optional additional rules appended to the base rule set.
153
+ * @returns The resolved element-types rule entry.
154
+ * @example
155
+ * ```typescript
156
+ * resolveElementTypes(defaultBoundariesConfig.elementTypes, undefined, { rules: [] });
157
+ * ```
158
+ */
159
+ function resolveElementTypes(defaults, override, extension) {
160
+ const baseValue = override ?? defaults;
161
+ if (extension === void 0) {
162
+ return cloneElementTypes(baseValue);
163
+ }
164
+ const [severity, options] = cloneElementTypes(baseValue);
165
+ const extensionRules = extension.rules ?? [];
166
+ return [
167
+ severity,
168
+ {
169
+ ...options,
170
+ rules: mergeDependencyRules(options.rules, extensionRules),
171
+ },
172
+ ];
173
+ }
174
+ export { boundaries, defaultBoundariesConfig };
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm91bmRhcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9hcmNoaXRlY3R1cmUvYm91bmRhcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFvQjdDLDRFQUE0RTtBQUM1RSxNQUFNLGVBQWUsR0FBdUI7SUFDMUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtJQUM3RCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFO0lBQ25FO1FBQ0UsV0FBVyxFQUFFLEtBQUs7UUFDbEIsT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixJQUFJLEVBQUUsZ0JBQWdCO0tBQ3ZCO0lBQ0QsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtDQUMxRCxDQUFDO0FBRUYseUVBQXlFO0FBQ3pFLE1BQU0sbUJBQW1CLEdBQW9DO0lBQzNELE9BQU87SUFDUDtRQUNFLE9BQU8sRUFBRSxVQUFVO1FBQ25CLEtBQUssRUFBRTtZQUNMO2dCQUNFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUU7Z0JBQzFELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUU7YUFDN0I7WUFDRDtnQkFDRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUU7YUFDOUI7WUFDRDtnQkFDRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtnQkFDbEQsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2FBQ2pDO1NBQ0Y7S0FDRjtDQUNGLENBQUM7QUFFRiwwRUFBMEU7QUFDMUUsTUFBTSxZQUFZLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUVyQyw0RUFBNEU7QUFDNUUsTUFBTSxjQUFjLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBRTVDLDhFQUE4RTtBQUM5RSxNQUFNLHVCQUF1QixHQUE2QjtJQUN4RCxRQUFRLEVBQUUsZUFBZTtJQUN6QixZQUFZLEVBQUUsbUJBQW1CO0lBQ2pDLEtBQUssRUFBRSxZQUFZO0lBQ25CLE9BQU8sRUFBRSxjQUFjO0NBQ3hCLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxTQUFTLFVBQVUsQ0FBQyxTQUEyQixFQUFFO0lBQy9DLE1BQU0sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FDOUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFbEMsTUFBTSxRQUFRLEdBQWE7UUFDekIsR0FBRyxNQUFNLENBQUMsUUFBUTtRQUNsQixxQkFBcUIsRUFBRSxRQUFRO0tBQ2hDLENBQUM7SUFFRixNQUFNLEtBQUssR0FBVTtRQUNuQixHQUFHLE1BQU0sQ0FBQyxLQUFLO1FBQ2YseUJBQXlCLEVBQUUsWUFBWTtLQUN4QyxDQUFDO0lBRUYsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2hDLEtBQUssRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQ3JCLEtBQUs7UUFDTCxRQUFRO0tBQ1QsQ0FBaUIsQ0FBQztJQUVuQixPQUFPLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGlCQUFpQixDQUN4QixLQUFzQztJQUV0QyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUVsQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsb0JBQW9CLENBQzNCLFNBQW1FLEVBQ25FLGNBQXdFO0lBRXhFLE1BQU0sV0FBVyxHQUNmLEVBQUUsQ0FBQztJQUVMLEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxFQUFFLENBQUM7UUFDN0IsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxNQUFNLElBQUksSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNsQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsU0FBUyxpQkFBaUIsQ0FDeEIsUUFBc0IsRUFDdEIsUUFBa0MsRUFDbEMsU0FBbUM7SUFFbkMsTUFBTSxTQUFTLEdBQUcsUUFBUSxJQUFJLFFBQVEsQ0FBQztJQUV2QyxPQUFPLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUM7QUFDOUUsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsdUJBQXVCLENBQzlCLE1BQXdCO0lBRXhCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFeEMsT0FBTztRQUNMLEdBQUcsdUJBQXVCO1FBQzFCLFFBQVEsRUFBRSxpQkFBaUIsQ0FDekIsdUJBQXVCLENBQUMsUUFBUSxFQUNoQyxTQUFTLENBQUMsUUFBUSxFQUNsQixNQUFNLEVBQUUsUUFBUSxDQUNqQjtRQUNELFlBQVksRUFBRSxtQkFBbUIsQ0FDL0IsdUJBQXVCLENBQUMsWUFBWSxFQUNwQyxTQUFTLENBQUMsWUFBWSxFQUN0QixNQUFNLEVBQUUsWUFBWSxDQUNyQjtRQUNELEtBQUssRUFBRSxpQkFBaUIsQ0FDdEIsdUJBQXVCLENBQUMsS0FBSyxFQUM3QixTQUFTLENBQUMsS0FBSyxFQUNmLE1BQU0sRUFBRSxLQUFLLENBQ2Q7UUFDRCxPQUFPLEVBQUUsaUJBQWlCLENBQ3hCLHVCQUF1QixDQUFDLE9BQU8sRUFDL0IsU0FBUyxDQUFDLE9BQU8sRUFDakIsTUFBTSxFQUFFLE9BQU8sQ0FDaEI7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FDMUIsUUFBeUMsRUFDekMsUUFBMEMsRUFDMUMsU0FBb0Q7SUFFcEQsTUFBTSxTQUFTLEdBQUcsUUFBUSxJQUFJLFFBQVEsQ0FBQztJQUV2QyxJQUFJLFNBQVMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8saUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekQsTUFBTSxjQUFjLEdBRWhCLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0lBRTFCLE9BQU87UUFDTCxRQUFRO1FBQ1I7WUFDRSxHQUFHLE9BQU87WUFDVixLQUFLLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUM7U0FDM0Q7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELE9BQU8sRUFBRSxVQUFVLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29uZmlnT2JqZWN0IH0gZnJvbSBcIkBlc2xpbnQvY29yZVwiO1xuaW1wb3J0IHR5cGUgeyBMaW50ZXIgfSBmcm9tIFwiZXNsaW50XCI7XG5pbXBvcnQgdHlwZSB7XG4gIEVsZW1lbnREZXNjcmlwdG9ycyxcbiAgUnVsZXMsXG4gIFNldHRpbmdzLFxufSBmcm9tIFwiZXNsaW50LXBsdWdpbi1ib3VuZGFyaWVzXCI7XG5cbmltcG9ydCB7IGNyZWF0ZUNvbmZpZywgc3RyaWN0IH0gZnJvbSBcImVzbGludC1wbHVnaW4tYm91bmRhcmllcy9jb25maWdcIjtcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJlc2xpbnQvY29uZmlnXCI7XG5cbmltcG9ydCB0eXBlIHtcbiAgQm91bmRhcmllc0NvbmZpZyxcbiAgQm91bmRhcmllc0NvbmZpZ0V4dGVuc2lvbixcbiAgQm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeSxcbn0gZnJvbSBcIi4uLy4uL2RvbWFpblwiO1xuXG4vKiogUmVzb2x2ZWQgYm91bmRhcmllcyBjb25maWcgdXNlZCBpbnRlcm5hbGx5IGFmdGVyIGRlZmF1bHRzIGFyZSBhcHBsaWVkLiAqL1xudHlwZSBSZXNvbHZlZEJvdW5kYXJpZXNDb25maWcgPSBPbWl0PFJlcXVpcmVkPEJvdW5kYXJpZXNDb25maWc+LCBcImV4dGVuZFwiPjtcblxuLyoqIEludGVybmFsIGVsZW1lbnQtdHlwZXMgdHVwbGUgd2l0aCBhIG5vcm1hbGl6ZWQgcnVsZXMgYXJyYXkuICovXG50eXBlIFJlc29sdmVkQm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeSA9IFtcbiAgQm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeVswXSxcbiAgT21pdDxCb3VuZGFyaWVzRWxlbWVudFR5cGVzUnVsZUVudHJ5WzFdLCBcInJ1bGVzXCI+ICYge1xuICAgIC8qKiBOb3JtYWxpemVkIGRlcGVuZGVuY3kgcnVsZXMgYXJyYXkgd2l0aCBubyB1bmRlZmluZWQgYnJhbmNoIHJlbWFpbmluZy4gKi9cbiAgICBydWxlczogTm9uTnVsbGFibGU8Qm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeVsxXVtcInJ1bGVzXCJdPjtcbiAgfSxcbl07XG5cbi8qKiBEZWZhdWx0IHJlcG9zaXRvcnkgZWxlbWVudCBkZXNjcmlwdG9ycyB1c2VkIGJ5IHRoZSBib3VuZGFyaWVzIHBsdWdpbi4gKi9cbmNvbnN0IGRlZmF1bHRFbGVtZW50czogRWxlbWVudERlc2NyaXB0b3JzID0gW1xuICB7IG1vZGU6IFwiZnVsbFwiLCBwYXR0ZXJuOiBcInNyYy9pbmRleC50c1wiLCB0eXBlOiBcImVudHJ5cG9pbnRcIiB9LFxuICB7IGJhc2VQYXR0ZXJuOiBcInNyY1wiLCBwYXR0ZXJuOiBcImFwcGxpY2F0aW9uXCIsIHR5cGU6IFwiYXBwbGljYXRpb25cIiB9LFxuICB7XG4gICAgYmFzZVBhdHRlcm46IFwic3JjXCIsXG4gICAgcGF0dGVybjogXCJpbmZyYXN0cnVjdHVyZVwiLFxuICAgIHR5cGU6IFwiaW5mcmFzdHJ1Y3R1cmVcIixcbiAgfSxcbiAgeyBiYXNlUGF0dGVybjogXCJzcmNcIiwgcGF0dGVybjogXCJkb21haW5cIiwgdHlwZTogXCJkb21haW5cIiB9LFxuXTtcblxuLyoqIERlZmF1bHQgcmVwb3NpdG9yeSBkZXBlbmRlbmN5IHJ1bGVzIHVzZWQgYnkgdGhlIGJvdW5kYXJpZXMgcGx1Z2luLiAqL1xuY29uc3QgZGVmYXVsdEVsZW1lbnRUeXBlczogQm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeSA9IFtcbiAgXCJlcnJvclwiLFxuICB7XG4gICAgZGVmYXVsdDogXCJkaXNhbGxvd1wiLFxuICAgIHJ1bGVzOiBbXG4gICAgICB7XG4gICAgICAgIGFsbG93OiB7IHRvOiB7IHR5cGU6IFtcImFwcGxpY2F0aW9uXCIsIFwiaW5mcmFzdHJ1Y3R1cmVcIl0gfSB9LFxuICAgICAgICBmcm9tOiB7IHR5cGU6IFwiZW50cnlwb2ludFwiIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBhbGxvdzogeyB0bzogeyB0eXBlOiBcImRvbWFpblwiIH0gfSxcbiAgICAgICAgZnJvbTogeyB0eXBlOiBcImFwcGxpY2F0aW9uXCIgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGFsbG93OiB7IHRvOiB7IHR5cGU6IFtcImFwcGxpY2F0aW9uXCIsIFwiZG9tYWluXCJdIH0gfSxcbiAgICAgICAgZnJvbTogeyB0eXBlOiBcImluZnJhc3RydWN0dXJlXCIgfSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbl07XG5cbi8qKiBEZWZhdWx0IHNvdXJjZSBmaWxlIGdsb2JzIGluY2x1ZGVkIGluIHJlcG9zaXRvcnkgYm91bmRhcmllcyBjaGVja3MuICovXG5jb25zdCBkZWZhdWx0RmlsZXMgPSBbXCJzcmMvKiovKi50c1wiXTtcblxuLyoqIERlZmF1bHQgc291cmNlIGZpbGUgZ2xvYnMgZXhjbHVkZWQgZnJvbSByZXBvc2l0b3J5IGJvdW5kYXJpZXMgY2hlY2tzLiAqL1xuY29uc3QgZGVmYXVsdElnbm9yZXMgPSBbXCJzcmMvKiovKi5zcGVjLnRzXCJdO1xuXG4vKiogUmVwb3NpdG9yeSBkZWZhdWx0IGJvdW5kYXJpZXMgdG9wb2xvZ3kgYWxpZ25lZCB3aXRoIENsZWFuIEFyY2hpdGVjdHVyZS4gKi9cbmNvbnN0IGRlZmF1bHRCb3VuZGFyaWVzQ29uZmlnOiBSZXNvbHZlZEJvdW5kYXJpZXNDb25maWcgPSB7XG4gIGVsZW1lbnRzOiBkZWZhdWx0RWxlbWVudHMsXG4gIGVsZW1lbnRUeXBlczogZGVmYXVsdEVsZW1lbnRUeXBlcyxcbiAgZmlsZXM6IGRlZmF1bHRGaWxlcyxcbiAgaWdub3JlczogZGVmYXVsdElnbm9yZXMsXG59O1xuXG4vKipcbiAqIExvYWQgYm91bmRhcmllcyBwbHVnaW4gY29uZmlndXJhdGlvbiB1c2luZyB0aGUgZGVmYXVsdCBDbGVhbiBBcmNoaXRlY3R1cmVcbiAqIHRvcG9sb2d5LCB3aXRoIG9wdGlvbmFsIHBlci1maWVsZCBvdmVycmlkZXMgYW5kIGFkZGl0aXZlIGV4dGVuc2lvbnMuXG4gKiBAcGFyYW0gY29uZmlnIElucHV0IGNvbmZpZyB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgY29uZmlncyA9IGJvdW5kYXJpZXMoe1xuICogICBleHRlbmQ6IHsgaWdub3JlczogW1wiZml4dHVyZXMvZXhhbXBsZS50c1wiXSB9LFxuICogICBmaWxlczogW1wicGFja2FnZXMvZXhhbXBsZS9zcmMvaW5kZXgudHNcIl0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBib3VuZGFyaWVzKGNvbmZpZzogQm91bmRhcmllc0NvbmZpZyA9IHt9KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgY29uc3QgeyBlbGVtZW50cywgZWxlbWVudFR5cGVzLCBmaWxlcywgaWdub3JlcyB9ID1cbiAgICByZXNvbHZlQm91bmRhcmllc0NvbmZpZyhjb25maWcpO1xuXG4gIGNvbnN0IHNldHRpbmdzOiBTZXR0aW5ncyA9IHtcbiAgICAuLi5zdHJpY3Quc2V0dGluZ3MsXG4gICAgXCJib3VuZGFyaWVzL2VsZW1lbnRzXCI6IGVsZW1lbnRzLFxuICB9O1xuXG4gIGNvbnN0IHJ1bGVzOiBSdWxlcyA9IHtcbiAgICAuLi5zdHJpY3QucnVsZXMsXG4gICAgXCJib3VuZGFyaWVzL2RlcGVuZGVuY2llc1wiOiBlbGVtZW50VHlwZXMsXG4gIH07XG5cbiAgY29uc3QgY29uZmlnT2JqZWN0ID0gY3JlYXRlQ29uZmlnKHtcbiAgICBmaWxlczogWy4uLmZpbGVzXSxcbiAgICBpZ25vcmVzOiBbLi4uaWdub3Jlc10sXG4gICAgcnVsZXMsXG4gICAgc2V0dGluZ3MsXG4gIH0pIGFzIENvbmZpZ09iamVjdDtcblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKGNvbmZpZ09iamVjdCk7XG59XG5cbi8qKlxuICogQ2xvbmUgdGhlIGVsZW1lbnQtdHlwZXMgcnVsZSBlbnRyeSBzbyBjYWxsZXJzIGRvIG5vdCBtdXRhdGUgc2hhcmVkIGRlZmF1bHRzLlxuICogQHBhcmFtIHZhbHVlIFJ1bGUgZW50cnkgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyBUaGUgY2xvbmVkIHJ1bGUgZW50cnkuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY2xvbmVFbGVtZW50VHlwZXMoZGVmYXVsdEJvdW5kYXJpZXNDb25maWcuZWxlbWVudFR5cGVzKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBjbG9uZUVsZW1lbnRUeXBlcyhcbiAgdmFsdWU6IEJvdW5kYXJpZXNFbGVtZW50VHlwZXNSdWxlRW50cnksXG4pOiBSZXNvbHZlZEJvdW5kYXJpZXNFbGVtZW50VHlwZXNSdWxlRW50cnkge1xuICBjb25zdCBbc2V2ZXJpdHksIG9wdGlvbnNdID0gdmFsdWU7XG5cbiAgcmV0dXJuIFtzZXZlcml0eSwgeyAuLi5vcHRpb25zLCBydWxlczogWy4uLihvcHRpb25zLnJ1bGVzID8/IFtdKV0gfV07XG59XG5cbi8qKlxuICogTWVyZ2UgdGhlIG5vcm1hbGl6ZWQgYmFzZSBkZXBlbmRlbmN5IHJ1bGVzIHdpdGggYW55IGFkZGl0aXZlIGV4dGVuc2lvbiBydWxlcy5cbiAqIEBwYXJhbSBiYXNlUnVsZXMgVGhlIG5vcm1hbGl6ZWQgYmFzZSBkZXBlbmRlbmN5IHJ1bGVzLlxuICogQHBhcmFtIGV4dGVuc2lvblJ1bGVzIEFkZGl0aW9uYWwgZXh0ZW5zaW9uIHJ1bGVzLlxuICogQHJldHVybnMgVGhlIG1lcmdlZCBkZXBlbmRlbmN5IHJ1bGVzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIG1lcmdlRGVwZW5kZW5jeVJ1bGVzKFtdLCBbXSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gbWVyZ2VEZXBlbmRlbmN5UnVsZXMoXG4gIGJhc2VSdWxlczogTm9uTnVsbGFibGU8Qm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeVsxXVtcInJ1bGVzXCJdPixcbiAgZXh0ZW5zaW9uUnVsZXM6IE5vbk51bGxhYmxlPEJvdW5kYXJpZXNFbGVtZW50VHlwZXNSdWxlRW50cnlbMV1bXCJydWxlc1wiXT4sXG4pOiBOb25OdWxsYWJsZTxCb3VuZGFyaWVzRWxlbWVudFR5cGVzUnVsZUVudHJ5WzFdW1wicnVsZXNcIl0+IHtcbiAgY29uc3QgbWVyZ2VkUnVsZXM6IE5vbk51bGxhYmxlPEJvdW5kYXJpZXNFbGVtZW50VHlwZXNSdWxlRW50cnlbMV1bXCJydWxlc1wiXT4gPVxuICAgIFtdO1xuXG4gIGZvciAoY29uc3QgcnVsZSBvZiBiYXNlUnVsZXMpIHtcbiAgICBtZXJnZWRSdWxlcy5wdXNoKHJ1bGUpO1xuICB9XG5cbiAgZm9yIChjb25zdCBydWxlIG9mIGV4dGVuc2lvblJ1bGVzKSB7XG4gICAgbWVyZ2VkUnVsZXMucHVzaChydWxlKTtcbiAgfVxuXG4gIHJldHVybiBtZXJnZWRSdWxlcztcbn1cblxuLyoqXG4gKiBSZXNvbHZlIG9uZSBhcnJheSBmaWVsZCBieSBhcHBseWluZyBhbiBvdmVycmlkZSBmaXJzdCwgdGhlbiBhcHBlbmRpbmcgYW55XG4gKiBhZGRpdGl2ZSBleHRlbnNpb25zLlxuICogQHRlbXBsYXRlIFQgQXJyYXkgaXRlbSB0eXBlLlxuICogQHBhcmFtIGRlZmF1bHRzIFJlcG9zaXRvcnkgZGVmYXVsdHMuXG4gKiBAcGFyYW0gb3ZlcnJpZGUgT3B0aW9uYWwgb3ZlcnJpZGUgdGhhdCByZXBsYWNlcyB0aGUgZGVmYXVsdHMuXG4gKiBAcGFyYW0gZXh0ZW5zaW9uIE9wdGlvbmFsIGFkZGl0aXZlIGV4dGVuc2lvbiBhcHBlbmRlZCB0byB0aGUgYmFzZSB2YWx1ZS5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBhcnJheSBmaWVsZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiByZXNvbHZlQXJyYXlGaWVsZChbXCJzcmMvaW5kZXgudHNcIl0sIFtcInBhY2thZ2VzL2V4YW1wbGUudHNcIl0sIFtcImZpeHR1cmVzL2V4YW1wbGUudHNcIl0pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVBcnJheUZpZWxkPFQ+KFxuICBkZWZhdWx0czogcmVhZG9ubHkgVFtdLFxuICBvdmVycmlkZTogcmVhZG9ubHkgVFtdIHwgdW5kZWZpbmVkLFxuICBleHRlbnNpb246IHJlYWRvbmx5IFRbXSB8IHVuZGVmaW5lZCxcbik6IFRbXSB7XG4gIGNvbnN0IGJhc2VWYWx1ZSA9IG92ZXJyaWRlID8/IGRlZmF1bHRzO1xuXG4gIHJldHVybiBleHRlbnNpb24gPT09IHZvaWQgMCA/IFsuLi5iYXNlVmFsdWVdIDogWy4uLmJhc2VWYWx1ZSwgLi4uZXh0ZW5zaW9uXTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSByZXBvIGRlZmF1bHQgYm91bmRhcmllcyB0b3BvbG9neSB3aXRoIG9wdGlvbmFsIG92ZXJyaWRlcyBhbmRcbiAqIGFkZGl0aXZlIGV4dGVuc2lvbnMuXG4gKiBAcGFyYW0gY29uZmlnIElucHV0IGNvbmZpZyB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmVzb2x2ZUJvdW5kYXJpZXNDb25maWcoeyBleHRlbmQ6IHsgaWdub3JlczogW1wiZml4dHVyZXMvZXhhbXBsZS50c1wiXSB9IH0pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVCb3VuZGFyaWVzQ29uZmlnKFxuICBjb25maWc6IEJvdW5kYXJpZXNDb25maWcsXG4pOiBSZXNvbHZlZEJvdW5kYXJpZXNDb25maWcge1xuICBjb25zdCB7IGV4dGVuZCwgLi4ub3ZlcnJpZGVzIH0gPSBjb25maWc7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5kZWZhdWx0Qm91bmRhcmllc0NvbmZpZyxcbiAgICBlbGVtZW50czogcmVzb2x2ZUFycmF5RmllbGQoXG4gICAgICBkZWZhdWx0Qm91bmRhcmllc0NvbmZpZy5lbGVtZW50cyxcbiAgICAgIG92ZXJyaWRlcy5lbGVtZW50cyxcbiAgICAgIGV4dGVuZD8uZWxlbWVudHMsXG4gICAgKSxcbiAgICBlbGVtZW50VHlwZXM6IHJlc29sdmVFbGVtZW50VHlwZXMoXG4gICAgICBkZWZhdWx0Qm91bmRhcmllc0NvbmZpZy5lbGVtZW50VHlwZXMsXG4gICAgICBvdmVycmlkZXMuZWxlbWVudFR5cGVzLFxuICAgICAgZXh0ZW5kPy5lbGVtZW50VHlwZXMsXG4gICAgKSxcbiAgICBmaWxlczogcmVzb2x2ZUFycmF5RmllbGQoXG4gICAgICBkZWZhdWx0Qm91bmRhcmllc0NvbmZpZy5maWxlcyxcbiAgICAgIG92ZXJyaWRlcy5maWxlcyxcbiAgICAgIGV4dGVuZD8uZmlsZXMsXG4gICAgKSxcbiAgICBpZ25vcmVzOiByZXNvbHZlQXJyYXlGaWVsZChcbiAgICAgIGRlZmF1bHRCb3VuZGFyaWVzQ29uZmlnLmlnbm9yZXMsXG4gICAgICBvdmVycmlkZXMuaWdub3JlcyxcbiAgICAgIGV4dGVuZD8uaWdub3JlcyxcbiAgICApLFxuICB9O1xufVxuXG4vKipcbiAqIFJlc29sdmUgdGhlIGJvdW5kYXJpZXMgZWxlbWVudC10eXBlcyBydWxlIGVudHJ5IHdpdGggb3B0aW9uYWwgcmVwbGFjZW1lbnQgYW5kXG4gKiBhZGRpdGl2ZSBydWxlIGV4dGVuc2lvbnMuXG4gKiBAcGFyYW0gZGVmYXVsdHMgUmVwb3NpdG9yeSBkZWZhdWx0IGVsZW1lbnQtdHlwZXMgcnVsZSBlbnRyeS5cbiAqIEBwYXJhbSBvdmVycmlkZSBPcHRpb25hbCBmdWxsIHJlcGxhY2VtZW50IHJ1bGUgZW50cnkuXG4gKiBAcGFyYW0gZXh0ZW5zaW9uIE9wdGlvbmFsIGFkZGl0aW9uYWwgcnVsZXMgYXBwZW5kZWQgdG8gdGhlIGJhc2UgcnVsZSBzZXQuXG4gKiBAcmV0dXJucyBUaGUgcmVzb2x2ZWQgZWxlbWVudC10eXBlcyBydWxlIGVudHJ5LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlc29sdmVFbGVtZW50VHlwZXMoZGVmYXVsdEJvdW5kYXJpZXNDb25maWcuZWxlbWVudFR5cGVzLCB1bmRlZmluZWQsIHsgcnVsZXM6IFtdIH0pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVFbGVtZW50VHlwZXMoXG4gIGRlZmF1bHRzOiBCb3VuZGFyaWVzRWxlbWVudFR5cGVzUnVsZUVudHJ5LFxuICBvdmVycmlkZTogQm91bmRhcmllc0NvbmZpZ1tcImVsZW1lbnRUeXBlc1wiXSxcbiAgZXh0ZW5zaW9uOiBCb3VuZGFyaWVzQ29uZmlnRXh0ZW5zaW9uW1wiZWxlbWVudFR5cGVzXCJdLFxuKTogQm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeSB7XG4gIGNvbnN0IGJhc2VWYWx1ZSA9IG92ZXJyaWRlID8/IGRlZmF1bHRzO1xuXG4gIGlmIChleHRlbnNpb24gPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBjbG9uZUVsZW1lbnRUeXBlcyhiYXNlVmFsdWUpO1xuICB9XG5cbiAgY29uc3QgW3NldmVyaXR5LCBvcHRpb25zXSA9IGNsb25lRWxlbWVudFR5cGVzKGJhc2VWYWx1ZSk7XG4gIGNvbnN0IGV4dGVuc2lvblJ1bGVzOiBOb25OdWxsYWJsZTxcbiAgICBCb3VuZGFyaWVzRWxlbWVudFR5cGVzUnVsZUVudHJ5WzFdW1wicnVsZXNcIl1cbiAgPiA9IGV4dGVuc2lvbi5ydWxlcyA/PyBbXTtcblxuICByZXR1cm4gW1xuICAgIHNldmVyaXR5LFxuICAgIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBydWxlczogbWVyZ2VEZXBlbmRlbmN5UnVsZXMob3B0aW9ucy5ydWxlcywgZXh0ZW5zaW9uUnVsZXMpLFxuICAgIH0sXG4gIF07XG59XG5cbmV4cG9ydCB7IGJvdW5kYXJpZXMsIGRlZmF1bHRCb3VuZGFyaWVzQ29uZmlnIH07XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-x.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/architecture/import-x.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAoDrC;;;;;;;GAOG;AACH,iBAAe,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAmCjD;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}