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