@o3r/testing 13.2.0-prerelease.9 → 13.3.0-prerelease.1

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": "@o3r/testing",
3
- "version": "13.2.0-prerelease.9",
3
+ "version": "13.3.0-prerelease.1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -100,18 +100,20 @@
100
100
  "@material/slider": "^14.0.0",
101
101
  "@ngrx/store": "^20.0.0",
102
102
  "@ngx-translate/core": "^15.0.0 || ~16.0.4",
103
- "@o3r/core": "^13.2.0-prerelease.9",
104
- "@o3r/localization": "^13.2.0-prerelease.9",
105
- "@o3r/schematics": "^13.2.0-prerelease.9",
103
+ "@o3r/core": "^13.3.0-prerelease.1",
104
+ "@o3r/eslint-config": "^13.3.0-prerelease.1",
105
+ "@o3r/localization": "^13.3.0-prerelease.1",
106
+ "@o3r/schematics": "^13.3.0-prerelease.1",
106
107
  "@playwright/test": "^1.49.0",
107
108
  "@schematics/angular": "^20.0.0",
109
+ "eslint": "~9.35.0",
108
110
  "pixelmatch": "^7.0.0",
109
111
  "pngjs": "^7.0.0",
110
112
  "rxjs": "^7.8.1",
111
113
  "temporal-polyfill": "^0.3.0",
112
114
  "ts-node": "~10.9.2",
113
115
  "type-fest": "^4.30.1",
114
- "typescript": "^5.8.0"
116
+ "typescript": "^5.9.0"
115
117
  },
116
118
  "peerDependenciesMeta": {
117
119
  "@amadeus-it-group/kassette": {
@@ -141,6 +143,9 @@
141
143
  "@o3r/core": {
142
144
  "optional": true
143
145
  },
146
+ "@o3r/eslint-config": {
147
+ "optional": true
148
+ },
144
149
  "@o3r/localization": {
145
150
  "optional": true
146
151
  },
@@ -167,24 +172,24 @@
167
172
  }
168
173
  },
169
174
  "dependencies": {
170
- "@o3r/schematics": "^13.2.0-prerelease.9",
175
+ "@o3r/schematics": "^13.3.0-prerelease.1",
171
176
  "esbuild": "~0.25.1",
172
177
  "module-from-string": "^3.2.0",
173
178
  "tslib": "^2.6.2"
174
179
  },
