commandkit 1.2.0-dev.20251015015506 → 1.2.0-dev.20251015125840

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/config.cjs +3 -0
  2. package/config.d.ts +1 -0
  3. package/dist/{EventWorkerContext-CLhZRHhH.d.ts → EventWorkerContext-Si7O8BHF.d.ts} +2 -2
  4. package/dist/analytics/analytics-engine.d.ts +2 -2
  5. package/dist/analytics/analytics-engine.js +4 -4
  6. package/dist/analytics/analytics-provider.d.ts +2 -2
  7. package/dist/analytics/utils.js +4 -4
  8. package/dist/{analytics-engine-NOInIjv8.d.ts → analytics-engine-Bysw_gql.d.ts} +2 -2
  9. package/dist/app/commands/AppCommandRunner.d.ts +2 -2
  10. package/dist/app/commands/AppCommandRunner.js +4 -4
  11. package/dist/app/commands/Context.d.ts +2 -2
  12. package/dist/app/commands/Context.js +4 -4
  13. package/dist/app/events/EventWorkerContext.d.ts +3 -3
  14. package/dist/app/handlers/AppCommandHandler.d.ts +2 -2
  15. package/dist/app/handlers/AppCommandHandler.js +4 -4
  16. package/dist/app/handlers/AppEventsHandler.d.ts +2 -2
  17. package/dist/app/handlers/AppEventsHandler.js +4 -4
  18. package/dist/app/index.d.ts +2 -2
  19. package/dist/app/index.js +4 -4
  20. package/dist/app/middlewares/permissions.d.ts +2 -2
  21. package/dist/app/middlewares/permissions.js +4 -4
  22. package/dist/app/register/CommandRegistrar.d.ts +2 -2
  23. package/dist/app/register/CommandRegistrar.js +4 -4
  24. package/dist/{app-process-AQ3Cbf6j.js → app-process-CjyrRAFH.js} +3 -3
  25. package/dist/{app-process-AQ3Cbf6j.js.map → app-process-CjyrRAFH.js.map} +1 -1
  26. package/dist/{build-BYMHMOl_.js → build-Cy9iGxZu.js} +6 -6
  27. package/dist/{build-BYMHMOl_.js.map → build-Cy9iGxZu.js.map} +1 -1
  28. package/dist/cli/app-process.js +5 -5
  29. package/dist/cli/build.d.ts +2 -2
  30. package/dist/cli/build.js +7 -7
  31. package/dist/cli/common.d.ts +2 -2
  32. package/dist/cli/common.js +3 -3
  33. package/dist/cli/development.js +9 -8
  34. package/dist/cli/development.js.map +1 -1
  35. package/dist/cli/env.d.ts +4 -0
  36. package/dist/cli/env.js +1 -1
  37. package/dist/cli/generators.js +3 -3
  38. package/dist/cli/information.js +2 -2
  39. package/dist/cli/init.js +5 -5
  40. package/dist/cli/production.js +10 -8
  41. package/dist/cli/production.js.map +1 -1
  42. package/dist/cli/type-checker.js +4 -4
  43. package/dist/{commandkit-DabqpQ6v.js → commandkit-KwTRAgZd.js} +52 -4
  44. package/dist/commandkit-KwTRAgZd.js.map +1 -0
  45. package/dist/commandkit.d.ts +2 -2
  46. package/dist/commandkit.js +4 -4
  47. package/dist/{common-fIO6fqGZ.js → common-vl9iZ7Th.js} +3 -3
  48. package/dist/{common-fIO6fqGZ.js.map → common-vl9iZ7Th.js.map} +1 -1
  49. package/dist/components/index.js +4 -4
  50. package/dist/components/interactive/button/Button.js +4 -4
  51. package/dist/components/interactive/button/ButtonKit.js +4 -4
  52. package/dist/components/interactive/modal/Modal.js +4 -4
  53. package/dist/components/interactive/modal/ModalKit.js +4 -4
  54. package/dist/components/interactive/select-menu/ChannelSelectMenuKit.js +4 -4
  55. package/dist/components/interactive/select-menu/MentionableSelectMenuKit.js +4 -4
  56. package/dist/components/interactive/select-menu/RoleSelectMenuKit.js +4 -4
  57. package/dist/components/interactive/select-menu/SelectMenu.js +4 -4
  58. package/dist/components/interactive/select-menu/StringSelectMenuKit.js +4 -4
  59. package/dist/components/interactive/select-menu/UserSelectMenuKit.js +4 -4
  60. package/dist/config/config.d.ts +3 -3
  61. package/dist/config/config.js +4 -4
  62. package/dist/config/default.d.ts +2 -2
  63. package/dist/config/default.js +4 -4
  64. package/dist/config/loader.d.ts +2 -2
  65. package/dist/config/loader.js +4 -4
  66. package/dist/config/types.d.ts +2 -2
  67. package/dist/config/utils.d.ts +2 -2
  68. package/dist/{config-DbgXt6mf.d.ts → config-B78JuOAI.d.ts} +2 -2
  69. package/dist/{constants-DqnSDZ6l.d.ts → constants-CN1xFOiX.d.ts} +8 -2
  70. package/dist/{constants-BMWH2YUr.js → constants-CxkFFZ7p.js} +16 -1
  71. package/dist/constants-CxkFFZ7p.js.map +1 -0
  72. package/dist/{constants-CCFSX2NG.d.ts → constants-DwLQQVLy.d.ts} +1 -1
  73. package/dist/context/async-context.d.ts +2 -2
  74. package/dist/context/async-context.js +4 -4
  75. package/dist/context/environment.d.ts +2 -2
  76. package/dist/context/environment.js +4 -4
  77. package/dist/{env-8yY-6pbC.js → env-Dd5904hf.js} +7 -3
  78. package/dist/env-Dd5904hf.js.map +1 -0
  79. package/dist/{error-codes-BiNRVMiV.d.ts → error-codes-DM-Mbprh.d.ts} +1 -1
  80. package/dist/events/CommandKitEventsChannel.d.ts +2 -2
  81. package/dist/{feature-flags-BoBV4Dsj.js → feature-flags-DJqNMI5w.js} +2 -2
  82. package/dist/{feature-flags-BoBV4Dsj.js.map → feature-flags-DJqNMI5w.js.map} +1 -1
  83. package/dist/flags/FlagProvider.d.ts +2 -2
  84. package/dist/flags/feature-flags.d.ts +2 -2
  85. package/dist/flags/feature-flags.js +5 -5
  86. package/dist/flags/store.d.ts +2 -2
  87. package/dist/index.d.ts +9 -8
  88. package/dist/index.js +12 -8
  89. package/dist/index.js.map +1 -1
  90. package/dist/{init-CBb0StSB.js → init-hoTNDwPt.js} +5 -5
  91. package/dist/{init-CBb0StSB.js.map → init-hoTNDwPt.js.map} +1 -1
  92. package/dist/kv/constants.d.ts +1 -1
  93. package/dist/kv/kv.d.ts +2 -2
  94. package/dist/kv/serde.d.ts +2 -2
  95. package/dist/logger/DefaultLogger.js +4 -4
  96. package/dist/logger/Logger.js +4 -4
  97. package/dist/plugins/CompilerPlugin.d.ts +2 -2
  98. package/dist/plugins/PluginCommon.d.ts +2 -2
  99. package/dist/plugins/RuntimePlugin.d.ts +2 -2
  100. package/dist/plugins/index.d.ts +2 -2
  101. package/dist/plugins/index.js +4 -4
  102. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.d.ts +2 -2
  103. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js +4 -4
  104. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.d.ts +2 -2
  105. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js +4 -4
  106. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.d.ts +2 -2
  107. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js +4 -4
  108. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.d.ts +2 -2
  109. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js +4 -4
  110. package/dist/plugins/plugin-runtime/runtime.d.ts +2 -2
  111. package/dist/plugins/types.d.ts +2 -2
  112. package/dist/{resolve-file-url-DFtR8jRR.d.ts → resolve-file-url-BDJud8AT.d.ts} +1 -1
  113. package/dist/{serde-D4H23l2F.d.ts → serde-BLi3Garu.d.ts} +2 -2
  114. package/dist/{type-checker-CEFHoQoV.js → type-checker-BGO8o3rM.js} +2 -2
  115. package/dist/{type-checker-CEFHoQoV.js.map → type-checker-BGO8o3rM.js.map} +1 -1
  116. package/dist/{types-package-D11rQXLs.js → types-package-elMCB4mL.js} +2 -2
  117. package/dist/{types-package-D11rQXLs.js.map → types-package-elMCB4mL.js.map} +1 -1
  118. package/dist/types.d.ts +2 -2
  119. package/dist/{utilities-CQUaua43.d.ts → utilities-y6Wu2hdM.d.ts} +28 -2
  120. package/dist/utils/constants.d.ts +2 -2
  121. package/dist/utils/constants.js +3 -2
  122. package/dist/utils/dev-hooks.d.ts +2 -2
  123. package/dist/utils/dev-hooks.js +4 -4
  124. package/dist/utils/error-codes.d.ts +1 -1
  125. package/dist/utils/resolve-file-url.d.ts +1 -1
  126. package/dist/utils/types-package.js +2 -2
  127. package/dist/utils/utilities.d.ts +2 -2
  128. package/dist/utils/utilities.js +7 -5
  129. package/dist/utils/warning.d.ts +2 -25
  130. package/dist/{version-q6N-AqDi.js → version-CK3cCEHc.js} +2 -2
  131. package/dist/{version-q6N-AqDi.js.map → version-CK3cCEHc.js.map} +1 -1
  132. package/dist/version.js +1 -1
  133. package/dist/warning-Ddig3lHP.d.ts +25 -0
  134. package/package.json +2 -2
  135. package/dist/commandkit-DabqpQ6v.js.map +0 -1
  136. package/dist/constants-BMWH2YUr.js.map +0 -1
  137. package/dist/env-8yY-6pbC.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"build-BYMHMOl_.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 { Options } 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 );\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 silent: !!isDev,\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 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 Options,\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-Cy9iGxZu.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 { Options } 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 );\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 silent: !!isDev,\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 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 Options,\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,UAAU;GACV,2BAA2B;GAC3B,mBAAmB;GACnB,oBAAoB;GACrB,GACD;GACE,UAAU;GACV,2BAA2B;GAC3B,mBAAmB;GACnB,oBAAoB;GACrB;EACF;;;;;;AAOH,eAAsB,iBAAiB,EACrC,SACA,iBACA,OACA,cAC0B;;CAC1B,MAAM,EAAE,UAAU,MAAM,2BAAY;CACpC,MAAM,SAAS,MAAM,kCAAe,WAAW;AAE/C,KAAI,CAAC,SAAS,gEAAC,OAAQ,oFAAY,mBACjC,OAAM,sCAAiB,cAAc,iCAAe;CAGtD,MAAM,gBAAgB,IAAI,yCACvB,WAAW,EAAE,CACf;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,wBACE;GACE,OAAO;GACP,KAAK;GACL,OAAO;GACP,QAAQ,CAAC,MAAM;GACf,OAAO;GACP,QAAQ;GACR,QAAQ,CAAC,CAAC;GACV,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,SAAS;GACT,UAAU;GACV,uBAAuB;GACvB,iCACA,OAAO,iFAAY,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,OAAO;IACX;IACA;IACA;IACA,GAAI,OAAO,eAAe,EAAE;IAAE,CAC7B,CACF;GACD,eAAe,EACb,mBAAmB,SAAS,MAC7B;GACD,UAAU,QACV,iCACA,OAAO,+FAAiB,oBAAmB;GAC5C,4BACD,OAAO,iGAAiB,OACzB,CACF;AAED,QAAM,+BAAgB,OAAO,KAAK;AAClC,QAAM,gBACJ,cAAc,kCACd,CAAC,CAAC,OACF,CAAC,4BACD,OAAO,+FAAkB,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,6BAAiB,6BAAiB,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,KAAK,KAAK;AAEV,MAAM,mBAAmB,SACzB,0BAA0B,KAAK,KAAK,OAAO,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"}
