@component-compass/parser-vue 0.0.1 → 0.0.2
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/index.js +32 -8
- package/dist/index.js.map +1 -1
- package/dist/script-imports.d.ts +2 -0
- package/dist/script-imports.js +10 -2
- package/dist/script-imports.js.map +1 -1
- package/dist/walk-template.d.ts +11 -2
- package/dist/walk-template.js +61 -27
- package/dist/walk-template.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { basename, extname } from "node:path";
|
|
2
|
-
import { serialiseComponentId
|
|
2
|
+
import { serialiseComponentId } from "@component-compass/plugin-core";
|
|
3
3
|
import { asWrapperId } from "@component-compass/plugin-core";
|
|
4
4
|
import { posixPath } from "@component-compass/ast-utils";
|
|
5
5
|
import { splitSfc } from "./parse-sfc.js";
|
|
@@ -33,6 +33,7 @@ export const vuePlugin = {
|
|
|
33
33
|
}));
|
|
34
34
|
let imports = [];
|
|
35
35
|
let importSpecs = [];
|
|
36
|
+
let sideEffectSources = [];
|
|
36
37
|
if (parts.scriptSource) {
|
|
37
38
|
const scriptResult = extractScriptImports({
|
|
38
39
|
file,
|
|
@@ -41,8 +42,15 @@ export const vuePlugin = {
|
|
|
41
42
|
});
|
|
42
43
|
imports = scriptResult.imports;
|
|
43
44
|
importSpecs = scriptResult.importSpecs;
|
|
45
|
+
sideEffectSources = scriptResult.sideEffectSources;
|
|
44
46
|
warnings.push(...scriptResult.warnings);
|
|
45
47
|
}
|
|
48
|
+
// Side-effect imports (`import "pkg"`) carry no binding but signal that
|
|
49
|
+
// the SFC depends on the package's runtime; prime the lazy resolver so
|
|
50
|
+
// template tag references (`<x-button>`) find the leaf's CEM.
|
|
51
|
+
for (const source of sideEffectSources) {
|
|
52
|
+
ctx.resolveLazyManifest(file, source, "");
|
|
53
|
+
}
|
|
46
54
|
if (!parts.templateSource) {
|
|
47
55
|
return { occurrences: [], wrappers: [], imports, warnings };
|
|
48
56
|
}
|
|
@@ -52,12 +60,12 @@ export const vuePlugin = {
|
|
|
52
60
|
// Track imports that did NOT match a manifest entry for opportunistic classification.
|
|
53
61
|
const unmappedBindings = new Map();
|
|
54
62
|
for (const spec of importSpecs) {
|
|
55
|
-
const
|
|
56
|
-
if (
|
|
63
|
+
const hit = ctx.resolveLazyManifest(file, spec.source, spec.imported);
|
|
64
|
+
if (hit?.matched?.kind === "vue-component") {
|
|
57
65
|
const binding = {
|
|
58
66
|
kind: "vue-direct",
|
|
59
|
-
package:
|
|
60
|
-
export:
|
|
67
|
+
package: hit.leafPackage,
|
|
68
|
+
export: hit.matched.export,
|
|
61
69
|
specifier: spec.source,
|
|
62
70
|
importName: spec.imported,
|
|
63
71
|
};
|
|
@@ -65,12 +73,28 @@ export const vuePlugin = {
|
|
|
65
73
|
templateBindings.set(form, binding);
|
|
66
74
|
}
|
|
67
75
|
}
|
|
68
|
-
else if (
|
|
69
|
-
//
|
|
76
|
+
else if (hit) {
|
|
77
|
+
// Resolver landed on a leaf (could be CE / RC / no match) — track as
|
|
78
|
+
// opaque vue-unmapped with leafPackage so the template walker emits a
|
|
79
|
+
// vue-component occurrence attributed to that leaf.
|
|
80
|
+
const unmapped = {
|
|
81
|
+
kind: "vue-unmapped",
|
|
82
|
+
importedName: spec.imported,
|
|
83
|
+
specifier: spec.source,
|
|
84
|
+
leafPackage: hit.leafPackage,
|
|
85
|
+
};
|
|
86
|
+
for (const form of vueTagForms(spec.local)) {
|
|
87
|
+
unmappedBindings.set(form, unmapped);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
// Specifier did not resolve — fall back to local-component detection
|
|
92
|
+
// in walk-template via classifyImportOrigin.
|
|
70
93
|
const unmapped = {
|
|
71
94
|
kind: "vue-unmapped",
|
|
72
95
|
importedName: spec.imported,
|
|
73
96
|
specifier: spec.source,
|
|
97
|
+
leafPackage: null,
|
|
74
98
|
};
|
|
75
99
|
for (const form of vueTagForms(spec.local)) {
|
|
76
100
|
unmappedBindings.set(form, unmapped);
|
|
@@ -78,7 +102,7 @@ export const vuePlugin = {
|
|
|
78
102
|
}
|
|
79
103
|
}
|
|
80
104
|
const lineOffset = source.slice(0, parts.templateOffset ?? 0).split("\n").length - 1;
|
|
81
|
-
const occurrences = walkVueTemplate(file, parts.templateSource, ctx.
|
|
105
|
+
const occurrences = walkVueTemplate(file, parts.templateSource, ctx.lookupByTag, ctx.localIndex, templateBindings, ctx.config.captureValues, lineOffset, unmappedBindings, ctx.repoRoot);
|
|
82
106
|
if (occurrences.length === 0) {
|
|
83
107
|
return { occurrences: [], wrappers: [], imports, warnings };
|
|
84
108
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/script-imports.d.ts
CHANGED
|
@@ -15,6 +15,8 @@ export type ExtractResult = {
|
|
|
15
15
|
imports: FileImport[];
|
|
16
16
|
/** Structured imports carrying both local + imported names; used for resolver lookups. */
|
|
17
17
|
importSpecs: ImportSpec[];
|
|
18
|
+
/** Side-effect import specifiers (`import "pkg"`) — used by the parser to prime the lazy resolver's leaf cache for tag-only template consumers. */
|
|
19
|
+
sideEffectSources: string[];
|
|
18
20
|
warnings: Warning[];
|
|
19
21
|
};
|
|
20
22
|
export declare function extractScriptImports(opts: ExtractOptions): ExtractResult;
|
package/dist/script-imports.js
CHANGED
|
@@ -3,6 +3,7 @@ import { posixPath, errorMessage, traverse } from "@component-compass/ast-utils"
|
|
|
3
3
|
export function extractScriptImports(opts) {
|
|
4
4
|
const imports = [];
|
|
5
5
|
const importSpecs = [];
|
|
6
|
+
const sideEffectSources = [];
|
|
6
7
|
const warnings = [];
|
|
7
8
|
let ast;
|
|
8
9
|
try {
|
|
@@ -20,7 +21,7 @@ export function extractScriptImports(opts) {
|
|
|
20
21
|
// line: 0 means "unknown" — Babel didn't surface a location for this error.
|
|
21
22
|
line: 0,
|
|
22
23
|
});
|
|
23
|
-
return { imports, importSpecs, warnings };
|
|
24
|
+
return { imports, importSpecs, sideEffectSources, warnings };
|
|
24
25
|
}
|
|
25
26
|
const recovered = ast.errors ?? [];
|
|
26
27
|
for (const err of recovered) {
|
|
@@ -36,6 +37,13 @@ export function extractScriptImports(opts) {
|
|
|
36
37
|
traverse(ast, {
|
|
37
38
|
ImportDeclaration(path) {
|
|
38
39
|
const source = path.node.source.value;
|
|
40
|
+
if (path.node.specifiers.length === 0) {
|
|
41
|
+
// Side-effect import: `import "pkg"`. Carried out so the Vue plugin
|
|
42
|
+
// can prime the lazy resolver's leaf cache for template-only
|
|
43
|
+
// (tag-only) consumers. No binding to track.
|
|
44
|
+
sideEffectSources.push(source);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
39
47
|
for (const spec of path.node.specifiers) {
|
|
40
48
|
if (spec.type !== "ImportSpecifier" &&
|
|
41
49
|
spec.type !== "ImportDefaultSpecifier" &&
|
|
@@ -67,6 +75,6 @@ export function extractScriptImports(opts) {
|
|
|
67
75
|
}
|
|
68
76
|
},
|
|
69
77
|
});
|
|
70
|
-
return { imports, importSpecs, warnings };
|
|
78
|
+
return { imports, importSpecs, sideEffectSources, warnings };
|
|
71
79
|
}
|
|
72
80
|
//# sourceMappingURL=script-imports.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-imports.js","sourceRoot":"","sources":["../src/script-imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"script-imports.js","sourceRoot":"","sources":["../src/script-imports.ts"],"names":[],"mappings":"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"}
|
package/dist/walk-template.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { LocalDefinitionIndex, LookupByTag, Occurrence } from "@component-compass/plugin-core";
|
|
2
2
|
export type VueDirectBinding = {
|
|
3
3
|
kind: "vue-direct";
|
|
4
4
|
package: string;
|
|
@@ -12,5 +12,14 @@ export type VueUnmappedBinding = {
|
|
|
12
12
|
importedName: string;
|
|
13
13
|
/** The import specifier (module path). */
|
|
14
14
|
specifier: string;
|
|
15
|
+
/**
|
|
16
|
+
* Non-null when the lazy resolver landed on a leaf package without a
|
|
17
|
+
* manifest entry for `importedName` — in that case the template walker
|
|
18
|
+
* attributes the opaque external occurrence to this leaf rather than
|
|
19
|
+
* re-running origin classification on the user-written aggregator
|
|
20
|
+
* specifier. Null when the specifier did not resolve via the lazy
|
|
21
|
+
* resolver (relative path, alias, or unresolvable bare import).
|
|
22
|
+
*/
|
|
23
|
+
leafPackage: string | null;
|
|
15
24
|
};
|
|
16
|
-
export declare function walkVueTemplate(file: string, template: string,
|
|
25
|
+
export declare function walkVueTemplate(file: string, template: string, lookupByTag: LookupByTag, localIndex: LocalDefinitionIndex, templateBindings: Map<string, VueDirectBinding>, captureValues: boolean, lineOffset: number, unmappedBindings?: Map<string, VueUnmappedBinding>, repoRoot?: string): Occurrence[];
|
package/dist/walk-template.js
CHANGED
|
@@ -1,55 +1,89 @@
|
|
|
1
1
|
import { parseFragment } from "parse5";
|
|
2
2
|
import { asTagName, externalPackageOf } from "@component-compass/plugin-core";
|
|
3
3
|
import { posixPath, isElement, hasChildren, classifyImportOrigin } from "@component-compass/ast-utils";
|
|
4
|
-
export function walkVueTemplate(file, template,
|
|
4
|
+
export function walkVueTemplate(file, template, lookupByTag, localIndex, templateBindings, captureValues, lineOffset, unmappedBindings, repoRoot) {
|
|
5
5
|
const occurrences = [];
|
|
6
6
|
const doc = parseFragment(template, { sourceCodeLocationInfo: true });
|
|
7
|
+
// Phase 2: parent stack maintains the lexical chain of tracked elements.
|
|
8
|
+
// Vue scoped slots (`v-slot` on a host element) are deliberately treated as
|
|
9
|
+
// lexical — `<DataLoader v-slot="d"><Card/></DataLoader>` records `<Card>`'s
|
|
10
|
+
// parent as `<DataLoader>` because parse5 sees the slot content as a direct
|
|
11
|
+
// child of the host element. No render-prop guard is needed here (unlike the
|
|
12
|
+
// React walker), per the Phase 2 spec's parser-vue concerns.
|
|
13
|
+
const parentStack = [];
|
|
14
|
+
/** Push the occurrence onto the array, stamping parentRef + depth from the
|
|
15
|
+
* current parent stack. Returns the new index so the caller can later push
|
|
16
|
+
* this element onto the stack as a parent for its children. */
|
|
17
|
+
function emit(occurrence) {
|
|
18
|
+
const top = parentStack[parentStack.length - 1];
|
|
19
|
+
if (top)
|
|
20
|
+
occurrence.parentRef = top.idx;
|
|
21
|
+
occurrence.depth = parentStack.length;
|
|
22
|
+
const idx = occurrences.length;
|
|
23
|
+
occurrences.push(occurrence);
|
|
24
|
+
return idx;
|
|
25
|
+
}
|
|
7
26
|
function visit(node) {
|
|
8
27
|
if (isElement(node)) {
|
|
9
28
|
const rawTag = node.tagName;
|
|
10
|
-
const indexedWc =
|
|
29
|
+
const indexedWc = lookupByTag(rawTag);
|
|
30
|
+
let pushedIdx;
|
|
11
31
|
if (indexedWc) {
|
|
12
|
-
emitWcOccurrence(node, indexedWc);
|
|
32
|
+
pushedIdx = emitWcOccurrence(node, indexedWc);
|
|
13
33
|
}
|
|
14
34
|
else {
|
|
15
35
|
const direct = templateBindings.get(rawTag);
|
|
16
36
|
if (direct) {
|
|
17
|
-
emitVueDirectOccurrence(node, direct);
|
|
37
|
+
pushedIdx = emitVueDirectOccurrence(node, direct);
|
|
18
38
|
}
|
|
19
39
|
else if (unmappedBindings && repoRoot) {
|
|
20
40
|
const unmapped = unmappedBindings.get(rawTag);
|
|
21
41
|
if (unmapped) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
});
|
|
26
|
-
if (origin.type === "external") {
|
|
27
|
-
emitOpportunisticVueOccurrence(node, unmapped, origin.package);
|
|
42
|
+
if (unmapped.leafPackage) {
|
|
43
|
+
// Resolver knew the leaf — emit external with that package.
|
|
44
|
+
pushedIdx = emitOpportunisticVueOccurrence(node, unmapped, unmapped.leafPackage);
|
|
28
45
|
}
|
|
29
|
-
else
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
46
|
+
else {
|
|
47
|
+
// Specifier didn't resolve via the lazy resolver — fall back to
|
|
48
|
+
// local-component detection via classifyImportOrigin against the
|
|
49
|
+
// user-written specifier.
|
|
50
|
+
const origin = classifyImportOrigin(unmapped.specifier, {
|
|
51
|
+
repoRoot,
|
|
52
|
+
fromFile: file,
|
|
53
|
+
});
|
|
54
|
+
if (origin.type === "local") {
|
|
55
|
+
const localDefs = localIndex.byPath.get(origin.filePath);
|
|
56
|
+
const matched = localDefs?.find((d) => unmapped.importedName === "default"
|
|
57
|
+
? d.isDefault
|
|
58
|
+
: d.exportName === unmapped.importedName && !d.isDefault);
|
|
59
|
+
if (matched && matched.componentId.kind === "vue-component") {
|
|
60
|
+
pushedIdx = emitLocalVueOccurrence(node, unmapped, matched.componentId);
|
|
61
|
+
}
|
|
62
|
+
// Local miss → skip silently.
|
|
36
63
|
}
|
|
37
|
-
//
|
|
64
|
+
// origin.type === "external" or "unresolved" without a leaf hit → skip silently.
|
|
38
65
|
}
|
|
39
|
-
// unresolved → skip silently
|
|
40
66
|
}
|
|
41
67
|
else if (rawTag.includes("-")) {
|
|
42
68
|
// Hyphenated tag not in index: emit unknown-source custom-element
|
|
43
|
-
emitUnknownWcOccurrence(node);
|
|
69
|
+
pushedIdx = emitUnknownWcOccurrence(node);
|
|
44
70
|
}
|
|
45
71
|
}
|
|
46
|
-
else if (rawTag.includes("-")
|
|
72
|
+
else if (rawTag.includes("-")) {
|
|
47
73
|
// No unmapped bindings provided but tag is hyphenated and not in index
|
|
48
|
-
emitUnknownWcOccurrence(node);
|
|
74
|
+
pushedIdx = emitUnknownWcOccurrence(node);
|
|
49
75
|
}
|
|
50
76
|
}
|
|
77
|
+
// Tracked elements push themselves as the lexical parent for their
|
|
78
|
+
// children; non-tracked elements (plain HTML, untracked components)
|
|
79
|
+
// skip the push so descendants attribute to the next tracked ancestor
|
|
80
|
+
// (parent-transparency rule).
|
|
81
|
+
if (pushedIdx !== undefined)
|
|
82
|
+
parentStack.push({ idx: pushedIdx, node });
|
|
51
83
|
for (const child of node.childNodes)
|
|
52
84
|
visit(child);
|
|
85
|
+
if (pushedIdx !== undefined)
|
|
86
|
+
parentStack.pop();
|
|
53
87
|
}
|
|
54
88
|
else if (hasChildren(node)) {
|
|
55
89
|
for (const child of node.childNodes)
|
|
@@ -60,7 +94,7 @@ export function walkVueTemplate(file, template, index, templateBindings, capture
|
|
|
60
94
|
const tag = asTagName(node.tagName);
|
|
61
95
|
const { props, events } = readAttrs(node, captureValues);
|
|
62
96
|
const loc = node.sourceCodeLocation;
|
|
63
|
-
|
|
97
|
+
return emit({
|
|
64
98
|
componentId: { kind: "custom-element", tagName: tag, source: { type: "external", package: externalPackageOf(indexed.source) } },
|
|
65
99
|
loc: {
|
|
66
100
|
file: posixPath(file),
|
|
@@ -80,7 +114,7 @@ export function walkVueTemplate(file, template, index, templateBindings, capture
|
|
|
80
114
|
specifier: binding.specifier,
|
|
81
115
|
import: binding.importedName,
|
|
82
116
|
};
|
|
83
|
-
|
|
117
|
+
return emit({
|
|
84
118
|
componentId: { kind: "vue-component", export: binding.importedName, source: { type: "external", package: pkg } },
|
|
85
119
|
loc: {
|
|
86
120
|
file: posixPath(file),
|
|
@@ -100,7 +134,7 @@ export function walkVueTemplate(file, template, index, templateBindings, capture
|
|
|
100
134
|
specifier: binding.specifier,
|
|
101
135
|
import: binding.importedName,
|
|
102
136
|
};
|
|
103
|
-
|
|
137
|
+
return emit({
|
|
104
138
|
componentId,
|
|
105
139
|
loc: {
|
|
106
140
|
file: posixPath(file),
|
|
@@ -116,7 +150,7 @@ export function walkVueTemplate(file, template, index, templateBindings, capture
|
|
|
116
150
|
const tag = asTagName(node.tagName);
|
|
117
151
|
const { props, events } = readAttrs(node, captureValues);
|
|
118
152
|
const loc = node.sourceCodeLocation;
|
|
119
|
-
|
|
153
|
+
return emit({
|
|
120
154
|
componentId: { kind: "custom-element", tagName: tag, source: { type: "unknown" } },
|
|
121
155
|
loc: {
|
|
122
156
|
file: posixPath(file),
|
|
@@ -136,7 +170,7 @@ export function walkVueTemplate(file, template, index, templateBindings, capture
|
|
|
136
170
|
specifier: binding.specifier,
|
|
137
171
|
import: binding.importName,
|
|
138
172
|
};
|
|
139
|
-
|
|
173
|
+
return emit({
|
|
140
174
|
componentId: { kind: "vue-component", export: binding.export, source: { type: "external", package: binding.package } },
|
|
141
175
|
loc: {
|
|
142
176
|
file: posixPath(file),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walk-template.js","sourceRoot":"","sources":["../src/walk-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"walk-template.js","sourceRoot":"","sources":["../src/walk-template.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@component-compass/parser-vue",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "Consumer-scan parser for Vue Single-File Components. Detects component usages in .vue files.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@babel/parser": "^7.29.0",
|
|
31
|
-
"@component-compass/ast-utils": "^0.0.
|
|
32
|
-
"@component-compass/plugin-core": "^0.0.
|
|
31
|
+
"@component-compass/ast-utils": "^0.0.2",
|
|
32
|
+
"@component-compass/plugin-core": "^0.0.2",
|
|
33
33
|
"@vue/compiler-sfc": "^3.5.33",
|
|
34
34
|
"parse5": "^8.0.0"
|
|
35
35
|
},
|