@nrwl/workspace 15.8.6 → 15.9.0-beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. package/index.d.ts +3 -8
  2. package/index.js +2 -36
  3. package/index.js.map +1 -1
  4. package/package.json +30 -39
  5. package/src/generators/library/library.js +1 -2
  6. package/src/generators/library/library.js.map +1 -1
  7. package/src/generators/move/lib/update-cypress-config.js +8 -2
  8. package/src/generators/move/lib/update-cypress-config.js.map +1 -1
  9. package/src/generators/new/files-integrated-repo/package.json__tmpl__ +1 -2
  10. package/src/generators/new/files-package-based-repo/__dot__vscode/extensions.json__tmpl__ +1 -2
  11. package/src/generators/new/files-package-based-repo/package.json__tmpl__ +1 -2
  12. package/src/generators/new/files-root-app/__dot__vscode/extensions.json__tmpl__ +1 -2
  13. package/src/generators/new/files-root-app/package.json__tmpl__ +1 -2
  14. package/src/generators/new/generate-preset.js +32 -8
  15. package/src/generators/new/generate-preset.js.map +1 -1
  16. package/src/generators/new/generate-workspace-files.d.ts +0 -3
  17. package/src/generators/new/generate-workspace-files.js +4 -10
  18. package/src/generators/new/generate-workspace-files.js.map +1 -1
  19. package/src/generators/new/new.d.ts +2 -1
  20. package/src/generators/new/new.js +10 -10
  21. package/src/generators/new/new.js.map +1 -1
  22. package/src/generators/new/schema.json +1 -1
  23. package/src/generators/preset/preset.d.ts +1 -1
  24. package/src/generators/preset/preset.js +18 -15
  25. package/src/generators/preset/preset.js.map +1 -1
  26. package/src/generators/preset/schema.json +1 -1
  27. package/src/generators/remove/lib/check-project-is-safe-to-remove.js +1 -1
  28. package/src/generators/remove/lib/check-project-is-safe-to-remove.js.map +1 -1
  29. package/src/migrations/update-14-0-0/change-npm-script-executor.js +1 -1
  30. package/src/migrations/update-14-0-0/change-npm-script-executor.js.map +1 -1
  31. package/src/migrations/update-14-8-0/change-run-commands-executor.js +1 -1
  32. package/src/migrations/update-14-8-0/change-run-commands-executor.js.map +1 -1
  33. package/src/utilities/buildable-libs-utils.d.ts +17 -6
  34. package/src/utilities/buildable-libs-utils.js +17 -8
  35. package/src/utilities/buildable-libs-utils.js.map +1 -1
  36. package/src/utilities/run-tasks-in-serial.d.ts +6 -0
  37. package/src/utilities/run-tasks-in-serial.js +6 -0
  38. package/src/utilities/run-tasks-in-serial.js.map +1 -1
  39. package/src/utilities/typescript/get-source-nodes.d.ts +3 -0
  40. package/src/utilities/typescript/get-source-nodes.js +3 -0
  41. package/src/utilities/typescript/get-source-nodes.js.map +1 -1
  42. package/src/utilities/version-utils.d.ts +3 -0
  43. package/src/utilities/version-utils.js +7 -12
  44. package/src/utilities/version-utils.js.map +1 -1
  45. package/src/utils/ast-utils.d.ts +0 -118
  46. package/src/utils/ast-utils.js +3 -543
  47. package/src/utils/ast-utils.js.map +1 -1
  48. package/src/utils/cli-config-utils.d.ts +0 -2
  49. package/src/utils/cli-config-utils.js +1 -47
  50. package/src/utils/cli-config-utils.js.map +1 -1
  51. package/src/utils/lint.d.ts +0 -22
  52. package/src/utils/lint.js +0 -164
  53. package/src/utils/lint.js.map +1 -1
  54. package/src/utils/project-type.d.ts +1 -3
  55. package/src/utils/project-type.js +1 -8
  56. package/src/utils/project-type.js.map +1 -1
  57. package/src/utils/strings.d.ts +12 -0
  58. package/src/utils/strings.js +12 -0
  59. package/src/utils/strings.js.map +1 -1
  60. package/src/utils/versions.d.ts +2 -2
  61. package/src/utils/versions.js +5 -3
  62. package/src/utils/versions.js.map +1 -1
  63. package/src/generators/new/files-integrated-repo/__dot__prettierignore +0 -4
  64. package/src/generators/new/files-package-based-repo/__dot__prettierignore +0 -4
  65. package/src/generators/new/files-root-app/__dot__prettierignore +0 -4
  66. package/src/utilities/ast-utils.d.ts +0 -22
  67. package/src/utilities/ast-utils.js +0 -197
  68. package/src/utilities/ast-utils.js.map +0 -1
  69. package/src/utilities/executor-options-utils.d.ts +0 -20
  70. package/src/utilities/executor-options-utils.js +0 -49
  71. package/src/utilities/executor-options-utils.js.map +0 -1
  72. package/src/utilities/generate-globs.d.ts +0 -6
  73. package/src/utilities/generate-globs.js +0 -81
  74. package/src/utilities/generate-globs.js.map +0 -1
  75. package/src/utilities/prettier.d.ts +0 -6
  76. package/src/utilities/prettier.js +0 -38
  77. package/src/utilities/prettier.js.map +0 -1
  78. package/src/utils/rules/move-npm-packages.d.ts +0 -11
  79. package/src/utils/rules/move-npm-packages.js +0 -76
  80. package/src/utils/rules/move-npm-packages.js.map +0 -1
  81. package/src/utils/rules/to-js.d.ts +0 -8
  82. package/src/utils/rules/to-js.js +0 -82
  83. package/src/utils/rules/to-js.js.map +0 -1
  84. package/src/utils/rules/update-karma-conf.d.ts +0 -8
  85. package/src/utils/rules/update-karma-conf.js +0 -36
  86. package/src/utils/rules/update-karma-conf.js.map +0 -1
  87. package/src/utils/update-packages-in-package-json.d.ts +0 -3
  88. package/src/utils/update-packages-in-package-json.js +0 -56
  89. package/src/utils/update-packages-in-package-json.js.map +0 -1
  90. package/src/utils/update-task.d.ts +0 -2
  91. package/src/utils/update-task.js +0 -83
  92. package/src/utils/update-task.js.map +0 -1
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateKarmaConf = void 0;
4
- const ast_utils_1 = require("../ast-utils");
5
- const devkit_1 = require("@nrwl/devkit");
6
- /**
7
- * This returns a Rule which changes the default Angular CLI Generated karma.conf.js
8
- * @param options Object containing projectROot
9
- */
10
- function updateKarmaConf(options) {
11
- return (host) => {
12
- const project = (0, ast_utils_1.getProjectConfig)(host, options.projectName);
13
- const projectRoot = project.root.replace(/\/$/, '');
14
- const karmaPath = project.architect.test.options.karmaConfig;
15
- (0, ast_utils_1.createOrUpdate)(host, karmaPath, `// Karma configuration file, see link for more information
16
- // https://karma-runner.github.io/1.0/config/configuration-file.html
17
-
18
- const { join } = require('path');
19
- const getBaseKarmaConfig = require('${(0, devkit_1.offsetFromRoot)(projectRoot)}karma.conf');
20
-
21
- module.exports = function(config) {
22
- const baseConfig = getBaseKarmaConfig();
23
- config.set({
24
- ...baseConfig,
25
- coverageIstanbulReporter: {
26
- ...baseConfig.coverageIstanbulReporter,
27
- dir: join(__dirname, '${(0, devkit_1.offsetFromRoot)(projectRoot)}coverage/${projectRoot}')
28
- }
29
- });
30
- };
31
- `);
32
- return host;
33
- };
34
- }
35
- exports.updateKarmaConf = updateKarmaConf;
36
- //# sourceMappingURL=update-karma-conf.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-karma-conf.js","sourceRoot":"","sources":["../../../../../../packages/workspace/src/utils/rules/update-karma-conf.ts"],"names":[],"mappings":";;;AACA,4CAAgE;AAChE,yCAA8C;AAE9C;;;GAGG;AACH,SAAgB,eAAe,CAAC,OAAgC;IAC9D,OAAO,CAAC,IAAU,EAAE,EAAE;QACpB,MAAM,OAAO,GAAG,IAAA,4BAAgB,EAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAE7D,IAAA,0BAAc,EACZ,IAAI,EACJ,SAAS,EACT;;;;sCAIgC,IAAA,uBAAc,EAAC,WAAW,CAAC;;;;;;;;8BAQnC,IAAA,uBAAc,EACpC,WAAW,CACZ,YAAY,WAAW;;;;CAI7B,CACI,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AA/BD,0CA+BC"}
@@ -1,3 +0,0 @@
1
- export declare function updatePackagesInPackageJson(migrationFilePath: string, versionName: string, options?: {
2
- skipInstall: boolean;
3
- }): import("@angular-devkit/schematics").Rule;
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updatePackagesInPackageJson = void 0;
4
- const schematics_1 = require("@angular-devkit/schematics");
5
- const ast_utils_1 = require("./ast-utils");
6
- const fs_1 = require("fs");
7
- const version_utils_1 = require("./version-utils");
8
- const semver_1 = require("semver");
9
- const add_install_task_1 = require("./rules/add-install-task");
10
- function updatePackagesInPackageJson(migrationFilePath, versionName, options = { skipInstall: false }) {
11
- const migrations = JSON.parse((0, fs_1.readFileSync)(migrationFilePath).toString());
12
- const packageJsonUpdates = migrations.packageJsonUpdates[versionName];
13
- // should never happen
14
- if (!packageJsonUpdates) {
15
- throw new Error(`Cannot find ${versionName} in migrations.json`);
16
- }
17
- const updatedPackages = packageJsonUpdates.packages;
18
- let needsInstall = false;
19
- return (0, schematics_1.chain)([
20
- (0, ast_utils_1.updateJsonInTree)('package.json', (json) => {
21
- Object.keys(updatedPackages).forEach((p) => {
22
- /**
23
- * Check the updated version against semver
24
- */
25
- const cleanUpdatedVersion = (0, version_utils_1.checkAndCleanWithSemver)(p, updatedPackages[p].version);
26
- if (json.devDependencies && json.devDependencies[p]) {
27
- const cleanDevVersion = (0, version_utils_1.checkAndCleanWithSemver)(p, json.devDependencies[p]);
28
- if ((0, semver_1.lt)(cleanDevVersion, cleanUpdatedVersion)) {
29
- json.devDependencies[p] = updatedPackages[p].version;
30
- needsInstall = true;
31
- }
32
- }
33
- else if (json.dependencies && json.dependencies[p]) {
34
- const cleanVersion = (0, version_utils_1.checkAndCleanWithSemver)(p, json.dependencies[p]);
35
- if ((0, semver_1.lt)(cleanVersion, cleanUpdatedVersion)) {
36
- json.dependencies[p] = updatedPackages[p].version;
37
- needsInstall = true;
38
- }
39
- }
40
- else if (updatedPackages[p].alwaysAddToPackageJson) {
41
- const cleanVersion = (0, version_utils_1.checkAndCleanWithSemver)(p, json.dependencies[p]);
42
- if ((0, semver_1.lt)(cleanVersion, cleanUpdatedVersion)) {
43
- if (!json.dependencies)
44
- json.dependencies = {};
45
- json.dependencies[p] = updatedPackages[p].version;
46
- needsInstall = true;
47
- }
48
- }
49
- });
50
- return json;
51
- }),
52
- needsInstall ? (0, add_install_task_1.addInstallTask)(options) : (0, schematics_1.noop)(),
53
- ]);
54
- }
55
- exports.updatePackagesInPackageJson = updatePackagesInPackageJson;
56
- //# sourceMappingURL=update-packages-in-package-json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-packages-in-package-json.js","sourceRoot":"","sources":["../../../../../packages/workspace/src/utils/update-packages-in-package-json.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AACzD,2CAA+C;AAC/C,2BAAkC;AAClC,mDAA0D;AAC1D,mCAA4B;AAC5B,+DAA0D;AAE1D,SAAgB,2BAA2B,CACzC,iBAAyB,EACzB,WAAmB,EACnB,UAAoC,EAAE,WAAW,EAAE,KAAK,EAAE;IAE1D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1E,MAAM,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAEtE,sBAAsB;IACtB,IAAI,CAAC,kBAAkB,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,eAAe,WAAW,qBAAqB,CAAC,CAAC;KAClE;IAED,MAAM,eAAe,GAAG,kBAAkB,CAAC,QAAQ,CAAC;IACpD,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,OAAO,IAAA,kBAAK,EAAC;QACX,IAAA,4BAAgB,EAAC,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE;YACxC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACzC;;mBAEG;gBACH,MAAM,mBAAmB,GAAG,IAAA,uCAAuB,EACjD,CAAC,EACD,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAC3B,CAAC;gBAEF,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;oBACnD,MAAM,eAAe,GAAG,IAAA,uCAAuB,EAC7C,CAAC,EACD,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CACxB,CAAC;oBAEF,IAAI,IAAA,WAAE,EAAC,eAAe,EAAE,mBAAmB,CAAC,EAAE;wBAC5C,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;wBACrD,YAAY,GAAG,IAAI,CAAC;qBACrB;iBACF;qBAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;oBACpD,MAAM,YAAY,GAAG,IAAA,uCAAuB,EAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEtE,IAAI,IAAA,WAAE,EAAC,YAAY,EAAE,mBAAmB,CAAC,EAAE;wBACzC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;wBAClD,YAAY,GAAG,IAAI,CAAC;qBACrB;iBACF;qBAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,sBAAsB,EAAE;oBACpD,MAAM,YAAY,GAAG,IAAA,uCAAuB,EAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;oBAEtE,IAAI,IAAA,WAAE,EAAC,YAAY,EAAE,mBAAmB,CAAC,EAAE;wBACzC,IAAI,CAAC,IAAI,CAAC,YAAY;4BAAE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;wBAC/C,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;wBAClD,YAAY,GAAG,IAAI,CAAC;qBACrB;iBACF;YACH,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QACF,YAAY,CAAC,CAAC,CAAC,IAAA,iCAAc,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAI,GAAE;KAChD,CAAC,CAAC;AACL,CAAC;AAzDD,kEAyDC"}
@@ -1,2 +0,0 @@
1
- import type { Rule, TaskId } from '@angular-devkit/schematics';
2
- export declare function addUpdateTask(pkg: string, to: string, dependencies?: TaskId[]): Rule;
@@ -1,83 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addUpdateTask = void 0;
4
- const Observable_1 = require("rxjs/internal/Observable");
5
- const child_process_1 = require("child_process");
6
- const path_1 = require("path");
7
- const ast_utils_1 = require("./ast-utils");
8
- let taskRegistered = false;
9
- function addUpdateTask(pkg, to, dependencies = []) {
10
- return (host, context) => {
11
- // Workflow should always be there during ng update but not during tests.
12
- if (!context.engine.workflow) {
13
- return;
14
- }
15
- const packageJson = (0, ast_utils_1.readJsonInTree)(host, 'package.json');
16
- if (!packageJson.dependencies[pkg] && !packageJson.devDependencies[pkg]) {
17
- return;
18
- }
19
- if (!taskRegistered) {
20
- const engineHost = context.engine.workflow._engineHost;
21
- engineHost.registerTaskExecutor(createRunUpdateTask());
22
- taskRegistered = true;
23
- }
24
- context.engine._taskSchedulers.forEach((scheduler) => {
25
- if (scheduler._queue.peek() &&
26
- scheduler._queue.peek().configuration.name === 'RunUpdate' &&
27
- scheduler._queue.peek().configuration.options.package === pkg) {
28
- scheduler._queue.pop();
29
- }
30
- });
31
- context.addTask(new RunUpdateTask(pkg, to), dependencies);
32
- };
33
- }
34
- exports.addUpdateTask = addUpdateTask;
35
- class RunUpdateTask {
36
- constructor(_pkg, _to) {
37
- this._pkg = _pkg;
38
- this._to = _to;
39
- }
40
- toConfiguration() {
41
- return {
42
- name: 'RunUpdate',
43
- options: {
44
- package: this._pkg,
45
- to: this._to,
46
- },
47
- };
48
- }
49
- }
50
- function createRunUpdateTask() {
51
- return {
52
- name: 'RunUpdate',
53
- create: () => {
54
- return Promise.resolve((options, context) => {
55
- context.logger.info(`Updating ${options.package} to ${options.to}`);
56
- const forkOptions = {
57
- stdio: [process.stdin, process.stdout, process.stderr, 'ipc'],
58
- shell: true,
59
- };
60
- const ng = (0, path_1.join)('./node_modules', '@angular/cli', 'bin/ng');
61
- const args = [
62
- 'update',
63
- `${options.package}@${options.to}`,
64
- '--force',
65
- '--allow-dirty',
66
- ].filter((e) => !!e);
67
- return new Observable_1.Observable((obs) => {
68
- (0, child_process_1.fork)(ng, args, forkOptions).on('close', (code) => {
69
- if (code === 0) {
70
- obs.next();
71
- obs.complete();
72
- }
73
- else {
74
- const message = `${options.package} migration failed, see above.`;
75
- obs.error(new Error(message));
76
- }
77
- });
78
- });
79
- });
80
- },
81
- };
82
- }
83
- //# sourceMappingURL=update-task.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-task.js","sourceRoot":"","sources":["../../../../../packages/workspace/src/utils/update-task.ts"],"names":[],"mappings":"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"}