@alagoni97/cli 0.72.1

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 (244) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +336 -0
  3. package/bin/dev.cmd +3 -0
  4. package/bin/dev.mjs +3 -0
  5. package/bin/run.cmd +3 -0
  6. package/bin/run.mjs +4 -0
  7. package/dist/LoggingInterface.d.ts +123 -0
  8. package/dist/LoggingInterface.js +300 -0
  9. package/dist/PersistedConfig.d.ts +46 -0
  10. package/dist/PersistedConfig.js +94 -0
  11. package/dist/browser/adapters/output.d.ts +69 -0
  12. package/dist/browser/adapters/output.js +91 -0
  13. package/dist/browser/config.d.ts +18 -0
  14. package/dist/browser/config.js +59 -0
  15. package/dist/browser/generate.d.ts +20 -0
  16. package/dist/browser/generate.js +129 -0
  17. package/dist/browser/index.d.ts +17 -0
  18. package/dist/browser/index.js +26 -0
  19. package/dist/browser/parser.d.ts +9 -0
  20. package/dist/browser/parser.js +61 -0
  21. package/dist/browser/shims/asyncapi-parser.d.ts +30 -0
  22. package/dist/browser/shims/asyncapi-parser.js +52 -0
  23. package/dist/browser/shims/fs.d.ts +190 -0
  24. package/dist/browser/shims/fs.js +188 -0
  25. package/dist/browser/shims/json-schema-ref-parser.d.ts +73 -0
  26. package/dist/browser/shims/json-schema-ref-parser.js +246 -0
  27. package/dist/browser/shims/swagger-parser.d.ts +20 -0
  28. package/dist/browser/shims/swagger-parser.js +40 -0
  29. package/dist/codegen/configurationSchemaBuilder.d.ts +15 -0
  30. package/dist/codegen/configurationSchemaBuilder.js +48 -0
  31. package/dist/codegen/configurations.d.ts +29 -0
  32. package/dist/codegen/configurations.js +260 -0
  33. package/dist/codegen/detection.d.ts +19 -0
  34. package/dist/codegen/detection.js +174 -0
  35. package/dist/codegen/errors.d.ts +111 -0
  36. package/dist/codegen/errors.js +352 -0
  37. package/dist/codegen/generators/generic/custom.d.ts +75 -0
  38. package/dist/codegen/generators/generic/custom.js +66 -0
  39. package/dist/codegen/generators/index.d.ts +14 -0
  40. package/dist/codegen/generators/index.js +42 -0
  41. package/dist/codegen/generators/typescript/channels/asyncapi.d.ts +10 -0
  42. package/dist/codegen/generators/typescript/channels/asyncapi.js +131 -0
  43. package/dist/codegen/generators/typescript/channels/index.d.ts +8 -0
  44. package/dist/codegen/generators/typescript/channels/index.js +142 -0
  45. package/dist/codegen/generators/typescript/channels/openapi.d.ts +9 -0
  46. package/dist/codegen/generators/typescript/channels/openapi.js +168 -0
  47. package/dist/codegen/generators/typescript/channels/protocols/amqp/index.d.ts +7 -0
  48. package/dist/codegen/generators/typescript/channels/protocols/amqp/index.js +149 -0
  49. package/dist/codegen/generators/typescript/channels/protocols/amqp/publishExchange.d.ts +5 -0
  50. package/dist/codegen/generators/typescript/channels/protocols/amqp/publishExchange.js +106 -0
  51. package/dist/codegen/generators/typescript/channels/protocols/amqp/publishQueue.d.ts +3 -0
  52. package/dist/codegen/generators/typescript/channels/protocols/amqp/publishQueue.js +102 -0
  53. package/dist/codegen/generators/typescript/channels/protocols/amqp/subscribeQueue.d.ts +3 -0
  54. package/dist/codegen/generators/typescript/channels/protocols/amqp/subscribeQueue.js +133 -0
  55. package/dist/codegen/generators/typescript/channels/protocols/eventsource/express.d.ts +3 -0
  56. package/dist/codegen/generators/typescript/channels/protocols/eventsource/express.js +100 -0
  57. package/dist/codegen/generators/typescript/channels/protocols/eventsource/fetch.d.ts +5 -0
  58. package/dist/codegen/generators/typescript/channels/protocols/eventsource/fetch.js +144 -0
  59. package/dist/codegen/generators/typescript/channels/protocols/eventsource/index.d.ts +6 -0
  60. package/dist/codegen/generators/typescript/channels/protocols/eventsource/index.js +132 -0
  61. package/dist/codegen/generators/typescript/channels/protocols/http/client.d.ts +10 -0
  62. package/dist/codegen/generators/typescript/channels/protocols/http/client.js +224 -0
  63. package/dist/codegen/generators/typescript/channels/protocols/http/common-types.d.ts +14 -0
  64. package/dist/codegen/generators/typescript/channels/protocols/http/common-types.js +800 -0
  65. package/dist/codegen/generators/typescript/channels/protocols/http/index.d.ts +8 -0
  66. package/dist/codegen/generators/typescript/channels/protocols/http/index.js +96 -0
  67. package/dist/codegen/generators/typescript/channels/protocols/http/security.d.ts +48 -0
  68. package/dist/codegen/generators/typescript/channels/protocols/http/security.js +491 -0
  69. package/dist/codegen/generators/typescript/channels/protocols/kafka/index.d.ts +6 -0
  70. package/dist/codegen/generators/typescript/channels/protocols/kafka/index.js +127 -0
  71. package/dist/codegen/generators/typescript/channels/protocols/kafka/publish.d.ts +3 -0
  72. package/dist/codegen/generators/typescript/channels/protocols/kafka/publish.js +108 -0
  73. package/dist/codegen/generators/typescript/channels/protocols/kafka/subscribe.d.ts +3 -0
  74. package/dist/codegen/generators/typescript/channels/protocols/kafka/subscribe.js +154 -0
  75. package/dist/codegen/generators/typescript/channels/protocols/kafka/utils.d.ts +11 -0
  76. package/dist/codegen/generators/typescript/channels/protocols/kafka/utils.js +58 -0
  77. package/dist/codegen/generators/typescript/channels/protocols/mqtt/index.d.ts +6 -0
  78. package/dist/codegen/generators/typescript/channels/protocols/mqtt/index.js +113 -0
  79. package/dist/codegen/generators/typescript/channels/protocols/mqtt/publish.d.ts +3 -0
  80. package/dist/codegen/generators/typescript/channels/protocols/mqtt/publish.js +99 -0
  81. package/dist/codegen/generators/typescript/channels/protocols/mqtt/subscribe.d.ts +3 -0
  82. package/dist/codegen/generators/typescript/channels/protocols/mqtt/subscribe.js +186 -0
  83. package/dist/codegen/generators/typescript/channels/protocols/nats/corePublish.d.ts +3 -0
  84. package/dist/codegen/generators/typescript/channels/protocols/nats/corePublish.js +90 -0
  85. package/dist/codegen/generators/typescript/channels/protocols/nats/coreReply.d.ts +3 -0
  86. package/dist/codegen/generators/typescript/channels/protocols/nats/coreReply.js +142 -0
  87. package/dist/codegen/generators/typescript/channels/protocols/nats/coreRequest.d.ts +3 -0
  88. package/dist/codegen/generators/typescript/channels/protocols/nats/coreRequest.js +100 -0
  89. package/dist/codegen/generators/typescript/channels/protocols/nats/coreSubscribe.d.ts +3 -0
  90. package/dist/codegen/generators/typescript/channels/protocols/nats/coreSubscribe.js +143 -0
  91. package/dist/codegen/generators/typescript/channels/protocols/nats/index.d.ts +11 -0
  92. package/dist/codegen/generators/typescript/channels/protocols/nats/index.js +224 -0
  93. package/dist/codegen/generators/typescript/channels/protocols/nats/jetstreamPublish.d.ts +3 -0
  94. package/dist/codegen/generators/typescript/channels/protocols/nats/jetstreamPublish.js +89 -0
  95. package/dist/codegen/generators/typescript/channels/protocols/nats/jetstreamPullSubscribe.d.ts +3 -0
  96. package/dist/codegen/generators/typescript/channels/protocols/nats/jetstreamPullSubscribe.js +146 -0
  97. package/dist/codegen/generators/typescript/channels/protocols/nats/jetstreamPushSubscription.d.ts +3 -0
  98. package/dist/codegen/generators/typescript/channels/protocols/nats/jetstreamPushSubscription.js +149 -0
  99. package/dist/codegen/generators/typescript/channels/protocols/nats/utils.d.ts +35 -0
  100. package/dist/codegen/generators/typescript/channels/protocols/nats/utils.js +120 -0
  101. package/dist/codegen/generators/typescript/channels/protocols/websocket/index.d.ts +7 -0
  102. package/dist/codegen/generators/typescript/channels/protocols/websocket/index.js +152 -0
  103. package/dist/codegen/generators/typescript/channels/protocols/websocket/publish.d.ts +3 -0
  104. package/dist/codegen/generators/typescript/channels/protocols/websocket/publish.js +64 -0
  105. package/dist/codegen/generators/typescript/channels/protocols/websocket/register.d.ts +3 -0
  106. package/dist/codegen/generators/typescript/channels/protocols/websocket/register.js +115 -0
  107. package/dist/codegen/generators/typescript/channels/protocols/websocket/subscribe.d.ts +3 -0
  108. package/dist/codegen/generators/typescript/channels/protocols/websocket/subscribe.js +151 -0
  109. package/dist/codegen/generators/typescript/channels/types.d.ts +181 -0
  110. package/dist/codegen/generators/typescript/channels/types.js +131 -0
  111. package/dist/codegen/generators/typescript/channels/utils.d.ts +64 -0
  112. package/dist/codegen/generators/typescript/channels/utils.js +163 -0
  113. package/dist/codegen/generators/typescript/client/index.d.ts +8 -0
  114. package/dist/codegen/generators/typescript/client/index.js +61 -0
  115. package/dist/codegen/generators/typescript/client/protocols/nats/corePublish.d.ts +6 -0
  116. package/dist/codegen/generators/typescript/client/protocols/nats/corePublish.js +53 -0
  117. package/dist/codegen/generators/typescript/client/protocols/nats/coreSubscribe.d.ts +6 -0
  118. package/dist/codegen/generators/typescript/client/protocols/nats/coreSubscribe.js +90 -0
  119. package/dist/codegen/generators/typescript/client/protocols/nats/jetStreamPullSubscription.d.ts +6 -0
  120. package/dist/codegen/generators/typescript/client/protocols/nats/jetStreamPullSubscription.js +83 -0
  121. package/dist/codegen/generators/typescript/client/protocols/nats/jetstreamPublish.d.ts +6 -0
  122. package/dist/codegen/generators/typescript/client/protocols/nats/jetstreamPublish.js +54 -0
  123. package/dist/codegen/generators/typescript/client/protocols/nats/jetstreamPushSubscription.d.ts +6 -0
  124. package/dist/codegen/generators/typescript/client/protocols/nats/jetstreamPushSubscription.js +82 -0
  125. package/dist/codegen/generators/typescript/client/protocols/nats.d.ts +2 -0
  126. package/dist/codegen/generators/typescript/client/protocols/nats.js +182 -0
  127. package/dist/codegen/generators/typescript/client/types.d.ts +49 -0
  128. package/dist/codegen/generators/typescript/client/types.js +37 -0
  129. package/dist/codegen/generators/typescript/headers.d.ts +54 -0
  130. package/dist/codegen/generators/typescript/headers.js +138 -0
  131. package/dist/codegen/generators/typescript/index.d.ts +7 -0
  132. package/dist/codegen/generators/typescript/index.js +38 -0
  133. package/dist/codegen/generators/typescript/models.d.ts +21761 -0
  134. package/dist/codegen/generators/typescript/models.js +64 -0
  135. package/dist/codegen/generators/typescript/parameters.d.ts +37 -0
  136. package/dist/codegen/generators/typescript/parameters.js +101 -0
  137. package/dist/codegen/generators/typescript/payloads.d.ts +73 -0
  138. package/dist/codegen/generators/typescript/payloads.js +250 -0
  139. package/dist/codegen/generators/typescript/types.d.ts +34 -0
  140. package/dist/codegen/generators/typescript/types.js +70 -0
  141. package/dist/codegen/generators/typescript/utils.d.ts +38 -0
  142. package/dist/codegen/generators/typescript/utils.js +195 -0
  143. package/dist/codegen/index.d.ts +7 -0
  144. package/dist/codegen/index.js +38 -0
  145. package/dist/codegen/inputs/asyncapi/generators/headers.d.ts +3 -0
  146. package/dist/codegen/inputs/asyncapi/generators/headers.js +41 -0
  147. package/dist/codegen/inputs/asyncapi/generators/parameters.d.ts +14 -0
  148. package/dist/codegen/inputs/asyncapi/generators/parameters.js +120 -0
  149. package/dist/codegen/inputs/asyncapi/generators/payloads.d.ts +16 -0
  150. package/dist/codegen/inputs/asyncapi/generators/payloads.js +124 -0
  151. package/dist/codegen/inputs/asyncapi/generators/types.d.ts +9 -0
  152. package/dist/codegen/inputs/asyncapi/generators/types.js +61 -0
  153. package/dist/codegen/inputs/asyncapi/index.d.ts +1 -0
  154. package/dist/codegen/inputs/asyncapi/index.js +7 -0
  155. package/dist/codegen/inputs/asyncapi/parser.d.ts +4 -0
  156. package/dist/codegen/inputs/asyncapi/parser.js +90 -0
  157. package/dist/codegen/inputs/index.d.ts +3 -0
  158. package/dist/codegen/inputs/index.js +19 -0
  159. package/dist/codegen/inputs/jsonschema/generators/index.d.ts +1 -0
  160. package/dist/codegen/inputs/jsonschema/generators/index.js +5 -0
  161. package/dist/codegen/inputs/jsonschema/generators/models.d.ts +7 -0
  162. package/dist/codegen/inputs/jsonschema/generators/models.js +26 -0
  163. package/dist/codegen/inputs/jsonschema/index.d.ts +1 -0
  164. package/dist/codegen/inputs/jsonschema/index.js +7 -0
  165. package/dist/codegen/inputs/jsonschema/parser.d.ts +31 -0
  166. package/dist/codegen/inputs/jsonschema/parser.js +128 -0
  167. package/dist/codegen/inputs/openapi/generators/headers.d.ts +3 -0
  168. package/dist/codegen/inputs/openapi/generators/headers.js +101 -0
  169. package/dist/codegen/inputs/openapi/generators/parameters.d.ts +10 -0
  170. package/dist/codegen/inputs/openapi/generators/parameters.js +852 -0
  171. package/dist/codegen/inputs/openapi/generators/payloads.d.ts +3 -0
  172. package/dist/codegen/inputs/openapi/generators/payloads.js +231 -0
  173. package/dist/codegen/inputs/openapi/generators/types.d.ts +9 -0
  174. package/dist/codegen/inputs/openapi/generators/types.js +86 -0
  175. package/dist/codegen/inputs/openapi/index.d.ts +2 -0
  176. package/dist/codegen/inputs/openapi/index.js +8 -0
  177. package/dist/codegen/inputs/openapi/parser.d.ts +4 -0
  178. package/dist/codegen/inputs/openapi/parser.js +115 -0
  179. package/dist/codegen/inputs/openapi/security.d.ts +56 -0
  180. package/dist/codegen/inputs/openapi/security.js +193 -0
  181. package/dist/codegen/modelina/index.d.ts +2 -0
  182. package/dist/codegen/modelina/index.js +20 -0
  183. package/dist/codegen/modelina/presets/index.d.ts +3 -0
  184. package/dist/codegen/modelina/presets/index.js +14 -0
  185. package/dist/codegen/modelina/presets/primitives.d.ts +34 -0
  186. package/dist/codegen/modelina/presets/primitives.js +211 -0
  187. package/dist/codegen/modelina/presets/union.d.ts +33 -0
  188. package/dist/codegen/modelina/presets/union.js +197 -0
  189. package/dist/codegen/modelina/presets/validation.d.ts +66 -0
  190. package/dist/codegen/modelina/presets/validation.js +183 -0
  191. package/dist/codegen/modelina/types.d.ts +61845 -0
  192. package/dist/codegen/modelina/types.js +412 -0
  193. package/dist/codegen/output/filesystem.d.ts +30 -0
  194. package/dist/codegen/output/filesystem.js +61 -0
  195. package/dist/codegen/output/index.d.ts +16 -0
  196. package/dist/codegen/output/index.js +57 -0
  197. package/dist/codegen/output/memory.d.ts +54 -0
  198. package/dist/codegen/output/memory.js +81 -0
  199. package/dist/codegen/output/modelina.d.ts +30 -0
  200. package/dist/codegen/output/modelina.js +30 -0
  201. package/dist/codegen/output/types.d.ts +47 -0
  202. package/dist/codegen/output/types.js +6 -0
  203. package/dist/codegen/renderer.d.ts +13 -0
  204. package/dist/codegen/renderer.js +309 -0
  205. package/dist/codegen/schemaPostProcess.d.ts +25 -0
  206. package/dist/codegen/schemaPostProcess.js +38 -0
  207. package/dist/codegen/types.d.ts +285187 -0
  208. package/dist/codegen/types.js +177 -0
  209. package/dist/codegen/utils.d.ts +126 -0
  210. package/dist/codegen/utils.js +373 -0
  211. package/dist/commands/base.d.ts +18 -0
  212. package/dist/commands/base.js +59 -0
  213. package/dist/commands/generate.d.ts +46 -0
  214. package/dist/commands/generate.js +305 -0
  215. package/dist/commands/init.d.ts +55 -0
  216. package/dist/commands/init.js +544 -0
  217. package/dist/commands/telemetry.d.ts +25 -0
  218. package/dist/commands/telemetry.js +115 -0
  219. package/dist/index.d.ts +29 -0
  220. package/dist/index.js +35 -0
  221. package/dist/telemetry/anonymize.d.ts +19 -0
  222. package/dist/telemetry/anonymize.js +73 -0
  223. package/dist/telemetry/collector.d.ts +26 -0
  224. package/dist/telemetry/collector.js +57 -0
  225. package/dist/telemetry/config.d.ts +32 -0
  226. package/dist/telemetry/config.js +97 -0
  227. package/dist/telemetry/events.d.ts +72 -0
  228. package/dist/telemetry/events.js +5 -0
  229. package/dist/telemetry/index.d.ts +46 -0
  230. package/dist/telemetry/index.js +91 -0
  231. package/dist/telemetry/notice.d.ts +8 -0
  232. package/dist/telemetry/notice.js +50 -0
  233. package/dist/telemetry/sender.d.ts +14 -0
  234. package/dist/telemetry/sender.js +125 -0
  235. package/dist/utils/gitignore.d.ts +66 -0
  236. package/dist/utils/gitignore.js +111 -0
  237. package/dist/utils/inputSource.d.ts +3 -0
  238. package/dist/utils/inputSource.js +26 -0
  239. package/dist/utils/refResolvers.d.ts +29 -0
  240. package/dist/utils/refResolvers.js +83 -0
  241. package/dist/utils/remoteFetch.d.ts +18 -0
  242. package/dist/utils/remoteFetch.js +64 -0
  243. package/oclif.manifest.json +510 -0
  244. package/package.json +155 -0
