@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.
Files changed (42) hide show
  1. package/README.md +20 -29
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/bootstrap/index.d.ts +3 -0
  4. package/dist/bootstrap/index.d.ts.map +1 -0
  5. package/dist/bootstrap/index.js +2 -0
  6. package/dist/codeperfect-eslint-config-1.0.0.tgz +0 -0
  7. package/dist/domain/index.d.ts +1 -1
  8. package/dist/domain/index.d.ts.map +1 -1
  9. package/dist/domain/index.js +1 -1
  10. package/dist/domain/types.d.ts +7 -37
  11. package/dist/domain/types.d.ts.map +1 -1
  12. package/dist/domain/types.js +1 -1
  13. package/dist/index.d.ts +1 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -2
  16. package/dist/infrastructure/architecture/boundaries.d.ts +17 -12
  17. package/dist/infrastructure/architecture/boundaries.d.ts.map +1 -1
  18. package/dist/infrastructure/architecture/boundaries.js +42 -116
  19. package/dist/infrastructure/architecture/import-x.d.ts.map +1 -1
  20. package/dist/infrastructure/architecture/import-x.js +8 -19
  21. package/dist/infrastructure/config-factory.d.ts +1 -1
  22. package/dist/infrastructure/config-factory.d.ts.map +1 -1
  23. package/dist/infrastructure/config-factory.js +8 -6
  24. package/dist/infrastructure/core/eslint.d.ts.map +1 -1
  25. package/dist/infrastructure/core/eslint.js +13 -3
  26. package/dist/infrastructure/core/typescript.d.ts.map +1 -1
  27. package/dist/infrastructure/core/typescript.js +5 -1
  28. package/dist/infrastructure/diagnostics.d.ts +4 -14
  29. package/dist/infrastructure/diagnostics.d.ts.map +1 -1
  30. package/dist/infrastructure/diagnostics.js +8 -23
  31. package/dist/infrastructure/index.d.ts +1 -1
  32. package/dist/infrastructure/index.d.ts.map +1 -1
  33. package/dist/infrastructure/index.js +1 -1
  34. package/dist/infrastructure/plugin-loaders.d.ts +1 -1
  35. package/dist/infrastructure/plugin-loaders.d.ts.map +1 -1
  36. package/dist/infrastructure/plugin-loaders.js +4 -3
  37. package/dist/infrastructure/plugin-state.d.ts.map +1 -1
  38. package/dist/infrastructure/plugin-state.js +1 -1
  39. package/dist/infrastructure/utilities.d.ts +1 -23
  40. package/dist/infrastructure/utilities.d.ts.map +1 -1
  41. package/dist/infrastructure/utilities.js +3 -89
  42. package/package.json +12 -14
package/README.md CHANGED
@@ -74,34 +74,25 @@ export default config({
74
74
  });
