@analogjs/platform 3.0.0-alpha.26 → 3.0.0-alpha.28

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@analogjs/platform",
3
- "version": "3.0.0-alpha.26",
3
+ "version": "3.0.0-alpha.28",
4
4
  "description": "The fullstack meta-framework for Angular",
5
5
  "type": "module",
6
6
  "author": "Brandon Roberts <robertsbt@gmail.com>",
@@ -47,8 +47,8 @@
47
47
  "es-toolkit": "^1.45.1",
48
48
  "tinyglobby": "^0.2.15",
49
49
  "nitro": "3.0.260311-beta",
50
- "@analogjs/vite-plugin-angular": "3.0.0-alpha.26",
51
- "@analogjs/vite-plugin-nitro": "3.0.0-alpha.26",
50
+ "@analogjs/vite-plugin-angular": "3.0.0-alpha.28",
51
+ "@analogjs/vite-plugin-nitro": "3.0.0-alpha.28",
52
52
  "rolldown": "^1.0.0-rc.13",
53
53
  "obug": "^2.1.1",
54
54
  "vitefu": "^1.1.2"
@@ -4,8 +4,7 @@ export interface DiscoveredLibraryRoutes {
4
4
  additionalAPIDirs: string[];
5
5
  }
6
6
  /**
7
- * Reads `tsconfig.base.json` (or `tsconfig.json`) path aliases from the
8
- * workspace root and checks each library for conventional route directories
7
+ * Scans workspace libraries directly for conventional route directories
9
8
  * (`src/pages`, `src/content`, `src/api`).
10
9
  *
11
10
  * Returns workspace-relative paths (e.g. `/libs/shared/feature`) suitable
@@ -1,55 +1,60 @@
1
- import { join } from "node:path";
2
- import { existsSync, readFileSync } from "node:fs";
1
+ import { normalizePath } from "vite";
2
+ import { globSync } from "tinyglobby";
3
3
  //#region packages/platform/src/lib/discover-library-routes.ts
4
- var empty = Object.freeze({
4
+ Object.freeze({
5
5
  additionalPagesDirs: Object.freeze([]),
6
6
  additionalContentDirs: Object.freeze([]),
7
7
  additionalAPIDirs: Object.freeze([])
8
8
  });
9
+ var discoverableLibRouteDirs = [
10
+ "libs/**/src/pages",
11
+ "libs/**/src/content",
12
+ "libs/**/src/api"
13
+ ];
14
+ function toWorkspacePath(path) {
15
+ return normalizePath(path).replace(/\/$/, "");
16
+ }
9
17
  /**
10
- * Reads `tsconfig.base.json` (or `tsconfig.json`) path aliases from the
11
- * workspace root and checks each library for conventional route directories
18
+ * Scans workspace libraries directly for conventional route directories
12
19
  * (`src/pages`, `src/content`, `src/api`).
13
20
  *
14
21
  * Returns workspace-relative paths (e.g. `/libs/shared/feature`) suitable
15
22
  * for merging into the `additional*Dirs` options.
16
23
  */
