@asyncapi-actions-test/trusted-publishing-test_asyncapi-cli 4.1.3

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 (257) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +117 -0
  3. package/assets/create-template/templates/default/asyncapi.yaml +34 -0
  4. package/assets/create-template/templates/default/package-lock.json +4062 -0
  5. package/assets/create-template/templates/default/package.json +10 -0
  6. package/assets/create-template/templates/default/readme.md +4 -0
  7. package/assets/create-template/templates/default/template/index.js +11 -0
  8. package/assets/examples/adeo-kafka-request-reply-asyncapi.yml +298 -0
  9. package/assets/examples/anyof-asyncapi.yml +36 -0
  10. package/assets/examples/application-headers-asyncapi.yml +86 -0
  11. package/assets/examples/correlation-id-asyncapi.yml +180 -0
  12. package/assets/examples/default-example.json +51 -0
  13. package/assets/examples/default-example.yaml +31 -0
  14. package/assets/examples/examples.json +82 -0
  15. package/assets/examples/gitter-streaming-asyncapi.yml +178 -0
  16. package/assets/examples/kraken-websocket-request-reply-message-filter-in-reply-asyncapi.yml +388 -0
  17. package/assets/examples/kraken-websocket-request-reply-multiple-channels-asyncapi.yml +394 -0
  18. package/assets/examples/mercure-asyncapi.yml +58 -0
  19. package/assets/examples/not-asyncapi.yml +29 -0
  20. package/assets/examples/oneof-asyncapi.yml +57 -0
  21. package/assets/examples/operation-security-asyncapi.yml +117 -0
  22. package/assets/examples/rpc-client-asyncapi.yml +72 -0
  23. package/assets/examples/rpc-server-asyncapi.yml +69 -0
  24. package/assets/examples/simple-asyncapi.yml +31 -0
  25. package/assets/examples/slack-rtm-asyncapi.yml +982 -0
  26. package/assets/examples/streetlights-kafka-asyncapi.yml +199 -0
  27. package/assets/examples/streetlights-mqtt-asyncapi.yml +253 -0
  28. package/assets/examples/streetlights-operation-security-asyncapi.yml +240 -0
  29. package/assets/examples/tutorial.yml +41 -0
  30. package/assets/examples/websocket-gemini-asyncapi.yml +301 -0
  31. package/assets/logo.png +0 -0
  32. package/assets/server-api.png +0 -0
  33. package/bin/dev +17 -0
  34. package/bin/dev.cmd +3 -0
  35. package/bin/run +12 -0
  36. package/bin/run.cmd +3 -0
  37. package/bin/run_bin +13 -0
  38. package/bin/run_bin.cmd +3 -0
  39. package/lib/apps/api/app.d.ts +15 -0
  40. package/lib/apps/api/app.js +91 -0
  41. package/lib/apps/api/configs/development.json +16 -0
  42. package/lib/apps/api/configs/production.json +16 -0
  43. package/lib/apps/api/configs/test.json +16 -0
  44. package/lib/apps/api/constants.d.ts +1 -0
  45. package/lib/apps/api/constants.js +4 -0
  46. package/lib/apps/api/controllers/bundle.controller.d.ts +7 -0
  47. package/lib/apps/api/controllers/bundle.controller.js +44 -0
  48. package/lib/apps/api/controllers/convert.controller.d.ts +11 -0
  49. package/lib/apps/api/controllers/convert.controller.js +69 -0
  50. package/lib/apps/api/controllers/diff.controller.d.ts +7 -0
  51. package/lib/apps/api/controllers/diff.controller.js +42 -0
  52. package/lib/apps/api/controllers/docs.controller.d.ts +6 -0
  53. package/lib/apps/api/controllers/docs.controller.js +24 -0
  54. package/lib/apps/api/controllers/generate.controller.d.ts +22 -0
  55. package/lib/apps/api/controllers/generate.controller.js +174 -0
  56. package/lib/apps/api/controllers/help.controller.d.ts +6 -0
  57. package/lib/apps/api/controllers/help.controller.js +101 -0
  58. package/lib/apps/api/controllers/parse.controller.d.ts +10 -0
  59. package/lib/apps/api/controllers/parse.controller.js +35 -0
  60. package/lib/apps/api/controllers/validate.controller.d.ts +10 -0
  61. package/lib/apps/api/controllers/validate.controller.js +50 -0
  62. package/lib/apps/api/controllers/version.controller.d.ts +8 -0
  63. package/lib/apps/api/controllers/version.controller.js +69 -0
  64. package/lib/apps/api/exceptions/problem.exception.d.ts +14 -0
  65. package/lib/apps/api/exceptions/problem.exception.js +10 -0
  66. package/lib/apps/api/index.d.ts +10 -0
  67. package/lib/apps/api/index.js +23 -0
  68. package/lib/apps/api/middlewares/logger.middleware.d.ts +2 -0
  69. package/lib/apps/api/middlewares/logger.middleware.js +12 -0
  70. package/lib/apps/api/middlewares/problem.middleware.d.ts +6 -0
  71. package/lib/apps/api/middlewares/problem.middleware.js +27 -0
  72. package/lib/apps/api/middlewares/validation.middleware.d.ts +12 -0
  73. package/lib/apps/api/middlewares/validation.middleware.js +245 -0
  74. package/lib/apps/api/server.d.ts +3 -0
  75. package/lib/apps/api/server.js +19 -0
  76. package/lib/apps/cli/commands/bundle.d.ts +15 -0
  77. package/lib/apps/cli/commands/bundle.js +75 -0
  78. package/lib/apps/cli/commands/config/analytics.d.ts +11 -0
  79. package/lib/apps/cli/commands/config/analytics.js +61 -0
  80. package/lib/apps/cli/commands/config/auth/add.d.ts +13 -0
  81. package/lib/apps/cli/commands/config/auth/add.js +68 -0
  82. package/lib/apps/cli/commands/config/context/add.d.ts +13 -0
  83. package/lib/apps/cli/commands/config/context/add.js +46 -0
  84. package/lib/apps/cli/commands/config/context/current.d.ts +8 -0
  85. package/lib/apps/cli/commands/config/context/current.js +37 -0
  86. package/lib/apps/cli/commands/config/context/edit.d.ts +12 -0
  87. package/lib/apps/cli/commands/config/context/edit.js +44 -0
  88. package/lib/apps/cli/commands/config/context/index.d.ts +5 -0
  89. package/lib/apps/cli/commands/config/context/index.js +16 -0
  90. package/lib/apps/cli/commands/config/context/init.d.ts +12 -0
  91. package/lib/apps/cli/commands/config/context/init.js +31 -0
  92. package/lib/apps/cli/commands/config/context/list.d.ts +8 -0
  93. package/lib/apps/cli/commands/config/context/list.js +36 -0
  94. package/lib/apps/cli/commands/config/context/remove.d.ts +11 -0
  95. package/lib/apps/cli/commands/config/context/remove.js +39 -0
  96. package/lib/apps/cli/commands/config/context/use.d.ts +11 -0
  97. package/lib/apps/cli/commands/config/context/use.js +40 -0
  98. package/lib/apps/cli/commands/config/index.d.ts +5 -0
  99. package/lib/apps/cli/commands/config/index.js +16 -0
  100. package/lib/apps/cli/commands/config/versions.d.ts +8 -0
  101. package/lib/apps/cli/commands/config/versions.js +56 -0
  102. package/lib/apps/cli/commands/convert.d.ts +21 -0
  103. package/lib/apps/cli/commands/convert.js +85 -0
  104. package/lib/apps/cli/commands/diff.d.ts +36 -0
  105. package/lib/apps/cli/commands/diff.js +335 -0
  106. package/lib/apps/cli/commands/format.d.ts +18 -0
  107. package/lib/apps/cli/commands/format.js +97 -0
  108. package/lib/apps/cli/commands/generate/client.d.ts +30 -0
  109. package/lib/apps/cli/commands/generate/client.js +94 -0
  110. package/lib/apps/cli/commands/generate/fromTemplate.d.ts +29 -0
  111. package/lib/apps/cli/commands/generate/fromTemplate.js +91 -0
  112. package/lib/apps/cli/commands/generate/index.d.ts +5 -0
  113. package/lib/apps/cli/commands/generate/index.js +15 -0
  114. package/lib/apps/cli/commands/generate/models.d.ts +16 -0
  115. package/lib/apps/cli/commands/generate/models.js +166 -0
  116. package/lib/apps/cli/commands/new/file.d.ts +16 -0
  117. package/lib/apps/cli/commands/new/file.js +180 -0
  118. package/lib/apps/cli/commands/new/index.d.ts +5 -0
  119. package/lib/apps/cli/commands/new/index.js +15 -0
  120. package/lib/apps/cli/commands/new/template.d.ts +18 -0
  121. package/lib/apps/cli/commands/new/template.js +102 -0
  122. package/lib/apps/cli/commands/optimize.d.ts +41 -0
  123. package/lib/apps/cli/commands/optimize.js +289 -0
  124. package/lib/apps/cli/commands/pretty.d.ts +12 -0
  125. package/lib/apps/cli/commands/pretty.js +70 -0
  126. package/lib/apps/cli/commands/start/api.d.ts +11 -0
  127. package/lib/apps/cli/commands/start/api.js +23 -0
  128. package/lib/apps/cli/commands/start/index.d.ts +5 -0
  129. package/lib/apps/cli/commands/start/index.js +15 -0
  130. package/lib/apps/cli/commands/start/preview.d.ts +17 -0
  131. package/lib/apps/cli/commands/start/preview.js +41 -0
  132. package/lib/apps/cli/commands/start/studio.d.ts +16 -0
  133. package/lib/apps/cli/commands/start/studio.js +94 -0
  134. package/lib/apps/cli/commands/validate.d.ts +23 -0
  135. package/lib/apps/cli/commands/validate.js +95 -0
  136. package/lib/apps/cli/internal/args/generate.args.d.ts +3 -0
  137. package/lib/apps/cli/internal/args/generate.args.js +10 -0
  138. package/lib/apps/cli/internal/base/BaseGeneratorCommand.d.ts +42 -0
  139. package/lib/apps/cli/internal/base/BaseGeneratorCommand.js +119 -0
  140. package/lib/apps/cli/internal/base.d.ts +20 -0
  141. package/lib/apps/cli/internal/base.js +173 -0
  142. package/lib/apps/cli/internal/flags/bundle.flags.d.ts +7 -0
  143. package/lib/apps/cli/internal/flags/bundle.flags.js +26 -0
  144. package/lib/apps/cli/internal/flags/config/analytics.flags.d.ts +6 -0
  145. package/lib/apps/cli/internal/flags/config/analytics.flags.js +24 -0
  146. package/lib/apps/cli/internal/flags/config/context.flags.d.ts +4 -0
  147. package/lib/apps/cli/internal/flags/config/context.flags.js +16 -0
  148. package/lib/apps/cli/internal/flags/convert.flags.d.ts +7 -0
  149. package/lib/apps/cli/internal/flags/convert.flags.js +32 -0
  150. package/lib/apps/cli/internal/flags/diff.flags.d.ts +13 -0
  151. package/lib/apps/cli/internal/flags/diff.flags.js +29 -0
  152. package/lib/apps/cli/internal/flags/format.flags.d.ts +6 -0
  153. package/lib/apps/cli/internal/flags/format.flags.js +22 -0
  154. package/lib/apps/cli/internal/flags/generate/clients.flags.d.ts +16 -0
  155. package/lib/apps/cli/internal/flags/generate/clients.flags.js +8 -0
  156. package/lib/apps/cli/internal/flags/generate/fromTemplate.flags.d.ts +16 -0
  157. package/lib/apps/cli/internal/flags/generate/fromTemplate.flags.js +8 -0
  158. package/lib/apps/cli/internal/flags/generate/models.flags.d.ts +1 -0
  159. package/lib/apps/cli/internal/flags/generate/models.flags.js +14 -0
  160. package/lib/apps/cli/internal/flags/generate/sharedFlags.d.ts +16 -0
  161. package/lib/apps/cli/internal/flags/generate/sharedFlags.js +57 -0
  162. package/lib/apps/cli/internal/flags/global.flags.d.ts +4 -0
  163. package/lib/apps/cli/internal/flags/global.flags.js +18 -0
  164. package/lib/apps/cli/internal/flags/new/file.flags.d.ts +8 -0
  165. package/lib/apps/cli/internal/flags/new/file.flags.js +20 -0
  166. package/lib/apps/cli/internal/flags/new/template.flags.d.ts +7 -0
  167. package/lib/apps/cli/internal/flags/new/template.flags.js +28 -0
  168. package/lib/apps/cli/internal/flags/optimize.flags.d.ts +21 -0
  169. package/lib/apps/cli/internal/flags/optimize.flags.js +51 -0
  170. package/lib/apps/cli/internal/flags/parser.flags.d.ts +10 -0
  171. package/lib/apps/cli/internal/flags/parser.flags.js +28 -0
  172. package/lib/apps/cli/internal/flags/pretty.flags.d.ts +3 -0
  173. package/lib/apps/cli/internal/flags/pretty.flags.js +13 -0
  174. package/lib/apps/cli/internal/flags/proxy.flags.d.ts +4 -0
  175. package/lib/apps/cli/internal/flags/proxy.flags.js +17 -0
  176. package/lib/apps/cli/internal/flags/start/api.flags.d.ts +5 -0
  177. package/lib/apps/cli/internal/flags/start/api.flags.js +20 -0
  178. package/lib/apps/cli/internal/flags/start/preview.flags.d.ts +9 -0
  179. package/lib/apps/cli/internal/flags/start/preview.flags.js +32 -0
  180. package/lib/apps/cli/internal/flags/start/studio.flags.d.ts +7 -0
  181. package/lib/apps/cli/internal/flags/start/studio.flags.js +25 -0
  182. package/lib/apps/cli/internal/flags/validate.flags.d.ts +11 -0
  183. package/lib/apps/cli/internal/flags/validate.flags.js +22 -0
  184. package/lib/apps/cli/internal/globals.d.ts +10 -0
  185. package/lib/apps/cli/internal/globals.js +46 -0
  186. package/lib/apps/cli/internal/hooks/command_not_found/myhook.d.ts +4 -0
  187. package/lib/apps/cli/internal/hooks/command_not_found/myhook.js +85 -0
  188. package/lib/domains/models/Context.d.ts +21 -0
  189. package/lib/domains/models/Context.js +321 -0
  190. package/lib/domains/models/Preview.d.ts +2 -0
  191. package/lib/domains/models/Preview.js +227 -0
  192. package/lib/domains/models/SpecificationFile.d.ts +40 -0
  193. package/lib/domains/models/SpecificationFile.js +295 -0
  194. package/lib/domains/models/Studio.d.ts +2 -0
  195. package/lib/domains/models/Studio.js +182 -0
  196. package/lib/domains/models/generate/ClientLanguages.d.ts +12 -0
  197. package/lib/domains/models/generate/ClientLanguages.js +17 -0
  198. package/lib/domains/models/generate/Flags.d.ts +9 -0
  199. package/lib/domains/models/generate/Flags.js +2 -0
  200. package/lib/domains/services/archiver.service.d.ts +17 -0
  201. package/lib/domains/services/archiver.service.js +53 -0
  202. package/lib/domains/services/base.service.d.ts +6 -0
  203. package/lib/domains/services/base.service.js +26 -0
  204. package/lib/domains/services/config.service.d.ts +42 -0
  205. package/lib/domains/services/config.service.js +95 -0
  206. package/lib/domains/services/convert.service.d.ts +12 -0
  207. package/lib/domains/services/convert.service.js +65 -0
  208. package/lib/domains/services/generator.service.d.ts +15 -0
  209. package/lib/domains/services/generator.service.js +75 -0
  210. package/lib/domains/services/validation.service.d.ts +54 -0
  211. package/lib/domains/services/validation.service.js +375 -0
  212. package/lib/errors/context-error.d.ts +26 -0
  213. package/lib/errors/context-error.js +71 -0
  214. package/lib/errors/diff-error.d.ts +9 -0
  215. package/lib/errors/diff-error.js +27 -0
  216. package/lib/errors/generator-error.d.ts +3 -0
  217. package/lib/errors/generator-error.js +11 -0
  218. package/lib/errors/specification-file.d.ts +18 -0
  219. package/lib/errors/specification-file.js +65 -0
  220. package/lib/errors/validation-error.d.ts +11 -0
  221. package/lib/errors/validation-error.js +55 -0
  222. package/lib/index.d.ts +1 -0
  223. package/lib/index.js +11 -0
  224. package/lib/interfaces/index.d.ts +87 -0
  225. package/lib/interfaces/index.js +7 -0
  226. package/lib/utils/ajv.d.ts +2 -0
  227. package/lib/utils/ajv.js +18 -0
  228. package/lib/utils/app-openapi.d.ts +4 -0
  229. package/lib/utils/app-openapi.js +28 -0
  230. package/lib/utils/generate/flags.d.ts +2 -0
  231. package/lib/utils/generate/flags.js +14 -0
  232. package/lib/utils/generate/mapBaseUrl.d.ts +6 -0
  233. package/lib/utils/generate/mapBaseUrl.js +34 -0
  234. package/lib/utils/generate/parseParams.d.ts +3 -0
  235. package/lib/utils/generate/parseParams.js +58 -0
  236. package/lib/utils/generate/prompts.d.ts +4 -0
  237. package/lib/utils/generate/prompts.js +77 -0
  238. package/lib/utils/generate/registry.d.ts +2 -0
  239. package/lib/utils/generate/registry.js +30 -0
  240. package/lib/utils/generate/watcher.d.ts +51 -0
  241. package/lib/utils/generate/watcher.js +230 -0
  242. package/lib/utils/logger.d.ts +6 -0
  243. package/lib/utils/logger.js +33 -0
  244. package/lib/utils/retrieve-language.d.ts +1 -0
  245. package/lib/utils/retrieve-language.js +9 -0
  246. package/lib/utils/scoreCalculator.d.ts +2 -0
  247. package/lib/utils/scoreCalculator.js +22 -0
  248. package/lib/utils/temp-dir.d.ts +2 -0
  249. package/lib/utils/temp-dir.js +26 -0
  250. package/oclif.manifest.json +2137 -0
  251. package/openapi.yaml +713 -0
  252. package/package.json +203 -0
  253. package/scripts/enableAutoComplete.js +160 -0
  254. package/scripts/fetch-asyncapi-example.js +126 -0
  255. package/scripts/generateTypesForGenerateCommand.js +40 -0
  256. package/scripts/releasePackagesRename.js +88 -0
  257. package/scripts/updateUsageDocs.js +73 -0
