archprint 0.15.0 → 0.16.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/CHANGELOG.md +18 -0
- package/README.md +40 -24
- package/dist/cli/adopted-rules.d.ts +2 -0
- package/dist/cli/adopted-rules.d.ts.map +1 -1
- package/dist/cli/adopted-rules.js +5 -0
- package/dist/cli/adopted-rules.js.map +1 -1
- package/dist/cli/allow.d.ts.map +1 -1
- package/dist/cli/allow.js +5 -23
- package/dist/cli/allow.js.map +1 -1
- package/dist/cli/check-evaluate.d.ts +2 -1
- package/dist/cli/check-evaluate.d.ts.map +1 -1
- package/dist/cli/check-evaluate.js +7 -2
- package/dist/cli/check-evaluate.js.map +1 -1
- package/dist/cli/check-locate.d.ts.map +1 -1
- package/dist/cli/check-locate.js +4 -2
- package/dist/cli/check-locate.js.map +1 -1
- package/dist/cli/check.js +2 -2
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/eslint-check.d.ts +6 -0
- package/dist/cli/eslint-check.d.ts.map +1 -0
- package/dist/cli/eslint-check.js +160 -0
- package/dist/cli/eslint-check.js.map +1 -0
- package/dist/cli/generate.d.ts +3 -6
- package/dist/cli/generate.d.ts.map +1 -1
- package/dist/cli/generate.js +42 -65
- package/dist/cli/generate.js.map +1 -1
- package/dist/cli/layout.d.ts +14 -1
- package/dist/cli/layout.d.ts.map +1 -1
- package/dist/cli/layout.js +48 -14
- package/dist/cli/layout.js.map +1 -1
- package/dist/cli/program.d.ts +0 -1
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +52 -76
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/ratchet.d.ts +24 -0
- package/dist/cli/ratchet.d.ts.map +1 -0
- package/dist/cli/ratchet.js +43 -0
- package/dist/cli/ratchet.js.map +1 -0
- package/dist/cli/report.d.ts +8 -4
- package/dist/cli/report.d.ts.map +1 -1
- package/dist/cli/report.js +50 -34
- package/dist/cli/report.js.map +1 -1
- package/dist/cli/rule-ref.d.ts +10 -0
- package/dist/cli/rule-ref.d.ts.map +1 -0
- package/dist/cli/rule-ref.js +18 -0
- package/dist/cli/rule-ref.js.map +1 -0
- package/dist/cli/scan.d.ts.map +1 -1
- package/dist/cli/scan.js +4 -4
- package/dist/cli/scan.js.map +1 -1
- package/dist/cli/summary.d.ts +7 -0
- package/dist/cli/summary.d.ts.map +1 -1
- package/dist/cli/summary.js +60 -2
- package/dist/cli/summary.js.map +1 -1
- package/dist/detector/orphan-detector.d.ts +8 -6
- package/dist/detector/orphan-detector.d.ts.map +1 -1
- package/dist/detector/orphan-detector.js +74 -15
- package/dist/detector/orphan-detector.js.map +1 -1
- package/dist/detector/pattern-detector.d.ts +2 -0
- package/dist/detector/pattern-detector.d.ts.map +1 -1
- package/dist/detector/pattern-detector.js +5 -0
- package/dist/detector/pattern-detector.js.map +1 -1
- package/dist/detector/stories-isolation-detector.d.ts +1 -0
- package/dist/detector/stories-isolation-detector.d.ts.map +1 -1
- package/dist/detector/stories-isolation-detector.js +1 -1
- package/dist/detector/stories-isolation-detector.js.map +1 -1
- package/dist/generator/app-isolation-emitters.d.ts +3 -1
- package/dist/generator/app-isolation-emitters.d.ts.map +1 -1
- package/dist/generator/app-isolation-emitters.js +9 -4
- package/dist/generator/app-isolation-emitters.js.map +1 -1
- package/dist/generator/console-isolation-emitters.d.ts +2 -6
- package/dist/generator/console-isolation-emitters.d.ts.map +1 -1
- package/dist/generator/console-isolation-emitters.js +3 -2
- package/dist/generator/console-isolation-emitters.js.map +1 -1
- package/dist/generator/deep-relative-emitters.d.ts +2 -16
- package/dist/generator/deep-relative-emitters.d.ts.map +1 -1
- package/dist/generator/deep-relative-emitters.js +6 -20
- package/dist/generator/deep-relative-emitters.js.map +1 -1
- package/dist/generator/depcruise-exempt.d.ts +17 -2
- package/dist/generator/depcruise-exempt.d.ts.map +1 -1
- package/dist/generator/depcruise-exempt.js +18 -4
- package/dist/generator/depcruise-exempt.js.map +1 -1
- package/dist/generator/dependency-internals-emitters.d.ts +1 -1
- package/dist/generator/dependency-internals-emitters.d.ts.map +1 -1
- package/dist/generator/dependency-internals-emitters.js +2 -2
- package/dist/generator/dependency-internals-emitters.js.map +1 -1
- package/dist/generator/entry-purity-emitters.d.ts +1 -1
- package/dist/generator/entry-purity-emitters.d.ts.map +1 -1
- package/dist/generator/entry-purity-emitters.js +3 -3
- package/dist/generator/entry-purity-emitters.js.map +1 -1
- package/dist/generator/env-access-emitters.d.ts +2 -2
- package/dist/generator/env-access-emitters.d.ts.map +1 -1
- package/dist/generator/env-access-emitters.js +3 -11
- package/dist/generator/env-access-emitters.js.map +1 -1
- package/dist/generator/eslint-app-emitter.d.ts +1 -0
- package/dist/generator/eslint-app-emitter.d.ts.map +1 -1
- package/dist/generator/eslint-app-emitter.js +1 -22
- package/dist/generator/eslint-app-emitter.js.map +1 -1
- package/dist/generator/eslint-family-rules.d.ts +23 -0
- package/dist/generator/eslint-family-rules.d.ts.map +1 -0
- package/dist/generator/eslint-family-rules.js +35 -0
- package/dist/generator/eslint-family-rules.js.map +1 -0
- package/dist/generator/eslint-plugin-emitter.d.ts +2 -0
- package/dist/generator/eslint-plugin-emitter.d.ts.map +1 -1
- package/dist/generator/eslint-plugin-emitter.js +21 -0
- package/dist/generator/eslint-plugin-emitter.js.map +1 -1
- package/dist/generator/eslint-preset-emitter.d.ts +2 -1
- package/dist/generator/eslint-preset-emitter.d.ts.map +1 -1
- package/dist/generator/eslint-preset-emitter.js +13 -10
- package/dist/generator/eslint-preset-emitter.js.map +1 -1
- package/dist/generator/eslint-scope.d.ts +0 -11
- package/dist/generator/eslint-scope.d.ts.map +1 -1
- package/dist/generator/eslint-scope.js +0 -44
- package/dist/generator/eslint-scope.js.map +1 -1
- package/dist/generator/feature-slice-emitters.d.ts +3 -1
- package/dist/generator/feature-slice-emitters.d.ts.map +1 -1
- package/dist/generator/feature-slice-emitters.js +9 -4
- package/dist/generator/feature-slice-emitters.js.map +1 -1
- package/dist/generator/layer-emitters.d.ts.map +1 -1
- package/dist/generator/layer-emitters.js +1 -4
- package/dist/generator/layer-emitters.js.map +1 -1
- package/dist/generator/phantom-dependency-emitters.d.ts +1 -1
- package/dist/generator/phantom-dependency-emitters.d.ts.map +1 -1
- package/dist/generator/phantom-dependency-emitters.js +2 -2
- package/dist/generator/phantom-dependency-emitters.js.map +1 -1
- package/dist/generator/public-api-emitters.d.ts +2 -1
- package/dist/generator/public-api-emitters.d.ts.map +1 -1
- package/dist/generator/public-api-emitters.js +8 -5
- package/dist/generator/public-api-emitters.js.map +1 -1
- package/dist/generator/role-layering-emitters.d.ts +3 -1
- package/dist/generator/role-layering-emitters.d.ts.map +1 -1
- package/dist/generator/role-layering-emitters.js +15 -8
- package/dist/generator/role-layering-emitters.js.map +1 -1
- package/dist/generator/server-client-emitters.d.ts.map +1 -1
- package/dist/generator/server-client-emitters.js +1 -4
- package/dist/generator/server-client-emitters.js.map +1 -1
- package/dist/generator/stories-isolation-emitters.d.ts +3 -2
- package/dist/generator/stories-isolation-emitters.d.ts.map +1 -1
- package/dist/generator/stories-isolation-emitters.js +5 -2
- package/dist/generator/stories-isolation-emitters.js.map +1 -1
- package/dist/generator/test-isolation-emitters.d.ts +4 -3
- package/dist/generator/test-isolation-emitters.d.ts.map +1 -1
- package/dist/generator/test-isolation-emitters.js +8 -17
- package/dist/generator/test-isolation-emitters.js.map +1 -1
- package/dist/generator/ui-data-isolation-emitters.d.ts +3 -1
- package/dist/generator/ui-data-isolation-emitters.d.ts.map +1 -1
- package/dist/generator/ui-data-isolation-emitters.js +6 -2
- package/dist/generator/ui-data-isolation-emitters.js.map +1 -1
- package/dist/generator/workspace-package-emitters.d.ts +2 -2
- package/dist/generator/workspace-package-emitters.d.ts.map +1 -1
- package/dist/generator/workspace-package-emitters.js +6 -15
- package/dist/generator/workspace-package-emitters.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp/remote/server.d.ts +2 -2
- package/dist/mcp/remote/server.d.ts.map +1 -1
- package/dist/mcp/remote/server.js +8 -2
- package/dist/mcp/remote/server.js.map +1 -1
- package/dist/mcp/server.d.ts +2 -2
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +2 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +4 -4
- package/dist/mcp/tools.js.map +1 -1
- package/dist/scanner/file-walker.d.ts +4 -0
- package/dist/scanner/file-walker.d.ts.map +1 -1
- package/dist/scanner/file-walker.js +33 -2
- package/dist/scanner/file-walker.js.map +1 -1
- package/dist/scanner/usage-scanner.d.ts +2 -0
- package/dist/scanner/usage-scanner.d.ts.map +1 -1
- package/dist/scanner/usage-scanner.js +25 -8
- package/dist/scanner/usage-scanner.js.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-purity-emitters.js","sourceRoot":"","sources":["../../src/generator/entry-purity-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA4B,MAAM,sCAAsC,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,2BAA2B,CAAC;AAE7D,MAAM,SAAS,GAAG,GAAW,EAAE;IAC7B,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3C,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CACjE,CAAC;IACF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAClC,CAAC,CAAC;AAcF,4GAA4G;AAC5G,MAAM,UAAU,8BAA8B,CAC5C,QAA6B,EAC7B,UAAiD;
|
|
1
|
+
{"version":3,"file":"entry-purity-emitters.js","sourceRoot":"","sources":["../../src/generator/entry-purity-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA4B,MAAM,sCAAsC,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,2BAA2B,CAAC;AAE7D,MAAM,SAAS,GAAG,GAAW,EAAE;IAC7B,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3C,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CACjE,CAAC;IACF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAClC,CAAC,CAAC;AAcF,4GAA4G;AAC5G,MAAM,UAAU,8BAA8B,CAC5C,QAA6B,EAC7B,UAAiD,EACjD,OAAO,GAAG,GAAG;IAEb,IAAI,QAAQ,CAAC,UAAU,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC3F,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC;IAC7D,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACjF,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/F,IAAI;KACL,CAAC,CAAC,CAAC;IACJ,OAAO;QACL,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,oCAAoC,OAAO,IAAI,QAAQ,CAAC,UAAU,gKAAgK,KAAK,IAAI;gBACpP,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE;oBACJ,OAAO,EAAE,mBAAmB,CAC1B,CAAC,cAAc,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,EAC9C,UAAU,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EACvD,OAAO,CACR;iBACF;gBACD,EAAE,EAAE;oBACF,IAAI,EAAE,SAAS,EAAE;oBACjB,GAAG,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;wBAC9B,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,CAAC;oBACnE,kBAAkB,EAAE,CAAC,WAAW,CAAC;iBAClC;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { EnvAccessAnalysis } from '../detector/env-access-detector.js';
|
|
2
|
-
import {
|
|
2
|
+
import type { EslintFamilyRule } from './eslint-family-rules.js';
|
|
3
3
|
export declare const ENV_ACCESS_RULE = "env-access";
|
|
4
|
-
export declare function toEslintEnvAccess(analysis: EnvAccessAnalysis):
|
|
4
|
+
export declare function toEslintEnvAccess(analysis: EnvAccessAnalysis): EslintFamilyRule | null;
|
|
5
5
|
//# sourceMappingURL=env-access-emitters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-access-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/env-access-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"env-access-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/env-access-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,eAAO,MAAM,eAAe,eAAe,CAAC;AAE5C,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,IAAI,CAQtF"}
|
|
@@ -5,18 +5,10 @@ export function toEslintEnvAccess(analysis) {
|
|
|
5
5
|
if (analysis.subjectFileCount === 0 || analysis.gate.status !== 'AUTO')
|
|
6
6
|
return null;
|
|
7
7
|
return {
|
|
8
|
-
|
|
8
|
+
name: ENV_ACCESS_RULE,
|
|
9
|
+
message: 'Read environment variables only in the config/env layer.',
|
|
9
10
|
ignores: withMinedExemptions([...TEST_GLOBS, ...CONFIG_GLOBS], analysis.violations),
|
|
10
|
-
|
|
11
|
-
'no-restricted-properties': [
|
|
12
|
-
'error',
|
|
13
|
-
{
|
|
14
|
-
object: 'process',
|
|
15
|
-
property: 'env',
|
|
16
|
-
message: 'Read environment variables only in the config/env layer.',
|
|
17
|
-
},
|
|
18
|
-
],
|
|
19
|
-
},
|
|
11
|
+
check: { kind: 'member', object: 'process', property: 'env' },
|
|
20
12
|
};
|
|
21
13
|
}
|
|
22
14
|
//# sourceMappingURL=env-access-emitters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-access-emitters.js","sourceRoot":"","sources":["../../src/generator/env-access-emitters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"env-access-emitters.js","sourceRoot":"","sources":["../../src/generator/env-access-emitters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE7D,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAE5C,MAAM,UAAU,iBAAiB,CAAC,QAA2B;IAC3D,IAAI,QAAQ,CAAC,gBAAgB,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACpF,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,0DAA0D;QACnE,OAAO,EAAE,mBAAmB,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,YAAY,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC;QACnF,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC9D,CAAC;AACJ,CAAC"}
|
|
@@ -45,6 +45,7 @@ export declare const layerRuleSpecs: (boundaries: readonly LayerBoundary[], allo
|
|
|
45
45
|
export declare const phantomRuleSpec: (analysis: PhantomDependencyAnalysis, packageJsons: readonly string[], workspacePackages: readonly string[], allowedFor: AllowedFor) => PhantomRuleSpec;
|
|
46
46
|
export declare const serverClientRuleSpec: (analysis: ServerClientAnalysis, allowedFor: AllowedFor) => ServerClientRuleSpec;
|
|
47
47
|
export declare const internalsRuleSpec: (analysis: DependencyInternalsAnalysis, allowedFor: AllowedFor) => AppRule;
|
|
48
|
+
export declare const importPair: (importer: string, entry: string) => string;
|
|
48
49
|
export declare const entryRuleSpec: (analysis: EntryPurityAnalysis, allowedFor: AllowedFor) => EntryRuleSpec;
|
|
49
50
|
export declare const hasAppRules: (rules: EslintAppRules) => boolean;
|
|
50
51
|
export interface RenderedAppRules {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint-app-emitter.d.ts","sourceRoot":"","sources":["../../src/generator/eslint-app-emitter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,KAAK,UAAU,EAAkC,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,EAAe,KAAK,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC7F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAa5F,wGAAwG;AACxG,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C,0FAA0F;IAC1F,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAqB,SAAQ,OAAO;IACnD,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gFAAgF;IAChF,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,8GAA8G;AAC9G,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC1C,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;CAC7B;AAED,KAAK,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC;AAKxD,eAAO,MAAM,cAAc,GACzB,YAAY,SAAS,aAAa,EAAE,EACpC,YAAY,UAAU,KACrB,aAAa,EAcZ,CAAC;AAEL,eAAO,MAAM,eAAe,GAC1B,UAAU,yBAAyB,EACnC,cAAc,SAAS,MAAM,EAAE,EAC/B,mBAAmB,SAAS,MAAM,EAAE,EACpC,YAAY,UAAU,KACrB,eAUD,CAAC;AAEH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,oBAAoB,EAC9B,YAAY,UAAU,KACrB,oBASD,CAAC;AAEH,eAAO,MAAM,iBAAiB,GAC5B,UAAU,2BAA2B,EACrC,YAAY,UAAU,KACrB,OASD,CAAC;
|
|
1
|
+
{"version":3,"file":"eslint-app-emitter.d.ts","sourceRoot":"","sources":["../../src/generator/eslint-app-emitter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,KAAK,UAAU,EAAkC,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,EAAe,KAAK,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC7F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAa5F,wGAAwG;AACxG,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C,0FAA0F;IAC1F,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAqB,SAAQ,OAAO;IACnD,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gFAAgF;IAChF,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,8GAA8G;AAC9G,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC1C,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;CAC7B;AAED,KAAK,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC;AAKxD,eAAO,MAAM,cAAc,GACzB,YAAY,SAAS,aAAa,EAAE,EACpC,YAAY,UAAU,KACrB,aAAa,EAcZ,CAAC;AAEL,eAAO,MAAM,eAAe,GAC1B,UAAU,yBAAyB,EACnC,cAAc,SAAS,MAAM,EAAE,EAC/B,mBAAmB,SAAS,MAAM,EAAE,EACpC,YAAY,UAAU,KACrB,eAUD,CAAC;AAEH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,oBAAoB,EAC9B,YAAY,UAAU,KACrB,oBASD,CAAC;AAEH,eAAO,MAAM,iBAAiB,GAC5B,UAAU,2BAA2B,EACrC,YAAY,UAAU,KACrB,OASD,CAAC;AAEH,eAAO,MAAM,UAAU,GAAI,UAAU,MAAM,EAAE,OAAO,MAAM,KAAG,MAAmC,CAAC;AAEjG,eAAO,MAAM,aAAa,GACxB,UAAU,mBAAmB,EAC7B,YAAY,UAAU,KACrB,aAOD,CAAC;AAEH,eAAO,MAAM,WAAW,GAAI,OAAO,cAAc,KAAG,OAE6C,CAAC;AAwIlG,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4GAA4G;AAC5G,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAwE5F"}
|
|
@@ -42,7 +42,7 @@ export const internalsRuleSpec = (analysis, allowedFor) => ({
|
|
|
42
42
|
message: 'Import a package by its public entry, not its src or internal folders (archprint: the code already does).',
|
|
43
43
|
ignore: exempting(DEPENDENCY_INTERNALS_RULE, analysis.violations.map((violation) => violation.file), allowedFor),
|
|
44
44
|
});
|
|
45
|
-
const importPair = (importer, entry) => `${importer} -> ${entry}`;
|
|
45
|
+
export const importPair = (importer, entry) => `${importer} -> ${entry}`;
|
|
46
46
|
export const entryRuleSpec = (analysis, allowedFor) => ({
|
|
47
47
|
name: ENTRY_PURITY_RULE,
|
|
48
48
|
message: 'A page, layout or route handler is loaded by the framework; do not import it (archprint: the code already does not).',
|
|
@@ -64,14 +64,6 @@ const APP_RUNTIME = `function realPathOf(filename) {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
function isValueImport(node) {
|
|
68
|
-
return (
|
|
69
|
-
node.importKind !== 'type' &&
|
|
70
|
-
(node.specifiers.length === 0 ||
|
|
71
|
-
node.specifiers.some((specifier) => specifier.type !== 'ImportSpecifier' || specifier.importKind !== 'type'))
|
|
72
|
-
);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
67
|
function isScanned(file) {
|
|
76
68
|
const segments = file.split('/');
|
|
77
69
|
return (
|
|
@@ -88,19 +80,6 @@ function appRelativePath(filename) {
|
|
|
88
80
|
: relativePath.split(sep).join('/');
|
|
89
81
|
}
|
|
90
82
|
|
|
91
|
-
function importVisitors(check) {
|
|
92
|
-
return {
|
|
93
|
-
ImportDeclaration(node) {
|
|
94
|
-
if (node.parent.type === 'Program' && isValueImport(node)) check(node, node.source.value);
|
|
95
|
-
},
|
|
96
|
-
ImportExpression(node) {
|
|
97
|
-
if (node.source.type === 'Literal' && typeof node.source.value === 'string') {
|
|
98
|
-
check(node, node.source.value);
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
|
|
104
83
|
function isTestFile(file) {
|
|
105
84
|
return APP_TESTS.some((test) => test.test(file));
|
|
106
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint-app-emitter.js","sourceRoot":"","sources":["../../src/generator/eslint-app-emitter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"eslint-app-emitter.js","sourceRoot":"","sources":["../../src/generator/eslint-app-emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** What a family rule reports: an import whose specifier matches, or a property read such as `process.env`. */
|
|
2
|
+
export type FamilyCheck = {
|
|
3
|
+
kind: 'import';
|
|
4
|
+
regex: string;
|
|
5
|
+
typeImports: boolean;
|
|
6
|
+
} | {
|
|
7
|
+
kind: 'member';
|
|
8
|
+
object: string;
|
|
9
|
+
property?: string;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* A family's own ESLint rule, `archprint/<name>`. A core rule (`no-console`, `no-restricted-imports`) would share its
|
|
13
|
+
* one configuration per file with the repo's settings for that rule, so whichever came last would silently win.
|
|
14
|
+
*/
|
|
15
|
+
export interface EslintFamilyRule {
|
|
16
|
+
name: string;
|
|
17
|
+
message: string;
|
|
18
|
+
ignores: string[];
|
|
19
|
+
check: FamilyCheck;
|
|
20
|
+
}
|
|
21
|
+
export declare const MAKE_FAMILY_RULE_FUNCTION = "function makeFamilyRule(spec) {\n const { check } = spec;\n const pattern = check.kind === 'import' ? new RegExp(check.regex) : null;\n return {\n meta: { type: 'problem', schema: [], messages: { forbidden: spec.message } },\n create(context) {\n const report = (node) => context.report({ node, messageId: 'forbidden' });\n if (pattern !== null) {\n return importVisitors((node, specifier) => {\n if (pattern.test(specifier)) report(node);\n }, check.typeImports);\n }\n return {\n MemberExpression(node) {\n if (\n !node.computed &&\n node.object.type === 'Identifier' &&\n node.object.name === check.object &&\n (check.property === undefined || node.property.name === check.property)\n ) {\n report(node);\n }\n },\n };\n },\n };\n}";
|
|
22
|
+
export declare const FAMILY_CONFIGS = "FAMILY_RULES.map((spec) => ({\n files: ['**/*.{ts,tsx}'],\n ignores: spec.ignores,\n plugins: { archprint: plugin },\n rules: { ['archprint/' + spec.name]: 'error' },\n}))";
|
|
23
|
+
//# sourceMappingURL=eslint-family-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eslint-family-rules.d.ts","sourceRoot":"","sources":["../../src/generator/eslint-family-rules.ts"],"names":[],"mappings":"AAEA,+GAA+G;AAC/G,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,eAAO,MAAM,yBAAyB,g4BA0BpC,CAAC;AAEH,eAAO,MAAM,cAAc,oLAKvB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { LINTED_FILES } from './eslint-plugin-emitter.js';
|
|
2
|
+
export const MAKE_FAMILY_RULE_FUNCTION = `function makeFamilyRule(spec) {
|
|
3
|
+
const { check } = spec;
|
|
4
|
+
const pattern = check.kind === 'import' ? new RegExp(check.regex) : null;
|
|
5
|
+
return {
|
|
6
|
+
meta: { type: 'problem', schema: [], messages: { forbidden: spec.message } },
|
|
7
|
+
create(context) {
|
|
8
|
+
const report = (node) => context.report({ node, messageId: 'forbidden' });
|
|
9
|
+
if (pattern !== null) {
|
|
10
|
+
return importVisitors((node, specifier) => {
|
|
11
|
+
if (pattern.test(specifier)) report(node);
|
|
12
|
+
}, check.typeImports);
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
MemberExpression(node) {
|
|
16
|
+
if (
|
|
17
|
+
!node.computed &&
|
|
18
|
+
node.object.type === 'Identifier' &&
|
|
19
|
+
node.object.name === check.object &&
|
|
20
|
+
(check.property === undefined || node.property.name === check.property)
|
|
21
|
+
) {
|
|
22
|
+
report(node);
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
}`;
|
|
29
|
+
export const FAMILY_CONFIGS = `FAMILY_RULES.map((spec) => ({
|
|
30
|
+
files: ${LINTED_FILES},
|
|
31
|
+
ignores: spec.ignores,
|
|
32
|
+
plugins: { archprint: plugin },
|
|
33
|
+
rules: { ['archprint/' + spec.name]: 'error' },
|
|
34
|
+
}))`;
|
|
35
|
+
//# sourceMappingURL=eslint-family-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eslint-family-rules.js","sourceRoot":"","sources":["../../src/generator/eslint-family-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAkB1D,MAAM,CAAC,MAAM,yBAAyB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BvC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;WACnB,YAAY;;;;IAInB,CAAC"}
|
|
@@ -11,6 +11,8 @@ export declare function buildForbiddenImportSpecs(patterns: readonly {
|
|
|
11
11
|
result: DetectedPattern;
|
|
12
12
|
}[]): ForbiddenImportSpec[];
|
|
13
13
|
export declare const MAKE_RULE_FUNCTION = "function makeRule(spec) {\n const roles = spec.roles.map((source) => new RegExp(source));\n const markers = spec.markers.map((source) => new RegExp(source));\n return {\n meta: { type: 'problem', schema: [], messages: { forbidden: spec.message } },\n create(context) {\n const file = context.filename.replace(/\\\\/g, '/');\n if (!roles.some((role) => role.test(file))) return {};\n if (spec.ignore.some((path) => file.endsWith('/' + path))) return {};\n return {\n ImportDeclaration(node) {\n if (node.importKind === 'type') return;\n if (markers.some((marker) => marker.test(node.source.value))) {\n context.report({ node, messageId: 'forbidden' });\n }\n },\n };\n },\n };\n}";
|
|
14
|
+
/** The imports the scan counts: top-level declarations (value bindings only unless `typeImports`) and `import('x')`. */
|
|
15
|
+
export declare const IMPORT_RUNTIME = "function isValueImport(node) {\n return (\n node.importKind !== 'type' &&\n (node.specifiers.length === 0 ||\n node.specifiers.some((specifier) => specifier.type !== 'ImportSpecifier' || specifier.importKind !== 'type'))\n );\n}\n\nfunction importVisitors(check, typeImports = false) {\n return {\n ImportDeclaration(node) {\n if (node.parent.type === 'Program' && (typeImports || isValueImport(node))) check(node, node.source.value);\n },\n ImportExpression(node) {\n if (node.source.type === 'Literal' && typeof node.source.value === 'string') {\n check(node, node.source.value);\n }\n },\n };\n}";
|
|
14
16
|
export declare const LINTED_FILES = "['**/*.{ts,tsx}']";
|
|
15
17
|
export declare const PLUGIN_CONFIGS = "SPECS.map((spec) => ({\n files: ['**/*.{ts,tsx}'],\n plugins: { archprint: plugin },\n rules: { ['archprint/' + spec.name]: 'error' },\n}))";
|
|
16
18
|
export declare function renderEslintPluginSource(specs: readonly ForbiddenImportSpec[]): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint-plugin-emitter.d.ts","sourceRoot":"","sources":["../../src/generator/eslint-plugin-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGtF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,SAAS;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,EAAE,GACtE,mBAAmB,EAAE,CAkBvB;AAED,eAAO,MAAM,kBAAkB,qwBAmB7B,CAAC;AAEH,eAAO,MAAM,YAAY,sBAAsB,CAAC;AAEhD,eAAO,MAAM,cAAc,mJAIvB,CAAC;AAEL,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,MAAM,CAUtF"}
|
|
1
|
+
{"version":3,"file":"eslint-plugin-emitter.d.ts","sourceRoot":"","sources":["../../src/generator/eslint-plugin-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGtF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,SAAS;IAAE,MAAM,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,EAAE,GACtE,mBAAmB,EAAE,CAkBvB;AAED,eAAO,MAAM,kBAAkB,qwBAmB7B,CAAC;AAEH,wHAAwH;AACxH,eAAO,MAAM,cAAc,4oBAmBzB,CAAC;AAEH,eAAO,MAAM,YAAY,sBAAsB,CAAC;AAEhD,eAAO,MAAM,cAAc,mJAIvB,CAAC;AAEL,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,MAAM,CAUtF"}
|
|
@@ -38,6 +38,27 @@ export const MAKE_RULE_FUNCTION = `function makeRule(spec) {
|
|
|
38
38
|
},
|
|
39
39
|
};
|
|
40
40
|
}`;
|
|
41
|
+
/** The imports the scan counts: top-level declarations (value bindings only unless `typeImports`) and `import('x')`. */
|
|
42
|
+
export const IMPORT_RUNTIME = `function isValueImport(node) {
|
|
43
|
+
return (
|
|
44
|
+
node.importKind !== 'type' &&
|
|
45
|
+
(node.specifiers.length === 0 ||
|
|
46
|
+
node.specifiers.some((specifier) => specifier.type !== 'ImportSpecifier' || specifier.importKind !== 'type'))
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function importVisitors(check, typeImports = false) {
|
|
51
|
+
return {
|
|
52
|
+
ImportDeclaration(node) {
|
|
53
|
+
if (node.parent.type === 'Program' && (typeImports || isValueImport(node))) check(node, node.source.value);
|
|
54
|
+
},
|
|
55
|
+
ImportExpression(node) {
|
|
56
|
+
if (node.source.type === 'Literal' && typeof node.source.value === 'string') {
|
|
57
|
+
check(node, node.source.value);
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}`;
|
|
41
62
|
export const LINTED_FILES = "['**/*.{ts,tsx}']";
|
|
42
63
|
export const PLUGIN_CONFIGS = `SPECS.map((spec) => ({
|
|
43
64
|
files: ${LINTED_FILES},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint-plugin-emitter.js","sourceRoot":"","sources":["../../src/generator/eslint-plugin-emitter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAU9D,MAAM,UAAU,yBAAyB,CACvC,QAAuE;IAEvE,MAAM,KAAK,GAA0B,EAAE,CAAC;IACxC,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM;YAAE,SAAS;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC1C,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CACjE,CAAC;QACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAClE,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzF,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;YACxD,MAAM;YACN,OAAO,EAAE,MAAM,CAAC,WAAW;SAC5B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;EAmBhC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAEhD,MAAM,CAAC,MAAM,cAAc,GAAG;WACnB,YAAY;;;IAGnB,CAAC;AAEL,MAAM,UAAU,wBAAwB,CAAC,KAAqC;IAC5E,OAAO;gBACO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;EAE5C,kBAAkB;;;;iBAIH,cAAc;CAC9B,CAAC;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"eslint-plugin-emitter.js","sourceRoot":"","sources":["../../src/generator/eslint-plugin-emitter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAU9D,MAAM,UAAU,yBAAyB,CACvC,QAAuE;IAEvE,MAAM,KAAK,GAA0B,EAAE,CAAC;IACxC,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM;YAAE,SAAS;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC1C,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CACjE,CAAC;QACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAClE,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzF,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;YACxD,MAAM;YACN,OAAO,EAAE,MAAM,CAAC,WAAW;SAC5B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;EAmBhC,CAAC;AAEH,wHAAwH;AACxH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;EAmB5B,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAEhD,MAAM,CAAC,MAAM,cAAc,GAAG;WACnB,YAAY;;;IAGnB,CAAC;AAEL,MAAM,UAAU,wBAAwB,CAAC,KAAqC;IAC5E,OAAO;gBACO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;EAE5C,kBAAkB;;;;iBAIH,cAAc;CAC9B,CAAC;AACF,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { RenderedAppRules } from './eslint-app-emitter.js';
|
|
2
|
+
import { type EslintFamilyRule } from './eslint-family-rules.js';
|
|
2
3
|
import { type ForbiddenImportSpec } from './eslint-plugin-emitter.js';
|
|
3
|
-
export declare function renderEslintPreset(specs: readonly ForbiddenImportSpec[],
|
|
4
|
+
export declare function renderEslintPreset(specs: readonly ForbiddenImportSpec[], families: readonly EslintFamilyRule[], options?: {
|
|
4
5
|
ignore?: string;
|
|
5
6
|
adoptPath?: string;
|
|
6
7
|
app?: RenderedAppRules;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint-preset-emitter.d.ts","sourceRoot":"","sources":["../../src/generator/eslint-preset-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,KAAK,mBAAmB,
|
|
1
|
+
{"version":3,"file":"eslint-preset-emitter.d.ts","sourceRoot":"","sources":["../../src/generator/eslint-preset-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,KAAK,mBAAmB,EAIzB,MAAM,4BAA4B,CAAC;AAEpC,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,mBAAmB,EAAE,EACrC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,gBAAgB,CAAA;CAAO,GAC5E,MAAM,CA2BR"}
|
|
@@ -1,28 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { FAMILY_CONFIGS, MAKE_FAMILY_RULE_FUNCTION, } from './eslint-family-rules.js';
|
|
2
|
+
import { IMPORT_RUNTIME, MAKE_RULE_FUNCTION, PLUGIN_CONFIGS, } from './eslint-plugin-emitter.js';
|
|
3
|
+
export function renderEslintPreset(specs, families, options = {}) {
|
|
3
4
|
const ignore = options.ignore ?? '**/.archprint/**';
|
|
4
5
|
const adoptPath = options.adoptPath ?? './.archprint/eslint.mjs';
|
|
5
6
|
const { app } = options;
|
|
6
7
|
const header = `// archprint eslint rules (generated, self-contained). Regenerate with \`archprint generate\`; remove with \`archprint eject\`.
|
|
7
8
|
// Adopt it in one line: import archprint from '${adoptPath}'; export default [...archprint];
|
|
8
9
|
${app ? `${app.imports}\n` : ''}`;
|
|
9
|
-
const rules =
|
|
10
|
-
? `Object.fromEntries([
|
|
10
|
+
const rules = `Object.fromEntries([
|
|
11
11
|
...SPECS.map((spec) => [spec.name, makeRule(spec)]),
|
|
12
|
-
...${app.rules}
|
|
13
|
-
])
|
|
14
|
-
|
|
15
|
-
const configs = app ? `[...${PLUGIN_CONFIGS}, ${app.config}]` : PLUGIN_CONFIGS;
|
|
12
|
+
...FAMILY_RULES.map((spec) => [spec.name, makeFamilyRule(spec)]),${app ? `\n ...${app.rules},` : ''}
|
|
13
|
+
])`;
|
|
14
|
+
const configs = `[...${PLUGIN_CONFIGS}, ...${FAMILY_CONFIGS}${app ? `, ${app.config}` : ''}]`;
|
|
16
15
|
return `${header}const SPECS = ${JSON.stringify(specs, null, 2)};
|
|
17
|
-
const
|
|
16
|
+
const FAMILY_RULES = ${JSON.stringify(families, null, 2)};
|
|
18
17
|
|
|
19
18
|
${MAKE_RULE_FUNCTION}
|
|
19
|
+
|
|
20
|
+
${IMPORT_RUNTIME}
|
|
21
|
+
|
|
22
|
+
${MAKE_FAMILY_RULE_FUNCTION}
|
|
20
23
|
${app ? `\n${app.source}\n` : ''}
|
|
21
24
|
const rules = ${rules};
|
|
22
25
|
const plugin = { rules };
|
|
23
26
|
const pluginConfigs = ${configs};
|
|
24
27
|
|
|
25
|
-
export default [{ ignores: ['${ignore}'] }, ...
|
|
28
|
+
export default [{ ignores: ['${ignore}'] }, ...pluginConfigs];
|
|
26
29
|
`;
|
|
27
30
|
}
|
|
28
31
|
//# sourceMappingURL=eslint-preset-emitter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint-preset-emitter.js","sourceRoot":"","sources":["../../src/generator/eslint-preset-emitter.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,kBAAkB,EAClB,cAAc,GACf,MAAM,4BAA4B,CAAC;AAEpC,MAAM,UAAU,kBAAkB,CAChC,KAAqC,EACrC,
|
|
1
|
+
{"version":3,"file":"eslint-preset-emitter.js","sourceRoot":"","sources":["../../src/generator/eslint-preset-emitter.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,cAAc,EACd,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,cAAc,EACd,kBAAkB,EAClB,cAAc,GACf,MAAM,4BAA4B,CAAC;AAEpC,MAAM,UAAU,kBAAkB,CAChC,KAAqC,EACrC,QAAqC,EACrC,UAA2E,EAAE;IAE7E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,kBAAkB,CAAC;IACpD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,yBAAyB,CAAC;IACjE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACxB,MAAM,MAAM,GAAG;mDACkC,SAAS;EAC1D,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG;;qEAEqD,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;GACnG,CAAC;IACF,MAAM,OAAO,GAAG,OAAO,cAAc,QAAQ,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IAC9F,OAAO,GAAG,MAAM,iBAAiB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;uBAC1C,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;;EAEtD,kBAAkB;;EAElB,cAAc;;EAEd,yBAAyB;EACzB,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE;gBAChB,KAAK;;wBAEG,OAAO;;+BAEA,MAAM;CACpC,CAAC;AACF,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { EslintFlatConfigBlock } from './console-isolation-emitters.js';
|
|
2
1
|
export declare const TEST_GLOBS: readonly string[];
|
|
3
2
|
/** An app file's path from the repository root, where archprint wire puts the reference. */
|
|
4
3
|
export declare const repoPath: (file: string, appPath: string) => string;
|
|
@@ -15,14 +14,4 @@ export declare const literalGlob: (file: string) => string;
|
|
|
15
14
|
export declare const exemptionGlobs: (glob: string, appPath: string) => string[];
|
|
16
15
|
export declare const CLI_GLOBS: readonly string[];
|
|
17
16
|
export declare const CONFIG_GLOBS: readonly string[];
|
|
18
|
-
export type NoRestrictedImportsBlock = {
|
|
19
|
-
ignores?: string[];
|
|
20
|
-
rules: Record<string, unknown>;
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* One base block with every family's patterns, plus one block per group of excepted files carrying only the
|
|
24
|
-
* patterns of the families that still apply to them. ESLint gives a file a single configuration of a rule, so
|
|
25
|
-
* merging the families' ignores into one list would exempt a file from every family at once.
|
|
26
|
-
*/
|
|
27
|
-
export declare function mergeNoRestrictedImports(blocks: readonly (NoRestrictedImportsBlock | null)[]): EslintFlatConfigBlock[];
|
|
28
17
|
//# sourceMappingURL=eslint-scope.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint-scope.d.ts","sourceRoot":"","sources":["../../src/generator/eslint-scope.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"eslint-scope.d.ts","sourceRoot":"","sources":["../../src/generator/eslint-scope.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,EAAE,SAAS,MAAM,EASvC,CAAC;AAIF,4FAA4F;AAC5F,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,MACP,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAIlB,CAAC;AAE1B;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,MAAM,EAC2B,CAAC;AAEjG,eAAO,MAAM,SAAS,EAAE,SAAS,MAAM,EAAmD,CAAC;AAE3F,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAGzC,CAAC"}
|
|
@@ -31,48 +31,4 @@ export const CONFIG_GLOBS = [
|
|
|
31
31
|
...dirAndFile(['config', 'env', 'environment']),
|
|
32
32
|
'**/*.config.{ts,tsx}',
|
|
33
33
|
];
|
|
34
|
-
const restrictImports = (patterns) => ({
|
|
35
|
-
'no-restricted-imports': ['error', { patterns }],
|
|
36
|
-
});
|
|
37
|
-
/**
|
|
38
|
-
* One base block with every family's patterns, plus one block per group of excepted files carrying only the
|
|
39
|
-
* patterns of the families that still apply to them. ESLint gives a file a single configuration of a rule, so
|
|
40
|
-
* merging the families' ignores into one list would exempt a file from every family at once.
|
|
41
|
-
*/
|
|
42
|
-
export function mergeNoRestrictedImports(blocks) {
|
|
43
|
-
const families = blocks
|
|
44
|
-
.filter((block) => block !== null)
|
|
45
|
-
.map((block) => {
|
|
46
|
-
const rule = block.rules['no-restricted-imports'];
|
|
47
|
-
const exempt = (block.ignores ?? []).filter((glob) => !TEST_GLOBS.includes(glob));
|
|
48
|
-
return { patterns: rule?.[1].patterns ?? [], exempt: new Set(exempt) };
|
|
49
|
-
})
|
|
50
|
-
.filter((family) => family.patterns.length > 0);
|
|
51
|
-
if (families.length === 0)
|
|
52
|
-
return [];
|
|
53
|
-
const exempt = [...new Set(families.flatMap((family) => [...family.exempt]))].sort();
|
|
54
|
-
const groups = new Map();
|
|
55
|
-
for (const file of exempt) {
|
|
56
|
-
const applying = families.filter((family) => !family.exempt.has(file));
|
|
57
|
-
const key = applying.map((family) => families.indexOf(family)).join(',');
|
|
58
|
-
const group = groups.get(key) ?? { files: [], patterns: applying.flatMap((f) => f.patterns) };
|
|
59
|
-
group.files.push(file);
|
|
60
|
-
groups.set(key, group);
|
|
61
|
-
}
|
|
62
|
-
const overrides = [...groups.values()]
|
|
63
|
-
.filter((group) => group.patterns.length > 0)
|
|
64
|
-
.map((group) => ({
|
|
65
|
-
files: group.files,
|
|
66
|
-
ignores: [...TEST_GLOBS],
|
|
67
|
-
rules: restrictImports(group.patterns),
|
|
68
|
-
}));
|
|
69
|
-
return [
|
|
70
|
-
{
|
|
71
|
-
files: ['**/*.{ts,tsx}'],
|
|
72
|
-
ignores: [...TEST_GLOBS, ...exempt],
|
|
73
|
-
rules: restrictImports(families.flatMap((family) => family.patterns)),
|
|
74
|
-
},
|
|
75
|
-
...overrides,
|
|
76
|
-
];
|
|
77
|
-
}
|
|
78
34
|
//# sourceMappingURL=eslint-scope.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eslint-scope.js","sourceRoot":"","sources":["../../src/generator/eslint-scope.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"eslint-scope.js","sourceRoot":"","sources":["../../src/generator/eslint-scope.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,CAAC,KAAwB,EAAY,EAAE,CACxD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,EAAE,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,UAAU,GAAsB;IAC3C,wCAAwC;IACxC,iBAAiB;IACjB,iBAAiB;IACjB,WAAW;IACX,eAAe;IACf,kBAAkB;IAClB,YAAY;IACZ,aAAa;CACd,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,OAAe,EAAW,EAAE,CAAC,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,EAAE,CAAC;AAElF,4FAA4F;AAC5F,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,OAAe,EAAU,EAAE,CAChE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC;AAEnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE,CAClD,IAAI;KACD,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;KAC/B,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;KACxB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAE1B;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,OAAe,EAAY,EAAE,CACxE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;AAEjG,MAAM,CAAC,MAAM,SAAS,GAAsB,UAAU,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,YAAY,GAAsB;IAC7C,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IAC/C,sBAAsB;CACvB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GenerationStatus } from '../detector/confidence-gate.js';
|
|
2
|
+
import { type AllowedFor } from './depcruise-exempt.js';
|
|
2
3
|
import type { FeatureSliceGroup } from '../detector/feature-slice-detector.js';
|
|
3
4
|
export declare const featureSliceRuleName: (container: string) => string;
|
|
4
5
|
export interface CrossSliceRule {
|
|
@@ -7,6 +8,7 @@ export interface CrossSliceRule {
|
|
|
7
8
|
severity: 'error' | 'warn' | 'info';
|
|
8
9
|
from: {
|
|
9
10
|
path: string;
|
|
11
|
+
pathNot?: string | string[];
|
|
10
12
|
};
|
|
11
13
|
to: {
|
|
12
14
|
path: string;
|
|
@@ -16,5 +18,5 @@ export interface CrossSliceRule {
|
|
|
16
18
|
export interface CrossSliceConfig {
|
|
17
19
|
forbidden: CrossSliceRule[];
|
|
18
20
|
}
|
|
19
|
-
export declare function toDependencyCruiserFeatureSlice(groups: readonly FeatureSliceGroup[], include?: readonly GenerationStatus[]): CrossSliceConfig;
|
|
21
|
+
export declare function toDependencyCruiserFeatureSlice(groups: readonly FeatureSliceGroup[], include?: readonly GenerationStatus[], appPath?: string, allowedFor?: AllowedFor): CrossSliceConfig;
|
|
20
22
|
//# sourceMappingURL=feature-slice-emitters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-slice-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/feature-slice-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAO/E,eAAO,MAAM,oBAAoB,GAAI,WAAW,MAAM,KAAG,MACpB,CAAC;AAKtC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"feature-slice-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/feature-slice-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EACL,KAAK,UAAU,EAKhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAO/E,eAAO,MAAM,oBAAoB,GAAI,WAAW,MAAM,KAAG,MACpB,CAAC;AAKtC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IACpD,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,SAAS,iBAAiB,EAAE,EACpC,OAAO,GAAE,SAAS,gBAAgB,EAAa,EAC/C,OAAO,SAAM,EACb,UAAU,GAAE,UAAwB,GACnC,gBAAgB,CAkBlB"}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
|
+
import { appPathPrefix, exemptingFrom, noneAllowed, toleratedFiles, } from './depcruise-exempt.js';
|
|
1
2
|
const escapeRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
2
3
|
const slug = (container) => container.replace(/[^a-zA-Z0-9]+/g, '-').replace(/^-|-$/g, '');
|
|
3
4
|
export const featureSliceRuleName = (container) => `no-cross-slice-${slug(container)}`;
|
|
4
5
|
const confidencePct = (group) => `${(group.gate.conditions.confidence.value * 100).toFixed(0)}%`;
|
|
5
|
-
export function toDependencyCruiserFeatureSlice(groups, include = ['AUTO']) {
|
|
6
|
+
export function toDependencyCruiserFeatureSlice(groups, include = ['AUTO'], appPath = '.', allowedFor = noneAllowed) {
|
|
6
7
|
const forbidden = groups
|
|
7
8
|
.filter((group) => include.includes(group.gate.status))
|
|
8
9
|
.map((group) => {
|
|
9
|
-
const
|
|
10
|
+
const name = featureSliceRuleName(group.container);
|
|
11
|
+
const container = appPathPrefix(appPath) + escapeRegExp(group.container);
|
|
10
12
|
return {
|
|
11
|
-
name
|
|
13
|
+
name,
|
|
12
14
|
comment: `Archprint inferred slice isolation: the ${group.sliceCount} slices under "${group.container}" do not import each other (${group.sliceFileCount - group.crossImporterCount}/${group.sliceFileCount} slice files conform); cross-slice imports are forbidden (confidence ${confidencePct(group)}).`,
|
|
13
15
|
severity: 'error',
|
|
14
|
-
from: {
|
|
16
|
+
from: {
|
|
17
|
+
path: `^${container}/([^/]+)/`,
|
|
18
|
+
...exemptingFrom(toleratedFiles(group.violations, allowedFor(name)), appPath),
|
|
19
|
+
},
|
|
15
20
|
to: { path: `^${container}/([^/]+)/`, pathNot: `^${container}/$1/` },
|
|
16
21
|
};
|
|
17
22
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-slice-emitters.js","sourceRoot":"","sources":["../../src/generator/feature-slice-emitters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"feature-slice-emitters.js","sourceRoot":"","sources":["../../src/generator/feature-slice-emitters.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EACb,aAAa,EACb,WAAW,EACX,cAAc,GACf,MAAM,uBAAuB,CAAC;AAG/B,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAE7F,MAAM,IAAI,GAAG,CAAC,SAAiB,EAAU,EAAE,CACzC,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAiB,EAAU,EAAE,CAChE,kBAAkB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;AAEtC,MAAM,aAAa,GAAG,CAAC,KAAwB,EAAU,EAAE,CACzD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAclE,MAAM,UAAU,+BAA+B,CAC7C,MAAoC,EACpC,UAAuC,CAAC,MAAM,CAAC,EAC/C,OAAO,GAAG,GAAG,EACb,aAAyB,WAAW;IAEpC,MAAM,SAAS,GAAG,MAAM;SACrB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzE,OAAO;YACL,IAAI;YACJ,OAAO,EAAE,2CAA2C,KAAK,CAAC,UAAU,kBAAkB,KAAK,CAAC,SAAS,+BAA+B,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,cAAc,wEAAwE,aAAa,CAAC,KAAK,CAAC,IAAI;YAC3S,QAAQ,EAAE,OAAgB;YAC1B,IAAI,EAAE;gBACJ,IAAI,EAAE,IAAI,SAAS,WAAW;gBAC9B,GAAG,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC;aAC9E;YACD,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,SAAS,WAAW,EAAE,OAAO,EAAE,IAAI,SAAS,MAAM,EAAE;SACrE,CAAC;IACJ,CAAC,CAAC,CAAC;IACL,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layer-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/layer-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAKnE,eAAO,MAAM,aAAa,GAAI,cAAc;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,KAAG,MACpD,CAAC;AAaxB,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IACpD,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACrD;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,qBAAqB,EAAE,CAAC;CACpC;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,SAAS,aAAa,EAAE,EACpC,OAAO,GAAE,SAAS,gBAAgB,EAAa,EAC/C,OAAO,SAAM,EACb,UAAU,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,MAAM,EAAa,GAC3D,uBAAuB,
|
|
1
|
+
{"version":3,"file":"layer-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/layer-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAKnE,eAAO,MAAM,aAAa,GAAI,cAAc;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,KAAG,MACpD,CAAC;AAaxB,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IACpD,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACrD;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,qBAAqB,EAAE,CAAC;CACpC;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,SAAS,aAAa,EAAE,EACpC,OAAO,GAAE,SAAS,gBAAgB,EAAa,EAC/C,OAAO,SAAM,EACb,UAAU,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,MAAM,EAAa,GAC3D,uBAAuB,CAmBzB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE;QAAE,qBAAqB,EAAE,uBAAuB,EAAE,CAAA;KAAE,CAAC;IAC/D,KAAK,EAAE;QACL,0BAA0B,EAAE,CAAC,OAAO,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,oBAAoB,EAAE,CAAA;SAAE,CAAC,CAAC;KAC5F,CAAC;CACH;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,SAAS,aAAa,EAAE,EACpC,OAAO,GAAE,SAAS,gBAAgB,EAAa,GAC9C,sBAAsB,CA6BxB"}
|
|
@@ -11,10 +11,7 @@ export function toDependencyCruiser(boundaries, include = ['AUTO'], appPath = '.
|
|
|
11
11
|
severity: 'error',
|
|
12
12
|
from: {
|
|
13
13
|
path: layerPath(boundary.fromDirs, appPath),
|
|
14
|
-
pathNot: exemptDepcruiseFrom(TEST_ROLE_REGEX, [
|
|
15
|
-
...boundary.violations,
|
|
16
|
-
...allowedFor(layerRuleName(boundary)).map((file) => ({ file })),
|
|
17
|
-
]),
|
|
14
|
+
pathNot: exemptDepcruiseFrom(TEST_ROLE_REGEX, [...boundary.violations, ...allowedFor(layerRuleName(boundary)).map((file) => ({ file }))], appPath),
|
|
18
15
|
},
|
|
19
16
|
to: {
|
|
20
17
|
path: layerPath(boundary.toDirs, appPath),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layer-emitters.js","sourceRoot":"","sources":["../../src/generator/layer-emitters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE5F,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAE7F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAgC,EAAU,EAAE,CAClF,MAAM,IAAI,OAAO,EAAE,EAAE,CAAC;AAExB,MAAM,SAAS,GAAG,CAAC,IAAuB,EAAE,OAAe,EAAU,EAAE,CACrE,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAEvE,MAAM,aAAa,GAAG,CAAC,QAAuB,EAAU,EAAE,CACxD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAErE,MAAM,QAAQ,GAAG,CACf,UAAoC,EACpC,OAAoC,EACnB,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAc9F,MAAM,UAAU,mBAAmB,CACjC,UAAoC,EACpC,UAAuC,CAAC,MAAM,CAAC,EAC/C,OAAO,GAAG,GAAG,EACb,aAAoD,GAAG,EAAE,CAAC,EAAE;IAE5D,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC;QAC7B,OAAO,EAAE,qCAAqC,QAAQ,CAAC,EAAE,uBAAuB,QAAQ,CAAC,IAAI,YAAY,QAAQ,CAAC,WAAW,kDAAkD,aAAa,CAAC,QAAQ,CAAC,IAAI;QAC1M,QAAQ,EAAE,OAAgB;QAC1B,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;YAC3C,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"layer-emitters.js","sourceRoot":"","sources":["../../src/generator/layer-emitters.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,5 +14,5 @@ export interface PhantomDependencyRule {
|
|
|
14
14
|
export interface PhantomDependencyConfig {
|
|
15
15
|
forbidden: PhantomDependencyRule[];
|
|
16
16
|
}
|
|
17
|
-
export declare function toDependencyCruiserPhantomDependencies(analysis: PhantomDependencyAnalysis, allowedFor?: (ruleId: string) => readonly string[]): PhantomDependencyConfig;
|
|
17
|
+
export declare function toDependencyCruiserPhantomDependencies(analysis: PhantomDependencyAnalysis, allowedFor?: (ruleId: string) => readonly string[], appPath?: string): PhantomDependencyConfig;
|
|
18
18
|
//# sourceMappingURL=phantom-dependency-emitters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phantom-dependency-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/phantom-dependency-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAG5F,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IACrC,EAAE,EAAE;QAAE,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACnC;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,qBAAqB,EAAE,CAAC;CACpC;AAED,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,yBAAyB,EACnC,UAAU,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,MAAM,EAAa,
|
|
1
|
+
{"version":3,"file":"phantom-dependency-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/phantom-dependency-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAG5F,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IACrC,EAAE,EAAE;QAAE,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACnC;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,qBAAqB,EAAE,CAAC;CACpC;AAED,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,yBAAyB,EACnC,UAAU,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,MAAM,EAAa,EAC5D,OAAO,SAAM,GACZ,uBAAuB,CA0BzB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { exemptDepcruiseFrom, TEST_ROLE_REGEX } from './depcruise-exempt.js';
|
|
2
2
|
export const PHANTOM_DEPENDENCY_RULE = 'no-phantom-dependencies';
|
|
3
|
-
export function toDependencyCruiserPhantomDependencies(analysis, allowedFor = () => []) {
|
|
3
|
+
export function toDependencyCruiserPhantomDependencies(analysis, allowedFor = () => [], appPath = '.') {
|
|
4
4
|
if (analysis.externalImporterCount === 0 || analysis.gate.status !== 'AUTO') {
|
|
5
5
|
return { forbidden: [] };
|
|
6
6
|
}
|
|
@@ -16,7 +16,7 @@ export function toDependencyCruiserPhantomDependencies(analysis, allowedFor = ()
|
|
|
16
16
|
pathNot: exemptDepcruiseFrom([TEST_ROLE_REGEX, 'node_modules'], [
|
|
17
17
|
...analysis.violations,
|
|
18
18
|
...allowedFor(PHANTOM_DEPENDENCY_RULE).map((file) => ({ file })),
|
|
19
|
-
]),
|
|
19
|
+
], appPath),
|
|
20
20
|
},
|
|
21
21
|
to: { dependencyTypes: ['npm-no-pkg', 'npm-unknown'] },
|
|
22
22
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phantom-dependency-emitters.js","sourceRoot":"","sources":["../../src/generator/phantom-dependency-emitters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7E,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAcjE,MAAM,UAAU,sCAAsC,CACpD,QAAmC,EACnC,aAAoD,GAAG,EAAE,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"phantom-dependency-emitters.js","sourceRoot":"","sources":["../../src/generator/phantom-dependency-emitters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7E,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAcjE,MAAM,UAAU,sCAAsC,CACpD,QAAmC,EACnC,aAAoD,GAAG,EAAE,CAAC,EAAE,EAC5D,OAAO,GAAG,GAAG;IAEb,IAAI,QAAQ,CAAC,qBAAqB,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC5E,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC3B,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,qBAAqB,GAAG,QAAQ,CAAC,aAAa,CAAC;IACxE,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACjF,OAAO;QACL,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,8CAA8C,OAAO,IAAI,QAAQ,CAAC,qBAAqB,0IAA0I,KAAK,IAAI;gBACnP,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE;oBACJ,OAAO,EAAE,mBAAmB,CAC1B,CAAC,eAAe,EAAE,cAAc,CAAC,EACjC;wBACE,GAAG,QAAQ,CAAC,UAAU;wBACtB,GAAG,UAAU,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;qBACjE,EACD,OAAO,CACR;iBACF;gBACD,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE;aACvD;SACF;KACF,CAAC;AACJ,CAAC"}
|