@ama-sdk/schematics 8.3.0-alpha.40 → 8.4.0-alpha.20

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 (68) hide show
  1. package/README.md +2 -2
  2. package/package.json +27 -9
  3. package/schematics/code-generator/code-generator.d.ts +70 -0
  4. package/schematics/code-generator/code-generator.d.ts.map +1 -0
  5. package/schematics/code-generator/code-generator.js +90 -0
  6. package/schematics/code-generator/open-api-cli-generator/open-api-cli.generator.d.ts +31 -0
  7. package/schematics/code-generator/open-api-cli-generator/open-api-cli.generator.d.ts.map +1 -0
  8. package/schematics/code-generator/open-api-cli-generator/open-api-cli.generator.js +86 -0
  9. package/schematics/code-generator/open-api-cli-generator/open-api-cli.options.d.ts +33 -0
  10. package/schematics/code-generator/open-api-cli-generator/open-api-cli.options.d.ts.map +1 -0
  11. package/schematics/code-generator/open-api-cli-generator/open-api-cli.options.js +16 -0
  12. package/schematics/code-generator/swagger-java-generator/swagger-java.generator.d.ts +17 -0
  13. package/schematics/code-generator/swagger-java-generator/swagger-java.generator.d.ts.map +1 -0
  14. package/schematics/code-generator/swagger-java-generator/swagger-java.generator.js +67 -0
  15. package/schematics/code-generator/swagger-java-generator/swagger-java.options.d.ts +36 -0
  16. package/schematics/code-generator/swagger-java-generator/swagger-java.options.d.ts.map +1 -0
  17. package/schematics/code-generator/swagger-java-generator/swagger-java.options.js +17 -0
  18. package/schematics/java/client-core/index.d.ts.map +1 -1
  19. package/schematics/java/client-core/index.js +14 -8
  20. package/schematics/java/client-core/schema.d.ts +1 -1
  21. package/schematics/java/client-core/schema.d.ts.map +1 -1
  22. package/schematics/java/client-core/schema.json +2 -2
  23. package/schematics/ng-add/index.js +1 -1
  24. package/schematics/typescript/core/index.d.ts.map +1 -1
  25. package/schematics/typescript/core/index.js +27 -12
  26. package/schematics/typescript/core/schema.d.ts +1 -1
  27. package/schematics/typescript/core/schema.d.ts.map +1 -1
  28. package/schematics/typescript/core/schema.json +4 -4
  29. package/schematics/typescript/create/schema.json +2 -2
  30. package/schematics/typescript/mock/index.js +2 -2
  31. package/schematics/typescript/shell/index.d.ts.map +1 -1
  32. package/schematics/typescript/shell/index.js +7 -2
  33. package/schematics/typescript/shell/templates/base/openapitools.json +7 -0
  34. package/schematics/typescript/shell/templates/base/package.json +3 -2
  35. package/schematics/typescript/shell/templates/base/readme.md +2 -2
  36. package/schematics/typescript/shell/templates/base/scripts/files-pack.js +7 -7
  37. package/schematics/typescript/shell/templates/base/scripts/override-readme.js +2 -2
  38. package/schematics/typescript/shell/templates/base/scripts/restore-readme.js +2 -2
  39. package/schematics/api-extension/index.js.map +0 -1
  40. package/schematics/api-extension/schema.js.map +0 -1
  41. package/schematics/helpers/execute-jars.d.ts +0 -14
  42. package/schematics/helpers/execute-jars.d.ts.map +0 -1
  43. package/schematics/helpers/execute-jars.js +0 -62
  44. package/schematics/helpers/execute-jars.js.map +0 -1
  45. package/schematics/helpers/generator-java.task.d.ts +0 -59
  46. package/schematics/helpers/generator-java.task.d.ts.map +0 -1
  47. package/schematics/helpers/generator-java.task.js +0 -83
  48. package/schematics/helpers/generator-java.task.js.map +0 -1
  49. package/schematics/helpers/read-package.js.map +0 -1
  50. package/schematics/helpers/tree-glob.js.map +0 -1
  51. package/schematics/java/client-core/index.js.map +0 -1
  52. package/schematics/java/client-core/schema.js.map +0 -1
  53. package/schematics/java/client-core/swagger-codegen-java-client/target/javaClient-swagger-codegen-tests.jar +0 -0
  54. package/schematics/java/client-core/swagger-codegen-java-client/target/javaClient-swagger-codegen.jar +0 -0
  55. package/schematics/ng-add/index.js.map +0 -1
  56. package/schematics/ng-add/schema.js.map +0 -1
  57. package/schematics/resources/swagger-codegen-cli.jar +0 -0
  58. package/schematics/typescript/core/index.js.map +0 -1
  59. package/schematics/typescript/core/schema.js.map +0 -1
  60. package/schematics/typescript/core/swagger-codegen-typescript/target/typescriptFetch-swagger-codegen-tests.jar +0 -0
  61. package/schematics/typescript/core/swagger-codegen-typescript/target/typescriptFetch-swagger-codegen.jar +0 -0
  62. package/schematics/typescript/create/index.js.map +0 -1
  63. package/schematics/typescript/create/schema.js.map +0 -1
  64. package/schematics/typescript/mock/index.js.map +0 -1
  65. package/schematics/typescript/mock/schema.js.map +0 -1
  66. package/schematics/typescript/shell/index.js.map +0 -1
  67. package/schematics/typescript/shell/schema.js.map +0 -1
  68. /package/schematics/typescript/shell/templates/base/{.swagger-codegen-ignore → .openapi-codegen-ignore} +0 -0