@@ -0,0 +1,11 @@
1
+ type ErrorType = 'parser-error' | 'invalid-file' | 'no-spec-found' | 'invalid-syntax-file';
2
+ interface IValidationErrorInput {
3
+ type: ErrorType;
4
+ err?: any;
5
+ filepath?: string;
6
+ }
7
+ export declare class ValidationError extends Error {
8
+ constructor(error: IValidationErrorInput);
9
+ private buildError;
10
+ }
11
+ export {};
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValidationError = void 0;
4
+ class ValidationError extends Error {
5
+ constructor(error) {
6
+ super();
7
+ if (error.type === 'parser-error') {
8
+ this.buildError(error.err);
9
+ }
10
+ if (error.type === 'invalid-file') {
11
+ this.message = `There is no file or context with name "${error.filepath}".`;
12
+ }
13
+ if (error.type === 'invalid-syntax-file') {
14
+ this.message = `Syntax Error in "${error.filepath}".`;
15
+ }
16
+ if (error.type === 'no-spec-found') {
17
+ this.message =
18
+ 'Unable to perform validation. Specify what AsyncAPI file should be validated.\n\nThese are your options to specify in the CLI what AsyncAPI file should be used:\n- You can provide a path to the AsyncAPI file: asyncapi validate path/to/file/asyncapi.yml\n- You can also pass a saved context that points to your AsyncAPI file: asyncapi validate mycontext\n- In case you did not specify a context that you want to use, the CLI checks if there is a default context and uses it. To set default context run: asyncapi context use mycontext\n- In case you did not provide any reference to AsyncAPI file and there is no default context, the CLI detects if in your current working directory you have files like asyncapi.json, asyncapi.yaml, asyncapi.yml. Just rename your file accordingly.';
19
+ }
20
+ this.name = 'ValidationError';
21
+ }
22
+ buildError(err) {
23
+ const errorsInfo = [];
24
+ if (err.title) {
25
+ errorsInfo.push(err.title);
26
+ }
27
+ if (err.detail) {
28
+ errorsInfo.push(err.details);
29
+ }
30
+ if (err.validationErrors) {
31
+ for (const e of err.validationErrors) {
32
+ const errorHasTitle = !!e.title;
33
+ const errorHasLocation = !!e.location;
34
+ /*
35
+ * All the conditions below are needed since validationErrors (from ParserError) come from Parser JS library,
36
+ * so we cannot assure that all the fields or properties are always provided in the error. There might be cases
37
+ * that even title is not provided.
38
+ */
39
+ if (errorHasTitle && errorHasLocation) {
40
+ errorsInfo.push(`${e.title} ${e.location.startLine}:${e.location.startColumn}`);
41
+ continue;
42
+ }
43
+ if (errorHasTitle) {
44
+ errorsInfo.push(`${e.title}`);
45
+ continue;
46
+ }
47
+ if (errorHasLocation) {
48
+ errorsInfo.push(`${e.location.startLine}:${e.location.startColumn}`);
49
+ }
50
+ }
51
+ }
52
+ this.message = errorsInfo.join('\n');
53
+ }
54
+ }
55
+ exports.ValidationError = ValidationError;
package/lib/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export { run } from '@oclif/core';
package/lib/index.js ADDED
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var core_1 = require("@oclif/core");
4
+ Object.defineProperty(exports, "run", { enumerable: true, get: function () { return core_1.run; } });
5
+ /**
6
+ * For NodeJS < 15, unhandled rejections are treated as warnings.
7
+ * This is required for consistency in error handling.
8
+ */
9
+ process.on('unhandledRejection', (reason) => {
10
+ throw new Error(reason);
11
+ });
@@ -0,0 +1,87 @@
1
+ import { AsyncAPIDocumentInterface } from '@asyncapi/parser/cjs';
2
+ import { OutputFormat } from '@stoplight/spectral-cli/dist/services/config';
3
+ export type DiagnosticsFormat = 'stylish' | 'json' | 'junit' | 'html' | 'text' | 'teamcity' | 'pretty';
4
+ export type SeverityKind = 'error' | 'warn' | 'info' | 'hint';
5
+ export type Adapter = 'cli' | 'api';
6
+ import specs from '@asyncapi/specs';
7
+ import { Router } from 'express';
8
+ import { AsyncAPIConvertVersion } from '@asyncapi/converter';
9
+ export interface Controller {
10
+ basepath: string;
11
+ boot(): Router | Promise<Router>;
12
+ }
13
+ export interface Problem {
14
+ type: string;
15
+ title: string;
16
+ status: number;
17
+ detail?: string;
18
+ instance?: string;
19
+ [key: string]: any;
20
+ }
21
+ export type AsyncAPIDocument = {
22
+ asyncapi: string;
23
+ } & Record<string, unknown>;
24
+ export declare const ALL_SPECS: string[];
25
+ export declare const LAST_SPEC_VERSION: string;
26
+ export type SpecsEnum = keyof typeof specs | 'latest';
27
+ export interface AsyncAPIServiceOptions {
28
+ source?: string;
29
+ path?: string;
30
+ }
31
+ export interface ServiceResult<T = any> {
32
+ success: boolean;
33
+ data?: T;
34
+ error?: string;
35
+ diagnostics?: any[];
36
+ }
37
+ export interface ParsedDocument {
38
+ document: AsyncAPIDocumentInterface;
39
+ diagnostics: any[];
40
+ status: 'valid' | 'invalid';
41
+ }
42
+ export interface ValidationOptions {
43
+ 'log-diagnostics'?: boolean;
44
+ 'diagnostics-format'?: `${OutputFormat}`;
45
+ 'fail-severity'?: SeverityKind;
46
+ output?: string;
47
+ suppressWarnings?: string[];
48
+ suppressAllWarnings?: boolean;
49
+ }
50
+ export interface ValidationResult {
51
+ status: 'valid' | 'invalid';
52
+ document?: AsyncAPIDocument;
53
+ diagnostics?: any[];
54
+ score?: number;
55
+ }
56
+ export interface ConversionOptions {
57
+ format: 'asyncapi' | 'openapi' | 'postman-collection';
58
+ 'target-version'?: AsyncAPIConvertVersion;
59
+ perspective?: 'client' | 'server';
60
+ }
61
+ export interface ConversionResult {
62
+ convertedDocument: string;
63
+ originalFormat: string;
64
+ }
65
+ export interface IMapBaseUrlToFlag {
66
+ url: string;
67
+ folder: string;
68
+ }
69
+ export interface GenerationOptions {
70
+ templateParams?: Record<string, any>;
71
+ forceWrite?: boolean;
72
+ install?: boolean;
73
+ debug?: boolean;
74
+ noOverwriteGlobs?: string[];
75
+ disabledHooks?: Record<string, string>;
76
+ mapBaseUrl?: IMapBaseUrlToFlag;
77
+ registry?: {
78
+ url?: string;
79
+ auth?: string;
80
+ token?: string;
81
+ };
82
+ }
83
+ export interface GenerationResult {
84
+ success: boolean;
85
+ outputPath: string;
86
+ logs?: string[];
87
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LAST_SPEC_VERSION = exports.ALL_SPECS = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const specs_1 = tslib_1.__importDefault(require("@asyncapi/specs"));
6
+ exports.ALL_SPECS = [...Object.keys(specs_1.default)];
7
+ exports.LAST_SPEC_VERSION = exports.ALL_SPECS[exports.ALL_SPECS.length - 1];
@@ -0,0 +1,2 @@
1
+ import type AjvCore from 'ajv/dist/core';
2
+ export declare function createAjvInstance(): AjvCore;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAjvInstance = createAjvInstance;
4
+ const tslib_1 = require("tslib");
5
+ const ajv_1 = tslib_1.__importDefault(require("ajv"));
6
+ const ajv_formats_1 = tslib_1.__importDefault(require("ajv-formats"));
7
+ function createAjvInstance() {
8
+ const ajv = new ajv_1.default({
9
+ allErrors: true,
10
+ meta: true,
11
+ strict: false,
12
+ allowUnionTypes: true,
13
+ logger: false,
14
+ unicodeRegExp: false,
15
+ });
16
+ (0, ajv_formats_1.default)(ajv);
17
+ return ajv;
18
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Retrieve application's OpenAPI document.
3
+ */
4
+ export declare function getAppOpenAPI(): Promise<any>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAppOpenAPI = getAppOpenAPI;
4
+ const tslib_1 = require("tslib");
5
+ const fs_1 = require("fs");
6
+ const path_1 = tslib_1.__importDefault(require("path"));
7
+ const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
8
+ const json_schema_ref_parser_1 = tslib_1.__importDefault(require("@apidevtools/json-schema-ref-parser"));
9
+ let parsedOpenAPI = undefined;
10
+ /**
11
+ * Retrieve application's OpenAPI document.
12
+ */
13
+ function getAppOpenAPI() {
14
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
15
+ if (parsedOpenAPI) {
16
+ return parsedOpenAPI;
17
+ }
18
+ const openaAPI = yield fs_1.promises.readFile(path_1.default.join(__dirname, '../../openapi.yaml'), 'utf-8');
19
+ parsedOpenAPI = js_yaml_1.default.load(openaAPI);
20
+ // due to the fact that `@asyncapi/specs: 3.0.0` have moved to a new way of bundling schemas, it makes no sense to resolve the references for AsyncAPI specs
21
+ parsedOpenAPI.components.schemas.AsyncAPIDocument.oneOf = {
22
+ type: ['string', 'object'],
23
+ };
24
+ const refParser = new json_schema_ref_parser_1.default();
25
+ yield refParser.dereference(parsedOpenAPI);
26
+ return parsedOpenAPI;
27
+ });
28
+ }
@@ -0,0 +1,2 @@
1
+ import { ParsedFlags } from '../../domains/models/generate/Flags';
2
+ export declare function parseGeneratorFlags(disableHooks?: string[], params?: string[], mapBaseUrl?: string, registryUrl?: string, registryAuth?: string, registryToken?: string): ParsedFlags;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseGeneratorFlags = parseGeneratorFlags;
4
+ const parseParams_1 = require("./parseParams");
5
+ const registry_1 = require("./registry");
6
+ function parseGeneratorFlags(disableHooks, params, mapBaseUrl, registryUrl, registryAuth, registryToken) {
7
+ return {
8
+ params: (0, parseParams_1.paramParser)(params),
9
+ disableHooks: (0, parseParams_1.disableHooksParser)(disableHooks),
10
+ mapBaseUrlToFolder: (0, parseParams_1.mapBaseURLParser)(mapBaseUrl),
11
+ registryURLValidation: (0, registry_1.registryURLParser)(registryUrl),
12
+ registryAuthentication: (0, registry_1.registryValidation)(registryUrl, registryAuth, registryToken)
13
+ };
14
+ }
@@ -0,0 +1,6 @@
1
+ import { IMapBaseUrlToFlag } from '../../domains/models/generate/Flags';
2
+ export declare function getMapBaseUrlToFolderResolver(urlToFolder: IMapBaseUrlToFlag): {
3
+ order: number;
4
+ canRead(): boolean;
5
+ read(file: any): Promise<unknown>;
6
+ };
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMapBaseUrlToFolderResolver = getMapBaseUrlToFolderResolver;
4
+ const tslib_1 = require("tslib");
5
+ const fs = tslib_1.__importStar(require("fs"));
6
+ function getMapBaseUrlToFolderResolver(urlToFolder) {
7
+ return {
8
+ order: 1,
9
+ canRead() {
10
+ return true;
11
+ },
12
+ read(file) {
13
+ const baseUrl = urlToFolder.url;
14
+ const baseDir = urlToFolder.folder;
15
+ return new Promise((resolve, reject) => {
16
+ let localpath = file.url;
17
+ localpath = localpath.replace(baseUrl, baseDir);
18
+ try {
19
+ fs.readFile(localpath, (err, data) => {
20
+ if (err) {
21
+ reject(`Error opening file "${localpath}"`);
22
+ }
23
+ else {
24
+ resolve(data);
25
+ }
26
+ });
27
+ }
28
+ catch (err) {
29
+ reject(`Error opening file "${localpath}"`);
30
+ }
31
+ });
32
+ }
33
+ };
34
+ }
@@ -0,0 +1,3 @@
1
+ export declare function paramParser(inputs?: string[]): Record<string, any>;
2
+ export declare function disableHooksParser(inputs?: string[]): Record<string, any>;
3
+ export declare function mapBaseURLParser(input?: string): any;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.paramParser = paramParser;
4
+ exports.disableHooksParser = disableHooksParser;
5
+ exports.mapBaseURLParser = mapBaseURLParser;
6
+ const tslib_1 = require("tslib");
7
+ const path_1 = tslib_1.__importDefault(require("path"));
8
+ function paramParser(inputs) {
9
+ if (!inputs) {
10
+ return {};
11
+ }
12
+ const params = {};
13
+ for (const input of inputs) {
14
+ if (!input.includes('=')) {
15
+ throw new Error(`Invalid param ${input}. It must be in the format of --param name1=value1 name2=value2 `);
16
+ }
17
+ const [paramName, paramValue] = input.split(/=(.+)/, 2);
18
+ params[String(paramName)] = paramValue;
19
+ }
20
+ return params;
21
+ }
22
+ function disableHooksParser(inputs) {
23
+ if (!inputs) {
24
+ return {};
25
+ }
26
+ const disableHooks = {};
27
+ for (const input of inputs) {
28
+ const [hookType, hookNames] = input.split(/=/);
29
+ if (!hookType) {
30
+ throw new Error('Invalid --disable-hook flag. It must be in the format of: --disable-hook <hookType> or --disable-hook <hookType>=<hookName1>,<hookName2>,...');
31
+ }
32
+ if (hookNames) {
33
+ disableHooks[String(hookType)] = hookNames.split(',');
34
+ }
35
+ else {
36
+ disableHooks[String(hookType)] = true;
37
+ }
38
+ }
39
+ return disableHooks;
40
+ }
41
+ function mapBaseURLParser(input) {
42
+ if (!input) {
43
+ return;
44
+ }
45
+ const mapBaseURLToFolder = {};
46
+ const re = /(.*):(.*)/g; // NOSONAR
47
+ let mapping = [];
48
+ if ((mapping = re.exec(input)) === null || mapping.length !== 3) {
49
+ throw new Error('Invalid --map-base-url flag. A mapping <url>:<folder> with delimiter : expected.');
50
+ }
51
+ mapBaseURLToFolder.url = mapping[1].replace(/\/$/, '');
52
+ mapBaseURLToFolder.folder = path_1.default.resolve(mapping[2]);
53
+ const isURL = /^https?:/;
54
+ if (!isURL.test(mapBaseURLToFolder.url.toLowerCase())) {
55
+ throw new Error('Invalid --map-base-url flag. The mapping <url>:<folder> requires a valid http/https url and valid folder with delimiter `:`.');
56
+ }
57
+ return mapBaseURLToFolder;
58
+ }
@@ -0,0 +1,4 @@
1
+ export declare function promptForAsyncAPIPath(): Promise<string>;
2
+ export declare function promptForLanguage(defaultLanguage: string): Promise<string>;
3
+ export declare function promptForTemplate(): Promise<string>;
4
+ export declare function promptForOutputDir(): Promise<string>;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.promptForAsyncAPIPath = promptForAsyncAPIPath;
4
+ exports.promptForLanguage = promptForLanguage;
5
+ exports.promptForTemplate = promptForTemplate;
6
+ exports.promptForOutputDir = promptForOutputDir;
7
+ const tslib_1 = require("tslib");
8
+ const fs_1 = tslib_1.__importDefault(require("fs"));
9
+ const prompts_1 = require("@clack/prompts");
10
+ const OPERATION_CANCELLED_ERROR = 'Operation cancelled';
11
+ function promptForAsyncAPIPath() {
12
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
13
+ const asyncapi = yield (0, prompts_1.text)({
14
+ message: 'Please provide the path to the AsyncAPI document',
15
+ placeholder: 'asyncapi.yaml',
16
+ defaultValue: 'asyncapi.yaml',
17
+ validate(value) {
18
+ if (!value) {
19
+ return 'The path to the AsyncAPI document is required';
20
+ }
21
+ else if (!fs_1.default.existsSync(value)) {
22
+ return 'The file does not exist';
23
+ }
24
+ }
25
+ });
26
+ if ((0, prompts_1.isCancel)(asyncapi)) {
27
+ throw new Error(OPERATION_CANCELLED_ERROR);
28
+ }
29
+ return asyncapi;
30
+ });
31
+ }
32
+ function promptForLanguage(defaultLanguage) {
33
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
34
+ const language = yield (0, prompts_1.text)({
35
+ message: 'Please provide the language of the generated client',
36
+ placeholder: defaultLanguage,
37
+ defaultValue: defaultLanguage,
38
+ });
39
+ if ((0, prompts_1.isCancel)(language)) {
40
+ throw new Error(OPERATION_CANCELLED_ERROR);
41
+ }
42
+ return language;
43
+ });
44
+ }
45
+ function promptForTemplate() {
46
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
47
+ const template = yield (0, prompts_1.text)({
48
+ message: 'Please provide the name of the generator template',
49
+ placeholder: '@asyncapi/html-template',
50
+ defaultValue: '@asyncapi/html-template',
51
+ });
52
+ if ((0, prompts_1.isCancel)(template)) {
53
+ throw new Error(OPERATION_CANCELLED_ERROR);
54
+ }
55
+ return template;
56
+ });
57
+ }
58
+ function promptForOutputDir() {
59
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
60
+ const output = yield (0, prompts_1.text)({
61
+ message: 'Please provide the output directory',
62
+ placeholder: './docs',
63
+ validate(value) {
64
+ if (!value) {
65
+ return 'The output directory is required';
66
+ }
67
+ else if (typeof value !== 'string') {
68
+ return 'The output directory must be a string';
69
+ }
70
+ }
71
+ });
72
+ if ((0, prompts_1.isCancel)(output)) {
73
+ throw new Error(OPERATION_CANCELLED_ERROR);
74
+ }
75
+ return output;
76
+ });
77
+ }
@@ -0,0 +1,2 @@
1
+ export declare function registryURLParser(input?: string): void;
2
+ export declare function registryValidation(registryUrl?: string, registryAuth?: string, registryToken?: string): Promise<void>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registryURLParser = registryURLParser;
4
+ exports.registryValidation = registryValidation;
5
+ const tslib_1 = require("tslib");
6
+ function registryURLParser(input) {
7
+ if (!input) {
8
+ return;
9
+ }
10
+ const isURL = /^https?:/;
11
+ if (!isURL.test(input.toLowerCase())) {
12
+ throw new Error('Invalid --registry-url flag. The param requires a valid http/https url.');
13
+ }
14
+ }
15
+ function registryValidation(registryUrl, registryAuth, registryToken) {
16
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
17
+ if (!registryUrl) {
18
+ return;
19
+ }
20
+ try {
21
+ const response = yield fetch(registryUrl);
22
+ if (response.status === 401 && !registryAuth && !registryToken) {
23
+ throw new Error('You Need to pass either registryAuth in username:password encoded in Base64 or need to pass registryToken');
24
+ }
25
+ }
26
+ catch (error) {
27
+ throw new Error(`Can't fetch registryURL: ${registryUrl}`);
28
+ }
29
+ });
30
+ }
@@ -0,0 +1,51 @@
1
+ export declare function isLocalTemplate(templatePath: string): Promise<boolean>;
2
+ export declare class Watcher {
3
+ private watchers;
4
+ private fsWait;
5
+ private filesChanged;
6
+ private ignorePaths;
7
+ private paths;
8
+ constructor(paths: string | string[], ignorePaths: string[]);
9
+ /**
10
+ * Initiates watch on a path.
11
+ * @param {*} path The path the watcher is listening on.
12
+ * @param {*} changeCallback Callback to call when changed occur.
13
+ * @param {*} errorCallback Calback to call when it is no longer possible to watch a file.
14
+ */
15
+ initiateWatchOnPath(path: string, changeCallback: any, errorCallback: any): void;
16
+ /**
17
+ * This method initiate the watch for change in all files
18
+ * @param {*} callback called when the file(s) change
19
+ */
20
+ watch(changeCallback: any, errorCallback: any): Promise<void>;
21
+ /**
22
+ * Should be called when a file has changed one way or another.
23
+ * @param {*} listenerPath The path the watcher is listening on.
24
+ * @param {*} changedPath The file/dir that was changed
25
+ * @param {*} eventType What kind of change
26
+ * @param {*} changeCallback Callback to call when changed occur.
27
+ * @param {*} errorCallback Calback to call when it is no longer possible to watch a file.
28
+ */
29
+ fileChanged(listenerPath: string, changedPath: string, eventType: string, changeCallback: any, errorCallback: any): void;
30
+ /**
31
+ * Convert the event type to a more usefull one.
32
+ * @param {*} currentEventType The current event type (from chokidar)
33
+ */
34
+ convertEventType(currentEventType: string): string;
35
+ /**
36
+ * Get all paths which no longer exists
37
+ */
38
+ getAllNonExistingPaths(): any[];
39
+ /**
40
+ * Closes all active watchers down.
41
+ */
42
+ closeWatchers(): void;
43
+ /**
44
+ * Closes an active watcher down.
45
+ * @param {*} path The path to close the watcher for.
46
+ */
47
+ closeWatcher(path: string): void;
48
+ }
49
+ export declare function runWatchMode(thisArg: any, asyncapi: string, template: string, output: string, generatorClass: any, // ✅ passed in
50
+ watchHandler: (changedFiles: Record<string, any>) => Promise<void>): Promise<void>;
51
+ export declare function watcherHandler(thisArg: any, asyncapi: string, template: string, output: string, options: Record<string, any>, genOption: any, interactive: boolean): (changedFiles: Record<string, any>) => Promise<void>;