commandkit 1.2.0-dev.20260228121941 → 1.2.0-dev.20260301122036
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ActionRow-CT-uyxW0.d.ts → ActionRow-Bt9qi0Mb.d.ts} +2 -2
- package/dist/{Button-oMnlpF6W.d.ts → Button-DxJLcZIU.d.ts} +5 -5
- package/dist/{ButtonKit-DKu0VAe4.d.ts → ButtonKit-BfcyvWfj.d.ts} +35 -35
- package/dist/{ChannelSelectMenuKit-HQZ4hH5s.d.ts → ChannelSelectMenuKit-DYkudikb.d.ts} +33 -33
- package/dist/{CommandsRouter-C7dZEepB.d.ts → CommandsRouter-DiNoF0dq.d.ts} +48 -48
- package/dist/{EventInterceptor-CZmWpS08.d.ts → EventInterceptor-D9JKMcfi.d.ts} +39 -39
- package/dist/{EventsRouter-DZ37r54v.d.ts → EventsRouter-EuuSu6NH.d.ts} +34 -34
- package/dist/{MentionableSelectMenuKit-7URDUM3-.d.ts → MentionableSelectMenuKit-Mu4xqP6B.d.ts} +33 -33
- package/dist/MessageCommandParser-DPCbHXCS.d.ts +194 -0
- package/dist/{Modal--iMEUqSm.d.ts → Modal-v9rrcMl-.d.ts} +7 -7
- package/dist/{ModalKit-BWXI3Z26.d.ts → ModalKit-XJSM65SV.d.ts} +32 -32
- package/dist/{RoleSelectMenuKit-BY-JJ18w.d.ts → RoleSelectMenuKit-CCjcp3HY.d.ts} +33 -33
- package/dist/{SelectMenu-DQbmOp1Y.d.ts → SelectMenu-CY0vvoSu.d.ts} +8 -8
- package/dist/{StringSelectMenuKit-lVhUMc3g.d.ts → StringSelectMenuKit-G5nBTicX.d.ts} +33 -33
- package/dist/{UserSelectMenuKit-CCj4Fpkr.d.ts → UserSelectMenuKit-D3SO_fXA.d.ts} +33 -33
- package/dist/analytics/analytics-engine.d.ts +1 -1
- package/dist/analytics/analytics-engine.js +2 -19
- package/dist/analytics/analytics-provider.d.ts +1 -1
- package/dist/analytics/analytics-provider.js +1 -0
- package/dist/analytics/constants.js +26 -3
- package/dist/analytics/constants.js.map +1 -0
- package/dist/analytics/utils.js +2 -19
- package/dist/{analytics-engine-_urJ5QTH.d.ts → analytics-engine-DnRsHBId.d.ts} +843 -843
- package/dist/app/commands/AppCommandRunner.d.ts +1 -1
- package/dist/app/commands/AppCommandRunner.js +2 -19
- package/dist/app/commands/Context.d.ts +1 -1
- package/dist/app/commands/Context.js +2 -19
- package/dist/app/commands/MessageCommandParser.d.ts +1 -1
- package/dist/app/commands/MessageCommandParser.js +261 -3
- package/dist/app/commands/MessageCommandParser.js.map +1 -0
- package/dist/app/commands/helpers.d.ts +1 -1
- package/dist/app/commands/helpers.js +25 -3
- package/dist/app/commands/helpers.js.map +1 -0
- package/dist/app/events/EventWorkerContext.d.ts +2 -2
- package/dist/app/events/EventWorkerContext.js +48 -5
- package/dist/app/events/EventWorkerContext.js.map +1 -0
- package/dist/app/handlers/AppCommandHandler.d.ts +1 -1
- package/dist/app/handlers/AppCommandHandler.js +2 -19
- package/dist/app/handlers/AppEventsHandler.d.ts +1 -1
- package/dist/app/handlers/AppEventsHandler.js +2 -19
- package/dist/app/index.d.ts +4 -4
- package/dist/app/index.js +13 -27
- package/dist/app/interrupt/signals.d.ts +1 -1
- package/dist/app/interrupt/signals.js +54 -6
- package/dist/app/interrupt/signals.js.map +1 -0
- package/dist/app/middlewares/permissions.d.ts +1 -1
- package/dist/app/middlewares/permissions.js +2 -19
- package/dist/app/register/CommandRegistrar.d.ts +1 -1
- package/dist/app/register/CommandRegistrar.js +2 -19
- package/dist/app/router/CommandsRouter.d.ts +1 -1
- package/dist/app/router/CommandsRouter.js +210 -2
- package/dist/app/router/CommandsRouter.js.map +1 -0
- package/dist/app/router/EventsRouter.d.ts +1 -1
- package/dist/app/router/EventsRouter.js +128 -2
- package/dist/app/router/EventsRouter.js.map +1 -0
- package/dist/app/router/index.d.ts +2 -2
- package/dist/app/router/index.js +5 -5
- package/dist/{chunk-kSYXY2_d.js → chunk-BE-pF4vm.js} +1 -1
- package/dist/cli/app-process.d.ts +2 -2
- package/dist/cli/app-process.js +6 -8
- package/dist/cli/app-process.js.map +1 -1
- package/dist/cli/build.d.ts +2 -2
- package/dist/cli/build.js +14 -29
- package/dist/cli/build.js.map +1 -1
- package/dist/cli/common.d.ts +5 -5
- package/dist/cli/common.js +182 -12
- package/dist/cli/common.js.map +1 -0
- package/dist/cli/development.d.ts +3 -3
- package/dist/cli/development.js +38 -54
- package/dist/cli/development.js.map +1 -1
- package/dist/cli/env.js +73 -9
- package/dist/cli/env.js.map +1 -0
- package/dist/cli/generators.js +10 -10
- package/dist/cli/generators.js.map +1 -1
- package/dist/cli/information.js +9 -8
- package/dist/cli/information.js.map +1 -1
- package/dist/cli/init.d.ts +2 -2
- package/dist/cli/init.js +14 -28
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/production.d.ts +2 -2
- package/dist/cli/production.js +11 -28
- package/dist/cli/production.js.map +1 -1
- package/dist/cli/type-checker.js +83 -6
- package/dist/cli/type-checker.js.map +1 -0
- package/dist/cli/utils.js +1 -0
- package/dist/cli/utils.js.map +1 -1
- package/dist/{commandkit-B1_NP74k.js → commandkit--k6yDJEr.js} +192 -192
- package/dist/{commandkit-B1_NP74k.js.map → commandkit--k6yDJEr.js.map} +1 -1
- package/dist/commandkit.d.ts +1 -1
- package/dist/commandkit.js +2 -19
- package/dist/{common-DnwCYit8.d.ts → common-CCvvgnxi.d.ts} +2 -2
- package/dist/components/common/EventInterceptor.d.ts +1 -1
- package/dist/components/common/EventInterceptor.js +137 -2
- package/dist/components/common/EventInterceptor.js.map +1 -0
- package/dist/components/common/element.d.ts +1 -1
- package/dist/components/common/element.js +2 -19
- package/dist/components/common/types.d.ts +1 -1
- package/dist/components/common/types.js +1 -0
- package/dist/components/display/common.js +2 -19
- package/dist/components/display/container.d.ts +1 -1
- package/dist/components/display/container.js +2 -19
- package/dist/components/display/file.d.ts +1 -1
- package/dist/components/display/file.js +23 -2
- package/dist/components/display/file.js.map +1 -0
- package/dist/components/display/index.d.ts +8 -8
- package/dist/components/display/index.js +12 -25
- package/dist/components/display/label.d.ts +1 -1
- package/dist/components/display/label.js +2 -19
- package/dist/components/display/media-gallery.d.ts +1 -1
- package/dist/components/display/media-gallery.js +2 -19
- package/dist/components/display/poll.d.ts +1 -1
- package/dist/components/display/poll.js +85 -4
- package/dist/{poll-ziQQQbMU.js.map → components/display/poll.js.map} +1 -1
- package/dist/components/display/section.d.ts +1 -1
- package/dist/components/display/section.js +2 -19
- package/dist/components/display/separator.d.ts +1 -1
- package/dist/components/display/separator.js +21 -2
- package/dist/components/display/separator.js.map +1 -0
- package/dist/components/display/text-display.d.ts +1 -1
- package/dist/components/display/text-display.js +26 -2
- package/dist/components/display/text-display.js.map +1 -0
- package/dist/components/index.d.ts +22 -22
- package/dist/components/index.js +14 -26
- package/dist/components/interactive/action-row/ActionRow.d.ts +1 -1
- package/dist/components/interactive/action-row/ActionRow.js +20 -2
- package/dist/{ActionRow-CSN_UKmM.js.map → components/interactive/action-row/ActionRow.js.map} +1 -1
- package/dist/components/interactive/button/Button.d.ts +1 -1
- package/dist/components/interactive/button/Button.js +2 -19
- package/dist/components/interactive/button/ButtonKit.d.ts +1 -1
- package/dist/components/interactive/button/ButtonKit.js +2 -19
- package/dist/components/interactive/modal/Modal.d.ts +1 -1
- package/dist/components/interactive/modal/Modal.js +2 -19
- package/dist/components/interactive/modal/ModalKit.d.ts +1 -1
- package/dist/components/interactive/modal/ModalKit.js +2 -19
- package/dist/components/interactive/select-menu/ChannelSelectMenuKit.d.ts +1 -1
- package/dist/components/interactive/select-menu/ChannelSelectMenuKit.js +2 -19
- package/dist/components/interactive/select-menu/MentionableSelectMenuKit.d.ts +1 -1
- package/dist/components/interactive/select-menu/MentionableSelectMenuKit.js +2 -19
- package/dist/components/interactive/select-menu/RoleSelectMenuKit.d.ts +1 -1
- package/dist/components/interactive/select-menu/RoleSelectMenuKit.js +2 -19
- package/dist/components/interactive/select-menu/SelectMenu.d.ts +1 -1
- package/dist/components/interactive/select-menu/SelectMenu.js +2 -19
- package/dist/components/interactive/select-menu/StringSelectMenuKit.d.ts +1 -1
- package/dist/components/interactive/select-menu/StringSelectMenuKit.js +2 -19
- package/dist/components/interactive/select-menu/UserSelectMenuKit.d.ts +1 -1
- package/dist/components/interactive/select-menu/UserSelectMenuKit.js +2 -19
- package/dist/components/interactive/select-menu/common.d.ts +1 -1
- package/dist/components/interactive/select-menu/common.js +1 -0
- package/dist/config/config.d.ts +1 -1
- package/dist/config/config.js +2 -19
- package/dist/config/default.d.ts +1 -1
- package/dist/config/default.js +2 -19
- package/dist/config/loader.d.ts +1 -1
- package/dist/config/loader.js +2 -19
- package/dist/config/types.d.ts +1 -1
- package/dist/config/types.js +1 -0
- package/dist/config/utils.d.ts +1 -1
- package/dist/config/utils.js +29 -2
- package/dist/config/utils.js.map +1 -0
- package/dist/{constants-EpKcj0dH.d.ts → constants-DqtJY0t-.d.ts} +2 -2
- package/dist/{constants-CuYW0K10.d.ts → constants-DwxpkIeH.d.ts} +7 -7
- package/dist/{container-DYcb7zGw.d.ts → container-CYojOA9d.d.ts} +1 -1
- package/dist/context/async-context.d.ts +1 -1
- package/dist/context/async-context.js +2 -19
- package/dist/context/environment.d.ts +1 -1
- package/dist/context/environment.js +2 -19
- package/dist/{element-DZeqbSTk.d.ts → element-DeLvTMfZ.d.ts} +3 -3
- package/dist/events/CommandKitEventsChannel.d.ts +1 -1
- package/dist/events/CommandKitEventsChannel.js +83 -2
- package/dist/events/CommandKitEventsChannel.js.map +1 -0
- package/dist/{file-CrV4lSnl.d.ts → file-DLO1zEcH.d.ts} +1 -1
- package/dist/flags/FlagProvider.d.ts +1 -1
- package/dist/flags/FlagProvider.js +1 -0
- package/dist/flags/FlagProvider.js.map +1 -1
- package/dist/flags/feature-flags.d.ts +1 -1
- package/dist/flags/feature-flags.js +2 -19
- package/dist/flags/store.d.ts +1 -1
- package/dist/flags/store.js +13 -2
- package/dist/flags/store.js.map +1 -0
- package/dist/{helpers-AQPLVY35.d.ts → helpers-zmC44Mcu.d.ts} +1 -1
- package/dist/index.d.ts +30 -30
- package/dist/index.js +61 -67
- package/dist/kv/constants.d.ts +1 -1
- package/dist/kv/constants.js +22 -2
- package/dist/kv/constants.js.map +1 -0
- package/dist/kv/dotprops.js +1 -0
- package/dist/kv/dotprops.js.map +1 -1
- package/dist/kv/kv.d.ts +288 -288
- package/dist/kv/kv.js +2 -1
- package/dist/kv/kv.js.map +1 -1
- package/dist/kv/serde.d.ts +1 -1
- package/dist/kv/serde.js +29 -28
- package/dist/kv/serde.js.map +1 -1
- package/dist/{label-37kaNWMH.d.ts → label-DqGRqodo.d.ts} +3 -3
- package/dist/logger/DefaultLogger.d.ts +19 -19
- package/dist/logger/DefaultLogger.js +2 -19
- package/dist/logger/ILogger.d.ts +35 -35
- package/dist/logger/ILogger.js +1 -0
- package/dist/logger/Logger.d.ts +5 -5
- package/dist/logger/Logger.js +2 -19
- package/dist/logger/NoopLogger.d.ts +35 -35
- package/dist/logger/NoopLogger.js +1 -0
- package/dist/logger/NoopLogger.js.map +1 -1
- package/dist/{media-gallery-Ci3I4ElH.d.ts → media-gallery-Ca8es-eB.d.ts} +1 -1
- package/dist/plugins/CompilerPlugin.d.ts +1 -1
- package/dist/plugins/CompilerPlugin.js +33 -3
- package/dist/plugins/CompilerPlugin.js.map +1 -0
- package/dist/plugins/PluginCommon.d.ts +1 -1
- package/dist/plugins/PluginCommon.js +55 -4
- package/dist/plugins/PluginCommon.js.map +1 -0
- package/dist/plugins/RuntimePlugin.d.ts +1 -1
- package/dist/plugins/RuntimePlugin.js +124 -3
- package/dist/plugins/RuntimePlugin.js.map +1 -0
- package/dist/plugins/index.d.ts +1 -1
- package/dist/plugins/index.js +8 -25
- package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.d.ts +1 -1
- package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js +2 -19
- package/dist/plugins/plugin-runtime/CompilerPluginRuntime.d.ts +1 -1
- package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js +2 -19
- package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.d.ts +1 -1
- package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js +2 -19
- package/dist/plugins/plugin-runtime/builtin/MacroPlugin.d.ts +1 -1
- package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js +2 -19
- package/dist/plugins/plugin-runtime/runtime.d.ts +1 -1
- package/dist/plugins/plugin-runtime/runtime.js +1 -0
- package/dist/plugins/types.d.ts +1 -1
- package/dist/plugins/types.js +1 -0
- package/dist/{poll-Ddtapd6n.d.ts → poll-DQ6DX_Tt.d.ts} +8 -8
- package/dist/{section-DkUKULnB.d.ts → section-Q8nwx_-q.d.ts} +1 -1
- package/dist/{separator-CbXsIFCa.d.ts → separator-B8P-kdIK.d.ts} +1 -1
- package/dist/{signals-BbTgTc0i.d.ts → signals-CBXwugBW.d.ts} +1 -1
- package/dist/{text-display-D7j39VC-.d.ts → text-display-CL9C2yMc.d.ts} +1 -1
- package/dist/{types-BywA9d2Z.d.ts → types-DZy7U-Ld.d.ts} +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.js +1 -0
- package/dist/utils/colors.js +9 -3
- package/dist/utils/colors.js.map +1 -0
- package/dist/utils/constants.d.ts +1 -1
- package/dist/utils/constants.js +50 -8
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/dev-hooks.d.ts +1 -1
- package/dist/utils/dev-hooks.js +2 -19
- package/dist/utils/error-codes.d.ts +10 -10
- package/dist/utils/error-codes.js +53 -5
- package/dist/utils/error-codes.js.map +1 -0
- package/dist/utils/resolve-file-url.js +18 -2
- package/dist/utils/resolve-file-url.js.map +1 -0
- package/dist/utils/types-package.js +61 -4
- package/dist/utils/types-package.js.map +1 -0
- package/dist/utils/useful-stuff/async-queue.d.ts +21 -21
- package/dist/utils/useful-stuff/async-queue.js +1 -0
- package/dist/utils/useful-stuff/async-queue.js.map +1 -1
- package/dist/utils/useful-stuff/mutex.d.ts +62 -62
- package/dist/utils/useful-stuff/mutex.js +1 -0
- package/dist/utils/useful-stuff/mutex.js.map +1 -1
- package/dist/utils/useful-stuff/ratelimiter.d.ts +56 -56
- package/dist/utils/useful-stuff/ratelimiter.js +1 -0
- package/dist/utils/useful-stuff/ratelimiter.js.map +1 -1
- package/dist/utils/useful-stuff/semaphore.d.ts +82 -82
- package/dist/utils/useful-stuff/semaphore.js +1 -0
- package/dist/utils/useful-stuff/semaphore.js.map +1 -1
- package/dist/utils/utilities.d.ts +5 -5
- package/dist/utils/utilities.js +2 -19
- package/dist/utils/warning.js +38 -4
- package/dist/utils/warning.js.map +1 -0
- package/dist/version.js +13 -2
- package/dist/version.js.map +1 -0
- package/package.json +11 -14
- package/dist/ActionRow-CSN_UKmM.js +0 -25
- package/dist/CommandKitEventsChannel-DDI0UVh9.js +0 -88
- package/dist/CommandKitEventsChannel-DDI0UVh9.js.map +0 -1
- package/dist/CommandsRouter-D5mGRFEr.js +0 -215
- package/dist/CommandsRouter-D5mGRFEr.js.map +0 -1
- package/dist/CompilerPlugin-DZidFuHJ.js +0 -43
- package/dist/CompilerPlugin-DZidFuHJ.js.map +0 -1
- package/dist/EventInterceptor-CxA95XYA.js +0 -142
- package/dist/EventInterceptor-CxA95XYA.js.map +0 -1
- package/dist/EventWorkerContext-CfqamFWu.js +0 -68
- package/dist/EventWorkerContext-CfqamFWu.js.map +0 -1
- package/dist/EventsRouter-Be5NDOX4.js +0 -133
- package/dist/EventsRouter-Be5NDOX4.js.map +0 -1
- package/dist/ILogger-JI8VGyJf.js +0 -0
- package/dist/MessageCommandParser-VMFFGs0R.js +0 -271
- package/dist/MessageCommandParser-VMFFGs0R.js.map +0 -1
- package/dist/MessageCommandParser-q3dQcE5N.d.ts +0 -194
- package/dist/PluginCommon-Bfs8d9s7.js +0 -70
- package/dist/PluginCommon-Bfs8d9s7.js.map +0 -1
- package/dist/RuntimePlugin-BYQXQO8w.js +0 -134
- package/dist/RuntimePlugin-BYQXQO8w.js.map +0 -1
- package/dist/colors-Csc0X4QJ.js +0 -14
- package/dist/colors-Csc0X4QJ.js.map +0 -1
- package/dist/common-vGj3fpz3.js +0 -0
- package/dist/common-zQwj90Nz.js +0 -222
- package/dist/common-zQwj90Nz.js.map +0 -1
- package/dist/constants-BA0TJU6e.js +0 -36
- package/dist/constants-BA0TJU6e.js.map +0 -1
- package/dist/constants-BS9N2avz.js +0 -27
- package/dist/constants-BS9N2avz.js.map +0 -1
- package/dist/constants-CeIMhMD0.js +0 -85
- package/dist/constants-CeIMhMD0.js.map +0 -1
- package/dist/env-FxaiNasU.js +0 -113
- package/dist/env-FxaiNasU.js.map +0 -1
- package/dist/error-codes-Ds0bnPvT.js +0 -73
- package/dist/error-codes-Ds0bnPvT.js.map +0 -1
- package/dist/file-DqI3v90P.js +0 -28
- package/dist/file-DqI3v90P.js.map +0 -1
- package/dist/helpers-DSy7EjzP.js +0 -35
- package/dist/helpers-DSy7EjzP.js.map +0 -1
- package/dist/poll-ziQQQbMU.js +0 -100
- package/dist/resolve-file-url-BmjHzIKe.js +0 -23
- package/dist/resolve-file-url-BmjHzIKe.js.map +0 -1
- package/dist/router-CtcApqrw.js +0 -0
- package/dist/runtime-UJIpkNww.js +0 -0
- package/dist/separator-DGwA_b1J.js +0 -26
- package/dist/separator-DGwA_b1J.js.map +0 -1
- package/dist/signals-ewEPW2cO.js +0 -74
- package/dist/signals-ewEPW2cO.js.map +0 -1
- package/dist/store-DK4JA-fQ.js +0 -18
- package/dist/store-DK4JA-fQ.js.map +0 -1
- package/dist/text-display-BVuG7dT-.js +0 -31
- package/dist/text-display-BVuG7dT-.js.map +0 -1
- package/dist/type-checker-CFpKDDs8.js +0 -88
- package/dist/type-checker-CFpKDDs8.js.map +0 -1
- package/dist/types-Bx1EKe0v.js +0 -0
- package/dist/types-CAwOz52q.js +0 -0
- package/dist/types-package-Bjh_ap0V.js +0 -71
- package/dist/types-package-Bjh_ap0V.js.map +0 -1
- package/dist/utils-CVaVycsK.js +0 -34
- package/dist/utils-CVaVycsK.js.map +0 -1
- package/dist/version-rRfNG5vY.js +0 -18
- package/dist/version-rRfNG5vY.js.map +0 -1
- package/dist/warning-BWiQltHE.js +0 -53
- package/dist/warning-BWiQltHE.js.map +0 -1
- /package/dist/{index-BJfko-dP.d.ts → index-BIsCUWAs.d.ts} +0 -0
- /package/dist/{index-CCggO_hw.d.ts → index-CwHYpK-f.d.ts} +0 -0
- /package/dist/{index-CLjpoGi1.d.ts → index-DHrsNvX1.d.ts} +0 -0
package/dist/cli/build.js
CHANGED
|
@@ -1,26 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
require('../
|
|
3
|
-
require('../
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
require('
|
|
8
|
-
require('
|
|
9
|
-
require('../EventWorkerContext-CfqamFWu.js');
|
|
10
|
-
require('../signals-ewEPW2cO.js');
|
|
11
|
-
require('../helpers-DSy7EjzP.js');
|
|
12
|
-
require('../MessageCommandParser-VMFFGs0R.js');
|
|
13
|
-
require('../CommandsRouter-D5mGRFEr.js');
|
|
14
|
-
require('../EventsRouter-Be5NDOX4.js');
|
|
15
|
-
require('../router-CtcApqrw.js');
|
|
16
|
-
require('../file-DqI3v90P.js');
|
|
17
|
-
require('../separator-DGwA_b1J.js');
|
|
18
|
-
require('../text-display-BVuG7dT-.js');
|
|
19
|
-
require('../poll-ziQQQbMU.js');
|
|
20
|
-
const require_common = require('../common-zQwj90Nz.js');
|
|
21
|
-
require('../store-DK4JA-fQ.js');
|
|
22
|
-
const require_env = require('../env-FxaiNasU.js');
|
|
23
|
-
const require_type_checker = require('../type-checker-CFpKDDs8.js');
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_chunk = require('../chunk-BE-pF4vm.js');
|
|
3
|
+
const require_commandkit = require('../commandkit--k6yDJEr.js');
|
|
4
|
+
const require_utils_constants = require('../utils/constants.js');
|
|
5
|
+
const require_config_utils = require('../config/utils.js');
|
|
6
|
+
const require_cli_common = require('./common.js');
|
|
7
|
+
const require_cli_env = require('./env.js');
|
|
8
|
+
const require_cli_type_checker = require('./type-checker.js');
|
|
24
9
|
let node_fs = require("node:fs");
|
|
25
10
|
let node_path = require("node:path");
|
|
26
11
|
let node_fs_promises = require("node:fs/promises");
|
|
@@ -55,9 +40,9 @@ function mergeDefinitionsIfNeeded(env, isDev) {
|
|
|
55
40
|
*/
|
|
56
41
|
async function buildApplication({ plugins, rolldownPlugins, isDev, configPath }) {
|
|
57
42
|
var _config$typescript;
|
|
58
|
-
const { build } = await
|
|
43
|
+
const { build } = await require_cli_common.loadTsdown();
|
|
59
44
|
const config = await require_commandkit.loadConfigFile(configPath);
|
|
60
|
-
if (!isDev && !(config === null || config === void 0 || (_config$typescript = config.typescript) === null || _config$typescript === void 0 ? void 0 : _config$typescript.ignoreBuildErrors)) await
|
|
45
|
+
if (!isDev && !(config === null || config === void 0 || (_config$typescript = config.typescript) === null || _config$typescript === void 0 ? void 0 : _config$typescript.ignoreBuildErrors)) await require_cli_type_checker.performTypeCheck(configPath || require_utils_constants.COMMANDKIT_CWD);
|
|
61
46
|
const pluginRuntime = new require_commandkit.CompilerPluginRuntime(plugins || [], !!isDev);
|
|
62
47
|
rolldownPlugins ??= [];
|
|
63
48
|
rolldownPlugins.push(pluginRuntime.toJSON());
|
|
@@ -66,7 +51,7 @@ async function buildApplication({ plugins, rolldownPlugins, isDev, configPath })
|
|
|
66
51
|
const dest = isDev ? ".commandkit" : config.distDir;
|
|
67
52
|
await (0, rimraf.rimraf)(dest);
|
|
68
53
|
await pluginRuntime.init();
|
|
69
|
-
await build(
|
|
54
|
+
await build(require_config_utils.mergeDeep({
|
|
70
55
|
watch: false,
|
|
71
56
|
dts: false,
|
|
72
57
|
clean: true,
|
|
@@ -118,8 +103,8 @@ async function buildApplication({ plugins, rolldownPlugins, isDev, configPath })
|
|
|
118
103
|
outputOptions: { sanitizeFileName: (name) => name.replace(/\0/g, "") },
|
|
119
104
|
unbundle: isDev ? true : ((_config$compilerOptio = config.compilerOptions) === null || _config$compilerOptio === void 0 ? void 0 : _config$compilerOptio.disableChunking) ?? false
|
|
120
105
|
}, (_config$compilerOptio2 = config.compilerOptions) === null || _config$compilerOptio2 === void 0 ? void 0 : _config$compilerOptio2.tsdown));
|
|
121
|
-
await
|
|
122
|
-
await injectEntryFile(configPath ||
|
|
106
|
+
await require_cli_common.copyLocaleFiles("src", dest);
|
|
107
|
+
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);
|
|
123
108
|
} catch (error) {
|
|
124
109
|
console.error("Build failed:", error);
|
|
125
110
|
if (error instanceof Error) console.error("Error details:", error.stack);
|
|
@@ -129,7 +114,7 @@ async function buildApplication({ plugins, rolldownPlugins, isDev, configPath })
|
|
|
129
114
|
}
|
|
130
115
|
}
|
|
131
116
|
const envScript = (dev) => `// --- Environment Variables Loader ---
|
|
132
|
-
const $env = [${(dev ?
|
|
117
|
+
const $env = [${(dev ? require_cli_env.devEnvFileArgs : require_cli_env.prodEnvFileArgs).map((p) => `"${p}"`).join(", ")}];
|
|
133
118
|
for (const file of $env) {
|
|
134
119
|
try {
|
|
135
120
|
process.loadEnvFile(file);
|
package/dist/cli/build.js.map
CHANGED
|
@@ -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 console.error('Failed to bootstrap CommandKit application:\\\\n', e.stack);\n})\n`;\n\n await writeFile(entryFilePath, code);\n}\n"],"mappings":"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"}
|
|
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 console.error('Failed to bootstrap CommandKit application:\\\\n', e.stack);\n})\n`;\n\n await writeFile(entryFilePath, code);\n}\n"],"mappings":"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"}
|
package/dist/cli/common.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { m as ResolvedCommandKitConfig } from "../analytics-engine-
|
|
2
|
-
import * as
|
|
3
|
-
import * as
|
|
1
|
+
import { m as ResolvedCommandKitConfig } from "../analytics-engine-DnRsHBId.js";
|
|
2
|
+
import * as tsdown from "tsdown";
|
|
3
|
+
import * as typescript from "typescript";
|
|
4
4
|
|
|
5
5
|
//#region src/cli/common.d.ts
|
|
6
6
|
/**
|
|
@@ -23,7 +23,7 @@ declare function panic(message: any): never;
|
|
|
23
23
|
* @private
|
|
24
24
|
* @internal
|
|
25
25
|
*/
|
|
26
|
-
declare function loadTypeScript(e?: string): Promise<typeof
|
|
26
|
+
declare function loadTypeScript(e?: string): Promise<typeof typescript>;
|
|
27
27
|
/**
|
|
28
28
|
* @private
|
|
29
29
|
* @internal
|
|
@@ -43,7 +43,7 @@ declare function copyLocaleFiles(_from: string, _to: string): Promise<void>;
|
|
|
43
43
|
* @private
|
|
44
44
|
* @internal
|
|
45
45
|
*/
|
|
46
|
-
declare function loadTsdown(): Promise<typeof
|
|
46
|
+
declare function loadTsdown(): Promise<typeof tsdown>;
|
|
47
47
|
//#endregion
|
|
48
48
|
export { copyLocaleFiles, erase, findEntrypoint, loadConfigFileFromPath, loadTsdown, loadTypeScript, panic, write };
|
|
49
49
|
//# sourceMappingURL=common.d.ts.map
|
package/dist/cli/common.js
CHANGED
|
@@ -1,13 +1,183 @@
|
|
|
1
|
-
|
|
2
|
-
require('../
|
|
3
|
-
require('../
|
|
4
|
-
const
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_chunk = require('../chunk-BE-pF4vm.js');
|
|
3
|
+
const require_utils_colors = require('../utils/colors.js');
|
|
4
|
+
const require_utils_constants = require('../utils/constants.js');
|
|
5
|
+
const require_utils_types_package = require('../utils/types-package.js');
|
|
6
|
+
let node_fs = require("node:fs");
|
|
7
|
+
node_fs = require_chunk.__toESM(node_fs);
|
|
8
|
+
let node_path = require("node:path");
|
|
9
|
+
let rimraf = require("rimraf");
|
|
10
|
+
let node_child_process = require("node:child_process");
|
|
5
11
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
//#region src/cli/common.ts
|
|
13
|
+
let ts;
|
|
14
|
+
let tsdown;
|
|
15
|
+
/**
|
|
16
|
+
* @private
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
function write(message) {
|
|
20
|
+
process.stdout.write(message);
|
|
21
|
+
process.stdout.write("\n");
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @private
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
function findEntrypoint(dir) {
|
|
28
|
+
const target = (0, node_path.join)(dir, "sharding-manager.js");
|
|
29
|
+
if (node_fs.default.existsSync(target)) return target;
|
|
30
|
+
return (0, node_path.join)(dir, "index.js");
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @returns {never}
|
|
34
|
+
* @internal
|
|
35
|
+
* @private
|
|
36
|
+
*/
|
|
37
|
+
function panic(message) {
|
|
38
|
+
write(require_utils_colors.default.red(`Error: ${message}`));
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @private
|
|
43
|
+
* @internal
|
|
44
|
+
*/
|
|
45
|
+
async function ensureTypeScript(target) {
|
|
46
|
+
if (!/\.(c|m)?tsx?$/.test(target)) return false;
|
|
47
|
+
if (process.features.typescript) return true;
|
|
48
|
+
await loadTypeScript();
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
let packageManager;
|
|
52
|
+
/**
|
|
53
|
+
* @private
|
|
54
|
+
* @internal
|
|
55
|
+
*/
|
|
56
|
+
function detectPackageManager() {
|
|
57
|
+
if (packageManager) return packageManager;
|
|
58
|
+
for (const [lockfile, manager] of Object.entries({
|
|
59
|
+
"yarn.lock": "yarn",
|
|
60
|
+
"pnpm-lock.yaml": "pnpm",
|
|
61
|
+
"package-lock.json": "npm",
|
|
62
|
+
"bun.lock": "bun",
|
|
63
|
+
"bun.lockb": "bun",
|
|
64
|
+
"deno.lock": "deno"
|
|
65
|
+
})) if (node_fs.default.existsSync((0, node_path.join)(require_utils_constants.COMMANDKIT_CWD, lockfile))) {
|
|
66
|
+
packageManager = manager;
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
if (!packageManager) packageManager = "npm";
|
|
70
|
+
return packageManager;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* @private
|
|
74
|
+
* @internal
|
|
75
|
+
*/
|
|
76
|
+
async function loadTypeScript(e) {
|
|
77
|
+
if (ts) return ts;
|
|
78
|
+
try {
|
|
79
|
+
ts = await import("typescript");
|
|
80
|
+
} catch (e) {
|
|
81
|
+
if (e instanceof Error && "code" in e && e.code === "MODULE_NOT_FOUND") try {
|
|
82
|
+
const packageManager = detectPackageManager();
|
|
83
|
+
(0, node_child_process.execSync)(`${packageManager} add -D ${packageManager === "deno" ? "npm:" : ""}typescript`, {
|
|
84
|
+
stdio: "inherit",
|
|
85
|
+
cwd: require_utils_constants.COMMANDKIT_CWD
|
|
86
|
+
});
|
|
87
|
+
console.log(require_utils_colors.default.cyan(`TypeScript has been installed automatically, restarting...`));
|
|
88
|
+
ts = await import("typescript");
|
|
89
|
+
return ts;
|
|
90
|
+
} catch {
|
|
91
|
+
panic("TypeScript is not installed and could not be installed automatically. Please install it manually.");
|
|
92
|
+
}
|
|
93
|
+
panic(e || "TypeScript must be installed to use TypeScript config files.");
|
|
94
|
+
}
|
|
95
|
+
return ts;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* @private
|
|
99
|
+
* @internal
|
|
100
|
+
*/
|
|
101
|
+
async function loadConfigFileFromPath(target) {
|
|
102
|
+
await ensureExists(target);
|
|
103
|
+
const isTs = await ensureTypeScript(target);
|
|
104
|
+
let generatedFilePath;
|
|
105
|
+
if (isTs && ts) {
|
|
106
|
+
const { transpileModule } = ts;
|
|
107
|
+
const { outputText } = transpileModule(node_fs.default.readFileSync(target, "utf8"), {
|
|
108
|
+
compilerOptions: {
|
|
109
|
+
module: ts.ModuleKind.ESNext,
|
|
110
|
+
target: ts.ScriptTarget.ESNext,
|
|
111
|
+
moduleResolution: ts.ModuleResolutionKind.NodeNext
|
|
112
|
+
},
|
|
113
|
+
fileName: target
|
|
114
|
+
});
|
|
115
|
+
await require_utils_types_package.generateTypesPackage();
|
|
116
|
+
const tmpFile = (0, node_path.join)(require_utils_constants.COMMANDKIT_CWD, "compiled-commandkit.config.mjs");
|
|
117
|
+
node_fs.default.writeFileSync(tmpFile, outputText);
|
|
118
|
+
generatedFilePath = tmpFile;
|
|
119
|
+
target = tmpFile;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* @type {import('..').CommandKitConfig}
|
|
123
|
+
*/
|
|
124
|
+
const config = await import(`file://${target}`).then((conf) => conf.default || conf);
|
|
125
|
+
if (generatedFilePath) try {
|
|
126
|
+
node_fs.default.unlinkSync(generatedFilePath);
|
|
127
|
+
} catch {}
|
|
128
|
+
return config;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* @private
|
|
132
|
+
* @internal
|
|
133
|
+
*/
|
|
134
|
+
async function ensureExists(loc) {
|
|
135
|
+
if (!node_fs.default.existsSync(loc)) throw new Error(`File not found: ${loc}`);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* @private
|
|
139
|
+
* @internal
|
|
140
|
+
*/
|
|
141
|
+
function erase(dir) {
|
|
142
|
+
(0, rimraf.rimrafSync)(dir);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* @private
|
|
146
|
+
* @internal
|
|
147
|
+
*/
|
|
148
|
+
async function copyLocaleFiles(_from, _to) {
|
|
149
|
+
const resolvedFrom = (0, node_path.join)(require_utils_constants.COMMANDKIT_CWD, _from);
|
|
150
|
+
const resolvedTo = (0, node_path.join)(require_utils_constants.COMMANDKIT_CWD, _to);
|
|
151
|
+
const localePaths = ["app/locales"];
|
|
152
|
+
const srcLocalePaths = localePaths.map((path) => (0, node_path.join)(resolvedFrom, path));
|
|
153
|
+
const destLocalePaths = localePaths.map((path) => (0, node_path.join)(resolvedTo, path));
|
|
154
|
+
for (const localePath of srcLocalePaths) {
|
|
155
|
+
if (!node_fs.default.existsSync(localePath)) continue;
|
|
156
|
+
const destLocalePath = destLocalePaths[srcLocalePaths.indexOf(localePath)];
|
|
157
|
+
if (!node_fs.default.existsSync(destLocalePath)) node_fs.default.promises.mkdir(destLocalePath, { recursive: true }).catch(() => {});
|
|
158
|
+
await node_fs.default.promises.cp(localePath, destLocalePath, {
|
|
159
|
+
recursive: true,
|
|
160
|
+
force: true
|
|
161
|
+
}).catch(() => {});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* @private
|
|
166
|
+
* @internal
|
|
167
|
+
*/
|
|
168
|
+
async function loadTsdown() {
|
|
169
|
+
if (tsdown) return tsdown;
|
|
170
|
+
tsdown = await import("tsdown");
|
|
171
|
+
return tsdown;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
//#endregion
|
|
175
|
+
exports.copyLocaleFiles = copyLocaleFiles;
|
|
176
|
+
exports.erase = erase;
|
|
177
|
+
exports.findEntrypoint = findEntrypoint;
|
|
178
|
+
exports.loadConfigFileFromPath = loadConfigFileFromPath;
|
|
179
|
+
exports.loadTsdown = loadTsdown;
|
|
180
|
+
exports.loadTypeScript = loadTypeScript;
|
|
181
|
+
exports.panic = panic;
|
|
182
|
+
exports.write = write;
|
|
183
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +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,6 +1,6 @@
|
|
|
1
|
-
import { o as HMREventType } from "../constants-
|
|
2
|
-
import * as chokidar0 from "chokidar";
|
|
1
|
+
import { o as HMREventType } from "../constants-DwxpkIeH.js";
|
|
3
2
|
import { ChildProcess } from "node:child_process";
|
|
3
|
+
import * as chokidar from "chokidar";
|
|
4
4
|
|
|
5
5
|
//#region src/cli/development.d.ts
|
|
6
6
|
/**
|
|
@@ -13,7 +13,7 @@ declare function buildAndStart(configPath: string, skipStart?: boolean): Promise
|
|
|
13
13
|
* @internal
|
|
14
14
|
*/
|
|
15
15
|
declare function bootstrapDevelopmentServer(configPath?: string): Promise<{
|
|
16
|
-
watcher:
|
|
16
|
+
watcher: chokidar.FSWatcher;
|
|
17
17
|
isConfigUpdate: (path: string) => boolean;
|
|
18
18
|
performHMR: (path?: string) => Promise<boolean>;
|
|
19
19
|
hmrHandler: (path: string) => Promise<void>;
|
package/dist/cli/development.js
CHANGED
|
@@ -1,27 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
const
|
|
3
|
-
require('../
|
|
4
|
-
const require_commandkit = require('../commandkit
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
require('
|
|
8
|
-
require('../constants-BA0TJU6e.js');
|
|
9
|
-
require('../EventWorkerContext-CfqamFWu.js');
|
|
10
|
-
require('../signals-ewEPW2cO.js');
|
|
11
|
-
require('../helpers-DSy7EjzP.js');
|
|
12
|
-
require('../MessageCommandParser-VMFFGs0R.js');
|
|
13
|
-
require('../CommandsRouter-D5mGRFEr.js');
|
|
14
|
-
require('../EventsRouter-Be5NDOX4.js');
|
|
15
|
-
require('../router-CtcApqrw.js');
|
|
16
|
-
require('../file-DqI3v90P.js');
|
|
17
|
-
require('../separator-DGwA_b1J.js');
|
|
18
|
-
require('../text-display-BVuG7dT-.js');
|
|
19
|
-
require('../poll-ziQQQbMU.js');
|
|
20
|
-
const require_common = require('../common-zQwj90Nz.js');
|
|
21
|
-
require('../store-DK4JA-fQ.js');
|
|
22
|
-
require('../env-FxaiNasU.js');
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_chunk = require('../chunk-BE-pF4vm.js');
|
|
3
|
+
const require_utils_colors = require('../utils/colors.js');
|
|
4
|
+
const require_commandkit = require('../commandkit--k6yDJEr.js');
|
|
5
|
+
const require_plugins_CompilerPlugin = require('../plugins/CompilerPlugin.js');
|
|
6
|
+
const require_utils_constants = require('../utils/constants.js');
|
|
7
|
+
const require_cli_common = require('./common.js');
|
|
23
8
|
const require_cli_app_process = require('./app-process.js');
|
|
24
|
-
require('../type-checker-CFpKDDs8.js');
|
|
25
9
|
const require_cli_build = require('./build.js');
|
|
26
10
|
let node_crypto = require("node:crypto");
|
|
27
11
|
let path = require("path");
|
|
@@ -35,11 +19,11 @@ let node_timers_promises = require("node:timers/promises");
|
|
|
35
19
|
*/
|
|
36
20
|
async function buildAndStart(configPath, skipStart = false) {
|
|
37
21
|
const config = await require_commandkit.loadConfigFile(configPath);
|
|
38
|
-
const mainFile =
|
|
22
|
+
const mainFile = require_cli_common.findEntrypoint(".commandkit");
|
|
39
23
|
await require_cli_build.buildApplication({
|
|
40
24
|
configPath,
|
|
41
25
|
isDev: true,
|
|
42
|
-
plugins: config.plugins.flat(2).filter((p) =>
|
|
26
|
+
plugins: config.plugins.flat(2).filter((p) => require_plugins_CompilerPlugin.isCompilerPlugin(p)),
|
|
43
27
|
rolldownPlugins: config.rolldownPlugins
|
|
44
28
|
});
|
|
45
29
|
if (skipStart) return null;
|
|
@@ -63,7 +47,7 @@ async function bootstrapDevelopmentServer(configPath) {
|
|
|
63
47
|
process.env.COMMANDKIT_BOOTSTRAP_MODE = "development";
|
|
64
48
|
process.env.COMMANDKIT_INTERNAL_IS_CLI_PROCESS = "true";
|
|
65
49
|
const start = performance.now();
|
|
66
|
-
const cwd = configPath ||
|
|
50
|
+
const cwd = configPath || require_utils_constants.COMMANDKIT_CWD;
|
|
67
51
|
const configPaths = require_commandkit.getPossibleConfigPaths(cwd);
|
|
68
52
|
const watcher = (0, chokidar.watch)([(0, path.join)(cwd, "src"), ...configPaths], { ignoreInitial: true });
|
|
69
53
|
let ps = null;
|
|
@@ -99,50 +83,50 @@ async function bootstrapDevelopmentServer(configPath) {
|
|
|
99
83
|
try {
|
|
100
84
|
let triggered = false;
|
|
101
85
|
const res = !!await Promise.race([messagePromise, (0, node_timers_promises.setTimeout)(3e3).then(() => {
|
|
102
|
-
if (!triggered) console.warn(
|
|
86
|
+
if (!triggered) console.warn(require_utils_colors.default.yellow(`HMR acknowledgment timed out for event ${event} on path ${path$1}`));
|
|
103
87
|
return false;
|
|
104
88
|
})]);
|
|
105
89
|
triggered = true;
|
|
106
90
|
return res;
|
|
107
91
|
} catch (error) {
|
|
108
|
-
console.error(
|
|
92
|
+
console.error(require_utils_colors.default.red(`Error waiting for HMR acknowledgment: ${error}`));
|
|
109
93
|
return false;
|
|
110
94
|
}
|
|
111
95
|
};
|
|
112
|
-
const performHMR = require_commandkit.debounce(async (path$
|
|
113
|
-
if (!path$
|
|
96
|
+
const performHMR = require_commandkit.debounce(async (path$2) => {
|
|
97
|
+
if (!path$2 || !ps) return false;
|
|
114
98
|
let eventType = null;
|
|
115
99
|
let eventDescription = "";
|
|
116
|
-
if (isCommandSource(path$
|
|
117
|
-
eventType =
|
|
100
|
+
if (isCommandSource(path$2)) {
|
|
101
|
+
eventType = require_utils_constants.HMREventType.ReloadCommands;
|
|
118
102
|
eventDescription = "command(s)";
|
|
119
|
-
} else if (isEventSource(path$
|
|
120
|
-
eventType =
|
|
103
|
+
} else if (isEventSource(path$2)) {
|
|
104
|
+
eventType = require_utils_constants.HMREventType.ReloadEvents;
|
|
121
105
|
eventDescription = "event(s)";
|
|
122
106
|
} else {
|
|
123
|
-
eventType =
|
|
107
|
+
eventType = require_utils_constants.HMREventType.Unknown;
|
|
124
108
|
eventDescription = "unknown source";
|
|
125
109
|
}
|
|
126
110
|
if (eventType) {
|
|
127
|
-
console.log(`${
|
|
111
|
+
console.log(`${require_utils_colors.default.cyanBright(`Attempting to reload ${eventDescription} at`)} ${require_utils_colors.default.yellowBright(path$2)}`);
|
|
128
112
|
await buildAndStart(cwd, true);
|
|
129
|
-
if (await sendHmrEvent(eventType, path$
|
|
130
|
-
console.log(`${
|
|
113
|
+
if (await sendHmrEvent(eventType, path$2)) {
|
|
114
|
+
console.log(`${require_utils_colors.default.greenBright(`Successfully hot reloaded ${eventDescription} at`)} ${require_utils_colors.default.yellowBright(path$2)}`);
|
|
131
115
|
return true;
|
|
132
116
|
}
|
|
133
117
|
}
|
|
134
118
|
return false;
|
|
135
119
|
}, 700);
|
|
136
|
-
const isConfigUpdate = (path$
|
|
137
|
-
const isConfig = configPaths.some((configPath
|
|
120
|
+
const isConfigUpdate = (path$3) => {
|
|
121
|
+
const isConfig = configPaths.some((configPath) => path$3 === configPath);
|
|
138
122
|
if (!isConfig) return false;
|
|
139
|
-
console.log(
|
|
123
|
+
console.log(require_utils_colors.default.yellowBright("It seems like commandkit config file was updated, please restart the server manually to apply changes."));
|
|
140
124
|
return isConfig;
|
|
141
125
|
};
|
|
142
|
-
const hmrHandler = async (path$
|
|
143
|
-
if (isConfigUpdate(path$
|
|
144
|
-
if (await performHMR(path$
|
|
145
|
-
console.log(`${
|
|
126
|
+
const hmrHandler = async (path$4) => {
|
|
127
|
+
if (isConfigUpdate(path$4)) return;
|
|
128
|
+
if (await performHMR(path$4)) return;
|
|
129
|
+
console.log(`${require_utils_colors.default.yellowBright("⚡️ Performing full restart due to the changes in")} ${require_utils_colors.default.cyanBright(path$4)}`);
|
|
146
130
|
ps === null || ps === void 0 || ps.kill();
|
|
147
131
|
ps = await buildAndStart(cwd);
|
|
148
132
|
};
|
|
@@ -156,11 +140,11 @@ async function bootstrapDevelopmentServer(configPath) {
|
|
|
156
140
|
break;
|
|
157
141
|
case "rc":
|
|
158
142
|
console.log(`Received reload commands command, reloading...`);
|
|
159
|
-
await sendHmrEvent(
|
|
143
|
+
await sendHmrEvent(require_utils_constants.HMREventType.ReloadCommands);
|
|
160
144
|
break;
|
|
161
145
|
case "re":
|
|
162
146
|
console.log(`Received reload events command, reloading...`);
|
|
163
|
-
await sendHmrEvent(
|
|
147
|
+
await sendHmrEvent(require_utils_constants.HMREventType.ReloadEvents);
|
|
164
148
|
break;
|
|
165
149
|
}
|
|
166
150
|
});
|
|
@@ -171,17 +155,17 @@ async function bootstrapDevelopmentServer(configPath) {
|
|
|
171
155
|
watcher.on("error", (e) => {
|
|
172
156
|
console.error(e);
|
|
173
157
|
});
|
|
174
|
-
console.log(`${
|
|
175
|
-
${
|
|
158
|
+
console.log(`${require_utils_colors.default.greenBright("Bootstrapped CommandKit Development Environment in")} ${require_utils_colors.default.yellowBright(`${(performance.now() - start).toFixed(2)}ms`)}
|
|
159
|
+
${require_utils_colors.default.greenBright("Watching for changes in")} ${require_utils_colors.default.yellowBright("src")} ${require_utils_colors.default.greenBright("directory")}
|
|
176
160
|
|
|
177
|
-
${
|
|
178
|
-
${
|
|
179
|
-
${
|
|
180
|
-
${
|
|
161
|
+
${require_utils_colors.default.greenBright("Commands:")}
|
|
162
|
+
${require_utils_colors.default.yellowBright("r")} - Restart the server
|
|
163
|
+
${require_utils_colors.default.yellowBright("rc")} - Reload all commands
|
|
164
|
+
${require_utils_colors.default.yellowBright("re")} - Reload all events`);
|
|
181
165
|
const buildStart = performance.now();
|
|
182
166
|
ps = await buildAndStart(cwd);
|
|
183
167
|
const buildEnd = performance.now();
|
|
184
|
-
console.log(`\n${
|
|
168
|
+
console.log(`\n${require_utils_colors.default.greenBright("Development mode compilation took")} ${require_utils_colors.default.yellowBright(`${(buildEnd - buildStart).toFixed(2)}ms`)}\n`);
|
|
185
169
|
return {
|
|
186
170
|
watcher,
|
|
187
171
|
isConfigUpdate,
|
|
@@ -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);\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) {\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":["../../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);\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) {\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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"}
|