@codeperfect/eslint-config 1.2.0 → 1.3.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 (174) 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 +80 -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 +58 -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.d.ts.map +1 -0
  53. package/dist/infrastructure/docs/jsdoc.js +126 -0
  54. package/dist/infrastructure/index.d.ts +5 -0
  55. package/dist/infrastructure/index.d.ts.map +1 -0
  56. package/dist/infrastructure/index.js +4 -0
  57. package/dist/{plugin-loaders.d.ts → infrastructure/plugin-loaders.d.ts} +2 -2
  58. package/dist/infrastructure/plugin-loaders.d.ts.map +1 -0
  59. package/dist/infrastructure/plugin-loaders.js +115 -0
  60. package/dist/infrastructure/plugin-state.d.ts +26 -0
  61. package/dist/infrastructure/plugin-state.d.ts.map +1 -0
  62. package/dist/infrastructure/plugin-state.js +54 -0
  63. package/dist/infrastructure/rxjs-x.d.ts.map +1 -0
  64. package/dist/infrastructure/rxjs-x.js +27 -0
  65. package/dist/infrastructure/style/index.d.ts +5 -0
  66. package/dist/infrastructure/style/index.d.ts.map +1 -0
  67. package/dist/infrastructure/style/index.js +5 -0
  68. package/dist/infrastructure/style/perfectionist.d.ts.map +1 -0
  69. package/dist/infrastructure/style/perfectionist.js +31 -0
  70. package/dist/infrastructure/style/prettier.d.ts.map +1 -0
  71. package/dist/infrastructure/style/prettier.js +15 -0
  72. package/dist/infrastructure/style/stylistic.d.ts.map +1 -0
  73. package/dist/infrastructure/style/stylistic.js +17 -0
  74. package/dist/infrastructure/style/unicorn.d.ts.map +1 -0
  75. package/dist/infrastructure/style/unicorn.js +15 -0
  76. package/dist/infrastructure/testing/index.d.ts +5 -0
  77. package/dist/infrastructure/testing/index.d.ts.map +1 -0
  78. package/dist/infrastructure/testing/index.js +5 -0
  79. package/dist/infrastructure/testing/jasmine.d.ts.map +1 -0
  80. package/dist/infrastructure/testing/jasmine.js +26 -0
  81. package/dist/infrastructure/testing/jest.d.ts.map +1 -0
  82. package/dist/infrastructure/testing/jest.js +27 -0
  83. package/dist/infrastructure/testing/playwright.d.ts.map +1 -0
  84. package/dist/infrastructure/testing/playwright.js +29 -0
  85. package/dist/infrastructure/testing/vitest.d.ts.map +1 -0
  86. package/dist/infrastructure/testing/vitest.js +33 -0
  87. package/dist/{utilities.d.ts → infrastructure/utilities.d.ts} +2 -13
  88. package/dist/infrastructure/utilities.d.ts.map +1 -0
  89. package/dist/infrastructure/utilities.js +112 -0
  90. package/package.json +6 -4
  91. package/dist/architecture/boundaries.d.ts +0 -17
  92. package/dist/architecture/boundaries.d.ts.map +0 -1
  93. package/dist/architecture/boundaries.js +0 -69
  94. package/dist/architecture/import-x.d.ts.map +0 -1
  95. package/dist/architecture/import-x.js +0 -80
  96. package/dist/architecture/index.d.ts +0 -3
  97. package/dist/architecture/index.d.ts.map +0 -1
  98. package/dist/architecture/index.js +0 -3
  99. package/dist/config-composition.d.ts +0 -6
  100. package/dist/config-composition.d.ts.map +0 -1
  101. package/dist/config-composition.js +0 -39
  102. package/dist/config-factory.d.ts.map +0 -1
  103. package/dist/config-factory.js +0 -42
  104. package/dist/configs/index.d.ts +0 -7
  105. package/dist/configs/index.d.ts.map +0 -1
  106. package/dist/configs/index.js +0 -7
  107. package/dist/core/codeperfect.d.ts.map +0 -1
  108. package/dist/core/codeperfect.js +0 -14
  109. package/dist/core/eslint.d.ts.map +0 -1
  110. package/dist/core/eslint.js +0 -58
  111. package/dist/core/index.d.ts +0 -5
  112. package/dist/core/index.d.ts.map +0 -1
  113. package/dist/core/index.js +0 -5
  114. package/dist/core/resolver.d.ts.map +0 -1
  115. package/dist/core/resolver.js +0 -27
  116. package/dist/core/typescript.d.ts.map +0 -1
  117. package/dist/core/typescript.js +0 -63
  118. package/dist/diagnostics.d.ts.map +0 -1
  119. package/dist/diagnostics.js +0 -74
  120. package/dist/docs/comments.d.ts.map +0 -1
  121. package/dist/docs/comments.js +0 -30
  122. package/dist/docs/index.d.ts +0 -3
  123. package/dist/docs/index.d.ts.map +0 -1
  124. package/dist/docs/index.js +0 -3
  125. package/dist/docs/jsdoc.d.ts.map +0 -1
  126. package/dist/docs/jsdoc.js +0 -126
  127. package/dist/domain/rxjs-x.d.ts.map +0 -1
  128. package/dist/domain/rxjs-x.js +0 -27
  129. package/dist/module-taxonomy.d.ts.map +0 -1
  130. package/dist/module-taxonomy.js +0 -22
  131. package/dist/plugin-loaders.d.ts.map +0 -1
  132. package/dist/plugin-loaders.js +0 -115
  133. package/dist/style/index.d.ts +0 -5
  134. package/dist/style/index.d.ts.map +0 -1
  135. package/dist/style/index.js +0 -5
  136. package/dist/style/perfectionist.d.ts.map +0 -1
  137. package/dist/style/perfectionist.js +0 -31
  138. package/dist/style/prettier.d.ts.map +0 -1
  139. package/dist/style/prettier.js +0 -15
  140. package/dist/style/stylistic.d.ts.map +0 -1
  141. package/dist/style/stylistic.js +0 -17
  142. package/dist/style/unicorn.d.ts.map +0 -1
  143. package/dist/style/unicorn.js +0 -15
  144. package/dist/testing/index.d.ts +0 -5
  145. package/dist/testing/index.d.ts.map +0 -1
  146. package/dist/testing/index.js +0 -5
  147. package/dist/testing/jasmine.d.ts.map +0 -1
  148. package/dist/testing/jasmine.js +0 -25
  149. package/dist/testing/jest.d.ts.map +0 -1
  150. package/dist/testing/jest.js +0 -27
  151. package/dist/testing/playwright.d.ts.map +0 -1
  152. package/dist/testing/playwright.js +0 -29
  153. package/dist/testing/vitest.d.ts.map +0 -1
  154. package/dist/testing/vitest.js +0 -33
  155. package/dist/types.d.ts.map +0 -1
  156. package/dist/types.js +0 -2
  157. package/dist/utilities.d.ts.map +0 -1
  158. package/dist/utilities.js +0 -125
  159. /package/dist/{architecture → infrastructure/architecture}/import-x.d.ts +0 -0
  160. /package/dist/{core → infrastructure/core}/codeperfect.d.ts +0 -0
  161. /package/dist/{core → infrastructure/core}/eslint.d.ts +0 -0
  162. /package/dist/{core → infrastructure/core}/resolver.d.ts +0 -0
  163. /package/dist/{core → infrastructure/core}/typescript.d.ts +0 -0
  164. /package/dist/{docs → infrastructure/docs}/comments.d.ts +0 -0
  165. /package/dist/{docs → infrastructure/docs}/jsdoc.d.ts +0 -0
  166. /package/dist/{domain → infrastructure}/rxjs-x.d.ts +0 -0
  167. /package/dist/{style → infrastructure/style}/perfectionist.d.ts +0 -0
  168. /package/dist/{style → infrastructure/style}/prettier.d.ts +0 -0
  169. /package/dist/{style → infrastructure/style}/stylistic.d.ts +0 -0
  170. /package/dist/{style → infrastructure/style}/unicorn.d.ts +0 -0
  171. /package/dist/{testing → infrastructure/testing}/jasmine.d.ts +0 -0
  172. /package/dist/{testing → infrastructure/testing}/jest.d.ts +0 -0
  173. /package/dist/{testing → infrastructure/testing}/playwright.d.ts +0 -0
  174. /package/dist/{testing → infrastructure/testing}/vitest.d.ts +0 -0
