@component-compass/parser-vue 0.1.5 → 0.1.7

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.
@@ -13,11 +13,10 @@ export type EmitVueTemplateOpts = {
13
13
  source: string;
14
14
  wrapper: VueParseWrapper;
15
15
  fileBuilder: FileBuilder;
16
- captureValues: boolean;
17
16
  /**
18
17
  * Optional lazy-manifest priming hook. Vue SFCs commonly side-effect-import
19
18
  * a WC's register entrypoint (`import "@pkg/components/button"`) so its
20
- * template tag references (`<pie-button>`) can be resolved later. Calling
19
+ * template tag references (`<x-button>`) can be resolved later. Calling
21
20
  * `resolveLazyManifest` for each side-effect source primes the engine's
22
21
  * tagIndex / CEM lookup pipeline. Optional — when undefined the priming
23
22
  * loop is skipped (acceptable for synthetic test fixtures).
@@ -65,7 +65,7 @@ export function emitVueTemplate(opts) {
65
65
  }
66
66
  // Side-effect imports (`import "pkg"`) carry no binding but signal that the
67
67
  // SFC depends on the package's runtime; prime the lazy resolver so template
68
- // tag references (`<pie-button>`) can find the leaf's CEM later. Mirrors
68
+ // tag references (`<x-button>`) can find the leaf's CEM later. Mirrors
69
69
  // the legacy walkVueTemplate priming step from src/index.ts.
70
70
  if (opts.resolveLazyManifest) {
71
71
  for (const source of sideEffectSources) {
@@ -113,8 +113,7 @@ export function emitVueTemplate(opts) {
113
113
  const loc = node.sourceCodeLocation;
114
114
  const line = (loc?.startLine ?? 1) + lineOffset;
115
115
  const column = loc?.startCol ?? 1;
116
- // events not yet wired see #57 (consumer-side event-listener tracking)
117
- const { props } = readAttrs(node, opts.captureValues);
116
+ const { props, events } = readAttrs(node);
118
117
  opts.fileBuilder.addJsxUsage({
119
118
  ref: {
120
119
  symbol: scriptSpec.local,
@@ -124,6 +123,7 @@ export function emitVueTemplate(opts) {
124
123
  },
125
124
  loc: { line, column },
126
125
  props,
126
+ events,
127
127
  });
128
128
  // Owner is always the enclosing SFC; viaOverride carries the
129
129
  // script-import specifier + name so downstream consumers can present
@@ -138,18 +138,18 @@ export function emitVueTemplate(opts) {
138
138
  }
139
139
  else if (rawTag.includes("-")) {
140
140
  // Hyphenated tag with no script binding. Vue's auto-import / runtime
141
- // global-component convention (e.g. `<pie-button>`, Vuetify's `<v-list>`
141
+ // global-component convention (e.g. `<x-button>`, Vuetify's `<v-list>`
142
142
  // when registered globally). Engine maps these to custom-element or
143
143
  // vue-component identity by tag-name lookup in the tagIndex.
144
144
  const loc = node.sourceCodeLocation;
145
145
  const line = (loc?.startLine ?? 1) + lineOffset;
146
146
  const column = loc?.startCol ?? 1;
147
- // events not yet wired see #57 (consumer-side event-listener tracking)
148
- const { props } = readAttrs(node, opts.captureValues);
147
+ const { props, events } = readAttrs(node);
149
148
  opts.fileBuilder.addTagUsage({
150
149
  tagName: rawTag,
151
150
  loc: { line, column },
152
151
  props,
152
+ events,
153
153
  });
154
154
  // Owner is the enclosing SFC; no viaOverride — engine defaults the
155
155
  // occurrence's `via` to `{ kind: "html-tag" }` for TagUsage.
@@ -1 +1 @@
1
- {"version":3,"file":"emit-template.js","sourceRoot":"","sources":["../src/emit-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit-template.js","sourceRoot":"","sources":["../src/emit-template.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { DefaultTreeAdapterMap } from "parse5";
2
2
  import type { PropUsage } from "@component-compass/plugin-core";
3
3
  type Element = DefaultTreeAdapterMap["element"];
4
- export declare function readAttrs(el: Element, captureValues: boolean): {
4
+ export declare function readAttrs(el: Element): {
5
5
  props: PropUsage[];
6
6
  events: string[];
7
7
  };
@@ -1,8 +1,8 @@
1
- const IDENT_RE = /^[A-Za-z_$][\w$]*$/;
1
+ import { classifyExprText } from "@component-compass/plugin-core";
2
2
  const QUOTED_STRING_RE = /^(['"])(.*)\1$/s;
3
3
  const NUMERIC_RE = /^-?\d+(\.\d+)?$/;
4
4
  const BOOLEAN_RE = /^(true|false)$/;
5
- export function readAttrs(el, captureValues) {
5
+ export function readAttrs(el) {
6
6
  const props = [];
7
7
  const events = [];
8
8
  for (const attr of el.attrs) {
@@ -10,60 +10,31 @@ export function readAttrs(el, captureValues) {
10
10
  events.push(attr.name.replace(/^@|^v-on:/, ""));
11
11
  continue;
12
12
  }
13
- // Bare `v-bind="obj"` (no arg) → spread sentinel, deduped.
14
13
  if (attr.name === "v-bind") {
15
- if (props.some((p) => p.name === "...rest"))
16
- continue;
17
- props.push({ name: "...rest", isDynamic: true });
14
+ if (!props.some((p) => p.name === "...rest"))
15
+ props.push({ name: "...rest", tier: "dynamic" });
18
16
  continue;
19
17
  }
20
- // Other Vue directives that aren't prop bindings → ignore.
21
18
  if (/^v-/.test(attr.name) && !/^v-bind:/.test(attr.name))
22
19
  continue;
23
20
  if (/^[:.]|^v-bind:/.test(attr.name)) {
24
21
  const name = attr.name.replace(/^[:.]|^v-bind:/, "");
25
- const expr = attr.value.trim();
26
- const usage = classifyBindExpr(name, expr, captureValues);
27
- props.push(usage);
22
+ props.push(classifyBindExpr(name, attr.value.trim()));
28
23
  continue;
29
24
  }
30
- // Static attribute. parse5 reports value `""` for boolean shorthand.
31
- const usage = { name: attr.name, isDynamic: false };
32
- if (captureValues) {
33
- // Boolean shorthand: <X foo /> → literalValue: true.
34
- // The HTML parser exposes both `<X foo>` and `<X foo="">` as value `""`.
35
- // Treat empty value as boolean shorthand for consistency with the
36
- // three-state model; explicit empty strings on Vue attributes are
37
- // exceedingly rare in practice.
38
- usage.literalValue = attr.value === "" ? true : attr.value;
39
- }
40
- props.push(usage);
25
+ props.push({ name: attr.name, tier: "written", value: attr.value === "" ? true : attr.value });
41
26
  }
42
27
  return { props, events };
43
28
  }
44
- function classifyBindExpr(name, expr, captureValues) {
29
+ function classifyBindExpr(name, expr) {
45
30
  const quoted = expr.match(QUOTED_STRING_RE);
46
- if (quoted) {
47
- const usage = { name, isDynamic: false };
48
- if (captureValues)
49
- usage.literalValue = quoted[2] ?? "";
50
- return usage;
51
- }
52
- if (NUMERIC_RE.test(expr)) {
53
- const usage = { name, isDynamic: false };
54
- if (captureValues)
55
- usage.literalValue = Number(expr);
56
- return usage;
57
- }
58
- if (BOOLEAN_RE.test(expr)) {
59
- const usage = { name, isDynamic: false };
60
- if (captureValues)
61
- usage.literalValue = expr === "true";
62
- return usage;
63
- }
64
- if (IDENT_RE.test(expr)) {
65
- return { name, isDynamic: true };
66
- }
67
- return { name, isDynamic: true };
31
+ if (quoted)
32
+ return { name, tier: "written", value: quoted[2] ?? "" };
33
+ if (NUMERIC_RE.test(expr))
34
+ return { name, tier: "written", value: Number(expr) };
35
+ if (BOOLEAN_RE.test(expr))
36
+ return { name, tier: "written", value: expr === "true" };
37
+ const c = classifyExprText(expr);
38
+ return c.tier === "reference" ? { name, tier: "reference", ref: c.ref } : { name, tier: "dynamic" };
68
39
  }
69
40
  //# sourceMappingURL=read-attrs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"read-attrs.js","sourceRoot":"","sources":["../src/read-attrs.ts"],"names":[],"mappings":"AAKA,MAAM,QAAQ,GAAG,oBAAoB,CAAC;AACtC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAC3C,MAAM,UAAU,GAAG,iBAAiB,CAAC;AACrC,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAEpC,MAAM,UAAU,SAAS,CAAC,EAAW,EAAE,aAAsB;IAC3D,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;YAChD,SAAS;QACX,CAAC;QACD,2DAA2D;QAC3D,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;gBAAE,SAAS;YACtD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,SAAS;QACX,CAAC;QACD,2DAA2D;QAC3D,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACnE,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,qEAAqE;QACrE,MAAM,KAAK,GAAc,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC/D,IAAI,aAAa,EAAE,CAAC;YAClB,qDAAqD;YACrD,yEAAyE;YACzE,kEAAkE;YAClE,kEAAkE;YAClE,gCAAgC;YAChC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7D,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,IAAY,EAAE,aAAsB;IAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC5C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,KAAK,GAAc,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACpD,IAAI,aAAa;YAAE,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAc,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACpD,IAAI,aAAa;YAAE,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAc,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACpD,IAAI,aAAa;YAAE,KAAK,CAAC,YAAY,GAAG,IAAI,KAAK,MAAM,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"read-attrs.js","sourceRoot":"","sources":["../src/read-attrs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAIlE,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAC3C,MAAM,UAAU,GAAG,iBAAiB,CAAC;AACrC,MAAM,UAAU,GAAG,gBAAgB,CAAC;AAEpC,MAAM,UAAU,SAAS,CAAC,EAAW;IACnC,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;YAChD,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YAC/F,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACnE,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACtD,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,IAAY;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC5C,IAAI,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IACrE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IACjF,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;IACpF,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACtG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@component-compass/parser-vue",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
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",
@@ -27,9 +27,9 @@
27
27
  "clean": "rm -rf dist .turbo"
28
28
  },
29
29
  "dependencies": {
30
- "@component-compass/ast-utils": "0.1.5",
31
- "@component-compass/plugin-core": "0.1.5",
32
- "@component-compass/reference-graph": "0.1.5",
30
+ "@component-compass/ast-utils": "0.1.7",
31
+ "@component-compass/plugin-core": "0.1.7",
32
+ "@component-compass/reference-graph": "0.1.7",
33
33
  "@oxc-project/types": "0.130.0",
34
34
  "@vue/compiler-sfc": "3.5.33",
35
35
  "oxc-walker": "1.0.0",