commandkit 0.1.11-dev.20250128162628 → 0.1.11-dev.20250131152354
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{CommandKit-B3EDajLJ.d.mts → CommandKit-BRxmnywX.d.mts} +5 -0
- package/dist/{CommandKit-BO77LFI2.d.ts → CommandKit-BhFmurtb.d.ts} +5 -0
- package/dist/CommandKit.d.mts +4 -1
- package/dist/CommandKit.d.ts +4 -1
- package/dist/CommandKit.js +1 -1
- package/dist/CommandKit.js.map +1 -1
- package/dist/CommandKit.mjs +1 -1
- package/dist/{async-context-DnJSN785.d.ts → async-context-B5Gze_ie.d.mts} +3 -2
- package/dist/{async-context-C5FJOAIU.d.mts → async-context-BW1JD1Dt.d.ts} +3 -2
- package/dist/cache/cache.d.mts +5 -2
- package/dist/cache/cache.d.ts +5 -2
- package/dist/cache/cache.js +1 -1
- package/dist/cache/cache.js.map +1 -1
- package/dist/cache/cache.mjs +1 -1
- package/dist/cache/index.d.mts +5 -2
- package/dist/cache/index.d.ts +5 -2
- package/dist/cache/index.js +1 -1
- package/dist/cache/index.js.map +1 -1
- package/dist/cache/index.mjs +1 -1
- package/dist/chunk-6EE35LXH.mjs +2 -0
- package/dist/chunk-6EE35LXH.mjs.map +1 -0
- package/dist/chunk-75Q5UTDQ.mjs +2 -0
- package/dist/chunk-75Q5UTDQ.mjs.map +1 -0
- package/dist/chunk-ALRJWLOC.mjs +2 -0
- package/dist/chunk-ALRJWLOC.mjs.map +1 -0
- package/dist/{chunk-ULPF2QCW.mjs → chunk-D4IIOMFB.mjs} +1 -1
- package/dist/{chunk-B5T552SB.mjs → chunk-DMNZASZO.mjs} +2 -2
- package/dist/chunk-HFOCTXRX.mjs +2 -0
- package/dist/chunk-HFOCTXRX.mjs.map +1 -0
- package/dist/chunk-HN3WQT6R.mjs +2 -0
- package/dist/chunk-HN3WQT6R.mjs.map +1 -0
- package/dist/{chunk-LQPVE73I.mjs → chunk-JPMIJRUL.mjs} +2 -2
- package/dist/{chunk-WZU7OSUV.mjs → chunk-P7PNFSAC.mjs} +3 -3
- package/dist/chunk-P7PNFSAC.mjs.map +1 -0
- package/dist/{chunk-UP6ACDGE.mjs → chunk-PNNFEI4V.mjs} +2 -2
- package/dist/chunk-VKCZYHEQ.mjs +2 -0
- package/dist/chunk-VKCZYHEQ.mjs.map +1 -0
- package/dist/cli/build.js +2 -2
- package/dist/cli/build.js.map +1 -1
- package/dist/cli/build.mjs +1 -1
- package/dist/cli/development.js +2 -2
- package/dist/cli/development.js.map +1 -1
- package/dist/cli/development.mjs +2 -2
- package/dist/cli/development.mjs.map +1 -1
- package/dist/cli/esbuild-plugins/plugin.d.mts +1 -0
- package/dist/cli/esbuild-plugins/plugin.d.ts +1 -0
- package/dist/cli/esbuild-plugins/plugin.js +1 -1
- package/dist/cli/esbuild-plugins/plugin.js.map +1 -1
- package/dist/cli/esbuild-plugins/plugin.mjs +1 -1
- package/dist/cli/init.js +3 -3
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/init.mjs +1 -1
- package/dist/components/action-row/ActionRow.d.mts +17 -0
- package/dist/components/action-row/ActionRow.d.ts +17 -0
- package/dist/components/action-row/ActionRow.js +2 -0
- package/dist/components/action-row/ActionRow.js.map +1 -0
- package/dist/components/action-row/ActionRow.mjs +2 -0
- package/dist/components/button/Button.d.mts +28 -0
- package/dist/components/button/Button.d.ts +28 -0
- package/dist/components/button/Button.js +11 -0
- package/dist/components/button/Button.js.map +1 -0
- package/dist/components/button/Button.mjs +2 -0
- package/dist/components/{ButtonKit.d.mts → button/ButtonKit.d.mts} +25 -21
- package/dist/components/{ButtonKit.d.ts → button/ButtonKit.d.ts} +25 -21
- package/dist/components/button/ButtonKit.js +11 -0
- package/dist/components/button/ButtonKit.js.map +1 -0
- package/dist/components/button/ButtonKit.mjs +2 -0
- package/dist/components/button/ButtonKit.mjs.map +1 -0
- package/dist/components/common/EventInterceptor.d.mts +73 -0
- package/dist/components/common/EventInterceptor.d.ts +73 -0
- package/dist/components/common/EventInterceptor.js +2 -0
- package/dist/components/common/EventInterceptor.js.map +1 -0
- package/dist/components/common/EventInterceptor.mjs +2 -0
- package/dist/components/common/EventInterceptor.mjs.map +1 -0
- package/dist/components/common/element.d.mts +24 -0
- package/dist/components/common/element.d.ts +24 -0
- package/dist/components/common/element.js +2 -0
- package/dist/components/common/element.js.map +1 -0
- package/dist/components/common/element.mjs +2 -0
- package/dist/components/common/element.mjs.map +1 -0
- package/dist/components/index.d.mts +5 -1
- package/dist/components/index.d.ts +5 -1
- package/dist/components/index.js +10 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +1 -1
- package/dist/context/async-context.d.mts +5 -2
- package/dist/context/async-context.d.ts +5 -2
- package/dist/context/async-context.js +2 -2
- package/dist/context/async-context.js.map +1 -1
- package/dist/context/async-context.mjs +1 -1
- package/dist/context/environment.d.mts +5 -2
- package/dist/context/environment.d.ts +5 -2
- package/dist/context/environment.js +1 -1
- package/dist/context/environment.js.map +1 -1
- package/dist/context/environment.mjs +1 -1
- package/dist/handlers/command-handler/CommandHandler.d.mts +4 -1
- package/dist/handlers/command-handler/CommandHandler.d.ts +4 -1
- package/dist/handlers/command-handler/CommandHandler.js +1 -1
- package/dist/handlers/command-handler/CommandHandler.js.map +1 -1
- package/dist/handlers/command-handler/CommandHandler.mjs +1 -1
- package/dist/handlers/command-handler/functions/loadCommandsWithRest.d.mts +4 -1
- package/dist/handlers/command-handler/functions/loadCommandsWithRest.d.ts +4 -1
- package/dist/handlers/command-handler/functions/registerCommands.d.mts +4 -1
- package/dist/handlers/command-handler/functions/registerCommands.d.ts +4 -1
- package/dist/handlers/command-handler/typings.d.mts +4 -1
- package/dist/handlers/command-handler/typings.d.ts +4 -1
- package/dist/handlers/command-handler/validations/devOnly.d.mts +4 -1
- package/dist/handlers/command-handler/validations/devOnly.d.ts +4 -1
- package/dist/handlers/command-handler/validations/index.d.mts +4 -1
- package/dist/handlers/command-handler/validations/index.d.ts +4 -1
- package/dist/handlers/command-handler/validations/permissions.d.mts +4 -1
- package/dist/handlers/command-handler/validations/permissions.d.ts +4 -1
- package/dist/handlers/event-handler/EventHandler.d.mts +4 -1
- package/dist/handlers/event-handler/EventHandler.d.ts +4 -1
- package/dist/handlers/event-handler/EventHandler.mjs +1 -1
- package/dist/handlers/event-handler/typings.d.mts +4 -1
- package/dist/handlers/event-handler/typings.d.ts +4 -1
- package/dist/handlers/index.d.mts +4 -1
- package/dist/handlers/index.d.ts +4 -1
- package/dist/handlers/index.js +1 -1
- package/dist/handlers/index.js.map +1 -1
- package/dist/handlers/index.mjs +1 -1
- package/dist/handlers/validation-handler/ValidationHandler.mjs +1 -1
- package/dist/index.d.mts +9 -4
- package/dist/index.d.ts +9 -4
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.d.mts +4 -1
- package/dist/types.d.ts +4 -1
- package/dist/utils/warn-unstable.mjs +1 -1
- package/dist/utils/warn-unstable.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-KAJRRZVI.mjs +0 -2
- package/dist/chunk-KAJRRZVI.mjs.map +0 -1
- package/dist/chunk-M5FMJETI.mjs +0 -1
- package/dist/chunk-TEL2J6LT.mjs +0 -2
- package/dist/chunk-TEL2J6LT.mjs.map +0 -1
- package/dist/chunk-WZU7OSUV.mjs.map +0 -1
- package/dist/chunk-ZCUZ5ENB.mjs +0 -2
- package/dist/chunk-ZCUZ5ENB.mjs.map +0 -1
- package/dist/components/ButtonKit.js +0 -2
- package/dist/components/ButtonKit.js.map +0 -1
- package/dist/components/ButtonKit.mjs +0 -2
- /package/dist/{chunk-ULPF2QCW.mjs.map → chunk-D4IIOMFB.mjs.map} +0 -0
- /package/dist/{chunk-B5T552SB.mjs.map → chunk-DMNZASZO.mjs.map} +0 -0
- /package/dist/{chunk-LQPVE73I.mjs.map → chunk-JPMIJRUL.mjs.map} +0 -0
- /package/dist/{chunk-UP6ACDGE.mjs.map → chunk-PNNFEI4V.mjs.map} +0 -0
- /package/dist/{chunk-M5FMJETI.mjs.map → components/action-row/ActionRow.mjs.map} +0 -0
- /package/dist/components/{ButtonKit.mjs.map → button/Button.mjs.map} +0 -0
package/dist/cli/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/.pnpm/tsup@8.3.5_jiti@1.21.7_postcss@8.4.49_tsx@4.19.2_typescript@5.7.3_yaml@2.7.0/node_modules/tsup/assets/cjs_shims.js","../../src/cli/common.ts","../../src/cli/parse-env.ts","../../src/cli/esbuild-plugins/use-cache.ts","../../src/cli/esbuild-plugins/plugin.ts","../../src/cli/build.ts","../../src/cli/development.ts","../../src/cli/production.ts","../../src/cli/init.ts"],"sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\ntypeof document === 'undefined' ?\nnew URL(`file:${__filename}`).href :\ndocument.currentScript && document.currentScript.src ||\nnew URL('main.js', document.baseURI).href;\n\nexport const importMetaUrl = /* @__PURE__ */getImportMetaUrl();","// @ts-check\n\nimport { rimrafSync } from 'rimraf';\nimport { join } from 'node:path';\nimport fs from 'node:fs';\n\nconst resetColor = '\\x1b[0m';\n\nexport const Colors = {\n reset: (text: string) => `${text}${resetColor}`,\n bright: (text: string) => `\\x1b[1m${text}${resetColor}`,\n dim: (text: string) => `\\x1b[2m${text}${resetColor}`,\n underscore: (text: string) => `\\x1b[4m${text}${resetColor}`,\n blink: (text: string) => `\\x1b[5m${text}${resetColor}`,\n reverse: (text: string) => `\\x1b[7m${text}${resetColor}`,\n hidden: (text: string) => `\\x1b[8m${text}${resetColor}`,\n\n black: (text: string) => `\\x1b[30m${text}${resetColor}`,\n red: (text: string) => `\\x1b[31m${text}${resetColor}`,\n green: (text: string) => `\\x1b[32m${text}${resetColor}`,\n yellow: (text: string) => `\\x1b[33m${text}${resetColor}`,\n blue: (text: string) => `\\x1b[34m${text}${resetColor}`,\n magenta: (text: string) => `\\x1b[35m${text}${resetColor}`,\n cyan: (text: string) => `\\x1b[36m${text}${resetColor}`,\n white: (text: string) => `\\x1b[37m${text}${resetColor}`,\n\n bgBlack: (text: string) => `\\x1b[40m${text}${resetColor}`,\n bgRed: (text: string) => `\\x1b[41m${text}${resetColor}`,\n bgGreen: (text: string) => `\\x1b[42m${text}${resetColor}`,\n bgYellow: (text: string) => `\\x1b[43m${text}${resetColor}`,\n bgBlue: (text: string) => `\\x1b[44m${text}${resetColor}`,\n bgMagenta: (text: string) => `\\x1b[45m${text}${resetColor}`,\n bgCyan: (text: string) => `\\x1b[46m${text}${resetColor}`,\n bgWhite: (text: string) => `\\x1b[47m${text}${resetColor}`\n};\n\nexport function write(message: any) {\n process.stdout.write(message);\n process.stdout.write('\\n');\n}\n\n/**\n * @returns {never}\n */\nexport function panic(message: any) {\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\nconst possibleFileNames = [\n'commandkit.json',\n'commandkit.config.json',\n'commandkit.js',\n'commandkit.config.js',\n'commandkit.mjs',\n'commandkit.config.mjs',\n'commandkit.cjs',\n'commandkit.config.cjs',\n'commandkit.ts',\n'commandkit.mts',\n'commandkit.cts'];\n\n\nexport async function findCommandKitConfig(src: string) {\n const cwd = process.cwd();\n const locations = src ?\n [join(cwd, src)] :\n possibleFileNames.map((name) => join(cwd, name));\n\n for (const location of locations) {\n try {\n return await loadConfigInner(location);\n } catch (e) {\n continue;\n }\n }\n\n panic(`Could not locate commandkit config from ${cwd}`);\n}\n\nfunction ensureTypeScript(target: string) {\n const isTypeScript = /\\.(c|m)tsx?$/.test(target);\n\n if (isTypeScript && !process.features.typescript) {\n panic(\n 'You are trying to load commandkit config file that is written in typescript. The current Node.js version does not have TypeScript feature enabled.'\n );\n }\n}\n\nasync function loadConfigInner(target: string) {\n const isJSON = target.endsWith('.json');\n\n await ensureExists(target);\n\n ensureTypeScript(target);\n\n /**\n * @type {import('..').CommandKitConfig}\n */\n // @ts-ignore\n const config = await import(`file://${target}`, {\n assert: isJSON ? { type: 'json' } : undefined\n }).then((conf) => conf.default || conf);\n\n return config;\n}\n\nasync function ensureExists(loc: string) {\n await fs.promises.access(loc, fs.constants.F_OK);\n}\n\nexport function erase(dir: string) {\n rimrafSync(dir);\n}","// @ts-check\n\nimport { randomUUID } from 'node:crypto';\n\nconst valuesMap = {\n true: true,\n false: false,\n null: null,\n undefined: undefined,\n __UUIDv4__: () => randomUUID()\n};\n\nconst VALUE_PREFIXES = {\n JSON: 'JSON::',\n DATE: 'DATE::'\n};\n\nfunction catcher(fn: Function) {\n try {\n fn();\n return true;\n } catch {\n return false;\n }\n}\n\nexport function parseEnv(src: any) {\n for (const key in src) {\n const value = src[key];\n\n if (typeof value !== 'string') continue;\n\n if (value.startsWith(VALUE_PREFIXES.JSON)) {\n catcher(\n () => src[key] = JSON.parse(value.replace(VALUE_PREFIXES.JSON, ''))\n );\n continue;\n }\n\n if (value.startsWith(VALUE_PREFIXES.DATE)) {\n src[key] = new Date(value.replace(VALUE_PREFIXES.DATE, ''));\n continue;\n }\n\n if (value.includes(',')) {\n src[key] = value.split(',').map((v) => v.trim());\n continue;\n }\n\n if (/^[0-9]+n$/.test(value)) {\n src[key] = BigInt(value);\n continue;\n }\n\n if (value in valuesMap) {\n src[key] =\n // @ts-ignore\n typeof valuesMap[value] === 'function' ?\n // @ts-ignore\n valuesMap[value]() :\n // @ts-ignore\n valuesMap[value];\n continue;\n }\n }\n\n return src;\n}","import * as parser from '@babel/parser';\nimport _traverse from '@babel/traverse';\nimport _generate from '@babel/generator';\nimport * as t from '@babel/types';\n\n// @ts-ignore\nconst traverse = _traverse.default || _traverse;\n// @ts-ignore\nconst generate = _generate.default || _generate;\n\nconst IMPORT_PATH = 'commandkit';\nconst DIRECTIVE = 'use cache';\nconst CACHE_IDENTIFIER =\n'super_duper_secret_internal_for_use_cache_directive_of_commandkit_cli_do_not_use_it_directly_or_you_will_be_fired_from_your_job_kthxbai';\n\nconst generateRandomString = (length = 6) => {\n const chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n return Array.from(\n { length },\n () => chars[Math.floor(Math.random() * chars.length)]\n ).join('');\n};\n\nexport const cacheDirectivePlugin = async (source: string, args: any) => {\n const ast = parser.parse(source, {\n sourceType: 'module',\n plugins: ['typescript', 'jsx']\n });\n\n let state = {\n needsImport: false,\n hasExistingImport: false,\n cacheIdentifierName: CACHE_IDENTIFIER,\n modifications: []\n };\n\n // First pass: check for naming collisions and collect modifications\n traverse(ast, {\n Program: {\n enter(path: any) {\n const binding = path.scope.getBinding(CACHE_IDENTIFIER);\n if (binding) {\n state.cacheIdentifierName = `${CACHE_IDENTIFIER}_${generateRandomString()}`;\n }\n }\n },\n\n ImportDeclaration(path: any) {\n if (\n path.node.source.value === IMPORT_PATH &&\n path.node.specifiers.some(\n (spec: any) =>\n t.isImportSpecifier(spec) &&\n // @ts-ignore\n spec.imported.name === CACHE_IDENTIFIER\n ))\n {\n state.hasExistingImport = true;\n if (state.cacheIdentifierName !== CACHE_IDENTIFIER) {\n // @ts-ignore\n state.modifications.push(() => {\n path.node.specifiers.forEach((spec: any) => {\n if (\n t.isImportSpecifier(spec) &&\n // @ts-ignore\n spec.imported.name === CACHE_IDENTIFIER)\n {\n spec.local.name = state.cacheIdentifierName;\n }\n });\n });\n }\n }\n },\n\n 'FunctionDeclaration|FunctionExpression|ArrowFunctionExpression'(\n path: any)\n {\n const body = t.isBlockStatement(path.node.body) ? path.node.body : null;\n const hasUseCache = body?.directives?.some(\n (d: any) => d.value.value === DIRECTIVE\n );\n\n if (!hasUseCache && !t.isBlockStatement(path.node.body)) {\n const parentFunction = path.findParent(\n (p: any) =>\n (p.isFunction() || p.isProgram()) && 'directives' in p.node\n );\n if (\n !parentFunction?.node.directives?.some(\n (d: any) => d.value.value === DIRECTIVE\n ))\n {\n return;\n }\n }\n\n if (hasUseCache || !t.isBlockStatement(path.node.body)) {\n // Check if the function is async\n if (!path.node.async) {\n throw new Error(\n `\"${DIRECTIVE}\" directive may only be used in async functions at ${args.path}`\n );\n }\n\n state.needsImport = true;\n const isDeclaration = t.isFunctionDeclaration(path.node);\n const name = isDeclaration ? path.node.id?.name : undefined;\n\n // Create a new body without the 'use cache' directive\n const newBody = t.isBlockStatement(path.node.body) ?\n t.blockStatement(\n path.node.body.body,\n path.node.body.directives.filter(\n (d: any) => d.value.value !== DIRECTIVE\n )\n ) :\n path.node.body;\n\n const wrapped = t.callExpression(\n t.identifier(state.cacheIdentifierName),\n [t.arrowFunctionExpression(path.node.params, newBody, true)]\n );\n\n // @ts-ignore\n state.modifications.push(() => {\n if (name) {\n path.replaceWith(\n t.variableDeclaration('const', [\n t.variableDeclarator(t.identifier(name), wrapped)]\n )\n );\n } else if (!t.isVariableDeclarator(path.parent)) {\n path.replaceWith(wrapped);\n } else {\n path.parent.init = wrapped;\n }\n });\n }\n }\n });\n\n // Apply all collected modifications\n if (state.modifications.length > 0) {\n // Add import if needed\n if (state.needsImport && !state.hasExistingImport) {\n ast.program.body.unshift(\n t.importDeclaration(\n [\n t.importSpecifier(\n t.identifier(state.cacheIdentifierName),\n t.identifier(CACHE_IDENTIFIER)\n )],\n\n t.stringLiteral(IMPORT_PATH)\n )\n );\n }\n\n // Apply collected modifications\n // @ts-ignore\n state.modifications.forEach((modify) => modify());\n }\n\n const { code } = generate(ast);\n return {\n contents: code,\n loader: args.path.split('.').pop()\n };\n};","import { MacroTransformer } from 'use-macro';\nimport { cacheDirectivePlugin } from './use-cache';\nimport { readFile } from 'node:fs/promises';\n\nconst defaultConfig = {\n 'use-macro': true,\n 'use-cache': true\n};\n\ninterface CommandKitEsbuildPluginConfig {\n 'use-macro'?: boolean;\n 'use-cache'?: boolean;\n}\n\nexport const commandkitPlugin = (config?: CommandKitEsbuildPluginConfig) => {\n config = Object.assign({}, defaultConfig, config);\n\n const plugins = [\n {\n name: 'use-macro',\n plugin: async (content: string, args: any) => {\n const transformer = new MacroTransformer();\n const { contents } = await transformer.transform(content, args.path);\n return contents;\n }\n },\n {\n name: 'use-cache',\n plugin: async (content: string, args: any) => {\n const { contents } = await cacheDirectivePlugin(content, args);\n return contents;\n }\n }].\n filter((p) => {\n return !!config[p.name as keyof CommandKitEsbuildPluginConfig];\n });\n\n return {\n name: 'commandkit-transformer-plugin',\n setup(build: any) {\n if (!plugins.length) return;\n\n const fileFilter = /\\.(c|m)?(t|j)sx?$/;\n\n build.onLoad({ filter: fileFilter }, async (args: any) => {\n const source = await readFile(args.path, 'utf8');\n const loader = args.path.split('.').pop();\n\n let contents = source;\n\n for (const _plugin of plugins) {\n const { plugin, name } = _plugin;\n try {\n contents = await plugin(contents, args);\n } catch (e) {\n const err = new Error(`Plugin ${name} failed with ${e}`);\n err.stack = e instanceof Error ? e.stack : '';\n\n throw err;\n }\n }\n\n return {\n contents,\n loader\n };\n });\n }\n };\n};","// @ts-check\n\nimport { readFile, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { build } from 'tsup';\nimport { Colors, erase, findCommandKitConfig, panic, write } from './common.js';\nimport ora from 'ora';\nimport { commandkitPlugin } from './esbuild-plugins/plugin';\n\nexport async function bootstrapProductionBuild(config: any) {\n const {\n sourcemap = false,\n minify = false,\n outDir = 'dist',\n antiCrash = true,\n src,\n main,\n requirePolyfill: polyfillRequire\n } = await findCommandKitConfig(config);\n\n const status = ora('Creating optimized production build...\\n').start();\n const start = performance.now();\n\n erase(outDir);\n\n try {\n await build({\n clean: true,\n format: ['esm'],\n dts: false,\n skipNodeModulesBundle: true,\n minify,\n shims: true,\n banner: {\n js: '/* Optimized production build generated by CommandKit */'\n },\n sourcemap,\n keepNames: true,\n outDir,\n silent: true,\n watch: false,\n cjsInterop: true,\n entry: [src, '!dist', '!.commandkit', `!${outDir}`],\n esbuildPlugins: [commandkitPlugin()]\n });\n\n await injectShims(outDir, main, antiCrash, polyfillRequire);\n\n status.succeed(\n Colors.green(\n `Build completed in ${(performance.now() - start).toFixed(2)}ms!`\n )\n );\n write(\n Colors.green(\n `\\nRun ${Colors.magenta(`commandkit start`)} ${Colors.green(\n 'to start your bot.'\n )}`\n )\n );\n } catch (e) {\n status.fail(\n `Build failed after ${(performance.now() - start).toFixed(2)}ms!`\n );\n panic(e);\n }\n}\n\nexport async function injectShims(\noutDir: string,\nmain: string,\nantiCrash: boolean,\npolyfillRequire: boolean)\n{\n const path = join(process.cwd(), outDir, main);\n\n const head = ['\\n\\n;await (async()=>{', \" 'use strict';\"].join('\\n');\n const tail = '\\n})();';\n const requireScript = polyfillRequire ?\n [\n '// --- CommandKit require() polyfill ---',\n ' if (typeof require === \"undefined\") {',\n ' const { createRequire } = await import(\"node:module\");',\n ' const __require = createRequire(import.meta.url);',\n ' Object.defineProperty(globalThis, \"require\", {',\n ' value: (id) => {',\n ' return __require(id);',\n ' },',\n ' configurable: true,',\n ' enumerable: false,',\n ' writable: true,',\n ' });',\n ' }',\n '// --- CommandKit require() polyfill ---'].\n join('\\n') :\n '';\n\n const antiCrashScript = antiCrash ?\n [\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[33m${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 '';\n\n const contents = await readFile(path, 'utf-8');\n const finalScript = [\n head,\n requireScript,\n antiCrashScript,\n tail,\n '\\n\\n',\n contents].\n join('\\n');\n\n return writeFile(path, finalScript);\n}","// @ts-check\nimport { config as dotenv } from 'dotenv';\nimport { join } from 'node:path';\nimport { build } from 'tsup';\nimport { Colors, erase, findCommandKitConfig, panic, write } from './common';\nimport { parseEnv } from './parse-env';\nimport child_process from 'node:child_process';\nimport ora from 'ora';\nimport { injectShims } from './build';\nimport { commandkitPlugin } from './esbuild-plugins/plugin';\n\nconst RESTARTING_MSG_PATTERN = /^Restarting '|\".+'|\"\\n?$/;\nconst FAILED_RUNNING_PATTERN = /^Failed running '.+'|\"\\n?$/;\n\nexport async function bootstrapDevelopmentServer(opts: any) {\n const {\n src,\n main,\n watch = Boolean(opts.noWatch),\n nodeOptions = [],\n envExtra = true,\n clearRestartLogs = true,\n outDir,\n requirePolyfill\n } = await findCommandKitConfig(opts.config);\n\n if (!src) {\n panic('Could not find src in commandkit.json');\n }\n\n if (!main) {\n panic('Could not find main in commandkit.json');\n }\n\n const watchMode = watch;\n const status = ora(\n Colors.green('Starting a development server...\\n')\n ).start();\n const start = performance.now();\n\n if (watchMode && !nodeOptions.includes('--watch')) {\n nodeOptions.push('--watch');\n } else if (!watchMode && nodeOptions.includes('--watch')) {\n nodeOptions.splice(nodeOptions.indexOf('--watch'), 1);\n }\n\n if (!nodeOptions.includes('--enable-source-maps')) {\n nodeOptions.push('--enable-source-maps');\n }\n\n erase('.commandkit');\n\n try {\n await build({\n clean: true,\n format: ['esm'],\n dts: false,\n skipNodeModulesBundle: true,\n minify: false,\n shims: true,\n sourcemap: 'inline',\n keepNames: true,\n outDir: '.commandkit',\n silent: true,\n entry: [src, '!dist', '!.commandkit', `!${outDir}`].filter(Boolean),\n watch: watchMode,\n cjsInterop: true,\n async onSuccess() {\n return await injectShims('.commandkit', main, false, requirePolyfill);\n },\n esbuildPlugins: [\n commandkitPlugin({\n 'use-macro': false\n })]\n\n });\n\n status.succeed(\n Colors.green(\n `Dev server started in ${(performance.now() - start).toFixed(2)}ms!\\n`\n )\n );\n\n if (watchMode) write(Colors.cyan('Watching for file changes...\\n'));\n\n const processEnv = {};\n\n const env = dotenv({\n path: join(process.cwd(), '.env'),\n processEnv\n });\n\n if (envExtra) {\n parseEnv(processEnv);\n }\n\n if (env.error) {\n write(Colors.yellow(`[DOTENV] Warning: ${env.error.message}`));\n }\n\n if (env.parsed) {\n write(Colors.blue('[DOTENV] Loaded .env file!'));\n }\n\n const ps: child_process.ChildProcessWithoutNullStreams =\n child_process.spawn(\n 'node',\n [...nodeOptions, join(process.cwd(), '.commandkit', main)],\n {\n env: {\n ...process.env,\n ...processEnv,\n NODE_ENV: 'development',\n // @ts-expect-error\n COMMANDKIT_DEV: true,\n // @ts-expect-error\n COMMANDKIT_PRODUCTION: false\n },\n cwd: process.cwd()\n }\n );\n\n let isLastLogRestarting = false,\n hasStarted = false;\n\n ps.stdout.on('data', (data) => {\n const message = data.toString();\n\n if (FAILED_RUNNING_PATTERN.test(message)) {\n write(Colors.cyan('Failed running the bot, waiting for changes...'));\n isLastLogRestarting = false;\n if (!hasStarted) hasStarted = true;\n return;\n }\n\n if (clearRestartLogs && !RESTARTING_MSG_PATTERN.test(message)) {\n write(message);\n isLastLogRestarting = false;\n } else {\n if (isLastLogRestarting || !hasStarted) {\n if (!hasStarted) hasStarted = true;\n return;\n }\n write(Colors.cyan('⌀ Restarting the bot...'));\n isLastLogRestarting = true;\n }\n\n if (!hasStarted) hasStarted = true;\n });\n\n ps.stderr.on('data', (data) => {\n const message = data.toString();\n\n if (\n message.includes(\n 'ExperimentalWarning: Watch mode is an experimental feature and might change at any time'\n ))\n\n return;\n\n write(Colors.red(message));\n });\n\n ps.on('close', (code) => {\n write('\\n');\n process.exit(code ?? 0);\n });\n\n ps.on('error', (err) => {\n panic(err);\n });\n } catch (e) {\n status.fail(\n `Error occurred after ${(performance.now() - start).toFixed(2)}ms!\\n`\n );\n panic(e instanceof Error ? e.stack : e);\n }\n}","// @ts-check\nimport { config as dotenv } from 'dotenv';\nimport { existsSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { Colors, findCommandKitConfig, panic, write } from './common';\nimport { parseEnv } from './parse-env';\nimport child_process from 'node:child_process';\n\nexport async function bootstrapProductionServer(config: any) {\n const {\n main,\n outDir = 'dist',\n envExtra = true,\n sourcemap\n } = await findCommandKitConfig(config);\n\n if (!existsSync(join(process.cwd(), outDir, main))) {\n panic(\n 'Could not find production build, maybe run `commandkit build` first?'\n );\n }\n\n try {\n const processEnv = {};\n\n const env = dotenv({\n path: join(process.cwd(), '.env'),\n processEnv\n });\n\n if (envExtra) {\n parseEnv(processEnv);\n }\n\n if (env.error) {\n write(Colors.yellow(`[DOTENV] Warning: ${env.error.message}`));\n }\n\n if (env.parsed) {\n write(Colors.blue('[DOTENV] Loaded .env file!'));\n }\n\n const ps: child_process.ChildProcessWithoutNullStreams =\n child_process.spawn(\n 'node',\n [\n sourcemap ? '--enable-source-maps' : '',\n join(process.cwd(), outDir, main)].\n filter(Boolean),\n {\n env: {\n ...process.env,\n ...processEnv,\n NODE_ENV: 'production',\n // @ts-expect-error\n COMMANDKIT_DEV: false,\n // @ts-expect-error\n COMMANDKIT_PROD: true\n },\n cwd: process.cwd()\n }\n );\n\n ps.stdout.on('data', (data) => {\n write(data.toString());\n });\n\n ps.stderr.on('data', (data) => {\n write(Colors.red(data.toString()));\n });\n\n ps.on('close', (code) => {\n write('\\n');\n process.exit(code ?? 0);\n });\n\n ps.on('error', (err) => {\n panic(err);\n });\n } catch (e) {\n panic(e);\n }\n}","/**\n * Creates a command line interface for CommandKit.\n * @param argv The arguments passed to the CLI.\n * @param options The options passed to the CLI.\n */\nexport async function bootstrapCommandkitCLI(\nargv: string[],\noptions?: import('commander').ParseOptions | undefined)\n{\n const { Command } = await import('commander');\n const { bootstrapDevelopmentServer } = await import('./development');\n const { bootstrapProductionServer } = await import('./production');\n const { bootstrapProductionBuild } = await import('./build');\n\n const program = new Command('commandkit');\n\n program.\n command('dev').\n description('Start your bot in development mode.').\n option(\n '-c, --config <path>',\n 'Path to your commandkit config file.',\n './commandkit.js'\n ).\n action(() => {\n const options = program.opts();\n bootstrapDevelopmentServer(options);\n });\n\n program.\n command('start').\n description(\n 'Start your bot in production mode after running the build command.'\n ).\n option(\n '-c, --config <path>',\n 'Path to your commandkit.json file.',\n './commandkit.js'\n ).\n action(() => {\n const options = program.opts();\n bootstrapProductionServer(options.config);\n });\n\n program.\n command('build').\n description('Build your project for production usage.').\n option(\n '-c, --config <path>',\n 'Path to your commandkit.json file.',\n './commandkit.json'\n ).\n action(() => {\n const options = program.opts();\n bootstrapProductionBuild(options.config);\n });\n\n await program.parseAsync(argv, options);\n}"],"mappings":"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","names":["fs","_traverse","_generate","build","ora","import_promises","import_node_path","ora","dotenv","child_process","import_node_path","import_tsup","import_ora","dotenv","child_process","import_dotenv","import_node_fs","import_node_path","import_node_child_process","bootstrapDevelopmentServer","bootstrapProductionServer","bootstrapProductionBuild","options"]}
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/.pnpm/tsup@8.3.5_jiti@1.21.7_postcss@8.4.49_tsx@4.19.2_typescript@5.7.3_yaml@2.7.0/node_modules/tsup/assets/cjs_shims.js","../../src/cli/common.ts","../../src/cli/parse-env.ts","../../src/cli/esbuild-plugins/use-cache.ts","../../src/cli/esbuild-plugins/plugin.ts","../../src/cli/build.ts","../../src/cli/development.ts","../../src/cli/production.ts","../../src/cli/init.ts"],"sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\ntypeof document === 'undefined' ?\nnew URL(`file:${__filename}`).href :\ndocument.currentScript && document.currentScript.src ||\nnew URL('main.js', document.baseURI).href;\n\nexport const importMetaUrl = /* @__PURE__ */getImportMetaUrl();","// @ts-check\n\nimport { rimrafSync } from 'rimraf';\nimport { join } from 'node:path';\nimport fs from 'node:fs';\n\nconst resetColor = '\\x1b[0m';\n\nexport const Colors = {\n reset: (text: string) => `${text}${resetColor}`,\n bright: (text: string) => `\\x1b[1m${text}${resetColor}`,\n dim: (text: string) => `\\x1b[2m${text}${resetColor}`,\n underscore: (text: string) => `\\x1b[4m${text}${resetColor}`,\n blink: (text: string) => `\\x1b[5m${text}${resetColor}`,\n reverse: (text: string) => `\\x1b[7m${text}${resetColor}`,\n hidden: (text: string) => `\\x1b[8m${text}${resetColor}`,\n\n black: (text: string) => `\\x1b[30m${text}${resetColor}`,\n red: (text: string) => `\\x1b[31m${text}${resetColor}`,\n green: (text: string) => `\\x1b[32m${text}${resetColor}`,\n yellow: (text: string) => `\\x1b[33m${text}${resetColor}`,\n blue: (text: string) => `\\x1b[34m${text}${resetColor}`,\n magenta: (text: string) => `\\x1b[35m${text}${resetColor}`,\n cyan: (text: string) => `\\x1b[36m${text}${resetColor}`,\n white: (text: string) => `\\x1b[37m${text}${resetColor}`,\n\n bgBlack: (text: string) => `\\x1b[40m${text}${resetColor}`,\n bgRed: (text: string) => `\\x1b[41m${text}${resetColor}`,\n bgGreen: (text: string) => `\\x1b[42m${text}${resetColor}`,\n bgYellow: (text: string) => `\\x1b[43m${text}${resetColor}`,\n bgBlue: (text: string) => `\\x1b[44m${text}${resetColor}`,\n bgMagenta: (text: string) => `\\x1b[45m${text}${resetColor}`,\n bgCyan: (text: string) => `\\x1b[46m${text}${resetColor}`,\n bgWhite: (text: string) => `\\x1b[47m${text}${resetColor}`\n};\n\nexport function write(message: any) {\n process.stdout.write(message);\n process.stdout.write('\\n');\n}\n\n/**\n * @returns {never}\n */\nexport function panic(message: any) {\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\nconst possibleFileNames = [\n'commandkit.json',\n'commandkit.config.json',\n'commandkit.js',\n'commandkit.config.js',\n'commandkit.mjs',\n'commandkit.config.mjs',\n'commandkit.cjs',\n'commandkit.config.cjs',\n'commandkit.ts',\n'commandkit.mts',\n'commandkit.cts'];\n\n\nexport async function findCommandKitConfig(src: string) {\n const cwd = process.cwd();\n const locations = src ?\n [join(cwd, src)] :\n possibleFileNames.map((name) => join(cwd, name));\n\n for (const location of locations) {\n try {\n return await loadConfigInner(location);\n } catch (e) {\n continue;\n }\n }\n\n panic(`Could not locate commandkit config from ${cwd}`);\n}\n\nfunction ensureTypeScript(target: string) {\n const isTypeScript = /\\.(c|m)tsx?$/.test(target);\n\n if (isTypeScript && !process.features.typescript) {\n panic(\n 'You are trying to load commandkit config file that is written in typescript. The current Node.js version does not have TypeScript feature enabled.'\n );\n }\n}\n\nasync function loadConfigInner(target: string) {\n const isJSON = target.endsWith('.json');\n\n await ensureExists(target);\n\n ensureTypeScript(target);\n\n /**\n * @type {import('..').CommandKitConfig}\n */\n // @ts-ignore\n const config = await import(`file://${target}`, {\n assert: isJSON ? { type: 'json' } : undefined\n }).then((conf) => conf.default || conf);\n\n return config;\n}\n\nasync function ensureExists(loc: string) {\n await fs.promises.access(loc, fs.constants.F_OK);\n}\n\nexport function erase(dir: string) {\n rimrafSync(dir);\n}","// @ts-check\n\nimport { randomUUID } from 'node:crypto';\n\nconst valuesMap = {\n true: true,\n false: false,\n null: null,\n undefined: undefined,\n __UUIDv4__: () => randomUUID()\n};\n\nconst VALUE_PREFIXES = {\n JSON: 'JSON::',\n DATE: 'DATE::'\n};\n\nfunction catcher(fn: Function) {\n try {\n fn();\n return true;\n } catch {\n return false;\n }\n}\n\nexport function parseEnv(src: any) {\n for (const key in src) {\n const value = src[key];\n\n if (typeof value !== 'string') continue;\n\n if (value.startsWith(VALUE_PREFIXES.JSON)) {\n catcher(\n () => src[key] = JSON.parse(value.replace(VALUE_PREFIXES.JSON, ''))\n );\n continue;\n }\n\n if (value.startsWith(VALUE_PREFIXES.DATE)) {\n src[key] = new Date(value.replace(VALUE_PREFIXES.DATE, ''));\n continue;\n }\n\n if (value.includes(',')) {\n src[key] = value.split(',').map((v) => v.trim());\n continue;\n }\n\n if (/^[0-9]+n$/.test(value)) {\n src[key] = BigInt(value);\n continue;\n }\n\n if (value in valuesMap) {\n src[key] =\n // @ts-ignore\n typeof valuesMap[value] === 'function' ?\n // @ts-ignore\n valuesMap[value]() :\n // @ts-ignore\n valuesMap[value];\n continue;\n }\n }\n\n return src;\n}","import * as parser from '@babel/parser';\nimport _traverse from '@babel/traverse';\nimport _generate from '@babel/generator';\nimport * as t from '@babel/types';\n\n// @ts-ignore\nconst traverse = _traverse.default || _traverse;\n// @ts-ignore\nconst generate = _generate.default || _generate;\n\nconst IMPORT_PATH = 'commandkit';\nconst DIRECTIVE = 'use cache';\nconst CACHE_IDENTIFIER =\n'super_duper_secret_internal_for_use_cache_directive_of_commandkit_cli_do_not_use_it_directly_or_you_will_be_fired_from_your_job_kthxbai';\n\nconst generateRandomString = (length = 6) => {\n const chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n return Array.from(\n { length },\n () => chars[Math.floor(Math.random() * chars.length)]\n ).join('');\n};\n\nexport const cacheDirectivePlugin = async (source: string, args: any) => {\n const ast = parser.parse(source, {\n sourceType: 'module',\n plugins: ['typescript', 'jsx']\n });\n\n let state = {\n needsImport: false,\n hasExistingImport: false,\n cacheIdentifierName: CACHE_IDENTIFIER,\n modifications: []\n };\n\n // First pass: check for naming collisions and collect modifications\n traverse(ast, {\n Program: {\n enter(path: any) {\n const binding = path.scope.getBinding(CACHE_IDENTIFIER);\n if (binding) {\n state.cacheIdentifierName = `${CACHE_IDENTIFIER}_${generateRandomString()}`;\n }\n }\n },\n\n ImportDeclaration(path: any) {\n if (\n path.node.source.value === IMPORT_PATH &&\n path.node.specifiers.some(\n (spec: any) =>\n t.isImportSpecifier(spec) &&\n // @ts-ignore\n spec.imported.name === CACHE_IDENTIFIER\n ))\n {\n state.hasExistingImport = true;\n if (state.cacheIdentifierName !== CACHE_IDENTIFIER) {\n // @ts-ignore\n state.modifications.push(() => {\n path.node.specifiers.forEach((spec: any) => {\n if (\n t.isImportSpecifier(spec) &&\n // @ts-ignore\n spec.imported.name === CACHE_IDENTIFIER)\n {\n spec.local.name = state.cacheIdentifierName;\n }\n });\n });\n }\n }\n },\n\n 'FunctionDeclaration|FunctionExpression|ArrowFunctionExpression'(\n path: any)\n {\n const body = t.isBlockStatement(path.node.body) ? path.node.body : null;\n const hasUseCache = body?.directives?.some(\n (d: any) => d.value.value === DIRECTIVE\n );\n\n if (!hasUseCache && !t.isBlockStatement(path.node.body)) {\n const parentFunction = path.findParent(\n (p: any) =>\n (p.isFunction() || p.isProgram()) && 'directives' in p.node\n );\n if (\n !parentFunction?.node.directives?.some(\n (d: any) => d.value.value === DIRECTIVE\n ))\n {\n return;\n }\n }\n\n if (hasUseCache || !t.isBlockStatement(path.node.body)) {\n // Check if the function is async\n if (!path.node.async) {\n throw new Error(\n `\"${DIRECTIVE}\" directive may only be used in async functions at ${args.path}`\n );\n }\n\n state.needsImport = true;\n const isDeclaration = t.isFunctionDeclaration(path.node);\n const name = isDeclaration ? path.node.id?.name : undefined;\n\n // Create a new body without the 'use cache' directive\n const newBody = t.isBlockStatement(path.node.body) ?\n t.blockStatement(\n path.node.body.body,\n path.node.body.directives.filter(\n (d: any) => d.value.value !== DIRECTIVE\n )\n ) :\n path.node.body;\n\n const wrapped = t.callExpression(\n t.identifier(state.cacheIdentifierName),\n [t.arrowFunctionExpression(path.node.params, newBody, true)]\n );\n\n // @ts-ignore\n state.modifications.push(() => {\n if (name) {\n path.replaceWith(\n t.variableDeclaration('const', [\n t.variableDeclarator(t.identifier(name), wrapped)]\n )\n );\n } else if (!t.isVariableDeclarator(path.parent)) {\n path.replaceWith(wrapped);\n } else {\n path.parent.init = wrapped;\n }\n });\n }\n }\n });\n\n // Apply all collected modifications\n if (state.modifications.length > 0) {\n // Add import if needed\n if (state.needsImport && !state.hasExistingImport) {\n ast.program.body.unshift(\n t.importDeclaration(\n [\n t.importSpecifier(\n t.identifier(state.cacheIdentifierName),\n t.identifier(CACHE_IDENTIFIER)\n )],\n\n t.stringLiteral(IMPORT_PATH)\n )\n );\n }\n\n // Apply collected modifications\n // @ts-ignore\n state.modifications.forEach((modify) => modify());\n }\n\n const { code } = generate(ast);\n return {\n contents: code,\n loader: args.path.split('.').pop()\n };\n};","import { MacroTransformer } from 'use-macro';\nimport { cacheDirectivePlugin } from './use-cache';\nimport { readFile } from 'node:fs/promises';\n\nconst defaultConfig = {\n 'use-macro': true,\n 'use-cache': true,\n 'jsx-importsource': true\n};\n\ninterface CommandKitEsbuildPluginConfig {\n 'use-macro'?: boolean;\n 'jsx-importsource'?: boolean;\n 'use-cache'?: boolean;\n}\n\nexport const commandkitPlugin = (config?: CommandKitEsbuildPluginConfig) => {\n config = Object.assign({}, defaultConfig, config);\n\n const plugins = [\n {\n name: 'use-macro',\n plugin: async (content: string, args: any) => {\n const transformer = new MacroTransformer();\n const { contents } = await transformer.transform(content, args.path);\n return contents;\n }\n },\n {\n name: 'use-cache',\n plugin: async (content: string, args: any) => {\n const { contents } = await cacheDirectivePlugin(content, args);\n return contents;\n }\n }].\n filter((p) => {\n return !!config[p.name as keyof CommandKitEsbuildPluginConfig];\n });\n\n return {\n name: 'commandkit-transformer-plugin',\n setup(build: any) {\n if (!plugins.length) return;\n\n const fileFilter = /\\.(c|m)?(t|j)sx?$/;\n\n build.onLoad({ filter: fileFilter }, async (args: any) => {\n const source = await readFile(args.path, 'utf8');\n const loader = args.path.split('.').pop();\n\n let contents = source;\n\n for (const _plugin of plugins) {\n const { plugin, name } = _plugin;\n try {\n contents = await plugin(contents, args);\n } catch (e) {\n const err = new Error(`Plugin ${name} failed with ${e}`);\n err.stack = e instanceof Error ? e.stack : '';\n\n throw err;\n }\n }\n\n return {\n contents,\n loader\n };\n });\n }\n };\n};","// @ts-check\n\nimport { readFile, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { build } from 'tsup';\nimport { Colors, erase, findCommandKitConfig, panic, write } from './common.js';\nimport ora from 'ora';\nimport { commandkitPlugin } from './esbuild-plugins/plugin';\n\nexport async function bootstrapProductionBuild(config: any) {\n const {\n sourcemap = false,\n minify = false,\n outDir = 'dist',\n antiCrash = true,\n src,\n main,\n requirePolyfill: polyfillRequire\n } = await findCommandKitConfig(config);\n\n const status = ora('Creating optimized production build...\\n').start();\n const start = performance.now();\n\n erase(outDir);\n\n try {\n await build({\n clean: true,\n format: ['esm'],\n dts: false,\n skipNodeModulesBundle: true,\n minify,\n shims: true,\n banner: {\n js: '/* Optimized production build generated by CommandKit */'\n },\n sourcemap,\n keepNames: true,\n outDir,\n silent: true,\n watch: false,\n cjsInterop: true,\n entry: [src, '!dist', '!.commandkit', `!${outDir}`],\n esbuildPlugins: [commandkitPlugin()],\n jsxFactory: 'CommandKit.createElement',\n jsxFragment: 'CommandKit.Fragment'\n });\n\n await injectShims(outDir, main, antiCrash, polyfillRequire);\n\n status.succeed(\n Colors.green(\n `Build completed in ${(performance.now() - start).toFixed(2)}ms!`\n )\n );\n write(\n Colors.green(\n `\\nRun ${Colors.magenta(`commandkit start`)} ${Colors.green(\n 'to start your bot.'\n )}`\n )\n );\n } catch (e) {\n status.fail(\n `Build failed after ${(performance.now() - start).toFixed(2)}ms!`\n );\n panic(e);\n }\n}\n\nexport async function injectShims(\noutDir: string,\nmain: string,\nantiCrash: boolean,\npolyfillRequire: boolean)\n{\n const path = join(process.cwd(), outDir, main);\n\n const head = ['\\n\\n;await (async()=>{', \" 'use strict';\"].join('\\n');\n const tail = '\\n})();';\n const requireScript = polyfillRequire ?\n [\n '// --- CommandKit require() polyfill ---',\n ' if (typeof require === \"undefined\") {',\n ' const { createRequire } = await import(\"node:module\");',\n ' const __require = createRequire(import.meta.url);',\n ' Object.defineProperty(globalThis, \"require\", {',\n ' value: (id) => {',\n ' return __require(id);',\n ' },',\n ' configurable: true,',\n ' enumerable: false,',\n ' writable: true,',\n ' });',\n ' }',\n '// --- CommandKit require() polyfill ---'].\n join('\\n') :\n '';\n\n const antiCrashScript = antiCrash ?\n [\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[33m${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 '';\n\n const contents = await readFile(path, 'utf-8');\n const finalScript = [\n head,\n requireScript,\n antiCrashScript,\n tail,\n '\\n\\n',\n contents].\n join('\\n');\n\n return writeFile(path, finalScript);\n}","// @ts-check\nimport { config as dotenv } from 'dotenv';\nimport { join } from 'node:path';\nimport { build } from 'tsup';\nimport { Colors, erase, findCommandKitConfig, panic, write } from './common';\nimport { parseEnv } from './parse-env';\nimport child_process from 'node:child_process';\nimport ora from 'ora';\nimport { injectShims } from './build';\nimport { commandkitPlugin } from './esbuild-plugins/plugin';\n\nconst RESTARTING_MSG_PATTERN = /^Restarting '|\".+'|\"\\n?$/;\nconst FAILED_RUNNING_PATTERN = /^Failed running '.+'|\"\\n?$/;\n\nexport async function bootstrapDevelopmentServer(opts: any) {\n const {\n src,\n main,\n watch = Boolean(opts.noWatch),\n nodeOptions = [],\n envExtra = true,\n clearRestartLogs = true,\n outDir,\n requirePolyfill\n } = await findCommandKitConfig(opts.config);\n\n if (!src) {\n panic('Could not find src in commandkit.json');\n }\n\n if (!main) {\n panic('Could not find main in commandkit.json');\n }\n\n const watchMode = watch;\n const status = ora(\n Colors.green('Starting a development server...\\n')\n ).start();\n const start = performance.now();\n\n if (watchMode && !nodeOptions.includes('--watch')) {\n nodeOptions.push('--watch');\n } else if (!watchMode && nodeOptions.includes('--watch')) {\n nodeOptions.splice(nodeOptions.indexOf('--watch'), 1);\n }\n\n if (!nodeOptions.includes('--enable-source-maps')) {\n nodeOptions.push('--enable-source-maps');\n }\n\n erase('.commandkit');\n\n try {\n await build({\n clean: true,\n format: ['esm'],\n dts: false,\n skipNodeModulesBundle: true,\n minify: false,\n shims: true,\n sourcemap: 'inline',\n keepNames: true,\n outDir: '.commandkit',\n silent: true,\n entry: [src, '!dist', '!.commandkit', `!${outDir}`].filter(Boolean),\n watch: watchMode,\n cjsInterop: true,\n jsxFactory: 'CommandKit.createElement',\n jsxFragment: 'CommandKit.Fragment',\n async onSuccess() {\n return await injectShims('.commandkit', main, false, requirePolyfill);\n },\n esbuildPlugins: [\n commandkitPlugin({\n 'use-macro': false\n })]\n\n });\n\n status.succeed(\n Colors.green(\n `Dev server started in ${(performance.now() - start).toFixed(2)}ms!\\n`\n )\n );\n\n if (watchMode) write(Colors.cyan('Watching for file changes...\\n'));\n\n const processEnv = {};\n\n const env = dotenv({\n path: join(process.cwd(), '.env'),\n processEnv\n });\n\n if (envExtra) {\n parseEnv(processEnv);\n }\n\n if (env.error) {\n write(Colors.yellow(`[DOTENV] Warning: ${env.error.message}`));\n }\n\n if (env.parsed) {\n write(Colors.blue('[DOTENV] Loaded .env file!'));\n }\n\n const ps: child_process.ChildProcessWithoutNullStreams =\n child_process.spawn(\n 'node',\n [...nodeOptions, join(process.cwd(), '.commandkit', main)],\n {\n env: {\n ...process.env,\n ...processEnv,\n NODE_ENV: 'development',\n // @ts-expect-error\n COMMANDKIT_DEV: true,\n // @ts-expect-error\n COMMANDKIT_PRODUCTION: false\n },\n cwd: process.cwd()\n }\n );\n\n let isLastLogRestarting = false,\n hasStarted = false;\n\n ps.stdout.on('data', (data) => {\n const message = data.toString();\n\n if (FAILED_RUNNING_PATTERN.test(message)) {\n write(Colors.cyan('Failed running the bot, waiting for changes...'));\n isLastLogRestarting = false;\n if (!hasStarted) hasStarted = true;\n return;\n }\n\n if (clearRestartLogs && !RESTARTING_MSG_PATTERN.test(message)) {\n write(message);\n isLastLogRestarting = false;\n } else {\n if (isLastLogRestarting || !hasStarted) {\n if (!hasStarted) hasStarted = true;\n return;\n }\n write(Colors.cyan('⌀ Restarting the bot...'));\n isLastLogRestarting = true;\n }\n\n if (!hasStarted) hasStarted = true;\n });\n\n ps.stderr.on('data', (data) => {\n const message = data.toString();\n\n if (\n message.includes(\n 'ExperimentalWarning: Watch mode is an experimental feature and might change at any time'\n ))\n\n return;\n\n write(Colors.red(message));\n });\n\n ps.on('close', (code) => {\n write('\\n');\n process.exit(code ?? 0);\n });\n\n ps.on('error', (err) => {\n panic(err);\n });\n } catch (e) {\n status.fail(\n `Error occurred after ${(performance.now() - start).toFixed(2)}ms!\\n`\n );\n panic(e instanceof Error ? e.stack : e);\n }\n}","// @ts-check\nimport { config as dotenv } from 'dotenv';\nimport { existsSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { Colors, findCommandKitConfig, panic, write } from './common';\nimport { parseEnv } from './parse-env';\nimport child_process from 'node:child_process';\n\nexport async function bootstrapProductionServer(config: any) {\n const {\n main,\n outDir = 'dist',\n envExtra = true,\n sourcemap\n } = await findCommandKitConfig(config);\n\n if (!existsSync(join(process.cwd(), outDir, main))) {\n panic(\n 'Could not find production build, maybe run `commandkit build` first?'\n );\n }\n\n try {\n const processEnv = {};\n\n const env = dotenv({\n path: join(process.cwd(), '.env'),\n processEnv\n });\n\n if (envExtra) {\n parseEnv(processEnv);\n }\n\n if (env.error) {\n write(Colors.yellow(`[DOTENV] Warning: ${env.error.message}`));\n }\n\n if (env.parsed) {\n write(Colors.blue('[DOTENV] Loaded .env file!'));\n }\n\n const ps: child_process.ChildProcessWithoutNullStreams =\n child_process.spawn(\n 'node',\n [\n sourcemap ? '--enable-source-maps' : '',\n join(process.cwd(), outDir, main)].\n filter(Boolean),\n {\n env: {\n ...process.env,\n ...processEnv,\n NODE_ENV: 'production',\n // @ts-expect-error\n COMMANDKIT_DEV: false,\n // @ts-expect-error\n COMMANDKIT_PROD: true\n },\n cwd: process.cwd()\n }\n );\n\n ps.stdout.on('data', (data) => {\n write(data.toString());\n });\n\n ps.stderr.on('data', (data) => {\n write(Colors.red(data.toString()));\n });\n\n ps.on('close', (code) => {\n write('\\n');\n process.exit(code ?? 0);\n });\n\n ps.on('error', (err) => {\n panic(err);\n });\n } catch (e) {\n panic(e);\n }\n}","/**\n * Creates a command line interface for CommandKit.\n * @param argv The arguments passed to the CLI.\n * @param options The options passed to the CLI.\n */\nexport async function bootstrapCommandkitCLI(\nargv: string[],\noptions?: import('commander').ParseOptions | undefined)\n{\n const { Command } = await import('commander');\n const { bootstrapDevelopmentServer } = await import('./development');\n const { bootstrapProductionServer } = await import('./production');\n const { bootstrapProductionBuild } = await import('./build');\n\n const program = new Command('commandkit');\n\n program.\n command('dev').\n description('Start your bot in development mode.').\n option(\n '-c, --config <path>',\n 'Path to your commandkit config file.',\n './commandkit.js'\n ).\n action(() => {\n const options = program.opts();\n bootstrapDevelopmentServer(options);\n });\n\n program.\n command('start').\n description(\n 'Start your bot in production mode after running the build command.'\n ).\n option(\n '-c, --config <path>',\n 'Path to your commandkit.json file.',\n './commandkit.js'\n ).\n action(() => {\n const options = program.opts();\n bootstrapProductionServer(options.config);\n });\n\n program.\n command('build').\n description('Build your project for production usage.').\n option(\n '-c, --config <path>',\n 'Path to your commandkit.json file.',\n './commandkit.json'\n ).\n action(() => {\n const options = program.opts();\n bootstrapProductionBuild(options.config);\n });\n\n await program.parseAsync(argv, options);\n}"],"mappings":"ikCAAA,0LCoCO,SAAS,MAAM,QAAc,CAClC,QAAQ,OAAO,MAAM,OAAO,EAC5B,QAAQ,OAAO,MAAM;AAAA,CAAI,CAC3B,CAKO,SAAS,MAAM,QAAc,CAClC,MAAM,OAAO,IAAI,UAAU,OAAO,EAAE,CAAC,EACrC,QAAQ,KAAK,CAAC,CAChB,CA2BA,eAAsB,qBAAqB,IAAa,CACtD,IAAM,IAAM,QAAQ,IAAI,EAClB,UAAY,IAClB,IAAC,uBAAK,IAAK,GAAG,CAAC,EACf,kBAAkB,IAAK,SAAS,uBAAK,IAAK,IAAI,CAAC,EAE/C,QAAW,YAAY,UACrB,GAAI,CACF,OAAO,MAAM,gBAAgB,QAAQ,CACvC,MAAY,CACV,QACF,CAGF,MAAM,2CAA2C,GAAG,EAAE,CACxD,CAEA,SAAS,iBAAiB,OAAgB,CACnB,eAAe,KAAK,MAAM,GAE3B,CAAC,QAAQ,SAAS,YACpC,MACE,oJACF,CAEJ,CAEA,eAAe,gBAAgB,OAAgB,CAC7C,IAAM,OAAS,OAAO,SAAS,OAAO,EAEtC,aAAM,aAAa,MAAM,EAEzB,iBAAiB,MAAM,EAMR,MAAM,OAAO,UAAU,MAAM,IAEzC,KAAM,MAAS,KAAK,SAAW,IAAI,CAGxC,CAEA,eAAe,aAAa,IAAa,CACvC,MAAM,eAAAA,QAAG,SAAS,OAAO,IAAK,eAAAA,QAAG,UAAU,IAAI,CACjD,CAEO,SAAS,MAAM,IAAa,IACjC,0BAAW,GAAG,CAChB,CA7HA,IAEA,cACA,iBACA,eAEM,WAEO,OAoDP,kBA5DN,uEAEA,cAA2B,kBAC3B,iBAAqB,gBACrB,eAAe,uBAET,WAAa,UAEN,OAAS,CACpB,MAAO,OAAC,MAAiB,GAAG,IAAI,GAAG,UAAU,GAAtC,SACP,OAAQ,OAAC,MAAiB,UAAU,IAAI,GAAG,UAAU,GAA7C,UACR,IAAK,OAAC,MAAiB,UAAU,IAAI,GAAG,UAAU,GAA7C,OACL,WAAY,OAAC,MAAiB,UAAU,IAAI,GAAG,UAAU,GAA7C,cACZ,MAAO,OAAC,MAAiB,UAAU,IAAI,GAAG,UAAU,GAA7C,SACP,QAAS,OAAC,MAAiB,UAAU,IAAI,GAAG,UAAU,GAA7C,WACT,OAAQ,OAAC,MAAiB,UAAU,IAAI,GAAG,UAAU,GAA7C,UAER,MAAO,OAAC,MAAiB,WAAW,IAAI,GAAG,UAAU,GAA9C,SACP,IAAK,OAAC,MAAiB,WAAW,IAAI,GAAG,UAAU,GAA9C,OACL,MAAO,OAAC,MAAiB,WAAW,IAAI,GAAG,UAAU,GAA9C,SACP,OAAQ,OAAC,MAAiB,WAAW,IAAI,GAAG,UAAU,GAA9C,UACR,KAAM,OAAC,MAAiB,WAAW,IAAI,GAAG,UAAU,GAA9C,QACN,QAAS,OAAC,MAAiB,WAAW,IAAI,GAAG,UAAU,GAA9C,WACT,KAAM,OAAC,MAAiB,WAAW,IAAI,GAAG,UAAU,GAA9C,QACN,MAAO,OAAC,MAAiB,WAAW,IAAI,GAAG,UAAU,GAA9C,SAEP,QAAS,OAAC,MAAiB,WAAW,IAAI,GAAG,UAAU,GAA9C,WACT,MAAO,OAAC,MAAiB,WAAW,IAAI,GAAG,UAAU,GAA9C,SACP,QAAS,OAAC,MAAiB,WAAW,IAAI,GAAG,UAAU,GAA9C,WACT,SAAU,OAAC,MAAiB,WAAW,IAAI,GAAG,UAAU,GAA9C,YACV,OAAQ,OAAC,MAAiB,WAAW,IAAI,GAAG,UAAU,GAA9C,UACR,UAAW,OAAC,MAAiB,WAAW,IAAI,GAAG,UAAU,GAA9C,aACX,OAAQ,OAAC,MAAiB,WAAW,IAAI,GAAG,UAAU,GAA9C,UACR,QAAS,OAAC,MAAiB,WAAW,IAAI,GAAG,UAAU,GAA9C,UACX,EAEgB,sBAQA,sBAgBV,kBAAoB,CAC1B,kBACA,yBACA,gBACA,uBACA,iBACA,wBACA,iBACA,wBACA,gBACA,iBACA,gBAAgB,EAGM,oDAiBb,4CAUM,0CAkBA,oCAIC,yBC1GhB,SAAS,QAAQ,GAAc,CAC7B,GAAI,CACF,UAAG,EACI,EACT,MAAQ,CACN,MAAO,EACT,CACF,CAEO,SAAS,SAAS,IAAU,CACjC,QAAW,OAAO,IAAK,CACrB,IAAM,MAAQ,IAAI,GAAG,EAErB,GAAI,OAAO,OAAU,SAErB,IAAI,MAAM,WAAW,eAAe,IAAI,EAAG,CACzC,QACE,IAAM,IAAI,GAAG,EAAI,KAAK,MAAM,MAAM,QAAQ,eAAe,KAAM,EAAE,CAAC,CACpE,EACA,QACF,CAEA,GAAI,MAAM,WAAW,eAAe,IAAI,EAAG,CACzC,IAAI,GAAG,EAAI,IAAI,KAAK,MAAM,QAAQ,eAAe,KAAM,EAAE,CAAC,EAC1D,QACF,CAEA,GAAI,MAAM,SAAS,GAAG,EAAG,CACvB,IAAI,GAAG,EAAI,MAAM,MAAM,GAAG,EAAE,IAAK,GAAM,EAAE,KAAK,CAAC,EAC/C,QACF,CAEA,GAAI,YAAY,KAAK,KAAK,EAAG,CAC3B,IAAI,GAAG,EAAI,OAAO,KAAK,EACvB,QACF,CAEA,GAAI,SAAS,UAAW,CACtB,IAAI,GAAG,EAEP,OAAO,UAAU,KAAK,GAAM,WAE5B,UAAU,KAAK,EAAE,EAEjB,UAAU,KAAK,EACf,QACF,EACF,CAEA,OAAO,GACT,CAnEA,IAEA,mBAEM,UAQA,eAZN,6EAEA,mBAA2B,kBAErB,UAAY,CAChB,KAAM,GACN,MAAO,GACP,KAAM,KACN,UAAW,OACX,WAAY,cAAM,+BAAW,EAAjB,aACd,EAEM,eAAiB,CACrB,KAAM,SACN,KAAM,QACR,EAES,0BASO,+BC1BhB,WACA,gBACA,iBACA,EAGM,SAEA,SAEA,YACA,UACA,iBAGA,qBAQO,qBAvBb,oGAAwB,kCACxB,gBAAsB,oCACtB,iBAAsB,qCACtB,EAAmB,iCAGb,SAAW,gBAAAC,QAAU,SAAW,gBAAAA,QAEhC,SAAW,iBAAAC,QAAU,SAAW,iBAAAA,QAEhC,YAAc,aACd,UAAY,YACZ,iBACN,0IAEM,qBAAuB,QAAC,OAAS,IAAM,CAC3C,IAAM,MAAQ,uDACd,OAAO,MAAM,KACX,CAAE,MAAO,EACT,IAAM,MAAM,KAAK,MAAM,KAAK,OAAO,EAAI,MAAM,MAAM,CAAC,CACtD,EAAE,KAAK,EAAE,CACX,EAN6B,wBAQhB,qBAAuB,aAAO,OAAgB,OAAc,CACvE,IAAM,IAAa,aAAM,OAAQ,CAC/B,WAAY,SACZ,QAAS,CAAC,aAAc,KAAK,CAC/B,CAAC,EAEG,MAAQ,CACV,YAAa,GACb,kBAAmB,GACnB,oBAAqB,iBACrB,cAAe,CAAC,CAClB,EAGA,SAAS,IAAK,CACZ,QAAS,CACP,MAAM,KAAW,CACC,KAAK,MAAM,WAAW,gBAAgB,IAEpD,MAAM,oBAAsB,GAAG,gBAAgB,IAAI,qBAAqB,CAAC,GAE7E,CACF,EAEA,kBAAkB,KAAW,CAE3B,KAAK,KAAK,OAAO,QAAU,aAC3B,KAAK,KAAK,WAAW,KAClB,MACC,oBAAkB,IAAI,GAExB,KAAK,SAAS,OAAS,gBACzB,IAEE,MAAM,kBAAoB,GACtB,MAAM,sBAAwB,kBAEhC,MAAM,cAAc,KAAK,IAAM,CAC7B,KAAK,KAAK,WAAW,QAAS,MAAc,CAExC,oBAAkB,IAAI,GAExB,KAAK,SAAS,OAAS,mBAErB,KAAK,MAAM,KAAO,MAAM,oBAE5B,CAAC,CACH,CAAC,EAGP,EAEA,iEACA,KACA,CA7EJ,aA8EM,IAAM,KAAS,mBAAiB,KAAK,KAAK,IAAI,EAAI,KAAK,KAAK,KAAO,KAC7D,aAAc,0BAAM,aAAN,eAAkB,KACnC,GAAW,EAAE,MAAM,QAAU,WAGhC,GAAI,CAAC,aAAe,CAAG,mBAAiB,KAAK,KAAK,IAAI,EAAG,CACvD,IAAM,eAAiB,KAAK,WACzB,IACA,EAAE,WAAW,GAAK,EAAE,UAAU,IAAM,eAAgB,EAAE,IACzD,EACA,GACA,GAAC,8CAAgB,KAAK,aAArB,SAAiC,KAC/B,GAAW,EAAE,MAAM,QAAU,YAG9B,MAEJ,CAEA,GAAI,aAAe,CAAG,mBAAiB,KAAK,KAAK,IAAI,EAAG,CAEtD,GAAI,CAAC,KAAK,KAAK,MACb,MAAM,IAAI,MACR,IAAI,SAAS,sDAAsD,KAAK,IAAI,EAC9E,EAGF,MAAM,YAAc,GAEpB,IAAM,KADkB,wBAAsB,KAAK,IAAI,GAC1B,QAAK,KAAK,KAAV,eAAc,KAAO,OAG5C,QAAY,mBAAiB,KAAK,KAAK,IAAI,EAC/C,iBACA,KAAK,KAAK,KAAK,KACf,KAAK,KAAK,KAAK,WAAW,OACvB,GAAW,EAAE,MAAM,QAAU,SAChC,CACF,EACA,KAAK,KAAK,KAEJ,QAAY,iBACd,aAAW,MAAM,mBAAmB,EACtC,CAAG,0BAAwB,KAAK,KAAK,OAAQ,QAAS,EAAI,CAAC,CAC7D,EAGA,MAAM,cAAc,KAAK,IAAM,CACzB,KACF,KAAK,YACD,sBAAoB,QAAS,CAC7B,qBAAqB,aAAW,IAAI,EAAG,OAAO,CAAC,CACjD,CACF,EACY,uBAAqB,KAAK,MAAM,EAG5C,KAAK,OAAO,KAAO,QAFnB,KAAK,YAAY,OAAO,CAI5B,CAAC,CACH,CACF,CACF,CAAC,EAGG,MAAM,cAAc,OAAS,IAE3B,MAAM,aAAe,CAAC,MAAM,mBAC9B,IAAI,QAAQ,KAAK,QACb,oBACA,CACE,kBACE,aAAW,MAAM,mBAAmB,EACpC,aAAW,gBAAgB,CAC/B,CAAC,EAEC,gBAAc,WAAW,CAC7B,CACF,EAKF,MAAM,cAAc,QAAS,QAAW,OAAO,CAAC,GAGlD,GAAM,CAAE,IAAK,EAAI,SAAS,GAAG,EAC7B,MAAO,CACL,SAAU,KACV,OAAQ,KAAK,KAAK,MAAM,GAAG,EAAE,IAAI,CACnC,CACF,EAlJoC,2BCvBpC,qBAEA,gBAEM,cAYO,iBAhBb,wGAAiC,qBACjC,iBACA,gBAAyB,uBAEnB,cAAgB,CACpB,YAAa,GACb,YAAa,GACb,mBAAoB,EACtB,EAQa,iBAAmB,OAAC,QAA2C,CAC1E,OAAS,OAAO,OAAO,CAAC,EAAG,cAAe,MAAM,EAEhD,IAAM,QAAU,CAChB,CACE,KAAM,YACN,OAAQ,aAAO,QAAiB,OAAc,CAC5C,IAAM,YAAc,IAAI,kCAClB,CAAE,QAAS,EAAI,MAAM,YAAY,UAAU,QAAS,KAAK,IAAI,EACnE,OAAO,QACT,EAJQ,SAKV,EACA,CACE,KAAM,YACN,OAAQ,aAAO,QAAiB,OAAc,CAC5C,GAAM,CAAE,QAAS,EAAI,MAAM,qBAAqB,QAAS,IAAI,EAC7D,OAAO,QACT,EAHQ,SAIV,CAAC,EACD,OAAQ,GACC,CAAC,CAAC,OAAO,EAAE,IAA2C,CAC9D,EAED,MAAO,CACL,KAAM,gCACN,MAAMC,OAAY,CAChB,GAAI,CAAC,QAAQ,OAAQ,OAErB,IAAM,WAAa,oBAEnBA,OAAM,OAAO,CAAE,OAAQ,UAAW,EAAG,MAAO,MAAc,CACxD,IAAM,OAAS,QAAM,0BAAS,KAAK,KAAM,MAAM,EACzC,OAAS,KAAK,KAAK,MAAM,GAAG,EAAE,IAAI,EAEpC,SAAW,OAEf,QAAW,WAAW,QAAS,CAC7B,GAAM,CAAE,OAAQ,IAAK,EAAI,QACzB,GAAI,CACF,SAAW,MAAM,OAAO,SAAU,IAAI,CACxC,OAAS,EAAG,CACV,IAAM,IAAM,IAAI,MAAM,UAAU,IAAI,gBAAgB,CAAC,EAAE,EACvD,UAAI,MAAQ,aAAa,MAAQ,EAAE,MAAQ,GAErC,GACR,CACF,CAEA,MAAO,CACL,SACA,MACF,CACF,CAAC,CACH,CACF,CACF,EAvDgC,uBChBhC,iIASA,eAAsB,yBAAyB,OAAa,CAC1D,GAAM,CACJ,UAAY,GACZ,OAAS,GACT,OAAS,OACT,UAAY,GACZ,IACA,KACA,gBAAiB,eACnB,EAAI,MAAM,qBAAqB,MAAM,EAE/B,UAAS,WAAAC,SAAI;AAAA,CAA0C,EAAE,MAAM,EAC/D,MAAQ,YAAY,IAAI,EAE9B,MAAM,MAAM,EAEZ,GAAI,CACF,QAAM,mBAAM,CACV,MAAO,GACP,OAAQ,CAAC,KAAK,EACd,IAAK,GACL,sBAAuB,GACvB,OACA,MAAO,GACP,OAAQ,CACN,GAAI,0DACN,EACA,UACA,UAAW,GACX,OACA,OAAQ,GACR,MAAO,GACP,WAAY,GACZ,MAAO,CAAC,IAAK,QAAS,eAAgB,IAAI,MAAM,EAAE,EAClD,eAAgB,CAAC,iBAAiB,CAAC,EACnC,WAAY,2BACZ,YAAa,qBACf,CAAC,EAED,MAAM,YAAY,OAAQ,KAAM,UAAW,eAAe,EAE1D,OAAO,QACL,OAAO,MACL,uBAAuB,YAAY,IAAI,EAAI,OAAO,QAAQ,CAAC,CAAC,KAC9D,CACF,EACA,MACE,OAAO,MACL;AAAA,MAAS,OAAO,QAAQ,kBAAkB,CAAC,IAAI,OAAO,MACpD,oBACF,CAAC,EACH,CACF,CACF,OAAS,EAAG,CACV,OAAO,KACL,uBAAuB,YAAY,IAAI,EAAI,OAAO,QAAQ,CAAC,CAAC,KAC9D,EACA,MAAM,CAAC,CACT,CACF,CAEA,eAAsB,YACtB,OACA,KACA,UACA,gBACA,CACE,IAAM,QAAO,wBAAK,QAAQ,IAAI,EAAG,OAAQ,IAAI,EAEvC,KAAO,CAAC;AAAA;AAAA,oBAA0B,iBAAiB,EAAE,KAAK;AAAA,CAAI,EAC9D,KAAO;AAAA,OACP,cAAgB,gBACtB,CACA,2CACA,0CACA,6DACA,wDACA,qDACA,yBACA,gCACA,WACA,4BACA,2BACA,wBACA,UACA,MACA,0CAA0C,EAC1C,KAAK;AAAA,CAAI,EACT,GAEM,gBAAkB,UACxB,CACA,2CACA,wHACA,2DACA,mFACA,2JACA,6EACA,8BACA,mEACA,SACA,6EACA,8BACA,gFACA,UACA,0CAA0C,EAC1C,KAAK;AAAA,CAAI,EACT,GAEM,SAAW,QAAM,2BAAS,KAAM,OAAO,EACvC,YAAc,CACpB,KACA,cACA,gBACA,KACA;AAAA;AAAA,EACA,QAAQ,EACR,KAAK;AAAA,CAAI,EAET,SAAO,4BAAU,KAAM,WAAW,CACpC,CAjIA,IAEAC,iBACAC,kBACA,YAEA,WANA,qEAEAD,iBAAoC,uBACpCC,kBAAqB,gBACrB,YAAsB,gBACtB,cACA,WAAgB,wBAChB,cAEsB,4DA6DA,qCCtEtB,qHAcA,eAAsB,2BAA2B,KAAW,CAC1D,GAAM,CACJ,IACA,KACA,MAAQ,EAAQ,KAAK,QACrB,YAAc,CAAC,EACf,SAAW,GACX,iBAAmB,GACnB,OACA,eACF,EAAI,MAAM,qBAAqB,KAAK,MAAM,EAErC,KACH,MAAM,uCAAuC,EAG1C,MACH,MAAM,wCAAwC,EAGhD,IAAM,UAAY,MACZ,UAAS,YAAAC,SACb,OAAO,MAAM;AAAA,CAAoC,CACnD,EAAE,MAAM,EACF,MAAQ,YAAY,IAAI,EAE1B,WAAa,CAAC,YAAY,SAAS,SAAS,EAC9C,YAAY,KAAK,SAAS,EACjB,CAAC,WAAa,YAAY,SAAS,SAAS,GACrD,YAAY,OAAO,YAAY,QAAQ,SAAS,EAAG,CAAC,EAGjD,YAAY,SAAS,sBAAsB,GAC9C,YAAY,KAAK,sBAAsB,EAGzC,MAAM,aAAa,EAEnB,GAAI,CACF,QAAM,oBAAM,CACV,MAAO,GACP,OAAQ,CAAC,KAAK,EACd,IAAK,GACL,sBAAuB,GACvB,OAAQ,GACR,MAAO,GACP,UAAW,SACX,UAAW,GACX,OAAQ,cACR,OAAQ,GACR,MAAO,CAAC,IAAK,QAAS,eAAgB,IAAI,MAAM,EAAE,EAAE,OAAO,OAAO,EAClE,MAAO,UACP,WAAY,GACZ,WAAY,2BACZ,YAAa,sBACb,MAAM,WAAY,CAChB,OAAO,MAAM,YAAY,cAAe,KAAM,GAAO,eAAe,CACtE,EACA,eAAgB,CAChB,iBAAiB,CACf,YAAa,EACf,CAAC,CAAC,CAEJ,CAAC,EAED,OAAO,QACL,OAAO,MACL,0BAA0B,YAAY,IAAI,EAAI,OAAO,QAAQ,CAAC,CAAC;AAAA,CACjE,CACF,EAEI,WAAW,MAAM,OAAO,KAAK;AAAA,CAAgC,CAAC,EAElE,IAAM,WAAa,CAAC,EAEd,OAAM,cAAAC,QAAO,CACjB,QAAM,wBAAK,QAAQ,IAAI,EAAG,MAAM,EAChC,UACF,CAAC,EAEG,UACF,SAAS,UAAU,EAGjB,IAAI,OACN,MAAM,OAAO,OAAO,qBAAqB,IAAI,MAAM,OAAO,EAAE,CAAC,EAG3D,IAAI,QACN,MAAM,OAAO,KAAK,4BAA4B,CAAC,EAGjD,IAAM,GACN,0BAAAC,QAAc,MACZ,OACA,CAAC,GAAG,eAAa,wBAAK,QAAQ,IAAI,EAAG,cAAe,IAAI,CAAC,EACzD,CACE,IAAK,CACH,GAAG,QAAQ,IACX,GAAG,WACH,SAAU,cAEV,eAAgB,GAEhB,sBAAuB,EACzB,EACA,IAAK,QAAQ,IAAI,CACnB,CACF,EAEI,oBAAsB,GACxB,WAAa,GAEf,GAAG,OAAO,GAAG,OAAS,MAAS,CAC7B,IAAM,QAAU,KAAK,SAAS,EAE9B,GAAI,uBAAuB,KAAK,OAAO,EAAG,CACxC,MAAM,OAAO,KAAK,gDAAgD,CAAC,EACnE,oBAAsB,GACjB,aAAY,WAAa,IAC9B,MACF,CAEA,GAAI,kBAAoB,CAAC,uBAAuB,KAAK,OAAO,EAC1D,MAAM,OAAO,EACb,oBAAsB,OACjB,CACL,GAAI,qBAAuB,CAAC,WAAY,CACjC,aAAY,WAAa,IAC9B,MACF,CACA,MAAM,OAAO,KAAK,8BAAyB,CAAC,EAC5C,oBAAsB,EACxB,CAEK,aAAY,WAAa,GAChC,CAAC,EAED,GAAG,OAAO,GAAG,OAAS,MAAS,CAC7B,IAAM,QAAU,KAAK,SAAS,EAG9B,QAAQ,SACN,yFACF,GAIA,MAAM,OAAO,IAAI,OAAO,CAAC,CAC3B,CAAC,EAED,GAAG,GAAG,QAAU,MAAS,CACvB,MAAM;AAAA,CAAI,EACV,QAAQ,KAAK,MAAQ,CAAC,CACxB,CAAC,EAED,GAAG,GAAG,QAAU,KAAQ,CACtB,MAAM,GAAG,CACX,CAAC,CACH,OAAS,EAAG,CACV,OAAO,KACL,yBAAyB,YAAY,IAAI,EAAI,OAAO,QAAQ,CAAC,CAAC;AAAA,CAChE,EACA,MAAM,aAAa,MAAQ,EAAE,MAAQ,CAAC,CACxC,CACF,CAnLA,IACA,cACAC,kBACAC,aAGA,0BACAC,YAIM,uBACA,uBAZN,iFACA,cAAiC,kBACjCF,kBAAqB,gBACrBC,aAAsB,gBACtB,cACA,iBACA,0BAA0B,kCAC1BC,YAAgB,wBAChB,aACA,cAEM,uBAAyB,2BACzB,uBAAyB,6BAET,mECdtB,iHAQA,eAAsB,0BAA0B,OAAa,CAC3D,GAAM,CACJ,KACA,OAAS,OACT,SAAW,GACX,SACF,EAAI,MAAM,qBAAqB,MAAM,KAEhC,+BAAW,wBAAK,QAAQ,IAAI,EAAG,OAAQ,IAAI,CAAC,GAC/C,MACE,sEACF,EAGF,GAAI,CACF,IAAM,WAAa,CAAC,EAEd,OAAM,eAAAC,QAAO,CACjB,QAAM,wBAAK,QAAQ,IAAI,EAAG,MAAM,EAChC,UACF,CAAC,EAEG,UACF,SAAS,UAAU,EAGjB,IAAI,OACN,MAAM,OAAO,OAAO,qBAAqB,IAAI,MAAM,OAAO,EAAE,CAAC,EAG3D,IAAI,QACN,MAAM,OAAO,KAAK,4BAA4B,CAAC,EAGjD,IAAM,GACN,2BAAAC,QAAc,MACZ,OACA,CACA,UAAY,uBAAyB,MACrC,wBAAK,QAAQ,IAAI,EAAG,OAAQ,IAAI,CAAC,EACjC,OAAO,OAAO,EACd,CACE,IAAK,CACH,GAAG,QAAQ,IACX,GAAG,WACH,SAAU,aAEV,eAAgB,GAEhB,gBAAiB,EACnB,EACA,IAAK,QAAQ,IAAI,CACnB,CACF,EAEA,GAAG,OAAO,GAAG,OAAS,MAAS,CAC7B,MAAM,KAAK,SAAS,CAAC,CACvB,CAAC,EAED,GAAG,OAAO,GAAG,OAAS,MAAS,CAC7B,MAAM,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CACnC,CAAC,EAED,GAAG,GAAG,QAAU,MAAS,CACvB,MAAM;AAAA,CAAI,EACV,QAAQ,KAAK,MAAQ,CAAC,CACxB,CAAC,EAED,GAAG,GAAG,QAAU,KAAQ,CACtB,MAAM,GAAG,CACX,CAAC,CACH,OAAS,EAAG,CACV,MAAM,CAAC,CACT,CACF,CAlFA,IACAC,eACAC,gBACAC,kBAGAC,2BANA,+EACAH,eAAiC,kBACjCC,gBAA2B,cAC3BC,kBAAqB,gBACrB,cACA,iBACAC,2BAA0B,kCAEJ,iECRtB,0JAKA,eAAsB,uBACtB,KACA,QACA,CACE,GAAM,CAAE,OAAQ,EAAI,KAAM,QAAO,WAAW,EACtC,CAAE,2BAAAC,2BAA2B,EAAI,KAAM,sEACvC,CAAE,0BAAAC,0BAA0B,EAAI,KAAM,oEACtC,CAAE,yBAAAC,yBAAyB,EAAI,KAAM,0DAErC,QAAU,IAAI,QAAQ,YAAY,EAExC,QACA,QAAQ,KAAK,EACb,YAAY,qCAAqC,EACjD,OACE,sBACA,uCACA,iBACF,EACA,OAAO,IAAM,CACX,IAAMC,SAAU,QAAQ,KAAK,EAC7BH,4BAA2BG,QAAO,CACpC,CAAC,EAED,QACA,QAAQ,OAAO,EACf,YACE,oEACF,EACA,OACE,sBACA,qCACA,iBACF,EACA,OAAO,IAAM,CACX,IAAMA,SAAU,QAAQ,KAAK,EAC7BF,2BAA0BE,SAAQ,MAAM,CAC1C,CAAC,EAED,QACA,QAAQ,OAAO,EACf,YAAY,0CAA0C,EACtD,OACE,sBACA,qCACA,mBACF,EACA,OAAO,IAAM,CACX,IAAMA,SAAU,QAAQ,KAAK,EAC7BD,0BAAyBC,SAAQ,MAAM,CACzC,CAAC,EAED,MAAM,QAAQ,WAAW,KAAM,OAAO,CACxC,CArDsB","names":["fs","_traverse","_generate","build","ora","import_promises","import_node_path","ora","dotenv","child_process","import_node_path","import_tsup","import_ora","dotenv","child_process","import_dotenv","import_node_fs","import_node_path","import_node_child_process","bootstrapDevelopmentServer","bootstrapProductionServer","bootstrapProductionBuild","options"]}
|
package/dist/cli/init.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{bootstrapCommandkitCLI}from"../chunk-
|
|
1
|
+
import{bootstrapCommandkitCLI}from"../chunk-D4IIOMFB.mjs";import"../chunk-35OSBS47.mjs";export{bootstrapCommandkitCLI};
|
|
2
2
|
//# sourceMappingURL=init.mjs.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AnyCommandKitElement, CommandKitElement } from '../common/element.mjs';
|
|
2
|
+
import 'discord.js';
|
|
3
|
+
import '../button/ButtonKit.mjs';
|
|
4
|
+
import '../common/EventInterceptor.mjs';
|
|
5
|
+
|
|
6
|
+
interface ActionRowProps {
|
|
7
|
+
children?: AnyCommandKitElement[] | AnyCommandKitElement;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The action row component.
|
|
11
|
+
* @param props The action row properties.
|
|
12
|
+
* @returns The commandkit element.
|
|
13
|
+
* @example <ActionRow><Button label="Click me" style={ButtonStyle.Primary} customId="click_me" /></ActionRow>
|
|
14
|
+
*/
|
|
15
|
+
declare function ActionRow(props: ActionRowProps): CommandKitElement<'action-row'>;
|
|
16
|
+
|
|
17
|
+
export { ActionRow, type ActionRowProps };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AnyCommandKitElement, CommandKitElement } from '../common/element.js';
|
|
2
|
+
import 'discord.js';
|
|
3
|
+
import '../button/ButtonKit.js';
|
|
4
|
+
import '../common/EventInterceptor.js';
|
|
5
|
+
|
|
6
|
+
interface ActionRowProps {
|
|
7
|
+
children?: AnyCommandKitElement[] | AnyCommandKitElement;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The action row component.
|
|
11
|
+
* @param props The action row properties.
|
|
12
|
+
* @returns The commandkit element.
|
|
13
|
+
* @example <ActionRow><Button label="Click me" style={ButtonStyle.Primary} customId="click_me" /></ActionRow>
|
|
14
|
+
*/
|
|
15
|
+
declare function ActionRow(props: ActionRowProps): CommandKitElement<'action-row'>;
|
|
16
|
+
|
|
17
|
+
export { ActionRow, type ActionRowProps };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var ActionRow_exports={};__export(ActionRow_exports,{ActionRow:()=>ActionRow});module.exports=__toCommonJS(ActionRow_exports);var import_discord=require("discord.js");function ActionRow(props){let row=new import_discord.ActionRowBuilder;return Array.isArray(props.children)?row.setComponents(...props.children):props.children&&row.setComponents(props.children),row}__name(ActionRow,"ActionRow");0&&(module.exports={ActionRow});
|
|
2
|
+
//# sourceMappingURL=ActionRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/action-row/ActionRow.ts"],"sourcesContent":["import { ActionRowBuilder } from 'discord.js';\nimport { AnyCommandKitElement, CommandKitElement } from '../common/element';\n\nexport interface ActionRowProps {\n children?: AnyCommandKitElement[] | AnyCommandKitElement;\n}\n\n/**\n * The action row component.\n * @param props The action row properties.\n * @returns The commandkit element.\n * @example <ActionRow><Button label=\"Click me\" style={ButtonStyle.Primary} customId=\"click_me\" /></ActionRow>\n */\nexport function ActionRow(\nprops: ActionRowProps)\n: CommandKitElement<'action-row'> {\n const row = new ActionRowBuilder();\n\n if (Array.isArray(props.children)) {\n // @ts-ignore\n row.setComponents(...props.children);\n } else if (props.children) {\n // @ts-ignore\n row.setComponents(props.children);\n }\n\n return row;\n}"],"mappings":"ouBAAA,8HAAA,mBAAiC,sBAa1B,SAAS,UAChB,MACkC,CAChC,IAAM,IAAM,IAAI,gCAEhB,OAAI,MAAM,QAAQ,MAAM,QAAQ,EAE9B,IAAI,cAAc,GAAG,MAAM,QAAQ,EAC1B,MAAM,UAEf,IAAI,cAAc,MAAM,QAAQ,EAG3B,GACT,CAdgB","names":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ButtonStyle, ComponentEmojiResolvable } from 'discord.js';
|
|
2
|
+
import { CommandKitButtonBuilderInteractionCollectorDispatch, CommandKitButtonBuilderInteractionCollectorDispatchContextData, CommandKitButtonBuilderOnEnd } from './ButtonKit.mjs';
|
|
3
|
+
import { CommandKitElement } from '../common/element.mjs';
|
|
4
|
+
import '../common/EventInterceptor.mjs';
|
|
5
|
+
|
|
6
|
+
type ButtonChildrenLike = string | number | boolean;
|
|
7
|
+
interface ButtonProps {
|
|
8
|
+
label?: string;
|
|
9
|
+
style?: ButtonStyle;
|
|
10
|
+
emoji?: ComponentEmojiResolvable;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
customId?: string;
|
|
13
|
+
url?: string;
|
|
14
|
+
skuId?: string;
|
|
15
|
+
onClick?: CommandKitButtonBuilderInteractionCollectorDispatch;
|
|
16
|
+
options?: CommandKitButtonBuilderInteractionCollectorDispatchContextData;
|
|
17
|
+
onEnd?: CommandKitButtonBuilderOnEnd;
|
|
18
|
+
children?: ButtonChildrenLike[] | ButtonChildrenLike;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The button component.
|
|
22
|
+
* @param props The button properties.
|
|
23
|
+
* @returns The commandkit element.
|
|
24
|
+
* @example <Button style={ButtonStyle.Primary} customId="click_me">Click Me</Button>
|
|
25
|
+
*/
|
|
26
|
+
declare function Button(props: ButtonProps): CommandKitElement<'button-kit'>;
|
|
27
|
+
|
|
28
|
+
export { Button, type ButtonChildrenLike, type ButtonProps };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ButtonStyle, ComponentEmojiResolvable } from 'discord.js';
|
|
2
|
+
import { CommandKitButtonBuilderInteractionCollectorDispatch, CommandKitButtonBuilderInteractionCollectorDispatchContextData, CommandKitButtonBuilderOnEnd } from './ButtonKit.js';
|
|
3
|
+
import { CommandKitElement } from '../common/element.js';
|
|
4
|
+
import '../common/EventInterceptor.js';
|
|
5
|
+
|
|
6
|
+
type ButtonChildrenLike = string | number | boolean;
|
|
7
|
+
interface ButtonProps {
|
|
8
|
+
label?: string;
|
|
9
|
+
style?: ButtonStyle;
|
|
10
|
+
emoji?: ComponentEmojiResolvable;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
customId?: string;
|
|
13
|
+
url?: string;
|
|
14
|
+
skuId?: string;
|
|
15
|
+
onClick?: CommandKitButtonBuilderInteractionCollectorDispatch;
|
|
16
|
+
options?: CommandKitButtonBuilderInteractionCollectorDispatchContextData;
|
|
17
|
+
onEnd?: CommandKitButtonBuilderOnEnd;
|
|
18
|
+
children?: ButtonChildrenLike[] | ButtonChildrenLike;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The button component.
|
|
22
|
+
* @param props The button properties.
|
|
23
|
+
* @returns The commandkit element.
|
|
24
|
+
* @example <Button style={ButtonStyle.Primary} customId="click_me">Click Me</Button>
|
|
25
|
+
*/
|
|
26
|
+
declare function Button(props: ButtonProps): CommandKitElement<'button-kit'>;
|
|
27
|
+
|
|
28
|
+
export { Button, type ButtonChildrenLike, type ButtonProps };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __typeError=msg=>{throw TypeError(msg)};var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value),__accessCheck=(obj,member,msg)=>member.has(obj)||__typeError("Cannot "+msg);var __privateGet=(obj,member,getter)=>(__accessCheck(obj,member,"read from private field"),getter?getter.call(obj):member.get(obj)),__privateAdd=(obj,member,value)=>member.has(obj)?__typeError("Cannot add the same private member more than once"):member instanceof WeakSet?member.add(obj):member.set(obj,value),__privateSet=(obj,member,value,setter)=>(__accessCheck(obj,member,"write to private field"),setter?setter.call(obj,value):member.set(obj,value),value),__privateMethod=(obj,member,method)=>(__accessCheck(obj,member,"access private method"),method);var Button_exports={};__export(Button_exports,{Button:()=>Button});module.exports=__toCommonJS(Button_exports);var import_discord4=require("discord.js");var import_discord3=require("discord.js");var import_node_async_hooks=require("async_hooks");var CommandKitErrorCodes={GuildOnlyException:Symbol("kGuildOnlyException"),DMOnlyException:Symbol("kDMOnlyException")};function isCommandKitError(error){if(!(error instanceof Error))return!1;let code=Reflect.get(error,"code");for(let key in CommandKitErrorCodes)if(CommandKitErrorCodes[key]===code)return!0;return!1}__name(isCommandKitError,"isCommandKitError");var import_node_events=__toESM(require("events"));var import_rfdc=__toESM(require("rfdc")),clone=(0,import_rfdc.default)();var resetColor="\x1B[0m",colors_default={reset:__name(text=>`${text}${resetColor}`,"reset"),bright:__name(text=>`\x1B[1m${text}${resetColor}`,"bright"),dim:__name(text=>`\x1B[2m${text}${resetColor}`,"dim"),underscore:__name(text=>`\x1B[4m${text}${resetColor}`,"underscore"),blink:__name(text=>`\x1B[5m${text}${resetColor}`,"blink"),reverse:__name(text=>`\x1B[7m${text}${resetColor}`,"reverse"),hidden:__name(text=>`\x1B[8m${text}${resetColor}`,"hidden"),black:__name(text=>`\x1B[30m${text}${resetColor}`,"black"),red:__name(text=>`\x1B[31m${text}${resetColor}`,"red"),green:__name(text=>`\x1B[32m${text}${resetColor}`,"green"),yellow:__name(text=>`\x1B[33m${text}${resetColor}`,"yellow"),blue:__name(text=>`\x1B[34m${text}${resetColor}`,"blue"),magenta:__name(text=>`\x1B[35m${text}${resetColor}`,"magenta"),cyan:__name(text=>`\x1B[36m${text}${resetColor}`,"cyan"),white:__name(text=>`\x1B[37m${text}${resetColor}`,"white"),bgBlack:__name(text=>`\x1B[40m${text}${resetColor}`,"bgBlack"),bgRed:__name(text=>`\x1B[41m${text}${resetColor}`,"bgRed"),bgGreen:__name(text=>`\x1B[42m${text}${resetColor}`,"bgGreen"),bgYellow:__name(text=>`\x1B[43m${text}${resetColor}`,"bgYellow"),bgBlue:__name(text=>`\x1B[44m${text}${resetColor}`,"bgBlue"),bgMagenta:__name(text=>`\x1B[45m${text}${resetColor}`,"bgMagenta"),bgCyan:__name(text=>`\x1B[46m${text}${resetColor}`,"bgCyan"),bgWhite:__name(text=>`\x1B[47m${text}${resetColor}`,"bgWhite")};var import_path=__toESM(require("path")),import_promises=__toESM(require("fs/promises"));async function getFilePaths(directory,nesting){let filePaths=[];if(!directory)return filePaths;let files=await import_promises.default.readdir(directory,{withFileTypes:!0});for(let file of files){let filePath=import_path.default.join(directory,file.name);file.isFile()&&filePaths.push(filePath),nesting&&file.isDirectory()&&(filePaths=[...filePaths,...await getFilePaths(filePath,!0)])}return filePaths}__name(getFilePaths,"getFilePaths");async function getFolderPaths(directory,nesting){let folderPaths=[];if(!directory)return folderPaths;let folders=await import_promises.default.readdir(directory,{withFileTypes:!0});for(let folder of folders){let folderPath=import_path.default.join(directory,folder.name);folder.isDirectory()&&(folderPaths.push(folderPath),nesting&&(folderPaths=[...folderPaths,...await getFolderPaths(folderPath,!0)]))}return folderPaths}__name(getFolderPaths,"getFolderPaths");var import_path2=__toESM(require("path"));function toFileURL(filePath){return"file://"+import_path2.default.resolve(filePath).replace(/\\\\|\\/g,"/")}__name(toFileURL,"toFileURL");async function loadCommandsWithRest(props){if(props.reloading)if(props.client.isReady())await handleLoading(props.client,props.commands,props.devGuildIds,props.reloading,props.type);else throw new Error(colors_default.red("Cannot reload commands when client is not ready."));else props.client.once("ready",async c=>{await handleLoading(c,props.commands,props.devGuildIds,props.reloading,props.type)})}__name(loadCommandsWithRest,"loadCommandsWithRest");async function handleLoading(client,commands,devGuildIds,reloading,type){commands=commands.filter(cmd=>{var _a;return!((_a=cmd.options)!=null&&_a.deleted)});let devOnlyCommands=commands.filter(cmd=>{var _a;return(_a=cmd.options)==null?void 0:_a.devOnly}),globalCommands=commands.filter(cmd=>{var _a;return!((_a=cmd.options)!=null&&_a.devOnly)});type==="dev"?await loadDevCommands(client,devOnlyCommands,devGuildIds,reloading):type==="global"?await loadGlobalCommands(client,globalCommands,reloading):(await loadDevCommands(client,devOnlyCommands,devGuildIds,reloading),await loadGlobalCommands(client,globalCommands,reloading))}__name(handleLoading,"handleLoading");async function loadGlobalCommands(client,commands,reloading){let requestBody=commands.map(cmd=>cmd.data);await client.application.commands.set(requestBody).catch(error=>{throw new Error(colors_default.red(`Error ${reloading?"reloading":"loading"} global application commands.
|
|
2
|
+
`),error)}),console.log(colors_default.green(`${reloading?"Reloaded":"Loaded"} ${requestBody.length} global commands.`))}__name(loadGlobalCommands,"loadGlobalCommands");async function loadDevCommands(client,commands,guildIds,reloading){let requestBody=commands.map(cmd=>cmd.data);for(let guildId of guildIds){let targetGuild=client.guilds.cache.get(guildId)||await client.guilds.fetch(guildId);if(!targetGuild){process.emitWarning(`Cannot ${reloading?"reload":"load"} commands in guild "${guildId}" - guild doesn't exist or client isn't part of the guild.`);continue}await targetGuild.commands.set(requestBody).catch(error=>{throw new Error(colors_default.red(`Error ${reloading?"reloading":"loading"} developer application commands in guild "${(targetGuild==null?void 0:targetGuild.name)||guildId}".
|
|
3
|
+
`),error)}),console.log(colors_default.green(`${reloading?"Reloaded":"Loaded"} ${requestBody.length} developer commands in guild "${targetGuild.name}".`))}}__name(loadDevCommands,"loadDevCommands");function areSlashCommandsDifferent(appCommand,localCommand){if(appCommand.options||(appCommand.options=[]),localCommand.options||(localCommand.options=[]),appCommand.description||(appCommand.description=""),localCommand.description||(localCommand.description=""),localCommand.description!==appCommand.description||localCommand.options.length!==appCommand.options.length)return!0}__name(areSlashCommandsDifferent,"areSlashCommandsDifferent");async function registerCommands(props){if(props.reloading)if(props.client.isReady())await handleRegistration(props.client,props.commands,props.devGuildIds,props.type);else throw new Error(colors_default.red("Cannot reload commands when client is not ready."));else props.client.once("ready",async c=>{await handleRegistration(c,props.commands,props.devGuildIds,props.type)})}__name(registerCommands,"registerCommands");async function handleRegistration(client,commands,devGuildIds,type){let devOnlyCommands=commands.filter(cmd=>{var _a;return(_a=cmd.options)==null?void 0:_a.devOnly}),globalCommands=commands.filter(cmd=>{var _a;return!((_a=cmd.options)!=null&&_a.devOnly)});type==="dev"?await registerDevCommands(client,devOnlyCommands,devGuildIds):type==="global"?await registerGlobalCommands(client,globalCommands):(await registerDevCommands(client,devOnlyCommands,devGuildIds),await registerGlobalCommands(client,globalCommands))}__name(handleRegistration,"handleRegistration");async function registerGlobalCommands(client,commands){var _a;let appCommandsManager=client.application.commands;await appCommandsManager.fetch();for(let command of commands){let targetCommand=appCommandsManager.cache.find(cmd=>cmd.name===command.data.name);if((_a=command.options)!=null&&_a.deleted){targetCommand?(await targetCommand.delete().catch(error=>{throw new Error(colors_default.red(`Failed to delete command "${command.data.name}" globally.
|
|
4
|
+
`),error)}),console.log(colors_default.green(`Deleted command "${command.data.name}" globally.`))):process.emitWarning(colors_default.yellow(`Ignoring: Command "${command.data.name}" is globally marked as deleted.`));continue}if(targetCommand&&areSlashCommandsDifferent(targetCommand,command.data)){await targetCommand.edit(command.data).catch(error=>{throw new Error(colors_default.red(`Failed to edit command "${command.data.name}" globally.
|
|
5
|
+
`),error)}),console.log(colors_default.green(`Edited command "${command.data.name}" globally.`));continue}targetCommand||(await appCommandsManager.create(command.data).catch(error=>{throw new Error(colors_default.red(`Failed to register command "${command.data.name}" globally.
|
|
6
|
+
`),error)}),console.log(colors_default.green(`Registered command "${command.data.name}" globally.`)))}}__name(registerGlobalCommands,"registerGlobalCommands");async function registerDevCommands(client,commands,guildIds){var _a;let devGuilds=[];for(let guildId of guildIds){let guild=client.guilds.cache.get(guildId)||await client.guilds.fetch(guildId);if(!guild){process.emitWarning(colors_default.yellow(`Ignoring: Guild ${guildId} doesn't exist or client isn't part of the guild.`));continue}devGuilds.push(guild)}let guildCommandsManagers=[];for(let guild of devGuilds){let guildCommandsManager=guild.commands;await guildCommandsManager.fetch(),guildCommandsManagers.push(guildCommandsManager)}for(let command of commands)for(let guildCommands of guildCommandsManagers){let targetCommand=guildCommands.cache.find(cmd=>cmd.name===command.data.name);if((_a=command.options)!=null&&_a.deleted){targetCommand?(await targetCommand.delete().catch(error=>{throw new Error(colors_default.red(`Failed to delete command "${command.data.name}" in ${guildCommands.guild.name}.`),error)}),console.log(colors_default.green(`Deleted command "${command.data.name}" in ${guildCommands.guild.name}.`))):process.emitWarning(colors_default.yellow(`Ignoring: Command "${command.data.name}" is marked as deleted in ${guildCommands.guild.name}.`));continue}if(targetCommand&&areSlashCommandsDifferent(targetCommand,command.data)){await targetCommand.edit(command.data).catch(error=>{throw new Error(colors_default.red(`Failed to edit command "${command.data.name}" in ${guildCommands.guild.name}.
|
|
7
|
+
`),error)}),console.log(colors_default.green(`Edited command "${command.data.name}" in ${guildCommands.guild.name}.`));continue}targetCommand||(await guildCommands.create(command.data).catch(error=>{throw new Error(colors_default.red(`Failed to register command "${command.data.name}" in ${guildCommands.guild.name}.
|
|
8
|
+
`),error)}),console.log(colors_default.green(`Registered command "${command.data.name}" in ${guildCommands.guild.name}.`)))}}__name(registerDevCommands,"registerDevCommands");function devOnly_default({interaction,targetCommand,handlerData}){var _a,_b;if(!interaction.isAutocomplete()&&(_a=targetCommand.options)!=null&&_a.devOnly){if(interaction.inGuild()&&!handlerData.devGuildIds.includes(interaction.guildId))return interaction.reply({content:"\u274C This command can only be used inside development servers.",ephemeral:!0}),!0;let guildMember=(_b=interaction.guild)==null?void 0:_b.members.cache.get(interaction.user.id),memberRoles=guildMember==null?void 0:guildMember.roles.cache,hasDevRole=!1;if(memberRoles==null||memberRoles.forEach(role=>{handlerData.devRoleIds.includes(role.id)&&(hasDevRole=!0)}),!(handlerData.devUserIds.includes(interaction.user.id)||hasDevRole))return interaction.reply({content:"\u274C This command can only be used by developers.",ephemeral:!0}),!0}}__name(devOnly_default,"default");var import_discord=require("discord.js");function permissions_default({interaction,targetCommand}){var _a,_b,_c,_d;if(interaction.isAutocomplete())return;let userPermissions=interaction.memberPermissions,userPermissionsRequired=(_a=targetCommand.options)==null?void 0:_a.userPermissions,missingUserPermissions=[];typeof userPermissionsRequired=="string"&&(userPermissionsRequired=[userPermissionsRequired]);let botPermissions=(_c=(_b=interaction.guild)==null?void 0:_b.members.me)==null?void 0:_c.permissions,botPermissionsRequired=(_d=targetCommand.options)==null?void 0:_d.botPermissions,missingBotPermissions=[];if(typeof botPermissionsRequired=="string"&&(botPermissionsRequired=[botPermissionsRequired]),!(userPermissionsRequired!=null&&userPermissionsRequired.length)&&!(botPermissionsRequired!=null&&botPermissionsRequired.length))return;if(userPermissions&&userPermissionsRequired)for(let permission of userPermissionsRequired)userPermissions.has(permission)||missingUserPermissions.push(permission);if(botPermissions&&botPermissionsRequired)for(let permission of botPermissionsRequired)botPermissions.has(permission)||missingBotPermissions.push(permission);if(!missingUserPermissions.length&&!missingBotPermissions.length)return;let pattern=/([a-z])([A-Z])|([A-Z]+)([A-Z][a-z])/g;missingUserPermissions=missingUserPermissions.map(str=>str.replace(pattern,"$1$3 $2$4")),missingBotPermissions=missingBotPermissions.map(str=>str.replace(pattern,"$1$3 $2$4"));let embedDescription="",formatter=new Intl.ListFormat("en",{style:"long",type:"conjunction"}),getPermissionWord=__name(permissions=>permissions.length===1?"permission":"permissions","getPermissionWord");if(missingUserPermissions.length){let formattedPermissions=missingUserPermissions.map(p=>`\`${p}\``),permissionsString=formatter.format(formattedPermissions);embedDescription+=`- You must have the ${permissionsString} ${getPermissionWord(missingUserPermissions)} to be able to run this command.
|
|
9
|
+
`}if(missingBotPermissions.length){let formattedPermissions=missingBotPermissions.map(p=>`\`${p}\``),permissionsString=formatter.format(formattedPermissions);embedDescription+=`- I must have the ${permissionsString} ${getPermissionWord(missingBotPermissions)} to be able to execute this command.
|
|
10
|
+
`}let embed=new import_discord.EmbedBuilder().setTitle(":x: Missing permissions!").setDescription(embedDescription).setColor("Red");return interaction.reply({embeds:[embed],ephemeral:!0}),!0}__name(permissions_default,"default");var validations_default=[devOnly_default,permissions_default];var import_node_crypto=require("crypto");var _data,_CommandKitEnvironment=class _CommandKitEnvironment{constructor(commandkit){this.commandkit=commandkit;__privateAdd(this,_data,{executionError:null,type:null,variables:new Map,deferredFunctions:new Map,marker:"",markStart:0,markEnd:0})}getExecutionError(){return __privateGet(this,_data).executionError}setExecutionError(error){if(__privateGet(this,_data).executionError)throw new Error("Execution error already set.");__privateGet(this,_data).executionError=error}getType(){let type=__privateGet(this,_data).type;if(!type)throw new Error("Environment type not set.");return type}setType(type){__privateGet(this,_data).type=type}get variables(){return __privateGet(this,_data).variables}registerDeferredFunction(fn){let id=(0,import_node_crypto.randomUUID)();return __privateGet(this,_data).deferredFunctions.set(id,fn),id}clearDeferredFunction(id){__privateGet(this,_data).deferredFunctions.delete(id)}async runDeferredFunctions(){for(let[id,fn]of __privateGet(this,_data).deferredFunctions)try{await fn(this)}catch(e){this.commandkit.emit("unhandledDeferredFunctionRejection",e)}finally{this.clearDeferredFunction(id)}}clearAllDeferredFunctions(){__privateGet(this,_data).deferredFunctions.clear()}markStart(marker){__privateGet(this,_data).marker=marker,__privateGet(this,_data).markStart=performance.now()}markEnd(){__privateGet(this,_data).markEnd||(__privateGet(this,_data).markEnd=performance.now())}getMarker(){return __privateGet(this,_data).marker}getExecutionTime(){return Math.abs(__privateGet(this,_data).markEnd-__privateGet(this,_data).markStart)}};_data=new WeakMap,__name(_CommandKitEnvironment,"CommandKitEnvironment");var CommandKitEnvironment=_CommandKitEnvironment;function after(fn){let env=getContext();if(!env)throw new Error("after must be called inside commandkit handler.");return env.registerDeferredFunction(fn)}__name(after,"after");var _data2,_CommandHandler_instances,buildCommands_fn,buildBuiltInValidations_fn,commandFinalizer_fn,interactionHandler_fn,_CommandHandler=class _CommandHandler{constructor({...options}){__privateAdd(this,_CommandHandler_instances);__privateAdd(this,_data2);__privateSet(this,_data2,{...options,builtInValidations:[],commands:[]})}async init(){await __privateMethod(this,_CommandHandler_instances,buildCommands_fn).call(this),__privateMethod(this,_CommandHandler_instances,buildBuiltInValidations_fn).call(this);let devOnlyCommands=__privateGet(this,_data2).commands.filter(cmd=>{var _a;return(_a=cmd.options)==null?void 0:_a.devOnly});devOnlyCommands.length&&!__privateGet(this,_data2).devGuildIds.length&&process.emitWarning(colors_default.yellow('You have commands marked as "devOnly", but "devGuildIds" have not been set.')),devOnlyCommands.length&&!__privateGet(this,_data2).devUserIds.length&&!__privateGet(this,_data2).devRoleIds.length&&process.emitWarning(colors_default.yellow('You have commands marked as "devOnly", but "devUserIds" or "devRoleIds" have not been set.')),__privateGet(this,_data2).bulkRegister?await loadCommandsWithRest({client:__privateGet(this,_data2).client,devGuildIds:__privateGet(this,_data2).devGuildIds,commands:__privateGet(this,_data2).commands}):await registerCommands({client:__privateGet(this,_data2).client,devGuildIds:__privateGet(this,_data2).devGuildIds,commands:__privateGet(this,_data2).commands}),this.handleCommands()}handleCommands(){__privateGet(this,_data2).client.on("interactionCreate",interaction=>{let env=new CommandKitEnvironment(__privateGet(this,_data2).commandkitInstance);return env.setType("COMMAND_HANDLER"),makeContextAwareFunction(env,__privateMethod(this,_CommandHandler_instances,interactionHandler_fn).bind(this),__privateMethod(this,_CommandHandler_instances,commandFinalizer_fn).bind(this))(interaction)})}get commands(){return __privateGet(this,_data2).commands}async reloadCommands(type){if(!__privateGet(this,_data2).commandsPath)throw new Error(colors_default.red('Cannot reload commands as "commandsPath" was not provided when instantiating CommandKit.'));__privateGet(this,_data2).commands=[],await __privateMethod(this,_CommandHandler_instances,buildCommands_fn).call(this),__privateGet(this,_data2).bulkRegister?await loadCommandsWithRest({client:__privateGet(this,_data2).client,devGuildIds:__privateGet(this,_data2).devGuildIds,commands:__privateGet(this,_data2).commands,reloading:!0,type}):await registerCommands({client:__privateGet(this,_data2).client,devGuildIds:__privateGet(this,_data2).devGuildIds,commands:__privateGet(this,_data2).commands,reloading:!0,type})}};_data2=new WeakMap,_CommandHandler_instances=new WeakSet,buildCommands_fn=__name(async function(){var _a;let allowedExtensions=/\.(js|mjs|cjs|ts)$/i,commandFilePaths=(await getFilePaths(__privateGet(this,_data2).commandsPath,!0)).filter(path3=>allowedExtensions.test(path3));for(let commandFilePath of commandFilePaths){let importedObj=await import(`${toFileURL(commandFilePath)}?t=${Date.now()}`),commandObj=clone(importedObj);typeof module<"u"&&typeof require<"u"&&delete require.cache[require.resolve(commandFilePath)];let compactFilePath=commandFilePath.split(process.cwd())[1]||commandFilePath;if(commandObj.default&&(commandObj=commandObj.default),importedObj.default?commandObj.data=importedObj.default.data:commandObj.data=importedObj.data,!commandObj.data){process.emitWarning(colors_default.yellow(`Ignoring: Command file ${compactFilePath} does not export "data".`));continue}if(!commandObj.data.name){process.emitWarning(colors_default.yellow(`Ignoring: Command file ${compactFilePath} does not export "data.name".`));continue}if(!commandObj.run){process.emitWarning(colors_default.yellow(`Ignoring: Command file ${commandObj.data.name} does not export "run".`));continue}if(typeof commandObj.run!="function"){process.emitWarning(colors_default.yellow(`Ignoring: Command file ${commandObj.data.name} does not export "run" as a function.`));continue}commandObj.filePath=commandFilePath;let commandCategory=((_a=commandFilePath.split(__privateGet(this,_data2).commandsPath)[1])==null?void 0:_a.replace(/\\\\|\\/g,"/").split("/")[1])||null;commandCategory&&allowedExtensions.test(commandCategory)?commandObj.category=null:commandObj.category=commandCategory,__privateGet(this,_data2).commands.push(commandObj)}},"#buildCommands"),buildBuiltInValidations_fn=__name(function(){for(let builtInValidationFunction of validations_default)__privateGet(this,_data2).builtInValidations.push(builtInValidationFunction)},"#buildBuiltInValidations"),commandFinalizer_fn=__name(async function(){let env=useEnvironment();await env.runDeferredFunctions(),env.clearAllDeferredFunctions()},"#commandFinalizer"),interactionHandler_fn=__name(async function(interaction){if(!interaction.isChatInputCommand()&&!interaction.isContextMenuCommand()&&!interaction.isAutocomplete())return;let isAutocomplete=interaction.isAutocomplete(),targetCommand=__privateGet(this,_data2).commands.find(cmd=>cmd.data.name===interaction.commandName);if(!targetCommand)return;let env=useEnvironment();env.variables.set("interaction",interaction);let{data,options,run,autocomplete,...rest}=targetCommand;return isAutocomplete&&!autocomplete?void 0:__name(async()=>{let commandObj={data:targetCommand.data,options:targetCommand.options,...rest};if(__privateGet(this,_data2).validationHandler){let canRun2=!0;for(let validationFunction of __privateGet(this,_data2).validationHandler.validations)if(await validationFunction({interaction,commandObj,client:__privateGet(this,_data2).client,handler:__privateGet(this,_data2).commandkitInstance})){canRun2=!1;break}if(!canRun2)return}let canRun=!0;if(!__privateGet(this,_data2).skipBuiltInValidations){for(let validation of __privateGet(this,_data2).builtInValidations)if(validation({targetCommand,interaction,handlerData:__privateGet(this,_data2)})){canRun=!1;break}}if(!canRun)return;let command=targetCommand[isAutocomplete?"autocomplete":"run"],context2={interaction,client:__privateGet(this,_data2).client,handler:__privateGet(this,_data2).commandkitInstance};if(!__privateGet(this,_data2).commandkitInstance.isDebuggingCommands())return command(context2);after(env2=>{let error=env2.getExecutionError(),marker=env2.getMarker(),time=`${env2.getExecutionTime().toFixed(2)}ms`;if(error){console.error(colors_default.red(`[${marker} - ${time}] Error executing command: ${error.stack||error}`));return}console.log(colors_default.green(`[${marker} - ${time}] Command executed successfully`))});try{return env.markStart(interaction.commandName),await command(context2)}finally{env.markEnd()}},"executor")()},"#interactionHandler"),__name(_CommandHandler,"CommandHandler");var CommandHandler=_CommandHandler;var _data3,_EventHandler_instances,buildEvents_fn,registerEvents_fn,_EventHandler=class _EventHandler{constructor({...options}){__privateAdd(this,_EventHandler_instances);__privateAdd(this,_data3);__privateSet(this,_data3,{...options,events:[]})}async init(){await __privateMethod(this,_EventHandler_instances,buildEvents_fn).call(this),__privateMethod(this,_EventHandler_instances,registerEvents_fn).call(this)}get events(){return __privateGet(this,_data3).events}async reloadEvents(commandHandler){if(!__privateGet(this,_data3).eventsPath)throw new Error(colors_default.red('Cannot reload events as "eventsPath" was not provided when instantiating CommandKit.'));__privateGet(this,_data3).events=[],await __privateMethod(this,_EventHandler_instances,buildEvents_fn).call(this),__privateGet(this,_data3).client.removeAllListeners(),__privateMethod(this,_EventHandler_instances,registerEvents_fn).call(this),commandHandler==null||commandHandler.handleCommands()}};_data3=new WeakMap,_EventHandler_instances=new WeakSet,buildEvents_fn=__name(async function(){let eventFolderPaths=await getFolderPaths(__privateGet(this,_data3).eventsPath);for(let eventFolderPath of eventFolderPaths){let eventName=eventFolderPath.replace(/\\\\|\\/g,"/").split("/").pop(),allowedExtensions=/\.(js|mjs|cjs|ts)$/i,eventFilePaths=(await getFilePaths(eventFolderPath,!0)).filter(path3=>allowedExtensions.test(path3)),eventObj={name:eventName,functions:[]};__privateGet(this,_data3).events.push(eventObj);for(let eventFilePath of eventFilePaths){let importedFunction=(await import(`${toFileURL(eventFilePath)}?t=${Date.now()}`)).default,eventFunction=clone(importedFunction);typeof module<"u"&&typeof require<"u"&&delete require.cache[require.resolve(eventFilePath)],eventFunction!=null&&eventFunction.default&&(eventFunction=eventFunction.default);let compactFilePath=eventFilePath.split(process.cwd())[1]||eventFilePath;if(typeof eventFunction!="function"){process.emitWarning(colors_default.yellow(`Ignoring: Event file ${compactFilePath} does not export a function.`));continue}eventObj.functions.push(eventFunction)}}},"#buildEvents"),registerEvents_fn=__name(function(){let client=__privateGet(this,_data3).client,handler=__privateGet(this,_data3).commandKitInstance;for(let eventObj of __privateGet(this,_data3).events)client.on(eventObj.name,async(...params)=>{for(let eventFunction of eventObj.functions)if(await eventFunction(...params,client,handler))break})},"#registerEvents"),__name(_EventHandler,"EventHandler");var EventHandler=_EventHandler;var _data4,_ValidationHandler_instances,buildValidations_fn,_ValidationHandler=class _ValidationHandler{constructor({...options}){__privateAdd(this,_ValidationHandler_instances);__privateAdd(this,_data4);__privateSet(this,_data4,{...options,validations:[]})}async init(){__privateGet(this,_data4).validations=await __privateMethod(this,_ValidationHandler_instances,buildValidations_fn).call(this)}get validations(){return __privateGet(this,_data4).validations}async reloadValidations(){if(!__privateGet(this,_data4).validationsPath)throw new Error(colors_default.red('Cannot reload validations as "validationsPath" was not provided when instantiating CommandKit.'));let newValidations=await __privateMethod(this,_ValidationHandler_instances,buildValidations_fn).call(this);__privateGet(this,_data4).validations=newValidations}};_data4=new WeakMap,_ValidationHandler_instances=new WeakSet,buildValidations_fn=__name(async function(){let allowedExtensions=/\.(js|mjs|cjs|ts)$/i,validationFilePaths=(await getFilePaths(__privateGet(this,_data4).validationsPath,!0)).filter(path3=>allowedExtensions.test(path3)),validationFunctions=[];for(let validationFilePath of validationFilePaths){let importedFunction=(await import(`${toFileURL(validationFilePath)}?t=${Date.now()}`)).default,validationFunction=clone(importedFunction);typeof module<"u"&&typeof require<"u"&&delete require.cache[require.resolve(validationFilePath)],validationFunction!=null&&validationFunction.default&&(validationFunction=validationFunction.default);let compactFilePath=validationFilePath.split(process.cwd())[1]||validationFilePath;if(typeof validationFunction!="function"){process.emitWarning(colors_default.yellow(`Ignoring: Validation file ${compactFilePath} does not export a function.`));continue}validationFunctions.push(validationFunction)}return validationFunctions},"#buildValidations"),__name(_ValidationHandler,"ValidationHandler");var ValidationHandler=_ValidationHandler;var _CacheProvider=class _CacheProvider{};__name(_CacheProvider,"CacheProvider");var CacheProvider=_CacheProvider;var _cache,_MemoryCache=class _MemoryCache extends CacheProvider{constructor(){super(...arguments);__privateAdd(this,_cache,new Map)}async get(key){let entry=__privateGet(this,_cache).get(key);if(entry){if(entry.ttl&&Date.now()>entry.ttl){__privateGet(this,_cache).delete(key);return}return entry}}async set(key,value,ttl){let entry={value,ttl:ttl!=null?Date.now()+ttl:void 0};__privateGet(this,_cache).set(key,entry)}async exists(key){return __privateGet(this,_cache).has(key)}async delete(key){__privateGet(this,_cache).delete(key)}async clear(){__privateGet(this,_cache).clear()}async expire(key,ttl){let entry=__privateGet(this,_cache).get(key);if(!entry)return;let _ttl=Date.now()+ttl;if(_ttl<Date.now()){__privateGet(this,_cache).delete(key);return}entry.ttl=_ttl}};_cache=new WeakMap,__name(_MemoryCache,"MemoryCache");var MemoryCache=_MemoryCache;var import_discord2=require("discord.js");var WARNED_KEYS=new Set;function emitWarning(message,code="CommandKitWarning"){process.emitWarning(message,{code})}__name(emitWarning,"emitWarning");function warnUnstable(name){WARNED_KEYS.has(name)||(WARNED_KEYS.add(name),emitWarning(`${name} is unstable and may change in future versions.`,"CommandKitUnstableWarning"))}__name(warnUnstable,"warnUnstable");function Fragment(props){return warnUnstable("CommandKit JSX"),Array.isArray(props.children)?props.children.flat():props.children}__name(Fragment,"Fragment");function createElement(type,props,...children){return warnUnstable("CommandKit JSX"),type({...props,children})}__name(createElement,"createElement");var _EventInterceptor_instances,cleanupLoop_fn,_EventInterceptor=class _EventInterceptor{constructor(client){this.client=client;__privateAdd(this,_EventInterceptor_instances);__publicField(this,"subscribers",new Map);__publicField(this,"globalHandlers",new Map);__publicField(this,"cleanupTimer",null);__privateMethod(this,_EventInterceptor_instances,cleanupLoop_fn).call(this)}destroy(){this.cleanupTimer&&(clearInterval(this.cleanupTimer),this.cleanupTimer=null);for(let[event,handlers]of this.subscribers)for(let handler of handlers)this.unsubscribe(event,handler,"destroy");this.subscribers.clear(),this.globalHandlers.clear()}hasSubscribers(event){return this.subscribers.has(event)}getSubscriberCount(event){let handlers=this.subscribers.get(event);return(handlers==null?void 0:handlers.size)??0}hasGlobalHandlers(){return this.globalHandlers.size>0}getGlobalHandlersCount(){return this.subscribers.size}subscribe(event,listener,options){return this.subscribers.has(event)||(this.subscribers.set(event,new Set),this.client.on(event,this.createGlobalHandler(event)),this.client.setMaxListeners(this.client.getMaxListeners()+1)),options??={},options.registeredAt=Date.now(),Reflect.set(listener,"options",options),this.subscribers.get(event).add(listener),()=>{this.unsubscribe(event,listener)}}unsubscribe(event,listener,reason){var _a,_b;let handlers=this.subscribers.get(event);handlers&&(handlers.delete(listener),handlers.size<1&&(this.subscribers.delete(event),this.client.removeListener(event,this.globalHandlers.get(event)),this.globalHandlers.delete(event),this.client.setMaxListeners(Math.max(this.client.getMaxListeners()-1,0))),(_b=(_a=Reflect.get(listener,"options")).onEnd)==null||_b.call(_a,reason??"unsubscribe"))}createGlobalHandler(event){if(this.globalHandlers.has(event))return this.globalHandlers.get(event);let handler=__name(async(...args)=>{let subscribers=this.subscribers.get(event);if(subscribers&&subscribers.size>0)for(let subscriber of subscribers){let options=Reflect.get(subscriber,"options");if(options.time&&Date.now()-options.registeredAt>options.time){this.unsubscribe(event,subscriber,"time");continue}options.autoReset&&(options.registeredAt=Date.now()),!(options.filter&&!await options.filter(...args))&&await subscriber(...args)}},"handler");return this.globalHandlers.set(event,handler),handler}};_EventInterceptor_instances=new WeakSet,cleanupLoop_fn=__name(function(){this.cleanupTimer&&clearInterval(this.cleanupTimer),this.cleanupTimer=setInterval(()=>{for(let[event,handlers]of this.subscribers)for(let handler of handlers){let options=Reflect.get(handler,"options");options.time&&Date.now()-options.registeredAt>options.time&&this.unsubscribe(event,handler,"time")}},6e4).unref()},"#cleanupLoop"),__name(_EventInterceptor,"EventInterceptor");var EventInterceptor=_EventInterceptor;var _data5,_CommandKit_instances,init_fn,_CommandKit=class _CommandKit extends import_node_events.default{constructor(options){if(_CommandKit.instance&&process.emitWarning("CommandKit instance already exists. Having multiple instance in same project is discouraged and it may lead to unexpected behavior.",{code:"MultiInstanceWarning"}),!options.client)throw new Error(colors_default.red('"client" is required when instantiating CommandKit.'));if(options.validationsPath&&!options.commandsPath)throw new Error(colors_default.red('"commandsPath" is required when "validationsPath" is set.'));super();__privateAdd(this,_CommandKit_instances);__privateAdd(this,_data5);__publicField(this,"eventInterceptor");options.debugCommands??=process.env.NODE_ENV!=="production",options.cacheProvider!==null&&(!options.cacheProvider||!(options.cacheProvider instanceof CacheProvider))&&(options.cacheProvider=new MemoryCache),this.eventInterceptor=new EventInterceptor(options.client),__privateSet(this,_data5,options),__privateMethod(this,_CommandKit_instances,init_fn).call(this).then(()=>{this.incrementClientListenersCount()}),_CommandKit.instance||(_CommandKit.instance=this)}getCacheProvider(){return __privateGet(this,_data5).cacheProvider??null}isDebuggingCommands(){return __privateGet(this,_data5).debugCommands||!1}get client(){return __privateGet(this,_data5).client}get commandHandler(){return __privateGet(this,_data5).commandHandler}async reloadCommands(type){__privateGet(this,_data5).commandHandler&&await __privateGet(this,_data5).commandHandler.reloadCommands(type)}async reloadEvents(){__privateGet(this,_data5).eventHandler&&await __privateGet(this,_data5).eventHandler.reloadEvents(__privateGet(this,_data5).commandHandler)}async reloadValidations(){__privateGet(this,_data5).validationHandler&&await __privateGet(this,_data5).validationHandler.reloadValidations()}get commands(){return __privateGet(this,_data5).commandHandler?__privateGet(this,_data5).commandHandler.commands.map(cmd=>{let{run,autocomplete,...command}=cmd;return command}):[]}get commandsPath(){return __privateGet(this,_data5).commandsPath}get eventsPath(){return __privateGet(this,_data5).eventsPath}get validationsPath(){return __privateGet(this,_data5).validationsPath}get devUserIds(){return __privateGet(this,_data5).devUserIds||[]}get devGuildIds(){return __privateGet(this,_data5).devGuildIds||[]}get devRoleIds(){return __privateGet(this,_data5).devRoleIds||[]}incrementClientListenersCount(){__privateGet(this,_data5).client.setMaxListeners(__privateGet(this,_data5).client.getMaxListeners()+1)}decrementClientListenersCount(){__privateGet(this,_data5).client.setMaxListeners(__privateGet(this,_data5).client.getMaxListeners()-1)}};_data5=new WeakMap,_CommandKit_instances=new WeakSet,init_fn=__name(async function(){if(__privateGet(this,_data5).eventsPath){let eventHandler=new EventHandler({client:__privateGet(this,_data5).client,eventsPath:__privateGet(this,_data5).eventsPath,commandKitInstance:this});await eventHandler.init(),__privateGet(this,_data5).eventHandler=eventHandler}if(__privateGet(this,_data5).validationsPath){let validationHandler=new ValidationHandler({validationsPath:__privateGet(this,_data5).validationsPath});await validationHandler.init(),__privateGet(this,_data5).validationHandler=validationHandler}if(__privateGet(this,_data5).commandsPath){let commandHandler=new CommandHandler({client:__privateGet(this,_data5).client,commandsPath:__privateGet(this,_data5).commandsPath,devGuildIds:__privateGet(this,_data5).devGuildIds||[],devUserIds:__privateGet(this,_data5).devUserIds||[],devRoleIds:__privateGet(this,_data5).devRoleIds||[],validationHandler:__privateGet(this,_data5).validationHandler,skipBuiltInValidations:__privateGet(this,_data5).skipBuiltInValidations||!1,commandkitInstance:this,bulkRegister:__privateGet(this,_data5).bulkRegister||!1});await commandHandler.init(),__privateGet(this,_data5).commandHandler=commandHandler}},"#init"),__name(_CommandKit,"CommandKit"),__publicField(_CommandKit,"createElement",createElement),__publicField(_CommandKit,"Fragment",Fragment),__publicField(_CommandKit,"instance");var CommandKit=_CommandKit;var context=new import_node_async_hooks.AsyncLocalStorage;function exitContext(fn){return context.exit(fn)}__name(exitContext,"exitContext");function makeContextAwareFunction(env,fn,finalizer){return __name((...args)=>context.run(env,async()=>{try{return await fn(...args)}catch(e){if(isCommandKitError(e)){let code=Reflect.get(e,"code"),interaction=env.variables.get("interaction");if(!interaction)return;switch(code){case CommandKitErrorCodes.GuildOnlyException:{interaction.isRepliable()&&await interaction.reply({content:"This command is only available in guilds.",ephemeral:!0});return}case CommandKitErrorCodes.DMOnlyException:{interaction.isRepliable()&&await interaction.reply({content:"This command is only available in DMs.",ephemeral:!0});return}}return}env.setExecutionError(e)}finally{if(typeof finalizer=="function")try{await finalizer(...args)}catch{}}}),"_fn")}__name(makeContextAwareFunction,"makeContextAwareFunction");function getCommandKit(strict=!1){var _a;let kit=((_a=context.getStore())==null?void 0:_a.commandkit)??CommandKit.instance;if(!kit&&strict)throw new Error("CommandKit instance not found.");return kit}__name(getCommandKit,"getCommandKit");function getContext(){return context.getStore()}__name(getContext,"getContext");function useEnvironment(){let ctx=context.getStore();if(!ctx)throw new Error("No commandkit environment found. Please make sure you are inside commandkit handler.");return ctx}__name(useEnvironment,"useEnvironment");var _onClickHandler,_contextData,_unsub,_ButtonKit_instances,getEventInterceptor_fn,setupInteractionCollector_fn,destroyCollector_fn,_ButtonKit=class _ButtonKit extends import_discord3.ButtonBuilder{constructor(){super(...arguments);__privateAdd(this,_ButtonKit_instances);__privateAdd(this,_onClickHandler,null);__privateAdd(this,_contextData,{autoReset:!0,time:5*60*1e3});__privateAdd(this,_unsub,null)}onClick(handler,data){var _a,_b,_c,_d;if(this.data.style===import_discord3.ButtonStyle.Link)throw new TypeError('Cannot setup "onClick" handler on link buttons.');if(!handler)throw new TypeError('Cannot setup "onClick" without a handler function parameter.');return __privateGet(this,_onClickHandler)&&__privateMethod(this,_ButtonKit_instances,destroyCollector_fn).call(this),__privateSet(this,_onClickHandler,handler),data&&__privateSet(this,_contextData,{autoReset:data.autoReset??((_a=__privateGet(this,_contextData))==null?void 0:_a.autoReset)??!0,time:data.time??((_b=__privateGet(this,_contextData))==null?void 0:_b.time)??5*60*1e3,filter:data.filter??((_c=__privateGet(this,_contextData))==null?void 0:_c.filter),onEnd:data.onEnd??((_d=__privateGet(this,_contextData))==null?void 0:_d.onEnd)}),__privateMethod(this,_ButtonKit_instances,setupInteractionCollector_fn).call(this),this}onEnd(handler){if(this.data.style===import_discord3.ButtonStyle.Link)throw new TypeError('Cannot setup "onEnd" handler on link buttons.');if(!handler)throw new TypeError('Cannot setup "onEnd" without a handler function parameter.');return __privateGet(this,_contextData)??__privateSet(this,_contextData,{}),__privateGet(this,_contextData).onEnd=handler,this}filter(predicate){return __privateGet(this,_contextData)??__privateSet(this,_contextData,{autoReset:!0,time:5*60*1e3}),__privateGet(this,_contextData).filter=predicate,this}dispose(){return __privateMethod(this,_ButtonKit_instances,destroyCollector_fn).call(this),this}};_onClickHandler=new WeakMap,_contextData=new WeakMap,_unsub=new WeakMap,_ButtonKit_instances=new WeakSet,getEventInterceptor_fn=__name(function(){let ctx=getContext();return ctx?exitContext(()=>ctx.commandkit.eventInterceptor):getCommandKit(!0).eventInterceptor},"#getEventInterceptor"),setupInteractionCollector_fn=__name(function(){if(this.data.style===import_discord3.ButtonStyle.Link||!__privateGet(this,_contextData)||!__privateGet(this,_onClickHandler))return;if(("custom_id"in this.data?this.data.custom_id:"customId"in this.data?this.data.customId:null)===null)throw new TypeError('Cannot setup "onClick" handler on a button without a custom id.');let interceptor=__privateMethod(this,_ButtonKit_instances,getEventInterceptor_fn).call(this);__privateSet(this,_unsub,interceptor.subscribe(import_discord3.Events.InteractionCreate,async interaction=>{var _a,_b;if(!interaction.isButton())return;let myCustomId2="custom_id"in this.data?this.data.custom_id:"customId"in this.data?this.data.customId:null,interactionCustomId=interaction.customId;if(myCustomId2&&interactionCustomId!==myCustomId2)return;let filter=(_a=__privateGet(this,_contextData))==null?void 0:_a.filter;if(filter&&!await filter(interaction))return;let handler=__privateGet(this,_onClickHandler);return handler?handler(interaction):(_b=__privateGet(this,_unsub))==null?void 0:_b.call(this)},__privateGet(this,_contextData)))},"#setupInteractionCollector"),destroyCollector_fn=__name(function(){var _a;(_a=__privateGet(this,_unsub))==null||_a.call(this),__privateSet(this,_unsub,null),__privateSet(this,_contextData,null),__privateSet(this,_onClickHandler,null)},"#destroyCollector"),__name(_ButtonKit,"ButtonKit");var ButtonKit=_ButtonKit;function Button(props){let button=new ButtonKit;props.style??=import_discord4.ButtonStyle.Primary,props.onClick&&(props.customId??=crypto.randomUUID()),props.customId&&button.setCustomId(props.customId),props.disabled&&button.setDisabled(props.disabled),props.emoji&&button.setEmoji(props.emoji),props.skuId&&button.setSKUId(props.skuId),props.url&&button.setURL(props.url),props.style&&button.setStyle(props.style);let label=props.label||props.children;return label&&button.setLabel(Array.isArray(label)?label.join(" "):typeof label=="string"?label:String(label)),props.onClick&&button.onClick(props.onClick,props.options),props.onEnd&&button.onEnd(props.onEnd),button}__name(Button,"Button");0&&(module.exports={Button});
|
|
11
|
+
//# sourceMappingURL=Button.js.map
|