@@ -4,8 +4,8 @@ exports.ngGenerateJavaClientCore = void 0;
4
4
  const schematics_1 = require("@angular-devkit/schematics");
5
5
  const node_fs_1 = require("node:fs");
6
6
  const path = require("node:path");
7
- const execute_jars_1 = require("../../helpers/execute-jars");
8
7
  const tree_glob_1 = require("../../helpers/tree-glob");
8
+ const swagger_java_generator_1 = require("../../code-generator/swagger-java-generator/swagger-java.generator");
9
9
  /** Base path where to find codegen jars */
10
10
  const jarBasePath = path.resolve(__dirname, 'swagger-codegen-java-client', 'target');
11
11
  /**
@@ -14,7 +14,7 @@ const jarBasePath = path.resolve(__dirname, 'swagger-codegen-java-client', 'targ
14
14
  * @param options
15
15
  */
16
16
  function ngGenerateJavaClientCore(options) {
17
- const specPath = path.resolve(process.cwd(), options.swaggerSpecPath);
17
+ const specPath = path.resolve(process.cwd(), options.specPath);
18
18
  /**
19
19
  * rule to clear previous SDK generation
20
20
  *
@@ -27,21 +27,21 @@ function ngGenerateJavaClientCore(options) {
27
27
  const modelPackage = swaggerConfig.additionalProperties?.basePackage;
28
28
  if (modelPackage) {
29
29
  context.logger.info('Remove previously generated base models');
30
- (0, tree_glob_1.treeGlob)(tree, path.posix.join('src', 'main', 'java', ...modelPackage.split('.'), '**', '*.java')).forEach((file) => tree.delete(file));
30
+ (0, tree_glob_1.treeGlob)(tree, path.join('src', 'main', 'java', ...modelPackage.split('.'), '**', '*.java')).forEach((file) => tree.delete(file));
31
31
  }
32
32
  const apiInterfacesPackage = swaggerConfig.additionalProperties.endpointsPackage;
33
33
  if (apiInterfacesPackage) {
34
34
  context.logger.info('Remove previously generated API interfaces');
35
- (0, tree_glob_1.treeGlob)(tree, path.posix.join('src', 'main', 'java', ...apiInterfacesPackage.split('.'), '**', '*.java')).forEach((file) => tree.delete(file));
35
+ (0, tree_glob_1.treeGlob)(tree, path.join('src', 'main', 'java', ...apiInterfacesPackage.split('.'), '**', '*.java')).forEach((file) => tree.delete(file));
36
36
  }
37
37
  const apiImplPackage = swaggerConfig.additionalProperties.endpointsImplPackage;
38
38
  if (apiImplPackage) {
39
39
  context.logger.info('Remove previously generated API implementations');
40
- (0, tree_glob_1.treeGlob)(tree, path.posix.join('src', 'main', 'java', ...apiImplPackage.split('.'), '**', '*.java')).forEach((file) => tree.delete(file));
40
+ (0, tree_glob_1.treeGlob)(tree, path.join('src', 'main', 'java', ...apiImplPackage.split('.'), '**', '*.java')).forEach((file) => tree.delete(file));
41
41
  }
42
42
  }
43
43
  context.logger.info('Remove previously generated doc');
44
- (0, tree_glob_1.treeGlob)(tree, path.posix.join('docs', '**')).forEach((file) => tree.delete(file));
44
+ (0, tree_glob_1.treeGlob)(tree, path.join('docs', '**')).forEach((file) => tree.delete(file));
45
45
  if (tree.exists('/README.md')) {
46
46
  context.logger.info('Remove previously generated readme');
47
47
  tree.delete('/README.md');
@@ -55,7 +55,7 @@ function ngGenerateJavaClientCore(options) {
55
55
  * @param _context
56
56
  */
57
57
  const generateSource = async (tree) => {
58
- const specContent = await node_fs_1.promises.readFile(path.resolve(process.cwd(), options.swaggerSpecPath), { encoding: 'utf8' });
58
+ const specContent = await node_fs_1.promises.readFile(path.resolve(process.cwd(), options.specPath), { encoding: 'utf8' });
59
59
  if (tree.exists('/swagger-spec.yaml')) {
60
60
  tree.overwrite('/swagger-spec.yaml', specContent);
61
61
  }
@@ -67,7 +67,13 @@ function ngGenerateJavaClientCore(options) {
67
67
  return (0, schematics_1.chain)([
68
68
  clearGeneratedCode,
69
69
  generateSource,
70
- (0, execute_jars_1.executeSwaggerJarsRuleFactory)(jarBasePath, specPath, 'javaClient', false, options.swaggerConfigPath)
70
+ (new swagger_java_generator_1.SwaggerJavaGenerator()).getGeneratorRunSchematic({
71
+ targetFolder: jarBasePath,
72
+ specPath,
73
+ codegenLanguage: 'javaClient',
74
+ apiTests: false,
75
+ specConfigPath: options.swaggerConfigPath
76
+ })
71
77
  ]);
72
78
  }
73
79
  exports.ngGenerateJavaClientCore = ngGenerateJavaClientCore;
@@ -1,7 +1,7 @@
1
1
  import { JsonObject } from '@angular-devkit/core';
2
2
  export interface NgGenerateJavaClientCoreSchematicsSchema extends JsonObject {
3
3
  /** Path to the swagger specification used to generate the SDK */
4
- swaggerSpecPath: string;
4
+ specPath: string;
5
5
  /** Swagger config file */
6
6
  swaggerConfigPath: string | null;
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../schematics/java/client-core/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,WAAW,wCAAyC,SAAQ,UAAU;IAC1E,iEAAiE;IACjE,eAAe,EAAE,MAAM,CAAC;IAExB,0BAA0B;IAC1B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../schematics/java/client-core/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,WAAW,wCAAyC,SAAQ,UAAU;IAC1E,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IAEjB,0BAA0B;IAC1B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC"}
@@ -4,7 +4,7 @@
4
4
  "title": "Generate Java Client",
5
5
  "description": "ng generate java-client-core",
6
6
  "properties": {
7
- "swaggerSpecPath": {
7
+ "specPath": {
8
8
  "type": "string",
9
9
  "description": "Path to the swagger specification used to generate the SDK",
10
10
  "x-prompt": "Swagger Spec file to generate the SDK",
@@ -21,6 +21,6 @@
21
21
  },
22
22
  "additionalProperties": true,
23
23
  "required": [
24
- "swaggerSpecPath"
24
+ "specPath"
25
25
  ]
26
26
  }
@@ -61,7 +61,7 @@ const updatePackageJsonScripts = (tree, context) => {
61
61
  .replace(/@ama-sdk\/generator-sdk\/(src\/)?generators/g, '@ama-sdk/schematics/schematics') // Change relative path for swaggerConfigPath
62
62
  .replace(/(@ama-sdk\/schematics\/schematics\/)java-client-core/g, '$1java/client-core') // Change java client core path
63
63
  .replace(/@ama-sdk\/(schematics|generator-sdk):(core|shell|create|mock)/g, '@ama-sdk/schematics:typescript-$2') // Change typescript schematics name
64
- .replaceAll('--swaggerSpecPath', '--swagger-spec-path') // Schematics arguments should be kebab-case
64
+ .replaceAll('--swaggerSpecPath', '--spec-path') // Schematics arguments should be kebab-case
65
65
  .replaceAll('--swaggerConfigPath', '--swagger-config-path') // Schematics arguments should be kebab-case
66
66
  .replace(
67
67
  // Remove swagger config path if it is the default value
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/typescript/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,IAAI,EAKL,MAAM,4BAA4B,CAAC;AAOpC,OAAO,EAAE,2CAA2C,EAAE,MAAM,UAAU,CAAC;AAkBvE;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,2CAA2C,GAAG,IAAI,CA0FlG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/typescript/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,IAAI,EAKL,MAAM,4BAA4B,CAAC;AASpC,OAAO,EAAE,2CAA2C,EAAE,MAAM,UAAU,CAAC;AAgBvE;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,2CAA2C,GAAG,IAAI,CA0GlG"}
@@ -4,9 +4,10 @@ exports.ngGenerateTypescriptSDK = void 0;
4
4
  const schematics_1 = require("@angular-devkit/schematics");
5
5
  const node_fs_1 = require("node:fs");
6
6
  const path = require("node:path");
7
+ const semver = require("semver");
7
8
  const sway = require("sway");
8
- const execute_jars_1 = require("../../helpers/execute-jars");
9
9
  const tree_glob_1 = require("../../helpers/tree-glob");
10
+ const open_api_cli_generator_1 = require("../../code-generator/open-api-cli-generator/open-api-cli.generator");
10
11
  const getRegexpTemplate = (regexp) => `new RegExp('${regexp.toString().replace(/\/(.*)\//, '$1').replace(/\\\//g, '/')}')`;
11
12
  const getPathObjectTemplate = (pathObj) => {
12
13
  return `{
@@ -16,18 +17,16 @@ const getPathObjectTemplate = (pathObj) => {
16
17
  }).join(',')}
17
18
  }`;
18
19
  };
19
- /** Base path where to find codegen jars */
20
- const jarBasePath = path.resolve(__dirname, 'swagger-codegen-typescript', 'target');
21
20
  /**
22
21
  * Generate a typescript SDK source code base on swagger specification
23
22
  *
24
23
  * @param options
25
24
  */
26
25
  function ngGenerateTypescriptSDK(options) {
27
- const specPath = path.resolve(process.cwd(), options.swaggerSpecPath);
26
+ const specPath = path.resolve(process.cwd(), options.specPath);
28
27
  const generateOperationFinder = async () => {
29
28
  const swayOptions = {
30
- definition: path.resolve(options.swaggerSpecPath)
29
+ definition: path.resolve(options.specPath)
31
30
  };
32
31
  const swayApi = await sway.create(swayOptions);
33
32
  const extraction = swayApi.getPaths().map((obj) => ({
@@ -50,10 +49,10 @@ function ngGenerateTypescriptSDK(options) {
50
49
  * @param _context
51
50
  */
52
51
  const clearGeneratedCode = (tree, _context) => {
53
- (0, tree_glob_1.treeGlob)(tree, path.posix.join('src', 'api', '**', '*.ts')).forEach((file) => tree.delete(file));
54
- (0, tree_glob_1.treeGlob)(tree, path.posix.join('src', 'api', '**', '*.ts')).forEach((file) => tree.delete(file));
55
- (0, tree_glob_1.treeGlob)(tree, path.posix.join('src', 'models', 'base', '**', '!(index).ts')).forEach((file) => tree.delete(file));
56
- (0, tree_glob_1.treeGlob)(tree, path.posix.join('src', 'spec', '!(operation-adapter|index).ts')).forEach((file) => tree.delete(file));
52
+ (0, tree_glob_1.treeGlob)(tree, path.join('src', 'api', '**', '*.ts')).forEach((file) => tree.delete(file));
53
+ (0, tree_glob_1.treeGlob)(tree, path.join('src', 'api', '**', '*.ts')).forEach((file) => tree.delete(file));
54
+ (0, tree_glob_1.treeGlob)(tree, path.join('src', 'models', 'base', '**', '!(index).ts')).forEach((file) => tree.delete(file));
55
+ (0, tree_glob_1.treeGlob)(tree, path.join('src', 'spec', '!(operation-adapter|index).ts')).forEach((file) => tree.delete(file));
57
56
  return tree;
58
57
  };
59
58
  /**
@@ -81,8 +80,8 @@ function ngGenerateTypescriptSDK(options) {
81
80
  * @param tree
82
81
  * @param _context
83
82
  */
84
- const updateSpec = async (tree, _context) => {
85
- const specContent = await node_fs_1.promises.readFile(specPath, { encoding: 'utf8' });
83
+ const updateSpec = (tree, _context) => {
84
+ const specContent = (0, node_fs_1.readFileSync)(specPath).toString();
86
85
  if (tree.exists('/readme.md')) {
87
86
  const swaggerVersion = /version: ([0-9]+\.[0-9]+\.[0-9]+)/.exec(specContent);
88
87
  if (swaggerVersion) {
@@ -98,11 +97,27 @@ function ngGenerateTypescriptSDK(options) {
98
97
  }
99
98
  return () => tree;
100
99
  };
100
+ const runGeneratorRule = (tree, context) => {
101
+ const generatorOptions = { specPath };
102
+ const packageJsonFile = JSON.parse(((0, node_fs_1.readFileSync)(path.join(__dirname, '..', '..', '..', 'package.json'))).toString());
103
+ const packageOpenApiSupportedVersion = packageJsonFile.openApiSupportedVersion?.replace(/\^|~/, '');
104
+ let openApiVersion = '';
105
+ try {
106
+ openApiVersion = tree.readJson('openapitools.json')?.['generator-cli']?.version;
107
+ }
108
+ catch {
109
+ context.logger.warn('No openapitools.json file found in the project');
110
+ }
111
+ if (!!packageOpenApiSupportedVersion && semver.valid(packageOpenApiSupportedVersion) && (!packageOpenApiSupportedVersion || !semver.satisfies(openApiVersion, packageOpenApiSupportedVersion))) {
112
+ generatorOptions.generatorVersion = packageOpenApiSupportedVersion;
113
+ }
114
+ return () => (new open_api_cli_generator_1.OpenApiCliGenerator()).getGeneratorRunSchematic(generatorOptions);
115
+ };
101
116
  return (0, schematics_1.chain)([
102
117
  clearGeneratedCode,
103
118
  generateSource,
104
119
  updateSpec,
105
- (0, execute_jars_1.executeSwaggerJarsRuleFactory)(jarBasePath, specPath, 'typescriptFetch')
120
+ runGeneratorRule
106
121
  ]);
107
122
  }
108
123
  exports.ngGenerateTypescriptSDK = ngGenerateTypescriptSDK;
@@ -1,6 +1,6 @@
1
1
  import type { JsonObject } from '@angular-devkit/core';
2
2
  export interface NgGenerateTypescriptSDKCoreSchematicsSchema extends JsonObject {
3
3
  /** Path to the swagger specification used to generate the SDK */
4
- swaggerSpecPath: string;
4
+ specPath: string;
5
5
  }
6
6
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../schematics/typescript/core/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,2CAA4C,SAAQ,UAAU;IAC7E,iEAAiE;IACjE,eAAe,EAAE,MAAM,CAAC;CACzB"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../schematics/typescript/core/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,2CAA4C,SAAQ,UAAU;IAC7E,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -4,10 +4,10 @@
4
4
  "title": "Generate Typescript SDK",
5
5
  "description": "ng generate typescript-core",
6
6
  "properties": {
7
- "swaggerSpecPath": {
7
+ "specPath": {
8
8
  "type": "string",
9
- "description": "Path to the swagger specification used to generate the SDK",
10
- "x-prompt": "Path to the swagger spec",
9
+ "description": "Path to the swagger/open-api specification used to generate the SDK",
10
+ "x-prompt": "Path to the swagger / open-api spec",
11
11
  "$default": {
12
12
  "$source": "argv",
13
13
  "index": 0
@@ -16,6 +16,6 @@
16
16
  },
17
17
  "additionalProperties": true,
18
18
  "required": [
19
- "swaggerSpecPath"
19
+ "specPath"
20
20
  ]
21
21
  }
@@ -4,7 +4,7 @@
4
4
  "title": "Generate Typescript SDK",
5
5
  "description": "ng generate typescript-sdk",
6
6
  "properties": {
7
- "swaggerSpecPath": {
7
+ "specPath": {
8
8
  "type": "string",
9
9
  "description": "Path to the swagger specification used to generate the SDK",
10
10
  "x-prompt": "Path to the swagger spec",
@@ -34,7 +34,7 @@
34
34
  "required": [
35
35
  "name",
36
36
  "package",
37
- "swaggerSpecPath"
37
+ "specPath"
38
38
  ],
39
39
  "additionalProperties": true
40
40
  }
@@ -49,7 +49,7 @@ function ngGenerateMock(options) {
49
49
  const dasherizeModelName = getDasherizeModelName(options.apiModel);
50
50
  const generateRootBarrel = (tree) => {
51
51
  let currentComponentIndex = '';
52
- const barrelPath = path.posix.join(options.path, 'index.ts');
52
+ const barrelPath = path.join(options.path, 'index.ts');
53
53
  if (tree.exists(barrelPath)) {
54
54
  const currentServiceIndexBuffer = tree.read(barrelPath);
55
55
  currentComponentIndex = currentServiceIndexBuffer ? currentServiceIndexBuffer.toString() : '';
@@ -62,7 +62,7 @@ function ngGenerateMock(options) {
62
62
  return tree;
63
63
  };
64
64
  const generateFiles = (tree, context) => {
65
- const mockDestination = path.posix.join(options.path, dasherizeModelName);
65
+ const mockDestination = path.join(options.path, dasherizeModelName);
66
66
  return (0, schematics_1.mergeWith)((0, schematics_1.apply)((0, schematics_1.url)('./templates'), [
67
67
  (0, schematics_1.template)({
68
68
  ...options,
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/typescript/shell/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,IAAI,EAIL,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,4CAA4C,EAAE,MAAM,UAAU,CAAC;AAE7E;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,4CAA4C,GAAG,IAAI,CAgDnG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../schematics/typescript/shell/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,IAAI,EAIL,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,4CAA4C,EAAE,MAAM,UAAU,CAAC;AAE7E;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,4CAA4C,GAAG,IAAI,CAqDnG"}
@@ -7,7 +7,7 @@ const read_package_1 = require("../../helpers/read-package");
7
7
  * @param options
8
8
  */
9
9
  function ngGenerateTypescriptSDK(options) {
10
- return async (tree) => {
10
+ return async (tree, context) => {
11
11
  const amaSdkSchematicsPackageJson = await (0, read_package_1.readPackageJson)();
12
12
  /* eslint-disable @typescript-eslint/naming-convention */
13
13
  const versions = {
@@ -24,8 +24,12 @@ function ngGenerateTypescriptSDK(options) {
24
24
  'isomorphic-fetch': amaSdkSchematicsPackageJson.devDependencies['isomorphic-fetch'],
25
25
  'jest': amaSdkSchematicsPackageJson.devDependencies.jest,
26
26
  'ts-jest': amaSdkSchematicsPackageJson.devDependencies['ts-jest'],
27
- 'typescript': amaSdkSchematicsPackageJson.devDependencies.typescript
27
+ 'typescript': amaSdkSchematicsPackageJson.devDependencies.typescript,
28
+ '@openapitools/openapi-generator-cli': amaSdkSchematicsPackageJson.devDependencies['@openapitools/openapi-generator-cli']
28
29
  };
30
+ const openApiSupportedVersion = typeof amaSdkSchematicsPackageJson.openApiSupportedVersion === 'string' &&
31
+ amaSdkSchematicsPackageJson.openApiSupportedVersion.replace(/\^|~/, '');
32
+ context.logger.warn(JSON.stringify(openApiSupportedVersion));
29
33
  const engineVersions = {
30
34
  'node': amaSdkSchematicsPackageJson.engines.node,
31
35
  'npm': amaSdkSchematicsPackageJson.engines.npm,
@@ -39,6 +43,7 @@ function ngGenerateTypescriptSDK(options) {
39
43
  sdkCoreVersion: amaSdkSchematicsPackageJson.version,
40
44
  angularVersion: amaSdkSchematicsPackageJson.dependencies['@angular-devkit/core'],
41
45
  versions,
46
+ ...openApiSupportedVersion ? { openApiSupportedVersion } : {},
42
47
  engineVersions,
43
48
  empty: ''
44
49
  };
@@ -0,0 +1,7 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/OpenAPITools/openapi-generator-cli/master/apps/generator-cli/src/config.schema.json",
3
+ "spaces": 2,
4
+ "generator-cli": {
5
+ "version": "<%= openApiSupportedVersion %>"
6
+ }
7
+ }
@@ -39,8 +39,8 @@
39
39
  "build:esm2020": "tsc -b tsconfigs/esm2020",
40
40
  "set:version": "set-version --placeholder 0.0.0",
41
41
  "resolve": "node -e 'process.stdout.write(require.resolve(process.argv[1]));'",
42
- "generate": "schematics @ama-sdk/schematics:typescript-core --swagger-spec-path ./swagger-spec.yaml",
43
- "swagger:regen": "schematics @ama-sdk/schematics:typescript-core --swagger-spec-path ./swagger-spec.yaml && yarn clear-index",
42
+ "generate": "schematics @ama-sdk/schematics:typescript-core --spec-path ./swagger-spec.yaml",
43
+ "spec:regen": "schematics @ama-sdk/schematics:typescript-core --spec-path ./swagger-spec.yaml && yarn clear-index",
44
44
  "clear-index": "node scripts/clear-index.js",
45
45
  "files:pack": "node scripts/files-pack.js",
46
46
  "test": "jest --passWithNoTests",
@@ -80,6 +80,7 @@
80
80
  "@ama-sdk/core": "~<%= sdkCoreVersion %>",
81
81
  "@o3r/eslint-config-otter": "^<%= sdkCoreVersion %>",
82
82
  "@o3r/eslint-plugin": "^<%= sdkCoreVersion %>",
83
+ "@openapitools/openapi-generator-cli": "<%= versions['@openapitools/openapi-generator-cli'] %>",
83
84
  "@swc/cli": "^0.1.57",
84
85
  "@swc/core": "^1.2.249",
85
86
  "@types/jest": "<%= versions['@types/jest'] %>",
@@ -20,7 +20,7 @@ The following folders contain the generated code:
20
20
  The Code can be regenerated by running the following command:
21
21
 
22
22
  ```shell
23
- yarn schematics @ama-sdk/sdk:typescript-core --swagger-spec-path [path to your swagger file]
23
+ yarn schematics @ama-sdk/sdk:typescript-core --spec-path [path to your swagger file]
24
24
  ```
25
25
 
26
26
  ***
@@ -98,7 +98,7 @@ Some commands are provided to keep your SDK up-to-date.
98
98
  ### Generate SDK from a Swagger specification
99
99
 
100
100
  ```shell
101
- yarn swagger:regen
101
+ yarn spec:regen
102
102
  ```
103
103
 
104
104
  ### Run Unit Tests
@@ -20,19 +20,19 @@ const files = [
20
20
 
21
21
  /** Update package.json exports */
22
22
  const updateExports = async () => {
23
- const packageJson = JSON.parse(await fs.readFile(path.posix.join(baseDir, 'package.json'), { encoding: 'utf8' }));
24
- const packageJsonFiles = sync(path.posix.join(baseDir, distFolder, '*', '**', 'package.json'), {absolute: true});
23
+ const packageJson = JSON.parse(await fs.readFile(path.join(baseDir, 'package.json'), { encoding: 'utf8' }));
24
+ const packageJsonFiles = sync(path.join(baseDir, distFolder, '*', '**', 'package.json'), {absolute: true});
25
25
  packageJson.exports = packageJson.exports || {};
26
26
  for (const packageJsonFile of packageJsonFiles) {
27
27
  try {
28
28
  const subPackageJson = JSON.parse(await fs.readFile(packageJsonFile, { encoding: 'utf8' }));
29
- const folder = './' + path.relative(path.posix.join(baseDir, distFolder), path.dirname(packageJsonFile)).replace(/[/\\]+/g, '/');
29
+ const folder = './' + path.relative(path.join(baseDir, distFolder), path.dirname(packageJsonFile)).replace(/[/\\]+/g, '/');
30
30
  packageJson.exports[folder] = packageJson.exports[folder] || {};
31
31
  Object.entries(subPackageJson).forEach(([key, value]) => {
32
32
  if (['name', 'sideEffects'].includes(key)) {
33
33
  return;
34
34
  }
35
- packageJson.exports[folder][key] = './' + path.relative(path.posix.join(baseDir, distFolder), path.resolve(path.dirname(packageJsonFile), value)).replace(/[/\\]+/g, '/');
35
+ packageJson.exports[folder][key] = './' + path.relative(path.join(baseDir, distFolder), path.resolve(path.dirname(packageJsonFile), value)).replace(/[/\\]+/g, '/');
36
36
  });
37
37
  packageJson.exports[folder].import = packageJson.exports[folder].module || packageJson.exports[folder].esm2020 || packageJson.exports[folder].esm2015 || packageJson.exports[folder].node;
38
38
  packageJson.exports[folder].require = packageJson.exports[folder].node;
@@ -46,7 +46,7 @@ const updateExports = async () => {
46
46
  }
47
47
  }
48
48
  delete packageJson.scripts;
49
- await fs.writeFile(path.posix.join(baseDir, distFolder, 'package.json'), JSON.stringify(packageJson, null, 2));
49
+ await fs.writeFile(path.join(baseDir, distFolder, 'package.json'), JSON.stringify(packageJson, null, 2));
50
50
  };
51
51
 
52
52
  (async () => {
@@ -56,13 +56,13 @@ const updateExports = async () => {
56
56
  acc.push(
57
57
  watch ?
58
58
  // eslint-disable-next-line no-console
59
- cpx.watch(path.posix.join(baseDir, glob), distFolder).on('copy', (e) => {
59
+ cpx.watch(path.join(baseDir, glob), distFolder).on('copy', (e) => {
60
60
  console.log(`${e.srcPath} copied to ${e.dstPath}`);
61
61
  if (!noExports) {
62
62
  void updateExports()
63
63
  }
64
64
  }) :
65
- promisify(cpx.copy)(path.posix.join(baseDir, glob), distFolder));
65
+ promisify(cpx.copy)(path.join(baseDir, glob), distFolder));
66
66
  return acc;
67
67
  }, []);
68
68
  await Promise.all(copies);
@@ -10,6 +10,6 @@ const argv = minimist(process.argv.slice(2));
10
10
  const folderName = argv.folderName || '@<%=projectName%>/<%=projectPackageName%>';
11
11
 
12
12
  (async () => {
13
- await copyFile(path.posix.join(root, 'readme.md'), path.posix.join(root, '.readme-backup'));
14
- await copyFile(path.posix.join(root, 'packages', folderName, 'readme.md'), root);
13
+ await copyFile(path.join(root, 'readme.md'), path.join(root, '.readme-backup'));
14
+ await copyFile(path.join(root, 'packages', folderName, 'readme.md'), root);
15
15
  })();
@@ -9,6 +9,6 @@ const rimrafDir = util.promisify(rimraf);
9
9
  const root = path.resolve(__dirname, '..');
10
10
 
11
11
  (async () => {
12
- await copyFile(path.posix.join(root, '.readme-backup', 'readme.md'), root);
13
- await rimrafDir(path.posix.join(root, '.readme-backup'));
12
+ await copyFile(path.join(root, '.readme-backup', 'readme.md'), root);
13
+ await rimrafDir(path.join(root, '.readme-backup'));
14
14
  })();
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../schematics/api-extension/index.ts"],"names":[],"mappings":";;;AAAA,2DASoC;AAGpC;;;;GAIG;AACH,SAAgB,sBAAsB,CAAC,OAA+C;IAEpF,OAAO,CAAC,IAAU,EAAE,EAAE,CAAC,IAAA,sBAAS,EAAC,IAAA,kBAAK,EAAC,IAAA,gBAAG,EAAC,aAAa,CAAC,EAAE;QACzD,IAAA,qBAAQ,EAAC;YACP,GAAG,OAAO;YACV,KAAK,EAAE,EAAE;SACV,CAAC;QACF,IAAA,iBAAI,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACpB,IAAA,gCAAmB,GAAE;KACtB,CAAC,EAAE,0BAAa,CAAC,SAAS,CAAC,CAAC;AAE/B,CAAC;AAXD,wDAWC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../schematics/api-extension/schema.ts"],"names":[],"mappings":""}
@@ -1,14 +0,0 @@
1
- import { Rule } from '@angular-devkit/schematics';
2
- /**
3
- * Execute the Swagger CLI and codeGen rule factory
4
- *
5
- * @param targetFolder folder where to download the jars
6
- * @param swaggerSpecPath path to the swagger specification
7
- * @param codegenLanguage codegen template language
8
- * @param apiTests
9
- * @param codegenFileName Name of the codeGen jar
10
- * @param cliFilename Name of the codeGen CLI jar
11
- * @param swaggerConfigPath path to the swagger configuration
12
- */
13
- export declare const executeSwaggerJarsRuleFactory: (targetFolder: string, swaggerSpecPath: string, codegenLanguage: string, apiTests?: boolean, swaggerConfigPath?: string | null, codegenFileName?: string, cliFilename?: string) => Rule;
14
- //# sourceMappingURL=execute-jars.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"execute-jars.d.ts","sourceRoot":"","sources":["../../../schematics/helpers/execute-jars.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,IAAI,EAAyE,MAAM,4BAA4B,CAAC;AA8ChI;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6BAA6B,iBAC1B,MAAM,mBACH,MAAM,mBACN,MAAM,0CAEH,MAAM,GAAG,IAAI,qDAGhC,IAUF,CAAC"}
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.executeSwaggerJarsRuleFactory = void 0;
4
- const schematics_1 = require("@angular-devkit/schematics");
5
- const path = require("node:path");
6
- const generator_java_task_1 = require("./generator-java.task");
7
- class JavaGeneratorTask {
8
- /**
9
- * @param targetFolder folder where to download the jars
10
- * @param swaggerSpecPath
11
- * @param codegenLanguage
12
- * @param apiTests
13
- * @param cliFilename
14
- * @param codegenFileName Name of the codeGen jar
15
- * @param workingDirectory
16
- */
17
- constructor(targetFolder, swaggerSpecPath, codegenLanguage, apiTests = true, swaggerConfigPath, cliFilename = 'swagger-codegen-cli.jar', codegenFileName = 'swagger-codegen.jar', workingDirectory) {
18
- this.swaggerSpecPath = swaggerSpecPath;
19
- this.codegenLanguage = codegenLanguage;
20
- this.apiTests = apiTests;
21
- this.swaggerConfigPath = swaggerConfigPath;
22
- this.workingDirectory = workingDirectory;
23
- this.codegenPath = path.posix.join(targetFolder, `${codegenLanguage}-${codegenFileName}`);
24
- this.cliPath = path.resolve(__dirname, '..', 'resources', cliFilename);
25
- }
26
- toConfiguration() {
27
- return {
28
- name: generator_java_task_1.javaGeneratorName,
29
- options: {
30
- codegenPath: this.codegenPath,
31
- codegenLanguage: this.codegenLanguage,
32
- cliPath: this.cliPath,
33
- apiTests: this.apiTests,
34
- swaggerSpecPath: this.swaggerSpecPath,
35
- swaggerConfigPath: this.swaggerConfigPath
36
- }
37
- };
38
- }
39
- }
40
- /**
41
- * Execute the Swagger CLI and codeGen rule factory
42
- *
43
- * @param targetFolder folder where to download the jars
44
- * @param swaggerSpecPath path to the swagger specification
45
- * @param codegenLanguage codegen template language
46
- * @param apiTests
47
- * @param codegenFileName Name of the codeGen jar
48
- * @param cliFilename Name of the codeGen CLI jar
49
- * @param swaggerConfigPath path to the swagger configuration
50
- */
51
- const executeSwaggerJarsRuleFactory = (targetFolder, swaggerSpecPath, codegenLanguage, apiTests = true, swaggerConfigPath, codegenFileName = 'swagger-codegen.jar', cliFilename = 'swagger-codegen-cli.jar') => {
52
- const scheduleTask = (tree, context) => {
53
- context.addTask(new JavaGeneratorTask(targetFolder, swaggerSpecPath, codegenLanguage, apiTests, swaggerConfigPath, cliFilename, codegenFileName));
54
- return tree;
55
- };
56
- return (0, schematics_1.chain)([
57
- generator_java_task_1.registerJavaGeneratorExecutor,
58
- scheduleTask
59
- ]);
60
- };
61
- exports.executeSwaggerJarsRuleFactory = executeSwaggerJarsRuleFactory;
62
- //# sourceMappingURL=execute-jars.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"execute-jars.js","sourceRoot":"","sources":["../../../schematics/helpers/execute-jars.ts"],"names":[],"mappings":";;;AAAA,2DAAgI;AAChI,kCAAkC;AAClC,+DAAmH;AAGnH,MAAM,iBAAiB;IAKrB;;;;;;;;OAQG;IACH,YAAY,YAAoB,EACrB,eAAuB,EACvB,eAAuB,EACvB,WAAW,IAAI,EACf,iBAAiC,EACxC,WAAW,GAAG,yBAAyB,EACvC,eAAe,GAAG,qBAAqB,EAChC,gBAAyB;QANzB,oBAAe,GAAf,eAAe,CAAQ;QACvB,oBAAe,GAAf,eAAe,CAAQ;QACvB,aAAQ,GAAR,QAAQ,CAAO;QACf,sBAAiB,GAAjB,iBAAiB,CAAgB;QAGjC,qBAAgB,GAAhB,gBAAgB,CAAS;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,eAAe,IAAI,eAAe,EAAE,CAAC,CAAC;QAC1F,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC;IAEM,eAAe;QACpB,OAAO;YACL,IAAI,EAAE,uCAAiB;YACvB,OAAO,EAAE;gBACP,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;aAC1C;SACF,CAAC;IACJ,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACI,MAAM,6BAA6B,GAAG,CAC3C,YAAoB,EACpB,eAAuB,EACvB,eAAuB,EACvB,QAAQ,GAAG,IAAI,EACf,iBAAiC,EACjC,eAAe,GAAG,qBAAqB,EACvC,WAAW,GAAG,yBAAyB,EACjC,EAAE;IACR,MAAM,YAAY,GAAG,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC7D,OAAO,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;QAClJ,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,OAAO,IAAA,kBAAK,EAAC;QACX,mDAA6B;QAC7B,YAAY;KACb,CAAC,CAAC;AACL,CAAC,CAAC;AAlBW,QAAA,6BAA6B,iCAkBxC"}
@@ -1,59 +0,0 @@
1
- import { SchematicContext, TaskExecutor, Tree } from '@angular-devkit/schematics';
2
- /**
3
- * Options for the generator-java task.
4
- */
5
- export interface JavaGeneratorTaskOptions {
6
- /**
7
- * Enable API testing in Swagger Codegen
8
- *
9
- * @default true
10
- */
11
- apiTests: boolean;
12
- /**
13
- * Path to the Swagger CLI
14
- *
15
- * @default 'swagger-codegen-cli.jar'
16
- */
17
- cliPath: string;
18
- /**
19
- * Path to the Swagger Codegen
20
- *
21
- * @default 'swagger-codegen.jar'
22
- */
23
- codegenPath: string;
24
- /**
25
- * Template language use for the codegen
26
- *
27
- * @default 'default'
28
- */
29
- codegenLanguage: string;
30
- /**
31
- * Path to the Swagger specification
32
- *
33
- * @default 'swagger-spec.yaml'
34
- */
35
- swaggerSpecPath: string;
36
- /**
37
- * Path to the swagger configuration
38
- */
39
- swaggerConfigPath?: string | null;
40
- }
41
- /**
42
- * Java swagger generator task factory
43
- *
44
- * @param factoryOptions.rootDirectory The root directory of the process execution
45
- * @param factoryOptions
46
- */
47
- export declare const javaGeneratorFactory: (factoryOptions?: {
48
- rootDirectory?: string;
49
- }) => TaskExecutor<Partial<JavaGeneratorTaskOptions>>;
50
- /** Name of the Java codegen task */
51
- export declare const javaGeneratorName = "java-generator";
52
- /**
53
- * Rule to register the Java generator task
54
- *
55
- * @param tree
56
- * @param context
57
- */
58
- export declare const registerJavaGeneratorExecutor: (tree: Tree, context: SchematicContext) => import("@angular-devkit/schematics/src/tree/interface").Tree;
59
- //# sourceMappingURL=generator-java.task.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generator-java.task.d.ts","sourceRoot":"","sources":["../../../schematics/helpers/generator-java.task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAKlF;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAUD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,oBAAoB;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAC,KAAQ,aAAa,QAAQ,wBAAwB,CAAC,CAgDlI,CAAC;AAEF,oCAAoC;AACpC,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,SAAU,IAAI,4FAUvD,CAAC"}