@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.
- package/LICENSE +201 -0
- package/README.md +117 -0
- package/assets/create-template/templates/default/asyncapi.yaml +34 -0
- package/assets/create-template/templates/default/package-lock.json +4062 -0
- package/assets/create-template/templates/default/package.json +10 -0
- package/assets/create-template/templates/default/readme.md +4 -0
- package/assets/create-template/templates/default/template/index.js +11 -0
- package/assets/examples/adeo-kafka-request-reply-asyncapi.yml +298 -0
- package/assets/examples/anyof-asyncapi.yml +36 -0
- package/assets/examples/application-headers-asyncapi.yml +86 -0
- package/assets/examples/correlation-id-asyncapi.yml +180 -0
- package/assets/examples/default-example.json +51 -0
- package/assets/examples/default-example.yaml +31 -0
- package/assets/examples/examples.json +82 -0
- package/assets/examples/gitter-streaming-asyncapi.yml +178 -0
- package/assets/examples/kraken-websocket-request-reply-message-filter-in-reply-asyncapi.yml +388 -0
- package/assets/examples/kraken-websocket-request-reply-multiple-channels-asyncapi.yml +394 -0
- package/assets/examples/mercure-asyncapi.yml +58 -0
- package/assets/examples/not-asyncapi.yml +29 -0
- package/assets/examples/oneof-asyncapi.yml +57 -0
- package/assets/examples/operation-security-asyncapi.yml +117 -0
- package/assets/examples/rpc-client-asyncapi.yml +72 -0
- package/assets/examples/rpc-server-asyncapi.yml +69 -0
- package/assets/examples/simple-asyncapi.yml +31 -0
- package/assets/examples/slack-rtm-asyncapi.yml +982 -0
- package/assets/examples/streetlights-kafka-asyncapi.yml +199 -0
- package/assets/examples/streetlights-mqtt-asyncapi.yml +253 -0
- package/assets/examples/streetlights-operation-security-asyncapi.yml +240 -0
- package/assets/examples/tutorial.yml +41 -0
- package/assets/examples/websocket-gemini-asyncapi.yml +301 -0
- package/assets/logo.png +0 -0
- package/assets/server-api.png +0 -0
- package/bin/dev +17 -0
- package/bin/dev.cmd +3 -0
- package/bin/run +12 -0
- package/bin/run.cmd +3 -0
- package/bin/run_bin +13 -0
- package/bin/run_bin.cmd +3 -0
- package/lib/apps/api/app.d.ts +15 -0
- package/lib/apps/api/app.js +91 -0
- package/lib/apps/api/configs/development.json +16 -0
- package/lib/apps/api/configs/production.json +16 -0
- package/lib/apps/api/configs/test.json +16 -0
- package/lib/apps/api/constants.d.ts +1 -0
- package/lib/apps/api/constants.js +4 -0
- package/lib/apps/api/controllers/bundle.controller.d.ts +7 -0
- package/lib/apps/api/controllers/bundle.controller.js +44 -0
- package/lib/apps/api/controllers/convert.controller.d.ts +11 -0
- package/lib/apps/api/controllers/convert.controller.js +69 -0
- package/lib/apps/api/controllers/diff.controller.d.ts +7 -0
- package/lib/apps/api/controllers/diff.controller.js +42 -0
- package/lib/apps/api/controllers/docs.controller.d.ts +6 -0
- package/lib/apps/api/controllers/docs.controller.js +24 -0
- package/lib/apps/api/controllers/generate.controller.d.ts +22 -0
- package/lib/apps/api/controllers/generate.controller.js +174 -0
- package/lib/apps/api/controllers/help.controller.d.ts +6 -0
- package/lib/apps/api/controllers/help.controller.js +101 -0
- package/lib/apps/api/controllers/parse.controller.d.ts +10 -0
- package/lib/apps/api/controllers/parse.controller.js +35 -0
- package/lib/apps/api/controllers/validate.controller.d.ts +10 -0
- package/lib/apps/api/controllers/validate.controller.js +50 -0
- package/lib/apps/api/controllers/version.controller.d.ts +8 -0
- package/lib/apps/api/controllers/version.controller.js +69 -0
- package/lib/apps/api/exceptions/problem.exception.d.ts +14 -0
- package/lib/apps/api/exceptions/problem.exception.js +10 -0
- package/lib/apps/api/index.d.ts +10 -0
- package/lib/apps/api/index.js +23 -0
- package/lib/apps/api/middlewares/logger.middleware.d.ts +2 -0
- package/lib/apps/api/middlewares/logger.middleware.js +12 -0
- package/lib/apps/api/middlewares/problem.middleware.d.ts +6 -0
- package/lib/apps/api/middlewares/problem.middleware.js +27 -0
- package/lib/apps/api/middlewares/validation.middleware.d.ts +12 -0
- package/lib/apps/api/middlewares/validation.middleware.js +245 -0
- package/lib/apps/api/server.d.ts +3 -0
- package/lib/apps/api/server.js +19 -0
- package/lib/apps/cli/commands/bundle.d.ts +15 -0
- package/lib/apps/cli/commands/bundle.js +75 -0
- package/lib/apps/cli/commands/config/analytics.d.ts +11 -0
- package/lib/apps/cli/commands/config/analytics.js +61 -0
- package/lib/apps/cli/commands/config/auth/add.d.ts +13 -0
- package/lib/apps/cli/commands/config/auth/add.js +68 -0
- package/lib/apps/cli/commands/config/context/add.d.ts +13 -0
- package/lib/apps/cli/commands/config/context/add.js +46 -0
- package/lib/apps/cli/commands/config/context/current.d.ts +8 -0
- package/lib/apps/cli/commands/config/context/current.js +37 -0
- package/lib/apps/cli/commands/config/context/edit.d.ts +12 -0
- package/lib/apps/cli/commands/config/context/edit.js +44 -0
- package/lib/apps/cli/commands/config/context/index.d.ts +5 -0
- package/lib/apps/cli/commands/config/context/index.js +16 -0
- package/lib/apps/cli/commands/config/context/init.d.ts +12 -0
- package/lib/apps/cli/commands/config/context/init.js +31 -0
- package/lib/apps/cli/commands/config/context/list.d.ts +8 -0
- package/lib/apps/cli/commands/config/context/list.js +36 -0
- package/lib/apps/cli/commands/config/context/remove.d.ts +11 -0
- package/lib/apps/cli/commands/config/context/remove.js +39 -0
- package/lib/apps/cli/commands/config/context/use.d.ts +11 -0
- package/lib/apps/cli/commands/config/context/use.js +40 -0
- package/lib/apps/cli/commands/config/index.d.ts +5 -0
- package/lib/apps/cli/commands/config/index.js +16 -0
- package/lib/apps/cli/commands/config/versions.d.ts +8 -0
- package/lib/apps/cli/commands/config/versions.js +56 -0
- package/lib/apps/cli/commands/convert.d.ts +21 -0
- package/lib/apps/cli/commands/convert.js +85 -0
- package/lib/apps/cli/commands/diff.d.ts +36 -0
- package/lib/apps/cli/commands/diff.js +335 -0
- package/lib/apps/cli/commands/format.d.ts +18 -0
- package/lib/apps/cli/commands/format.js +97 -0
- package/lib/apps/cli/commands/generate/client.d.ts +30 -0
- package/lib/apps/cli/commands/generate/client.js +94 -0
- package/lib/apps/cli/commands/generate/fromTemplate.d.ts +29 -0
- package/lib/apps/cli/commands/generate/fromTemplate.js +91 -0
- package/lib/apps/cli/commands/generate/index.d.ts +5 -0
- package/lib/apps/cli/commands/generate/index.js +15 -0
- package/lib/apps/cli/commands/generate/models.d.ts +16 -0
- package/lib/apps/cli/commands/generate/models.js +166 -0
- package/lib/apps/cli/commands/new/file.d.ts +16 -0
- package/lib/apps/cli/commands/new/file.js +180 -0
- package/lib/apps/cli/commands/new/index.d.ts +5 -0
- package/lib/apps/cli/commands/new/index.js +15 -0
- package/lib/apps/cli/commands/new/template.d.ts +18 -0
- package/lib/apps/cli/commands/new/template.js +102 -0
- package/lib/apps/cli/commands/optimize.d.ts +41 -0
- package/lib/apps/cli/commands/optimize.js +289 -0
- package/lib/apps/cli/commands/pretty.d.ts +12 -0
- package/lib/apps/cli/commands/pretty.js +70 -0
- package/lib/apps/cli/commands/start/api.d.ts +11 -0
- package/lib/apps/cli/commands/start/api.js +23 -0
- package/lib/apps/cli/commands/start/index.d.ts +5 -0
- package/lib/apps/cli/commands/start/index.js +15 -0
- package/lib/apps/cli/commands/start/preview.d.ts +17 -0
- package/lib/apps/cli/commands/start/preview.js +41 -0
- package/lib/apps/cli/commands/start/studio.d.ts +16 -0
- package/lib/apps/cli/commands/start/studio.js +94 -0
- package/lib/apps/cli/commands/validate.d.ts +23 -0
- package/lib/apps/cli/commands/validate.js +95 -0
- package/lib/apps/cli/internal/args/generate.args.d.ts +3 -0
- package/lib/apps/cli/internal/args/generate.args.js +10 -0
- package/lib/apps/cli/internal/base/BaseGeneratorCommand.d.ts +42 -0
- package/lib/apps/cli/internal/base/BaseGeneratorCommand.js +119 -0
- package/lib/apps/cli/internal/base.d.ts +20 -0
- package/lib/apps/cli/internal/base.js +173 -0
- package/lib/apps/cli/internal/flags/bundle.flags.d.ts +7 -0
- package/lib/apps/cli/internal/flags/bundle.flags.js +26 -0
- package/lib/apps/cli/internal/flags/config/analytics.flags.d.ts +6 -0
- package/lib/apps/cli/internal/flags/config/analytics.flags.js +24 -0
- package/lib/apps/cli/internal/flags/config/context.flags.d.ts +4 -0
- package/lib/apps/cli/internal/flags/config/context.flags.js +16 -0
- package/lib/apps/cli/internal/flags/convert.flags.d.ts +7 -0
- package/lib/apps/cli/internal/flags/convert.flags.js +32 -0
- package/lib/apps/cli/internal/flags/diff.flags.d.ts +13 -0
- package/lib/apps/cli/internal/flags/diff.flags.js +29 -0
- package/lib/apps/cli/internal/flags/format.flags.d.ts +6 -0
- package/lib/apps/cli/internal/flags/format.flags.js +22 -0
- package/lib/apps/cli/internal/flags/generate/clients.flags.d.ts +16 -0
- package/lib/apps/cli/internal/flags/generate/clients.flags.js +8 -0
- package/lib/apps/cli/internal/flags/generate/fromTemplate.flags.d.ts +16 -0
- package/lib/apps/cli/internal/flags/generate/fromTemplate.flags.js +8 -0
- package/lib/apps/cli/internal/flags/generate/models.flags.d.ts +1 -0
- package/lib/apps/cli/internal/flags/generate/models.flags.js +14 -0
- package/lib/apps/cli/internal/flags/generate/sharedFlags.d.ts +16 -0
- package/lib/apps/cli/internal/flags/generate/sharedFlags.js +57 -0
- package/lib/apps/cli/internal/flags/global.flags.d.ts +4 -0
- package/lib/apps/cli/internal/flags/global.flags.js +18 -0
- package/lib/apps/cli/internal/flags/new/file.flags.d.ts +8 -0
- package/lib/apps/cli/internal/flags/new/file.flags.js +20 -0
- package/lib/apps/cli/internal/flags/new/template.flags.d.ts +7 -0
- package/lib/apps/cli/internal/flags/new/template.flags.js +28 -0
- package/lib/apps/cli/internal/flags/optimize.flags.d.ts +21 -0
- package/lib/apps/cli/internal/flags/optimize.flags.js +51 -0
- package/lib/apps/cli/internal/flags/parser.flags.d.ts +10 -0
- package/lib/apps/cli/internal/flags/parser.flags.js +28 -0
- package/lib/apps/cli/internal/flags/pretty.flags.d.ts +3 -0
- package/lib/apps/cli/internal/flags/pretty.flags.js +13 -0
- package/lib/apps/cli/internal/flags/proxy.flags.d.ts +4 -0
- package/lib/apps/cli/internal/flags/proxy.flags.js +17 -0
- package/lib/apps/cli/internal/flags/start/api.flags.d.ts +5 -0
- package/lib/apps/cli/internal/flags/start/api.flags.js +20 -0
- package/lib/apps/cli/internal/flags/start/preview.flags.d.ts +9 -0
- package/lib/apps/cli/internal/flags/start/preview.flags.js +32 -0
- package/lib/apps/cli/internal/flags/start/studio.flags.d.ts +7 -0
- package/lib/apps/cli/internal/flags/start/studio.flags.js +25 -0
- package/lib/apps/cli/internal/flags/validate.flags.d.ts +11 -0
- package/lib/apps/cli/internal/flags/validate.flags.js +22 -0
- package/lib/apps/cli/internal/globals.d.ts +10 -0
- package/lib/apps/cli/internal/globals.js +46 -0
- package/lib/apps/cli/internal/hooks/command_not_found/myhook.d.ts +4 -0
- package/lib/apps/cli/internal/hooks/command_not_found/myhook.js +85 -0
- package/lib/domains/models/Context.d.ts +21 -0
- package/lib/domains/models/Context.js +321 -0
- package/lib/domains/models/Preview.d.ts +2 -0
- package/lib/domains/models/Preview.js +227 -0
- package/lib/domains/models/SpecificationFile.d.ts +40 -0
- package/lib/domains/models/SpecificationFile.js +295 -0
- package/lib/domains/models/Studio.d.ts +2 -0
- package/lib/domains/models/Studio.js +182 -0
- package/lib/domains/models/generate/ClientLanguages.d.ts +12 -0
- package/lib/domains/models/generate/ClientLanguages.js +17 -0
- package/lib/domains/models/generate/Flags.d.ts +9 -0
- package/lib/domains/models/generate/Flags.js +2 -0
- package/lib/domains/services/archiver.service.d.ts +17 -0
- package/lib/domains/services/archiver.service.js +53 -0
- package/lib/domains/services/base.service.d.ts +6 -0
- package/lib/domains/services/base.service.js +26 -0
- package/lib/domains/services/config.service.d.ts +42 -0
- package/lib/domains/services/config.service.js +95 -0
- package/lib/domains/services/convert.service.d.ts +12 -0
- package/lib/domains/services/convert.service.js +65 -0
- package/lib/domains/services/generator.service.d.ts +15 -0
- package/lib/domains/services/generator.service.js +75 -0
- package/lib/domains/services/validation.service.d.ts +54 -0
- package/lib/domains/services/validation.service.js +375 -0
- package/lib/errors/context-error.d.ts +26 -0
- package/lib/errors/context-error.js +71 -0
- package/lib/errors/diff-error.d.ts +9 -0
- package/lib/errors/diff-error.js +27 -0
- package/lib/errors/generator-error.d.ts +3 -0
- package/lib/errors/generator-error.js +11 -0
- package/lib/errors/specification-file.d.ts +18 -0
- package/lib/errors/specification-file.js +65 -0
- package/lib/errors/validation-error.d.ts +11 -0
- package/lib/errors/validation-error.js +55 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +11 -0
- package/lib/interfaces/index.d.ts +87 -0
- package/lib/interfaces/index.js +7 -0
- package/lib/utils/ajv.d.ts +2 -0
- package/lib/utils/ajv.js +18 -0
- package/lib/utils/app-openapi.d.ts +4 -0
- package/lib/utils/app-openapi.js +28 -0
- package/lib/utils/generate/flags.d.ts +2 -0
- package/lib/utils/generate/flags.js +14 -0
- package/lib/utils/generate/mapBaseUrl.d.ts +6 -0
- package/lib/utils/generate/mapBaseUrl.js +34 -0
- package/lib/utils/generate/parseParams.d.ts +3 -0
- package/lib/utils/generate/parseParams.js +58 -0
- package/lib/utils/generate/prompts.d.ts +4 -0
- package/lib/utils/generate/prompts.js +77 -0
- package/lib/utils/generate/registry.d.ts +2 -0
- package/lib/utils/generate/registry.js +30 -0
- package/lib/utils/generate/watcher.d.ts +51 -0
- package/lib/utils/generate/watcher.js +230 -0
- package/lib/utils/logger.d.ts +6 -0
- package/lib/utils/logger.js +33 -0
- package/lib/utils/retrieve-language.d.ts +1 -0
- package/lib/utils/retrieve-language.js +9 -0
- package/lib/utils/scoreCalculator.d.ts +2 -0
- package/lib/utils/scoreCalculator.js +22 -0
- package/lib/utils/temp-dir.d.ts +2 -0
- package/lib/utils/temp-dir.js +26 -0
- package/oclif.manifest.json +2137 -0
- package/openapi.yaml +713 -0
- package/package.json +203 -0
- package/scripts/enableAutoComplete.js +160 -0
- package/scripts/fetch-asyncapi-example.js +126 -0
- package/scripts/generateTypesForGenerateCommand.js +40 -0
- package/scripts/releasePackagesRename.js +88 -0
- 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,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,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,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
|
+
}
|