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,19 +1,27 @@
|
|
|
1
1
|
import { ROLE_PATTERNS } from '../scanner/role-classifier.js';
|
|
2
|
+
import { exemptingFrom, noneAllowed, toleratedFiles } from './depcruise-exempt.js';
|
|
2
3
|
const rolePath = (role) => {
|
|
3
4
|
const sources = (ROLE_PATTERNS.get(role) ?? []).map((pattern) => pattern.source);
|
|
4
5
|
return sources.length === 1 ? sources[0] : `(${sources.join('|')})`;
|
|
5
6
|
};
|
|
7
|
+
export const roleLayeringRuleName = (from, to) => `no-${from.toLowerCase()}-to-${to.toLowerCase()}`;
|
|
6
8
|
const confidencePct = (boundary) => `${(boundary.gate.conditions.confidence.value * 100).toFixed(0)}%`;
|
|
7
|
-
export function toDependencyCruiserRoleLayering(boundaries, include = ['AUTO']) {
|
|
9
|
+
export function toDependencyCruiserRoleLayering(boundaries, include = ['AUTO'], appPath = '.', allowedFor = noneAllowed) {
|
|
8
10
|
const forbidden = boundaries
|
|
9
11
|
.filter((boundary) => include.includes(boundary.gate.status))
|
|
10
|
-
.map((boundary) =>
|
|
11
|
-
name
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
.map((boundary) => {
|
|
13
|
+
const name = roleLayeringRuleName(boundary.from, boundary.to);
|
|
14
|
+
return {
|
|
15
|
+
name,
|
|
16
|
+
comment: `Archprint inferred role layering: ${boundary.reverseFlow} ${boundary.to} file(s) depend on ${boundary.from}, not the reverse; a ${boundary.from} must not import a ${boundary.to} (confidence ${confidencePct(boundary)}).`,
|
|
17
|
+
severity: 'error',
|
|
18
|
+
from: {
|
|
19
|
+
path: rolePath(boundary.from),
|
|
20
|
+
...exemptingFrom(toleratedFiles(boundary.violations, allowedFor(name)), appPath),
|
|
21
|
+
},
|
|
22
|
+
to: { path: rolePath(boundary.to) },
|
|
23
|
+
};
|
|
24
|
+
});
|
|
17
25
|
return { forbidden };
|
|
18
26
|
}
|
|
19
27
|
//# sourceMappingURL=role-layering-emitters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-layering-emitters.js","sourceRoot":"","sources":["../../src/generator/role-layering-emitters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"role-layering-emitters.js","sourceRoot":"","sources":["../../src/generator/role-layering-emitters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAmB,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGpG,MAAM,QAAQ,GAAG,CAAC,IAAU,EAAU,EAAE;IACtC,MAAM,OAAO,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjF,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAU,EAAE,EAAQ,EAAU,EAAE,CACnE,MAAM,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;AAEpD,MAAM,aAAa,GAAG,CAAC,QAAsB,EAAU,EAAE,CACvD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAcrE,MAAM,UAAU,+BAA+B,CAC7C,UAAmC,EACnC,UAAuC,CAAC,MAAM,CAAC,EAC/C,OAAO,GAAG,GAAG,EACb,aAAyB,WAAW;IAEpC,MAAM,SAAS,GAAG,UAAU;SACzB,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC5D,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAChB,MAAM,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9D,OAAO;YACL,IAAI;YACJ,OAAO,EAAE,qCAAqC,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,EAAE,sBAAsB,QAAQ,CAAC,IAAI,wBAAwB,QAAQ,CAAC,IAAI,sBAAsB,QAAQ,CAAC,EAAE,gBAAgB,aAAa,CAAC,QAAQ,CAAC,IAAI;YACrO,QAAQ,EAAE,OAAgB;YAC1B,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC7B,GAAG,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC;aACjF;YACD,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;SACpC,CAAC;IACJ,CAAC,CAAC,CAAC;IACL,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-client-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/server-client-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,uCAAuC,CAAC;AAG/C,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,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,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IACnD,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAAC,kBAAkB,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC/D;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,GAChD,kBAAkB,
|
|
1
|
+
{"version":3,"file":"server-client-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/server-client-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,uCAAuC,CAAC;AAG/C,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,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,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IACnD,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAAC,kBAAkB,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC/D;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,GAChD,kBAAkB,CA6BpB"}
|
|
@@ -19,10 +19,7 @@ export function toDependencyCruiserServerClient(analysis, appPath, allowedFor) {
|
|
|
19
19
|
severity: 'error',
|
|
20
20
|
from: {
|
|
21
21
|
path: exactAppFiles(analysis.clients, appPath),
|
|
22
|
-
pathNot: exemptDepcruiseFrom(TEST_ROLE_REGEX, [
|
|
23
|
-
...analysis.violations,
|
|
24
|
-
...allowedFor(SERVER_CLIENT_RULE).map((file) => ({ file })),
|
|
25
|
-
]),
|
|
22
|
+
pathNot: exemptDepcruiseFrom(TEST_ROLE_REGEX, [...analysis.violations, ...allowedFor(SERVER_CLIENT_RULE).map((file) => ({ file }))], appPath),
|
|
26
23
|
},
|
|
27
24
|
to: {
|
|
28
25
|
path: analysis.serverModules.length === 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-client-emitters.js","sourceRoot":"","sources":["../../src/generator/server-client-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAEpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE5F,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAc7D;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAC7C,QAA8B,EAC9B,OAAe,EACf,UAAiD;IAEjD,IAAI,QAAQ,CAAC,WAAW,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC5F,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC;IAC9D,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,iBAAiB,GAAG,qBAAqB,mBAAmB,GAAG,CAAC;IACtE,OAAO;QACL,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,8CAA8C,OAAO,IAAI,QAAQ,CAAC,WAAW,gIAAgI,KAAK,IAAI;gBAC/N,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE;oBACJ,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;oBAC9C,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"server-client-emitters.js","sourceRoot":"","sources":["../../src/generator/server-client-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAEpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE5F,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAc7D;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAC7C,QAA8B,EAC9B,OAAe,EACf,UAAiD;IAEjD,IAAI,QAAQ,CAAC,WAAW,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC5F,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC;IAC9D,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,iBAAiB,GAAG,qBAAqB,mBAAmB,GAAG,CAAC;IACtE,OAAO;QACL,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,8CAA8C,OAAO,IAAI,QAAQ,CAAC,WAAW,gIAAgI,KAAK,IAAI;gBAC/N,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE;oBACJ,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;oBAC9C,OAAO,EAAE,mBAAmB,CAC1B,eAAe,EACf,CAAC,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EACrF,OAAO,CACR;iBACF;gBACD,EAAE,EAAE;oBACF,IAAI,EACF,QAAQ,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;wBACjC,CAAC,CAAC,iBAAiB;wBACnB,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,iBAAiB,CAAC;oBACzE,kBAAkB,EAAE,CAAC,WAAW,CAAC;iBAClC;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { StoriesIsolationAnalysis } from '../detector/stories-isolation-detector.js';
|
|
2
|
+
import { type AllowedFor } from './depcruise-exempt.js';
|
|
2
3
|
export interface StoriesIsolationRule {
|
|
3
4
|
name: string;
|
|
4
5
|
comment: string;
|
|
5
6
|
severity: 'error' | 'warn' | 'info';
|
|
6
7
|
from: {
|
|
7
|
-
pathNot: string;
|
|
8
|
+
pathNot: string | string[];
|
|
8
9
|
};
|
|
9
10
|
to: {
|
|
10
11
|
path: string;
|
|
@@ -13,5 +14,6 @@ export interface StoriesIsolationRule {
|
|
|
13
14
|
export interface StoriesIsolationConfig {
|
|
14
15
|
forbidden: StoriesIsolationRule[];
|
|
15
16
|
}
|
|
16
|
-
export declare
|
|
17
|
+
export declare const STORIES_ISOLATION_RULE = "no-import-stories";
|
|
18
|
+
export declare function toDependencyCruiserStoriesIsolation(analysis: StoriesIsolationAnalysis, appPath?: string, allowedFor?: AllowedFor): StoriesIsolationConfig;
|
|
17
19
|
//# sourceMappingURL=stories-isolation-emitters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stories-isolation-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/stories-isolation-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"stories-isolation-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/stories-isolation-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1F,OAAO,EACL,KAAK,UAAU,EAIhB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,oBAAoB;IACnC,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,sBAAsB;IACrC,SAAS,EAAE,oBAAoB,EAAE,CAAC;CACnC;AAED,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAI1D,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,wBAAwB,EAClC,OAAO,SAAM,EACb,UAAU,GAAE,UAAwB,GACnC,sBAAsB,CAwBxB"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { exemptDepcruiseFrom, noneAllowed, toleratedFiles, } from './depcruise-exempt.js';
|
|
2
|
+
export const STORIES_ISOLATION_RULE = 'no-import-stories';
|
|
1
3
|
const STORY_PATH = '\\.stories\\.(ts|tsx)$';
|
|
2
|
-
export function toDependencyCruiserStoriesIsolation(analysis) {
|
|
4
|
+
export function toDependencyCruiserStoriesIsolation(analysis, appPath = '.', allowedFor = noneAllowed) {
|
|
3
5
|
if (analysis.storyCount === 0 || analysis.gate.status !== 'AUTO')
|
|
4
6
|
return { forbidden: [] };
|
|
5
7
|
const conform = analysis.storyCount - analysis.offenderCount;
|
|
@@ -7,10 +9,12 @@ export function toDependencyCruiserStoriesIsolation(analysis) {
|
|
|
7
9
|
return {
|
|
8
10
|
forbidden: [
|
|
9
11
|
{
|
|
10
|
-
name:
|
|
12
|
+
name: STORIES_ISOLATION_RULE,
|
|
11
13
|
comment: `Archprint inferred stories isolation: ${conform}/${analysis.storyCount} Storybook stories are loaded by Storybook and imported by nothing; importing a .stories file from other code is forbidden (confidence ${floor}).`,
|
|
12
14
|
severity: 'error',
|
|
13
|
-
from: {
|
|
15
|
+
from: {
|
|
16
|
+
pathNot: exemptDepcruiseFrom(STORY_PATH, toleratedFiles(analysis.violations.map((story) => ({ file: story.importer })), allowedFor(STORIES_ISOLATION_RULE)), appPath),
|
|
17
|
+
},
|
|
14
18
|
to: { path: STORY_PATH },
|
|
15
19
|
},
|
|
16
20
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stories-isolation-emitters.js","sourceRoot":"","sources":["../../src/generator/stories-isolation-emitters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stories-isolation-emitters.js","sourceRoot":"","sources":["../../src/generator/stories-isolation-emitters.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,mBAAmB,EACnB,WAAW,EACX,cAAc,GACf,MAAM,uBAAuB,CAAC;AAc/B,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAE1D,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAE5C,MAAM,UAAU,mCAAmC,CACjD,QAAkC,EAClC,OAAO,GAAG,GAAG,EACb,aAAyB,WAAW;IAEpC,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,OAAO;QACL,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,yCAAyC,OAAO,IAAI,QAAQ,CAAC,UAAU,0IAA0I,KAAK,IAAI;gBACnO,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE;oBACJ,OAAO,EAAE,mBAAmB,CAC1B,UAAU,EACV,cAAc,CACZ,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAC9D,UAAU,CAAC,sBAAsB,CAAC,CACnC,EACD,OAAO,CACR;iBACF;gBACD,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;aACzB;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { TestIsolationAnalysis } from '../detector/test-isolation-detector.js';
|
|
2
|
-
import {
|
|
2
|
+
import type { EslintFamilyRule } from './eslint-family-rules.js';
|
|
3
|
+
import { type AllowedFor } from './depcruise-exempt.js';
|
|
3
4
|
export interface NotToTestRule {
|
|
4
5
|
name: string;
|
|
5
6
|
comment: string;
|
|
@@ -14,6 +15,6 @@ export interface NotToTestRule {
|
|
|
14
15
|
export interface NotToTestConfig {
|
|
15
16
|
forbidden: NotToTestRule[];
|
|
16
17
|
}
|
|
17
|
-
export declare function toDependencyCruiserTestIsolation(analysis: TestIsolationAnalysis): NotToTestConfig;
|
|
18
|
-
export declare function toEslintTestIsolation(analysis: TestIsolationAnalysis):
|
|
18
|
+
export declare function toDependencyCruiserTestIsolation(analysis: TestIsolationAnalysis, appPath?: string, allowedFor?: AllowedFor): NotToTestConfig;
|
|
19
|
+
export declare function toEslintTestIsolation(analysis: TestIsolationAnalysis): EslintFamilyRule | null;
|
|
19
20
|
//# sourceMappingURL=test-isolation-emitters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-isolation-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/test-isolation-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"test-isolation-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/test-isolation-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAEpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EACL,KAAK,UAAU,EAKhB,MAAM,uBAAuB,CAAC;AAI/B,MAAM,WAAW,aAAa;IAC5B,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,eAAe;IAC9B,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,SAAM,EACb,UAAU,GAAE,UAAwB,GACnC,eAAe,CAqBjB;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,gBAAgB,GAAG,IAAI,CAQ9F"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { withMinedExemptions } from './console-isolation-emitters.js';
|
|
2
2
|
import { TEST_GLOBS } from './eslint-scope.js';
|
|
3
|
-
import { exemptDepcruiseFrom, TEST_ROLE_REGEX } from './depcruise-exempt.js';
|
|
3
|
+
import { exemptDepcruiseFrom, noneAllowed, TEST_ROLE_REGEX, toleratedFiles, } from './depcruise-exempt.js';
|
|
4
4
|
const TEST_PATH = TEST_ROLE_REGEX;
|
|
5
|
-
export function toDependencyCruiserTestIsolation(analysis) {
|
|
5
|
+
export function toDependencyCruiserTestIsolation(analysis, appPath = '.', allowedFor = noneAllowed) {
|
|
6
6
|
if (analysis.testFileCount === 0 || analysis.gate.status !== 'AUTO')
|
|
7
7
|
return { forbidden: [] };
|
|
8
8
|
const conform = analysis.productionFileCount - analysis.offenderCount;
|
|
@@ -13,7 +13,9 @@ export function toDependencyCruiserTestIsolation(analysis) {
|
|
|
13
13
|
name: 'not-to-test',
|
|
14
14
|
comment: `Archprint inferred test isolation: ${conform}/${analysis.productionFileCount} production files do not import a test file; importing tests from production code is forbidden (confidence ${floor}).`,
|
|
15
15
|
severity: 'error',
|
|
16
|
-
from: {
|
|
16
|
+
from: {
|
|
17
|
+
pathNot: exemptDepcruiseFrom(TEST_PATH, toleratedFiles(analysis.violations, allowedFor('test-isolation')), appPath),
|
|
18
|
+
},
|
|
17
19
|
to: { path: TEST_PATH },
|
|
18
20
|
},
|
|
19
21
|
],
|
|
@@ -23,21 +25,10 @@ export function toEslintTestIsolation(analysis) {
|
|
|
23
25
|
if (analysis.testFileCount === 0 || analysis.gate.status !== 'AUTO')
|
|
24
26
|
return null;
|
|
25
27
|
return {
|
|
26
|
-
|
|
28
|
+
name: 'test-isolation',
|
|
29
|
+
message: 'Do not import a test file from production code.',
|
|
27
30
|
ignores: withMinedExemptions([...TEST_GLOBS], analysis.violations),
|
|
28
|
-
|
|
29
|
-
'no-restricted-imports': [
|
|
30
|
-
'error',
|
|
31
|
-
{
|
|
32
|
-
patterns: [
|
|
33
|
-
{
|
|
34
|
-
regex: '\\.(test|spec)(\\.|$)',
|
|
35
|
-
message: 'Do not import a test file from production code.',
|
|
36
|
-
},
|
|
37
|
-
],
|
|
38
|
-
},
|
|
39
|
-
],
|
|
40
|
-
},
|
|
31
|
+
check: { kind: 'import', regex: '\\.(test|spec)(\\.|$)', typeImports: false },
|
|
41
32
|
};
|
|
42
33
|
}
|
|
43
34
|
//# sourceMappingURL=test-isolation-emitters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-isolation-emitters.js","sourceRoot":"","sources":["../../src/generator/test-isolation-emitters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"test-isolation-emitters.js","sourceRoot":"","sources":["../../src/generator/test-isolation-emitters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAEL,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,cAAc,GACf,MAAM,uBAAuB,CAAC;AAE/B,MAAM,SAAS,GAAG,eAAe,CAAC;AAclC,MAAM,UAAU,gCAAgC,CAC9C,QAA+B,EAC/B,OAAO,GAAG,GAAG,EACb,aAAyB,WAAW;IAEpC,IAAI,QAAQ,CAAC,aAAa,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC9F,MAAM,OAAO,GAAG,QAAQ,CAAC,mBAAmB,GAAG,QAAQ,CAAC,aAAa,CAAC;IACtE,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,aAAa;gBACnB,OAAO,EAAE,sCAAsC,OAAO,IAAI,QAAQ,CAAC,mBAAmB,8GAA8G,KAAK,IAAI;gBAC7M,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE;oBACJ,OAAO,EAAE,mBAAmB,CAC1B,SAAS,EACT,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC,EACjE,OAAO,CACR;iBACF;gBACD,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aACxB;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAA+B;IACnE,IAAI,QAAQ,CAAC,aAAa,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACjF,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,iDAAiD;QAC1D,OAAO,EAAE,mBAAmB,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC;QAClE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,KAAK,EAAE;KAC9E,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type { UiDataIsolationAnalysis } from '../detector/ui-data-isolation-detector.js';
|
|
2
|
+
import { type AllowedFor } from './depcruise-exempt.js';
|
|
3
|
+
export declare const UI_DATA_RULE = "no-ui-to-data";
|
|
2
4
|
export interface UiDataRule {
|
|
3
5
|
name: string;
|
|
4
6
|
comment: string;
|
|
5
7
|
severity: 'error' | 'warn' | 'info';
|
|
6
8
|
from: {
|
|
7
9
|
path: string;
|
|
10
|
+
pathNot?: string | string[];
|
|
8
11
|
};
|
|
9
12
|
to: {
|
|
10
13
|
path: string;
|
|
@@ -13,5 +16,5 @@ export interface UiDataRule {
|
|
|
13
16
|
export interface UiDataConfig {
|
|
14
17
|
forbidden: UiDataRule[];
|
|
15
18
|
}
|
|
16
|
-
export declare function toDependencyCruiserUiData(analysis: UiDataIsolationAnalysis): UiDataConfig;
|
|
19
|
+
export declare function toDependencyCruiserUiData(analysis: UiDataIsolationAnalysis, appPath?: string, allowedFor?: AllowedFor): UiDataConfig;
|
|
17
20
|
//# sourceMappingURL=ui-data-isolation-emitters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-data-isolation-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/ui-data-isolation-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"ui-data-isolation-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/ui-data-isolation-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEzF,OAAO,EAAE,KAAK,UAAU,EAA8C,MAAM,uBAAuB,CAAC;AAGpG,eAAO,MAAM,YAAY,kBAAkB,CAAC;AAgB5C,MAAM,WAAW,UAAU;IACzB,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,CAAA;KAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,uBAAuB,EACjC,OAAO,SAAM,EACb,UAAU,GAAE,UAAwB,GACnC,YAAY,CAkBd"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { ROLE_PATTERNS } from '../scanner/role-classifier.js';
|
|
2
|
+
import { exemptingFrom, noneAllowed, toleratedFiles } from './depcruise-exempt.js';
|
|
3
|
+
export const UI_DATA_RULE = 'no-ui-to-data';
|
|
2
4
|
const DATA_ROLES = ['DB_MODULE', 'DATA_ACCESS'];
|
|
3
5
|
const dataPath = () => {
|
|
4
6
|
const sources = DATA_ROLES.flatMap((role) => (ROLE_PATTERNS.get(role) ?? []).map((pattern) => pattern.source));
|
|
@@ -8,7 +10,7 @@ const componentPath = () => {
|
|
|
8
10
|
const sources = (ROLE_PATTERNS.get('COMPONENT') ?? []).map((pattern) => pattern.source);
|
|
9
11
|
return sources.length > 0 ? `(${sources.join('|')})` : '\\.tsx$';
|
|
10
12
|
};
|
|
11
|
-
export function toDependencyCruiserUiData(analysis) {
|
|
13
|
+
export function toDependencyCruiserUiData(analysis, appPath = '.', allowedFor = noneAllowed) {
|
|
12
14
|
if (analysis.componentCount === 0 || analysis.gate.status !== 'AUTO')
|
|
13
15
|
return { forbidden: [] };
|
|
14
16
|
const conform = analysis.componentCount - analysis.offenderCount;
|
|
@@ -16,10 +18,13 @@ export function toDependencyCruiserUiData(analysis) {
|
|
|
16
18
|
return {
|
|
17
19
|
forbidden: [
|
|
18
20
|
{
|
|
19
|
-
name:
|
|
21
|
+
name: UI_DATA_RULE,
|
|
20
22
|
comment: `Archprint inferred UI/data separation: ${conform}/${analysis.componentCount} UI components never import the data layer (files under db, database or prisma folders, or a prisma, drizzle or kysely client file) directly; a component importing it is forbidden (confidence ${floor}).`,
|
|
21
23
|
severity: 'error',
|
|
22
|
-
from: {
|
|
24
|
+
from: {
|
|
25
|
+
path: componentPath(),
|
|
26
|
+
...exemptingFrom(toleratedFiles(analysis.violations, allowedFor(UI_DATA_RULE)), appPath),
|
|
27
|
+
},
|
|
23
28
|
to: { path: dataPath() },
|
|
24
29
|
},
|
|
25
30
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-data-isolation-emitters.js","sourceRoot":"","sources":["../../src/generator/ui-data-isolation-emitters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"ui-data-isolation-emitters.js","sourceRoot":"","sources":["../../src/generator/ui-data-isolation-emitters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAmB,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGpG,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;AAE5C,MAAM,UAAU,GAAoB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAEjE,MAAM,QAAQ,GAAG,GAAW,EAAE;IAC5B,MAAM,OAAO,GAAG,UAAU,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;IACF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,GAAW,EAAE;IACjC,MAAM,OAAO,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxF,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC,CAAC;AAcF,MAAM,UAAU,yBAAyB,CACvC,QAAiC,EACjC,OAAO,GAAG,GAAG,EACb,aAAyB,WAAW;IAEpC,IAAI,QAAQ,CAAC,cAAc,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC/F,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC;IACjE,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,YAAY;gBAClB,OAAO,EAAE,0CAA0C,OAAO,IAAI,QAAQ,CAAC,cAAc,mMAAmM,KAAK,IAAI;gBACjS,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE;oBACJ,IAAI,EAAE,aAAa,EAAE;oBACrB,GAAG,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC;iBACzF;gBACD,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;aACzB;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { WorkspacePackageAnalysis } from '../detector/workspace-package-detector.js';
|
|
2
|
-
import {
|
|
3
|
-
export declare
|
|
2
|
+
import type { EslintFamilyRule } from './eslint-family-rules.js';
|
|
3
|
+
export declare const WORKSPACE_PACKAGE_RULE = "workspace-package";
|
|
4
|
+
export declare function toEslintWorkspacePackageApi(analysis: WorkspacePackageAnalysis): EslintFamilyRule | null;
|
|
4
5
|
//# sourceMappingURL=workspace-package-emitters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-package-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/workspace-package-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace-package-emitters.d.ts","sourceRoot":"","sources":["../../src/generator/workspace-package-emitters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAE1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAKjE,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAE1D,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,wBAAwB,GACjC,gBAAgB,GAAG,IAAI,CAUzB"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { withMinedExemptions } from './console-isolation-emitters.js';
|
|
2
|
+
import { TEST_GLOBS } from './eslint-scope.js';
|
|
2
3
|
const escapeRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
4
|
+
export const WORKSPACE_PACKAGE_RULE = 'workspace-package';
|
|
3
5
|
export function toEslintWorkspacePackageApi(analysis) {
|
|
4
6
|
if (analysis.consumerCount === 0 || analysis.packages.length === 0)
|
|
5
7
|
return null;
|
|
@@ -7,20 +9,10 @@ export function toEslintWorkspacePackageApi(analysis) {
|
|
|
7
9
|
return null;
|
|
8
10
|
const group = analysis.packages.map(escapeRegExp).join('|');
|
|
9
11
|
return {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
{
|
|
15
|
-
patterns: [
|
|
16
|
-
{
|
|
17
|
-
regex: `^(${group})/`,
|
|
18
|
-
message: 'Import a workspace package by its name, not a deep path into its source.',
|
|
19
|
-
},
|
|
20
|
-
],
|
|
21
|
-
},
|
|
22
|
-
],
|
|
23
|
-
},
|
|
12
|
+
name: WORKSPACE_PACKAGE_RULE,
|
|
13
|
+
message: 'Import a workspace package by its name, not a deep path into its source.',
|
|
14
|
+
ignores: withMinedExemptions([...TEST_GLOBS], analysis.violations),
|
|
15
|
+
check: { kind: 'import', regex: `^(${group})/`, typeImports: false },
|
|
24
16
|
};
|
|
25
17
|
}
|
|
26
18
|
//# sourceMappingURL=workspace-package-emitters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-package-emitters.js","sourceRoot":"","sources":["../../src/generator/workspace-package-emitters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"workspace-package-emitters.js","sourceRoot":"","sources":["../../src/generator/workspace-package-emitters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAE7F,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAE1D,MAAM,UAAU,2BAA2B,CACzC,QAAkC;IAElC,IAAI,QAAQ,CAAC,aAAa,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAChF,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5D,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,0EAA0E;QACnF,OAAO,EAAE,mBAAmB,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC;QAClE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;KACrE,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export { detectForbiddenImport, detectForbiddenImports, detectNoDbInRequestEntry
|
|
|
8
8
|
export { inferUiLayerMarkers, inferDbClientMarkers, KNOWN_DB_LIBRARIES, type InferredMarkers, type InferredDbMarkers, type UiSegmentEvidence, } from './detector/marker-inference.js';
|
|
9
9
|
export { detectLayerBoundaries, layerOfPath, type LayerAnalysis, type LayerBoundary, type LayerInfo, type LayerDetectorOptions, } from './detector/layer-detector.js';
|
|
10
10
|
export { detectCycles, type CycleAnalysis, type CycleDetectorOptions, type ImportCycle, } from './detector/cycle-detector.js';
|
|
11
|
-
export { detectOrphans, type OrphanAnalysis
|
|
11
|
+
export { detectOrphans, type OrphanAnalysis } from './detector/orphan-detector.js';
|
|
12
12
|
export { buildImportGraph, stronglyConnectedComponents, type ImportGraph, type ImportGraphOptions, } from './scanner/import-graph.js';
|
|
13
13
|
export { computeLayerReachability, reachesLayer, type ReachabilityAnalysis, type ReachabilityOptions, } from './detector/reachability.js';
|
|
14
14
|
export { detectPublicApiBoundaries, type PublicApiAnalysis, type PublicApiGroup, type PublicApiViolation, type PublicApiDetectorOptions, } from './detector/public-api-detector.js';
|
|
@@ -43,8 +43,9 @@ export { toDependencyCruiserDependencyInternals, type NoInternalsConfig, type No
|
|
|
43
43
|
export { toDependencyCruiserRoleLayering, type RoleLayeringConfig, type RoleLayeringRule, } from './generator/role-layering-emitters.js';
|
|
44
44
|
export { toDependencyCruiserEntryPurity, type EntryPurityConfig, type EntryPurityRule, } from './generator/entry-purity-emitters.js';
|
|
45
45
|
export { toDependencyCruiserPhantomDependencies, type PhantomDependencyConfig, type PhantomDependencyRule, } from './generator/phantom-dependency-emitters.js';
|
|
46
|
-
export { toEslintDeepRelative
|
|
47
|
-
export { toEslintConsoleIsolation
|
|
46
|
+
export { toEslintDeepRelative } from './generator/deep-relative-emitters.js';
|
|
47
|
+
export { toEslintConsoleIsolation } from './generator/console-isolation-emitters.js';
|
|
48
|
+
export type { EslintFamilyRule, FamilyCheck } from './generator/eslint-family-rules.js';
|
|
48
49
|
export { toEslintEnvAccess } from './generator/env-access-emitters.js';
|
|
49
50
|
export { toEslintWorkspacePackageApi } from './generator/workspace-package-emitters.js';
|
|
50
51
|
export { toDependencyCruiserStoriesIsolation, type StoriesIsolationConfig, type StoriesIsolationRule, } from './generator/stories-isolation-emitters.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,YAAY,EACZ,aAAa,EACb,KAAK,IAAI,EACT,KAAK,kBAAkB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,QAAQ,EACR,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,UAAU,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,SAAS,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,oBAAoB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,WAAW,GACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,YAAY,EACZ,aAAa,EACb,KAAK,IAAI,EACT,KAAK,kBAAkB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,QAAQ,EACR,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,UAAU,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,SAAS,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,oBAAoB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,WAAW,GACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,yBAAyB,EACzB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,GACjC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,mBAAmB,EACnB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,GAClC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,GACjC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,sBAAsB,EACtB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,GAC7B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,yBAAyB,EACzB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,GAChC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,yBAAyB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,GAC9B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,yBAAyB,EACzB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,sBAAsB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,eAAe,EACf,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EACL,yBAAyB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,GAC7B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,sBAAsB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,GAC7B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,qBAAqB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,sBAAsB,GAC5B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,0BAA0B,EAC1B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,eAAe,EACf,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,gBAAgB,GACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,aAAa,GACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,GAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,SAAS,EACT,UAAU,EACV,eAAe,EACf,KAAK,cAAc,GACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EACL,4BAA4B,EAC5B,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,+BAA+B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,gCAAgC,EAChC,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EACL,+BAA+B,EAC/B,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,sCAAsC,EACtC,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,+BAA+B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,8BAA8B,EAC9B,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,sCAAsC,EACtC,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EACL,mCAAmC,EACnC,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,GAC1B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,yBAAyB,EACzB,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,+BAA+B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ export { detectForbiddenImport, detectForbiddenImports, detectNoDbInRequestEntry
|
|
|
8
8
|
export { inferUiLayerMarkers, inferDbClientMarkers, KNOWN_DB_LIBRARIES, } from './detector/marker-inference.js';
|
|
9
9
|
export { detectLayerBoundaries, layerOfPath, } from './detector/layer-detector.js';
|
|
10
10
|
export { detectCycles, } from './detector/cycle-detector.js';
|
|
11
|
-
export { detectOrphans
|
|
11
|
+
export { detectOrphans } from './detector/orphan-detector.js';
|
|
12
12
|
export { buildImportGraph, stronglyConnectedComponents, } from './scanner/import-graph.js';
|
|
13
13
|
export { computeLayerReachability, reachesLayer, } from './detector/reachability.js';
|
|
14
14
|
export { detectPublicApiBoundaries, } from './detector/public-api-detector.js';
|
|
@@ -43,8 +43,8 @@ export { toDependencyCruiserDependencyInternals, } from './generator/dependency-
|
|
|
43
43
|
export { toDependencyCruiserRoleLayering, } from './generator/role-layering-emitters.js';
|
|
44
44
|
export { toDependencyCruiserEntryPurity, } from './generator/entry-purity-emitters.js';
|
|
45
45
|
export { toDependencyCruiserPhantomDependencies, } from './generator/phantom-dependency-emitters.js';
|
|
46
|
-
export { toEslintDeepRelative
|
|
47
|
-
export { toEslintConsoleIsolation
|
|
46
|
+
export { toEslintDeepRelative } from './generator/deep-relative-emitters.js';
|
|
47
|
+
export { toEslintConsoleIsolation } from './generator/console-isolation-emitters.js';
|
|
48
48
|
export { toEslintEnvAccess } from './generator/env-access-emitters.js';
|
|
49
49
|
export { toEslintWorkspacePackageApi } from './generator/workspace-package-emitters.js';
|
|
50
50
|
export { toDependencyCruiserStoriesIsolation, } from './generator/stories-isolation-emitters.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,YAAY,EACZ,aAAa,GAGd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,QAAQ,GAIT,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,GAIpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,GAInB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,qBAAqB,EACrB,WAAW,GAKZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,YAAY,GAIb,MAAM,8BAA8B,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,7 +62,7 @@ export declare const REMOTE_TOOLS: readonly [{
|
|
|
62
62
|
readonly idempotentHint: true;
|
|
63
63
|
readonly openWorldHint: true;
|
|
64
64
|
};
|
|
65
|
-
readonly description: "Clone a public repository by URL (read-only, ephemeral) and explain the confidence-gate evidence behind one inferred rule id (e.g. AP-002): its gate status, adoption (enforce, review, or report-only), conformance stats, and the files that violate it.";
|
|
65
|
+
readonly description: "Clone a public repository by URL (read-only, ephemeral) and explain the confidence-gate evidence behind one inferred rule, by id, label or ESLint name (e.g. AP-002 or no-lib-to-app): its gate status, adoption (enforce, review, or report-only), conformance stats, and the files that violate it.";
|
|
66
66
|
readonly inputSchema: {
|
|
67
67
|
readonly type: "object";
|
|
68
68
|
readonly properties: {
|
|
@@ -76,7 +76,7 @@ export declare const REMOTE_TOOLS: readonly [{
|
|
|
76
76
|
};
|
|
77
77
|
readonly id: {
|
|
78
78
|
readonly type: "string";
|
|
79
|
-
readonly description: "rule id, e.g. AP-002";
|
|
79
|
+
readonly description: "rule id, label or ESLint name, e.g. AP-002 or no-lib-to-app";
|
|
80
80
|
};
|
|
81
81
|
};
|
|
82
82
|
readonly required: readonly ["id", "repo"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/remote/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAoB/D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/remote/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAoB/D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6Cf,CAAC;AAEX,wBAAsB,aAAa,CACjC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CAmBlB;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,YAAY,CAAC,CAMvB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,WAA+B,GACrC,MAAM,CAYR"}
|
|
@@ -47,10 +47,16 @@ export const REMOTE_TOOLS = [
|
|
|
47
47
|
name: 'archprint_explain',
|
|
48
48
|
title: 'Explain an architecture rule',
|
|
49
49
|
annotations: READ_ONLY_REMOTE,
|
|
50
|
-
description: 'Clone a public repository by URL (read-only, ephemeral) and explain the confidence-gate evidence behind one inferred rule id (e.g. AP-002): its gate status, adoption (enforce, review, or report-only), conformance stats, and the files that violate it.',
|
|
50
|
+
description: 'Clone a public repository by URL (read-only, ephemeral) and explain the confidence-gate evidence behind one inferred rule, by id, label or ESLint name (e.g. AP-002 or no-lib-to-app): its gate status, adoption (enforce, review, or report-only), conformance stats, and the files that violate it.',
|
|
51
51
|
inputSchema: {
|
|
52
52
|
type: 'object',
|
|
53
|
-
properties: {
|
|
53
|
+
properties: {
|
|
54
|
+
id: {
|
|
55
|
+
type: 'string',
|
|
56
|
+
description: 'rule id, label or ESLint name, e.g. AP-002 or no-lib-to-app',
|
|
57
|
+
},
|
|
58
|
+
...repoProperty,
|
|
59
|
+
},
|
|
54
60
|
required: ['id', 'repo'],
|
|
55
61
|
},
|
|
56
62
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mcp/remote/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,UAAU,EAAqB,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAoB,MAAM,YAAY,CAAC;AAE/D,MAAM,YAAY,GAAG;IACnB,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8EAA8E;KAC5F;IACD,GAAG,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,uEAAuE;KACrF;CACO,CAAC;AAEX,MAAM,gBAAgB,GAAG;IACvB,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,IAAI;CACX,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B;QACE,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EACT,oYAAoY;QACtY,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,YAAY;gBACf,IAAI,EAAE;oBACJ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,qEAAqE;iBACnF;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EACT,6VAA6V;QAC/V,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,GAAG,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;KACrF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mcp/remote/server.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/server.d.ts
CHANGED
|
@@ -51,13 +51,13 @@ export declare const TOOLS: readonly [{
|
|
|
51
51
|
readonly idempotentHint: true;
|
|
52
52
|
readonly openWorldHint: false;
|
|
53
53
|
};
|
|
54
|
-
readonly description: "Explain one rule from archprint_scan in depth, by its label (e.g. AP-002, env-access,
|
|
54
|
+
readonly description: "Explain one rule from archprint_scan in depth, by its id, label or ESLint name (e.g. AP-002, env-access, no-lib-to-app, \"lib !-> app\" or archprint/no-lib-to-app): its statement, gate status, adoption (enforce, review, or report-only, as in archprint_scan), observed conformance and confidence floor, and every file that breaks it (scan lists only a few). For the forbidden-import rules (AP-001, AP-002) it also returns each confidence-gate condition with its value and threshold, how to fix a violation, and when not to adopt the rule. Read-only.";
|
|
55
55
|
readonly inputSchema: {
|
|
56
56
|
readonly type: "object";
|
|
57
57
|
readonly properties: {
|
|
58
58
|
readonly id: {
|
|
59
59
|
readonly type: "string";
|
|
60
|
-
readonly description: "rule label from archprint_scan, e.g. AP-002 or
|
|
60
|
+
readonly description: "rule id, label or ESLint name from archprint_scan, e.g. AP-002, no-lib-to-app or \"lib !-> app\"";
|
|
61
61
|
};
|
|
62
62
|
readonly path: {
|
|
63
63
|
readonly type: "string";
|
package/dist/mcp/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAInE,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASlF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAInE,OAAO,EAA6B,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASlF,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgFR,CAAC;AAEX,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAoB5E;AAED,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CAMlF;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQpD;AAGD,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -48,13 +48,13 @@ export const TOOLS = [
|
|
|
48
48
|
name: 'archprint_explain',
|
|
49
49
|
title: 'Explain an architecture rule',
|
|
50
50
|
annotations: READ_ONLY,
|
|
51
|
-
description: 'Explain one rule from archprint_scan in depth, by its label (e.g. AP-002, env-access,
|
|
51
|
+
description: 'Explain one rule from archprint_scan in depth, by its id, label or ESLint name (e.g. AP-002, env-access, no-lib-to-app, "lib !-> app" or archprint/no-lib-to-app): its statement, gate status, adoption (enforce, review, or report-only, as in archprint_scan), observed conformance and confidence floor, and every file that breaks it (scan lists only a few). For the forbidden-import rules (AP-001, AP-002) it also returns each confidence-gate condition with its value and threshold, how to fix a violation, and when not to adopt the rule. Read-only.',
|
|
52
52
|
inputSchema: {
|
|
53
53
|
type: 'object',
|
|
54
54
|
properties: {
|
|
55
55
|
id: {
|
|
56
56
|
type: 'string',
|
|
57
|
-
description: 'rule label from archprint_scan, e.g. AP-002 or
|
|
57
|
+
description: 'rule id, label or ESLint name from archprint_scan, e.g. AP-002, no-lib-to-app or "lib !-> app"',
|
|
58
58
|
},
|
|
59
59
|
path: {
|
|
60
60
|
type: 'string',
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAqB,MAAM,oBAAoB,CAAC;AAElF,MAAM,SAAS,GAAG;IAChB,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,KAAK;CACZ,CAAC;AAEX,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB;QACE,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,SAAS;QACtB,WAAW,EACT,uoBAAuoB;QACzoB,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yEAAyE;iBACvF;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,qEAAqE;iBACnF;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE,SAAS;QACtB,WAAW,EACT,oUAAoU;QACtU,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yEAAyE;iBACvF;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE,SAAS;QACtB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAqC,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAqC,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AA4BvE,MAAM,WAAW,OAAQ,SAAQ,WAAW;IAC1C,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,OAAO,EAAE,CAM/D;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAMjE;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAoBpE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAI/E"}
|