@@ -1,8 +1,8 @@
1
1
  require('../colors-DL3ucTiT.js');
2
- require('../constants-BMWH2YUr.js');
3
- require('../types-package-D11rQXLs.js');
4
- require('../common-fIO6fqGZ.js');
5
- require('../env-8yY-6pbC.js');
6
- const require_app_process = require('../app-process-AQ3Cbf6j.js');
2
+ require('../constants-CxkFFZ7p.js');
3
+ require('../types-package-elMCB4mL.js');
4
+ require('../common-vl9iZ7Th.js');
5
+ require('../env-Dd5904hf.js');
6
+ const require_app_process = require('../app-process-CjyrRAFH.js');
7
7
 
8
8
  exports.createAppProcess = require_app_process.createAppProcess;
@@ -1,4 +1,4 @@
1
- import { CompilerPlugin } from "../analytics-engine-NOInIjv8.js";
1
+ import { CompilerPlugin } from "../analytics-engine-Bysw_gql.js";
2
2
  import "../EventInterceptor-x-R2qshQ.js";
3
3
  import "../ButtonKit-9k4yfhYD.js";
4
4
  import "../ModalKit-Cq2ns6jv.js";
@@ -30,7 +30,7 @@ import "../helpers-hDh_tMb6.js";
30
30
  import "../CommandsRouter-CBdsqaWK.js";