175
180
  "devDependencies": {
176
181
  "@amadeus-it-group/kassette": "^1.7.0",
177
- "@angular-devkit/build-angular": "~20.2.0",
178
- "@angular-devkit/core": "~20.2.0",
179
- "@angular-devkit/schematics": "~20.2.0",
180
- "@angular/cli": "~20.2.0",
181
- "@angular/common": "~20.2.0",
182
- "@angular/compiler": "~20.2.0",
183
- "@angular/compiler-cli": "~20.2.0",
184
- "@angular/core": "~20.2.0",
185
- "@angular/forms": "~20.2.0",
186
- "@angular/platform-browser": "~20.2.0",
187
- "@angular/platform-browser-dynamic": "~20.2.0",
182
+ "@angular-devkit/build-angular": "~20.3.0",
183
+ "@angular-devkit/core": "~20.3.0",
184
+ "@angular-devkit/schematics": "~20.3.0",
185
+ "@angular/cli": "~20.3.0",
186
+ "@angular/common": "~20.3.0",
187
+ "@angular/compiler": "~20.3.0",
188
+ "@angular/compiler-cli": "~20.3.0",
189
+ "@angular/core": "~20.3.0",
190
+ "@angular/forms": "~20.3.0",
191
+ "@angular/platform-browser": "~20.3.0",
192
+ "@angular/platform-browser-dynamic": "~20.3.0",
188
193
  "@babel/core": "~7.28.0",
189
194
  "@babel/preset-typescript": "~7.27.0",
190
195
  "@compodoc/compodoc": "^1.1.19",
@@ -192,23 +197,23 @@
192
197
  "@material/slider": "^14.0.0",
193
198
  "@ngrx/store": "~20.0.0",
194
199
  "@ngx-translate/core": "~16.0.4",
195
- "@nx/eslint-plugin": "~21.5.0",
196
- "@nx/jest": "~21.5.0",
197
- "@o3r/build-helpers": "^13.2.0-prerelease.9",
198
- "@o3r/core": "^13.2.0-prerelease.9",
199
- "@o3r/eslint-plugin": "^13.2.0-prerelease.9",
200
- "@o3r/localization": "^13.2.0-prerelease.9",
201
- "@o3r/test-helpers": "^13.2.0-prerelease.9",
200
+ "@nx/eslint-plugin": "~21.6.0",
201
+ "@nx/jest": "~21.6.0",
202
+ "@o3r/build-helpers": "^13.3.0-prerelease.1",
203
+ "@o3r/core": "^13.3.0-prerelease.1",
204
+ "@o3r/eslint-plugin": "^13.3.0-prerelease.1",
205
+ "@o3r/localization": "^13.3.0-prerelease.1",
206
+ "@o3r/test-helpers": "^13.3.0-prerelease.1",
202
207
  "@playwright/test": "~1.55.0",
203
- "@schematics/angular": "~20.2.0",
208
+ "@schematics/angular": "~20.3.0",
204
209
  "@stylistic/eslint-plugin": "~5.3.0",
205
210
  "@swc/helpers": "~0.5.0",
206
211
  "@types/jest": "~29.5.2",
207
- "@types/node": "^22.0.0",
212
+ "@types/node": "~22.18.0",
208
213
  "@types/pixelmatch": "^5.2.3",
209
214
  "@types/pngjs": "^6.0.0",
210
215
  "@typescript-eslint/parser": "~8.43.0",
211
- "angular-eslint": "~20.2.0",
216
+ "angular-eslint": "~20.3.0",
212
217
  "concurrently": "^9.1.0",
213
218
  "cpy-cli": "^6.0.0",
214
219
  "eslint": "~9.35.0",
@@ -229,7 +234,7 @@
229
234
  "jest-preset-angular": "~14.6.0",
230
235
  "jest-util": "~29.7.0",
231
236
  "jsonc-eslint-parser": "~2.4.0",
232
- "nx": "~21.5.0",
237
+ "nx": "~21.6.0",
233
238
  "pid-from-port": "^1.1.3",
234
239
  "pixelmatch": "^7.0.0",
235
240
  "pngjs": "^7.0.0",
@@ -244,7 +249,8 @@
244
249
  "zone.js": "~0.15.0"
245
250
  },
246
251
  "generatorDependencies": {
247
- "@angular-builders/jest": "~20.0.0"
252
+ "@angular-builders/jest": "~20.0.0",
253
+ "rimraf": "^6.0.1"
248
254
  },
249
255
  "schematics": "./collection.json",
