@o3r/schematics 9.1.0-alpha.20 → 9.1.0-alpha.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (199) hide show
  1. package/index.d.ts +7 -0
  2. package/index.d.ts.map +1 -0
  3. package/index.js +10 -0
  4. package/index.js.map +1 -0
  5. package/interfaces/angular-workspace.d.ts +62 -0
  6. package/interfaces/angular-workspace.d.ts.map +1 -0
  7. package/interfaces/angular-workspace.js +3 -0
  8. package/interfaces/angular-workspace.js.map +1 -0
  9. package/interfaces/index.d.ts +3 -0
  10. package/interfaces/index.d.ts.map +1 -0
  11. package/interfaces/index.js +6 -0
  12. package/interfaces/index.js.map +1 -0
  13. package/interfaces/schematic-option.d.ts +5 -0
  14. package/interfaces/schematic-option.d.ts.map +1 -0
  15. package/interfaces/schematic-option.js +3 -0
  16. package/interfaces/schematic-option.js.map +1 -0
  17. package/modules/index.d.ts +3 -0
  18. package/modules/index.d.ts.map +1 -0
  19. package/modules/index.js +6 -0
  20. package/modules/index.js.map +1 -0
  21. package/modules/modules.constants.d.ts +34 -0
  22. package/modules/modules.constants.d.ts.map +1 -0
  23. package/modules/modules.constants.js +12 -0
  24. package/modules/modules.constants.js.map +1 -0
  25. package/modules/modules.helpers.d.ts +60 -0
  26. package/modules/modules.helpers.d.ts.map +1 -0
  27. package/modules/modules.helpers.js +165 -0
  28. package/modules/modules.helpers.js.map +1 -0
  29. package/package.json +4 -4
  30. package/public_api.d.ts +2 -0
  31. package/public_api.d.ts.map +1 -0
  32. package/public_api.js +5 -0
  33. package/public_api.js.map +1 -0
  34. package/rule-factories/add-imports/index.d.ts +12 -0
  35. package/rule-factories/add-imports/index.d.ts.map +1 -0
  36. package/rule-factories/add-imports/index.js +26 -0
  37. package/rule-factories/add-imports/index.js.map +1 -0
  38. package/rule-factories/check-packages-peers/index.d.ts +8 -0
  39. package/rule-factories/check-packages-peers/index.d.ts.map +1 -0
  40. package/rule-factories/check-packages-peers/index.js +106 -0
  41. package/rule-factories/check-packages-peers/index.js.map +1 -0
  42. package/rule-factories/eslint-fix/index.d.ts +28 -0
  43. package/rule-factories/eslint-fix/index.d.ts.map +1 -0
  44. package/rule-factories/eslint-fix/index.js +71 -0
  45. package/rule-factories/eslint-fix/index.js.map +1 -0
  46. package/rule-factories/index.d.ts +9 -0
  47. package/rule-factories/index.d.ts.map +1 -0
  48. package/rule-factories/index.js +12 -0
  49. package/rule-factories/index.js.map +1 -0
  50. package/rule-factories/interfaces.d.ts +6 -0
  51. package/rule-factories/interfaces.d.ts.map +1 -0
  52. package/rule-factories/interfaces.js +3 -0
  53. package/rule-factories/interfaces.js.map +1 -0
  54. package/rule-factories/ng-add/index.d.ts +38 -0
  55. package/rule-factories/ng-add/index.d.ts.map +1 -0
  56. package/rule-factories/ng-add/index.js +174 -0
  57. package/rule-factories/ng-add/index.js.map +1 -0
  58. package/rule-factories/remove-packages/index.d.ts +9 -0
  59. package/rule-factories/remove-packages/index.d.ts.map +1 -0
  60. package/rule-factories/remove-packages/index.js +29 -0
  61. package/rule-factories/remove-packages/index.js.map +1 -0
  62. package/rule-factories/update-imports/index.d.ts +5 -0
  63. package/rule-factories/update-imports/index.d.ts.map +1 -0
  64. package/rule-factories/update-imports/index.js +8 -0
  65. package/rule-factories/update-imports/index.js.map +1 -0
  66. package/rule-factories/update-imports/list-of-vars.d.ts +15 -0
  67. package/rule-factories/update-imports/list-of-vars.d.ts.map +1 -0
  68. package/rule-factories/update-imports/list-of-vars.js +44 -0
  69. package/rule-factories/update-imports/list-of-vars.js.map +1 -0
  70. package/rule-factories/update-imports/update-imports-with-scope.d.ts +12 -0
  71. package/rule-factories/update-imports/update-imports-with-scope.d.ts.map +1 -0
  72. package/rule-factories/update-imports/update-imports-with-scope.js +34 -0
  73. package/rule-factories/update-imports/update-imports-with-scope.js.map +1 -0
  74. package/rule-factories/update-imports/update-ts-imports.d.ts +11 -0
  75. package/rule-factories/update-imports/update-ts-imports.d.ts.map +1 -0
  76. package/rule-factories/update-imports/update-ts-imports.js +32 -0
  77. package/rule-factories/update-imports/update-ts-imports.js.map +1 -0
  78. package/rule-factories/update-imports/v7-to-v8-map-object.d.ts +8 -0
  79. package/rule-factories/update-imports/v7-to-v8-map-object.d.ts.map +1 -0
  80. package/rule-factories/update-imports/v7-to-v8-map-object.js +2049 -0
  81. package/rule-factories/update-imports/v7-to-v8-map-object.js.map +1 -0
  82. package/rule-factories/vscode-extensions/index.d.ts +8 -0
  83. package/rule-factories/vscode-extensions/index.d.ts.map +1 -0
  84. package/rule-factories/vscode-extensions/index.js +26 -0
  85. package/rule-factories/vscode-extensions/index.js.map +1 -0
  86. package/rules/index.d.ts +2 -0
  87. package/rules/index.d.ts.map +1 -0
  88. package/rules/index.js +5 -0
  89. package/rules/index.js.map +1 -0
  90. package/rules/install.d.ts +9 -0
  91. package/rules/install.d.ts.map +1 -0
  92. package/rules/install.js +21 -0
  93. package/rules/install.js.map +1 -0
  94. package/schematics/ng-add/index.js.map +1 -0
  95. package/schematics/ng-add/schema.js.map +1 -0
  96. package/tasks/eslint/index.d.ts +10 -0
  97. package/tasks/eslint/index.d.ts.map +1 -0
  98. package/tasks/eslint/index.js +29 -0
  99. package/tasks/eslint/index.js.map +1 -0
  100. package/tasks/index.d.ts +5 -0
  101. package/tasks/index.d.ts.map +1 -0
  102. package/tasks/index.js +8 -0
  103. package/tasks/index.js.map +1 -0
  104. package/tasks/link/index.d.ts +10 -0
  105. package/tasks/link/index.d.ts.map +1 -0
  106. package/tasks/link/index.js +26 -0
  107. package/tasks/link/index.js.map +1 -0
  108. package/tasks/ng-add/index.d.ts +30 -0
  109. package/tasks/ng-add/index.d.ts.map +1 -0
  110. package/tasks/ng-add/index.js +30 -0
  111. package/tasks/ng-add/index.js.map +1 -0
  112. package/tasks/package-manager/add-dev-dependency.d.ts +24 -0
  113. package/tasks/package-manager/add-dev-dependency.d.ts.map +1 -0
  114. package/tasks/package-manager/add-dev-dependency.js +34 -0
  115. package/tasks/package-manager/add-dev-dependency.js.map +1 -0
  116. package/tasks/package-manager/index.d.ts +4 -0
  117. package/tasks/package-manager/index.d.ts.map +1 -0
  118. package/tasks/package-manager/index.js +7 -0
  119. package/tasks/package-manager/index.js.map +1 -0
  120. package/tasks/package-manager/interfaces.d.ts +14 -0
  121. package/tasks/package-manager/interfaces.d.ts.map +1 -0
  122. package/tasks/package-manager/interfaces.js +3 -0
  123. package/tasks/package-manager/interfaces.js.map +1 -0
  124. package/tasks/package-manager/npm-install.d.ts +24 -0
  125. package/tasks/package-manager/npm-install.d.ts.map +1 -0
  126. package/tasks/package-manager/npm-install.js +35 -0
  127. package/tasks/package-manager/npm-install.js.map +1 -0
  128. package/utility/ast.d.ts +142 -0
  129. package/utility/ast.d.ts.map +1 -0
  130. package/utility/ast.js +325 -0
  131. package/utility/ast.js.map +1 -0
  132. package/utility/collection.d.ts +10 -0
  133. package/utility/collection.d.ts.map +1 -0
  134. package/utility/collection.js +20 -0
  135. package/utility/collection.js.map +1 -0
  136. package/utility/component.d.ts +46 -0
  137. package/utility/component.d.ts.map +1 -0
  138. package/utility/component.js +104 -0
  139. package/utility/component.js.map +1 -0
  140. package/utility/dependencies.d.ts +18 -0
  141. package/utility/dependencies.d.ts.map +1 -0
  142. package/utility/dependencies.js +31 -0
  143. package/utility/dependencies.js.map +1 -0
  144. package/utility/file-info.d.ts +23 -0
  145. package/utility/file-info.d.ts.map +1 -0
  146. package/utility/file-info.js +36 -0
  147. package/utility/file-info.js.map +1 -0
  148. package/utility/generation.d.ts +22 -0
  149. package/utility/generation.d.ts.map +1 -0
  150. package/utility/generation.js +67 -0
  151. package/utility/generation.js.map +1 -0
  152. package/utility/gitignore.d.ts +12 -0
  153. package/utility/gitignore.d.ts.map +1 -0
  154. package/utility/gitignore.js +28 -0
  155. package/utility/gitignore.js.map +1 -0
  156. package/utility/index.d.ts +18 -0
  157. package/utility/index.d.ts.map +1 -0
  158. package/utility/index.js +21 -0
  159. package/utility/index.js.map +1 -0
  160. package/utility/loaders.d.ts +122 -0
  161. package/utility/loaders.d.ts.map +1 -0
  162. package/utility/loaders.js +222 -0
  163. package/utility/loaders.js.map +1 -0
  164. package/utility/matching-peers.d.ts +24 -0
  165. package/utility/matching-peers.d.ts.map +1 -0
  166. package/utility/matching-peers.js +41 -0
  167. package/utility/matching-peers.js.map +1 -0
  168. package/utility/modules.d.ts +73 -0
  169. package/utility/modules.d.ts.map +1 -0
  170. package/utility/modules.js +201 -0
  171. package/utility/modules.js.map +1 -0
  172. package/utility/monorepo.d.ts +17 -0
  173. package/utility/monorepo.d.ts.map +1 -0
  174. package/utility/monorepo.js +30 -0
  175. package/utility/monorepo.js.map +1 -0
  176. package/utility/package-manager-runner.d.ts +43 -0
  177. package/utility/package-manager-runner.d.ts.map +1 -0
  178. package/utility/package-manager-runner.js +61 -0
  179. package/utility/package-manager-runner.js.map +1 -0
  180. package/utility/package-version.d.ts +17 -0
  181. package/utility/package-version.d.ts.map +1 -0
  182. package/utility/package-version.js +34 -0
  183. package/utility/package-version.js.map +1 -0
  184. package/utility/routes.d.ts +40 -0
  185. package/utility/routes.d.ts.map +1 -0
  186. package/utility/routes.js +103 -0
  187. package/utility/routes.js.map +1 -0
  188. package/utility/sub-entry.d.ts +18 -0
  189. package/utility/sub-entry.d.ts.map +1 -0
  190. package/utility/sub-entry.js +51 -0
  191. package/utility/sub-entry.js.map +1 -0
  192. package/utility/template-property.helper.d.ts +101 -0
  193. package/utility/template-property.helper.d.ts.map +1 -0
  194. package/utility/template-property.helper.js +175 -0
  195. package/utility/template-property.helper.js.map +1 -0
  196. package/utility/update-imports.d.ts +25 -0
  197. package/utility/update-imports.d.ts.map +1 -0
  198. package/utility/update-imports.js +86 -0
  199. package/utility/update-imports.js.map +1 -0
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkPackagesRule = void 0;
4
+ const path = require("node:path");
5
+ const commentJson = require("comment-json");
6
+ const semver_1 = require("semver");
7
+ /**
8
+ * Get package manager used in runs
9
+ * Defaults to the package manager setup in process.env if no package manager set in angular.json
10
+ *
11
+ * @param angularJsonString Content of angular.json file
12
+ */
13
+ function getPackageManager(angularJsonString) {
14
+ let packageManager = process.env && process.env.npm_execpath && process.env.npm_execpath.indexOf('yarn') === -1 ? 'npm' : 'yarn';
15
+ if (angularJsonString) {
16
+ const angularJsonObj = commentJson.parse(angularJsonString);
17
+ if (angularJsonObj?.cli?.packageManager) {
18
+ packageManager = angularJsonObj.cli.packageManager;
19
+ }
20
+ }
21
+ return packageManager;
22
+ }
23
+ /**
24
+ * Check if the first level of peer deps of a given package are installed.
25
+ * List all not installed packages or packages with version mismatch
26
+ *
27
+ * @param packageName
28
+ */
29
+ function getPackagesToInstallOrUpdate(packageName) {
30
+ let installedPackage;
31
+ try {
32
+ installedPackage = require(`${packageName}${path.posix.sep}package.json`);
33
+ }
34
+ catch (err) {
35
+ throw new Error(`The provided package is not installed: ${packageName}`);
36
+ }
37
+ const packagesToInstall = [];
38
+ const packagesWrongVersion = [];
39
+ const optionalPackages = Object.entries(installedPackage.peerDependenciesMeta || {})
40
+ .filter(([, dep]) => dep?.optional)
41
+ .map(([depName]) => depName);
42
+ const peerDependenciesMap = Object.entries(installedPackage.peerDependencies || {})
43
+ .reduce((acc, [name, val]) => {
44
+ if (!optionalPackages.includes(name)) {
45
+ acc[name] = val;
46
+ }
47
+ return acc;
48
+ }, {});
49
+ Object.entries(peerDependenciesMap).forEach(([pName, pVersion]) => {
50
+ let installedPackageVersion;
51
+ try {
52
+ installedPackageVersion = require(`${pName}${path.posix.sep}package.json`).version;
53
+ }
54
+ catch (err) {
55
+ packagesToInstall.push({ packageName: pName, version: pVersion });
56
+ }
57
+ if (installedPackageVersion && !(0, semver_1.satisfies)(installedPackageVersion, pVersion)) {
58
+ packagesWrongVersion.push({ packageName: pName, foundVersion: installedPackageVersion, version: pVersion });
59
+ }
60
+ });
61
+ return { packagesToInstall, packagesWrongVersion };
62
+ }
63
+ /**
64
+ * Log an instruction with the packages to install or update to match a package peer dependencies
65
+ *
66
+ * @param packageName
67
+ * @param angularJsonString
68
+ * @param logger
69
+ */
70
+ function checkPackagesToInstallOrUpdate(packageName, logger, angularJsonString) {
71
+ const packageManager = getPackageManager(angularJsonString);
72
+ const { packagesToInstall, packagesWrongVersion } = getPackagesToInstallOrUpdate(packageName);
73
+ if (packagesWrongVersion.length) {
74
+ logger.warn('');
75
+ logger.warn(`The following packages have a mismatch version installed to satisfy "${packageName}" needed versions:`);
76
+ packagesWrongVersion.forEach(dep => {
77
+ logger.warn(`${dep.packageName} found version is ${dep.foundVersion}. "${packageName}" needs ${dep.version}`);
78
+ });
79
+ logger.warn('');
80
+ logger.warn('You might consider reinstalling the packages with the good versions:');
81
+ packagesWrongVersion.forEach((dep) => logger.warn(`${packageManager} run ng update ${dep.packageName}@${dep.version}`));
82
+ }
83
+ if (packagesToInstall.length) {
84
+ logger.error('');
85
+ logger.error(`The following packages need to be installed to have "${packageName}" working. Run the commands one by one:`);
86
+ packagesToInstall.forEach((dep) => logger.error(`${packageManager} run ng add ${dep.packageName}@${dep.version}`));
87
+ throw new Error('Missing peer dependencies');
88
+ }
89
+ if (!packagesToInstall.length && !packagesWrongVersion.length) {
90
+ logger.info(`The package ${packageName} has all peer deps installed.\n`);
91
+ }
92
+ }
93
+ /**
94
+ * List peer deps packages of the given package, display a warning if version mismatch, error if peer dep is missing
95
+ *
96
+ * @param packageName The package to check peer deps for
97
+ */
98
+ function checkPackagesRule(packageName) {
99
+ return (tree, context) => {
100
+ const angularJson = tree.read('/angular.json');
101
+ checkPackagesToInstallOrUpdate(packageName, context.logger, angularJson?.toString());
102
+ return tree;
103
+ };
104
+ }
105
+ exports.checkPackagesRule = checkPackagesRule;
106
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rule-factories/check-packages-peers/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ /**
3
+ * Linter options
4
+ */
5
+ export interface LinterOptions {
6
+ /**
7
+ * Indicates if the linter process should succeed even if there are lint errors remaining
8
+ *
9
+ * @default true
10
+ */
11
+ force?: boolean;
12
+ /**
13
+ * If enabled, only errors are reported (--quiet option of ESLint CLI)
14
+ *
15
+ * @default true
16
+ */
17
+ hideWarnings?: boolean;
18
+ }
19
+ /**
20
+ * Apply EsLint fix
21
+ *
22
+ * @param prootPath Root path
23
+ * @param _prootPath
24
+ * @param extension List of file extensions to lint
25
+ * @param options Linter options
26
+ */
27
+ export declare function applyEsLintFix(_prootPath?: string, extension?: string[], options?: LinterOptions): Rule;
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rule-factories/eslint-fix/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,IAAI,EAA0B,MAAM,4BAA4B,CAAC;AAKpF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IAEH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,UAAU,SAAM,EAAE,SAAS,GAAE,MAAM,EAAW,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAoE5G"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyEsLintFix = void 0;
4
+ const node_child_process_1 = require("node:child_process");
5
+ const node_path_1 = require("node:path");
6
+ const package_manager_runner_1 = require("../../utility/package-manager-runner");
7
+ /**
8
+ * Apply EsLint fix
9
+ *
10
+ * @param prootPath Root path
11
+ * @param _prootPath
12
+ * @param extension List of file extensions to lint
13
+ * @param options Linter options
14
+ */
15
+ function applyEsLintFix(_prootPath = '/', extension = ['ts'], options) {
16
+ const linterOptions = {
17
+ force: true,
18
+ hideWarnings: true,
19
+ ...options
20
+ };
21
+ return (tree, context) => {
22
+ // directory of the deepest file
23
+ let dir = tree.getDir((0, node_path_1.dirname)(tree.actions
24
+ .map((action) => action.path.substr(1))
25
+ .reduce((acc, path) => {
26
+ const level = path.split('/').length;
27
+ if (acc.level < level) {
28
+ return { level, path };
29
+ }
30
+ return acc;
31
+ }, { level: 0, path: '' }).path));
32
+ let eslintFile;
33
+ do {
34
+ eslintFile = dir.subfiles.find((f) => f.startsWith('.eslintrc'));
35
+ if (eslintFile) {
36
+ eslintFile = (0, node_path_1.join)(dir.path.substr(1), eslintFile);
37
+ break;
38
+ }
39
+ dir = dir.parent;
40
+ } while (dir !== null);
41
+ if (dir === null || !eslintFile) {
42
+ context.logger.warn(`Asked to run lint fixes, but could not find a eslintrc config file.
43
+ You can consider to run later the following command to add otter linter rules: ng add @o3r/eslint-config-otter`);
44
+ }
45
+ const files = tree.actions.reduce((acc, action) => {
46
+ const filePath = action.path.substr(1);
47
+ if (extension.some((ext) => filePath.endsWith(`.${ext}`)) && dir && action.path.startsWith(dir.path)) {
48
+ acc.add(filePath);
49
+ }
50
+ return acc;
51
+ }, new Set());
52
+ try {
53
+ (0, node_child_process_1.exec)(`${(0, package_manager_runner_1.getPackageManagerExecutor)()} eslint ` +
54
+ Array.from(files).map((file) => `"${file}"`).join(' ') +
55
+ ' --fix --color' +
56
+ (linterOptions.hideWarnings ? ' --quiet' : '') +
57
+ (eslintFile ? ` --config ${eslintFile} --parser-options=tsconfigRootDir:${(0, node_path_1.resolve)(process.cwd(), (0, node_path_1.dirname)(eslintFile))}` : ''), (_error, stdout, stderr) => {
58
+ context.logger.info(stdout);
59
+ if (!linterOptions.force) {
60
+ context.logger.error(stderr);
61
+ }
62
+ });
63
+ }
64
+ catch {
65
+ context.logger.error('Could not run eslint');
66
+ }
67
+ return tree;
68
+ };
69
+ }
70
+ exports.applyEsLintFix = applyEsLintFix;
71
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rule-factories/eslint-fix/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export * from './add-imports/index';
2
+ export * from './eslint-fix/index';
3
+ export * from './interfaces';
4
+ export * from './check-packages-peers/index';
5
+ export * from './ng-add/index';
6
+ export * from './remove-packages/index';
7
+ export * from './update-imports/index';
8
+ export * from './vscode-extensions/index';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rule-factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./add-imports/index"), exports);
5
+ tslib_1.__exportStar(require("./eslint-fix/index"), exports);
6
+ tslib_1.__exportStar(require("./interfaces"), exports);
7
+ tslib_1.__exportStar(require("./check-packages-peers/index"), exports);
8
+ tslib_1.__exportStar(require("./ng-add/index"), exports);
9
+ tslib_1.__exportStar(require("./remove-packages/index"), exports);
10
+ tslib_1.__exportStar(require("./update-imports/index"), exports);
11
+ tslib_1.__exportStar(require("./vscode-extensions/index"), exports);
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rule-factories/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC;AACpC,6DAAmC;AACnC,uDAA6B;AAC7B,uEAA6C;AAC7C,yDAA+B;AAC/B,kEAAwC;AACxC,iEAAuC;AACvC,oEAA0C"}
@@ -0,0 +1,6 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ /** Rule Factory prototype */
3
+ export type RuleFactory = (options: {
4
+ [k: string]: unknown;
5
+ }, rootPath: string) => Rule;
6
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/rule-factories/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAElD,6BAA6B;AAC7B,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE;IAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/rule-factories/interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ import { NodeDependencyType } from '@schematics/angular/utility/dependencies';
3
+ import type { PackageJson } from 'type-fest';
4
+ import { SchematicOptionObject } from '../../interfaces';
5
+ import type { NgAddPackageOptions } from '../../tasks/index';
6
+ /**
7
+ * Install via `ng add` a list of npm packages.
8
+ *
9
+ * @param packages List of packages to be installed via `ng add`
10
+ * @param options install options
11
+ * @param packageJsonPath path of the package json of the project where they will be installed
12
+ */
13
+ export declare function ngAddPackages(packages: string[], options?: NgAddPackageOptions, packageJsonPath?: string): Rule;
14
+ /**
15
+ * Look for the peer dependencies and run ng add on the package requested version
16
+ *
17
+ * @param packages list of the name of the packages needed
18
+ * @param packageJsonPath path to package json that needs the peer to be resolved
19
+ * @param type how to install the dependency (dev, peer for a library or default for an application)
20
+ * @param options
21
+ * @param parentPackageInfo for logging purposes
22
+ */
23
+ export declare function ngAddPeerDependencyPackages(packages: string[], packageJsonPath: string, type: NodeDependencyType | undefined, options: NgAddPackageOptions, parentPackageInfo?: string): Rule;
24
+ /**
25
+ * Register the given package in the Angular CLI schematics
26
+ *
27
+ * @param packageJson PackageJson of the project containing the collection to add to the project
28
+ * @param angularJsonFile Path to the Angular.json file. Will use the workspace root's angular.json if not specified
29
+ */
30
+ export declare function registerPackageCollectionSchematics(packageJson: PackageJson, angularJsonFile?: string): Rule;
31
+ /**
32
+ * Setup schematics default params in angular.json
33
+ *
34
+ * @param schematicsDefaultParams default params to setup by schematic
35
+ * @param angularJsonFile Path to the Angular.json file. Will use the workspace root's angular.json if not specified
36
+ */
37
+ export declare function setupSchematicsDefaultParams(schematicsDefaultParams: Record<string, SchematicOptionObject>, angularJsonFile?: string): Rule;
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rule-factories/ng-add/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,IAAI,EAAkD,MAAM,4BAA4B,CAAC;AAG5H,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7D;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,mBAAmB,EAAE,eAAe,SAAkB,GAAG,IAAI,CAsFxH;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,gCAAiD,EAC5I,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,EAAE,MAAM,QAezD;AAED;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAQ5G;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAsB3I"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setupSchematicsDefaultParams = exports.registerPackageCollectionSchematics = exports.ngAddPeerDependencyPackages = exports.ngAddPackages = void 0;
4
+ const schematics_1 = require("@angular-devkit/schematics");
5
+ const tasks_1 = require("@angular-devkit/schematics/tasks");
6
+ const dependencies_1 = require("@schematics/angular/utility/dependencies");
7
+ const rxjs_1 = require("rxjs");
8
+ const index_1 = require("../../utility/index");
9
+ /**
10
+ * Install via `ng add` a list of npm packages.
11
+ *
12
+ * @param packages List of packages to be installed via `ng add`
13
+ * @param options install options
14
+ * @param packageJsonPath path of the package json of the project where they will be installed
15
+ */
16
+ function ngAddPackages(packages, options, packageJsonPath = '/package.json') {
17
+ const getInstalledVersion = async (packageName) => {
18
+ try {
19
+ return (await Promise.resolve(`${`${packageName}/package.json`}`).then(s => require(s))).version;
20
+ }
21
+ catch (e) {
22
+ return;
23
+ }
24
+ };
25
+ const getNgAddSchema = (packageName, context) => {
26
+ try {
27
+ const collection = context.engine.createCollection(packageName);
28
+ return collection.createSchematic('ng-add');
29
+ }
30
+ catch {
31
+ context.logger.warn(`No ng-add found for ${packageName}`);
32
+ return undefined;
33
+ }
34
+ };
35
+ const getOptions = (schema) => {
36
+ const schemaOptions = schema.description.schemaJson?.properties || {};
37
+ return Object.entries(options || {}).reduce((accOptions, [key, value]) => {
38
+ if (schemaOptions[key]) {
39
+ accOptions[key] = value;
40
+ }
41
+ return accOptions;
42
+ }, {});
43
+ };
44
+ const checkTreePackageJsonConsistency = (packageName) => {
45
+ return async (tree) => {
46
+ const latestInstalledVersion = await getInstalledVersion(packageName);
47
+ // We need to update manually the package json in the tree as the tree will overwrite the project at the end of the ng add @o3r/core
48
+ const packageJson = tree.readJson(packageJsonPath);
49
+ if (options?.dependencyType === dependencies_1.NodeDependencyType.Dev) {
50
+ packageJson.devDependencies = { ...packageJson.devDependencies, [packageName]: latestInstalledVersion };
51
+ }
52
+ else if (options?.dependencyType === dependencies_1.NodeDependencyType.Peer) {
53
+ packageJson.peerDependencies = { ...packageJson.peerDependencies, [packageName]: latestInstalledVersion };
54
+ }
55
+ else {
56
+ packageJson.dependencies = { ...packageJson.dependencies, [packageName]: latestInstalledVersion };
57
+ }
58
+ tree.overwrite(packageJsonPath, JSON.stringify(packageJson, null, 2));
59
+ return () => tree;
60
+ };
61
+ };
62
+ const ngAddSinglePackage = ({ packageName, version }) => {
63
+ return async (tree, context) => {
64
+ const installedVersion = await getInstalledVersion(packageName);
65
+ context.logger.info(`installed version of ${packageName}: ${installedVersion || 'undefined'} | expected: ${options?.version || 'latest'} as ${options?.dependencyType?.toString() || ''}`);
66
+ if (!installedVersion || version !== installedVersion) {
67
+ context.logger.info(`Running ng add for: ${packageName}${options?.version ? ' with version: ' + options.version : ''}`);
68
+ const packageManager = (0, index_1.getPackageManager)();
69
+ let installOptions = '';
70
+ if (options?.dependencyType === dependencies_1.NodeDependencyType.Dev && packageManager === 'yarn') {
71
+ installOptions = ' --prefer-dev';
72
+ }
73
+ else if (options?.dependencyType === dependencies_1.NodeDependencyType.Dev) {
74
+ installOptions = ' -D';
75
+ }
76
+ else if (options?.dependencyType === dependencies_1.NodeDependencyType.Peer) {
77
+ installOptions = ' -P';
78
+ }
79
+ context.addTask(new tasks_1.NodePackageInstallTask({
80
+ packageManager: packageManager,
81
+ packageName: packageName + (version ? `@${version}` : '') + installOptions,
82
+ hideOutput: false,
83
+ quiet: false
84
+ }));
85
+ await (0, rxjs_1.lastValueFrom)(context.engine.executePostTasks());
86
+ const ngAddCollection = getNgAddSchema(packageName, context);
87
+ if (ngAddCollection) {
88
+ const ngAddOptions = getOptions(ngAddCollection);
89
+ return () => (0, schematics_1.externalSchematic)(packageName, 'ng-add', ngAddOptions)(tree, context);
90
+ }
91
+ }
92
+ else {
93
+ context.logger.info(`Skipping ng add for: ${packageName}${options?.version ? ' with version: ' + options.version : ''}`);
94
+ }
95
+ return () => (tree);
96
+ };
97
+ };
98
+ const ngAddRulesToRun = (packages || []).map((packageName) => (0, schematics_1.chain)([
99
+ ngAddSinglePackage({ packageName, version: options?.version }),
100
+ checkTreePackageJsonConsistency(packageName)
101
+ ]));
102
+ return (0, schematics_1.chain)(ngAddRulesToRun);
103
+ }
104
+ exports.ngAddPackages = ngAddPackages;
105
+ /**
106
+ * Look for the peer dependencies and run ng add on the package requested version
107
+ *
108
+ * @param packages list of the name of the packages needed
109
+ * @param packageJsonPath path to package json that needs the peer to be resolved
110
+ * @param type how to install the dependency (dev, peer for a library or default for an application)
111
+ * @param options
112
+ * @param parentPackageInfo for logging purposes
113
+ */
114
+ function ngAddPeerDependencyPackages(packages, packageJsonPath, type = dependencies_1.NodeDependencyType.Default, options, parentPackageInfo) {
115
+ const dependencies = (0, index_1.getNodeDependencyList)((0, index_1.getExternalDependenciesVersionRange)(packages, packageJsonPath), type);
116
+ const externalPeerDepsRules = dependencies.map((dependency) => {
117
+ return ngAddPackages([dependency.name], {
118
+ ...options,
119
+ skipConfirmation: true,
120
+ version: dependency.version,
121
+ parentPackageInfo,
122
+ dependencyType: dependency.type
123
+ });
124
+ });
125
+ return (0, schematics_1.chain)(externalPeerDepsRules);
126
+ }
127
+ exports.ngAddPeerDependencyPackages = ngAddPeerDependencyPackages;
128
+ /**
129
+ * Register the given package in the Angular CLI schematics
130
+ *
131
+ * @param packageJson PackageJson of the project containing the collection to add to the project
132
+ * @param angularJsonFile Path to the Angular.json file. Will use the workspace root's angular.json if not specified
133
+ */
134
+ function registerPackageCollectionSchematics(packageJson, angularJsonFile) {
135
+ return (tree) => {
136
+ if (!packageJson.name) {
137
+ return tree;
138
+ }
139
+ const workspace = (0, index_1.readAngularJson)(tree, angularJsonFile);
140
+ return (0, index_1.writeAngularJson)(tree, (0, index_1.registerCollectionSchematics)(workspace, packageJson.name), angularJsonFile);
141
+ };
142
+ }
143
+ exports.registerPackageCollectionSchematics = registerPackageCollectionSchematics;
144
+ /**
145
+ * Setup schematics default params in angular.json
146
+ *
147
+ * @param schematicsDefaultParams default params to setup by schematic
148
+ * @param angularJsonFile Path to the Angular.json file. Will use the workspace root's angular.json if not specified
149
+ */
150
+ function setupSchematicsDefaultParams(schematicsDefaultParams, angularJsonFile) {
151
+ return (tree) => {
152
+ const workspace = (0, index_1.readAngularJson)(tree, angularJsonFile);
153
+ workspace.schematics ||= {};
154
+ Object.entries(schematicsDefaultParams).forEach(([schematicName, defaultParams]) => {
155
+ workspace.schematics[schematicName] = {
156
+ ...workspace.schematics[schematicName],
157
+ ...defaultParams
158
+ };
159
+ });
160
+ Object.values(workspace.projects).forEach((project) => {
161
+ Object.entries(schematicsDefaultParams).forEach(([schematicName, defaultParams]) => {
162
+ if (project.schematics?.[schematicName]) {
163
+ project.schematics[schematicName] = {
164
+ ...project.schematics[schematicName],
165
+ ...defaultParams
166
+ };
167
+ }
168
+ });
169
+ });
170
+ return (0, index_1.writeAngularJson)(tree, workspace, angularJsonFile);
171
+ };
172
+ }
173
+ exports.setupSchematicsDefaultParams = setupSchematicsDefaultParams;
174
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rule-factories/ng-add/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { SchematicContext, Tree } from '@angular-devkit/schematics';
2
+ /**
3
+ * Remove the list of given packages from package.json
4
+ *
5
+ * @param packagesToRemove The list of packages to remove
6
+ * @param packageJsonPath The path of the package json file from which the deps will be removed
7
+ */
8
+ export declare function removePackages(packagesToRemove: string[], packageJsonPath?: string): (tree: Tree, _context: SchematicContext) => import("@angular-devkit/schematics/src/tree/interface").Tree;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rule-factories/remove-packages/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAGzE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,EAAE,eAAe,SAAkB,UAC5E,IAAI,8FAqBnB"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removePackages = void 0;
4
+ /**
5
+ * Remove the list of given packages from package.json
6
+ *
7
+ * @param packagesToRemove The list of packages to remove
8
+ * @param packageJsonPath The path of the package json file from which the deps will be removed
9
+ */
10
+ function removePackages(packagesToRemove, packageJsonPath = '/package.json') {
11
+ return (tree, _context) => {
12
+ const filterDeps = (acc = {}, [pName, pVersion]) => {
13
+ if (!packagesToRemove.includes(pName)) {
14
+ acc[pName] = pVersion;
15
+ }
16
+ return acc;
17
+ };
18
+ if (tree.exists(packageJsonPath)) {
19
+ const packageJson = JSON.parse(tree.read(packageJsonPath).toString());
20
+ packageJson.dependencies &&= Object.entries(packageJson.dependencies).reduce(filterDeps, {});
21
+ packageJson.devDependencies &&= Object.entries(packageJson.devDependencies).reduce(filterDeps, {});
22
+ packageJson.peerDependencies &&= Object.entries(packageJson.peerDependencies).reduce(filterDeps, {});
23
+ tree.overwrite(packageJsonPath, JSON.stringify(packageJson, null, 2));
24
+ }
25
+ return tree;
26
+ };
27
+ }
28
+ exports.removePackages = removePackages;
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rule-factories/remove-packages/index.ts"],"names":[],"mappings":";;;AAGA;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,gBAA0B,EAAE,eAAe,GAAG,eAAe;IAC1F,OAAO,CAAC,IAAU,EAAE,QAA0B,EAAE,EAAE;QAEhD,MAAM,UAAU,GAAG,CAAC,MAA0C,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAA+B,EAAE,EAAE;YACnH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACrC,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;aACvB;YACD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;YAChC,MAAM,WAAW,GAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEpF,WAAW,CAAC,YAAY,KAAK,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC7F,WAAW,CAAC,eAAe,KAAK,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACnG,WAAW,CAAC,gBAAgB,KAAK,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAErG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;SACvE;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAtBD,wCAsBC"}
@@ -0,0 +1,5 @@
1
+ export * from './list-of-vars';
2
+ export * from './update-imports-with-scope';
3
+ export * from './update-ts-imports';
4
+ export * from './v7-to-v8-map-object';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rule-factories/update-imports/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./list-of-vars"), exports);
5
+ tslib_1.__exportStar(require("./update-imports-with-scope"), exports);
6
+ tslib_1.__exportStar(require("./update-ts-imports"), exports);
7
+ tslib_1.__exportStar(require("./v7-to-v8-map-object"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rule-factories/update-imports/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B;AAC/B,sEAA4C;AAC5C,8DAAoC;AACpC,gEAAsC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ *
3
+ * Represents an element that is exposed in a Sass import.
4
+ *
5
+ * @property value: The name of the exposed element.
6
+ * @property type: The type of the exposed element, either 'function' or 'var'.
7
+ * @property replacement: The name of the replacement element, if any.
8
+ */
9
+ export interface SassImportExposedElement {
10
+ value: string;
11
+ type: 'function' | 'var';
12
+ replacement?: string | undefined;
13
+ }
14
+ export declare const listOfExposedElements: SassImportExposedElement[];
15
+ //# sourceMappingURL=list-of-vars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-of-vars.d.ts","sourceRoot":"","sources":["../../../src/rule-factories/update-imports/list-of-vars.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,GAAG,KAAK,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,eAAO,MAAM,qBAAqB,EAAE,wBAAwB,EAuC3D,CAAC"}