31
31
  import "../EventsRouter-4pT6vj-U.js";
32
32
  import "../index-B5F3AfVc.js";
33
- import "../constants-DqnSDZ6l.js";
33
+ import "../constants-CN1xFOiX.js";
34
34
 
35
35
  //#region src/cli/build.d.ts
36
36
  /**
package/dist/cli/build.js CHANGED
@@ -1,7 +1,7 @@
1
1
  require('../colors-DL3ucTiT.js');
2
2
  require('../ActionRow-uJxU4UGo.js');
3
3
  require('../error-codes-Ds0bnPvT.js');
4
- require('../commandkit-DabqpQ6v.js');
4
+ require('../commandkit-KwTRAgZd.js');
5
5
  require('../warning-CszH8HeS.js');
6
6
  require('../common-0Iw8ZeM6.js');
7
7
  require('../common-CCx-FJI4.js');
@@ -17,7 +17,7 @@ require('../display-WDb9wMCv.js');
17
17
  require('../element-DibzzA5L.js');
18
18
  require('../types-TC4g3w91.js');
19
19
  require('../EventInterceptor-BWoEJMHZ.js');
20
- require('../constants-BMWH2YUr.js');
20
+ require('../constants-CxkFFZ7p.js');
21
21
  require('../PluginCommon-CPWV5xuX.js');
22
22
  require('../CompilerPlugin-CZ4412Zm.js');
23
23
  require('../RuntimePlugin-COeXe8rP.js');
@@ -25,7 +25,7 @@ require('../types-Cdh4uaFR.js');
25
25
  require('../resolve-file-url-CJoD0FAn.js');
26
26
  require('../runtime-Skt5NiOc.js');
27
27
  require('../utils-Br3eenD1.js');
28
- require('../types-package-D11rQXLs.js');
28
+ require('../types-package-elMCB4mL.js');
29
29
  require('../constants-D0dawKxO.js');
30
30
  require('../EventWorkerContext-D_9q1Bm2.js');
31
31
  require('../signals-Cnqe9dFV.js');
@@ -34,11 +34,11 @@ require('../MessageCommandParser-CKh-tM97.js');
34
34
  require('../CommandsRouter-CWMipIis.js');
35
35
  require('../EventsRouter-C04XqRKf.js');
36
36
  require('../router-BvamdzoF.js');
37
- require('../common-fIO6fqGZ.js');
37
+ require('../common-vl9iZ7Th.js');
38
38
  require('../CommandKitEventsChannel-2l9Za-le.js');
39
39
  require('../store-ZwL2gN6a.js');
40
- require('../env-8yY-6pbC.js');
41
- require('../type-checker-CEFHoQoV.js');
42
- const require_build = require('../build-BYMHMOl_.js');
40
+ require('../env-Dd5904hf.js');
41
+ require('../type-checker-BGO8o3rM.js');
42
+ const require_build = require('../build-Cy9iGxZu.js');
43
43
 
44
44
  exports.buildApplication = require_build.buildApplication;
@@ -1,4 +1,4 @@
1
- import { ResolvedCommandKitConfig } from "../analytics-engine-NOInIjv8.js";
1
+ import { ResolvedCommandKitConfig } from "../analytics-engine-Bysw_gql.js";
2
2
  import "../EventInterceptor-x-R2qshQ.js";
3
3
  import "../ButtonKit-9k4yfhYD.js";
4
4
  import "../ModalKit-Cq2ns6jv.js";
@@ -30,7 +30,7 @@ import "../helpers-hDh_tMb6.js";
30
30
  import "../CommandsRouter-CBdsqaWK.js";
31
31
  import "../EventsRouter-4pT6vj-U.js";
32
32
  import "../index-B5F3AfVc.js";
33
- import "../constants-DqnSDZ6l.js";
33
+ import "../constants-CN1xFOiX.js";
34
34
  import * as tsdown0 from "tsdown";
35
35
  import * as typescript0 from "typescript";
36
36
 
@@ -1,7 +1,7 @@
1
1
  require('../colors-DL3ucTiT.js');
2
- require('../constants-BMWH2YUr.js');
3
- require('../types-package-D11rQXLs.js');
4
- const require_common = require('../common-fIO6fqGZ.js');
2
+ require('../constants-CxkFFZ7p.js');
3
+ require('../types-package-elMCB4mL.js');
4
+ const require_common = require('../common-vl9iZ7Th.js');
5
5
 
6
6
  exports.copyLocaleFiles = require_common.copyLocaleFiles;
7
7
  exports.erase = require_common.erase;
@@ -2,7 +2,7 @@ const require_chunk = require('../chunk-nOFOJqeH.js');
2
2
  const require_colors = require('../colors-DL3ucTiT.js');
3
3
  require('../ActionRow-uJxU4UGo.js');
4
4
  require('../error-codes-Ds0bnPvT.js');
5
- const require_commandkit = require('../commandkit-DabqpQ6v.js');
5
+ const require_commandkit = require('../commandkit-KwTRAgZd.js');
6
6
  require('../warning-CszH8HeS.js');
7
7
  require('../common-0Iw8ZeM6.js');
8
8
  require('../common-CCx-FJI4.js');
@@ -18,7 +18,7 @@ require('../display-WDb9wMCv.js');
18
18
  require('../element-DibzzA5L.js');
19
19
  require('../types-TC4g3w91.js');
20
20
  require('../EventInterceptor-BWoEJMHZ.js');
21
- const require_constants = require('../constants-BMWH2YUr.js');
21
+ const require_constants = require('../constants-CxkFFZ7p.js');
22
22
  require('../PluginCommon-CPWV5xuX.js');
23
23
  const require_CompilerPlugin = require('../CompilerPlugin-CZ4412Zm.js');
24
24
  require('../RuntimePlugin-COeXe8rP.js');
@@ -26,7 +26,7 @@ require('../types-Cdh4uaFR.js');
26
26
  require('../resolve-file-url-CJoD0FAn.js');
27
27
  require('../runtime-Skt5NiOc.js');
28
28
  require('../utils-Br3eenD1.js');
29
- require('../types-package-D11rQXLs.js');
29
+ require('../types-package-elMCB4mL.js');
30
30
  require('../constants-D0dawKxO.js');
31
31
  require('../EventWorkerContext-D_9q1Bm2.js');
32
32
  require('../signals-Cnqe9dFV.js');
@@ -35,13 +35,13 @@ require('../MessageCommandParser-CKh-tM97.js');
35
35
  require('../CommandsRouter-CWMipIis.js');
36
36
  require('../EventsRouter-C04XqRKf.js');
37
37
  require('../router-BvamdzoF.js');
38
- const require_common$2 = require('../common-fIO6fqGZ.js');
38
+ const require_common$2 = require('../common-vl9iZ7Th.js');
39
39
  require('../CommandKitEventsChannel-2l9Za-le.js');
40
40
  require('../store-ZwL2gN6a.js');
41
- require('../env-8yY-6pbC.js');
42
- const require_app_process = require('../app-process-AQ3Cbf6j.js');
43
- require('../type-checker-CEFHoQoV.js');
44
- const require_build = require('../build-BYMHMOl_.js');
41
+ require('../env-Dd5904hf.js');
42
+ const require_app_process = require('../app-process-CjyrRAFH.js');
43
+ require('../type-checker-BGO8o3rM.js');
44
+ const require_build = require('../build-Cy9iGxZu.js');
45
45
  let node_crypto = require("node:crypto");
46
46
  node_crypto = require_chunk.__toESM(node_crypto);
47
47
  let path = require("path");
@@ -84,6 +84,7 @@ const isEventSource = (p) => p.replaceAll("\\", "/").includes("src/app/events");
84
84
  */
