commandkit 1.0.0-dev.20250529020123 → 1.0.0-dev.20250529125116

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 (89) hide show
  1. package/dist/CommandKit.js +4 -4
  2. package/dist/CommandKit.js.map +1 -1
  3. package/dist/app/commands/AppCommandRunner.js +2 -2
  4. package/dist/app/commands/AppCommandRunner.js.map +1 -1
  5. package/dist/app/commands/Context.js +2 -2
  6. package/dist/app/commands/Context.js.map +1 -1
  7. package/dist/app/handlers/AppCommandHandler.js +3 -3
  8. package/dist/app/handlers/AppCommandHandler.js.map +1 -1
  9. package/dist/app/handlers/AppEventsHandler.js +2 -2
  10. package/dist/app/handlers/AppEventsHandler.js.map +1 -1
  11. package/dist/app/index.js +3 -3
  12. package/dist/app/index.js.map +1 -1
  13. package/dist/app/register/CommandRegistrar.js +2 -2
  14. package/dist/app/register/CommandRegistrar.js.map +1 -1
  15. package/dist/cli/app-process.js +2 -2
  16. package/dist/cli/app-process.js.map +1 -1
  17. package/dist/cli/build.js +2 -2
  18. package/dist/cli/build.js.map +1 -1
  19. package/dist/cli/common.js +4 -4
  20. package/dist/cli/common.js.map +1 -1
  21. package/dist/cli/development.js +8 -8
  22. package/dist/cli/development.js.map +1 -1
  23. package/dist/cli/generators.js +4 -4
  24. package/dist/cli/generators.js.map +1 -1
  25. package/dist/cli/information.js +1 -1
  26. package/dist/cli/information.js.map +1 -1
  27. package/dist/cli/init.js +15 -15
  28. package/dist/cli/init.js.map +1 -1
  29. package/dist/cli/production.js +9 -9
  30. package/dist/cli/production.js.map +1 -1
  31. package/dist/cli/type-checker.js +2 -2
  32. package/dist/cli/type-checker.js.map +1 -1
  33. package/dist/components/index.js +4 -4
  34. package/dist/components/index.js.map +1 -1
  35. package/dist/components/v1/button/Button.js +4 -4
  36. package/dist/components/v1/button/Button.js.map +1 -1
  37. package/dist/components/v1/button/ButtonKit.js +4 -4
  38. package/dist/components/v1/button/ButtonKit.js.map +1 -1
  39. package/dist/components/v1/modal/Modal.js +4 -4
  40. package/dist/components/v1/modal/Modal.js.map +1 -1
  41. package/dist/components/v1/modal/ModalKit.js +4 -4
  42. package/dist/components/v1/modal/ModalKit.js.map +1 -1
  43. package/dist/components/v1/select-menu/ChannelSelectMenuKit.js +4 -4
  44. package/dist/components/v1/select-menu/ChannelSelectMenuKit.js.map +1 -1
  45. package/dist/components/v1/select-menu/MentionableSelectMenuKit.js +4 -4
  46. package/dist/components/v1/select-menu/MentionableSelectMenuKit.js.map +1 -1
  47. package/dist/components/v1/select-menu/RoleSelectMenuKit.js +4 -4
  48. package/dist/components/v1/select-menu/RoleSelectMenuKit.js.map +1 -1
  49. package/dist/components/v1/select-menu/SelectMenu.js +4 -4
  50. package/dist/components/v1/select-menu/SelectMenu.js.map +1 -1
  51. package/dist/components/v1/select-menu/StringSelectMenuKit.js +4 -4
  52. package/dist/components/v1/select-menu/StringSelectMenuKit.js.map +1 -1
  53. package/dist/components/v1/select-menu/UserSelectMenuKit.js +4 -4
  54. package/dist/components/v1/select-menu/UserSelectMenuKit.js.map +1 -1
  55. package/dist/config/config.js +2 -2
  56. package/dist/config/config.js.map +1 -1
  57. package/dist/config/default.js +2 -2
  58. package/dist/config/default.js.map +1 -1
  59. package/dist/config/loader.js +4 -4
  60. package/dist/config/loader.js.map +1 -1
  61. package/dist/context/async-context.js +4 -4
  62. package/dist/context/async-context.js.map +1 -1
  63. package/dist/context/environment.js +2 -2
  64. package/dist/context/environment.js.map +1 -1
  65. package/dist/flags/feature-flags.js +6 -6
  66. package/dist/flags/feature-flags.js.map +1 -1
  67. package/dist/index.js +4 -4
  68. package/dist/index.js.map +1 -1
  69. package/dist/logger/DefaultLogger.js +2 -2
  70. package/dist/logger/DefaultLogger.js.map +1 -1
  71. package/dist/logger/Logger.js +2 -2
  72. package/dist/logger/Logger.js.map +1 -1
  73. package/dist/plugins/index.js +2 -2
  74. package/dist/plugins/index.js.map +1 -1
  75. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js +1 -1
  76. package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js.map +1 -1
  77. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js +1 -1
  78. package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js.map +1 -1
  79. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js +2 -2
  80. package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js.map +1 -1
  81. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js +2 -2
  82. package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js.map +1 -1
  83. package/dist/utils/dev-hooks.js +1 -1
  84. package/dist/utils/dev-hooks.js.map +1 -1
  85. package/dist/utils/utilities.js +1 -1
  86. package/dist/utils/utilities.js.map +1 -1
  87. package/dist/version.js +1 -1
  88. package/dist/version.js.map +1 -1
  89. package/package.json +2 -2
