@rxap/plugin-library 16.0.0-dev.0 → 16.0.0-dev.10

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.
Files changed (128) hide show
  1. package/CHANGELOG.md +103 -158
  2. package/README.md +94 -127
  3. package/executors.json +29 -0
  4. package/generators.json +24 -0
  5. package/package.json +74 -37
  6. package/src/executors/check-version/executor.d.ts +5 -0
  7. package/src/executors/check-version/executor.js +36 -0
  8. package/src/executors/check-version/executor.js.map +1 -0
  9. package/src/executors/check-version/schema.d.ts +3 -0
  10. package/src/executors/check-version/schema.json +16 -0
  11. package/src/executors/readme/executor.d.ts +5 -0
  12. package/src/executors/readme/executor.js +141 -0
  13. package/src/executors/readme/executor.js.map +1 -0
  14. package/src/executors/readme/schema.d.ts +1 -0
  15. package/src/{builders/update-package-group → executors/readme}/schema.json +2 -3
  16. package/src/executors/run-generator/executor.d.ts +5 -0
  17. package/src/executors/run-generator/executor.js +46 -0
  18. package/src/executors/run-generator/executor.js.map +1 -0
  19. package/src/executors/run-generator/schema.d.ts +6 -0
  20. package/src/executors/run-generator/schema.json +27 -0
  21. package/src/executors/update-dependencies/executor.d.ts +5 -0
  22. package/src/executors/update-dependencies/executor.js +32 -0
  23. package/src/executors/update-dependencies/executor.js.map +1 -0
  24. package/src/executors/update-dependencies/schema.d.ts +1 -0
  25. package/src/executors/update-dependencies/schema.json +9 -0
  26. package/src/executors/update-package-group/executor.d.ts +5 -0
  27. package/src/executors/update-package-group/executor.js +45 -0
  28. package/src/executors/update-package-group/executor.js.map +1 -0
  29. package/src/executors/update-package-group/schema.d.ts +1 -0
  30. package/src/executors/update-package-group/schema.json +9 -0
  31. package/src/generators/fix-dependencies/generator.d.ts +27 -0
  32. package/src/generators/fix-dependencies/generator.js +520 -0
  33. package/src/generators/fix-dependencies/generator.js.map +1 -0
  34. package/src/generators/fix-dependencies/schema.d.ts +8 -0
  35. package/src/generators/fix-dependencies/schema.json +31 -0
  36. package/src/generators/index-export/generator.d.ts +4 -0
  37. package/src/generators/index-export/generator.js +72 -0
  38. package/src/generators/index-export/generator.js.map +1 -0
  39. package/src/generators/index-export/schema.d.ts +3 -0
  40. package/src/generators/index-export/schema.json +16 -0
  41. package/src/generators/init/files/README.md.handlebars +115 -0
  42. package/src/generators/init/generator.d.ts +4 -0
  43. package/src/generators/init/generator.js +156 -0
  44. package/src/generators/init/generator.js.map +1 -0
  45. package/src/generators/init/schema.d.ts +3 -0
  46. package/src/generators/init/schema.json +16 -0
  47. package/src/generators/init-plugin/generator.d.ts +4 -0
  48. package/src/generators/init-plugin/generator.js +54 -0
  49. package/src/generators/init-plugin/generator.js.map +1 -0
  50. package/src/generators/init-plugin/schema.d.ts +3 -0
  51. package/src/generators/init-plugin/schema.json +16 -0
  52. package/src/index.d.ts +1 -1
  53. package/src/index.js +3 -0
  54. package/src/index.js.map +1 -1
  55. package/LICENSE +0 -630
  56. package/builders.json +0 -20
  57. package/collection.json +0 -32
  58. package/migration.json +0 -4
  59. package/src/builders/build-schematics/builder.d.ts +0 -13
  60. package/src/builders/build-schematics/builder.js +0 -84
  61. package/src/builders/build-schematics/builder.js.map +0 -1
  62. package/src/builders/build-schematics/schema.json +0 -66
  63. package/src/builders/update-package-group/builder.d.ts +0 -19
  64. package/src/builders/update-package-group/builder.js +0 -89
  65. package/src/builders/update-package-group/builder.js.map +0 -1
  66. package/src/builders/update-package-group/read-file.d.ts +0 -7
  67. package/src/builders/update-package-group/read-file.js +0 -11
  68. package/src/builders/update-package-group/read-file.js.map +0 -1
  69. package/src/builders/update-package-group/write-file.d.ts +0 -5
  70. package/src/builders/update-package-group/write-file.js +0 -11
  71. package/src/builders/update-package-group/write-file.js.map +0 -1
  72. package/src/builders/update-peer-dependencies/builder.d.ts +0 -40
  73. package/src/builders/update-peer-dependencies/builder.js +0 -293
  74. package/src/builders/update-peer-dependencies/builder.js.map +0 -1
  75. package/src/builders/update-peer-dependencies/schema.json +0 -33
  76. package/src/builders/utils/assets.d.ts +0 -14
  77. package/src/builders/utils/assets.js +0 -54
  78. package/src/builders/utils/assets.js.map +0 -1
  79. package/src/builders/utils/compile-typescript-files.d.ts +0 -13
  80. package/src/builders/utils/compile-typescript-files.js +0 -56
  81. package/src/builders/utils/compile-typescript-files.js.map +0 -1
  82. package/src/builders/utils/equals.d.ts +0 -1
  83. package/src/builders/utils/equals.js +0 -200
  84. package/src/builders/utils/equals.js.map +0 -1
  85. package/src/builders/utils/unique.d.ts +0 -1
  86. package/src/builders/utils/unique.js +0 -8
  87. package/src/builders/utils/unique.js.map +0 -1
  88. package/src/schematics/config/index.d.ts +0 -3
  89. package/src/schematics/config/index.js +0 -17
  90. package/src/schematics/config/index.js.map +0 -1
  91. package/src/schematics/config/schema.json +0 -50
  92. package/src/schematics/config-schematics/coerce-builders-json.d.ts +0 -2
  93. package/src/schematics/config-schematics/coerce-builders-json.js +0 -23
  94. package/src/schematics/config-schematics/coerce-builders-json.js.map +0 -1
  95. package/src/schematics/config-schematics/coerce-builders.d.ts +0 -1
  96. package/src/schematics/config-schematics/coerce-builders.js +0 -11
  97. package/src/schematics/config-schematics/coerce-builders.js.map +0 -1
  98. package/src/schematics/config-schematics/coerce-collection-json.d.ts +0 -2
  99. package/src/schematics/config-schematics/coerce-collection-json.js +0 -23
  100. package/src/schematics/config-schematics/coerce-collection-json.js.map +0 -1
  101. package/src/schematics/config-schematics/coerce-migration-json.d.ts +0 -2
  102. package/src/schematics/config-schematics/coerce-migration-json.js +0 -23
  103. package/src/schematics/config-schematics/coerce-migration-json.js.map +0 -1
  104. package/src/schematics/config-schematics/coerce-ng-update.d.ts +0 -1
  105. package/src/schematics/config-schematics/coerce-ng-update.js +0 -21
  106. package/src/schematics/config-schematics/coerce-ng-update.js.map +0 -1
  107. package/src/schematics/config-schematics/coerce-schematics.d.ts +0 -1
  108. package/src/schematics/config-schematics/coerce-schematics.js +0 -11
  109. package/src/schematics/config-schematics/coerce-schematics.js.map +0 -1
  110. package/src/schematics/config-schematics/index.d.ts +0 -3
  111. package/src/schematics/config-schematics/index.js +0 -96
  112. package/src/schematics/config-schematics/index.js.map +0 -1
  113. package/src/schematics/config-schematics/init-src-files.d.ts +0 -2
  114. package/src/schematics/config-schematics/init-src-files.js +0 -16
  115. package/src/schematics/config-schematics/init-src-files.js.map +0 -1
  116. package/src/schematics/config-schematics/schema.json +0 -47
  117. package/src/schematics/config-update-package-group/index.d.ts +0 -3
  118. package/src/schematics/config-update-package-group/index.js +0 -21
  119. package/src/schematics/config-update-package-group/index.js.map +0 -1
  120. package/src/schematics/config-update-package-group/schema.json +0 -21
  121. package/src/schematics/config-update-peer-dependencies/index.d.ts +0 -3
  122. package/src/schematics/config-update-peer-dependencies/index.js +0 -26
  123. package/src/schematics/config-update-peer-dependencies/index.js.map +0 -1
  124. package/src/schematics/config-update-peer-dependencies/schema.json +0 -28
  125. package/src/schematics/ng-add/index.d.ts +0 -3
  126. package/src/schematics/ng-add/index.js +0 -21
  127. package/src/schematics/ng-add/index.js.map +0 -1
  128. package/src/schematics/ng-add/schema.json +0 -17