85
85
  async function bootstrapDevelopmentServer(configPath) {
86
86
  process.env.COMMANDKIT_BOOTSTRAP_MODE = "development";
87
+ process.env.COMMANDKIT_INTERNAL_IS_CLI_PROCESS = "true";
87
88
  const start = performance.now();
88
89
  const cwd = configPath || require_constants.COMMANDKIT_CWD;
89
90
  const configPaths = require_commandkit.getPossibleConfigPaths(cwd);
@@ -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 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"],"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"],"mappings":"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"}
package/dist/cli/env.d.ts CHANGED
@@ -6,6 +6,8 @@
6
6
  declare function DevEnv(_static?: boolean): {
7
7
  NODE_ENV: string;
8
8
  COMMANDKIT_IS_DEV: string;
9
+ COMMANDKIT_INTERNAL_IS_CLI_PROCESS: string;
10
+ COMMANDKIT_IS_BUILD: string;
9
11
  };
10
12
  /**
11
13
  * @private
@@ -14,6 +16,8 @@ declare function DevEnv(_static?: boolean): {
14
16
  declare function ProdEnv(_static?: boolean): {
15
17
  NODE_ENV: string;
16
18
  COMMANDKIT_IS_DEV: string;
19
+ COMMANDKIT_INTERNAL_IS_CLI_PROCESS: string;
20
+ COMMANDKIT_IS_BUILD: string;
17
21
  };
18
22
  /**
19
23
  * @private
package/dist/cli/env.js CHANGED
@@ -1,4 +1,4 @@
1
- const require_env = require('../env-8yY-6pbC.js');
1
+ const require_env = require('../env-Dd5904hf.js');
2
2
 
3
3
  exports.CommonEnvFiles = require_env.CommonEnvFiles;
4
4
  exports.DevEnv = require_env.DevEnv;
@@ -1,8 +1,8 @@
1
1
  const require_chunk = require('../chunk-nOFOJqeH.js');
2
2
  const require_colors = require('../colors-DL3ucTiT.js');
3
- const require_constants = require('../constants-BMWH2YUr.js');
4
- require('../types-package-D11rQXLs.js');
5
- const require_common = require('../common-fIO6fqGZ.js');
3
+ const require_constants = require('../constants-CxkFFZ7p.js');
4
+ require('../types-package-elMCB4mL.js');
5
+ const require_common = require('../common-vl9iZ7Th.js');
6
6
  let path = require("path");
7
7
  path = require_chunk.__toESM(path);
8
8
  let fs_promises = require("fs/promises");
@@ -1,6 +1,6 @@
1
1
  const require_chunk = require('../chunk-nOFOJqeH.js');
2
- const require_constants = require('../constants-BMWH2YUr.js');
3
- const require_version = require('../version-q6N-AqDi.js');
2
+ const require_constants = require('../constants-CxkFFZ7p.js');
3
+ const require_version = require('../version-CK3cCEHc.js');
4
4
  let node_fs = require("node:fs");
5
5
  node_fs = require_chunk.__toESM(node_fs);
6
6
  let node_path = require("node:path");
package/dist/cli/init.js CHANGED
@@ -1,7 +1,7 @@
1
1
  require('../colors-DL3ucTiT.js');
2
2
  require('../ActionRow-uJxU4UGo.js');
3
3
  require('../error-codes-Ds0bnPvT.js');
4
- require('../commandkit-DabqpQ6v.js');
4
+ require('../commandkit-KwTRAgZd.js');
5
5
  require('../warning-CszH8HeS.js');
6
6
  require('../common-0Iw8ZeM6.js');
7
7
  require('../common-CCx-FJI4.js');
@@ -17,7 +17,7 @@ require('../display-WDb9wMCv.js');
17
17
  require('../element-DibzzA5L.js');
18
18
  require('../types-TC4g3w91.js');
19
19
  require('../EventInterceptor-BWoEJMHZ.js');
20
- require('../constants-BMWH2YUr.js');
20
+ require('../constants-CxkFFZ7p.js');
21
21
  require('../PluginCommon-CPWV5xuX.js');
22
22
  require('../CompilerPlugin-CZ4412Zm.js');
23
23
  require('../RuntimePlugin-COeXe8rP.js');
@@ -25,7 +25,7 @@ require('../types-Cdh4uaFR.js');
25
25
  require('../resolve-file-url-CJoD0FAn.js');
26
26
  require('../runtime-Skt5NiOc.js');
27
27
  require('../utils-Br3eenD1.js');
28
- require('../types-package-D11rQXLs.js');
28
+ require('../types-package-elMCB4mL.js');
29
29
  require('../constants-D0dawKxO.js');
30
30
  require('../EventWorkerContext-D_9q1Bm2.js');
31
31
  require('../signals-Cnqe9dFV.js');
@@ -34,9 +34,9 @@ require('../MessageCommandParser-CKh-tM97.js');
34
34
  require('../CommandsRouter-CWMipIis.js');
35
35
  require('../EventsRouter-C04XqRKf.js');
36
36
  require('../router-BvamdzoF.js');
37
- require('../common-fIO6fqGZ.js');
37
+ require('../common-vl9iZ7Th.js');
38
38
  require('../CommandKitEventsChannel-2l9Za-le.js');
39
39
  require('../store-ZwL2gN6a.js');
40
- const require_init = require('../init-CBb0StSB.js');
40
+ const require_init = require('../init-hoTNDwPt.js');
41
41
 
42
42
  exports.bootstrapCommandkitCLI = require_init.bootstrapCommandkitCLI;
@@ -2,7 +2,7 @@ const require_chunk = require('../chunk-nOFOJqeH.js');
2
2
  require('../colors-DL3ucTiT.js');
3
3
  require('../ActionRow-uJxU4UGo.js');
4
4
  require('../error-codes-Ds0bnPvT.js');
5
- const require_commandkit = require('../commandkit-DabqpQ6v.js');
5
+ const require_commandkit = require('../commandkit-KwTRAgZd.js');
6
6
  require('../warning-CszH8HeS.js');
7
7
  require('../common-0Iw8ZeM6.js');
8
8
  require('../common-CCx-FJI4.js');
@@ -18,7 +18,7 @@ require('../display-WDb9wMCv.js');
18
18
  require('../element-DibzzA5L.js');
19
19
  require('../types-TC4g3w91.js');
20
20
  require('../EventInterceptor-BWoEJMHZ.js');
21
- const require_constants = require('../constants-BMWH2YUr.js');
21
+ const require_constants = require('../constants-CxkFFZ7p.js');
22
22
  require('../PluginCommon-CPWV5xuX.js');
23
23
  const require_CompilerPlugin = require('../CompilerPlugin-CZ4412Zm.js');
24
24
  require('../RuntimePlugin-COeXe8rP.js');
@@ -26,7 +26,7 @@ require('../types-Cdh4uaFR.js');
26
26
  require('../resolve-file-url-CJoD0FAn.js');
27
27
  require('../runtime-Skt5NiOc.js');
28
28
  require('../utils-Br3eenD1.js');
29
- require('../types-package-D11rQXLs.js');
29
+ require('../types-package-elMCB4mL.js');
30
30
  require('../constants-D0dawKxO.js');
31
31
  require('../EventWorkerContext-D_9q1Bm2.js');
32
32
  require('../signals-Cnqe9dFV.js');
@@ -35,13 +35,13 @@ require('../MessageCommandParser-CKh-tM97.js');
35
35
  require('../CommandsRouter-CWMipIis.js');
36
36
  require('../EventsRouter-C04XqRKf.js');
37
37
  require('../router-BvamdzoF.js');
38
- const require_common$2 = require('../common-fIO6fqGZ.js');
38
+ const require_common$2 = require('../common-vl9iZ7Th.js');
39
39
  require('../CommandKitEventsChannel-2l9Za-le.js');
40
40
  require('../store-ZwL2gN6a.js');
41
- require('../env-8yY-6pbC.js');
42
- const require_app_process = require('../app-process-AQ3Cbf6j.js');
43
- require('../type-checker-CEFHoQoV.js');
44
- const require_build = require('../build-BYMHMOl_.js');
41
+ require('../env-Dd5904hf.js');
42
+ const require_app_process = require('../app-process-CjyrRAFH.js');
43
+ require('../type-checker-BGO8o3rM.js');
44
+ const require_build = require('../build-Cy9iGxZu.js');
45
45
  const require_utils$1 = require('../utils-Bf-3Eevb.js');
46
46
  let fs = require("fs");
47
47
  fs = require_chunk.__toESM(fs);
@@ -64,6 +64,8 @@ async function bootstrapProductionServer(configPath) {
64
64
  */
65
65
  async function createProductionBuild(configPath) {
66
66
  process.env.COMMANDKIT_BOOTSTRAP_MODE = "production";
67
+ process.env.COMMANDKIT_INTERNAL_IS_CLI_PROCESS = "true";
68
+ process.env.COMMANDKIT_IS_BUILD ??= "true";
67
69
  const cwd = configPath || require_constants.COMMANDKIT_CWD;
68
70
  const config = await require_commandkit.loadConfigFile(cwd);
69
71
  const spinner = await require_utils$1.createSpinner("Creating an optimized production build\n");
@@ -1 +1 @@
1
- {"version":3,"file":"production.js","names":[],"sources":["../../src/cli/production.ts"],"sourcesContent":["import { loadConfigFile } from '../config/loader';\nimport { createAppProcess } from './app-process';\nimport { existsSync } from 'fs';\nimport { findEntrypoint, panic } from './common';\nimport { buildApplication } from './build';\nimport { CompilerPlugin, isCompilerPlugin } from '../plugins';\nimport { createSpinner } from './utils';\nimport { COMMANDKIT_CWD } from '../utils/constants';\n\n/**\n * @private\n * @internal\n */\nexport async function bootstrapProductionServer(configPath?: string) {\n process.env.COMMANDKIT_BOOTSTRAP_MODE = 'production';\n const cwd = configPath || COMMANDKIT_CWD;\n const config = await loadConfigFile(cwd);\n const mainFile = findEntrypoint(config.distDir);\n\n if (!existsSync(mainFile)) {\n panic(\n `Could not locate the entrypoint. Did you forget to build the application? Run 'commandkit build' to build the application first.`,\n );\n }\n\n return createAppProcess(mainFile, cwd, false);\n}\n\n/**\n * @private\n * @internal\n */\nexport async function createProductionBuild(configPath?: string) {\n process.env.COMMANDKIT_BOOTSTRAP_MODE = 'production';\n const cwd = configPath || COMMANDKIT_CWD;\n const config = await loadConfigFile(cwd);\n\n const spinner = await createSpinner(\n 'Creating an optimized production build\\n',\n );\n\n spinner.start();\n\n await buildApplication({\n configPath: cwd,\n isDev: false,\n plugins: config.plugins.filter((p) =>\n isCompilerPlugin(p),\n ) as CompilerPlugin[],\n rolldownPlugins: config.rolldownPlugins,\n });\n\n spinner.succeed('Production build completed!');\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,eAAsB,0BAA0B,YAAqB;AACnE,SAAQ,IAAI,4BAA4B;CACxC,MAAM,MAAM,cAAc;CAE1B,MAAM,WAAW,iCADF,MAAM,kCAAe,IAAI,EACD,QAAQ;AAE/C,KAAI,oBAAY,SAAS,CACvB,wBACE,mIACD;AAGH,QAAO,qCAAiB,UAAU,KAAK,MAAM;;;;;;AAO/C,eAAsB,sBAAsB,YAAqB;AAC/D,SAAQ,IAAI,4BAA4B;CACxC,MAAM,MAAM,cAAc;CAC1B,MAAM,SAAS,MAAM,kCAAe,IAAI;CAExC,MAAM,UAAU,MAAM,8BACpB,2CACD;AAED,SAAQ,OAAO;AAEf,OAAM,+BAAiB;EACrB,YAAY;EACZ,OAAO;EACP,SAAS,OAAO,QAAQ,QAAQ,MAChC,wCAAiB,EAAE,CAClB;EACD,iBAAiB,OAAO;EACzB,CAAC;AAEF,SAAQ,QAAQ,8BAA8B"}
1
+ {"version":3,"file":"production.js","names":[],"sources":["../../src/cli/production.ts"],"sourcesContent":["import { loadConfigFile } from '../config/loader';\nimport { createAppProcess } from './app-process';\nimport { existsSync } from 'fs';\nimport { findEntrypoint, panic } from './common';\nimport { buildApplication } from './build';\nimport { CompilerPlugin, isCompilerPlugin } from '../plugins';\nimport { createSpinner } from './utils';\nimport { COMMANDKIT_CWD } from '../utils/constants';\n\n/**\n * @private\n * @internal\n */\nexport async function bootstrapProductionServer(configPath?: string) {\n process.env.COMMANDKIT_BOOTSTRAP_MODE = 'production';\n const cwd = configPath || COMMANDKIT_CWD;\n const config = await loadConfigFile(cwd);\n const mainFile = findEntrypoint(config.distDir);\n\n if (!existsSync(mainFile)) {\n panic(\n `Could not locate the entrypoint. Did you forget to build the application? Run 'commandkit build' to build the application first.`,\n );\n }\n\n return createAppProcess(mainFile, cwd, false);\n}\n\n/**\n * @private\n * @internal\n */\nexport async function createProductionBuild(configPath?: string) {\n process.env.COMMANDKIT_BOOTSTRAP_MODE = 'production';\n process.env.COMMANDKIT_INTERNAL_IS_CLI_PROCESS = 'true';\n process.env.COMMANDKIT_IS_BUILD ??= 'true';\n const cwd = configPath || COMMANDKIT_CWD;\n const config = await loadConfigFile(cwd);\n\n const spinner = await createSpinner(\n 'Creating an optimized production build\\n',\n );\n\n spinner.start();\n\n await buildApplication({\n configPath: cwd,\n isDev: false,\n plugins: config.plugins.filter((p) =>\n isCompilerPlugin(p),\n ) as CompilerPlugin[],\n rolldownPlugins: config.rolldownPlugins,\n });\n\n spinner.succeed('Production build completed!');\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,eAAsB,0BAA0B,YAAqB;AACnE,SAAQ,IAAI,4BAA4B;CACxC,MAAM,MAAM,cAAc;CAE1B,MAAM,WAAW,iCADF,MAAM,kCAAe,IAAI,EACD,QAAQ;AAE/C,KAAI,oBAAY,SAAS,CACvB,wBACE,mIACD;AAGH,QAAO,qCAAiB,UAAU,KAAK,MAAM;;;;;;AAO/C,eAAsB,sBAAsB,YAAqB;AAC/D,SAAQ,IAAI,4BAA4B;AACxC,SAAQ,IAAI,qCAAqC;AACjD,SAAQ,IAAI,wBAAwB;CACpC,MAAM,MAAM,cAAc;CAC1B,MAAM,SAAS,MAAM,kCAAe,IAAI;CAExC,MAAM,UAAU,MAAM,8BACpB,2CACD;AAED,SAAQ,OAAO;AAEf,OAAM,+BAAiB;EACrB,YAAY;EACZ,OAAO;EACP,SAAS,OAAO,QAAQ,QAAQ,MAChC,wCAAiB,EAAE,CAClB;EACD,iBAAiB,OAAO;EACzB,CAAC;AAEF,SAAQ,QAAQ,8BAA8B"}
@@ -1,7 +1,7 @@
1
1
  require('../colors-DL3ucTiT.js');
2
- require('../constants-BMWH2YUr.js');
3
- require('../types-package-D11rQXLs.js');
4
- require('../common-fIO6fqGZ.js');
5
- const require_type_checker = require('../type-checker-CEFHoQoV.js');
2
+ require('../constants-CxkFFZ7p.js');
3
+ require('../types-package-elMCB4mL.js');
4
+ require('../common-vl9iZ7Th.js');
5
+ const require_type_checker = require('../type-checker-BGO8o3rM.js');
6
6
 
7
7
  exports.performTypeCheck = require_type_checker.performTypeCheck;
@@ -4,12 +4,12 @@ const require_error_codes = require('./error-codes-Ds0bnPvT.js');
4
4
  const require_warning = require('./warning-CszH8HeS.js');
5
5
  const require_element = require('./element-DibzzA5L.js');
6
6
  const require_EventInterceptor = require('./EventInterceptor-BWoEJMHZ.js');
7
- const require_constants = require('./constants-BMWH2YUr.js');
7
+ const require_constants = require('./constants-CxkFFZ7p.js');
8
8
  const require_CompilerPlugin = require('./CompilerPlugin-CZ4412Zm.js');
9
9
  const require_RuntimePlugin = require('./RuntimePlugin-COeXe8rP.js');
10
10
  const require_resolve_file_url = require('./resolve-file-url-CJoD0FAn.js');
11
11
  const require_utils = require('./utils-Br3eenD1.js');
12
- const require_types_package = require('./types-package-D11rQXLs.js');
12
+ const require_types_package = require('./types-package-elMCB4mL.js');
13
13
  const require_constants$1 = require('./constants-D0dawKxO.js');
14
14
  const require_EventWorkerContext = require('./EventWorkerContext-D_9q1Bm2.js');
15
15
  const require_signals = require('./signals-Cnqe9dFV.js');
@@ -17,7 +17,7 @@ const require_helpers = require('./helpers-D2_1jih6.js');
17
17
  const require_MessageCommandParser = require('./MessageCommandParser-CKh-tM97.js');
18
18
  const require_CommandsRouter = require('./CommandsRouter-CWMipIis.js');
19
19
  const require_EventsRouter = require('./EventsRouter-C04XqRKf.js');
20
- const require_common = require('./common-fIO6fqGZ.js');
20
+ const require_common = require('./common-vl9iZ7Th.js');
21
21
  const require_CommandKitEventsChannel = require('./CommandKitEventsChannel-2l9Za-le.js');
22
22
  const require_store = require('./store-ZwL2gN6a.js');
23
23
  let node_events = require("node:events");
@@ -1945,6 +1945,42 @@ function devOnly(fn) {
1945
1945
  return f;
1946
1946
  }
1947
1947
  /**
1948
+ * Creates a function from the given function that runs only in build mode.
1949
+ * @param fn The function to run in build mode.
1950
+ * @returns The function that runs only in build mode.
1951
+ * @example
1952
+ * ```ts
1953
+ * const buildOnlyFn = buildOnly(() => {
1954
+ * console.log('This function runs only in build mode');
1955
+ * });
1956
+ * buildOnlyFn(); // This will log the message only in build mode
1957
+ * ```
1958
+ */
1959
+ function buildOnly(fn) {
1960
+ const f = (...args) => {
1961
+ if (require_constants.isBuildLikeEnvironment()) return fn(...args);
1962
+ };
1963
+ return f;
1964
+ }
1965
+ /**
1966
+ * Creates a function from the given function that runs only outside of build mode.
1967
+ * @param fn The function to run outside of build mode.
1968
+ * @returns The function that runs only outside of build mode.
1969
+ * @example
1970
+ * ```ts
1971
+ * const noBuildOnlyFn = noBuildOnly(() => {
1972
+ * console.log('This function runs only outside of build mode');
1973
+ * });
1974
+ * noBuildOnlyFn(); // This will log the message only outside of build mode
1975
+ * ```
1976
+ */
1977
+ function noBuildOnly(fn) {
1978
+ const f = (...args) => {
1979
+ if (!require_constants.isBuildLikeEnvironment()) return fn(...args);
1980
+ };
1981
+ return f;
1982
+ }
1983
+ /**
1948
1984
  * Creates a simple proxy object that mirrors the target object.
1949
1985
  * @param target The target object to proxy.
1950
1986
  * @returns The proxied object.
@@ -4349,6 +4385,12 @@ Object.defineProperty(exports, 'beforeExecute', {
4349
4385
  return beforeExecute;
4350
4386
  }
4351
4387
  });
4388
+ Object.defineProperty(exports, 'buildOnly', {
4389
+ enumerable: true,
4390
+ get: function () {
4391
+ return buildOnly;
4392
+ }
4393
+ });
4352
4394
  Object.defineProperty(exports, 'cancelAfter', {
4353
4395
  enumerable: true,
4354
4396
  get: function () {
@@ -4487,6 +4529,12 @@ Object.defineProperty(exports, 'noAnalytics', {
4487
4529
  return noAnalytics;
4488
4530
  }
4489
4531
  });
4532
+ Object.defineProperty(exports, 'noBuildOnly', {
4533
+ enumerable: true,
4534
+ get: function () {
4535
+ return noBuildOnly;
4536
+ }
4537
+ });
4490
4538
  Object.defineProperty(exports, 'onApplicationBootstrap', {
4491
4539
  enumerable: true,
4492
4540
  get: function () {
@@ -4523,4 +4571,4 @@ Object.defineProperty(exports, 'useStore', {
4523
4571
  return useStore;
4524
4572
  }
4525
4573
  });
4526
- //# sourceMappingURL=commandkit-DabqpQ6v.js.map
4574
+ //# sourceMappingURL=commandkit-KwTRAgZd.js.map