archprint 0.14.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 +30 -0
- package/README.md +42 -26
- package/dist/cli/adopted-rules.d.ts +23 -2
- package/dist/cli/adopted-rules.d.ts.map +1 -1
- package/dist/cli/adopted-rules.js +100 -2
- package/dist/cli/adopted-rules.js.map +1 -1
- package/dist/cli/allow.d.ts.map +1 -1
- package/dist/cli/allow.js +5 -14
- package/dist/cli/allow.js.map +1 -1
- package/dist/cli/allowed-evidence.d.ts.map +1 -1
- package/dist/cli/allowed-evidence.js +105 -0
- package/dist/cli/allowed-evidence.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 +84 -1
- 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 +67 -64
- package/dist/cli/generate.js.map +1 -1
- package/dist/cli/layout.d.ts +18 -2
- package/dist/cli/layout.d.ts.map +1 -1
- package/dist/cli/layout.js +82 -15
- package/dist/cli/layout.js.map +1 -1
- package/dist/cli/migrate.d.ts.map +1 -1
- package/dist/cli/migrate.js +1 -2
- package/dist/cli/migrate.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 +59 -79
- 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/recommend.d.ts +3 -0
- package/dist/cli/recommend.d.ts.map +1 -1
- package/dist/cli/recommend.js +16 -1
- package/dist/cli/recommend.js.map +1 -1
- 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 +4 -1
- package/dist/generator/app-isolation-emitters.d.ts.map +1 -1
- package/dist/generator/app-isolation-emitters.js +10 -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 +3 -2
- package/dist/generator/env-access-emitters.d.ts.map +1 -1
- package/dist/generator/env-access-emitters.js +4 -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 +4 -1
- package/dist/generator/feature-slice-emitters.d.ts.map +1 -1
- package/dist/generator/feature-slice-emitters.js +10 -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 +5 -1
- package/dist/generator/role-layering-emitters.d.ts.map +1 -1
- package/dist/generator/role-layering-emitters.js +16 -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 +4 -2
- package/dist/generator/stories-isolation-emitters.d.ts.map +1 -1
- package/dist/generator/stories-isolation-emitters.js +7 -3
- 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 +4 -1
- package/dist/generator/ui-data-isolation-emitters.d.ts.map +1 -1
- package/dist/generator/ui-data-isolation-emitters.js +8 -3
- package/dist/generator/ui-data-isolation-emitters.js.map +1 -1
- package/dist/generator/workspace-package-emitters.d.ts +3 -2
- package/dist/generator/workspace-package-emitters.d.ts.map +1 -1
- package/dist/generator/workspace-package-emitters.js +7 -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 +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pattern-detector.d.ts","sourceRoot":"","sources":["../../src/detector/pattern-detector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,KAAK,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAAuB,CAAC;AAIxE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IACvB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IACvB,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAkBD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,eAAe,CAyB5F;AAgCD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,eAAe,EAAE,CAwCnB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,GACb,eAAe,GAAG;IAAE,UAAU,EAAE,eAAe,CAAA;CAAE,CAenD;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,GACb,eAAe,GAAG;IAAE,UAAU,EAAE,iBAAiB,CAAA;CAAE,CAYrD;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GAC9C,eAAe,CAUjB"}
|
|
1
|
+
{"version":3,"file":"pattern-detector.d.ts","sourceRoot":"","sources":["../../src/detector/pattern-detector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,KAAK,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,oFAAoF;AACpF,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGxE,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAAuB,CAAC;AAIxE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IACvB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC;IACvB,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAkBD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,eAAe,CAyB5F;AAgCD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,eAAe,EAAE,CAwCnB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,GACb,eAAe,GAAG;IAAE,UAAU,EAAE,eAAe,CAAA;CAAE,CAenD;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,GACb,eAAe,GAAG;IAAE,UAAU,EAAE,iBAAiB,CAAA;CAAE,CAYrD;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GAC9C,eAAe,CAUjB"}
|
|
@@ -3,6 +3,11 @@ import { REQUEST_ENTRY_ROLES } from '../scanner/role-classifier.js';
|
|
|
3
3
|
import { evaluateGate } from './confidence-gate.js';
|
|
4
4
|
import { inferDbClientMarkers, inferUiLayerMarkers, KNOWN_DB_EXAMPLES, KNOWN_DB_LIBRARIES, } from './marker-inference.js';
|
|
5
5
|
export { REQUEST_ENTRY_ROLES };
|
|
6
|
+
/** The forbidden-import rules' names, which ESLint prints as `archprint/<name>`. */
|
|
7
|
+
export const FORBIDDEN_IMPORT_RULE_NAMES = {
|
|
8
|
+
'AP-001': 'no-db-client-in-request-entry',
|
|
9
|
+
'AP-002': 'no-ui-layer-in-server-entry',
|
|
10
|
+
};
|
|
6
11
|
export const DEFAULT_DB_MARKERS = KNOWN_DB_LIBRARIES;
|
|
7
12
|
const INFRA_PATH = /(^|\/)(health|seed|admin|webhook|webhooks|migration|migrations|cron)(\/|\.|$)/;
|
|
8
13
|
const NODE_MODULES = /[/\\]node_modules[/\\]/;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pattern-detector.js","sourceRoot":"","sources":["../../src/detector/pattern-detector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pattern-detector.js","sourceRoot":"","sources":["../../src/detector/pattern-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stories-isolation-detector.d.ts","sourceRoot":"","sources":["../../src/detector/stories-isolation-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"stories-isolation-detector.d.ts","sourceRoot":"","sources":["../../src/detector/stories-isolation-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAErE,eAAO,MAAM,KAAK,QAAyB,CAAC;AAE5C,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,oBAAoB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,uBAA4B,GACpC,wBAAwB,CA8B1B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { buildImportGraph } from '../scanner/import-graph.js';
|
|
2
2
|
import { evaluateGate } from './confidence-gate.js';
|
|
3
|
-
const STORY = /\.stories\.(ts|tsx)$/;
|
|
3
|
+
export const STORY = /\.stories\.(ts|tsx)$/;
|
|
4
4
|
export function detectStoriesIsolation(appDir, options = {}) {
|
|
5
5
|
const { root, files, adjacency } = options.graph ?? buildImportGraph(appDir, { resolve: options.resolve ?? false });
|
|
6
6
|
const stories = new Set(files.filter((file) => STORY.test(file.relativePath)).map((file) => file.relativePath));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stories-isolation-detector.js","sourceRoot":"","sources":["../../src/detector/stories-isolation-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAoB,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,YAAY,EAAmB,MAAM,sBAAsB,CAAC;AAErE,MAAM,KAAK,GAAG,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"stories-isolation-detector.js","sourceRoot":"","sources":["../../src/detector/stories-isolation-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAoB,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,YAAY,EAAmB,MAAM,sBAAsB,CAAC;AAErE,MAAM,CAAC,MAAM,KAAK,GAAG,sBAAsB,CAAC;AAoB5C,MAAM,UAAU,sBAAsB,CACpC,MAAc,EACd,UAAmC,EAAE;IAErC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAC9B,OAAO,CAAC,KAAK,IAAI,gBAAgB,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;IAEnF,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CACvF,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAA2B,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;SACjE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;SAC/C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhD,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,OAAO,CAAC,IAAI;QACxB,aAAa,EAAE,UAAU,CAAC,MAAM;QAChC,IAAI,EAAE,YAAY,CAAC;YACjB,aAAa,EAAE,OAAO,CAAC,IAAI;YAC3B,kBAAkB,EAAE,UAAU,CAAC,MAAM;YACrC,cAAc,EAAE,CAAC;SAClB,CAAC;QACF,UAAU;KACX,CAAC;AACJ,CAAC"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { GenerationStatus } from '../detector/confidence-gate.js';
|
|
2
|
+
import { type AllowedFor } from './depcruise-exempt.js';
|
|
2
3
|
import type { AppIsolationGroup } from '../detector/app-isolation-detector.js';
|
|
4
|
+
export declare const appIsolationRuleName: (container: string) => string;
|
|
3
5
|
export interface CrossAppRule {
|
|
4
6
|
name: string;
|
|
5
7
|
comment: string;
|
|
6
8
|
severity: 'error' | 'warn' | 'info';
|
|
7
9
|
from: {
|
|
8
10
|
path: string;
|
|
11
|
+
pathNot?: string | string[];
|
|
9
12
|
};
|
|
10
13
|
to: {
|
|
11
14
|
path: string;
|
|
@@ -15,5 +18,5 @@ export interface CrossAppRule {
|
|
|
15
18
|
export interface CrossAppConfig {
|
|
16
19
|
forbidden: CrossAppRule[];
|
|
17
20
|
}
|
|
18
|
-
export declare function toDependencyCruiserAppIsolation(groups: readonly AppIsolationGroup[], include?: readonly GenerationStatus[]): CrossAppConfig;
|
|
21
|
+
export declare function toDependencyCruiserAppIsolation(groups: readonly AppIsolationGroup[], include?: readonly GenerationStatus[], appPath?: string, allowedFor?: AllowedFor): CrossAppConfig;
|
|
19
22
|
//# sourceMappingURL=app-isolation-emitters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-isolation-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/app-isolation-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"app-isolation-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/app-isolation-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,MACtB,CAAC;AAKpC,MAAM,WAAW,YAAY;IAC3B,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,cAAc;IAC7B,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;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,cAAc,CAkBhB"}
|
|
@@ -1,16 +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, '');
|
|
4
|
+
export const appIsolationRuleName = (container) => `no-cross-app-${slug(container)}`;
|
|
3
5
|
const confidencePct = (group) => `${(group.gate.conditions.confidence.value * 100).toFixed(0)}%`;
|
|
4
|
-
export function toDependencyCruiserAppIsolation(groups, include = ['AUTO']) {
|
|
6
|
+
export function toDependencyCruiserAppIsolation(groups, include = ['AUTO'], appPath = '.', allowedFor = noneAllowed) {
|
|
5
7
|
const forbidden = groups
|
|
6
8
|
.filter((group) => include.includes(group.gate.status))
|
|
7
9
|
.map((group) => {
|
|
8
|
-
const
|
|
10
|
+
const name = appIsolationRuleName(group.container);
|
|
11
|
+
const container = appPathPrefix(appPath) + escapeRegExp(group.container);
|
|
9
12
|
return {
|
|
10
|
-
name
|
|
13
|
+
name,
|
|
11
14
|
comment: `Archprint inferred app isolation: the ${group.appCount} apps under "${group.container}" do not import each other (${group.appFileCount - group.crossImporterCount}/${group.appFileCount} app files conform); cross-app imports are forbidden (confidence ${confidencePct(group)}).`,
|
|
12
15
|
severity: 'error',
|
|
13
|
-
from: {
|
|
16
|
+
from: {
|
|
17
|
+
path: `^${container}/([^/]+)/`,
|
|
18
|
+
...exemptingFrom(toleratedFiles(group.violations, allowedFor(name)), appPath),
|
|
19
|
+
},
|
|
14
20
|
to: { path: `^${container}/([^/]+)/`, pathNot: `^${container}/$1/` },
|
|
15
21
|
};
|
|
16
22
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-isolation-emitters.js","sourceRoot":"","sources":["../../src/generator/app-isolation-emitters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app-isolation-emitters.js","sourceRoot":"","sources":["../../src/generator/app-isolation-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,gBAAgB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;AAEpC,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,yCAAyC,KAAK,CAAC,QAAQ,gBAAgB,KAAK,CAAC,SAAS,+BAA+B,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,YAAY,oEAAoE,aAAa,CAAC,KAAK,CAAC,IAAI;YAC7R,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,11 +1,7 @@
|
|
|
1
1
|
import type { ConsoleIsolationAnalysis } from '../detector/console-isolation-detector.js';
|
|
2
|
-
|
|
3
|
-
files: string[];
|
|
4
|
-
ignores: string[];
|
|
5
|
-
rules: Record<string, unknown>;
|
|
6
|
-
}
|
|
2
|
+
import type { EslintFamilyRule } from './eslint-family-rules.js';
|
|
7
3
|
export declare function withMinedExemptions(baseIgnores: readonly string[], violations: readonly {
|
|
8
4
|
file: string;
|
|
9
5
|
}[]): string[];
|
|
10
|
-
export declare function toEslintConsoleIsolation(analysis: ConsoleIsolationAnalysis):
|
|
6
|
+
export declare function toEslintConsoleIsolation(analysis: ConsoleIsolationAnalysis): EslintFamilyRule | null;
|
|
11
7
|
//# sourceMappingURL=console-isolation-emitters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console-isolation-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/console-isolation-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"console-isolation-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/console-isolation-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,UAAU,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GACtC,MAAM,EAAE,CAEV;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,wBAAwB,GACjC,gBAAgB,GAAG,IAAI,CAQzB"}
|
|
@@ -6,9 +6,10 @@ export function toEslintConsoleIsolation(analysis) {
|
|
|
6
6
|
if (analysis.libraryFileCount === 0 || analysis.gate.status !== 'AUTO')
|
|
7
7
|
return null;
|
|
8
8
|
return {
|
|
9
|
-
|
|
9
|
+
name: 'console-isolation',
|
|
10
|
+
message: 'Do not use console in library code.',
|
|
10
11
|
ignores: withMinedExemptions([...TEST_GLOBS, ...CLI_GLOBS], analysis.violations),
|
|
11
|
-
|
|
12
|
+
check: { kind: 'member', object: 'console' },
|
|
12
13
|
};
|
|
13
14
|
}
|
|
14
15
|
//# sourceMappingURL=console-isolation-emitters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console-isolation-emitters.js","sourceRoot":"","sources":["../../src/generator/console-isolation-emitters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"console-isolation-emitters.js","sourceRoot":"","sources":["../../src/generator/console-isolation-emitters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,UAAU,mBAAmB,CACjC,WAA8B,EAC9B,UAAuC;IAEvC,OAAO,CAAC,GAAG,WAAW,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,QAAkC;IAElC,IAAI,QAAQ,CAAC,gBAAgB,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACpF,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,qCAAqC;QAC9C,OAAO,EAAE,mBAAmB,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC;QAChF,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;KAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -1,18 +1,4 @@
|
|
|
1
1
|
import type { DeepRelativeAnalysis } from '../detector/deep-relative-detector.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
message: string;
|
|
5
|
-
}
|
|
6
|
-
export interface EslintNoRestrictedImportsConfig {
|
|
7
|
-
ignores?: string[];
|
|
8
|
-
rules: {
|
|
9
|
-
'no-restricted-imports': ['error', {
|
|
10
|
-
patterns: NoRestrictedImportsPattern[];
|
|
11
|
-
}];
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
export declare function exemptImporters(violations: readonly {
|
|
15
|
-
file: string;
|
|
16
|
-
}[]): Pick<EslintNoRestrictedImportsConfig, 'ignores'>;
|
|
17
|
-
export declare function toEslintDeepRelative(analysis: DeepRelativeAnalysis): EslintNoRestrictedImportsConfig | null;
|
|
2
|
+
import type { EslintFamilyRule } from './eslint-family-rules.js';
|
|
3
|
+
export declare function toEslintDeepRelative(analysis: DeepRelativeAnalysis): EslintFamilyRule | null;
|
|
18
4
|
//# sourceMappingURL=deep-relative-emitters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-relative-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/deep-relative-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"deep-relative-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/deep-relative-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAElF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,gBAAgB,GAAG,IAAI,CAQ5F"}
|
|
@@ -1,27 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
return violations.length > 0
|
|
4
|
-
? { ignores: violations.map((violation) => literalGlob(violation.file)) }
|
|
5
|
-
: {};
|
|
6
|
-
}
|
|
1
|
+
import { withMinedExemptions } from './console-isolation-emitters.js';
|
|
2
|
+
import { TEST_GLOBS } from './eslint-scope.js';
|
|
7
3
|
export function toEslintDeepRelative(analysis) {
|
|
8
4
|
if (analysis.relativeImporterCount === 0 || analysis.gate.status !== 'AUTO')
|
|
9
5
|
return null;
|
|
10
6
|
return {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
{
|
|
16
|
-
patterns: [
|
|
17
|
-
{
|
|
18
|
-
regex: '^(\\.\\./){3,}',
|
|
19
|
-
message: 'Deep relative import: use a workspace alias instead of ../../../',
|
|
20
|
-
},
|
|
21
|
-
],
|
|
22
|
-
},
|
|
23
|
-
],
|
|
24
|
-
},
|
|
7
|
+
name: 'import-style',
|
|
8
|
+
message: 'Deep relative import: use a workspace alias instead of ../../../',
|
|
9
|
+
ignores: withMinedExemptions([...TEST_GLOBS], analysis.violations),
|
|
10
|
+
check: { kind: 'import', regex: '^(\\.\\./){3,}', typeImports: true },
|
|
25
11
|
};
|
|
26
12
|
}
|
|
27
13
|
//# sourceMappingURL=deep-relative-emitters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-relative-emitters.js","sourceRoot":"","sources":["../../src/generator/deep-relative-emitters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"deep-relative-emitters.js","sourceRoot":"","sources":["../../src/generator/deep-relative-emitters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,UAAU,oBAAoB,CAAC,QAA8B;IACjE,IAAI,QAAQ,CAAC,qBAAqB,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACzF,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,kEAAkE;QAC3E,OAAO,EAAE,mBAAmB,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC;QAClE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE;KACtE,CAAC;AACJ,CAAC"}
|
|
@@ -3,7 +3,22 @@ export declare const appPathPrefix: (appPath: string) => string;
|
|
|
3
3
|
/** A regex matching exactly these app-relative files. */
|
|
4
4
|
export declare const exactAppFiles: (files: readonly string[], appPath: string) => string;
|
|
5
5
|
export declare const TEST_ROLE_REGEX = "(\\.(test|spec|e2e-spec|e2e)\\.(ts|tsx)$)|((^|/)(__tests__|__mocks__|e2e|cypress|playwright|test|tests)/)";
|
|
6
|
-
export
|
|
6
|
+
export type AllowedFor = (ruleId: string) => readonly string[];
|
|
7
|
+
export declare const noneAllowed: AllowedFor;
|
|
8
|
+
/** The files a rule tolerates: those it was inferred with, and those allowed with a reason. */
|
|
9
|
+
export declare const toleratedFiles: (violations: readonly {
|
|
7
10
|
file: string;
|
|
8
|
-
}[]
|
|
11
|
+
}[], allowed: readonly string[]) => {
|
|
12
|
+
file: string;
|
|
13
|
+
}[];
|
|
14
|
+
/** A `from` exemption for the tolerated files, or none when there are none. */
|
|
15
|
+
export declare const exemptingFrom: (tolerated: readonly {
|
|
16
|
+
file: string;
|
|
17
|
+
}[], appPath: string) => {
|
|
18
|
+
pathNot?: string | string[];
|
|
19
|
+
};
|
|
20
|
+
/** The base patterns, plus one regex for exactly the tolerated app files. */
|
|
21
|
+
export declare function exemptDepcruiseFrom(base: string | readonly string[], tolerated: readonly {
|
|
22
|
+
file: string;
|
|
23
|
+
}[], appPath: string): string | string[];
|
|
9
24
|
//# sourceMappingURL=depcruise-exempt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"depcruise-exempt.d.ts","sourceRoot":"","sources":["../../src/generator/depcruise-exempt.ts"],"names":[],"mappings":"AAEA,6GAA6G;AAC7G,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,KAAG,MAG/C,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,aAAa,GAAI,OAAO,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,KAAG,MACH,CAAC;AAExE,eAAO,MAAM,eAAe,8GACiF,CAAC;AAE9G,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EAChC,
|
|
1
|
+
{"version":3,"file":"depcruise-exempt.d.ts","sourceRoot":"","sources":["../../src/generator/depcruise-exempt.ts"],"names":[],"mappings":"AAEA,6GAA6G;AAC7G,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,KAAG,MAG/C,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,aAAa,GAAI,OAAO,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,KAAG,MACH,CAAC;AAExE,eAAO,MAAM,eAAe,8GACiF,CAAC;AAE9G,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC;AAE/D,eAAO,MAAM,WAAW,EAAE,UAAqB,CAAC;AAEhD,+FAA+F;AAC/F,eAAO,MAAM,cAAc,GACzB,YAAY,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EACvC,SAAS,SAAS,MAAM,EAAE,KACzB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAA2D,CAAC;AAE/E,+EAA+E;AAC/E,eAAO,MAAM,aAAa,GACxB,WAAW,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EACtC,SAAS,MAAM,KACd;IAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CACwD,CAAC;AAWzF,6EAA6E;AAC7E,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EAChC,SAAS,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EACtC,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,MAAM,EAAE,CAOnB"}
|
|
@@ -7,11 +7,25 @@ export const appPathPrefix = (appPath) => {
|
|
|
7
7
|
/** A regex matching exactly these app-relative files. */
|
|
8
8
|
export const exactAppFiles = (files, appPath) => `^${appPathPrefix(appPath)}(?:${files.map(escapeRegExp).join('|')})$`;
|
|
9
9
|
export const TEST_ROLE_REGEX = '(\\.(test|spec|e2e-spec|e2e)\\.(ts|tsx)$)|((^|/)(__tests__|__mocks__|e2e|cypress|playwright|test|tests)/)';
|
|
10
|
-
export
|
|
11
|
-
|
|
10
|
+
export const noneAllowed = () => [];
|
|
11
|
+
/** The files a rule tolerates: those it was inferred with, and those allowed with a reason. */
|
|
12
|
+
export const toleratedFiles = (violations, allowed) => [...violations, ...allowed.map((file) => ({ file }))];
|
|
13
|
+
/** A `from` exemption for the tolerated files, or none when there are none. */
|
|
14
|
+
export const exemptingFrom = (tolerated, appPath) => tolerated.length === 0 ? {} : { pathNot: exemptDepcruiseFrom([], tolerated, appPath) };
|
|
15
|
+
/**
|
|
16
|
+
* Exactly these app files, whether dependency-cruiser runs where archprint ran (`apps/web/src/a.ts`) or inside the
|
|
17
|
+
* app (`src/a.ts`), as the ESLint exemptions allow both; never a sibling app's file or one whose path ends the same.
|
|
18
|
+
*/
|
|
19
|
+
const toleratedAppFiles = (files, appPath) => {
|
|
20
|
+
const prefix = appPathPrefix(appPath);
|
|
21
|
+
return `^${prefix === '' ? '' : `(?:${prefix})?`}(?:${files.map(escapeRegExp).join('|')})$`;
|
|
22
|
+
};
|
|
23
|
+
/** The base patterns, plus one regex for exactly the tolerated app files. */
|
|
24
|
+
export function exemptDepcruiseFrom(base, tolerated, appPath) {
|
|
25
|
+
const files = [...new Set(tolerated.map((item) => item.file))].sort();
|
|
12
26
|
const parts = [
|
|
13
|
-
...
|
|
14
|
-
...
|
|
27
|
+
...(typeof base === 'string' ? [base] : base),
|
|
28
|
+
...(files.length === 0 ? [] : [toleratedAppFiles(files, appPath)]),
|
|
15
29
|
];
|
|
16
30
|
return parts.length === 1 ? parts[0] : parts;
|
|
17
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"depcruise-exempt.js","sourceRoot":"","sources":["../../src/generator/depcruise-exempt.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAE7F,6GAA6G;AAC7G,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAU,EAAE;IACvD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnE,OAAO,UAAU,KAAK,EAAE,IAAI,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;AACvF,CAAC,CAAC;AAEF,yDAAyD;AACzD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAwB,EAAE,OAAe,EAAU,EAAE,CACjF,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAExE,MAAM,CAAC,MAAM,eAAe,GAC1B,2GAA2G,CAAC;
|
|
1
|
+
{"version":3,"file":"depcruise-exempt.js","sourceRoot":"","sources":["../../src/generator/depcruise-exempt.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAE7F,6GAA6G;AAC7G,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAU,EAAE;IACvD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnE,OAAO,UAAU,KAAK,EAAE,IAAI,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;AACvF,CAAC,CAAC;AAEF,yDAAyD;AACzD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAwB,EAAE,OAAe,EAAU,EAAE,CACjF,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAExE,MAAM,CAAC,MAAM,eAAe,GAC1B,2GAA2G,CAAC;AAI9G,MAAM,CAAC,MAAM,WAAW,GAAe,GAAG,EAAE,CAAC,EAAE,CAAC;AAEhD,+FAA+F;AAC/F,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,UAAuC,EACvC,OAA0B,EACN,EAAE,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/E,+EAA+E;AAC/E,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,SAAsC,EACtC,OAAe,EACkB,EAAE,CACnC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;AAEzF;;;GAGG;AACH,MAAM,iBAAiB,GAAG,CAAC,KAAwB,EAAE,OAAe,EAAU,EAAE;IAC9E,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,IAAI,MAAM,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9F,CAAC,CAAC;AAEF,6EAA6E;AAC7E,MAAM,UAAU,mBAAmB,CACjC,IAAgC,EAChC,SAAsC,EACtC,OAAe;IAEf,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtE,MAAM,KAAK,GAAG;QACZ,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7C,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;KACnE,CAAC;IACF,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAChD,CAAC"}
|
|
@@ -14,5 +14,5 @@ export interface NoInternalsRule {
|
|
|
14
14
|
export interface NoInternalsConfig {
|
|
15
15
|
forbidden: NoInternalsRule[];
|
|
16
16
|
}
|
|
17
|
-
export declare function toDependencyCruiserDependencyInternals(analysis: DependencyInternalsAnalysis, allowedFor: (ruleId: string) => readonly string[]): NoInternalsConfig;
|
|
17
|
+
export declare function toDependencyCruiserDependencyInternals(analysis: DependencyInternalsAnalysis, allowedFor: (ruleId: string) => readonly string[], appPath?: string): NoInternalsConfig;
|
|
18
18
|
//# sourceMappingURL=dependency-internals-emitters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-internals-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/dependency-internals-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAGhG,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AAInE,MAAM,WAAW,eAAe;IAC9B,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,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,2BAA2B,EACrC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"dependency-internals-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/dependency-internals-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAGhG,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AAInE,MAAM,WAAW,eAAe;IAC9B,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,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,2BAA2B,EACrC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,EACjD,OAAO,SAAM,GACZ,iBAAiB,CA0BnB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { exemptDepcruiseFrom, TEST_ROLE_REGEX } from './depcruise-exempt.js';
|
|
2
2
|
export const DEPENDENCY_INTERNALS_RULE = 'no-dependency-internals';
|
|
3
3
|
const INTERNAL_PATH = 'node_modules/(?:@[^/]+/)?[^/]+/(?:src|internal|internals)/';
|
|
4
|
-
export function toDependencyCruiserDependencyInternals(analysis, allowedFor) {
|
|
4
|
+
export function toDependencyCruiserDependencyInternals(analysis, allowedFor, appPath = '.') {
|
|
5
5
|
if (analysis.externalImporterCount === 0 || analysis.gate.status !== 'AUTO') {
|
|
6
6
|
return { forbidden: [] };
|
|
7
7
|
}
|
|
@@ -17,7 +17,7 @@ export function toDependencyCruiserDependencyInternals(analysis, allowedFor) {
|
|
|
17
17
|
pathNot: exemptDepcruiseFrom([TEST_ROLE_REGEX, 'node_modules'], [
|
|
18
18
|
...analysis.violations,
|
|
19
19
|
...allowedFor(DEPENDENCY_INTERNALS_RULE).map((file) => ({ file })),
|
|
20
|
-
]),
|
|
20
|
+
], appPath),
|
|
21
21
|
},
|
|
22
22
|
to: { path: INTERNAL_PATH },
|
|
23
23
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-internals-emitters.js","sourceRoot":"","sources":["../../src/generator/dependency-internals-emitters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7E,MAAM,CAAC,MAAM,yBAAyB,GAAG,yBAAyB,CAAC;AAEnE,MAAM,aAAa,GAAG,4DAA4D,CAAC;AAcnF,MAAM,UAAU,sCAAsC,CACpD,QAAqC,EACrC,UAAiD;
|
|
1
|
+
{"version":3,"file":"dependency-internals-emitters.js","sourceRoot":"","sources":["../../src/generator/dependency-internals-emitters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7E,MAAM,CAAC,MAAM,yBAAyB,GAAG,yBAAyB,CAAC;AAEnE,MAAM,aAAa,GAAG,4DAA4D,CAAC;AAcnF,MAAM,UAAU,sCAAsC,CACpD,QAAqC,EACrC,UAAiD,EACjD,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,yBAAyB;gBAC/B,OAAO,EAAE,0CAA0C,OAAO,IAAI,QAAQ,CAAC,qBAAqB,0IAA0I,KAAK,IAAI;gBAC/O,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,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;qBACnE,EACD,OAAO,CACR;iBACF;gBACD,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;aAC5B;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -17,5 +17,5 @@ export interface EntryPurityConfig {
|
|
|
17
17
|
forbidden: EntryPurityRule[];
|
|
18
18
|
}
|
|
19
19
|
/** Dependency-cruiser cannot exempt a single import, so an entry already imported is exempt as a target. */
|
|
20
|
-
export declare function toDependencyCruiserEntryPurity(analysis: EntryPurityAnalysis, allowedFor: (ruleId: string) => readonly string[]): EntryPurityConfig;
|
|
20
|
+
export declare function toDependencyCruiserEntryPurity(analysis: EntryPurityAnalysis, allowedFor: (ruleId: string) => readonly string[], appPath?: string): EntryPurityConfig;
|
|
21
21
|
//# sourceMappingURL=entry-purity-emitters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-purity-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/entry-purity-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAI7F,eAAO,MAAM,iBAAiB,8BAA8B,CAAC;AAS7D,MAAM,WAAW,eAAe;IAC9B,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,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAAC,kBAAkB,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACjF;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,4GAA4G;AAC5G,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,mBAAmB,EAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"entry-purity-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/entry-purity-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAI7F,eAAO,MAAM,iBAAiB,8BAA8B,CAAC;AAS7D,MAAM,WAAW,eAAe;IAC9B,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,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAAC,kBAAkB,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACjF;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,4GAA4G;AAC5G,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,mBAAmB,EAC7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,EACjD,OAAO,SAAM,GACZ,iBAAiB,CA8BnB"}
|
|
@@ -7,7 +7,7 @@ const entryPath = () => {
|
|
|
7
7
|
return `(${sources.join('|')})`;
|
|
8
8
|
};
|
|
9
9
|
/** Dependency-cruiser cannot exempt a single import, so an entry already imported is exempt as a target. */
|
|
10
|
-
export function toDependencyCruiserEntryPurity(analysis, allowedFor) {
|
|
10
|
+
export function toDependencyCruiserEntryPurity(analysis, allowedFor, appPath = '.') {
|
|
11
11
|
if (analysis.entryCount === 0 || analysis.gate.status !== 'AUTO')
|
|
12
12
|
return { forbidden: [] };
|
|
13
13
|
const conform = analysis.entryCount - analysis.offenderCount;
|
|
@@ -22,13 +22,13 @@ export function toDependencyCruiserEntryPurity(analysis, allowedFor) {
|
|
|
22
22
|
comment: `Archprint inferred entry purity: ${conform}/${analysis.entryCount} framework entries (pages, routes) are loaded by the framework and imported by nothing; importing a framework entry from other code is forbidden (confidence ${floor}).`,
|
|
23
23
|
severity: 'error',
|
|
24
24
|
from: {
|
|
25
|
-
pathNot: exemptDepcruiseFrom(['node_modules', TEST_ROLE_REGEX, entryPath()], allowedFor(ENTRY_PURITY_RULE).map((file) => ({ file }))),
|
|
25
|
+
pathNot: exemptDepcruiseFrom(['node_modules', TEST_ROLE_REGEX, entryPath()], allowedFor(ENTRY_PURITY_RULE).map((file) => ({ file })), appPath),
|
|
26
26
|
},
|
|
27
27
|
to: {
|
|
28
28
|
path: entryPath(),
|
|
29
29
|
...(importedEntries.length === 0
|
|
30
30
|
? {}
|
|
31
|
-
: { pathNot: exemptDepcruiseFrom([], importedEntries) }),
|
|
31
|
+
: { pathNot: exemptDepcruiseFrom([], importedEntries, appPath) }),
|
|
32
32
|
dependencyTypesNot: ['type-only'],
|
|
33
33
|
},
|
|
34
34
|
},
|
|
@@ -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,4 +1,5 @@
|
|
|
1
1
|
import type { EnvAccessAnalysis } from '../detector/env-access-detector.js';
|
|
2
|
-
import {
|
|
3
|
-
export declare
|
|
2
|
+
import type { EslintFamilyRule } from './eslint-family-rules.js';
|
|
3
|
+
export declare const ENV_ACCESS_RULE = "env-access";
|
|
4
|
+
export declare function toEslintEnvAccess(analysis: EnvAccessAnalysis): EslintFamilyRule | null;
|
|
4
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"}
|
|
@@ -1,21 +1,14 @@
|
|
|
1
1
|
import { withMinedExemptions } from './console-isolation-emitters.js';
|
|
2
2
|
import { CONFIG_GLOBS, TEST_GLOBS } from './eslint-scope.js';
|
|
3
|
+
export const ENV_ACCESS_RULE = 'env-access';
|
|
3
4
|
export function toEslintEnvAccess(analysis) {
|
|
4
5
|
if (analysis.subjectFileCount === 0 || analysis.gate.status !== 'AUTO')
|
|
5
6
|
return null;
|
|
6
7
|
return {
|
|
7
|
-
|
|
8
|
+
name: ENV_ACCESS_RULE,
|
|
9
|
+
message: 'Read environment variables only in the config/env layer.',
|
|
8
10
|
ignores: withMinedExemptions([...TEST_GLOBS, ...CONFIG_GLOBS], analysis.violations),
|
|
9
|
-
|
|
10
|
-
'no-restricted-properties': [
|
|
11
|
-
'error',
|
|
12
|
-
{
|
|
13
|
-
object: 'process',
|
|
14
|
-
property: 'env',
|
|
15
|
-
message: 'Read environment variables only in the config/env layer.',
|
|
16
|
-
},
|
|
17
|
-
],
|
|
18
|
-
},
|
|
11
|
+
check: { kind: 'member', object: 'process', property: 'env' },
|
|
19
12
|
};
|
|
20
13
|
}
|
|
21
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
|
}
|