@@ -0,0 +1,520 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fixDependenciesGenerator = exports.removeSelfReferenceFromDependencies = exports.removePackageFromDependencies = exports.replaceLatestPackageVersionForProject = exports.resolveLatestPackageVersion = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const devkit_1 = require("@nx/devkit");
6
+ const generator_ts_morph_1 = require("@rxap/generator-ts-morph");
7
+ const generator_utilities_1 = require("@rxap/generator-utilities");
8
+ const node_utilities_1 = require("@rxap/node-utilities");
9
+ const path_1 = require("path");
10
+ const ts_morph_1 = require("ts-morph");
11
+ function resolveProjectDependencies(projectGraph, project, resolved = []) {
12
+ if (resolved.includes(project)) {
13
+ return [];
14
+ }
15
+ const dependencies = [];
16
+ const projectDependencies = projectGraph.dependencies[project];
17
+ for (const dependency of projectDependencies) {
18
+ if (!dependency.target.startsWith('npm:')) {
19
+ dependencies.push(dependency.target);
20
+ dependencies.push(...resolveProjectDependencies(projectGraph, dependency.target, [...resolved, dependency.target, project]));
21
+ }
22
+ }
23
+ return dependencies.filter((value, index, array) => array.indexOf(value) === index);
24
+ }
25
+ function getPackageListFromSourceFiles(project) {
26
+ const packageList = [];
27
+ project.getSourceFiles().forEach(sourceFile => {
28
+ sourceFile.getImportDeclarations().forEach(importDeclaration => {
29
+ const moduleSpecifier = importDeclaration.getModuleSpecifierValue();
30
+ if (moduleSpecifier.startsWith('.')) {
31
+ return;
32
+ }
33
+ const match = moduleSpecifier.match(/^([^@][^/]+)\/.+$/) || moduleSpecifier.match(/^(@[^/]+\/[^/]+)\/.+/);
34
+ let packageName;
35
+ if (match) {
36
+ packageName = match[1];
37
+ }
38
+ else {
39
+ packageName = moduleSpecifier;
40
+ }
41
+ if (!packageList.includes(packageName)) {
42
+ packageList.push(packageName);
43
+ console.log(`Add package ${packageName} from source file ${sourceFile.getFilePath()}`);
44
+ }
45
+ });
46
+ });
47
+ return packageList
48
+ .filter((value, index, array) => array.indexOf(value) === index)
49
+ .filter(packageName => !PACKAGE_ADD_BLACK_LIST.some(regexOrString => typeof regexOrString === 'string' ?
50
+ regexOrString === packageName :
51
+ regexOrString.test(packageName)));
52
+ }
53
+ const TESTING_FILE_EXTENSIONS = [
54
+ 'cypress.config.ts',
55
+ '.spec.ts',
56
+ '.e2e-spec.ts',
57
+ '.stories.ts',
58
+ 'test-setup.ts',
59
+ '.cy.ts',
60
+ ];
61
+ const TESTING_FOLDERS = ['cypress', '.storybook'];
62
+ const PACKAGE_REMOVE_BLACK_LIST = ['tslib'];
63
+ const PACKAGE_ADD_BLACK_LIST = [
64
+ /@firebase/,
65
+ 'fs',
66
+ 'path',
67
+ 'child_process',
68
+ 'os',
69
+ 'crypto',
70
+ 'util',
71
+ 'events',
72
+ 'stream',
73
+ 'assert',
74
+ 'tty',
75
+ 'net',
76
+ 'dns',
77
+ 'tls',
78
+ 'http',
79
+ 'https',
80
+ 'zlib',
81
+ 'url',
82
+ 'querystring',
83
+ 'punycode',
84
+ 'string_decoder',
85
+ 'http2',
86
+ 'perf_hooks',
87
+ 'worker_threads',
88
+ 'v8',
89
+ 'vm',
90
+ 'async_hooks',
91
+ 'inspector',
92
+ 'trace_events',
93
+ 'console',
94
+ 'buffer',
95
+ 'constants',
96
+ 'v8',
97
+ 'domain',
98
+ 'readline',
99
+ 'repl',
100
+ 'timers',
101
+ 'module',
102
+ 'process',
103
+ 'cluster',
104
+ 'dgram',
105
+ 'fs/promises',
106
+ 'perf_hooks',
107
+ 'readline',
108
+ 'repl',
109
+ 'string_decoder',
110
+ 'tls/promises',
111
+ 'trace_events',
112
+ 'tty',
113
+ 'worker_threads',
114
+ 'zlib/promises',
115
+ 'assert',
116
+ 'async_hooks',
117
+ 'buffer',
118
+ 'child_process',
119
+ 'console',
120
+ 'crypto',
121
+ 'dns/promises',
122
+ 'domain',
123
+ 'events',
124
+ 'fs',
125
+ 'http',
126
+ 'http2',
127
+ 'https',
128
+ 'net',
129
+ 'os',
130
+ 'path',
131
+ 'querystring',
132
+ 'stream',
133
+ 'timers',
134
+ 'tls',
135
+ 'tty',
136
+ 'url',
137
+ 'util',
138
+ 'v8',
139
+ 'vm',
140
+ 'zlib',
141
+ 'glob',
142
+ 'fs-extra',
143
+ 'express',
144
+ 'axios',
145
+ ];
146
+ function addDependedProjects(projectGraph, tree, packageName, projectRoot, dependencies) {
147
+ const projectName = (0, generator_utilities_1.PackageNameToProjectName)(packageName);
148
+ const dependedProjectList = resolveProjectDependencies(projectGraph, projectName);
149
+ for (const dependedProject of dependedProjectList) {
150
+ const dependedPackageName = (0, generator_utilities_1.ProjectNameToPackageName)(dependedProject);
151
+ if (!dependencies[dependedPackageName]) {
152
+ dependencies[dependedPackageName] = findBasePackageVersion(tree, dependedPackageName, projectRoot);
153
+ }
154
+ }
155
+ }
156
+ function fixPeerDependenciesWithTsMorphProject(projectGraph, tree, projectRoot, { dependencies, peerDependencies, devDependencies, }) {
157
+ var _a;
158
+ const project = new ts_morph_1.Project({
159
+ manipulationSettings: {
160
+ indentationText: ts_morph_1.IndentationText.TwoSpaces,
161
+ quoteKind: ts_morph_1.QuoteKind.Single,
162
+ },
163
+ useInMemoryFileSystem: true,
164
+ });
165
+ (0, generator_ts_morph_1.AddDir)(tree, projectRoot, project, (fileName, path) => !path.includes('node_modules') &&
166
+ fileName.endsWith('.ts') &&
167
+ !TESTING_FOLDERS.map(folder => (0, path_1.join)(projectRoot, folder)).some(folder => path.includes(folder)) &&
168
+ !TESTING_FILE_EXTENSIONS.some(ext => fileName.endsWith(ext)));
169
+ const packageList = getPackageListFromSourceFiles(project);
170
+ const addedPackageList = [];
171
+ const changedPackageList = [];
172
+ const removedPackageList = [];
173
+ const unknownPackageList = [];
174
+ for (const packageName of Object.keys(peerDependencies)) {
175
+ if (!packageList.includes(packageName) && !PACKAGE_REMOVE_BLACK_LIST.includes(packageName)) {
176
+ removedPackageList.push(`${packageName}@${peerDependencies[packageName]} from peerDependencies`);
177
+ delete peerDependencies[packageName];
178
+ }
179
+ }
180
+ for (const packageName of Object.keys(dependencies)) {
181
+ if (!packageList.includes(packageName) && !PACKAGE_REMOVE_BLACK_LIST.includes(packageName)) {
182
+ removedPackageList.push(`${packageName}@${dependencies[packageName]} from dependencies`);
183
+ delete dependencies[packageName];
184
+ }
185
+ }
186
+ for (const packageName of packageList) {
187
+ if ((0, generator_utilities_1.HasProjectWithPackageName)(packageName)) {
188
+ if (!dependencies[packageName]) {
189
+ peerDependencies[packageName] = (_a = peerDependencies[packageName]) !== null && _a !== void 0 ? _a : '*';
190
+ }
191
+ }
192
+ else {
193
+ if (!dependencies[packageName]) {
194
+ const version = findBasePackageVersion(tree, packageName, projectRoot);
195
+ if (peerDependencies[packageName]) {
196
+ if (peerDependencies[packageName] !== version) {
197
+ changedPackageList.push(`${packageName}@${peerDependencies[packageName]} -> ${version}`);
198
+ peerDependencies[packageName] = version;
199
+ }
200
+ }
201
+ else {
202
+ addedPackageList.push(`${packageName}@${version}`);
203
+ peerDependencies[packageName] = version;
204
+ }
205
+ if (version === 'latest') {
206
+ unknownPackageList.push(packageName);
207
+ }
208
+ peerDependencies[packageName] = version;
209
+ }
210
+ }
211
+ }
212
+ return {
213
+ addedPackageList,
214
+ changedPackageList,
215
+ removedPackageList,
216
+ unknownPackageList,
217
+ };
218
+ }
219
+ function fixDevDependenciesWithTsMorphProject(projectGraph, tree, projectRoot, { dependencies, peerDependencies, devDependencies, }) {
220
+ const project = new ts_morph_1.Project({
221
+ manipulationSettings: {
222
+ indentationText: ts_morph_1.IndentationText.TwoSpaces,
223
+ quoteKind: ts_morph_1.QuoteKind.Single,
224
+ },
225
+ useInMemoryFileSystem: true,
226
+ });
227
+ (0, generator_ts_morph_1.AddDir)(tree, projectRoot, project, (fileName, path) => !path.includes('node_modules') &&
228
+ fileName.endsWith('.ts') &&
229
+ !TESTING_FOLDERS.map(folder => (0, path_1.join)(projectRoot, folder)).some(folder => path.includes(folder)) &&
230
+ TESTING_FILE_EXTENSIONS.some(ext => fileName.endsWith(ext)));
231
+ const packageList = getPackageListFromSourceFiles(project);
232
+ const addedPackageList = [];
233
+ const changedPackageList = [];
234
+ const removedPackageList = [];
235
+ const unknownPackageList = [];
236
+ for (const packageName of Object.keys(devDependencies)) {
237
+ if (!packageList.includes(packageName) &&
238
+ !peerDependencies[packageName] &&
239
+ !PACKAGE_REMOVE_BLACK_LIST.includes(packageName)) {
240
+ removedPackageList.push(`${packageName}@${devDependencies[packageName]} from devDependencies`);
241
+ delete devDependencies[packageName];
242
+ }
243
+ }
244
+ for (const packageName of packageList) {
245
+ if ((0, generator_utilities_1.HasProjectWithPackageName)(packageName)) {
246
+ if (!peerDependencies[packageName] && !dependencies[packageName]) {
247
+ devDependencies[packageName] = '*';
248
+ }
249
+ }
250
+ else {
251
+ if (!peerDependencies[packageName] && !dependencies[packageName]) {
252
+ const version = findBasePackageVersion(tree, packageName, projectRoot);
253
+ if (devDependencies[packageName]) {
254
+ if (devDependencies[packageName] !== version) {
255
+ changedPackageList.push(`${packageName}@${devDependencies[packageName]} -> ${version}`);
256
+ devDependencies[packageName] = version;
257
+ }
258
+ }
259
+ else {
260
+ addedPackageList.push(`${packageName}@${version}`);
261
+ devDependencies[packageName] = version;
262
+ }
263
+ if (version === 'latest') {
264
+ unknownPackageList.push(packageName);
265
+ }
266
+ devDependencies[packageName] = version;
267
+ }
268
+ }
269
+ }
270
+ return {
271
+ addedPackageList,
272
+ changedPackageList,
273
+ removedPackageList,
274
+ unknownPackageList,
275
+ };
276
+ }
277
+ const PACKAGE_VERSION_MAP = {};
278
+ function loadAvailablePackageVersion(tree, projectRoot) {
279
+ PACKAGE_VERSION_MAP[projectRoot] = {};
280
+ function updateMap(dependencies) {
281
+ for (const [packageName, version] of Object.entries(dependencies !== null && dependencies !== void 0 ? dependencies : {})) {
282
+ if (version !== '*' && !(0, generator_utilities_1.HasProjectWithPackageName)(packageName)) {
283
+ if (!PACKAGE_VERSION_MAP[packageName]) {
284
+ PACKAGE_VERSION_MAP[projectRoot][packageName] = version;
285
+ }
286
+ }
287
+ }
288
+ }
289
+ function pinVersionToMajorRelease(versionMap) {
290
+ for (const [packageName, version] of Object.entries(versionMap)) {
291
+ if (version.startsWith('~')) {
292
+ versionMap[packageName] = version.replace('~', '^');
293
+ }
294
+ if (version.match(/^\d+/)) {
295
+ versionMap[packageName] = `^${version}`;
296
+ }
297
+ }
298
+ }
299
+ let workingDirectory = '/' + projectRoot;
300
+ let lastWorkingDirectory = '';
301
+ do {
302
+ if (tree.exists((0, path_1.join)(workingDirectory, 'package.json'))) {
303
+ const packageJson = JSON.parse(tree.read((0, path_1.join)(workingDirectory, 'package.json')).toString('utf-8'));
304
+ updateMap(packageJson.dependencies);
305
+ updateMap(packageJson.peerDependencies);
306
+ updateMap(packageJson.devDependencies);
307
+ updateMap(packageJson.optionalDependencies);
308
+ }
309
+ lastWorkingDirectory = workingDirectory;
310
+ workingDirectory = (0, path_1.join)(workingDirectory, '..');
311
+ } while (workingDirectory !== lastWorkingDirectory);
312
+ pinVersionToMajorRelease(PACKAGE_VERSION_MAP[projectRoot]);
313
+ }
314
+ function findBasePackageVersion(tree, packageName, projectRoot) {
315
+ if (!PACKAGE_VERSION_MAP[projectRoot]) {
316
+ throw new Error('Package version map not loaded. Ensure the loadAvailablePackageVersion function is called before.');
317
+ }
318
+ if (PACKAGE_VERSION_MAP[projectRoot][packageName]) {
319
+ return PACKAGE_VERSION_MAP[projectRoot][packageName];
320
+ }
321
+ return 'latest';
322
+ }
323
+ function printReport({ addedPackageList, changedPackageList, removedPackageList, unknownPackageList, }) {
324
+ if (addedPackageList.length) {
325
+ console.log(`Added packages: ${addedPackageList.length}`);
326
+ console.log(addedPackageList.join('\n'));
327
+ }
328
+ if (changedPackageList.length) {
329
+ console.log(`Changed packages: ${changedPackageList.length}`);
330
+ console.log(changedPackageList.join('\n'));
331
+ }
332
+ if (removedPackageList.length) {
333
+ console.log(`Removed packages: ${removedPackageList.length}`);
334
+ console.log(removedPackageList.join('\n'));
335
+ }
336
+ if (unknownPackageList.length) {
337
+ console.log(`Unknown packages: ${unknownPackageList.length}`);
338
+ console.log(unknownPackageList.join('\n'));
339
+ }
340
+ }
341
+ function skipProject(tree, project, projectRoot, projects = []) {
342
+ if (projects.length && !projects.includes(project)) {
343
+ console.debug(`Skip project ${project} because it is not in the list of projects`);
344
+ return true;
345
+ }
346
+ if (projectRoot === '.') {
347
+ console.debug('skip root project');
348
+ return true;
349
+ }
350
+ if (!tree.exists(`${projectRoot}/package.json`)) {
351
+ console.debug(`No package.json file found in ${projectRoot}`);
352
+ return true;
353
+ }
354
+ return false;
355
+ }
356
+ const RESOLVED_PACKAGE_VERSION_MAP = {};
357
+ function resolveLatestPackageVersion(packageName) {
358
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
359
+ if (RESOLVED_PACKAGE_VERSION_MAP[packageName]) {
360
+ return RESOLVED_PACKAGE_VERSION_MAP[packageName];
361
+ }
362
+ return RESOLVED_PACKAGE_VERSION_MAP[packageName] = yield (0, node_utilities_1.GetLatestPackageVersion)(packageName);
363
+ });
364
+ }
365
+ exports.resolveLatestPackageVersion = resolveLatestPackageVersion;
366
+ function replaceLatestPackageVersionForProject(tree, projectName) {
367
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
368
+ console.log(`Replace latest package version for project ${projectName}`);
369
+ const projectRoot = (0, generator_utilities_1.GetProjectRoot)(tree, projectName);
370
+ const packageJson = JSON.parse(tree.read((0, path_1.join)(projectRoot, 'package.json')).toString('utf-8'));
371
+ const dependencies = packageJson.dependencies;
372
+ const peerDependencies = packageJson.peerDependencies;
373
+ const devDependencies = packageJson.devDependencies;
374
+ const optionalDependencies = packageJson.optionalDependencies;
375
+ function replaceLatestPackageVersion(dependencies) {
376
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
377
+ for (const [packageName, version] of Object.entries(dependencies !== null && dependencies !== void 0 ? dependencies : {})) {
378
+ if (version === 'latest') {
379
+ const resolvedVersion = yield resolveLatestPackageVersion(packageName);
380
+ if (resolvedVersion !== 'latest') {
381
+ dependencies[packageName] = resolvedVersion;
382
+ console.log(`Replace latest version of ${packageName} with ${resolvedVersion}`);
383
+ }
384
+ }
385
+ }
386
+ });
387
+ }
388
+ yield replaceLatestPackageVersion(dependencies);
389
+ yield replaceLatestPackageVersion(peerDependencies);
390
+ yield replaceLatestPackageVersion(devDependencies);
391
+ yield replaceLatestPackageVersion(optionalDependencies);
392
+ tree.write((0, path_1.join)(projectRoot, 'package.json'), JSON.stringify(packageJson, null, 2) + '\n');
393
+ });
394
+ }
395
+ exports.replaceLatestPackageVersionForProject = replaceLatestPackageVersionForProject;
396
+ function removePackageFromDependencies(packageName, dependencies) {
397
+ if (dependencies[packageName]) {
398
+ delete dependencies[packageName];
399
+ }
400
+ }
401
+ exports.removePackageFromDependencies = removePackageFromDependencies;
402
+ function removeSelfReferenceFromDependencies(projectName, { dependencies, peerDependencies, devDependencies, optionalDependencies, }) {
403
+ const packageName = (0, generator_utilities_1.ProjectNameToPackageName)(projectName);
404
+ removePackageFromDependencies(packageName, dependencies);
405
+ removePackageFromDependencies(packageName, peerDependencies);
406
+ removePackageFromDependencies(packageName, devDependencies);
407
+ removePackageFromDependencies(packageName, optionalDependencies);
408
+ }
409
+ exports.removeSelfReferenceFromDependencies = removeSelfReferenceFromDependencies;
410
+ /**
411
+ * This generator tries to fix the dependencies in the project.json of the project
412
+ *
413
+ * 1. Load all not-test typescript files from the project
414
+ * 1.1. Find all import statements
415
+ * a. If a project with the package name exists add it to the peerDependencies with version '*'. (skip if the package is already in the dependencies)
416
+ * b. If external package add it to the peerDependencies with the version from a parent package.json or 'latest' if not found.
417
+ * 2. Load all test typescript files from the project
418
+ * 2.1. Find all import statements
419
+ * a. If a project with the package name exists add it to the devDependencies with version '*'. (skip if the package is already in the dependencies)
420
+ * - for each project that is use in the test files add it direct and indirect dependencies to the devDependencies TODO : check if that is required
421
+ * b. If external package add it to the devDependencies with the version from a parent package.json or 'latest' if not found.
422
+ *
423
+ * 3. print a report about the changes
424
+ *
425
+ * @param tree
426
+ * @param options
427
+ */
428
+ function fixDependenciesGenerator(tree, options) {
429
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
430
+ if (!options.verbose) {
431
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
432
+ console.debug = () => {
433
+ };
434
+ }
435
+ if (options.reset || options.resetAll) {
436
+ (0, devkit_1.getProjects)(tree).forEach((project, projectName) => {
437
+ const projectRoot = project.root;
438
+ if (skipProject(tree, projectName, projectRoot, options.projects)) {
439
+ return;
440
+ }
441
+ const packageJson = JSON.parse(tree.read(`${projectRoot}/package.json`).toString('utf-8'));
442
+ if (options.resetAll) {
443
+ packageJson.dependencies = {};
444
+ }
445
+ packageJson.peerDependencies = {};
446
+ packageJson.devDependencies = {};
447
+ packageJson.optionalDependencies = {};
448
+ tree.write(`${projectRoot}/package.json`, JSON.stringify(packageJson, null, 2) + '\n');
449
+ });
450
+ }
451
+ const projectGraph = yield (0, devkit_1.createProjectGraphAsync)();
452
+ (0, generator_utilities_1.LoadProjectToPackageMapping)(tree, projectGraph);
453
+ const unknownPackageMap = {};
454
+ const latestTsLibVersion = yield resolveLatestPackageVersion('tslib');
455
+ (0, devkit_1.getProjects)(tree).forEach((project, projectName) => {
456
+ var _a, _b, _c, _d;
457
+ const projectRoot = project.root;
458
+ if (skipProject(tree, projectName, projectRoot, options.projects) || project.projectType !== 'library') {
459
+ return;
460
+ }
461
+ const packageJson = JSON.parse(tree.read(`${projectRoot}/package.json`).toString('utf-8'));
462
+ (_a = packageJson.dependencies) !== null && _a !== void 0 ? _a : (packageJson.dependencies = {});
463
+ (_b = packageJson.peerDependencies) !== null && _b !== void 0 ? _b : (packageJson.peerDependencies = {});
464
+ (_c = packageJson.devDependencies) !== null && _c !== void 0 ? _c : (packageJson.devDependencies = {});
465
+ (_d = packageJson.optionalDependencies) !== null && _d !== void 0 ? _d : (packageJson.optionalDependencies = {});
466
+ if (!packageJson.dependencies['tslib']) {
467
+ packageJson.dependencies['tslib'] = latestTsLibVersion;
468
+ }
469
+ loadAvailablePackageVersion(tree, projectRoot);
470
+ const peerReport = fixPeerDependenciesWithTsMorphProject(projectGraph, tree, projectRoot, packageJson);
471
+ removeSelfReferenceFromDependencies(projectName, packageJson);
472
+ console.log(`==================== Report for project ${projectName}`);
473
+ console.log('========== Peer dependencies:');
474
+ printReport(peerReport);
475
+ unknownPackageMap[projectName] = peerReport.unknownPackageList.filter((packageName, index, self) => self.indexOf(packageName) === index);
476
+ if (Object.keys(packageJson.dependencies).length === 0) {
477
+ delete packageJson.dependencies;
478
+ }
479
+ if (Object.keys(packageJson.peerDependencies).length === 0) {
480
+ delete packageJson.peerDependencies;
481
+ }
482
+ if (Object.keys(packageJson.devDependencies).length === 0) {
483
+ delete packageJson.devDependencies;
484
+ }
485
+ if (Object.keys(packageJson.optionalDependencies).length === 0) {
486
+ delete packageJson.optionalDependencies;
487
+ }
488
+ tree.write(`${projectRoot}/package.json`, JSON.stringify(packageJson, null, 2) + '\n');
489
+ });
490
+ const unknownPackageMapToProject = {};
491
+ for (const [projectName, packageList] of Object.entries(unknownPackageMap)) {
492
+ for (const packageName of packageList) {
493
+ if (!unknownPackageMapToProject[packageName]) {
494
+ unknownPackageMapToProject[packageName] = [];
495
+ }
496
+ unknownPackageMapToProject[packageName].push(projectName);
497
+ }
498
+ }
499
+ if (Object.keys(unknownPackageMapToProject).length) {
500
+ console.log(`============================================================`);
501
+ console.log(`Unknown packages: ${Object.keys(unknownPackageMapToProject).length}`);
502
+ console.log(Object.entries(unknownPackageMapToProject)
503
+ .map(([packageName, projectNameList]) => `${packageName}: ${projectNameList.join(', ')}`)
504
+ .join('\n'));
505
+ console.log('============================================================');
506
+ console.log('Use the option --resolve to replace all latest version with the latest version from npm');
507
+ if (options.strict) {
508
+ throw new Error('Packages with unknown version found');
509
+ }
510
+ }
511
+ if (options.resolve) {
512
+ for (const [projectName] of Object.entries(unknownPackageMap)) {
513
+ yield replaceLatestPackageVersionForProject(tree, projectName);
514
+ }
515
+ }
516
+ });
517
+ }
518
+ exports.fixDependenciesGenerator = fixDependenciesGenerator;
519
+ exports.default = fixDependenciesGenerator;
520
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/plugin/library/src/generators/fix-dependencies/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface FixDependenciesGeneratorSchema {
2
+ projects?: string[];
3
+ reset?: boolean;
4
+ resetAll?: boolean;
5
+ verbose?: boolean;
6
+ resolve?: boolean;
7
+ strict?: boolean;
8
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "FixDependencies",
4
+ "title": "",
5
+ "type": "object",
6
+ "properties": {
7
+ "projects": {
8
+ "alias": "project",
9
+ "type": "array",
10
+ "items": {
11
+ "type": "string"
12
+ }
13
+ },
14
+ "reset": {
15
+ "type": "boolean"
16
+ },
17
+ "resolve": {
18
+ "type": "boolean"
19
+ },
20
+ "resetAll": {
21
+ "alias": "resetAll",
22
+ "type": "boolean"
23
+ },
24
+ "strict": {
25
+ "type": "boolean",
26
+ "default": false,
27
+ "description": "If true, will fail if any dependency is not found"
28
+ }
29
+ },
30
+ "required": []
31
+ }
@@ -0,0 +1,4 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { IndexExportGeneratorSchema } from './schema';
3
+ export declare function indexExportGenerator(tree: Tree, options: IndexExportGeneratorSchema): Promise<void>;
4
+ export default indexExportGenerator;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.indexExportGenerator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const devkit_1 = require("@nx/devkit");
6
+ const generator_utilities_1 = require("@rxap/generator-utilities");
7
+ const path_1 = require("path");
8
+ function generateIndexFile(tree, projectName) {
9
+ const sourceRoot = (0, generator_utilities_1.GetProjectSourceRoot)(tree, projectName);
10
+ const libRoot = (0, path_1.join)(sourceRoot, 'lib');
11
+ let filePathList = [];
12
+ for (const { path, isFile } of (0, generator_utilities_1.VisitTree)(tree, libRoot)) {
13
+ if (isFile &&
14
+ path.endsWith('.ts') &&
15
+ !path.endsWith('.spec.ts') &&
16
+ !path.endsWith('.stories.ts') &&
17
+ !path.endsWith('.d.ts')) {
18
+ filePathList.push(path);
19
+ }
20
+ }
21
+ filePathList = filePathList.map(path => path.replace(new RegExp(`^${libRoot}/`), ''));
22
+ const map = new Map();
23
+ for (const filePath of filePathList) {
24
+ const fragments = filePath.split('/');
25
+ const fileName = fragments.pop();
26
+ const basePath = fragments.join('/');
27
+ if (!map.has(basePath)) {
28
+ map.set(basePath, []);
29
+ }
30
+ map.get(basePath).push(fileName);
31
+ }
32
+ let rootIndexFile = '';
33
+ for (const basePath of Array.from(map.keys()).sort().reverse()) {
34
+ rootIndexFile += `${rootIndexFile ? '\n' : ''}// region ${basePath.split('/').join(' ')}\n`;
35
+ if (map.has('index.ts')) {
36
+ console.log('skip folder with index.ts file', basePath);
37
+ rootIndexFile += `export * from './lib/${basePath}/index';\n`;
38
+ }
39
+ else {
40
+ for (const fileName of map.get(basePath)) {
41
+ const fullPathToLibRoot = (0, path_1.join)('lib', basePath, fileName);
42
+ rootIndexFile += `export * from './${fullPathToLibRoot.replace(/\.ts$/, '')}';\n`;
43
+ }
44
+ }
45
+ rootIndexFile += `// endregion\n`;
46
+ }
47
+ if (!rootIndexFile) {
48
+ rootIndexFile = 'export {};';
49
+ }
50
+ (0, generator_utilities_1.CoerceFile)(tree, (0, path_1.join)(sourceRoot, 'index.ts'), rootIndexFile, true);
51
+ }
52
+ function skipProject(tree, options, project, projectName) {
53
+ if ((0, generator_utilities_1.SkipNonLibraryProject)(tree, options, project, projectName)) {
54
+ return true;
55
+ }
56
+ return false;
57
+ }
58
+ function indexExportGenerator(tree, options) {
59
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
60
+ console.log('index export generator: ', options);
61
+ for (const [projectName, project] of (0, devkit_1.getProjects)(tree).entries()) {
62
+ if (skipProject(tree, options, project, projectName)) {
63
+ continue;
64
+ }
65
+ console.log('generate index file for project: ', projectName);
66
+ generateIndexFile(tree, projectName);
67
+ }
68
+ });
69
+ }
70
+ exports.indexExportGenerator = indexExportGenerator;
71
+ exports.default = indexExportGenerator;
72
+ //# sourceMappingURL=generator.js.map