@component-compass/cli 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +1 -1
  2. package/dist/cli.js +12 -4
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/init.d.ts +3 -2
  5. package/dist/commands/init.js +50 -62
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/commands/no-deps-diagnostic.d.ts +15 -0
  8. package/dist/commands/no-deps-diagnostic.js +23 -0
  9. package/dist/commands/no-deps-diagnostic.js.map +1 -0
  10. package/dist/commands/scan.d.ts +1 -0
  11. package/dist/commands/scan.js +126 -82
  12. package/dist/commands/scan.js.map +1 -1
  13. package/dist/composition-rollup.d.ts +23 -0
  14. package/dist/composition-rollup.js +64 -0
  15. package/dist/composition-rollup.js.map +1 -0
  16. package/dist/config/loader.js +5 -3
  17. package/dist/config/loader.js.map +1 -1
  18. package/dist/config/schema.d.ts +1 -2
  19. package/dist/config/schema.js.map +1 -1
  20. package/dist/identity.d.ts +21 -3
  21. package/dist/identity.js +40 -3
  22. package/dist/identity.js.map +1 -1
  23. package/dist/local-index/detect-react.js +224 -47
  24. package/dist/local-index/detect-react.js.map +1 -1
  25. package/dist/local-index/index.d.ts +4 -1
  26. package/dist/local-index/index.js +30 -13
  27. package/dist/local-index/index.js.map +1 -1
  28. package/dist/manifest/barrel-parser.d.ts +20 -0
  29. package/dist/manifest/barrel-parser.js +101 -16
  30. package/dist/manifest/barrel-parser.js.map +1 -1
  31. package/dist/manifest/derived-manifest-stub.d.ts +9 -0
  32. package/dist/manifest/derived-manifest-stub.js +11 -0
  33. package/dist/manifest/derived-manifest-stub.js.map +1 -0
  34. package/dist/manifest/diagnostic-filter.d.ts +13 -0
  35. package/dist/manifest/diagnostic-filter.js +36 -0
  36. package/dist/manifest/diagnostic-filter.js.map +1 -0
  37. package/dist/manifest/lazy-resolver.d.ts +44 -0
  38. package/dist/manifest/lazy-resolver.js +532 -0
  39. package/dist/manifest/lazy-resolver.js.map +1 -0
  40. package/dist/occurrences.d.ts +17 -0
  41. package/dist/occurrences.js +97 -0
  42. package/dist/occurrences.js.map +1 -0
  43. package/dist/reporter/index.d.ts +47 -9
  44. package/dist/reporter/index.js +167 -17
  45. package/dist/reporter/index.js.map +1 -1
  46. package/dist/reporter/json.d.ts +6 -2
  47. package/dist/reporter/json.js +7 -3
  48. package/dist/reporter/json.js.map +1 -1
  49. package/dist/reporter/stdout.d.ts +2 -2
  50. package/dist/reporter/stdout.js +11 -23
  51. package/dist/reporter/stdout.js.map +1 -1
  52. package/dist/rollup.d.ts +8 -2
  53. package/dist/rollup.js +2 -3
  54. package/dist/rollup.js.map +1 -1
  55. package/dist/seeds.d.ts +41 -0
  56. package/dist/seeds.js +145 -0
  57. package/dist/seeds.js.map +1 -0
  58. package/dist/types.d.ts +0 -1
  59. package/dist/workspace/build-graph.d.ts +2 -0
  60. package/dist/workspace/build-graph.js +117 -0
  61. package/dist/workspace/build-graph.js.map +1 -0
  62. package/dist/workspace/declared-deps.d.ts +5 -0
  63. package/dist/workspace/declared-deps.js +42 -0
  64. package/dist/workspace/declared-deps.js.map +1 -0
  65. package/dist/workspace/find-owning-package.d.ts +2 -0
  66. package/dist/workspace/find-owning-package.js +49 -0
  67. package/dist/workspace/find-owning-package.js.map +1 -0
  68. package/dist/workspace/index.d.ts +4 -0
  69. package/dist/workspace/index.js +4 -0
  70. package/dist/workspace/index.js.map +1 -0
  71. package/dist/workspace/types.d.ts +46 -0
  72. package/dist/workspace/types.js +13 -0
  73. package/dist/workspace/types.js.map +1 -0
  74. package/package.json +11 -9
  75. package/schema/config.schema.json +2 -10
  76. package/dist/graph/builder.d.ts +0 -25
  77. package/dist/graph/builder.js +0 -176
  78. package/dist/graph/builder.js.map +0 -1
  79. package/dist/manifest/discovery.d.ts +0 -24
  80. package/dist/manifest/discovery.js +0 -194
  81. package/dist/manifest/discovery.js.map +0 -1
  82. package/dist/manifest/index.d.ts +0 -6
  83. package/dist/manifest/index.js +0 -98
  84. package/dist/manifest/index.js.map +0 -1
  85. package/dist/manifest/resolver.d.ts +0 -30
  86. package/dist/manifest/resolver.js +0 -136
  87. package/dist/manifest/resolver.js.map +0 -1
  88. package/dist/manifest/run-discovery.d.ts +0 -12
  89. package/dist/manifest/run-discovery.js +0 -46
  90. package/dist/manifest/run-discovery.js.map +0 -1
  91. package/dist/manifest/types.d.ts +0 -3
  92. package/dist/manifest/types.js +0 -2
  93. package/dist/manifest/types.js.map +0 -1
  94. package/dist/reporter/types.d.ts +0 -69
  95. package/dist/reporter/types.js +0 -2
  96. package/dist/reporter/types.js.map +0 -1
