@codeperfect/eslint-config 1.14.0 → 1.15.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/dist/codeperfect-eslint-config-1.0.0.tgz +0 -0
- package/dist/infrastructure/docs/jsdoc.d.ts.map +1 -1
- package/dist/infrastructure/docs/jsdoc.js +12 -3
- package/dist/infrastructure/plugin-state.d.ts.map +1 -1
- package/dist/infrastructure/plugin-state.js +2 -1
- package/dist/infrastructure/runtime/angular-eslint.d.ts.map +1 -1
- package/dist/infrastructure/runtime/angular-eslint.js +6 -11
- package/dist/infrastructure/rxjs-x.js +2 -2
- package/dist/infrastructure/style/unicorn.js +5 -5
- package/package.json +23 -40
- package/dist/infrastructure/docs/jsdoc-config.d.ts +0 -14
- package/dist/infrastructure/docs/jsdoc-config.d.ts.map +0 -1
- package/dist/infrastructure/docs/jsdoc-config.js +0 -128
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsdoc.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/docs/jsdoc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC;;;;;;;GAOG;AACH,iBAAe,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"jsdoc.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/docs/jsdoc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC;;;;;;;GAOG;AACH,iBAAe,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAa/C;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defineConfig } from "eslint/config";
|
|
2
2
|
/**
|
|
3
3
|
* Build the jsdoc plugin configuration and any overrides needed by this project.
|
|
4
4
|
* @returns Return value output.
|
|
@@ -9,7 +9,16 @@ import { createJsdocConfigs } from "./jsdoc-config.js";
|
|
|
9
9
|
*/
|
|
10
10
|
async function jsdoc() {
|
|
11
11
|
const { default: jsdocPlugin } = await import("eslint-plugin-jsdoc");
|
|
12
|
-
return
|
|
12
|
+
return defineConfig({
|
|
13
|
+
extends: [
|
|
14
|
+
jsdocPlugin.configs["flat/contents-typescript-error"],
|
|
15
|
+
jsdocPlugin.configs["flat/logical-typescript-error"],
|
|
16
|
+
jsdocPlugin.configs["flat/requirements-typescript-error"],
|
|
17
|
+
jsdocPlugin.configs["flat/stylistic-typescript-error"],
|
|
18
|
+
],
|
|
19
|
+
files: ["**/*.ts"],
|
|
20
|
+
name: "jsdoc/custom",
|
|
21
|
+
});
|
|
13
22
|
}
|
|
14
23
|
export { jsdoc };
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNkb2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvZG9jcy9qc2RvYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDOzs7Ozs7O0dBT0c7QUFDSCxLQUFLLFVBQVUsS0FBSztJQUNsQixNQUFNLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFckUsT0FBTyxZQUFZLENBQUM7UUFDbEIsT0FBTyxFQUFFO1lBQ1AsV0FBVyxDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQztZQUNyRCxXQUFXLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDO1lBQ3BELFdBQVcsQ0FBQyxPQUFPLENBQUMsb0NBQW9DLENBQUM7WUFDekQsV0FBVyxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQztTQUN2RDtRQUNELEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUNsQixJQUFJLEVBQUUsY0FBYztLQUNyQixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaW50ZXIgfSBmcm9tIFwiZXNsaW50XCI7XHJcblxyXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwiZXNsaW50L2NvbmZpZ1wiO1xyXG5cclxuLyoqXHJcbiAqIEJ1aWxkIHRoZSBqc2RvYyBwbHVnaW4gY29uZmlndXJhdGlvbiBhbmQgYW55IG92ZXJyaWRlcyBuZWVkZWQgYnkgdGhpcyBwcm9qZWN0LlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqICBjb25zb2xlLmxvZyhhd2FpdCBqc2RvYygpKTtcclxuICogYGBgXHJcbiAqL1xyXG5hc3luYyBmdW5jdGlvbiBqc2RvYygpOiBQcm9taXNlPExpbnRlci5Db25maWdbXT4ge1xyXG4gIGNvbnN0IHsgZGVmYXVsdDoganNkb2NQbHVnaW4gfSA9IGF3YWl0IGltcG9ydChcImVzbGludC1wbHVnaW4tanNkb2NcIik7XHJcblxyXG4gIHJldHVybiBkZWZpbmVDb25maWcoe1xyXG4gICAgZXh0ZW5kczogW1xyXG4gICAgICBqc2RvY1BsdWdpbi5jb25maWdzW1wiZmxhdC9jb250ZW50cy10eXBlc2NyaXB0LWVycm9yXCJdLFxyXG4gICAgICBqc2RvY1BsdWdpbi5jb25maWdzW1wiZmxhdC9sb2dpY2FsLXR5cGVzY3JpcHQtZXJyb3JcIl0sXHJcbiAgICAgIGpzZG9jUGx1Z2luLmNvbmZpZ3NbXCJmbGF0L3JlcXVpcmVtZW50cy10eXBlc2NyaXB0LWVycm9yXCJdLFxyXG4gICAgICBqc2RvY1BsdWdpbi5jb25maWdzW1wiZmxhdC9zdHlsaXN0aWMtdHlwZXNjcmlwdC1lcnJvclwiXSxcclxuICAgIF0sXHJcbiAgICBmaWxlczogW1wiKiovKi50c1wiXSxcclxuICAgIG5hbWU6IFwianNkb2MvY3VzdG9tXCIsXHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGpzZG9jIH07XHJcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-state.d.ts","sourceRoot":"","sources":["../../src/infrastructure/plugin-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EACV,oBAAoB,EACrB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin-state.d.ts","sourceRoot":"","sources":["../../src/infrastructure/plugin-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EACV,oBAAoB,EACrB,MAAM,WAAW,CAAC;AA0BnB;;;;;;;;;GASG;AACH,iBAAS,eAAe,CACtB,UAAU,EAAE,UAAU,EACtB,YAAY,CAAC,EAAE,oBAAoB,GAClC,OAAO,CAeT;AAsBD,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -15,6 +15,7 @@ const defaultDisabledPlugins = [
|
|
|
15
15
|
* isPluginDisabledByDefault("jest");
|
|
16
16
|
* ```
|
|
17
17
|
*/
|
|
18
|
+
// eslint-disable-next-line codeperfect/no-useless-delegation -- BUG: False positive
|
|
18
19
|
function isPluginDisabledByDefault(pluginName) {
|
|
19
20
|
return defaultDisabledPlugins.includes(pluginName);
|
|
20
21
|
}
|
|
@@ -53,4 +54,4 @@ function reportRedundantPluginStateIfNeeded(pluginName, isPluginStateEnabled, is
|
|
|
53
54
|
}
|
|
54
55
|
}
|
|
55
56
|
export { isPluginEnabled };
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luZnJhc3RydWN0dXJlL3BsdWdpbi1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0QsOERBQThEO0FBQzlELE1BQU0sc0JBQXNCLEdBQUc7SUFDN0IsZ0JBQWdCO0lBQ2hCLFNBQVM7SUFDVCxNQUFNO0lBQ04sWUFBWTtDQUMyQyxDQUFDO0FBRTFEOzs7Ozs7OztHQVFHO0FBQ0gsb0ZBQW9GO0FBQ3BGLFNBQVMseUJBQXlCLENBQUMsVUFBc0I7SUFDdkQsT0FBUSxzQkFBZ0QsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDaEYsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQVMsZUFBZSxDQUN0QixVQUFzQixFQUN0QixZQUFtQztJQUVuQyxNQUFNLGdCQUFnQixHQUFHLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEUsTUFBTSxhQUFhLEdBQUcsWUFBWSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFakQsSUFBSSxhQUFhLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM3QixrQ0FBa0MsQ0FDaEMsVUFBVSxFQUNWLGFBQWEsRUFDYixnQkFBZ0IsQ0FDakIsQ0FBQztRQUVGLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxPQUFPLGdCQUFnQixDQUFDO0FBQzFCLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGtDQUFrQyxDQUN6QyxVQUFzQixFQUN0QixvQkFBNkIsRUFDN0IsZ0JBQXlCO0lBRXpCLElBQUksb0JBQW9CLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUM5QywwQkFBMEIsQ0FBQyxVQUFVLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztJQUMvRCxDQUFDO0FBQ0gsQ0FBQztBQUVELE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcclxuICBEZWZhdWx0RGlzYWJsZWRQbHVnaW5OYW1lLFxyXG4gIFBsdWdpbk5hbWUsXHJcbiAgUGx1Z2luU3RhdGVPdmVycmlkZXMsXHJcbn0gZnJvbSBcIi4uL2RvbWFpblwiO1xyXG5cclxuaW1wb3J0IHsgcmVwb3J0UmVkdW5kYW50UGx1Z2luU3RhdGUgfSBmcm9tIFwiLi9kaWFnbm9zdGljc1wiO1xyXG5cclxuLyoqIFBsdWdpbnMgdGhhdCBhcmUgb3B0LWluIHJhdGhlciB0aGFuIGVuYWJsZWQgYnkgZGVmYXVsdC4gKi9cclxuY29uc3QgZGVmYXVsdERpc2FibGVkUGx1Z2lucyA9IFtcclxuICBcImFuZ3VsYXItZXNsaW50XCIsXHJcbiAgXCJqYXNtaW5lXCIsXHJcbiAgXCJqZXN0XCIsXHJcbiAgXCJ2aXRlc3QtZTJlXCIsXHJcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IERlZmF1bHREaXNhYmxlZFBsdWdpbk5hbWVbXTtcclxuXHJcbi8qKlxyXG4gKiBDaGVja3Mgd2hldGhlciBhIHBsdWdpbiBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LlxyXG4gKiBAcGFyYW0gcGx1Z2luTmFtZSBJbnB1dCBwbHVnaW5OYW1lIHZhbHVlLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzUGx1Z2luRGlzYWJsZWRCeURlZmF1bHQoXCJqZXN0XCIpO1xyXG4gKiBgYGBcclxuICovXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb2RlcGVyZmVjdC9uby11c2VsZXNzLWRlbGVnYXRpb24gLS0gQlVHOiBGYWxzZSBwb3NpdGl2ZVxyXG5mdW5jdGlvbiBpc1BsdWdpbkRpc2FibGVkQnlEZWZhdWx0KHBsdWdpbk5hbWU6IFBsdWdpbk5hbWUpOiBib29sZWFuIHtcclxuICByZXR1cm4gKGRlZmF1bHREaXNhYmxlZFBsdWdpbnMgYXMgcmVhZG9ubHkgUGx1Z2luTmFtZVtdKS5pbmNsdWRlcyhwbHVnaW5OYW1lKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlc29sdmVzIHdoZXRoZXIgYSBwbHVnaW4gc2hvdWxkIGJlIGVuYWJsZWQgaW4gdGhlIGZpbmFsIGNvbmZpZy5cclxuICogQHBhcmFtIHBsdWdpbk5hbWUgSW5wdXQgcGx1Z2luTmFtZSB2YWx1ZS5cclxuICogQHBhcmFtIHBsdWdpblN0YXRlcyBFeHBsaWNpdCBwbHVnaW4gc3RhdGUgb3ZlcnJpZGVzLlxyXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGlzUGx1Z2luRW5hYmxlZChcImplc3RcIiwgeyBqZXN0OiB0cnVlIH0pO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGlzUGx1Z2luRW5hYmxlZChcclxuICBwbHVnaW5OYW1lOiBQbHVnaW5OYW1lLFxyXG4gIHBsdWdpblN0YXRlcz86IFBsdWdpblN0YXRlT3ZlcnJpZGVzLFxyXG4pOiBib29sZWFuIHtcclxuICBjb25zdCBpc0RlZmF1bHRFbmFibGVkID0gIWlzUGx1Z2luRGlzYWJsZWRCeURlZmF1bHQocGx1Z2luTmFtZSk7XHJcbiAgY29uc3QgZXhwbGljaXRTdGF0ZSA9IHBsdWdpblN0YXRlcz8uW3BsdWdpbk5hbWVdO1xyXG5cclxuICBpZiAoZXhwbGljaXRTdGF0ZSAhPT0gdm9pZCAwKSB7XHJcbiAgICByZXBvcnRSZWR1bmRhbnRQbHVnaW5TdGF0ZUlmTmVlZGVkKFxyXG4gICAgICBwbHVnaW5OYW1lLFxyXG4gICAgICBleHBsaWNpdFN0YXRlLFxyXG4gICAgICBpc0RlZmF1bHRFbmFibGVkLFxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gZXhwbGljaXRTdGF0ZTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpc0RlZmF1bHRFbmFibGVkO1xyXG59XHJcblxyXG4vKipcclxuICogUmVwb3J0cyByZWR1bmRhbnQgcGx1Z2luLXN0YXRlIG92ZXJyaWRlcyB0aGF0IG1hdGNoIHRoZSBkZWZhdWx0IHN0YXRlLlxyXG4gKiBAcGFyYW0gcGx1Z2luTmFtZSBJbnB1dCBwbHVnaW5OYW1lIHZhbHVlLlxyXG4gKiBAcGFyYW0gaXNQbHVnaW5TdGF0ZUVuYWJsZWQgSW5wdXQgcGx1Z2luIHN0YXRlIGVuYWJsZWQgdmFsdWUuXHJcbiAqIEBwYXJhbSBpc0RlZmF1bHRFbmFibGVkIElucHV0IGRlZmF1bHQgZW5hYmxlZCB2YWx1ZS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiByZXBvcnRSZWR1bmRhbnRQbHVnaW5TdGF0ZUlmTmVlZGVkKFwiamVzdFwiLCBmYWxzZSwgZmFsc2UpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIHJlcG9ydFJlZHVuZGFudFBsdWdpblN0YXRlSWZOZWVkZWQoXHJcbiAgcGx1Z2luTmFtZTogUGx1Z2luTmFtZSxcclxuICBpc1BsdWdpblN0YXRlRW5hYmxlZDogYm9vbGVhbixcclxuICBpc0RlZmF1bHRFbmFibGVkOiBib29sZWFuLFxyXG4pOiB2b2lkIHtcclxuICBpZiAoaXNQbHVnaW5TdGF0ZUVuYWJsZWQgPT09IGlzRGVmYXVsdEVuYWJsZWQpIHtcclxuICAgIHJlcG9ydFJlZHVuZGFudFBsdWdpblN0YXRlKHBsdWdpbk5hbWUsIGlzUGx1Z2luU3RhdGVFbmFibGVkKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB7IGlzUGx1Z2luRW5hYmxlZCB9O1xyXG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-eslint.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/runtime/angular-eslint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"angular-eslint.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/runtime/angular-eslint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC;;;;;;;;GAQG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAgB9D"}
|
|
@@ -9,21 +9,16 @@ import { defineConfig } from "eslint/config";
|
|
|
9
9
|
* ```
|
|
10
10
|
*/
|
|
11
11
|
export async function angularEslint() {
|
|
12
|
-
const
|
|
13
|
-
const templatePluginModule = await import("@angular-eslint/eslint-plugin-template");
|
|
14
|
-
const tsPlugin = tsPluginModule.default;
|
|
15
|
-
const templatePlugin = templatePluginModule.default;
|
|
16
|
-
const tsRecommended = tsPlugin.configs["recommended"];
|
|
17
|
-
const templateRecommended = templatePlugin.configs["recommended"];
|
|
12
|
+
const { configs, processInlineTemplates } = await import("angular-eslint");
|
|
18
13
|
return defineConfig({
|
|
19
|
-
extends: [tsRecommended],
|
|
14
|
+
extends: [configs.tsRecommended],
|
|
20
15
|
files: ["**/*.ts"],
|
|
21
|
-
ignores: ["**/*.spec.ts"],
|
|
22
16
|
name: "angular-eslint/ts-recommended",
|
|
17
|
+
processor: processInlineTemplates ?? {},
|
|
23
18
|
}, {
|
|
24
|
-
extends: [templateRecommended],
|
|
25
|
-
files: ["**/*.
|
|
19
|
+
extends: [configs.templateRecommended, configs.templateAccessibility],
|
|
20
|
+
files: ["**/*.html"],
|
|
26
21
|
name: "angular-eslint/template-recommended",
|
|
27
22
|
});
|
|
28
23
|
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1lc2xpbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvcnVudGltZS9hbmd1bGFyLWVzbGludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxhQUFhO0lBQ2pDLE1BQU0sRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTNFLE9BQU8sWUFBWSxDQUNqQjtRQUNFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDaEMsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ2xCLElBQUksRUFBRSwrQkFBK0I7UUFDckMsU0FBUyxFQUFFLHNCQUFzQixJQUFJLEVBQUU7S0FDeEMsRUFDRDtRQUNFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUMscUJBQXFCLENBQUM7UUFDckUsS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ3BCLElBQUksRUFBRSxxQ0FBcUM7S0FDNUMsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xyXG5cclxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcImVzbGludC9jb25maWdcIjtcclxuXHJcbi8qKlxyXG4gKiBMb2FkIEFuZ3VsYXIgRVNMaW50IHBsdWdpbiBjb25maWd1cmF0aW9uIHdoZW4gYXZhaWxhYmxlLlxyXG4gKiBFbmFibGVzIGJvdGggdHMtcmVjb21tZW5kZWQgYW5kIHRlbXBsYXRlLXJlY29tbWVuZGVkIHByZXNldHMuXHJcbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogY29uc3QgY29uZmlncyA9IGF3YWl0IGFuZ3VsYXJFc2xpbnQoKTtcclxuICogYGBgXHJcbiAqL1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYW5ndWxhckVzbGludCgpOiBQcm9taXNlPExpbnRlci5Db25maWdbXT4ge1xyXG4gIGNvbnN0IHsgY29uZmlncywgcHJvY2Vzc0lubGluZVRlbXBsYXRlcyB9ID0gYXdhaXQgaW1wb3J0KFwiYW5ndWxhci1lc2xpbnRcIik7XHJcblxyXG4gIHJldHVybiBkZWZpbmVDb25maWcoXHJcbiAgICB7XHJcbiAgICAgIGV4dGVuZHM6IFtjb25maWdzLnRzUmVjb21tZW5kZWRdLFxyXG4gICAgICBmaWxlczogW1wiKiovKi50c1wiXSxcclxuICAgICAgbmFtZTogXCJhbmd1bGFyLWVzbGludC90cy1yZWNvbW1lbmRlZFwiLFxyXG4gICAgICBwcm9jZXNzb3I6IHByb2Nlc3NJbmxpbmVUZW1wbGF0ZXMgPz8ge30sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBleHRlbmRzOiBbY29uZmlncy50ZW1wbGF0ZVJlY29tbWVuZGVkLCBjb25maWdzLnRlbXBsYXRlQWNjZXNzaWJpbGl0eV0sXHJcbiAgICAgIGZpbGVzOiBbXCIqKi8qLmh0bWxcIl0sXHJcbiAgICAgIG5hbWU6IFwiYW5ndWxhci1lc2xpbnQvdGVtcGxhdGUtcmVjb21tZW5kZWRcIixcclxuICAgIH0sXHJcbiAgKTtcclxufVxyXG4iXX0=
|
|
@@ -9,7 +9,7 @@ import { defineConfig } from "eslint/config";
|
|
|
9
9
|
*/
|
|
10
10
|
export async function rxjsX() {
|
|
11
11
|
const pluginModule = await import("eslint-plugin-rxjs-x");
|
|
12
|
-
return defineConfig(pluginModule.default.configs.strict, {
|
|
12
|
+
return defineConfig({ ...pluginModule.default.configs.strict, files: ["**/*.ts"] }, {
|
|
13
13
|
name: "rxjs-x/custom",
|
|
14
14
|
rules: {
|
|
15
15
|
"rxjs-x/no-ignored-default-value": "off",
|
|
@@ -24,4 +24,4 @@ export async function rxjsX() {
|
|
|
24
24
|
},
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhqcy14LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luZnJhc3RydWN0dXJlL3J4anMteC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLEtBQUs7SUFDekIsTUFBTSxZQUFZLEdBQUcsTUFBTSxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUUxRCxPQUFPLFlBQVksQ0FDakIsRUFBRSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUM5RDtRQUNFLElBQUksRUFBRSxlQUFlO1FBQ3JCLEtBQUssRUFBRTtZQUNMLGlDQUFpQyxFQUFFLEtBQUs7WUFDeEMsb0JBQW9CLEVBQUUsS0FBSztZQUMzQiwyQkFBMkIsRUFBRSxLQUFLO1NBQ25DO0tBQ0YsRUFDRDtRQUNFLEtBQUssRUFBRSxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUM7UUFDdEMsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixLQUFLLEVBQUU7WUFDTCx5QkFBeUIsRUFBRSxLQUFLO1NBQ2pDO0tBQ0YsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwiZXNsaW50L2NvbmZpZ1wiO1xuXG4vKipcbiAqIEJ1aWxkIGFuZCByZXR1cm4gcnhqcy14IHBsdWdpbiBjb25maWd1cmF0aW9ucyB3aXRoIHBhY2thZ2UtbGV2ZWwgYWRqdXN0bWVudHMuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGF3YWl0IHJ4anNYKCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ4anNYKCk6IFByb21pc2U8TGludGVyLkNvbmZpZ1tdPiB7XG4gIGNvbnN0IHBsdWdpbk1vZHVsZSA9IGF3YWl0IGltcG9ydChcImVzbGludC1wbHVnaW4tcnhqcy14XCIpO1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcoXG4gICAgeyAuLi5wbHVnaW5Nb2R1bGUuZGVmYXVsdC5jb25maWdzLnN0cmljdCwgZmlsZXM6IFtcIioqLyoudHNcIl0gfSxcbiAgICB7XG4gICAgICBuYW1lOiBcInJ4anMteC9jdXN0b21cIixcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgIFwicnhqcy14L25vLWlnbm9yZWQtZGVmYXVsdC12YWx1ZVwiOiBcIm9mZlwiLFxuICAgICAgICBcInJ4anMteC9uby1zdWJjbGFzc1wiOiBcIm9mZlwiLFxuICAgICAgICBcInJ4anMteC9uby11bmJvdW5kLW1ldGhvZHNcIjogXCJvZmZcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogW1wiKiovKi5zcGVjLnRzXCIsIFwiKiovKi5lMmUudHNcIl0sXG4gICAgICBuYW1lOiBcInJ4anMteC9jdXN0b20tc3BlY1wiLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgXCJyeGpzLXgvbm8taWdub3JlZC1lcnJvclwiOiBcIm9mZlwiLFxuICAgICAgfSxcbiAgICB9LFxuICApO1xufVxuIl19
|
|
@@ -14,10 +14,9 @@ export async function unicorn() {
|
|
|
14
14
|
extends: [configs.recommended],
|
|
15
15
|
files: ["**/*.ts"],
|
|
16
16
|
rules: {
|
|
17
|
-
"unicorn/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
],
|
|
17
|
+
"unicorn/comment-content": "off",
|
|
18
|
+
"unicorn/consistent-arrow-return-style": "off",
|
|
19
|
+
"unicorn/consistent-boolean-name": "off",
|
|
21
20
|
"unicorn/consistent-class-member-order": "off",
|
|
22
21
|
"unicorn/filename-case": [
|
|
23
22
|
"error",
|
|
@@ -25,6 +24,7 @@ export async function unicorn() {
|
|
|
25
24
|
],
|
|
26
25
|
"unicorn/name-replacements": ["error", { ignore: [/dev/iu, /e2e/iu] }],
|
|
27
26
|
"unicorn/no-non-function-verb-prefix": "off",
|
|
27
|
+
"unicorn/prefer-iterator-concat": "off",
|
|
28
28
|
"unicorn/single-line-block-comment-style": ["error", "single-line"],
|
|
29
29
|
},
|
|
30
30
|
}, {
|
|
@@ -39,4 +39,4 @@ export async function unicorn() {
|
|
|
39
39
|
rules: { "unicorn/no-null": "off" },
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pY29ybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9zdHlsZS91bmljb3JuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0M7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsT0FBTztJQUMzQixNQUFNLGFBQWEsR0FBRyxNQUFNLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzVELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDO0lBRTFDLE9BQU8sWUFBWSxDQUNqQjtRQUNFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDOUIsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ2xCLEtBQUssRUFBRTtZQUNMLHlCQUF5QixFQUFFLEtBQUs7WUFDaEMsdUNBQXVDLEVBQUUsS0FBSztZQUM5QyxpQ0FBaUMsRUFBRSxLQUFLO1lBQ3hDLHVDQUF1QyxFQUFFLEtBQUs7WUFDOUMsdUJBQXVCLEVBQUU7Z0JBQ3ZCLE9BQU87Z0JBQ1AsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFO2FBQy9DO1lBQ0QsMkJBQTJCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN0RSxxQ0FBcUMsRUFBRSxLQUFLO1lBQzVDLGdDQUFnQyxFQUFFLEtBQUs7WUFDdkMseUNBQXlDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDO1NBQ3BFO0tBQ0YsRUFDRDtRQUNFLEtBQUssRUFBRSxDQUFDLGNBQWMsQ0FBQztRQUN2QixJQUFJLEVBQUUscURBQXFEO1FBQzNELEtBQUssRUFBRTtZQUNMLGlDQUFpQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztTQUN0RTtLQUNGLEVBQ0Q7UUFDRSxLQUFLLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztRQUM5QixJQUFJLEVBQUUscUJBQXFCO1FBQzNCLEtBQUssRUFBRSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRTtLQUNwQyxDQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaW50ZXIgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJlc2xpbnQvY29uZmlnXCI7XG5cbi8qKlxuICogQnVpbGQgYW5kIHJldHVybiB0aGUgVW5pY29ybiBwbHVnaW4gY29uZmlndXJhdGlvbi5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogYXdhaXQgdW5pY29ybigpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1bmljb3JuKCk6IFByb21pc2U8TGludGVyLkNvbmZpZ1tdPiB7XG4gIGNvbnN0IHVuaWNvcm5Nb2R1bGUgPSBhd2FpdCBpbXBvcnQoXCJlc2xpbnQtcGx1Z2luLXVuaWNvcm5cIik7XG4gIGNvbnN0IHsgY29uZmlncyB9ID0gdW5pY29ybk1vZHVsZS5kZWZhdWx0O1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcoXG4gICAge1xuICAgICAgZXh0ZW5kczogW2NvbmZpZ3MucmVjb21tZW5kZWRdLFxuICAgICAgZmlsZXM6IFtcIioqLyoudHNcIl0sXG4gICAgICBydWxlczoge1xuICAgICAgICBcInVuaWNvcm4vY29tbWVudC1jb250ZW50XCI6IFwib2ZmXCIsXG4gICAgICAgIFwidW5pY29ybi9jb25zaXN0ZW50LWFycm93LXJldHVybi1zdHlsZVwiOiBcIm9mZlwiLFxuICAgICAgICBcInVuaWNvcm4vY29uc2lzdGVudC1ib29sZWFuLW5hbWVcIjogXCJvZmZcIixcbiAgICAgICAgXCJ1bmljb3JuL2NvbnNpc3RlbnQtY2xhc3MtbWVtYmVyLW9yZGVyXCI6IFwib2ZmXCIsXG4gICAgICAgIFwidW5pY29ybi9maWxlbmFtZS1jYXNlXCI6IFtcbiAgICAgICAgICBcImVycm9yXCIsXG4gICAgICAgICAgeyBjYXNlOiBcImtlYmFiQ2FzZVwiLCBpZ25vcmU6IFtcIl5fX3Rlc3RzX18kXCJdIH0sXG4gICAgICAgIF0sXG4gICAgICAgIFwidW5pY29ybi9uYW1lLXJlcGxhY2VtZW50c1wiOiBbXCJlcnJvclwiLCB7IGlnbm9yZTogWy9kZXYvaXUsIC9lMmUvaXVdIH1dLFxuICAgICAgICBcInVuaWNvcm4vbm8tbm9uLWZ1bmN0aW9uLXZlcmItcHJlZml4XCI6IFwib2ZmXCIsXG4gICAgICAgIFwidW5pY29ybi9wcmVmZXItaXRlcmF0b3ItY29uY2F0XCI6IFwib2ZmXCIsXG4gICAgICAgIFwidW5pY29ybi9zaW5nbGUtbGluZS1ibG9jay1jb21tZW50LXN0eWxlXCI6IFtcImVycm9yXCIsIFwic2luZ2xlLWxpbmVcIl0sXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZXM6IFtcIioqLyouc3BlYy50c1wiXSxcbiAgICAgIG5hbWU6IFwiY29kZXBlcmZlY3QvYXNzZXJ0LWFjdHVhbC1leHBlY3RlZC1uYW1lcyBwcmVjZWRlbmNlXCIsXG4gICAgICBydWxlczoge1xuICAgICAgICBcInVuaWNvcm4vY29uc2lzdGVudC1ib29sZWFuLW5hbWVcIjogW1wiZXJyb3JcIiwgeyBpZ25vcmU6IFtcIl5hY3R1YWxcIl0gfV0sXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZXM6IFtcIioqL2V4cGxpY2l0LW51bGwudHNcIl0sXG4gICAgICBuYW1lOiBcIkFsbG93IGV4cGxpY2l0IG51bGxcIixcbiAgICAgIHJ1bGVzOiB7IFwidW5pY29ybi9uby1udWxsXCI6IFwib2ZmXCIgfSxcbiAgICB9LFxuICApO1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codeperfect/eslint-config",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0",
|
|
4
4
|
"description": "A shareable flat ESLint config for TypeScript repositories",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "github:parloti/eslint-config",
|
|
@@ -17,15 +17,16 @@
|
|
|
17
17
|
},
|
|
18
18
|
"sideEffects": false,
|
|
19
19
|
"engines": {
|
|
20
|
-
"node": ">=24
|
|
20
|
+
"node": ">=24"
|
|
21
21
|
},
|
|
22
22
|
"publishConfig": {
|
|
23
23
|
"access": "public"
|
|
24
24
|
},
|
|
25
25
|
"scripts": {
|
|
26
|
+
"\n# ---------------- GENERAL ---------------- #": "",
|
|
27
|
+
"prepare": "patch-package && husky",
|
|
26
28
|
"\n# ------------------ SCM ------------------ #": "",
|
|
27
29
|
"commit": "npx --yes git-cz",
|
|
28
|
-
"prepare": "husky && patch-package",
|
|
29
30
|
"\n# ---------------- BUILDING ---------------- #": "",
|
|
30
31
|
"build": "npm run clean && npm run compile && npm run resolve-paths",
|
|
31
32
|
"clean": "npx --yes rimraf dist",
|
|
@@ -43,7 +44,7 @@
|
|
|
43
44
|
"eslint:fix": "npm run check:rules && npm run eslint -- --fix",
|
|
44
45
|
"lint:fix": "npm run prettier:write && npm run eslint:fix",
|
|
45
46
|
"lint:staged": "npx --yes tsx scripts/lint-staged.ts",
|
|
46
|
-
"prettier:write": "
|
|
47
|
+
"prettier:write": "npx --yes prettier --ignore-unknown --write .",
|
|
47
48
|
"\n • ------------ helpers ------------ •": "",
|
|
48
49
|
"check:rules": "npx --yes eslint-config-prettier eslint.config.ts",
|
|
49
50
|
"eslint:inspect": "npx --yes @eslint/config-inspector",
|
|
@@ -52,8 +53,7 @@
|
|
|
52
53
|
"mutation": "npx --yes stryker run",
|
|
53
54
|
"test:all": "npm run test && npm run e2e && npm run mutation",
|
|
54
55
|
"typecheck": "tsc --noEmit",
|
|
55
|
-
"
|
|
56
|
-
"validate": "npm run lint && npm run typecheck && npm run typecheck:spec && npm run test:all && npm run build --if-present && npm run pack --if-present",
|
|
56
|
+
"validate": "npm run lint && npm run typecheck && npm run test:all && npm run build --if-present && npm run pack --if-present",
|
|
57
57
|
"\n • -------------- unit -------------- •": "",
|
|
58
58
|
"test": "npx --yes vitest run",
|
|
59
59
|
"tdd": "npm run test -- --watch --silent=true --coverage.enabled=false",
|
|
@@ -73,14 +73,9 @@
|
|
|
73
73
|
"flat-config",
|
|
74
74
|
"shareable-config"
|
|
75
75
|
],
|
|
76
|
-
"dependencies": {
|
|
77
|
-
"minimatch": "^10.2.6"
|
|
78
|
-
},
|
|
79
76
|
"devDependencies": {
|
|
80
|
-
"@angular-eslint/eslint-plugin": "^22.1.0",
|
|
81
|
-
"@angular-eslint/eslint-plugin-template": "^22.1.0",
|
|
82
77
|
"@codeperfect/commitlint-config-emoji": "^1.0.0",
|
|
83
|
-
"@codeperfect/eslint-plugin": "^2.
|
|
78
|
+
"@codeperfect/eslint-plugin": "^2.6.0",
|
|
84
79
|
"@commitlint/config-conventional": "^21.2.2",
|
|
85
80
|
"@commitlint/cz-commitlint": "^21.2.2",
|
|
86
81
|
"@eslint-community/eslint-plugin-eslint-comments": "^4.7.2",
|
|
@@ -94,78 +89,66 @@
|
|
|
94
89
|
"@stryker-mutator/vitest-runner": "^10.0.0",
|
|
95
90
|
"@stylistic/eslint-plugin": "^5.10.0",
|
|
96
91
|
"@types/lodash-es": "^4.17.12",
|
|
97
|
-
"@types/node": "^26.
|
|
92
|
+
"@types/node": "^26.4.0",
|
|
98
93
|
"@vitest/coverage-v8": "^4.1.11",
|
|
99
94
|
"@vitest/eslint-plugin": "^1.6.27",
|
|
95
|
+
"angular-eslint": "^22.1.0",
|
|
100
96
|
"chalk": "^6.0.0",
|
|
101
97
|
"conventional-changelog-conventionalcommits": "^10.4.0",
|
|
102
|
-
"eslint": "^10.9.
|
|
98
|
+
"eslint": "^10.9.1",
|
|
103
99
|
"eslint-config-prettier": "^10.1.8",
|
|
104
100
|
"eslint-import-resolver-typescript": "^4.4.5",
|
|
105
101
|
"eslint-package-json": "^0.3.0",
|
|
106
102
|
"eslint-plugin-boundaries": "^7.2.0",
|
|
107
103
|
"eslint-plugin-import-x": "^4.17.1",
|
|
108
104
|
"eslint-plugin-jasmine": "^4.2.2",
|
|
109
|
-
"eslint-plugin-jest": "^29.16.
|
|
105
|
+
"eslint-plugin-jest": "^29.16.5",
|
|
110
106
|
"eslint-plugin-jsdoc": "^64.2.1",
|
|
111
107
|
"eslint-plugin-perfectionist": "^5.10.1",
|
|
112
108
|
"eslint-plugin-playwright": "^2.11.0",
|
|
113
109
|
"eslint-plugin-prettier": "^5.5.6",
|
|
114
|
-
"eslint-plugin-rxjs-x": "^1.0.
|
|
115
|
-
"eslint-plugin-unicorn": "^
|
|
110
|
+
"eslint-plugin-rxjs-x": "^1.0.6",
|
|
111
|
+
"eslint-plugin-unicorn": "^74.0.0",
|
|
116
112
|
"globals": "^17.11.0",
|
|
117
113
|
"husky": "^9.1.7",
|
|
118
114
|
"jiti": "^2.7.0",
|
|
119
|
-
"lint-staged": "^17.
|
|
115
|
+
"lint-staged": "^17.4.1",
|
|
120
116
|
"lodash-es": "^4.18.1",
|
|
121
117
|
"patch-package": "^8.0.1",
|
|
122
118
|
"rimraf": "^6.1.3",
|
|
123
119
|
"semantic-release": "^25.0.9",
|
|
124
120
|
"tsc-alias": "^1.9.2",
|
|
125
121
|
"typedoc": "^0.28.20",
|
|
126
|
-
"typedoc-plugin-markdown": "^4.
|
|
122
|
+
"typedoc-plugin-markdown": "^4.13.0",
|
|
127
123
|
"typescript": "^6.0.3",
|
|
128
|
-
"typescript-eslint": "^8.
|
|
124
|
+
"typescript-eslint": "^8.68.0",
|
|
129
125
|
"vitest": "^4.1.11"
|
|
130
126
|
},
|
|
131
127
|
"peerDependencies": {
|
|
132
|
-
"@angular-eslint/eslint-plugin": "^22.1.0",
|
|
133
|
-
"@angular-eslint/eslint-plugin-template": "^22.1.0",
|
|
134
128
|
"@eslint-community/eslint-plugin-eslint-comments": "^4.7.2",
|
|
135
129
|
"@eslint/js": "^10.0.1",
|
|
136
130
|
"@stylistic/eslint-plugin": "^5.10.0",
|
|
137
131
|
"@vitest/eslint-plugin": "^1.6.27",
|
|
138
|
-
"eslint": "^
|
|
132
|
+
"angular-eslint": "^22.1.0",
|
|
133
|
+
"eslint": "^10.9.1",
|
|
139
134
|
"eslint-import-resolver-typescript": "^4.4.5",
|
|
140
135
|
"eslint-package-json": "^0.3.0",
|
|
141
136
|
"eslint-plugin-boundaries": "^7.2.0",
|
|
142
137
|
"eslint-plugin-import-x": "^4.17.1",
|
|
143
138
|
"eslint-plugin-jasmine": "^4.2.2",
|
|
144
|
-
"eslint-plugin-jest": "^29.16.
|
|
139
|
+
"eslint-plugin-jest": "^29.16.5",
|
|
145
140
|
"eslint-plugin-jsdoc": "^64.2.1",
|
|
146
141
|
"eslint-plugin-perfectionist": "^5.10.1",
|
|
147
142
|
"eslint-plugin-prettier": "^5.5.6",
|
|
148
|
-
"eslint-plugin-rxjs-x": "^1.0.
|
|
149
|
-
"eslint-plugin-unicorn": "^
|
|
143
|
+
"eslint-plugin-rxjs-x": "^1.0.6",
|
|
144
|
+
"eslint-plugin-unicorn": "^74.0.0",
|
|
150
145
|
"globals": "^17.11.0",
|
|
151
146
|
"jiti": "^2.7.0",
|
|
152
147
|
"typescript": "^6.0.3",
|
|
153
|
-
"typescript-eslint": "^8.
|
|
148
|
+
"typescript-eslint": "^8.68.0"
|
|
154
149
|
},
|
|
155
150
|
"peerDependenciesMeta": {
|
|
156
|
-
"
|
|
157
|
-
"optional": true
|
|
158
|
-
},
|
|
159
|
-
"@angular-eslint/eslint-plugin-template": {
|
|
160
|
-
"optional": true
|
|
161
|
-
},
|
|
162
|
-
"@eslint-community/eslint-plugin-eslint-comments": {
|
|
163
|
-
"optional": true
|
|
164
|
-
},
|
|
165
|
-
"@vitest/eslint-plugin": {
|
|
166
|
-
"optional": true
|
|
167
|
-
},
|
|
168
|
-
"eslint-plugin-import-x": {
|
|
151
|
+
"angular-eslint": {
|
|
169
152
|
"optional": true
|
|
170
153
|
},
|
|
171
154
|
"eslint-plugin-jasmine": {
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { Linter } from "eslint";
|
|
2
|
-
/**
|
|
3
|
-
* Build the repo's final JSDoc configs from an upstream plugin shape.
|
|
4
|
-
* @param configs Upstream JSDoc config map.
|
|
5
|
-
* @param rules Upstream JSDoc rules map.
|
|
6
|
-
* @returns The final ESLint config array.
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* console.log(createJsdocConfigs({}, {}).length);
|
|
10
|
-
* ```
|
|
11
|
-
*/
|
|
12
|
-
declare function createJsdocConfigs(configs: Record<string, unknown>, rules: Record<string, unknown> | undefined): Linter.Config[];
|
|
13
|
-
export { createJsdocConfigs };
|
|
14
|
-
//# sourceMappingURL=jsdoc-config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jsdoc-config.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/docs/jsdoc-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAoIrC;;;;;;;;;GASG;AACH,iBAAS,kBAAkB,CACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACzC,MAAM,CAAC,MAAM,EAAE,CAMjB;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { defineConfig } from "eslint/config";
|
|
2
|
-
/** File globs that JSDoc linting applies to. */
|
|
3
|
-
const jsdocFileGlobs = ["**/*.ts"];
|
|
4
|
-
/** Upstream JSDoc flat preset names consumed by this config. */
|
|
5
|
-
const jsdocPresetNames = [
|
|
6
|
-
"flat/recommended-typescript-error",
|
|
7
|
-
"flat/contents-typescript-error",
|
|
8
|
-
"flat/logical-typescript-error",
|
|
9
|
-
"flat/requirements-typescript-error",
|
|
10
|
-
"flat/stylistic-typescript-error",
|
|
11
|
-
];
|
|
12
|
-
/** Repo-owned JSDoc rules enabled when the plugin exposes them. */
|
|
13
|
-
const jsdocErrorRuleNames = [
|
|
14
|
-
"check-indentation",
|
|
15
|
-
"convert-to-jsdoc-comments",
|
|
16
|
-
"require-description",
|
|
17
|
-
"require-description-complete-sentence",
|
|
18
|
-
"require-template",
|
|
19
|
-
"require-throws",
|
|
20
|
-
"sort-tags",
|
|
21
|
-
];
|
|
22
|
-
/** AST contexts that must include JSDoc. */
|
|
23
|
-
const requireJsdocContexts = [
|
|
24
|
-
"Program > FunctionDeclaration",
|
|
25
|
-
"Program > ExportDefaultDeclaration > FunctionDeclaration",
|
|
26
|
-
"Program > ExportNamedDeclaration > FunctionDeclaration",
|
|
27
|
-
"Program > VariableDeclaration",
|
|
28
|
-
'Program > ExportNamedDeclaration[declaration.type="VariableDeclaration"]',
|
|
29
|
-
"TSInterfaceDeclaration",
|
|
30
|
-
"TSTypeAliasDeclaration",
|
|
31
|
-
"TSPropertySignature",
|
|
32
|
-
"TSMethodSignature",
|
|
33
|
-
"TSCallSignatureDeclaration",
|
|
34
|
-
"TSConstructSignatureDeclaration",
|
|
35
|
-
"TSIndexSignature",
|
|
36
|
-
];
|
|
37
|
-
/**
|
|
38
|
-
* Build the custom jsdoc error rules based on available plugin rules.
|
|
39
|
-
* @param availableRules Set of available jsdoc rule names.
|
|
40
|
-
* @returns The rules record for ESLint.
|
|
41
|
-
* @example
|
|
42
|
-
* ```typescript
|
|
43
|
-
* console.log(buildCustomErrorRules(new Set(["require-throws"])));
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
function buildCustomErrorRules(availableRules) {
|
|
47
|
-
return Object.fromEntries(jsdocErrorRuleNames
|
|
48
|
-
.filter((rule) => availableRules.has(rule))
|
|
49
|
-
.map((rule) => [`jsdoc/${rule}`, "error"]));
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Select only the upstream flat presets that are available in the current plugin version.
|
|
53
|
-
* @param configs Upstream JSDoc config map.
|
|
54
|
-
* @returns The available flat presets.
|
|
55
|
-
* @example
|
|
56
|
-
* ```typescript
|
|
57
|
-
* console.log(buildPresetConfigs({ "flat/recommended-typescript-error": {} as Linter.Config }).length);
|
|
58
|
-
* ```
|
|
59
|
-
*/
|
|
60
|
-
function buildPresetConfigs(configs) {
|
|
61
|
-
return jsdocPresetNames.flatMap((configName) => {
|
|
62
|
-
const config = configs[configName];
|
|
63
|
-
if (typeof config !== "object" || Array.isArray(config)) {
|
|
64
|
-
return [];
|
|
65
|
-
}
|
|
66
|
-
return [{ ...config, files: jsdocFileGlobs }];
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Build the final repo-owned JSDoc configs on top of the upstream presets.
|
|
71
|
-
* @param customError Repo-owned JSDoc rule overrides.
|
|
72
|
-
* @returns The final ESLint config array.
|
|
73
|
-
* @example
|
|
74
|
-
* ```typescript
|
|
75
|
-
* console.log(buildRepoJsdocConfigs({}).length);
|
|
76
|
-
* ```
|
|
77
|
-
*/
|
|
78
|
-
function buildRepoJsdocConfigs(customError) {
|
|
79
|
-
return defineConfig({
|
|
80
|
-
files: jsdocFileGlobs,
|
|
81
|
-
name: "jsdoc/custom",
|
|
82
|
-
rules: {
|
|
83
|
-
...customError,
|
|
84
|
-
"jsdoc/convert-to-jsdoc-comments": [
|
|
85
|
-
"error",
|
|
86
|
-
{ enforceJsdocLineStyle: "single" },
|
|
87
|
-
],
|
|
88
|
-
"jsdoc/text-escaping": "off",
|
|
89
|
-
},
|
|
90
|
-
}, {
|
|
91
|
-
files: jsdocFileGlobs,
|
|
92
|
-
name: "jsdoc/require-jsdoc-alias",
|
|
93
|
-
rules: {
|
|
94
|
-
"jsdoc/require-description": [
|
|
95
|
-
"error",
|
|
96
|
-
{ contexts: requireJsdocContexts },
|
|
97
|
-
],
|
|
98
|
-
"jsdoc/require-jsdoc": ["error", { contexts: requireJsdocContexts }],
|
|
99
|
-
},
|
|
100
|
-
}, {
|
|
101
|
-
files: ["**/*.spec.ts", "**/*.e2e.ts"],
|
|
102
|
-
name: "jsdoc/custom-spec",
|
|
103
|
-
rules: {
|
|
104
|
-
"jsdoc/convert-to-jsdoc-comments": [
|
|
105
|
-
"error",
|
|
106
|
-
{ allowedPrefixes: ["Arrange", "Act", "Assert"] },
|
|
107
|
-
],
|
|
108
|
-
},
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Build the repo's final JSDoc configs from an upstream plugin shape.
|
|
113
|
-
* @param configs Upstream JSDoc config map.
|
|
114
|
-
* @param rules Upstream JSDoc rules map.
|
|
115
|
-
* @returns The final ESLint config array.
|
|
116
|
-
* @example
|
|
117
|
-
* ```typescript
|
|
118
|
-
* console.log(createJsdocConfigs({}, {}).length);
|
|
119
|
-
* ```
|
|
120
|
-
*/
|
|
121
|
-
function createJsdocConfigs(configs, rules) {
|
|
122
|
-
const availableRules = new Set(Object.keys(rules ?? {}));
|
|
123
|
-
const customError = buildCustomErrorRules(availableRules);
|
|
124
|
-
const presetConfigs = buildPresetConfigs(configs);
|
|
125
|
-
return defineConfig(...presetConfigs, ...buildRepoJsdocConfigs(customError));
|
|
126
|
-
}
|
|
127
|
-
export { createJsdocConfigs };
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNkb2MtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2luZnJhc3RydWN0dXJlL2RvY3MvanNkb2MtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0MsZ0RBQWdEO0FBQ2hELE1BQU0sY0FBYyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFbkMsZ0VBQWdFO0FBQ2hFLE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsbUNBQW1DO0lBQ25DLGdDQUFnQztJQUNoQywrQkFBK0I7SUFDL0Isb0NBQW9DO0lBQ3BDLGlDQUFpQztDQUN6QixDQUFDO0FBRVgsbUVBQW1FO0FBQ25FLE1BQU0sbUJBQW1CLEdBQUc7SUFDMUIsbUJBQW1CO0lBQ25CLDJCQUEyQjtJQUMzQixxQkFBcUI7SUFDckIsdUNBQXVDO0lBQ3ZDLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsV0FBVztDQUNaLENBQUM7QUFFRiw0Q0FBNEM7QUFDNUMsTUFBTSxvQkFBb0IsR0FBRztJQUMzQiwrQkFBK0I7SUFDL0IsMERBQTBEO0lBQzFELHdEQUF3RDtJQUN4RCwrQkFBK0I7SUFDL0IsMEVBQTBFO0lBQzFFLHdCQUF3QjtJQUN4Qix3QkFBd0I7SUFDeEIscUJBQXFCO0lBQ3JCLG1CQUFtQjtJQUNuQiw0QkFBNEI7SUFDNUIsaUNBQWlDO0lBQ2pDLGtCQUFrQjtDQUNuQixDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLHFCQUFxQixDQUM1QixjQUEyQjtJQUUzQixPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQ3ZCLG1CQUFtQjtTQUNoQixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFVLENBQUMsQ0FDdEQsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQVMsa0JBQWtCLENBQUMsT0FBZ0M7SUFDMUQsT0FBTyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtRQUM3QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3hELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE9BQU8sQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxxQkFBcUIsQ0FDNUIsV0FBK0I7SUFFL0IsT0FBTyxZQUFZLENBQ2pCO1FBQ0UsS0FBSyxFQUFFLGNBQWM7UUFDckIsSUFBSSxFQUFFLGNBQWM7UUFDcEIsS0FBSyxFQUFFO1lBQ0wsR0FBRyxXQUFXO1lBQ2QsaUNBQWlDLEVBQUU7Z0JBQ2pDLE9BQU87Z0JBQ1AsRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUU7YUFDcEM7WUFDRCxxQkFBcUIsRUFBRSxLQUFLO1NBQzdCO0tBQ0YsRUFDRDtRQUNFLEtBQUssRUFBRSxjQUFjO1FBQ3JCLElBQUksRUFBRSwyQkFBMkI7UUFDakMsS0FBSyxFQUFFO1lBQ0wsMkJBQTJCLEVBQUU7Z0JBQzNCLE9BQU87Z0JBQ1AsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUU7YUFDbkM7WUFDRCxxQkFBcUIsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxDQUFDO1NBQ3JFO0tBQ0YsRUFDRDtRQUNFLEtBQUssRUFBRSxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUM7UUFDdEMsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixLQUFLLEVBQUU7WUFDTCxpQ0FBaUMsRUFBRTtnQkFDakMsT0FBTztnQkFDUCxFQUFFLGVBQWUsRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUU7YUFDbEQ7U0FDRjtLQUNGLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLGtCQUFrQixDQUN6QixPQUFnQyxFQUNoQyxLQUEwQztJQUUxQyxNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sV0FBVyxHQUFHLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRWxELE9BQU8sWUFBWSxDQUFDLEdBQUcsYUFBYSxFQUFFLEdBQUcscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDO0FBRUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpbnRlciB9IGZyb20gXCJlc2xpbnRcIjtcclxuXHJcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJlc2xpbnQvY29uZmlnXCI7XHJcblxyXG4vKiogRmlsZSBnbG9icyB0aGF0IEpTRG9jIGxpbnRpbmcgYXBwbGllcyB0by4gKi9cclxuY29uc3QganNkb2NGaWxlR2xvYnMgPSBbXCIqKi8qLnRzXCJdO1xyXG5cclxuLyoqIFVwc3RyZWFtIEpTRG9jIGZsYXQgcHJlc2V0IG5hbWVzIGNvbnN1bWVkIGJ5IHRoaXMgY29uZmlnLiAqL1xyXG5jb25zdCBqc2RvY1ByZXNldE5hbWVzID0gW1xyXG4gIFwiZmxhdC9yZWNvbW1lbmRlZC10eXBlc2NyaXB0LWVycm9yXCIsXHJcbiAgXCJmbGF0L2NvbnRlbnRzLXR5cGVzY3JpcHQtZXJyb3JcIixcclxuICBcImZsYXQvbG9naWNhbC10eXBlc2NyaXB0LWVycm9yXCIsXHJcbiAgXCJmbGF0L3JlcXVpcmVtZW50cy10eXBlc2NyaXB0LWVycm9yXCIsXHJcbiAgXCJmbGF0L3N0eWxpc3RpYy10eXBlc2NyaXB0LWVycm9yXCIsXHJcbl0gYXMgY29uc3Q7XHJcblxyXG4vKiogUmVwby1vd25lZCBKU0RvYyBydWxlcyBlbmFibGVkIHdoZW4gdGhlIHBsdWdpbiBleHBvc2VzIHRoZW0uICovXHJcbmNvbnN0IGpzZG9jRXJyb3JSdWxlTmFtZXMgPSBbXHJcbiAgXCJjaGVjay1pbmRlbnRhdGlvblwiLFxyXG4gIFwiY29udmVydC10by1qc2RvYy1jb21tZW50c1wiLFxyXG4gIFwicmVxdWlyZS1kZXNjcmlwdGlvblwiLFxyXG4gIFwicmVxdWlyZS1kZXNjcmlwdGlvbi1jb21wbGV0ZS1zZW50ZW5jZVwiLFxyXG4gIFwicmVxdWlyZS10ZW1wbGF0ZVwiLFxyXG4gIFwicmVxdWlyZS10aHJvd3NcIixcclxuICBcInNvcnQtdGFnc1wiLFxyXG5dO1xyXG5cclxuLyoqIEFTVCBjb250ZXh0cyB0aGF0IG11c3QgaW5jbHVkZSBKU0RvYy4gKi9cclxuY29uc3QgcmVxdWlyZUpzZG9jQ29udGV4dHMgPSBbXHJcbiAgXCJQcm9ncmFtID4gRnVuY3Rpb25EZWNsYXJhdGlvblwiLFxyXG4gIFwiUHJvZ3JhbSA+IEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbiA+IEZ1bmN0aW9uRGVjbGFyYXRpb25cIixcclxuICBcIlByb2dyYW0gPiBFeHBvcnROYW1lZERlY2xhcmF0aW9uID4gRnVuY3Rpb25EZWNsYXJhdGlvblwiLFxyXG4gIFwiUHJvZ3JhbSA+IFZhcmlhYmxlRGVjbGFyYXRpb25cIixcclxuICAnUHJvZ3JhbSA+IEV4cG9ydE5hbWVkRGVjbGFyYXRpb25bZGVjbGFyYXRpb24udHlwZT1cIlZhcmlhYmxlRGVjbGFyYXRpb25cIl0nLFxyXG4gIFwiVFNJbnRlcmZhY2VEZWNsYXJhdGlvblwiLFxyXG4gIFwiVFNUeXBlQWxpYXNEZWNsYXJhdGlvblwiLFxyXG4gIFwiVFNQcm9wZXJ0eVNpZ25hdHVyZVwiLFxyXG4gIFwiVFNNZXRob2RTaWduYXR1cmVcIixcclxuICBcIlRTQ2FsbFNpZ25hdHVyZURlY2xhcmF0aW9uXCIsXHJcbiAgXCJUU0NvbnN0cnVjdFNpZ25hdHVyZURlY2xhcmF0aW9uXCIsXHJcbiAgXCJUU0luZGV4U2lnbmF0dXJlXCIsXHJcbl07XHJcblxyXG4vKipcclxuICogQnVpbGQgdGhlIGN1c3RvbSBqc2RvYyBlcnJvciBydWxlcyBiYXNlZCBvbiBhdmFpbGFibGUgcGx1Z2luIHJ1bGVzLlxyXG4gKiBAcGFyYW0gYXZhaWxhYmxlUnVsZXMgU2V0IG9mIGF2YWlsYWJsZSBqc2RvYyBydWxlIG5hbWVzLlxyXG4gKiBAcmV0dXJucyBUaGUgcnVsZXMgcmVjb3JkIGZvciBFU0xpbnQuXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogIGNvbnNvbGUubG9nKGJ1aWxkQ3VzdG9tRXJyb3JSdWxlcyhuZXcgU2V0KFtcInJlcXVpcmUtdGhyb3dzXCJdKSkpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGJ1aWxkQ3VzdG9tRXJyb3JSdWxlcyhcclxuICBhdmFpbGFibGVSdWxlczogU2V0PHN0cmluZz4sXHJcbik6IExpbnRlci5SdWxlc1JlY29yZCB7XHJcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcclxuICAgIGpzZG9jRXJyb3JSdWxlTmFtZXNcclxuICAgICAgLmZpbHRlcigocnVsZSkgPT4gYXZhaWxhYmxlUnVsZXMuaGFzKHJ1bGUpKVxyXG4gICAgICAubWFwKChydWxlKSA9PiBbYGpzZG9jLyR7cnVsZX1gLCBcImVycm9yXCJdIGFzIGNvbnN0KSxcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogU2VsZWN0IG9ubHkgdGhlIHVwc3RyZWFtIGZsYXQgcHJlc2V0cyB0aGF0IGFyZSBhdmFpbGFibGUgaW4gdGhlIGN1cnJlbnQgcGx1Z2luIHZlcnNpb24uXHJcbiAqIEBwYXJhbSBjb25maWdzIFVwc3RyZWFtIEpTRG9jIGNvbmZpZyBtYXAuXHJcbiAqIEByZXR1cm5zIFRoZSBhdmFpbGFibGUgZmxhdCBwcmVzZXRzLlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqICBjb25zb2xlLmxvZyhidWlsZFByZXNldENvbmZpZ3MoeyBcImZsYXQvcmVjb21tZW5kZWQtdHlwZXNjcmlwdC1lcnJvclwiOiB7fSBhcyBMaW50ZXIuQ29uZmlnIH0pLmxlbmd0aCk7XHJcbiAqIGBgYFxyXG4gKi9cclxuZnVuY3Rpb24gYnVpbGRQcmVzZXRDb25maWdzKGNvbmZpZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogTGludGVyLkNvbmZpZ1tdIHtcclxuICByZXR1cm4ganNkb2NQcmVzZXROYW1lcy5mbGF0TWFwKChjb25maWdOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBjb25maWcgPSBjb25maWdzW2NvbmZpZ05hbWVdO1xyXG5cclxuICAgIGlmICh0eXBlb2YgY29uZmlnICE9PSBcIm9iamVjdFwiIHx8IEFycmF5LmlzQXJyYXkoY29uZmlnKSkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFt7IC4uLmNvbmZpZywgZmlsZXM6IGpzZG9jRmlsZUdsb2JzIH1dO1xyXG4gIH0pO1xyXG59XHJcblxyXG4vKipcclxuICogQnVpbGQgdGhlIGZpbmFsIHJlcG8tb3duZWQgSlNEb2MgY29uZmlncyBvbiB0b3Agb2YgdGhlIHVwc3RyZWFtIHByZXNldHMuXHJcbiAqIEBwYXJhbSBjdXN0b21FcnJvciBSZXBvLW93bmVkIEpTRG9jIHJ1bGUgb3ZlcnJpZGVzLlxyXG4gKiBAcmV0dXJucyBUaGUgZmluYWwgRVNMaW50IGNvbmZpZyBhcnJheS5cclxuICogQGV4YW1wbGVcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiAgY29uc29sZS5sb2coYnVpbGRSZXBvSnNkb2NDb25maWdzKHt9KS5sZW5ndGgpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGJ1aWxkUmVwb0pzZG9jQ29uZmlncyhcclxuICBjdXN0b21FcnJvcjogTGludGVyLlJ1bGVzUmVjb3JkLFxyXG4pOiBMaW50ZXIuQ29uZmlnW10ge1xyXG4gIHJldHVybiBkZWZpbmVDb25maWcoXHJcbiAgICB7XHJcbiAgICAgIGZpbGVzOiBqc2RvY0ZpbGVHbG9icyxcclxuICAgICAgbmFtZTogXCJqc2RvYy9jdXN0b21cIixcclxuICAgICAgcnVsZXM6IHtcclxuICAgICAgICAuLi5jdXN0b21FcnJvcixcclxuICAgICAgICBcImpzZG9jL2NvbnZlcnQtdG8tanNkb2MtY29tbWVudHNcIjogW1xyXG4gICAgICAgICAgXCJlcnJvclwiLFxyXG4gICAgICAgICAgeyBlbmZvcmNlSnNkb2NMaW5lU3R5bGU6IFwic2luZ2xlXCIgfSxcclxuICAgICAgICBdLFxyXG4gICAgICAgIFwianNkb2MvdGV4dC1lc2NhcGluZ1wiOiBcIm9mZlwiLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgZmlsZXM6IGpzZG9jRmlsZUdsb2JzLFxyXG4gICAgICBuYW1lOiBcImpzZG9jL3JlcXVpcmUtanNkb2MtYWxpYXNcIixcclxuICAgICAgcnVsZXM6IHtcclxuICAgICAgICBcImpzZG9jL3JlcXVpcmUtZGVzY3JpcHRpb25cIjogW1xyXG4gICAgICAgICAgXCJlcnJvclwiLFxyXG4gICAgICAgICAgeyBjb250ZXh0czogcmVxdWlyZUpzZG9jQ29udGV4dHMgfSxcclxuICAgICAgICBdLFxyXG4gICAgICAgIFwianNkb2MvcmVxdWlyZS1qc2RvY1wiOiBbXCJlcnJvclwiLCB7IGNvbnRleHRzOiByZXF1aXJlSnNkb2NDb250ZXh0cyB9XSxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGZpbGVzOiBbXCIqKi8qLnNwZWMudHNcIiwgXCIqKi8qLmUyZS50c1wiXSxcclxuICAgICAgbmFtZTogXCJqc2RvYy9jdXN0b20tc3BlY1wiLFxyXG4gICAgICBydWxlczoge1xyXG4gICAgICAgIFwianNkb2MvY29udmVydC10by1qc2RvYy1jb21tZW50c1wiOiBbXHJcbiAgICAgICAgICBcImVycm9yXCIsXHJcbiAgICAgICAgICB7IGFsbG93ZWRQcmVmaXhlczogW1wiQXJyYW5nZVwiLCBcIkFjdFwiLCBcIkFzc2VydFwiXSB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBCdWlsZCB0aGUgcmVwbydzIGZpbmFsIEpTRG9jIGNvbmZpZ3MgZnJvbSBhbiB1cHN0cmVhbSBwbHVnaW4gc2hhcGUuXHJcbiAqIEBwYXJhbSBjb25maWdzIFVwc3RyZWFtIEpTRG9jIGNvbmZpZyBtYXAuXHJcbiAqIEBwYXJhbSBydWxlcyBVcHN0cmVhbSBKU0RvYyBydWxlcyBtYXAuXHJcbiAqIEByZXR1cm5zIFRoZSBmaW5hbCBFU0xpbnQgY29uZmlnIGFycmF5LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqICBjb25zb2xlLmxvZyhjcmVhdGVKc2RvY0NvbmZpZ3Moe30sIHt9KS5sZW5ndGgpO1xyXG4gKiBgYGBcclxuICovXHJcbmZ1bmN0aW9uIGNyZWF0ZUpzZG9jQ29uZmlncyhcclxuICBjb25maWdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcclxuICBydWxlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQsXHJcbik6IExpbnRlci5Db25maWdbXSB7XHJcbiAgY29uc3QgYXZhaWxhYmxlUnVsZXMgPSBuZXcgU2V0KE9iamVjdC5rZXlzKHJ1bGVzID8/IHt9KSk7XHJcbiAgY29uc3QgY3VzdG9tRXJyb3IgPSBidWlsZEN1c3RvbUVycm9yUnVsZXMoYXZhaWxhYmxlUnVsZXMpO1xyXG4gIGNvbnN0IHByZXNldENvbmZpZ3MgPSBidWlsZFByZXNldENvbmZpZ3MoY29uZmlncyk7XHJcblxyXG4gIHJldHVybiBkZWZpbmVDb25maWcoLi4ucHJlc2V0Q29uZmlncywgLi4uYnVpbGRSZXBvSnNkb2NDb25maWdzKGN1c3RvbUVycm9yKSk7XHJcbn1cclxuXHJcbmV4cG9ydCB7IGNyZWF0ZUpzZG9jQ29uZmlncyB9O1xyXG4iXX0=
|