@botpress/cli 0.0.8 → 0.0.10
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/dist/api-client.js +107 -0
- package/dist/app/api-utils.js +9 -3
- package/dist/app/base.js +1 -3
- package/dist/app/errors.js +8 -0
- package/dist/app/file-paths.js +28 -31
- package/dist/app/index.js +18 -11
- package/dist/app/project.js +4 -4
- package/dist/app/user.js +73 -23
- package/dist/code-generation/action.js +70 -0
- package/dist/code-generation/channel.js +51 -0
- package/dist/code-generation/configuration.js +40 -0
- package/dist/code-generation/const.js +31 -0
- package/dist/code-generation/event.js +41 -0
- package/dist/code-generation/index.js +80 -0
- package/dist/code-generation/integration-impl.js +147 -0
- package/dist/code-generation/integration-instance.js +79 -0
- package/dist/code-generation/message.js +41 -0
- package/dist/code-generation/module.js +115 -0
- package/dist/code-generation/typings.js +16 -0
- package/dist/command-definitions.js +61 -0
- package/dist/command-implementations/add-command.js +124 -0
- package/dist/command-implementations/base-command.js +53 -0
- package/dist/command-implementations/bot-commands.js +89 -0
- package/dist/command-implementations/build-command.js +48 -0
- package/dist/command-implementations/bundle-command.js +58 -0
- package/dist/command-implementations/deploy-command.js +162 -0
- package/dist/command-implementations/dev-command.js +168 -0
- package/dist/command-implementations/gen-command.js +58 -0
- package/dist/command-implementations/global-command.js +111 -0
- package/dist/command-implementations/index.js +78 -0
- package/dist/command-implementations/init-command.js +85 -0
- package/dist/command-implementations/integration-commands.js +107 -0
- package/dist/command-implementations/login-command.js +75 -0
- package/dist/command-implementations/logout-command.js +34 -0
- package/dist/command-implementations/project-command.js +115 -0
- package/dist/command-implementations/serve-command.js +53 -0
- package/dist/command-tree.js +59 -0
- package/dist/config.js +18 -8
- package/dist/consts.js +24 -9
- package/dist/errors.js +156 -0
- package/dist/index.js +33 -20
- package/dist/integration-ref.js +61 -0
- package/dist/path-utils.js +7 -4
- package/dist/register-yargs.js +85 -0
- package/dist/typings.js +16 -0
- package/dist/utils/cache-utils.js +99 -0
- package/dist/utils/esbuild-utils.js +89 -0
- package/dist/utils/event-emitter.js +62 -0
- package/dist/utils/file-watcher.js +68 -0
- package/dist/utils/index.js +55 -0
- package/dist/utils/path-utils.js +83 -0
- package/dist/utils/prompt-utils.js +75 -0
- package/dist/utils/require-utils.js +49 -0
- package/dist/utils/string-utils.js +38 -0
- package/package.json +7 -5
- package/templates/echo-bot/.botpress/project.cache.json +1 -0
- package/templates/echo-bot/package.json +22 -0
- package/templates/echo-bot/readme.md +5 -0
- package/templates/echo-bot/src/index.ts +44 -0
- package/templates/echo-bot/tsconfig.json +15 -0
- package/templates/empty-integration/.botpress/implementation/actions/index.ts +7 -0
- package/templates/empty-integration/.botpress/implementation/channels/channel/audio.ts +10 -0
- package/templates/empty-integration/.botpress/implementation/channels/channel/card.ts +17 -0
- package/templates/empty-integration/.botpress/implementation/channels/channel/carousel.ts +19 -0
- package/templates/empty-integration/.botpress/implementation/channels/channel/choice.ts +14 -0
- package/templates/empty-integration/.botpress/implementation/channels/channel/dropdown.ts +14 -0
- package/templates/empty-integration/.botpress/implementation/channels/channel/file.ts +11 -0
- package/templates/empty-integration/.botpress/implementation/channels/channel/image.ts +10 -0
- package/templates/empty-integration/.botpress/implementation/channels/channel/index.ts +40 -0
- package/templates/empty-integration/.botpress/implementation/channels/channel/location.ts +11 -0
- package/templates/empty-integration/.botpress/implementation/channels/channel/markdown.ts +10 -0
- package/templates/empty-integration/.botpress/implementation/channels/channel/text.ts +10 -0
- package/templates/empty-integration/.botpress/implementation/channels/channel/video.ts +10 -0
- package/templates/empty-integration/.botpress/implementation/channels/index.ts +10 -0
- package/templates/empty-integration/.botpress/implementation/configuration.ts +10 -0
- package/templates/empty-integration/.botpress/implementation/events/index.ts +7 -0
- package/templates/empty-integration/.botpress/implementation/index.ts +17 -0
- package/templates/empty-integration/.botpress/index.ts +1 -0
- package/templates/empty-integration/.botpress/project.cache.json +1 -0
- package/templates/empty-integration/integration.definition.ts +13 -0
- package/templates/empty-integration/package.json +22 -0
- package/templates/empty-integration/readme.md +5 -0
- package/templates/empty-integration/src/index.ts +58 -0
- package/templates/empty-integration/tsconfig.json +15 -0
package/dist/index.js
CHANGED
|
@@ -22,12 +22,11 @@ var import_process = require("process");
|
|
|
22
22
|
var app = __toESM(require("./app"));
|
|
23
23
|
var config = __toESM(require("./config"));
|
|
24
24
|
var import_logger = require("./logger");
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
const errorLogger = new import_logger.Logger();
|
|
25
|
+
var pathutils = __toESM(require("./path-utils"));
|
|
26
|
+
const CLI_ROOT_DIR = pathutils.join(__dirname, "..");
|
|
28
27
|
const logError = (thrown) => {
|
|
29
28
|
const error = app.errors.BotpressCLIError.map(thrown);
|
|
30
|
-
|
|
29
|
+
new import_logger.Logger().error(error.message);
|
|
31
30
|
};
|
|
32
31
|
const onError = (thrown) => {
|
|
33
32
|
logError(thrown);
|
|
@@ -52,7 +51,7 @@ import_yargs_extra.default.command(
|
|
|
52
51
|
async (argv) => {
|
|
53
52
|
try {
|
|
54
53
|
const parsed = parseArguments(config.loginSchema, argv);
|
|
55
|
-
const commands = await app.forUser({ ...parsed,
|
|
54
|
+
const commands = await app.forUser({ ...parsed, cliRootPath: CLI_ROOT_DIR });
|
|
56
55
|
await commands.login(parsed);
|
|
57
56
|
commands.teardown();
|
|
58
57
|
} catch (e) {
|
|
@@ -66,7 +65,7 @@ import_yargs_extra.default.command(
|
|
|
66
65
|
async (argv) => {
|
|
67
66
|
try {
|
|
68
67
|
const parsed = parseArguments(config.logoutSchema, argv);
|
|
69
|
-
const commands = await app.forUser({ ...parsed,
|
|
68
|
+
const commands = await app.forUser({ ...parsed, cliRootPath: CLI_ROOT_DIR });
|
|
70
69
|
await commands.logout();
|
|
71
70
|
commands.teardown();
|
|
72
71
|
} catch (e) {
|
|
@@ -81,7 +80,7 @@ import_yargs_extra.default.command(
|
|
|
81
80
|
async (argv) => {
|
|
82
81
|
try {
|
|
83
82
|
const parsed = parseArguments(config.createBotSchema, argv);
|
|
84
|
-
const commands = await app.forUser({ ...parsed,
|
|
83
|
+
const commands = await app.forUser({ ...parsed, cliRootPath: CLI_ROOT_DIR });
|
|
85
84
|
await commands.createBot(parsed);
|
|
86
85
|
commands.teardown();
|
|
87
86
|
} catch (e) {
|
|
@@ -95,7 +94,7 @@ import_yargs_extra.default.command(
|
|
|
95
94
|
async (argv) => {
|
|
96
95
|
try {
|
|
97
96
|
const parsed = parseArguments(config.listBotsSchema, argv);
|
|
98
|
-
const commands = await app.forUser({ ...parsed,
|
|
97
|
+
const commands = await app.forUser({ ...parsed, cliRootPath: CLI_ROOT_DIR });
|
|
99
98
|
await commands.listBots(parsed);
|
|
100
99
|
commands.teardown();
|
|
101
100
|
} catch (e) {
|
|
@@ -109,7 +108,7 @@ import_yargs_extra.default.command(
|
|
|
109
108
|
async (argv) => {
|
|
110
109
|
try {
|
|
111
110
|
const parsed = parseArguments(config.readBotSchema, argv);
|
|
112
|
-
const commands = await app.forUser({ ...parsed,
|
|
111
|
+
const commands = await app.forUser({ ...parsed, cliRootPath: CLI_ROOT_DIR });
|
|
113
112
|
await commands.getBot(argv.botRef, parsed);
|
|
114
113
|
commands.teardown();
|
|
115
114
|
} catch (e) {
|
|
@@ -123,7 +122,7 @@ import_yargs_extra.default.command(
|
|
|
123
122
|
async (argv) => {
|
|
124
123
|
try {
|
|
125
124
|
const parsed = parseArguments(config.deleteBotSchema, argv);
|
|
126
|
-
const commands = await app.forUser({ ...parsed,
|
|
125
|
+
const commands = await app.forUser({ ...parsed, cliRootPath: CLI_ROOT_DIR });
|
|
127
126
|
await commands.deleteBot(argv.botRef, parsed);
|
|
128
127
|
commands.teardown();
|
|
129
128
|
} catch (e) {
|
|
@@ -139,7 +138,7 @@ import_yargs_extra.default.command(
|
|
|
139
138
|
async (argv) => {
|
|
140
139
|
try {
|
|
141
140
|
const parsed = parseArguments(config.listIntegrationsSchema, argv);
|
|
142
|
-
const commands = await app.forUser({ ...parsed,
|
|
141
|
+
const commands = await app.forUser({ ...parsed, cliRootPath: CLI_ROOT_DIR });
|
|
143
142
|
await commands.listIntegrations(parsed);
|
|
144
143
|
commands.teardown();
|
|
145
144
|
} catch (e) {
|
|
@@ -153,7 +152,7 @@ import_yargs_extra.default.command(
|
|
|
153
152
|
async (argv) => {
|
|
154
153
|
try {
|
|
155
154
|
const parsed = parseArguments(config.readIntegrationSchema, argv);
|
|
156
|
-
const commands = await app.forUser({ ...parsed,
|
|
155
|
+
const commands = await app.forUser({ ...parsed, cliRootPath: CLI_ROOT_DIR });
|
|
157
156
|
await commands.getIntegration(argv.integrationRef, parsed);
|
|
158
157
|
commands.teardown();
|
|
159
158
|
} catch (e) {
|
|
@@ -167,7 +166,7 @@ import_yargs_extra.default.command(
|
|
|
167
166
|
async (argv) => {
|
|
168
167
|
try {
|
|
169
168
|
const parsed = parseArguments(config.readIntegrationSchema, argv);
|
|
170
|
-
const commands = await app.forUser({ ...parsed,
|
|
169
|
+
const commands = await app.forUser({ ...parsed, cliRootPath: CLI_ROOT_DIR });
|
|
171
170
|
await commands.deleteIntegration(argv.integrationRef, parsed);
|
|
172
171
|
commands.teardown();
|
|
173
172
|
} catch (e) {
|
|
@@ -176,13 +175,27 @@ import_yargs_extra.default.command(
|
|
|
176
175
|
}
|
|
177
176
|
);
|
|
178
177
|
}).command(
|
|
178
|
+
"init",
|
|
179
|
+
"Initialize a new project",
|
|
180
|
+
() => import_yargs_extra.default.options(config.initSchema),
|
|
181
|
+
async (argv) => {
|
|
182
|
+
try {
|
|
183
|
+
const parsed = parseArguments(config.initSchema, argv);
|
|
184
|
+
const commands = await app.forUser({ ...parsed, cliRootPath: CLI_ROOT_DIR });
|
|
185
|
+
await commands.initProject(parsed);
|
|
186
|
+
commands.teardown();
|
|
187
|
+
} catch (e) {
|
|
188
|
+
onError(e);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
).command(
|
|
179
192
|
"bundle",
|
|
180
193
|
"Bundle a botpress project",
|
|
181
194
|
() => import_yargs_extra.default.options(config.bundleSchema),
|
|
182
195
|
async (argv) => {
|
|
183
196
|
try {
|
|
184
197
|
const parsed = parseArguments(config.bundleSchema, argv);
|
|
185
|
-
const commands = await app.forProject({ ...parsed,
|
|
198
|
+
const commands = await app.forProject({ ...parsed, cliRootPath: CLI_ROOT_DIR });
|
|
186
199
|
await commands.bundleProject(parsed);
|
|
187
200
|
commands.teardown();
|
|
188
201
|
} catch (e) {
|
|
@@ -196,7 +209,7 @@ import_yargs_extra.default.command(
|
|
|
196
209
|
async (argv) => {
|
|
197
210
|
try {
|
|
198
211
|
const parsed = parseArguments(config.generateSchema, argv);
|
|
199
|
-
const commands = await app.forProject({ ...parsed,
|
|
212
|
+
const commands = await app.forProject({ ...parsed, cliRootPath: CLI_ROOT_DIR });
|
|
200
213
|
await commands.generateTypings(parsed);
|
|
201
214
|
commands.teardown();
|
|
202
215
|
} catch (e) {
|
|
@@ -210,7 +223,7 @@ import_yargs_extra.default.command(
|
|
|
210
223
|
async (argv) => {
|
|
211
224
|
try {
|
|
212
225
|
const parsed = parseArguments(config.buildSchema, argv);
|
|
213
|
-
const commands = await app.forProject({ ...parsed,
|
|
226
|
+
const commands = await app.forProject({ ...parsed, cliRootPath: CLI_ROOT_DIR });
|
|
214
227
|
await commands.buildProject(parsed);
|
|
215
228
|
commands.teardown();
|
|
216
229
|
} catch (e) {
|
|
@@ -224,7 +237,7 @@ import_yargs_extra.default.command(
|
|
|
224
237
|
async (argv) => {
|
|
225
238
|
try {
|
|
226
239
|
const parsed = parseArguments(config.serveSchema, argv);
|
|
227
|
-
const commands = await app.forProject({ ...parsed,
|
|
240
|
+
const commands = await app.forProject({ ...parsed, cliRootPath: CLI_ROOT_DIR });
|
|
228
241
|
await commands.serveProject(parsed);
|
|
229
242
|
commands.teardown();
|
|
230
243
|
} catch (e) {
|
|
@@ -238,7 +251,7 @@ import_yargs_extra.default.command(
|
|
|
238
251
|
async (argv) => {
|
|
239
252
|
try {
|
|
240
253
|
const parsed = parseArguments(config.deploySchema, argv);
|
|
241
|
-
const commands = await app.forProject({ ...parsed,
|
|
254
|
+
const commands = await app.forProject({ ...parsed, cliRootPath: CLI_ROOT_DIR });
|
|
242
255
|
await commands.deployProject(parsed);
|
|
243
256
|
commands.teardown();
|
|
244
257
|
} catch (e) {
|
|
@@ -252,7 +265,7 @@ import_yargs_extra.default.command(
|
|
|
252
265
|
async (argv) => {
|
|
253
266
|
try {
|
|
254
267
|
const parsed = parseArguments(config.devSchema, argv);
|
|
255
|
-
const commands = await app.forProject({ ...parsed,
|
|
268
|
+
const commands = await app.forProject({ ...parsed, cliRootPath: CLI_ROOT_DIR });
|
|
256
269
|
await commands.devProject(parsed);
|
|
257
270
|
commands.teardown();
|
|
258
271
|
} catch (e) {
|
|
@@ -266,7 +279,7 @@ import_yargs_extra.default.command(
|
|
|
266
279
|
async (argv) => {
|
|
267
280
|
try {
|
|
268
281
|
const parsed = parseArguments(config.addSchema, argv);
|
|
269
|
-
const commands = await app.forProject({ ...parsed,
|
|
282
|
+
const commands = await app.forProject({ ...parsed, cliRootPath: CLI_ROOT_DIR });
|
|
270
283
|
await commands.installIntegration(argv.integrationRef, parsed);
|
|
271
284
|
commands.teardown();
|
|
272
285
|
} catch (e) {
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var integration_ref_exports = {};
|
|
26
|
+
__export(integration_ref_exports, {
|
|
27
|
+
formatIntegrationRef: () => formatIntegrationRef,
|
|
28
|
+
parseIntegrationRef: () => parseIntegrationRef
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(integration_ref_exports);
|
|
31
|
+
var import_semver = __toESM(require("semver"));
|
|
32
|
+
var uuid = __toESM(require("uuid"));
|
|
33
|
+
const LATEST_TAG = "latest";
|
|
34
|
+
const formatIntegrationRef = (ref) => {
|
|
35
|
+
if (ref.type === "id") {
|
|
36
|
+
return ref.id;
|
|
37
|
+
}
|
|
38
|
+
return `${ref.name}@${ref.version}`;
|
|
39
|
+
};
|
|
40
|
+
const parseIntegrationRef = (ref) => {
|
|
41
|
+
if (uuid.validate(ref)) {
|
|
42
|
+
return { type: "id", id: ref };
|
|
43
|
+
}
|
|
44
|
+
if (!ref.includes("@")) {
|
|
45
|
+
return { type: "name", name: ref, version: LATEST_TAG };
|
|
46
|
+
}
|
|
47
|
+
const [name, version] = ref.split("@");
|
|
48
|
+
if (!name || !version) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const cleanedVersion = version === LATEST_TAG ? version : import_semver.default.clean(version);
|
|
52
|
+
if (!cleanedVersion) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
return { type: "name", name, version: cleanedVersion };
|
|
56
|
+
};
|
|
57
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
58
|
+
0 && (module.exports = {
|
|
59
|
+
formatIntegrationRef,
|
|
60
|
+
parseIntegrationRef
|
|
61
|
+
});
|
package/dist/path-utils.js
CHANGED
|
@@ -28,6 +28,7 @@ __export(path_utils_exports, {
|
|
|
28
28
|
cwd: () => cwd,
|
|
29
29
|
isAbsolute: () => isAbsolute,
|
|
30
30
|
isPath: () => isPath,
|
|
31
|
+
join: () => join,
|
|
31
32
|
relativeFrom: () => relativeFrom,
|
|
32
33
|
rmExtension: () => rmExtension,
|
|
33
34
|
toUnix: () => toUnix
|
|
@@ -37,6 +38,10 @@ var import_path = __toESM(require("path"));
|
|
|
37
38
|
const cwd = () => process.cwd();
|
|
38
39
|
const isAbsolute = (path) => import_path.default.isAbsolute(path);
|
|
39
40
|
const isPath = (path) => isAbsolute(path) || path.startsWith(".");
|
|
41
|
+
const join = (abs, ...paths) => {
|
|
42
|
+
const joined = import_path.default.join(abs, ...paths);
|
|
43
|
+
return import_path.default.normalize(joined);
|
|
44
|
+
};
|
|
40
45
|
const rmExtension = (filename) => filename.replace(/\.[^/.]+$/, "");
|
|
41
46
|
const toUnix = (path) => path.split(import_path.default.sep).join(import_path.default.posix.sep);
|
|
42
47
|
const absoluteFrom = (rootdir, target) => {
|
|
@@ -52,10 +57,7 @@ const relativeFrom = (rootdir, target) => {
|
|
|
52
57
|
} else {
|
|
53
58
|
absPath = import_path.default.resolve(import_path.default.join(rootdir, target));
|
|
54
59
|
}
|
|
55
|
-
|
|
56
|
-
return target;
|
|
57
|
-
}
|
|
58
|
-
return absPath.slice(rootdir.length + 1);
|
|
60
|
+
return import_path.default.relative(rootdir, absPath);
|
|
59
61
|
};
|
|
60
62
|
// Annotate the CommonJS export names for ESM import in node:
|
|
61
63
|
0 && (module.exports = {
|
|
@@ -63,6 +65,7 @@ const relativeFrom = (rootdir, target) => {
|
|
|
63
65
|
cwd,
|
|
64
66
|
isAbsolute,
|
|
65
67
|
isPath,
|
|
68
|
+
join,
|
|
66
69
|
relativeFrom,
|
|
67
70
|
rmExtension,
|
|
68
71
|
toUnix
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var register_yargs_exports = {};
|
|
26
|
+
__export(register_yargs_exports, {
|
|
27
|
+
registerYargs: () => registerYargs
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(register_yargs_exports);
|
|
30
|
+
var import_yargs_extra = require("@bpinternal/yargs-extra");
|
|
31
|
+
var import_lodash = __toESM(require("lodash"));
|
|
32
|
+
var tree = __toESM(require("./command-tree"));
|
|
33
|
+
const parseArguments = (schema, argv) => {
|
|
34
|
+
const yargsEnv = (0, import_yargs_extra.parseEnv)(schema, "BP");
|
|
35
|
+
return (0, import_yargs_extra.cleanupConfig)(schema, { ...argv, ...yargsEnv });
|
|
36
|
+
};
|
|
37
|
+
const registerYargs = (yargz, commands, props) => {
|
|
38
|
+
for (const cmdName in commands) {
|
|
39
|
+
const command = commands[cmdName];
|
|
40
|
+
if (tree.guards.command.isSubTree(command)) {
|
|
41
|
+
yargz.command(cmdName, command.description ?? cmdName, (y) => {
|
|
42
|
+
registerYargs(y, command.subcommands, props);
|
|
43
|
+
return y;
|
|
44
|
+
});
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
const { schema, description, alias } = command;
|
|
48
|
+
const aliases = alias ? [cmdName, alias] : [cmdName];
|
|
49
|
+
const options = Object.entries(schema);
|
|
50
|
+
let positionals = options.filter(
|
|
51
|
+
(value) => !!value[1].positional
|
|
52
|
+
);
|
|
53
|
+
let usage = aliases;
|
|
54
|
+
if (positionals.length) {
|
|
55
|
+
positionals = import_lodash.default.sortBy(positionals, ([, option]) => option.idx);
|
|
56
|
+
const positionalArgs = positionals.map(
|
|
57
|
+
([optName, option]) => option.demandOption ? `<${optName}>` : `[${optName}]`
|
|
58
|
+
);
|
|
59
|
+
const positionalStr = positionalArgs.join(" ");
|
|
60
|
+
usage = aliases.map((optAlias) => `${optAlias} ${positionalStr}`);
|
|
61
|
+
}
|
|
62
|
+
yargz.command(
|
|
63
|
+
usage,
|
|
64
|
+
description ?? cmdName,
|
|
65
|
+
(y) => {
|
|
66
|
+
for (const [key, option] of Object.entries(schema)) {
|
|
67
|
+
if (option.positional) {
|
|
68
|
+
y = y.positional(key, option);
|
|
69
|
+
} else {
|
|
70
|
+
y = y.option(key, option);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return y;
|
|
74
|
+
},
|
|
75
|
+
async (argv) => {
|
|
76
|
+
const parsed = parseArguments(schema, argv);
|
|
77
|
+
await command.handler({ ...parsed, ...props });
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
83
|
+
0 && (module.exports = {
|
|
84
|
+
registerYargs
|
|
85
|
+
});
|
package/dist/typings.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var typings_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(typings_exports);
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var cache_utils_exports = {};
|
|
26
|
+
__export(cache_utils_exports, {
|
|
27
|
+
FSKeyValueCache: () => FSKeyValueCache
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(cache_utils_exports);
|
|
30
|
+
var import_fs = __toESM(require("fs"));
|
|
31
|
+
var import_path = __toESM(require("path"));
|
|
32
|
+
class FSKeyValueCache {
|
|
33
|
+
constructor(_filepath) {
|
|
34
|
+
this._filepath = _filepath;
|
|
35
|
+
}
|
|
36
|
+
_initialized = false;
|
|
37
|
+
async init() {
|
|
38
|
+
if (this._initialized) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const dirname = import_path.default.dirname(this._filepath);
|
|
42
|
+
if (!import_fs.default.existsSync(dirname)) {
|
|
43
|
+
await import_fs.default.promises.mkdir(dirname, { recursive: true });
|
|
44
|
+
}
|
|
45
|
+
if (!import_fs.default.existsSync(this._filepath)) {
|
|
46
|
+
await this._writeJSON(this._filepath, {});
|
|
47
|
+
}
|
|
48
|
+
this._initialized = true;
|
|
49
|
+
}
|
|
50
|
+
async sync(key, value, prompt) {
|
|
51
|
+
await this.init();
|
|
52
|
+
if (value) {
|
|
53
|
+
await this.set(key, value);
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
const data = await this.get(key);
|
|
57
|
+
const newValue = await prompt(data);
|
|
58
|
+
await this.set(key, newValue);
|
|
59
|
+
return newValue;
|
|
60
|
+
}
|
|
61
|
+
async has(key) {
|
|
62
|
+
await this.init();
|
|
63
|
+
const data = await this._readJSON(this._filepath);
|
|
64
|
+
return data[key] !== void 0;
|
|
65
|
+
}
|
|
66
|
+
async get(key) {
|
|
67
|
+
await this.init();
|
|
68
|
+
const data = await this._readJSON(this._filepath);
|
|
69
|
+
return data[key];
|
|
70
|
+
}
|
|
71
|
+
async set(key, value) {
|
|
72
|
+
await this.init();
|
|
73
|
+
const data = await this._readJSON(this._filepath);
|
|
74
|
+
data[key] = value;
|
|
75
|
+
return this._writeJSON(this._filepath, data);
|
|
76
|
+
}
|
|
77
|
+
async rm(key) {
|
|
78
|
+
await this.init();
|
|
79
|
+
const data = await this._readJSON(this._filepath);
|
|
80
|
+
delete data[key];
|
|
81
|
+
return this._writeJSON(this._filepath, data);
|
|
82
|
+
}
|
|
83
|
+
async clear() {
|
|
84
|
+
await this.init();
|
|
85
|
+
return this._writeJSON(this._filepath, {});
|
|
86
|
+
}
|
|
87
|
+
_writeJSON = (filepath, data) => {
|
|
88
|
+
const fileContent = JSON.stringify(data, null, 2);
|
|
89
|
+
return import_fs.default.promises.writeFile(filepath, fileContent);
|
|
90
|
+
};
|
|
91
|
+
_readJSON = async (filepath) => {
|
|
92
|
+
const fileContent = await import_fs.default.promises.readFile(filepath, "utf8");
|
|
93
|
+
return JSON.parse(fileContent);
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
97
|
+
0 && (module.exports = {
|
|
98
|
+
FSKeyValueCache
|
|
99
|
+
});
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var esbuild_utils_exports = {};
|
|
20
|
+
__export(esbuild_utils_exports, {
|
|
21
|
+
buildCode: () => buildCode,
|
|
22
|
+
buildEntrypoint: () => buildEntrypoint
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(esbuild_utils_exports);
|
|
25
|
+
var import_esbuild = require("esbuild");
|
|
26
|
+
const keepNames = true;
|
|
27
|
+
function buildCode({
|
|
28
|
+
cwd,
|
|
29
|
+
minify = true,
|
|
30
|
+
bundle = true,
|
|
31
|
+
sourcemap = false,
|
|
32
|
+
logLevel = "silent",
|
|
33
|
+
outfile,
|
|
34
|
+
code,
|
|
35
|
+
write
|
|
36
|
+
}) {
|
|
37
|
+
return (0, import_esbuild.build)({
|
|
38
|
+
stdin: {
|
|
39
|
+
contents: code,
|
|
40
|
+
resolveDir: cwd,
|
|
41
|
+
loader: "ts"
|
|
42
|
+
},
|
|
43
|
+
logOverride: {
|
|
44
|
+
"equals-negative-zero": "silent"
|
|
45
|
+
},
|
|
46
|
+
platform: "node",
|
|
47
|
+
target: "es2020",
|
|
48
|
+
sourcemap,
|
|
49
|
+
minify,
|
|
50
|
+
bundle,
|
|
51
|
+
outfile,
|
|
52
|
+
absWorkingDir: cwd,
|
|
53
|
+
logLevel,
|
|
54
|
+
keepNames,
|
|
55
|
+
write
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function buildEntrypoint({
|
|
59
|
+
cwd,
|
|
60
|
+
minify = true,
|
|
61
|
+
bundle = true,
|
|
62
|
+
sourcemap = false,
|
|
63
|
+
logLevel = "silent",
|
|
64
|
+
outfile,
|
|
65
|
+
entrypoint,
|
|
66
|
+
write
|
|
67
|
+
}) {
|
|
68
|
+
return (0, import_esbuild.build)({
|
|
69
|
+
entryPoints: [entrypoint],
|
|
70
|
+
logOverride: {
|
|
71
|
+
"equals-negative-zero": "silent"
|
|
72
|
+
},
|
|
73
|
+
platform: "node",
|
|
74
|
+
target: "es2020",
|
|
75
|
+
sourcemap,
|
|
76
|
+
minify,
|
|
77
|
+
bundle,
|
|
78
|
+
outfile,
|
|
79
|
+
absWorkingDir: cwd,
|
|
80
|
+
logLevel,
|
|
81
|
+
keepNames,
|
|
82
|
+
write
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
86
|
+
0 && (module.exports = {
|
|
87
|
+
buildCode,
|
|
88
|
+
buildEntrypoint
|
|
89
|
+
});
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var event_emitter_exports = {};
|
|
20
|
+
__export(event_emitter_exports, {
|
|
21
|
+
EventEmitter: () => EventEmitter
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(event_emitter_exports);
|
|
24
|
+
class EventEmitter {
|
|
25
|
+
listeners = {};
|
|
26
|
+
emit(type, event) {
|
|
27
|
+
const listeners = this.listeners[type];
|
|
28
|
+
if (!listeners) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
for (const listener of listeners) {
|
|
32
|
+
listener(event);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
once(type, listener) {
|
|
36
|
+
const wrapped = (event) => {
|
|
37
|
+
this.off(type, wrapped);
|
|
38
|
+
listener(event);
|
|
39
|
+
};
|
|
40
|
+
this.on(type, wrapped);
|
|
41
|
+
}
|
|
42
|
+
on(type, listener) {
|
|
43
|
+
if (!this.listeners[type]) {
|
|
44
|
+
this.listeners[type] = [];
|
|
45
|
+
}
|
|
46
|
+
this.listeners[type].push(listener);
|
|
47
|
+
}
|
|
48
|
+
off(type, listener) {
|
|
49
|
+
const listeners = this.listeners[type];
|
|
50
|
+
if (!listeners) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const index = listeners.indexOf(listener);
|
|
54
|
+
if (index !== -1) {
|
|
55
|
+
listeners.splice(index, 1);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
60
|
+
0 && (module.exports = {
|
|
61
|
+
EventEmitter
|
|
62
|
+
});
|