@@ -1,3 +1,3 @@
1
- "use strict";var E=Object.create;var s=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var n=(e,t)=>s(e,"name",{value:t,configurable:!0});var C=(e,t)=>{for(var o in t)s(e,o,{get:t[o],enumerable:!0})},m=(e,t,o,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of M(t))!k.call(e,r)&&r!==o&&s(e,r,{get:()=>t[r],enumerable:!(c=w(t,r))||c.enumerable});return e};var _=(e,t,o)=>(o=e!=null?E(O(e)):{},m(t||!e||!e.__esModule?s(o,"default",{value:e,enumerable:!0}):o,e)),D=e=>m(s({},"__esModule",{value:!0}),e);var H={};C(H,{createAppProcess:()=>V});module.exports=D(H);var T=require("child_process");function d(e=!1){let t={NODE_ENV:"development",COMMANDKIT_IS_DEV:"true"};return e?Object.assign({},t):Object.assign({},process.env,t)}n(d,"DevEnv");function l(e=!1){let t={NODE_ENV:"production",COMMANDKIT_IS_DEV:"false"};return e?Object.assign({},t):Object.assign({},process.env,t)}n(l,"ProdEnv");var u=[".env",".env.local"],N=[".env.development",".env.development.local"],P=[".env.production",".env.production.local"],L=[...u,...N],U=[...u,...P];var v=require("path"),S=require("fs");var j=require("rimraf"),h=require("path"),K=_(require("fs"));var f=require("picocolors"),y=(0,f.createColors)(!0);var x=require("fs/promises"),I=require("path");var W=Symbol("kCommandKitCacheTag"),A=process.env.COMMANDKIT_IS_DEV==="true",X=process.env.COMMANDKIT_IS_TEST==="true",Y=process.env.COMMANDKIT_BOOTSTRAP_MODE||"development";var b=require("fs");var F=require("child_process");function R(e){process.stdout.write(e),process.stdout.write(`
2
- `)}n(R,"write");function g(e){R(y.red(`Error: ${e}`)),process.exit(1)}n(g,"panic");function $(e){return e?["pipe","pipe","pipe","ipc"]:["pipe","pipe","pipe"]}n($,"getStdio");function V(e,t,o){var a,p;(0,S.existsSync)((0,v.join)(t,e))||g(`Could not locate the entrypoint file: ${e}`);let c=$(o),r=(0,T.spawn)("node",[`--title="CommandKit ${o?"Development":"Production"}"`,"--enable-source-maps",e],{cwd:t,windowsHide:!0,env:o?d():l(),stdio:c});return(a=r.stdout)==null||a.pipe(process.stdout),(p=r.stderr)==null||p.pipe(process.stderr),r}n(V,"createAppProcess");0&&(module.exports={createAppProcess});
1
+ "use strict";var w=Object.create;var s=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var n=(e,t)=>s(e,"name",{value:t,configurable:!0});var C=(e,t)=>{for(var o in t)s(e,o,{get:t[o],enumerable:!0})},d=(e,t,o,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of M(t))!k.call(e,r)&&r!==o&&s(e,r,{get:()=>t[r],enumerable:!(c=E(t,r))||c.enumerable});return e};var _=(e,t,o)=>(o=e!=null?w(O(e)):{},d(t||!e||!e.__esModule?s(o,"default",{value:e,enumerable:!0}):o,e)),D=e=>d(s({},"__esModule",{value:!0}),e);var H={};C(H,{createAppProcess:()=>V});module.exports=D(H);var v=require("child_process");function m(e=!1){let t={NODE_ENV:"development",COMMANDKIT_IS_DEV:"true"};return e?Object.assign({},t):Object.assign({},process.env,t)}n(m,"DevEnv");function l(e=!1){let t={NODE_ENV:"production",COMMANDKIT_IS_DEV:"false"};return e?Object.assign({},t):Object.assign({},process.env,t)}n(l,"ProdEnv");var u=[".env",".env.local"],N=[".env.development",".env.development.local"],P=[".env.production",".env.production.local"],L=[...u,...N],U=[...u,...P];var T=require("path"),S=require("fs");var b=require("rimraf"),j=require("path"),F=_(require("fs"));var f=require("picocolors"),y=(0,f.createColors)(!0);var x=require("fs/promises"),A=require("path");var W=Symbol("kCommandKitCacheTag"),h=process.env.COMMANDKIT_IS_DEV==="true",X=process.env.COMMANDKIT_IS_TEST==="true",Y=process.env.COMMANDKIT_BOOTSTRAP_MODE||"development";var I=require("fs");var K=require("child_process");function R(e){process.stdout.write(e),process.stdout.write(`
2
+ `)}n(R,"write");function g(e){R(y.red(`Error: ${e}`)),process.exit(1)}n(g,"panic");function $(e){return e?["pipe","pipe","pipe","ipc"]:["pipe","pipe","pipe"]}n($,"getStdio");function V(e,t,o){var a,p;(0,S.existsSync)((0,T.join)(t,e))||g(`Could not locate the entrypoint file: ${e}`);let c=$(o),r=(0,v.spawn)("node",[`--title="CommandKit ${o?"Development":"Production"}"`,"--enable-source-maps",e],{cwd:t,windowsHide:!0,env:o?m():l(),stdio:c});return(a=r.stdout)==null||a.pipe(process.stdout),(p=r.stderr)==null||p.pipe(process.stderr),r}n(V,"createAppProcess");0&&(module.exports={createAppProcess});
3
3
  //# sourceMappingURL=app-process.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/app-process.ts","../../src/cli/env.ts","../../src/cli/common.ts","../../src/utils/colors.ts","../../src/utils/types-package.ts","../../src/utils/constants.ts"],"sourcesContent":["import { IOType, spawn } from 'node:child_process';\nimport { DevEnv, ProdEnv } from './env';\nimport { join } from 'node:path';\nimport { existsSync } from 'node:fs';\nimport { panic } from './common';\n\nfunction getStdio(supportsCommands: boolean) {\n if (supportsCommands) {\n return ['pipe', 'pipe', 'pipe', 'ipc'];\n }\n\n return ['pipe', 'pipe', 'pipe'];\n}\n\nexport function createAppProcess(\nfileName: string,\ncwd: string,\nisDev: boolean)\n{\n if (!existsSync(join(cwd, fileName))) {\n panic(`Could not locate the entrypoint file: ${fileName}`);\n }\n\n const stdio = getStdio(isDev) as IOType[];\n\n const ps = spawn(\n 'node',\n [\n `--title=\"CommandKit ${isDev ? 'Development' : 'Production'}\"`,\n '--enable-source-maps',\n fileName],\n\n {\n cwd,\n windowsHide: true,\n env: isDev ? DevEnv() : ProdEnv(),\n stdio\n }\n );\n\n ps.stdout?.pipe(process.stdout);\n ps.stderr?.pipe(process.stderr);\n\n return ps;\n}","export function DevEnv(_static = false) {\n const common = {\n NODE_ENV: 'development',\n COMMANDKIT_IS_DEV: 'true'\n };\n\n if (_static) return Object.assign({}, common);\n\n return Object.assign({}, process.env, common);\n}\n\nexport function ProdEnv(_static = false) {\n const common = {\n NODE_ENV: 'production',\n COMMANDKIT_IS_DEV: 'false'\n };\n\n if (_static) return Object.assign({}, common);\n\n return Object.assign({}, process.env, common);\n}\n\nexport const CommonEnvFiles = ['.env', '.env.local'];\nexport const DevEnvFiles = ['.env.development', '.env.development.local'];\nexport const ProdEnvFiles = ['.env.production', '.env.production.local'];\n\nexport const devEnvFileArgs = [...CommonEnvFiles, ...DevEnvFiles];\n\nexport const prodEnvFileArgs = [...CommonEnvFiles, ...ProdEnvFiles];","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';\n\nlet ts: typeof import('typescript') | undefined;\n\nexport function write(message: any) {\n process.stdout.write(message);\n process.stdout.write('\\n');\n}\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 */\nexport function panic(message: any): never {\n write(colors.red(`Error: ${message}`));\n process.exit(1);\n}\n\nexport function findPackageJSON() {\n const cwd = process.cwd();\n const target = join(cwd, 'package.json');\n\n if (!fs.existsSync(target)) {\n panic('Could not find package.json in current directory.');\n }\n\n return JSON.parse(fs.readFileSync(target, 'utf8'));\n}\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\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 };\n\n for (const [lockfile, manager] of Object.entries(lockfiles)) {\n if (fs.existsSync(join(process.cwd(), lockfile))) {\n packageManager = manager;\n break;\n }\n }\n\n if (!packageManager) {\n packageManager = 'npm';\n }\n\n return packageManager;\n}\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\n execSync(`${packageManager} add typescript`, {\n stdio: 'inherit',\n cwd: process.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\nexport async function loadConfigFileFromPath(\ntarget: string)\n: Promise<ResolvedCommandKitConfig> {\n await ensureExists(target);\n\n const isTs = await ensureTypeScript(target);\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 const nodeModulesPath = await generateTypesPackage();\n\n const tmpFile = join(nodeModulesPath, 'compiled-commandkit.config.mjs');\n\n fs.writeFileSync(tmpFile, outputText);\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 return config;\n}\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\nexport function erase(dir: string) {\n rimrafSync(dir);\n}\n\nexport async function copyLocaleFiles(_from: string, _to: string) {\n const resolvedFrom = join(process.cwd(), _from);\n const resolvedTo = join(process.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 });\n }\n\n await fs.promises.cp(localePath, destLocalePath, {\n recursive: true,\n force: true\n });\n }\n}","import { createColors } from 'picocolors';\n\nexport default createColors(true);","import { mkdir, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { COMMANDKIT_IS_DEV } from './constants';\nimport { existsSync } from 'node:fs';\n\nexport async function generateTypesPackage(force = false) {\n const location = join(process.cwd(), 'node_modules', 'commandkit-types');\n if (!COMMANDKIT_IS_DEV && !force) return location;\n const packageJSON = join(location, 'package.json');\n const index = join(location, 'index.js');\n const types = join(location, 'index.d.ts');\n const command = join(location, 'command.d.ts');\n\n const packageJSONContent = {\n name: 'commandkit-types',\n version: '1.0.0',\n description: 'CommandKit types package',\n type: 'commonjs',\n main: 'index.js',\n types: 'index.d.ts'\n };\n\n const indexContent = `module.exports = {};`;\n\n // Restructuring the type declarations to properly extend rather than replace types\n const typesContent = `// Main types index file - imports all type declarations\nimport './command';\nexport {};\n`;\n\n // Properly set up command types to extend the CommandTypeData interface\n const commandTypesContent = `// Auto-generated command types\n export {};\ndeclare module 'commandkit' {\n type CommandTypeData = string\n}`;\n\n await mkdir(location, { recursive: true }).catch(() => {});\n await writeFile(packageJSON, JSON.stringify(packageJSONContent, null, 2));\n await writeFile(index, indexContent);\n await writeFile(types, typesContent);\n await writeFile(command, commandTypesContent);\n\n return location;\n}\n\nexport async function rewriteCommandDeclaration(data: string) {\n const commandTypesContent = `// Auto-generated command types\n declare module 'commandkit' {\n ${data}\n}\n export {};\n`;\n\n const location = join(process.cwd(), 'node_modules', 'commandkit-types');\n\n if (!existsSync(location)) return;\n\n const type = join(location, 'command.d.ts');\n\n await writeFile(type, commandTypesContent, { encoding: 'utf-8' });\n}","export const COMMANDKIT_CACHE_TAG = Symbol('kCommandKitCacheTag');\n\nexport const COMMANDKIT_IS_DEV = process.env.COMMANDKIT_IS_DEV === 'true';\n\nexport const COMMANDKIT_IS_TEST = process.env.COMMANDKIT_IS_TEST === 'true';\n\nexport const COMMANDKIT_BOOTSTRAP_MODE = (process.env.\nCOMMANDKIT_BOOTSTRAP_MODE || 'development') as 'development' | 'production';\n\n/**\n * Types of Hot Module Replacement events\n */\nexport const HMREventType = {\n ReloadCommands: 'reload-commands',\n ReloadEvents: 'reload-events',\n Unknown: 'unknown'\n} as const;\n\nexport type HMREventType = (typeof HMREventType)[keyof typeof HMREventType];"],"mappings":"6mBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA8B,yBCAvB,SAASC,EAAOC,EAAU,GAAO,CACtC,IAAMC,EAAS,CACb,SAAU,cACV,kBAAmB,MACrB,EAEA,OAAID,EAAgB,OAAO,OAAO,CAAC,EAAGC,CAAM,EAErC,OAAO,OAAO,CAAC,EAAG,QAAQ,IAAKA,CAAM,CAC9C,CATgBC,EAAAH,EAAA,UAWT,SAASI,EAAQH,EAAU,GAAO,CACvC,IAAMC,EAAS,CACb,SAAU,aACV,kBAAmB,OACrB,EAEA,OAAID,EAAgB,OAAO,OAAO,CAAC,EAAGC,CAAM,EAErC,OAAO,OAAO,CAAC,EAAG,QAAQ,IAAKA,CAAM,CAC9C,CATgBC,EAAAC,EAAA,WAWT,IAAMC,EAAiB,CAAC,OAAQ,YAAY,EACtCC,EAAc,CAAC,mBAAoB,wBAAwB,EAC3DC,EAAe,CAAC,kBAAmB,uBAAuB,EAE1DC,EAAiB,CAAC,GAAGH,EAAgB,GAAGC,CAAW,EAEnDG,EAAkB,CAAC,GAAGJ,EAAgB,GAAGE,CAAY,ED1BlE,IAAAG,EAAqB,gBACrBC,EAA2B,cEH3B,IAAAC,EAA2B,kBAC3BC,EAAqB,gBACrBC,EAAe,iBCFf,IAAAC,EAA6B,sBAEtBC,KAAQ,gBAAa,EAAI,ECFhC,IAAAC,EAAiC,uBACjCC,EAAqB,gBCDd,IAAMC,EAAuB,OAAO,qBAAqB,EAEnDC,EAAoB,QAAQ,IAAI,oBAAsB,OAEtDC,EAAqB,QAAQ,IAAI,qBAAuB,OAExDC,EAA6B,QAAQ,IAClD,2BAA6B,cDJ7B,IAAAC,EAA2B,cFG3B,IAAAC,EAAyB,yBAIlB,SAASC,EAAMC,EAAc,CAClC,QAAQ,OAAO,MAAMA,CAAO,EAC5B,QAAQ,OAAO,MAAM;AAAA,CAAI,CAC3B,CAHgBC,EAAAF,EAAA,SAiBT,SAASG,EAAMC,EAAqB,CACzCC,EAAMC,EAAO,IAAI,UAAUF,CAAO,EAAE,CAAC,EACrC,QAAQ,KAAK,CAAC,CAChB,CAHgBG,EAAAJ,EAAA,SFrBhB,SAASK,EAASC,EAA2B,CAC3C,OAAIA,EACK,CAAC,OAAQ,OAAQ,OAAQ,KAAK,EAGhC,CAAC,OAAQ,OAAQ,MAAM,CAChC,CANSC,EAAAF,EAAA,YAQF,SAASG,EAChBC,EACAC,EACAC,EACA,CAlBA,IAAAC,EAAAC,KAmBO,iBAAW,QAAKH,EAAKD,CAAQ,CAAC,GACjCK,EAAM,yCAAyCL,CAAQ,EAAE,EAG3D,IAAMM,EAAQV,EAASM,CAAK,EAEtBK,KAAK,SACT,OACA,CACA,uBAAuBL,EAAQ,cAAgB,YAAY,IAC3D,uBACAF,CAAQ,EAER,CACE,IAAAC,EACA,YAAa,GACb,IAAKC,EAAQM,EAAO,EAAIC,EAAQ,EAChC,MAAAH,CACF,CACF,EAEA,OAAAH,EAAAI,EAAG,SAAH,MAAAJ,EAAW,KAAK,QAAQ,SACxBC,EAAAG,EAAG,SAAH,MAAAH,EAAW,KAAK,QAAQ,QAEjBG,CACT,CA9BgBT,EAAAC,EAAA","names":["app_process_exports","__export","createAppProcess","__toCommonJS","import_node_child_process","DevEnv","_static","common","__name","ProdEnv","CommonEnvFiles","DevEnvFiles","ProdEnvFiles","devEnvFileArgs","prodEnvFileArgs","import_node_path","import_node_fs","import_rimraf","import_node_path","import_node_fs","import_picocolors","colors_default","import_promises","import_node_path","COMMANDKIT_CACHE_TAG","COMMANDKIT_IS_DEV","COMMANDKIT_IS_TEST","COMMANDKIT_BOOTSTRAP_MODE","import_node_fs","import_node_child_process","write","message","__name","panic","message","write","colors_default","__name","getStdio","supportsCommands","__name","createAppProcess","fileName","cwd","isDev","_a","_b","panic","stdio","ps","DevEnv","ProdEnv"]}