@@ -0,0 +1,126 @@
1
+ import { defineConfig } from "eslint/config";
2
+ /** Upstream JSDoc flat preset names consumed by this config. */
3
+ const jsdocPresetNames = [
4
+ "flat/recommended-typescript-error",
5
+ "flat/contents-typescript-error",
6
+ "flat/logical-typescript-error",
7
+ "flat/requirements-typescript-error",
8
+ "flat/stylistic-typescript-error",
9
+ ];
10
+ /**
11
+ * Build the custom jsdoc error rules based on available plugin rules.
12
+ * @param availableRules Set of available jsdoc rule names.
13
+ * @returns The rules record for ESLint.
14
+ * @example
15
+ * ```typescript
16
+ * console.log(buildCustomErrorRules(new Set(["require-throws"])));
17
+ * ```
18
+ */
19
+ const buildCustomErrorRules = (availableRules) => {
20
+ const ruleNames = [
21
+ "check-indentation",
22
+ "convert-to-jsdoc-comments",
23
+ "require-description",
24
+ "require-description-complete-sentence",
25
+ "require-template",
26
+ "require-throws",
27
+ "sort-tags",
28
+ ];
29
+ return Object.fromEntries(ruleNames
30
+ .filter((rule) => availableRules.has(rule))
31
+ .map((rule) => [`jsdoc/${rule}`, "error"]));
32
+ };
33
+ /** AST contexts that must include JSDoc. */
34
+ const requireJsdocContexts = [
35
+ "Program > FunctionDeclaration",
36
+ "Program > ExportDefaultDeclaration > FunctionDeclaration",
37
+ "Program > ExportNamedDeclaration > FunctionDeclaration",
38
+ "Program > VariableDeclaration",
39
+ "Program > ExportNamedDeclaration > VariableDeclaration",
40
+ "TSInterfaceDeclaration",
41
+ "TSTypeAliasDeclaration",
42
+ "TSPropertySignature",
43
+ "TSMethodSignature",
44
+ "TSCallSignatureDeclaration",
45
+ "TSConstructSignatureDeclaration",
46
+ "TSIndexSignature",
47
+ ];
48
+ /**
49
+ * Select only the upstream flat presets that are available in the current plugin version.
50
+ * @param configs Upstream JSDoc config map.
51
+ * @returns The available flat presets.
52
+ * @example
53
+ * ```typescript
54
+ * console.log(buildPresetConfigs({ "flat/recommended-typescript-error": {} as Linter.Config }).length);
55
+ * ```
56
+ */
57
+ function buildPresetConfigs(configs) {
58
+ return jsdocPresetNames.flatMap((configName) => {
59
+ const config = configs[configName];
60
+ if (config === void 0 ||
61
+ Array.isArray(config) ||
62
+ typeof config !== "object") {
63
+ return [];
64
+ }
65
+ return [config];
66
+ });
67
+ }
68
+ /**
69
+ * Build the final repo-owned JSDoc configs on top of the upstream presets.
70
+ * @param customError Repo-owned JSDoc rule overrides.
71
+ * @returns The final ESLint config array.
72
+ * @example
73
+ * ```typescript
74
+ * console.log(buildRepoJsdocConfigs({}).length);
75
+ * ```
76
+ */
77
+ function buildRepoJsdocConfigs(customError) {
78
+ return defineConfig({
79
+ name: "jsdoc/custom",
80
+ rules: {
81
+ ...customError,
82
+ "jsdoc/convert-to-jsdoc-comments": [
83
+ "error",
84
+ { enforceJsdocLineStyle: "single" },
85
+ ],
86
+ "jsdoc/text-escaping": "off",
87
+ },
88
+ }, {
89
+ name: "jsdoc/require-jsdoc-alias",
90
+ rules: {
91
+ "jsdoc/require-description": [
92
+ "error",
93
+ { contexts: requireJsdocContexts },
94
+ ],
95
+ "jsdoc/require-jsdoc": ["error", { contexts: requireJsdocContexts }],
96
+ },
97
+ }, {
98
+ files: ["**/*.spec.ts"],
99
+ name: "jsdoc/custom-spec",
100
+ rules: {
101
+ "jsdoc/convert-to-jsdoc-comments": [
102
+ "error",
103
+ { allowedPrefixes: ["Arrange", "Act"] },
104
+ ],
105
+ },
106
+ });
107
+ }
108
+ /**
109
+ * Build the jsdoc plugin configuration and any overrides needed by this project.
110
+ * @returns Return value output.
111
+ * @example
112
+ * ```typescript
113
+ * console.log(await jsdoc());
114
+ * ```
115
+ */
116
+ async function jsdoc() {
117
+ const jsdocModule = await import("eslint-plugin-jsdoc");
118
+ const { default: jsdocPlugin } = jsdocModule;
119
+ const { configs, rules } = jsdocPlugin;
120
+ const availableRules = new Set(Object.keys(rules ?? {}));
121
+ const customError = buildCustomErrorRules(availableRules);
122
+ const presetConfigs = buildPresetConfigs(configs);
123
+ return defineConfig(...presetConfigs, ...buildRepoJsdocConfigs(customError));
124
+ }
125
+ export { jsdoc };
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNkb2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvZG9jcy9qc2RvYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDLGdFQUFnRTtBQUNoRSxNQUFNLGdCQUFnQixHQUFHO0lBQ3ZCLG1DQUFtQztJQUNuQyxnQ0FBZ0M7SUFDaEMsK0JBQStCO0lBQy9CLG9DQUFvQztJQUNwQyxpQ0FBaUM7Q0FDekIsQ0FBQztBQUVYOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixjQUEyQixFQUNQLEVBQUU7SUFDdEIsTUFBTSxTQUFTLEdBQUc7UUFDaEIsbUJBQW1CO1FBQ25CLDJCQUEyQjtRQUMzQixxQkFBcUI7UUFDckIsdUNBQXVDO1FBQ3ZDLGtCQUFrQjtRQUNsQixnQkFBZ0I7UUFDaEIsV0FBVztLQUNaLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQ3ZCLFNBQVM7U0FDTixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFVLENBQUMsQ0FDdEQsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLDRDQUE0QztBQUM1QyxNQUFNLG9CQUFvQixHQUFHO0lBQzNCLCtCQUErQjtJQUMvQiwwREFBMEQ7SUFDMUQsd0RBQXdEO0lBQ3hELCtCQUErQjtJQUMvQix3REFBd0Q7SUFDeEQsd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4QixxQkFBcUI7SUFDckIsbUJBQW1CO0lBQ25CLDRCQUE0QjtJQUM1QixpQ0FBaUM7SUFDakMsa0JBQWtCO0NBQ25CLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsa0JBQWtCLENBQUMsT0FBZ0M7SUFDMUQsT0FBTyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtRQUM3QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkMsSUFDRSxNQUFNLEtBQUssS0FBSyxDQUFDO1lBQ2pCLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ3JCLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFDMUIsQ0FBQztZQUNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE9BQU8sQ0FBQyxNQUF1QixDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLHFCQUFxQixDQUM1QixXQUErQjtJQUUvQixPQUFPLFlBQVksQ0FDakI7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixLQUFLLEVBQUU7WUFDTCxHQUFHLFdBQVc7WUFDZCxpQ0FBaUMsRUFBRTtnQkFDakMsT0FBTztnQkFDUCxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRTthQUNwQztZQUNELHFCQUFxQixFQUFFLEtBQUs7U0FDN0I7S0FDRixFQUNEO1FBQ0UsSUFBSSxFQUFFLDJCQUEyQjtRQUNqQyxLQUFLLEVBQUU7WUFDTCwyQkFBMkIsRUFBRTtnQkFDM0IsT0FBTztnQkFDUCxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRTthQUNuQztZQUNELHFCQUFxQixFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLENBQUM7U0FDckU7S0FDRixFQUNEO1FBQ0UsS0FBSyxFQUFFLENBQUMsY0FBYyxDQUFDO1FBQ3ZCLElBQUksRUFBRSxtQkFBbUI7UUFDekIsS0FBSyxFQUFFO1lBQ0wsaUNBQWlDLEVBQUU7Z0JBQ2pDLE9BQU87Z0JBQ1AsRUFBRSxlQUFlLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUU7YUFDeEM7U0FDRjtLQUNGLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsS0FBSyxVQUFVLEtBQUs7SUFDbEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN4RCxNQUFNLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLFdBQVcsQ0FBQztJQUM3QyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLFdBQVcsQ0FBQztJQUV2QyxNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sV0FBVyxHQUFHLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRWxELE9BQU8sWUFBWSxDQUFDLEdBQUcsYUFBYSxFQUFFLEdBQUcscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDO0FBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaW50ZXIgfSBmcm9tIFwiZXNsaW50XCI7XHJcblxyXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwiZXNsaW50L2NvbmZpZ1wiO1xyXG5cclxuLyoqIFVwc3RyZWFtIEpTRG9jIGZsYXQgcHJlc2V0IG5hbWVzIGNvbnN1bWVkIGJ5IHRoaXMgY29uZmlnLiAqL1xyXG5jb25zdCBqc2RvY1ByZXNldE5hbWVzID0gW1xyXG4gIFwiZmxhdC9yZWNvbW1lbmRlZC10eXBlc2NyaXB0LWVycm9yXCIsXHJcbiAgXCJmbGF0L2NvbnRlbnRzLXR5cGVzY3JpcHQtZXJyb3JcIixcclxuICBcImZsYXQvbG9naWNhbC10eXBlc2NyaXB0LWVycm9yXCIsXHJcbiAgXCJmbGF0L3JlcXVpcmVtZW50cy10eXBlc2NyaXB0LWVycm9yXCIsXHJcbiAgXCJmbGF0L3N0eWxpc3RpYy10eXBlc2NyaXB0LWVycm9yXCIsXHJcbl0gYXMgY29uc3Q7XHJcblxyXG4vKipcclxuICogQnVpbGQgdGhlIGN1c3RvbSBqc2RvYyBlcnJvciBydWxlcyBiYXNlZCBvbiBhdmFpbGFibGUgcGx1Z2luIHJ1bGVzLlxyXG4gKiBAcGFyYW0gYXZhaWxhYmxlUnVsZXMgU2V0IG9mIGF2YWlsYWJsZSBqc2RvYyBydWxlIG5hbWVzLlxyXG4gKiBAcmV0dXJucyBUaGUgcnVsZXMgcmVjb3JkIGZvciBFU0xpbnQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogIGNvbnNvbGUubG9nKGJ1aWxkQ3VzdG9tRXJyb3JSdWxlcyhuZXcgU2V0KFtcInJlcXVpcmUtdGhyb3dzXCJdKSkpO1xyXG4gKiBgYGBcclxuICovXHJcbmNvbnN0IGJ1aWxkQ3VzdG9tRXJyb3JSdWxlcyA9IChcclxuICBhdmFpbGFibGVSdWxlczogU2V0PHN0cmluZz4sXHJcbik6IExpbnRlci5SdWxlc1JlY29yZCA9PiB7XHJcbiAgY29uc3QgcnVsZU5hbWVzID0gW1xyXG4gICAgXCJjaGVjay1pbmRlbnRhdGlvblwiLFxyXG4gICAgXCJjb252ZXJ0LXRvLWpzZG9jLWNvbW1lbnRzXCIsXHJcbiAgICBcInJlcXVpcmUtZGVzY3JpcHRpb25cIixcclxuICAgIFwicmVxdWlyZS1kZXNjcmlwdGlvbi1jb21wbGV0ZS1zZW50ZW5jZVwiLFxyXG4gICAgXCJyZXF1aXJlLXRlbXBsYXRlXCIsXHJcbiAgICBcInJlcXVpcmUtdGhyb3dzXCIsXHJcbiAgICBcInNvcnQtdGFnc1wiLFxyXG4gIF07XHJcblxyXG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXHJcbiAgICBydWxlTmFtZXNcclxuICAgICAgLmZpbHRlcigocnVsZSkgPT4gYXZhaWxhYmxlUnVsZXMuaGFzKHJ1bGUpKVxyXG4gICAgICAubWFwKChydWxlKSA9PiBbYGpzZG9jLyR7cnVsZX1gLCBcImVycm9yXCJdIGFzIGNvbnN0KSxcclxuICApO1xyXG59O1xyXG5cclxuLyoqIEFTVCBjb250ZXh0cyB0aGF0IG11c3QgaW5jbHVkZSBKU0RvYy4gKi9cclxuY29uc3QgcmVxdWlyZUpzZG9jQ29udGV4dHMgPSBbXHJcbiAgXCJQcm9ncmFtID4gRnVuY3Rpb25EZWNsYXJhdGlvblwiLFxyXG4gIFwiUHJvZ3JhbSA+IEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbiA+IEZ1bmN0aW9uRGVjbGFyYXRpb25cIixcclxuICBcIlByb2dyYW0gPiBFeHBvcnROYW1lZERlY2xhcmF0aW9uID4gRnVuY3Rpb25EZWNsYXJhdGlvblwiLFxyXG4gIFwiUHJvZ3JhbSA+IFZhcmlhYmxlRGVjbGFyYXRpb25cIixcclxuICBcIlByb2dyYW0gPiBFeHBvcnROYW1lZERlY2xhcmF0aW9uID4gVmFyaWFibGVEZWNsYXJhdGlvblwiLFxyXG4gIFwiVFNJbnRlcmZhY2VEZWNsYXJhdGlvblwiLFxyXG4gIFwiVFNUeXBlQWxpYXNEZWNsYXJhdGlvblwiLFxyXG4gIFwiVFNQcm9wZXJ0eVNpZ25hdHVyZVwiLFxyXG4gIFwiVFNNZXRob2RTaWduYXR1cmVcIixcclxuICBcIlRTQ2FsbFNpZ25hdHVyZURlY2xhcmF0aW9uXCIsXHJcbiAgXCJUU0NvbnN0cnVjdFNpZ25hdHVyZURlY2xhcmF0aW9uXCIsXHJcbiAgXCJUU0luZGV4U2lnbmF0dXJlXCIsXHJcbl07XHJcblxyXG4vKipcclxuICogU2VsZWN0IG9ubHkgdGhlIHVwc3RyZWFtIGZsYXQgcHJlc2V0cyB0aGF0IGFyZSBhdmFpbGFibGUgaW4gdGhlIGN1cnJlbnQgcGx1Z2luIHZlcnNpb24uXHJcbiAqIEBwYXJhbSBjb25maWdzIFVwc3RyZWFtIEpTRG9jIGNvbmZpZyBtYXAuXHJcbiAqIEByZXR1cm5zIFRoZSBhdmFpbGFibGUgZmxhdCBwcmVzZXRzLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqICBjb25zb2xlLmxvZyhidWlsZFByZXNldENvbmZpZ3MoeyBcImZsYXQvcmVjb21tZW5kZWQtdHlwZXNjcmlwdC1lcnJvclwiOiB7fSBhcyBMaW50ZXIuQ29uZmlnIH0pLmxlbmd0aCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRQcmVzZXRDb25maWdzKGNvbmZpZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogTGludGVyLkNvbmZpZ1tdIHtcclxuICByZXR1cm4ganNkb2NQcmVzZXROYW1lcy5mbGF0TWFwKChjb25maWdOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBjb25maWcgPSBjb25maWdzW2NvbmZpZ05hbWVdO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgY29uZmlnID09PSB2b2lkIDAgfHxcclxuICAgICAgQXJyYXkuaXNBcnJheShjb25maWcpIHx8XHJcbiAgICAgIHR5cGVvZiBjb25maWcgIT09IFwib2JqZWN0XCJcclxuICAgICkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFtjb25maWcgYXMgTGludGVyLkNvbmZpZ107XHJcbiAgfSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBCdWlsZCB0aGUgZmluYWwgcmVwby1vd25lZCBKU0RvYyBjb25maWdzIG9uIHRvcCBvZiB0aGUgdXBzdHJlYW0gcHJlc2V0cy5cclxuICogQHBhcmFtIGN1c3RvbUVycm9yIFJlcG8tb3duZWQgSlNEb2MgcnVsZSBvdmVycmlkZXMuXHJcbiAqIEByZXR1cm5zIFRoZSBmaW5hbCBFU0xpbnQgY29uZmlnIGFycmF5LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqICBjb25zb2xlLmxvZyhidWlsZFJlcG9Kc2RvY0NvbmZpZ3Moe30pLmxlbmd0aCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRSZXBvSnNkb2NDb25maWdzKFxyXG4gIGN1c3RvbUVycm9yOiBMaW50ZXIuUnVsZXNSZWNvcmQsXHJcbik6IExpbnRlci5Db25maWdbXSB7XHJcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhcclxuICAgIHtcclxuICAgICAgbmFtZTogXCJqc2RvYy9jdXN0b21cIixcclxuICAgICAgcnVsZXM6IHtcclxuICAgICAgICAuLi5jdXN0b21FcnJvcixcclxuICAgICAgICBcImpzZG9jL2NvbnZlcnQtdG8tanNkb2MtY29tbWVudHNcIjogW1xyXG4gICAgICAgICAgXCJlcnJvclwiLFxyXG4gICAgICAgICAgeyBlbmZvcmNlSnNkb2NMaW5lU3R5bGU6IFwic2luZ2xlXCIgfSxcclxuICAgICAgICBdLFxyXG4gICAgICAgIFwianNkb2MvdGV4dC1lc2NhcGluZ1wiOiBcIm9mZlwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogXCJqc2RvYy9yZXF1aXJlLWpzZG9jLWFsaWFzXCIsXHJcbiAgICAgIHJ1bGVzOiB7XHJcbiAgICAgICAgXCJqc2RvYy9yZXF1aXJlLWRlc2NyaXB0aW9uXCI6IFtcclxuICAgICAgICAgIFwiZXJyb3JcIixcclxuICAgICAgICAgIHsgY29udGV4dHM6IHJlcXVpcmVKc2RvY0NvbnRleHRzIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgICBcImpzZG9jL3JlcXVpcmUtanNkb2NcIjogW1wiZXJyb3JcIiwgeyBjb250ZXh0czogcmVxdWlyZUpzZG9jQ29udGV4dHMgfV0sXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBmaWxlczogW1wiKiovKi5zcGVjLnRzXCJdLFxyXG4gICAgICBuYW1lOiBcImpzZG9jL2N1c3RvbS1zcGVjXCIsXHJcbiAgICAgIHJ1bGVzOiB7XHJcbiAgICAgICAgXCJqc2RvYy9jb252ZXJ0LXRvLWpzZG9jLWNvbW1lbnRzXCI6IFtcclxuICAgICAgICAgIFwiZXJyb3JcIixcclxuICAgICAgICAgIHsgYWxsb3dlZFByZWZpeGVzOiBbXCJBcnJhbmdlXCIsIFwiQWN0XCJdIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEJ1aWxkIHRoZSBqc2RvYyBwbHVnaW4gY29uZmlndXJhdGlvbiBhbmQgYW55IG92ZXJyaWRlcyBuZWVkZWQgYnkgdGhpcyBwcm9qZWN0LlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqICBjb25zb2xlLmxvZyhhd2FpdCBqc2RvYygpKTtcclxuICogYGBgXHJcbiAqL1xyXG5hc3luYyBmdW5jdGlvbiBqc2RvYygpOiBQcm9taXNlPExpbnRlci5Db25maWdbXT4ge1xyXG4gIGNvbnN0IGpzZG9jTW9kdWxlID0gYXdhaXQgaW1wb3J0KFwiZXNsaW50LXBsdWdpbi1qc2RvY1wiKTtcclxuICBjb25zdCB7IGRlZmF1bHQ6IGpzZG9jUGx1Z2luIH0gPSBqc2RvY01vZHVsZTtcclxuICBjb25zdCB7IGNvbmZpZ3MsIHJ1bGVzIH0gPSBqc2RvY1BsdWdpbjtcclxuXHJcbiAgY29uc3QgYXZhaWxhYmxlUnVsZXMgPSBuZXcgU2V0KE9iamVjdC5rZXlzKHJ1bGVzID8/IHt9KSk7XHJcbiAgY29uc3QgY3VzdG9tRXJyb3IgPSBidWlsZEN1c3RvbUVycm9yUnVsZXMoYXZhaWxhYmxlUnVsZXMpO1xyXG4gIGNvbnN0IHByZXNldENvbmZpZ3MgPSBidWlsZFByZXNldENvbmZpZ3MoY29uZmlncyk7XHJcblxyXG4gIHJldHVybiBkZWZpbmVDb25maWcoLi4ucHJlc2V0Q29uZmlncywgLi4uYnVpbGRSZXBvSnNkb2NDb25maWdzKGN1c3RvbUVycm9yKSk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGpzZG9jIH07XHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export type { BoundariesConfig, BoundariesConfigExtension, BoundariesElementTypesOptions, BoundariesElementTypesRuleEntry, ConfigOptions, PluginName, PluginStateOverrides, } from "../domain/index.js";
2
+ export { boundaries, defaultBoundariesConfig, importX } from "./architecture/index.js";
3
+ export { config } from "./config-factory.js";
4
+ export { codeperfect, comments, eslint, jasmine, jest, jsdoc, perfectionist, playwright, prettier, resolver, rxjsX, stylistic, typescript, unicorn, vitest, } from "./configs/index.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/infrastructure/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gBAAgB,EAChB,yBAAyB,EACzB,6BAA6B,EAC7B,+BAA+B,EAC/B,aAAa,EACb,UAAU,EACV,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,OAAO,EACP,IAAI,EACJ,KAAK,EACL,aAAa,EACb,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,SAAS,EACT,UAAU,EACV,OAAO,EACP,MAAM,GACP,MAAM,WAAW,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { boundaries, defaultBoundariesConfig, importX } from "./architecture/index.js";
2
+ export { config } from "./config-factory.js";
3
+ export { codeperfect, comments, eslint, jasmine, jest, jsdoc, perfectionist, playwright, prettier, resolver, rxjsX, stylistic, typescript, unicorn, vitest, } from "./configs/index.js";
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFFLFVBQVUsRUFBRSx1QkFBdUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUMsT0FBTyxFQUNMLFdBQVcsRUFDWCxRQUFRLEVBQ1IsTUFBTSxFQUNOLE9BQU8sRUFDUCxJQUFJLEVBQ0osS0FBSyxFQUNMLGFBQWEsRUFDYixVQUFVLEVBQ1YsUUFBUSxFQUNSLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixPQUFPLEVBQ1AsTUFBTSxHQUNQLE1BQU0sV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUge1xyXG4gIEJvdW5kYXJpZXNDb25maWcsXHJcbiAgQm91bmRhcmllc0NvbmZpZ0V4dGVuc2lvbixcclxuICBCb3VuZGFyaWVzRWxlbWVudFR5cGVzT3B0aW9ucyxcclxuICBCb3VuZGFyaWVzRWxlbWVudFR5cGVzUnVsZUVudHJ5LFxyXG4gIENvbmZpZ09wdGlvbnMsXHJcbiAgUGx1Z2luTmFtZSxcclxuICBQbHVnaW5TdGF0ZU92ZXJyaWRlcyxcclxufSBmcm9tIFwiLi4vZG9tYWluXCI7XHJcbmV4cG9ydCB7IGJvdW5kYXJpZXMsIGRlZmF1bHRCb3VuZGFyaWVzQ29uZmlnLCBpbXBvcnRYIH0gZnJvbSBcIi4vYXJjaGl0ZWN0dXJlXCI7XHJcbmV4cG9ydCB7IGNvbmZpZyB9IGZyb20gXCIuL2NvbmZpZy1mYWN0b3J5XCI7XHJcbmV4cG9ydCB7XHJcbiAgY29kZXBlcmZlY3QsXHJcbiAgY29tbWVudHMsXHJcbiAgZXNsaW50LFxyXG4gIGphc21pbmUsXHJcbiAgamVzdCxcclxuICBqc2RvYyxcclxuICBwZXJmZWN0aW9uaXN0LFxyXG4gIHBsYXl3cmlnaHQsXHJcbiAgcHJldHRpZXIsXHJcbiAgcmVzb2x2ZXIsXHJcbiAgcnhqc1gsXHJcbiAgc3R5bGlzdGljLFxyXG4gIHR5cGVzY3JpcHQsXHJcbiAgdW5pY29ybixcclxuICB2aXRlc3QsXHJcbn0gZnJvbSBcIi4vY29uZmlnc1wiO1xyXG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import type { Linter } from "eslint";
2
- import type { ConfigOptions, PluginName } from "./types";
3
- import type { LoadMode } from "./utilities";
2
+ import type { ConfigOptions, PluginName } from "../domain/index.js";
3
+ import type { LoadMode } from "./utilities.js";
4
4
  /** Loader function for a single config module. */