250
256
  "ng-update": {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAQL,IAAI,EAKL,MAAM,4BAA4B,CAAC;AA8KpC;;;GAGG;AACH,eAAO,MAAM,KAAK,wBAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,IAAI,EAGL,MAAM,4BAA4B,CAAC;AAyIpC;;;GAGG;AACH,eAAO,MAAM,KAAK,wBAAgC,CAAC"}
@@ -7,6 +7,7 @@ const prompt_1 = require("@angular/cli/src/utilities/prompt");
7
7
  const schematics_1 = require("@angular-devkit/schematics");
8
8
  const schematics_2 = require("@o3r/schematics");
9
9
  const fixture_1 = require("./fixture");
10
+ const jest_1 = require("./jest");
10
11
  const playwright_1 = require("./playwright");
11
12
  /**
12
13
  * List of external dependencies to be added to the project as peer dependencies
@@ -32,9 +33,16 @@ function ngAddFn(options) {
32
33
  const testPackageJsonPath = path.resolve(__dirname, '..', '..', 'package.json');
33
34
  const packageJson = JSON.parse(fs.readFileSync(testPackageJsonPath, { encoding: 'utf8' }));
34
35
  const workspaceProject = options.projectName ? (0, schematics_2.getWorkspaceConfig)(tree)?.projects[options.projectName] : undefined;
35
- const workingDirectory = workspaceProject?.root || '.';
36
36
  const projectType = workspaceProject?.projectType || 'application';
37
37
  let installJest;
38
+ let isEslintInstalled;
39
+ try {
40
+ require.resolve('@o3r/eslint-config');
41
+ isEslintInstalled = true;
42
+ }
43
+ catch {
44
+ isEslintInstalled = false;
45
+ }
38
46
  const testFramework = options.testingFramework || (0, schematics_2.getTestFramework)((0, schematics_2.getWorkspaceConfig)(tree), context);
39
47
  switch (testFramework) {
40
48
  case 'jest': {
@@ -67,7 +75,12 @@ function ngAddFn(options) {
67
75
  (0, fixture_1.updateFixtureConfig)(options),
68
76
  (0, schematics_2.removePackages)(['@otter/testing']),
69
77
  (0, schematics_2.addVsCodeRecommendations)(['Orta.vscode-jest']),
70
- installPlaywright ? (0, playwright_1.updatePlaywright)(options) : schematics_1.noop,
78
+ ...installPlaywright
79
+ ? [
80
+ (0, playwright_1.updatePlaywright)(options)
81
+ ]
82
+ : [],
83
+ ...installJest ? [(0, jest_1.setupJest)(options)] : [],
71
84
  (0, schematics_2.registerPackageCollectionSchematics)(packageJson),
72
85
  (0, schematics_2.setupSchematicsParamsForProject)({
73
86
  '@o3r/core:component': schematicsDefaultOptions,
@@ -76,63 +89,10 @@ function ngAddFn(options) {
76
89
  }, options.projectName),
77
90
  (0, schematics_2.ngAddDependenciesRule)(options, testPackageJsonPath, {
78
91
  dependenciesToInstall,
79
- devDependenciesToInstall: devDependenciesToInstall.concat(installJest
80
- ? [
81
- '@angular-builders/jest',
82
- '@types/jest',
83
- 'jest',
84
- 'jest-environment-jsdom',
85
- 'jest-preset-angular',
86
- 'jest-util',
87
- 'ts-jest'
88
- ]
89
- : [], installPlaywright
90
- ? [
91
- '@playwright/test',
92
- 'rimraf'
93
- ]
94
- : [])
92
+ devDependenciesToInstall: devDependenciesToInstall.concat(installJest ? (0, jest_1.jestDependencies)(isEslintInstalled) : [], installPlaywright ? playwright_1.playwrightDependencies : [])
95
93
  }),
96
94
  options.skipLinter ? (0, schematics_1.noop)() : (0, schematics_2.applyEditorConfig)()
97
95
  ];
98
- if (installJest) {
99
- if (workingDirectory === undefined) {
100
- throw new schematics_2.O3rCliError(`Could not find working directory for project ${options.projectName || ''}`);
101
- }
102
- else {
103
- if (workspaceProject) {
104
- const packageJsonFile = tree.readJson(`${workingDirectory}/package.json`);
105
- packageJsonFile.scripts ||= {};
106
- packageJsonFile.scripts.test = 'jest';
107
- tree.overwrite(`${workingDirectory}/package.json`, JSON.stringify(packageJsonFile, null, 2));
108
- const rootRelativePath = path.posix.relative(workingDirectory, tree.root.path.replace(/^\//, './'));
109
- const jestConfigFilesForProject = () => (0, schematics_1.mergeWith)((0, schematics_1.apply)((0, schematics_1.url)('./templates/project'), [
110
- (0, schematics_1.template)({
111
- ...options,
112
- rootRelativePath,
113
- isAngularSetup: tree.exists('/angular.json')
114
- }),
115
- (0, schematics_1.move)(workingDirectory),
116
- (0, schematics_1.renameTemplateFiles)()
117
- ]), schematics_1.MergeStrategy.Overwrite);
118
- rules.push(jestConfigFilesForProject);
119
- }
120
- if (tree.exists('/jest.config.js')) {
121
- context.logger.info('Jest configuration files already exist at the root of the project.');
122
- }
123
- else {
124
- const jestConfigFilesForWorkspace = () => (0, schematics_1.mergeWith)((0, schematics_1.apply)((0, schematics_1.url)('./templates/workspace'), [
125
- (0, schematics_1.template)({
126
- ...options,
127
- tsconfigPath: `./${['tsconfig.base.json', 'tsconfig.json'].find((tsconfigBase) => tree.exists(`./${tsconfigBase}`))}`
128
- }),
129
- (0, schematics_1.move)(tree.root.path),
130
- (0, schematics_1.renameTemplateFiles)()
131
- ]), schematics_1.MergeStrategy.Default);
132
- rules.push(jestConfigFilesForWorkspace);
133
- }
134
- }
135
- }
136
96
  return () => (0, schematics_1.chain)(rules)(tree, context);
137
97
  }
138
98
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ import type { NgAddSchematicsSchema } from '../../../schematics/ng-add/schema';
3
+ /**
4
+ * List of dependencies needed to run jest
5
+ * @param eslintDependencies
6
+ */
7
+ export declare const jestDependencies: (eslintDependencies: boolean) => string[];
8
+ /**
9
+ * Setup jest as recommended
10
+ * @param options
11
+ */
12
+ export declare function setupJest(options: NgAddSchematicsSchema): Rule;
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/ng-add/jest/index.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,IAAI,EAKL,MAAM,4BAA4B,CAAC;AAQpC,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,mCAAmC,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,oBAAoB,OAAO,aAS3D,CAAC;AAeF;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAqC9D"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.jestDependencies = void 0;
4
+ exports.setupJest = setupJest;
5
+ const path = require("node:path");
6
+ const schematics_1 = require("@angular-devkit/schematics");
7
+ const schematics_2 = require("@o3r/schematics");
8
+ /**
9
+ * List of dependencies needed to run jest
10
+ * @param eslintDependencies
11
+ */
12
+ const jestDependencies = (eslintDependencies) => [
13
+ '@angular-builders/jest',
14
+ '@types/jest',
15
+ 'jest',
16
+ 'jest-environment-jsdom',
17
+ 'jest-preset-angular',
18
+ 'jest-util',
19
+ 'ts-jest',
20
+ ...eslintDependencies ? ['eslint-plugin-jest'] : []
21
+ ];
22
+ exports.jestDependencies = jestDependencies;
23
+ /**
24
+ * Run jest on 'npm/yarn run test'
25
+ * @param workingDirectory
26
+ */
27
+ function setupJestScript(workingDirectory) {
28
+ return (tree) => {
29
+ const packageJsonFile = tree.readJson(`${workingDirectory}/package.json`);
30
+ packageJsonFile.scripts ||= {};
31
+ packageJsonFile.scripts.test = 'jest';
32
+ tree.overwrite(`${workingDirectory}/package.json`, JSON.stringify(packageJsonFile, null, 2));
33
+ };
34
+ }
35
+ /**
36
+ * Setup jest as recommended
37
+ * @param options
38
+ */
39
+ function setupJest(options) {
40
+ return (tree, context) => {
41
+ const workspaceProject = options.projectName ? (0, schematics_2.getWorkspaceConfig)(tree)?.projects[options.projectName] : undefined;
42
+ const workingDirectory = workspaceProject?.root || '.';
43
+ if (workingDirectory === undefined) {
44
+ throw new schematics_2.O3rCliError(`Could not find working directory for project ${options.projectName || ''}`);
45
+ }
46
+ const rootRelativePath = path.posix.relative(workingDirectory, tree.root.path.replace(/^\//, './'));
47
+ const setupJestInProject = (0, schematics_1.mergeWith)((0, schematics_1.apply)((0, schematics_1.url)('./jest/templates/project'), [
48
+ (0, schematics_1.template)({
49
+ ...options,
50
+ rootRelativePath,
51
+ isAngularSetup: tree.exists('/angular.json')
52
+ }),
53
+ (0, schematics_1.move)(workingDirectory),
54
+ (0, schematics_1.renameTemplateFiles)()
55
+ ]), schematics_1.MergeStrategy.Overwrite);
56
+ const rules = [
57
+ setupJestScript(workingDirectory),
58
+ setupJestInProject
59
+ ];
60
+ if (tree.exists('/jest.config.js')) {
61
+ context.logger.info('Jest configuration files already exist at the root of the project.');
62
+ }
63
+ else {
64
+ rules.push((0, schematics_1.mergeWith)((0, schematics_1.apply)((0, schematics_1.url)('./jest/templates/workspace'), [
65
+ (0, schematics_1.template)({
66
+ ...options,
67
+ tsconfigPath: `./${['tsconfig.base.json', 'tsconfig.json'].find((tsconfigBase) => tree.exists(`./${tsconfigBase}`))}`
68
+ }),
69
+ (0, schematics_1.move)(tree.root.path),
70
+ (0, schematics_1.renameTemplateFiles)()
71
+ ]), schematics_1.MergeStrategy.Default));
72
+ }
73
+ return (0, schematics_1.chain)(rules)(tree, context);
74
+ };
75
+ }
76
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../schematics/ng-add/jest/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
1
  import { Rule } from '@angular-devkit/schematics';
2
2
  import { NgAddPackageOptions } from '@o3r/schematics';
3
+ /**
4
+ * List of dependencies required by playwright
5
+ */
6
+ export declare const playwrightDependencies: string[];
3
7
  /**
4
8
  * Add Playwright to Otter application
5
9
  * @param options @see RuleFactory.options
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/ng-add/playwright/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAML,IAAI,EAKL,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAGL,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AAKzB;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAkDnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/ng-add/playwright/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAML,IAAI,EAKL,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAGL,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AAKzB;;GAEG;AACH,eAAO,MAAM,sBAAsB,UAIlC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAkDnE"}
@@ -1,10 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.playwrightDependencies = void 0;
3
4
  exports.updatePlaywright = updatePlaywright;
4
5
  const path = require("node:path");
5
6
  const core_1 = require("@angular-devkit/core");
6
7
  const schematics_1 = require("@angular-devkit/schematics");
7
8
  const schematics_2 = require("@o3r/schematics");
9
+ /**
10
+ * List of dependencies required by playwright
11
+ */
12
+ exports.playwrightDependencies = [
13
+ '@playwright/test',
14
+ '@types/node',
15
+ 'rimraf'
16
+ ];
8
17
  /**
9
18
  * Add Playwright to Otter application
10
19
  * @param options @see RuleFactory.options
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../schematics/ng-add/playwright/index.ts"],"names":[],"mappings":";;AA6BA,4CAkDC;AA/ED,kCAAkC;AAClC,+CAE8B;AAC9B,2DAWoC;AACpC,gDAIyB;AAKzB;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,OAA4B;IAC3D,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,IAAA,+BAAkB,EAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC;QAExH,mBAAmB;QACnB,MAAM,aAAa,GAAG,YAAY,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBAC5H,SAAS;uBACJ;;;;;CAKZ,CAAC;gBACM,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAC1E,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAgB,CAAC;YAClE,WAAW,CAAC,OAAO,KAAK,EAAE,CAAC;YAC3B,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,8DAA8D,CAAC;YAC1G,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,EAAE,CAAC;YAC9F,MAAM,YAAY,GAAG,GAAG,IAAA,8BAAiB,GAAE,YAAY,CAAC;YACxD,MAAM,OAAO,GAAG,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,IAAA,+BAAkB,EAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3G,MAAM,UAAU,GAAG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,IAAI,MAAM,CAAC;YAEtE,MAAM,cAAc,GAAG,IAAA,kBAAK,EAAC,IAAA,gBAAG,EAAC,wBAAwB,CAAC,EAAE;gBAC1D,IAAA,qBAAQ,EAAC;oBACP,GAAG,cAAO;oBACV,UAAU;oBACV,YAAY;iBACb,CAAC;gBACF,IAAA,gCAAmB,GAAE;gBACrB,IAAA,iBAAI,EAAC,gBAAgB,CAAC;aACvB,CAAC,CAAC;YAEH,OAAO,IAAA,sBAAS,EAAC,cAAc,EAAE,0BAAa,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../schematics/ng-add/playwright/index.ts"],"names":[],"mappings":";;;AAsCA,4CAkDC;AAxFD,kCAAkC;AAClC,+CAE8B;AAC9B,2DAWoC;AACpC,gDAIyB;AAKzB;;GAEG;AACU,QAAA,sBAAsB,GAAG;IACpC,kBAAkB;IAClB,aAAa;IACb,QAAQ;CACT,CAAC;AAEF;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,OAA4B;IAC3D,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,WAAW,IAAI,IAAA,+BAAkB,EAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC;QAExH,mBAAmB;QACnB,MAAM,aAAa,GAAG,YAAY,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBAC5H,SAAS;uBACJ;;;;;CAKZ,CAAC;gBACM,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAC1E,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAgB,CAAC;YAClE,WAAW,CAAC,OAAO,KAAK,EAAE,CAAC;YAC3B,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,8DAA8D,CAAC;YAC1G,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,EAAE,CAAC;YAC9F,MAAM,YAAY,GAAG,GAAG,IAAA,8BAAiB,GAAE,YAAY,CAAC;YACxD,MAAM,OAAO,GAAG,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,IAAA,+BAAkB,EAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3G,MAAM,UAAU,GAAG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,IAAI,MAAM,CAAC;YAEtE,MAAM,cAAc,GAAG,IAAA,kBAAK,EAAC,IAAA,gBAAG,EAAC,wBAAwB,CAAC,EAAE;gBAC1D,IAAA,qBAAQ,EAAC;oBACP,GAAG,cAAO;oBACV,UAAU;oBACV,YAAY;iBACb,CAAC;gBACF,IAAA,gCAAmB,GAAE;gBACrB,IAAA,iBAAI,EAAC,gBAAgB,CAAC;aACvB,CAAC,CAAC;YAEH,OAAO,IAAA,sBAAS,EAAC,cAAc,EAAE,0BAAa,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC"}