@o3r/schematics 11.0.0-next.0 → 11.0.0-next.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (175) hide show
  1. package/README.md +5 -1
  2. package/{src/cli → cli}/environment.d.ts.map +1 -1
  3. package/{src/cli → cli}/environment.js +1 -1
  4. package/cli/environment.js.map +1 -0
  5. package/cli/package.json +3 -0
  6. package/package.json +61 -43
  7. package/schematics/ng-add/index.d.ts +3 -1
  8. package/schematics/ng-add/index.d.ts.map +1 -1
  9. package/schematics/ng-add/index.js +36 -25
  10. package/schematics/ng-add/index.js.map +1 -1
  11. package/schematics/ng-add/schema.d.ts +1 -1
  12. package/schematics/ng-add/schema.d.ts.map +1 -1
  13. package/src/interfaces/angular-workspace.d.ts.map +1 -1
  14. package/src/interfaces/index.d.ts +1 -0
  15. package/src/interfaces/index.d.ts.map +1 -1
  16. package/src/interfaces/index.js +1 -0
  17. package/src/interfaces/index.js.map +1 -1
  18. package/src/{rule-factories/interfaces.d.ts → interfaces/rule-factories.d.ts} +2 -2
  19. package/src/interfaces/rule-factories.d.ts.map +1 -0
  20. package/src/{rule-factories/interfaces.js → interfaces/rule-factories.js} +1 -1
  21. package/src/interfaces/rule-factories.js.map +1 -0
  22. package/src/modules/modules.display.rule.d.ts.map +1 -1
  23. package/src/modules/modules.display.rule.js +3 -4
  24. package/src/modules/modules.display.rule.js.map +1 -1
  25. package/src/modules/modules.helpers.d.ts +2 -2
  26. package/src/modules/modules.helpers.d.ts.map +1 -1
  27. package/src/modules/modules.helpers.js +2 -2
  28. package/src/modules/modules.helpers.js.map +1 -1
  29. package/src/public_api.d.ts +6 -1
  30. package/src/public_api.d.ts.map +1 -1
  31. package/src/public_api.js +6 -1
  32. package/src/public_api.js.map +1 -1
  33. package/src/rule-factories/add-imports/index.js.map +1 -1
  34. package/src/rule-factories/check-packages-peers/index.js.map +1 -1
  35. package/src/rule-factories/dev-tools/devtools-registration.js +7 -7
  36. package/src/rule-factories/dev-tools/devtools-registration.js.map +1 -1
  37. package/src/rule-factories/eslint-fix/index.d.ts +8 -3
  38. package/src/rule-factories/eslint-fix/index.d.ts.map +1 -1
  39. package/src/rule-factories/eslint-fix/index.js +5 -3
  40. package/src/rule-factories/eslint-fix/index.js.map +1 -1
  41. package/src/rule-factories/get-test-frameworks/index.js +2 -2
  42. package/src/rule-factories/get-test-frameworks/index.js.map +1 -1
  43. package/src/rule-factories/index.d.ts +1 -1
  44. package/src/rule-factories/index.d.ts.map +1 -1
  45. package/src/rule-factories/index.js +1 -1
  46. package/src/rule-factories/index.js.map +1 -1
  47. package/src/rule-factories/ng-add/dependencies.d.ts +93 -0
  48. package/src/rule-factories/ng-add/dependencies.d.ts.map +1 -0
  49. package/src/rule-factories/ng-add/dependencies.js +174 -0
  50. package/src/rule-factories/ng-add/dependencies.js.map +1 -0
  51. package/src/rule-factories/ng-add/index.d.ts +3 -36
  52. package/src/rule-factories/ng-add/index.d.ts.map +1 -1
  53. package/src/rule-factories/ng-add/index.js +4 -218
  54. package/src/rule-factories/ng-add/index.js.map +1 -1
  55. package/src/rule-factories/ng-add/ng-add.helpers.d.ts +22 -0
  56. package/src/rule-factories/ng-add/ng-add.helpers.d.ts.map +1 -0
  57. package/src/rule-factories/ng-add/ng-add.helpers.js +162 -0
  58. package/src/rule-factories/ng-add/ng-add.helpers.js.map +1 -0
  59. package/src/rule-factories/ng-add/schematics-register.d.ts +17 -0
  60. package/src/rule-factories/ng-add/schematics-register.d.ts.map +1 -0
  61. package/src/rule-factories/ng-add/schematics-register.js +64 -0
  62. package/src/rule-factories/ng-add/schematics-register.js.map +1 -0
  63. package/src/rule-factories/remove-packages/index.js.map +1 -1
  64. package/src/rule-factories/update-imports/index.d.ts +0 -1
  65. package/src/rule-factories/update-imports/index.d.ts.map +1 -1
  66. package/src/rule-factories/update-imports/index.js +0 -1
  67. package/src/rule-factories/update-imports/index.js.map +1 -1
  68. package/src/rule-factories/update-imports/list-of-vars.d.ts +4 -5
  69. package/src/rule-factories/update-imports/list-of-vars.d.ts.map +1 -1
  70. package/src/rule-factories/update-imports/list-of-vars.js.map +1 -1
  71. package/src/rule-factories/update-imports/update-imports-with-scope.d.ts +1 -1
  72. package/src/rule-factories/update-imports/update-imports-with-scope.js +3 -3
  73. package/src/rule-factories/update-imports/update-imports-with-scope.js.map +1 -1
  74. package/src/rule-factories/update-imports/update-ts-imports.d.ts +1 -1
  75. package/src/rule-factories/update-imports/update-ts-imports.d.ts.map +1 -1
  76. package/src/rule-factories/update-imports/update-ts-imports.js +7 -6
  77. package/src/rule-factories/update-imports/update-ts-imports.js.map +1 -1
  78. package/src/rule-factories/vscode-extensions/index.js.map +1 -1
  79. package/src/rules/install.d.ts +8 -4
  80. package/src/rules/install.d.ts.map +1 -1
  81. package/src/rules/install.js +10 -8
  82. package/src/rules/install.js.map +1 -1
  83. package/src/tasks/eslint/index.d.ts +8 -1
  84. package/src/tasks/eslint/index.d.ts.map +1 -1
  85. package/src/tasks/eslint/index.js +8 -1
  86. package/src/tasks/eslint/index.js.map +1 -1
  87. package/src/tasks/ng-add/index.d.ts +1 -0
  88. package/src/tasks/ng-add/index.d.ts.map +1 -1
  89. package/src/tasks/ng-add/index.js +1 -0
  90. package/src/tasks/ng-add/index.js.map +1 -1
  91. package/src/tasks/package-manager/add-dev-dependency.d.ts +1 -0
  92. package/src/tasks/package-manager/add-dev-dependency.d.ts.map +1 -1
  93. package/src/tasks/package-manager/add-dev-dependency.js +4 -3
  94. package/src/tasks/package-manager/add-dev-dependency.js.map +1 -1
  95. package/src/tasks/package-manager/interfaces.d.ts +1 -1
  96. package/src/tasks/package-manager/interfaces.d.ts.map +1 -1
  97. package/src/tasks/package-manager/npm-install.js +3 -3
  98. package/src/tasks/package-manager/npm-install.js.map +1 -1
  99. package/src/utility/ast.d.ts +2 -1
  100. package/src/utility/ast.d.ts.map +1 -1
  101. package/src/utility/ast.js +8 -2
  102. package/src/utility/ast.js.map +1 -1
  103. package/src/utility/builder.js.map +1 -1
  104. package/src/utility/collection.d.ts.map +1 -1
  105. package/src/utility/collection.js +1 -1
  106. package/src/utility/collection.js.map +1 -1
  107. package/src/utility/component.d.ts +1 -1
  108. package/src/utility/component.d.ts.map +1 -1
  109. package/src/utility/component.js.map +1 -1
  110. package/src/utility/dependencies.d.ts.map +1 -1
  111. package/src/utility/dependencies.js +1 -1
  112. package/src/utility/dependencies.js.map +1 -1
  113. package/src/utility/environment.d.ts +1 -0
  114. package/src/utility/environment.d.ts.map +1 -1
  115. package/src/utility/environment.js.map +1 -1
  116. package/src/utility/file-info.d.ts +1 -2
  117. package/src/utility/file-info.d.ts.map +1 -1
  118. package/src/utility/file-info.js.map +1 -1
  119. package/src/utility/generation.d.ts +1 -1
  120. package/src/utility/generation.d.ts.map +1 -1
  121. package/src/utility/generation.js.map +1 -1
  122. package/src/utility/gitignore.d.ts +1 -1
  123. package/src/utility/gitignore.d.ts.map +1 -1
  124. package/src/utility/gitignore.js.map +1 -1
  125. package/src/utility/index.d.ts +2 -0
  126. package/src/utility/index.d.ts.map +1 -1
  127. package/src/utility/index.js +2 -0
  128. package/src/utility/index.js.map +1 -1
  129. package/src/utility/loaders.d.ts +6 -1
  130. package/src/utility/loaders.d.ts.map +1 -1
  131. package/src/utility/loaders.js +10 -2
  132. package/src/utility/loaders.js.map +1 -1
  133. package/src/utility/matching-peers.d.ts +7 -3
  134. package/src/utility/matching-peers.d.ts.map +1 -1
  135. package/src/utility/matching-peers.js +7 -5
  136. package/src/utility/matching-peers.js.map +1 -1
  137. package/src/utility/modules.js.map +1 -1
  138. package/src/utility/monorepo.d.ts +3 -2
  139. package/src/utility/monorepo.d.ts.map +1 -1
  140. package/src/utility/monorepo.js +2 -1
  141. package/src/utility/monorepo.js.map +1 -1
  142. package/src/utility/package-manager-runner.d.ts +1 -1
  143. package/src/utility/package-manager-runner.d.ts.map +1 -1
  144. package/src/utility/package-manager-runner.js.map +1 -1
  145. package/src/utility/package-version.js.map +1 -1
  146. package/src/utility/routes.d.ts +1 -1
  147. package/src/utility/routes.d.ts.map +1 -1
  148. package/src/utility/routes.js.map +1 -1
  149. package/src/utility/sub-entry.d.ts +1 -1
  150. package/src/utility/sub-entry.d.ts.map +1 -1
  151. package/src/utility/sub-entry.js.map +1 -1
  152. package/src/utility/template-property.helper.js.map +1 -1
  153. package/src/utility/update-imports.d.ts.map +1 -1
  154. package/src/utility/update-imports.js +21 -10
  155. package/src/utility/update-imports.js.map +1 -1
  156. package/src/utility/update-pipes.d.ts +15 -0
  157. package/src/utility/update-pipes.d.ts.map +1 -0
  158. package/src/utility/update-pipes.js +82 -0
  159. package/src/utility/update-pipes.js.map +1 -0
  160. package/src/utility/wrapper.d.ts +8 -0
  161. package/src/utility/wrapper.d.ts.map +1 -0
  162. package/src/utility/wrapper.js +87 -0
  163. package/src/utility/wrapper.js.map +1 -0
  164. package/src/cli/environment.js.map +0 -1
  165. package/src/index.d.ts +0 -7
  166. package/src/index.d.ts.map +0 -1
  167. package/src/index.js +0 -10
  168. package/src/index.js.map +0 -1
  169. package/src/rule-factories/interfaces.d.ts.map +0 -1
  170. package/src/rule-factories/interfaces.js.map +0 -1
  171. package/src/rule-factories/update-imports/v7-to-v8-map-object.d.ts +0 -8
  172. package/src/rule-factories/update-imports/v7-to-v8-map-object.d.ts.map +0 -1
  173. package/src/rule-factories/update-imports/v7-to-v8-map-object.js +0 -2049
  174. package/src/rule-factories/update-imports/v7-to-v8-map-object.js.map +0 -1
  175. /package/{src/cli → cli}/environment.d.ts +0 -0
