@component-compass/cli 0.0.3 → 0.0.4
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/dist/cli.js +1 -1
- package/dist/commands/init.js +1 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/scan.d.ts +12 -1
- package/dist/commands/scan.js +158 -55
- package/dist/commands/scan.js.map +1 -1
- package/dist/config/loader.js +5 -9
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +2 -15
- package/dist/config/schema.js.map +1 -1
- package/dist/envelope/index.d.ts +0 -9
- package/dist/envelope/index.js +1 -46
- package/dist/envelope/index.js.map +1 -1
- package/dist/identity.d.ts +11 -15
- package/dist/identity.js +29 -20
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/local-index/detect-react.d.ts +2 -1
- package/dist/local-index/detect-react.js +135 -115
- package/dist/local-index/detect-react.js.map +1 -1
- package/dist/local-index/detect-vue.d.ts +15 -1
- package/dist/local-index/detect-vue.js +130 -107
- package/dist/local-index/detect-vue.js.map +1 -1
- package/dist/local-index/detect-wc.d.ts +7 -1
- package/dist/local-index/detect-wc.js +56 -60
- package/dist/local-index/detect-wc.js.map +1 -1
- package/dist/local-index/index.d.ts +11 -6
- package/dist/local-index/index.js +25 -27
- package/dist/local-index/index.js.map +1 -1
- package/dist/manifest/barrel-parser.d.ts +10 -0
- package/dist/manifest/barrel-parser.js +11 -0
- package/dist/manifest/barrel-parser.js.map +1 -1
- package/dist/manifest/derived-manifest-stub.d.ts +15 -6
- package/dist/manifest/derived-manifest-stub.js +43 -7
- package/dist/manifest/derived-manifest-stub.js.map +1 -1
- package/dist/manifest/lazy-resolver.d.ts +42 -16
- package/dist/manifest/lazy-resolver.js +122 -49
- package/dist/manifest/lazy-resolver.js.map +1 -1
- package/dist/occurrences.js +20 -4
- package/dist/occurrences.js.map +1 -1
- package/dist/parse-by-ext.d.ts +21 -0
- package/dist/parse-by-ext.js +53 -0
- package/dist/parse-by-ext.js.map +1 -0
- package/dist/reporter/index.d.ts +5 -21
- package/dist/reporter/index.js +6 -52
- package/dist/reporter/index.js.map +1 -1
- package/dist/reporter/stdout.js +4 -4
- package/dist/reporter/stdout.js.map +1 -1
- package/dist/rollup.d.ts +5 -4
- package/dist/rollup.js +7 -4
- package/dist/rollup.js.map +1 -1
- package/dist/scan/cem-index.d.ts +38 -0
- package/dist/scan/cem-index.js +139 -0
- package/dist/scan/cem-index.js.map +1 -0
- package/dist/scan/git-mtime.d.ts +2 -0
- package/dist/scan/git-mtime.js +22 -0
- package/dist/scan/git-mtime.js.map +1 -0
- package/dist/scan/meta.d.ts +5 -0
- package/dist/scan/meta.js +58 -0
- package/dist/scan/meta.js.map +1 -0
- package/dist/scan/stamp-deprecated.d.ts +16 -0
- package/dist/scan/stamp-deprecated.js +33 -0
- package/dist/scan/stamp-deprecated.js.map +1 -0
- package/dist/scan/stamp-version.d.ts +18 -0
- package/dist/scan/stamp-version.js +94 -0
- package/dist/scan/stamp-version.js.map +1 -0
- package/dist/seeds.d.ts +18 -18
- package/dist/seeds.js +82 -45
- package/dist/seeds.js.map +1 -1
- package/dist/types.d.ts +2 -5
- package/dist/util/git.d.ts +8 -0
- package/dist/util/git.js +73 -0
- package/dist/util/git.js.map +1 -1
- package/dist/util/progress.d.ts +21 -0
- package/dist/util/progress.js +54 -0
- package/dist/util/progress.js.map +1 -0
- package/dist/walker/files.d.ts +1 -0
- package/dist/walker/files.js +11 -5
- package/dist/walker/files.js.map +1 -1
- package/dist/workspace/find-owning-package.d.ts +6 -0
- package/dist/workspace/find-owning-package.js +22 -2
- package/dist/workspace/find-owning-package.js.map +1 -1
- package/dist/workspace/index.d.ts +1 -1
- package/dist/workspace/index.js +1 -1
- package/dist/workspace/index.js.map +1 -1
- package/package.json +13 -7
- package/schema/config.schema.json +2 -24
- package/dist/commands/no-deps-diagnostic.d.ts +0 -15
- package/dist/commands/no-deps-diagnostic.js +0 -23
- package/dist/commands/no-deps-diagnostic.js.map +0 -1
- package/dist/config/tag-rules.d.ts +0 -2
- package/dist/config/tag-rules.js +0 -34
- package/dist/config/tag-rules.js.map +0 -1
- package/dist/local-index/walker.d.ts +0 -11
- package/dist/local-index/walker.js +0 -47
- package/dist/local-index/walker.js.map +0 -1
- package/dist/manifest/diagnostic-filter.d.ts +0 -13
- package/dist/manifest/diagnostic-filter.js +0 -36
- package/dist/manifest/diagnostic-filter.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -18,7 +18,7 @@ Scan options:
|
|
|
18
18
|
--json Print JSON to stdout (implies --quiet)
|
|
19
19
|
--fail-on <metric> CI gate (e.g. deprecated-usage)
|
|
20
20
|
--strict Exit non-zero if any warning-severity diagnostics fire
|
|
21
|
-
--repo-id <value> Override
|
|
21
|
+
--repo-id <value> Override repo identifier in the artifact (else env COMPONENT_COMPASS_REPO_ID, git remote, package.json name, or cwd hash)
|
|
22
22
|
|
|
23
23
|
Other:
|
|
24
24
|
--help, -h
|
package/dist/commands/init.js
CHANGED
|
@@ -6,10 +6,8 @@ const TEMPLATE = (repoId) => ({
|
|
|
6
6
|
repoId,
|
|
7
7
|
include: ["src/**/*.{ts,tsx,jsx,js,vue,html}"],
|
|
8
8
|
exclude: ["**/*.{test,spec,stories}.*", "**/node_modules/**"],
|
|
9
|
-
packageScopes: [],
|
|
10
9
|
captureValues: false,
|
|
11
10
|
output: "./component-compass.json",
|
|
12
|
-
tagRules: [],
|
|
13
11
|
});
|
|
14
12
|
export async function runInit(opts) {
|
|
15
13
|
const cwd = isAbsolute(opts.cwd) ? opts.cwd : resolve(opts.cwd);
|
|
@@ -33,7 +31,7 @@ export async function runInit(opts) {
|
|
|
33
31
|
const cfg = TEMPLATE(repoId);
|
|
34
32
|
await writeFile(out, `${JSON.stringify(cfg, null, 2)}\n`, "utf8");
|
|
35
33
|
// eslint-disable-next-line no-console
|
|
36
|
-
console.log(`Wrote ${out}.\
|
|
34
|
+
console.log(`Wrote ${out}.\nCustomize the config to match your repo structure.`);
|
|
37
35
|
}
|
|
38
36
|
async function deriveRepoId(cwd) {
|
|
39
37
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAO5D,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACpC,OAAO,EAAE,oEAAoE;IAC7E,MAAM;IACN,OAAO,EAAE,CAAC,mCAAmC,CAAC;IAC9C,OAAO,EAAE,CAAC,4BAA4B,EAAE,oBAAoB,CAAC;IAC7D,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAO5D,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACpC,OAAO,EAAE,oEAAoE;IAC7E,MAAM;IACN,OAAO,EAAE,CAAC,mCAAmC,CAAC;IAC9C,OAAO,EAAE,CAAC,4BAA4B,EAAE,oBAAoB,CAAC;IAC7D,aAAa,EAAE,KAAK;IACpB,MAAM,EAAE,0BAA0B;CACnC,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAiB;IAC7C,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,+BAA+B,CAAC,CAAC;IAE7E,iCAAiC;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,0BAA0B,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,GAAmD,CAAC;QAC9D,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxB,2EAA2E;YAC3E,mCAAmC;YACnC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,uBAAuB,CAAC;gBAAE,MAAM,CAAC,CAAC;YAC5D,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAElE,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,uDAAuD,CAAC,CAAC;AACnF,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAsB,CAAC;QACpD,IAAI,GAAG,CAAC,IAAI;YAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAe;IAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACvB,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC"}
|
package/dist/commands/scan.d.ts
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
|
+
import type { ScanOutput } from "@component-compass/plugin-core";
|
|
1
2
|
export type ScanOptions = {
|
|
2
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Path to the config file. Defaults to `<cwd>/component-compass.config.json`
|
|
5
|
+
* when `cwd` is provided and `configPath` is omitted.
|
|
6
|
+
*/
|
|
7
|
+
configPath?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Working directory used to locate the config when `configPath` is omitted.
|
|
10
|
+
* Has no effect when `configPath` is supplied.
|
|
11
|
+
*/
|
|
12
|
+
cwd?: string;
|
|
3
13
|
outputOverride?: string;
|
|
4
14
|
captureValuesOverride?: boolean;
|
|
5
15
|
quiet?: boolean;
|
|
@@ -9,5 +19,6 @@ export type ScanOptions = {
|
|
|
9
19
|
};
|
|
10
20
|
export type ScanResult = {
|
|
11
21
|
exitCode: number;
|
|
22
|
+
output: ScanOutput | null;
|
|
12
23
|
};
|
|
13
24
|
export declare function runScan(opts: ScanOptions): Promise<ScanResult>;
|
package/dist/commands/scan.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { performance } from "node:perf_hooks";
|
|
2
|
-
import { isAbsolute, resolve } from "node:path";
|
|
2
|
+
import { isAbsolute, relative, resolve } from "node:path";
|
|
3
3
|
import { readFile } from "node:fs/promises";
|
|
4
|
-
import picomatch from "picomatch";
|
|
5
4
|
import { loadConfig, ConfigError } from "../config/loader.js";
|
|
6
5
|
import { createLazyResolver } from "../manifest/lazy-resolver.js";
|
|
7
|
-
import { buildDiagnosticGate } from "../manifest/diagnostic-filter.js";
|
|
8
|
-
import { computeNoDepsMatchScopes } from "./no-deps-diagnostic.js";
|
|
9
6
|
import { buildLocalIndex } from "../local-index/index.js";
|
|
7
|
+
import { detectReactComponents } from "../local-index/detect-react.js";
|
|
8
|
+
import { detectVueComponents } from "../local-index/detect-vue.js";
|
|
9
|
+
import { detectWebComponents } from "../local-index/detect-wc.js";
|
|
10
|
+
import { parseByExt } from "../parse-by-ext.js";
|
|
11
|
+
import { createProgress } from "../util/progress.js";
|
|
10
12
|
import { walkFiles } from "../walker/files.js";
|
|
11
13
|
import { createImportResolver } from "../walker/resolve-import.js";
|
|
12
14
|
import { Dispatcher } from "../dispatcher.js";
|
|
@@ -16,33 +18,45 @@ import { litTemplatePlugin } from "@component-compass/parser-lit";
|
|
|
16
18
|
import { vuePlugin } from "@component-compass/parser-vue";
|
|
17
19
|
import { writeJson } from "../reporter/json.js";
|
|
18
20
|
import { printSummary } from "../reporter/stdout.js";
|
|
19
|
-
import {
|
|
21
|
+
import { stampMeta } from "../scan/meta.js";
|
|
22
|
+
import { stampGitMTime } from "../scan/git-mtime.js";
|
|
23
|
+
import { stampVersion } from "../scan/stamp-version.js";
|
|
24
|
+
import { stampDeprecated } from "../scan/stamp-deprecated.js";
|
|
25
|
+
import { buildCemIndex } from "../scan/cem-index.js";
|
|
20
26
|
import { isPnpProject } from "../util/pnp-check.js";
|
|
21
27
|
import { Logger } from "../util/log.js";
|
|
22
|
-
import { errorMessage } from "@component-compass/ast-utils";
|
|
28
|
+
import { errorMessage, posixPath } from "@component-compass/ast-utils";
|
|
23
29
|
import { buildComponentSeeds } from "../seeds.js";
|
|
24
30
|
import { parseResultsToOccurrences } from "../occurrences.js";
|
|
25
31
|
import { buildScanOutput } from "../reporter/index.js";
|
|
26
|
-
import { buildWorkspaceGraph, declaredDeps } from "../workspace/index.js";
|
|
32
|
+
import { buildWorkspaceGraph, declaredDeps, resetFindOwningPackageCache, } from "../workspace/index.js";
|
|
27
33
|
import { createDiagnosticCollector } from "@component-compass/plugin-core";
|
|
28
34
|
export async function runScan(opts) {
|
|
29
35
|
const log = new Logger(opts.quiet);
|
|
30
36
|
const t0 = performance.now();
|
|
37
|
+
const configPath = opts.configPath ??
|
|
38
|
+
resolve(opts.cwd ?? process.cwd(), "component-compass.config.json");
|
|
31
39
|
let cfg;
|
|
32
40
|
try {
|
|
33
|
-
cfg = await loadConfig(
|
|
41
|
+
cfg = await loadConfig(configPath);
|
|
34
42
|
}
|
|
35
43
|
catch (err) {
|
|
36
44
|
if (err instanceof ConfigError) {
|
|
37
45
|
log.error(err.message);
|
|
38
|
-
return { exitCode: 2 };
|
|
46
|
+
return { exitCode: 2, output: null };
|
|
39
47
|
}
|
|
40
48
|
throw err;
|
|
41
49
|
}
|
|
42
50
|
if (isPnpProject(cfg.configDir)) {
|
|
43
51
|
log.error("yarn PnP detected; component-compass requires nodeLinker: node-modules. See docs/usage.md.");
|
|
44
|
-
return { exitCode: 2 };
|
|
52
|
+
return { exitCode: 2, output: null };
|
|
45
53
|
}
|
|
54
|
+
// Stamp meta early — throws if not a git work tree, which is a hard
|
|
55
|
+
// prerequisite for a stable repo identity.
|
|
56
|
+
const metaOpts = { cwd: cfg.configDir };
|
|
57
|
+
if (opts.repoId !== undefined)
|
|
58
|
+
metaOpts.repoIdOverride = opts.repoId;
|
|
59
|
+
const meta = await stampMeta(metaOpts);
|
|
46
60
|
if (opts.outputOverride)
|
|
47
61
|
cfg.output = opts.outputOverride;
|
|
48
62
|
if (opts.captureValuesOverride !== undefined)
|
|
@@ -59,33 +73,44 @@ export async function runScan(opts) {
|
|
|
59
73
|
}
|
|
60
74
|
const resolveImport = createImportResolver(resolveImportOpts);
|
|
61
75
|
const collector = createDiagnosticCollector();
|
|
76
|
+
// Reset per-scan caches so in-process invocations (tests, watch mode) start
|
|
77
|
+
// clean. Memoized realpath results from a prior scan would still be valid,
|
|
78
|
+
// but explicit reset avoids state leakage if the filesystem changed.
|
|
79
|
+
resetFindOwningPackageCache();
|
|
62
80
|
const workspaceGraph = buildWorkspaceGraph(cfg.configDir);
|
|
81
|
+
// Build global CEM index once per scan. Enumerates every package under
|
|
82
|
+
// <root>/node_modules, finds CEM/CCM files, and builds byTag + byPackageName
|
|
83
|
+
// maps so parsers can resolve hyphenated tags without consumer-side config.
|
|
84
|
+
// Parsers consume cemIndex starting from T08.
|
|
85
|
+
const cemIndex = await buildCemIndex(cfg.configDir);
|
|
86
|
+
// Identity resolution (leafPackage + modulePath) runs unconditionally for
|
|
87
|
+
// external imports. `manifestPatterns` is the per-package gate for manifest
|
|
88
|
+
// IO only. `["**"]` opts every package in — picomatch's `*` won't cross `/`
|
|
89
|
+
// so it misses scoped names, but `**` does. The workspace gate inside
|
|
90
|
+
// extractDerived (realpathSync check for node_modules in path) decides which
|
|
91
|
+
// packages actually get extractor enrichment; published packages bail
|
|
92
|
+
// immediately, so there is no meaningful performance cost for the wider gate.
|
|
93
|
+
const manifestPatterns = ["**"];
|
|
63
94
|
const lazyResolver = createLazyResolver({
|
|
64
95
|
resolveImport,
|
|
65
96
|
repoRoot: cfg.configDir,
|
|
66
97
|
collector,
|
|
67
|
-
|
|
98
|
+
manifestPatterns,
|
|
68
99
|
});
|
|
69
100
|
// Warm-up: load each declared dep's root CEM/CCM (if any) so tag-only
|
|
70
101
|
// consumers (HTML files, Vue templates with no JS-side import for the tag)
|
|
71
102
|
// can resolve external custom elements via lookupByTag. Cheap (one
|
|
72
103
|
// package.json + one manifest read per dep) and matches the lazy
|
|
73
104
|
// resolver's terminal-load step in depth — no barrel walking, no
|
|
74
|
-
// re-export chasing.
|
|
105
|
+
// re-export chasing. `.warm()` returns a WarmedResolver whose lookupByTag
|
|
106
|
+
// is the only typed access to the byTag index.
|
|
75
107
|
const declared = declaredDeps(workspaceGraph);
|
|
76
|
-
lazyResolver.
|
|
77
|
-
// Surface a config-error diagnostic when the user declared `packageScopes`
|
|
78
|
-
// but none of the declared deps matched. Reuses the same picomatch-based
|
|
79
|
-
// matching as the diagnostic gate so the two filters can't drift.
|
|
80
|
-
const warmedMatchingScopes = filterByScopes(declared, cfg.packageScopes);
|
|
81
|
-
const noDepsDiagnostic = computeNoDepsMatchScopes(cfg.packageScopes, warmedMatchingScopes, workspaceGraph);
|
|
82
|
-
if (noDepsDiagnostic)
|
|
83
|
-
collector.emit(noDepsDiagnostic);
|
|
84
|
-
const localIndex = await buildLocalIndex({ repoRoot: cfg.configDir, collector });
|
|
108
|
+
const warmedResolver = lazyResolver.warm(declared);
|
|
85
109
|
const files = await walkFiles({
|
|
86
110
|
root: cfg.configDir,
|
|
87
111
|
include: cfg.include,
|
|
88
112
|
exclude: cfg.exclude,
|
|
113
|
+
gitignore: cfg.gitignore,
|
|
89
114
|
});
|
|
90
115
|
if (files.length === 0) {
|
|
91
116
|
log.warn(`No files matched include globs: ${cfg.include.join(", ")}`);
|
|
@@ -100,56 +125,147 @@ export async function runScan(opts) {
|
|
|
100
125
|
});
|
|
101
126
|
const dispatcher = new Dispatcher([reactPlugin, htmlPlugin, litTemplatePlugin, vuePlugin]);
|
|
102
127
|
const results = [];
|
|
128
|
+
// Single-pass scan: one IO + one parse per file, shared across the local-
|
|
129
|
+
// index build and plugin dispatch. ASTs are cached for the gap between the
|
|
130
|
+
// two phases, then evicted post-dispatch to bound peak memory on large
|
|
131
|
+
// monorepos. Two progress reporters cover each phase so the user sees both
|
|
132
|
+
// legs — phase 2's plugin dispatch can dominate on JSX-heavy repos, and a
|
|
133
|
+
// single phase-1-only reporter looked frozen at 99% during phase 2.
|
|
134
|
+
const writer = opts.quiet ? () => { } : (s) => process.stderr.write(s);
|
|
135
|
+
const isTTY = !!process.stderr.isTTY;
|
|
136
|
+
const parseProgress = createProgress({
|
|
137
|
+
total: orderedFiles.length,
|
|
138
|
+
writer,
|
|
139
|
+
isTTY,
|
|
140
|
+
label: "Parsing",
|
|
141
|
+
});
|
|
142
|
+
const astCache = new Map();
|
|
143
|
+
const sourceCache = new Map();
|
|
144
|
+
const localDefs = [];
|
|
145
|
+
// ── Phase 1: read + parse + emit local definitions ──────────────────────
|
|
103
146
|
for (const file of orderedFiles) {
|
|
104
147
|
const source = await readFile(file, "utf8").catch(() => "");
|
|
105
|
-
if (!source)
|
|
148
|
+
if (!source) {
|
|
149
|
+
parseProgress.tick();
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
let parsed;
|
|
153
|
+
try {
|
|
154
|
+
parsed = parseByExt(file, source);
|
|
155
|
+
}
|
|
156
|
+
catch (err) {
|
|
157
|
+
// parseByExt throws on unrecoverable syntax (EOF mid-expression, malformed
|
|
158
|
+
// SFC). Mirror the plugin-loop's warn-and-continue pattern so one broken
|
|
159
|
+
// file can't tank the scan.
|
|
160
|
+
log.warn(`[component-compass] parse failure in ${file}: ${errorMessage(err)}`);
|
|
161
|
+
parseProgress.tick();
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
// `unsupported` extensions never reach phase 2; skip caching to bound
|
|
165
|
+
// peak memory on scans whose include glob covers unsupported file types.
|
|
166
|
+
if (parsed.kind === "unsupported") {
|
|
167
|
+
parseProgress.tick();
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
astCache.set(file, parsed);
|
|
171
|
+
sourceCache.set(file, source);
|
|
172
|
+
// Detectors record `componentId.source.filePath` as POSIX repo-relative so
|
|
173
|
+
// it joins with seeds + parser occurrences without a normalisation step.
|
|
174
|
+
const relPath = posixPath(relative(cfg.configDir, file));
|
|
175
|
+
if (parsed.kind === "babel") {
|
|
176
|
+
localDefs.push(...detectReactComponents(parsed.ast, relPath, parsed.source));
|
|
177
|
+
localDefs.push(...detectWebComponents(parsed.ast, relPath));
|
|
178
|
+
// Vue script-mode catches `defineComponent` in plain .ts/.js, mirroring
|
|
179
|
+
// local-index/index.ts pre-Task-11 routing for non-SFC files.
|
|
180
|
+
localDefs.push(...detectVueComponents({ kind: "script", program: parsed.ast, source: parsed.source }, relPath));
|
|
181
|
+
}
|
|
182
|
+
else if (parsed.kind === "vue") {
|
|
183
|
+
const wrapper = parsed.scriptAst !== undefined
|
|
184
|
+
? { descriptor: parsed.descriptor, scriptProgram: parsed.scriptAst }
|
|
185
|
+
: { descriptor: parsed.descriptor };
|
|
186
|
+
localDefs.push(...detectVueComponents({ kind: "sfc", wrapper }, relPath));
|
|
187
|
+
}
|
|
188
|
+
parseProgress.tick();
|
|
189
|
+
}
|
|
190
|
+
parseProgress.done();
|
|
191
|
+
const localIndex = buildLocalIndex(localDefs, collector);
|
|
192
|
+
// ── Phase 2: dispatch plugins with shared oxc Program through ctx.ast ────
|
|
193
|
+
// walkProgress total is the cached-file count: files dropped by phase 1
|
|
194
|
+
// (empty source / parse failure / unsupported extension) aren't in the
|
|
195
|
+
// cache and won't be walked.
|
|
196
|
+
const walkProgress = createProgress({
|
|
197
|
+
total: astCache.size,
|
|
198
|
+
writer,
|
|
199
|
+
isTTY,
|
|
200
|
+
label: "Walking",
|
|
201
|
+
});
|
|
202
|
+
for (const file of orderedFiles) {
|
|
203
|
+
const parsed = astCache.get(file);
|
|
204
|
+
const source = sourceCache.get(file);
|
|
205
|
+
if (!parsed || parsed.kind === "unsupported" || source === undefined)
|
|
106
206
|
continue;
|
|
207
|
+
// Carrier shape per file-kind; plugins narrow internally via their own
|
|
208
|
+
// ctx.ast cast. `babel` → oxc Program, `vue` → VueParseWrapper,
|
|
209
|
+
// `html` → parse5 Document. Unsupported never reaches here.
|
|
210
|
+
const astForCtx = parsed.kind === "babel" ? parsed.ast :
|
|
211
|
+
parsed.kind === "vue" ? (parsed.scriptAst !== undefined
|
|
212
|
+
? { descriptor: parsed.descriptor, scriptProgram: parsed.scriptAst }
|
|
213
|
+
: { descriptor: parsed.descriptor }) :
|
|
214
|
+
parsed.kind === "html" ? parsed.document :
|
|
215
|
+
undefined;
|
|
107
216
|
for (const plugin of dispatcher.allPluginsFor(file)) {
|
|
108
217
|
try {
|
|
109
218
|
results.push(plugin.parse(file, source, {
|
|
110
219
|
localIndex,
|
|
111
220
|
config: cfg,
|
|
112
221
|
resolveImport,
|
|
113
|
-
resolveLazyManifest:
|
|
114
|
-
lookupByTag:
|
|
222
|
+
resolveLazyManifest: warmedResolver.resolveLazyManifest,
|
|
223
|
+
lookupByTag: warmedResolver.lookupByTag,
|
|
115
224
|
repoRoot: cfg.configDir,
|
|
116
225
|
collector,
|
|
226
|
+
ast: astForCtx,
|
|
227
|
+
cemIndex,
|
|
117
228
|
}));
|
|
118
229
|
}
|
|
119
230
|
catch (err) {
|
|
120
231
|
log.warn(`[component-compass] parse failure in ${file}: ${errorMessage(err)}`);
|
|
121
232
|
}
|
|
122
233
|
}
|
|
234
|
+
// Evict after dispatch — keeps peak heap proportional to one file, not
|
|
235
|
+
// the whole repo, on large monorepos.
|
|
236
|
+
astCache.delete(file);
|
|
237
|
+
sourceCache.delete(file);
|
|
238
|
+
walkProgress.tick();
|
|
123
239
|
}
|
|
240
|
+
walkProgress.done();
|
|
124
241
|
const t1 = performance.now();
|
|
125
|
-
// Drain the shared collector.
|
|
126
|
-
|
|
127
|
-
// same allowlist `buildScanOutput` uses for the artifact.
|
|
128
|
-
const allDiagnostics = collector.drain();
|
|
129
|
-
const allowDiagnostic = buildDiagnosticGate(cfg.packageScopes);
|
|
130
|
-
const diagnostics = allDiagnostics.filter(allowDiagnostic);
|
|
242
|
+
// Drain the shared collector.
|
|
243
|
+
const diagnostics = collector.drain();
|
|
131
244
|
if (!opts.quiet) {
|
|
132
245
|
for (const d of diagnostics) {
|
|
133
246
|
log.warn(formatDiagnostic(d));
|
|
134
247
|
}
|
|
135
248
|
}
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
cliRepoIdFlag: opts.repoId,
|
|
139
|
-
});
|
|
140
|
-
const snapshot = lazyResolver
|
|
249
|
+
const derivedPackages = warmedResolver.snapshotDerivedPackages();
|
|
250
|
+
const snapshot = warmedResolver
|
|
141
251
|
.snapshotComponents()
|
|
142
|
-
.map((c) =>
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
252
|
+
.map((c) => {
|
|
253
|
+
const pkg = c.source.type === "external" ? c.source.package : null;
|
|
254
|
+
const enrichmentSource = pkg !== null && derivedPackages.has(pkg) ? "derived" : "authored";
|
|
255
|
+
return { component: c, enrichmentSource };
|
|
256
|
+
});
|
|
257
|
+
const manifests = warmedResolver.snapshotManifestRefs();
|
|
258
|
+
const seeds = buildComponentSeeds(snapshot, results, localIndex, cfg.configDir, workspaceGraph);
|
|
146
259
|
const occurrences = parseResultsToOccurrences(results, cfg.captureValues, cfg.configDir);
|
|
147
260
|
const partialStats = {
|
|
148
261
|
filesScanned: files.length,
|
|
149
262
|
filesWithUsage: countFilesWithUsage(occurrences),
|
|
150
263
|
scanDurationMs: Math.round(t1 - t0),
|
|
151
264
|
};
|
|
152
|
-
const scanOutput = buildScanOutput(
|
|
265
|
+
const scanOutput = buildScanOutput(meta, manifests, partialStats, seeds, occurrences, diagnostics);
|
|
266
|
+
await stampGitMTime(cfg.configDir, scanOutput.components);
|
|
267
|
+
await stampVersion(cfg.configDir, scanOutput.components, scanOutput.occurrences);
|
|
268
|
+
stampDeprecated(scanOutput.components, cemIndex);
|
|
153
269
|
const outputPath = isAbsolute(cfg.output) ? cfg.output : resolve(cfg.configDir, cfg.output);
|
|
154
270
|
await writeJson(scanOutput, outputPath);
|
|
155
271
|
if (!opts.quiet) {
|
|
@@ -157,21 +273,14 @@ export async function runScan(opts) {
|
|
|
157
273
|
}
|
|
158
274
|
let exitCode = 0;
|
|
159
275
|
if (opts.failOn === "deprecated-usage") {
|
|
160
|
-
const hasDeprecated = scanOutput.components.some((c) => c.
|
|
161
|
-
c.stats.occurrenceCount > 0);
|
|
276
|
+
const hasDeprecated = scanOutput.components.some((c) => c.deprecated && c.stats.occurrenceCount > 0);
|
|
162
277
|
if (hasDeprecated)
|
|
163
278
|
exitCode = 1;
|
|
164
279
|
}
|
|
165
280
|
if (opts.strict && diagnostics.some((d) => d.severity === "warning")) {
|
|
166
281
|
exitCode = 1;
|
|
167
282
|
}
|
|
168
|
-
return { exitCode };
|
|
169
|
-
}
|
|
170
|
-
function filterByScopes(deps, scopes) {
|
|
171
|
-
if (scopes.length === 0)
|
|
172
|
-
return [...deps];
|
|
173
|
-
const matchers = scopes.map((s) => picomatch(s));
|
|
174
|
-
return deps.filter((d) => matchers.some((m) => m(d)));
|
|
283
|
+
return { exitCode, output: scanOutput };
|
|
175
284
|
}
|
|
176
285
|
function countFilesWithUsage(occurrences) {
|
|
177
286
|
const files = new Set();
|
|
@@ -191,16 +300,10 @@ function formatDiagnostic(d) {
|
|
|
191
300
|
return `${tag} [component-compass] ${d.code} at ${d.filePath}:${d.line ?? "?"} — emitted <${d.tagName}> as ${d.emittedAs}`;
|
|
192
301
|
case "local-index-duplicate-tag":
|
|
193
302
|
return `${tag} [component-compass] ${d.code} at ${d.filePath} — <${d.tagName}> conflicts with ${d.conflictsWith}`;
|
|
194
|
-
case "barrel-unsupported-form":
|
|
195
|
-
return `${tag} [component-compass] ${d.code} at ${d.filePath}:${d.line ?? "?"} — ${d.form}`;
|
|
196
|
-
case "untraceable-barrel":
|
|
197
|
-
return `${tag} [component-compass] ${d.code} — "${d.packageName}" resolved to ${d.resolvedFile} (no static re-exports)`;
|
|
198
303
|
case "cycle-detected":
|
|
199
304
|
return `${tag} [component-compass] ${d.code} at ${d.filePath} (export: ${d.exportName})`;
|
|
200
305
|
case "chain-too-deep":
|
|
201
306
|
return `${tag} [component-compass] ${d.code} at ${d.filePath} (export: ${d.exportName}, depth: ${d.depth})`;
|
|
202
|
-
case "no-deps-match-scopes":
|
|
203
|
-
return `${tag} [component-compass] ${d.code} — no workspace packages matched scopes [${d.packageScopes.join(", ")}] (${d.packageManager}, ${d.workspacePackageCount} workspace packages)`;
|
|
204
307
|
default:
|
|
205
308
|
return assertUnreachable(d);
|
|
206
309
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../src/commands/scan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,EAAE,UAAU,EAAmB,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAsB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAwB3E,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAiB;IAC7C,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAE7B,MAAM,UAAU,GACd,IAAI,CAAC,UAAU;QACf,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,+BAA+B,CAAC,CAAC;IAEtE,IAAI,GAAmB,CAAC;IACxB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;YAC/B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvB,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACvC,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,KAAK,CACP,4FAA4F,CAC7F,CAAC;QACF,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,oEAAoE;IACpE,2CAA2C;IAC3C,MAAM,QAAQ,GAAoC,EAAE,GAAG,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;IACzE,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;IACrE,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,IAAI,CAAC,cAAc;QAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;IAC1D,IAAI,IAAI,CAAC,qBAAqB,KAAK,SAAS;QAAE,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC;IAE7F,MAAM,iBAAiB,GAA+C;QACpE,QAAQ,EAAE,GAAG,CAAC,SAAS;KACxB,CAAC;IACF,IAAI,GAAG,CAAC,OAAO;QAAE,iBAAiB,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IACzD,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,iBAAiB,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC;YAC3D,CAAC,CAAC,GAAG,CAAC,YAAY;YAClB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,aAAa,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,yBAAyB,EAAE,CAAC;IAC9C,4EAA4E;IAC5E,2EAA2E;IAC3E,qEAAqE;IACrE,2BAA2B,EAAE,CAAC;IAC9B,MAAM,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAE1D,uEAAuE;IACvE,6EAA6E;IAC7E,4EAA4E;IAC5E,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEpD,0EAA0E;IAC1E,4EAA4E;IAC5E,4EAA4E;IAC5E,sEAAsE;IACtE,6EAA6E;IAC7E,sEAAsE;IACtE,8EAA8E;IAC9E,MAAM,gBAAgB,GAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,kBAAkB,CAAC;QACtC,aAAa;QACb,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,SAAS;QACT,gBAAgB;KACjB,CAAC,CAAC;IAEH,sEAAsE;IACtE,2EAA2E;IAC3E,mEAAmE;IACnE,iEAAiE;IACjE,iEAAiE;IACjE,0EAA0E;IAC1E,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEnD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC;QAC5B,IAAI,EAAE,GAAG,CAAC,SAAS;QACnB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC,mCAAmC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,yDAAyD;IACzD,MAAM,YAAY,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,0EAA0E;IAC1E,2EAA2E;IAC3E,uEAAuE;IACvE,2EAA2E;IAC3E,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IACrC,MAAM,aAAa,GAAG,cAAc,CAAC;QACnC,KAAK,EAAE,YAAY,CAAC,MAAM;QAC1B,MAAM;QACN,KAAK;QACL,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC/C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,MAAM,SAAS,GAAsB,EAAE,CAAC;IAExC,2EAA2E;IAC3E,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,aAAa,CAAC,IAAI,EAAE,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,MAAkB,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,2EAA2E;YAC3E,yEAAyE;YACzE,4BAA4B;YAC5B,GAAG,CAAC,IAAI,CAAC,wCAAwC,IAAI,KAAK,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/E,aAAa,CAAC,IAAI,EAAE,CAAC;YACrB,SAAS;QACX,CAAC;QACD,sEAAsE;QACtE,yEAAyE;QACzE,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAClC,aAAa,CAAC,IAAI,EAAE,CAAC;YACrB,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3B,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9B,2EAA2E;QAC3E,yEAAyE;QACzE,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,SAAS,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7E,SAAS,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5D,wEAAwE;YACxE,8DAA8D;YAC9D,SAAS,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;QAClH,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS;gBAC5C,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE;gBACpE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;YACtC,SAAS,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,aAAa,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,aAAa,CAAC,IAAI,EAAE,CAAC;IACrB,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAEzD,4EAA4E;IAC5E,wEAAwE;IACxE,uEAAuE;IACvE,6BAA6B;IAC7B,MAAM,YAAY,GAAG,cAAc,CAAC;QAClC,KAAK,EAAE,QAAQ,CAAC,IAAI;QACpB,MAAM;QACN,KAAK;QACL,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IACH,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,KAAK,SAAS;YAAE,SAAS;QAC/E,uEAAuE;QACvE,gEAAgE;QAChE,4DAA4D;QAC5D,MAAM,SAAS,GACb,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CACtB,MAAM,CAAC,SAAS,KAAK,SAAS;gBAC5B,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE;gBACpE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CACtC,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC1C,SAAS,CAAC;QAEZ,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CACV,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE;oBACzB,UAAU;oBACV,MAAM,EAAE,GAAG;oBACX,aAAa;oBACb,mBAAmB,EAAE,cAAc,CAAC,mBAAmB;oBACvD,WAAW,EAAE,cAAc,CAAC,WAAW;oBACvC,QAAQ,EAAE,GAAG,CAAC,SAAS;oBACvB,SAAS;oBACT,GAAG,EAAE,SAAS;oBACd,QAAQ;iBACT,CAAC,CACH,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CAAC,wCAAwC,IAAI,KAAK,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QACD,uEAAuE;QACvE,sCAAsC;QACtC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,YAAY,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,YAAY,CAAC,IAAI,EAAE,CAAC;IAEpB,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAE7B,8BAA8B;IAC9B,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;IAEtC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,cAAc,CAAC,uBAAuB,EAAE,CAAC;IACjE,MAAM,QAAQ,GAAoB,cAAc;SAC7C,kBAAkB,EAAE;SACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,MAAM,gBAAgB,GACpB,GAAG,KAAK,IAAI,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QACpE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IACL,MAAM,SAAS,GAAG,cAAc,CAAC,oBAAoB,EAAE,CAAC;IAExD,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAChG,MAAM,WAAW,GAAG,yBAAyB,CAAC,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IACzF,MAAM,YAAY,GAAG;QACnB,YAAY,EAAE,KAAK,CAAC,MAAM;QAC1B,cAAc,EAAE,mBAAmB,CAAC,WAAW,CAAC;QAChD,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;KACpC,CAAC;IACF,MAAM,UAAU,GAAG,eAAe,CAChC,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,KAAK,EACL,WAAW,EACX,WAAW,CACZ,CAAC;IAEF,MAAM,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IACjF,eAAe,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5F,MAAM,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAExC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,IAAI,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CACnD,CAAC;QACF,IAAI,aAAa;YAAE,QAAQ,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,CAAC;QACrE,QAAQ,GAAG,CAAC,CAAC;IACf,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,mBAAmB,CAAC,WAA+B;IAC1D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,WAAW;QAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAQ;IACjC,MAAM,IAAI,KAAK,CAAC,8BAA+B,CAAsB,CAAC,IAAI,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAa;IACrC,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACzD,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,uBAAuB;YAC1B,OAAO,GAAG,GAAG,wBAAwB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;QAChG,KAAK,wBAAwB;YAC3B,OAAO,GAAG,GAAG,wBAAwB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,GAAG,eAAe,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;QAC7H,KAAK,2BAA2B;YAC9B,OAAO,GAAG,GAAG,wBAAwB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,OAAO,oBAAoB,CAAC,CAAC,aAAa,EAAE,CAAC;QACpH,KAAK,gBAAgB;YACnB,OAAO,GAAG,GAAG,wBAAwB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,aAAa,CAAC,CAAC,UAAU,GAAG,CAAC;QAC3F,KAAK,gBAAgB;YACnB,OAAO,GAAG,GAAG,wBAAwB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,aAAa,CAAC,CAAC,UAAU,YAAY,CAAC,CAAC,KAAK,GAAG,CAAC;QAC9G;YACE,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
|
package/dist/config/loader.js
CHANGED
|
@@ -28,10 +28,7 @@ export async function loadConfig(configPath) {
|
|
|
28
28
|
// Pre-validation legacy field detection so we surface a migration message
|
|
29
29
|
// rather than a generic "additional property" AJV error.
|
|
30
30
|
if (parsed && typeof parsed === "object" && "manifests" in parsed) {
|
|
31
|
-
throw new ConfigError("CONFIG_INVALID", `${abs}: the \`manifests\` field was removed. Replace with \`
|
|
32
|
-
}
|
|
33
|
-
if (parsed && typeof parsed === "object" && "manifestSources" in parsed) {
|
|
34
|
-
throw new ConfigError("CONFIG_INVALID", `${abs}: the \`manifestSources\` field was removed in Phase 1 (lazy resolution). Lazy follow now handles aggregator chains automatically. Drop the field; if you have a bundled-barrel package, ship a component-compass-manifest.json at its package root. See docs/usage.md.`);
|
|
31
|
+
throw new ConfigError("CONFIG_INVALID", `${abs}: the \`manifests\` field was removed. Replace with \`include\` (array of glob patterns for files to scan). See docs/usage.md.`);
|
|
35
32
|
}
|
|
36
33
|
if (!validateConfig(parsed)) {
|
|
37
34
|
const issues = (validateConfig.errors ?? [])
|
|
@@ -40,25 +37,24 @@ export async function loadConfig(configPath) {
|
|
|
40
37
|
throw new ConfigError("CONFIG_INVALID", `Invalid config at ${abs}: ${issues}`);
|
|
41
38
|
}
|
|
42
39
|
// parsed is now narrowed to ConfigFile by the typed validator.
|
|
43
|
-
// Default
|
|
40
|
+
// Default gitignore to true; opting out is the WIP / untracked-source case.
|
|
44
41
|
const resolved = {
|
|
45
42
|
configPath: abs,
|
|
46
43
|
configDir: dirname(abs),
|
|
47
|
-
repoId: parsed.repoId,
|
|
48
|
-
packageScopes: parsed.packageScopes ?? [],
|
|
49
44
|
include: parsed.include,
|
|
50
45
|
exclude: parsed.exclude ?? [],
|
|
51
46
|
captureValues: parsed.captureValues ?? false,
|
|
52
47
|
output: parsed.output ?? "./component-compass.json",
|
|
48
|
+
gitignore: parsed.gitignore ?? true,
|
|
53
49
|
};
|
|
54
50
|
// Optional passthroughs — only assigned when present so we satisfy
|
|
55
51
|
// `exactOptionalPropertyTypes` (undefined ≠ absent).
|
|
52
|
+
if (parsed.repoId !== undefined)
|
|
53
|
+
resolved.repoId = parsed.repoId;
|
|
56
54
|
if (parsed.tsconfigPath !== undefined)
|
|
57
55
|
resolved.tsconfigPath = parsed.tsconfigPath;
|
|
58
56
|
if (parsed.aliases !== undefined)
|
|
59
57
|
resolved.aliases = parsed.aliases;
|
|
60
|
-
if (parsed.tagRules !== undefined)
|
|
61
|
-
resolved.tagRules = parsed.tagRules;
|
|
62
58
|
return resolved;
|
|
63
59
|
}
|
|
64
60
|
//# sourceMappingURL=loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,MAAM,OAAO,WAAY,SAAQ,KAAK;IACjB;IAAnB,YAAmB,IAAyC,EAAE,OAAe;QAC3E,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,SAAI,GAAJ,IAAI,CAAqC;IAE5D,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAAkB;IACjD,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IAErF,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,WAAW,CACnB,gBAAgB,EAChB,yCAAyC,GAAG,mDAAmD,CAChG,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,WAAW,CAAC,gBAAgB,EAAE,GAAG,GAAG,uBAAuB,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,0EAA0E;IAC1E,yDAAyD;IACzD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;QAClE,MAAM,IAAI,WAAW,CACnB,gBAAgB,EAChB,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -1,31 +1,18 @@
|
|
|
1
1
|
import type { ValidateFunction } from "ajv";
|
|
2
|
-
/**
|
|
3
|
-
* A single tag rule maps imports from a matching package to an arbitrary tag
|
|
4
|
-
* string surfaced on Component identities. v1 only supports matching by
|
|
5
|
-
* `packageName` (exact); the schema's `additionalProperties: false` on `match`
|
|
6
|
-
* rejects other keys with a clear validation error.
|
|
7
|
-
*/
|
|
8
|
-
export type TagRule = {
|
|
9
|
-
tag: string;
|
|
10
|
-
match: {
|
|
11
|
-
packageName: string;
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
2
|
/**
|
|
15
3
|
* Shape of a parsed component-compass.config.json after AJV validation.
|
|
16
4
|
* Mirrors schema/config.schema.json. loader.ts applies defaults for optional
|
|
17
5
|
* fields when producing ResolvedConfig.
|
|
18
6
|
*/
|
|
19
7
|
export interface ConfigFile {
|
|
20
|
-
repoId
|
|
21
|
-
packageScopes?: string[];
|
|
8
|
+
repoId?: string;
|
|
22
9
|
include: string[];
|
|
23
10
|
exclude?: string[];
|
|
24
11
|
captureValues?: boolean;
|
|
25
12
|
output?: string;
|
|
13
|
+
gitignore?: boolean;
|
|
26
14
|
$schema?: string;
|
|
27
15
|
tsconfigPath?: string;
|
|
28
16
|
aliases?: Record<string, string[]>;
|
|
29
|
-
tagRules?: TagRule[];
|
|
30
17
|
}
|
|
31
18
|
export declare const validateConfig: ValidateFunction<ConfigFile>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,sEAAsE;AACtE,6EAA6E;AAC7E,0EAA0E;AAC1E,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAA2B,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;AAE7E,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;AACzE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,sEAAsE;AACtE,6EAA6E;AAC7E,0EAA0E;AAC1E,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAA2B,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;AAE7E,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;AACzE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;AAmBhE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,cAAc,GACzB,GAAG,CAAC,OAAO,CAAa,UAAU,CAAC,CAAC"}
|
package/dist/envelope/index.d.ts
CHANGED
|
@@ -1,10 +1 @@
|
|
|
1
|
-
import type { ScanEnvelope } from "@component-compass/plugin-core";
|
|
2
|
-
export type BuildEnvelopeOptions = {
|
|
3
|
-
cwd: string;
|
|
4
|
-
cliRepoIdFlag?: string | undefined;
|
|
5
|
-
/** Path to @component-compass/cli's own package.json directory. Optional;
|
|
6
|
-
* defaults to the CLI package root resolved via `import.meta.url`. */
|
|
7
|
-
packageRoot?: string;
|
|
8
|
-
};
|
|
9
|
-
export declare function buildScanEnvelope(opts: BuildEnvelopeOptions): ScanEnvelope;
|
|
10
1
|
export declare function readToolVersion(packageRoot: string): string;
|
package/dist/envelope/index.js
CHANGED
|
@@ -1,26 +1,5 @@
|
|
|
1
1
|
import { readFileSync } from "node:fs";
|
|
2
|
-
import {
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
-
import { ulid } from "ulid";
|
|
5
|
-
import { resolveBranch, resolveCommitSha } from "./git.js";
|
|
6
|
-
import { resolveRepoId } from "./repo-id.js";
|
|
7
|
-
export function buildScanEnvelope(opts) {
|
|
8
|
-
const { value: repoId } = resolveRepoId({
|
|
9
|
-
cwd: opts.cwd,
|
|
10
|
-
cliFlag: opts.cliRepoIdFlag,
|
|
11
|
-
// biome-ignore lint/complexity/useLiteralKeys: tsconfig noPropertyAccessFromIndexSignature requires bracket access on process.env
|
|
12
|
-
envOverride: process.env["COMPONENT_COMPASS_REPO_ID"],
|
|
13
|
-
});
|
|
14
|
-
return {
|
|
15
|
-
scanId: ulid(),
|
|
16
|
-
repoId,
|
|
17
|
-
commitSha: resolveCommitSha(opts.cwd),
|
|
18
|
-
branch: resolveBranch(opts.cwd),
|
|
19
|
-
timestamp: new Date().toISOString(),
|
|
20
|
-
toolVersion: readToolVersion(opts.packageRoot ?? defaultPackageRoot()),
|
|
21
|
-
cwd: opts.cwd,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
2
|
+
import { join } from "node:path";
|
|
24
3
|
export function readToolVersion(packageRoot) {
|
|
25
4
|
try {
|
|
26
5
|
const pkg = JSON.parse(readFileSync(join(packageRoot, "package.json"), "utf8"));
|
|
@@ -30,28 +9,4 @@ export function readToolVersion(packageRoot) {
|
|
|
30
9
|
return "0.0.0";
|
|
31
10
|
}
|
|
32
11
|
}
|
|
33
|
-
/**
|
|
34
|
-
* Walk up from this module's directory until we find a `package.json` whose
|
|
35
|
-
* `name` is `@component-compass/cli`. Robust to running from `dist/` or `src/`
|
|
36
|
-
* (vitest) without hardcoding a relative depth.
|
|
37
|
-
*/
|
|
38
|
-
function defaultPackageRoot() {
|
|
39
|
-
let dir = dirname(fileURLToPath(import.meta.url));
|
|
40
|
-
for (let i = 0; i < 6; i++) {
|
|
41
|
-
const candidate = join(dir, "package.json");
|
|
42
|
-
try {
|
|
43
|
-
const parsed = JSON.parse(readFileSync(candidate, "utf8"));
|
|
44
|
-
if (parsed.name === "@component-compass/cli")
|
|
45
|
-
return dir;
|
|
46
|
-
}
|
|
47
|
-
catch {
|
|
48
|
-
// continue walking
|
|
49
|
-
}
|
|
50
|
-
const parent = resolve(dir, "..");
|
|
51
|
-
if (parent === dir)
|
|
52
|
-
break;
|
|
53
|
-
dir = parent;
|
|
54
|
-
}
|
|
55
|
-
return dirname(fileURLToPath(import.meta.url));
|
|
56
|
-
}
|
|
57
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/envelope/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/envelope/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAE7E,CAAC;QACF,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC"}
|