1
+ {"version":3,"sources":["../../src/cli/app-process.ts","../../src/cli/env.ts","../../src/cli/common.ts","../../src/utils/colors.ts","../../src/utils/types-package.ts","../../src/utils/constants.ts"],"sourcesContent":["import { IOType, spawn } from 'node:child_process';\nimport { DevEnv, ProdEnv } from './env';\nimport { join } from 'node:path';\nimport { existsSync } from 'node:fs';\nimport { panic } from './common';\n\nfunction getStdio(supportsCommands: boolean) {\n if (supportsCommands) {\n return ['pipe', 'pipe', 'pipe', 'ipc'];\n }\n\n return ['pipe', 'pipe', 'pipe'];\n}\n\nexport function createAppProcess(\nfileName: string,\ncwd: string,\nisDev: boolean)\n{\n if (!existsSync(join(cwd, fileName))) {\n panic(`Could not locate the entrypoint file: ${fileName}`);\n }\n\n const stdio = getStdio(isDev) as IOType[];\n\n const ps = spawn(\n 'node',\n [\n `--title=\"CommandKit ${isDev ? 'Development' : 'Production'}\"`,\n '--enable-source-maps',\n fileName],\n\n {\n cwd,\n windowsHide: true,\n env: isDev ? DevEnv() : ProdEnv(),\n stdio\n }\n );\n\n ps.stdout?.pipe(process.stdout);\n ps.stderr?.pipe(process.stderr);\n\n return ps;\n}","export function DevEnv(_static = false) {\n const common = {\n NODE_ENV: 'development',\n COMMANDKIT_IS_DEV: 'true'\n };\n\n if (_static) return Object.assign({}, common);\n\n return Object.assign({}, process.env, common);\n}\n\nexport function ProdEnv(_static = false) {\n const common = {\n NODE_ENV: 'production',\n COMMANDKIT_IS_DEV: 'false'\n };\n\n if (_static) return Object.assign({}, common);\n\n return Object.assign({}, process.env, common);\n}\n\nexport const CommonEnvFiles = ['.env', '.env.local'];\nexport const DevEnvFiles = ['.env.development', '.env.development.local'];\nexport const ProdEnvFiles = ['.env.production', '.env.production.local'];\n\nexport const devEnvFileArgs = [...CommonEnvFiles, ...DevEnvFiles];\n\nexport const prodEnvFileArgs = [...CommonEnvFiles, ...ProdEnvFiles];","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';\n\nlet ts: typeof import('typescript') | undefined;\n\nexport function write(message: any) {\n process.stdout.write(message);\n process.stdout.write('\\n');\n}\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 */\nexport function panic(message: any): never {\n write(colors.red(`Error: ${message}`));\n process.exit(1);\n}\n\nexport function findPackageJSON() {\n const cwd = process.cwd();\n const target = join(cwd, 'package.json');\n\n if (!fs.existsSync(target)) {\n panic('Could not find package.json in current directory.');\n }\n\n return JSON.parse(fs.readFileSync(target, 'utf8'));\n}\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\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 };\n\n for (const [lockfile, manager] of Object.entries(lockfiles)) {\n if (fs.existsSync(join(process.cwd(), lockfile))) {\n packageManager = manager;\n break;\n }\n }\n\n if (!packageManager) {\n packageManager = 'npm';\n }\n\n return packageManager;\n}\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\n execSync(`${packageManager} add typescript`, {\n stdio: 'inherit',\n cwd: process.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\nexport async function loadConfigFileFromPath(\ntarget: 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 = process.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\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\nexport function erase(dir: string) {\n rimrafSync(dir);\n}\n\nexport async function copyLocaleFiles(_from: string, _to: string) {\n const resolvedFrom = join(process.cwd(), _from);\n const resolvedTo = join(process.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 });\n }\n\n await fs.promises.cp(localePath, destLocalePath, {\n recursive: true,\n force: true\n });\n }\n}","import { createColors } from 'picocolors';\n\nexport default createColors(true);","import { mkdir, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { COMMANDKIT_IS_DEV } from './constants';\nimport { existsSync } from 'node:fs';\n\nexport async function generateTypesPackage(force = false) {\n const location = join(process.cwd(), 'node_modules', 'commandkit-types');\n if (!COMMANDKIT_IS_DEV && !force) return location;\n const packageJSON = join(location, 'package.json');\n const index = join(location, 'index.js');\n const types = join(location, 'index.d.ts');\n const command = join(location, 'command.d.ts');\n\n const packageJSONContent = {\n name: 'commandkit-types',\n version: '1.0.0',\n description: 'CommandKit types package',\n type: 'commonjs',\n main: 'index.js',\n types: 'index.d.ts'\n };\n\n const indexContent = `module.exports = {};`;\n\n // Restructuring the type declarations to properly extend rather than replace types\n const typesContent = `// Main types index file - imports all type declarations\nimport './command';\nexport {};\n`;\n\n // Properly set up command types to extend the CommandTypeData interface\n const commandTypesContent = `// Auto-generated command types\n export {};\ndeclare module 'commandkit' {\n type CommandTypeData = string\n}`;\n\n await mkdir(location, { recursive: true }).catch(() => {});\n await writeFile(packageJSON, JSON.stringify(packageJSONContent, null, 2));\n await writeFile(index, indexContent);\n await writeFile(types, typesContent);\n await writeFile(command, commandTypesContent);\n\n return location;\n}\n\nexport async function rewriteCommandDeclaration(data: string) {\n const commandTypesContent = `// Auto-generated command types\n declare module 'commandkit' {\n ${data}\n}\n export {};\n`;\n\n const location = join(process.cwd(), 'node_modules', 'commandkit-types');\n\n if (!existsSync(location)) return;\n\n const type = join(location, 'command.d.ts');\n\n await writeFile(type, commandTypesContent, { encoding: 'utf-8' });\n}","export const COMMANDKIT_CACHE_TAG = Symbol('kCommandKitCacheTag');\n\nexport const COMMANDKIT_IS_DEV = process.env.COMMANDKIT_IS_DEV === 'true';\n\nexport const COMMANDKIT_IS_TEST = process.env.COMMANDKIT_IS_TEST === 'true';\n\nexport const COMMANDKIT_BOOTSTRAP_MODE = (process.env.\nCOMMANDKIT_BOOTSTRAP_MODE || 'development') as 'development' | 'production';\n\n/**\n * Types of Hot Module Replacement events\n */\nexport const HMREventType = {\n ReloadCommands: 'reload-commands',\n ReloadEvents: 'reload-events',\n Unknown: 'unknown'\n} as const;\n\nexport type HMREventType = (typeof HMREventType)[keyof typeof HMREventType];"],"mappings":"6mBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA8B,yBCAvB,SAASC,EAAOC,EAAU,GAAO,CACtC,IAAMC,EAAS,CACb,SAAU,cACV,kBAAmB,MACrB,EAEA,OAAID,EAAgB,OAAO,OAAO,CAAC,EAAGC,CAAM,EAErC,OAAO,OAAO,CAAC,EAAG,QAAQ,IAAKA,CAAM,CAC9C,CATgBC,EAAAH,EAAA,UAWT,SAASI,EAAQH,EAAU,GAAO,CACvC,IAAMC,EAAS,CACb,SAAU,aACV,kBAAmB,OACrB,EAEA,OAAID,EAAgB,OAAO,OAAO,CAAC,EAAGC,CAAM,EAErC,OAAO,OAAO,CAAC,EAAG,QAAQ,IAAKA,CAAM,CAC9C,CATgBC,EAAAC,EAAA,WAWT,IAAMC,EAAiB,CAAC,OAAQ,YAAY,EACtCC,EAAc,CAAC,mBAAoB,wBAAwB,EAC3DC,EAAe,CAAC,kBAAmB,uBAAuB,EAE1DC,EAAiB,CAAC,GAAGH,EAAgB,GAAGC,CAAW,EAEnDG,EAAkB,CAAC,GAAGJ,EAAgB,GAAGE,CAAY,ED1BlE,IAAAG,EAAqB,gBACrBC,EAA2B,cEH3B,IAAAC,EAA2B,kBAC3BC,EAAqB,gBACrBC,EAAe,iBCFf,IAAAC,EAA6B,sBAEtBC,KAAQ,gBAAa,EAAI,ECFhC,IAAAC,EAAiC,uBACjCC,EAAqB,gBCDd,IAAMC,EAAuB,OAAO,qBAAqB,EAEnDC,EAAoB,QAAQ,IAAI,oBAAsB,OAEtDC,EAAqB,QAAQ,IAAI,qBAAuB,OAExDC,EAA6B,QAAQ,IAClD,2BAA6B,cDJ7B,IAAAC,EAA2B,cFG3B,IAAAC,EAAyB,yBAIlB,SAASC,EAAMC,EAAc,CAClC,QAAQ,OAAO,MAAMA,CAAO,EAC5B,QAAQ,OAAO,MAAM;AAAA,CAAI,CAC3B,CAHgBC,EAAAF,EAAA,SAiBT,SAASG,EAAMC,EAAqB,CACzCC,EAAMC,EAAO,IAAI,UAAUF,CAAO,EAAE,CAAC,EACrC,QAAQ,KAAK,CAAC,CAChB,CAHgBG,EAAAJ,EAAA,SFrBhB,SAASK,EAASC,EAA2B,CAC3C,OAAIA,EACK,CAAC,OAAQ,OAAQ,OAAQ,KAAK,EAGhC,CAAC,OAAQ,OAAQ,MAAM,CAChC,CANSC,EAAAF,EAAA,YAQF,SAASG,EAChBC,EACAC,EACAC,EACA,CAlBA,IAAAC,EAAAC,KAmBO,iBAAW,QAAKH,EAAKD,CAAQ,CAAC,GACjCK,EAAM,yCAAyCL,CAAQ,EAAE,EAG3D,IAAMM,EAAQV,EAASM,CAAK,EAEtBK,KAAK,SACT,OACA,CACA,uBAAuBL,EAAQ,cAAgB,YAAY,IAC3D,uBACAF,CAAQ,EAER,CACE,IAAAC,EACA,YAAa,GACb,IAAKC,EAAQM,EAAO,EAAIC,EAAQ,EAChC,MAAAH,CACF,CACF,EAEA,OAAAH,EAAAI,EAAG,SAAH,MAAAJ,EAAW,KAAK,QAAQ,SACxBC,EAAAG,EAAG,SAAH,MAAAH,EAAW,KAAK,QAAQ,QAEjBG,CACT,CA9BgBT,EAAAC,EAAA","names":["app_process_exports","__export","createAppProcess","__toCommonJS","import_node_child_process","DevEnv","_static","common","__name","ProdEnv","CommonEnvFiles","DevEnvFiles","ProdEnvFiles","devEnvFileArgs","prodEnvFileArgs","import_node_path","import_node_fs","import_rimraf","import_node_path","import_node_fs","import_picocolors","colors_default","import_promises","import_node_path","COMMANDKIT_CACHE_TAG","COMMANDKIT_IS_DEV","COMMANDKIT_IS_TEST","COMMANDKIT_BOOTSTRAP_MODE","import_node_fs","import_node_child_process","write","message","__name","panic","message","write","colors_default","__name","getStdio","supportsCommands","__name","createAppProcess","fileName","cwd","isDev","_a","_b","panic","stdio","ps","DevEnv","ProdEnv"]}
package/dist/cli/build.js CHANGED
@@ -5,8 +5,8 @@ export {};
5
5
  export {};
