commandkit 1.2.1-dev.20260919165908 → 1.2.1-dev.20261013130331
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/analytics/analytics-engine.d.ts +1 -1
- package/dist/analytics/analytics-engine.js +1 -1
- package/dist/analytics/analytics-provider.d.ts +1 -1
- package/dist/analytics/analytics-provider.js +1 -1
- package/dist/analytics/constants.js.map +1 -1
- package/dist/analytics/utils.js +1 -1
- package/dist/{analytics-engine-Bz1p7ud3.d.ts → analytics-engine-uY6FDAEv.d.ts} +8 -2
- package/dist/app/commands/AppCommandRunner.d.ts +1 -1
- package/dist/app/commands/AppCommandRunner.js +1 -1
- package/dist/app/commands/Context.d.ts +1 -1
- package/dist/app/commands/Context.js +1 -1
- package/dist/app/commands/MessageCommandParser.js +1 -1
- package/dist/app/commands/MessageCommandParser.js.map +1 -1
- package/dist/app/commands/helpers.js.map +1 -1
- package/dist/app/events/EventWorkerContext.d.ts +1 -1
- package/dist/app/events/EventWorkerContext.js.map +1 -1
- package/dist/app/handlers/AppCommandHandler.d.ts +1 -1
- package/dist/app/handlers/AppCommandHandler.js +1 -1
- package/dist/app/handlers/AppEventsHandler.d.ts +1 -1
- package/dist/app/handlers/AppEventsHandler.js +1 -1
- package/dist/app/index.d.ts +1 -1
- package/dist/app/index.js +4 -4
- package/dist/app/interrupt/signals.js +2 -2
- package/dist/app/interrupt/signals.js.map +1 -1
- package/dist/app/middlewares/permissions.d.ts +1 -1
- package/dist/app/middlewares/permissions.js +1 -1
- package/dist/app/register/CommandRegistrar.d.ts +1 -1
- package/dist/app/register/CommandRegistrar.js +1 -1
- package/dist/app/router/CommandTree.js +1 -1
- package/dist/app/router/CommandsRouter.js +3 -1
- package/dist/app/router/CommandsRouter.js.map +1 -1
- package/dist/app/router/EventsRouter.js +3 -1
- package/dist/app/router/EventsRouter.js.map +1 -1
- package/dist/app/router/TreeArtifact.js.map +1 -1
- package/dist/app/router/index.js +3 -3
- package/dist/cli/app-process.d.ts +1 -1
- package/dist/cli/app-process.js +2 -2
- package/dist/cli/app-process.js.map +1 -1
- package/dist/cli/build.d.ts +1 -1
- package/dist/cli/build.js +25 -22
- package/dist/cli/build.js.map +1 -1
- package/dist/cli/common.d.ts +1 -1
- package/dist/cli/common.js +4 -4
- package/dist/cli/common.js.map +1 -1
- package/dist/cli/development.js +7 -8
- package/dist/cli/development.js.map +1 -1
- package/dist/cli/env.js +0 -1
- package/dist/cli/env.js.map +1 -1
- package/dist/cli/generators.js +3 -3
- package/dist/cli/generators.js.map +1 -1
- package/dist/cli/information.js +3 -3
- package/dist/cli/information.js.map +1 -1
- package/dist/cli/init.js +12 -10
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/production.js +7 -7
- package/dist/cli/production.js.map +1 -1
- package/dist/cli/type-checker.js +2 -2
- package/dist/cli/type-checker.js.map +1 -1
- package/dist/cli/utils.js +0 -1
- package/dist/cli/utils.js.map +1 -1
- package/dist/{commandkit-DoxpAUsW.js → commandkit-CzNV2oE8.js} +244 -196
- package/dist/commandkit-CzNV2oE8.js.map +1 -0
- package/dist/commandkit.d.ts +1 -1
- package/dist/commandkit.js +1 -1
- package/dist/components/common/EventInterceptor.js +0 -1
- package/dist/components/common/EventInterceptor.js.map +1 -1
- package/dist/components/common/element.js +1 -1
- package/dist/components/common/types.js +1 -1
- package/dist/components/display/common.js +1 -1
- package/dist/components/display/container.js +1 -1
- package/dist/components/display/file.js.map +1 -1
- package/dist/components/display/index.js +5 -5
- package/dist/components/display/label.js +1 -1
- package/dist/components/display/media-gallery.js +1 -1
- package/dist/components/display/poll.js.map +1 -1
- package/dist/components/display/section.js +1 -1
- package/dist/components/display/separator.js.map +1 -1
- package/dist/components/display/text-display.js +4 -2
- package/dist/components/display/text-display.js.map +1 -1
- package/dist/components/index.js +6 -6
- package/dist/components/interactive/action-row/ActionRow.js.map +1 -1
- package/dist/components/interactive/button/Button.js +1 -1
- package/dist/components/interactive/button/ButtonKit.js +1 -1
- package/dist/components/interactive/checkbox/checkbox.js +1 -1
- package/dist/components/interactive/modal/Modal.js +1 -1
- package/dist/components/interactive/modal/ModalKit.js +1 -1
- package/dist/components/interactive/radio/radio.js +1 -1
- package/dist/components/interactive/select-menu/ChannelSelectMenuKit.js +1 -1
- package/dist/components/interactive/select-menu/MentionableSelectMenuKit.js +1 -1
- package/dist/components/interactive/select-menu/RoleSelectMenuKit.js +1 -1
- package/dist/components/interactive/select-menu/SelectMenu.js +1 -1
- package/dist/components/interactive/select-menu/StringSelectMenuKit.js +1 -1
- package/dist/components/interactive/select-menu/UserSelectMenuKit.js +1 -1
- package/dist/components/interactive/select-menu/common.js +1 -1
- package/dist/config/config.d.ts +1 -1
- package/dist/config/config.js +1 -1
- package/dist/config/default.d.ts +1 -1
- package/dist/config/default.js +1 -1
- package/dist/config/loader.d.ts +1 -1
- package/dist/config/loader.js +1 -1
- package/dist/config/types.d.ts +1 -1
- package/dist/config/types.js +1 -1
- package/dist/config/utils.d.ts +1 -1
- package/dist/config/utils.js +4 -4
- package/dist/config/utils.js.map +1 -1
- package/dist/context/async-context.d.ts +1 -1
- package/dist/context/async-context.js +1 -1
- package/dist/context/environment.d.ts +1 -1
- package/dist/context/environment.js +1 -1
- package/dist/events/CommandKitEventsChannel.d.ts +1 -1
- package/dist/events/CommandKitEventsChannel.js +1 -1
- package/dist/events/CommandKitEventsChannel.js.map +1 -1
- package/dist/flags/FlagProvider.d.ts +1 -1
- package/dist/flags/FlagProvider.js +0 -1
- package/dist/flags/FlagProvider.js.map +1 -1
- package/dist/flags/feature-flags.d.ts +1 -1
- package/dist/flags/feature-flags.js +1 -1
- package/dist/flags/store.d.ts +1 -1
- package/dist/flags/store.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +22 -22
- package/dist/kv/constants.js +0 -1
- package/dist/kv/constants.js.map +1 -1
- package/dist/kv/dotprops.js +0 -1
- package/dist/kv/dotprops.js.map +1 -1
- package/dist/kv/kv.js +6 -4
- package/dist/kv/kv.js.map +1 -1
- package/dist/kv/serde.js +1 -1
- package/dist/kv/serde.js.map +1 -1
- package/dist/logger/DefaultLogger.js +1 -1
- package/dist/logger/ILogger.js +1 -1
- package/dist/logger/Logger.js +1 -1
- package/dist/logger/NoopLogger.js +0 -1
- package/dist/logger/NoopLogger.js.map +1 -1
- package/dist/plugins/CompilerPlugin.d.ts +1 -1
- package/dist/plugins/CompilerPlugin.js +1 -1
- package/dist/plugins/CompilerPlugin.js.map +1 -1
- package/dist/plugins/PluginCommon.d.ts +1 -1
- package/dist/plugins/PluginCommon.js.map +1 -1
- package/dist/plugins/RuntimePlugin.d.ts +1 -1
- package/dist/plugins/RuntimePlugin.js +1 -1
- package/dist/plugins/RuntimePlugin.js.map +1 -1
- package/dist/plugins/index.d.ts +1 -1
- package/dist/plugins/index.js +3 -3
- package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.d.ts +1 -1
- package/dist/plugins/plugin-runtime/CommandKitPluginRuntime.js +1 -1
- package/dist/plugins/plugin-runtime/CompilerPluginRuntime.d.ts +1 -1
- package/dist/plugins/plugin-runtime/CompilerPluginRuntime.js +1 -1
- package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.d.ts +1 -1
- package/dist/plugins/plugin-runtime/builtin/CommonDirectiveTransformer.js +1 -1
- package/dist/plugins/plugin-runtime/builtin/MacroPlugin.d.ts +1 -1
- package/dist/plugins/plugin-runtime/builtin/MacroPlugin.js +1 -1
- package/dist/plugins/plugin-runtime/runtime.d.ts +1 -1
- package/dist/plugins/plugin-runtime/runtime.js +1 -1
- package/dist/plugins/types.d.ts +1 -1
- package/dist/plugins/types.js +1 -1
- package/dist/{rolldown-runtime-C_NdSu1c.js → rolldown-runtime-AN5ru5iW.js} +2 -3
- package/dist/types.d.ts +1 -1
- package/dist/types.js +1 -1
- package/dist/utils/colors.js.map +1 -1
- package/dist/utils/constants.js +0 -1
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/dev-hooks.d.ts +1 -1
- package/dist/utils/dev-hooks.js +1 -1
- package/dist/utils/error-codes.js +0 -1
- package/dist/utils/error-codes.js.map +1 -1
- package/dist/utils/resolve-file-url.js +1 -1
- package/dist/utils/resolve-file-url.js.map +1 -1
- package/dist/utils/types-package.js +3 -2
- package/dist/utils/types-package.js.map +1 -1
- package/dist/utils/useful-stuff/async-queue.js +0 -1
- package/dist/utils/useful-stuff/async-queue.js.map +1 -1
- package/dist/utils/useful-stuff/mutex.js +0 -1
- package/dist/utils/useful-stuff/mutex.js.map +1 -1
- package/dist/utils/useful-stuff/ratelimiter.js +0 -1
- package/dist/utils/useful-stuff/ratelimiter.js.map +1 -1
- package/dist/utils/useful-stuff/semaphore.js +0 -1
- package/dist/utils/useful-stuff/semaphore.js.map +1 -1
- package/dist/utils/utilities.js +1 -1
- package/dist/utils/warning.js +0 -1
- package/dist/utils/warning.js.map +1 -1
- package/dist/version.js +1 -2
- package/dist/version.js.map +1 -1
- package/package.json +18 -16
- package/dist/commandkit-DoxpAUsW.js.map +0 -1
package/dist/cli/build.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_commandkit = require(
|
|
3
|
-
const require_utils_constants = require(
|
|
4
|
-
const require_config_utils = require(
|
|
5
|
-
const require_app_router_CommandsRouter = require(
|
|
6
|
-
const require_app_router_EventsRouter = require(
|
|
7
|
-
const require_app_router_TreeArtifact = require(
|
|
8
|
-
require(
|
|
9
|
-
const require_version = require(
|
|
10
|
-
const require_cli_common = require(
|
|
11
|
-
const require_cli_env = require(
|
|
12
|
-
const require_cli_type_checker = require(
|
|
2
|
+
const require_commandkit = require("../commandkit-CzNV2oE8.js");
|
|
3
|
+
const require_utils_constants = require("../utils/constants.js");
|
|
4
|
+
const require_config_utils = require("../config/utils.js");
|
|
5
|
+
const require_app_router_CommandsRouter = require("../app/router/CommandsRouter.js");
|
|
6
|
+
const require_app_router_EventsRouter = require("../app/router/EventsRouter.js");
|
|
7
|
+
const require_app_router_TreeArtifact = require("../app/router/TreeArtifact.js");
|
|
8
|
+
require("../app/router/index.js");
|
|
9
|
+
const require_version = require("../version.js");
|
|
10
|
+
const require_cli_common = require("./common.js");
|
|
11
|
+
const require_cli_env = require("./env.js");
|
|
12
|
+
const require_cli_type_checker = require("./type-checker.js");
|
|
13
13
|
let node_fs = require("node:fs");
|
|
14
14
|
let node_path = require("node:path");
|
|
15
15
|
let node_fs_promises = require("node:fs/promises");
|
|
@@ -91,7 +91,7 @@ async function buildApplication({ plugins, rolldownPlugins, isDev, configPath })
|
|
|
91
91
|
},
|
|
92
92
|
plugins: rolldownPlugins,
|
|
93
93
|
platform: "node",
|
|
94
|
-
deps: {
|
|
94
|
+
deps: { neverBundle: true },
|
|
95
95
|
sourcemap: ((_config$sourceMap = config.sourceMap) === null || _config$sourceMap === void 0 ? void 0 : _config$sourceMap[isDev ? "development" : "production"]) ?? true,
|
|
96
96
|
target: "node16",
|
|
97
97
|
outDir: dest,
|
|
@@ -123,17 +123,19 @@ async function emitPregeneratedRouterArtifact(outputRoot) {
|
|
|
123
123
|
const eventsEntrypoint = (0, node_path.join)(outputRoot, "app", "events");
|
|
124
124
|
const commandsRouter = new require_app_router_CommandsRouter.CommandsRouter({ entrypoint: commandEntrypoint });
|
|
125
125
|
const eventsRouter = new require_app_router_EventsRouter.EventsRouter({ entrypoints: [eventsEntrypoint] });
|
|
126
|
+
const commands = commandsRouter.isValidPath() ? await commandsRouter.scan() : {
|
|
127
|
+
commands: {},
|
|
128
|
+
middlewares: {},
|
|
129
|
+
treeNodes: {},
|
|
130
|
+
compiledRoutes: {},
|
|
131
|
+
diagnostics: []
|
|
132
|
+
};
|
|
133
|
+
const events = eventsRouter.isValidPath() ? await eventsRouter.scan() : {};
|
|
126
134
|
const artifact = require_app_router_TreeArtifact.createRouterTreeArtifact({
|
|
127
135
|
outputRoot,
|
|
128
136
|
commandkitVersion: require_version.version,
|
|
129
|
-
commands
|
|
130
|
-
|
|
131
|
-
middlewares: {},
|
|
132
|
-
treeNodes: {},
|
|
133
|
-
compiledRoutes: {},
|
|
134
|
-
diagnostics: []
|
|
135
|
-
},
|
|
136
|
-
events: eventsRouter.isValidPath() ? await eventsRouter.scan() : {}
|
|
137
|
+
commands,
|
|
138
|
+
events
|
|
137
139
|
});
|
|
138
140
|
const artifactDirectory = (0, node_path.join)(outputRoot, require_app_router_TreeArtifact.ROUTER_TREE_ARTIFACT_DIRECTORY);
|
|
139
141
|
await (0, node_fs_promises.mkdir)(artifactDirectory, { recursive: true });
|
|
@@ -168,7 +170,7 @@ const wrapInAsyncIIFE = (code) => `;await (async () => {\n${code.join("\n\n")}\n
|
|
|
168
170
|
async function injectEntryFile(configPath, isDev, emitAntiCrashScript, distDir) {
|
|
169
171
|
const entryFilePath = (0, node_path.join)(configPath, isDev ? ".commandkit" : distDir || "dist", "index.js");
|
|
170
172
|
if ((0, node_fs.existsSync)(entryFilePath)) return;
|
|
171
|
-
|
|
173
|
+
const code = `/* Entrypoint File Generated By CommandKit */
|
|
172
174
|
${isDev ? `\n\n// Injected for development\n${wrapInAsyncIIFE([envScript(isDev), emitAntiCrashScript ? antiCrashScript : ""])}\n\n` : wrapInAsyncIIFE([envScript(isDev)])}
|
|
173
175
|
|
|
174
176
|
|
|
@@ -191,7 +193,8 @@ await bootstrap().catch((e) => {
|
|
|
191
193
|
console.error(error);
|
|
192
194
|
console.error(\`Caused by \${e?.stack || e}\`);
|
|
193
195
|
})
|
|
194
|
-
|
|
196
|
+
`;
|
|
197
|
+
await (0, node_fs_promises.writeFile)(entryFilePath, code);
|
|
195
198
|
}
|
|
196
199
|
|
|
197
200
|
//#endregion
|
package/dist/cli/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"build.js","names":["loadTsdown","loadConfigFile","performTypeCheck","COMMANDKIT_CWD","CompilerPluginRuntime","mergeDeep","copyLocaleFiles","join","CommandsRouter","EventsRouter","createRouterTreeArtifact","version","ROUTER_TREE_ARTIFACT_DIRECTORY","mkdir","writeFile","ROUTER_TREE_ARTIFACT_FILE","devEnvFileArgs","prodEnvFileArgs","existsSync"],"sources":["../../src/cli/build.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { mkdir, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { rimraf } from 'rimraf';\nimport type { InlineConfig } from 'tsdown';\n\nimport { CommandsRouter, EventsRouter } from '../app/router';\nimport {\n createRouterTreeArtifact,\n ROUTER_TREE_ARTIFACT_DIRECTORY,\n ROUTER_TREE_ARTIFACT_FILE,\n} from '../app/router/TreeArtifact';\nimport { MaybeArray } from '../components';\nimport { loadConfigFile } from '../config/loader';\nimport { mergeDeep } from '../config/utils';\nimport { CompilerPlugin, CompilerPluginRuntime } from '../plugins';\nimport { COMMANDKIT_CWD } from '../utils/constants';\nimport { version } from '../version';\nimport { copyLocaleFiles, loadTsdown } from './common';\nimport { devEnvFileArgs, prodEnvFileArgs } from './env';\nimport { performTypeCheck } from './type-checker';\n\n/**\n * @private\n * @internal\n */\nexport interface ApplicationBuildOptions {\n plugins?: MaybeArray<CompilerPlugin>[] | Array<CompilerPlugin>;\n rolldownPlugins?: any[];\n isDev?: boolean;\n configPath?: string;\n}\n\n// emit public env variables and given env variables\n/**\n * @private\n * @internal\n */\nfunction mergeDefinitionsIfNeeded(env: Record<string, string>, isDev: boolean) {\n const values = Object.fromEntries(\n Object.entries(process.env).filter(\n ([k]) => !(k in env) && k.startsWith('COMMANDKIT_PUBLIC_'),\n ),\n );\n\n return {\n ...env,\n ...values,\n ...(isDev\n ? {\n NODE_ENV: 'development',\n COMMANDKIT_BOOTSTRAP_MODE: 'development',\n COMMANDKIT_IS_DEV: 'true',\n COMMANDKIT_IS_TEST: 'false',\n }\n : {\n NODE_ENV: 'production',\n COMMANDKIT_BOOTSTRAP_MODE: 'production',\n COMMANDKIT_IS_DEV: 'false',\n COMMANDKIT_IS_TEST: 'false',\n }),\n };\n}\n\n/**\n * @private\n * @internal\n */\nexport async function buildApplication({\n plugins,\n rolldownPlugins,\n isDev,\n configPath,\n}: ApplicationBuildOptions) {\n const { build } = await loadTsdown();\n const config = await loadConfigFile(configPath);\n\n if (!isDev && !config?.typescript?.ignoreBuildErrors) {\n await performTypeCheck(configPath || COMMANDKIT_CWD);\n }\n\n const pluginRuntime = new CompilerPluginRuntime(\n (plugins || []) as CompilerPlugin[],\n !!isDev,\n );\n\n rolldownPlugins ??= [];\n\n rolldownPlugins.push(pluginRuntime.toJSON());\n\n try {\n const dest = isDev ? '.commandkit' : config.distDir;\n\n // Clean the destination directory\n await rimraf(dest);\n\n await pluginRuntime.init();\n\n await build(\n mergeDeep(\n {\n watch: false,\n dts: false,\n clean: true,\n format: ['esm'],\n shims: true,\n minify: false,\n logLevel: !!isDev ? 'silent' : 'info',\n inputOptions: {\n transform: {\n jsx: {\n runtime: 'automatic',\n importSource: 'commandkit',\n },\n },\n checks: {\n circularDependency: true,\n },\n onwarn: (warning, defaultWarn) => {\n if (warning?.message?.includes('compilerOptions.jsx')) return;\n\n return defaultWarn(warning);\n },\n onLog: (level, log, defaultLog) => {\n if (isDev) return;\n\n return defaultLog(level, log);\n },\n moduleTypes: {\n '.json': 'json',\n '.node': 'binary',\n },\n },\n outExtensions: (context) => {\n return {\n dts: '.d.ts',\n js: context.format === 'cjs' ? '.cjs' : '.js',\n };\n },\n plugins: rolldownPlugins,\n platform: 'node',\n deps: {\n neverBundle: true,\n },\n sourcemap:\n config.sourceMap?.[isDev ? 'development' : 'production'] ?? true,\n target: 'node16',\n outDir: dest,\n env: mergeDefinitionsIfNeeded(config.env || {}, !!isDev),\n entry: Array.from(\n new Set([\n 'src/**/*.{js,cjs,mjs,ts,cts,mts,jsx,tsx}',\n `!${config.distDir}`,\n '!.commandkit',\n '!**/*.test.*',\n '!**/*.spec.*',\n ...(config.entrypoints ?? []),\n ]),\n ),\n outputOptions: {\n sanitizeFileName: (name) => name.replace(/\\0/g, ''),\n },\n unbundle: isDev\n ? true\n : (config.compilerOptions?.disableChunking ?? false),\n } satisfies InlineConfig,\n config.compilerOptions?.tsdown,\n ),\n );\n\n await copyLocaleFiles('src', dest);\n await injectEntryFile(\n configPath || COMMANDKIT_CWD,\n !!isDev,\n !!(\n config.antiCrashScript?.[isDev ? 'development' : 'production'] ??\n (isDev ? true : false)\n ),\n config.distDir,\n );\n\n if (config.experimental.pregenerateCommands) {\n await emitPregeneratedRouterArtifact(join(COMMANDKIT_CWD, dest));\n }\n } catch (error) {\n console.error('Build failed:', error);\n if (error instanceof Error) {\n console.error('Error details:', error.stack);\n }\n process.exit(1); // Force exit on error\n } finally {\n // Ensure plugins are cleaned up\n await pluginRuntime.destroy();\n }\n}\n\nasync function emitPregeneratedRouterArtifact(outputRoot: string) {\n const commandEntrypoint = join(outputRoot, 'app', 'commands');\n const eventsEntrypoint = join(outputRoot, 'app', 'events');\n\n const commandsRouter = new CommandsRouter({\n entrypoint: commandEntrypoint,\n });\n const eventsRouter = new EventsRouter({\n entrypoints: [eventsEntrypoint],\n });\n\n const commands = commandsRouter.isValidPath()\n ? await commandsRouter.scan()\n : {\n commands: {},\n middlewares: {},\n treeNodes: {},\n compiledRoutes: {},\n diagnostics: [],\n };\n\n const events = eventsRouter.isValidPath() ? await eventsRouter.scan() : {};\n\n const artifact = createRouterTreeArtifact({\n outputRoot,\n commandkitVersion: version,\n commands,\n events,\n });\n\n const artifactDirectory = join(outputRoot, ROUTER_TREE_ARTIFACT_DIRECTORY);\n await mkdir(artifactDirectory, { recursive: true });\n await writeFile(\n join(artifactDirectory, ROUTER_TREE_ARTIFACT_FILE),\n JSON.stringify(artifact, null, 2),\n 'utf8',\n );\n}\n\nconst envScript = (dev: boolean) => `// --- Environment Variables Loader ---\nconst $env = [${(dev ? devEnvFileArgs : prodEnvFileArgs).map((p) => `\"${p}\"`).join(', ')}];\nfor (const file of $env) {\n try {\n process.loadEnvFile(file);\n console.log('\\\\x1b[36m✔ Loaded \\\\x1b[0m\\\\x1b[33m%s\\\\x1b[0m', file);\n } catch {}\n}\n`;\n\nconst antiCrashScript = [\n '// --- CommandKit Anti-Crash Monitor ---',\n \" // 'uncaughtException' event is supposed to be used to perform synchronous cleanup before shutting down the process\",\n ' // instead of using it as a means to resume operation.',\n ' // But it exists here due to compatibility reasons with discord bot ecosystem.',\n \" const p = (t) => `\\\\x1b[31m${t}\\\\x1b[0m`, b = '[CommandKit Anti-Crash Monitor]', l = console.log, e1 = 'uncaughtException', e2 = 'unhandledRejection';\",\n ' if (!process.eventNames().includes(e1)) // skip if it is already handled',\n ' process.on(e1, (e) => {',\n ' l(p(`${b} Uncaught Exception`)); l(p(b), p(e.stack || e));',\n ' })',\n ' if (!process.eventNames().includes(e2)) // skip if it is already handled',\n ' process.on(e2, (r) => {',\n ' l(p(`${b} Unhandled promise rejection`)); l(p(`${b} ${r.stack || r}`));',\n ' });',\n '// --- CommandKit Anti-Crash Monitor ---',\n].join('\\n');\n\nconst wrapInAsyncIIFE = (code: string[]) =>\n `;await (async () => {\\n${code.join('\\n\\n')}\\n})();`;\n\nasync function injectEntryFile(\n configPath: string,\n isDev: boolean,\n emitAntiCrashScript: boolean,\n distDir?: string,\n) {\n const dist = isDev ? '.commandkit' : distDir || 'dist';\n const entryFilePath = join(configPath, dist, 'index.js');\n\n // skip if the entry file already exists\n if (existsSync(entryFilePath)) return;\n\n const code = `/* Entrypoint File Generated By CommandKit */\n${isDev ? `\\n\\n// Injected for development\\n${wrapInAsyncIIFE([envScript(isDev), emitAntiCrashScript ? antiCrashScript : ''])}\\n\\n` : wrapInAsyncIIFE([envScript(isDev)])}\n\n\nasync function bootstrap() {\n const { Client } = await import('discord.js');\n const { commandkit } = await import('commandkit');\n const app = await import('./app.js').then((m) => m.default ?? m);\n\n if (!app || !(app instanceof Client)) {\n throw new Error('The app file must default export the discord.js client instance');\n }\n\n commandkit.setClient(app);\n\n await commandkit.start();\n}\n\nawait bootstrap().catch((e) => {\n const error = new Error('Failed to bootstrap the application', { cause: e });\n console.error(error);\n console.error(\\`Caused by \\${e?.stack || e}\\`);\n})\n`;\n\n await writeFile(entryFilePath, code);\n}\n"],"mappings":"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"}
|
package/dist/cli/common.d.ts
CHANGED
package/dist/cli/common.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_rolldown_runtime = require(
|
|
3
|
-
const require_utils_colors = require(
|
|
4
|
-
const require_utils_constants = require(
|
|
5
|
-
const require_utils_types_package = require(
|
|
2
|
+
const require_rolldown_runtime = require("../rolldown-runtime-AN5ru5iW.js");
|
|
3
|
+
const require_utils_colors = require("../utils/colors.js");
|
|
4
|
+
const require_utils_constants = require("../utils/constants.js");
|
|
5
|
+
const require_utils_types_package = require("../utils/types-package.js");
|
|
6
6
|
let node_fs = require("node:fs");
|
|
7
7
|
node_fs = require_rolldown_runtime.__toESM(node_fs);
|
|
8
8
|
let node_path = require("node:path");
|
package/dist/cli/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"common.js","names":["join","fs","colors","COMMANDKIT_CWD","generateTypesPackage","nodeModulesPath"],"sources":["../../src/cli/common.ts"],"sourcesContent":["import { rimrafSync } from 'rimraf';\nimport { join } from 'node:path';\nimport fs from 'node:fs';\nimport colors from '../utils/colors';\nimport { ResolvedCommandKitConfig } from '../config/utils';\nimport { generateTypesPackage } from '../utils/types-package';\nimport { execSync } from 'node:child_process';\nimport { COMMANDKIT_CWD } from '../utils/constants';\n\nlet ts: typeof import('typescript') | undefined;\nlet tsdown: typeof import('tsdown') | undefined;\n\n/**\n * @private\n * @internal\n */\nexport function write(message: any) {\n process.stdout.write(message);\n process.stdout.write('\\n');\n}\n\n/**\n * @private\n * @internal\n */\nexport function findEntrypoint(dir: string) {\n const target = join(dir, 'sharding-manager.js');\n\n // if sharding manager exists, return that file instead\n if (fs.existsSync(target)) return target;\n\n return join(dir, 'index.js');\n}\n\n/**\n * @returns {never}\n * @internal\n * @private\n */\nexport function panic(message: any): never {\n write(colors.red(`Error: ${message}`));\n process.exit(1);\n}\n\n/**\n * @private\n * @internal\n */\nasync function ensureTypeScript(target: string) {\n const isTypeScript = /\\.(c|m)?tsx?$/.test(target);\n\n if (!isTypeScript) return false;\n if (process.features.typescript) return true;\n\n await loadTypeScript();\n\n return true;\n}\n\nlet packageManager: string;\n\n/**\n * @private\n * @internal\n */\nfunction detectPackageManager() {\n if (packageManager) return packageManager;\n\n const lockfiles = {\n 'yarn.lock': 'yarn',\n 'pnpm-lock.yaml': 'pnpm',\n 'package-lock.json': 'npm',\n 'bun.lock': 'bun',\n 'bun.lockb': 'bun',\n 'deno.lock': 'deno',\n };\n\n for (const [lockfile, manager] of Object.entries(lockfiles)) {\n if (fs.existsSync(join(COMMANDKIT_CWD, lockfile))) {\n packageManager = manager;\n break;\n }\n }\n\n if (!packageManager) {\n packageManager = 'npm';\n }\n\n return packageManager;\n}\n\n/**\n * @private\n * @internal\n */\nexport async function loadTypeScript(e?: string) {\n if (ts) return ts;\n\n try {\n ts = await import('typescript');\n } catch (e) {\n if (e instanceof Error && 'code' in e && e.code === 'MODULE_NOT_FOUND') {\n try {\n const packageManager = detectPackageManager();\n const prefix = packageManager === 'deno' ? 'npm:' : '';\n execSync(`${packageManager} add -D ${prefix}typescript`, {\n stdio: 'inherit',\n cwd: COMMANDKIT_CWD,\n });\n\n console.log(\n colors.cyan(\n `TypeScript has been installed automatically, restarting...`,\n ),\n );\n\n ts = await import('typescript');\n\n return ts;\n } catch {\n panic(\n 'TypeScript is not installed and could not be installed automatically. Please install it manually.',\n );\n }\n }\n panic(e || 'TypeScript must be installed to use TypeScript config files.');\n }\n\n return ts;\n}\n\n/**\n * @private\n * @internal\n */\nexport async function loadConfigFileFromPath(\n target: string,\n): Promise<ResolvedCommandKitConfig> {\n await ensureExists(target);\n\n const isTs = await ensureTypeScript(target);\n\n let generatedFilePath: string | undefined;\n\n if (isTs && ts) {\n const { transpileModule } = ts;\n const src = fs.readFileSync(target, 'utf8');\n const { outputText } = transpileModule(src, {\n compilerOptions: {\n module: ts.ModuleKind.ESNext,\n target: ts.ScriptTarget.ESNext,\n moduleResolution: ts.ModuleResolutionKind.NodeNext,\n },\n fileName: target,\n });\n\n await generateTypesPackage();\n\n const nodeModulesPath = COMMANDKIT_CWD;\n\n const tmpFile = join(nodeModulesPath, 'compiled-commandkit.config.mjs');\n\n fs.writeFileSync(tmpFile, outputText);\n\n generatedFilePath = tmpFile;\n\n target = tmpFile;\n }\n\n /**\n * @type {import('..').CommandKitConfig}\n */\n const config = await import(`file://${target}`).then(\n (conf) => conf.default || conf,\n );\n\n if (generatedFilePath) {\n try {\n fs.unlinkSync(generatedFilePath);\n } catch {\n //\n }\n }\n\n return config;\n}\n\n/**\n * @private\n * @internal\n */\nasync function ensureExists(loc: string) {\n const exists = fs.existsSync(loc);\n\n if (!exists) {\n throw new Error(`File not found: ${loc}`);\n }\n}\n\n/**\n * @private\n * @internal\n */\nexport function erase(dir: string) {\n rimrafSync(dir);\n}\n\n/**\n * @private\n * @internal\n */\nexport async function copyLocaleFiles(_from: string, _to: string) {\n const resolvedFrom = join(COMMANDKIT_CWD, _from);\n const resolvedTo = join(COMMANDKIT_CWD, _to);\n\n const localePaths = ['app/locales'];\n const srcLocalePaths = localePaths.map((path) => join(resolvedFrom, path));\n const destLocalePaths = localePaths.map((path) => join(resolvedTo, path));\n\n for (const localePath of srcLocalePaths) {\n if (!fs.existsSync(localePath)) {\n continue;\n }\n\n // copy localePath to destLocalePath\n const destLocalePath = destLocalePaths[srcLocalePaths.indexOf(localePath)];\n\n if (!fs.existsSync(destLocalePath)) {\n fs.promises.mkdir(destLocalePath, { recursive: true }).catch(() => {});\n }\n\n await fs.promises\n .cp(localePath, destLocalePath, {\n recursive: true,\n force: true,\n })\n .catch(() => {});\n }\n}\n\n/**\n * @private\n * @internal\n */\nexport async function loadTsdown(): Promise<typeof import('tsdown')> {\n if (tsdown) return tsdown;\n\n tsdown = await import('tsdown');\n\n return tsdown;\n}\n"],"mappings":"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"}
|
package/dist/cli/development.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_utils_colors = require(
|
|
3
|
-
const require_commandkit = require(
|
|
4
|
-
const require_plugins_CompilerPlugin = require(
|
|
5
|
-
const require_utils_constants = require(
|
|
6
|
-
const require_cli_common = require(
|
|
7
|
-
const require_cli_app_process = require(
|
|
8
|
-
const require_cli_build = require(
|
|
2
|
+
const require_utils_colors = require("../utils/colors.js");
|
|
3
|
+
const require_commandkit = require("../commandkit-CzNV2oE8.js");
|
|
4
|
+
const require_plugins_CompilerPlugin = require("../plugins/CompilerPlugin.js");
|
|
5
|
+
const require_utils_constants = require("../utils/constants.js");
|
|
6
|
+
const require_cli_common = require("./common.js");
|
|
7
|
+
const require_cli_app_process = require("./app-process.js");
|
|
8
|
+
const require_cli_build = require("./build.js");
|
|
9
9
|
let node_crypto = require("node:crypto");
|
|
10
10
|
let path = require("path");
|
|
11
11
|
let chokidar = require("chokidar");
|
|
@@ -145,7 +145,6 @@ async function bootstrapDevelopmentServer(configPath) {
|
|
|
145
145
|
case "re":
|
|
146
146
|
console.log(`Received reload events command, reloading...`);
|
|
147
147
|
await sendHmrEvent(require_utils_constants.HMREventType.ReloadEvents);
|
|
148
|
-
break;
|
|
149
148
|
}
|
|
150
149
|
});
|
|
151
150
|
watcher.on("change", (path$5) => hmrHandler(path$5, require_utils_constants.HMREventChangeType.Change));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"development.js","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"development.js","names":["loadConfigFile","findEntrypoint","buildApplication","isCompilerPlugin","createAppProcess","COMMANDKIT_CWD","getPossibleConfigPaths","watch","join","randomUUID","sleep","colors","path","debounce","HMREventType","HMREventChangeType"],"sources":["../../src/cli/development.ts"],"sourcesContent":["import { join } from 'path';\nimport { getPossibleConfigPaths, loadConfigFile } from '../config/loader';\nimport { isCompilerPlugin } from '../plugins';\nimport { createAppProcess } from './app-process';\nimport { buildApplication } from './build';\nimport { watch } from 'chokidar';\nimport { debounce } from '../utils/utilities';\nimport colors from '../utils/colors';\nimport { ChildProcess } from 'node:child_process';\nimport { setTimeout as sleep } from 'node:timers/promises';\nimport { randomUUID } from 'node:crypto';\nimport {\n COMMANDKIT_CWD,\n HMREventChangeType,\n HMREventType,\n} from '../utils/constants';\nimport { findEntrypoint } from './common';\n\n/**\n * @private\n * @internal\n */\nasync function buildAndStart(configPath: string, skipStart = false) {\n const config = await loadConfigFile(configPath);\n const mainFile = findEntrypoint('.commandkit');\n\n await buildApplication({\n configPath,\n isDev: true,\n plugins: config.plugins.flat(2).filter((p) => isCompilerPlugin(p)),\n rolldownPlugins: config.rolldownPlugins,\n });\n\n if (skipStart) return null as never;\n\n const ps = createAppProcess(mainFile, configPath, true, config);\n\n return ps;\n}\n\n/**\n * @private\n * @internal\n */\nconst isCommandSource = (p: string) =>\n p.replaceAll('\\\\', '/').includes('src/app/commands');\n\n/**\n * @private\n * @internal\n */\nconst isEventSource = (p: string) =>\n p.replaceAll('\\\\', '/').includes('src/app/events');\n\n/**\n * @private\n * @internal\n */\nexport async function bootstrapDevelopmentServer(configPath?: string): Promise<{\n watcher: ReturnType<typeof watch>;\n isConfigUpdate: (path: string) => boolean;\n performHMR: (path?: string) => Promise<boolean>;\n hmrHandler: (path: string, changeType?: HMREventChangeType) => Promise<void>;\n sendHmrEvent: (\n event: HMREventType,\n path?: string,\n changeType?: HMREventChangeType,\n ) => Promise<boolean>;\n getProcess: () => ChildProcess | null;\n buildAndStart: typeof buildAndStart;\n}> {\n process.env.COMMANDKIT_BOOTSTRAP_MODE = 'development';\n process.env.COMMANDKIT_INTERNAL_IS_CLI_PROCESS = 'true';\n const start = performance.now();\n const cwd = configPath || COMMANDKIT_CWD;\n const configPaths = getPossibleConfigPaths(cwd);\n\n const watcher = watch([join(cwd, 'src'), ...configPaths], {\n ignoreInitial: true,\n });\n\n let ps: ChildProcess | null = null;\n\n const waitForAcknowledgment = (messageId: string): Promise<boolean> => {\n return new Promise((resolve) => {\n if (!ps) return resolve(false);\n\n let _handled = false;\n const onMessage = (message: any) => {\n _handled = true;\n if (typeof message !== 'object' || message === null) return;\n\n const { type, id, handled } = message;\n if (type === 'commandkit-hmr-ack' && id === messageId) {\n ps?.off('message', onMessage);\n resolve(!!handled);\n }\n };\n\n ps.once('message', onMessage);\n\n if (!_handled) {\n sleep(3000).then(() => {\n ps?.off('message', onMessage);\n resolve(false);\n });\n }\n });\n };\n\n const sendHmrEvent = async (\n event: HMREventType,\n path?: string,\n changeType?: HMREventChangeType,\n ): Promise<boolean> => {\n if (!ps || !ps.send) return false;\n\n const messageId = randomUUID();\n const messagePromise = waitForAcknowledgment(messageId);\n\n ps.send({ event, path, changeType, id: messageId });\n\n // Wait for acknowledgment or timeout after 3 seconds\n try {\n let triggered = false;\n const res = !!(await Promise.race([\n messagePromise,\n sleep(3000).then(() => {\n if (!triggered) {\n console.warn(\n colors.yellow(\n `HMR acknowledgment timed out for event ${event} on path ${path}`,\n ),\n );\n }\n return false;\n }),\n ]));\n\n triggered = true;\n\n return res;\n } catch (error) {\n console.error(\n colors.red(`Error waiting for HMR acknowledgment: ${error}`),\n );\n return false;\n }\n };\n\n const performHMR = debounce(\n async (\n path?: string,\n changeType?: HMREventChangeType,\n ): Promise<boolean> => {\n if (!path || !ps) return false;\n\n let eventType: HMREventType | null = null;\n let eventDescription = '';\n\n if (isCommandSource(path)) {\n eventType = HMREventType.ReloadCommands;\n eventDescription = 'command(s)';\n } else if (isEventSource(path)) {\n eventType = HMREventType.ReloadEvents;\n eventDescription = 'event(s)';\n } else {\n eventType = HMREventType.Unknown;\n eventDescription = 'unknown source';\n }\n\n if (eventType) {\n console.log(\n `${colors.cyanBright(`Attempting to reload ${eventDescription} at`)} ${colors.yellowBright(path)}`,\n );\n\n await buildAndStart(cwd, true);\n const hmrHandled = await sendHmrEvent(eventType, path, changeType);\n\n if (hmrHandled) {\n console.log(\n `${colors.greenBright(`Successfully hot reloaded ${eventDescription} at`)} ${colors.yellowBright(path)}`,\n );\n return true;\n }\n }\n\n return false;\n },\n 700,\n );\n\n const isConfigUpdate = (path: string) => {\n const isConfig = configPaths.some((configPath) => path === configPath);\n\n if (!isConfig) return false;\n\n console.log(\n colors.yellowBright(\n 'It seems like commandkit config file was updated, please restart the server manually to apply changes.',\n ),\n );\n\n return isConfig;\n };\n\n const hmrHandler = async (\n path: string,\n changeType: HMREventChangeType = HMREventChangeType.Change,\n ) => {\n if (isConfigUpdate(path)) return;\n const hmr = await performHMR(path, changeType);\n if (hmr) return;\n\n console.log(\n `${colors.yellowBright('⚡️ Performing full restart due to the changes in')} ${colors.cyanBright(path)}`,\n );\n\n ps?.kill();\n ps = await buildAndStart(cwd);\n };\n\n process.stdin.on('data', async (d) => {\n const command = d.toString().trim();\n\n switch (command) {\n case 'r':\n console.log(`Received restart command, restarting...`);\n ps?.kill();\n ps = null;\n ps = await buildAndStart(cwd);\n break;\n case 'rc':\n console.log(`Received reload commands command, reloading...`);\n await sendHmrEvent(HMREventType.ReloadCommands);\n break;\n case 're':\n console.log(`Received reload events command, reloading...`);\n await sendHmrEvent(HMREventType.ReloadEvents);\n break;\n break;\n }\n });\n\n watcher.on('change', (path) => hmrHandler(path, HMREventChangeType.Change));\n watcher.on('add', (path) => hmrHandler(path, HMREventChangeType.Add));\n watcher.on('unlink', (path) => hmrHandler(path, HMREventChangeType.Unlink));\n watcher.on('unlinkDir', (path) =>\n hmrHandler(path, HMREventChangeType.UnlinkDir),\n );\n watcher.on('error', (e) => {\n console.error(e);\n });\n\n console.log(`${colors.greenBright('Bootstrapped CommandKit Development Environment in')} ${colors.yellowBright(`${(performance.now() - start).toFixed(2)}ms`)}\n${colors.greenBright('Watching for changes in')} ${colors.yellowBright('src')} ${colors.greenBright('directory')}\n\n${colors.greenBright('Commands:')}\n${colors.yellowBright('r')} - Restart the server\n${colors.yellowBright('rc')} - Reload all commands\n${colors.yellowBright('re')} - Reload all events`);\n\n const buildStart = performance.now();\n\n ps = await buildAndStart(cwd);\n\n const buildEnd = performance.now();\n\n console.log(\n `\\n${colors.greenBright('Development mode compilation took')} ${colors.yellowBright(`${(buildEnd - buildStart).toFixed(2)}ms`)}\\n`,\n );\n\n return {\n watcher,\n isConfigUpdate,\n performHMR,\n hmrHandler,\n sendHmrEvent,\n getProcess: () => ps,\n buildAndStart,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAsBA,eAAe,cAAc,YAAoB,YAAY,OAAO;CAClE,MAAM,SAAS,MAAMA,kCAAe,UAAU;CAC9C,MAAM,WAAWC,kCAAe,aAAa;CAE7C,MAAMC,mCAAiB;EACrB;EACA,OAAO;EACP,SAAS,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,QAAQ,MAAMC,gDAAiB,CAAC,CAAC;EACjE,iBAAiB,OAAO;CAC1B,CAAC;CAED,IAAI,WAAW,OAAO;CAItB,OAFWC,yCAAiB,UAAU,YAAY,MAAM,MAEhD;AACV;;;;;AAMA,MAAM,mBAAmB,MACvB,EAAE,WAAW,MAAM,GAAG,CAAC,CAAC,SAAS,kBAAkB;;;;;AAMrD,MAAM,iBAAiB,MACrB,EAAE,WAAW,MAAM,GAAG,CAAC,CAAC,SAAS,gBAAgB;;;;;AAMnD,eAAsB,2BAA2B,YAY9C;CACD,QAAQ,IAAI,4BAA4B;CACxC,QAAQ,IAAI,qCAAqC;CACjD,MAAM,QAAQ,YAAY,IAAI;CAC9B,MAAM,MAAM,cAAcC;CAC1B,MAAM,cAAcC,0CAAuB,GAAG;CAE9C,MAAM,cAAUC,gBAAM,KAACC,WAAK,KAAK,KAAK,GAAG,GAAG,WAAW,GAAG,EACxD,eAAe,KACjB,CAAC;CAED,IAAI,KAA0B;CAE9B,MAAM,yBAAyB,cAAwC;EACrE,OAAO,IAAI,SAAS,YAAY;GAC9B,IAAI,CAAC,IAAI,OAAO,QAAQ,KAAK;GAE7B,IAAI,WAAW;GACf,MAAM,aAAa,YAAiB;IAClC,WAAW;IACX,IAAI,OAAO,YAAY,YAAY,YAAY,MAAM;IAErD,MAAM,EAAE,MAAM,IAAI,YAAY;IAC9B,IAAI,SAAS,wBAAwB,OAAO,WAAW;KACrD,mCAAI,IAAI,WAAW,SAAS;KAC5B,QAAQ,CAAC,CAAC,OAAO;IACnB;GACF;GAEA,GAAG,KAAK,WAAW,SAAS;GAE5B,IAAI,CAAC,UACH,qCAAM,GAAI,CAAC,CAAC,WAAW;IACrB,mCAAI,IAAI,WAAW,SAAS;IAC5B,QAAQ,KAAK;GACf,CAAC;EAEL,CAAC;CACH;CAEA,MAAM,eAAe,OACnB,OACA,QACA,eACqB;EACrB,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,OAAO;EAE5B,MAAM,gBAAYC,wBAAW;EAC7B,MAAM,iBAAiB,sBAAsB,SAAS;EAEtD,GAAG,KAAK;GAAE;GAAO;GAAM;GAAY,IAAI;EAAU,CAAC;EAGlD,IAAI;GACF,IAAI,YAAY;GAChB,MAAM,MAAM,CAAC,CAAE,MAAM,QAAQ,KAAK,CAChC,oBACAC,iCAAM,GAAI,CAAC,CAAC,WAAW;IACrB,IAAI,CAAC,WACH,QAAQ,KACNC,6BAAO,OACL,0CAA0C,MAAM,WAAWC,QAC7D,CACF;IAEF,OAAO;GACT,CAAC,CACH,CAAC;GAED,YAAY;GAEZ,OAAO;EACT,SAAS,OAAO;GACd,QAAQ,MACND,6BAAO,IAAI,yCAAyC,OAAO,CAC7D;GACA,OAAO;EACT;CACF;CAEA,MAAM,aAAaE,4BACjB,OACE,QACA,eACqB;EACrB,IAAI,CAACD,UAAQ,CAAC,IAAI,OAAO;EAEzB,IAAI,YAAiC;EACrC,IAAI,mBAAmB;EAEvB,IAAI,gBAAgBA,MAAI,GAAG;GACzB,YAAYE,qCAAa;GACzB,mBAAmB;EACrB,OAAO,IAAI,cAAcF,MAAI,GAAG;GAC9B,YAAYE,qCAAa;GACzB,mBAAmB;EACrB,OAAO;GACL,YAAYA,qCAAa;GACzB,mBAAmB;EACrB;EAEA,IAAI,WAAW;GACb,QAAQ,IACN,GAAGH,6BAAO,WAAW,wBAAwB,iBAAiB,IAAI,EAAE,GAAGA,6BAAO,aAAaC,MAAI,GACjG;GAEA,MAAM,cAAc,KAAK,IAAI;GAG7B,IAAI,MAFqB,aAAa,WAAWA,QAAM,UAAU,GAEjD;IACd,QAAQ,IACN,GAAGD,6BAAO,YAAY,6BAA6B,iBAAiB,IAAI,EAAE,GAAGA,6BAAO,aAAaC,MAAI,GACvG;IACA,OAAO;GACT;EACF;EAEA,OAAO;CACT,GACA,GACF;CAEA,MAAM,kBAAkB,WAAiB;EACvC,MAAM,WAAW,YAAY,MAAM,eAAeA,WAAS,UAAU;EAErE,IAAI,CAAC,UAAU,OAAO;EAEtB,QAAQ,IACND,6BAAO,aACL,wGACF,CACF;EAEA,OAAO;CACT;CAEA,MAAM,aAAa,OACjB,QACA,aAAiCI,2CAAmB,WACjD;EACH,IAAI,eAAeH,MAAI,GAAG;EAE1B,IAAI,MADc,WAAWA,QAAM,UAAU,GACpC;EAET,QAAQ,IACN,GAAGD,6BAAO,aAAa,kDAAkD,EAAE,GAAGA,6BAAO,WAAWC,MAAI,GACtG;EAEA,mCAAI,KAAK;EACT,KAAK,MAAM,cAAc,GAAG;CAC9B;CAEA,QAAQ,MAAM,GAAG,QAAQ,OAAO,MAAM;EAGpC,QAFgB,EAAE,SAAS,CAAC,CAAC,KAEf,GAAd;GACE,KAAK;IACH,QAAQ,IAAI,yCAAyC;IACrD,mCAAI,KAAK;IACT,KAAK;IACL,KAAK,MAAM,cAAc,GAAG;IAC5B;GACF,KAAK;IACH,QAAQ,IAAI,gDAAgD;IAC5D,MAAM,aAAaE,qCAAa,cAAc;IAC9C;GACF,KAAK;IACH,QAAQ,IAAI,8CAA8C;IAC1D,MAAM,aAAaA,qCAAa,YAAY;EAGhD;CACF,CAAC;CAED,QAAQ,GAAG,WAAW,WAAS,WAAWF,QAAMG,2CAAmB,MAAM,CAAC;CAC1E,QAAQ,GAAG,QAAQ,WAAS,WAAWH,QAAMG,2CAAmB,GAAG,CAAC;CACpE,QAAQ,GAAG,WAAW,WAAS,WAAWH,QAAMG,2CAAmB,MAAM,CAAC;CAC1E,QAAQ,GAAG,cAAc,WACvB,WAAWH,QAAMG,2CAAmB,SAAS,CAC/C;CACA,QAAQ,GAAG,UAAU,MAAM;EACzB,QAAQ,MAAM,CAAC;CACjB,CAAC;CAED,QAAQ,IAAI,GAAGJ,6BAAO,YAAY,oDAAoD,EAAE,GAAGA,6BAAO,aAAa,IAAI,YAAY,IAAI,IAAI,MAAK,CAAE,QAAQ,CAAC,EAAE,GAAG,EAAE;EAC9JA,6BAAO,YAAY,yBAAyB,EAAE,GAAGA,6BAAO,aAAa,KAAK,EAAE,GAAGA,6BAAO,YAAY,WAAW,EAAE;;EAE/GA,6BAAO,YAAY,WAAW,EAAE;EAChCA,6BAAO,aAAa,GAAG,EAAE;EACzBA,6BAAO,aAAa,IAAI,EAAE;EAC1BA,6BAAO,aAAa,IAAI,EAAE,qBAAqB;CAE/C,MAAM,aAAa,YAAY,IAAI;CAEnC,KAAK,MAAM,cAAc,GAAG;CAE5B,MAAM,WAAW,YAAY,IAAI;CAEjC,QAAQ,IACN,KAAKA,6BAAO,YAAY,mCAAmC,EAAE,GAAGA,6BAAO,aAAa,IAAI,WAAW,WAAU,CAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,GACjI;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA,kBAAkB;EAClB;CACF;AACF"}
|
package/dist/cli/env.js
CHANGED
package/dist/cli/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"env.js","names":[],"sources":["../../src/cli/env.ts"],"sourcesContent":["/**\n * @private\n * @internal\n */\nexport function DevEnv(_static = false) {\n const common = {\n NODE_ENV: 'development',\n COMMANDKIT_IS_DEV: 'true',\n COMMANDKIT_INTERNAL_IS_CLI_PROCESS: 'false',\n COMMANDKIT_IS_BUILD: 'false',\n };\n\n if (_static) return Object.assign({}, common);\n\n return Object.assign({}, process.env, common);\n}\n\n/**\n * @private\n * @internal\n */\nexport function ProdEnv(_static = false) {\n const common = {\n NODE_ENV: 'production',\n COMMANDKIT_IS_DEV: 'false',\n COMMANDKIT_INTERNAL_IS_CLI_PROCESS: 'false',\n COMMANDKIT_IS_BUILD: 'false',\n };\n\n if (_static) return Object.assign({}, common);\n\n return Object.assign({}, process.env, common);\n}\n\n/**\n * @private\n * @internal\n */\nexport const CommonEnvFiles = ['.env', '.env.local'];\n/**\n * @private\n * @internal\n */\nexport const DevEnvFiles = ['.env.development', '.env.development.local'];\n/**\n * @private\n * @internal\n */\nexport const ProdEnvFiles = ['.env.production', '.env.production.local'];\n/**\n * @private\n * @internal\n */\nexport const devEnvFileArgs = [...CommonEnvFiles, ...DevEnvFiles];\n/**\n * @private\n * @internal\n */\nexport const prodEnvFileArgs = [...CommonEnvFiles, ...ProdEnvFiles];\n/**\n * @private\n * @internal\n */\nexport function setCLIEnv() {\n process.env.COMMANDKIT_IS_CLI = 'true';\n}\n"],"mappings":";;;;;;AAIA,SAAgB,OAAO,UAAU,OAAO;CACtC,MAAM,SAAS;EACb,UAAU;EACV,mBAAmB;EACnB,oCAAoC;EACpC,qBAAqB;CACvB;CAEA,IAAI,SAAS,OAAO,OAAO,OAAO,CAAC,GAAG,MAAM;CAE5C,OAAO,OAAO,OAAO,CAAC,GAAG,QAAQ,KAAK,MAAM;AAC9C;;;;;AAMA,SAAgB,QAAQ,UAAU,OAAO;CACvC,MAAM,SAAS;EACb,UAAU;EACV,mBAAmB;EACnB,oCAAoC;EACpC,qBAAqB;CACvB;CAEA,IAAI,SAAS,OAAO,OAAO,OAAO,CAAC,GAAG,MAAM;CAE5C,OAAO,OAAO,OAAO,CAAC,GAAG,QAAQ,KAAK,MAAM;AAC9C;;;;;AAMA,MAAa,iBAAiB,CAAC,QAAQ,YAAY;;;;;AAKnD,MAAa,cAAc,CAAC,oBAAoB,wBAAwB;;;;;AAKxE,MAAa,eAAe,CAAC,mBAAmB,uBAAuB;;;;;AAKvE,MAAa,iBAAiB,CAAC,GAAG,gBAAgB,GAAG,WAAW;;;;;AAKhE,MAAa,kBAAkB,CAAC,GAAG,gBAAgB,GAAG,YAAY;;;;;AAKlE,SAAgB,YAAY;CAC1B,QAAQ,IAAI,oBAAoB;AAClC"}
|
package/dist/cli/generators.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_utils_colors = require(
|
|
3
|
-
const require_utils_constants = require(
|
|
4
|
-
const require_cli_common = require(
|
|
2
|
+
const require_utils_colors = require("../utils/colors.js");
|
|
3
|
+
const require_utils_constants = require("../utils/constants.js");
|
|
4
|
+
const require_cli_common = require("./common.js");
|
|
5
5
|
let path = require("path");
|
|
6
6
|
let fs_promises = require("fs/promises");
|
|
7
7
|
let fs = require("fs");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generators.js","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"generators.js","names":["COMMANDKIT_CWD","join","path","existsSync","mkdir","writeFile","colors","readdir"],"sources":["../../src/cli/generators.ts"],"sourcesContent":["import { mkdir, writeFile, readdir } from 'fs/promises';\nimport { join } from 'path';\nimport { panic } from './common';\nimport { existsSync } from 'fs';\nimport colors from '../utils/colors';\nimport { COMMANDKIT_CWD } from '../utils/constants';\n\nconst BASE_PATH = COMMANDKIT_CWD;\nconst COMMANDS_DIR = join(BASE_PATH, 'src/app/commands');\nconst EVENTS_DIR = join(BASE_PATH, 'src/app/events');\n\n/**\n * @private\n * @internal\n */\nconst formatPath = (path: string) =>\n path.replace(COMMANDKIT_CWD, '.').replace(/\\\\/g, '/');\n\n/**\n * @private\n * @internal\n */\nfunction determineExtension() {\n return existsSync(join(BASE_PATH, 'tsconfig.json')) ? 'ts' : 'js';\n}\n\n/**\n * @private\n * @internal\n */\nfunction TS_COMMAND_SOURCE(name: string) {\n return `import type { CommandData, ChatInputCommand, MessageCommand } from 'commandkit';\n\nexport const command: CommandData = {\n name: '${name}',\n description: '${name} command',\n};\n\nexport const chatInput: ChatInputCommand = async (ctx) => {\n await ctx.interaction.reply('Hello from ${name}!');\n};\n\nexport const message: MessageCommand = async (ctx) => {\n await ctx.message.reply('Hello from ${name}!');\n};\n`;\n}\n\n/**\n * @private\n * @internal\n */\nfunction JS_COMMAND_SOURCE(name: string) {\n return `/**\n * @type {import('commandkit').CommandData}\n */\nexport const command = {\n name: '${name}',\n description: '${name} command',\n};\n\n/**\n * @type {import('commandkit').ChatInputCommand}\n */\nexport const chatInput = async (ctx) => {\n await ctx.interaction.reply('Hello from ${name}!');\n};\n\n/**\n * @type {import('commandkit').MessageCommand}\n */\nexport const message = async (ctx) => {\n await ctx.message.reply('Hello from ${name}!');\n};\n`;\n}\n\n/**\n * @private\n * @internal\n */\nfunction TS_EVENT_SOURCE(name: string) {\n const eventName = name[0].toUpperCase() + name.slice(1);\n return `import type { EventHandler } from 'commandkit';\n\nconst ${eventName}: EventHandler<'${name}'> = async () => {\n console.log('${name} event fired!');\n};\n\nexport default ${eventName};\n`;\n}\n\n/**\n * @private\n * @internal\n */\nfunction JS_EVENT_SOURCE(name: string) {\n const eventName = `on${name[0].toUpperCase() + name.slice(1)}`;\n return `/**\n * @type {import('commandkit').EventHandler<'${name}'>}\n */\nconst ${eventName} = async () => {\n console.log('${name} event fired!');\n};\n\nexport default ${eventName};\n`;\n}\n\n/**\n * @private\n * @internal\n */\nexport async function generateCommand(name: string, customPath?: string) {\n const cmdPath = join(customPath || COMMANDS_DIR);\n if (!existsSync(cmdPath)) await mkdir(cmdPath, { recursive: true });\n\n const ext = determineExtension();\n const isTypeScript = ext === 'ts';\n\n const fileName = `${name}.${ext}`;\n\n if (existsSync(join(cmdPath, fileName))) {\n panic(`Command ${name} already exists.`);\n }\n\n const commandFile = isTypeScript\n ? TS_COMMAND_SOURCE(name)\n : JS_COMMAND_SOURCE(name);\n\n await writeFile(join(cmdPath, fileName), commandFile);\n\n console.log(\n colors.green(\n `Command ${colors.magenta(name)} created at ${colors.blue(formatPath(`${cmdPath}/${fileName}`))}`,\n ),\n );\n}\n\n/**\n * @private\n * @internal\n */\nexport async function generateEvent(name: string, customPath?: string) {\n const eventPath = join(customPath || EVENTS_DIR, name);\n if (!existsSync(eventPath)) await mkdir(eventPath, { recursive: true });\n\n const ext = determineExtension();\n const isTypeScript = ext === 'ts';\n\n let filename = `event.${ext}`;\n\n if (existsSync(join(eventPath, filename))) {\n const count = (await readdir(eventPath)).length;\n filename = `${String(count).padStart(2, '0')}_${filename}`;\n }\n\n const eventFile = isTypeScript\n ? TS_EVENT_SOURCE(name)\n : JS_EVENT_SOURCE(name);\n\n await writeFile(join(eventPath, filename), eventFile);\n\n console.log(\n colors.green(\n `Event ${colors.magenta(name)} created at ${colors.blue(formatPath(eventPath))}/${colors.magenta(filename)}`,\n ),\n );\n}\n"],"mappings":";;;;;;;;;AAOA,MAAM,YAAYA;AAClB,MAAM,mBAAeC,WAAK,WAAW,kBAAkB;AACvD,MAAM,iBAAaA,WAAK,WAAW,gBAAgB;;;;;AAMnD,MAAM,cAAc,WAClBC,OAAK,QAAQF,wCAAgB,GAAG,CAAC,CAAC,QAAQ,OAAO,GAAG;;;;;AAMtD,SAAS,qBAAqB;CAC5B,WAAOG,mBAAWF,WAAK,WAAW,eAAe,CAAC,IAAI,OAAO;AAC/D;;;;;AAMA,SAAS,kBAAkB,MAAc;CACvC,OAAO;;;WAGE,KAAK;kBACE,KAAK;;;;4CAIqB,KAAK;;;;wCAIT,KAAK;;;AAG7C;;;;;AAMA,SAAS,kBAAkB,MAAc;CACvC,OAAO;;;;WAIE,KAAK;kBACE,KAAK;;;;;;;4CAOqB,KAAK;;;;;;;wCAOT,KAAK;;;AAG7C;;;;;AAMA,SAAS,gBAAgB,MAAc;CACrC,MAAM,YAAY,KAAK,EAAE,CAAC,YAAY,IAAI,KAAK,MAAM,CAAC;CACtD,OAAO;;QAED,UAAU,kBAAkB,KAAK;iBACxB,KAAK;;;iBAGL,UAAU;;AAE3B;;;;;AAMA,SAAS,gBAAgB,MAAc;CACrC,MAAM,YAAY,KAAK,KAAK,EAAE,CAAC,YAAY,IAAI,KAAK,MAAM,CAAC;CAC3D,OAAO;+CACsC,KAAK;;QAE5C,UAAU;iBACD,KAAK;;;iBAGL,UAAU;;AAE3B;;;;;AAMA,eAAsB,gBAAgB,MAAc,YAAqB;CACvE,MAAM,cAAUA,WAAK,cAAc,YAAY;CAC/C,IAAI,KAACE,eAAW,OAAO,GAAG,UAAMC,mBAAM,SAAS,EAAE,WAAW,KAAK,CAAC;CAElE,MAAM,MAAM,mBAAmB;CAC/B,MAAM,eAAe,QAAQ;CAE7B,MAAM,WAAW,GAAG,KAAK,GAAG;CAE5B,QAAID,mBAAWF,WAAK,SAAS,QAAQ,CAAC,GACpC,yBAAM,WAAW,KAAK,iBAAiB;CAGzC,MAAM,cAAc,eAChB,kBAAkB,IAAI,IACtB,kBAAkB,IAAI;CAE1B,UAAMI,2BAAUJ,WAAK,SAAS,QAAQ,GAAG,WAAW;CAEpD,QAAQ,IACNK,6BAAO,MACL,WAAWA,6BAAO,QAAQ,IAAI,EAAE,cAAcA,6BAAO,KAAK,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC,GAChG,CACF;AACF;;;;;AAMA,eAAsB,cAAc,MAAc,YAAqB;CACrE,MAAM,gBAAYL,WAAK,cAAc,YAAY,IAAI;CACrD,IAAI,KAACE,eAAW,SAAS,GAAG,UAAMC,mBAAM,WAAW,EAAE,WAAW,KAAK,CAAC;CAEtE,MAAM,MAAM,mBAAmB;CAC/B,MAAM,eAAe,QAAQ;CAE7B,IAAI,WAAW,SAAS;CAExB,QAAID,mBAAWF,WAAK,WAAW,QAAQ,CAAC,GAAG;EACzC,MAAM,SAAS,UAAMM,qBAAQ,SAAS,EAAC,CAAE;EACzC,WAAW,GAAG,OAAO,KAAK,CAAC,CAAC,SAAS,GAAG,GAAG,EAAE,GAAG;CAClD;CAEA,MAAM,YAAY,eACd,gBAAgB,IAAI,IACpB,gBAAgB,IAAI;CAExB,UAAMF,2BAAUJ,WAAK,WAAW,QAAQ,GAAG,SAAS;CAEpD,QAAQ,IACNK,6BAAO,MACL,SAASA,6BAAO,QAAQ,IAAI,EAAE,cAAcA,6BAAO,KAAK,WAAW,SAAS,CAAC,EAAE,GAAGA,6BAAO,QAAQ,QAAQ,GAC3G,CACF;AACF"}
|
package/dist/cli/information.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_rolldown_runtime = require(
|
|
3
|
-
const require_utils_constants = require(
|
|
4
|
-
const require_version = require(
|
|
2
|
+
const require_rolldown_runtime = require("../rolldown-runtime-AN5ru5iW.js");
|
|
3
|
+
const require_utils_constants = require("../utils/constants.js");
|
|
4
|
+
const require_version = require("../version.js");
|
|
5
5
|
let node_fs = require("node:fs");
|
|
6
6
|
node_fs = require_rolldown_runtime.__toESM(node_fs);
|
|
7
7
|
let node_path = require("node:path");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"information.js","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"information.js","names":["os","execSync","version","commandkitVersion","fs","path","COMMANDKIT_CWD","knownPlugins","findPackageVersion","packageName","packageJsonPath","require","resolve","packageJson","e","basePaths","join","basePath","existsSync","JSON","parse","readFileSync","nodeModulesPath","folders","readdirSync","packageFolder","find","folder","startsWith","replace","getBinaryVersion","binary","toString","trim","showInformation","runtimeName","globalThis","Deno","Bun","info","Platform","process","platform","Arch","arch","Version","Math","round","totalmem","cpus","length","Runtime","Binaries","Node","npm","Yarn","pnpm","commandkit","typescript","rolldown","tsdown","reduce","acc","plugin","Record","output","section","data","Object","entries","key","value","console","log","path","COMMANDKIT_CWD","fs","execSync","os","commandkitVersion"],"sources":["../../src/cli/information.ts"],"sourcesContent":["import os from 'node:os';\nimport { execSync } from 'node:child_process';\nimport { version as commandkitVersion } from '../version';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { COMMANDKIT_CWD } from '../utils/constants';\n\n/**\n * @private\n * @internal\n */\nfunction $getKnownPlugins() {\n 'use macro';\n\n // remove name from the list when that plugin is stable\n const BLACKLISTED = new Set([\n 'commandkit', // core package itself, not a plugin\n 'create-commandkit', // generator, not a plugin\n 'tsconfig', // repo config related, not a plugin\n // the plugins below are TBD\n 'tasks',\n ]);\n\n const { readdirSync, readFileSync } =\n require('node:fs') as typeof import('node:fs');\n const { join } = require('node:path') as typeof path;\n\n const pluginsPath = join(__dirname, '..', '..', '..');\n\n const entries = readdirSync(pluginsPath, { withFileTypes: true }).filter(\n (e) => !BLACKLISTED.has(e.name),\n );\n\n const packages = entries.map((p) =>\n join(p.parentPath, p.name, 'package.json'),\n );\n\n const knownPlugins: string[] = [];\n\n for (const pkg of packages) {\n try {\n const { name } = JSON.parse(readFileSync(pkg, 'utf8'));\n if (name && !BLACKLISTED.has(name.replace('@commandkit/', ''))) {\n knownPlugins.push(name);\n }\n } catch {\n // Ignore errors\n }\n }\n\n return knownPlugins;\n}\n\nconst knownPlugins: string[] = $getKnownPlugins();\n\n/**\n * @private\n * @internal\n */\nfunction findPackageVersion(packageName: string) {\n try {\n const packageJsonPath = require.resolve(`${packageName}/package.json`);\n const packageJson = require(packageJsonPath);\n return packageJson.version;\n } catch (e) {\n try {\n const basePaths = [\n path.join(COMMANDKIT_CWD, 'node_modules', packageName),\n path.join(COMMANDKIT_CWD, '..', '..', 'node_modules', packageName),\n path.join(COMMANDKIT_CWD, '..', '..', '.pnpm', packageName),\n path.join(\n COMMANDKIT_CWD,\n '..',\n '..',\n 'node_modules',\n '.pnpm',\n packageName,\n ),\n ];\n\n for (const basePath of basePaths) {\n const packageJsonPath = path.join(basePath, 'package.json');\n if (fs.existsSync(packageJsonPath)) {\n const packageJson = JSON.parse(\n fs.readFileSync(packageJsonPath, 'utf8'),\n );\n return packageJson.version;\n }\n }\n\n const nodeModulesPath = path.join(\n COMMANDKIT_CWD,\n '..',\n '..',\n 'node_modules',\n '.pnpm',\n );\n if (fs.existsSync(nodeModulesPath)) {\n const folders = fs.readdirSync(nodeModulesPath);\n const packageFolder = folders.find((folder) =>\n folder.startsWith(`${packageName.replace('/', '+')}@`),\n );\n\n if (packageFolder) {\n const packageJsonPath = path.join(\n nodeModulesPath,\n packageFolder,\n 'node_modules',\n packageName,\n 'package.json',\n );\n if (fs.existsSync(packageJsonPath)) {\n const packageJson = JSON.parse(\n fs.readFileSync(packageJsonPath, 'utf8'),\n );\n return packageJson.version;\n }\n }\n }\n\n return null;\n } catch {\n return null;\n }\n }\n}\n\n/**\n * @private\n * @internal\n */\nfunction getBinaryVersion(binary: string) {\n try {\n const version = execSync(`${binary} --version`).toString().trim();\n return version;\n } catch {\n return null;\n }\n}\n\n/**\n * @private\n * @internal\n */\nexport async function showInformation() {\n const runtimeName: string = (() => {\n // @ts-ignore\n if ('Deno' in globalThis && typeof Deno !== 'undefined') return 'Deno';\n // @ts-ignore\n if ('Bun' in globalThis && typeof Bun !== 'undefined') return 'Bun';\n\n return 'Node.js';\n })();\n\n const info = {\n 'Operating System': {\n Platform: process.platform,\n Arch: process.arch,\n Version: os.version(),\n 'Available Memory (MB)': Math.round(os.totalmem() / 1024 / 1024),\n 'Available CPU cores': os.cpus().length,\n },\n Runtime: runtimeName,\n Binaries: {\n Node: process.version,\n npm: getBinaryVersion('npm') || 'N/A',\n Yarn: getBinaryVersion('yarn') || 'N/A',\n pnpm: getBinaryVersion('pnpm') || 'N/A',\n Bun: getBinaryVersion('bun') || 'N/A',\n Deno: (getBinaryVersion('deno') || 'N/A').replace(/\\n|\\r/g, ' '),\n },\n 'Relevant Packages': {\n commandkit: commandkitVersion,\n 'discord.js': findPackageVersion('discord.js') || 'N/A',\n typescript: findPackageVersion('typescript') || 'N/A',\n rolldown: findPackageVersion('rolldown') || 'N/A',\n tsdown: findPackageVersion('tsdown') || 'N/A',\n },\n 'CommandKit Plugins': knownPlugins.reduce(\n (acc, plugin) => {\n acc[plugin] = findPackageVersion(plugin) || 'N/A';\n return acc;\n },\n {} as Record<string, string>,\n ),\n };\n\n let output = '';\n\n for (const [section, data] of Object.entries(info)) {\n output += `${section}:\\n`;\n\n if (typeof data === 'string') {\n output += ` ${data}\\n\\n`;\n continue;\n }\n\n for (const [key, value] of Object.entries(data)) {\n output += ` ${key}: ${value}\\n`;\n }\n output += '\\n';\n }\n\n console.log(output.trim());\n}\n"],"mappings":"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"}
|
package/dist/cli/init.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_commandkit = require(
|
|
3
|
-
const require_plugins_CompilerPlugin = require(
|
|
4
|
-
const require_utils_constants = require(
|
|
5
|
-
const require_utils_types_package = require(
|
|
6
|
-
const require_app_router_CommandsRouter = require(
|
|
7
|
-
require(
|
|
8
|
-
const require_cli_common = require(
|
|
2
|
+
const require_commandkit = require("../commandkit-CzNV2oE8.js");
|
|
3
|
+
const require_plugins_CompilerPlugin = require("../plugins/CompilerPlugin.js");
|
|
4
|
+
const require_utils_constants = require("../utils/constants.js");
|
|
5
|
+
const require_utils_types_package = require("../utils/types-package.js");
|
|
6
|
+
const require_app_router_CommandsRouter = require("../app/router/CommandsRouter.js");
|
|
7
|
+
require("../app/router/index.js");
|
|
8
|
+
const require_cli_common = require("./common.js");
|
|
9
9
|
let node_fs = require("node:fs");
|
|
10
10
|
let node_path = require("node:path");
|
|
11
11
|
|
|
@@ -82,11 +82,12 @@ async function bootstrapCommandkitCLI(argv, options) {
|
|
|
82
82
|
await generateEvent(name);
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
85
|
-
|
|
85
|
+
const valid = Array.from(/* @__PURE__ */ new Set([
|
|
86
86
|
"command",
|
|
87
87
|
"event",
|
|
88
88
|
...Array.from(runtime.getTemplates().keys())
|
|
89
|
-
])).map((t) => `"${t}"`)
|
|
89
|
+
])).map((t) => `"${t}"`);
|
|
90
|
+
require_cli_common.panic(`Template "${template}" not found. Available templates: ${valid.join(", ")}`);
|
|
90
91
|
}
|
|
91
92
|
await templateHandler(args);
|
|
92
93
|
} catch (e) {
|
|
@@ -95,7 +96,8 @@ async function bootstrapCommandkitCLI(argv, options) {
|
|
|
95
96
|
await runtime.destroy();
|
|
96
97
|
}
|
|
97
98
|
});
|
|
98
|
-
|
|
99
|
+
const types = require_utils_types_package.getTypesFilePath();
|
|
100
|
+
if (!(0, node_fs.existsSync)(types)) await require_utils_types_package.generateTypesPackage(true).catch(() => {});
|
|
99
101
|
await program.parseAsync(argv, options);
|
|
100
102
|
}
|
|
101
103
|
function resolveCommandsEntrypoint(cwd) {
|
package/dist/cli/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"init.js","names":["COMMANDKIT_CWD","generateTypesPackage","rewriteCommandDeclaration","CommandsRouter","existsSync","join","loadConfigFile","CompilerPluginRuntime","isCompilerPlugin","getTypesFilePath"],"sources":["../../src/cli/init.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { join } from 'node:path';\nimport {\n COMMANDKIT_ENV_FILE,\n generateTypesPackage,\n getTypesFilePath,\n rewriteCommandDeclaration,\n} from '../utils/types-package';\nimport { loadConfigFile } from '../config/loader';\nimport {\n CompilerPlugin,\n CompilerPluginRuntime,\n isCompilerPlugin,\n} from '../plugins';\nimport { CommandsRouter } from '../app/router';\nimport { panic } from './common';\nimport { COMMANDKIT_CWD } from '../utils/constants';\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(\n argv: string[],\n options?: import('commander').ParseOptions | undefined,\n) {\n process.title = 'CommandKit CLI';\n\n // imports are lazily loaded when the cli is used, instead of loading it with the lib itself\n const { Command } = await import('commander');\n const { bootstrapDevelopmentServer } = await import('./development');\n const { bootstrapProductionServer, createProductionBuild } =\n await import('./production');\n const { generateCommand, generateEvent } = await import('./generators');\n const { version } = await import('../version');\n const { showInformation } = await import('./information');\n const { setCLIEnv } = await import('./env');\n\n const program = new Command('commandkit');\n\n program\n .command('dev')\n .version(version)\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.config);\n });\n\n program\n .command('info')\n .description(\n 'Show information about the system which can be used to report bugs.',\n )\n .action(async () => {\n await showInformation();\n });\n\n program\n .command('start')\n .description(\n 'Start your bot in production mode after running the build command.',\n )\n .option('-c, --config [path]', 'Path to your commandkit config file.')\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('-c, --config [path]', 'Path to your commandkit config file.')\n .action(() => {\n setCLIEnv();\n const options = program.opts();\n return createProductionBuild(options.config);\n });\n\n program\n .command('typegen')\n .description('Generate command type declarations for this project.')\n .option('-c, --config [path]', 'Path to your commandkit config file.')\n .action(async () => {\n setCLIEnv();\n const options = program.opts();\n const cwd = options.config || COMMANDKIT_CWD;\n\n await generateTypesPackage(true);\n\n const commandsEntrypoint = resolveCommandsEntrypoint(cwd);\n\n if (!commandsEntrypoint) {\n await rewriteCommandDeclaration([]);\n return;\n }\n\n const router = new CommandsRouter({\n entrypoint: commandsEntrypoint,\n });\n\n if (!router.isValidPath()) {\n await rewriteCommandDeclaration([]);\n return;\n }\n\n const result = await router.scan();\n const commandNames = Object.values(result.commands).map(\n (cmd) => cmd.name,\n );\n const routeNames = Object.keys(result.compiledRoutes ?? {});\n const names = Array.from(\n new Set([...commandNames, ...routeNames]),\n ).sort();\n\n if (!existsSync(join(cwd, COMMANDKIT_ENV_FILE))) {\n await generateTypesPackage(true);\n }\n\n await rewriteCommandDeclaration(names);\n });\n\n program\n .command('create')\n .description(\n 'Create new files using built-in templates or custom plugin templates',\n )\n .argument(\n '<template>',\n 'The template to use (e.g. command, event, or custom plugin template)',\n )\n .argument('[args...]', 'Additional arguments for the template')\n .action(async (template, args) => {\n setCLIEnv();\n\n // Handle custom plugin templates\n const { plugins } = await loadConfigFile();\n const runtime = new CompilerPluginRuntime(\n plugins.filter((p) => isCompilerPlugin(p)) as CompilerPlugin[],\n true,\n );\n\n try {\n await runtime.init();\n const templateHandler = runtime.getTemplate(template);\n\n if (!templateHandler) {\n // Handle built-in templates\n if (template === 'command') {\n const [name] = args;\n if (!name) {\n panic('Command name is required');\n }\n await generateCommand(name);\n return;\n }\n\n if (template === 'event') {\n const [name] = args;\n if (!name) {\n panic('Event name is required');\n }\n await generateEvent(name);\n return;\n }\n\n const valid = Array.from(\n new Set([\n 'command',\n 'event',\n ...Array.from(runtime.getTemplates().keys()),\n ]),\n ).map((t) => `\"${t}\"`);\n\n panic(\n `Template \"${template}\" not found. Available templates: ${valid.join(', ')}`,\n );\n }\n\n await templateHandler(args);\n } catch (e: any) {\n panic(`Failed to execute template \"${template}\": ${e?.message || e}`);\n } finally {\n await runtime.destroy();\n }\n });\n\n const types = getTypesFilePath();\n\n if (!existsSync(types)) {\n await generateTypesPackage(true).catch(() => {});\n }\n\n await program.parseAsync(argv, options);\n}\n\nfunction resolveCommandsEntrypoint(cwd: string) {\n const sourceLikeRoots = [\n join(cwd, 'src', 'app', 'commands'),\n join(cwd, 'app', 'commands'),\n ];\n\n for (const candidate of sourceLikeRoots) {\n if (existsSync(candidate)) {\n return candidate;\n }\n }\n\n return null;\n}\n"],"mappings":"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"}
|
package/dist/cli/production.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_commandkit = require(
|
|
3
|
-
const require_plugins_CompilerPlugin = require(
|
|
4
|
-
const require_utils_constants = require(
|
|
5
|
-
const require_cli_common = require(
|
|
6
|
-
const require_cli_app_process = require(
|
|
7
|
-
const require_cli_build = require(
|
|
8
|
-
const require_cli_utils = require(
|
|
2
|
+
const require_commandkit = require("../commandkit-CzNV2oE8.js");
|
|
3
|
+
const require_plugins_CompilerPlugin = require("../plugins/CompilerPlugin.js");
|
|
4
|
+
const require_utils_constants = require("../utils/constants.js");
|
|
5
|
+
const require_cli_common = require("./common.js");
|
|
6
|
+
const require_cli_app_process = require("./app-process.js");
|
|
7
|
+
const require_cli_build = require("./build.js");
|
|
8
|
+
const require_cli_utils = require("./utils.js");
|
|
9
9
|
let fs = require("fs");
|
|
10
10
|
|
|
11
11
|
//#region src/cli/production.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"production.js","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"production.js","names":["COMMANDKIT_CWD","loadConfigFile","findEntrypoint","existsSync","createAppProcess","createSpinner","buildApplication","isCompilerPlugin"],"sources":["../../src/cli/production.ts"],"sourcesContent":["import { loadConfigFile } from '../config/loader';\nimport { createAppProcess } from './app-process';\nimport { existsSync } from 'fs';\nimport { findEntrypoint, panic } from './common';\nimport { buildApplication } from './build';\nimport { CompilerPlugin, isCompilerPlugin } from '../plugins';\nimport { createSpinner } from './utils';\nimport { COMMANDKIT_CWD } from '../utils/constants';\n\n/**\n * @private\n * @internal\n */\nexport async function bootstrapProductionServer(configPath?: string) {\n process.env.COMMANDKIT_BOOTSTRAP_MODE = 'production';\n const cwd = configPath || COMMANDKIT_CWD;\n const config = await loadConfigFile(cwd);\n const mainFile = findEntrypoint(config.distDir);\n\n if (!existsSync(mainFile)) {\n panic(\n `Could not locate the entrypoint. Did you forget to build the application? Run 'commandkit build' to build the application first.`,\n );\n }\n\n return createAppProcess(mainFile, cwd, false, config);\n}\n\n/**\n * @private\n * @internal\n */\nexport async function createProductionBuild(configPath?: string) {\n process.env.COMMANDKIT_BOOTSTRAP_MODE = 'production';\n process.env.COMMANDKIT_INTERNAL_IS_CLI_PROCESS = 'true';\n process.env.COMMANDKIT_IS_BUILD ??= 'true';\n const cwd = configPath || COMMANDKIT_CWD;\n const config = await loadConfigFile(cwd);\n\n const spinner = await createSpinner(\n 'Creating an optimized production build\\n',\n );\n\n spinner.start();\n\n await buildApplication({\n configPath: cwd,\n isDev: false,\n plugins: config.plugins.filter((p) =>\n isCompilerPlugin(p),\n ) as CompilerPlugin[],\n rolldownPlugins: config.rolldownPlugins,\n });\n\n spinner.succeed('Production build completed!');\n}\n"],"mappings":";;;;;;;;;;;;;;;AAaA,eAAsB,0BAA0B,YAAqB;CACnE,QAAQ,IAAI,4BAA4B;CACxC,MAAM,MAAM,cAAcA;CAC1B,MAAM,SAAS,MAAMC,kCAAe,GAAG;CACvC,MAAM,WAAWC,kCAAe,OAAO,OAAO;CAE9C,IAAI,KAACC,eAAW,QAAQ,GACtB,yBACE,kIACF;CAGF,OAAOC,yCAAiB,UAAU,KAAK,OAAO,MAAM;AACtD;;;;;AAMA,eAAsB,sBAAsB,YAAqB;CAC/D,QAAQ,IAAI,4BAA4B;CACxC,QAAQ,IAAI,qCAAqC;CACjD,QAAQ,IAAI,wBAAwB;CACpC,MAAM,MAAM,cAAcJ;CAC1B,MAAM,SAAS,MAAMC,kCAAe,GAAG;CAEvC,MAAM,UAAU,MAAMI,gCACpB,0CACF;CAEA,QAAQ,MAAM;CAEd,MAAMC,mCAAiB;EACrB,YAAY;EACZ,OAAO;EACP,SAAS,OAAO,QAAQ,QAAQ,MAC9BC,gDAAiB,CAAC,CACpB;EACA,iBAAiB,OAAO;CAC1B,CAAC;CAED,QAAQ,QAAQ,6BAA6B;AAC/C"}
|
package/dist/cli/type-checker.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_utils_colors = require(
|
|
3
|
-
const require_cli_common = require(
|
|
2
|
+
const require_utils_colors = require("../utils/colors.js");
|
|
3
|
+
const require_cli_common = require("./common.js");
|
|
4
4
|
let node_fs = require("node:fs");
|
|
5
5
|
let node_path = require("node:path");
|
|
6
6
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-checker.js","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"type-checker.js","names":["colors","relative","join","existsSync","loadTypeScript"],"sources":["../../src/cli/type-checker.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { loadTypeScript } from './common';\nimport { join, relative } from 'node:path';\nimport colors from '../utils/colors';\n\nconst TS_NOT_FOUND_ERR = `TypeScript must be installed in order to use the type checker. Please install it using \\`npm install typescript\\` or \\`yarn add typescript\\``;\n\n/**\n * Formats a TypeScript diagnostic message in a pretty, readable format\n * @private\n * @internal\n */\nfunction formatDiagnostic(\n ts: typeof import('typescript'),\n diagnostic: import('typescript').Diagnostic,\n cwd: string,\n): string {\n const messageText = ts.flattenDiagnosticMessageText(\n diagnostic.messageText,\n '\\n',\n );\n\n if (!diagnostic.file) {\n return `${colors.red('error')}: ${messageText}`;\n }\n\n const { line, character } = ts.getLineAndCharacterOfPosition(\n diagnostic.file,\n diagnostic.start!,\n );\n const fileName = relative(cwd, diagnostic.file.fileName);\n const position = `${line + 1}:${character + 1}`;\n const errorCode = diagnostic.code ? `TS${diagnostic.code}` : '';\n\n // Format the error message nicely\n return [\n `${colors.bold(colors.cyan(fileName))}:${colors.bold(colors.yellow(position))} - ${colors.red('error')} ${colors.gray(errorCode)}`,\n `${messageText}`,\n ].join('\\n');\n}\n\n/**\n * Performs a type check on the project using TypeScript.\n * @param path The project root or cwd\n * @private\n * @internal\n */\nexport async function performTypeCheck(path: string) {\n const tsconfigPath = join(path, 'tsconfig.json');\n\n if (!existsSync(tsconfigPath)) return;\n\n const ts = await loadTypeScript(TS_NOT_FOUND_ERR);\n\n // Format host for error reporting\n const formatHost = {\n getCanonicalFileName: (path: string) => path,\n getCurrentDirectory: ts.sys.getCurrentDirectory,\n getNewLine: () => ts.sys.newLine,\n };\n\n // Read tsconfig.json\n const configFile = ts.readConfigFile(tsconfigPath, ts.sys.readFile);\n\n if (configFile.error) {\n console.error(\n colors.red(\n `Error reading tsconfig.json: ${ts.formatDiagnostic(configFile.error, formatHost)}`,\n ),\n );\n process.exit(1);\n }\n\n // Parse the config file\n const parsedConfig = ts.parseJsonConfigFileContent(\n configFile.config,\n ts.sys,\n path,\n );\n\n // Force noEmit to true as we only want type checking\n parsedConfig.options.noEmit = true;\n\n // Create a program\n const program = ts.createProgram({\n rootNames: parsedConfig.fileNames,\n options: parsedConfig.options,\n projectReferences: parsedConfig.projectReferences,\n });\n\n // Get the diagnostics\n const diagnostics = [\n ...program.getOptionsDiagnostics(),\n ...program.getGlobalDiagnostics(),\n ...program.getSyntacticDiagnostics(),\n ...program.getSemanticDiagnostics(),\n ];\n\n // Report any errors\n if (diagnostics.length > 0) {\n console.log('');\n console.error(\n colors.bold(\n colors.red('Type checking failed with the following errors:'),\n ),\n );\n console.log('');\n\n // Group diagnostics by file for better readability\n const byFile = new Map<string, import('typescript').Diagnostic[]>();\n\n for (const diagnostic of diagnostics) {\n const fileName = diagnostic.file ? diagnostic.file.fileName : 'Global';\n if (!byFile.has(fileName)) {\n byFile.set(fileName, []);\n }\n byFile.get(fileName)!.push(diagnostic);\n }\n\n // Pretty-print each diagnostic\n const totalErrors = diagnostics.length;\n let counter = 0;\n\n for (const [_, fileDiags] of byFile) {\n for (const diagnostic of fileDiags) {\n counter++;\n console.log(formatDiagnostic(ts, diagnostic, path));\n // Add separator between errors for better readability, except for the last one\n if (counter < totalErrors) {\n console.log('');\n }\n }\n }\n\n console.log('');\n console.error(\n colors.bold(\n colors.red(`Found ${totalErrors} error${totalErrors > 1 ? 's' : ''}`),\n ),\n );\n console.log('');\n\n process.exit(1);\n }\n\n console.log(colors.green('✓ Type checking completed successfully.'));\n}\n"],"mappings":";;;;;;;AAKA,MAAM,mBAAmB;;;;;;AAOzB,SAAS,iBACP,IACA,YACA,KACQ;CACR,MAAM,cAAc,GAAG,6BACrB,WAAW,aACX,IACF;CAEA,IAAI,CAAC,WAAW,MACd,OAAO,GAAGA,6BAAO,IAAI,OAAO,EAAE,IAAI;CAGpC,MAAM,EAAE,MAAM,cAAc,GAAG,8BAC7B,WAAW,MACX,WAAW,KACb;CACA,MAAM,eAAWC,oBAAS,KAAK,WAAW,KAAK,QAAQ;CACvD,MAAM,WAAW,GAAG,OAAO,EAAE,GAAG,YAAY;CAC5C,MAAM,YAAY,WAAW,OAAO,KAAK,WAAW,SAAS;CAG7D,OAAO,CACL,GAAGD,6BAAO,KAAKA,6BAAO,KAAK,QAAQ,CAAC,EAAE,GAAGA,6BAAO,KAAKA,6BAAO,OAAO,QAAQ,CAAC,EAAE,KAAKA,6BAAO,IAAI,OAAO,EAAE,GAAGA,6BAAO,KAAK,SAAS,KAC/H,GAAG,aACL,CAAC,CAAC,KAAK,IAAI;AACb;;;;;;;AAQA,eAAsB,iBAAiB,MAAc;CACnD,MAAM,mBAAeE,gBAAK,MAAM,eAAe;CAE/C,IAAI,KAACC,oBAAW,YAAY,GAAG;CAE/B,MAAM,KAAK,MAAMC,kCAAe,gBAAgB;CAGhD,MAAM,aAAa;EACjB,uBAAuB,SAAiB;EACxC,qBAAqB,GAAG,IAAI;EAC5B,kBAAkB,GAAG,IAAI;CAC3B;CAGA,MAAM,aAAa,GAAG,eAAe,cAAc,GAAG,IAAI,QAAQ;CAElE,IAAI,WAAW,OAAO;EACpB,QAAQ,MACNJ,6BAAO,IACL,gCAAgC,GAAG,iBAAiB,WAAW,OAAO,UAAU,GAClF,CACF;EACA,QAAQ,KAAK,CAAC;CAChB;CAGA,MAAM,eAAe,GAAG,2BACtB,WAAW,QACX,GAAG,KACH,IACF;CAGA,aAAa,QAAQ,SAAS;CAG9B,MAAM,UAAU,GAAG,cAAc;EAC/B,WAAW,aAAa;EACxB,SAAS,aAAa;EACtB,mBAAmB,aAAa;CAClC,CAAC;CAGD,MAAM,cAAc;EAClB,GAAG,QAAQ,sBAAsB;EACjC,GAAG,QAAQ,qBAAqB;EAChC,GAAG,QAAQ,wBAAwB;EACnC,GAAG,QAAQ,uBAAuB;CACpC;CAGA,IAAI,YAAY,SAAS,GAAG;EAC1B,QAAQ,IAAI,EAAE;EACd,QAAQ,MACNA,6BAAO,KACLA,6BAAO,IAAI,iDAAiD,CAC9D,CACF;EACA,QAAQ,IAAI,EAAE;EAGd,MAAM,yBAAS,IAAI,IAA+C;EAElE,KAAK,MAAM,cAAc,aAAa;GACpC,MAAM,WAAW,WAAW,OAAO,WAAW,KAAK,WAAW;GAC9D,IAAI,CAAC,OAAO,IAAI,QAAQ,GACtB,OAAO,IAAI,UAAU,CAAC,CAAC;GAEzB,OAAO,IAAI,QAAQ,CAAC,CAAE,KAAK,UAAU;EACvC;EAGA,MAAM,cAAc,YAAY;EAChC,IAAI,UAAU;EAEd,KAAK,MAAM,CAAC,GAAG,cAAc,QAC3B,KAAK,MAAM,cAAc,WAAW;GAClC;GACA,QAAQ,IAAI,iBAAiB,IAAI,YAAY,IAAI,CAAC;GAElD,IAAI,UAAU,aACZ,QAAQ,IAAI,EAAE;EAElB;EAGF,QAAQ,IAAI,EAAE;EACd,QAAQ,MACNA,6BAAO,KACLA,6BAAO,IAAI,SAAS,YAAY,QAAQ,cAAc,IAAI,MAAM,IAAI,CACtE,CACF;EACA,QAAQ,IAAI,EAAE;EAEd,QAAQ,KAAK,CAAC;CAChB;CAEA,QAAQ,IAAIA,6BAAO,MAAM,yCAAyC,CAAC;AACrE"}
|
package/dist/cli/utils.js
CHANGED
package/dist/cli/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":[],"sources":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"utils.js","names":[],"sources":["../../src/cli/utils.ts"],"sourcesContent":["import type { Ora } from 'ora';\n\nlet ora: typeof import('ora') | undefined;\n\n/**\n * @private\n * @internal\n */\nexport async function createSpinner(text: string): Promise<Ora> {\n if (!ora) {\n ora = await import('ora');\n }\n\n return (ora.default || ora)({\n text,\n color: 'cyan',\n });\n}\n"],"mappings":";;AAEA,IAAI;;;;;AAMJ,eAAsB,cAAc,MAA4B;CAC9D,IAAI,CAAC,KACH,MAAM,MAAM,OAAO;CAGrB,QAAQ,IAAI,WAAW,IAAG,CAAE;EAC1B;EACA,OAAO;CACT,CAAC;AACH"}
|