commandkit 1.2.1-dev.20260414125348 → 1.2.1-dev.20260920033200

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 (269) hide show
  1. package/README.md +1 -1
  2. package/cache.cjs +2 -0
  3. package/cache.d.ts +1 -0
  4. package/dist/{ActionRow-Bt9qi0Mb.d.ts → ActionRow-DSh9roc5.d.ts} +2 -3
  5. package/dist/{Button-DxJLcZIU.d.ts → Button-BPsE5ju0.d.ts} +5 -6
  6. package/dist/{ButtonKit-BfcyvWfj.d.ts → ButtonKit-CNPmVg3h.d.ts} +2 -3
  7. package/dist/{ChannelSelectMenuKit-DYkudikb.d.ts → ChannelSelectMenuKit-CcOdaLQ6.d.ts} +3 -4
  8. package/dist/{CommandTree-DwfiCsOl.d.ts → CommandTree-qu-8oAEV.d.ts} +1 -1
  9. package/dist/{CommandsRouter-D-b3xv38.d.ts → CommandsRouter-Co225Ae5.d.ts} +24 -4
  10. package/dist/{EventInterceptor-D9JKMcfi.d.ts → EventInterceptor-wg378vJp.d.ts} +1 -2
  11. package/dist/{EventsRouter-Dyr_oJJD.d.ts → EventsRouter-Bt63ZuEF.d.ts} +21 -2
  12. package/dist/{MentionableSelectMenuKit-Mu4xqP6B.d.ts → MentionableSelectMenuKit-8_Nkgn_a.d.ts} +3 -4
  13. package/dist/{MessageCommandParser-UTKsRvb9.d.ts → MessageCommandParser-BYbxHOSK.d.ts} +1 -2
  14. package/dist/{Modal-v9rrcMl-.d.ts → Modal-DbWK6VmV.d.ts} +5 -6
  15. package/dist/{ModalKit-XJSM65SV.d.ts → ModalKit-CnmUVpw-.d.ts} +2 -3
  16. package/dist/{RoleSelectMenuKit-CCjcp3HY.d.ts → RoleSelectMenuKit-Bei7DHqD.d.ts} +3 -4
  17. package/dist/{SelectMenu-CY0vvoSu.d.ts → SelectMenu-Bce_PClo.d.ts} +8 -9
  18. package/dist/{StringSelectMenuKit-G5nBTicX.d.ts → StringSelectMenuKit-CBeB9HqT.d.ts} +3 -4
  19. package/dist/TreeArtifact-D6FZ5SVd.d.ts +27 -0
  20. package/dist/{UserSelectMenuKit-D3SO_fXA.d.ts → UserSelectMenuKit-DZmeZ_Tp.d.ts} +3 -4
  21. package/dist/analytics/analytics-engine.d.ts +1 -1
  22. package/dist/analytics/analytics-engine.js +1 -1
  23. package/dist/analytics/analytics-provider.d.ts +1 -1
  24. package/dist/analytics/constants.js +0 -1
  25. package/dist/analytics/constants.js.map +1 -1
  26. package/dist/analytics/utils.js +1 -1
  27. package/dist/{analytics-engine-BYA0ongA.d.ts → analytics-engine-Bz1p7ud3.d.ts} +51 -15
  28. package/dist/app/commands/AppCommandRunner.d.ts +1 -1
  29. package/dist/app/commands/AppCommandRunner.js +1 -1
  30. package/dist/app/commands/Context.d.ts +1 -1
  31. package/dist/app/commands/Context.js +1 -1
  32. package/dist/app/commands/MessageCommandParser.d.ts +1 -1
  33. package/dist/app/commands/MessageCommandParser.js +4 -1
  34. package/dist/app/commands/MessageCommandParser.js.map +1 -1
  35. package/dist/app/commands/helpers.d.ts +1 -1
  36. package/dist/app/commands/helpers.js +0 -1
  37. package/dist/app/commands/helpers.js.map +1 -1
  38. package/dist/app/events/EventWorkerContext.d.ts +3 -3
  39. package/dist/app/events/EventWorkerContext.js +0 -1
  40. package/dist/app/events/EventWorkerContext.js.map +1 -1
  41. package/dist/app/handlers/AppCommandHandler.d.ts +1 -1
  42. package/dist/app/handlers/AppCommandHandler.js +1 -1
  43. package/dist/app/handlers/AppEventsHandler.d.ts +1 -1
  44. package/dist/app/handlers/AppEventsHandler.js +1 -1
  45. package/dist/app/index.d.ts +5 -5
  46. package/dist/app/index.js +1 -1
  47. package/dist/app/interrupt/signals.d.ts +1 -1
  48. package/dist/app/interrupt/signals.js.map +1 -1
  49. package/dist/app/middlewares/permissions.d.ts +1 -2
  50. package/dist/app/middlewares/permissions.js +1 -1
  51. package/dist/app/register/CommandRegistrar.d.ts +1 -1
  52. package/dist/app/register/CommandRegistrar.js +1 -1
  53. package/dist/app/router/CommandTree.d.ts +1 -1
  54. package/dist/app/router/CommandsRouter.d.ts +2 -2
  55. package/dist/app/router/CommandsRouter.js +60 -1
  56. package/dist/app/router/CommandsRouter.js.map +1 -1
  57. package/dist/app/router/EventsRouter.d.ts +2 -2
  58. package/dist/app/router/EventsRouter.js +56 -3
  59. package/dist/app/router/EventsRouter.js.map +1 -1
  60. package/dist/app/router/TreeArtifact.d.ts +2 -0
  61. package/dist/app/router/TreeArtifact.js +87 -0
  62. package/dist/app/router/TreeArtifact.js.map +1 -0
  63. package/dist/app/router/index.d.ts +6 -4
  64. package/dist/app/router/index.js +8 -1
  65. package/dist/{checkbox-CvQGiyRe.d.ts → checkbox-DoR0Pcxm.d.ts} +2 -3
  66. package/dist/cli/app-process.d.ts +2 -4
  67. package/dist/cli/app-process.js +0 -1
  68. package/dist/cli/app-process.js.map +1 -1
  69. package/dist/cli/build.d.ts +4 -9
  70. package/dist/cli/build.js +30 -4
  71. package/dist/cli/build.js.map +1 -1
  72. package/dist/cli/common.d.ts +3 -6
  73. package/dist/cli/common.js +2 -2
  74. package/dist/cli/common.js.map +1 -1
  75. package/dist/cli/development.d.ts +4 -5
  76. package/dist/cli/development.js +11 -11
  77. package/dist/cli/development.js.map +1 -1
  78. package/dist/cli/env.js.map +1 -1
  79. package/dist/cli/generators.js +0 -1
  80. package/dist/cli/generators.js.map +1 -1
  81. package/dist/cli/information.js +4 -5
  82. package/dist/cli/information.js.map +1 -1
  83. package/dist/cli/init.d.ts +1 -3
  84. package/dist/cli/init.js +37 -12
  85. package/dist/cli/init.js.map +1 -1
  86. package/dist/cli/production.d.ts +1 -3
  87. package/dist/cli/production.js +1 -2
  88. package/dist/cli/production.js.map +1 -1
  89. package/dist/cli/type-checker.js +0 -1
  90. package/dist/cli/type-checker.js.map +1 -1
  91. package/dist/cli/utils.d.ts +0 -1
  92. package/dist/cli/utils.js.map +1 -1
  93. package/dist/{commandkit-DTqT800J.js → commandkit-gJ4YjTy4.js} +165 -87
  94. package/dist/commandkit-gJ4YjTy4.js.map +1 -0
  95. package/dist/commandkit.d.ts +1 -1
  96. package/dist/commandkit.js +1 -1
  97. package/dist/{common-CCvvgnxi.d.ts → common-CIbPzguv.d.ts} +2 -3
  98. package/dist/components/common/EventInterceptor.d.ts +1 -1
  99. package/dist/components/common/EventInterceptor.js +1 -0
  100. package/dist/components/common/EventInterceptor.js.map +1 -1
  101. package/dist/components/common/element.d.ts +1 -1
  102. package/dist/components/common/element.js +1 -1
  103. package/dist/components/common/types.d.ts +1 -1
  104. package/dist/components/display/common.d.ts +0 -1
  105. package/dist/components/display/common.js +1 -1
  106. package/dist/components/display/container.d.ts +1 -1
  107. package/dist/components/display/container.js +1 -1
  108. package/dist/components/display/file.d.ts +1 -1
  109. package/dist/components/display/file.js +0 -1
  110. package/dist/components/display/file.js.map +1 -1
  111. package/dist/components/display/index.d.ts +9 -8
  112. package/dist/components/display/index.js +1 -1
  113. package/dist/components/display/label.d.ts +1 -1
  114. package/dist/components/display/label.js +1 -1
  115. package/dist/components/display/media-gallery.d.ts +1 -1
  116. package/dist/components/display/media-gallery.js +1 -1
  117. package/dist/components/display/poll.d.ts +1 -1
  118. package/dist/components/display/poll.js +4 -10
  119. package/dist/components/display/poll.js.map +1 -1
  120. package/dist/components/display/section.d.ts +1 -1
  121. package/dist/components/display/section.js +1 -1
  122. package/dist/components/display/separator.d.ts +1 -1
  123. package/dist/components/display/separator.js +0 -1
  124. package/dist/components/display/separator.js.map +1 -1
  125. package/dist/components/display/text-display.d.ts +1 -1
  126. package/dist/components/display/text-display.js +0 -1
  127. package/dist/components/display/text-display.js.map +1 -1
  128. package/dist/components/index.d.ts +25 -24
  129. package/dist/components/index.js +1 -1
  130. package/dist/components/interactive/action-row/ActionRow.d.ts +1 -1
  131. package/dist/components/interactive/action-row/ActionRow.js +0 -1
  132. package/dist/components/interactive/action-row/ActionRow.js.map +1 -1
  133. package/dist/components/interactive/button/Button.d.ts +1 -1
  134. package/dist/components/interactive/button/Button.js +1 -1
  135. package/dist/components/interactive/button/ButtonKit.d.ts +1 -1
  136. package/dist/components/interactive/button/ButtonKit.js +1 -1
  137. package/dist/components/interactive/checkbox/checkbox.d.ts +1 -1
  138. package/dist/components/interactive/checkbox/checkbox.js +1 -1
  139. package/dist/components/interactive/modal/Modal.d.ts +1 -1
  140. package/dist/components/interactive/modal/Modal.js +1 -1
  141. package/dist/components/interactive/modal/ModalKit.d.ts +1 -1
  142. package/dist/components/interactive/modal/ModalKit.js +1 -1
  143. package/dist/components/interactive/radio/radio.d.ts +1 -1
  144. package/dist/components/interactive/radio/radio.js +1 -1
  145. package/dist/components/interactive/select-menu/ChannelSelectMenuKit.d.ts +1 -1
  146. package/dist/components/interactive/select-menu/ChannelSelectMenuKit.js +1 -1
  147. package/dist/components/interactive/select-menu/MentionableSelectMenuKit.d.ts +1 -1
  148. package/dist/components/interactive/select-menu/MentionableSelectMenuKit.js +1 -1
  149. package/dist/components/interactive/select-menu/RoleSelectMenuKit.d.ts +1 -1
  150. package/dist/components/interactive/select-menu/RoleSelectMenuKit.js +1 -1
  151. package/dist/components/interactive/select-menu/SelectMenu.d.ts +1 -1
  152. package/dist/components/interactive/select-menu/SelectMenu.js +1 -1
  153. package/dist/components/interactive/select-menu/StringSelectMenuKit.d.ts +1 -1
  154. package/dist/components/interactive/select-menu/StringSelectMenuKit.js +1 -1
  155. package/dist/components/interactive/select-menu/UserSelectMenuKit.d.ts +1 -1
  156. package/dist/components/interactive/select-menu/UserSelectMenuKit.js +1 -1
  157. package/dist/components/interactive/select-menu/common.d.ts +1 -1
  158. package/dist/config/config.d.ts +1 -2
  159. package/dist/config/config.js +1 -1
  160. package/dist/config/default.d.ts +1 -2
  161. package/dist/config/default.js +1 -1
  162. package/dist/config/loader.d.ts +1 -2
  163. package/dist/config/loader.js +1 -1
  164. package/dist/config/types.d.ts +1 -1
  165. package/dist/config/utils.d.ts +1 -1
  166. package/dist/config/utils.js.map +1 -1
  167. package/dist/{constants-D_sgdBHy.d.ts → constants-B7AfnOFa.d.ts} +1 -1
  168. package/dist/{constants-GWSfiS4h.d.ts → constants-kWgE3L9F.d.ts} +15 -2
  169. package/dist/{container-B7Kmw__R.d.ts → container-NVgblXmw.d.ts} +1 -2
  170. package/dist/context/async-context.d.ts +1 -1
  171. package/dist/context/async-context.js +1 -1
  172. package/dist/context/environment.d.ts +1 -1
  173. package/dist/context/environment.js +1 -1
  174. package/dist/{element-DeLvTMfZ.d.ts → element-BMZYAAQ-.d.ts} +3 -4
  175. package/dist/events/CommandKitEventsChannel.d.ts +1 -1
  176. package/dist/events/CommandKitEventsChannel.js +3 -2
  177. package/dist/events/CommandKitEventsChannel.js.map +1 -1
  178. package/dist/{file-BP8aoN3A.d.ts → file-DYAmr697.d.ts} +1 -2
  179. package/dist/flags/FlagProvider.d.ts +1 -1
  180. package/dist/flags/FlagProvider.js +1 -0
  181. package/dist/flags/FlagProvider.js.map +1 -1
  182. package/dist/flags/feature-flags.d.ts +1 -1
  183. package/dist/flags/feature-flags.js +1 -1
  184. package/dist/flags/store.d.ts +1 -1
  185. package/dist/flags/store.js +0 -1
  186. package/dist/flags/store.js.map +1 -1
  187. package/dist/{helpers-C5jRrAM1.d.ts → helpers-vlnRvNJv.d.ts} +1 -2
  188. package/dist/index-CAFaKBs_.d.ts +8 -0
  189. package/dist/index-COt7nfC9.d.ts +2 -0
  190. package/dist/index-DvqHpiuh.d.ts +16 -0
  191. package/dist/index.d.ts +37 -34
  192. package/dist/index.js +9 -2
  193. package/dist/kv/constants.d.ts +1 -1
  194. package/dist/kv/constants.js.map +1 -1
  195. package/dist/kv/dotprops.js.map +1 -1
  196. package/dist/kv/kv.d.ts +0 -1
  197. package/dist/kv/kv.js +1 -1
  198. package/dist/kv/kv.js.map +1 -1
  199. package/dist/kv/serde.d.ts +1 -2
  200. package/dist/kv/serde.js +27 -27
  201. package/dist/kv/serde.js.map +1 -1
  202. package/dist/{label-CqHiBMXP.d.ts → label-DClaYktn.d.ts} +1 -2
  203. package/dist/logger/DefaultLogger.d.ts +0 -1
  204. package/dist/logger/DefaultLogger.js +1 -1
  205. package/dist/logger/Logger.d.ts +0 -1
  206. package/dist/logger/Logger.js +1 -1
  207. package/dist/logger/NoopLogger.d.ts +0 -1
  208. package/dist/logger/NoopLogger.js.map +1 -1
  209. package/dist/{media-gallery-hFfa57Kd.d.ts → media-gallery-z2Snzz-u.d.ts} +1 -2
  210. package/dist/plugins/CompilerPlugin.d.ts +1 -1
  211. package/dist/plugins/CompilerPlugin.js +2 -2
  212. package/dist/plugins/CompilerPlugin.js.map +1 -1
  213. package/dist/plugins/PluginCommon.d.ts +1 -1
  214. package/dist/plugins/PluginCommon.js +1 -1
  215. package/dist/plugins/PluginCommon.js.map +1 -1
  216. package/dist/plugins/RuntimePlugin.d.ts +1 -1
  217. package/dist/plugins/RuntimePlugin.js +2 -2
  218. package/dist/plugins/RuntimePlugin.js.map +1 -1
  219. package/dist/plugins/index.d.ts +1 -1
  220. package/dist/plugins/index.js +1 -1
  221. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.d.ts +1 -1
  222. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js +1 -1
  223. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.d.ts +1 -1
  224. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js +1 -1
  225. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.d.ts +1 -1
  226. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js +1 -1
  227. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.d.ts +1 -2
  228. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js +1 -1
  229. package/dist/plugins/plugin-runtime/runtime.d.ts +1 -1
  230. package/dist/plugins/types.d.ts +1 -1
  231. package/dist/{poll-ElAd5Z2K.d.ts → poll-D2QDStsw.d.ts} +4 -14
  232. package/dist/{radio-Dcd4YIZx.d.ts → radio-CJH_N4lq.d.ts} +2 -3
  233. package/dist/{section-BqDLXlp3.d.ts → section-DrFBT5b-.d.ts} +1 -2
  234. package/dist/{separator-DSaCa1Tc.d.ts → separator-BVm3w6yd.d.ts} +1 -2
  235. package/dist/{signals-DVOXPkQK.d.ts → signals-DRMDrCOn.d.ts} +1 -1
  236. package/dist/{text-display-D-0dD7bR.d.ts → text-display-BG0nNqy3.d.ts} +1 -2
  237. package/dist/{types-DZy7U-Ld.d.ts → types-ur7SvktF.d.ts} +1 -1
  238. package/dist/types.d.ts +1 -1
  239. package/dist/utils/colors.d.ts +1 -3
  240. package/dist/utils/colors.js +0 -1
  241. package/dist/utils/colors.js.map +1 -1
  242. package/dist/utils/constants.d.ts +2 -2
  243. package/dist/utils/constants.js +19 -0
  244. package/dist/utils/constants.js.map +1 -1
  245. package/dist/utils/dev-hooks.d.ts +1 -1
  246. package/dist/utils/dev-hooks.js +1 -1
  247. package/dist/utils/error-codes.js +15 -0
  248. package/dist/utils/error-codes.js.map +1 -1
  249. package/dist/utils/resolve-file-url.js +2 -2
  250. package/dist/utils/resolve-file-url.js.map +1 -1
  251. package/dist/utils/types-package.d.ts +6 -2
  252. package/dist/utils/types-package.js +31 -38
  253. package/dist/utils/types-package.js.map +1 -1
  254. package/dist/utils/useful-stuff/async-queue.js.map +1 -1
  255. package/dist/utils/useful-stuff/mutex.js.map +1 -1
  256. package/dist/utils/useful-stuff/ratelimiter.js +4 -1
  257. package/dist/utils/useful-stuff/ratelimiter.js.map +1 -1
  258. package/dist/utils/useful-stuff/semaphore.js.map +1 -1
  259. package/dist/utils/utilities.js +1 -1
  260. package/dist/utils/warning.d.ts +1 -5
  261. package/dist/utils/warning.js.map +1 -1
  262. package/dist/version.js +1 -1
  263. package/dist/version.js.map +1 -1
  264. package/package.json +17 -17
  265. package/dist/commandkit-DTqT800J.js.map +0 -1
  266. package/dist/index-CQiOqvUC.d.ts +0 -1
  267. package/dist/index-CTLjHn5u.d.ts +0 -1
  268. package/dist/index-LKrIp3Oo.d.ts +0 -1
  269. /package/dist/{chunk-BE-pF4vm.js → rolldown-runtime-C_NdSu1c.js} +0 -0