6
6
  declare module 'commandkit' {
7
7
  type CommandTypeData = string
8
- }`;return await(0,M.mkdir)(e,{recursive:!0}).catch(()=>{}),await(0,M.writeFile)(t,JSON.stringify(m,null,2)),await(0,M.writeFile)(i,u),await(0,M.writeFile)(a,c),await(0,M.writeFile)(s,d),e}n(Q,"generateTypesPackage");var xt=require("discord.js"),yt=require("fs"),bt=require("fs/promises"),U=require("path");var Et=require("discord.js"),vt=require("fs"),wt=require("fs/promises"),Mt=require("path");var It=require("discord.js");var Ie=require("fs"),Se=require("path");var St=require("rimraf"),S=require("path"),y=b(require("fs"));var ve=require("child_process");var h;function Rt(r){process.stdout.write(r),process.stdout.write(`
9
- `)}n(Rt,"write");function Ee(r){Rt(l.red(`Error: ${r}`)),process.exit(1)}n(Ee,"panic");async function Pt(r){return/\.(c|m)?tsx?$/.test(r)?(process.features.typescript||await Z(),!0):!1}n(Pt,"ensureTypeScript");var T;function Kt(){if(T)return T;let r={"yarn.lock":"yarn","pnpm-lock.yaml":"pnpm","package-lock.json":"npm","bun.lock":"bun","bun.lockb":"bun"};for(let[e,t]of Object.entries(r))if(y.default.existsSync((0,S.join)(process.cwd(),e))){T=t;break}return T||(T="npm"),T}n(Kt,"detectPackageManager");async function Z(r){if(h)return h;try{h=await import("typescript")}catch(e){if(e instanceof Error&&"code"in e&&e.code==="MODULE_NOT_FOUND")try{let t=Kt();return(0,ve.execSync)(`${t} add typescript`,{stdio:"inherit",cwd:process.cwd()}),console.log(l.cyan("TypeScript has been installed automatically, restarting...")),h=await import("typescript"),h}catch{Ee("TypeScript is not installed and could not be installed automatically. Please install it manually.")}Ee(e||"TypeScript must be installed to use TypeScript config files.")}return h}n(Z,"loadTypeScript");async function we(r){if(await Dt(r),await Pt(r)&&h){let{transpileModule:i}=h,a=y.default.readFileSync(r,"utf8"),{outputText:s}=i(a,{compilerOptions:{module:h.ModuleKind.ESNext,target:h.ScriptTarget.ESNext,moduleResolution:h.ModuleResolutionKind.NodeNext},fileName:r}),m=await Q(),u=(0,S.join)(m,"compiled-commandkit.config.mjs");y.default.writeFileSync(u,s),r=u}return await import(`file://${r}`).then(i=>i.default||i)}n(we,"loadConfigFileFromPath");async function Dt(r){if(!y.default.existsSync(r))throw new Error(`File not found: ${r}`)}n(Dt,"ensureExists");async function Me(r,e){let t=(0,S.join)(process.cwd(),r),i=(0,S.join)(process.cwd(),e),a=["app/locales"],s=a.map(u=>(0,S.join)(t,u)),m=a.map(u=>(0,S.join)(i,u));for(let u of s){if(!y.default.existsSync(u))continue;let c=m[s.indexOf(u)];y.default.existsSync(c)||y.default.promises.mkdir(c,{recursive:!0}),await y.default.promises.cp(u,c,{recursive:!0,force:!0})}}n(Me,"copyLocaleFiles");var Tt=["commandkit.config.js","commandkit.config.mjs","commandkit.config.cjs","commandkit.config.ts"];function kt(r){return Tt.map(e=>(0,Se.join)(r,e))}n(kt,"getPossibleConfigPaths");function At(r){let e=kt(r);for(let t of e)if((0,Ie.existsSync)(t))return{path:t,isTypeScript:/\.ts$/.test(t)};return null}n(At,"findConfigFile");var ee=null;async function te(r=process.cwd()){if(ee)return ee;let e=At(r);if(!e)return Y();let t=await we(e.path);return ee=t,t}n(te,"loadConfigFile");var Ft=require("fs");var Bt=b(require("events"));var Ot=require("discord.js");var El=Symbol("commandkitCommandWorker"),Nt=new Pe.AsyncLocalStorage;function f(){return Nt.getStore()}n(f,"getContext");var Ut={autocomplete:"Autocomplete",messageContextMenu:"MessageContextMenu",userContextMenu:"UserContextMenu",chatInput:"ChatInputCommand",message:"Message"},Ht={0:l.blue,1:l.green,2:l.yellow,3:l.red,4:l.white},jt={0:l.bgBlue,1:l.bgGreen,2:l.bgYellow,3:l.bgRed,4:l.bgWhite},H={vertical:"\u2502",horizontalDown:"\u252C",horizontalUp:"\u2534",verticalRight:"\u251C",corner:"\u2514"},ne=class ne{constructor(e=process.stdout,t=process.stderr){this.stdout=e;this.stderr=t;this.logger=new console.Console(this.stdout,this.stderr)}logger;_formatTime(e){let t=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),a=e.getSeconds().toString().padStart(2,"0"),s=e.getMilliseconds().toString().padStart(3,"0");return`${t}:${i}:${a}.${s}`}_getContext(){let e=f();if(!e)return"";let t=e.variables.get("execHandlerKind"),i=e.variables.get("commandHandlerType"),a=e.variables.get("currentCommandName");if(!t&&!i)return"";let s=Ut[t];if(!s&&!i)return"";let m=e.variables.get("forwardedBy"),u=e.variables.get("forwardedTo"),c=a?l.magenta(`/${a}`)+" ":"",d=u?`${l.yellowBright(`(${m||a} \u2192 ${u})`)} `:"";return l.dim(`${H.vertical} `)+l.cyanBright(`${c}${d}${s?l.gray(`[${s}]`):""}`.trim())}_getLevelLabel(e){let t;switch(e){case 0:t="[DEBUG]";break;case 1:t="[INFO]";break;case 2:t="[WARN]";break;case 3:t="[ERROR]";break;default:t="[LOG]"}return`${jt[e](l.whiteBright(` ${t} `))} `}_getPrefix(e){let t=this._formatTime(new Date);return`${this._getLevelLabel(e)}${l.dim(H.vertical)} ${l.dim(t)}`}_log(e,...t){let i=this._getPrefix(e),a=this._getContext(),s=Ht[e];a?this.logger.log(`${i}
8
+ }`;return await(0,M.mkdir)(e,{recursive:!0}).catch(()=>{}),await(0,M.writeFile)(t,JSON.stringify(m,null,2)),await(0,M.writeFile)(i,u),await(0,M.writeFile)(a,c),await(0,M.writeFile)(s,d),e}n(Q,"generateTypesPackage");var xt=require("discord.js"),yt=require("fs"),bt=require("fs/promises"),U=require("path");var Et=require("discord.js"),vt=require("fs"),wt=require("fs/promises"),Mt=require("path");var It=require("discord.js");var Ie=require("fs"),Se=require("path");var St=require("rimraf"),S=require("path"),C=b(require("fs"));var ve=require("child_process");var h;function Rt(r){process.stdout.write(r),process.stdout.write(`
9
+ `)}n(Rt,"write");function Ee(r){Rt(l.red(`Error: ${r}`)),process.exit(1)}n(Ee,"panic");async function Pt(r){return/\.(c|m)?tsx?$/.test(r)?(process.features.typescript||await Z(),!0):!1}n(Pt,"ensureTypeScript");var T;function Kt(){if(T)return T;let r={"yarn.lock":"yarn","pnpm-lock.yaml":"pnpm","package-lock.json":"npm","bun.lock":"bun","bun.lockb":"bun"};for(let[e,t]of Object.entries(r))if(C.default.existsSync((0,S.join)(process.cwd(),e))){T=t;break}return T||(T="npm"),T}n(Kt,"detectPackageManager");async function Z(r){if(h)return h;try{h=await import("typescript")}catch(e){if(e instanceof Error&&"code"in e&&e.code==="MODULE_NOT_FOUND")try{let t=Kt();return(0,ve.execSync)(`${t} add typescript`,{stdio:"inherit",cwd:process.cwd()}),console.log(l.cyan("TypeScript has been installed automatically, restarting...")),h=await import("typescript"),h}catch{Ee("TypeScript is not installed and could not be installed automatically. Please install it manually.")}Ee(e||"TypeScript must be installed to use TypeScript config files.")}return h}n(Z,"loadTypeScript");async function we(r){await Dt(r);let e=await Pt(r),t;if(e&&h){let{transpileModule:a}=h,s=C.default.readFileSync(r,"utf8"),{outputText:m}=a(s,{compilerOptions:{module:h.ModuleKind.ESNext,target:h.ScriptTarget.ESNext,moduleResolution:h.ModuleResolutionKind.NodeNext},fileName:r});await Q();let u=process.cwd(),c=(0,S.join)(u,"compiled-commandkit.config.mjs");C.default.writeFileSync(c,m),t=c,r=c}let i=await import(`file://${r}`).then(a=>a.default||a);if(t)try{C.default.unlinkSync(t)}catch{}return i}n(we,"loadConfigFileFromPath");async function Dt(r){if(!C.default.existsSync(r))throw new Error(`File not found: ${r}`)}n(Dt,"ensureExists");async function Me(r,e){let t=(0,S.join)(process.cwd(),r),i=(0,S.join)(process.cwd(),e),a=["app/locales"],s=a.map(u=>(0,S.join)(t,u)),m=a.map(u=>(0,S.join)(i,u));for(let u of s){if(!C.default.existsSync(u))continue;let c=m[s.indexOf(u)];C.default.existsSync(c)||C.default.promises.mkdir(c,{recursive:!0}),await C.default.promises.cp(u,c,{recursive:!0,force:!0})}}n(Me,"copyLocaleFiles");var Tt=["commandkit.config.js","commandkit.config.mjs","commandkit.config.cjs","commandkit.config.ts"];function kt(r){return Tt.map(e=>(0,Se.join)(r,e))}n(kt,"getPossibleConfigPaths");function At(r){let e=kt(r);for(let t of e)if((0,Ie.existsSync)(t))return{path:t,isTypeScript:/\.ts$/.test(t)};return null}n(At,"findConfigFile");var ee=null;async function te(r=process.cwd()){if(ee)return ee;let e=At(r);if(!e)return Y();let t=await we(e.path);return ee=t,t}n(te,"loadConfigFile");var Ft=require("fs");var Bt=b(require("events"));var Ot=require("discord.js");var El=Symbol("commandkitCommandWorker"),Nt=new Pe.AsyncLocalStorage;function f(){return Nt.getStore()}n(f,"getContext");var Ut={autocomplete:"Autocomplete",messageContextMenu:"MessageContextMenu",userContextMenu:"UserContextMenu",chatInput:"ChatInputCommand",message:"Message"},Ht={0:l.blue,1:l.green,2:l.yellow,3:l.red,4:l.white},jt={0:l.bgBlue,1:l.bgGreen,2:l.bgYellow,3:l.bgRed,4:l.bgWhite},H={vertical:"\u2502",horizontalDown:"\u252C",horizontalUp:"\u2534",verticalRight:"\u251C",corner:"\u2514"},ne=class ne{constructor(e=process.stdout,t=process.stderr){this.stdout=e;this.stderr=t;this.logger=new console.Console(this.stdout,this.stderr)}logger;_formatTime(e){let t=e.getHours().toString().padStart(2,"0"),i=e.getMinutes().toString().padStart(2,"0"),a=e.getSeconds().toString().padStart(2,"0"),s=e.getMilliseconds().toString().padStart(3,"0");return`${t}:${i}:${a}.${s}`}_getContext(){let e=f();if(!e)return"";let t=e.variables.get("execHandlerKind"),i=e.variables.get("commandHandlerType"),a=e.variables.get("currentCommandName");if(!t&&!i)return"";let s=Ut[t];if(!s&&!i)return"";let m=e.variables.get("forwardedBy"),u=e.variables.get("forwardedTo"),c=a?l.magenta(`/${a}`)+" ":"",d=u?`${l.yellowBright(`(${m||a} \u2192 ${u})`)} `:"";return l.dim(`${H.vertical} `)+l.cyanBright(`${c}${d}${s?l.gray(`[${s}]`):""}`.trim())}_getLevelLabel(e){let t;switch(e){case 0:t="[DEBUG]";break;case 1:t="[INFO]";break;case 2:t="[WARN]";break;case 3:t="[ERROR]";break;default:t="[LOG]"}return`${jt[e](l.whiteBright(` ${t} `))} `}_getPrefix(e){let t=this._formatTime(new Date);return`${this._getLevelLabel(e)}${l.dim(H.vertical)} ${l.dim(t)}`}_log(e,...t){let i=this._getPrefix(e),a=this._getContext(),s=Ht[e];a?this.logger.log(`${i}
10
10
  ${a} ${l.dim(H.corner)}`,...t.map(m=>s(m))):this.logger.log(`${i} ${l.dim(H.corner)}`,...t.map(m=>s(m)))}debug(...e){this._log(0,...e)}error(...e){this._log(3,...e)}log(...e){this._log(4,...e)}info(...e){this._log(1,...e)}warn(...e){this._log(2,...e)}};n(ne,"DefaultLogger");var j=ne;function Gt(r){let e=r;if(!(e!=null&&e.provider))throw new Error("A logger provider must be provided.");let t=["log","error","warn","info","debug"],i={configure(a){e=a}};for(let a of t)i[a]=(...s)=>{e.provider[a](...s)};return i}n(Gt,"createLogger");var w=Gt({provider:new j});var De=require("fs/promises");var Ke=/\.(c|m)?(t|j)sx?$/,re=class re{constructor(e){this.plugins=e}name="CompilerPluginRuntime";getPlugins(){return this.plugins}isEmpty(){return!this.plugins.length}async onLoad(e){var s,m;let i=await(0,De.readFile)(e.path,"utf8"),a=(s=e.path)==null?void 0:s.split(".").pop();for(let u of this.plugins)try{let c=await((m=u.transform)==null?void 0:m.call(u,{contents:i,path:e.path,loader:a,args:e}));if(!c)continue;c.contents&&(i=c.contents),c.loader&&(a=c.loader)}catch(c){let d=c instanceof Error?c:new Error(c);return{pluginName:u.name,errors:[{text:d.message,detail:(d==null?void 0:d.stack)??d,location:null}]}}return{contents:i,loader:a}}async onResolve(e){var i;let t={};for(let a of this.plugins)try{let s=await((i=a.resolve)==null?void 0:i.call(a,e));if(!s)continue;t={...t,...s}}catch(s){let m=s instanceof Error?s:new Error(s);return{errors:[{text:m.message,detail:(m==null?void 0:m.stack)??m,location:null}]}}return t}async onStart(){var e;for(let t of this.plugins)try{await((e=t.onBuildStart)==null?void 0:e.call(t))}catch(i){console.error(`Plugin ${t.name} failed to run onBuildStart with ${(i==null?void 0:i.stack)||i}`)}}async onEnd(){var e;for(let t of this.plugins)try{await((e=t.onBuildEnd)==null?void 0:e.call(t))}catch(i){console.error(`Plugin ${t.name} failed to run onBuildEnd with ${(i==null?void 0:i.stack)||i}`)}}async onDispose(){var e;for(let t of this.plugins)try{await((e=t.deactivate)==null?void 0:e.call(t,this))}catch(i){console.error(`Plugin ${t.name} failed to deactivate with ${(i==null?void 0:i.stack)||i}`)}}async onInit(){var e;for(let t of this.plugins)try{await((e=t.activate)==null?void 0:e.call(t,this))}catch(i){console.error(`Plugin ${t.name} failed to activate with ${(i==null?void 0:i.stack)||i}`)}}async cleanup(){await this.onEnd(),await this.onDispose()}async setup(e){this.plugins.length&&(await this.onInit(),await e.onResolve({filter:Ke},this.onResolve.bind(this)),await e.onLoad({filter:Ke},this.onLoad.bind(this)),await e.onStart(this.onStart.bind(this)),e.onEnd(async()=>{await this.onEnd()}),e.onDispose(async()=>{await this.onDispose()}))}toEsbuildPlugin(){return{name:this.name,setup:this.setup.bind(this)}}};n(re,"CompilerPluginRuntime");var G=re;function Te(r){let t=class t extends E{name=r.name;onBuildEnd(){var a;return(a=r.onBuildEnd)==null?void 0:a.call(r)}onBuildStart(){var a;return(a=r.onBuildStart)==null?void 0:a.call(r)}async transform(a){var s;return(s=r.transform)==null?void 0:s.call(r,a)}async resolve(a){var s;return(s=r.resolve)==null?void 0:s.call(r,a)}};n(t,"EsbuildPluginCompat");let e=t;return e}n(Te,"fromEsbuildPlugin");var Ge=require("fs/promises"),_e=require("path");function ke(r=!1){let e={NODE_ENV:"development",COMMANDKIT_IS_DEV:"true"};return r?Object.assign({},e):Object.assign({},process.env,e)}n(ke,"DevEnv");function Ae(r=!1){let e={NODE_ENV:"production",COMMANDKIT_IS_DEV:"false"};return r?Object.assign({},e):Object.assign({},process.env,e)}n(Ae,"ProdEnv");var Be=[".env",".env.local"],Vt=[".env.development",".env.development.local"],Wt=[".env.production",".env.production.local"],Oe=[...Be,...Vt],Le=[...Be,...Wt];var Ve=require("rimraf");var $e=require("fs");var _=require("path");var qt="TypeScript must be installed in order to use the type checker. Please install it using `npm install typescript` or `yarn add typescript`";function zt(r,e,t){let i=r.flattenDiagnosticMessageText(e.messageText,`