5
5
  type ConfigLoader = () => Linter.Config[] | Promise<Linter.Config[]>;
6
6
  /** Entry describing a single config loader in the final composition order. */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-loaders.d.ts","sourceRoot":"","sources":["../../src/infrastructure/plugin-loaders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAsB5C,kDAAkD;AAClD,KAAK,YAAY,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAErE,8EAA8E;AAC9E,UAAU,iBAAiB;IACzB,qCAAqC;IACrC,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,YAAY,CAAC;IAEjD,2CAA2C;IAC3C,IAAI,EAAE,QAAQ,CAAC;IAEf,iEAAiE;IACjE,UAAU,EAAE,UAAU,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,iBAAS,6BAA6B,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CAE3E;AAiBD,qEAAqE;AACrE,QAAA,MAAM,aAAa;;;;;;;0BAtCC,aAAa,KAAK,YAAY;;;;;0BAA9B,aAAa,KAAK,YAAY;;;;;0BAA9B,aAAa,KAAK,YAAY;;;;;0BAA9B,aAAa,KAAK,YAAY;;;;;0BAA9B,aAAa,KAAK,YAAY;;;;;0BAA9B,aAAa,KAAK,YAAY;;;;;0BAA9B,aAAa,KAAK,YAAY;;;;;0BAA9B,aAAa,KAAK,YAAY;;;;;0BAA9B,aAAa,KAAK,YAAY;;;;;0BAA9B,aAAa,KAAK,YAAY;;;;;0BAA9B,aAAa,KAAK,YAAY;;;;;0BAA9B,aAAa,KAAK,YAAY;;;;;0BAA9B,aAAa,KAAK,YAAY;;;;;0BAA9B,aAAa,KAAK,YAAY;;;;;0BAA9B,aAAa,KAAK,YAAY;;;;;0BAA9B,aAAa,KAAK,YAAY;;;;CA4HD,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,115 @@
