@immense/vue-pom-generator 1.0.50 → 1.0.52

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/README.md CHANGED
@@ -184,6 +184,8 @@ Without `flatten`, helper composition is still available; it is just more explic
184
184
  npm install @immense/vue-pom-generator
185
185
  ```
186
186
 
187
+ Peer Vite support: Vite 5, 6, or 7.
188
+
187
189
  Exports:
188
190
 
189
191
  - `createVuePomGeneratorPlugins()`
package/RELEASE_NOTES.md CHANGED
@@ -1,64 +1,43 @@
1
- ## Highlights
1
+ # Release Notes: v1.0.52
2
2
 
3
- - **Bundled Floating UI runtime** – Added 1,600+ lines of vendored Floating UI code for callout
4
- positioning without external dependencies
5
- - **File naming convention update** Migrated class-generation files from PascalCase to
6
- kebab-case (BasePage → base-page, Pointer pointer)
7
- - **Playwright integration** Added Playwright configuration and end-to-end tests for
8
- pointer-callout interactions
9
- - **Enhanced pointer testing** – 232+ new lines of pointer tests and dedicated callout test
10
- fixtures
3
+ ## Highlights
4
+
5
+ - Relaxed Vite peer dependency constraint to support newer Vite versions
6
+ - Improved AST-based handling of nullish coalescing in key expressions
7
+ - Fixed repository-wide lint failures and updated lint configuration
8
+ - Enhanced test coverage for utility functions and transform edge cases
11
9
 
12
10
  ## Changes
13
11
 
14
- **Core Functionality**
15
- - Bundled Floating UI library for callout runtime (`callout.ts`, `floating-ui.ts`)
16
- - Added `bundle-floating-ui-runtime.mjs` script for vendoring dependencies
12
+ **Dependencies**
13
+ - Relaxed Vite peer dependency version range to improve compatibility with downstream projects
17
14
 
18
- **File Renames & Refactoring**
19
- - Renamed `BasePage.ts` `base-page.ts` (97% similarity)
20
- - Renamed `Pointer.ts` `pointer.ts` (71% similarity)
21
- - Updated all imports and test fixtures to reflect kebab-case naming
15
+ **Code Quality & Linting**
16
+ - Added ESLint rule exceptions for generated runtime code patterns
17
+ - Clarified AST and lint rule interactions in configuration
18
+ - Polished lint cleanup helper utilities
19
+ - Fixed existing lint violations across the codebase
22
20
 
23
- **Testing**
24
- - Added Playwright configuration and pointer-callout E2E spec (177 lines)
25
- - Added HTML fixture for callout interactions (145 lines)
26
- - Added `serve-fixtures.mjs` utility for local test server
27
- - Enhanced pointer unit tests with extensive new coverage
28
- - Updated class-generation-coverage, dev-plugin-options, and generated-tsc tests
21
+ **AST & Transform Logic**
22
+ - Implemented AST-based splitting for nullish coalescing key expressions
23
+ - Updated transform logic to handle edge cases more robustly
24
+ - Improved runtime generation to meet updated lint expectations
29
25
 
30
- **Tooling**
31
- - Updated plugin support files for new file structure
32
- - Modified packed-smoke-check script
26
+ **Testing**
27
+ - Added test coverage for new utility functions
28
+ - Updated test expectations for class generation coverage
29
+ - Enhanced transform tests with additional edge case scenarios
33
30
 
34
31
  ## Breaking Changes
35
32
 
36
- - **File naming**: `BasePage.ts` → `base-page.ts`, `Pointer.ts` → `pointer.ts` – update any
37
- direct imports
38
- - Generated TypeScript output paths changed to kebab-case
33
+ None.
39
34
 
40
35
  ## Pull Requests Included
41
36
 
42
- - #12 feat: add split Playwright POM output for discoverability
43
- (https://github.com/immense/vue-pom-generator/pull/12) (@dkattan)
44
- - #11 feat: fail fast on unnameable wrapper handlers
45
- (https://github.com/immense/vue-pom-generator/pull/11) (@dkattan)
46
- - #8 chore: bump version to 1.0.43 (https://github.com/immense/vue-pom-generator/pull/8)
47
- (@mayfieldiv)
48
- - #7 test: add build–serve parity regression tests
49
- (https://github.com/immense/vue-pom-generator/pull/7) (@mayfieldiv)
50
- - #6 fix: fail fast on dev snapshot generation errors
51
- (https://github.com/immense/vue-pom-generator/pull/6) (@dkattan)
52
- - #5 fix: dev-mode POM generation parity with build mode
53
- (https://github.com/immense/vue-pom-generator/pull/5) (@mayfieldiv)
54
- - #4 Fix keyed POM dedupe and C# navigation returns
55
- (https://github.com/immense/vue-pom-generator/pull/4) (@dkattan)
56
- - #1 Add PR release-notes preview comments (https://github.com/immense/vue-pom-generator/pull/1)
57
- (@dkattan)
37
+ - #13 Relax Vite peer dependency range (https://github.com/immense/vue-pom-generator/pull/13)
58
38
 
59
39
  ## Testing
60
40
 
61
- Comprehensive test coverage added: Playwright E2E tests for callout interactions, 232+ lines of
62
- enhanced pointer unit tests, and updated fixtures across class-generation-coverage,
63
- dev-plugin-options, and generated-tsc test suites.
41
+ All changes validated through existing test suite (`npm test`). Added test coverage for new
42
+ utility functions and transform edge cases.
64
43
 
@@ -1,3 +1,26 @@
1
+ /*
2
+ * Portions of this file are derived from Floating UI.
3
+ * Copyright (c) 2021-present Floating UI contributors
4
+ * SPDX-License-Identifier: MIT
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in all
14
+ * copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ * SOFTWARE.
23
+ */
1
24
  /* eslint-disable */
2
25
  // @ts-nocheck
3
26
  // This file is auto-generated by scripts/bundle-floating-ui-runtime.mjs.
@@ -18,9 +18,7 @@ import {
18
18
  createClassConstructor,
19
19
  createClassMethod,
20
20
  createClassProperty,
21
- renderClassMembers as renderTsMorphClassMembers,
22
21
  renderSourceFile,
23
- renderTypeScript,
24
22
  StructureKind,
25
23
  VariableDeclarationKind,
26
24
  type ConstructorDeclarationStructure,
@@ -31,8 +29,6 @@ import {
31
29
  type PropertyDeclarationStructure,
32
30
  type TypeScriptClassMember,
33
31
  type TypeScriptSourceFile,
34
- type TypeScriptWriter,
35
- writeCommentBlock,
36
32
  } from "../typescript-codegen";
37
33
  import {
38
34
  IComponentDependencies,
@@ -53,7 +49,6 @@ export { generateViewObjectModelMethodContent };
53
49
 
54
50
  const GENERATED_GITATTRIBUTES_BLOCK_START = "# BEGIN vue-pom-generator generated files";
55
51
  const GENERATED_GITATTRIBUTES_BLOCK_END = "# END vue-pom-generator generated files";
56
- const eslintSuppressionHeader = "/* eslint-disable perfectionist/sort-imports */\n";
57
52
  const VUE_POM_GENERATOR_ERROR_PREFIX = "[vue-pom-generator]" as const;
58
53
 
59
54
  class VuePomGeneratorError extends Error {
@@ -66,43 +61,6 @@ class VuePomGeneratorError extends Error {
66
61
  }
67
62
  }
68
63
 
69
- function renderClassMembers(write: (writer: TypeScriptWriter) => void): string {
70
- const content = renderTypeScript((writer) => {
71
- writer.indent(() => {
72
- write(writer);
73
- });
74
- });
75
- return content.endsWith("\n") ? content : `${content}\n`;
76
- }
77
-
78
- function writeMemberBlock(writer: TypeScriptWriter, signature: string, body: (writer: TypeScriptWriter) => void): void {
79
- writer.write(`${signature} `).block(() => {
80
- body(writer);
81
- });
82
- }
83
-
84
- function writeClassMembersText(writer: TypeScriptWriter, content: string): void {
85
- if (!content) {
86
- return;
87
- }
88
-
89
- const normalized = content
90
- .replace(/\r\n/g, "\n")
91
- .split("\n")
92
- .map(line => line.startsWith(" ") ? line.slice(4) : line)
93
- .join("\n");
94
-
95
- writer.write(normalized.endsWith("\n") ? normalized : `${normalized}\n`);
96
- }
97
-
98
- function writeGeneratedMembers(writer: TypeScriptWriter, members: TypeScriptClassMember[]): void {
99
- if (!members.length) {
100
- return;
101
- }
102
-
103
- writeClassMembersText(writer, renderTsMorphClassMembers(members));
104
- }
105
-
106
64
  function splitParameterList(parameters: string): string[] {
107
65
  const parts: string[] = [];
108
66
  let current = "";
@@ -2418,10 +2376,6 @@ function buildRuntimeGeneratedFilesFromSpecs(assetSpecs: RuntimeGeneratedAssetSp
2418
2376
  }));
2419
2377
  }
2420
2378
 
2421
- function buildRuntimeGeneratedBarrelExports(outputDir: string, assetSpecs: RuntimeGeneratedAssetSpec[]): string[] {
2422
- return assetSpecs.map(spec => `export * from "${stripExtension(toPosixRelativePath(outputDir, spec.outputPath))}";`);
2423
- }
2424
-
2425
2379
  function resolveCustomPomImportResolution(
2426
2380
  generatedClassNames: Set<string>,
2427
2381
  projectRoot: string,
@@ -1 +1 @@
1
- {"version":3,"file":"floating-ui.d.ts","sourceRoot":"","sources":["../../class-generation/floating-ui.ts"],"names":[],"mappings":"AA2LA,iBAAe,cAAc,CAAC,KAAK,KAAA,EAAE,OAAO,KAAA;;;;;GAuD3C;AAED,QAAA,IAAI,eAAe,GAAU,cAAS,EAAE,aAAQ,EAAE,WAAM;;;;;;EAsFvD,CAAC;AACF,QAAA,IAAI,KAAK,GAAI,YAAO;;;;;;;;;;;;;;CA6DlB,CAAC;AAUH,QAAA,IAAI,aAAa,GAAY,YAAO;;;;;;;;;;;;;;;;;;;;CAsFnC,CAAC;AACF,QAAA,IAAI,IAAI,GAAY,YAAO;;;;;;;;;;;;;;;;;;;;CA4G1B,CAAC;AAuCF,QAAA,IAAI,MAAM,GAAY,YAAO;;;;;;;;;;;;;;;;CA6B5B,CAAC;AACF,QAAA,IAAI,KAAK,GAAY,YAAO;;;;CAwE3B,CAAC;AACF,QAAA,IAAI,UAAU,GAAY,YAAO;;;;;CAgEhC,CAAC;AACF,OAAO,EACL,KAAK,EACL,aAAa,EACb,eAAe,EACf,cAAc,EACd,IAAI,EACJ,UAAU,EACV,MAAM,EACN,KAAK,EACN,CAAC"}
1
+ {"version":3,"file":"floating-ui.d.ts","sourceRoot":"","sources":["../../class-generation/floating-ui.ts"],"names":[],"mappings":"AAkNA,iBAAe,cAAc,CAAC,KAAK,KAAA,EAAE,OAAO,KAAA;;;;;GAuD3C;AAED,QAAA,IAAI,eAAe,GAAU,cAAS,EAAE,aAAQ,EAAE,WAAM;;;;;;EAsFvD,CAAC;AACF,QAAA,IAAI,KAAK,GAAI,YAAO;;;;;;;;;;;;;;CA6DlB,CAAC;AAUH,QAAA,IAAI,aAAa,GAAY,YAAO;;;;;;;;;;;;;;;;;;;;CAsFnC,CAAC;AACF,QAAA,IAAI,IAAI,GAAY,YAAO;;;;;;;;;;;;;;;;;;;;CA4G1B,CAAC;AAuCF,QAAA,IAAI,MAAM,GAAY,YAAO;;;;;;;;;;;;;;;;CA6B5B,CAAC;AACF,QAAA,IAAI,KAAK,GAAY,YAAO;;;;CAwE3B,CAAC;AACF,QAAA,IAAI,UAAU,GAAY,YAAO;;;;;CAgEhC,CAAC;AACF,OAAO,EACL,KAAK,EACL,aAAa,EACb,eAAe,EACf,cAAc,EACd,IAAI,EACJ,UAAU,EACV,MAAM,EACN,KAAK,EACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../class-generation/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAkC,oCAAoC,EAAE,MAAM,sBAAsB,CAAC;AA0B5G,OAAO,EACL,sBAAsB,EAMvB,MAAM,UAAU,CAAC;AAQlB,OAAO,EAAE,oCAAoC,EAAE,CAAC;AA2MhD,UAAU,SAAS;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AASD,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG,oBAAoB,CAAC;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AASD,MAAM,MAAM,yBAAyB,GAAG,YAAY,GAAG,OAAO,CAAC;AAwW/D,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;;;;;OAeG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAE1D;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;;;OAOG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhD;;;;;OAKG;IACH,oCAAoC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAEzD;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAE7C,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,uDAAuD;IACvD,aAAa,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;IAEvC;;;;;OAKG;IACH,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IAEtD,6BAA6B;IAC7B,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,6EAA6E;IAC7E,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,mDAAmD;IACnD,UAAU,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAEnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAClD;AAqCD,wBAAsB,aAAa,CACjC,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAC1D,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,iBAAiB,EAAE,MAAM,EACzB,OAAO,GAAE,oBAAyB,iBA+FnC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../class-generation/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAkC,oCAAoC,EAAE,MAAM,sBAAsB,CAAC;AAsB5G,OAAO,EACL,sBAAsB,EAMvB,MAAM,UAAU,CAAC;AAQlB,OAAO,EAAE,oCAAoC,EAAE,CAAC;AAqKhD,UAAU,SAAS;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AASD,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG,oBAAoB,CAAC;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AASD,MAAM,MAAM,yBAAyB,GAAG,YAAY,GAAG,OAAO,CAAC;AAwW/D,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;;;;;OAeG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAE1D;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;;;OAOG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhD;;;;;OAKG;IACH,oCAAoC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAEzD;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAE7C,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,uDAAuD;IACvD,aAAa,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;IAEvC;;;;;OAKG;IACH,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IAEtD,6BAA6B;IAC7B,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,6EAA6E;IAC7E,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,mDAAmD;IACnD,UAAU,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAEnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAClD;AAqCD,wBAAsB,aAAa,CACjC,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAC1D,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,iBAAiB,EAAE,MAAM,EACzB,OAAO,GAAE,oBAAyB,iBA+FnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"eslint.config.d.ts","sourceRoot":"","sources":["../eslint.config.ts"],"names":[],"mappings":";AAEA,wBA0FG"}
1
+ {"version":3,"file":"eslint.config.d.ts","sourceRoot":"","sources":["../eslint.config.ts"],"names":[],"mappings":";AAEA,wBAsGG"}
package/dist/index.cjs CHANGED
@@ -769,7 +769,14 @@ function getTemplateSlotScope(node) {
769
769
  return null;
770
770
  }
771
771
  function isSimpleScopeIdentifier(value) {
772
- return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(value);
772
+ if (!value) {
773
+ return false;
774
+ }
775
+ try {
776
+ return types.isIdentifier(parser.parseExpression(value, { plugins: ["typescript"] }));
777
+ } catch {
778
+ return false;
779
+ }
773
780
  }
774
781
  function buildSlotScopeFallbackKeyExpression(identifier) {
775
782
  return `${identifier}.key ?? ${identifier}.data?.id ?? ${identifier}.id ?? ${identifier}.value ?? ${identifier}`;
@@ -789,6 +796,29 @@ function tryGetBindingIdentifierName(node) {
789
796
  }
790
797
  return null;
791
798
  }
799
+ function splitNullishCoalescingExpression(expr) {
800
+ const ast = parser.parseExpression(expr, { plugins: ["typescript"] });
801
+ const toSourceText = (node) => {
802
+ if (node.start == null || node.end == null) {
803
+ throw new Error("[vue-pom-generator] Unable to recover source for nullish-coalescing expression.");
804
+ }
805
+ return expr.slice(node.start, node.end).trim();
806
+ };
807
+ const parts = [];
808
+ const visit = (node) => {
809
+ if (types.isLogicalExpression(node) && node.operator === "??") {
810
+ visit(node.left);
811
+ visit(node.right);
812
+ return;
813
+ }
814
+ const candidate = toSourceText(node);
815
+ if (candidate) {
816
+ parts.push(candidate);
817
+ }
818
+ };
819
+ visit(ast);
820
+ return parts;
821
+ }
792
822
  function getSlotScopeObjectPropertyKeyName(node) {
793
823
  if (types.isIdentifier(node)) {
794
824
  return node.name;
@@ -2045,7 +2075,7 @@ function applyResolvedDataTestId(args) {
2045
2075
  if (!expr) {
2046
2076
  return [];
2047
2077
  }
2048
- return expr.split("??").map((part) => part.trim()).filter(Boolean);
2078
+ return splitNullishCoalescingExpression(expr);
2049
2079
  };
2050
2080
  let dataTestId = args.preferredGeneratedValue;
2051
2081
  let fromExisting = false;
@@ -7988,6 +8018,26 @@ function createVuePomGeneratorPlugins(options = {}) {
7988
8018
  const loggerRef = {
7989
8019
  current: createLogger({ verbosity })
7990
8020
  };
8021
+ const getViewsDirAbs = () => resolveFromProjectRoot(projectRootRef.current, viewsDir);
8022
+ const getWrapperSearchRootsAbs = () => wrapperSearchRoots.map((root) => resolveFromProjectRoot(projectRootRef.current, root));
8023
+ const { componentTestIds, elementMetadata, semanticNameMap, componentHierarchyMap, vueFilesPathMap } = sharedState;
8024
+ const { metadataCollectorPlugin, internalVuePlugin, templateCompilerOptions } = createVuePluginWithTestIds({
8025
+ vueOptions,
8026
+ existingIdBehavior,
8027
+ nameCollisionBehavior,
8028
+ nativeWrappers,
8029
+ elementMetadata,
8030
+ semanticNameMap,
8031
+ componentHierarchyMap,
8032
+ vueFilesPathMap,
8033
+ excludedComponents,
8034
+ getViewsDirAbs,
8035
+ testIdAttribute,
8036
+ loggerRef,
8037
+ scanDirs,
8038
+ getWrapperSearchRoots: getWrapperSearchRootsAbs,
8039
+ getProjectRoot: () => projectRootRef.current
8040
+ });
7991
8041
  const configPlugin = {
7992
8042
  name: "vue-pom-generator-config",
7993
8043
  enforce: "pre",
@@ -8013,26 +8063,6 @@ function createVuePomGeneratorPlugins(options = {}) {
8013
8063
  loggerRef.current.info(`Active plugins: ${(config.plugins ?? []).map((p) => p.name).filter((n) => n.includes("vue-pom")).join(", ")}`);
8014
8064
  }
8015
8065
  };
8016
- const getViewsDirAbs = () => resolveFromProjectRoot(projectRootRef.current, viewsDir);
8017
- const getWrapperSearchRootsAbs = () => wrapperSearchRoots.map((root) => resolveFromProjectRoot(projectRootRef.current, root));
8018
- const { componentTestIds, elementMetadata, semanticNameMap, componentHierarchyMap, vueFilesPathMap } = sharedState;
8019
- const { metadataCollectorPlugin, internalVuePlugin, templateCompilerOptions } = createVuePluginWithTestIds({
8020
- vueOptions,
8021
- existingIdBehavior,
8022
- nameCollisionBehavior,
8023
- nativeWrappers,
8024
- elementMetadata,
8025
- semanticNameMap,
8026
- componentHierarchyMap,
8027
- vueFilesPathMap,
8028
- excludedComponents,
8029
- getViewsDirAbs,
8030
- testIdAttribute,
8031
- loggerRef,
8032
- scanDirs,
8033
- getWrapperSearchRoots: getWrapperSearchRootsAbs,
8034
- getProjectRoot: () => projectRootRef.current
8035
- });
8036
8066
  const routerAwarePoms = typeof routerEntry === "string" && routerEntry.trim().length > 0 || routerType === "nuxt";
8037
8067
  const supportPlugins = createSupportPlugins({
8038
8068
  componentTestIds,