11
11
  `);if(!e.file)return`${l.red("error")}: ${i}`;let{line:a,character:s}=r.getLineAndCharacterOfPosition(e.file,e.start),m=(0,_.relative)(t,e.file.fileName),u=`${a+1}:${s+1}`,c=e.code?`TS${e.code}`:"";return[`${l.bold(l.cyan(m))}:${l.bold(l.yellow(u))} - ${l.red("error")} ${l.gray(c)}`,`${i}`].join(`
12
12
  `)}n(zt,"formatDiagnostic");async function Fe(r){let e=(0,_.join)(r,"tsconfig.json");if(!(0,$e.existsSync)(e))return;let t=await Z(qt),i={getCanonicalFileName:n(c=>c,"getCanonicalFileName"),getCurrentDirectory:t.sys.getCurrentDirectory,getNewLine:n(()=>t.sys.newLine,"getNewLine")},a=t.readConfigFile(e,t.sys.readFile);a.error&&(console.error(l.red(`Error reading tsconfig.json: ${t.formatDiagnostic(a.error,i)}`)),process.exit(1));let s=t.parseJsonConfigFileContent(a.config,t.sys,r);s.options.noEmit=!0;let m=t.createProgram({rootNames:s.fileNames,options:s.options,projectReferences:s.projectReferences}),u=[...m.getOptionsDiagnostics(),...m.getGlobalDiagnostics(),...m.getSyntacticDiagnostics(),...m.getSemanticDiagnostics()];if(u.length>0){console.log(""),console.error(l.bold(l.red("Type checking failed with the following errors:"))),console.log("");let c=new Map;for(let L of u){let k=L.file?L.file.fileName:"Global";c.has(k)||c.set(k,[]),c.get(k).push(L)}let d=u.length,oe=0;for(let[L,k]of c)for(let We of k)oe++,console.log(zt(t,We,r)),oe<d&&console.log("");console.log(""),console.error(l.bold(l.red(`Found ${d} error${d>1?"s":""}`))),console.log(""),process.exit(1)}console.log(l.green("\u2713 Type checking completed successfully."))}n(Fe,"performTypeCheck");async function Jt({plugins:r,esbuildPlugins:e,isDev:t,configPath:i}){var u;let a=await te(i);!t&&!((u=a==null?void 0:a.typescript)!=null&&u.ignoreBuildErrors)&&await Fe(i||process.cwd());let s=new G(r||[]),m=s.isEmpty()?[]:[s.toEsbuildPlugin()];e!=null&&e.length&&m.push(...e.map(Te));try{let c=t?".commandkit":a.distDir;await(0,Ve.rimraf)(c),await(0,je.build)({esbuildPlugins:m,watch:!1,banner:{js:t?"":"/* Optimized production build generated by commandkit */"},cjsInterop:!0,dts:!1,clean:!0,format:["esm"],shims:!0,keepNames:!0,minify:!1,esbuildOptions:n(d=>(d.jsx="automatic",d.jsxImportSource="commandkit",d),"esbuildOptions"),minifyIdentifiers:!1,minifySyntax:!1,silent:!!t,splitting:!0,skipNodeModulesBundle:!0,name:"CommandKit",sourcemap:!0,target:"node16",outDir:c,env:t?ke(!0):Ae(!0),entry:["src",`!${a.distDir}`,"!.commandkit","!**/*.test.*","!**/*.spec.*"]}),await Me("src",c),await Xt(i||process.cwd(),!!t,a.distDir)}catch(c){console.error("Build failed:",c),c instanceof Error&&console.error("Error details:",c.stack),process.exit(1)}finally{await s.cleanup()}}n(Jt,"buildApplication");var Ne=n(r=>`// --- Environment Variables Loader ---