1
+ import { boundaries, codeperfect, comments, eslint, importX, jasmine, jest, jsdoc, perfectionist, playwright, prettier, resolver, rxjsX, stylistic, typescript, unicorn, vitest, } from "./configs/index.js";
2
+ /**
3
+ * Creates the boundaries loader factory for repository-owned architecture input.
4
+ * @param options Input options value.
5
+ * @returns Return value output.
6
+ * @example
7
+ * ```typescript
8
+ * const factory = createBoundariesLoaderFactory({});
9
+ * ```
10
+ */
11
+ function createBoundariesLoaderFactory(options) {
12
+ return () => boundaries(options.boundaries);
13
+ }
14
+ /**
15
+ * Creates a loader factory for modules that do not depend on config options.
16
+ * @param loader Input loader value.
17
+ * @returns Return value output.
18
+ * @example
19
+ * ```typescript
20
+ * const factory = createStaticLoaderFactory(eslint);
21
+ * ```
22
+ */
23
+ function createStaticLoaderFactory(loader) {
24
+ return () => loader;
25
+ }
26
+ /** Documented config loader registry keyed by public module name. */
27
+ const pluginLoaders = {
28
+ boundaries: {
29
+ loader: createBoundariesLoaderFactory,
30
+ mode: "optional",
31
+ pluginName: "boundaries",
32
+ },
33
+ codeperfect: {
34
+ loader: createStaticLoaderFactory(codeperfect),
35
+ mode: "required",
36
+ pluginName: "codeperfect",
37
+ },
38
+ comments: {
39
+ loader: createStaticLoaderFactory(comments),
40
+ mode: "optional",
41
+ pluginName: "comments",
42
+ },
43
+ eslint: {
44
+ loader: createStaticLoaderFactory(eslint),
45
+ mode: "required",
46
+ pluginName: "eslint",
47
+ },
48
+ "import-x": {
49
+ loader: createStaticLoaderFactory(importX),
50
+ mode: "optional",
51
+ pluginName: "import-x",
52
+ },
53
+ jasmine: {
54
+ loader: createStaticLoaderFactory(jasmine),
55
+ mode: "optional",
56
+ pluginName: "jasmine",
57
+ },
58
+ jest: {
59
+ loader: createStaticLoaderFactory(jest),
60
+ mode: "optional",
61
+ pluginName: "jest",
62
+ },
63
+ jsdoc: {
64
+ loader: createStaticLoaderFactory(jsdoc),
65
+ mode: "optional",
66
+ pluginName: "jsdoc",
67
+ },
68
+ perfectionist: {
69
+ loader: createStaticLoaderFactory(perfectionist),
70
+ mode: "optional",
71
+ pluginName: "perfectionist",
72
+ },
73
+ playwright: {
74
+ loader: createStaticLoaderFactory(playwright),
75
+ mode: "optional",
76
+ pluginName: "playwright",
77
+ },
78
+ prettier: {
79
+ loader: createStaticLoaderFactory(prettier),
80
+ mode: "optional",
81
+ pluginName: "prettier",
82
+ },
83
+ resolver: {
84
+ loader: createStaticLoaderFactory(resolver),
85
+ mode: "optional",
86
+ pluginName: "resolver",
87
+ },
88
+ "rxjs-x": {
89
+ loader: createStaticLoaderFactory(rxjsX),
90
+ mode: "optional",
91
+ pluginName: "rxjs-x",
92
+ },
93
+ stylistic: {
94
+ loader: createStaticLoaderFactory(stylistic),
95
+ mode: "optional",
96
+ pluginName: "stylistic",
97
+ },
98
+ typescript: {
99
+ loader: createStaticLoaderFactory(typescript),
100
+ mode: "required",
101
+ pluginName: "typescript",
102
+ },
103
+ unicorn: {
104
+ loader: createStaticLoaderFactory(unicorn),
105
+ mode: "optional",
106
+ pluginName: "unicorn",
107
+ },
108
+ vitest: {
109
+ loader: createStaticLoaderFactory(vitest),
110
+ mode: "optional",
111
+ pluginName: "vitest",
112
+ },
113
+ };
114
+ export { pluginLoaders };
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWxvYWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvcGx1Z2luLWxvYWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUNMLFVBQVUsRUFDVixXQUFXLEVBQ1gsUUFBUSxFQUNSLE1BQU0sRUFDTixPQUFPLEVBQ1AsT0FBTyxFQUNQLElBQUksRUFDSixLQUFLLEVBQ0wsYUFBYSxFQUNiLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE9BQU8sRUFDUCxNQUFNLEdBQ1AsTUFBTSxXQUFXLENBQUM7QUFpQm5COzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyw2QkFBNkIsQ0FBQyxPQUFzQjtJQUMzRCxPQUFPLEdBQW9CLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMseUJBQXlCLENBQ2hDLE1BQW9CO0lBRXBCLE9BQU8sR0FBaUIsRUFBRSxDQUFDLE1BQU0sQ0FBQztBQUNwQyxDQUFDO0FBRUQscUVBQXFFO0FBQ3JFLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSw2QkFBNkI7UUFDckMsSUFBSSxFQUFFLFVBQVU7UUFDaEIsVUFBVSxFQUFFLFlBQVk7S0FDekI7SUFDRCxXQUFXLEVBQUU7UUFDWCxNQUFNLEVBQUUseUJBQXlCLENBQUMsV0FBVyxDQUFDO1FBQzlDLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxhQUFhO0tBQzFCO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFLHlCQUF5QixDQUFDLFFBQVEsQ0FBQztRQUMzQyxJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsVUFBVTtLQUN2QjtJQUNELE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxNQUFNLENBQUM7UUFDekMsSUFBSSxFQUFFLFVBQVU7UUFDaEIsVUFBVSxFQUFFLFFBQVE7S0FDckI7SUFDRCxVQUFVLEVBQUU7UUFDVixNQUFNLEVBQUUseUJBQXlCLENBQUMsT0FBTyxDQUFDO1FBQzFDLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxVQUFVO0tBQ3ZCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLHlCQUF5QixDQUFDLE9BQU8sQ0FBQztRQUMxQyxJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsU0FBUztLQUN0QjtJQUNELElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxJQUFJLENBQUM7UUFDdkMsSUFBSSxFQUFFLFVBQVU7UUFDaEIsVUFBVSxFQUFFLE1BQU07S0FDbkI7SUFDRCxLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUseUJBQXlCLENBQUMsS0FBSyxDQUFDO1FBQ3hDLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxPQUFPO0tBQ3BCO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsTUFBTSxFQUFFLHlCQUF5QixDQUFDLGFBQWEsQ0FBQztRQUNoRCxJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsZUFBZTtLQUM1QjtJQUNELFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxVQUFVLENBQUM7UUFDN0MsSUFBSSxFQUFFLFVBQVU7UUFDaEIsVUFBVSxFQUFFLFlBQVk7S0FDekI7SUFDRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUseUJBQXlCLENBQUMsUUFBUSxDQUFDO1FBQzNDLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxVQUFVO0tBQ3ZCO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFLHlCQUF5QixDQUFDLFFBQVEsQ0FBQztRQUMzQyxJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsVUFBVTtLQUN2QjtJQUNELFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxLQUFLLENBQUM7UUFDeEMsSUFBSSxFQUFFLFVBQVU7UUFDaEIsVUFBVSxFQUFFLFFBQVE7S0FDckI7SUFDRCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUUseUJBQXlCLENBQUMsU0FBUyxDQUFDO1FBQzVDLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxXQUFXO0tBQ3hCO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsTUFBTSxFQUFFLHlCQUF5QixDQUFDLFVBQVUsQ0FBQztRQUM3QyxJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsWUFBWTtLQUN6QjtJQUNELE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxPQUFPLENBQUM7UUFDMUMsSUFBSSxFQUFFLFVBQVU7UUFDaEIsVUFBVSxFQUFFLFNBQVM7S0FDdEI7SUFDRCxNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUUseUJBQXlCLENBQUMsTUFBTSxDQUFDO1FBQ3pDLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCO0NBQzhDLENBQUM7QUFFbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaW50ZXIgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB0eXBlIHsgQ29uZmlnT3B0aW9ucywgUGx1Z2luTmFtZSB9IGZyb20gXCIuLi9kb21haW5cIjtcbmltcG9ydCB0eXBlIHsgTG9hZE1vZGUgfSBmcm9tIFwiLi91dGlsaXRpZXNcIjtcblxuaW1wb3J0IHtcbiAgYm91bmRhcmllcyxcbiAgY29kZXBlcmZlY3QsXG4gIGNvbW1lbnRzLFxuICBlc2xpbnQsXG4gIGltcG9ydFgsXG4gIGphc21pbmUsXG4gIGplc3QsXG4gIGpzZG9jLFxuICBwZXJmZWN0aW9uaXN0LFxuICBwbGF5d3JpZ2h0LFxuICBwcmV0dGllcixcbiAgcmVzb2x2ZXIsXG4gIHJ4anNYLFxuICBzdHlsaXN0aWMsXG4gIHR5cGVzY3JpcHQsXG4gIHVuaWNvcm4sXG4gIHZpdGVzdCxcbn0gZnJvbSBcIi4vY29uZmlnc1wiO1xuXG4vKiogTG9hZGVyIGZ1bmN0aW9uIGZvciBhIHNpbmdsZSBjb25maWcgbW9kdWxlLiAqL1xudHlwZSBDb25maWdMb2FkZXIgPSAoKSA9PiBMaW50ZXIuQ29uZmlnW10gfCBQcm9taXNlPExpbnRlci5Db25maWdbXT47XG5cbi8qKiBFbnRyeSBkZXNjcmliaW5nIGEgc2luZ2xlIGNvbmZpZyBsb2FkZXIgaW4gdGhlIGZpbmFsIGNvbXBvc2l0aW9uIG9yZGVyLiAqL1xuaW50ZXJmYWNlIFBsdWdpbkxvYWRlckVudHJ5IHtcbiAgLyoqIExvYWRlciBmYWN0b3J5IGZvciB0aGUgbW9kdWxlLiAqL1xuICBsb2FkZXI6IChvcHRpb25zOiBDb25maWdPcHRpb25zKSA9PiBDb25maWdMb2FkZXI7XG5cbiAgLyoqIFJ1bnRpbWUgbG9hZGluZyBtb2RlIGZvciB0aGUgbW9kdWxlLiAqL1xuICBtb2RlOiBMb2FkTW9kZTtcblxuICAvKiogUHVibGljIG1vZHVsZSBuYW1lIHVzZWQgaW4gY29uZmlnIG9wdGlvbnMgYW5kIGRpYWdub3N0aWNzLiAqL1xuICBwbHVnaW5OYW1lOiBQbHVnaW5OYW1lO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIGJvdW5kYXJpZXMgbG9hZGVyIGZhY3RvcnkgZm9yIHJlcG9zaXRvcnktb3duZWQgYXJjaGl0ZWN0dXJlIGlucHV0LlxuICogQHBhcmFtIG9wdGlvbnMgSW5wdXQgb3B0aW9ucyB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZmFjdG9yeSA9IGNyZWF0ZUJvdW5kYXJpZXNMb2FkZXJGYWN0b3J5KHt9KTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBjcmVhdGVCb3VuZGFyaWVzTG9hZGVyRmFjdG9yeShvcHRpb25zOiBDb25maWdPcHRpb25zKTogQ29uZmlnTG9hZGVyIHtcbiAgcmV0dXJuICgpOiBMaW50ZXIuQ29uZmlnW10gPT4gYm91bmRhcmllcyhvcHRpb25zLmJvdW5kYXJpZXMpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBsb2FkZXIgZmFjdG9yeSBmb3IgbW9kdWxlcyB0aGF0IGRvIG5vdCBkZXBlbmQgb24gY29uZmlnIG9wdGlvbnMuXG4gKiBAcGFyYW0gbG9hZGVyIElucHV0IGxvYWRlciB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZmFjdG9yeSA9IGNyZWF0ZVN0YXRpY0xvYWRlckZhY3RvcnkoZXNsaW50KTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KFxuICBsb2FkZXI6IENvbmZpZ0xvYWRlcixcbik6IFBsdWdpbkxvYWRlckVudHJ5W1wibG9hZGVyXCJdIHtcbiAgcmV0dXJuICgpOiBDb25maWdMb2FkZXIgPT4gbG9hZGVyO1xufVxuXG4vKiogRG9jdW1lbnRlZCBjb25maWcgbG9hZGVyIHJlZ2lzdHJ5IGtleWVkIGJ5IHB1YmxpYyBtb2R1bGUgbmFtZS4gKi9cbmNvbnN0IHBsdWdpbkxvYWRlcnMgPSB7XG4gIGJvdW5kYXJpZXM6IHtcbiAgICBsb2FkZXI6IGNyZWF0ZUJvdW5kYXJpZXNMb2FkZXJGYWN0b3J5LFxuICAgIG1vZGU6IFwib3B0aW9uYWxcIixcbiAgICBwbHVnaW5OYW1lOiBcImJvdW5kYXJpZXNcIixcbiAgfSxcbiAgY29kZXBlcmZlY3Q6IHtcbiAgICBsb2FkZXI6IGNyZWF0ZVN0YXRpY0xvYWRlckZhY3RvcnkoY29kZXBlcmZlY3QpLFxuICAgIG1vZGU6IFwicmVxdWlyZWRcIixcbiAgICBwbHVnaW5OYW1lOiBcImNvZGVwZXJmZWN0XCIsXG4gIH0sXG4gIGNvbW1lbnRzOiB7XG4gICAgbG9hZGVyOiBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KGNvbW1lbnRzKSxcbiAgICBtb2RlOiBcIm9wdGlvbmFsXCIsXG4gICAgcGx1Z2luTmFtZTogXCJjb21tZW50c1wiLFxuICB9LFxuICBlc2xpbnQ6IHtcbiAgICBsb2FkZXI6IGNyZWF0ZVN0YXRpY0xvYWRlckZhY3RvcnkoZXNsaW50KSxcbiAgICBtb2RlOiBcInJlcXVpcmVkXCIsXG4gICAgcGx1Z2luTmFtZTogXCJlc2xpbnRcIixcbiAgfSxcbiAgXCJpbXBvcnQteFwiOiB7XG4gICAgbG9hZGVyOiBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KGltcG9ydFgpLFxuICAgIG1vZGU6IFwib3B0aW9uYWxcIixcbiAgICBwbHVnaW5OYW1lOiBcImltcG9ydC14XCIsXG4gIH0sXG4gIGphc21pbmU6IHtcbiAgICBsb2FkZXI6IGNyZWF0ZVN0YXRpY0xvYWRlckZhY3RvcnkoamFzbWluZSksXG4gICAgbW9kZTogXCJvcHRpb25hbFwiLFxuICAgIHBsdWdpbk5hbWU6IFwiamFzbWluZVwiLFxuICB9LFxuICBqZXN0OiB7XG4gICAgbG9hZGVyOiBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KGplc3QpLFxuICAgIG1vZGU6IFwib3B0aW9uYWxcIixcbiAgICBwbHVnaW5OYW1lOiBcImplc3RcIixcbiAgfSxcbiAganNkb2M6IHtcbiAgICBsb2FkZXI6IGNyZWF0ZVN0YXRpY0xvYWRlckZhY3RvcnkoanNkb2MpLFxuICAgIG1vZGU6IFwib3B0aW9uYWxcIixcbiAgICBwbHVnaW5OYW1lOiBcImpzZG9jXCIsXG4gIH0sXG4gIHBlcmZlY3Rpb25pc3Q6IHtcbiAgICBsb2FkZXI6IGNyZWF0ZVN0YXRpY0xvYWRlckZhY3RvcnkocGVyZmVjdGlvbmlzdCksXG4gICAgbW9kZTogXCJvcHRpb25hbFwiLFxuICAgIHBsdWdpbk5hbWU6IFwicGVyZmVjdGlvbmlzdFwiLFxuICB9LFxuICBwbGF5d3JpZ2h0OiB7XG4gICAgbG9hZGVyOiBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KHBsYXl3cmlnaHQpLFxuICAgIG1vZGU6IFwib3B0aW9uYWxcIixcbiAgICBwbHVnaW5OYW1lOiBcInBsYXl3cmlnaHRcIixcbiAgfSxcbiAgcHJldHRpZXI6IHtcbiAgICBsb2FkZXI6IGNyZWF0ZVN0YXRpY0xvYWRlckZhY3RvcnkocHJldHRpZXIpLFxuICAgIG1vZGU6IFwib3B0aW9uYWxcIixcbiAgICBwbHVnaW5OYW1lOiBcInByZXR0aWVyXCIsXG4gIH0sXG4gIHJlc29sdmVyOiB7XG4gICAgbG9hZGVyOiBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KHJlc29sdmVyKSxcbiAgICBtb2RlOiBcIm9wdGlvbmFsXCIsXG4gICAgcGx1Z2luTmFtZTogXCJyZXNvbHZlclwiLFxuICB9LFxuICBcInJ4anMteFwiOiB7XG4gICAgbG9hZGVyOiBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KHJ4anNYKSxcbiAgICBtb2RlOiBcIm9wdGlvbmFsXCIsXG4gICAgcGx1Z2luTmFtZTogXCJyeGpzLXhcIixcbiAgfSxcbiAgc3R5bGlzdGljOiB7XG4gICAgbG9hZGVyOiBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KHN0eWxpc3RpYyksXG4gICAgbW9kZTogXCJvcHRpb25hbFwiLFxuICAgIHBsdWdpbk5hbWU6IFwic3R5bGlzdGljXCIsXG4gIH0sXG4gIHR5cGVzY3JpcHQ6IHtcbiAgICBsb2FkZXI6IGNyZWF0ZVN0YXRpY0xvYWRlckZhY3RvcnkodHlwZXNjcmlwdCksXG4gICAgbW9kZTogXCJyZXF1aXJlZFwiLFxuICAgIHBsdWdpbk5hbWU6IFwidHlwZXNjcmlwdFwiLFxuICB9LFxuICB1bmljb3JuOiB7XG4gICAgbG9hZGVyOiBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KHVuaWNvcm4pLFxuICAgIG1vZGU6IFwib3B0aW9uYWxcIixcbiAgICBwbHVnaW5OYW1lOiBcInVuaWNvcm5cIixcbiAgfSxcbiAgdml0ZXN0OiB7XG4gICAgbG9hZGVyOiBjcmVhdGVTdGF0aWNMb2FkZXJGYWN0b3J5KHZpdGVzdCksXG4gICAgbW9kZTogXCJvcHRpb25hbFwiLFxuICAgIHBsdWdpbk5hbWU6IFwidml0ZXN0XCIsXG4gIH0sXG59IHNhdGlzZmllcyBSZWNvcmQ8UGx1Z2luTmFtZSwgUGx1Z2luTG9hZGVyRW50cnk+O1xuXG5leHBvcnQgeyBwbHVnaW5Mb2FkZXJzIH07XG5leHBvcnQgdHlwZSB7IENvbmZpZ0xvYWRlciwgUGx1Z2luTG9hZGVyRW50cnkgfTtcbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import type { PluginName, PluginStateOverrides } from "../domain/index.js";
2
+ /** Plugins that are opt-in rather than enabled by default. */
3
+ declare const defaultDisabledPlugins: readonly ["jasmine", "jest"];
4
+ /**
5
+ * Checks whether a plugin is disabled by default.
6
+ * @param pluginName Input pluginName value.
7
+ * @returns Return value output.
8
+ * @example
9
+ * ```typescript
10
+ * isPluginDisabledByDefault("jest");
11
+ * ```
12
+ */
13
+ declare function isPluginDisabledByDefault(pluginName: PluginName): boolean;
14
+ /**
15
+ * Resolves whether a plugin should be enabled in the final config.
16
+ * @param pluginName Input pluginName value.
17
+ * @param pluginStates Explicit plugin state overrides.
18
+ * @returns Return value output.
19
+ * @example
20
+ * ```typescript
21
+ * resolvePluginState("jest", { jest: true });
22
+ * ```
23
+ */
24
+ declare function resolvePluginState(pluginName: PluginName, pluginStates?: PluginStateOverrides): boolean;
25
+ export { defaultDisabledPlugins, isPluginDisabledByDefault, resolvePluginState, };
26
+ //# sourceMappingURL=plugin-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-state.d.ts","sourceRoot":"","sources":["../../src/infrastructure/plugin-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAIlE,8DAA8D;AAC9D,QAAA,MAAM,sBAAsB,8BAGc,CAAC;AAE3C;;;;;;;;GAQG;AACH,iBAAS,yBAAyB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAElE;AAsBD;;;;;;;;;GASG;AACH,iBAAS,kBAAkB,CACzB,UAAU,EAAE,UAAU,EACtB,YAAY,CAAC,EAAE,oBAAoB,GAClC,OAAO,CAeT;AAED,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,GACnB,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { reportRedundantPluginState } from "./diagnostics.js";
2
+ /** Plugins that are opt-in rather than enabled by default. */
3
+ const defaultDisabledPlugins = [
4
+ "jasmine",
5
+ "jest",
6
+ ];
7
+ /**
8
+ * Checks whether a plugin is disabled by default.
9
+ * @param pluginName Input pluginName value.
10
+ * @returns Return value output.
11
+ * @example
12
+ * ```typescript
13
+ * isPluginDisabledByDefault("jest");
14
+ * ```
15
+ */
16
+ function isPluginDisabledByDefault(pluginName) {
17
+ return defaultDisabledPlugins.includes(pluginName);
18
+ }
19
+ /**
20
+ * Reports redundant plugin-state overrides that match the default state.
21
+ * @param pluginName Input pluginName value.
22
+ * @param pluginState Input pluginState value.
23
+ * @param defaultEnabled Input defaultEnabled value.
24
+ * @example
25
+ * ```typescript
26
+ * reportRedundantPluginStateIfNeeded("jest", false, false);
27
+ * ```
28
+ */
29
+ function reportRedundantPluginStateIfNeeded(pluginName, pluginState, defaultEnabled) {
30
+ if (pluginState === defaultEnabled) {
31
+ reportRedundantPluginState(pluginName, pluginState);
32
+ }
33
+ }
34
+ /**
35
+ * Resolves whether a plugin should be enabled in the final config.
36
+ * @param pluginName Input pluginName value.
37
+ * @param pluginStates Explicit plugin state overrides.
38
+ * @returns Return value output.
39
+ * @example
40
+ * ```typescript
41
+ * resolvePluginState("jest", { jest: true });
42
+ * ```
43
+ */
44
+ function resolvePluginState(pluginName, pluginStates) {
45
+ const defaultEnabled = !isPluginDisabledByDefault(pluginName);
46
+ const explicitState = pluginStates?.[pluginName];
47
+ if (explicitState !== void 0) {
48
+ reportRedundantPluginStateIfNeeded(pluginName, explicitState, defaultEnabled);
49
+ return explicitState;
50
+ }
51
+ return defaultEnabled;
52
+ }
53
+ export { defaultDisabledPlugins, isPluginDisabledByDefault, resolvePluginState, };
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luZnJhc3RydWN0dXJlL3BsdWdpbi1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0QsOERBQThEO0FBQzlELE1BQU0sc0JBQXNCLEdBQUc7SUFDN0IsU0FBUztJQUNULE1BQU07Q0FDa0MsQ0FBQztBQUUzQzs7Ozs7Ozs7R0FRRztBQUNILFNBQVMseUJBQXlCLENBQUMsVUFBc0I7SUFDdkQsT0FBUSxzQkFBZ0QsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDaEYsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsa0NBQWtDLENBQ3pDLFVBQXNCLEVBQ3RCLFdBQW9CLEVBQ3BCLGNBQXVCO0lBRXZCLElBQUksV0FBVyxLQUFLLGNBQWMsRUFBRSxDQUFDO1FBQ25DLDBCQUEwQixDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsa0JBQWtCLENBQ3pCLFVBQXNCLEVBQ3RCLFlBQW1DO0lBRW5DLE1BQU0sY0FBYyxHQUFHLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUQsTUFBTSxhQUFhLEdBQUcsWUFBWSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFakQsSUFBSSxhQUFhLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM3QixrQ0FBa0MsQ0FDaEMsVUFBVSxFQUNWLGFBQWEsRUFDYixjQUFjLENBQ2YsQ0FBQztRQUVGLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDO0FBRUQsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIsa0JBQWtCLEdBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBsdWdpbk5hbWUsIFBsdWdpblN0YXRlT3ZlcnJpZGVzIH0gZnJvbSBcIi4uL2RvbWFpblwiO1xyXG5cclxuaW1wb3J0IHsgcmVwb3J0UmVkdW5kYW50UGx1Z2luU3RhdGUgfSBmcm9tIFwiLi9kaWFnbm9zdGljc1wiO1xyXG5cclxuLyoqIFBsdWdpbnMgdGhhdCBhcmUgb3B0LWluIHJhdGhlciB0aGFuIGVuYWJsZWQgYnkgZGVmYXVsdC4gKi9cclxuY29uc3QgZGVmYXVsdERpc2FibGVkUGx1Z2lucyA9IFtcclxuICBcImphc21pbmVcIixcclxuICBcImplc3RcIixcclxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgUGx1Z2luTmFtZVtdO1xyXG5cclxuLyoqXHJcbiAqIENoZWNrcyB3aGV0aGVyIGEgcGx1Z2luIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuXHJcbiAqIEBwYXJhbSBwbHVnaW5OYW1lIElucHV0IHBsdWdpbk5hbWUgdmFsdWUuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogaXNQbHVnaW5EaXNhYmxlZEJ5RGVmYXVsdChcImplc3RcIik7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gaXNQbHVnaW5EaXNhYmxlZEJ5RGVmYXVsdChwbHVnaW5OYW1lOiBQbHVnaW5OYW1lKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIChkZWZhdWx0RGlzYWJsZWRQbHVnaW5zIGFzIHJlYWRvbmx5IFBsdWdpbk5hbWVbXSkuaW5jbHVkZXMocGx1Z2luTmFtZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXBvcnRzIHJlZHVuZGFudCBwbHVnaW4tc3RhdGUgb3ZlcnJpZGVzIHRoYXQgbWF0Y2ggdGhlIGRlZmF1bHQgc3RhdGUuXHJcbiAqIEBwYXJhbSBwbHVnaW5OYW1lIElucHV0IHBsdWdpbk5hbWUgdmFsdWUuXHJcbiAqIEBwYXJhbSBwbHVnaW5TdGF0ZSBJbnB1dCBwbHVnaW5TdGF0ZSB2YWx1ZS5cclxuICogQHBhcmFtIGRlZmF1bHRFbmFibGVkIElucHV0IGRlZmF1bHRFbmFibGVkIHZhbHVlLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIHJlcG9ydFJlZHVuZGFudFBsdWdpblN0YXRlSWZOZWVkZWQoXCJqZXN0XCIsIGZhbHNlLCBmYWxzZSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gcmVwb3J0UmVkdW5kYW50UGx1Z2luU3RhdGVJZk5lZWRlZChcclxuICBwbHVnaW5OYW1lOiBQbHVnaW5OYW1lLFxyXG4gIHBsdWdpblN0YXRlOiBib29sZWFuLFxyXG4gIGRlZmF1bHRFbmFibGVkOiBib29sZWFuLFxyXG4pOiB2b2lkIHtcclxuICBpZiAocGx1Z2luU3RhdGUgPT09IGRlZmF1bHRFbmFibGVkKSB7XHJcbiAgICByZXBvcnRSZWR1bmRhbnRQbHVnaW5TdGF0ZShwbHVnaW5OYW1lLCBwbHVnaW5TdGF0ZSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVzb2x2ZXMgd2hldGhlciBhIHBsdWdpbiBzaG91bGQgYmUgZW5hYmxlZCBpbiB0aGUgZmluYWwgY29uZmlnLlxyXG4gKiBAcGFyYW0gcGx1Z2luTmFtZSBJbnB1dCBwbHVnaW5OYW1lIHZhbHVlLlxyXG4gKiBAcGFyYW0gcGx1Z2luU3RhdGVzIEV4cGxpY2l0IHBsdWdpbiBzdGF0ZSBvdmVycmlkZXMuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogcmVzb2x2ZVBsdWdpblN0YXRlKFwiamVzdFwiLCB7IGplc3Q6IHRydWUgfSk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gcmVzb2x2ZVBsdWdpblN0YXRlKFxyXG4gIHBsdWdpbk5hbWU6IFBsdWdpbk5hbWUsXHJcbiAgcGx1Z2luU3RhdGVzPzogUGx1Z2luU3RhdGVPdmVycmlkZXMsXHJcbik6IGJvb2xlYW4ge1xyXG4gIGNvbnN0IGRlZmF1bHRFbmFibGVkID0gIWlzUGx1Z2luRGlzYWJsZWRCeURlZmF1bHQocGx1Z2luTmFtZSk7XHJcbiAgY29uc3QgZXhwbGljaXRTdGF0ZSA9IHBsdWdpblN0YXRlcz8uW3BsdWdpbk5hbWVdO1xyXG5cclxuICBpZiAoZXhwbGljaXRTdGF0ZSAhPT0gdm9pZCAwKSB7XHJcbiAgICByZXBvcnRSZWR1bmRhbnRQbHVnaW5TdGF0ZUlmTmVlZGVkKFxyXG4gICAgICBwbHVnaW5OYW1lLFxyXG4gICAgICBleHBsaWNpdFN0YXRlLFxyXG4gICAgICBkZWZhdWx0RW5hYmxlZCxcclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIGV4cGxpY2l0U3RhdGU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZGVmYXVsdEVuYWJsZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCB7XHJcbiAgZGVmYXVsdERpc2FibGVkUGx1Z2lucyxcclxuICBpc1BsdWdpbkRpc2FibGVkQnlEZWZhdWx0LFxyXG4gIHJlc29sdmVQbHVnaW5TdGF0ZSxcclxufTtcclxuIl19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rxjs-x.d.ts","sourceRoot":"","sources":["../../src/infrastructure/rxjs-x.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC;;;;;;;GAOG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAqBtD"}
@@ -0,0 +1,27 @@
1
+ import { defineConfig } from "eslint/config";
2
+ /**
3
+ * Build and return rxjs-x plugin configurations with package-level adjustments.
4
+ * @returns Return value output.
5
+ * @example
6
+ * ```typescript
7
+ * await rxjsX();
8
+ * ```
9
+ */
10
+ export async function rxjsX() {
11
+ const pluginModule = await import("eslint-plugin-rxjs-x");
12
+ return defineConfig(pluginModule.default.configs.strict, {
13
+ name: "rxjs-x/custom",
14
+ rules: {
15
+ "rxjs-x/no-ignored-default-value": "off",
16
+ "rxjs-x/no-subclass": "off",
17
+ "rxjs-x/no-unbound-methods": "off",
18
+ },
19
+ }, {
20
+ files: ["**/*.spec.ts"],
21
+ name: "rxjs-x/custom-spec",
22
+ rules: {
23
+ "rxjs-x/no-ignored-error": "off",
24
+ },
25
+ });
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhqcy14LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luZnJhc3RydWN0dXJlL3J4anMteC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLEtBQUs7SUFDekIsTUFBTSxZQUFZLEdBQUcsTUFBTSxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUUxRCxPQUFPLFlBQVksQ0FDakIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBdUIsRUFDcEQ7UUFDRSxJQUFJLEVBQUUsZUFBZTtRQUNyQixLQUFLLEVBQUU7WUFDTCxpQ0FBaUMsRUFBRSxLQUFLO1lBQ3hDLG9CQUFvQixFQUFFLEtBQUs7WUFDM0IsMkJBQTJCLEVBQUUsS0FBSztTQUNuQztLQUNGLEVBQ0Q7UUFDRSxLQUFLLEVBQUUsQ0FBQyxjQUFjLENBQUM7UUFDdkIsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixLQUFLLEVBQUU7WUFDTCx5QkFBeUIsRUFBRSxLQUFLO1NBQ2pDO0tBQ0YsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwiZXNsaW50L2NvbmZpZ1wiO1xuXG4vKipcbiAqIEJ1aWxkIGFuZCByZXR1cm4gcnhqcy14IHBsdWdpbiBjb25maWd1cmF0aW9ucyB3aXRoIHBhY2thZ2UtbGV2ZWwgYWRqdXN0bWVudHMuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGF3YWl0IHJ4anNYKCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ4anNYKCk6IFByb21pc2U8TGludGVyLkNvbmZpZ1tdPiB7XG4gIGNvbnN0IHBsdWdpbk1vZHVsZSA9IGF3YWl0IGltcG9ydChcImVzbGludC1wbHVnaW4tcnhqcy14XCIpO1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcoXG4gICAgcGx1Z2luTW9kdWxlLmRlZmF1bHQuY29uZmlncy5zdHJpY3QgYXMgTGludGVyLkNvbmZpZyxcbiAgICB7XG4gICAgICBuYW1lOiBcInJ4anMteC9jdXN0b21cIixcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgIFwicnhqcy14L25vLWlnbm9yZWQtZGVmYXVsdC12YWx1ZVwiOiBcIm9mZlwiLFxuICAgICAgICBcInJ4anMteC9uby1zdWJjbGFzc1wiOiBcIm9mZlwiLFxuICAgICAgICBcInJ4anMteC9uby11bmJvdW5kLW1ldGhvZHNcIjogXCJvZmZcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogW1wiKiovKi5zcGVjLnRzXCJdLFxuICAgICAgbmFtZTogXCJyeGpzLXgvY3VzdG9tLXNwZWNcIixcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgIFwicnhqcy14L25vLWlnbm9yZWQtZXJyb3JcIjogXCJvZmZcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgKTtcbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export { perfectionist } from "./perfectionist.js";
2
+ export { prettier } from "./prettier.js";
3
+ export { stylistic } from "./stylistic.js";
4
+ export { unicorn } from "./unicorn.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/style/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { perfectionist } from "./perfectionist.js";
2
+ export { prettier } from "./prettier.js";
3
+ export { stylistic } from "./stylistic.js";
4
+ export { unicorn } from "./unicorn.js";
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvc3R5bGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgcGVyZmVjdGlvbmlzdCB9IGZyb20gXCIuL3BlcmZlY3Rpb25pc3RcIjtcbmV4cG9ydCB7IHByZXR0aWVyIH0gZnJvbSBcIi4vcHJldHRpZXJcIjtcbmV4cG9ydCB7IHN0eWxpc3RpYyB9IGZyb20gXCIuL3N0eWxpc3RpY1wiO1xuZXhwb3J0IHsgdW5pY29ybiB9IGZyb20gXCIuL3VuaWNvcm5cIjtcbiJdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perfectionist.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/style/perfectionist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAYrC;;;;;;;GAOG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAoB9D"}
@@ -0,0 +1,31 @@
1
+ import { defineConfig } from "eslint/config";
2
+ /** Generated example and default-expression snippets emitted by the JSDoc processor. */
3
+ const generatedSnippetFiles = [
4
+ "**/*.md/*.js",
5
+ "**/*.jsdoc-defaults",
6
+ "**/*.jsdoc-params",
7
+ "**/*.jsdoc-properties",
8
+ ];
9
+ /**
10
+ * Build and return the Perfectionist plugin configuration and any overrides.
11
+ * @returns Return value output.
12
+ * @example
13
+ * ```typescript
14
+ * await perfectionist();
15
+ * ```
16
+ */
17
+ export async function perfectionist() {
18
+ const { configs } = await import("eslint-plugin-perfectionist");
19
+ const generatedSnippetRules = Object.fromEntries(Object.keys(configs["recommended-natural"].rules ?? {})
20
+ .filter((ruleName) => ruleName.startsWith("perfectionist/"))
21
+ .map((ruleName) => [ruleName, "off"]));
22
+ return defineConfig(configs["recommended-natural"], {
23
+ name: "To avoid conflicts",
24
+ rules: { "sort-keys": "off" },
25
+ }, {
26
+ files: generatedSnippetFiles,
27
+ name: "perfectionist/generated-snippets",
28
+ rules: generatedSnippetRules,
29
+ });
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZmVjdGlvbmlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9zdHlsZS9wZXJmZWN0aW9uaXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0Msd0ZBQXdGO0FBQ3hGLE1BQU0scUJBQXFCLEdBQUc7SUFDNUIsY0FBYztJQUNkLHFCQUFxQjtJQUNyQixtQkFBbUI7SUFDbkIsdUJBQXVCO0NBQ3hCLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxhQUFhO0lBQ2pDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FDOUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1NBQ3BELE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzNELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFVLENBQUMsQ0FDakQsQ0FBQztJQUVGLE9BQU8sWUFBWSxDQUNqQixPQUFPLENBQUMscUJBQXFCLENBQUMsRUFDOUI7UUFDRSxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLEtBQUssRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7S0FDOUIsRUFDRDtRQUNFLEtBQUssRUFBRSxxQkFBcUI7UUFDNUIsSUFBSSxFQUFFLGtDQUFrQztRQUN4QyxLQUFLLEVBQUUscUJBQXFCO0tBQzdCLENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpbnRlciB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcImVzbGludC9jb25maWdcIjtcblxuLyoqIEdlbmVyYXRlZCBleGFtcGxlIGFuZCBkZWZhdWx0LWV4cHJlc3Npb24gc25pcHBldHMgZW1pdHRlZCBieSB0aGUgSlNEb2MgcHJvY2Vzc29yLiAqL1xuY29uc3QgZ2VuZXJhdGVkU25pcHBldEZpbGVzID0gW1xuICBcIioqLyoubWQvKi5qc1wiLFxuICBcIioqLyouanNkb2MtZGVmYXVsdHNcIixcbiAgXCIqKi8qLmpzZG9jLXBhcmFtc1wiLFxuICBcIioqLyouanNkb2MtcHJvcGVydGllc1wiLFxuXTtcblxuLyoqXG4gKiBCdWlsZCBhbmQgcmV0dXJuIHRoZSBQZXJmZWN0aW9uaXN0IHBsdWdpbiBjb25maWd1cmF0aW9uIGFuZCBhbnkgb3ZlcnJpZGVzLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhd2FpdCBwZXJmZWN0aW9uaXN0KCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBlcmZlY3Rpb25pc3QoKTogUHJvbWlzZTxMaW50ZXIuQ29uZmlnW10+IHtcbiAgY29uc3QgeyBjb25maWdzIH0gPSBhd2FpdCBpbXBvcnQoXCJlc2xpbnQtcGx1Z2luLXBlcmZlY3Rpb25pc3RcIik7XG4gIGNvbnN0IGdlbmVyYXRlZFNuaXBwZXRSdWxlcyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3Qua2V5cyhjb25maWdzW1wicmVjb21tZW5kZWQtbmF0dXJhbFwiXS5ydWxlcyA/PyB7fSlcbiAgICAgIC5maWx0ZXIoKHJ1bGVOYW1lKSA9PiBydWxlTmFtZS5zdGFydHNXaXRoKFwicGVyZmVjdGlvbmlzdC9cIikpXG4gICAgICAubWFwKChydWxlTmFtZSkgPT4gW3J1bGVOYW1lLCBcIm9mZlwiXSBhcyBjb25zdCksXG4gICk7XG5cbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhcbiAgICBjb25maWdzW1wicmVjb21tZW5kZWQtbmF0dXJhbFwiXSxcbiAgICB7XG4gICAgICBuYW1lOiBcIlRvIGF2b2lkIGNvbmZsaWN0c1wiLFxuICAgICAgcnVsZXM6IHsgXCJzb3J0LWtleXNcIjogXCJvZmZcIiB9LFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZXM6IGdlbmVyYXRlZFNuaXBwZXRGaWxlcyxcbiAgICAgIG5hbWU6IFwicGVyZmVjdGlvbmlzdC9nZW5lcmF0ZWQtc25pcHBldHNcIixcbiAgICAgIHJ1bGVzOiBnZW5lcmF0ZWRTbmlwcGV0UnVsZXMsXG4gICAgfSxcbiAgKTtcbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettier.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/style/prettier.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,CAKzD"}
@@ -0,0 +1,15 @@
1
+ import { defineConfig } from "eslint/config";
2
+ /**
3
+ * Return Prettier integration configuration for ESLint when the plugin is available.
4
+ * @returns Return value output.
5
+ * @example
6
+ * ```typescript
7
+ * await prettier();
8
+ * ```
9
+ */
10
+ export async function prettier() {
11
+ const recommendedModule = await import("eslint-plugin-prettier/recommended");
12
+ const { default: recommended } = recommendedModule;
13
+ return defineConfig(recommended);
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldHRpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvc3R5bGUvcHJldHRpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3Qzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxRQUFRO0lBQzVCLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxNQUFNLENBQUMsb0NBQW9DLENBQUMsQ0FBQztJQUM3RSxNQUFNLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLGlCQUFpQixDQUFDO0lBRW5ELE9BQU8sWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpbnRlciB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcImVzbGludC9jb25maWdcIjtcblxuLyoqXG4gKiBSZXR1cm4gUHJldHRpZXIgaW50ZWdyYXRpb24gY29uZmlndXJhdGlvbiBmb3IgRVNMaW50IHdoZW4gdGhlIHBsdWdpbiBpcyBhdmFpbGFibGUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGF3YWl0IHByZXR0aWVyKCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByZXR0aWVyKCk6IFByb21pc2U8TGludGVyLkNvbmZpZ1tdPiB7XG4gIGNvbnN0IHJlY29tbWVuZGVkTW9kdWxlID0gYXdhaXQgaW1wb3J0KFwiZXNsaW50LXBsdWdpbi1wcmV0dGllci9yZWNvbW1lbmRlZFwiKTtcbiAgY29uc3QgeyBkZWZhdWx0OiByZWNvbW1lbmRlZCB9ID0gcmVjb21tZW5kZWRNb2R1bGU7XG5cbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhyZWNvbW1lbmRlZCk7XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stylistic.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/style/stylistic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC;;;;;;;GAOG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAO1D"}
@@ -0,0 +1,17 @@
1
+ import { defineConfig } from "eslint/config";
2
+ /**
3
+ * Return the stylistic plugin configuration and its recommended settings.
4
+ * @returns Return value output.
5
+ * @example
6
+ * ```typescript
7
+ * await stylistic();
8
+ * ```
9
+ */
10
+ export async function stylistic() {
11
+ const stylisticModule = await import("@stylistic/eslint-plugin");
12
+ const { default: plugin } = stylisticModule;
13
+ return defineConfig(plugin.configs.all, {
14
+ rules: { "@stylistic/multiline-comment-style": "off" },
15
+ });
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGlzdGljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2luZnJhc3RydWN0dXJlL3N0eWxlL3N0eWxpc3RpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFNBQVM7SUFDN0IsTUFBTSxlQUFlLEdBQUcsTUFBTSxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUNqRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLGVBQWUsQ0FBQztJQUU1QyxPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUN0QyxLQUFLLEVBQUUsRUFBRSxvQ0FBb0MsRUFBRSxLQUFLLEVBQUU7S0FDdkQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwiZXNsaW50L2NvbmZpZ1wiO1xuXG4vKipcbiAqIFJldHVybiB0aGUgc3R5bGlzdGljIHBsdWdpbiBjb25maWd1cmF0aW9uIGFuZCBpdHMgcmVjb21tZW5kZWQgc2V0dGluZ3MuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGF3YWl0IHN0eWxpc3RpYygpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdHlsaXN0aWMoKTogUHJvbWlzZTxMaW50ZXIuQ29uZmlnW10+IHtcbiAgY29uc3Qgc3R5bGlzdGljTW9kdWxlID0gYXdhaXQgaW1wb3J0KFwiQHN0eWxpc3RpYy9lc2xpbnQtcGx1Z2luXCIpO1xuICBjb25zdCB7IGRlZmF1bHQ6IHBsdWdpbiB9ID0gc3R5bGlzdGljTW9kdWxlO1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcocGx1Z2luLmNvbmZpZ3MuYWxsLCB7XG4gICAgcnVsZXM6IHsgXCJAc3R5bGlzdGljL211bHRpbGluZS1jb21tZW50LXN0eWxlXCI6IFwib2ZmXCIgfSxcbiAgfSk7XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unicorn.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/style/unicorn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC;;;;;;;GAOG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAKxD"}
@@ -0,0 +1,15 @@
1
+ import { defineConfig } from "eslint/config";
2
+ /**
3
+ * Build and return the Unicorn plugin configuration.
4
+ * @returns Return value output.
5
+ * @example
6
+ * ```typescript
7
+ * await unicorn();
8
+ * ```
9
+ */
10
+ export async function unicorn() {
11
+ const unicornModule = await import("eslint-plugin-unicorn");
12
+ const { configs } = unicornModule.default;
13
+ return defineConfig(configs.all);
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pY29ybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9zdHlsZS91bmljb3JuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0M7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsT0FBTztJQUMzQixNQUFNLGFBQWEsR0FBRyxNQUFNLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzVELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDO0lBRTFDLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaW50ZXIgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJlc2xpbnQvY29uZmlnXCI7XG5cbi8qKlxuICogQnVpbGQgYW5kIHJldHVybiB0aGUgVW5pY29ybiBwbHVnaW4gY29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogYXdhaXQgdW5pY29ybigpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1bmljb3JuKCk6IFByb21pc2U8TGludGVyLkNvbmZpZ1tdPiB7XG4gIGNvbnN0IHVuaWNvcm5Nb2R1bGUgPSBhd2FpdCBpbXBvcnQoXCJlc2xpbnQtcGx1Z2luLXVuaWNvcm5cIik7XG4gIGNvbnN0IHsgY29uZmlncyB9ID0gdW5pY29ybk1vZHVsZS5kZWZhdWx0O1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcoY29uZmlncy5hbGwpO1xufVxuIl19
@@ -0,0 +1,5 @@
1
+ export { jasmine } from "./jasmine.js";
2
+ export { jest } from "./jest.js";
3
+ export { playwright } from "./playwright.js";
4
+ export { vitest } from "./vitest.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { jasmine } from "./jasmine.js";
2
+ export { jest } from "./jest.js";
3
+ export { playwright } from "./playwright.js";
4
+ export { vitest } from "./vitest.js";
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvdGVzdGluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgamFzbWluZSB9IGZyb20gXCIuL2phc21pbmVcIjtcbmV4cG9ydCB7IGplc3QgfSBmcm9tIFwiLi9qZXN0XCI7XG5leHBvcnQgeyBwbGF5d3JpZ2h0IH0gZnJvbSBcIi4vcGxheXdyaWdodFwiO1xuZXhwb3J0IHsgdml0ZXN0IH0gZnJvbSBcIi4vdml0ZXN0XCI7XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jasmine.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/testing/jasmine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC;;;;;;;GAOG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAmBxD"}
@@ -0,0 +1,26 @@
1
+ import { defineConfig } from "eslint/config";
2
+ /**
3
+ * Return Jasmine-specific ESLint configurations when the plugin is installed.
4
+ * @returns Return value output.
5
+ * @example
6
+ * ```typescript
7
+ * await jasmine();
8
+ * ```
9
+ */
10
+ export async function jasmine() {
11
+ // eslint-disable-next-line boundaries/no-unknown -- External package resolution is outside the repository topology.
12
+ const jasmineModule = await import("eslint-plugin-jasmine");
13
+ const globalsModule = await import("globals");
14
+ const { configs, rules } = jasmineModule;
15
+ const { jasmine: globals } = globalsModule;
16
+ const customError = Object.fromEntries(Object.keys(rules).map((rule) => [`jasmine/${rule}`, "error"]));
17
+ return defineConfig({
18
+ extends: [configs.recommended],
19
+ files: ["**/*.spec.ts"],
20
+ languageOptions: { globals },
21
+ name: "jasmine/custom",
22
+ plugins: { jasmine: { rules } },
23
+ rules: customError,
24
+ });
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamFzbWluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS90ZXN0aW5nL2phc21pbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3Qzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxPQUFPO0lBQzNCLG9IQUFvSDtJQUNwSCxNQUFNLGFBQWEsR0FBRyxNQUFNLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzVELE1BQU0sYUFBYSxHQUFHLE1BQU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsYUFBYSxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsYUFBYSxDQUFDO0lBRTNDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFVLENBQUMsQ0FDeEUsQ0FBQztJQUVGLE9BQU8sWUFBWSxDQUFDO1FBQ2xCLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDOUIsS0FBSyxFQUFFLENBQUMsY0FBYyxDQUFDO1FBQ3ZCLGVBQWUsRUFBRSxFQUFFLE9BQU8sRUFBRTtRQUM1QixJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQy9CLEtBQUssRUFBRSxXQUFXO0tBQ25CLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpbnRlciB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcImVzbGludC9jb25maWdcIjtcblxuLyoqXG4gKiBSZXR1cm4gSmFzbWluZS1zcGVjaWZpYyBFU0xpbnQgY29uZmlndXJhdGlvbnMgd2hlbiB0aGUgcGx1Z2luIGlzIGluc3RhbGxlZC5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogYXdhaXQgamFzbWluZSgpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBqYXNtaW5lKCk6IFByb21pc2U8TGludGVyLkNvbmZpZ1tdPiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBib3VuZGFyaWVzL25vLXVua25vd24gLS0gRXh0ZXJuYWwgcGFja2FnZSByZXNvbHV0aW9uIGlzIG91dHNpZGUgdGhlIHJlcG9zaXRvcnkgdG9wb2xvZ3kuXG4gIGNvbnN0IGphc21pbmVNb2R1bGUgPSBhd2FpdCBpbXBvcnQoXCJlc2xpbnQtcGx1Z2luLWphc21pbmVcIik7XG4gIGNvbnN0IGdsb2JhbHNNb2R1bGUgPSBhd2FpdCBpbXBvcnQoXCJnbG9iYWxzXCIpO1xuICBjb25zdCB7IGNvbmZpZ3MsIHJ1bGVzIH0gPSBqYXNtaW5lTW9kdWxlO1xuICBjb25zdCB7IGphc21pbmU6IGdsb2JhbHMgfSA9IGdsb2JhbHNNb2R1bGU7XG5cbiAgY29uc3QgY3VzdG9tRXJyb3IgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgT2JqZWN0LmtleXMocnVsZXMpLm1hcCgocnVsZSkgPT4gW2BqYXNtaW5lLyR7cnVsZX1gLCBcImVycm9yXCJdIGFzIGNvbnN0KSxcbiAgKTtcblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKHtcbiAgICBleHRlbmRzOiBbY29uZmlncy5yZWNvbW1lbmRlZF0sXG4gICAgZmlsZXM6IFtcIioqLyouc3BlYy50c1wiXSxcbiAgICBsYW5ndWFnZU9wdGlvbnM6IHsgZ2xvYmFscyB9LFxuICAgIG5hbWU6IFwiamFzbWluZS9jdXN0b21cIixcbiAgICBwbHVnaW5zOiB7IGphc21pbmU6IHsgcnVsZXMgfSB9LFxuICAgIHJ1bGVzOiBjdXN0b21FcnJvcixcbiAgfSk7XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/testing/jest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC;;;;;;;GAOG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAoBrD"}