@@ -1,176 +0,0 @@
1
- import { serialiseComponentId, compareComponentId } from "@component-compass/plugin-core";
2
- import { relativizePath } from "../util/posix.js";
3
- export function buildGraph(opts) {
4
- const componentsById = new Map();
5
- const occurrencesByCompId = new Map();
6
- const graph = {};
7
- const filesWithUsage = new Set();
8
- const warnings = [...(opts.extraWarnings ?? [])];
9
- for (const r of opts.results) {
10
- warnings.push(...r.warnings);
11
- for (const occ of r.occurrences) {
12
- const key = serialiseComponentId(occ.componentId);
13
- const indexed = opts.index.byId.get(key);
14
- filesWithUsage.add(occ.loc.file);
15
- const outOcc = toOutputOccurrence(occ, opts.captureValues);
16
- let bucket = occurrencesByCompId.get(key);
17
- if (!bucket) {
18
- bucket = [];
19
- occurrencesByCompId.set(key, bucket);
20
- }
21
- bucket.push(outOcc);
22
- if (!componentsById.has(key)) {
23
- // Manifest-indexed components retain their full manifest metadata.
24
- // For occurrences with no byId entry — opportunistic externals
25
- // (Persona B), local-source identities (in-repo definitions), and
26
- // unknown-source identities (unmapped hyphenated tags) — synthesise
27
- // a minimal OutputComponent from the occurrence's componentId so the
28
- // emission reaches the JSON output.
29
- componentsById.set(key, indexed ? makeOutputComponent(indexed) : synthesiseOutputComponent(occ.componentId));
30
- }
31
- const fileKey = occ.loc.file;
32
- let list = graph[fileKey];
33
- if (!list) {
34
- list = [];
35
- graph[fileKey] = list;
36
- }
37
- if (!list.some((g) => serialiseComponentId(g) === key))
38
- list.push(occ.componentId);
39
- }
40
- }
41
- for (const [key, occs] of occurrencesByCompId) {
42
- const comp = componentsById.get(key);
43
- if (!comp)
44
- continue;
45
- occs.sort(compareOccurrence);
46
- comp.occurrences = occs;
47
- }
48
- const components = [...componentsById.values()].sort((a, b) => compareComponentId(componentIdOf(a), componentIdOf(b)));
49
- const root = opts.repo.root;
50
- for (const c of components)
51
- for (const o of c.occurrences)
52
- o.file = relativizePath(o.file, root);
53
- const relativisedGraph = {};
54
- for (const [file, entries] of Object.entries(graph)) {
55
- relativisedGraph[relativizePath(file, root)] = entries;
56
- }
57
- for (const w of warnings) {
58
- if ("file" in w && w.file)
59
- w.file = relativizePath(w.file, root);
60
- }
61
- const repo = { name: opts.repo.name, root: opts.repo.root };
62
- if (opts.repo.commit !== undefined)
63
- repo.commit = opts.repo.commit;
64
- const manifestsSorted = [...opts.manifests].sort((a, b) => a.package.localeCompare(b.package));
65
- return {
66
- envelope: opts.envelope,
67
- components,
68
- schemaVersion: "2.0.0",
69
- scannedAt: new Date().toISOString(),
70
- tool: opts.tool,
71
- repo,
72
- manifests: manifestsSorted,
73
- stats: {
74
- filesScanned: opts.filesScanned,
75
- filesWithUsage: filesWithUsage.size,
76
- scanDurationMs: opts.scanDurationMs,
77
- componentsDetected: components.length,
78
- totalOccurrences: components.reduce((n, c) => n + c.occurrences.length, 0),
79
- },
80
- graph: sortGraph(relativisedGraph),
81
- warnings,
82
- extensions: {},
83
- };
84
- }
85
- function makeOutputComponent(indexed) {
86
- if (indexed.kind === "custom-element") {
87
- const out = {
88
- kind: "custom-element",
89
- tagName: indexed.tagName,
90
- source: indexed.source,
91
- deprecated: indexed.deprecated,
92
- props: indexed.props,
93
- occurrences: [],
94
- extensions: {},
95
- };
96
- if (indexed.events && indexed.events.length > 0)
97
- out.events = indexed.events;
98
- if (indexed.slots && indexed.slots.length > 0)
99
- out.slots = indexed.slots;
100
- return out;
101
- }
102
- return {
103
- kind: indexed.kind,
104
- source: indexed.source,
105
- export: indexed.export,
106
- deprecated: indexed.deprecated,
107
- props: indexed.props,
108
- occurrences: [],
109
- extensions: {},
110
- };
111
- }
112
- function synthesiseOutputComponent(id) {
113
- if (id.kind === "custom-element") {
114
- return {
115
- kind: "custom-element",
116
- tagName: id.tagName,
117
- source: id.source,
118
- deprecated: false,
119
- props: [],
120
- occurrences: [],
121
- extensions: {},
122
- };
123
- }
124
- return {
125
- kind: id.kind,
126
- source: id.source,
127
- export: id.export,
128
- deprecated: false,
129
- props: [],
130
- occurrences: [],
131
- extensions: {},
132
- };
133
- }
134
- function componentIdOf(c) {
135
- if (c.kind === "custom-element")
136
- return { kind: "custom-element", tagName: c.tagName, source: c.source };
137
- return { kind: c.kind, export: c.export, source: c.source };
138
- }
139
- function toOutputOccurrence(occ, captureValues) {
140
- const props = {};
141
- for (const p of occ.props) {
142
- if (captureValues && p.literalValue !== undefined && !p.isDynamic) {
143
- props[p.name] = p.literalValue;
144
- }
145
- else {
146
- props[p.name] = null;
147
- }
148
- }
149
- const out = {
150
- file: occ.loc.file,
151
- line: occ.loc.line,
152
- column: occ.loc.column,
153
- via: occ.via,
154
- props,
155
- };
156
- return out;
157
- }
158
- function compareOccurrence(a, b) {
159
- if (a.file !== b.file)
160
- return a.file.localeCompare(b.file);
161
- if (a.line !== b.line)
162
- return a.line - b.line;
163
- return a.column - b.column;
164
- }
165
- function sortGraph(g) {
166
- const keys = Object.keys(g).sort();
167
- const out = {};
168
- for (const k of keys) {
169
- const arr = g[k];
170
- if (!arr)
171
- continue;
172
- out[k] = [...arr].sort(compareComponentId);
173
- }
174
- return out;
175
- }
176
- //# sourceMappingURL=builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/graph/builder.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import type { ResolvedManifest } from "./resolver.js";
2
- export type DiscoverManifestOptions = {
3
- repoRoot: string;
4
- packageName: string;
5
- manifestSources: Record<string, string[]>;
6
- };
7
- export type DiscoveryDiagnostic = {
8
- code: "no-manifest-found";
9
- packageName: string;
10
- } | {
11
- code: "untraceable-barrel";
12
- packageName: string;
13
- resolvedFile: string;
14
- } | {
15
- code: "cycle-detected";
16
- packageName: string;
17
- file: string;
18
- };
19
- export type DiscoveryResult = {
20
- manifest: ResolvedManifest | null;
21
- diagnostics: DiscoveryDiagnostic[];
22
- };
23
- export declare function discoverManifest(opts: DiscoverManifestOptions): ResolvedManifest | null;
24
- export declare function discoverManifestWithDiagnostics(opts: DiscoverManifestOptions): DiscoveryResult;
@@ -1,194 +0,0 @@
1
- import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
2
- import { createRequire } from "node:module";
3
- import { dirname, isAbsolute, join, resolve } from "node:path";
4
- import picomatch from "picomatch";
5
- import { validateManifest } from "@component-compass/plugin-core";
6
- import { parseBarrelTopLevel } from "./barrel-parser.js";
7
- export function discoverManifest(opts) {
8
- return discoverManifestWithDiagnostics(opts).manifest;
9
- }
10
- export function discoverManifestWithDiagnostics(opts) {
11
- const visited = new Set();
12
- const diagnostics = [];
13
- const manifest = walk(opts.packageName, opts.repoRoot, visited, diagnostics, opts.manifestSources);
14
- if (!manifest) {
15
- diagnostics.push({ code: "no-manifest-found", packageName: opts.packageName });
16
- }
17
- return { manifest, diagnostics };
18
- }
19
- function walk(pkgName, repoRoot, visited, diagnostics, manifestSources) {
20
- if (visited.has(pkgName)) {
21
- diagnostics.push({ code: "cycle-detected", packageName: pkgName, file: pkgName });
22
- return null;
23
- }
24
- visited.add(pkgName);
25
- // 1. Root manifest.
26
- const root = readRootManifest(pkgName, repoRoot);
27
- if (root)
28
- return root;
29
- // 2. Barrel auto-follow.
30
- const entryFile = resolvePackageEntry(pkgName, repoRoot);
31
- if (entryFile) {
32
- const source = safeReadFile(entryFile);
33
- if (source !== undefined) {
34
- const reExports = parseBarrelTopLevel(source);
35
- if (reExports.length === 0) {
36
- diagnostics.push({
37
- code: "untraceable-barrel",
38
- packageName: pkgName,
39
- resolvedFile: entryFile,
40
- });
41
- }
42
- for (const re of reExports) {
43
- const fromPkg = packageNameOf(re.from);
44
- if (!fromPkg)
45
- continue;
46
- const found = walk(fromPkg, repoRoot, visited, diagnostics, manifestSources);
47
- if (found)
48
- return found;
49
- }
50
- }
51
- }
52
- // 3. manifestSources fallback (only consulted if pkgName explicitly listed).
53
- const patterns = manifestSources[pkgName];
54
- if (patterns && patterns.length > 0) {
55
- for (const installed of installedPackagesMatching(patterns, repoRoot)) {
56
- const m = readRootManifest(installed, repoRoot);
57
- if (m)
58
- return m;
59
- }
60
- }
61
- return null;
62
- }
63
- function readRootManifest(pkgName, repoRoot) {
64
- const pkgDir = packageRootDir(pkgName, repoRoot);
65
- if (!pkgDir)
66
- return null;
67
- const cemPath = join(pkgDir, "custom-elements.json");
68
- if (existsSync(cemPath)) {
69
- try {
70
- const raw = readFileSync(cemPath, "utf8");
71
- const parsed = JSON.parse(raw);
72
- const pkgVersion = readPackageVersion(pkgDir);
73
- const out = {
74
- kind: "cem",
75
- cem: parsed,
76
- packageName: pkgName,
77
- path: cemPath,
78
- source: "npm",
79
- };
80
- if (pkgVersion !== undefined)
81
- out.packageVersion = pkgVersion;
82
- return out;
83
- }
84
- catch {
85
- return null;
86
- }
87
- }
88
- const ccmPath = join(pkgDir, "component-compass-manifest.json");
89
- if (existsSync(ccmPath)) {
90
- try {
91
- const raw = readFileSync(ccmPath, "utf8");
92
- const parsed = JSON.parse(raw);
93
- const v = validateManifest(parsed);
94
- if (!v.ok)
95
- return null;
96
- const pkgVersion = readPackageVersion(pkgDir);
97
- const out = {
98
- kind: "component-compass-manifest",
99
- manifest: v.data,
100
- packageName: pkgName,
101
- path: ccmPath,
102
- source: "npm",
103
- };
104
- if (pkgVersion !== undefined)
105
- out.packageVersion = pkgVersion;
106
- return out;
107
- }
108
- catch {
109
- return null;
110
- }
111
- }
112
- return null;
113
- }
114
- function packageRootDir(pkgName, repoRoot) {
115
- const requireFromRoot = createRequire(resolve(repoRoot, "_"));
116
- try {
117
- const pkgJsonPath = requireFromRoot.resolve(`${pkgName}/package.json`);
118
- return dirname(pkgJsonPath);
119
- }
120
- catch {
121
- return null;
122
- }
123
- }
124
- function resolvePackageEntry(pkgName, repoRoot) {
125
- const requireFromRoot = createRequire(resolve(repoRoot, "_"));
126
- try {
127
- return requireFromRoot.resolve(pkgName);
128
- }
129
- catch {
130
- return null;
131
- }
132
- }
133
- function readPackageVersion(pkgDir) {
134
- try {
135
- const pkg = JSON.parse(readFileSync(join(pkgDir, "package.json"), "utf8"));
136
- return pkg.version;
137
- }
138
- catch {
139
- return undefined;
140
- }
141
- }
142
- function safeReadFile(path) {
143
- try {
144
- if (!statSync(path).isFile())
145
- return undefined;
146
- return readFileSync(path, "utf8");
147
- }
148
- catch {
149
- return undefined;
150
- }
151
- }
152
- function packageNameOf(specifier) {
153
- if (!specifier || specifier.startsWith(".") || isAbsolute(specifier))
154
- return null;
155
- if (specifier.startsWith("@")) {
156
- const parts = specifier.split("/");
157
- if (parts.length < 2)
158
- return null;
159
- return `${parts[0]}/${parts[1]}`;
160
- }
161
- const slash = specifier.indexOf("/");
162
- return slash === -1 ? specifier : specifier.slice(0, slash);
163
- }
164
- function installedPackagesMatching(patterns, repoRoot) {
165
- const matchers = patterns.map((p) => picomatch(p));
166
- const out = [];
167
- const nm = join(repoRoot, "node_modules");
168
- if (!existsSync(nm))
169
- return [];
170
- for (const top of safeReadDir(nm)) {
171
- if (top.startsWith("@")) {
172
- const scoped = join(nm, top);
173
- for (const sub of safeReadDir(scoped)) {
174
- const name = `${top}/${sub}`;
175
- if (matchers.some((m) => m(name)))
176
- out.push(name);
177
- }
178
- }
179
- else {
180
- if (matchers.some((m) => m(top)))
181
- out.push(top);
182
- }
183
- }
184
- return out;
185
- }
186
- function safeReadDir(path) {
187
- try {
188
- return readdirSync(path);
189
- }
190
- catch {
191
- return [];
192
- }
193
- }
194
- //# sourceMappingURL=discovery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/manifest/discovery.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { ResolvedManifest } from "./resolver.js";
2
- import type { ComponentIndex } from "./types.js";
3
- import type { Warning } from "../types.js";
4
- export declare function buildComponentIndex(manifests: ResolvedManifest[]): ComponentIndex & {
5
- warnings: Warning[];
6
- };
@@ -1,98 +0,0 @@
1
- import { externalPackageOf, serialiseComponentId, emptyLocalIndex } from "@component-compass/plugin-core";
2
- export function buildComponentIndex(manifests) {
3
- const byId = new Map();
4
- const byTag = new Map();
5
- const byImport = new Map();
6
- const byNativeSpecifier = new Map();
7
- const warnings = [];
8
- for (const m of manifests) {
9
- if (m.kind === "cem")
10
- absorbCemCompIdx(m, byId, byTag, byImport, byNativeSpecifier, warnings);
11
- else
12
- absorbCcmCompIdx(m, byId, byImport);
13
- }
14
- return { byId, byTag, byImport, byNativeSpecifier, local: emptyLocalIndex, warnings };
15
- }
16
- function absorbCemCompIdx(m, byId, byTag, byImport, byNativeSpecifier, warnings) {
17
- const modules = (m.cem.modules ?? []);
18
- for (const mod of modules) {
19
- for (const decl of mod.declarations ?? []) {
20
- if (!decl.customElement || !decl.tagName || !decl.name)
21
- continue;
22
- const tagName = decl.tagName;
23
- if (byTag.has(tagName)) {
24
- warnings.push({
25
- code: "MANIFEST_TAG_COLLISION",
26
- message: `Tag <${tagName}> declared in multiple manifests; using existing definition.`,
27
- package: m.packageName,
28
- });
29
- continue;
30
- }
31
- const props = [];
32
- for (const mem of decl.members ?? []) {
33
- if (mem.kind !== "field" || mem.privacy === "private")
34
- continue;
35
- if (!mem.name)
36
- continue;
37
- const p = { name: mem.name };
38
- if (mem.type?.text !== undefined)
39
- p.type = mem.type.text;
40
- if (mem.deprecated !== undefined)
41
- p.deprecated = mem.deprecated;
42
- props.push(p);
43
- }
44
- const events = [];
45
- for (const e of decl.events ?? []) {
46
- if (!e.name)
47
- continue;
48
- const ev = { name: e.name };
49
- if (e.deprecated !== undefined)
50
- ev.deprecated = e.deprecated;
51
- events.push(ev);
52
- }
53
- const imports = decl.componentCompass?.imports ?? {};
54
- const entry = {
55
- kind: "custom-element",
56
- tagName,
57
- source: { type: "external", package: m.packageName },
58
- deprecated: decl.deprecated ?? false,
59
- props,
60
- events,
61
- slots: (decl.slots ?? []).map((s) => ({ name: s.name ?? "" })),
62
- className: decl.name,
63
- imports,
64
- };
65
- const key = serialiseComponentId({ kind: "custom-element", tagName, source: { type: "external", package: m.packageName } });
66
- byId.set(key, entry);
67
- byTag.set(tagName, entry);
68
- for (const n of imports.native ?? []) {
69
- for (const s of specifierForms(n.specifier))
70
- byNativeSpecifier.set(s, entry);
71
- }
72
- for (const r of imports.react ?? []) {
73
- if (!r.export)
74
- continue;
75
- for (const s of specifierForms(r.specifier)) {
76
- byImport.set(`${s}::${r.export}`, entry);
77
- }
78
- }
79
- }
80
- }
81
- }
82
- function absorbCcmCompIdx(m, byId, byImport) {
83
- for (const c of m.manifest.components) {
84
- if (c.kind === "custom-element")
85
- continue;
86
- if (c.source.type !== "external")
87
- continue;
88
- const entry = c;
89
- const key = serialiseComponentId({ kind: c.kind, export: c.export, source: c.source });
90
- byId.set(key, entry);
91
- byImport.set(`${externalPackageOf(c.source)}::${c.export}`, entry);
92
- }
93
- }
94
- function specifierForms(specifier) {
95
- const stripped = specifier.replace(/\.(js|mjs|cjs)$/, "");
96
- return stripped === specifier ? [specifier] : [specifier, stripped];
97
- }
98
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import { type ManifestFile } from "@component-compass/plugin-core";
2
- export declare class ManifestError extends Error {
3
- code: "MANIFEST_UNRESOLVABLE";
4
- constructor(code: "MANIFEST_UNRESOLVABLE", message: string);
5
- }
6
- export type ResolvedCemManifest = {
7
- kind: "cem";
8
- cem: {
9
- schemaVersion?: string;
10
- modules?: unknown[];
11
- } & Record<string, unknown>;
12
- /** npm package name when `source === "npm"`; the literal manifest entry (relative or absolute path) when `source === "file"`. */
13
- packageName: string;
14
- packageVersion?: string;
15
- /** Absolute filesystem path of the loaded manifest. */
16
- path: string;
17
- source: "npm" | "file";
18
- };
19
- export type ResolvedComponentCompassManifest = {
20
- kind: "component-compass-manifest";
21
- manifest: ManifestFile;
22
- /** npm package name when `source === "npm"`; the literal manifest entry (relative or absolute path) when `source === "file"`. */
23
- packageName: string;
24
- packageVersion?: string;
25
- /** Absolute filesystem path of the loaded manifest. */
26
- path: string;
27
- source: "npm" | "file";
28
- };
29
- export type ResolvedManifest = ResolvedCemManifest | ResolvedComponentCompassManifest;
30
- export declare function resolveManifest(entry: string, configDir: string): Promise<ResolvedManifest>;