17
24
  function discoverLibraryRoutes(workspaceRoot) {
18
- let raw;
19
- try {
20
- const basePath = join(workspaceRoot, "tsconfig.base.json");
21
- const fallbackPath = join(workspaceRoot, "tsconfig.json");
22
- raw = existsSync(basePath) ? readFileSync(basePath, "utf-8") : readFileSync(fallbackPath, "utf-8");
23
- } catch {
24
- return empty;
25
- }
26
- let paths;
27
- try {
28
- paths = JSON.parse(raw)?.compilerOptions?.paths ?? {};
29
- } catch {
30
- return empty;
31
- }
32
25
  const result = {
33
26
  additionalPagesDirs: [],
34
27
  additionalContentDirs: [],
35
28
  additionalAPIDirs: []
36
29
  };
37
- const seen = /* @__PURE__ */ new Set();
38
- for (const [alias, targets] of Object.entries(paths)) {
39
- if (alias.startsWith("@analogjs/")) continue;
40
- const target = targets?.[0];
41
- if (!target) continue;
42
- const normalized = target.startsWith("./") ? target.slice(2) : target;
43
- if (!normalized.startsWith("libs/")) continue;
44
- const srcIndex = normalized.indexOf("/src/");
30
+ const normalizedWorkspaceRoot = toWorkspacePath(workspaceRoot);
31
+ const discovered = /* @__PURE__ */ new Map();
32
+ for (const dir of globSync(discoverableLibRouteDirs, {
33
+ cwd: normalizedWorkspaceRoot,
34
+ dot: true,
35
+ onlyDirectories: true
36
+ })) {
37
+ const normalizedDir = toWorkspacePath(dir);
38
+ const workspaceRelativeDir = normalizedDir.startsWith(`${normalizedWorkspaceRoot}/`) ? normalizedDir.slice(normalizedWorkspaceRoot.length + 1) : normalizedDir;
39
+ if (!workspaceRelativeDir.startsWith("libs/")) continue;
40
+ const srcIndex = workspaceRelativeDir.indexOf("/src/");
45
41
  if (srcIndex === -1) continue;
46
- const libRoot = normalized.slice(0, srcIndex);
47
- if (seen.has(libRoot)) continue;
48
- seen.add(libRoot);
49
- const absoluteLibRoot = join(workspaceRoot, libRoot);
50
- if (existsSync(join(absoluteLibRoot, "src/pages"))) result.additionalPagesDirs.push(`/${libRoot}`);
51
- if (existsSync(join(absoluteLibRoot, "src/content"))) result.additionalContentDirs.push(`/${libRoot}/src/content`);
52
- if (existsSync(join(absoluteLibRoot, "src/api"))) result.additionalAPIDirs.push(`/${libRoot}/src/api`);
42
+ const libRoot = workspaceRelativeDir.slice(0, srcIndex);
43
+ const entry = discovered.get(libRoot) ?? {
44
+ pages: false,
45
+ content: false,
46
+ api: false
47
+ };
48
+ if (workspaceRelativeDir.endsWith("/src/pages")) entry.pages = true;
49
+ if (workspaceRelativeDir.endsWith("/src/content")) entry.content = true;
50
+ if (workspaceRelativeDir.endsWith("/src/api")) entry.api = true;
51
+ discovered.set(libRoot, entry);
52
+ }
53
+ for (const libRoot of [...discovered.keys()].sort()) {
54
+ const entry = discovered.get(libRoot);
55
+ if (entry.pages) result.additionalPagesDirs.push(`/${libRoot}`);
56
+ if (entry.content) result.additionalContentDirs.push(`/${libRoot}/src/content`);
57
+ if (entry.api) result.additionalAPIDirs.push(`/${libRoot}/src/api`);
53
58
  }
54
59
  return result;
55
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"discover-library-routes.js","names":[],"sources":["../../../src/lib/discover-library-routes.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\nimport { join } from 'node:path';\n\nexport interface DiscoveredLibraryRoutes {\n additionalPagesDirs: string[];\n additionalContentDirs: string[];\n additionalAPIDirs: string[];\n}\n\nconst empty: DiscoveredLibraryRoutes = Object.freeze({\n additionalPagesDirs: Object.freeze([] as string[]),\n additionalContentDirs: Object.freeze([] as string[]),\n additionalAPIDirs: Object.freeze([] as string[]),\n});\n\n/**\n * Reads `tsconfig.base.json` (or `tsconfig.json`) path aliases from the\n * workspace root and checks each library for conventional route directories\n * (`src/pages`, `src/content`, `src/api`).\n *\n * Returns workspace-relative paths (e.g. `/libs/shared/feature`) suitable\n * for merging into the `additional*Dirs` options.\n */\nexport function discoverLibraryRoutes(\n workspaceRoot: string,\n): DiscoveredLibraryRoutes {\n let raw: string;\n try {\n const basePath = join(workspaceRoot, 'tsconfig.base.json');\n const fallbackPath = join(workspaceRoot, 'tsconfig.json');\n raw = existsSync(basePath)\n ? readFileSync(basePath, 'utf-8')\n : readFileSync(fallbackPath, 'utf-8');\n } catch {\n return empty;\n }\n\n let paths: Record<string, string[]>;\n try {\n const tsconfig = JSON.parse(raw);\n paths = tsconfig?.compilerOptions?.paths ?? {};\n } catch {\n return empty;\n }\n\n const result: DiscoveredLibraryRoutes = {\n additionalPagesDirs: [],\n additionalContentDirs: [],\n additionalAPIDirs: [],\n };\n const seen = new Set<string>();\n\n for (const [alias, targets] of Object.entries(paths)) {\n if (alias.startsWith('@analogjs/')) {\n continue;\n }\n\n const target = targets?.[0];\n if (!target) {\n continue;\n }\n\n const normalized = target.startsWith('./') ? target.slice(2) : target;\n\n if (!normalized.startsWith('libs/')) {\n continue;\n }\n\n const srcIndex = normalized.indexOf('/src/');\n if (srcIndex === -1) {\n continue;\n }\n\n const libRoot = normalized.slice(0, srcIndex);\n\n if (seen.has(libRoot)) {\n continue;\n }\n seen.add(libRoot);\n\n const absoluteLibRoot = join(workspaceRoot, libRoot);\n\n if (existsSync(join(absoluteLibRoot, 'src/pages'))) {\n result.additionalPagesDirs.push(`/${libRoot}`);\n }\n\n if (existsSync(join(absoluteLibRoot, 'src/content'))) {\n result.additionalContentDirs.push(`/${libRoot}/src/content`);\n }\n\n if (existsSync(join(absoluteLibRoot, 'src/api'))) {\n result.additionalAPIDirs.push(`/${libRoot}/src/api`);\n }\n }\n\n return result;\n}\n"],"mappings":";;;AASA,IAAM,QAAiC,OAAO,OAAO;CACnD,qBAAqB,OAAO,OAAO,EAAE,CAAa;CAClD,uBAAuB,OAAO,OAAO,EAAE,CAAa;CACpD,mBAAmB,OAAO,OAAO,EAAE,CAAa;CACjD,CAAC;;;;;;;;;AAUF,SAAgB,sBACd,eACyB;CACzB,IAAI;AACJ,KAAI;EACF,MAAM,WAAW,KAAK,eAAe,qBAAqB;EAC1D,MAAM,eAAe,KAAK,eAAe,gBAAgB;AACzD,QAAM,WAAW,SAAS,GACtB,aAAa,UAAU,QAAQ,GAC/B,aAAa,cAAc,QAAQ;SACjC;AACN,SAAO;;CAGT,IAAI;AACJ,KAAI;AAEF,UADiB,KAAK,MAAM,IAAI,EACd,iBAAiB,SAAS,EAAE;SACxC;AACN,SAAO;;CAGT,MAAM,SAAkC;EACtC,qBAAqB,EAAE;EACvB,uBAAuB,EAAE;EACzB,mBAAmB,EAAE;EACtB;CACD,MAAM,uBAAO,IAAI,KAAa;AAE9B,MAAK,MAAM,CAAC,OAAO,YAAY,OAAO,QAAQ,MAAM,EAAE;AACpD,MAAI,MAAM,WAAW,aAAa,CAChC;EAGF,MAAM,SAAS,UAAU;AACzB,MAAI,CAAC,OACH;EAGF,MAAM,aAAa,OAAO,WAAW,KAAK,GAAG,OAAO,MAAM,EAAE,GAAG;AAE/D,MAAI,CAAC,WAAW,WAAW,QAAQ,CACjC;EAGF,MAAM,WAAW,WAAW,QAAQ,QAAQ;AAC5C,MAAI,aAAa,GACf;EAGF,MAAM,UAAU,WAAW,MAAM,GAAG,SAAS;AAE7C,MAAI,KAAK,IAAI,QAAQ,CACnB;AAEF,OAAK,IAAI,QAAQ;EAEjB,MAAM,kBAAkB,KAAK,eAAe,QAAQ;AAEpD,MAAI,WAAW,KAAK,iBAAiB,YAAY,CAAC,CAChD,QAAO,oBAAoB,KAAK,IAAI,UAAU;AAGhD,MAAI,WAAW,KAAK,iBAAiB,cAAc,CAAC,CAClD,QAAO,sBAAsB,KAAK,IAAI,QAAQ,cAAc;AAG9D,MAAI,WAAW,KAAK,iBAAiB,UAAU,CAAC,CAC9C,QAAO,kBAAkB,KAAK,IAAI,QAAQ,UAAU;;AAIxD,QAAO"}
1
+ {"version":3,"file":"discover-library-routes.js","names":[],"sources":["../../../src/lib/discover-library-routes.ts"],"sourcesContent":["import { normalizePath } from 'vite';\nimport { globSync } from 'tinyglobby';\n\nexport interface DiscoveredLibraryRoutes {\n additionalPagesDirs: string[];\n additionalContentDirs: string[];\n additionalAPIDirs: string[];\n}\n\nconst empty: DiscoveredLibraryRoutes = Object.freeze({\n additionalPagesDirs: Object.freeze([] as string[]),\n additionalContentDirs: Object.freeze([] as string[]),\n additionalAPIDirs: Object.freeze([] as string[]),\n});\n\nconst discoverableLibRouteDirs = [\n 'libs/**/src/pages',\n 'libs/**/src/content',\n 'libs/**/src/api',\n] as const;\n\nfunction toWorkspacePath(path: string) {\n return normalizePath(path).replace(/\\/$/, '');\n}\n\n/**\n * Scans workspace libraries directly for conventional route directories\n * (`src/pages`, `src/content`, `src/api`).\n *\n * Returns workspace-relative paths (e.g. `/libs/shared/feature`) suitable\n * for merging into the `additional*Dirs` options.\n */\nexport function discoverLibraryRoutes(\n workspaceRoot: string,\n): DiscoveredLibraryRoutes {\n const result: DiscoveredLibraryRoutes = {\n additionalPagesDirs: [],\n additionalContentDirs: [],\n additionalAPIDirs: [],\n };\n const normalizedWorkspaceRoot = toWorkspacePath(workspaceRoot);\n const discovered = new Map<\n string,\n {\n pages: boolean;\n content: boolean;\n api: boolean;\n }\n >();\n\n for (const dir of globSync(discoverableLibRouteDirs, {\n cwd: normalizedWorkspaceRoot,\n dot: true,\n onlyDirectories: true,\n })) {\n const normalizedDir = toWorkspacePath(dir);\n const workspaceRelativeDir = normalizedDir.startsWith(\n `${normalizedWorkspaceRoot}/`,\n )\n ? normalizedDir.slice(normalizedWorkspaceRoot.length + 1)\n : normalizedDir;\n\n if (!workspaceRelativeDir.startsWith('libs/')) {\n continue;\n }\n\n const srcIndex = workspaceRelativeDir.indexOf('/src/');\n if (srcIndex === -1) {\n continue;\n }\n\n const libRoot = workspaceRelativeDir.slice(0, srcIndex);\n const entry = discovered.get(libRoot) ?? {\n pages: false,\n content: false,\n api: false,\n };\n\n if (workspaceRelativeDir.endsWith('/src/pages')) {\n entry.pages = true;\n }\n\n if (workspaceRelativeDir.endsWith('/src/content')) {\n entry.content = true;\n }\n\n if (workspaceRelativeDir.endsWith('/src/api')) {\n entry.api = true;\n }\n\n discovered.set(libRoot, entry);\n }\n\n for (const libRoot of [...discovered.keys()].sort()) {\n const entry = discovered.get(libRoot)!;\n\n if (entry.pages) {\n result.additionalPagesDirs.push(`/${libRoot}`);\n }\n\n if (entry.content) {\n result.additionalContentDirs.push(`/${libRoot}/src/content`);\n }\n\n if (entry.api) {\n result.additionalAPIDirs.push(`/${libRoot}/src/api`);\n }\n }\n\n return result;\n}\n"],"mappings":";;;AASuC,OAAO,OAAO;CACnD,qBAAqB,OAAO,OAAO,EAAE,CAAa;CAClD,uBAAuB,OAAO,OAAO,EAAE,CAAa;CACpD,mBAAmB,OAAO,OAAO,EAAE,CAAa;CACjD,CAAC;AAEF,IAAM,2BAA2B;CAC/B;CACA;CACA;CACD;AAED,SAAS,gBAAgB,MAAc;AACrC,QAAO,cAAc,KAAK,CAAC,QAAQ,OAAO,GAAG;;;;;;;;;AAU/C,SAAgB,sBACd,eACyB;CACzB,MAAM,SAAkC;EACtC,qBAAqB,EAAE;EACvB,uBAAuB,EAAE;EACzB,mBAAmB,EAAE;EACtB;CACD,MAAM,0BAA0B,gBAAgB,cAAc;CAC9D,MAAM,6BAAa,IAAI,KAOpB;AAEH,MAAK,MAAM,OAAO,SAAS,0BAA0B;EACnD,KAAK;EACL,KAAK;EACL,iBAAiB;EAClB,CAAC,EAAE;EACF,MAAM,gBAAgB,gBAAgB,IAAI;EAC1C,MAAM,uBAAuB,cAAc,WACzC,GAAG,wBAAwB,GAC5B,GACG,cAAc,MAAM,wBAAwB,SAAS,EAAE,GACvD;AAEJ,MAAI,CAAC,qBAAqB,WAAW,QAAQ,CAC3C;EAGF,MAAM,WAAW,qBAAqB,QAAQ,QAAQ;AACtD,MAAI,aAAa,GACf;EAGF,MAAM,UAAU,qBAAqB,MAAM,GAAG,SAAS;EACvD,MAAM,QAAQ,WAAW,IAAI,QAAQ,IAAI;GACvC,OAAO;GACP,SAAS;GACT,KAAK;GACN;AAED,MAAI,qBAAqB,SAAS,aAAa,CAC7C,OAAM,QAAQ;AAGhB,MAAI,qBAAqB,SAAS,eAAe,CAC/C,OAAM,UAAU;AAGlB,MAAI,qBAAqB,SAAS,WAAW,CAC3C,OAAM,MAAM;AAGd,aAAW,IAAI,SAAS,MAAM;;AAGhC,MAAK,MAAM,WAAW,CAAC,GAAG,WAAW,MAAM,CAAC,CAAC,MAAM,EAAE;EACnD,MAAM,QAAQ,WAAW,IAAI,QAAQ;AAErC,MAAI,MAAM,MACR,QAAO,oBAAoB,KAAK,IAAI,UAAU;AAGhD,MAAI,MAAM,QACR,QAAO,sBAAsB,KAAK,IAAI,QAAQ,cAAc;AAG9D,MAAI,MAAM,IACR,QAAO,kBAAkB,KAAK,IAAI,QAAQ,UAAU;;AAIxD,QAAO"}
@@ -2,7 +2,6 @@
2
2
 
3
3
  import analog from '@analogjs/platform';
4
4
  import { defineConfig } from 'vite';
5
- import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
6
5
  <% if (addTailwind) { %>
7
6
  import tailwindcss from '@tailwindcss/vite';
8
7
  <% } %>
@@ -27,7 +26,6 @@ export default defineConfig(({ mode }) => {
27
26
  tailwindcss(),
28
27
  <% } %>
29
28
  analog(),
30
- nxViteTsPaths(),
31
29
  ],
32
30
  test: {
33
31
  globals: true,
@@ -2,7 +2,6 @@
2
2
 
3
3
  import analog from '@analogjs/platform';
4
4
  import { defineConfig, Plugin } from 'vite';
5
- import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
6
5
  <% if (addTailwind) { %>
7
6
  import tailwindcss from '@tailwindcss/vite';
8
7
  <% } %>
@@ -28,7 +27,6 @@ export default defineConfig(({ mode }) => {
28
27
  tailwindcss(),
29
28
  <% } %>
30
29
  analog(),
31
- nxViteTsPaths(),
32
30
  ],
33
31
  test: {
34
32
  globals: true,
@@ -2,7 +2,6 @@
2
2
 
3
3
  import analog from '@analogjs/platform';
4
4
  import { defineConfig, Plugin } from 'vite';
5
- import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
6
5
  <% if (addTailwind) { %>
7
6
  import tailwindcss from '@tailwindcss/vite';
8
7
  <% } %>
@@ -27,7 +26,6 @@ export default defineConfig(({ mode }) => {
27
26
  tailwindcss(),
28
27
  <% } %>
29
28
  analog(),
30
- nxViteTsPaths(),
31
29
  ],
32
30
  test: {
33
31
  globals: true,
@@ -2,7 +2,6 @@
2
2
 
3
3
  import analog from '@analogjs/platform';
4
4
  import { defineConfig } from 'vite';
5
- import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
6
5
  <% if (addTailwind) { %>
7
6
  import tailwindcss from '@tailwindcss/vite';
8
7
  <% } %>
@@ -27,7 +26,6 @@ export default defineConfig(({ mode }) => {
27
26
  tailwindcss(),
28
27
  <% } %>
29
28
  analog(),
30
- nxViteTsPaths(),
31
29
  ],
32
30
  test: {
33
31
  globals: true,
@@ -1,9 +1,9 @@
1
1
  export declare const V18_X_NX_DEVKIT = "^20.0.0";
2
2
  export declare const V18_X_NX_ANGULAR = "^20.0.0";
3
- export declare const V18_X_ANALOG_JS_CONTENT = "^3.0.0-alpha.26";
4
- export declare const V18_X_ANALOG_JS_ROUTER = "^3.0.0-alpha.26";
5
- export declare const V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.26";
6
- export declare const V18_X_ANALOG_JS_VITEST_ANGULAR = "^3.0.0-alpha.26";
3
+ export declare const V18_X_ANALOG_JS_CONTENT = "^3.0.0-alpha.28";
4
+ export declare const V18_X_ANALOG_JS_ROUTER = "^3.0.0-alpha.28";
5
+ export declare const V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.28";
6
+ export declare const V18_X_ANALOG_JS_VITEST_ANGULAR = "^3.0.0-alpha.28";
7
7
  export declare const V18_X_FRONT_MATTER = "^4.0.2";
8
8
  export declare const V18_X_MARKED = "^15.0.7";
9
9
  export declare const V18_X_MARKED_GFM_HEADING_ID = "^4.1.1";
@@ -15,7 +15,7 @@ export declare const V18_X_TAILWINDCSS = "^4.2.2";
15
15
  export declare const V18_X_TAILWINDCSS_POSTCSS = "^4.2.2";
16
16
  export declare const V18_X_TAILWINDCSS_VITE = "^4.2.2";
17
17
  export declare const V18_X_POSTCSS = "^8.5.6";
18
- export declare const V18_X_ANALOG_JS_PLATFORM = "^3.0.0-alpha.26";
18
+ export declare const V18_X_ANALOG_JS_PLATFORM = "^3.0.0-alpha.28";
19
19
  export declare const V18_X_ANGULAR_DEVKIT_BUILD_ANGULAR = "^19.0.0";
20
20
  export declare const V18_X_NX_VITE = "^21.0.0";
21
21
  export declare const V18_X_NX_LINTER = "^21.0.0";
@@ -1 +1 @@
1
- {"version":3,"file":"versions.js","names":[],"sources":["../../../../../../../../../../nx-plugin/src/generators/app/versions/nx_18_X/versions.ts"],"sourcesContent":["// V18_X\n// dependencies\nexport const V18_X_NX_DEVKIT = '^20.0.0';\nexport const V18_X_NX_ANGULAR = '^20.0.0';\nexport const V18_X_ANALOG_JS_CONTENT = '^3.0.0-alpha.26';\nexport const V18_X_ANALOG_JS_ROUTER = '^3.0.0-alpha.26';\nexport const V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.26';\nexport const V18_X_ANALOG_JS_VITEST_ANGULAR = '^3.0.0-alpha.26';\nexport const V18_X_FRONT_MATTER = '^4.0.2';\nexport const V18_X_MARKED = '^15.0.7';\nexport const V18_X_MARKED_GFM_HEADING_ID = '^4.1.1';\nexport const V18_X_MARKED_HIGHLIGHT = '^2.2.1';\nexport const V18_X_MARKED_MANGLE = '^1.1.10';\nexport const V18_X_MERMAID = '^10.2.4';\nexport const V18_X_PRISMJS = '^1.29.0';\nexport const V18_X_TAILWINDCSS = '^4.2.2';\nexport const V18_X_TAILWINDCSS_POSTCSS = '^4.2.2';\nexport const V18_X_TAILWINDCSS_VITE = '^4.2.2';\nexport const V18_X_POSTCSS = '^8.5.6';\n\n// devDependencies\nexport const V18_X_ANALOG_JS_PLATFORM = '^3.0.0-alpha.26';\nexport const V18_X_ANGULAR_DEVKIT_BUILD_ANGULAR = '^19.0.0';\nexport const V18_X_NX_VITE = '^21.0.0';\nexport const V18_X_NX_LINTER = '^21.0.0';\nexport const V18_X_JSDOM = '^22.1.0';\nexport const V18_X_VITE = '^8.0.0';\nexport const V18_X_VITE_TSCONFIG_PATHS = '^4.2.0';\nexport const V18_X_VITEST = '^4.0.0';\nexport const V18_X_ZOD = '^3.21.4';\n"],"mappings":";AAeA,IAAa,oBAAoB;AACjC,IAAa,4BAA4B;AACzC,IAAa,yBAAyB;AACtC,IAAa,gBAAgB"}
1
+ {"version":3,"file":"versions.js","names":[],"sources":["../../../../../../../../../../nx-plugin/src/generators/app/versions/nx_18_X/versions.ts"],"sourcesContent":["// V18_X\n// dependencies\nexport const V18_X_NX_DEVKIT = '^20.0.0';\nexport const V18_X_NX_ANGULAR = '^20.0.0';\nexport const V18_X_ANALOG_JS_CONTENT = '^3.0.0-alpha.28';\nexport const V18_X_ANALOG_JS_ROUTER = '^3.0.0-alpha.28';\nexport const V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.28';\nexport const V18_X_ANALOG_JS_VITEST_ANGULAR = '^3.0.0-alpha.28';\nexport const V18_X_FRONT_MATTER = '^4.0.2';\nexport const V18_X_MARKED = '^15.0.7';\nexport const V18_X_MARKED_GFM_HEADING_ID = '^4.1.1';\nexport const V18_X_MARKED_HIGHLIGHT = '^2.2.1';\nexport const V18_X_MARKED_MANGLE = '^1.1.10';\nexport const V18_X_MERMAID = '^10.2.4';\nexport const V18_X_PRISMJS = '^1.29.0';\nexport const V18_X_TAILWINDCSS = '^4.2.2';\nexport const V18_X_TAILWINDCSS_POSTCSS = '^4.2.2';\nexport const V18_X_TAILWINDCSS_VITE = '^4.2.2';\nexport const V18_X_POSTCSS = '^8.5.6';\n\n// devDependencies\nexport const V18_X_ANALOG_JS_PLATFORM = '^3.0.0-alpha.28';\nexport const V18_X_ANGULAR_DEVKIT_BUILD_ANGULAR = '^19.0.0';\nexport const V18_X_NX_VITE = '^21.0.0';\nexport const V18_X_NX_LINTER = '^21.0.0';\nexport const V18_X_JSDOM = '^22.1.0';\nexport const V18_X_VITE = '^8.0.0';\nexport const V18_X_VITE_TSCONFIG_PATHS = '^4.2.0';\nexport const V18_X_VITEST = '^4.0.0';\nexport const V18_X_ZOD = '^3.21.4';\n"],"mappings":";AAeA,IAAa,oBAAoB;AACjC,IAAa,4BAA4B;AACzC,IAAa,yBAAyB;AACtC,IAAa,gBAAgB"}
@@ -2,9 +2,7 @@
2
2
 
3
3
  import { defineConfig } from 'vite';
4
4
  import analog from '@analogjs/platform';
5
- <% if (isNx) { %>
6
- import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
7
- <% } else { %>
5
+ <% if (!isNx) { %>
8
6
  import viteTsConfigPaths from 'vite-tsconfig-paths';
9
7
  <% } %>
10
8
 
@@ -26,9 +24,7 @@ export default defineConfig(({ mode }) => {
26
24
  routes: []
27
25
  }
28
26
  }),
29
- <% if (isNx) { %>
30
- nxViteTsPaths(),
31
- <% } else { %>
27
+ <% if (!isNx) { %>
32
28
  viteTsConfigPaths(),
33
29
  <% } %>
34
30
  ],
@@ -101,7 +101,6 @@ exports[`preset generator > should match vite.config.ts 1`] = `
101
101
 
102
102
  import analog from '@analogjs/platform';
103
103
  import { defineConfig } from 'vite';
104
- import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
105
104
 
106
105
  import tailwindcss from '@tailwindcss/vite';
107
106
 
@@ -120,7 +119,7 @@ export default defineConfig(({ mode }) => {
120
119
  allow: ['.'],
121
120
  },
122
121
  },
123
- plugins: [tailwindcss(), analog(), nxViteTsPaths()],
122
+ plugins: [tailwindcss(), analog()],
124
123
  test: {
125
124
  globals: true,
126
125
  environment: 'jsdom',
@@ -1,9 +1,6 @@
1
1
  /// <reference types="vitest" />
2
2
 
3
3
  import angular from '@analogjs/vite-plugin-angular';
4
- <% if (addNxPaths) { %>
5
- import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
6
- <% } %>
7
4
  import { defineConfig } from 'vite';
8
5
 
9
6
  // https://vitejs.dev/config/
@@ -11,9 +8,6 @@ export default defineConfig(({ mode }) => {
11
8
  return {
12
9
  plugins: [
13
10
  angular(),
14
- <% if (addNxPaths) { %>
15
- nxViteTsPaths()
16
- <% } %>
17
11
  ],
18
12
  test: {
19
13
  globals: true,
@@ -7,14 +7,11 @@ let semver = require("semver");
7
7
  let node_path = require("node:path");
8
8
  //#region packages/nx-plugin/src/generators/setup-vitest/generator.ts
9
9
  function addFiles(tree, options, majorAngularVersion) {
10
- const projects = (0, _nx_devkit.getProjects)(tree);
11
- const isNx = tree.exists("/nx.json");
12
- const projectConfig = projects.get(options.project);
10
+ const projectConfig = (0, _nx_devkit.getProjects)(tree).get(options.project);
13
11
  if (!projectConfig) throw new Error(`Project "${options.project}" not found.`);
14
12
  const templateOptions = {
15
13
  ...options,
16
14
  majorAngularVersion,
17
- addNxPaths: isNx,
18
15
  template: ""
19
16
  };
20
17
  (0, _nx_devkit.generateFiles)(tree, (0, node_path.join)(__dirname, "files"), projectConfig.root || ".", templateOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","names":[],"sources":["../../../../../../../../nx-plugin/src/generators/setup-vitest/generator.ts"],"sourcesContent":["import {\n formatFiles,\n generateFiles,\n getProjects,\n installPackagesTask,\n Tree,\n} from '@nx/devkit';\nimport { join } from 'node:path';\nimport { coerce, major } from 'semver';\n\nimport { getInstalledPackageVersion } from '../../utils/version-utils';\nimport { addAnalogDependencies } from './lib/add-analog-dependencies';\nimport { updateTestTarget } from './lib/update-test-target';\nimport { updateTsConfig } from './lib/update-tsconfig';\nimport { SetupVitestGeneratorSchema } from './schema';\n\nfunction addFiles(\n tree: Tree,\n options: SetupVitestGeneratorSchema,\n majorAngularVersion: number,\n) {\n const projects = getProjects(tree);\n const isNx = tree.exists('/nx.json');\n\n const projectConfig = projects.get(options.project);\n\n if (!projectConfig) {\n throw new Error(`Project \"${options.project}\" not found.`);\n }\n\n const templateOptions = {\n ...options,\n majorAngularVersion,\n addNxPaths: isNx,\n template: '',\n };\n\n generateFiles(\n tree,\n join(__dirname, 'files'),\n projectConfig.root || '.',\n templateOptions,\n );\n}\n\nasync function setupVitestGenerator(\n tree: Tree,\n options: SetupVitestGeneratorSchema,\n): Promise<() => void> {\n const angularVersion = getInstalledPackageVersion(tree, '@angular/core');\n\n if (!angularVersion) {\n throw new Error('@angular/core is not installed.');\n }\n\n const coercedVersion = coerce(angularVersion);\n\n if (!coercedVersion) {\n throw new Error(`Unable to coerce Angular version: ${angularVersion}`);\n }\n\n const majorAngularVersion = major(coercedVersion);\n\n const nxVersion = getInstalledPackageVersion(tree, 'nx');\n\n addAnalogDependencies(tree, angularVersion, nxVersion ?? '');\n updateTsConfig(tree, options);\n updateTestTarget(tree, options);\n\n addFiles(tree, options, majorAngularVersion);\n\n await formatFiles(tree);\n\n return () => {\n installPackagesTask(tree);\n };\n}\n\nexport default setupVitestGenerator;\n"],"mappings":";;;;;;;;AAgBA,SAAS,SACP,MACA,SACA,qBACA;CACA,MAAM,YAAA,GAAA,WAAA,aAAuB,KAAK;CAClC,MAAM,OAAO,KAAK,OAAO,WAAW;CAEpC,MAAM,gBAAgB,SAAS,IAAI,QAAQ,QAAQ;AAEnD,KAAI,CAAC,cACH,OAAM,IAAI,MAAM,YAAY,QAAQ,QAAQ,cAAc;CAG5D,MAAM,kBAAkB;EACtB,GAAG;EACH;EACA,YAAY;EACZ,UAAU;EACX;AAED,EAAA,GAAA,WAAA,eACE,OAAA,GAAA,UAAA,MACK,WAAW,QAAQ,EACxB,cAAc,QAAQ,KACtB,gBACD;;AAGH,eAAe,qBACb,MACA,SACqB;CACrB,MAAM,iBAAiB,sBAAA,2BAA2B,MAAM,gBAAgB;AAExE,KAAI,CAAC,eACH,OAAM,IAAI,MAAM,kCAAkC;CAGpD,MAAM,kBAAA,GAAA,OAAA,QAAwB,eAAe;AAE7C,KAAI,CAAC,eACH,OAAM,IAAI,MAAM,qCAAqC,iBAAiB;CAGxE,MAAM,uBAAA,GAAA,OAAA,OAA4B,eAAe;AAIjD,iCAAA,sBAAsB,MAAM,gBAFV,sBAAA,2BAA2B,MAAM,KAAK,IAEC,GAAG;AAC5D,yBAAA,eAAe,MAAM,QAAQ;AAC7B,4BAAA,iBAAiB,MAAM,QAAQ;AAE/B,UAAS,MAAM,SAAS,oBAAoB;AAE5C,QAAA,GAAA,WAAA,aAAkB,KAAK;AAEvB,cAAa;AACX,GAAA,GAAA,WAAA,qBAAoB,KAAK"}
1
+ {"version":3,"file":"generator.js","names":[],"sources":["../../../../../../../../nx-plugin/src/generators/setup-vitest/generator.ts"],"sourcesContent":["import {\n formatFiles,\n generateFiles,\n getProjects,\n installPackagesTask,\n Tree,\n} from '@nx/devkit';\nimport { join } from 'node:path';\nimport { coerce, major } from 'semver';\n\nimport { getInstalledPackageVersion } from '../../utils/version-utils';\nimport { addAnalogDependencies } from './lib/add-analog-dependencies';\nimport { updateTestTarget } from './lib/update-test-target';\nimport { updateTsConfig } from './lib/update-tsconfig';\nimport { SetupVitestGeneratorSchema } from './schema';\n\nfunction addFiles(\n tree: Tree,\n options: SetupVitestGeneratorSchema,\n majorAngularVersion: number,\n) {\n const projects = getProjects(tree);\n\n const projectConfig = projects.get(options.project);\n\n if (!projectConfig) {\n throw new Error(`Project \"${options.project}\" not found.`);\n }\n\n const templateOptions = {\n ...options,\n majorAngularVersion,\n template: '',\n };\n\n generateFiles(\n tree,\n join(__dirname, 'files'),\n projectConfig.root || '.',\n templateOptions,\n );\n}\n\nasync function setupVitestGenerator(\n tree: Tree,\n options: SetupVitestGeneratorSchema,\n): Promise<() => void> {\n const angularVersion = getInstalledPackageVersion(tree, '@angular/core');\n\n if (!angularVersion) {\n throw new Error('@angular/core is not installed.');\n }\n\n const coercedVersion = coerce(angularVersion);\n\n if (!coercedVersion) {\n throw new Error(`Unable to coerce Angular version: ${angularVersion}`);\n }\n\n const majorAngularVersion = major(coercedVersion);\n\n const nxVersion = getInstalledPackageVersion(tree, 'nx');\n\n addAnalogDependencies(tree, angularVersion, nxVersion ?? '');\n updateTsConfig(tree, options);\n updateTestTarget(tree, options);\n\n addFiles(tree, options, majorAngularVersion);\n\n await formatFiles(tree);\n\n return () => {\n installPackagesTask(tree);\n };\n}\n\nexport default setupVitestGenerator;\n"],"mappings":";;;;;;;;AAgBA,SAAS,SACP,MACA,SACA,qBACA;CAGA,MAAM,iBAAA,GAAA,WAAA,aAFuB,KAAK,CAEH,IAAI,QAAQ,QAAQ;AAEnD,KAAI,CAAC,cACH,OAAM,IAAI,MAAM,YAAY,QAAQ,QAAQ,cAAc;CAG5D,MAAM,kBAAkB;EACtB,GAAG;EACH;EACA,UAAU;EACX;AAED,EAAA,GAAA,WAAA,eACE,OAAA,GAAA,UAAA,MACK,WAAW,QAAQ,EACxB,cAAc,QAAQ,KACtB,gBACD;;AAGH,eAAe,qBACb,MACA,SACqB;CACrB,MAAM,iBAAiB,sBAAA,2BAA2B,MAAM,gBAAgB;AAExE,KAAI,CAAC,eACH,OAAM,IAAI,MAAM,kCAAkC;CAGpD,MAAM,kBAAA,GAAA,OAAA,QAAwB,eAAe;AAE7C,KAAI,CAAC,eACH,OAAM,IAAI,MAAM,qCAAqC,iBAAiB;CAGxE,MAAM,uBAAA,GAAA,OAAA,OAA4B,eAAe;AAIjD,iCAAA,sBAAsB,MAAM,gBAFV,sBAAA,2BAA2B,MAAM,KAAK,IAEC,GAAG;AAC5D,yBAAA,eAAe,MAAM,QAAQ;AAC7B,4BAAA,iBAAiB,MAAM,QAAQ;AAE/B,UAAS,MAAM,SAAS,oBAAoB;AAE5C,QAAA,GAAA,WAAA,aAAkB,KAAK;AAEvB,cAAa;AACX,GAAA,GAAA,WAAA,qBAAoB,KAAK"}
@@ -1,13 +1,13 @@
1
- export declare const V19_X_ANALOG_JS_ROUTER = "^3.0.0-alpha.26";
2
- export declare const V19_X_ANALOG_JS_CONTENT = "^3.0.0-alpha.26";
1
+ export declare const V19_X_ANALOG_JS_ROUTER = "^3.0.0-alpha.28";
2
+ export declare const V19_X_ANALOG_JS_CONTENT = "^3.0.0-alpha.28";
3
3
  export declare const V19_X_MARKED = "^15.0.7";
4
4
  export declare const V19_X_MARKED_GFM_HEADING_ID = "^4.1.1";
5
5
  export declare const V19_X_MARKED_HIGHLIGHT = "^2.2.1";
6
6
  export declare const V19_X_MARKED_MANGLE = "^1.1.10";
7
7
  export declare const V19_X_PRISMJS = "^1.29.0";
8
- export declare const V19_X_ANALOG_JS_PLATFORM = "^3.0.0-alpha.26";
9
- export declare const V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.26";
10
- export declare const V19_X_ANALOG_JS_VITEST_ANGULAR = "^3.0.0-alpha.26";
8
+ export declare const V19_X_ANALOG_JS_PLATFORM = "^3.0.0-alpha.28";
9
+ export declare const V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.28";
10
+ export declare const V19_X_ANALOG_JS_VITEST_ANGULAR = "^3.0.0-alpha.28";
11
11
  export declare const V19_X_NX_ANGULAR = "^22.0.0";
12
12
  export declare const V19_X_NX_VITE = "^22.0.0";
13
13
  export declare const V19_X_JSDOM = "^22.0.0";
@@ -1,14 +1,14 @@
1
1
  //#region packages/nx-plugin/src/utils/versions/ng_19_X/versions.ts
2
- var V19_X_ANALOG_JS_ROUTER = "^3.0.0-alpha.26";
3
- var V19_X_ANALOG_JS_CONTENT = "^3.0.0-alpha.26";
2
+ var V19_X_ANALOG_JS_ROUTER = "^3.0.0-alpha.28";
3
+ var V19_X_ANALOG_JS_CONTENT = "^3.0.0-alpha.28";
4
4
  var V19_X_MARKED = "^15.0.7";
5
5
  var V19_X_MARKED_GFM_HEADING_ID = "^4.1.1";
6
6
  var V19_X_MARKED_HIGHLIGHT = "^2.2.1";
7
7
  var V19_X_MARKED_MANGLE = "^1.1.10";
8
8
  var V19_X_PRISMJS = "^1.29.0";
9
- var V19_X_ANALOG_JS_PLATFORM = "^3.0.0-alpha.26";
10
- var V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.26";
11
- var V19_X_ANALOG_JS_VITEST_ANGULAR = "^3.0.0-alpha.26";
9
+ var V19_X_ANALOG_JS_PLATFORM = "^3.0.0-alpha.28";
10
+ var V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.28";
11
+ var V19_X_ANALOG_JS_VITEST_ANGULAR = "^3.0.0-alpha.28";
12
12
  var V19_X_NX_VITE = "^22.0.0";
13
13
  var V19_X_JSDOM = "^22.0.0";
14
14
  var V19_X_VITE_TSCONFIG_PATHS = "^4.2.0";
@@ -1 +1 @@
1
- {"version":3,"file":"versions.js","names":[],"sources":["../../../../../../../../../nx-plugin/src/utils/versions/ng_19_X/versions.ts"],"sourcesContent":["// V19_X\nexport const V19_X_ANALOG_JS_ROUTER = '^3.0.0-alpha.26';\nexport const V19_X_ANALOG_JS_CONTENT = '^3.0.0-alpha.26';\nexport const V19_X_MARKED = '^15.0.7';\nexport const V19_X_MARKED_GFM_HEADING_ID = '^4.1.1';\nexport const V19_X_MARKED_HIGHLIGHT = '^2.2.1';\nexport const V19_X_MARKED_MANGLE = '^1.1.10';\nexport const V19_X_PRISMJS = '^1.29.0';\n\n// devDependencies\nexport const V19_X_ANALOG_JS_PLATFORM = '^3.0.0-alpha.26';\nexport const V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.26';\nexport const V19_X_ANALOG_JS_VITEST_ANGULAR = '^3.0.0-alpha.26';\nexport const V19_X_NX_ANGULAR = '^22.0.0';\nexport const V19_X_NX_VITE = '^22.0.0';\nexport const V19_X_JSDOM = '^22.0.0';\nexport const V19_X_VITE_TSCONFIG_PATHS = '^4.2.0';\nexport const V19_X_VITEST = '^3.0.0';\nexport const V19_X_VITE = '^6.0.0';\nexport const NX_X_LATEST_VITE = '^8.0.0';\nexport const NX_X_LATEST_VITEST = '^4.0.0';\n"],"mappings":";AACA,IAAa,yBAAyB;AACtC,IAAa,0BAA0B;AACvC,IAAa,eAAe;AAC5B,IAAa,8BAA8B;AAC3C,IAAa,yBAAyB;AACtC,IAAa,sBAAsB;AACnC,IAAa,gBAAgB;AAG7B,IAAa,2BAA2B;AACxC,IAAa,sCAAsC;AACnD,IAAa,iCAAiC;AAE9C,IAAa,gBAAgB;AAC7B,IAAa,cAAc;AAC3B,IAAa,4BAA4B;AACzC,IAAa,eAAe;AAC5B,IAAa,aAAa;AAC1B,IAAa,mBAAmB;AAChC,IAAa,qBAAqB"}
1
+ {"version":3,"file":"versions.js","names":[],"sources":["../../../../../../../../../nx-plugin/src/utils/versions/ng_19_X/versions.ts"],"sourcesContent":["// V19_X\nexport const V19_X_ANALOG_JS_ROUTER = '^3.0.0-alpha.28';\nexport const V19_X_ANALOG_JS_CONTENT = '^3.0.0-alpha.28';\nexport const V19_X_MARKED = '^15.0.7';\nexport const V19_X_MARKED_GFM_HEADING_ID = '^4.1.1';\nexport const V19_X_MARKED_HIGHLIGHT = '^2.2.1';\nexport const V19_X_MARKED_MANGLE = '^1.1.10';\nexport const V19_X_PRISMJS = '^1.29.0';\n\n// devDependencies\nexport const V19_X_ANALOG_JS_PLATFORM = '^3.0.0-alpha.28';\nexport const V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.28';\nexport const V19_X_ANALOG_JS_VITEST_ANGULAR = '^3.0.0-alpha.28';\nexport const V19_X_NX_ANGULAR = '^22.0.0';\nexport const V19_X_NX_VITE = '^22.0.0';\nexport const V19_X_JSDOM = '^22.0.0';\nexport const V19_X_VITE_TSCONFIG_PATHS = '^4.2.0';\nexport const V19_X_VITEST = '^3.0.0';\nexport const V19_X_VITE = '^6.0.0';\nexport const NX_X_LATEST_VITE = '^8.0.0';\nexport const NX_X_LATEST_VITEST = '^4.0.0';\n"],"mappings":";AACA,IAAa,yBAAyB;AACtC,IAAa,0BAA0B;AACvC,IAAa,eAAe;AAC5B,IAAa,8BAA8B;AAC3C,IAAa,yBAAyB;AACtC,IAAa,sBAAsB;AACnC,IAAa,gBAAgB;AAG7B,IAAa,2BAA2B;AACxC,IAAa,sCAAsC;AACnD,IAAa,iCAAiC;AAE9C,IAAa,gBAAgB;AAC7B,IAAa,cAAc;AAC3B,IAAa,4BAA4B;AACzC,IAAa,eAAe;AAC5B,IAAa,aAAa;AAC1B,IAAa,mBAAmB;AAChC,IAAa,qBAAqB"}
@@ -98,7 +98,7 @@ export interface Options {
98
98
  additionalAPIDirs?: string[];
99
99
  /**
100
100
  * Automatically discover route directories (pages, content, API) in
101
- * workspace libraries by scanning tsconfig.base.json path aliases.
101
+ * workspace libraries by scanning `libs/**` directories directly.
102
102
  *
103
103
  * Discovered directories are merged with any explicit
104
104
  * `additionalPagesDirs`, `additionalContentDirs`, and