@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.
Files changed (84) hide show
  1. package/dist/api-client.js +107 -0
  2. package/dist/app/api-utils.js +9 -3
  3. package/dist/app/base.js +1 -3
  4. package/dist/app/errors.js +8 -0
  5. package/dist/app/file-paths.js +28 -31
  6. package/dist/app/index.js +18 -11
  7. package/dist/app/project.js +4 -4
  8. package/dist/app/user.js +73 -23
  9. package/dist/code-generation/action.js +70 -0
  10. package/dist/code-generation/channel.js +51 -0
  11. package/dist/code-generation/configuration.js +40 -0
  12. package/dist/code-generation/const.js +31 -0
  13. package/dist/code-generation/event.js +41 -0
  14. package/dist/code-generation/index.js +80 -0
  15. package/dist/code-generation/integration-impl.js +147 -0
  16. package/dist/code-generation/integration-instance.js +79 -0
  17. package/dist/code-generation/message.js +41 -0
  18. package/dist/code-generation/module.js +115 -0
  19. package/dist/code-generation/typings.js +16 -0
  20. package/dist/command-definitions.js +61 -0
  21. package/dist/command-implementations/add-command.js +124 -0
  22. package/dist/command-implementations/base-command.js +53 -0
  23. package/dist/command-implementations/bot-commands.js +89 -0
  24. package/dist/command-implementations/build-command.js +48 -0
  25. package/dist/command-implementations/bundle-command.js +58 -0
  26. package/dist/command-implementations/deploy-command.js +162 -0
  27. package/dist/command-implementations/dev-command.js +168 -0
  28. package/dist/command-implementations/gen-command.js +58 -0
  29. package/dist/command-implementations/global-command.js +111 -0
  30. package/dist/command-implementations/index.js +78 -0
  31. package/dist/command-implementations/init-command.js +85 -0
  32. package/dist/command-implementations/integration-commands.js +107 -0
  33. package/dist/command-implementations/login-command.js +75 -0
  34. package/dist/command-implementations/logout-command.js +34 -0
  35. package/dist/command-implementations/project-command.js +115 -0
  36. package/dist/command-implementations/serve-command.js +53 -0
  37. package/dist/command-tree.js +59 -0
  38. package/dist/config.js +18 -8
  39. package/dist/consts.js +24 -9
  40. package/dist/errors.js +156 -0
  41. package/dist/index.js +33 -20
  42. package/dist/integration-ref.js +61 -0
  43. package/dist/path-utils.js +7 -4
  44. package/dist/register-yargs.js +85 -0
  45. package/dist/typings.js +16 -0
  46. package/dist/utils/cache-utils.js +99 -0
  47. package/dist/utils/esbuild-utils.js +89 -0
  48. package/dist/utils/event-emitter.js +62 -0
  49. package/dist/utils/file-watcher.js +68 -0
  50. package/dist/utils/index.js +55 -0
  51. package/dist/utils/path-utils.js +83 -0
  52. package/dist/utils/prompt-utils.js +75 -0
  53. package/dist/utils/require-utils.js +49 -0
  54. package/dist/utils/string-utils.js +38 -0
  55. package/package.json +7 -5
  56. package/templates/echo-bot/.botpress/project.cache.json +1 -0
  57. package/templates/echo-bot/package.json +22 -0
  58. package/templates/echo-bot/readme.md +5 -0
  59. package/templates/echo-bot/src/index.ts +44 -0
  60. package/templates/echo-bot/tsconfig.json +15 -0
  61. package/templates/empty-integration/.botpress/implementation/actions/index.ts +7 -0
  62. package/templates/empty-integration/.botpress/implementation/channels/channel/audio.ts +10 -0
  63. package/templates/empty-integration/.botpress/implementation/channels/channel/card.ts +17 -0
  64. package/templates/empty-integration/.botpress/implementation/channels/channel/carousel.ts +19 -0
  65. package/templates/empty-integration/.botpress/implementation/channels/channel/choice.ts +14 -0
  66. package/templates/empty-integration/.botpress/implementation/channels/channel/dropdown.ts +14 -0
  67. package/templates/empty-integration/.botpress/implementation/channels/channel/file.ts +11 -0
  68. package/templates/empty-integration/.botpress/implementation/channels/channel/image.ts +10 -0
  69. package/templates/empty-integration/.botpress/implementation/channels/channel/index.ts +40 -0
  70. package/templates/empty-integration/.botpress/implementation/channels/channel/location.ts +11 -0
  71. package/templates/empty-integration/.botpress/implementation/channels/channel/markdown.ts +10 -0
  72. package/templates/empty-integration/.botpress/implementation/channels/channel/text.ts +10 -0
  73. package/templates/empty-integration/.botpress/implementation/channels/channel/video.ts +10 -0
  74. package/templates/empty-integration/.botpress/implementation/channels/index.ts +10 -0
  75. package/templates/empty-integration/.botpress/implementation/configuration.ts +10 -0
  76. package/templates/empty-integration/.botpress/implementation/events/index.ts +7 -0
  77. package/templates/empty-integration/.botpress/implementation/index.ts +17 -0
  78. package/templates/empty-integration/.botpress/index.ts +1 -0
  79. package/templates/empty-integration/.botpress/project.cache.json +1 -0
  80. package/templates/empty-integration/integration.definition.ts +13 -0
  81. package/templates/empty-integration/package.json +22 -0
  82. package/templates/empty-integration/readme.md +5 -0
  83. package/templates/empty-integration/src/index.ts +58 -0
  84. 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
- const { name, version } = require("../package.json");
26
- const pkg = { name, version };
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
- errorLogger.error(error.message);
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, ...pkg });
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, ...pkg });
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, ...pkg });
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, ...pkg });
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, ...pkg });
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, ...pkg });
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, ...pkg });
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, ...pkg });
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, ...pkg });
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, ...pkg });
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, ...pkg });
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, ...pkg });
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, ...pkg });
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, ...pkg });
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, ...pkg });
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, ...pkg });
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
+ });
@@ -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
- if (!absPath.startsWith(rootdir)) {
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
+ });
@@ -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
+ });