commandkit 1.2.0-rc.13 → 1.2.0-rc.15
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/README.md +42 -23
- package/dist/{ActionRow-B-CGmjDp.d.ts → ActionRow-Bt9qi0Mb.d.ts} +2 -2
- package/dist/{Button-C-GPeFA3.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-CZT9MZsy.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-q_b3Mjv9.d.ts → SelectMenu-CY0vvoSu.d.ts} +15 -11
- 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 -24
- 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 -24
- package/dist/{analytics-engine-WQhXmx3H.d.ts → analytics-engine-DnRsHBId.d.ts} +846 -841
- package/dist/app/commands/AppCommandRunner.d.ts +1 -1
- package/dist/app/commands/AppCommandRunner.js +2 -24
- package/dist/app/commands/Context.d.ts +1 -1
- package/dist/app/commands/Context.js +2 -24
- 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 -24
- package/dist/app/handlers/AppEventsHandler.d.ts +1 -1
- package/dist/app/handlers/AppEventsHandler.js +2 -24
- package/dist/app/index.d.ts +4 -4
- package/dist/app/index.js +13 -32
- 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 -24
- package/dist/app/register/CommandRegistrar.d.ts +1 -1
- package/dist/app/register/CommandRegistrar.js +2 -24
- 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 +15 -35
- 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 -59
- 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 +8 -7
- package/dist/cli/information.js.map +1 -1
- package/dist/cli/init.d.ts +2 -2
- package/dist/cli/init.js +14 -33
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/production.d.ts +2 -2
- package/dist/cli/production.js +11 -33
- 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-SIjTLD2R.js → commandkit--k6yDJEr.js} +3157 -2699
- package/dist/commandkit--k6yDJEr.js.map +1 -0
- package/dist/commandkit.d.ts +1 -1
- package/dist/commandkit.js +2 -24
- 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 +2 -2
- package/dist/components/common/element.js +10 -8
- package/dist/components/common/types.d.ts +1 -1
- package/dist/components/common/types.js +1 -0
- package/dist/components/display/common.js +3 -2
- package/dist/components/display/container.d.ts +1 -1
- package/dist/components/display/container.js +3 -2
- 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 +18 -21
- package/dist/components/display/label.d.ts +1 -1
- package/dist/components/display/label.js +3 -2
- package/dist/components/display/media-gallery.d.ts +1 -1
- package/dist/components/display/media-gallery.js +4 -3
- package/dist/components/display/poll.d.ts +1 -1
- package/dist/components/display/poll.js +85 -4
- package/dist/{poll-CFe8yvoJ.js.map → components/display/poll.js.map} +1 -1
- package/dist/components/display/section.d.ts +1 -1
- package/dist/components/display/section.js +4 -3
- 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 +23 -23
- package/dist/components/index.js +28 -45
- 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 -24
- package/dist/components/interactive/button/ButtonKit.d.ts +1 -1
- package/dist/components/interactive/button/ButtonKit.js +2 -24
- package/dist/components/interactive/modal/Modal.d.ts +1 -1
- package/dist/components/interactive/modal/Modal.js +2 -24
- package/dist/components/interactive/modal/ModalKit.d.ts +1 -1
- package/dist/components/interactive/modal/ModalKit.js +2 -24
- package/dist/components/interactive/select-menu/ChannelSelectMenuKit.d.ts +1 -1
- package/dist/components/interactive/select-menu/ChannelSelectMenuKit.js +2 -24
- package/dist/components/interactive/select-menu/MentionableSelectMenuKit.d.ts +1 -1
- package/dist/components/interactive/select-menu/MentionableSelectMenuKit.js +2 -24
- package/dist/components/interactive/select-menu/RoleSelectMenuKit.d.ts +1 -1
- package/dist/components/interactive/select-menu/RoleSelectMenuKit.js +2 -24
- package/dist/components/interactive/select-menu/SelectMenu.d.ts +1 -1
- package/dist/components/interactive/select-menu/SelectMenu.js +2 -24
- package/dist/components/interactive/select-menu/StringSelectMenuKit.d.ts +1 -1
- package/dist/components/interactive/select-menu/StringSelectMenuKit.js +2 -24
- package/dist/components/interactive/select-menu/UserSelectMenuKit.d.ts +1 -1
- package/dist/components/interactive/select-menu/UserSelectMenuKit.js +2 -24
- 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 -24
- package/dist/config/default.d.ts +1 -1
- package/dist/config/default.js +2 -24
- package/dist/config/loader.d.ts +1 -1
- package/dist/config/loader.js +2 -24
- 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 -24
- package/dist/context/environment.d.ts +1 -1
- package/dist/context/environment.js +2 -24
- package/dist/{element-wQo0heGj.d.ts → element-DeLvTMfZ.d.ts} +5 -4
- 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 +5 -165
- 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 +31 -31
- package/dist/index.js +78 -97
- 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 -24
- 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 -24
- 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 -30
- package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.d.ts +1 -1
- package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js +2 -24
- package/dist/plugins/plugin-runtime/CompilerPluginRuntime.d.ts +1 -1
- package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js +2 -24
- package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.d.ts +1 -1
- package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js +2 -24
- package/dist/plugins/plugin-runtime/builtin/MacroPlugin.d.ts +1 -1
- package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js +2 -24
- 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 -24
- 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 -24
- package/dist/utils/warning.js +38 -4
- package/dist/utils/warning.js.map +1 -0
- package/dist/version.js +2 -1
- package/dist/version.js.map +1 -1
- package/package.json +12 -15
- package/dist/ActionRow-CSN_UKmM.js +0 -25
- package/dist/CommandKitEventsChannel-CnT5ymYe.js +0 -88
- package/dist/CommandKitEventsChannel-CnT5ymYe.js.map +0 -1
- package/dist/CommandsRouter-C_HLsrGX.js +0 -215
- package/dist/CommandsRouter-C_HLsrGX.js.map +0 -1
- package/dist/CompilerPlugin-CUsGAfgl.js +0 -43
- package/dist/CompilerPlugin-CUsGAfgl.js.map +0 -1
- package/dist/EventInterceptor-BWoEJMHZ.js +0 -142
- package/dist/EventInterceptor-BWoEJMHZ.js.map +0 -1
- package/dist/EventWorkerContext-Dfhgv329.js +0 -68
- package/dist/EventWorkerContext-Dfhgv329.js.map +0 -1
- package/dist/EventsRouter-DZYIha6m.js +0 -133
- package/dist/EventsRouter-DZYIha6m.js.map +0 -1
- package/dist/MessageCommandParser-Bs9fimmd.js +0 -271
- package/dist/MessageCommandParser-Bs9fimmd.js.map +0 -1
- package/dist/MessageCommandParser-q3dQcE5N.d.ts +0 -194
- package/dist/PluginCommon-BLxWww5u.js +0 -70
- package/dist/PluginCommon-BLxWww5u.js.map +0 -1
- package/dist/RuntimePlugin-CtobluSU.js +0 -134
- package/dist/RuntimePlugin-CtobluSU.js.map +0 -1
- package/dist/colors-Csc0X4QJ.js +0 -14
- package/dist/colors-Csc0X4QJ.js.map +0 -1
- package/dist/commandkit-SIjTLD2R.js.map +0 -1
- package/dist/common-C2jAjX4U.js +0 -0
- package/dist/common-CEordwf3.js +0 -17
- package/dist/common-CEordwf3.js.map +0 -1
- package/dist/common-DSRs_mfw.js +0 -222
- package/dist/common-DSRs_mfw.js.map +0 -1
- package/dist/constants-BFFK-hfP.js +0 -27
- package/dist/constants-BFFK-hfP.js.map +0 -1
- package/dist/constants-Cw8VjCVz.js +0 -36
- package/dist/constants-Cw8VjCVz.js.map +0 -1
- package/dist/constants-CxkFFZ7p.js +0 -85
- package/dist/constants-CxkFFZ7p.js.map +0 -1
- package/dist/container-DCPljKVH.js +0 -43
- package/dist/container-DCPljKVH.js.map +0 -1
- package/dist/display-WDb9wMCv.js +0 -0
- package/dist/element-DibzzA5L.js +0 -84
- package/dist/element-DibzzA5L.js.map +0 -1
- package/dist/env-CmspDhHy.js +0 -113
- package/dist/env-CmspDhHy.js.map +0 -1
- package/dist/error-codes-Ds0bnPvT.js +0 -73
- package/dist/error-codes-Ds0bnPvT.js.map +0 -1
- package/dist/file-Ca1kpEtE.js +0 -28
- package/dist/file-Ca1kpEtE.js.map +0 -1
- package/dist/flags/feature-flags.js.map +0 -1
- package/dist/helpers-Btx1FSZx.js +0 -35
- package/dist/helpers-Btx1FSZx.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/label-B6vXvwLM.js +0 -35
- package/dist/label-B6vXvwLM.js.map +0 -1
- package/dist/media-gallery-u3gjX7yD.js +0 -61
- package/dist/media-gallery-u3gjX7yD.js.map +0 -1
- package/dist/poll-CFe8yvoJ.js +0 -100
- package/dist/resolve-file-url-CdHqwWs3.js +0 -23
- package/dist/resolve-file-url-CdHqwWs3.js.map +0 -1
- package/dist/router-BvamdzoF.js +0 -0
- package/dist/runtime-Skt5NiOc.js +0 -0
- package/dist/section-BC8LF-B2.js +0 -59
- package/dist/section-BC8LF-B2.js.map +0 -1
- package/dist/separator-BUTiW7uz.js +0 -26
- package/dist/separator-BUTiW7uz.js.map +0 -1
- package/dist/signals-B8z1wJ6W.js +0 -74
- package/dist/signals-B8z1wJ6W.js.map +0 -1
- package/dist/store-D8r_hryO.js +0 -18
- package/dist/store-D8r_hryO.js.map +0 -1
- package/dist/text-display-DANahMN3.js +0 -31
- package/dist/text-display-DANahMN3.js.map +0 -1
- package/dist/type-checker-cVd3Hpnh.js +0 -88
- package/dist/type-checker-cVd3Hpnh.js.map +0 -1
- package/dist/types-Cdh4uaFR.js +0 -0
- package/dist/types-TC4g3w91.js +0 -0
- package/dist/types-package-CsTNfvv2.js +0 -71
- package/dist/types-package-CsTNfvv2.js.map +0 -1
- package/dist/utils-Br3eenD1.js +0 -34
- package/dist/utils-Br3eenD1.js.map +0 -1
- package/dist/warning-CszH8HeS.js +0 -53
- package/dist/warning-CszH8HeS.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,31 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
require('../
|
|
3
|
-
require('../
|
|
4
|
-
const
|
|
5
|
-
require('../
|
|
6
|
-
require('
|
|
7
|
-
require('
|
|
8
|
-
require('
|
|
9
|
-
require('../separator-BUTiW7uz.js');
|
|
10
|
-
require('../text-display-DANahMN3.js');
|
|
11
|
-
require('../label-B6vXvwLM.js');
|
|
12
|
-
require('../poll-CFe8yvoJ.js');
|
|
13
|
-
require('../display-WDb9wMCv.js');
|
|
14
|
-
const require_constants = require('../constants-CxkFFZ7p.js');
|
|
15
|
-
const require_utils = require('../utils-Br3eenD1.js');
|
|
16
|
-
require('../types-package-CsTNfvv2.js');
|
|
17
|
-
require('../constants-Cw8VjCVz.js');
|
|
18
|
-
require('../EventWorkerContext-Dfhgv329.js');
|
|
19
|
-
require('../signals-B8z1wJ6W.js');
|
|
20
|
-
require('../helpers-Btx1FSZx.js');
|
|
21
|
-
require('../MessageCommandParser-Bs9fimmd.js');
|
|
22
|
-
require('../CommandsRouter-C_HLsrGX.js');
|
|
23
|
-
require('../EventsRouter-DZYIha6m.js');
|
|
24
|
-
require('../router-BvamdzoF.js');
|
|
25
|
-
const require_common = require('../common-DSRs_mfw.js');
|
|
26
|
-
require('../store-D8r_hryO.js');
|
|
27
|
-
const require_env = require('../env-CmspDhHy.js');
|
|
28
|
-
const require_type_checker = require('../type-checker-cVd3Hpnh.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');
|
|
29
9
|
let node_fs = require("node:fs");
|
|
30
10
|
let node_path = require("node:path");
|
|
31
11
|
let node_fs_promises = require("node:fs/promises");
|
|
@@ -60,9 +40,9 @@ function mergeDefinitionsIfNeeded(env, isDev) {
|
|
|
60
40
|
*/
|
|
61
41
|
async function buildApplication({ plugins, rolldownPlugins, isDev, configPath }) {
|
|
62
42
|
var _config$typescript;
|
|
63
|
-
const { build } = await
|
|
43
|
+
const { build } = await require_cli_common.loadTsdown();
|
|
64
44
|
const config = await require_commandkit.loadConfigFile(configPath);
|
|
65
|
-
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);
|
|
66
46
|
const pluginRuntime = new require_commandkit.CompilerPluginRuntime(plugins || [], !!isDev);
|
|
67
47
|
rolldownPlugins ??= [];
|
|
68
48
|
rolldownPlugins.push(pluginRuntime.toJSON());
|
|
@@ -71,7 +51,7 @@ async function buildApplication({ plugins, rolldownPlugins, isDev, configPath })
|
|
|
71
51
|
const dest = isDev ? ".commandkit" : config.distDir;
|
|
72
52
|
await (0, rimraf.rimraf)(dest);
|
|
73
53
|
await pluginRuntime.init();
|
|
74
|
-
await build(
|
|
54
|
+
await build(require_config_utils.mergeDeep({
|
|
75
55
|
watch: false,
|
|
76
56
|
dts: false,
|
|
77
57
|
clean: true,
|
|
@@ -120,11 +100,11 @@ async function buildApplication({ plugins, rolldownPlugins, isDev, configPath })
|
|
|
120
100
|
"!**/*.spec.*",
|
|
121
101
|
...config.entrypoints ?? []
|
|
122
102
|
])),
|
|
123
|
-
outputOptions: { sanitizeFileName: (name) => name },
|
|
103
|
+
outputOptions: { sanitizeFileName: (name) => name.replace(/\0/g, "") },
|
|
124
104
|
unbundle: isDev ? true : ((_config$compilerOptio = config.compilerOptions) === null || _config$compilerOptio === void 0 ? void 0 : _config$compilerOptio.disableChunking) ?? false
|
|
125
105
|
}, (_config$compilerOptio2 = config.compilerOptions) === null || _config$compilerOptio2 === void 0 ? void 0 : _config$compilerOptio2.tsdown));
|
|
126
|
-
await
|
|
127
|
-
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);
|
|
128
108
|
} catch (error) {
|
|
129
109
|
console.error("Build failed:", error);
|
|
130
110
|
if (error instanceof Error) console.error("Error details:", error.stack);
|
|
@@ -134,7 +114,7 @@ async function buildApplication({ plugins, rolldownPlugins, isDev, configPath })
|
|
|
134
114
|
}
|
|
135
115
|
}
|
|
136
116
|
const envScript = (dev) => `// --- Environment Variables Loader ---
|
|
137
|
-
const $env = [${(dev ?
|
|
117
|
+
const $env = [${(dev ? require_cli_env.devEnvFileArgs : require_cli_env.prodEnvFileArgs).map((p) => `"${p}"`).join(", ")}];
|
|
138
118
|
for (const file of $env) {
|
|
139
119
|
try {
|
|
140
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,\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":";;;;;;;;;;;;;;;;;;AA+BA,SAAS,yBAAyB,KAA6B,OAAgB;CAC7E,MAAM,SAAS,OAAO,YACpB,OAAO,QAAQ,QAAQ,IAAI,CAAC,QACzB,CAAC,OAAO,EAAE,KAAK,QAAQ,EAAE,WAAW,qBAAqB,CAC3D,CACF;AAED,QAAO;EACL,GAAG;EACH,GAAG;EACH,GAAI,QACJ;GACE,UAAI;GACJ,2BAAI;GACJ,mBAAI;GACJ,oBAAI;GACL,GACD;GACE,UAAI;GACJ,2BAAI;GACJ,mBAAI;GACJ,oBAAI;GACL;EACF;;;;;;AAOH,eAAsB,iBAAiB,EACrC,SACA,iBACA,OACA,cAC0B;;CAC1B,MAAM,EAAE,UAAU,MAAM,+BAAY;CACpC,MAAM,SAAS,MAAM,kCAAe,WAAW;AAE/C,KAAI,CAAC,SAAS,gEAAC,OAAQ,oFAAY,mBACjC,OAAM,0CAAiB,cAAc,uCAAe;CAGtD,MAAM,gBAAgB,IAAI,yCACvB,WAAW,EAAE,EACd,CAAC,CAAC,MACH;AAED,qBAAoB,EAAE;AAEtB,iBAAgB,KAAK,cAAc,QAAQ,CAAC;AAE5C,KAAI;;EACF,MAAM,OAAO,QAAQ,gBAAgB,OAAO;AAG5C,2BAAa,KAAK;AAElB,QAAM,cAAc,MAAM;AAE1B,QAAM,MACJ,+BACE;GACE,OAAO;GACP,KAAK;GACL,OAAO;GACP,QAAQ,CAAC,MAAM;GACf,OAAO;GACP,QAAQ;GACR,UAAU,CAAC,CAAC,QAAQ,WAAW;GAC/B,cAAc;IACZ,WAAW,EACT,KAAK;KACH,SAAS;KACT,cAAc;KACf,EACF;IACD,QAAQ,EACN,oBAAoB,MACrB;IACD,SAAS,SAAS,gBAAgB;;AAChC,uEAAI,QAAS,6EAAS,SAAS,sBAAsB,CAAE;AAEvD,YAAO,YAAY,QAAQ;;IAE7B,QAAQ,OAAO,KAAK,eAAe;AACjC,SAAI,MAAO;AAEX,YAAO,WAAW,OAAO,IAAI;;IAE/B,aAAa;KACX,SAAS;KACT,SAAS;KACV;IACF;GACD,gBAAgB,YAAY;AAC1B,WAAO;KACL,KAAK;KACL,IAAI,QAAQ,WAAW,QAAQ,SAAS;KACzC;;GAEH,SAAS;GACT,UAAU;GACV,uBAAuB;GACvB,iCACA,OAAE,iFAAiB,QAAQ,gBAAgB,kBAAiB;GAC5D,QAAQ;GACR,QAAQ;GACR,KAAK,yBAAyB,OAAO,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM;GACxD,OAAO,MAAM,KACX,IAAI,IAAI;IACR;IACA,IAAI,OAAE;IACN;IACA;IACA;IACA,GAAI,OAAE,eAAoB,EAAE;IAAE,CAC7B,CACF;GACD,eAAe,EACb,mBAAmB,SAAS,KAAK,QAAQ,OAAO,GAAG,EACpD;GACD,UAAU,QACV,iCACA,OAAK,+FAAO,oBAAiB;GAC9B,4BACD,OAAO,iGAAiB,OACzB,CACF;AAED,QAAM,mCAAgB,OAAO,KAAK;AAClC,QAAM,gBACJ,cAAc,wCACd,CAAC,CAAC,OACF,CAAC,4BACD,OAAE,+FAAuB,QAAQ,gBAAgB,mBACjD,QAAQ,OAAO,SAEf,OAAO,QACR;UACM,OAAO;AACd,UAAQ,MAAM,iBAAiB,MAAM;AACrC,MAAI,iBAAiB,MACnB,SAAQ,MAAM,kBAAkB,MAAM,MAAM;AAE9C,UAAQ,KAAK,EAAE;WACP;AAER,QAAM,cAAc,SAAS;;;AAIjC,MAAM,aAAa,QAAiB;iBACnB,MAAM,iCAAiB,iCAAiB,KAAK,MAAM,IAAI,EAAE,GAAG,CAAC,KAAK,KAAK,CAAC;;;;;;;;AASzF,MAAM,kBAAkB;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAA2C,CAC3C,KAAE,KAAQ;AAEV,MAAM,mBAAmB,SACzB,0BAA0B,KAAE,KAAK,OAAU,CAAC;AAE5C,eAAe,gBACf,YACA,OACA,qBACA,SACA;CAEE,MAAM,oCAAqB,YADd,QAAQ,gBAAgB,WAAW,QACH,WAAW;AAGxD,6BAAe,cAAc,CAAE;AAyB/B,uCAAgB,eAvBH;EACb,QAAQ,oCAAoC,gBAAgB,CAAC,UAAU,MAAM,EAAE,sBAAsB,kBAAkB,GAAG,CAAC,CAAC,QAAQ,gBAAgB,CAAC,UAAU,MAAM,CAAC,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;EAsBnI"}
|
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,32 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
const
|
|
3
|
-
require('../
|
|
4
|
-
const require_commandkit = require('../commandkit
|
|
5
|
-
require('../
|
|
6
|
-
require('../
|
|
7
|
-
require('
|
|
8
|
-
require('../section-BC8LF-B2.js');
|
|
9
|
-
require('../separator-BUTiW7uz.js');
|
|
10
|
-
require('../text-display-DANahMN3.js');
|
|
11
|
-
require('../label-B6vXvwLM.js');
|
|
12
|
-
require('../poll-CFe8yvoJ.js');
|
|
13
|
-
require('../display-WDb9wMCv.js');
|
|
14
|
-
const require_constants = require('../constants-CxkFFZ7p.js');
|
|
15
|
-
const require_CompilerPlugin = require('../CompilerPlugin-CUsGAfgl.js');
|
|
16
|
-
require('../types-package-CsTNfvv2.js');
|
|
17
|
-
require('../constants-Cw8VjCVz.js');
|
|
18
|
-
require('../EventWorkerContext-Dfhgv329.js');
|
|
19
|
-
require('../signals-B8z1wJ6W.js');
|
|
20
|
-
require('../helpers-Btx1FSZx.js');
|
|
21
|
-
require('../MessageCommandParser-Bs9fimmd.js');
|
|
22
|
-
require('../CommandsRouter-C_HLsrGX.js');
|
|
23
|
-
require('../EventsRouter-DZYIha6m.js');
|
|
24
|
-
require('../router-BvamdzoF.js');
|
|
25
|
-
const require_common = require('../common-DSRs_mfw.js');
|
|
26
|
-
require('../store-D8r_hryO.js');
|
|
27
|
-
require('../env-CmspDhHy.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');
|
|
28
8
|
const require_cli_app_process = require('./app-process.js');
|
|
29
|
-
require('../type-checker-cVd3Hpnh.js');
|
|
30
9
|
const require_cli_build = require('./build.js');
|
|
31
10
|
let node_crypto = require("node:crypto");
|
|
32
11
|
let path = require("path");
|
|
@@ -40,11 +19,11 @@ let node_timers_promises = require("node:timers/promises");
|
|
|
40
19
|
*/
|
|
41
20
|
async function buildAndStart(configPath, skipStart = false) {
|
|
42
21
|
const config = await require_commandkit.loadConfigFile(configPath);
|
|
43
|
-
const mainFile =
|
|
22
|
+
const mainFile = require_cli_common.findEntrypoint(".commandkit");
|
|
44
23
|
await require_cli_build.buildApplication({
|
|
45
24
|
configPath,
|
|
46
25
|
isDev: true,
|
|
47
|
-
plugins: config.plugins.flat(2).filter((p) =>
|
|
26
|
+
plugins: config.plugins.flat(2).filter((p) => require_plugins_CompilerPlugin.isCompilerPlugin(p)),
|
|
48
27
|
rolldownPlugins: config.rolldownPlugins
|
|
49
28
|
});
|
|
50
29
|
if (skipStart) return null;
|
|
@@ -68,7 +47,7 @@ async function bootstrapDevelopmentServer(configPath) {
|
|
|
68
47
|
process.env.COMMANDKIT_BOOTSTRAP_MODE = "development";
|
|
69
48
|
process.env.COMMANDKIT_INTERNAL_IS_CLI_PROCESS = "true";
|
|
70
49
|
const start = performance.now();
|
|
71
|
-
const cwd = configPath ||
|
|
50
|
+
const cwd = configPath || require_utils_constants.COMMANDKIT_CWD;
|
|
72
51
|
const configPaths = require_commandkit.getPossibleConfigPaths(cwd);
|
|
73
52
|
const watcher = (0, chokidar.watch)([(0, path.join)(cwd, "src"), ...configPaths], { ignoreInitial: true });
|
|
74
53
|
let ps = null;
|
|
@@ -104,50 +83,50 @@ async function bootstrapDevelopmentServer(configPath) {
|
|
|
104
83
|
try {
|
|
105
84
|
let triggered = false;
|
|
106
85
|
const res = !!await Promise.race([messagePromise, (0, node_timers_promises.setTimeout)(3e3).then(() => {
|
|
107
|
-
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}`));
|
|
108
87
|
return false;
|
|
109
88
|
})]);
|
|
110
89
|
triggered = true;
|
|
111
90
|
return res;
|
|
112
91
|
} catch (error) {
|
|
113
|
-
console.error(
|
|
92
|
+
console.error(require_utils_colors.default.red(`Error waiting for HMR acknowledgment: ${error}`));
|
|
114
93
|
return false;
|
|
115
94
|
}
|
|
116
95
|
};
|
|
117
|
-
const performHMR = require_commandkit.debounce(async (path$
|
|
118
|
-
if (!path$
|
|
96
|
+
const performHMR = require_commandkit.debounce(async (path$2) => {
|
|
97
|
+
if (!path$2 || !ps) return false;
|
|
119
98
|
let eventType = null;
|
|
120
99
|
let eventDescription = "";
|
|
121
|
-
if (isCommandSource(path$
|
|
122
|
-
eventType =
|
|
100
|
+
if (isCommandSource(path$2)) {
|
|
101
|
+
eventType = require_utils_constants.HMREventType.ReloadCommands;
|
|
123
102
|
eventDescription = "command(s)";
|
|
124
|
-
} else if (isEventSource(path$
|
|
125
|
-
eventType =
|
|
103
|
+
} else if (isEventSource(path$2)) {
|
|
104
|
+
eventType = require_utils_constants.HMREventType.ReloadEvents;
|
|
126
105
|
eventDescription = "event(s)";
|
|
127
106
|
} else {
|
|
128
|
-
eventType =
|
|
107
|
+
eventType = require_utils_constants.HMREventType.Unknown;
|
|
129
108
|
eventDescription = "unknown source";
|
|
130
109
|
}
|
|
131
110
|
if (eventType) {
|
|
132
|
-
console.log(`${
|
|
111
|
+
console.log(`${require_utils_colors.default.cyanBright(`Attempting to reload ${eventDescription} at`)} ${require_utils_colors.default.yellowBright(path$2)}`);
|
|
133
112
|
await buildAndStart(cwd, true);
|
|
134
|
-
if (await sendHmrEvent(eventType, path$
|
|
135
|
-
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)}`);
|
|
136
115
|
return true;
|
|
137
116
|
}
|
|
138
117
|
}
|
|
139
118
|
return false;
|
|
140
119
|
}, 700);
|
|
141
|
-
const isConfigUpdate = (path$
|
|
142
|
-
const isConfig = configPaths.some((configPath
|
|
120
|
+
const isConfigUpdate = (path$3) => {
|
|
121
|
+
const isConfig = configPaths.some((configPath) => path$3 === configPath);
|
|
143
122
|
if (!isConfig) return false;
|
|
144
|
-
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."));
|
|
145
124
|
return isConfig;
|
|
146
125
|
};
|
|
147
|
-
const hmrHandler = async (path$
|
|
148
|
-
if (isConfigUpdate(path$
|
|
149
|
-
if (await performHMR(path$
|
|
150
|
-
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)}`);
|
|
151
130
|
ps === null || ps === void 0 || ps.kill();
|
|
152
131
|
ps = await buildAndStart(cwd);
|
|
153
132
|
};
|
|
@@ -161,11 +140,11 @@ async function bootstrapDevelopmentServer(configPath) {
|
|
|
161
140
|
break;
|
|
162
141
|
case "rc":
|
|
163
142
|
console.log(`Received reload commands command, reloading...`);
|
|
164
|
-
await sendHmrEvent(
|
|
143
|
+
await sendHmrEvent(require_utils_constants.HMREventType.ReloadCommands);
|
|
165
144
|
break;
|
|
166
145
|
case "re":
|
|
167
146
|
console.log(`Received reload events command, reloading...`);
|
|
168
|
-
await sendHmrEvent(
|
|
147
|
+
await sendHmrEvent(require_utils_constants.HMREventType.ReloadEvents);
|
|
169
148
|
break;
|
|
170
149
|
}
|
|
171
150
|
});
|
|
@@ -176,17 +155,17 @@ async function bootstrapDevelopmentServer(configPath) {
|
|
|
176
155
|
watcher.on("error", (e) => {
|
|
177
156
|
console.error(e);
|
|
178
157
|
});
|
|
179
|
-
console.log(`${
|
|
180
|
-
${
|
|
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")}
|
|
181
160
|
|
|
182
|
-
${
|
|
183
|
-
${
|
|
184
|
-
${
|
|
185
|
-
${
|
|
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`);
|
|
186
165
|
const buildStart = performance.now();
|
|
187
166
|
ps = await buildAndStart(cwd);
|
|
188
167
|
const buildEnd = performance.now();
|
|
189
|
-
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`);
|
|
190
169
|
return {
|
|
191
170
|
watcher,
|
|
192
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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"}
|