@codeperfect/eslint-config 1.8.0 → 1.10.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 +20 -29
- package/dist/.tsbuildinfo +1 -1
- package/dist/bootstrap/index.d.ts +3 -0
- package/dist/bootstrap/index.d.ts.map +1 -0
- package/dist/bootstrap/index.js +2 -0
- package/dist/codeperfect-eslint-config-1.0.0.tgz +0 -0
- package/dist/domain/index.d.ts +1 -1
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +1 -1
- package/dist/domain/types.d.ts +7 -37
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/domain/types.js +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/infrastructure/architecture/boundaries.d.ts +17 -12
- package/dist/infrastructure/architecture/boundaries.d.ts.map +1 -1
- package/dist/infrastructure/architecture/boundaries.js +42 -116
- package/dist/infrastructure/architecture/import-x.d.ts.map +1 -1
- package/dist/infrastructure/architecture/import-x.js +8 -19
- package/dist/infrastructure/config-factory.d.ts +1 -1
- package/dist/infrastructure/config-factory.d.ts.map +1 -1
- package/dist/infrastructure/config-factory.js +8 -6
- package/dist/infrastructure/core/eslint.d.ts.map +1 -1
- package/dist/infrastructure/core/eslint.js +13 -3
- package/dist/infrastructure/core/typescript.d.ts.map +1 -1
- package/dist/infrastructure/core/typescript.js +5 -1
- package/dist/infrastructure/diagnostics.d.ts +4 -14
- package/dist/infrastructure/diagnostics.d.ts.map +1 -1
- package/dist/infrastructure/diagnostics.js +8 -23
- package/dist/infrastructure/index.d.ts +1 -1
- package/dist/infrastructure/index.d.ts.map +1 -1
- package/dist/infrastructure/index.js +1 -1
- package/dist/infrastructure/plugin-loaders.d.ts +1 -1
- package/dist/infrastructure/plugin-loaders.d.ts.map +1 -1
- package/dist/infrastructure/plugin-loaders.js +4 -3
- package/dist/infrastructure/plugin-state.d.ts.map +1 -1
- package/dist/infrastructure/plugin-state.js +1 -1
- package/dist/infrastructure/utilities.d.ts +1 -23
- package/dist/infrastructure/utilities.d.ts.map +1 -1
- package/dist/infrastructure/utilities.js +3 -89
- package/package.json +12 -14
package/README.md
CHANGED
|
@@ -74,34 +74,25 @@ export default config({
|
|
|
74
74
|
});
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
{ allow: ["domain"], from: ["app"] },
|
|
97
|
-
],
|
|
98
|
-
},
|
|
99
|
-
],
|
|
100
|
-
},
|
|
101
|
-
});
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
If that topology is missing or incomplete, the `boundaries` module is skipped and the package reports a targeted warning.
|
|
77
|
+
The `boundaries` module is package-owned and always uses this topology:
|
|
78
|
+
|
|
79
|
+
- `entrypoint`: `src/index.ts`
|
|
80
|
+
- `bootstrap`: `src/bootstrap/**`
|
|
81
|
+
- `presentation`: `src/presentation/**`
|
|
82
|
+
- `infrastructure`: `src/infrastructure/**`
|
|
83
|
+
- `application`: `src/application/**`
|
|
84
|
+
- `domain`: `src/domain/**`
|
|
85
|
+
- `shared`: `src/shared/**`
|
|
86
|
+
|
|
87
|
+
Directional dependency rules are fixed:
|
|
88
|
+
|
|
89
|
+
- `entrypoint -> bootstrap`
|
|
90
|
+
- `bootstrap -> presentation | infrastructure | application | domain | shared`
|
|
91
|
+
- `presentation -> application | domain | shared`
|
|
92
|
+
- `infrastructure -> application | domain | shared`
|
|
93
|
+
- `application -> domain | shared`
|
|
94
|
+
- `domain -> shared`
|
|
95
|
+
- `shared -> shared`
|
|
105
96
|
|
|
106
97
|
## Composition order
|
|
107
98
|
|
|
@@ -147,7 +138,7 @@ This order is intentional and validated in tests.
|
|
|
147
138
|
| `perfectionist` | `eslint-plugin-perfectionist` | Optional ordering rules. |
|
|
148
139
|
| `unicorn` | `eslint-plugin-unicorn` | Optional general best-practice rules. |
|
|
149
140
|
| `prettier` | `eslint-plugin-prettier` | Optional Prettier integration. |
|
|
150
|
-
| `boundaries` | `eslint-plugin-boundaries` | Optional,
|
|
141
|
+
| `boundaries` | `eslint-plugin-boundaries` | Optional, package-owned architecture overlay. |
|
|
151
142
|
|
|
152
143
|
## Validation
|
|
153
144
|
|
package/dist/.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/index.ts","../src/domain/config-composition.ts","../src/domain/index.ts","../src/domain/module-taxonomy.ts","../src/domain/types.ts","../src/infrastructure/config-factory.ts","../src/infrastructure/diagnostics.ts","../src/infrastructure/index.ts","../src/infrastructure/plugin-loaders.ts","../src/infrastructure/plugin-state.ts","../src/infrastructure/rxjs-x.ts","../src/infrastructure/utilities.ts","../src/infrastructure/architecture/boundaries.ts","../src/infrastructure/architecture/import-x.ts","../src/infrastructure/architecture/index.ts","../src/infrastructure/configs/index.ts","../src/infrastructure/core/codeperfect.ts","../src/infrastructure/core/eslint.ts","../src/infrastructure/core/index.ts","../src/infrastructure/core/resolver.ts","../src/infrastructure/core/typescript.ts","../src/infrastructure/docs/comments.ts","../src/infrastructure/docs/index.ts","../src/infrastructure/docs/jsdoc-config.ts","../src/infrastructure/docs/jsdoc.ts","../src/infrastructure/runtime/angular-eslint.ts","../src/infrastructure/runtime/index.ts","../src/infrastructure/style/index.ts","../src/infrastructure/style/perfectionist.ts","../src/infrastructure/style/prettier.ts","../src/infrastructure/style/stylistic.ts","../src/infrastructure/style/unicorn.ts","../src/infrastructure/testing/index.ts","../src/infrastructure/testing/jasmine.ts","../src/infrastructure/testing/jest.ts","../src/infrastructure/testing/playwright.ts","../src/infrastructure/testing/vitest-e2e.ts","../src/infrastructure/testing/vitest.ts","../eslint-plugin-jasmine.d.ts"],"version":"6.0.3"}
|
|
1
|
+
{"root":["../src/index.ts","../src/bootstrap/index.ts","../src/domain/config-composition.ts","../src/domain/index.ts","../src/domain/module-taxonomy.ts","../src/domain/types.ts","../src/infrastructure/config-factory.ts","../src/infrastructure/diagnostics.ts","../src/infrastructure/index.ts","../src/infrastructure/plugin-loaders.ts","../src/infrastructure/plugin-state.ts","../src/infrastructure/rxjs-x.ts","../src/infrastructure/utilities.ts","../src/infrastructure/architecture/boundaries.ts","../src/infrastructure/architecture/import-x.ts","../src/infrastructure/architecture/index.ts","../src/infrastructure/configs/index.ts","../src/infrastructure/core/codeperfect.ts","../src/infrastructure/core/eslint.ts","../src/infrastructure/core/index.ts","../src/infrastructure/core/resolver.ts","../src/infrastructure/core/typescript.ts","../src/infrastructure/docs/comments.ts","../src/infrastructure/docs/index.ts","../src/infrastructure/docs/jsdoc-config.ts","../src/infrastructure/docs/jsdoc.ts","../src/infrastructure/runtime/angular-eslint.ts","../src/infrastructure/runtime/index.ts","../src/infrastructure/style/index.ts","../src/infrastructure/style/perfectionist.ts","../src/infrastructure/style/prettier.ts","../src/infrastructure/style/stylistic.ts","../src/infrastructure/style/unicorn.ts","../src/infrastructure/testing/index.ts","../src/infrastructure/testing/jasmine.ts","../src/infrastructure/testing/jest.ts","../src/infrastructure/testing/playwright.ts","../src/infrastructure/testing/vitest-e2e.ts","../src/infrastructure/testing/vitest.ts","../eslint-plugin-jasmine.d.ts"],"version":"6.0.3"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bootstrap/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { config, defaultBoundariesConfig } from "../infrastructure/index.js";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYm9vdHN0cmFwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGNvbmZpZywgZGVmYXVsdEJvdW5kYXJpZXNDb25maWcgfSBmcm9tIFwiLi4vaW5mcmFzdHJ1Y3R1cmVcIjtcbmV4cG9ydCB0eXBlIHsgQ29uZmlnT3B0aW9ucywgUGx1Z2luU3RhdGVPdmVycmlkZXMgfSBmcm9tIFwiLi4vaW5mcmFzdHJ1Y3R1cmVcIjtcbiJdfQ==
|
|
Binary file
|
package/dist/domain/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { defaultCompositionNames, fullCompositionNames, reducedCompositionNames, } from "./config-composition.js";
|
|
2
2
|
export { moduleTaxonomy } from "./module-taxonomy.js";
|
|
3
|
-
export type {
|
|
3
|
+
export type { BoundariesElementTypesOptions, BoundariesElementTypesRuleEntry, ConfigOptions, DefaultDisabledPluginName, PluginName, PluginStateOverrides, } from "./types.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EACV,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EACV,6BAA6B,EAC7B,+BAA+B,EAC/B,aAAa,EACb,yBAAyB,EACzB,UAAU,EACV,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
|
package/dist/domain/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { defaultCompositionNames, fullCompositionNames, reducedCompositionNames, } from "./config-composition.js";
|
|
2
2
|
export { moduleTaxonomy } from "./module-taxonomy.js";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9tYWluL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLHVCQUF1QixHQUN4QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIGRlZmF1bHRDb21wb3NpdGlvbk5hbWVzLFxuICBmdWxsQ29tcG9zaXRpb25OYW1lcyxcbiAgcmVkdWNlZENvbXBvc2l0aW9uTmFtZXMsXG59IGZyb20gXCIuL2NvbmZpZy1jb21wb3NpdGlvblwiO1xuZXhwb3J0IHsgbW9kdWxlVGF4b25vbXkgfSBmcm9tIFwiLi9tb2R1bGUtdGF4b25vbXlcIjtcbmV4cG9ydCB0eXBlIHtcbiAgQm91bmRhcmllc0VsZW1lbnRUeXBlc09wdGlvbnMsXG4gIEJvdW5kYXJpZXNFbGVtZW50VHlwZXNSdWxlRW50cnksXG4gIENvbmZpZ09wdGlvbnMsXG4gIERlZmF1bHREaXNhYmxlZFBsdWdpbk5hbWUsXG4gIFBsdWdpbk5hbWUsXG4gIFBsdWdpblN0YXRlT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi90eXBlc1wiO1xuIl19
|
package/dist/domain/types.d.ts
CHANGED
|
@@ -1,34 +1,7 @@
|
|
|
1
1
|
import type { Linter } from "eslint";
|
|
2
|
-
import type { DependenciesRuleOptions
|
|
2
|
+
import type { DependenciesRuleOptions } from "eslint-plugin-boundaries";
|
|
3
3
|
/** Type definition for rule data. */
|
|
4
4
|
type ArchitecturePluginName = "boundaries" | "import-x";
|
|
5
|
-
/** Type definition for rule data. */
|
|
6
|
-
interface BoundariesConfig {
|
|
7
|
-
/** Repository-owned element descriptors for boundaries analysis. */
|
|
8
|
-
elements?: ElementDescriptors;
|
|
9
|
-
/** Repository-owned dependency direction rules for boundaries analysis. */
|
|
10
|
-
elementTypes?: BoundariesElementTypesRuleEntry;
|
|
11
|
-
/** Optional additive extensions applied after the repository defaults. */
|
|
12
|
-
extend?: BoundariesConfigExtension;
|
|
13
|
-
/** Files included in repository-specific boundaries analysis. */
|
|
14
|
-
files?: readonly string[];
|
|
15
|
-
/** Optional ignore globs excluded from repository-specific boundaries analysis. */
|
|
16
|
-
ignores?: readonly string[];
|
|
17
|
-
}
|
|
18
|
-
/** Type definition for additive boundaries extension fields. */
|
|
19
|
-
interface BoundariesConfigExtension {
|
|
20
|
-
/** Additional repository-owned element descriptors appended to the defaults. */
|
|
21
|
-
elements?: ElementDescriptors;
|
|
22
|
-
/**
|
|
23
|
-
* Additional dependency direction rules appended to the default rule set.
|
|
24
|
-
* Only additive dependency rules are supported here.
|
|
25
|
-
*/
|
|
26
|
-
elementTypes?: Pick<BoundariesElementTypesOptions, "rules">;
|
|
27
|
-
/** Additional files appended to the default file globs. */
|
|
28
|
-
files?: readonly string[];
|
|
29
|
-
/** Additional ignore globs appended to the default ignore list. */
|
|
30
|
-
ignores?: readonly string[];
|
|
31
|
-
}
|
|
32
5
|
/** Dependency rule options object used by the boundaries plugin. */
|
|
33
6
|
type BoundariesElementTypesOptions = DependenciesRuleOptions;
|
|
34
7
|
/** Rule entry shape used for repository-owned boundaries dependency rules. */
|
|
@@ -38,18 +11,15 @@ type BoundariesElementTypesRuleEntry = [
|
|
|
38
11
|
];
|
|
39
12
|
/** Type definition for rule data. */
|
|
40
13
|
interface ConfigOptions {
|
|
41
|
-
/** Repository-owned architecture input for the optional `boundaries` module. */
|
|
42
|
-
boundaries?: BoundariesConfig;
|
|
43
14
|
/** Explicit plugin state overrides keyed by public plugin name. */
|
|
44
15
|
plugins?: PluginStateOverrides;
|
|
45
|
-
/**
|
|
46
|
-
* Rules to disable or override.
|
|
47
|
-
* Use 'off' to disable, or provide custom configuration.
|
|
48
|
-
*/
|
|
49
|
-
rules?: Linter.RulesRecord;
|
|
50
16
|
}
|
|
51
17
|
/** Type definition for rule data. */
|
|
52
18
|
type CorePluginName = "codeperfect" | "eslint" | "resolver" | "typescript";
|
|
19
|
+
/** Plugins that are disabled by default and can only be explicitly enabled. */
|
|
20
|
+
type DefaultDisabledPluginName = "angular-eslint" | "jasmine" | "jest" | "vitest-e2e";
|
|
21
|
+
/** Plugins that are enabled by default and can only be explicitly disabled. */
|
|
22
|
+
type DefaultEnabledPluginName = Exclude<PluginName, DefaultDisabledPluginName>;
|
|
53
23
|
/** Type definition for rule data. */
|
|
54
24
|
type DocumentationPluginName = "comments" | "jsdoc";
|
|
55
25
|
/** Type definition for rule data. */
|
|
@@ -57,12 +27,12 @@ type DomainPluginName = "rxjs-x";
|
|
|
57
27
|
/** Type definition for rule data. */
|
|
58
28
|
type PluginName = ArchitecturePluginName | CorePluginName | DocumentationPluginName | DomainPluginName | RuntimePluginName | StylePluginName | TestingPluginName;
|
|
59
29
|
/** Type definition for explicit plugin state overrides. */
|
|
60
|
-
type PluginStateOverrides = Partial<Record<
|
|
30
|
+
type PluginStateOverrides = Partial<Record<DefaultDisabledPluginName, true> & Record<DefaultEnabledPluginName, false>>;
|
|
61
31
|
/** Type definition for rule data. */
|
|
62
32
|
type RuntimePluginName = "angular-eslint";
|
|
63
33
|
/** Type definition for rule data. */
|
|
64
34
|
type StylePluginName = "perfectionist" | "prettier" | "stylistic" | "unicorn";
|
|
65
35
|
/** Type definition for rule data. */
|
|
66
36
|
type TestingPluginName = "jasmine" | "jest" | "playwright" | "vitest" | "vitest-e2e";
|
|
67
|
-
export type {
|
|
37
|
+
export type { BoundariesElementTypesOptions, BoundariesElementTypesRuleEntry, ConfigOptions, DefaultDisabledPluginName, PluginName, PluginStateOverrides, };
|
|
68
38
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/domain/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/domain/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAExE,qCAAqC;AACrC,KAAK,sBAAsB,GAAG,YAAY,GAAG,UAAU,CAAC;AAExD,oEAAoE;AACpE,KAAK,6BAA6B,GAAG,uBAAuB,CAAC;AAE7D,8EAA8E;AAC9E,KAAK,+BAA+B,GAAG;IACrC,MAAM,CAAC,YAAY;IACnB,6BAA6B;CAC9B,CAAC;AAEF,qCAAqC;AACrC,UAAU,aAAa;IACrB,mEAAmE;IACnE,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED,qCAAqC;AACrC,KAAK,cAAc,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3E,+EAA+E;AAC/E,KAAK,yBAAyB,GAC1B,gBAAgB,GAChB,SAAS,GACT,MAAM,GACN,YAAY,CAAC;AAEjB,+EAA+E;AAC/E,KAAK,wBAAwB,GAAG,OAAO,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAC;AAE/E,qCAAqC;AACrC,KAAK,uBAAuB,GAAG,UAAU,GAAG,OAAO,CAAC;AAEpD,qCAAqC;AACrC,KAAK,gBAAgB,GAAG,QAAQ,CAAC;AAEjC,qCAAqC;AACrC,KAAK,UAAU,GACX,sBAAsB,GACtB,cAAc,GACd,uBAAuB,GACvB,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,iBAAiB,CAAC;AAEtB,2DAA2D;AAC3D,KAAK,oBAAoB,GAAG,OAAO,CACjC,MAAM,CAAC,yBAAyB,EAAE,IAAI,CAAC,GACrC,MAAM,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAC1C,CAAC;AAEF,qCAAqC;AACrC,KAAK,iBAAiB,GAAG,gBAAgB,CAAC;AAC1C,qCAAqC;AACrC,KAAK,eAAe,GAAG,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;AAE9E,qCAAqC;AACrC,KAAK,iBAAiB,GAClB,SAAS,GACT,MAAM,GACN,YAAY,GACZ,QAAQ,GACR,YAAY,CAAC;AAEjB,YAAY,EACV,6BAA6B,EAC7B,+BAA+B,EAC/B,aAAa,EACb,yBAAyB,EACzB,UAAU,EACV,oBAAoB,GACrB,CAAC"}
|
package/dist/domain/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9tYWluL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpbnRlciB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCB0eXBlIHsgRGVwZW5kZW5jaWVzUnVsZU9wdGlvbnMgfSBmcm9tIFwiZXNsaW50LXBsdWdpbi1ib3VuZGFyaWVzXCI7XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbnR5cGUgQXJjaGl0ZWN0dXJlUGx1Z2luTmFtZSA9IFwiYm91bmRhcmllc1wiIHwgXCJpbXBvcnQteFwiO1xuXG4vKiogRGVwZW5kZW5jeSBydWxlIG9wdGlvbnMgb2JqZWN0IHVzZWQgYnkgdGhlIGJvdW5kYXJpZXMgcGx1Z2luLiAqL1xudHlwZSBCb3VuZGFyaWVzRWxlbWVudFR5cGVzT3B0aW9ucyA9IERlcGVuZGVuY2llc1J1bGVPcHRpb25zO1xuXG4vKiogUnVsZSBlbnRyeSBzaGFwZSB1c2VkIGZvciByZXBvc2l0b3J5LW93bmVkIGJvdW5kYXJpZXMgZGVwZW5kZW5jeSBydWxlcy4gKi9cbnR5cGUgQm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeSA9IFtcbiAgTGludGVyLlJ1bGVTZXZlcml0eSxcbiAgQm91bmRhcmllc0VsZW1lbnRUeXBlc09wdGlvbnMsXG5dO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgQ29uZmlnT3B0aW9ucyB7XG4gIC8qKiBFeHBsaWNpdCBwbHVnaW4gc3RhdGUgb3ZlcnJpZGVzIGtleWVkIGJ5IHB1YmxpYyBwbHVnaW4gbmFtZS4gKi9cbiAgcGx1Z2lucz86IFBsdWdpblN0YXRlT3ZlcnJpZGVzO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIENvcmVQbHVnaW5OYW1lID0gXCJjb2RlcGVyZmVjdFwiIHwgXCJlc2xpbnRcIiB8IFwicmVzb2x2ZXJcIiB8IFwidHlwZXNjcmlwdFwiO1xuXG4vKiogUGx1Z2lucyB0aGF0IGFyZSBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBjYW4gb25seSBiZSBleHBsaWNpdGx5IGVuYWJsZWQuICovXG50eXBlIERlZmF1bHREaXNhYmxlZFBsdWdpbk5hbWUgPVxuICB8IFwiYW5ndWxhci1lc2xpbnRcIlxuICB8IFwiamFzbWluZVwiXG4gIHwgXCJqZXN0XCJcbiAgfCBcInZpdGVzdC1lMmVcIjtcblxuLyoqIFBsdWdpbnMgdGhhdCBhcmUgZW5hYmxlZCBieSBkZWZhdWx0IGFuZCBjYW4gb25seSBiZSBleHBsaWNpdGx5IGRpc2FibGVkLiAqL1xudHlwZSBEZWZhdWx0RW5hYmxlZFBsdWdpbk5hbWUgPSBFeGNsdWRlPFBsdWdpbk5hbWUsIERlZmF1bHREaXNhYmxlZFBsdWdpbk5hbWU+O1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIERvY3VtZW50YXRpb25QbHVnaW5OYW1lID0gXCJjb21tZW50c1wiIHwgXCJqc2RvY1wiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIERvbWFpblBsdWdpbk5hbWUgPSBcInJ4anMteFwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIFBsdWdpbk5hbWUgPVxuICB8IEFyY2hpdGVjdHVyZVBsdWdpbk5hbWVcbiAgfCBDb3JlUGx1Z2luTmFtZVxuICB8IERvY3VtZW50YXRpb25QbHVnaW5OYW1lXG4gIHwgRG9tYWluUGx1Z2luTmFtZVxuICB8IFJ1bnRpbWVQbHVnaW5OYW1lXG4gIHwgU3R5bGVQbHVnaW5OYW1lXG4gIHwgVGVzdGluZ1BsdWdpbk5hbWU7XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIGV4cGxpY2l0IHBsdWdpbiBzdGF0ZSBvdmVycmlkZXMuICovXG50eXBlIFBsdWdpblN0YXRlT3ZlcnJpZGVzID0gUGFydGlhbDxcbiAgUmVjb3JkPERlZmF1bHREaXNhYmxlZFBsdWdpbk5hbWUsIHRydWU+ICZcbiAgICBSZWNvcmQ8RGVmYXVsdEVuYWJsZWRQbHVnaW5OYW1lLCBmYWxzZT5cbj47XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbnR5cGUgUnVudGltZVBsdWdpbk5hbWUgPSBcImFuZ3VsYXItZXNsaW50XCI7XG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIFN0eWxlUGx1Z2luTmFtZSA9IFwicGVyZmVjdGlvbmlzdFwiIHwgXCJwcmV0dGllclwiIHwgXCJzdHlsaXN0aWNcIiB8IFwidW5pY29yblwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIFRlc3RpbmdQbHVnaW5OYW1lID1cbiAgfCBcImphc21pbmVcIlxuICB8IFwiamVzdFwiXG4gIHwgXCJwbGF5d3JpZ2h0XCJcbiAgfCBcInZpdGVzdFwiXG4gIHwgXCJ2aXRlc3QtZTJlXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQm91bmRhcmllc0VsZW1lbnRUeXBlc09wdGlvbnMsXG4gIEJvdW5kYXJpZXNFbGVtZW50VHlwZXNSdWxlRW50cnksXG4gIENvbmZpZ09wdGlvbnMsXG4gIERlZmF1bHREaXNhYmxlZFBsdWdpbk5hbWUsXG4gIFBsdWdpbk5hbWUsXG4gIFBsdWdpblN0YXRlT3ZlcnJpZGVzLFxufTtcbiJdfQ==
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export { config, defaultBoundariesConfig } from "./
|
|
2
|
-
export type { BoundariesConfig, ConfigOptions, PluginStateOverrides, } from "./infrastructure/index.js";
|
|
1
|
+
export { config, type ConfigOptions, defaultBoundariesConfig, type PluginStateOverrides, } from "./bootstrap/index.js";
|
|
3
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,aAAa,EAClB,uBAAuB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { config, defaultBoundariesConfig } from "./
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export { config, defaultBoundariesConfig, } from "./bootstrap/index.js";
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE1BQU0sRUFFTix1QkFBdUIsR0FFeEIsTUFBTSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBjb25maWcsXG4gIHR5cGUgQ29uZmlnT3B0aW9ucyxcbiAgZGVmYXVsdEJvdW5kYXJpZXNDb25maWcsXG4gIHR5cGUgUGx1Z2luU3RhdGVPdmVycmlkZXMsXG59IGZyb20gXCIuL2Jvb3RzdHJhcFwiO1xuIl19
|
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
import type { Linter } from "eslint";
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import type { ElementDescriptors } from "eslint-plugin-boundaries";
|
|
3
|
+
import type { BoundariesElementTypesRuleEntry } from "../../domain/index.js";
|
|
4
|
+
/** Fixed boundaries topology used by this package. */
|
|
5
|
+
interface BoundariesConfig {
|
|
6
|
+
/** Layer descriptors consumed by eslint-plugin-boundaries. */
|
|
7
|
+
elements: ElementDescriptors;
|
|
8
|
+
/** Rule entry used by boundaries/dependencies. */
|
|
9
|
+
elementTypes: BoundariesElementTypesRuleEntry;
|
|
10
|
+
/** Source globs included in boundaries checks. */
|
|
11
|
+
files: readonly string[];
|
|
12
|
+
/** Source globs excluded from boundaries checks. */
|
|
13
|
+
ignores: readonly string[];
|
|
14
|
+
}
|
|
5
15
|
/** Repository default boundaries topology aligned with Clean Architecture. */
|
|
6
|
-
declare const defaultBoundariesConfig:
|
|
16
|
+
declare const defaultBoundariesConfig: BoundariesConfig;
|
|
7
17
|
/**
|
|
8
|
-
* Load boundaries plugin configuration using the
|
|
9
|
-
* topology, with optional per-field overrides and additive extensions.
|
|
10
|
-
* @param config Input config value.
|
|
18
|
+
* Load boundaries plugin configuration using the package-owned fixed topology.
|
|
11
19
|
* @returns Return value output.
|
|
12
20
|
* @example
|
|
13
21
|
* ```typescript
|
|
14
|
-
* const configs = boundaries(
|
|
15
|
-
* extend: { ignores: ["fixtures/example.ts"] },
|
|
16
|
-
* files: ["packages/example/src/index.ts"],
|
|
17
|
-
* });
|
|
22
|
+
* const configs = boundaries();
|
|
18
23
|
* ```
|
|
19
24
|
*/
|
|
20
|
-
declare function boundaries(
|
|
25
|
+
declare function boundaries(): Linter.Config[];
|
|
21
26
|
export { boundaries, defaultBoundariesConfig };
|
|
22
27
|
//# sourceMappingURL=boundaries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boundaries.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/architecture/boundaries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"boundaries.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/architecture/boundaries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EACV,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC;AAEpE,sDAAsD;AACtD,UAAU,gBAAgB;IACxB,8DAA8D;IAC9D,QAAQ,EAAE,kBAAkB,CAAC;IAE7B,kDAAkD;IAClD,YAAY,EAAE,+BAA+B,CAAC;IAE9C,kDAAkD;IAClD,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAEzB,oDAAoD;IACpD,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAuED,8EAA8E;AAC9E,QAAA,MAAM,uBAAuB,EAAE,gBAK9B,CAAC;AAEF;;;;;;;GAOG;AACH,iBAAS,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,CAmBrC;AAED,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -3,13 +3,16 @@ import { defineConfig } from "eslint/config";
|
|
|
3
3
|
/** Default repository element descriptors used by the boundaries plugin. */
|
|
4
4
|
const defaultElements = [
|
|
5
5
|
{ mode: "full", pattern: "src/index.ts", type: "entrypoint" },
|
|
6
|
-
{ basePattern: "src", pattern: "
|
|
6
|
+
{ basePattern: "src", pattern: "bootstrap", type: "bootstrap" },
|
|
7
|
+
{ basePattern: "src", pattern: "presentation", type: "presentation" },
|
|
7
8
|
{
|
|
8
9
|
basePattern: "src",
|
|
9
10
|
pattern: "infrastructure",
|
|
10
11
|
type: "infrastructure",
|
|
11
12
|
},
|
|
13
|
+
{ basePattern: "src", pattern: "application", type: "application" },
|
|
12
14
|
{ basePattern: "src", pattern: "domain", type: "domain" },
|
|
15
|
+
{ basePattern: "src", pattern: "shared", type: "shared" },
|
|
13
16
|
];
|
|
14
17
|
/** Default repository dependency rules used by the boundaries plugin. */
|
|
15
18
|
const defaultElementTypes = [
|
|
@@ -18,17 +21,43 @@ const defaultElementTypes = [
|
|
|
18
21
|
default: "disallow",
|
|
19
22
|
rules: [
|
|
20
23
|
{
|
|
21
|
-
allow: { to: { type: ["
|
|
24
|
+
allow: { to: { type: ["bootstrap"] } },
|
|
22
25
|
from: { type: "entrypoint" },
|
|
23
26
|
},
|
|
24
27
|
{
|
|
25
|
-
allow: {
|
|
26
|
-
|
|
28
|
+
allow: {
|
|
29
|
+
to: {
|
|
30
|
+
type: [
|
|
31
|
+
"presentation",
|
|
32
|
+
"infrastructure",
|
|
33
|
+
"application",
|
|
34
|
+
"domain",
|
|
35
|
+
"shared",
|
|
36
|
+
],
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
from: { type: "bootstrap" },
|
|
27
40
|
},
|
|
28
41
|
{
|
|
29
|
-
allow: { to: { type: ["application", "domain"] } },
|
|
42
|
+
allow: { to: { type: ["application", "domain", "shared"] } },
|
|
43
|
+
from: { type: "presentation" },
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
allow: { to: { type: ["application", "domain", "shared"] } },
|
|
30
47
|
from: { type: "infrastructure" },
|
|
31
48
|
},
|
|
49
|
+
{
|
|
50
|
+
allow: { to: { type: ["domain", "shared"] } },
|
|
51
|
+
from: { type: "application" },
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
allow: { to: { type: ["shared"] } },
|
|
55
|
+
from: { type: "domain" },
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
allow: { to: { type: ["shared"] } },
|
|
59
|
+
from: { type: "shared" },
|
|
60
|
+
},
|
|
32
61
|
],
|
|
33
62
|
},
|
|
34
63
|
];
|
|
@@ -44,132 +73,29 @@ const defaultBoundariesConfig = {
|
|
|
44
73
|
ignores: defaultIgnores,
|
|
45
74
|
};
|
|
46
75
|
/**
|
|
47
|
-
* Load boundaries plugin configuration using the
|
|
48
|
-
* topology, with optional per-field overrides and additive extensions.
|
|
49
|
-
* @param config Input config value.
|
|
76
|
+
* Load boundaries plugin configuration using the package-owned fixed topology.
|
|
50
77
|
* @returns Return value output.
|
|
51
78
|
* @example
|
|
52
79
|
* ```typescript
|
|
53
|
-
* const configs = boundaries(
|
|
54
|
-
* extend: { ignores: ["fixtures/example.ts"] },
|
|
55
|
-
* files: ["packages/example/src/index.ts"],
|
|
56
|
-
* });
|
|
80
|
+
* const configs = boundaries();
|
|
57
81
|
* ```
|
|
58
82
|
*/
|
|
59
|
-
function boundaries(
|
|
60
|
-
const { elements, elementTypes, files, ignores } = resolveBoundariesConfig(config);
|
|
83
|
+
function boundaries() {
|
|
61
84
|
const settings = {
|
|
62
85
|
...strict.settings,
|
|
63
|
-
"boundaries/elements": elements,
|
|
86
|
+
"boundaries/elements": defaultBoundariesConfig.elements,
|
|
64
87
|
};
|
|
65
88
|
const rules = {
|
|
66
89
|
...strict.rules,
|
|
67
|
-
"boundaries/dependencies": elementTypes,
|
|
90
|
+
"boundaries/dependencies": defaultBoundariesConfig.elementTypes,
|
|
68
91
|
};
|
|
69
92
|
const configObject = createConfig({
|
|
70
|
-
files: [...files],
|
|
71
|
-
ignores: [...ignores],
|
|
93
|
+
files: [...defaultBoundariesConfig.files],
|
|
94
|
+
ignores: [...defaultBoundariesConfig.ignores],
|
|
72
95
|
rules,
|
|
73
96
|
settings,
|
|
74
97
|
});
|
|
75
98
|
return defineConfig(configObject);
|
|
76
99
|
}
|
|
77
|
-
/**
|
|
78
|
-
* Clone the element-types rule entry so callers do not mutate shared defaults.
|
|
79
|
-
* @param value Rule entry to clone.
|
|
80
|
-
* @returns The cloned rule entry.
|
|
81
|
-
* @example
|
|
82
|
-
* ```typescript
|
|
83
|
-
* cloneElementTypes(defaultBoundariesConfig.elementTypes);
|
|
84
|
-
* ```
|
|
85
|
-
*/
|
|
86
|
-
function cloneElementTypes(value) {
|
|
87
|
-
const [severity, options] = value;
|
|
88
|
-
return [severity, { ...options, rules: [...(options.rules ?? [])] }];
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Merge the normalized base dependency rules with any additive extension rules.
|
|
92
|
-
* @param baseRules The normalized base dependency rules.
|
|
93
|
-
* @param extensionRules Additional extension rules.
|
|
94
|
-
* @returns The merged dependency rules.
|
|
95
|
-
* @example
|
|
96
|
-
* ```typescript
|
|
97
|
-
* mergeDependencyRules([], []);
|
|
98
|
-
* ```
|
|
99
|
-
*/
|
|
100
|
-
function mergeDependencyRules(baseRules, extensionRules) {
|
|
101
|
-
const mergedRules = [];
|
|
102
|
-
for (const rule of baseRules) {
|
|
103
|
-
mergedRules.push(rule);
|
|
104
|
-
}
|
|
105
|
-
for (const rule of extensionRules) {
|
|
106
|
-
mergedRules.push(rule);
|
|
107
|
-
}
|
|
108
|
-
return mergedRules;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Resolve one array field by applying an override first, then appending any
|
|
112
|
-
* additive extensions.
|
|
113
|
-
* @template T Array item type.
|
|
114
|
-
* @param defaults Repository defaults.
|
|
115
|
-
* @param override Optional override that replaces the defaults.
|
|
116
|
-
* @param extension Optional additive extension appended to the base value.
|
|
117
|
-
* @returns The resolved array field.
|
|
118
|
-
* @example
|
|
119
|
-
* ```typescript
|
|
120
|
-
* resolveArrayField(["src/index.ts"], ["packages/example.ts"], ["fixtures/example.ts"]);
|
|
121
|
-
* ```
|
|
122
|
-
*/
|
|
123
|
-
function resolveArrayField(defaults, override, extension) {
|
|
124
|
-
const baseValue = override ?? defaults;
|
|
125
|
-
return extension === void 0 ? [...baseValue] : [...baseValue, ...extension];
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Resolve the repo default boundaries topology with optional overrides and
|
|
129
|
-
* additive extensions.
|
|
130
|
-
* @param config Input config value.
|
|
131
|
-
* @returns Return value output.
|
|
132
|
-
* @example
|
|
133
|
-
* ```typescript
|
|
134
|
-
* resolveBoundariesConfig({ extend: { ignores: ["fixtures/example.ts"] } });
|
|
135
|
-
* ```
|
|
136
|
-
*/
|
|
137
|
-
function resolveBoundariesConfig(config) {
|
|
138
|
-
const { extend, ...overrides } = config;
|
|
139
|
-
return {
|
|
140
|
-
...defaultBoundariesConfig,
|
|
141
|
-
elements: resolveArrayField(defaultBoundariesConfig.elements, overrides.elements, extend?.elements),
|
|
142
|
-
elementTypes: resolveElementTypes(defaultBoundariesConfig.elementTypes, overrides.elementTypes, extend?.elementTypes),
|
|
143
|
-
files: resolveArrayField(defaultBoundariesConfig.files, overrides.files, extend?.files),
|
|
144
|
-
ignores: resolveArrayField(defaultBoundariesConfig.ignores, overrides.ignores, extend?.ignores),
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Resolve the boundaries element-types rule entry with optional replacement and
|
|
149
|
-
* additive rule extensions.
|
|
150
|
-
* @param defaults Repository default element-types rule entry.
|
|
151
|
-
* @param override Optional full replacement rule entry.
|
|
152
|
-
* @param extension Optional additional rules appended to the base rule set.
|
|
153
|
-
* @returns The resolved element-types rule entry.
|
|
154
|
-
* @example
|
|
155
|
-
* ```typescript
|
|
156
|
-
* resolveElementTypes(defaultBoundariesConfig.elementTypes, undefined, { rules: [] });
|
|
157
|
-
* ```
|
|
158
|
-
*/
|
|
159
|
-
function resolveElementTypes(defaults, override, extension) {
|
|
160
|
-
const baseValue = override ?? defaults;
|
|
161
|
-
if (extension === void 0) {
|
|
162
|
-
return cloneElementTypes(baseValue);
|
|
163
|
-
}
|
|
164
|
-
const [severity, options] = cloneElementTypes(baseValue);
|
|
165
|
-
const extensionRules = extension.rules ?? [];
|
|
166
|
-
return [
|
|
167
|
-
severity,
|
|
168
|
-
{
|
|
169
|
-
...options,
|
|
170
|
-
rules: mergeDependencyRules(options.rules, extensionRules),
|
|
171
|
-
},
|
|
172
|
-
];
|
|
173
|
-
}
|
|
174
100
|
export { boundaries, defaultBoundariesConfig };
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm91bmRhcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9hcmNoaXRlY3R1cmUvYm91bmRhcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFvQjdDLDRFQUE0RTtBQUM1RSxNQUFNLGVBQWUsR0FBdUI7SUFDMUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtJQUM3RCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFO0lBQ25FO1FBQ0UsV0FBVyxFQUFFLEtBQUs7UUFDbEIsT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixJQUFJLEVBQUUsZ0JBQWdCO0tBQ3ZCO0lBQ0QsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtDQUMxRCxDQUFDO0FBRUYseUVBQXlFO0FBQ3pFLE1BQU0sbUJBQW1CLEdBQW9DO0lBQzNELE9BQU87SUFDUDtRQUNFLE9BQU8sRUFBRSxVQUFVO1FBQ25CLEtBQUssRUFBRTtZQUNMO2dCQUNFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUU7Z0JBQzFELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUU7YUFDN0I7WUFDRDtnQkFDRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxhQUFh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b250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29uZmlnT2JqZWN0IH0gZnJvbSBcIkBlc2xpbnQvY29yZVwiO1xuaW1wb3J0IHR5cGUgeyBMaW50ZXIgfSBmcm9tIFwiZXNsaW50XCI7XG5pbXBvcnQgdHlwZSB7XG4gIEVsZW1lbnREZXNjcmlwdG9ycyxcbiAgUnVsZXMsXG4gIFNldHRpbmdzLFxufSBmcm9tIFwiZXNsaW50LXBsdWdpbi1ib3VuZGFyaWVzXCI7XG5cbmltcG9ydCB7IGNyZWF0ZUNvbmZpZywgc3RyaWN0IH0gZnJvbSBcImVzbGludC1wbHVnaW4tYm91bmRhcmllcy9jb25maWdcIjtcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJlc2xpbnQvY29uZmlnXCI7XG5cbmltcG9ydCB0eXBlIHtcbiAgQm91bmRhcmllc0NvbmZpZyxcbiAgQm91bmRhcmllc0NvbmZpZ0V4dGVuc2lvbixcbiAgQm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeSxcbn0gZnJvbSBcIi4uLy4uL2RvbWFpblwiO1xuXG4vKiogUmVzb2x2ZWQgYm91bmRhcmllcyBjb25maWcgdXNlZCBpbnRlcm5hbGx5IGFmdGVyIGRlZmF1bHRzIGFyZSBhcHBsaWVkLiAqL1xudHlwZSBSZXNvbHZlZEJvdW5kYXJpZXNDb25maWcgPSBPbWl0PFJlcXVpcmVkPEJvdW5kYXJpZXNDb25maWc+LCBcImV4dGVuZFwiPjtcblxuLyoqIEludGVybmFsIGVsZW1lbnQtdHlwZXMgdHVwbGUgd2l0aCBhIG5vcm1hbGl6ZWQgcnVsZXMgYXJyYXkuICovXG50eXBlIFJlc29sdmVkQm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeSA9IFtcbiAgQm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeVswXSxcbiAgT21pdDxCb3VuZGFyaWVzRWxlbWVudFR5cGVzUnVsZUVudHJ5WzFdLCBcInJ1bGVzXCI+ICYge1xuICAgIC8qKiBOb3JtYWxpemVkIGRlcGVuZGVuY3kgcnVsZXMgYXJyYXkgd2l0aCBubyB1bmRlZmluZWQgYnJhbmNoIHJlbWFpbmluZy4gKi9cbiAgICBydWxlczogTm9uTnVsbGFibGU8Qm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeVsxXVtcInJ1bGVzXCJdPjtcbiAgfSxcbl07XG5cbi8qKiBEZWZhdWx0IHJlcG9zaXRvcnkgZWxlbWVudCBkZXNjcmlwdG9ycyB1c2VkIGJ5IHRoZSBib3VuZGFyaWVzIHBsdWdpbi4gKi9cbmNvbnN0IGRlZmF1bHRFbGVtZW50czogRWxlbWVudERlc2NyaXB0b3JzID0gW1xuICB7IG1vZGU6IFwiZnVsbFwiLCBwYXR0ZXJuOiBcInNyYy9pbmRleC50c1wiLCB0eXBlOiBcImVudHJ5cG9pbnRcIiB9LFxuICB7IGJhc2VQYXR0ZXJuOiBcInNyY1wiLCBwYXR0ZXJuOiBcImFwcGxpY2F0aW9uXCIsIHR5cGU6IFwiYXBwbGljYXRpb25cIiB9LFxuICB7XG4gICAgYmFzZVBhdHRlcm46IFwic3JjXCIsXG4gICAgcGF0dGVybjogXCJpbmZyYXN0cnVjdHVyZVwiLFxuICAgIHR5cGU6IFwiaW5mcmFzdHJ1Y3R1cmVcIixcbiAgfSxcbiAgeyBiYXNlUGF0dGVybjogXCJzcmNcIiwgcGF0dGVybjogXCJkb21haW5cIiwgdHlwZTogXCJkb21haW5cIiB9LFxuXTtcblxuLyoqIERlZmF1bHQgcmVwb3NpdG9yeSBkZXBlbmRlbmN5IHJ1bGVzIHVzZWQgYnkgdGhlIGJvdW5kYXJpZXMgcGx1Z2luLiAqL1xuY29uc3QgZGVmYXVsdEVsZW1lbnRUeXBlczogQm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeSA9IFtcbiAgXCJlcnJvclwiLFxuICB7XG4gICAgZGVmYXVsdDogXCJkaXNhbGxvd1wiLFxuICAgIHJ1bGVzOiBbXG4gICAgICB7XG4gICAgICAgIGFsbG93OiB7IHRvOiB7IHR5cGU6IFtcImFwcGxpY2F0aW9uXCIsIFwiaW5mcmFzdHJ1Y3R1cmVcIl0gfSB9LFxuICAgICAgICBmcm9tOiB7IHR5cGU6IFwiZW50cnlwb2ludFwiIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBhbGxvdzogeyB0bzogeyB0eXBlOiBcImRvbWFpblwiIH0gfSxcbiAgICAgICAgZnJvbTogeyB0eXBlOiBcImFwcGxpY2F0aW9uXCIgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGFsbG93OiB7IHRvOiB7IHR5cGU6IFtcImFwcGxpY2F0aW9uXCIsIFwiZG9tYWluXCJdIH0gfSxcbiAgICAgICAgZnJvbTogeyB0eXBlOiBcImluZnJhc3RydWN0dXJlXCIgfSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbl07XG5cbi8qKiBEZWZhdWx0IHNvdXJjZSBmaWxlIGdsb2JzIGluY2x1ZGVkIGluIHJlcG9zaXRvcnkgYm91bmRhcmllcyBjaGVja3MuICovXG5jb25zdCBkZWZhdWx0RmlsZXMgPSBbXCJzcmMvKiovKi50c1wiXTtcblxuLyoqIERlZmF1bHQgc291cmNlIGZpbGUgZ2xvYnMgZXhjbHVkZWQgZnJvbSByZXBvc2l0b3J5IGJvdW5kYXJpZXMgY2hlY2tzLiAqL1xuY29uc3QgZGVmYXVsdElnbm9yZXMgPSBbXCJzcmMvKiovKi5zcGVjLnRzXCJdO1xuXG4vKiogUmVwb3NpdG9yeSBkZWZhdWx0IGJvdW5kYXJpZXMgdG9wb2xvZ3kgYWxpZ25lZCB3aXRoIENsZWFuIEFyY2hpdGVjdHVyZS4gKi9cbmNvbnN0IGRlZmF1bHRCb3VuZGFyaWVzQ29uZmlnOiBSZXNvbHZlZEJvdW5kYXJpZXNDb25maWcgPSB7XG4gIGVsZW1lbnRzOiBkZWZhdWx0RWxlbWVudHMsXG4gIGVsZW1lbnRUeXBlczogZGVmYXVsdEVsZW1lbnRUeXBlcyxcbiAgZmlsZXM6IGRlZmF1bHRGaWxlcyxcbiAgaWdub3JlczogZGVmYXVsdElnbm9yZXMsXG59O1xuXG4vKipcbiAqIExvYWQgYm91bmRhcmllcyBwbHVnaW4gY29uZmlndXJhdGlvbiB1c2luZyB0aGUgZGVmYXVsdCBDbGVhbiBBcmNoaXRlY3R1cmVcbiAqIHRvcG9sb2d5LCB3aXRoIG9wdGlvbmFsIHBlci1maWVsZCBvdmVycmlkZXMgYW5kIGFkZGl0aXZlIGV4dGVuc2lvbnMuXG4gKiBAcGFyYW0gY29uZmlnIElucHV0IGNvbmZpZyB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgY29uZmlncyA9IGJvdW5kYXJpZXMoe1xuICogICBleHRlbmQ6IHsgaWdub3JlczogW1wiZml4dHVyZXMvZXhhbXBsZS50c1wiXSB9LFxuICogICBmaWxlczogW1wicGFja2FnZXMvZXhhbXBsZS9zcmMvaW5kZXgudHNcIl0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBib3VuZGFyaWVzKGNvbmZpZzogQm91bmRhcmllc0NvbmZpZyA9IHt9KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgY29uc3QgeyBlbGVtZW50cywgZWxlbWVudFR5cGVzLCBmaWxlcywgaWdub3JlcyB9ID1cbiAgICByZXNvbHZlQm91bmRhcmllc0NvbmZpZyhjb25maWcpO1xuXG4gIGNvbnN0IHNldHRpbmdzOiBTZXR0aW5ncyA9IHtcbiAgICAuLi5zdHJpY3Quc2V0dGluZ3MsXG4gICAgXCJib3VuZGFyaWVzL2VsZW1lbnRzXCI6IGVsZW1lbnRzLFxuICB9O1xuXG4gIGNvbnN0IHJ1bGVzOiBSdWxlcyA9IHtcbiAgICAuLi5zdHJpY3QucnVsZXMsXG4gICAgXCJib3VuZGFyaWVzL2RlcGVuZGVuY2llc1wiOiBlbGVtZW50VHlwZXMsXG4gIH07XG5cbiAgY29uc3QgY29uZmlnT2JqZWN0ID0gY3JlYXRlQ29uZmlnKHtcbiAgICBmaWxlczogWy4uLmZpbGVzXSxcbiAgICBpZ25vcmVzOiBbLi4uaWdub3Jlc10sXG4gICAgcnVsZXMsXG4gICAgc2V0dGluZ3MsXG4gIH0pIGFzIENvbmZpZ09iamVjdDtcblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKGNvbmZpZ09iamVjdCk7XG59XG5cbi8qKlxuICogQ2xvbmUgdGhlIGVsZW1lbnQtdHlwZXMgcnVsZSBlbnRyeSBzbyBjYWxsZXJzIGRvIG5vdCBtdXRhdGUgc2hhcmVkIGRlZmF1bHRzLlxuICogQHBhcmFtIHZhbHVlIFJ1bGUgZW50cnkgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyBUaGUgY2xvbmVkIHJ1bGUgZW50cnkuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY2xvbmVFbGVtZW50VHlwZXMoZGVmYXVsdEJvdW5kYXJpZXNDb25maWcuZWxlbWVudFR5cGVzKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBjbG9uZUVsZW1lbnRUeXBlcyhcbiAgdmFsdWU6IEJvdW5kYXJpZXNFbGVtZW50VHlwZXNSdWxlRW50cnksXG4pOiBSZXNvbHZlZEJvdW5kYXJpZXNFbGVtZW50VHlwZXNSdWxlRW50cnkge1xuICBjb25zdCBbc2V2ZXJpdHksIG9wdGlvbnNdID0gdmFsdWU7XG5cbiAgcmV0dXJuIFtzZXZlcml0eSwgeyAuLi5vcHRpb25zLCBydWxlczogWy4uLihvcHRpb25zLnJ1bGVzID8/IFtdKV0gfV07XG59XG5cbi8qKlxuICogTWVyZ2UgdGhlIG5vcm1hbGl6ZWQgYmFzZSBkZXBlbmRlbmN5IHJ1bGVzIHdpdGggYW55IGFkZGl0aXZlIGV4dGVuc2lvbiBydWxlcy5cbiAqIEBwYXJhbSBiYXNlUnVsZXMgVGhlIG5vcm1hbGl6ZWQgYmFzZSBkZXBlbmRlbmN5IHJ1bGVzLlxuICogQHBhcmFtIGV4dGVuc2lvblJ1bGVzIEFkZGl0aW9uYWwgZXh0ZW5zaW9uIHJ1bGVzLlxuICogQHJldHVybnMgVGhlIG1lcmdlZCBkZXBlbmRlbmN5IHJ1bGVzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIG1lcmdlRGVwZW5kZW5jeVJ1bGVzKFtdLCBbXSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gbWVyZ2VEZXBlbmRlbmN5UnVsZXMoXG4gIGJhc2VSdWxlczogTm9uTnVsbGFibGU8Qm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeVsxXVtcInJ1bGVzXCJdPixcbiAgZXh0ZW5zaW9uUnVsZXM6IE5vbk51bGxhYmxlPEJvdW5kYXJpZXNFbGVtZW50VHlwZXNSdWxlRW50cnlbMV1bXCJydWxlc1wiXT4sXG4pOiBOb25OdWxsYWJsZTxCb3VuZGFyaWVzRWxlbWVudFR5cGVzUnVsZUVudHJ5WzFdW1wicnVsZXNcIl0+IHtcbiAgY29uc3QgbWVyZ2VkUnVsZXM6IE5vbk51bGxhYmxlPEJvdW5kYXJpZXNFbGVtZW50VHlwZXNSdWxlRW50cnlbMV1bXCJydWxlc1wiXT4gPVxuICAgIFtdO1xuXG4gIGZvciAoY29uc3QgcnVsZSBvZiBiYXNlUnVsZXMpIHtcbiAgICBtZXJnZWRSdWxlcy5wdXNoKHJ1bGUpO1xuICB9XG5cbiAgZm9yIChjb25zdCBydWxlIG9mIGV4dGVuc2lvblJ1bGVzKSB7XG4gICAgbWVyZ2VkUnVsZXMucHVzaChydWxlKTtcbiAgfVxuXG4gIHJldHVybiBtZXJnZWRSdWxlcztcbn1cblxuLyoqXG4gKiBSZXNvbHZlIG9uZSBhcnJheSBmaWVsZCBieSBhcHBseWluZyBhbiBvdmVycmlkZSBmaXJzdCwgdGhlbiBhcHBlbmRpbmcgYW55XG4gKiBhZGRpdGl2ZSBleHRlbnNpb25zLlxuICogQHRlbXBsYXRlIFQgQXJyYXkgaXRlbSB0eXBlLlxuICogQHBhcmFtIGRlZmF1bHRzIFJlcG9zaXRvcnkgZGVmYXVsdHMuXG4gKiBAcGFyYW0gb3ZlcnJpZGUgT3B0aW9uYWwgb3ZlcnJpZGUgdGhhdCByZXBsYWNlcyB0aGUgZGVmYXVsdHMuXG4gKiBAcGFyYW0gZXh0ZW5zaW9uIE9wdGlvbmFsIGFkZGl0aXZlIGV4dGVuc2lvbiBhcHBlbmRlZCB0byB0aGUgYmFzZSB2YWx1ZS5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBhcnJheSBmaWVsZC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiByZXNvbHZlQXJyYXlGaWVsZChbXCJzcmMvaW5kZXgudHNcIl0sIFtcInBhY2thZ2VzL2V4YW1wbGUudHNcIl0sIFtcImZpeHR1cmVzL2V4YW1wbGUudHNcIl0pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVBcnJheUZpZWxkPFQ+KFxuICBkZWZhdWx0czogcmVhZG9ubHkgVFtdLFxuICBvdmVycmlkZTogcmVhZG9ubHkgVFtdIHwgdW5kZWZpbmVkLFxuICBleHRlbnNpb246IHJlYWRvbmx5IFRbXSB8IHVuZGVmaW5lZCxcbik6IFRbXSB7XG4gIGNvbnN0IGJhc2VWYWx1ZSA9IG92ZXJyaWRlID8/IGRlZmF1bHRzO1xuXG4gIHJldHVybiBleHRlbnNpb24gPT09IHZvaWQgMCA/IFsuLi5iYXNlVmFsdWVdIDogWy4uLmJhc2VWYWx1ZSwgLi4uZXh0ZW5zaW9uXTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSByZXBvIGRlZmF1bHQgYm91bmRhcmllcyB0b3BvbG9neSB3aXRoIG9wdGlvbmFsIG92ZXJyaWRlcyBhbmRcbiAqIGFkZGl0aXZlIGV4dGVuc2lvbnMuXG4gKiBAcGFyYW0gY29uZmlnIElucHV0IGNvbmZpZyB2YWx1ZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogcmVzb2x2ZUJvdW5kYXJpZXNDb25maWcoeyBleHRlbmQ6IHsgaWdub3JlczogW1wiZml4dHVyZXMvZXhhbXBsZS50c1wiXSB9IH0pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVCb3VuZGFyaWVzQ29uZmlnKFxuICBjb25maWc6IEJvdW5kYXJpZXNDb25maWcsXG4pOiBSZXNvbHZlZEJvdW5kYXJpZXNDb25maWcge1xuICBjb25zdCB7IGV4dGVuZCwgLi4ub3ZlcnJpZGVzIH0gPSBjb25maWc7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5kZWZhdWx0Qm91bmRhcmllc0NvbmZpZyxcbiAgICBlbGVtZW50czogcmVzb2x2ZUFycmF5RmllbGQoXG4gICAgICBkZWZhdWx0Qm91bmRhcmllc0NvbmZpZy5lbGVtZW50cyxcbiAgICAgIG92ZXJyaWRlcy5lbGVtZW50cyxcbiAgICAgIGV4dGVuZD8uZWxlbWVudHMsXG4gICAgKSxcbiAgICBlbGVtZW50VHlwZXM6IHJlc29sdmVFbGVtZW50VHlwZXMoXG4gICAgICBkZWZhdWx0Qm91bmRhcmllc0NvbmZpZy5lbGVtZW50VHlwZXMsXG4gICAgICBvdmVycmlkZXMuZWxlbWVudFR5cGVzLFxuICAgICAgZXh0ZW5kPy5lbGVtZW50VHlwZXMsXG4gICAgKSxcbiAgICBmaWxlczogcmVzb2x2ZUFycmF5RmllbGQoXG4gICAgICBkZWZhdWx0Qm91bmRhcmllc0NvbmZpZy5maWxlcyxcbiAgICAgIG92ZXJyaWRlcy5maWxlcyxcbiAgICAgIGV4dGVuZD8uZmlsZXMsXG4gICAgKSxcbiAgICBpZ25vcmVzOiByZXNvbHZlQXJyYXlGaWVsZChcbiAgICAgIGRlZmF1bHRCb3VuZGFyaWVzQ29uZmlnLmlnbm9yZXMsXG4gICAgICBvdmVycmlkZXMuaWdub3JlcyxcbiAgICAgIGV4dGVuZD8uaWdub3JlcyxcbiAgICApLFxuICB9O1xufVxuXG4vKipcbiAqIFJlc29sdmUgdGhlIGJvdW5kYXJpZXMgZWxlbWVudC10eXBlcyBydWxlIGVudHJ5IHdpdGggb3B0aW9uYWwgcmVwbGFjZW1lbnQgYW5kXG4gKiBhZGRpdGl2ZSBydWxlIGV4dGVuc2lvbnMuXG4gKiBAcGFyYW0gZGVmYXVsdHMgUmVwb3NpdG9yeSBkZWZhdWx0IGVsZW1lbnQtdHlwZXMgcnVsZSBlbnRyeS5cbiAqIEBwYXJhbSBvdmVycmlkZSBPcHRpb25hbCBmdWxsIHJlcGxhY2VtZW50IHJ1bGUgZW50cnkuXG4gKiBAcGFyYW0gZXh0ZW5zaW9uIE9wdGlvbmFsIGFkZGl0aW9uYWwgcnVsZXMgYXBwZW5kZWQgdG8gdGhlIGJhc2UgcnVsZSBzZXQuXG4gKiBAcmV0dXJucyBUaGUgcmVzb2x2ZWQgZWxlbWVudC10eXBlcyBydWxlIGVudHJ5LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlc29sdmVFbGVtZW50VHlwZXMoZGVmYXVsdEJvdW5kYXJpZXNDb25maWcuZWxlbWVudFR5cGVzLCB1bmRlZmluZWQsIHsgcnVsZXM6IFtdIH0pO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVFbGVtZW50VHlwZXMoXG4gIGRlZmF1bHRzOiBCb3VuZGFyaWVzRWxlbWVudFR5cGVzUnVsZUVudHJ5LFxuICBvdmVycmlkZTogQm91bmRhcmllc0NvbmZpZ1tcImVsZW1lbnRUeXBlc1wiXSxcbiAgZXh0ZW5zaW9uOiBCb3VuZGFyaWVzQ29uZmlnRXh0ZW5zaW9uW1wiZWxlbWVudFR5cGVzXCJdLFxuKTogQm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeSB7XG4gIGNvbnN0IGJhc2VWYWx1ZSA9IG92ZXJyaWRlID8/IGRlZmF1bHRzO1xuXG4gIGlmIChleHRlbnNpb24gPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBjbG9uZUVsZW1lbnRUeXBlcyhiYXNlVmFsdWUpO1xuICB9XG5cbiAgY29uc3QgW3NldmVyaXR5LCBvcHRpb25zXSA9IGNsb25lRWxlbWVudFR5cGVzKGJhc2VWYWx1ZSk7XG4gIGNvbnN0IGV4dGVuc2lvblJ1bGVzOiBOb25OdWxsYWJsZTxcbiAgICBCb3VuZGFyaWVzRWxlbWVudFR5cGVzUnVsZUVudHJ5WzFdW1wicnVsZXNcIl1cbiAgPiA9IGV4dGVuc2lvbi5ydWxlcyA/PyBbXTtcblxuICByZXR1cm4gW1xuICAgIHNldmVyaXR5LFxuICAgIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBydWxlczogbWVyZ2VEZXBlbmRlbmN5UnVsZXMob3B0aW9ucy5ydWxlcywgZXh0ZW5zaW9uUnVsZXMpLFxuICAgIH0sXG4gIF07XG59XG5cbmV4cG9ydCB7IGJvdW5kYXJpZXMsIGRlZmF1bHRCb3VuZGFyaWVzQ29uZmlnIH07XG4iXX0=
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm91bmRhcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbmZyYXN0cnVjdHVyZS9hcmNoaXRlY3R1cmUvYm91bmRhcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFtQjdDLDRFQUE0RTtBQUM1RSxNQUFNLGVBQWUsR0FBdUI7SUFDMUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtJQUM3RCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO0lBQy9ELEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUU7SUFDckU7UUFDRSxXQUFXLEVBQUUsS0FBSztRQUNsQixPQUFPLEVBQUUsZ0JBQWdCO1FBQ3pCLElBQUksRUFBRSxnQkFBZ0I7S0FDdkI7SUFDRCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFO0lBQ25FLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7SUFDekQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtDQUMxRCxDQUFDO0FBRUYseUVBQXlFO0FBQ3pFLE1BQU0sbUJBQW1CLEdBQW9DO0lBQzNELE9BQU87SUFDUDtRQUNFLE9BQU8sRUFBRSxVQUFVO1FBQ25CLEtBQUssRUFBRTtZQUNMO2dCQUNFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUU7YUFDN0I7WUFDRDtnQkFDRSxLQUFLLEVBQUU7b0JBQ0wsRUFBRSxFQUFFO3dCQUNGLElBQUksRUFBRTs0QkFDSixjQUFjOzRCQUNkLGdCQUFnQjs0QkFDaEIsYUFBYTs0QkFDYixRQUFROzRCQUNSLFFBQVE7eUJBQ1Q7cUJBQ0Y7aUJBQ0Y7Z0JBQ0QsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTthQUM1QjtZQUNEO2dCQUNFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtnQkFDNUQsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRTthQUMvQjtZQUNEO2dCQUNFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtnQkFDNUQsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2FBQ2pDO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7Z0JBQzdDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUU7YUFDOUI7WUFDRDtnQkFDRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO2dCQUNuQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2FBQ3pCO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTtnQkFDbkMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTthQUN6QjtTQUNGO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsMEVBQTBFO0FBQzFFLE1BQU0sWUFBWSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFFckMsNEVBQTRFO0FBQzVFLE1BQU0sY0FBYyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUU1Qyw4RUFBOEU7QUFDOUUsTUFBTSx1QkFBdUIsR0FBcUI7SUFDaEQsUUFBUSxFQUFFLGVBQWU7SUFDekIsWUFBWSxFQUFFLG1CQUFtQjtJQUNqQyxLQUFLLEVBQUUsWUFBWTtJQUNuQixPQUFPLEVBQUUsY0FBYztDQUN4QixDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUNILFNBQVMsVUFBVTtJQUNqQixNQUFNLFFBQVEsR0FBYTtRQUN6QixHQUFHLE1BQU0sQ0FBQyxRQUFRO1FBQ2xCLHFCQUFxQixFQUFFLHVCQUF1QixDQUFDLFFBQVE7S0FDeEQsQ0FBQztJQUVGLE1BQU0sS0FBSyxHQUFVO1FBQ25CLEdBQUcsTUFBTSxDQUFDLEtBQUs7UUFDZix5QkFBeUIsRUFBRSx1QkFBdUIsQ0FBQyxZQUFZO0tBQ2hFLENBQUM7SUFFRixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDaEMsS0FBSyxFQUFFLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLENBQUM7UUFDekMsT0FBTyxFQUFFLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUM7UUFDN0MsS0FBSztRQUNMLFFBQVE7S0FDVCxDQUFpQixDQUFDO0lBRW5CLE9BQU8sWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRCxPQUFPLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbmZpZ09iamVjdCB9IGZyb20gXCJAZXNsaW50L2NvcmVcIjtcbmltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSBcImVzbGludFwiO1xuaW1wb3J0IHR5cGUge1xuICBFbGVtZW50RGVzY3JpcHRvcnMsXG4gIFJ1bGVzLFxuICBTZXR0aW5ncyxcbn0gZnJvbSBcImVzbGludC1wbHVnaW4tYm91bmRhcmllc1wiO1xuXG5pbXBvcnQgeyBjcmVhdGVDb25maWcsIHN0cmljdCB9IGZyb20gXCJlc2xpbnQtcGx1Z2luLWJvdW5kYXJpZXMvY29uZmlnXCI7XG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwiZXNsaW50L2NvbmZpZ1wiO1xuXG5pbXBvcnQgdHlwZSB7IEJvdW5kYXJpZXNFbGVtZW50VHlwZXNSdWxlRW50cnkgfSBmcm9tIFwiLi4vLi4vZG9tYWluXCI7XG5cbi8qKiBGaXhlZCBib3VuZGFyaWVzIHRvcG9sb2d5IHVzZWQgYnkgdGhpcyBwYWNrYWdlLiAqL1xuaW50ZXJmYWNlIEJvdW5kYXJpZXNDb25maWcge1xuICAvKiogTGF5ZXIgZGVzY3JpcHRvcnMgY29uc3VtZWQgYnkgZXNsaW50LXBsdWdpbi1ib3VuZGFyaWVzLiAqL1xuICBlbGVtZW50czogRWxlbWVudERlc2NyaXB0b3JzO1xuXG4gIC8qKiBSdWxlIGVudHJ5IHVzZWQgYnkgYm91bmRhcmllcy9kZXBlbmRlbmNpZXMuICovXG4gIGVsZW1lbnRUeXBlczogQm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeTtcblxuICAvKiogU291cmNlIGdsb2JzIGluY2x1ZGVkIGluIGJvdW5kYXJpZXMgY2hlY2tzLiAqL1xuICBmaWxlczogcmVhZG9ubHkgc3RyaW5nW107XG5cbiAgLyoqIFNvdXJjZSBnbG9icyBleGNsdWRlZCBmcm9tIGJvdW5kYXJpZXMgY2hlY2tzLiAqL1xuICBpZ25vcmVzOiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuLyoqIERlZmF1bHQgcmVwb3NpdG9yeSBlbGVtZW50IGRlc2NyaXB0b3JzIHVzZWQgYnkgdGhlIGJvdW5kYXJpZXMgcGx1Z2luLiAqL1xuY29uc3QgZGVmYXVsdEVsZW1lbnRzOiBFbGVtZW50RGVzY3JpcHRvcnMgPSBbXG4gIHsgbW9kZTogXCJmdWxsXCIsIHBhdHRlcm46IFwic3JjL2luZGV4LnRzXCIsIHR5cGU6IFwiZW50cnlwb2ludFwiIH0sXG4gIHsgYmFzZVBhdHRlcm46IFwic3JjXCIsIHBhdHRlcm46IFwiYm9vdHN0cmFwXCIsIHR5cGU6IFwiYm9vdHN0cmFwXCIgfSxcbiAgeyBiYXNlUGF0dGVybjogXCJzcmNcIiwgcGF0dGVybjogXCJwcmVzZW50YXRpb25cIiwgdHlwZTogXCJwcmVzZW50YXRpb25cIiB9LFxuICB7XG4gICAgYmFzZVBhdHRlcm46IFwic3JjXCIsXG4gICAgcGF0dGVybjogXCJpbmZyYXN0cnVjdHVyZVwiLFxuICAgIHR5cGU6IFwiaW5mcmFzdHJ1Y3R1cmVcIixcbiAgfSxcbiAgeyBiYXNlUGF0dGVybjogXCJzcmNcIiwgcGF0dGVybjogXCJhcHBsaWNhdGlvblwiLCB0eXBlOiBcImFwcGxpY2F0aW9uXCIgfSxcbiAgeyBiYXNlUGF0dGVybjogXCJzcmNcIiwgcGF0dGVybjogXCJkb21haW5cIiwgdHlwZTogXCJkb21haW5cIiB9LFxuICB7IGJhc2VQYXR0ZXJuOiBcInNyY1wiLCBwYXR0ZXJuOiBcInNoYXJlZFwiLCB0eXBlOiBcInNoYXJlZFwiIH0sXG5dO1xuXG4vKiogRGVmYXVsdCByZXBvc2l0b3J5IGRlcGVuZGVuY3kgcnVsZXMgdXNlZCBieSB0aGUgYm91bmRhcmllcyBwbHVnaW4uICovXG5jb25zdCBkZWZhdWx0RWxlbWVudFR5cGVzOiBCb3VuZGFyaWVzRWxlbWVudFR5cGVzUnVsZUVudHJ5ID0gW1xuICBcImVycm9yXCIsXG4gIHtcbiAgICBkZWZhdWx0OiBcImRpc2FsbG93XCIsXG4gICAgcnVsZXM6IFtcbiAgICAgIHtcbiAgICAgICAgYWxsb3c6IHsgdG86IHsgdHlwZTogW1wiYm9vdHN0cmFwXCJdIH0gfSxcbiAgICAgICAgZnJvbTogeyB0eXBlOiBcImVudHJ5cG9pbnRcIiB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYWxsb3c6IHtcbiAgICAgICAgICB0bzoge1xuICAgICAgICAgICAgdHlwZTogW1xuICAgICAgICAgICAgICBcInByZXNlbnRhdGlvblwiLFxuICAgICAgICAgICAgICBcImluZnJhc3RydWN0dXJlXCIsXG4gICAgICAgICAgICAgIFwiYXBwbGljYXRpb25cIixcbiAgICAgICAgICAgICAgXCJkb21haW5cIixcbiAgICAgICAgICAgICAgXCJzaGFyZWRcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZnJvbTogeyB0eXBlOiBcImJvb3RzdHJhcFwiIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBhbGxvdzogeyB0bzogeyB0eXBlOiBbXCJhcHBsaWNhdGlvblwiLCBcImRvbWFpblwiLCBcInNoYXJlZFwiXSB9IH0sXG4gICAgICAgIGZyb206IHsgdHlwZTogXCJwcmVzZW50YXRpb25cIiB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYWxsb3c6IHsgdG86IHsgdHlwZTogW1wiYXBwbGljYXRpb25cIiwgXCJkb21haW5cIiwgXCJzaGFyZWRcIl0gfSB9LFxuICAgICAgICBmcm9tOiB7IHR5cGU6IFwiaW5mcmFzdHJ1Y3R1cmVcIiB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYWxsb3c6IHsgdG86IHsgdHlwZTogW1wiZG9tYWluXCIsIFwic2hhcmVkXCJdIH0gfSxcbiAgICAgICAgZnJvbTogeyB0eXBlOiBcImFwcGxpY2F0aW9uXCIgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGFsbG93OiB7IHRvOiB7IHR5cGU6IFtcInNoYXJlZFwiXSB9IH0sXG4gICAgICAgIGZyb206IHsgdHlwZTogXCJkb21haW5cIiB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYWxsb3c6IHsgdG86IHsgdHlwZTogW1wic2hhcmVkXCJdIH0gfSxcbiAgICAgICAgZnJvbTogeyB0eXBlOiBcInNoYXJlZFwiIH0sXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG5dO1xuXG4vKiogRGVmYXVsdCBzb3VyY2UgZmlsZSBnbG9icyBpbmNsdWRlZCBpbiByZXBvc2l0b3J5IGJvdW5kYXJpZXMgY2hlY2tzLiAqL1xuY29uc3QgZGVmYXVsdEZpbGVzID0gW1wic3JjLyoqLyoudHNcIl07XG5cbi8qKiBEZWZhdWx0IHNvdXJjZSBmaWxlIGdsb2JzIGV4Y2x1ZGVkIGZyb20gcmVwb3NpdG9yeSBib3VuZGFyaWVzIGNoZWNrcy4gKi9cbmNvbnN0IGRlZmF1bHRJZ25vcmVzID0gW1wic3JjLyoqLyouc3BlYy50c1wiXTtcblxuLyoqIFJlcG9zaXRvcnkgZGVmYXVsdCBib3VuZGFyaWVzIHRvcG9sb2d5IGFsaWduZWQgd2l0aCBDbGVhbiBBcmNoaXRlY3R1cmUuICovXG5jb25zdCBkZWZhdWx0Qm91bmRhcmllc0NvbmZpZzogQm91bmRhcmllc0NvbmZpZyA9IHtcbiAgZWxlbWVudHM6IGRlZmF1bHRFbGVtZW50cyxcbiAgZWxlbWVudFR5cGVzOiBkZWZhdWx0RWxlbWVudFR5cGVzLFxuICBmaWxlczogZGVmYXVsdEZpbGVzLFxuICBpZ25vcmVzOiBkZWZhdWx0SWdub3Jlcyxcbn07XG5cbi8qKlxuICogTG9hZCBib3VuZGFyaWVzIHBsdWdpbiBjb25maWd1cmF0aW9uIHVzaW5nIHRoZSBwYWNrYWdlLW93bmVkIGZpeGVkIHRvcG9sb2d5LlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBjb25maWdzID0gYm91bmRhcmllcygpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIGJvdW5kYXJpZXMoKTogTGludGVyLkNvbmZpZ1tdIHtcbiAgY29uc3Qgc2V0dGluZ3M6IFNldHRpbmdzID0ge1xuICAgIC4uLnN0cmljdC5zZXR0aW5ncyxcbiAgICBcImJvdW5kYXJpZXMvZWxlbWVudHNcIjogZGVmYXVsdEJvdW5kYXJpZXNDb25maWcuZWxlbWVudHMsXG4gIH07XG5cbiAgY29uc3QgcnVsZXM6IFJ1bGVzID0ge1xuICAgIC4uLnN0cmljdC5ydWxlcyxcbiAgICBcImJvdW5kYXJpZXMvZGVwZW5kZW5jaWVzXCI6IGRlZmF1bHRCb3VuZGFyaWVzQ29uZmlnLmVsZW1lbnRUeXBlcyxcbiAgfTtcblxuICBjb25zdCBjb25maWdPYmplY3QgPSBjcmVhdGVDb25maWcoe1xuICAgIGZpbGVzOiBbLi4uZGVmYXVsdEJvdW5kYXJpZXNDb25maWcuZmlsZXNdLFxuICAgIGlnbm9yZXM6IFsuLi5kZWZhdWx0Qm91bmRhcmllc0NvbmZpZy5pZ25vcmVzXSxcbiAgICBydWxlcyxcbiAgICBzZXR0aW5ncyxcbiAgfSkgYXMgQ29uZmlnT2JqZWN0O1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcoY29uZmlnT2JqZWN0KTtcbn1cblxuZXhwb3J0IHsgYm91bmRhcmllcywgZGVmYXVsdEJvdW5kYXJpZXNDb25maWcgfTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-x.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/architecture/import-x.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"import-x.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/architecture/import-x.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAgCrC;;;;;;;GAOG;AACH,iBAAe,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAyCjD;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -9,30 +9,19 @@ import { defineConfig } from "eslint/config";
|
|
|
9
9
|
* ```
|
|
10
10
|
*/
|
|
11
11
|
async function buildCustomErrorRules() {
|
|
12
|
-
const { flatConfigs
|
|
12
|
+
const { flatConfigs } = await import("eslint-plugin-import-x");
|
|
13
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
14
|
return [
|
|
30
15
|
warnings,
|
|
31
16
|
recommended,
|
|
32
17
|
typescript,
|
|
33
18
|
{
|
|
34
|
-
|
|
35
|
-
|
|
19
|
+
rules: {
|
|
20
|
+
"import-x/no-internal-modules": [
|
|
21
|
+
"error",
|
|
22
|
+
{ allow: ["**/node_modules/**"] },
|
|
23
|
+
],
|
|
24
|
+
},
|
|
36
25
|
},
|
|
37
26
|
];
|
|
38
27
|
}
|
|
@@ -81,4 +70,4 @@ async function importX() {
|
|
|
81
70
|
});
|
|
82
71
|
}
|
|
83
72
|
export { importX };
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvYXJjaGl0ZWN0dXJlL2ltcG9ydC14LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0M7Ozs7Ozs7O0dBUUc7QUFDSCxLQUFLLFVBQVUscUJBQXFCO0lBQ2xDLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLFdBQVcsQ0FBQztJQUUxRCxPQUFPO1FBQ0wsUUFBUTtRQUNSLFdBQVc7UUFDWCxVQUFVO1FBQ1Y7WUFDRSxLQUFLLEVBQUU7Z0JBQ0wsOEJBQThCLEVBQUU7b0JBQzlCLE9BQU87b0JBQ1AsRUFBRSxLQUFLLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO2lCQUNsQzthQUNGO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxLQUFLLFVBQVUsT0FBTztJQUNwQixPQUFPLFlBQVksQ0FDakIsR0FBRyxDQUFDLE1BQU0scUJBQXFCLEVBQUUsQ0FBQyxFQUNsQztRQUNFLElBQUksRUFBRSw0QkFBNEI7UUFDbEMsS0FBSyxFQUFFO1lBQ0wscUNBQXFDLEVBQUUsS0FBSztZQUM1QyxzQkFBc0IsRUFBRSxLQUFLO1NBQzlCO0tBQ0YsRUFDRDtRQUNFLElBQUksRUFBRSw4QkFBOEI7UUFDcEMsS0FBSyxFQUFFO1lBQ0wsOEJBQThCLEVBQUU7Z0JBQzlCLE9BQU87Z0JBQ1A7b0JBQ0UsS0FBSyxFQUFFO3dCQUNMLGVBQWU7d0JBQ2YsaUNBQWlDO3dCQUNqQyxvQ0FBb0M7d0JBQ3BDLGVBQWU7d0JBQ2YseURBQXlEO3FCQUMxRDtpQkFDRjthQUNGO1NBQ0Y7S0FDRixFQUNEO1FBQ0UsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQztRQUM1QixJQUFJLEVBQUUsbUNBQW1DO1FBQ3pDLEtBQUssRUFBRTtZQUNMLDRCQUE0QixFQUFFLEtBQUs7U0FDcEM7S0FDRixFQUNEO1FBQ0UsS0FBSyxFQUFFLENBQUMseUJBQXlCLENBQUM7UUFDbEMsS0FBSyxFQUFFO1lBQ0wsNEJBQTRCLEVBQUUsS0FBSztTQUNwQztLQUNGLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpbnRlciB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcImVzbGludC9jb25maWdcIjtcblxuLyoqXG4gKiBCdWlsZCBjdXN0b20gZXJyb3IgcnVsZXMgZm9yIGltcG9ydC14IHBsdWdpbiBieSBleGNsdWRpbmcgY2VydGFpbiBydWxlc1xuICogYW5kIGVuc3VyaW5nIG5vIG92ZXJsYXAgd2l0aCBleGlzdGluZyBjb25maWd1cmF0aW9ucy5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogYXdhaXQgYnVpbGRDdXN0b21FcnJvclJ1bGVzKCk7XG4gKiBgYGBcbiAqL1xuYXN5bmMgZnVuY3Rpb24gYnVpbGRDdXN0b21FcnJvclJ1bGVzKCk6IFByb21pc2U8TGludGVyLkNvbmZpZ1tdPiB7XG4gIGNvbnN0IHsgZmxhdENvbmZpZ3MgfSA9IGF3YWl0IGltcG9ydChcImVzbGludC1wbHVnaW4taW1wb3J0LXhcIik7XG4gIGNvbnN0IHsgcmVjb21tZW5kZWQsIHR5cGVzY3JpcHQsIHdhcm5pbmdzIH0gPSBmbGF0Q29uZmlncztcblxuICByZXR1cm4gW1xuICAgIHdhcm5pbmdzLFxuICAgIHJlY29tbWVuZGVkLFxuICAgIHR5cGVzY3JpcHQsXG4gICAge1xuICAgICAgcnVsZXM6IHtcbiAgICAgICAgXCJpbXBvcnQteC9uby1pbnRlcm5hbC1tb2R1bGVzXCI6IFtcbiAgICAgICAgICBcImVycm9yXCIsXG4gICAgICAgICAgeyBhbGxvdzogW1wiKiovbm9kZV9tb2R1bGVzLyoqXCJdIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG4gIF07XG59XG5cbi8qKlxuICogTG9hZHMgdGhlIGltcG9ydC14IHBsdWdpbiBjb25maWd1cmF0aW9uLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhd2FpdCBpbXBvcnRYKCk7XG4gKiBgYGBcbiAqL1xuYXN5bmMgZnVuY3Rpb24gaW1wb3J0WCgpOiBQcm9taXNlPExpbnRlci5Db25maWdbXT4ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFxuICAgIC4uLihhd2FpdCBidWlsZEN1c3RvbUVycm9yUnVsZXMoKSksXG4gICAge1xuICAgICAgbmFtZTogXCJpbXBvcnQteC9jdXN0b20tdHlwZXNjcmlwdFwiLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgXCJpbXBvcnQteC9uby1yZWxhdGl2ZS1wYXJlbnQtaW1wb3J0c1wiOiBcIm9mZlwiLFxuICAgICAgICBcImltcG9ydC14L3VuYW1iaWd1b3VzXCI6IFwib2ZmXCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJpbXBvcnQteC9jdXN0b20tbm9kZV9tb2R1bGVzXCIsXG4gICAgICBydWxlczoge1xuICAgICAgICBcImltcG9ydC14L25vLWludGVybmFsLW1vZHVsZXNcIjogW1xuICAgICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICBcImVzbGludC9jb25maWdcIixcbiAgICAgICAgICAgICAgXCJlc2xpbnQtcGx1Z2luLWJvdW5kYXJpZXMvY29uZmlnXCIsXG4gICAgICAgICAgICAgIFwiZXNsaW50LXBsdWdpbi1wcmV0dGllci9yZWNvbW1lbmRlZFwiLFxuICAgICAgICAgICAgICBcInZpdGVzdC9jb25maWdcIixcbiAgICAgICAgICAgICAgXCJAZXNsaW50LWNvbW11bml0eS9lc2xpbnQtcGx1Z2luLWVzbGludC1jb21tZW50cy9jb25maWdzXCIsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZXM6IFtcIipcIiwgXCJwYWNrYWdlcy8qLypcIl0sXG4gICAgICBuYW1lOiBcImltcG9ydC14L2N1c3RvbS1yb290LWNvbmZpZy1maWxlc1wiLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgXCJpbXBvcnQteC9uby1kZWZhdWx0LWV4cG9ydFwiOiBcIm9mZlwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBbXCIqKi8qLntzcGVjLHRlc3QsZTJlfS50c1wiXSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgIFwiaW1wb3J0LXgvbm8tbm9kZWpzLW1vZHVsZXNcIjogXCJvZmZcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgKTtcbn1cblxuZXhwb3J0IHsgaW1wb3J0WCB9O1xuIl19
|