@analogjs/vitest-angular 3.0.0-alpha.12 → 3.0.0-alpha.14
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/_virtual/{_@oxc-project_runtime@0.120.0 → _@oxc-project_runtime@0.121.0}/helpers/decorate.js +1 -1
- package/package.json +2 -2
- package/setup-testbed.js +1 -1
- package/src/lib/tools/collection.json +2 -2
- package/src/lib/tools/index.d.ts +1 -0
- package/src/lib/tools/schematics/setup/index.d.ts +3 -0
- package/src/lib/tools/schematics/setup/index.js.map +1 -0
- package/src/lib/tools/schematics/utils/angular.d.ts +3 -0
- package/src/lib/tools/schematics/utils/angular.js.map +1 -0
- package/src/lib/tools/schematics/utils/dependencies.d.ts +6 -0
- package/src/lib/tools/schematics/utils/dependencies.js.map +1 -0
- package/src/lib/tools/schematics/utils/index.d.ts +4 -0
- package/src/lib/tools/schematics/utils/versions.d.ts +7 -0
- package/src/lib/tools/{src/schematics → schematics}/utils/versions.js +1 -1
- package/src/lib/tools/schematics/utils/versions.js.map +1 -0
- package/src/lib/tools/schematics/utils/workspace.d.ts +15 -0
- package/src/lib/tools/schematics/utils/workspace.js.map +1 -0
- package/src/lib/tools/src/schematics/utils/versions.d.ts +1 -1
- package/src/lib/tools/src/schematics/setup/index.js.map +0 -1
- package/src/lib/tools/src/schematics/utils/angular.js.map +0 -1
- package/src/lib/tools/src/schematics/utils/dependencies.js.map +0 -1
- package/src/lib/tools/src/schematics/utils/versions.js.map +0 -1
- package/src/lib/tools/src/schematics/utils/workspace.js.map +0 -1
- /package/src/lib/tools/{src/index.js → index.js} +0 -0
- /package/src/lib/tools/{src/schematics → schematics}/jsonc-parser.d.ts +0 -0
- /package/src/lib/tools/{src/schematics → schematics}/semver.d.ts +0 -0
- /package/src/lib/tools/{src/schematics → schematics}/setup/files/src/test-setup.ts.template +0 -0
- /package/src/lib/tools/{src/schematics → schematics}/setup/files/vite.config.mts.template +0 -0
- /package/src/lib/tools/{src/schematics → schematics}/setup/index.js +0 -0
- /package/src/lib/tools/{src/schematics → schematics}/setup/schema.d.ts +0 -0
- /package/src/lib/tools/{src/schematics → schematics}/setup/schema.json +0 -0
- /package/src/lib/tools/{src/schematics → schematics}/utils/angular.js +0 -0
- /package/src/lib/tools/{src/schematics → schematics}/utils/dependencies.js +0 -0
- /package/src/lib/tools/{src/schematics → schematics}/utils/index.js +0 -0
- /package/src/lib/tools/{src/schematics → schematics}/utils/workspace.js +0 -0
package/_virtual/{_@oxc-project_runtime@0.120.0 → _@oxc-project_runtime@0.121.0}/helpers/decorate.js
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region \0@oxc-project+runtime@0.
|
|
1
|
+
//#region \0@oxc-project+runtime@0.121.0/helpers/decorate.js
|
|
2
2
|
function __decorate(decorators, target, key, desc) {
|
|
3
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@analogjs/vitest-angular",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.14",
|
|
4
4
|
"description": "Vitest Builder for Angular",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "Brandon Roberts <robertsbt@gmail.com>",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"save": "devDependencies"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"oxc-transform": "^0.
|
|
39
|
+
"oxc-transform": "^0.121.0"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"@analogjs/vite-plugin-angular": "*",
|
package/setup-testbed.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __decorate } from "./_virtual/_@oxc-project_runtime@0.
|
|
1
|
+
import { __decorate } from "./_virtual/_@oxc-project_runtime@0.121.0/helpers/decorate.js";
|
|
2
2
|
import { NgModule, provideZonelessChangeDetection } from "@angular/core";
|
|
3
3
|
import { getTestBed, ɵgetCleanupHook } from "@angular/core/testing";
|
|
4
4
|
import { BrowserTestingModule, platformBrowserTesting } from "@angular/platform-browser/testing";
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"schematics": {
|
|
4
4
|
"setup": {
|
|
5
5
|
"description": "Configure Vitest for an Angular project",
|
|
6
|
-
"factory": "./
|
|
7
|
-
"schema": "./
|
|
6
|
+
"factory": "./schematics/setup/index#setupSchematic",
|
|
7
|
+
"schema": "./schematics/setup/schema.json"
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { setupSchematic } from "./schematics/setup/index";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../../packages/vitest-angular-tools/src/schematics/setup/index.ts"],"sourcesContent":["import {\n Rule,\n Tree,\n apply,\n url,\n applyTemplates,\n move,\n chain,\n mergeWith,\n SchematicContext,\n} from '@angular-devkit/schematics';\nimport { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';\nimport { parse } from 'jsonc-parser';\nimport {\n getAngularVersion,\n getMajorAngularVersion,\n getWorkspace,\n getProject,\n addDevDependencies,\n isNxWorkspace,\n} from '../utils';\nimport { Schema } from './schema';\n\nfunction updateTsConfigSpec(tree: Tree, projectRoot: string): void {\n const tsConfigPath = projectRoot\n ? `${projectRoot}/tsconfig.spec.json`\n : 'tsconfig.spec.json';\n\n if (!tree.exists(tsConfigPath)) {\n return;\n }\n\n const tsConfigContent = tree.read(tsConfigPath);\n if (!tsConfigContent) {\n return;\n }\n\n const tsConfig = parse(tsConfigContent.toString('utf-8')) as Record<\n string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any\n >;\n\n tsConfig.compilerOptions = tsConfig.compilerOptions || {};\n\n // Remove module (let Vite handle it)\n delete tsConfig.compilerOptions.module;\n\n // Set target to es2022\n tsConfig.compilerOptions.target = 'es2022';\n\n // Update types: remove jest, add vitest/globals\n const types: string[] = tsConfig.compilerOptions.types || ['node'];\n const filteredTypes = types.filter(\n (t: string) => t !== 'jest' && t !== 'jasmine',\n );\n if (!filteredTypes.includes('vitest/globals')) {\n filteredTypes.push('vitest/globals');\n }\n tsConfig.compilerOptions.types = filteredTypes;\n\n // Set files to include test-setup.ts\n tsConfig.files = ['src/test-setup.ts'];\n\n tree.overwrite(tsConfigPath, JSON.stringify(tsConfig, null, 2) + '\\n');\n}\n\nfunction updateAngularJson(tree: Tree, projectName: string): void {\n const workspace = getWorkspace(tree);\n const project = workspace.projects[projectName];\n\n if (!project.architect) {\n project.architect = {};\n }\n\n project.architect['test'] = {\n builder: '@analogjs/vitest-angular:test',\n };\n\n tree.overwrite('angular.json', JSON.stringify(workspace, null, 2) + '\\n');\n}\n\nfunction generateFiles(\n projectRoot: string,\n majorAngularVersion: number,\n isNx: boolean,\n browserMode: boolean,\n): Rule {\n return mergeWith(\n apply(url('./files'), [\n applyTemplates({\n majorAngularVersion,\n isNx,\n browserMode,\n }),\n move(projectRoot),\n ]),\n );\n}\n\nexport function setupSchematic(options: Schema): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const angularVersion = getAngularVersion(tree);\n const majorAngularVersion = getMajorAngularVersion(angularVersion);\n\n const workspace = getWorkspace(tree);\n const project = getProject(workspace, options.project);\n const projectRoot = project.root || '';\n const isNx = isNxWorkspace(tree);\n\n const browserMode = options.browserMode ?? false;\n\n // Add devDependencies\n addDevDependencies(tree, angularVersion, { browserMode });\n\n // Update tsconfig.spec.json (if exists)\n updateTsConfigSpec(tree, projectRoot);\n\n // Update angular.json test target\n updateAngularJson(tree, options.project);\n\n // Schedule package install\n context.addTask(new NodePackageInstallTask());\n\n // Generate files\n return chain([\n generateFiles(projectRoot, majorAngularVersion, isNx, browserMode),\n ]);\n };\n}\n"],"mappings":";;;;;;;;AAuBA,SAAS,mBAAmB,MAAY,aAA2B;CACjE,MAAM,eAAe,cACjB,GAAG,YAAY,uBACf;AAEJ,KAAI,CAAC,KAAK,OAAO,aAAa,CAC5B;CAGF,MAAM,kBAAkB,KAAK,KAAK,aAAa;AAC/C,KAAI,CAAC,gBACH;CAGF,MAAM,YAAA,GAAA,aAAA,OAAiB,gBAAgB,SAAS,QAAQ,CAAC;AAMzD,UAAS,kBAAkB,SAAS,mBAAmB,EAAE;AAGzD,QAAO,SAAS,gBAAgB;AAGhC,UAAS,gBAAgB,SAAS;CAIlC,MAAM,iBADkB,SAAS,gBAAgB,SAAS,CAAC,OAAO,EACtC,QACzB,MAAc,MAAM,UAAU,MAAM,UACtC;AACD,KAAI,CAAC,cAAc,SAAS,iBAAiB,CAC3C,eAAc,KAAK,iBAAiB;AAEtC,UAAS,gBAAgB,QAAQ;AAGjC,UAAS,QAAQ,CAAC,oBAAoB;AAEtC,MAAK,UAAU,cAAc,KAAK,UAAU,UAAU,MAAM,EAAE,GAAG,KAAK;;AAGxE,SAAS,kBAAkB,MAAY,aAA2B;CAChE,MAAM,YAAY,kBAAA,aAAa,KAAK;CACpC,MAAM,UAAU,UAAU,SAAS;AAEnC,KAAI,CAAC,QAAQ,UACX,SAAQ,YAAY,EAAE;AAGxB,SAAQ,UAAU,UAAU,EAC1B,SAAS,iCACV;AAED,MAAK,UAAU,gBAAgB,KAAK,UAAU,WAAW,MAAM,EAAE,GAAG,KAAK;;AAG3E,SAAS,cACP,aACA,qBACA,MACA,aACM;AACN,SAAA,GAAA,2BAAA,YAAA,GAAA,2BAAA,QAAA,GAAA,2BAAA,KACY,UAAU,EAAE,EAAA,GAAA,2BAAA,gBACL;EACb;EACA;EACA;EACD,CAAC,GAAA,GAAA,2BAAA,MACG,YAAY,CAClB,CAAC,CACH;;AAGH,SAAgB,eAAe,SAAuB;AACpD,SAAQ,MAAY,YAA8B;EAChD,MAAM,iBAAiB,gBAAA,kBAAkB,KAAK;EAC9C,MAAM,sBAAsB,gBAAA,uBAAuB,eAAe;EAIlE,MAAM,cADU,kBAAA,WADE,kBAAA,aAAa,KAAK,EACE,QAAQ,QAAQ,CAC1B,QAAQ;EACpC,MAAM,OAAO,kBAAA,cAAc,KAAK;EAEhC,MAAM,cAAc,QAAQ,eAAe;AAG3C,uBAAA,mBAAmB,MAAM,gBAAgB,EAAE,aAAa,CAAC;AAGzD,qBAAmB,MAAM,YAAY;AAGrC,oBAAkB,MAAM,QAAQ,QAAQ;AAGxC,UAAQ,QAAQ,IAAI,iCAAA,wBAAwB,CAAC;AAG7C,UAAA,GAAA,2BAAA,OAAa,CACX,cAAc,aAAa,qBAAqB,MAAM,YAAY,CACnE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"angular.js","names":[],"sources":["../../../../../../../../packages/vitest-angular-tools/src/schematics/utils/angular.ts"],"sourcesContent":["import { Tree, SchematicsException } from '@angular-devkit/schematics';\nimport { coerce, major } from 'semver';\n\nexport function getAngularVersion(tree: Tree): string {\n const packageJson = tree.read('package.json');\n if (!packageJson) {\n throw new SchematicsException('Could not find package.json');\n }\n\n const pkg = JSON.parse(packageJson.toString('utf-8'));\n const angularVersion =\n pkg.dependencies?.['@angular/core'] ||\n pkg.devDependencies?.['@angular/core'];\n\n if (!angularVersion) {\n throw new SchematicsException(\n 'Could not find @angular/core in package.json',\n );\n }\n\n return angularVersion;\n}\n\nexport function getMajorAngularVersion(angularVersion: string): number {\n const coerced = coerce(angularVersion);\n if (!coerced) {\n throw new SchematicsException(\n `Could not parse Angular version: ${angularVersion}`,\n );\n }\n return major(coerced);\n}\n"],"mappings":";;;AAGA,SAAgB,kBAAkB,MAAoB;CACpD,MAAM,cAAc,KAAK,KAAK,eAAe;AAC7C,KAAI,CAAC,YACH,OAAM,IAAI,2BAAA,oBAAoB,8BAA8B;CAG9D,MAAM,MAAM,KAAK,MAAM,YAAY,SAAS,QAAQ,CAAC;CACrD,MAAM,iBACJ,IAAI,eAAe,oBACnB,IAAI,kBAAkB;AAExB,KAAI,CAAC,eACH,OAAM,IAAI,2BAAA,oBACR,+CACD;AAGH,QAAO;;AAGT,SAAgB,uBAAuB,gBAAgC;CACrE,MAAM,WAAA,GAAA,OAAA,QAAiB,eAAe;AACtC,KAAI,CAAC,QACH,OAAM,IAAI,2BAAA,oBACR,oCAAoC,iBACrC;AAEH,SAAA,GAAA,OAAA,OAAa,QAAQ"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Tree } from "@angular-devkit/schematics";
|
|
2
|
+
export interface DependencyOptions {
|
|
3
|
+
browserMode?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function getDevDependencies(angularVersion: string, options?: DependencyOptions): Record<string, string>;
|
|
6
|
+
export declare function addDevDependencies(tree: Tree, angularVersion: string, options?: DependencyOptions): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencies.js","names":[],"sources":["../../../../../../../../packages/vitest-angular-tools/src/schematics/utils/dependencies.ts"],"sourcesContent":["import { Tree, SchematicsException } from '@angular-devkit/schematics';\nimport { lt } from 'semver';\nimport {\n ANALOG_JS_VITE_PLUGIN_ANGULAR,\n JSDOM,\n PLAYWRIGHT,\n VITE,\n VITE_TSCONFIG_PATHS,\n VITEST_BROWSER_PLAYWRIGHT,\n VITEST_V4,\n} from './versions';\n\nexport interface DependencyOptions {\n browserMode?: boolean;\n}\n\nexport function getDevDependencies(\n angularVersion: string,\n options: DependencyOptions = {},\n): Record<string, string> {\n const escapedVersion = angularVersion.replace(/[~^]/, '');\n\n if (lt(escapedVersion, '17.0.0')) {\n throw new SchematicsException('Angular v17.0.0 or newer is required.');\n }\n\n const deps: Record<string, string> = {\n '@analogjs/vite-plugin-angular': ANALOG_JS_VITE_PLUGIN_ANGULAR,\n vite: VITE,\n vitest: VITEST_V4,\n 'vite-tsconfig-paths': VITE_TSCONFIG_PATHS,\n };\n\n if (options.browserMode) {\n deps['@vitest/browser-playwright'] = VITEST_BROWSER_PLAYWRIGHT;\n deps['playwright'] = PLAYWRIGHT;\n } else {\n deps['jsdom'] = JSDOM;\n }\n\n return deps;\n}\n\nexport function addDevDependencies(\n tree: Tree,\n angularVersion: string,\n options: DependencyOptions = {},\n): void {\n const packageJsonPath = 'package.json';\n const packageJson = tree.read(packageJsonPath);\n if (!packageJson) {\n throw new SchematicsException('Could not find package.json');\n }\n\n const pkg = JSON.parse(packageJson.toString('utf-8'));\n const devDeps = getDevDependencies(angularVersion, options);\n\n pkg.devDependencies = pkg.devDependencies || {};\n Object.entries(devDeps).forEach(([name, version]) => {\n pkg.devDependencies[name] = version;\n });\n\n // Sort devDependencies alphabetically\n pkg.devDependencies = Object.keys(pkg.devDependencies)\n .sort()\n .reduce((acc: Record<string, string>, key) => {\n acc[key] = pkg.devDependencies[key];\n return acc;\n }, {});\n\n tree.overwrite(packageJsonPath, JSON.stringify(pkg, null, 2) + '\\n');\n}\n"],"mappings":";;;;AAgBA,SAAgB,mBACd,gBACA,UAA6B,EAAE,EACP;AAGxB,MAAA,GAAA,OAAA,IAFuB,eAAe,QAAQ,QAAQ,GAAG,EAElC,SAAS,CAC9B,OAAM,IAAI,2BAAA,oBAAoB,wCAAwC;CAGxE,MAAM,OAA+B;EACnC,iCAAiC,iBAAA;EACjC,MAAM,iBAAA;EACN,QAAQ,iBAAA;EACR,uBAAuB,iBAAA;EACxB;AAED,KAAI,QAAQ,aAAa;AACvB,OAAK,gCAAgC,iBAAA;AACrC,OAAK,gBAAgB,iBAAA;OAErB,MAAK,WAAW,iBAAA;AAGlB,QAAO;;AAGT,SAAgB,mBACd,MACA,gBACA,UAA6B,EAAE,EACzB;CACN,MAAM,kBAAkB;CACxB,MAAM,cAAc,KAAK,KAAK,gBAAgB;AAC9C,KAAI,CAAC,YACH,OAAM,IAAI,2BAAA,oBAAoB,8BAA8B;CAG9D,MAAM,MAAM,KAAK,MAAM,YAAY,SAAS,QAAQ,CAAC;CACrD,MAAM,UAAU,mBAAmB,gBAAgB,QAAQ;AAE3D,KAAI,kBAAkB,IAAI,mBAAmB,EAAE;AAC/C,QAAO,QAAQ,QAAQ,CAAC,SAAS,CAAC,MAAM,aAAa;AACnD,MAAI,gBAAgB,QAAQ;GAC5B;AAGF,KAAI,kBAAkB,OAAO,KAAK,IAAI,gBAAgB,CACnD,MAAM,CACN,QAAQ,KAA6B,QAAQ;AAC5C,MAAI,OAAO,IAAI,gBAAgB;AAC/B,SAAO;IACN,EAAE,CAAC;AAER,MAAK,UAAU,iBAAiB,KAAK,UAAU,KAAK,MAAM,EAAE,GAAG,KAAK"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.14";
|
|
2
|
+
export declare const JSDOM = "^22.0.0";
|
|
3
|
+
export declare const VITE_TSCONFIG_PATHS = "^4.2.0";
|
|
4
|
+
export declare const VITE = "^7.0.0";
|
|
5
|
+
export declare const VITEST_V4 = "^4.0.0";
|
|
6
|
+
export declare const VITEST_BROWSER_PLAYWRIGHT = "^4.0.0";
|
|
7
|
+
export declare const PLAYWRIGHT = "^1.54.0";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//#region packages/vitest-angular-tools/src/schematics/utils/versions.ts
|
|
2
|
-
var ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.
|
|
2
|
+
var ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.14";
|
|
3
3
|
var JSDOM = "^22.0.0";
|
|
4
4
|
var VITE_TSCONFIG_PATHS = "^4.2.0";
|
|
5
5
|
var VITE = "^7.0.0";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.js","names":[],"sources":["../../../../../../../../packages/vitest-angular-tools/src/schematics/utils/versions.ts"],"sourcesContent":["// Version constants (Angular 20+)\nexport const ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.14';\nexport const JSDOM = '^22.0.0';\nexport const VITE_TSCONFIG_PATHS = '^4.2.0';\nexport const VITE = '^7.0.0';\nexport const VITEST_V4 = '^4.0.0';\n\n// Browser mode dependencies\nexport const VITEST_BROWSER_PLAYWRIGHT = '^4.0.0';\nexport const PLAYWRIGHT = '^1.54.0';\n"],"mappings":";AACA,IAAa,gCAAgC;AAC7C,IAAa,QAAQ;AACrB,IAAa,sBAAsB;AACnC,IAAa,OAAO;AACpB,IAAa,YAAY;AAGzB,IAAa,4BAA4B;AACzC,IAAa,aAAa"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Tree } from "@angular-devkit/schematics";
|
|
2
|
+
export declare function isNxWorkspace(tree: Tree): boolean;
|
|
3
|
+
export interface WorkspaceProject {
|
|
4
|
+
root: string;
|
|
5
|
+
sourceRoot?: string;
|
|
6
|
+
architect?: Record<string, {
|
|
7
|
+
builder?: string;
|
|
8
|
+
options?: Record<string, unknown>;
|
|
9
|
+
}>;
|
|
10
|
+
}
|
|
11
|
+
export interface WorkspaceSchema {
|
|
12
|
+
projects: Record<string, WorkspaceProject>;
|
|
13
|
+
}
|
|
14
|
+
export declare function getWorkspace(tree: Tree): WorkspaceSchema;
|
|
15
|
+
export declare function getProject(workspace: WorkspaceSchema, projectName: string): WorkspaceProject;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace.js","names":[],"sources":["../../../../../../../../packages/vitest-angular-tools/src/schematics/utils/workspace.ts"],"sourcesContent":["import { Tree, SchematicsException } from '@angular-devkit/schematics';\n\nexport function isNxWorkspace(tree: Tree): boolean {\n return tree.exists('/nx.json');\n}\n\nexport interface WorkspaceProject {\n root: string;\n sourceRoot?: string;\n architect?: Record<\n string,\n { builder?: string; options?: Record<string, unknown> }\n >;\n}\n\nexport interface WorkspaceSchema {\n projects: Record<string, WorkspaceProject>;\n}\n\nexport function getWorkspace(tree: Tree): WorkspaceSchema {\n const workspaceFile = tree.read('angular.json');\n if (!workspaceFile) {\n throw new SchematicsException('Could not find angular.json');\n }\n return JSON.parse(workspaceFile.toString('utf-8'));\n}\n\nexport function getProject(\n workspace: WorkspaceSchema,\n projectName: string,\n): WorkspaceProject {\n const project = workspace.projects[projectName];\n if (!project) {\n throw new SchematicsException(\n `Project \"${projectName}\" not found in angular.json`,\n );\n }\n return project;\n}\n"],"mappings":";;AAEA,SAAgB,cAAc,MAAqB;AACjD,QAAO,KAAK,OAAO,WAAW;;AAgBhC,SAAgB,aAAa,MAA6B;CACxD,MAAM,gBAAgB,KAAK,KAAK,eAAe;AAC/C,KAAI,CAAC,cACH,OAAM,IAAI,2BAAA,oBAAoB,8BAA8B;AAE9D,QAAO,KAAK,MAAM,cAAc,SAAS,QAAQ,CAAC;;AAGpD,SAAgB,WACd,WACA,aACkB;CAClB,MAAM,UAAU,UAAU,SAAS;AACnC,KAAI,CAAC,QACH,OAAM,IAAI,2BAAA,oBACR,YAAY,YAAY,6BACzB;AAEH,QAAO"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.
|
|
1
|
+
export declare const ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.14";
|
|
2
2
|
export declare const JSDOM = "^22.0.0";
|
|
3
3
|
export declare const VITE_TSCONFIG_PATHS = "^4.2.0";
|
|
4
4
|
export declare const VITE = "^7.0.0";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../../../packages/vitest-angular-tools/src/schematics/setup/index.ts"],"sourcesContent":["import {\n Rule,\n Tree,\n apply,\n url,\n applyTemplates,\n move,\n chain,\n mergeWith,\n SchematicContext,\n} from '@angular-devkit/schematics';\nimport { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';\nimport { parse } from 'jsonc-parser';\nimport {\n getAngularVersion,\n getMajorAngularVersion,\n getWorkspace,\n getProject,\n addDevDependencies,\n isNxWorkspace,\n} from '../utils';\nimport { Schema } from './schema';\n\nfunction updateTsConfigSpec(tree: Tree, projectRoot: string): void {\n const tsConfigPath = projectRoot\n ? `${projectRoot}/tsconfig.spec.json`\n : 'tsconfig.spec.json';\n\n if (!tree.exists(tsConfigPath)) {\n return;\n }\n\n const tsConfigContent = tree.read(tsConfigPath);\n if (!tsConfigContent) {\n return;\n }\n\n const tsConfig = parse(tsConfigContent.toString('utf-8')) as Record<\n string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n any\n >;\n\n tsConfig.compilerOptions = tsConfig.compilerOptions || {};\n\n // Remove module (let Vite handle it)\n delete tsConfig.compilerOptions.module;\n\n // Set target to es2022\n tsConfig.compilerOptions.target = 'es2022';\n\n // Update types: remove jest, add vitest/globals\n const types: string[] = tsConfig.compilerOptions.types || ['node'];\n const filteredTypes = types.filter(\n (t: string) => t !== 'jest' && t !== 'jasmine',\n );\n if (!filteredTypes.includes('vitest/globals')) {\n filteredTypes.push('vitest/globals');\n }\n tsConfig.compilerOptions.types = filteredTypes;\n\n // Set files to include test-setup.ts\n tsConfig.files = ['src/test-setup.ts'];\n\n tree.overwrite(tsConfigPath, JSON.stringify(tsConfig, null, 2) + '\\n');\n}\n\nfunction updateAngularJson(tree: Tree, projectName: string): void {\n const workspace = getWorkspace(tree);\n const project = workspace.projects[projectName];\n\n if (!project.architect) {\n project.architect = {};\n }\n\n project.architect['test'] = {\n builder: '@analogjs/vitest-angular:test',\n };\n\n tree.overwrite('angular.json', JSON.stringify(workspace, null, 2) + '\\n');\n}\n\nfunction generateFiles(\n projectRoot: string,\n majorAngularVersion: number,\n isNx: boolean,\n browserMode: boolean,\n): Rule {\n return mergeWith(\n apply(url('./files'), [\n applyTemplates({\n majorAngularVersion,\n isNx,\n browserMode,\n }),\n move(projectRoot),\n ]),\n );\n}\n\nexport function setupSchematic(options: Schema): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const angularVersion = getAngularVersion(tree);\n const majorAngularVersion = getMajorAngularVersion(angularVersion);\n\n const workspace = getWorkspace(tree);\n const project = getProject(workspace, options.project);\n const projectRoot = project.root || '';\n const isNx = isNxWorkspace(tree);\n\n const browserMode = options.browserMode ?? false;\n\n // Add devDependencies\n addDevDependencies(tree, angularVersion, { browserMode });\n\n // Update tsconfig.spec.json (if exists)\n updateTsConfigSpec(tree, projectRoot);\n\n // Update angular.json test target\n updateAngularJson(tree, options.project);\n\n // Schedule package install\n context.addTask(new NodePackageInstallTask());\n\n // Generate files\n return chain([\n generateFiles(projectRoot, majorAngularVersion, isNx, browserMode),\n ]);\n };\n}\n"],"mappings":";;;;;;;;AAuBA,SAAS,mBAAmB,MAAY,aAA2B;CACjE,MAAM,eAAe,cACjB,GAAG,YAAY,uBACf;AAEJ,KAAI,CAAC,KAAK,OAAO,aAAa,CAC5B;CAGF,MAAM,kBAAkB,KAAK,KAAK,aAAa;AAC/C,KAAI,CAAC,gBACH;CAGF,MAAM,YAAA,GAAA,aAAA,OAAiB,gBAAgB,SAAS,QAAQ,CAAC;AAMzD,UAAS,kBAAkB,SAAS,mBAAmB,EAAE;AAGzD,QAAO,SAAS,gBAAgB;AAGhC,UAAS,gBAAgB,SAAS;CAIlC,MAAM,iBADkB,SAAS,gBAAgB,SAAS,CAAC,OAAO,EACtC,QACzB,MAAc,MAAM,UAAU,MAAM,UACtC;AACD,KAAI,CAAC,cAAc,SAAS,iBAAiB,CAC3C,eAAc,KAAK,iBAAiB;AAEtC,UAAS,gBAAgB,QAAQ;AAGjC,UAAS,QAAQ,CAAC,oBAAoB;AAEtC,MAAK,UAAU,cAAc,KAAK,UAAU,UAAU,MAAM,EAAE,GAAG,KAAK;;AAGxE,SAAS,kBAAkB,MAAY,aAA2B;CAChE,MAAM,YAAY,kBAAA,aAAa,KAAK;CACpC,MAAM,UAAU,UAAU,SAAS;AAEnC,KAAI,CAAC,QAAQ,UACX,SAAQ,YAAY,EAAE;AAGxB,SAAQ,UAAU,UAAU,EAC1B,SAAS,iCACV;AAED,MAAK,UAAU,gBAAgB,KAAK,UAAU,WAAW,MAAM,EAAE,GAAG,KAAK;;AAG3E,SAAS,cACP,aACA,qBACA,MACA,aACM;AACN,SAAA,GAAA,2BAAA,YAAA,GAAA,2BAAA,QAAA,GAAA,2BAAA,KACY,UAAU,EAAE,EAAA,GAAA,2BAAA,gBACL;EACb;EACA;EACA;EACD,CAAC,GAAA,GAAA,2BAAA,MACG,YAAY,CAClB,CAAC,CACH;;AAGH,SAAgB,eAAe,SAAuB;AACpD,SAAQ,MAAY,YAA8B;EAChD,MAAM,iBAAiB,gBAAA,kBAAkB,KAAK;EAC9C,MAAM,sBAAsB,gBAAA,uBAAuB,eAAe;EAIlE,MAAM,cADU,kBAAA,WADE,kBAAA,aAAa,KAAK,EACE,QAAQ,QAAQ,CAC1B,QAAQ;EACpC,MAAM,OAAO,kBAAA,cAAc,KAAK;EAEhC,MAAM,cAAc,QAAQ,eAAe;AAG3C,uBAAA,mBAAmB,MAAM,gBAAgB,EAAE,aAAa,CAAC;AAGzD,qBAAmB,MAAM,YAAY;AAGrC,oBAAkB,MAAM,QAAQ,QAAQ;AAGxC,UAAQ,QAAQ,IAAI,iCAAA,wBAAwB,CAAC;AAG7C,UAAA,GAAA,2BAAA,OAAa,CACX,cAAc,aAAa,qBAAqB,MAAM,YAAY,CACnE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"angular.js","names":[],"sources":["../../../../../../../../../packages/vitest-angular-tools/src/schematics/utils/angular.ts"],"sourcesContent":["import { Tree, SchematicsException } from '@angular-devkit/schematics';\nimport { coerce, major } from 'semver';\n\nexport function getAngularVersion(tree: Tree): string {\n const packageJson = tree.read('package.json');\n if (!packageJson) {\n throw new SchematicsException('Could not find package.json');\n }\n\n const pkg = JSON.parse(packageJson.toString('utf-8'));\n const angularVersion =\n pkg.dependencies?.['@angular/core'] ||\n pkg.devDependencies?.['@angular/core'];\n\n if (!angularVersion) {\n throw new SchematicsException(\n 'Could not find @angular/core in package.json',\n );\n }\n\n return angularVersion;\n}\n\nexport function getMajorAngularVersion(angularVersion: string): number {\n const coerced = coerce(angularVersion);\n if (!coerced) {\n throw new SchematicsException(\n `Could not parse Angular version: ${angularVersion}`,\n );\n }\n return major(coerced);\n}\n"],"mappings":";;;AAGA,SAAgB,kBAAkB,MAAoB;CACpD,MAAM,cAAc,KAAK,KAAK,eAAe;AAC7C,KAAI,CAAC,YACH,OAAM,IAAI,2BAAA,oBAAoB,8BAA8B;CAG9D,MAAM,MAAM,KAAK,MAAM,YAAY,SAAS,QAAQ,CAAC;CACrD,MAAM,iBACJ,IAAI,eAAe,oBACnB,IAAI,kBAAkB;AAExB,KAAI,CAAC,eACH,OAAM,IAAI,2BAAA,oBACR,+CACD;AAGH,QAAO;;AAGT,SAAgB,uBAAuB,gBAAgC;CACrE,MAAM,WAAA,GAAA,OAAA,QAAiB,eAAe;AACtC,KAAI,CAAC,QACH,OAAM,IAAI,2BAAA,oBACR,oCAAoC,iBACrC;AAEH,SAAA,GAAA,OAAA,OAAa,QAAQ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.js","names":[],"sources":["../../../../../../../../../packages/vitest-angular-tools/src/schematics/utils/dependencies.ts"],"sourcesContent":["import { Tree, SchematicsException } from '@angular-devkit/schematics';\nimport { lt } from 'semver';\nimport {\n ANALOG_JS_VITE_PLUGIN_ANGULAR,\n JSDOM,\n PLAYWRIGHT,\n VITE,\n VITE_TSCONFIG_PATHS,\n VITEST_BROWSER_PLAYWRIGHT,\n VITEST_V4,\n} from './versions';\n\nexport interface DependencyOptions {\n browserMode?: boolean;\n}\n\nexport function getDevDependencies(\n angularVersion: string,\n options: DependencyOptions = {},\n): Record<string, string> {\n const escapedVersion = angularVersion.replace(/[~^]/, '');\n\n if (lt(escapedVersion, '17.0.0')) {\n throw new SchematicsException('Angular v17.0.0 or newer is required.');\n }\n\n const deps: Record<string, string> = {\n '@analogjs/vite-plugin-angular': ANALOG_JS_VITE_PLUGIN_ANGULAR,\n vite: VITE,\n vitest: VITEST_V4,\n 'vite-tsconfig-paths': VITE_TSCONFIG_PATHS,\n };\n\n if (options.browserMode) {\n deps['@vitest/browser-playwright'] = VITEST_BROWSER_PLAYWRIGHT;\n deps['playwright'] = PLAYWRIGHT;\n } else {\n deps['jsdom'] = JSDOM;\n }\n\n return deps;\n}\n\nexport function addDevDependencies(\n tree: Tree,\n angularVersion: string,\n options: DependencyOptions = {},\n): void {\n const packageJsonPath = 'package.json';\n const packageJson = tree.read(packageJsonPath);\n if (!packageJson) {\n throw new SchematicsException('Could not find package.json');\n }\n\n const pkg = JSON.parse(packageJson.toString('utf-8'));\n const devDeps = getDevDependencies(angularVersion, options);\n\n pkg.devDependencies = pkg.devDependencies || {};\n Object.entries(devDeps).forEach(([name, version]) => {\n pkg.devDependencies[name] = version;\n });\n\n // Sort devDependencies alphabetically\n pkg.devDependencies = Object.keys(pkg.devDependencies)\n .sort()\n .reduce((acc: Record<string, string>, key) => {\n acc[key] = pkg.devDependencies[key];\n return acc;\n }, {});\n\n tree.overwrite(packageJsonPath, JSON.stringify(pkg, null, 2) + '\\n');\n}\n"],"mappings":";;;;AAgBA,SAAgB,mBACd,gBACA,UAA6B,EAAE,EACP;AAGxB,MAAA,GAAA,OAAA,IAFuB,eAAe,QAAQ,QAAQ,GAAG,EAElC,SAAS,CAC9B,OAAM,IAAI,2BAAA,oBAAoB,wCAAwC;CAGxE,MAAM,OAA+B;EACnC,iCAAiC,iBAAA;EACjC,MAAM,iBAAA;EACN,QAAQ,iBAAA;EACR,uBAAuB,iBAAA;EACxB;AAED,KAAI,QAAQ,aAAa;AACvB,OAAK,gCAAgC,iBAAA;AACrC,OAAK,gBAAgB,iBAAA;OAErB,MAAK,WAAW,iBAAA;AAGlB,QAAO;;AAGT,SAAgB,mBACd,MACA,gBACA,UAA6B,EAAE,EACzB;CACN,MAAM,kBAAkB;CACxB,MAAM,cAAc,KAAK,KAAK,gBAAgB;AAC9C,KAAI,CAAC,YACH,OAAM,IAAI,2BAAA,oBAAoB,8BAA8B;CAG9D,MAAM,MAAM,KAAK,MAAM,YAAY,SAAS,QAAQ,CAAC;CACrD,MAAM,UAAU,mBAAmB,gBAAgB,QAAQ;AAE3D,KAAI,kBAAkB,IAAI,mBAAmB,EAAE;AAC/C,QAAO,QAAQ,QAAQ,CAAC,SAAS,CAAC,MAAM,aAAa;AACnD,MAAI,gBAAgB,QAAQ;GAC5B;AAGF,KAAI,kBAAkB,OAAO,KAAK,IAAI,gBAAgB,CACnD,MAAM,CACN,QAAQ,KAA6B,QAAQ;AAC5C,MAAI,OAAO,IAAI,gBAAgB;AAC/B,SAAO;IACN,EAAE,CAAC;AAER,MAAK,UAAU,iBAAiB,KAAK,UAAU,KAAK,MAAM,EAAE,GAAG,KAAK"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"versions.js","names":[],"sources":["../../../../../../../../../packages/vitest-angular-tools/src/schematics/utils/versions.ts"],"sourcesContent":["// Version constants (Angular 20+)\nexport const ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.12';\nexport const JSDOM = '^22.0.0';\nexport const VITE_TSCONFIG_PATHS = '^4.2.0';\nexport const VITE = '^7.0.0';\nexport const VITEST_V4 = '^4.0.0';\n\n// Browser mode dependencies\nexport const VITEST_BROWSER_PLAYWRIGHT = '^4.0.0';\nexport const PLAYWRIGHT = '^1.54.0';\n"],"mappings":";AACA,IAAa,gCAAgC;AAC7C,IAAa,QAAQ;AACrB,IAAa,sBAAsB;AACnC,IAAa,OAAO;AACpB,IAAa,YAAY;AAGzB,IAAa,4BAA4B;AACzC,IAAa,aAAa"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","names":[],"sources":["../../../../../../../../../packages/vitest-angular-tools/src/schematics/utils/workspace.ts"],"sourcesContent":["import { Tree, SchematicsException } from '@angular-devkit/schematics';\n\nexport function isNxWorkspace(tree: Tree): boolean {\n return tree.exists('/nx.json');\n}\n\nexport interface WorkspaceProject {\n root: string;\n sourceRoot?: string;\n architect?: Record<\n string,\n { builder?: string; options?: Record<string, unknown> }\n >;\n}\n\nexport interface WorkspaceSchema {\n projects: Record<string, WorkspaceProject>;\n}\n\nexport function getWorkspace(tree: Tree): WorkspaceSchema {\n const workspaceFile = tree.read('angular.json');\n if (!workspaceFile) {\n throw new SchematicsException('Could not find angular.json');\n }\n return JSON.parse(workspaceFile.toString('utf-8'));\n}\n\nexport function getProject(\n workspace: WorkspaceSchema,\n projectName: string,\n): WorkspaceProject {\n const project = workspace.projects[projectName];\n if (!project) {\n throw new SchematicsException(\n `Project \"${projectName}\" not found in angular.json`,\n );\n }\n return project;\n}\n"],"mappings":";;AAEA,SAAgB,cAAc,MAAqB;AACjD,QAAO,KAAK,OAAO,WAAW;;AAgBhC,SAAgB,aAAa,MAA6B;CACxD,MAAM,gBAAgB,KAAK,KAAK,eAAe;AAC/C,KAAI,CAAC,cACH,OAAM,IAAI,2BAAA,oBAAoB,8BAA8B;AAE9D,QAAO,KAAK,MAAM,cAAc,SAAS,QAAQ,CAAC;;AAGpD,SAAgB,WACd,WACA,aACkB;CAClB,MAAM,UAAU,UAAU,SAAS;AACnC,KAAI,CAAC,QACH,OAAM,IAAI,2BAAA,oBACR,YAAY,YAAY,6BACzB;AAEH,QAAO"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|