@@ -22,7 +22,7 @@ function updateImportsInFile(logger, tree, sourceFile, importsRegexp, renamePack
22
22
  const imp = nodeImp;
23
23
  const importFrom = imp.moduleSpecifier.getText().replace(/['"]/g, '');
24
24
  const renamePackageMatch = importFrom.match(renamePackagesRegexp);
25
- const otterPackage = renamePackageMatch ? renamePackageMatch[0] : importFrom.match(importsRegexp)?.[0];
25
+ const otterPackage = renamePackageMatch?.[0] || importFrom.match(importsRegexp)?.[0];
26
26
  // If the import matched an Otter package
27
27
  if (otterPackage) {
28
28
  if (!oldImportedSymbolsPerPackage[otterPackage]) {
@@ -31,9 +31,10 @@ function updateImportsInFile(logger, tree, sourceFile, importsRegexp, renamePack
31
31
  // We store the import line to be able to remove it afterwards
32
32
  importNodes.push(imp);
33
33
  // We retrieve all the symbols listed in the import statement
34
- const namedImport = imp.importClause && imp.importClause.getChildAt(0);
34
+ const namedImport = imp.importClause?.namedBindings;
35
+ const isTypeOnlyImport = !!imp.importClause && ts.isTypeOnlyImportDeclaration(imp.importClause);
35
36
  const imports = namedImport && ts.isNamedImports(namedImport) ?
36
- namedImport.elements.map((element) => ({ symbol: element.getText(), location: importFrom })) :
37
+ namedImport.elements.map((element) => ({ symbol: element.getText(), isTypeOnlyImport, location: importFrom })) :
37
38
  [];
38
39
  // And associate them to the Otter package
39
40
  oldImportedSymbolsPerPackage[otterPackage].push(...imports);
@@ -48,7 +49,7 @@ function updateImportsInFile(logger, tree, sourceFile, importsRegexp, renamePack
48
49
  const resolvedImports = Object.entries(oldImportedSymbolsPerPackage).reduce((acc, [oldPackageName, importsFromOldPackage]) => {
49
50
  importsFromOldPackage.forEach((importSymbol) => {
50
51
  let newPackageNameImport;
51
- if (Object.keys(renamedPackages).indexOf(oldPackageName) > 0) {
52
+ if (renamedPackages[oldPackageName]) {
52
53
  newPackageNameImport = importSymbol.location.replace(oldPackageName, renamedPackages[oldPackageName]);
53
54
  }
54
55
  else {
@@ -62,18 +63,28 @@ function updateImportsInFile(logger, tree, sourceFile, importsRegexp, renamePack
62
63
  acc[importFrom] = [];
63
64
  }
64
65
  const newNameForExportedValue = mapImports[oldPackageName]?.[importSymbol.symbol]?.newValue;
65
- acc[importFrom].push(newNameForExportedValue || importSymbol.symbol);
66
+ acc[importFrom].push(`${importSymbol.isTypeOnlyImport ? 'type ' : ''}${newNameForExportedValue || importSymbol.symbol}`);
66
67
  });
67
68
  return acc;
68
69
  }, {});
70
+ let fileContent = tree.readText(sourceFile.fileName);
71
+ const escapeRegExp = (str) => str.replace(/[-[\]/{}()*+?.\\^$|]/g, '\\$&');
69
72
  // Remove captured imports
70
- const fileWithoutImports = tree.read(sourceFile.fileName).toString()
71
- .replace(new RegExp(`(${importNodes.map((node) => node.getText()).join('|')})[\\n\\r]*`, 'g'), '');
73
+ fileContent = fileContent.replace(new RegExp(`(${importNodes.map((node) => escapeRegExp(node.getText())).join('|')})[\\n\\r]*`, 'g'), '');
74
+ // Replace imported values
75
+ const valuesToReplace = Object.fromEntries(Object.values(mapImports).flatMap((mapImport) => Object.entries(mapImport)
76
+ .filter(([_, value]) => value.newValue)
77
+ .map(([key, value]) => [key, value.newValue])));
78
+ if (Object.keys(valuesToReplace).length) {
79
+ const matcher = new RegExp(Object.keys(valuesToReplace).map((oldValue) => `\\b${escapeRegExp(oldValue)}\\b`).join('|'), 'g');
80
+ const replacer = (match) => valuesToReplace[match];
81
+ fileContent = fileContent.replace(matcher, replacer);
82
+ }
72
83
  // Add the computed imports at the top of the file
73
- const fileWithNewImports = Object.entries(resolvedImports)
84
+ fileContent = Object.entries(resolvedImports)
74
85
  .map(([importFrom, imports]) => `import {${imports.join(', ')}} from '${importFrom}';`)
75
- .join('\n') + '\n' + fileWithoutImports;
76
- tree.overwrite(sourceFile.fileName, fileWithNewImports);
86
+ .join('\n') + '\n' + fileContent;
87
+ tree.overwrite(sourceFile.fileName, fileContent);
77
88
  // Log details about imports for which we could not find an associated sub-entry
78
89
  if (unResolvedImports.length > 0) {
79
90
  logger.warn(`Some imports in file ${sourceFile.fileName} could not be resolved:`);
@@ -1 +1 @@
1
- {"version":3,"file":"update-imports.js","sourceRoot":"","sources":["../../../src/utility/update-imports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-imports.js","sourceRoot":"","sources":["../../../src/utility/update-imports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ /** Dictionary of pipes to be updated */
3
+ export type PipeReplacementInfo = Record<string, {
4
+ new: {
5
+ name: string;
6
+ import?: string;
7
+ };
8
+ import: string;
9
+ }>;
10
+ /**
11
+ * Returns a rule tu update pipes
12
+ * @param pipeReplacementInfo
13
+ */
14
+ export declare const updatePipes: (pipeReplacementInfo: PipeReplacementInfo) => Rule;
15
+ //# sourceMappingURL=update-pipes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-pipes.d.ts","sourceRoot":"","sources":["../../../src/utility/update-pipes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAA0B,MAAM,4BAA4B,CAAC;AAO1E,wCAAwC;AACxC,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAmD7G;;;GAGG;AACH,eAAO,MAAM,WAAW,wBAAyB,mBAAmB,KAAG,IAoDtE,CAAC"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updatePipes = void 0;
4
+ const node_path_1 = require("node:path");
5
+ const ts = require("typescript");
6
+ const ast_1 = require("./ast");
7
+ const component_1 = require("./component");
8
+ const loaders_1 = require("./loaders");
9
+ const applyChanges = (pipeReplacementInfo, ngDecorator, matchers, fileWithImports, templateFile, tree, context) => {
10
+ if (ts.isObjectLiteralExpression(ngDecorator.expression.arguments[0])) {
11
+ const importsProp = ngDecorator.expression.arguments[0].properties.find((prop) => ts.isPropertyAssignment(prop)
12
+ && ts.isIdentifier(prop.name)
13
+ && prop.name.text === 'imports'
14
+ && ts.isArrayLiteralExpression(prop.initializer));
15
+ if (importsProp) {
16
+ matchers.forEach((matcher) => {
17
+ const pipeName = matcher[1];
18
+ const importModuleRegexp = new RegExp(`\\b${pipeReplacementInfo[pipeName].import}\\b`, 'g');
19
+ if (importsProp.initializer.elements.some((element) => importModuleRegexp.test(element.getText()))) {
20
+ if (pipeReplacementInfo[pipeName].new.import) {
21
+ tree.overwrite(fileWithImports, tree.readText(fileWithImports).replaceAll(importModuleRegexp, pipeReplacementInfo[pipeName].new.import));
22
+ }
23
+ tree.overwrite(templateFile, tree.readText(templateFile).replaceAll(new RegExp(`\\|\\s*${pipeName}`, 'g'), `| ${pipeReplacementInfo[pipeName].new.name}`));
24
+ }
25
+ else {
26
+ context.logger.warn(`Deprecated pipe ${pipeName} was found in ${templateFile} `
27
+ + `but no associated import in ${fileWithImports}`
28
+ + `to be able to migrate to the new pipe ${pipeReplacementInfo[pipeName].new.name}.`);
29
+ }
30
+ });
31
+ }
32
+ }
33
+ };
34
+ const isNgModuleDecorator = (decorator) => ts.isCallExpression(decorator.expression)
35
+ && decorator.expression.expression
36
+ && ts.isIdentifier(decorator.expression.expression)
37
+ && decorator.expression.expression.text === 'NgModule';
38
+ /**
39
+ * Returns a rule tu update pipes
40
+ * @param pipeReplacementInfo
41
+ */
42
+ const updatePipes = (pipeReplacementInfo) => (tree, context) => {
43
+ const pipeRegex = new RegExp(`\\|\\s*(${Object.keys(pipeReplacementInfo).join('|')})`, 'g');
44
+ const files = (0, loaders_1.findFilesInTree)(tree.root, (file) => file.endsWith('.html'));
45
+ files.forEach((file) => {
46
+ const matchers = Array.from(file.content.toString().matchAll(pipeRegex)).filter((matcher) => !!pipeReplacementInfo[matcher[1]]);
47
+ if (matchers.length) {
48
+ const directory = (0, node_path_1.dirname)(file.path);
49
+ const baseFileName = (0, node_path_1.basename)((0, node_path_1.basename)(file.path, '.html'), '.template');
50
+ const componentFile = (0, node_path_1.join)(directory, `${baseFileName}.component.ts`);
51
+ const moduleFile = (0, node_path_1.join)(directory, `${baseFileName}.module.ts`);
52
+ let standalone = false;
53
+ if (tree.exists(componentFile)) {
54
+ try {
55
+ const info = (0, component_1.getO3rComponentInfoOrThrowIfNotFound)(tree, componentFile);
56
+ standalone = info.standalone;
57
+ }
58
+ catch { }
59
+ }
60
+ if (standalone) {
61
+ const componentSourceFile = ts.createSourceFile(componentFile, tree.readText(componentFile), ts.ScriptTarget.ES2020, true);
62
+ const [ngClass] = componentSourceFile.statements.filter((statement) => ts.isClassDeclaration(statement)
63
+ && (0, component_1.isNgClassComponent)(statement));
64
+ const [ngDecorator] = ((ngClass && ts.getDecorators(ngClass)) || []).filter(component_1.isNgClassDecorator);
65
+ if (ngDecorator) {
66
+ applyChanges(pipeReplacementInfo, ngDecorator, matchers, componentFile, file.path, tree, context);
67
+ }
68
+ }
69
+ else if (tree.exists(moduleFile)) {
70
+ const moduleSourceFile = ts.createSourceFile(moduleFile, tree.readText(moduleFile), ts.ScriptTarget.ES2020, true);
71
+ const ngModuleClass = moduleSourceFile.statements.find((statement) => ts.isClassDeclaration(statement)
72
+ && !!(ts.getDecorators(statement) || []).find(isNgModuleDecorator));
73
+ const ngDecorator = ((ngModuleClass && ts.getDecorators(ngModuleClass)) || []).find(isNgModuleDecorator);
74
+ if (ngDecorator && (0, ast_1.isDecoratorWithArg)(ngDecorator)) {
75
+ applyChanges(pipeReplacementInfo, ngDecorator, matchers, moduleFile, file.path, tree, context);
76
+ }
77
+ }
78
+ }
79
+ });
80
+ };
81
+ exports.updatePipes = updatePipes;
82
+ //# sourceMappingURL=update-pipes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-pipes.js","sourceRoot":"","sources":["../../../src/utility/update-pipes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { SchematicWrapper } from '@o3r/telemetry';
2
+ /**
3
+ * Wrapper method of a schematic to retrieve some metrics around the schematic run
4
+ * if @o3r/telemetry is installed
5
+ * @param schematicFn
6
+ */
7
+ export declare const createSchematicWithMetricsIfInstalled: SchematicWrapper;
8
+ //# sourceMappingURL=wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../../src/utility/wrapper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA0CvD;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,EAAE,gBA4CnD,CAAC"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSchematicWithMetricsIfInstalled = void 0;
4
+ const schematics_1 = require("@angular-devkit/schematics");
5
+ const dependencies_1 = require("@schematics/angular/utility/dependencies");
6
+ const inquirer_1 = require("inquirer");
7
+ const node_fs_1 = require("node:fs");
8
+ const path = require("node:path");
9
+ const rule_factories_1 = require("../rule-factories");
10
+ const noopSchematicWrapper = (fn) => fn;
11
+ const PACKAGE_JSON_PATH = 'package.json';
12
+ const setupO3rMetricsInPackageJson = (activated) => (tree) => {
13
+ if (tree.exists(PACKAGE_JSON_PATH)) {
14
+ const packageJson = tree.readJson(PACKAGE_JSON_PATH);
15
+ packageJson.config ||= {};
16
+ packageJson.config.o3rMetrics = activated;
17
+ tree.overwrite(PACKAGE_JSON_PATH, JSON.stringify(packageJson, null, 2));
18
+ }
19
+ };
20
+ const setupTelemetry = ({ workingDirectory, runNgAdd, exactO3rVersion }) => (_, context) => {
21
+ const taskIdsFromContext = (0, rule_factories_1.hasSetupInformation)(context) ? context.setupDependencies.taskIds : undefined;
22
+ const version = JSON.parse((0, node_fs_1.readFileSync)(path.join(__dirname, '..', '..', 'package.json'), 'utf-8')).version;
23
+ return (0, rule_factories_1.setupDependencies)({
24
+ dependencies: {
25
+ // eslint-disable-next-line @typescript-eslint/naming-convention
26
+ '@o3r/telemetry': {
27
+ inManifest: [{
28
+ range: `${exactO3rVersion ? '' : '~'}${version}`,
29
+ types: [dependencies_1.NodeDependencyType.Dev]
30
+ }],
31
+ ngAddOptions: { exactO3rVersion }
32
+ }
33
+ },
34
+ ngAddToRun: runNgAdd ? ['@o3r/telemetry'] : [],
35
+ runAfterTasks: taskIdsFromContext,
36
+ workingDirectory
37
+ });
38
+ };
39
+ /**
40
+ * Wrapper method of a schematic to retrieve some metrics around the schematic run
41
+ * if @o3r/telemetry is installed
42
+ * @param schematicFn
43
+ */
44
+ const createSchematicWithMetricsIfInstalled = (schematicFn) => (opts) => async (tree, context) => {
45
+ let wrapper = noopSchematicWrapper;
46
+ let shouldInstallTelemetry;
47
+ const packageJson = tree.exists(PACKAGE_JSON_PATH) ? tree.readJson(PACKAGE_JSON_PATH) : {};
48
+ try {
49
+ const { createSchematicWithMetrics } = await Promise.resolve().then(() => require('@o3r/telemetry'));
50
+ wrapper = createSchematicWithMetrics;
51
+ }
52
+ catch (e) {
53
+ // Do not throw if `@o3r/telemetry is not installed
54
+ if ((process.env.NX_CLI_SET !== 'true' || process.env.NX_INTERACTIVE === 'true')
55
+ && context.interactive
56
+ && typeof packageJson.config?.o3rMetrics === 'undefined'
57
+ && process.env.O3R_METRICS !== 'false'
58
+ && opts.o3rMetrics !== false
59
+ && (!process.env.CI || process.env.CI === 'false')) {
60
+ context.logger.debug('`@o3r/telemetry` is not available.\nAsking to add the dependency\n' + e.toString());
61
+ const question = {
62
+ type: 'confirm',
63
+ name: 'isReplyPositive',
64
+ message: `
65
+ Would you like to share anonymous data about the usage of Otter builders and schematics with the Otter Team at Amadeus ?
66
+ It will help us to improve our tools.
67
+ For more details and instructions on how to change these settings, see https://github.com/AmadeusITGroup/otter/blob/main/docs/telemetry/PRIVACY_NOTICE.md.
68
+ `,
69
+ default: false
70
+ };
71
+ const { isReplyPositive } = await (0, inquirer_1.prompt)([question]);
72
+ shouldInstallTelemetry = isReplyPositive;
73
+ }
74
+ }
75
+ const subtreeDirectory = context.schematic.description.name === 'typescript-shell' ? opts.directory.split(path.posix.sep).join(path.sep) ?? '' : '';
76
+ const rule = (0, schematics_1.chain)([
77
+ typeof shouldInstallTelemetry !== 'undefined' ? (0, schematics_1.applyToSubtree)(subtreeDirectory, [setupO3rMetricsInPackageJson(!!shouldInstallTelemetry)]) : (0, schematics_1.noop)(),
78
+ schematicFn(opts),
79
+ shouldInstallTelemetry ? (0, schematics_1.applyToSubtree)(subtreeDirectory, [
80
+ setupTelemetry({ workingDirectory: subtreeDirectory || undefined, runNgAdd: !subtreeDirectory, exactO3rVersion: opts.exactO3rVersion })
81
+ ]) : (0, schematics_1.noop)(),
82
+ typeof shouldInstallTelemetry !== 'undefined' && subtreeDirectory ? (0, schematics_1.applyToSubtree)(subtreeDirectory, [setupO3rMetricsInPackageJson(shouldInstallTelemetry)]) : (0, schematics_1.noop)()
83
+ ]);
84
+ return wrapper(() => rule)(opts);
85
+ };
86
+ exports.createSchematicWithMetricsIfInstalled = createSchematicWithMetricsIfInstalled;
87
+ //# sourceMappingURL=wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/utility/wrapper.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/cli/environment.ts"],"names":[],"mappings":";;AAAA,4CAA+D;AAE/D,OAAO,CAAC,IAAI,CAAC,4BAA4B,IAAA,mCAA2B,GAAE,EAAE,CAAC,CAAC"}
package/src/index.d.ts DELETED
@@ -1,7 +0,0 @@
1
- export * from './interfaces/index';
2
- export * from './rule-factories/index';
3
- export * from './rules/index';
4
- export * from './tasks/index';
5
- export * from './utility/index';
6
- export * from './modules/index';
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
package/src/index.js DELETED
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./interfaces/index"), exports);
5
- tslib_1.__exportStar(require("./rule-factories/index"), exports);
6
- tslib_1.__exportStar(require("./rules/index"), exports);
7
- tslib_1.__exportStar(require("./tasks/index"), exports);
8
- tslib_1.__exportStar(require("./utility/index"), exports);
9
- tslib_1.__exportStar(require("./modules/index"), exports);
10
- //# sourceMappingURL=index.js.map
package/src/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,iEAAuC;AACvC,wDAA8B;AAC9B,wDAA8B;AAC9B,0DAAgC;AAChC,0DAAgC"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/rule-factories/interfaces.ts"],"names":[],"mappings":""}
@@ -1,8 +0,0 @@
1
- import type { ImportsMapping } from '../../utility';
2
- /** Packages that were renamed */
3
- export declare const renamedPackagesV7toV8: {
4
- [key: string]: string;
5
- };
6
- /** Map containing the import changes in otter packages for the exported elements */
7
- export declare const mapImportV7toV8: ImportsMapping;
8
- //# sourceMappingURL=v7-to-v8-map-object.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v7-to-v8-map-object.d.ts","sourceRoot":"","sources":["../../../../src/rule-factories/update-imports/v7-to-v8-map-object.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,iCAAiC;AACjC,eAAO,MAAM,qBAAqB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAa1D,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,eAAe,EAAE,cA6+D7B,CAAC"}