@@ -0,0 +1,38 @@
1
+ import { ConstrainedObjectModel, typeScriptDefaultPropertyKeyConstraints, TypeScriptOptions } from '@asyncapi/modelina';
2
+ import { DeepPartial } from '../../utils';
3
+ /**
4
+ * Cast JSON schema variable to typescript type
5
+ *
6
+ * @param {string} jsonSchemaType
7
+ * @param {string} variableToCast
8
+ */
9
+ export declare function castToTsType(jsonSchemaType: string, variableToCast: string): string;
10
+ /**
11
+ * Realize parameters without using types and without trailing comma
12
+ *
13
+ * @param {Object.<string, ChannelParameter>} parameters
14
+ * @returns
15
+ */
16
+ export declare function realizeParametersForChannelWithoutType(parameters: ConstrainedObjectModel): string;
17
+ /**
18
+ * Realize parameters using types without trailing comma
19
+ * @param {Object.<string, ChannelParameter>} channelParameters parameters to realize
20
+ * @param {boolean} required optional or required
21
+ */
22
+ export declare function realizeParametersForChannel(channelParameters: ConstrainedObjectModel, required?: boolean): string;
23
+ /**
24
+ * Convert RFC 6570 URI with parameters to NATS topic.
25
+ */
26
+ export declare function realizeChannelName(channelName: string, parameters?: ConstrainedObjectModel): string;
27
+ /**
28
+ * Realize channel name to NATS topic without replacing parameters
29
+ *
30
+ * @param {string} channelName
31
+ */
32
+ export declare function realizeChannelNameWithoutParameters(channelName: string): string;
33
+ export declare function camelCase(value: string): string;
34
+ export declare function pascalCase(value: string): string;
35
+ export declare function findRegexFromChannel(channel: string): string;
36
+ export declare const RESERVED_TYPESCRIPT_KEYWORDS: string[];
37
+ export declare const defaultCodegenTypescriptModelinaOptions: DeepPartial<TypeScriptOptions>;
38
+ export { typeScriptDefaultPropertyKeyConstraints };
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.typeScriptDefaultPropertyKeyConstraints = exports.defaultCodegenTypescriptModelinaOptions = exports.RESERVED_TYPESCRIPT_KEYWORDS = exports.findRegexFromChannel = exports.pascalCase = exports.camelCase = exports.realizeChannelNameWithoutParameters = exports.realizeChannelName = exports.realizeParametersForChannel = exports.realizeParametersForChannelWithoutType = exports.castToTsType = void 0;
4
+ const modelina_1 = require("@asyncapi/modelina");
5
+ Object.defineProperty(exports, "typeScriptDefaultPropertyKeyConstraints", { enumerable: true, get: function () { return modelina_1.typeScriptDefaultPropertyKeyConstraints; } });
6
+ /**
7
+ * Cast JSON schema variable to typescript type
8
+ *
9
+ * @param {string} jsonSchemaType
10
+ * @param {string} variableToCast
11
+ */
12
+ function castToTsType(jsonSchemaType, variableToCast) {
13
+ switch (jsonSchemaType.toLowerCase()) {
14
+ case 'string': {
15
+ return `"" + ${variableToCast}`;
16
+ }
17
+ case 'integer':
18
+ case 'number': {
19
+ return `Number(${variableToCast})`;
20
+ }
21
+ case 'boolean': {
22
+ return `Boolean(${variableToCast})`;
23
+ }
24
+ default: {
25
+ throw new Error(`Parameter type not supported - ${jsonSchemaType}`);
26
+ }
27
+ }
28
+ }
29
+ exports.castToTsType = castToTsType;
30
+ /**
31
+ * Realize parameters without using types and without trailing comma
32
+ *
33
+ * @param {Object.<string, ChannelParameter>} parameters
34
+ * @returns
35
+ */
36
+ function realizeParametersForChannelWithoutType(parameters) {
37
+ let returnString = '';
38
+ for (const paramName in Object.keys(parameters.properties)) {
39
+ returnString += `${paramName},`;
40
+ }
41
+ if (returnString.length > 0) {
42
+ returnString = returnString.slice(0, -1);
43
+ }
44
+ return returnString;
45
+ }
46
+ exports.realizeParametersForChannelWithoutType = realizeParametersForChannelWithoutType;
47
+ /**
48
+ * Realize parameters using types without trailing comma
49
+ * @param {Object.<string, ChannelParameter>} channelParameters parameters to realize
50
+ * @param {boolean} required optional or required
51
+ */
52
+ function realizeParametersForChannel(channelParameters, required = true) {
53
+ let returnString = '';
54
+ for (const parameter of Object.values(channelParameters.properties)) {
55
+ returnString += `${realizeParameterForChannelWithType(parameter.propertyName, parameter.property.type, required)},`;
56
+ }
57
+ if (returnString.length > 0) {
58
+ returnString = returnString.slice(0, -1);
59
+ }
60
+ return returnString;
61
+ }
62
+ exports.realizeParametersForChannel = realizeParametersForChannel;
63
+ /**
64
+ * Realize a single parameter with its type
65
+ *
66
+ * @param {string} parameterName parameter name to use as
67
+ * @param {ChannelParameter} parameter which contains the schema
68
+ * @param {boolean} required should it be optional or required
69
+ */
70
+ function realizeParameterForChannelWithType(parameterName, parameterType, required = true) {
71
+ const requiredType = required ? '' : '?';
72
+ return `${parameterName}${requiredType}: ${parameterType})}`;
73
+ }
74
+ /**
75
+ * Convert RFC 6570 URI with parameters to NATS topic.
76
+ */
77
+ function realizeChannelName(channelName, parameters) {
78
+ let returnString = `\`${channelName}\``;
79
+ returnString = returnString.replace(/\//g, '.');
80
+ for (const paramName in parameters) {
81
+ returnString = returnString.replace(`{${paramName}}`, `\${${paramName}}`);
82
+ }
83
+ return returnString;
84
+ }
85
+ exports.realizeChannelName = realizeChannelName;
86
+ /**
87
+ * Realize channel name to NATS topic without replacing parameters
88
+ *
89
+ * @param {string} channelName
90
+ */
91
+ function realizeChannelNameWithoutParameters(channelName) {
92
+ return realizeChannelName(channelName);
93
+ }
94
+ exports.realizeChannelNameWithoutParameters = realizeChannelNameWithoutParameters;
95
+ function camelCase(value) {
96
+ return modelina_1.FormatHelpers.toCamelCase(value);
97
+ }
98
+ exports.camelCase = camelCase;
99
+ function pascalCase(value) {
100
+ return modelina_1.FormatHelpers.toPascalCase(value);
101
+ }
102
+ exports.pascalCase = pascalCase;
103
+ function findRegexFromChannel(channel) {
104
+ let topicWithWildcardGroup = channel.replace(/\//g, '\\/');
105
+ topicWithWildcardGroup = topicWithWildcardGroup.replace(/{[^}]+}/g, '([^.]*)');
106
+ return `/^${topicWithWildcardGroup}$/`;
107
+ }
108
+ exports.findRegexFromChannel = findRegexFromChannel;
109
+ exports.RESERVED_TYPESCRIPT_KEYWORDS = [
110
+ 'break',
111
+ 'case',
112
+ 'catch',
113
+ 'class',
114
+ 'const',
115
+ 'continue',
116
+ 'debugger',
117
+ 'default',
118
+ 'delete',
119
+ 'do',
120
+ 'else',
121
+ 'enum',
122
+ 'export',
123
+ 'extends',
124
+ 'false',
125
+ 'finally',
126
+ 'for',
127
+ 'function',
128
+ 'if',
129
+ 'import',
130
+ 'in',
131
+ 'instanceof',
132
+ 'new',
133
+ 'null',
134
+ 'return',
135
+ 'super',
136
+ 'switch',
137
+ 'this',
138
+ 'throw',
139
+ 'true',
140
+ 'try',
141
+ 'typeof',
142
+ 'var',
143
+ 'void',
144
+ 'while',
145
+ 'with',
146
+ 'any',
147
+ 'boolean',
148
+ 'constructor',
149
+ 'declare',
150
+ 'get',
151
+ 'module',
152
+ 'require',
153
+ 'number',
154
+ 'set',
155
+ 'string',
156
+ 'symbol',
157
+ 'type',
158
+ 'from',
159
+ 'of',
160
+ // Strict mode reserved words
161
+ 'arguments',
162
+ 'as',
163
+ 'implements',
164
+ 'interface',
165
+ 'let',
166
+ 'package',
167
+ 'private',
168
+ 'protected',
169
+ 'public',
170
+ 'static',
171
+ 'yield'
172
+ ];
173
+ exports.defaultCodegenTypescriptModelinaOptions = {
174
+ constraints: {
175
+ modelName: (0, modelina_1.typeScriptDefaultModelNameConstraints)({
176
+ NO_RESERVED_KEYWORDS: (name) => {
177
+ // Since all names are pascal we can ignore reserved keywords.
178
+ return name;
179
+ },
180
+ NO_SPECIAL_CHAR: (name) => {
181
+ // Looks nicer with no special cases at all
182
+ return name.replace(/\W/g, ' ');
183
+ }
184
+ }),
185
+ propertyKey: (0, modelina_1.typeScriptDefaultPropertyKeyConstraints)({
186
+ NO_RESERVED_KEYWORDS: (value) => {
187
+ return (0, modelina_1.NO_RESERVED_KEYWORDS)(value, (word) =>
188
+ // Filter out all the keywords that does not ruin the code
189
+ (0, modelina_1.checkForReservedKeyword)(word, exports.RESERVED_TYPESCRIPT_KEYWORDS.filter((filteredValue) => {
190
+ return filteredValue !== 'type';
191
+ }), true));
192
+ }
193
+ })
194
+ }
195
+ };
@@ -0,0 +1,7 @@
1
+ export { loadAsyncapi } from './inputs/asyncapi';
2
+ export { loadOpenapi } from './inputs/openapi';
3
+ export { loadJsonSchema } from './inputs/jsonschema';
4
+ export { defaultTypeScriptChannelsGenerator, defaultTypeScriptParametersOptions, defaultTypeScriptPayloadGenerator, defaultTypeScriptClientGenerator, defaultCustomGenerator, defaultTypeScriptHeadersOptions, TypeScriptClientGenerator, TypeScriptChannelsGenerator, TypeScriptPayloadGenerator, TypescriptParametersGenerator, TypescriptHeadersGenerator, generateTypeScriptChannels, generateTypescriptParameters, generateTypescriptPayload, generateTypeScriptClient, generateTypescriptHeaders, runGenerators, CustomGenerator, ChannelFunctionTypes } from './generators';
5
+ export { RunGeneratorContext, SupportedLanguages, PresetTypes, TheCodegenConfiguration, TheCodegenConfigurationInternal, zodAsyncAPICodegenConfiguration, zodAsyncAPIGenerators, zodAsyncAPITypeScriptGenerators, zodTheCodegenConfiguration, Generators, GenericCodegenContext, LoadArgument, ParameterRenderType, PayloadRenderType, SingleFunctionRenderType, ChannelPayload, GeneratorsInternal, HeadersRenderType, GenerationResult, GeneratorResult } from './types';
6
+ export { getDefaultConfiguration, realizeConfiguration, loadAndRealizeConfigFile, loadConfigFile, realizeGeneratorContext } from './configurations';
7
+ export { renderGenerator, determineRenderGraph, renderGraph } from './renderer';
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderGraph = exports.determineRenderGraph = exports.renderGenerator = exports.realizeGeneratorContext = exports.loadConfigFile = exports.loadAndRealizeConfigFile = exports.realizeConfiguration = exports.getDefaultConfiguration = exports.zodTheCodegenConfiguration = exports.zodAsyncAPITypeScriptGenerators = exports.zodAsyncAPIGenerators = exports.zodAsyncAPICodegenConfiguration = exports.ChannelFunctionTypes = exports.runGenerators = exports.generateTypescriptHeaders = exports.generateTypeScriptClient = exports.generateTypescriptPayload = exports.generateTypescriptParameters = exports.generateTypeScriptChannels = exports.defaultTypeScriptHeadersOptions = exports.defaultCustomGenerator = exports.defaultTypeScriptClientGenerator = exports.defaultTypeScriptPayloadGenerator = exports.defaultTypeScriptParametersOptions = exports.defaultTypeScriptChannelsGenerator = exports.loadJsonSchema = exports.loadOpenapi = exports.loadAsyncapi = void 0;
4
+ var asyncapi_1 = require("./inputs/asyncapi");
5
+ Object.defineProperty(exports, "loadAsyncapi", { enumerable: true, get: function () { return asyncapi_1.loadAsyncapi; } });
6
+ var openapi_1 = require("./inputs/openapi");
7
+ Object.defineProperty(exports, "loadOpenapi", { enumerable: true, get: function () { return openapi_1.loadOpenapi; } });
8
+ var jsonschema_1 = require("./inputs/jsonschema");
9
+ Object.defineProperty(exports, "loadJsonSchema", { enumerable: true, get: function () { return jsonschema_1.loadJsonSchema; } });
10
+ var generators_1 = require("./generators");
11
+ Object.defineProperty(exports, "defaultTypeScriptChannelsGenerator", { enumerable: true, get: function () { return generators_1.defaultTypeScriptChannelsGenerator; } });
12
+ Object.defineProperty(exports, "defaultTypeScriptParametersOptions", { enumerable: true, get: function () { return generators_1.defaultTypeScriptParametersOptions; } });
13
+ Object.defineProperty(exports, "defaultTypeScriptPayloadGenerator", { enumerable: true, get: function () { return generators_1.defaultTypeScriptPayloadGenerator; } });
14
+ Object.defineProperty(exports, "defaultTypeScriptClientGenerator", { enumerable: true, get: function () { return generators_1.defaultTypeScriptClientGenerator; } });
15
+ Object.defineProperty(exports, "defaultCustomGenerator", { enumerable: true, get: function () { return generators_1.defaultCustomGenerator; } });
16
+ Object.defineProperty(exports, "defaultTypeScriptHeadersOptions", { enumerable: true, get: function () { return generators_1.defaultTypeScriptHeadersOptions; } });
17
+ Object.defineProperty(exports, "generateTypeScriptChannels", { enumerable: true, get: function () { return generators_1.generateTypeScriptChannels; } });
18
+ Object.defineProperty(exports, "generateTypescriptParameters", { enumerable: true, get: function () { return generators_1.generateTypescriptParameters; } });
19
+ Object.defineProperty(exports, "generateTypescriptPayload", { enumerable: true, get: function () { return generators_1.generateTypescriptPayload; } });
20
+ Object.defineProperty(exports, "generateTypeScriptClient", { enumerable: true, get: function () { return generators_1.generateTypeScriptClient; } });
21
+ Object.defineProperty(exports, "generateTypescriptHeaders", { enumerable: true, get: function () { return generators_1.generateTypescriptHeaders; } });
22
+ Object.defineProperty(exports, "runGenerators", { enumerable: true, get: function () { return generators_1.runGenerators; } });
23
+ Object.defineProperty(exports, "ChannelFunctionTypes", { enumerable: true, get: function () { return generators_1.ChannelFunctionTypes; } });
24
+ var types_1 = require("./types");
25
+ Object.defineProperty(exports, "zodAsyncAPICodegenConfiguration", { enumerable: true, get: function () { return types_1.zodAsyncAPICodegenConfiguration; } });
26
+ Object.defineProperty(exports, "zodAsyncAPIGenerators", { enumerable: true, get: function () { return types_1.zodAsyncAPIGenerators; } });
27
+ Object.defineProperty(exports, "zodAsyncAPITypeScriptGenerators", { enumerable: true, get: function () { return types_1.zodAsyncAPITypeScriptGenerators; } });
28
+ Object.defineProperty(exports, "zodTheCodegenConfiguration", { enumerable: true, get: function () { return types_1.zodTheCodegenConfiguration; } });
29
+ var configurations_1 = require("./configurations");
30
+ Object.defineProperty(exports, "getDefaultConfiguration", { enumerable: true, get: function () { return configurations_1.getDefaultConfiguration; } });
31
+ Object.defineProperty(exports, "realizeConfiguration", { enumerable: true, get: function () { return configurations_1.realizeConfiguration; } });
32
+ Object.defineProperty(exports, "loadAndRealizeConfigFile", { enumerable: true, get: function () { return configurations_1.loadAndRealizeConfigFile; } });
33
+ Object.defineProperty(exports, "loadConfigFile", { enumerable: true, get: function () { return configurations_1.loadConfigFile; } });
34
+ Object.defineProperty(exports, "realizeGeneratorContext", { enumerable: true, get: function () { return configurations_1.realizeGeneratorContext; } });
35
+ var renderer_1 = require("./renderer");
36
+ Object.defineProperty(exports, "renderGenerator", { enumerable: true, get: function () { return renderer_1.renderGenerator; } });
37
+ Object.defineProperty(exports, "determineRenderGraph", { enumerable: true, get: function () { return renderer_1.determineRenderGraph; } });
38
+ Object.defineProperty(exports, "renderGraph", { enumerable: true, get: function () { return renderer_1.renderGraph; } });
@@ -0,0 +1,3 @@
1
+ import { AsyncAPIDocumentInterface } from '@asyncapi/parser';
2
+ import { ProcessedHeadersData } from '../../../generators/typescript/headers';
3
+ export declare function processAsyncAPIHeaders(asyncapiDocument: AsyncAPIDocumentInterface): ProcessedHeadersData;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processAsyncAPIHeaders = void 0;
4
+ const utils_1 = require("../../../generators/typescript/utils");
5
+ const modelina_1 = require("@asyncapi/modelina");
6
+ // AsyncAPI input processor
7
+ function processAsyncAPIHeaders(asyncapiDocument) {
8
+ const channelHeaders = {};
9
+ for (const channel of asyncapiDocument.allChannels().all()) {
10
+ const messages = channel.messages().all();
11
+ let hasHeadersInChannel = false;
12
+ for (const message of messages) {
13
+ if (message.hasHeaders()) {
14
+ let schemaObj;
15
+ const schema = modelina_1.AsyncAPIInputProcessor.convertToInternalSchema(message.headers());
16
+ if (typeof schema === 'boolean') {
17
+ schemaObj = schema;
18
+ }
19
+ else {
20
+ schemaObj = {
21
+ type: 'object',
22
+ ...schema,
23
+ $id: (0, utils_1.pascalCase)(`${message.id()}_headers`),
24
+ $schema: 'http://json-schema.org/draft-07/schema'
25
+ };
26
+ }
27
+ channelHeaders[channel.id()] = {
28
+ schema: schemaObj,
29
+ schemaId: (0, utils_1.pascalCase)(`${message.id()}_headers`)
30
+ };
31
+ hasHeadersInChannel = true;
32
+ break; // Use first message with headers for the channel
33
+ }
34
+ }
35
+ if (!hasHeadersInChannel) {
36
+ channelHeaders[channel.id()] = undefined;
37
+ }
38
+ }
39
+ return { channelHeaders };
40
+ }
41
+ exports.processAsyncAPIHeaders = processAsyncAPIHeaders;
@@ -0,0 +1,14 @@
1
+ import { AsyncAPIDocumentInterface } from '@asyncapi/parser';
2
+ import { ConstrainedObjectModel, TypeScriptFileGenerator } from '@asyncapi/modelina';
3
+ export interface ProcessedParameterSchemaData {
4
+ channelParameters: Record<string, {
5
+ schema: any;
6
+ schemaId: string;
7
+ }>;
8
+ }
9
+ export declare function processAsyncAPIParameters(asyncapiDocument: AsyncAPIDocumentInterface): Promise<ProcessedParameterSchemaData>;
10
+ /**
11
+ * Component which contains the parameter unwrapping functionality.
12
+ */
13
+ export declare function unwrap(channelParameters: ConstrainedObjectModel): string;
14
+ export declare function createAsyncAPIGenerator(): TypeScriptFileGenerator;
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAsyncAPIGenerator = exports.unwrap = exports.processAsyncAPIParameters = void 0;
4
+ const utils_1 = require("../../../generators/typescript/utils");
5
+ const utils_2 = require("../../../utils");
6
+ const modelina_1 = require("@asyncapi/modelina");
7
+ // AsyncAPI parameter processor
8
+ async function processAsyncAPIParameters(asyncapiDocument) {
9
+ const channelParameters = {};
10
+ for (const channel of asyncapiDocument.allChannels().all()) {
11
+ const parameters = channel.parameters().all();
12
+ if (parameters.length > 0) {
13
+ const channelName = (0, utils_2.findNameFromChannel)(channel);
14
+ const schemaId = (0, utils_1.pascalCase)(`${channelName}_parameters`);
15
+ const schemaObj = {
16
+ type: 'object',
17
+ $id: schemaId,
18
+ $schema: 'http://json-schema.org/draft-07/schema',
19
+ required: [],
20
+ properties: {},
21
+ additionalProperties: false,
22
+ 'x-channel-address': channel.address()
23
+ };
24
+ for (const parameter of parameters) {
25
+ schemaObj.properties[parameter.id()] = parameter.schema()?.json();
26
+ schemaObj.required.push(parameter.id());
27
+ }
28
+ channelParameters[channel.id()] = {
29
+ schema: schemaObj,
30
+ schemaId
31
+ };
32
+ }
33
+ }
34
+ return {
35
+ channelParameters
36
+ };
37
+ }
38
+ exports.processAsyncAPIParameters = processAsyncAPIParameters;
39
+ /**
40
+ * Component which contains the parameter unwrapping functionality.
41
+ */
42
+ function unwrap(channelParameters) {
43
+ // Nothing to unwrap if no parameters are used
44
+ if (Object.keys(channelParameters.properties).length === 0) {
45
+ return '';
46
+ }
47
+ // Use channel to iterate over matches as channelParameters.properties might be in incorrect order.
48
+ const parameterReplacement = Object.values(channelParameters.properties).map((parameter) => {
49
+ const variableName = `${parameter.propertyName}Match`;
50
+ return `const ${variableName} = match[sequentialParameters.indexOf('{${parameter.unconstrainedPropertyName}}')+1];
51
+ if(${variableName} && ${variableName} !== '') {
52
+ parameters.${parameter.propertyName} = ${variableName} as any
53
+ } else {
54
+ throw new Error(\`Parameter: '${parameter.propertyName}' is not valid in ${channelParameters.name}. Aborting parameter extracting! \`)
55
+ }`;
56
+ });
57
+ const parameterInitializer = Object.values(channelParameters.properties)
58
+ .filter((parameter) => parameter.property.options.const?.value === undefined)
59
+ .map((parameter) => {
60
+ if (parameter.property.options.isNullable) {
61
+ return `${parameter.propertyName}: null`;
62
+ }
63
+ const property = parameter.property;
64
+ if (property instanceof modelina_1.ConstrainedReferenceModel &&
65
+ property.ref instanceof modelina_1.ConstrainedEnumModel) {
66
+ return `${parameter.propertyName}: ${property.ref.values[0].value}`;
67
+ }
68
+ return `${parameter.propertyName}: ''`;
69
+ });
70
+ return `const parameters = new ${channelParameters.name}({${parameterInitializer.join(', ')}});
71
+ const match = msgSubject.match(regex);
72
+ const sequentialParameters: string[] = channel.match(/\\{(\\w+)\\}/g) || [];
73
+
74
+ if (match) {
75
+ ${parameterReplacement.join('\n')}
76
+ } else {
77
+ throw new Error(\`Unable to find parameters in channel/topic, topic was \${channel}\`)
78
+ }
79
+ return parameters;`;
80
+ }
81
+ exports.unwrap = unwrap;
82
+ /**
83
+ * Generate additional content for AsyncAPI channel parameter classes
84
+ */
85
+ function generateAsyncAPIParameterMethods(model) {
86
+ const parameters = Object.entries(model.properties).map(([, parameter]) => {
87
+ return `channel = channel.replace(/\\{${parameter.unconstrainedPropertyName}\\}/g, this.${parameter.propertyName})`;
88
+ });
89
+ return `/**
90
+ * Realize the channel/topic with the parameters added to this class.
91
+ */
92
+ public getChannelWithParameters(channel: string) {
93
+ ${parameters.length > 0 ? parameters.join(';\n ') : '// No parameters to replace'};
94
+ return channel;
95
+ }
96
+
97
+ public static createFromChannel(msgSubject: string, channel: string, regex: RegExp): ${model.type} {
98
+ ${unwrap(model)}
99
+ }`;
100
+ }
101
+ function createAsyncAPIGenerator() {
102
+ return new modelina_1.TypeScriptFileGenerator({
103
+ ...utils_1.defaultCodegenTypescriptModelinaOptions,
104
+ enumType: 'union',
105
+ useJavascriptReservedKeywords: false,
106
+ presets: [
107
+ modelina_1.TS_DESCRIPTION_PRESET,
108
+ {
109
+ class: {
110
+ additionalContent: ({ content, model }) => {
111
+ const additionalMethods = generateAsyncAPIParameterMethods(model);
112
+ return `${content}
113
+ ${additionalMethods}`;
114
+ }
115
+ }
116
+ }
117
+ ]
118
+ });
119
+ }
120
+ exports.createAsyncAPIGenerator = createAsyncAPIGenerator;
@@ -0,0 +1,16 @@
1
+ import { AsyncAPIDocumentInterface } from '@asyncapi/parser';
2
+ export interface ProcessedPayloadSchemaData {
3
+ channelPayloads: Record<string, {
4
+ schema: any;
5
+ schemaId: string;
6
+ }>;
7
+ operationPayloads: Record<string, {
8
+ schema: any;
9
+ schemaId: string;
10
+ }>;
11
+ otherPayloads: {
12
+ schema: any;
13
+ schemaId: string;
14
+ }[];
15
+ }
16
+ export declare function processAsyncAPIPayloads(asyncapiDocument: AsyncAPIDocumentInterface): Promise<ProcessedPayloadSchemaData>;
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processAsyncAPIPayloads = void 0;
4
+ /* eslint-disable security/detect-object-injection */
5
+ const modelina_1 = require("@asyncapi/modelina");
6
+ const utils_1 = require("../../../generators/typescript/utils");
7
+ const utils_2 = require("../../../utils");
8
+ // eslint-disable-next-line sonarjs/cognitive-complexity
9
+ async function processAsyncAPIPayloads(asyncapiDocument) {
10
+ const channelPayloads = {};
11
+ const operationPayloads = {};
12
+ const otherPayloads = [];
13
+ const allChannels = asyncapiDocument.allChannels().all();
14
+ const processMessages = (messagesToProcess, preId) => {
15
+ let schemaObj = {
16
+ type: 'object',
17
+ $schema: 'http://json-schema.org/draft-07/schema'
18
+ };
19
+ let id = preId;
20
+ const messages = messagesToProcess;
21
+ if (messages.length > 1) {
22
+ schemaObj.oneOf = [];
23
+ schemaObj['$id'] = (0, utils_1.pascalCase)(`${preId}_Payload`);
24
+ for (const message of messages) {
25
+ if (!message.hasPayload()) {
26
+ break;
27
+ }
28
+ const schema = modelina_1.AsyncAPIInputProcessor.convertToInternalSchema(message.payload());
29
+ const payloadId = message.id() ?? message.name();
30
+ if (typeof schema === 'boolean') {
31
+ schemaObj.oneOf.push(schema);
32
+ }
33
+ else {
34
+ const bindings = message.bindings();
35
+ const statusCodesBindings = bindings?.get('http');
36
+ const statusCodes = statusCodesBindings?.json()['statusCode'];
37
+ if (statusCodesBindings && statusCodes) {
38
+ schemaObj['x-modelina-has-status-codes'] = true;
39
+ schema['x-modelina-status-codes'] = statusCodes;
40
+ }
41
+ schemaObj.oneOf.push({
42
+ ...schema,
43
+ $id: payloadId
44
+ });
45
+ }
46
+ }
47
+ }
48
+ else if (messages.length === 1) {
49
+ const message = messages[0];
50
+ if (message.hasPayload()) {
51
+ const schema = modelina_1.AsyncAPIInputProcessor.convertToInternalSchema(message.payload());
52
+ if (typeof schema === 'boolean') {
53
+ schemaObj = schema;
54
+ }
55
+ else {
56
+ id =
57
+ message.id() ??
58
+ message.name() ??
59
+ schema['x-modelgen-inferred-name'];
60
+ if (id.includes('AnonymousSchema_')) {
61
+ id = (0, utils_1.pascalCase)(`${preId}_Payload`);
62
+ }
63
+ schemaObj = {
64
+ ...schemaObj,
65
+ ...schema,
66
+ $id: id
67
+ };
68
+ }
69
+ }
70
+ else {
71
+ return;
72
+ }
73
+ }
74
+ else {
75
+ return;
76
+ }
77
+ return {
78
+ schema: schemaObj,
79
+ schemaId: id ?? schemaObj.$id ?? (0, utils_1.pascalCase)(`${preId}_Payload`)
80
+ };
81
+ };
82
+ if (asyncapiDocument.allChannels().all().length > 0) {
83
+ for (const channel of asyncapiDocument.allChannels().all()) {
84
+ // Process operations
85
+ for (const operation of channel.operations().all()) {
86
+ const operationMessages = operation.messages().all();
87
+ const operationReply = operation.reply();
88
+ if (operationReply) {
89
+ const operationReplyId = (0, utils_2.findReplyId)(operation, operationReply, channel);
90
+ const operationReplySchema = processMessages(operationReply.messages().all(), operationReplyId);
91
+ if (operationReplySchema) {
92
+ operationPayloads[operationReplyId] = operationReplySchema;
93
+ }
94
+ }
95
+ const operationId = (0, utils_2.findOperationId)(operation, channel);
96
+ const operationSchema = processMessages(operationMessages, operationId);
97
+ if (operationSchema) {
98
+ operationPayloads[operationId] = operationSchema;
99
+ }
100
+ }
101
+ // Process channel messages
102
+ const channelSchema = processMessages(channel.messages().all(), (0, utils_2.findNameFromChannel)(channel));
103
+ if (channelSchema) {
104
+ channelPayloads[channel.id()] = channelSchema;
105
+ }
106
+ }
107
+ }
108
+ else {
109
+ // Handle case where there are no channels but there might be components
110
+ for (const message of asyncapiDocument.allMessages()) {
111
+ const schemaId = message.id() ?? message.name();
112
+ const schemaObj = processMessages([message], schemaId);
113
+ if (schemaObj) {
114
+ otherPayloads.push(schemaObj);
115
+ }
116
+ }
117
+ }
118
+ return {
119
+ channelPayloads,
120
+ operationPayloads,
121
+ otherPayloads: (0, utils_2.onlyUnique)(otherPayloads)
122
+ };
123
+ }
124
+ exports.processAsyncAPIPayloads = processAsyncAPIPayloads;
@@ -0,0 +1,9 @@
1
+ import { AsyncAPIDocumentInterface } from '@asyncapi/parser';
2
+ import { TypescriptTypesGeneratorInternal } from '../../../generators/typescript/types';
3
+ import { GeneratedFile } from '../../../types';
4
+ export interface TypesGeneratorResult {
5
+ result: string;
6
+ /** Generated files with path and content */
7
+ files: GeneratedFile[];
8
+ }
9
+ export declare function generateAsyncAPITypes(asyncapiDocument: AsyncAPIDocumentInterface, generator: TypescriptTypesGeneratorInternal): Promise<TypesGeneratorResult>;