@@ -0,0 +1,87 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ let node_path = require("node:path");
3
+
4
+ //#region src/app/router/TreeArtifact.ts
5
+ const ROUTER_TREE_ARTIFACT_SCHEMA_VERSION = 1;
6
+ const ROUTER_TREE_ARTIFACT_FILE = "router-tree.json";
7
+ const ROUTER_TREE_ARTIFACT_DIRECTORY = ".commandkit";
8
+ function createRouterTreeArtifact(options) {
9
+ const { outputRoot, commandkitVersion } = options;
10
+ return {
11
+ schemaVersion: 1,
12
+ commandkitVersion,
13
+ generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
14
+ commands: mapCommandDataPaths(options.commands, outputRoot, toRelativePath),
15
+ events: mapEventsTreePaths(options.events, outputRoot, toRelativePath)
16
+ };
17
+ }
18
+ function validateRouterTreeArtifact(input, runtimeVersion) {
19
+ if (!input || typeof input !== "object") return false;
20
+ const artifact = input;
21
+ if (artifact.schemaVersion !== 1) return false;
22
+ if (!artifact.commandkitVersion || artifact.commandkitVersion !== runtimeVersion) return false;
23
+ if (!artifact.commands || typeof artifact.commands !== "object") return false;
24
+ if (!artifact.events || typeof artifact.events !== "object") return false;
25
+ return true;
26
+ }
27
+ function hydrateRouterTreeArtifact(artifact, outputRoot) {
28
+ return {
29
+ commands: mapCommandDataPaths(artifact.commands, outputRoot, toAbsolutePath),
30
+ events: mapEventsTreePaths(artifact.events, outputRoot, toAbsolutePath)
31
+ };
32
+ }
33
+ function mapCommandDataPaths(data, root, mapper) {
34
+ return {
35
+ commands: Object.fromEntries(Object.entries(data.commands ?? {}).map(([id, command]) => [id, {
36
+ ...command,
37
+ path: mapper(root, command.path),
38
+ parentPath: mapper(root, command.parentPath)
39
+ }])),
40
+ middlewares: Object.fromEntries(Object.entries(data.middlewares ?? {}).map(([id, middleware]) => [id, {
41
+ ...middleware,
42
+ path: mapper(root, middleware.path),
43
+ parentPath: mapper(root, middleware.parentPath)
44
+ }])),
45
+ treeNodes: Object.fromEntries(Object.entries(data.treeNodes ?? {}).map(([id, node]) => [id, {
46
+ ...node,
47
+ directoryPath: mapper(root, node.directoryPath),
48
+ definitionPath: node.definitionPath === null ? null : mapper(root, node.definitionPath)
49
+ }])),
50
+ compiledRoutes: Object.fromEntries(Object.entries(data.compiledRoutes ?? {}).map(([id, route]) => [id, {
51
+ ...route,
52
+ definitionPath: mapper(root, route.definitionPath)
53
+ }])),
54
+ diagnostics: (data.diagnostics ?? []).map((diagnostic) => ({
55
+ ...diagnostic,
56
+ path: mapper(root, diagnostic.path)
57
+ }))
58
+ };
59
+ }
60
+ function mapEventsTreePaths(events, root, mapper) {
61
+ return Object.fromEntries(Object.entries(events ?? {}).map(([id, event]) => [id, {
62
+ ...event,
63
+ path: mapper(root, event.path),
64
+ listeners: event.listeners.map((listener) => mapper(root, listener))
65
+ }]));
66
+ }
67
+ function toRelativePath(rootPath, path) {
68
+ if (!path) return path;
69
+ const normalizedPath = (0, node_path.normalize)(path);
70
+ if (!(0, node_path.isAbsolute)(normalizedPath)) return normalizedPath;
71
+ return (0, node_path.normalize)((0, node_path.relative)(rootPath, normalizedPath));
72
+ }
73
+ function toAbsolutePath(rootPath, path) {
74
+ if (!path) return path;
75
+ const normalizedPath = (0, node_path.normalize)(path);
76
+ if ((0, node_path.isAbsolute)(normalizedPath)) return normalizedPath;
77
+ return (0, node_path.normalize)((0, node_path.join)(rootPath, normalizedPath));
78
+ }
79
+
80
+ //#endregion
81
+ exports.ROUTER_TREE_ARTIFACT_DIRECTORY = ROUTER_TREE_ARTIFACT_DIRECTORY;
82
+ exports.ROUTER_TREE_ARTIFACT_FILE = ROUTER_TREE_ARTIFACT_FILE;
83
+ exports.ROUTER_TREE_ARTIFACT_SCHEMA_VERSION = ROUTER_TREE_ARTIFACT_SCHEMA_VERSION;
84
+ exports.createRouterTreeArtifact = createRouterTreeArtifact;
85
+ exports.hydrateRouterTreeArtifact = hydrateRouterTreeArtifact;
86
+ exports.validateRouterTreeArtifact = validateRouterTreeArtifact;
87
+ //# sourceMappingURL=TreeArtifact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeArtifact.js","names":[],"sources":[],"mappings":""}
@@ -1,4 +1,6 @@
1
- import { a as CompiledCommandRoute, i as CommandTreeNodeSource, n as CommandTreeNode, r as CommandTreeNodeKind, t as CommandRouteDiagnostic } from "../../CommandTree-DwfiCsOl.js";
2
- import { a as ParsedCommandData, i as Middleware, n as CommandsRouter, r as CommandsRouterOptions, t as Command } from "../../CommandsRouter-D-b3xv38.js";
3
- import { i as ParsedEvent, n as EventsRouterOptions, r as EventsTree, t as EventsRouter } from "../../EventsRouter-Dyr_oJJD.js";
4
- export { Command, CommandRouteDiagnostic, CommandTreeNode, CommandTreeNodeKind, CommandTreeNodeSource, CommandsRouter, CommandsRouterOptions, CompiledCommandRoute, EventsRouter, EventsRouterOptions, EventsTree, Middleware, ParsedCommandData, ParsedEvent };
1
+ import { a as CompiledCommandRoute, i as CommandTreeNodeSource, n as CommandTreeNode, r as CommandTreeNodeKind, t as CommandRouteDiagnostic } from "../../CommandTree-qu-8oAEV.js";
2
+ import { a as ParsedCommandData, i as Middleware, n as CommandsRouter, o as RouterFileChangeType, r as CommandsRouterOptions, t as Command } from "../../CommandsRouter-Co225Ae5.js";
3
+ import { a as ParsedEvent, i as EventsTree, n as EventsRouterFileChangeType, r as EventsRouterOptions, t as EventsRouter } from "../../EventsRouter-Bt63ZuEF.js";
4
+ import { a as createRouterTreeArtifact, i as RouterTreeArtifact, n as ROUTER_TREE_ARTIFACT_FILE, o as hydrateRouterTreeArtifact, r as ROUTER_TREE_ARTIFACT_SCHEMA_VERSION, s as validateRouterTreeArtifact, t as ROUTER_TREE_ARTIFACT_DIRECTORY } from "../../TreeArtifact-D6FZ5SVd.js";
5
+ import "../../index-COt7nfC9.js";
6
+ export { Command, CommandRouteDiagnostic, CommandTreeNode, CommandTreeNodeKind, CommandTreeNodeSource, CommandsRouter, CommandsRouterOptions, CompiledCommandRoute, EventsRouter, EventsRouterFileChangeType, EventsRouterOptions, EventsTree, Middleware, ParsedCommandData, ParsedEvent, ROUTER_TREE_ARTIFACT_DIRECTORY, ROUTER_TREE_ARTIFACT_FILE, ROUTER_TREE_ARTIFACT_SCHEMA_VERSION, RouterFileChangeType, RouterTreeArtifact, createRouterTreeArtifact, hydrateRouterTreeArtifact, validateRouterTreeArtifact };
@@ -1,6 +1,13 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_app_router_CommandsRouter = require('./CommandsRouter.js');
3
3
  const require_app_router_EventsRouter = require('./EventsRouter.js');