75
75
  ```
76
76
 
77
- Provide explicit repository-owned `boundaries` topology when needed:
78
-
79
- ```typescript
80
- import { config } from "@codeperfect/eslint-config";
81
-
82
- export default config({
83
- boundaries: {
84
- files: ["src/**/*.ts"],
85
- elements: [
86
- { type: "shared", pattern: "src/shared/**/*" },
87
- { type: "domain", pattern: "src/domain/**/*" },
88
- { type: "app", pattern: "src/app/**/*" },
89
- ],
90
- elementTypes: [
91
- "error",
92
- {
93
- default: "disallow",
94
- rules: [
95
- { allow: ["shared"], from: ["domain", "app"] },
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, repository-owned architecture overlay. |
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,3 @@
1
+ export { config, defaultBoundariesConfig } from "../infrastructure/index.js";
2
+ export type { ConfigOptions, PluginStateOverrides } from "../infrastructure/index.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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==
@@ -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 { BoundariesConfig, BoundariesConfigExtension, BoundariesElementTypesOptions, BoundariesElementTypesRuleEntry, ConfigOptions, PluginName, PluginStateOverrides, } from "./types.js";
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,gBAAgB,EAChB,yBAAyB,EACzB,6BAA6B,EAC7B,+BAA+B,EAC/B,aAAa,EACb,UAAU,EACV,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EACV,6BAA6B,EAC7B,+BAA+B,EAC/B,aAAa,EACb,yBAAyB,EACzB,UAAU,EACV,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9tYWluL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLHVCQUF1QixHQUN4QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIGRlZmF1bHRDb21wb3NpdGlvbk5hbWVzLFxuICBmdWxsQ29tcG9zaXRpb25OYW1lcyxcbiAgcmVkdWNlZENvbXBvc2l0aW9uTmFtZXMsXG59IGZyb20gXCIuL2NvbmZpZy1jb21wb3NpdGlvblwiO1xuZXhwb3J0IHsgbW9kdWxlVGF4b25vbXkgfSBmcm9tIFwiLi9tb2R1bGUtdGF4b25vbXlcIjtcbmV4cG9ydCB0eXBlIHtcbiAgQm91bmRhcmllc0NvbmZpZyxcbiAgQm91bmRhcmllc0NvbmZpZ0V4dGVuc2lvbixcbiAgQm91bmRhcmllc0VsZW1lbnRUeXBlc09wdGlvbnMsXG4gIEJvdW5kYXJpZXNFbGVtZW50VHlwZXNSdWxlRW50cnksXG4gIENvbmZpZ09wdGlvbnMsXG4gIFBsdWdpbk5hbWUsXG4gIFBsdWdpblN0YXRlT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi90eXBlc1wiO1xuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9tYWluL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLHVCQUF1QixHQUN4QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7XG4gIGRlZmF1bHRDb21wb3NpdGlvbk5hbWVzLFxuICBmdWxsQ29tcG9zaXRpb25OYW1lcyxcbiAgcmVkdWNlZENvbXBvc2l0aW9uTmFtZXMsXG59IGZyb20gXCIuL2NvbmZpZy1jb21wb3NpdGlvblwiO1xuZXhwb3J0IHsgbW9kdWxlVGF4b25vbXkgfSBmcm9tIFwiLi9tb2R1bGUtdGF4b25vbXlcIjtcbmV4cG9ydCB0eXBlIHtcbiAgQm91bmRhcmllc0VsZW1lbnRUeXBlc09wdGlvbnMsXG4gIEJvdW5kYXJpZXNFbGVtZW50VHlwZXNSdWxlRW50cnksXG4gIENvbmZpZ09wdGlvbnMsXG4gIERlZmF1bHREaXNhYmxlZFBsdWdpbk5hbWUsXG4gIFBsdWdpbk5hbWUsXG4gIFBsdWdpblN0YXRlT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi90eXBlc1wiO1xuIl19
@@ -1,34 +1,7 @@
1
1
  import type { Linter } from "eslint";
2
- import type { DependenciesRuleOptions, ElementDescriptors } from "eslint-plugin-boundaries";
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<PluginName, boolean>>;
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 { BoundariesConfig, BoundariesConfigExtension, BoundariesElementTypesOptions, BoundariesElementTypesRuleEntry, ConfigOptions, PluginName, PluginStateOverrides, };
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,EACV,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,qCAAqC;AACrC,KAAK,sBAAsB,GAAG,YAAY,GAAG,UAAU,CAAC;AAExD,qCAAqC;AACrC,UAAU,gBAAgB;IACxB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAE9B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,+BAA+B,CAAC;IAE/C,0EAA0E;IAC1E,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAEnC,iEAAiE;IACjE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE1B,mFAAmF;IACnF,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED,gEAAgE;AAChE,UAAU,yBAAyB;IACjC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAE9B;;;OAGG;IACH,YAAY,CAAC,EAAE,IAAI,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;IAE5D,2DAA2D;IAC3D,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE1B,mEAAmE;IACnE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED,oEAAoE;AACpE,KAAK,6BAA6B,GAAG,uBAAuB,CAAC;AAE7D,8EAA8E;AAC9E,KAAK,+BAA+B,GAAG;IACrC,MAAM,CAAC,YAAY;IACnB,6BAA6B;CAC9B,CAAC;AAEF,qCAAqC;AACrC,UAAU,aAAa;IACrB,gFAAgF;IAChF,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B,mEAAmE;IACnE,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAE/B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;CAC5B;AAED,qCAAqC;AACrC,KAAK,cAAc,GAAG,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3E,qCAAqC;AACrC,KAAK,uBAAuB,GAAG,UAAU,GAAG,OAAO,CAAC;AAEpD,qCAAqC;AACrC,KAAK,gBAAgB,GAAG,QAAQ,CAAC;AAEjC,qCAAqC;AACrC,KAAK,UAAU,GACX,sBAAsB,GACtB,cAAc,GACd,uBAAuB,GACvB,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,iBAAiB,CAAC;AAEtB,2DAA2D;AAC3D,KAAK,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AAEjE,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,gBAAgB,EAChB,yBAAyB,EACzB,6BAA6B,EAC7B,+BAA+B,EAC/B,aAAa,EACb,UAAU,EACV,oBAAoB,GACrB,CAAC"}
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"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9tYWluL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpbnRlciB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCB0eXBlIHtcbiAgRGVwZW5kZW5jaWVzUnVsZU9wdGlvbnMsXG4gIEVsZW1lbnREZXNjcmlwdG9ycyxcbn0gZnJvbSBcImVzbGludC1wbHVnaW4tYm91bmRhcmllc1wiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIEFyY2hpdGVjdHVyZVBsdWdpbk5hbWUgPSBcImJvdW5kYXJpZXNcIiB8IFwiaW1wb3J0LXhcIjtcblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIEJvdW5kYXJpZXNDb25maWcge1xuICAvKiogUmVwb3NpdG9yeS1vd25lZCBlbGVtZW50IGRlc2NyaXB0b3JzIGZvciBib3VuZGFyaWVzIGFuYWx5c2lzLiAqL1xuICBlbGVtZW50cz86IEVsZW1lbnREZXNjcmlwdG9ycztcblxuICAvKiogUmVwb3NpdG9yeS1vd25lZCBkZXBlbmRlbmN5IGRpcmVjdGlvbiBydWxlcyBmb3IgYm91bmRhcmllcyBhbmFseXNpcy4gKi9cbiAgZWxlbWVudFR5cGVzPzogQm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeTtcblxuICAvKiogT3B0aW9uYWwgYWRkaXRpdmUgZXh0ZW5zaW9ucyBhcHBsaWVkIGFmdGVyIHRoZSByZXBvc2l0b3J5IGRlZmF1bHRzLiAqL1xuICBleHRlbmQ/OiBCb3VuZGFyaWVzQ29uZmlnRXh0ZW5zaW9uO1xuXG4gIC8qKiBGaWxlcyBpbmNsdWRlZCBpbiByZXBvc2l0b3J5LXNwZWNpZmljIGJvdW5kYXJpZXMgYW5hbHlzaXMuICovXG4gIGZpbGVzPzogcmVhZG9ubHkgc3RyaW5nW107XG5cbiAgLyoqIE9wdGlvbmFsIGlnbm9yZSBnbG9icyBleGNsdWRlZCBmcm9tIHJlcG9zaXRvcnktc3BlY2lmaWMgYm91bmRhcmllcyBhbmFseXNpcy4gKi9cbiAgaWdub3Jlcz86IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBhZGRpdGl2ZSBib3VuZGFyaWVzIGV4dGVuc2lvbiBmaWVsZHMuICovXG5pbnRlcmZhY2UgQm91bmRhcmllc0NvbmZpZ0V4dGVuc2lvbiB7XG4gIC8qKiBBZGRpdGlvbmFsIHJlcG9zaXRvcnktb3duZWQgZWxlbWVudCBkZXNjcmlwdG9ycyBhcHBlbmRlZCB0byB0aGUgZGVmYXVsdHMuICovXG4gIGVsZW1lbnRzPzogRWxlbWVudERlc2NyaXB0b3JzO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGRlcGVuZGVuY3kgZGlyZWN0aW9uIHJ1bGVzIGFwcGVuZGVkIHRvIHRoZSBkZWZhdWx0IHJ1bGUgc2V0LlxuICAgKiBPbmx5IGFkZGl0aXZlIGRlcGVuZGVuY3kgcnVsZXMgYXJlIHN1cHBvcnRlZCBoZXJlLlxuICAgKi9cbiAgZWxlbWVudFR5cGVzPzogUGljazxCb3VuZGFyaWVzRWxlbWVudFR5cGVzT3B0aW9ucywgXCJydWxlc1wiPjtcblxuICAvKiogQWRkaXRpb25hbCBmaWxlcyBhcHBlbmRlZCB0byB0aGUgZGVmYXVsdCBmaWxlIGdsb2JzLiAqL1xuICBmaWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKiBBZGRpdGlvbmFsIGlnbm9yZSBnbG9icyBhcHBlbmRlZCB0byB0aGUgZGVmYXVsdCBpZ25vcmUgbGlzdC4gKi9cbiAgaWdub3Jlcz86IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG4vKiogRGVwZW5kZW5jeSBydWxlIG9wdGlvbnMgb2JqZWN0IHVzZWQgYnkgdGhlIGJvdW5kYXJpZXMgcGx1Z2luLiAqL1xudHlwZSBCb3VuZGFyaWVzRWxlbWVudFR5cGVzT3B0aW9ucyA9IERlcGVuZGVuY2llc1J1bGVPcHRpb25zO1xuXG4vKiogUnVsZSBlbnRyeSBzaGFwZSB1c2VkIGZvciByZXBvc2l0b3J5LW93bmVkIGJvdW5kYXJpZXMgZGVwZW5kZW5jeSBydWxlcy4gKi9cbnR5cGUgQm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeSA9IFtcbiAgTGludGVyLlJ1bGVTZXZlcml0eSxcbiAgQm91bmRhcmllc0VsZW1lbnRUeXBlc09wdGlvbnMsXG5dO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgQ29uZmlnT3B0aW9ucyB7XG4gIC8qKiBSZXBvc2l0b3J5LW93bmVkIGFyY2hpdGVjdHVyZSBpbnB1dCBmb3IgdGhlIG9wdGlvbmFsIGBib3VuZGFyaWVzYCBtb2R1bGUuICovXG4gIGJvdW5kYXJpZXM/OiBCb3VuZGFyaWVzQ29uZmlnO1xuXG4gIC8qKiBFeHBsaWNpdCBwbHVnaW4gc3RhdGUgb3ZlcnJpZGVzIGtleWVkIGJ5IHB1YmxpYyBwbHVnaW4gbmFtZS4gKi9cbiAgcGx1Z2lucz86IFBsdWdpblN0YXRlT3ZlcnJpZGVzO1xuXG4gIC8qKlxuICAgKiBSdWxlcyB0byBkaXNhYmxlIG9yIG92ZXJyaWRlLlxuICAgKiBVc2UgJ29mZicgdG8gZGlzYWJsZSwgb3IgcHJvdmlkZSBjdXN0b20gY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJ1bGVzPzogTGludGVyLlJ1bGVzUmVjb3JkO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIENvcmVQbHVnaW5OYW1lID0gXCJjb2RlcGVyZmVjdFwiIHwgXCJlc2xpbnRcIiB8IFwicmVzb2x2ZXJcIiB8IFwidHlwZXNjcmlwdFwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIERvY3VtZW50YXRpb25QbHVnaW5OYW1lID0gXCJjb21tZW50c1wiIHwgXCJqc2RvY1wiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIERvbWFpblBsdWdpbk5hbWUgPSBcInJ4anMteFwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIFBsdWdpbk5hbWUgPVxuICB8IEFyY2hpdGVjdHVyZVBsdWdpbk5hbWVcbiAgfCBDb3JlUGx1Z2luTmFtZVxuICB8IERvY3VtZW50YXRpb25QbHVnaW5OYW1lXG4gIHwgRG9tYWluUGx1Z2luTmFtZVxuICB8IFJ1bnRpbWVQbHVnaW5OYW1lXG4gIHwgU3R5bGVQbHVnaW5OYW1lXG4gIHwgVGVzdGluZ1BsdWdpbk5hbWU7XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIGV4cGxpY2l0IHBsdWdpbiBzdGF0ZSBvdmVycmlkZXMuICovXG50eXBlIFBsdWdpblN0YXRlT3ZlcnJpZGVzID0gUGFydGlhbDxSZWNvcmQ8UGx1Z2luTmFtZSwgYm9vbGVhbj4+O1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIFJ1bnRpbWVQbHVnaW5OYW1lID0gXCJhbmd1bGFyLWVzbGludFwiO1xuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xudHlwZSBTdHlsZVBsdWdpbk5hbWUgPSBcInBlcmZlY3Rpb25pc3RcIiB8IFwicHJldHRpZXJcIiB8IFwic3R5bGlzdGljXCIgfCBcInVuaWNvcm5cIjtcblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xudHlwZSBUZXN0aW5nUGx1Z2luTmFtZSA9XG4gIHwgXCJqYXNtaW5lXCJcbiAgfCBcImplc3RcIlxuICB8IFwicGxheXdyaWdodFwiXG4gIHwgXCJ2aXRlc3RcIlxuICB8IFwidml0ZXN0LWUyZVwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEJvdW5kYXJpZXNDb25maWcsXG4gIEJvdW5kYXJpZXNDb25maWdFeHRlbnNpb24sXG4gIEJvdW5kYXJpZXNFbGVtZW50VHlwZXNPcHRpb25zLFxuICBCb3VuZGFyaWVzRWxlbWVudFR5cGVzUnVsZUVudHJ5LFxuICBDb25maWdPcHRpb25zLFxuICBQbHVnaW5OYW1lLFxuICBQbHVnaW5TdGF0ZU92ZXJyaWRlcyxcbn07XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZG9tYWluL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpbnRlciB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCB0eXBlIHsgRGVwZW5kZW5jaWVzUnVsZU9wdGlvbnMgfSBmcm9tIFwiZXNsaW50LXBsdWdpbi1ib3VuZGFyaWVzXCI7XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbnR5cGUgQXJjaGl0ZWN0dXJlUGx1Z2luTmFtZSA9IFwiYm91bmRhcmllc1wiIHwgXCJpbXBvcnQteFwiO1xuXG4vKiogRGVwZW5kZW5jeSBydWxlIG9wdGlvbnMgb2JqZWN0IHVzZWQgYnkgdGhlIGJvdW5kYXJpZXMgcGx1Z2luLiAqL1xudHlwZSBCb3VuZGFyaWVzRWxlbWVudFR5cGVzT3B0aW9ucyA9IERlcGVuZGVuY2llc1J1bGVPcHRpb25zO1xuXG4vKiogUnVsZSBlbnRyeSBzaGFwZSB1c2VkIGZvciByZXBvc2l0b3J5LW93bmVkIGJvdW5kYXJpZXMgZGVwZW5kZW5jeSBydWxlcy4gKi9cbnR5cGUgQm91bmRhcmllc0VsZW1lbnRUeXBlc1J1bGVFbnRyeSA9IFtcbiAgTGludGVyLlJ1bGVTZXZlcml0eSxcbiAgQm91bmRhcmllc0VsZW1lbnRUeXBlc09wdGlvbnMsXG5dO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgQ29uZmlnT3B0aW9ucyB7XG4gIC8qKiBFeHBsaWNpdCBwbHVnaW4gc3RhdGUgb3ZlcnJpZGVzIGtleWVkIGJ5IHB1YmxpYyBwbHVnaW4gbmFtZS4gKi9cbiAgcGx1Z2lucz86IFBsdWdpblN0YXRlT3ZlcnJpZGVzO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIENvcmVQbHVnaW5OYW1lID0gXCJjb2RlcGVyZmVjdFwiIHwgXCJlc2xpbnRcIiB8IFwicmVzb2x2ZXJcIiB8IFwidHlwZXNjcmlwdFwiO1xuXG4vKiogUGx1Z2lucyB0aGF0IGFyZSBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBjYW4gb25seSBiZSBleHBsaWNpdGx5IGVuYWJsZWQuICovXG50eXBlIERlZmF1bHREaXNhYmxlZFBsdWdpbk5hbWUgPVxuICB8IFwiYW5ndWxhci1lc2xpbnRcIlxuICB8IFwiamFzbWluZVwiXG4gIHwgXCJqZXN0XCJcbiAgfCBcInZpdGVzdC1lMmVcIjtcblxuLyoqIFBsdWdpbnMgdGhhdCBhcmUgZW5hYmxlZCBieSBkZWZhdWx0IGFuZCBjYW4gb25seSBiZSBleHBsaWNpdGx5IGRpc2FibGVkLiAqL1xudHlwZSBEZWZhdWx0RW5hYmxlZFBsdWdpbk5hbWUgPSBFeGNsdWRlPFBsdWdpbk5hbWUsIERlZmF1bHREaXNhYmxlZFBsdWdpbk5hbWU+O1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIERvY3VtZW50YXRpb25QbHVnaW5OYW1lID0gXCJjb21tZW50c1wiIHwgXCJqc2RvY1wiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIERvbWFpblBsdWdpbk5hbWUgPSBcInJ4anMteFwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIFBsdWdpbk5hbWUgPVxuICB8IEFyY2hpdGVjdHVyZVBsdWdpbk5hbWVcbiAgfCBDb3JlUGx1Z2luTmFtZVxuICB8IERvY3VtZW50YXRpb25QbHVnaW5OYW1lXG4gIHwgRG9tYWluUGx1Z2luTmFtZVxuICB8IFJ1bnRpbWVQbHVnaW5OYW1lXG4gIHwgU3R5bGVQbHVnaW5OYW1lXG4gIHwgVGVzdGluZ1BsdWdpbk5hbWU7XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIGV4cGxpY2l0IHBsdWdpbiBzdGF0ZSBvdmVycmlkZXMuICovXG50eXBlIFBsdWdpblN0YXRlT3ZlcnJpZGVzID0gUGFydGlhbDxcbiAgUmVjb3JkPERlZmF1bHREaXNhYmxlZFBsdWdpbk5hbWUsIHRydWU+ICZcbiAgICBSZWNvcmQ8RGVmYXVsdEVuYWJsZWRQbHVnaW5OYW1lLCBmYWxzZT5cbj47XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbnR5cGUgUnVudGltZVBsdWdpbk5hbWUgPSBcImFuZ3VsYXItZXNsaW50XCI7XG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIFN0eWxlUGx1Z2luTmFtZSA9IFwicGVyZmVjdGlvbmlzdFwiIHwgXCJwcmV0dGllclwiIHwgXCJzdHlsaXN0aWNcIiB8IFwidW5pY29yblwiO1xuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG50eXBlIFRlc3RpbmdQbHVnaW5OYW1lID1cbiAgfCBcImphc21pbmVcIlxuICB8IFwiamVzdFwiXG4gIHwgXCJwbGF5d3JpZ2h0XCJcbiAgfCBcInZpdGVzdFwiXG4gIHwgXCJ2aXRlc3QtZTJlXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQm91bmRhcmllc0VsZW1lbnRUeXBlc09wdGlvbnMsXG4gIEJvdW5kYXJpZXNFbGVtZW50VHlwZXNSdWxlRW50cnksXG4gIENvbmZpZ09wdGlvbnMsXG4gIERlZmF1bHREaXNhYmxlZFBsdWdpbk5hbWUsXG4gIFBsdWdpbk5hbWUsXG4gIFBsdWdpblN0YXRlT3ZlcnJpZGVzLFxufTtcbiJdfQ==
package/dist/index.d.ts CHANGED
@@ -1,3 +1,2 @@
1
- export { config, defaultBoundariesConfig } from "./infrastructure/index.js";
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,oBAAoB,GACrB,MAAM,kBAAkB,CAAC"}
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 "./infrastructure/index.js";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgY29uZmlnLCBkZWZhdWx0Qm91bmRhcmllc0NvbmZpZyB9IGZyb20gXCIuL2luZnJhc3RydWN0dXJlXCI7XG5leHBvcnQgdHlwZSB7XG4gIEJvdW5kYXJpZXNDb25maWcsXG4gIENvbmZpZ09wdGlvbnMsXG4gIFBsdWdpblN0YXRlT3ZlcnJpZGVzLFxufSBmcm9tIFwiLi9pbmZyYXN0cnVjdHVyZVwiO1xuIl19
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 { BoundariesConfig } from "../../domain/index.js";
3
- /** Resolved boundaries config used internally after defaults are applied. */
4
- type ResolvedBoundariesConfig = Omit<Required<BoundariesConfig>, "extend">;
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: ResolvedBoundariesConfig;
16
+ declare const defaultBoundariesConfig: BoundariesConfig;
7
17
  /**
8
- * Load boundaries plugin configuration using the default Clean Architecture
9
- * topology, with optional per-field overrides and additive extensions.
10
- * @param config Input config value.
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(config?: BoundariesConfig): Linter.Config[];
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;AAUrC,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,cAAc,CAAC;AAEtB,6EAA6E;AAC7E,KAAK,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAC;AAmD3E,8EAA8E;AAC9E,QAAA,MAAM,uBAAuB,EAAE,wBAK9B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,iBAAS,UAAU,CAAC,MAAM,GAAE,gBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,CAsBlE;AAmJD,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,CAAC"}
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: "application", type: "application" },
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: ["application", "infrastructure"] } },
24
+ allow: { to: { type: ["bootstrap"] } },
22
25
  from: { type: "entrypoint" },
23
26
  },
24
27
  {
25
- allow: { to: { type: "domain" } },
26
- from: { type: "application" },
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 default Clean Architecture
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(config = {}) {
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;AAoDrC;;;;;;;GAOG;AACH,iBAAe,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAyCjD;AAED,OAAO,EAAE,OAAO,EAAE,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, rules } = await import("eslint-plugin-import-x");
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
- name: "import-x/custom-error",
35
- rules: customError,
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvYXJjaGl0ZWN0dXJlL2ltcG9ydC14LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0M7Ozs7Ozs7O0dBUUc7QUFDSCxLQUFLLFVBQVUscUJBQXFCO0lBQ2xDLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUN0RSxNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxXQUFXLENBQUM7SUFFMUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLENBQUM7UUFDM0IsMEJBQTBCO1FBQzFCLGVBQWU7UUFDZixpQkFBaUI7UUFDakIsY0FBYztRQUNkLG1CQUFtQjtRQUNuQixPQUFPO1FBQ1AsdUJBQXVCO0tBQ3hCLENBQUMsQ0FBQztJQUVILE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUN4QixDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDckQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUNoQyxDQUNGLENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNmLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztTQUNqQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN2QyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBVSxDQUFDLENBQzNDLENBQUM7SUFFRixPQUFPO1FBQ0wsUUFBUTtRQUNSLFdBQVc7UUFDWCxVQUFVO1FBQ1Y7WUFDRSxJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLEtBQUssRUFBRSxXQUFXO1NBQ25CO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsS0FBSyxVQUFVLE9BQU87SUFDcEIsT0FBTyxZQUFZLENBQ2pCLEdBQUcsQ0FBQyxNQUFNLHFCQUFxQixFQUFFLENBQUMsRUFDbEM7UUFDRSxJQUFJLEVBQUUsNEJBQTRCO1FBQ2xDLEtBQUssRUFBRTtZQUNMLHFDQUFxQyxFQUFFLEtBQUs7WUFDNUMsc0JBQXNCLEVBQUUsS0FBSztTQUM5QjtLQUNGLEVBQ0Q7UUFDRSxJQUFJLEVBQUUsOEJBQThCO1FBQ3BDLEtBQUssRUFBRTtZQUNMLDhCQUE4QixFQUFFO2dCQUM5QixPQUFPO2dCQUNQO29CQUNFLEtBQUssRUFBRTt3QkFDTCxlQUFlO3dCQUNmLGlDQUFpQzt3QkFDakMsb0NBQW9DO3dCQUNwQyxlQUFlO3dCQUNmLHlEQUF5RDtxQkFDMUQ7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsRUFDRDtRQUNFLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUM7UUFDNUIsSUFBSSxFQUFFLG1DQUFtQztRQUN6QyxLQUFLLEVBQUU7WUFDTCw0QkFBNEIsRUFBRSxLQUFLO1NBQ3BDO0tBQ0YsRUFDRDtRQUNFLEtBQUssRUFBRSxDQUFDLHlCQUF5QixDQUFDO1FBQ2xDLEtBQUssRUFBRTtZQUNMLDRCQUE0QixFQUFFLEtBQUs7U0FDcEM7S0FDRixDQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaW50ZXIgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJlc2xpbnQvY29uZmlnXCI7XG5cbi8qKlxuICogQnVpbGQgY3VzdG9tIGVycm9yIHJ1bGVzIGZvciBpbXBvcnQteCBwbHVnaW4gYnkgZXhjbHVkaW5nIGNlcnRhaW4gcnVsZXNcbiAqIGFuZCBlbnN1cmluZyBubyBvdmVybGFwIHdpdGggZXhpc3RpbmcgY29uZmlndXJhdGlvbnMuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGF3YWl0IGJ1aWxkQ3VzdG9tRXJyb3JSdWxlcygpO1xuICogYGBgXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGJ1aWxkQ3VzdG9tRXJyb3JSdWxlcygpOiBQcm9taXNlPExpbnRlci5Db25maWdbXT4ge1xuICBjb25zdCB7IGZsYXRDb25maWdzLCBydWxlcyB9ID0gYXdhaXQgaW1wb3J0KFwiZXNsaW50LXBsdWdpbi1pbXBvcnQteFwiKTtcbiAgY29uc3QgeyByZWNvbW1lbmRlZCwgdHlwZXNjcmlwdCwgd2FybmluZ3MgfSA9IGZsYXRDb25maWdzO1xuXG4gIGNvbnN0IGN1c3RvbUlnbm9yZSA9IG5ldyBTZXQoW1xuICAgIFwiZHluYW1pYy1pbXBvcnQtY2h1bmtuYW1lXCIsXG4gICAgXCJuby1kZXByZWNhdGVkXCIsXG4gICAgXCJuby1uYW1lZC1leHBvcnRcIixcbiAgICBcIm5vLW5hbWVzcGFjZVwiLFxuICAgIFwibm8tdW51c2VkLW1vZHVsZXNcIixcbiAgICBcIm9yZGVyXCIsXG4gICAgXCJwcmVmZXItZGVmYXVsdC1leHBvcnRcIixcbiAgXSk7XG5cbiAgY29uc3QgYWxsQ29uZmlncyA9IG5ldyBTZXQoXG4gICAgW3dhcm5pbmdzLCByZWNvbW1lbmRlZCwgdHlwZXNjcmlwdF0uZmxhdE1hcCgoY29uZmlnKSA9PlxuICAgICAgT2JqZWN0LmtleXMoY29uZmlnLnJ1bGVzID8/IHt9KSxcbiAgICApLFxuICApO1xuXG4gIGNvbnN0IGN1c3RvbUVycm9yID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIE9iamVjdC5rZXlzKHJ1bGVzKVxuICAgICAgLmZpbHRlcigocnVsZSkgPT4gIWN1c3RvbUlnbm9yZS5oYXMocnVsZSkpXG4gICAgICAubWFwKChydWxlKSA9PiBgaW1wb3J0LXgvJHtydWxlfWApXG4gICAgICAuZmlsdGVyKChydWxlKSA9PiAhYWxsQ29uZmlncy5oYXMocnVsZSkpXG4gICAgICAubWFwKChydWxlKSA9PiBbcnVsZSwgXCJlcnJvclwiXSBhcyBjb25zdCksXG4gICk7XG5cbiAgcmV0dXJuIFtcbiAgICB3YXJuaW5ncyxcbiAgICByZWNvbW1lbmRlZCxcbiAgICB0eXBlc2NyaXB0LFxuICAgIHtcbiAgICAgIG5hbWU6IFwiaW1wb3J0LXgvY3VzdG9tLWVycm9yXCIsXG4gICAgICBydWxlczogY3VzdG9tRXJyb3IsXG4gICAgfSxcbiAgXTtcbn1cblxuLyoqXG4gKiBMb2FkcyB0aGUgaW1wb3J0LXggcGx1Z2luIGNvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGF3YWl0IGltcG9ydFgoKTtcbiAqIGBgYFxuICovXG5hc3luYyBmdW5jdGlvbiBpbXBvcnRYKCk6IFByb21pc2U8TGludGVyLkNvbmZpZ1tdPiB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoXG4gICAgLi4uKGF3YWl0IGJ1aWxkQ3VzdG9tRXJyb3JSdWxlcygpKSxcbiAgICB7XG4gICAgICBuYW1lOiBcImltcG9ydC14L2N1c3RvbS10eXBlc2NyaXB0XCIsXG4gICAgICBydWxlczoge1xuICAgICAgICBcImltcG9ydC14L25vLXJlbGF0aXZlLXBhcmVudC1pbXBvcnRzXCI6IFwib2ZmXCIsXG4gICAgICAgIFwiaW1wb3J0LXgvdW5hbWJpZ3VvdXNcIjogXCJvZmZcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcImltcG9ydC14L2N1c3RvbS1ub2RlX21vZHVsZXNcIixcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgIFwiaW1wb3J0LXgvbm8taW50ZXJuYWwtbW9kdWxlc1wiOiBbXG4gICAgICAgICAgXCJlcnJvclwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93OiBbXG4gICAgICAgICAgICAgIFwiZXNsaW50L2NvbmZpZ1wiLFxuICAgICAgICAgICAgICBcImVzbGludC1wbHVnaW4tYm91bmRhcmllcy9jb25maWdcIixcbiAgICAgICAgICAgICAgXCJlc2xpbnQtcGx1Z2luLXByZXR0aWVyL3JlY29tbWVuZGVkXCIsXG4gICAgICAgICAgICAgIFwidml0ZXN0L2NvbmZpZ1wiLFxuICAgICAgICAgICAgICBcIkBlc2xpbnQtY29tbXVuaXR5L2VzbGludC1wbHVnaW4tZXNsaW50LWNvbW1lbnRzL2NvbmZpZ3NcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogW1wiKlwiLCBcInBhY2thZ2VzLyovKlwiXSxcbiAgICAgIG5hbWU6IFwiaW1wb3J0LXgvY3VzdG9tLXJvb3QtY29uZmlnLWZpbGVzXCIsXG4gICAgICBydWxlczoge1xuICAgICAgICBcImltcG9ydC14L25vLWRlZmF1bHQtZXhwb3J0XCI6IFwib2ZmXCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZXM6IFtcIioqLyoue3NwZWMsdGVzdCxlMmV9LnRzXCJdLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgXCJpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlc1wiOiBcIm9mZlwiLFxuICAgICAgfSxcbiAgICB9LFxuICApO1xufVxuXG5leHBvcnQgeyBpbXBvcnRYIH07XG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5mcmFzdHJ1Y3R1cmUvYXJjaGl0ZWN0dXJlL2ltcG9ydC14LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0M7Ozs7Ozs7O0dBUUc7QUFDSCxLQUFLLFVBQVUscUJBQXFCO0lBQ2xDLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLFdBQVcsQ0FBQztJQUUxRCxPQUFPO1FBQ0wsUUFBUTtRQUNSLFdBQVc7UUFDWCxVQUFVO1FBQ1Y7WUFDRSxLQUFLLEVBQUU7Z0JBQ0wsOEJBQThCLEVBQUU7b0JBQzlCLE9BQU87b0JBQ1AsRUFBRSxLQUFLLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO2lCQUNsQzthQUNGO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxLQUFLLFVBQVUsT0FBTztJQUNwQixPQUFPLFlBQVksQ0FDakIsR0FBRyxDQUFDLE1BQU0scUJBQXFCLEVBQUUsQ0FBQyxFQUNsQztRQUNFLElBQUksRUFBRSw0QkFBNEI7UUFDbEMsS0FBSyxFQUFFO1lBQ0wscUNBQXFDLEVBQUUsS0FBSztZQUM1QyxzQkFBc0IsRUFBRSxLQUFLO1NBQzlCO0tBQ0YsRUFDRDtRQUNFLElBQUksRUFBRSw4QkFBOEI7UUFDcEMsS0FBSyxFQUFFO1lBQ0wsOEJBQThCLEVBQUU7Z0JBQzlCLE9BQU87Z0JBQ1A7b0JBQ0UsS0FBSyxFQUFFO3dCQUNMLGVBQWU7d0JBQ2YsaUNBQWlDO3dCQUNqQyxvQ0FBb0M7d0JBQ3BDLGVBQWU7d0JBQ2YseURBQXlEO3FCQUMxRDtpQkFDRjthQUNGO1NBQ0Y7S0FDRixFQUNEO1FBQ0UsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQztRQUM1QixJQUFJLEVBQUUsbUNBQW1DO1FBQ3pDLEtBQUssRUFBRTtZQUNMLDRCQUE0QixFQUFFLEtBQUs7U0FDcEM7S0FDRixFQUNEO1FBQ0UsS0FBSyxFQUFFLENBQUMseUJBQXlCLENBQUM7UUFDbEMsS0FBSyxFQUFFO1lBQ0wsNEJBQTRCLEVBQUUsS0FBSztTQUNwQztLQUNGLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpbnRlciB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcImVzbGludC9jb25maWdcIjtcblxuLyoqXG4gKiBCdWlsZCBjdXN0b20gZXJyb3IgcnVsZXMgZm9yIGltcG9ydC14IHBsdWdpbiBieSBleGNsdWRpbmcgY2VydGFpbiBydWxlc1xuICogYW5kIGVuc3VyaW5nIG5vIG92ZXJsYXAgd2l0aCBleGlzdGluZyBjb25maWd1cmF0aW9ucy5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogYXdhaXQgYnVpbGRDdXN0b21FcnJvclJ1bGVzKCk7XG4gKiBgYGBcbiAqL1xuYXN5bmMgZnVuY3Rpb24gYnVpbGRDdXN0b21FcnJvclJ1bGVzKCk6IFByb21pc2U8TGludGVyLkNvbmZpZ1tdPiB7XG4gIGNvbnN0IHsgZmxhdENvbmZpZ3MgfSA9IGF3YWl0IGltcG9ydChcImVzbGludC1wbHVnaW4taW1wb3J0LXhcIik7XG4gIGNvbnN0IHsgcmVjb21tZW5kZWQsIHR5cGVzY3JpcHQsIHdhcm5pbmdzIH0gPSBmbGF0Q29uZmlncztcblxuICByZXR1cm4gW1xuICAgIHdhcm5pbmdzLFxuICAgIHJlY29tbWVuZGVkLFxuICAgIHR5cGVzY3JpcHQsXG4gICAge1xuICAgICAgcnVsZXM6IHtcbiAgICAgICAgXCJpbXBvcnQteC9uby1pbnRlcm5hbC1tb2R1bGVzXCI6IFtcbiAgICAgICAgICBcImVycm9yXCIsXG4gICAgICAgICAgeyBhbGxvdzogW1wiKiovbm9kZV9tb2R1bGVzLyoqXCJdIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG4gIF07XG59XG5cbi8qKlxuICogTG9hZHMgdGhlIGltcG9ydC14IHBsdWdpbiBjb25maWd1cmF0aW9uLlxuICogQHJldHVybnMgUmV0dXJuIHZhbHVlIG91dHB1dC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBhd2FpdCBpbXBvcnRYKCk7XG4gKiBgYGBcbiAqL1xuYXN5bmMgZnVuY3Rpb24gaW1wb3J0WCgpOiBQcm9taXNlPExpbnRlci5Db25maWdbXT4ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFxuICAgIC4uLihhd2FpdCBidWlsZEN1c3RvbUVycm9yUnVsZXMoKSksXG4gICAge1xuICAgICAgbmFtZTogXCJpbXBvcnQteC9jdXN0b20tdHlwZXNjcmlwdFwiLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgXCJpbXBvcnQteC9uby1yZWxhdGl2ZS1wYXJlbnQtaW1wb3J0c1wiOiBcIm9mZlwiLFxuICAgICAgICBcImltcG9ydC14L3VuYW1iaWd1b3VzXCI6IFwib2ZmXCIsXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJpbXBvcnQteC9jdXN0b20tbm9kZV9tb2R1bGVzXCIsXG4gICAgICBydWxlczoge1xuICAgICAgICBcImltcG9ydC14L25vLWludGVybmFsLW1vZHVsZXNcIjogW1xuICAgICAgICAgIFwiZXJyb3JcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICBcImVzbGludC9jb25maWdcIixcbiAgICAgICAgICAgICAgXCJlc2xpbnQtcGx1Z2luLWJvdW5kYXJpZXMvY29uZmlnXCIsXG4gICAgICAgICAgICAgIFwiZXNsaW50LXBsdWdpbi1wcmV0dGllci9yZWNvbW1lbmRlZFwiLFxuICAgICAgICAgICAgICBcInZpdGVzdC9jb25maWdcIixcbiAgICAgICAgICAgICAgXCJAZXNsaW50LWNvbW11bml0eS9lc2xpbnQtcGx1Z2luLWVzbGludC1jb21tZW50cy9jb25maWdzXCIsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZXM6IFtcIipcIiwgXCJwYWNrYWdlcy8qLypcIl0sXG4gICAgICBuYW1lOiBcImltcG9ydC14L2N1c3RvbS1yb290LWNvbmZpZy1maWxlc1wiLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgXCJpbXBvcnQteC9uby1kZWZhdWx0LWV4cG9ydFwiOiBcIm9mZlwiLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBbXCIqKi8qLntzcGVjLHRlc3QsZTJlfS50c1wiXSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgIFwiaW1wb3J0LXgvbm8tbm9kZWpzLW1vZHVsZXNcIjogXCJvZmZcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgKTtcbn1cblxuZXhwb3J0IHsgaW1wb3J0WCB9O1xuIl19