@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,230 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Watcher = void 0;
4
+ exports.isLocalTemplate = isLocalTemplate;
5
+ exports.runWatchMode = runWatchMode;
6
+ exports.watcherHandler = watcherHandler;
7
+ const tslib_1 = require("tslib");
8
+ // eslint-disable security/detect-object-injection
9
+ const fs = tslib_1.__importStar(require("fs"));
10
+ const util_1 = require("util");
11
+ const chokidar_1 = tslib_1.__importDefault(require("chokidar"));
12
+ const lstat = (0, util_1.promisify)(fs.lstat);
13
+ const path_1 = tslib_1.__importDefault(require("path"));
14
+ const picocolors_1 = require("picocolors");
15
+ const SpecificationFile_1 = require("../../domains/models/SpecificationFile");
16
+ const generator_error_1 = require("../../errors/generator-error");
17
+ function isLocalTemplate(templatePath) {
18
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
19
+ const stats = yield lstat(templatePath);
20
+ return stats.isSymbolicLink();
21
+ });
22
+ }
23
+ class Watcher {
24
+ constructor(paths, ignorePaths) {
25
+ if (Array.isArray(paths)) {
26
+ this.paths = paths;
27
+ }
28
+ else {
29
+ this.paths = [paths];
30
+ }
31
+ //Ensure all backwards slashes are replaced with forward slash based on the requirement from chokidar
32
+ for (const pathIndex in this.paths) {
33
+ const path = this.paths[String(pathIndex)];
34
+ this.paths[String(pathIndex)] = path.replace(/[\\]/g, '/');
35
+ }
36
+ this.fsWait = false;
37
+ this.watchers = {};
38
+ this.filesChanged = {};
39
+ this.ignorePaths = ignorePaths;
40
+ }
41
+ /**
42
+ * Initiates watch on a path.
43
+ * @param {*} path The path the watcher is listening on.
44
+ * @param {*} changeCallback Callback to call when changed occur.
45
+ * @param {*} errorCallback Calback to call when it is no longer possible to watch a file.
46
+ */
47
+ initiateWatchOnPath(path, changeCallback, errorCallback) {
48
+ const watcher = chokidar_1.default.watch(path, { ignoreInitial: true, ignored: this.ignorePaths });
49
+ watcher.on('all', (eventType, changedPath) => this.fileChanged(path, changedPath, eventType, changeCallback, errorCallback));
50
+ this.watchers[String(path)] = watcher;
51
+ }
52
+ /**
53
+ * This method initiate the watch for change in all files
54
+ * @param {*} callback called when the file(s) change
55
+ */
56
+ watch(changeCallback, errorCallback) {
57
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
58
+ for (const index in this.paths) {
59
+ const path = this.paths[String(index)];
60
+ this.initiateWatchOnPath(path, changeCallback, errorCallback);
61
+ }
62
+ });
63
+ }
64
+ /**
65
+ * Should be called when a file has changed one way or another.
66
+ * @param {*} listenerPath The path the watcher is listening on.
67
+ * @param {*} changedPath The file/dir that was changed
68
+ * @param {*} eventType What kind of change
69
+ * @param {*} changeCallback Callback to call when changed occur.
70
+ * @param {*} errorCallback Calback to call when it is no longer possible to watch a file.
71
+ */
72
+ fileChanged(listenerPath, changedPath, eventType, changeCallback, errorCallback) {
73
+ try {
74
+ if (fs.existsSync(listenerPath)) {
75
+ const newEventType = this.convertEventType(eventType);
76
+ this.filesChanged[String(changedPath)] = { eventType: newEventType, path: changedPath };
77
+ // Since multiple changes can occur at the same time, lets wait a bit before processing.
78
+ if (this.fsWait) {
79
+ return;
80
+ }
81
+ this.fsWait = setTimeout(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
82
+ yield changeCallback(this.filesChanged);
83
+ this.filesChanged = {};
84
+ this.fsWait = false;
85
+ }), 500);
86
+ }
87
+ }
88
+ catch (e) {
89
+ // File was not, find all files that are missing..
90
+ const unknownPaths = this.getAllNonExistingPaths();
91
+ this.closeWatchers();
92
+ errorCallback(unknownPaths);
93
+ }
94
+ }
95
+ /**
96
+ * Convert the event type to a more usefull one.
97
+ * @param {*} currentEventType The current event type (from chokidar)
98
+ */
99
+ convertEventType(currentEventType) {
100
+ let newEventType = currentEventType;
101
+ //Change the naming of the event type
102
+ switch (newEventType) {
103
+ case 'unlink':
104
+ case 'unlinkDir':
105
+ newEventType = 'removed';
106
+ break;
107
+ case 'addDir':
108
+ case 'add':
109
+ newEventType = 'added';
110
+ break;
111
+ case 'change':
112
+ newEventType = 'changed';
113
+ break;
114
+ case 'rename':
115
+ newEventType = 'renamed';
116
+ break;
117
+ default:
118
+ newEventType = `unknown (${currentEventType})`;
119
+ }
120
+ return newEventType;
121
+ }
122
+ /**
123
+ * Get all paths which no longer exists
124
+ */
125
+ getAllNonExistingPaths() {
126
+ const unknownPaths = [];
127
+ for (const index in this.paths) {
128
+ const path = this.paths[String(index)];
129
+ if (!fs.existsSync(path)) {
130
+ unknownPaths.push(path);
131
+ }
132
+ }
133
+ return unknownPaths;
134
+ }
135
+ /**
136
+ * Closes all active watchers down.
137
+ */
138
+ closeWatchers() {
139
+ this.filesChanged = {};
140
+ for (const index in this.paths) {
141
+ const path = this.paths[String(index)];
142
+ this.closeWatcher(path);
143
+ }
144
+ }
145
+ /**
146
+ * Closes an active watcher down.
147
+ * @param {*} path The path to close the watcher for.
148
+ */
149
+ closeWatcher(path) {
150
+ // Ensure if called before `watch` to do nothing
151
+ if (path !== null) {
152
+ const watcher = this.watchers[String(path)];
153
+ if (watcher !== null) {
154
+ watcher.close();
155
+ this.watchers[String(path)] = null;
156
+ }
157
+ else {
158
+ //Watcher not found for path
159
+ }
160
+ }
161
+ }
162
+ }
163
+ exports.Watcher = Watcher;
164
+ function runWatchMode(thisArg, asyncapi, template, output, generatorClass, // ✅ passed in
165
+ watchHandler) {
166
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
167
+ const specification = yield (0, SpecificationFile_1.load)(asyncapi);
168
+ const watchDir = path_1.default.resolve(template);
169
+ const outputPath = path_1.default.resolve(watchDir, output);
170
+ const transpiledTemplatePath = path_1.default.resolve(watchDir, generatorClass.TRANSPILED_TEMPLATE_LOCATION); // ✅ use dynamic class
171
+ const ignorePaths = [outputPath, transpiledTemplatePath];
172
+ const specificationFile = specification.getFilePath();
173
+ // Template name is needed as it is not always a part of the cli command
174
+ // There is a use case that you run generator from a root of the template with `./` path
175
+ let templateName = '';
176
+ try {
177
+ // eslint-disable-next-line
178
+ templateName = require(path_1.default.resolve(watchDir, 'package.json')).name;
179
+ }
180
+ catch (_) {
181
+ // intentional
182
+ }
183
+ let watcher;
184
+ if (specificationFile) {
185
+ thisArg.log(`[WATCHER] Watching for changes in the template directory ${(0, picocolors_1.magenta)(watchDir)} and in the AsyncAPI file ${(0, picocolors_1.magenta)(specificationFile)}`);
186
+ watcher = new Watcher([specificationFile, watchDir], ignorePaths);
187
+ }
188
+ else {
189
+ thisArg.log(`[WATCHER] Watching for changes in the template directory ${(0, picocolors_1.magenta)(watchDir)}`);
190
+ watcher = new Watcher(watchDir, ignorePaths);
191
+ }
192
+ if (!(yield thisArg.isLocalTemplate(path_1.default.resolve(generatorClass.DEFAULT_TEMPLATES_DIR, templateName)))) {
193
+ thisArg.warn(`WARNING: ${template} is a remote template. Changes may be lost on subsequent installations.`);
194
+ }
195
+ yield watcher.watch(watchHandler, (paths) => {
196
+ thisArg.error(`[WATCHER] Could not find the file path ${paths}, are you sure it still exists? If it has been deleted or moved please rerun the generator.`, {
197
+ exit: 1,
198
+ });
199
+ });
200
+ });
201
+ }
202
+ function watcherHandler(thisArg, asyncapi, template, output, options, genOption, interactive) {
203
+ return (changedFiles) => tslib_1.__awaiter(this, void 0, void 0, function* () {
204
+ console.clear();
205
+ console.log('[WATCHER] Change detected');
206
+ for (const [, value] of Object.entries(changedFiles)) {
207
+ let eventText;
208
+ switch (value.eventType) {
209
+ case 'changed':
210
+ eventText = (0, picocolors_1.green)(value.eventType);
211
+ break;
212
+ case 'removed':
213
+ eventText = (0, picocolors_1.red)(value.eventType);
214
+ break;
215
+ case 'renamed':
216
+ eventText = (0, picocolors_1.yellow)(value.eventType);
217
+ break;
218
+ default:
219
+ eventText = (0, picocolors_1.yellow)(value.eventType);
220
+ }
221
+ thisArg.log(`\t${(0, picocolors_1.magenta)(value.path)} was ${eventText}`);
222
+ }
223
+ try {
224
+ yield thisArg.generate(asyncapi, template, output, options, genOption, interactive);
225
+ }
226
+ catch (err) {
227
+ throw new generator_error_1.GeneratorError(err);
228
+ }
229
+ });
230
+ }
@@ -0,0 +1,6 @@
1
+ import winston from 'winston';
2
+ declare const logger: winston.Logger;
3
+ declare const stream: {
4
+ write: (message: string) => void;
5
+ };
6
+ export { logger, stream };
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stream = exports.logger = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const config_1 = tslib_1.__importDefault(require("config"));
6
+ const fs_1 = tslib_1.__importDefault(require("fs"));
7
+ const path_1 = tslib_1.__importDefault(require("path"));
8
+ const winston_1 = tslib_1.__importDefault(require("winston"));
9
+ const logDir = path_1.default.join(__dirname, config_1.default.has('log.dir') ? config_1.default.get('log.dir') : 'logs');
10
+ if (!fs_1.default.existsSync(logDir)) {
11
+ fs_1.default.mkdirSync(logDir);
12
+ }
13
+ /*
14
+ * Log Level
15
+ * error: 0, warn: 1, info: 2, http: 3, verbose: 4, debug: 5, silly: 6
16
+ */
17
+ const logger = winston_1.default.createLogger({
18
+ format: winston_1.default.format.combine(winston_1.default.format.timestamp({
19
+ format: 'YYYY-MM-DD HH:mm:ss',
20
+ }),
21
+ // Define log format
22
+ winston_1.default.format.printf(({ timestamp, level, message }) => `${timestamp} ${level}: ${message}`)),
23
+ });
24
+ exports.logger = logger;
25
+ logger.add(new winston_1.default.transports.Console({
26
+ format: winston_1.default.format.combine(winston_1.default.format.splat(), winston_1.default.format.colorize()),
27
+ }));
28
+ const stream = {
29
+ write: (message) => {
30
+ logger.info(message.substring(0, message.lastIndexOf('\n')));
31
+ },
32
+ };
33
+ exports.stream = stream;
@@ -0,0 +1 @@
1
+ export declare function retrieveLangauge(content: string): 'json' | 'yaml';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.retrieveLangauge = retrieveLangauge;
4
+ function retrieveLangauge(content) {
5
+ if (content.trim()[0] === '{') {
6
+ return 'json';
7
+ }
8
+ return 'yaml';
9
+ }
@@ -0,0 +1,2 @@
1
+ import { AsyncAPIDocumentInterface } from '@asyncapi/parser/cjs/models';
2
+ export declare function calculateScore(document: AsyncAPIDocumentInterface | undefined): Promise<number>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateScore = calculateScore;
4
+ const tslib_1 = require("tslib");
5
+ function calculateScore(document) {
6
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
7
+ let scoreEvaluate = 0;
8
+ if (document === null || document === void 0 ? void 0 : document.info().hasDescription()) {
9
+ scoreEvaluate += 0.15;
10
+ }
11
+ if (document === null || document === void 0 ? void 0 : document.info().hasLicense()) {
12
+ scoreEvaluate += 0.25;
13
+ }
14
+ if (!(document === null || document === void 0 ? void 0 : document.servers().isEmpty())) {
15
+ scoreEvaluate += 0.25;
16
+ }
17
+ if (!(document === null || document === void 0 ? void 0 : document.channels().isEmpty())) {
18
+ scoreEvaluate += 0.35;
19
+ }
20
+ return (scoreEvaluate / 1) * 100;
21
+ });
22
+ }
@@ -0,0 +1,2 @@
1
+ export declare function createTempDirectory(): Promise<string>;
2
+ export declare function removeTempDirectory(tmpDir: string): Promise<void>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTempDirectory = createTempDirectory;
4
+ exports.removeTempDirectory = removeTempDirectory;
5
+ const tslib_1 = require("tslib");
6
+ const os_1 = tslib_1.__importDefault(require("os"));
7
+ const fs_1 = tslib_1.__importStar(require("fs"));
8
+ const path_1 = tslib_1.__importDefault(require("path"));
9
+ const uuid_1 = require("uuid");
10
+ const logger_1 = require("./logger");
11
+ function createTempDirectory() {
12
+ return fs_1.promises.mkdtemp(path_1.default.join(os_1.default.tmpdir(), (0, uuid_1.v4)()));
13
+ }
14
+ function removeTempDirectory(tmpDir) {
15
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
16
+ try {
17
+ // eslint-disable-next-line no-unused-expressions
18
+ tmpDir &&
19
+ fs_1.default.existsSync(tmpDir) &&
20
+ (yield fs_1.promises.rm(tmpDir, { recursive: true }));
21
+ }
22
+ catch (e) {
23
+ logger_1.logger.error(`An error has occurred while removing the temp folder at ${tmpDir}. Please remove it manually. Error: ${e}`);
24
+ }
25
+ });
26
+ }