4
+ const require_app_router_TreeArtifact = require('./TreeArtifact.js');
4
5
 
5
6
  exports.CommandsRouter = require_app_router_CommandsRouter.CommandsRouter;
6
- exports.EventsRouter = require_app_router_EventsRouter.EventsRouter;
7
+ exports.EventsRouter = require_app_router_EventsRouter.EventsRouter;
8
+ exports.ROUTER_TREE_ARTIFACT_DIRECTORY = require_app_router_TreeArtifact.ROUTER_TREE_ARTIFACT_DIRECTORY;
9
+ exports.ROUTER_TREE_ARTIFACT_FILE = require_app_router_TreeArtifact.ROUTER_TREE_ARTIFACT_FILE;
10
+ exports.ROUTER_TREE_ARTIFACT_SCHEMA_VERSION = require_app_router_TreeArtifact.ROUTER_TREE_ARTIFACT_SCHEMA_VERSION;
11
+ exports.createRouterTreeArtifact = require_app_router_TreeArtifact.createRouterTreeArtifact;
12
+ exports.hydrateRouterTreeArtifact = require_app_router_TreeArtifact.hydrateRouterTreeArtifact;
13
+ exports.validateRouterTreeArtifact = require_app_router_TreeArtifact.validateRouterTreeArtifact;
@@ -1,6 +1,5 @@
1
- import { t as MaybeArray } from "./types-DZy7U-Ld.js";
1
+ import { t as MaybeArray } from "./types-ur7SvktF.js";
2
2
  import { CheckboxBuilder, CheckboxComponentData, CheckboxGroupBuilder, CheckboxGroupComponentData, CheckboxGroupOptionBuilder } from "discord.js";
3
-
4
3
  //#region src/components/interactive/checkbox/checkbox.d.ts
5
4
  interface CheckboxProps extends Omit<CheckboxComponentData, 'type' | 'required'> {
6
5
  id?: number;
@@ -25,4 +24,4 @@ interface CheckboxGroupProps extends Omit<CheckboxGroupComponentData, 'type' | '
25
24
  declare function CheckboxGroup(props: CheckboxGroupProps): CheckboxGroupBuilder;
26
25
  //#endregion
27
26
  export { CheckboxGroupProps as a, CheckboxGroupOptionProps as i, CheckboxGroup as n, CheckboxProps as o, CheckboxGroupOption as r, Checkbox as t };
28
- //# sourceMappingURL=checkbox-CvQGiyRe.d.ts.map
27
+ //# sourceMappingURL=checkbox-DoR0Pcxm.d.ts.map
@@ -1,12 +1,10 @@
1
- import { m as ResolvedCommandKitConfig } from "../analytics-engine-BYA0ongA.js";
2
- import * as node_child_process0 from "node:child_process";
3
-
1
+ import { m as ResolvedCommandKitConfig } from "../analytics-engine-Bz1p7ud3.js";
4
2
  //#region src/cli/app-process.d.ts
5
3
  /**
6
4
  * @private
7
5
  * @internal
8
6
  */
9
- declare function createAppProcess(fileName: string, cwd: string, isDev: boolean, config: ResolvedCommandKitConfig): node_child_process0.ChildProcess;
7
+ declare function createAppProcess(fileName: string, cwd: string, isDev: boolean, config: ResolvedCommandKitConfig): import("node:child_process").ChildProcess;
10
8
  //#endregion
11
9
  export { createAppProcess };
12
10
  //# sourceMappingURL=app-process.d.ts.map
@@ -1,5 +1,4 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_chunk = require('../chunk-BE-pF4vm.js');
3
2
  const require_cli_common = require('./common.js');
4
3
  const require_cli_env = require('./env.js');
5
4
  let node_fs = require("node:fs");
@@ -1 +1 @@
1
- {"version":3,"file":"app-process.js","names":[],"sources":["../../src/cli/app-process.ts"],"sourcesContent":["import { IOType, spawn } from 'node:child_process';\nimport { DevEnv, ProdEnv } from './env';\nimport { join } from 'node:path';\nimport { existsSync } from 'node:fs';\nimport { panic } from './common';\nimport { ResolvedCommandKitConfig } from '../config/utils';\nimport { CommandKitJsRuntime } from '../config/types';\n\n/**\n * @private\n * @internal\n */\nfunction getStdio(supportsCommands: boolean) {\n if (supportsCommands) {\n return ['pipe', 'pipe', 'pipe', 'ipc'];\n }\n\n return ['pipe', 'pipe', 'pipe'];\n}\n\nconst RuntimeLookup: [CommandKitJsRuntime, () => boolean][] = [\n // @ts-ignore Bun types\n ['bun', () => typeof Bun !== 'undefined' && typeof Bun.version === 'string'],\n [\n 'deno',\n () =>\n // @ts-ignore Deno types\n typeof Deno !== 'undefined' &&\n // @ts-ignore Deno types\n typeof Deno.version === 'object' &&\n // @ts-ignore Deno types\n typeof Deno.version.deno === 'string',\n ],\n];\n\nfunction resolveRuntime(config: ResolvedCommandKitConfig): CommandKitJsRuntime {\n const maybeRuntime = config?.experimental?.devServerRuntime;\n\n // TODO: once stable enough, we should try 'auto' option here\n if (!maybeRuntime) return 'node';\n\n if (maybeRuntime === 'auto') {\n for (const [runtime, check] of RuntimeLookup) {\n if (check()) {\n return runtime as CommandKitJsRuntime;\n }\n }\n\n return 'node';\n }\n\n return maybeRuntime;\n}\n\n/**\n * @private\n * @internal\n */\nexport function createAppProcess(\n fileName: string,\n cwd: string,\n isDev: boolean,\n config: ResolvedCommandKitConfig,\n) {\n if (!existsSync(join(cwd, fileName))) {\n panic(`Could not locate the entrypoint file: ${fileName}`);\n }\n\n const stdio = getStdio(isDev) as IOType[];\n const targetRuntime = resolveRuntime(config);\n\n const baseArgs =\n targetRuntime === 'node'\n ? [\n `--title=\"CommandKit ${isDev ? 'Development' : 'Production'}\"`,\n '--enable-source-maps',\n ]\n : [];\n\n const nodeOptions = process.env.CK_NODE_OPTIONS || process.env.NODE_OPTIONS;\n let nodeArgs = [...baseArgs];\n\n if (nodeOptions) {\n const options = nodeOptions.trim().split(/\\s+/);\n\n for (const option of options) {\n const optionName = option.split('=')[0];\n const existingIndex = nodeArgs.findIndex((arg) =>\n arg.startsWith(optionName),\n );\n\n if (existingIndex !== -1) {\n nodeArgs[existingIndex] = option;\n } else {\n nodeArgs.push(option);\n }\n }\n }\n\n nodeArgs.push(fileName);\n\n const ps = spawn(targetRuntime, nodeArgs, {\n cwd,\n windowsHide: true,\n env: isDev ? DevEnv() : ProdEnv(),\n stdio,\n });\n\n ps.stdout?.pipe(process.stdout);\n ps.stderr?.pipe(process.stderr);\n\n return ps;\n}\n"],"mappings":";;;;;;;;;;;;;AAYA,SAAS,SAAS,kBAA2B;AAC3C,KAAI,iBACF,QAAO;EAAC;EAAQ;EAAQ;EAAQ;EAAM;AAGxC,QAAO;EAAC;EAAQ;EAAQ;EAAO;;AAGjC,MAAM,gBAAwD,CAE9D,CAAC,aAAa,OAAE,QAAa,eAAe,OAAE,IAAO,YAAc,SAAS,EAC5E,CACA,cAGA,OAAM,SAAO,eAEb,OAAM,KAAM,YAAM,YAElB,OAAM,KAAM,QAAM,SAAQ,SAAU,CAAA;AAIpC,SAAS,eAAe,QAAuD;;CAC7E,MAAM,+EAAe,OAAQ,0FAAc;AAG3C,KAAI,CAAC,aAAc,QAAO;AAE1B,KAAI,iBAAiB,QAAQ;AAC3B,OAAK,MAAM,CAAC,SAAS,UAAU,cAC7B,KAAI,OAAO,CACT,QAAO;AAIX,SAAO;;AAGT,QAAO;;;;;;AAOT,SAAgB,iBAChB,UACA,KACA,OACA,QACA;;AACE,KAAI,6CAAiB,KAAK,SAAS,CAAC,CAClC,0BAAM,yCAAyC,WAAW;CAG5D,MAAM,QAAQ,SAAS,MAAM;CAC7B,MAAM,gBAAgB,eAAe,OAAO;CAE5C,MAAM,WACN,kBAAkB,SAClB,CACA,uBAAkB,QAAa,gBAAS,aAAgB,IACxD,uBAAkB,GAElB,EAAE;CAEF,MAAM,cAAc,QAAQ,IAAI,mBAAmB,QAAQ,IAAI;CAC/D,IAAI,WAAW,CAAC,GAAG,SAAS;AAE5B,KAAI,aAAa;EACf,MAAM,UAAU,YAAY,MAAM,CAAC,MAAM,MAAM;AAE/C,OAAK,MAAM,UAAU,SAAS;GAC5B,MAAM,aAAa,OAAO,MAAM,IAAI,CAAC;GACrC,MAAM,gBAAgB,SAAS,WAAW,QAC1C,IAAE,WAAI,WAAW,CAChB;AAED,OAAI,kBAAkB,GACpB,UAAS,iBAAiB;OAE1B,UAAS,KAAK,OAAO;;;AAK3B,UAAS,KAAK,SAAS;CAEvB,MAAM,mCAAW,eAAe,UAAU;EACxC;EACA,aAAa;EACb,KAAK,QAAQ,wBAAQ,GAAG,yBAAS;EACjC;EACD,CAAC;AAEF,kBAAG,wDAAQ,KAAK,QAAQ,OAAO;AAC/B,kBAAG,wDAAQ,KAAK,QAAQ,OAAO;AAE/B,QAAO"}
1
+ {"version":3,"file":"app-process.js","names":[],"sources":[],"mappings":""}
@@ -1,6 +1,6 @@
1
- import { G as CompilerPlugin } from "../analytics-engine-BYA0ongA.js";
2
- import { t as MaybeArray } from "../types-DZy7U-Ld.js";
3
-
1
+ import { G as CompilerPlugin } from "../analytics-engine-Bz1p7ud3.js";
2
+ import { t as MaybeArray } from "../types-ur7SvktF.js";
3
+ import "../index-DvqHpiuh.js";
4
4
  //#region src/cli/build.d.ts
5
5
  /**
6
6
  * @private
@@ -16,12 +16,7 @@ interface ApplicationBuildOptions {
16
16
  * @private
17
17
  * @internal
18
18
  */
19
- declare function buildApplication({
20
- plugins,
21
- rolldownPlugins,
22
- isDev,
23
- configPath
24
- }: ApplicationBuildOptions): Promise<void>;
19
+ declare function buildApplication({ plugins, rolldownPlugins, isDev, configPath }: ApplicationBuildOptions): Promise<void>;
25
20
  //#endregion
26
21
  export { ApplicationBuildOptions, buildApplication };
27
22
  //# sourceMappingURL=build.d.ts.map
package/dist/cli/build.js CHANGED
@@ -1,8 +1,12 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_chunk = require('../chunk-BE-pF4vm.js');
3
- const require_commandkit = require('../commandkit-DTqT800J.js');
2
+ const require_commandkit = require('../commandkit-gJ4YjTy4.js');
4
3
  const require_utils_constants = require('../utils/constants.js');
5
4
  const require_config_utils = require('../config/utils.js');
5
+ const require_app_router_CommandsRouter = require('../app/router/CommandsRouter.js');
6
+ const require_app_router_EventsRouter = require('../app/router/EventsRouter.js');
7
+ const require_app_router_TreeArtifact = require('../app/router/TreeArtifact.js');
8
+ require('../app/router/index.js');
9
+ const require_version = require('../version.js');
6
10
  const require_cli_common = require('./common.js');
7
11
  const require_cli_env = require('./env.js');
8
12
  const require_cli_type_checker = require('./type-checker.js');
@@ -87,12 +91,12 @@ async function buildApplication({ plugins, rolldownPlugins, isDev, configPath })
87
91
  },
88
92
  plugins: rolldownPlugins,
89
93
  platform: "node",
90
- skipNodeModulesBundle: true,
94
+ deps: { skipNodeModulesBundle: true },
91
95
  sourcemap: ((_config$sourceMap = config.sourceMap) === null || _config$sourceMap === void 0 ? void 0 : _config$sourceMap[isDev ? "development" : "production"]) ?? true,
92
96
  target: "node16",
93
97
  outDir: dest,
94
98
  env: mergeDefinitionsIfNeeded(config.env || {}, !!isDev),
95
- entry: Array.from(new Set([
99
+ entry: Array.from(/* @__PURE__ */ new Set([
96
100
  "src/**/*.{js,cjs,mjs,ts,cts,mts,jsx,tsx}",
97
101
  `!${config.distDir}`,
98
102
  "!.commandkit",
@@ -105,6 +109,7 @@ async function buildApplication({ plugins, rolldownPlugins, isDev, configPath })
105
109
  }, (_config$compilerOptio2 = config.compilerOptions) === null || _config$compilerOptio2 === void 0 ? void 0 : _config$compilerOptio2.tsdown));
106
110
  await require_cli_common.copyLocaleFiles("src", dest);
107
111
  await injectEntryFile(configPath || require_utils_constants.COMMANDKIT_CWD, !!isDev, !!(((_config$antiCrashScri = config.antiCrashScript) === null || _config$antiCrashScri === void 0 ? void 0 : _config$antiCrashScri[isDev ? "development" : "production"]) ?? (isDev ? true : false)), config.distDir);
112
+ if (config.experimental.pregenerateCommands) await emitPregeneratedRouterArtifact((0, node_path.join)(require_utils_constants.COMMANDKIT_CWD, dest));
108
113
  } catch (error) {
109
114
  console.error("Build failed:", error);
110
115
  if (error instanceof Error) console.error("Error details:", error.stack);
@@ -113,6 +118,27 @@ async function buildApplication({ plugins, rolldownPlugins, isDev, configPath })
113
118
  await pluginRuntime.destroy();
114
119
  }
115
120
  }
121
+ async function emitPregeneratedRouterArtifact(outputRoot) {
122
+ const commandEntrypoint = (0, node_path.join)(outputRoot, "app", "commands");
123
+ const eventsEntrypoint = (0, node_path.join)(outputRoot, "app", "events");
124
+ const commandsRouter = new require_app_router_CommandsRouter.CommandsRouter({ entrypoint: commandEntrypoint });
125
+ const eventsRouter = new require_app_router_EventsRouter.EventsRouter({ entrypoints: [eventsEntrypoint] });
126
+ const artifact = require_app_router_TreeArtifact.createRouterTreeArtifact({
127
+ outputRoot,
128
+ commandkitVersion: require_version.version,
129
+ commands: commandsRouter.isValidPath() ? await commandsRouter.scan() : {
130
+ commands: {},
131
+ middlewares: {},
132
+ treeNodes: {},
133
+ compiledRoutes: {},
134
+ diagnostics: []
135
+ },
136
+ events: eventsRouter.isValidPath() ? await eventsRouter.scan() : {}
137
+ });
138
+ const artifactDirectory = (0, node_path.join)(outputRoot, require_app_router_TreeArtifact.ROUTER_TREE_ARTIFACT_DIRECTORY);
139
+ await (0, node_fs_promises.mkdir)(artifactDirectory, { recursive: true });
140
+ await (0, node_fs_promises.writeFile)((0, node_path.join)(artifactDirectory, require_app_router_TreeArtifact.ROUTER_TREE_ARTIFACT_FILE), JSON.stringify(artifact, null, 2), "utf8");
141
+ }
116
142
  const envScript = (dev) => `// --- Environment Variables Loader ---
117
143
  const $env = [${(dev ? require_cli_env.devEnvFileArgs : require_cli_env.prodEnvFileArgs).map((p) => `"${p}"`).join(", ")}];
118
144
  for (const file of $env) {
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","names":[],"sources":["../../src/cli/build.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { rimraf } from 'rimraf';\nimport type { InlineConfig } from 'tsdown';\n\nimport { MaybeArray } from '../components';\nimport { loadConfigFile } from '../config/loader';\nimport { mergeDeep } from '../config/utils';\nimport { CompilerPlugin, CompilerPluginRuntime } from '../plugins';\nimport { COMMANDKIT_CWD } from '../utils/constants';\nimport { copyLocaleFiles, loadTsdown } from './common';\nimport { devEnvFileArgs, prodEnvFileArgs } from './env';\nimport { performTypeCheck } from './type-checker';\n\n/**\n * @private\n * @internal\n */\nexport interface ApplicationBuildOptions {\n plugins?: MaybeArray<CompilerPlugin>[] | Array<CompilerPlugin>;\n rolldownPlugins?: any[];\n isDev?: boolean;\n configPath?: string;\n}\n\n// emit public env variables and given env variables\n/**\n * @private\n * @internal\n */\nfunction mergeDefinitionsIfNeeded(env: Record<string, string>, isDev: boolean) {\n const values = Object.fromEntries(\n Object.entries(process.env).filter(\n ([k]) => !(k in env) && k.startsWith('COMMANDKIT_PUBLIC_'),\n ),\n );\n\n return {\n ...env,\n ...values,\n ...(isDev\n ? {\n NODE_ENV: 'development',\n COMMANDKIT_BOOTSTRAP_MODE: 'development',\n COMMANDKIT_IS_DEV: 'true',\n COMMANDKIT_IS_TEST: 'false',\n }\n : {\n NODE_ENV: 'production',\n COMMANDKIT_BOOTSTRAP_MODE: 'production',\n COMMANDKIT_IS_DEV: 'false',\n COMMANDKIT_IS_TEST: 'false',\n }),\n };\n}\n\n/**\n * @private\n * @internal\n */\nexport async function buildApplication({\n plugins,\n rolldownPlugins,\n isDev,\n configPath,\n}: ApplicationBuildOptions) {\n const { build } = await loadTsdown();\n const config = await loadConfigFile(configPath);\n\n if (!isDev && !config?.typescript?.ignoreBuildErrors) {\n await performTypeCheck(configPath || COMMANDKIT_CWD);\n }\n\n const pluginRuntime = new CompilerPluginRuntime(\n (plugins || []) as CompilerPlugin[],\n !!isDev,\n );\n\n rolldownPlugins ??= [];\n\n rolldownPlugins.push(pluginRuntime.toJSON());\n\n try {\n const dest = isDev ? '.commandkit' : config.distDir;\n\n // Clean the destination directory\n await rimraf(dest);\n\n await pluginRuntime.init();\n\n await build(\n mergeDeep(\n {\n watch: false,\n dts: false,\n clean: true,\n format: ['esm'],\n shims: true,\n minify: false,\n logLevel: !!isDev ? 'silent' : 'info',\n inputOptions: {\n transform: {\n jsx: {\n runtime: 'automatic',\n importSource: 'commandkit',\n },\n },\n checks: {\n circularDependency: true,\n },\n onwarn: (warning, defaultWarn) => {\n if (warning?.message?.includes('compilerOptions.jsx')) return;\n\n return defaultWarn(warning);\n },\n onLog: (level, log, defaultLog) => {\n if (isDev) return;\n\n return defaultLog(level, log);\n },\n moduleTypes: {\n '.json': 'json',\n '.node': 'binary',\n },\n },\n outExtensions: (context) => {\n return {\n dts: '.d.ts',\n js: context.format === 'cjs' ? '.cjs' : '.js',\n };\n },\n plugins: rolldownPlugins,\n platform: 'node',\n skipNodeModulesBundle: true,\n sourcemap:\n config.sourceMap?.[isDev ? 'development' : 'production'] ?? true,\n target: 'node16',\n outDir: dest,\n env: mergeDefinitionsIfNeeded(config.env || {}, !!isDev),\n entry: Array.from(\n new Set([\n 'src/**/*.{js,cjs,mjs,ts,cts,mts,jsx,tsx}',\n `!${config.distDir}`,\n '!.commandkit',\n '!**/*.test.*',\n '!**/*.spec.*',\n ...(config.entrypoints ?? []),\n ]),\n ),\n outputOptions: {\n sanitizeFileName: (name) => name.replace(/\\0/g, ''),\n },\n unbundle: isDev\n ? true\n : (config.compilerOptions?.disableChunking ?? false),\n } satisfies InlineConfig,\n config.compilerOptions?.tsdown,\n ),\n );\n\n await copyLocaleFiles('src', dest);\n await injectEntryFile(\n configPath || COMMANDKIT_CWD,\n !!isDev,\n !!(\n config.antiCrashScript?.[isDev ? 'development' : 'production'] ??\n (isDev ? true : false)\n ),\n config.distDir,\n );\n } catch (error) {\n console.error('Build failed:', error);\n if (error instanceof Error) {\n console.error('Error details:', error.stack);\n }\n process.exit(1); // Force exit on error\n } finally {\n // Ensure plugins are cleaned up\n await pluginRuntime.destroy();\n }\n}\n\nconst envScript = (dev: boolean) => `// --- Environment Variables Loader ---\nconst $env = [${(dev ? devEnvFileArgs : prodEnvFileArgs).map((p) => `\"${p}\"`).join(', ')}];\nfor (const file of $env) {\n try {\n process.loadEnvFile(file);\n console.log('\\\\x1b[36m✔ Loaded \\\\x1b[0m\\\\x1b[33m%s\\\\x1b[0m', file);\n } catch {}\n}\n`;\n\nconst antiCrashScript = [\n '// --- CommandKit Anti-Crash Monitor ---',\n \" // 'uncaughtException' event is supposed to be used to perform synchronous cleanup before shutting down the process\",\n ' // instead of using it as a means to resume operation.',\n ' // But it exists here due to compatibility reasons with discord bot ecosystem.',\n \" const p = (t) => `\\\\x1b[31m${t}\\\\x1b[0m`, b = '[CommandKit Anti-Crash Monitor]', l = console.log, e1 = 'uncaughtException', e2 = 'unhandledRejection';\",\n ' if (!process.eventNames().includes(e1)) // skip if it is already handled',\n ' process.on(e1, (e) => {',\n ' l(p(`${b} Uncaught Exception`)); l(p(b), p(e.stack || e));',\n ' })',\n ' if (!process.eventNames().includes(e2)) // skip if it is already handled',\n ' process.on(e2, (r) => {',\n ' l(p(`${b} Unhandled promise rejection`)); l(p(`${b} ${r.stack || r}`));',\n ' });',\n '// --- CommandKit Anti-Crash Monitor ---',\n].join('\\n');\n\nconst wrapInAsyncIIFE = (code: string[]) =>\n `;await (async () => {\\n${code.join('\\n\\n')}\\n})();`;\n\nasync function injectEntryFile(\n configPath: string,\n isDev: boolean,\n emitAntiCrashScript: boolean,\n distDir?: string,\n) {\n const dist = isDev ? '.commandkit' : distDir || 'dist';\n const entryFilePath = join(configPath, dist, 'index.js');\n\n // skip if the entry file already exists\n if (existsSync(entryFilePath)) return;\n\n const code = `/* Entrypoint File Generated By CommandKit */\n${isDev ? `\\n\\n// Injected for development\\n${wrapInAsyncIIFE([envScript(isDev), emitAntiCrashScript ? antiCrashScript : ''])}\\n\\n` : wrapInAsyncIIFE([envScript(isDev)])}\n\n\nasync function bootstrap() {\n const { Client } = await import('discord.js');\n const { commandkit } = await import('commandkit');\n const app = await import('./app.js').then((m) => m.default ?? m);\n\n if (!app || !(app instanceof Client)) {\n throw new Error('The app file must default export the discord.js client instance');\n }\n\n commandkit.setClient(app);\n\n await commandkit.start();\n}\n\nawait bootstrap().catch((e) => {\n const error = new Error('Failed to bootstrap the application', { cause: e });\n console.error(error);\n console.error(\\`Caused by \\${e?.stack || e}\\`);\n})\n`;\n\n await writeFile(entryFilePath, code);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"build.js","names":[],"sources":[],"mappings":""}
@@ -1,7 +1,4 @@
1
- import { m as ResolvedCommandKitConfig } from "../analytics-engine-BYA0ongA.js";
2
- import * as tsdown from "tsdown";
3
- import * as typescript from "typescript";
4
-
1
+ import { m as ResolvedCommandKitConfig } from "../analytics-engine-Bz1p7ud3.js";
5
2
  //#region src/cli/common.d.ts
6
3
  /**
7
4
  * @private
@@ -23,7 +20,7 @@ declare function panic(message: any): never;
23
20
  * @private
24
21
  * @internal
25
22
  */
26
- declare function loadTypeScript(e?: string): Promise<typeof typescript>;
23
+ declare function loadTypeScript(e?: string): Promise<typeof import("typescript")>;
27
24
  /**
28
25
  * @private
29
26
  * @internal
@@ -43,7 +40,7 @@ declare function copyLocaleFiles(_from: string, _to: string): Promise<void>;
43
40
  * @private
44
41
  * @internal
45
42
  */
46
- declare function loadTsdown(): Promise<typeof tsdown>;
43
+ declare function loadTsdown(): Promise<typeof import('tsdown')>;
47
44
  //#endregion
48
45
  export { copyLocaleFiles, erase, findEntrypoint, loadConfigFileFromPath, loadTsdown, loadTypeScript, panic, write };
49
46
  //# sourceMappingURL=common.d.ts.map
@@ -1,10 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_chunk = require('../chunk-BE-pF4vm.js');
2
+ const require_rolldown_runtime = require('../rolldown-runtime-C_NdSu1c.js');
3
3
  const require_utils_colors = require('../utils/colors.js');
4
4
  const require_utils_constants = require('../utils/constants.js');
5
5
  const require_utils_types_package = require('../utils/types-package.js');
6
6
  let node_fs = require("node:fs");
7
- node_fs = require_chunk.__toESM(node_fs);
7
+ node_fs = require_rolldown_runtime.__toESM(node_fs);
8
8
  let node_path = require("node:path");
9
9
  let rimraf = require("rimraf");
10
10
  let node_child_process = require("node:child_process");
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","names":[],"sources":["../../src/cli/common.ts"],"sourcesContent":["import { rimrafSync } from 'rimraf';\nimport { join } from 'node:path';\nimport fs from 'node:fs';\nimport colors from '../utils/colors';\nimport { ResolvedCommandKitConfig } from '../config/utils';\nimport { generateTypesPackage } from '../utils/types-package';\nimport { execSync } from 'node:child_process';\nimport { COMMANDKIT_CWD } from '../utils/constants';\n\nlet ts: typeof import('typescript') | undefined;\nlet tsdown: typeof import('tsdown') | undefined;\n\n/**\n * @private\n * @internal\n */\nexport function write(message: any) {\n process.stdout.write(message);\n process.stdout.write('\\n');\n}\n\n/**\n * @private\n * @internal\n */\nexport function findEntrypoint(dir: string) {\n const target = join(dir, 'sharding-manager.js');\n\n // if sharding manager exists, return that file instead\n if (fs.existsSync(target)) return target;\n\n return join(dir, 'index.js');\n}\n\n/**\n * @returns {never}\n * @internal\n * @private\n */\nexport function panic(message: any): never {\n write(colors.red(`Error: ${message}`));\n process.exit(1);\n}\n\n/**\n * @private\n * @internal\n */\nasync function ensureTypeScript(target: string) {\n const isTypeScript = /\\.(c|m)?tsx?$/.test(target);\n\n if (!isTypeScript) return false;\n if (process.features.typescript) return true;\n\n await loadTypeScript();\n\n return true;\n}\n\nlet packageManager: string;\n\n/**\n * @private\n * @internal\n */\nfunction detectPackageManager() {\n if (packageManager) return packageManager;\n\n const lockfiles = {\n 'yarn.lock': 'yarn',\n 'pnpm-lock.yaml': 'pnpm',\n 'package-lock.json': 'npm',\n 'bun.lock': 'bun',\n 'bun.lockb': 'bun',\n 'deno.lock': 'deno',\n };\n\n for (const [lockfile, manager] of Object.entries(lockfiles)) {\n if (fs.existsSync(join(COMMANDKIT_CWD, lockfile))) {\n packageManager = manager;\n break;\n }\n }\n\n if (!packageManager) {\n packageManager = 'npm';\n }\n\n return packageManager;\n}\n\n/**\n * @private\n * @internal\n */\nexport async function loadTypeScript(e?: string) {\n if (ts) return ts;\n\n try {\n ts = await import('typescript');\n } catch (e) {\n if (e instanceof Error && 'code' in e && e.code === 'MODULE_NOT_FOUND') {\n try {\n const packageManager = detectPackageManager();\n const prefix = packageManager === 'deno' ? 'npm:' : '';\n execSync(`${packageManager} add -D ${prefix}typescript`, {\n stdio: 'inherit',\n cwd: COMMANDKIT_CWD,\n });\n\n console.log(\n colors.cyan(\n `TypeScript has been installed automatically, restarting...`,\n ),\n );\n\n ts = await import('typescript');\n\n return ts;\n } catch {\n panic(\n 'TypeScript is not installed and could not be installed automatically. Please install it manually.',\n );\n }\n }\n panic(e || 'TypeScript must be installed to use TypeScript config files.');\n }\n\n return ts;\n}\n\n/**\n * @private\n * @internal\n */\nexport async function loadConfigFileFromPath(\n target: string,\n): Promise<ResolvedCommandKitConfig> {\n await ensureExists(target);\n\n const isTs = await ensureTypeScript(target);\n\n let generatedFilePath: string | undefined;\n\n if (isTs && ts) {\n const { transpileModule } = ts;\n const src = fs.readFileSync(target, 'utf8');\n const { outputText } = transpileModule(src, {\n compilerOptions: {\n module: ts.ModuleKind.ESNext,\n target: ts.ScriptTarget.ESNext,\n moduleResolution: ts.ModuleResolutionKind.NodeNext,\n },\n fileName: target,\n });\n\n await generateTypesPackage();\n\n const nodeModulesPath = COMMANDKIT_CWD;\n\n const tmpFile = join(nodeModulesPath, 'compiled-commandkit.config.mjs');\n\n fs.writeFileSync(tmpFile, outputText);\n\n generatedFilePath = tmpFile;\n\n target = tmpFile;\n }\n\n /**\n * @type {import('..').CommandKitConfig}\n */\n const config = await import(`file://${target}`).then(\n (conf) => conf.default || conf,\n );\n\n if (generatedFilePath) {\n try {\n fs.unlinkSync(generatedFilePath);\n } catch {\n //\n }\n }\n\n return config;\n}\n\n/**\n * @private\n * @internal\n */\nasync function ensureExists(loc: string) {\n const exists = fs.existsSync(loc);\n\n if (!exists) {\n throw new Error(`File not found: ${loc}`);\n }\n}\n\n/**\n * @private\n * @internal\n */\nexport function erase(dir: string) {\n rimrafSync(dir);\n}\n\n/**\n * @private\n * @internal\n */\nexport async function copyLocaleFiles(_from: string, _to: string) {\n const resolvedFrom = join(COMMANDKIT_CWD, _from);\n const resolvedTo = join(COMMANDKIT_CWD, _to);\n\n const localePaths = ['app/locales'];\n const srcLocalePaths = localePaths.map((path) => join(resolvedFrom, path));\n const destLocalePaths = localePaths.map((path) => join(resolvedTo, path));\n\n for (const localePath of srcLocalePaths) {\n if (!fs.existsSync(localePath)) {\n continue;\n }\n\n // copy localePath to destLocalePath\n const destLocalePath = destLocalePaths[srcLocalePaths.indexOf(localePath)];\n\n if (!fs.existsSync(destLocalePath)) {\n fs.promises.mkdir(destLocalePath, { recursive: true }).catch(() => {});\n }\n\n await fs.promises\n .cp(localePath, destLocalePath, {\n recursive: true,\n force: true,\n })\n .catch(() => {});\n }\n}\n\n/**\n * @private\n * @internal\n */\nexport async function loadTsdown(): Promise<typeof import('tsdown')> {\n if (tsdown) return tsdown;\n\n tsdown = await import('tsdown');\n\n return tsdown;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"common.js","names":[],"sources":[],"mappings":""}
@@ -1,7 +1,6 @@
1
- import { o as HMREventType } from "../constants-GWSfiS4h.js";
2
- import { ChildProcess } from "node:child_process";
1
+ import { o as HMREventChangeType, s as HMREventType } from "../constants-kWgE3L9F.js";
3
2
  import { watch } from "chokidar";
4
-
3
+ import { ChildProcess } from "node:child_process";
5
4
  //#region src/cli/development.d.ts
6
5
  /**
7
6
  * @private
@@ -16,8 +15,8 @@ declare function bootstrapDevelopmentServer(configPath?: string): Promise<{
16
15
  watcher: ReturnType<typeof watch>;
17
16
  isConfigUpdate: (path: string) => boolean;
18
17
  performHMR: (path?: string) => Promise<boolean>;
19
- hmrHandler: (path: string) => Promise<void>;
20
- sendHmrEvent: (event: HMREventType, path?: string) => Promise<boolean>;
18
+ hmrHandler: (path: string, changeType?: HMREventChangeType) => Promise<void>;
19
+ sendHmrEvent: (event: HMREventType, path?: string, changeType?: HMREventChangeType) => Promise<boolean>;
21
20
  getProcess: () => ChildProcess | null;
22
21
  buildAndStart: typeof buildAndStart;
23
22
  }>;
@@ -1,7 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_chunk = require('../chunk-BE-pF4vm.js');
3
2
  const require_utils_colors = require('../utils/colors.js');
4
- const require_commandkit = require('../commandkit-DTqT800J.js');
3
+ const require_commandkit = require('../commandkit-gJ4YjTy4.js');
5
4
  const require_plugins_CompilerPlugin = require('../plugins/CompilerPlugin.js');
6
5
  const require_utils_constants = require('../utils/constants.js');
7
6
  const require_cli_common = require('./common.js');
@@ -71,13 +70,14 @@ async function bootstrapDevelopmentServer(configPath) {
71
70
  });
72
71
  });
73
72
  };
74
- const sendHmrEvent = async (event, path$1) => {
73
+ const sendHmrEvent = async (event, path$1, changeType) => {
75
74
  if (!ps || !ps.send) return false;
76
75
  const messageId = (0, node_crypto.randomUUID)();
77
76
  const messagePromise = waitForAcknowledgment(messageId);
78
77
  ps.send({
79
78
  event,
80
79
  path: path$1,
80
+ changeType,
81
81
  id: messageId
82
82
  });
83
83
  try {
@@ -93,7 +93,7 @@ async function bootstrapDevelopmentServer(configPath) {
93
93
  return false;
94
94
  }
95
95
  };
96
- const performHMR = require_commandkit.debounce(async (path$2) => {
96
+ const performHMR = require_commandkit.debounce(async (path$2, changeType) => {
97
97
  if (!path$2 || !ps) return false;
98
98
  let eventType = null;
99
99
  let eventDescription = "";
@@ -110,7 +110,7 @@ async function bootstrapDevelopmentServer(configPath) {
110
110
  if (eventType) {
111
111
  console.log(`${require_utils_colors.default.cyanBright(`Attempting to reload ${eventDescription} at`)} ${require_utils_colors.default.yellowBright(path$2)}`);
112
112
  await buildAndStart(cwd, true);
113
- if (await sendHmrEvent(eventType, path$2)) {
113
+ if (await sendHmrEvent(eventType, path$2, changeType)) {
114
114
  console.log(`${require_utils_colors.default.greenBright(`Successfully hot reloaded ${eventDescription} at`)} ${require_utils_colors.default.yellowBright(path$2)}`);
115
115
  return true;
116
116
  }
@@ -123,9 +123,9 @@ async function bootstrapDevelopmentServer(configPath) {
123
123
  console.log(require_utils_colors.default.yellowBright("It seems like commandkit config file was updated, please restart the server manually to apply changes."));
124
124
  return isConfig;
125
125
  };
126
- const hmrHandler = async (path$4) => {
126
+ const hmrHandler = async (path$4, changeType = require_utils_constants.HMREventChangeType.Change) => {
127
127
  if (isConfigUpdate(path$4)) return;
128
- if (await performHMR(path$4)) return;
128
+ if (await performHMR(path$4, changeType)) return;
129
129
  console.log(`${require_utils_colors.default.yellowBright("⚡️ Performing full restart due to the changes in")} ${require_utils_colors.default.cyanBright(path$4)}`);
130
130
  ps === null || ps === void 0 || ps.kill();
131
131
  ps = await buildAndStart(cwd);
@@ -148,10 +148,10 @@ async function bootstrapDevelopmentServer(configPath) {
148
148
  break;
149
149
  }
150
150
  });
151
- watcher.on("change", hmrHandler);
152
- watcher.on("add", hmrHandler);
153
- watcher.on("unlink", hmrHandler);
154
- watcher.on("unlinkDir", hmrHandler);
151
+ watcher.on("change", (path$5) => hmrHandler(path$5, require_utils_constants.HMREventChangeType.Change));
152
+ watcher.on("add", (path$6) => hmrHandler(path$6, require_utils_constants.HMREventChangeType.Add));
153
+ watcher.on("unlink", (path$7) => hmrHandler(path$7, require_utils_constants.HMREventChangeType.Unlink));
154
+ watcher.on("unlinkDir", (path$8) => hmrHandler(path$8, require_utils_constants.HMREventChangeType.UnlinkDir));
155
155
  watcher.on("error", (e) => {
156
156
  console.error(e);
157
157
  });
@@ -1 +1 @@
1
- {"version":3,"file":"development.js","names":[],"sources":["../../src/cli/development.ts"],"sourcesContent":["import { join } from 'path';\nimport { getPossibleConfigPaths, loadConfigFile } from '../config/loader';\nimport { isCompilerPlugin } from '../plugins';\nimport { createAppProcess } from './app-process';\nimport { buildApplication } from './build';\nimport { watch } from 'chokidar';\nimport { debounce } from '../utils/utilities';\nimport colors from '../utils/colors';\nimport { ChildProcess } from 'node:child_process';\nimport { setTimeout as sleep } from 'node:timers/promises';\nimport { randomUUID } from 'node:crypto';\nimport { COMMANDKIT_CWD, HMREventType } from '../utils/constants';\nimport { findEntrypoint } from './common';\n\n/**\n * @private\n * @internal\n */\nasync function buildAndStart(configPath: string, skipStart = false) {\n const config = await loadConfigFile(configPath);\n const mainFile = findEntrypoint('.commandkit');\n\n await buildApplication({\n configPath,\n isDev: true,\n plugins: config.plugins.flat(2).filter((p) => isCompilerPlugin(p)),\n rolldownPlugins: config.rolldownPlugins,\n });\n\n if (skipStart) return null as never;\n\n const ps = createAppProcess(mainFile, configPath, true, config);\n\n return ps;\n}\n\n/**\n * @private\n * @internal\n */\nconst isCommandSource = (p: string) =>\n p.replaceAll('\\\\', '/').includes('src/app/commands');\n\n/**\n * @private\n * @internal\n */\nconst isEventSource = (p: string) =>\n p.replaceAll('\\\\', '/').includes('src/app/events');\n\n/**\n * @private\n * @internal\n */\nexport async function bootstrapDevelopmentServer(configPath?: string): Promise<{\n watcher: ReturnType<typeof watch>;\n isConfigUpdate: (path: string) => boolean;\n performHMR: (path?: string) => Promise<boolean>;\n hmrHandler: (path: string) => Promise<void>;\n sendHmrEvent: (event: HMREventType, path?: string) => Promise<boolean>;\n getProcess: () => ChildProcess | null;\n buildAndStart: typeof buildAndStart;\n}> {\n process.env.COMMANDKIT_BOOTSTRAP_MODE = 'development';\n process.env.COMMANDKIT_INTERNAL_IS_CLI_PROCESS = 'true';\n const start = performance.now();\n const cwd = configPath || COMMANDKIT_CWD;\n const configPaths = getPossibleConfigPaths(cwd);\n\n const watcher = watch([join(cwd, 'src'), ...configPaths], {\n ignoreInitial: true,\n });\n\n let ps: ChildProcess | null = null;\n\n const waitForAcknowledgment = (messageId: string): Promise<boolean> => {\n return new Promise((resolve) => {\n if (!ps) return resolve(false);\n\n let _handled = false;\n const onMessage = (message: any) => {\n _handled = true;\n if (typeof message !== 'object' || message === null) return;\n\n const { type, id, handled } = message;\n if (type === 'commandkit-hmr-ack' && id === messageId) {\n ps?.off('message', onMessage);\n resolve(!!handled);\n }\n };\n\n ps.once('message', onMessage);\n\n if (!_handled) {\n sleep(3000).then(() => {\n ps?.off('message', onMessage);\n resolve(false);\n });\n }\n });\n };\n\n const sendHmrEvent = async (\n event: HMREventType,\n path?: string,\n ): Promise<boolean> => {\n if (!ps || !ps.send) return false;\n\n const messageId = randomUUID();\n const messagePromise = waitForAcknowledgment(messageId);\n\n ps.send({ event, path, id: messageId });\n\n // Wait for acknowledgment or timeout after 3 seconds\n try {\n let triggered = false;\n const res = !!(await Promise.race([\n messagePromise,\n sleep(3000).then(() => {\n if (!triggered) {\n console.warn(\n colors.yellow(\n `HMR acknowledgment timed out for event ${event} on path ${path}`,\n ),\n );\n }\n return false;\n }),\n ]));\n\n triggered = true;\n\n return res;\n } catch (error) {\n console.error(\n colors.red(`Error waiting for HMR acknowledgment: ${error}`),\n );\n return false;\n }\n };\n\n const performHMR = debounce(async (path?: string): Promise<boolean> => {\n if (!path || !ps) return false;\n\n let eventType: HMREventType | null = null;\n let eventDescription = '';\n\n if (isCommandSource(path)) {\n eventType = HMREventType.ReloadCommands;\n eventDescription = 'command(s)';\n } else if (isEventSource(path)) {\n eventType = HMREventType.ReloadEvents;\n eventDescription = 'event(s)';\n } else {\n eventType = HMREventType.Unknown;\n eventDescription = 'unknown source';\n }\n\n if (eventType) {\n console.log(\n `${colors.cyanBright(`Attempting to reload ${eventDescription} at`)} ${colors.yellowBright(path)}`,\n );\n\n await buildAndStart(cwd, true);\n const hmrHandled = await sendHmrEvent(eventType, path);\n\n if (hmrHandled) {\n console.log(\n `${colors.greenBright(`Successfully hot reloaded ${eventDescription} at`)} ${colors.yellowBright(path)}`,\n );\n return true;\n }\n }\n\n return false;\n }, 700);\n\n const isConfigUpdate = (path: string) => {\n const isConfig = configPaths.some((configPath) => path === configPath);\n\n if (!isConfig) return false;\n\n console.log(\n colors.yellowBright(\n 'It seems like commandkit config file was updated, please restart the server manually to apply changes.',\n ),\n );\n\n return isConfig;\n };\n\n const hmrHandler = async (path: string) => {\n if (isConfigUpdate(path)) return;\n const hmr = await performHMR(path);\n if (hmr) return;\n\n console.log(\n `${colors.yellowBright('⚡️ Performing full restart due to the changes in')} ${colors.cyanBright(path)}`,\n );\n\n ps?.kill();\n ps = await buildAndStart(cwd);\n };\n\n process.stdin.on('data', async (d) => {\n const command = d.toString().trim();\n\n switch (command) {\n case 'r':\n console.log(`Received restart command, restarting...`);\n ps?.kill();\n ps = null;\n ps = await buildAndStart(cwd);\n break;\n case 'rc':\n console.log(`Received reload commands command, reloading...`);\n await sendHmrEvent(HMREventType.ReloadCommands);\n break;\n case 're':\n console.log(`Received reload events command, reloading...`);\n await sendHmrEvent(HMREventType.ReloadEvents);\n break;\n break;\n }\n });\n\n watcher.on('change', hmrHandler);\n watcher.on('add', hmrHandler);\n watcher.on('unlink', hmrHandler);\n watcher.on('unlinkDir', hmrHandler);\n watcher.on('error', (e) => {\n console.error(e);\n });\n\n console.log(`${colors.greenBright('Bootstrapped CommandKit Development Environment in')} ${colors.yellowBright(`${(performance.now() - start).toFixed(2)}ms`)}\n${colors.greenBright('Watching for changes in')} ${colors.yellowBright('src')} ${colors.greenBright('directory')}\n\n${colors.greenBright('Commands:')}\n${colors.yellowBright('r')} - Restart the server\n${colors.yellowBright('rc')} - Reload all commands\n${colors.yellowBright('re')} - Reload all events`);\n\n const buildStart = performance.now();\n\n ps = await buildAndStart(cwd);\n\n const buildEnd = performance.now();\n\n console.log(\n `\\n${colors.greenBright('Development mode compilation took')} ${colors.yellowBright(`${(buildEnd - buildStart).toFixed(2)}ms`)}\\n`,\n );\n\n return {\n watcher,\n isConfigUpdate,\n performHMR,\n hmrHandler,\n sendHmrEvent,\n getProcess: () => ps,\n buildAndStart,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"development.js","names":[],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","names":[],"sources":["../../src/cli/env.ts"],"sourcesContent":["/**\n * @private\n * @internal\n */\nexport function DevEnv(_static = false) {\n const common = {\n NODE_ENV: 'development',\n COMMANDKIT_IS_DEV: 'true',\n COMMANDKIT_INTERNAL_IS_CLI_PROCESS: 'false',\n COMMANDKIT_IS_BUILD: 'false',\n };\n\n if (_static) return Object.assign({}, common);\n\n return Object.assign({}, process.env, common);\n}\n\n/**\n * @private\n * @internal\n */\nexport function ProdEnv(_static = false) {\n const common = {\n NODE_ENV: 'production',\n COMMANDKIT_IS_DEV: 'false',\n COMMANDKIT_INTERNAL_IS_CLI_PROCESS: 'false',\n COMMANDKIT_IS_BUILD: 'false',\n };\n\n if (_static) return Object.assign({}, common);\n\n return Object.assign({}, process.env, common);\n}\n\n/**\n * @private\n * @internal\n */\nexport const CommonEnvFiles = ['.env', '.env.local'];\n/**\n * @private\n * @internal\n */\nexport const DevEnvFiles = ['.env.development', '.env.development.local'];\n/**\n * @private\n * @internal\n */\nexport const ProdEnvFiles = ['.env.production', '.env.production.local'];\n/**\n * @private\n * @internal\n */\nexport const devEnvFileArgs = [...CommonEnvFiles, ...DevEnvFiles];\n/**\n * @private\n * @internal\n */\nexport const prodEnvFileArgs = [...CommonEnvFiles, ...ProdEnvFiles];\n/**\n * @private\n * @internal\n */\nexport function setCLIEnv() {\n process.env.COMMANDKIT_IS_CLI = 'true';\n}\n"],"mappings":";;;;;;;AAIA,SAAgB,OAAO,UAAU,OAAO;CACtC,MAAM,SAAS;EACb,UAAU;EACV,mBAAmB;EACnB,oCAAoC;EACpC,qBAAqB;EACtB;AAED,KAAI,QAAS,QAAO,OAAO,OAAO,EAAE,EAAE,OAAO;AAE7C,QAAO,OAAO,OAAO,EAAE,EAAE,QAAQ,KAAK,OAAO;;;;;;AAO/C,SAAgB,QAAQ,UAAU,OAAO;CACvC,MAAM,SAAS;EACb,UAAU;EACV,mBAAmB;EACnB,oCAAoC;EACpC,qBAAqB;EACtB;AAED,KAAI,QAAS,QAAO,OAAO,OAAO,EAAE,EAAE,OAAO;AAE7C,QAAO,OAAO,OAAO,EAAE,EAAE,QAAQ,KAAK,OAAO;;;;;;AAO/C,MAAa,iBAAiB,CAAC,QAAQ,aAAa;;;;;AAKpD,MAAa,cAAc,CAAC,oBAAoB,yBAAyB;;;;;AAKzE,MAAa,eAAe,CAAC,mBAAmB,wBAAwB;;;;;AAKxE,MAAa,iBAAiB,CAAC,GAAG,gBAAgB,GAAG,YAAY;;;;;AAKjE,MAAa,kBAAkB,CAAC,GAAG,gBAAgB,GAAG,aAAa;;;;;AAKnE,SAAgB,YAAY;AAC1B,SAAQ,IAAI,oBAAoB"}
1
+ {"version":3,"file":"env.js","names":[],"sources":[],"mappings":""}
@@ -1,5 +1,4 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_chunk = require('../chunk-BE-pF4vm.js');
3
2
  const require_utils_colors = require('../utils/colors.js');
4
3
  const require_utils_constants = require('../utils/constants.js');
5
4
  const require_cli_common = require('./common.js');
@@ -1 +1 @@
1
- {"version":3,"file":"generators.js","names":[],"sources":["../../src/cli/generators.ts"],"sourcesContent":["import { mkdir, writeFile, readdir } from 'fs/promises';\nimport { join } from 'path';\nimport { panic } from './common';\nimport { existsSync } from 'fs';\nimport colors from '../utils/colors';\nimport { COMMANDKIT_CWD } from '../utils/constants';\n\nconst BASE_PATH = COMMANDKIT_CWD;\nconst COMMANDS_DIR = join(BASE_PATH, 'src/app/commands');\nconst EVENTS_DIR = join(BASE_PATH, 'src/app/events');\n\n/**\n * @private\n * @internal\n */\nconst formatPath = (path: string) =>\n path.replace(COMMANDKIT_CWD, '.').replace(/\\\\/g, '/');\n\n/**\n * @private\n * @internal\n */\nfunction determineExtension() {\n return existsSync(join(BASE_PATH, 'tsconfig.json')) ? 'ts' : 'js';\n}\n\n/**\n * @private\n * @internal\n */\nfunction TS_COMMAND_SOURCE(name: string) {\n return `import type { CommandData, ChatInputCommand, MessageCommand } from 'commandkit';\n\nexport const command: CommandData = {\n name: '${name}',\n description: '${name} command',\n};\n\nexport const chatInput: ChatInputCommand = async (ctx) => {\n await ctx.interaction.reply('Hello from ${name}!');\n};\n\nexport const message: MessageCommand = async (ctx) => {\n await ctx.message.reply('Hello from ${name}!');\n};\n`;\n}\n\n/**\n * @private\n * @internal\n */\nfunction JS_COMMAND_SOURCE(name: string) {\n return `/**\n * @type {import('commandkit').CommandData}\n */\nexport const command = {\n name: '${name}',\n description: '${name} command',\n};\n\n/**\n * @type {import('commandkit').ChatInputCommand}\n */\nexport const chatInput = async (ctx) => {\n await ctx.interaction.reply('Hello from ${name}!');\n};\n\n/**\n * @type {import('commandkit').MessageCommand}\n */\nexport const message = async (ctx) => {\n await ctx.message.reply('Hello from ${name}!');\n};\n`;\n}\n\n/**\n * @private\n * @internal\n */\nfunction TS_EVENT_SOURCE(name: string) {\n const eventName = name[0].toUpperCase() + name.slice(1);\n return `import type { EventHandler } from 'commandkit';\n\nconst ${eventName}: EventHandler<'${name}'> = async () => {\n console.log('${name} event fired!');\n};\n\nexport default ${eventName};\n`;\n}\n\n/**\n * @private\n * @internal\n */\nfunction JS_EVENT_SOURCE(name: string) {\n const eventName = `on${name[0].toUpperCase() + name.slice(1)}`;\n return `/**\n * @type {import('commandkit').EventHandler<'${name}'>}\n */\nconst ${eventName} = async () => {\n console.log('${name} event fired!');\n};\n\nexport default ${eventName};\n`;\n}\n\n/**\n * @private\n * @internal\n */\nexport async function generateCommand(name: string, customPath?: string) {\n const cmdPath = join(customPath || COMMANDS_DIR);\n if (!existsSync(cmdPath)) await mkdir(cmdPath, { recursive: true });\n\n const ext = determineExtension();\n const isTypeScript = ext === 'ts';\n\n const fileName = `${name}.${ext}`;\n\n if (existsSync(join(cmdPath, fileName))) {\n panic(`Command ${name} already exists.`);\n }\n\n const commandFile = isTypeScript\n ? TS_COMMAND_SOURCE(name)\n : JS_COMMAND_SOURCE(name);\n\n await writeFile(join(cmdPath, fileName), commandFile);\n\n console.log(\n colors.green(\n `Command ${colors.magenta(name)} created at ${colors.blue(formatPath(`${cmdPath}/${fileName}`))}`,\n ),\n );\n}\n\n/**\n * @private\n * @internal\n */\nexport async function generateEvent(name: string, customPath?: string) {\n const eventPath = join(customPath || EVENTS_DIR, name);\n if (!existsSync(eventPath)) await mkdir(eventPath, { recursive: true });\n\n const ext = determineExtension();\n const isTypeScript = ext === 'ts';\n\n let filename = `event.${ext}`;\n\n if (existsSync(join(eventPath, filename))) {\n const count = (await readdir(eventPath)).length;\n filename = `${String(count).padStart(2, '0')}_${filename}`;\n }\n\n const eventFile = isTypeScript\n ? TS_EVENT_SOURCE(name)\n : JS_EVENT_SOURCE(name);\n\n await writeFile(join(eventPath, filename), eventFile);\n\n console.log(\n colors.green(\n `Event ${colors.magenta(name)} created at ${colors.blue(formatPath(eventPath))}/${colors.magenta(filename)}`,\n ),\n );\n}\n"],"mappings":";;;;;;;;;;AAOA,MAAM,YAAY;AAClB,MAAM,8BAAoB,WAAW,mBAAmB;AACxD,MAAM,4BAAkB,WAAW,iBAAiB;;;;;AAMpD,MAAM,cAAc,WACpB,OAAE,QAAK,wCAAsB,IAAI,CAAC,QAAE,OAAa,IAAI;;;;;AAMrD,SAAS,qBAAqB;AAC5B,0CAAuB,WAAW,gBAAgB,CAAC,GAAG,OAAO;;;;;;AAO/D,SAAS,kBAAkB,MAAc;AACvC,QAAO;;;WAGE,KAAK;kBACE,KAAK;;;;4CAIqB,KAAK;;;;wCAIT,KAAK;;;;;;;;AAS7C,SAAS,kBAAkB,MAAc;AACvC,QAAO;;;;WAIE,KAAK;kBACE,KAAK;;;;;;;4CAOqB,KAAK;;;;;;;wCAOT,KAAK;;;;;;;;AAS7C,SAAS,gBAAgB,MAAc;CACrC,MAAM,YAAY,KAAK,GAAG,aAAa,GAAG,KAAK,MAAM,EAAE;AACvD,QAAO;;QAED,UAAU,kBAAkB,KAAK;iBACxB,KAAK;;;iBAGL,UAAU;;;;;;;AAQ3B,SAAS,gBAAgB,MAAc;CACrC,MAAM,YAAY,KAAK,KAAK,GAAG,aAAa,GAAG,KAAK,MAAM,EAAE;AAC5D,QAAO;+CACsC,KAAK;;QAE5C,UAAU;iBACD,KAAK;;;iBAGL,UAAU;;;;;;;AAQ3B,eAAsB,gBAAgB,MAAc,YAAqB;CACvE,MAAM,yBAAe,cAAc,aAAa;AAChD,KAAI,oBAAY,QAAQ,CAAE,8BAAY,SAAS,EAAE,WAAW,MAAM,CAAC;CAEnE,MAAM,MAAM,oBAAoB;CAChC,MAAM,eAAe,QAAQ;CAE7B,MAAM,WAAW,GAAG,KAAK,GAAG;AAE5B,uCAAoB,SAAS,SAAS,CAAC,CACrC,0BAAM,WAAW,KAAK,kBAAkB;CAG1C,MAAM,cAAc,eACpB,kBAAI,KAAkB,GACtB,kBAAI,KAAkB;AAEtB,iDAAqB,SAAS,SAAS,EAAE,YAAY;AAErD,SAAQ,IACN,6BAAO,MACL,WAAW,6BAAO,QAAQ,KAAK,CAAC,cAAc,6BAAO,KAAK,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC,GAChG,CACF;;;;;;AAOH,eAAsB,cAAc,MAAc,YAAqB;CACrE,MAAM,2BAAiB,cAAc,YAAY,KAAK;AACtD,KAAI,oBAAY,UAAU,CAAE,8BAAY,WAAW,EAAE,WAAW,MAAM,CAAC;CAEvE,MAAM,MAAM,oBAAoB;CAChC,MAAM,eAAe,QAAQ;CAE7B,IAAI,WAAW,SAAS;AAExB,uCAAoB,WAAW,SAAS,CAAC,EAAE;EACzC,MAAM,SAAS,+BAAc,UAAU,EAAE;AACzC,aAAW,GAAG,OAAO,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG;;CAGlD,MAAM,YAAY,eAClB,gBAAI,KAAgB,GACpB,gBAAI,KAAgB;AAEpB,iDAAqB,WAAW,SAAS,EAAE,UAAU;AAErD,SAAQ,IACN,6BAAO,MACL,SAAS,6BAAO,QAAQ,KAAK,CAAC,cAAc,6BAAO,KAAK,WAAW,UAAU,CAAC,CAAC,GAAG,6BAAO,QAAQ,SAAS,GAC3G,CACF"}
1
+ {"version":3,"file":"generators.js","names":[],"sources":[],"mappings":""}
@@ -1,14 +1,14 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_chunk = require('../chunk-BE-pF4vm.js');
2
+ const require_rolldown_runtime = require('../rolldown-runtime-C_NdSu1c.js');
3
3
  const require_utils_constants = require('../utils/constants.js');
4
4
  const require_version = require('../version.js');
5
5
  let node_fs = require("node:fs");
6
- node_fs = require_chunk.__toESM(node_fs);
6
+ node_fs = require_rolldown_runtime.__toESM(node_fs);
7
7
  let node_path = require("node:path");
8
- node_path = require_chunk.__toESM(node_path);
8
+ node_path = require_rolldown_runtime.__toESM(node_path);
9
9
  let node_child_process = require("node:child_process");
10
10
  let node_os = require("node:os");
11
- node_os = require_chunk.__toESM(node_os);
11
+ node_os = require_rolldown_runtime.__toESM(node_os);
12
12
 
13
13
  //#region src/cli/information.ts
14
14
  /**
@@ -19,7 +19,6 @@ const knownPlugins = [
19
19
  "@commandkit/ai",
20
20
  "@commandkit/analytics",
21
21
  "@commandkit/cache",
22
- "@commandkit/devtools",
23
22
  "@commandkit/i18n",
24
23
  "@commandkit/legacy",
25
24
  "@commandkit/queue",
@@ -1 +1 @@
1
- {"version":3,"file":"information.js","names":[],"sources":["../../src/cli/information.ts"],"sourcesContent":["import os from 'node:os';\nimport { execSync } from 'node:child_process';\nimport { version as commandkitVersion } from '../version';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { COMMANDKIT_CWD } from '../utils/constants';\n\n/**\n * @private\n * @internal\n */\nfunction $getKnownPlugins() {\n 'use macro';\n\n // remove name from the list when that plugin is stable\n const BLACKLISTED = new Set([\n 'commandkit', // core package itself, not a plugin\n 'create-commandkit', // generator, not a plugin\n 'tsconfig', // repo config related, not a plugin\n 'devtools-ui', // the ui part of devtools, not a plugin\n // the plugins below are TBD\n 'tasks',\n ]);\n\n const { readdirSync, readFileSync } =\n require('node:fs') as typeof import('node:fs');\n const { join } = require('node:path') as typeof path;\n\n const pluginsPath = join(__dirname, '..', '..', '..');\n\n const entries = readdirSync(pluginsPath, { withFileTypes: true }).filter(\n (e) => !BLACKLISTED.has(e.name),\n );\n\n const packages = entries.map((p) =>\n join(p.parentPath, p.name, 'package.json'),\n );\n\n const knownPlugins: string[] = [];\n\n for (const pkg of packages) {\n try {\n const { name } = JSON.parse(readFileSync(pkg, 'utf8'));\n if (name && !BLACKLISTED.has(name.replace('@commandkit/', ''))) {\n knownPlugins.push(name);\n }\n } catch {\n // Ignore errors\n }\n }\n\n return knownPlugins;\n}\n\nconst knownPlugins: string[] = $getKnownPlugins();\n\n/**\n * @private\n * @internal\n */\nfunction findPackageVersion(packageName: string) {\n try {\n const packageJsonPath = require.resolve(`${packageName}/package.json`);\n const packageJson = require(packageJsonPath);\n return packageJson.version;\n } catch (e) {\n try {\n const basePaths = [\n path.join(COMMANDKIT_CWD, 'node_modules', packageName),\n path.join(COMMANDKIT_CWD, '..', '..', 'node_modules', packageName),\n path.join(COMMANDKIT_CWD, '..', '..', '.pnpm', packageName),\n path.join(\n COMMANDKIT_CWD,\n '..',\n '..',\n 'node_modules',\n '.pnpm',\n packageName,\n ),\n ];\n\n for (const basePath of basePaths) {\n const packageJsonPath = path.join(basePath, 'package.json');\n if (fs.existsSync(packageJsonPath)) {\n const packageJson = JSON.parse(\n fs.readFileSync(packageJsonPath, 'utf8'),\n );\n return packageJson.version;\n }\n }\n\n const nodeModulesPath = path.join(\n COMMANDKIT_CWD,\n '..',\n '..',\n 'node_modules',\n '.pnpm',\n );\n if (fs.existsSync(nodeModulesPath)) {\n const folders = fs.readdirSync(nodeModulesPath);\n const packageFolder = folders.find((folder) =>\n folder.startsWith(`${packageName.replace('/', '+')}@`),\n );\n\n if (packageFolder) {\n const packageJsonPath = path.join(\n nodeModulesPath,\n packageFolder,\n 'node_modules',\n packageName,\n 'package.json',\n );\n if (fs.existsSync(packageJsonPath)) {\n const packageJson = JSON.parse(\n fs.readFileSync(packageJsonPath, 'utf8'),\n );\n return packageJson.version;\n }\n }\n }\n\n return null;\n } catch {\n return null;\n }\n }\n}\n\n/**\n * @private\n * @internal\n */\nfunction getBinaryVersion(binary: string) {\n try {\n const version = execSync(`${binary} --version`).toString().trim();\n return version;\n } catch {\n return null;\n }\n}\n\n/**\n * @private\n * @internal\n */\nexport async function showInformation() {\n const runtimeName: string = (() => {\n // @ts-ignore\n if ('Deno' in globalThis && typeof Deno !== 'undefined') return 'Deno';\n // @ts-ignore\n if ('Bun' in globalThis && typeof Bun !== 'undefined') return 'Bun';\n\n return 'Node.js';\n })();\n\n const info = {\n 'Operating System': {\n Platform: process.platform,\n Arch: process.arch,\n Version: os.version(),\n 'Available Memory (MB)': Math.round(os.totalmem() / 1024 / 1024),\n 'Available CPU cores': os.cpus().length,\n },\n Runtime: runtimeName,\n Binaries: {\n Node: process.version,\n npm: getBinaryVersion('npm') || 'N/A',\n Yarn: getBinaryVersion('yarn') || 'N/A',\n pnpm: getBinaryVersion('pnpm') || 'N/A',\n Bun: getBinaryVersion('bun') || 'N/A',\n Deno: (getBinaryVersion('deno') || 'N/A').replace(/\\n|\\r/g, ' '),\n },\n 'Relevant Packages': {\n commandkit: commandkitVersion,\n 'discord.js': findPackageVersion('discord.js') || 'N/A',\n typescript: findPackageVersion('typescript') || 'N/A',\n rolldown: findPackageVersion('rolldown') || 'N/A',\n tsdown: findPackageVersion('tsdown') || 'N/A',\n },\n 'CommandKit Plugins': knownPlugins.reduce(\n (acc, plugin) => {\n acc[plugin] = findPackageVersion(plugin) || 'N/A';\n return acc;\n },\n {} as Record<string, string>,\n ),\n };\n\n let output = '';\n\n for (const [section, data] of Object.entries(info)) {\n output += `${section}:\\n`;\n\n if (typeof data === 'string') {\n output += ` ${data}\\n\\n`;\n continue;\n }\n\n for (const [key, value] of Object.entries(data)) {\n output += ` ${key}: ${value}\\n`;\n }\n output += '\\n';\n }\n\n console.log(output.trim());\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAsDA,MAAM,eAA2C;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;;;;;AAMjD,SAAS,mBAAmB,aAAqB;AAC/C,KAAI;EACF,MAAM,kBAAkB,QAAQ,QAAQ,GAAG,YAAY,eAAe;AAEtE,SADoB,QAAQ,gBAAgB,CACzB;UACZ,GAAG;AACV,MAAI;GACF,MAAM,YAAY;IAClB,kBAAE,KAAK,wCAAmB,gBAAgB,YAAE;IAC5C,kBAAE,KAAK,wCAAmB,MAAM,MAAM,gBAAgB,YAAE;IACxD,kBAAE,KAAK,wCAAmB,MAAM,MAAM,SAAS,YAAE;IACjD,kBAAE,KACA,wCACA,MACA,MACA,gBACA,SACA,YACD;IAAC;AAGF,QAAK,MAAM,YAAY,WAAW;IAChC,MAAM,kBAAkB,kBAAK,KAAK,UAAU,eAAe;AAC3D,QAAI,gBAAG,WAAW,gBAAgB,CAIhC,QAHoB,KAAK,MACvB,gBAAG,aAAa,iBAAiB,OAAO,CACzC,CACkB;;GAIvB,MAAM,kBAAkB,kBAAK,KAC3B,wCACA,MACA,MACA,gBACA,QACD;AACD,OAAI,gBAAG,WAAW,gBAAgB,EAAE;IAElC,MAAM,gBADU,gBAAG,YAAY,gBAAgB,CACjB,MAAM,WACpC,OAAE,WAAO,GAAY,YAAE,QAAY,KAAW,IAAI,CAAC,GAAG,CACrD;AAED,QAAI,eAAe;KACjB,MAAM,kBAAkB,kBAAK,KAC3B,iBACA,eACA,gBACA,aACA,eACD;AACD,SAAI,gBAAG,WAAW,gBAAgB,CAIhC,QAHoB,KAAK,MACvB,gBAAG,aAAa,iBAAiB,OAAO,CACzC,CACkB;;;AAKzB,UAAO;UACD;AACN,UAAO;;;;;;;;AASb,SAAS,iBAAiB,QAAgB;AACxC,KAAI;AAEF,0CADyB,GAAG,OAAO,YAAY,CAAC,UAAU,CAAC,MAAM;SAE3D;AACN,SAAO;;;;;;;AAQX,eAAsB,kBAAkB;CACtC,MAAM,qBAA6B;AAEjC,MAAI,UAAU,cAAc,OAAO,SAAS,YAAa,QAAO;AAEhE,MAAI,SAAS,cAAc,OAAO,QAAQ,YAAa,QAAO;AAE9D,SAAO;KACL;CAEJ,MAAM,OAAO;EACX,oBAAoB;GAClB,UAAU,QAAQ;GAClB,MAAM,QAAQ;GACd,SAAS,gBAAG,SAAS;GACrB,yBAAyB,KAAK,MAAM,gBAAG,UAAU,GAAG,OAAO,KAAK;GAChE,uBAAuB,gBAAG,MAAM,CAAC;GAClC;EACD,SAAS;EACT,UAAU;GACR,MAAM,QAAQ;GACd,KAAK,iBAAiB,MAAM,IAAI;GAChC,MAAM,iBAAiB,OAAO,IAAI;GAClC,MAAM,iBAAiB,OAAO,IAAI;GAClC,KAAK,iBAAiB,MAAM,IAAI;GAChC,OAAO,iBAAiB,OAAO,IAAI,OAAO,QAAQ,UAAU,IAAI;GACjE;EACD,qBAAqB;GACnB,YAAY;GACZ,cAAc,mBAAmB,aAAa,IAAI;GAClD,YAAY,mBAAmB,aAAa,IAAI;GAChD,UAAU,mBAAmB,WAAW,IAAI;GAC5C,QAAQ,mBAAmB,SAAS,IAAI;GACzC;EACD,sBAAsB,aAAa,QAChC,KAAK,WAAW;AACf,OAAI,UAAU,mBAAmB,OAAO,IAAI;AAC5C,UAAO;KAET,EAAE,CACH;EACF;CAED,IAAI,SAAS;AAEb,MAAK,MAAM,CAAC,SAAS,SAAS,OAAO,QAAQ,KAAK,EAAE;AAClD,YAAU,GAAG,QAAQ;AAErB,MAAI,OAAO,SAAS,UAAU;AAC5B,aAAU,KAAK,KAAK;AACpB;;AAGF,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,KAAK,CAC7C,WAAU,KAAK,IAAI,IAAI,MAAM;AAE/B,YAAU;;AAGZ,SAAQ,IAAI,OAAO,MAAM,CAAC"}
1
+ {"version":3,"file":"information.js","names":[],"sources":[],"mappings":""}
@@ -1,12 +1,10 @@
1
- import * as commander from "commander";
2
-
3
1
  //#region src/cli/init.d.ts
4
2
  /**
5
3
  * Creates a command line interface for CommandKit.
6
4
  * @param argv The arguments passed to the CLI.
7
5
  * @param options The options passed to the CLI.
8
6
  */
9
- declare function bootstrapCommandkitCLI(argv: string[], options?: commander.ParseOptions | undefined): Promise<void>;
7
+ declare function bootstrapCommandkitCLI(argv: string[], options?: import('commander').ParseOptions | undefined): Promise<void>;
10
8
  //#endregion
11
9
  export { bootstrapCommandkitCLI };
12
10
  //# sourceMappingURL=init.d.ts.map