@confluxjs/conflux 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -0
- package/dist/cli.cjs +286 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/cli.d.cts +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +284 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands.cjs +0 -0
- package/dist/commands.d.cts +4 -0
- package/dist/commands.d.ts +4 -0
- package/dist/commands.js +1 -0
- package/dist/config.cjs +3 -0
- package/dist/config.d.cts +3 -0
- package/dist/config.d.ts +3 -0
- package/dist/config.js +3 -0
- package/dist/conflux-Bx2wI68U.d.ts +18 -0
- package/dist/conflux-Bx2wI68U.d.ts.map +1 -0
- package/dist/conflux-Cff37YF-.d.cts +18 -0
- package/dist/conflux-Cff37YF-.d.cts.map +1 -0
- package/dist/define-config-Bb-dVG_k.js +33 -0
- package/dist/define-config-Bb-dVG_k.js.map +1 -0
- package/dist/define-config-BcOV1lur.d.cts +7 -0
- package/dist/define-config-BcOV1lur.d.cts.map +1 -0
- package/dist/define-config-BsNwuPZR.d.ts +7 -0
- package/dist/define-config-BsNwuPZR.d.ts.map +1 -0
- package/dist/define-config-DW4WVjfh.cjs +80 -0
- package/dist/define-config-DW4WVjfh.cjs.map +1 -0
- package/dist/dev-runner.cjs +14 -0
- package/dist/dev-runner.cjs.map +1 -0
- package/dist/dev-runner.d.cts +1 -0
- package/dist/dev-runner.d.ts +1 -0
- package/dist/dev-runner.js +15 -0
- package/dist/dev-runner.js.map +1 -0
- package/dist/events.cjs +3 -0
- package/dist/events.d.cts +4 -0
- package/dist/events.d.ts +4 -0
- package/dist/events.js +3 -0
- package/dist/index.cjs +479 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +18 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +469 -0
- package/dist/index.js.map +1 -0
- package/dist/parse-args-73A1_Lee.cjs +42 -0
- package/dist/parse-args-73A1_Lee.cjs.map +1 -0
- package/dist/parse-args-fMvnTEQ2.js +30 -0
- package/dist/parse-args-fMvnTEQ2.js.map +1 -0
- package/dist/pipeline-B7aJQrzJ.cjs +33 -0
- package/dist/pipeline-B7aJQrzJ.cjs.map +1 -0
- package/dist/pipeline-BkDu0cvJ.js +15 -0
- package/dist/pipeline-BkDu0cvJ.js.map +1 -0
- package/dist/run-conflux-B_44EsUH.cjs +586 -0
- package/dist/run-conflux-B_44EsUH.cjs.map +1 -0
- package/dist/run-conflux-DMth5S90.js +518 -0
- package/dist/run-conflux-DMth5S90.js.map +1 -0
- package/dist/runtime.cjs +4 -0
- package/dist/runtime.d.cts +3 -0
- package/dist/runtime.d.ts +3 -0
- package/dist/runtime.js +3 -0
- package/dist/start.cjs +12 -0
- package/dist/start.cjs.map +1 -0
- package/dist/start.d.cts +1 -0
- package/dist/start.d.ts +1 -0
- package/dist/start.js +13 -0
- package/dist/start.js.map +1 -0
- package/dist/state-CCmrZeeU.d.cts +8 -0
- package/dist/state-CCmrZeeU.d.cts.map +1 -0
- package/dist/state-CN_liMII.d.ts +8 -0
- package/dist/state-CN_liMII.d.ts.map +1 -0
- package/dist/state-DJDc7S6k.js +13 -0
- package/dist/state-DJDc7S6k.js.map +1 -0
- package/dist/state-EbW_m9jV.cjs +25 -0
- package/dist/state-EbW_m9jV.cjs.map +1 -0
- package/dist/types-BF-O7UjY.d.cts +20 -0
- package/dist/types-BF-O7UjY.d.cts.map +1 -0
- package/dist/types-BNkZrOSn.d.ts +25 -0
- package/dist/types-BNkZrOSn.d.ts.map +1 -0
- package/dist/types-C642X_95.d.cts +25 -0
- package/dist/types-C642X_95.d.cts.map +1 -0
- package/dist/types-CDgj0pfF.d.cts +46 -0
- package/dist/types-CDgj0pfF.d.cts.map +1 -0
- package/dist/types-CYtE8ckK.d.ts +46 -0
- package/dist/types-CYtE8ckK.d.ts.map +1 -0
- package/dist/types-cu2r7p_e.d.ts +20 -0
- package/dist/types-cu2r7p_e.d.ts.map +1 -0
- package/package.json +107 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-conflux-DMth5S90.js","names":["paths: string[]","out: DiscoveredCommandPaths","after: MessageCommandAfter | undefined","commands: LoadedCommand[]","dirs: string[]","chain: CommandMiddleware[]","client: Client | null","registry: EventHandlerRegistry","handlers: AnyEventHandler[]","state: RuntimeState"],"sources":["../src/loader/directory-modules.ts","../src/commands/discover-paths.ts","../src/commands/validate-registry.ts","../src/commands/load-registry.ts","../src/config/defaults.ts","../src/config/load-config.ts","../src/commands/check-permissions.ts","../src/commands/resolve-middleware.ts","../src/commands/dispatch.ts","../src/commands/register-commands.ts","../src/core/conflux.ts","../src/env/project-env.ts","../src/env/resolve-token.ts","../src/events/pipeline.ts","../src/events/register-handlers.ts","../src/loader/entry-client.ts","../src/loader/event-handlers.ts","../src/runtime/state.ts","../src/runtime/run-conflux.ts"],"sourcesContent":["import { existsSync, readdirSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nconst MODULE_EXTENSIONS = [\".ts\", \".js\", \".mts\", \".mjs\", \".cjs\"] as const;\n\nexport function isLoadableModule(name: string): boolean {\n return MODULE_EXTENSIONS.some((ext) => name.endsWith(ext));\n}\n\nexport function collectDirectoryModulePaths(dir: string): string[] {\n if (!existsSync(dir)) {\n return [];\n }\n const entries = readdirSync(dir, { withFileTypes: true });\n const paths: string[] = [];\n for (const entry of entries) {\n if (!entry.isFile() || !isLoadableModule(entry.name)) {\n continue;\n }\n paths.push(join(dir, entry.name));\n }\n return paths;\n}\n\nexport function collectEventDirectoryModulePaths(dir: string): string[] {\n if (!existsSync(dir)) {\n return [];\n }\n const paths: string[] = [];\n for (const entry of readdirSync(dir, { withFileTypes: true })) {\n if (!entry.isDirectory()) {\n continue;\n }\n const eventDir = join(dir, entry.name);\n const files = readdirSync(eventDir, { withFileTypes: true })\n .filter((file) => file.isFile() && isLoadableModule(file.name))\n .map((file) => file.name)\n .sort((a, b) => a.localeCompare(b));\n for (const file of files) {\n paths.push(join(eventDir, file));\n }\n }\n return paths;\n}\n\nexport async function loadDirectoryModules(dir: string): Promise<void> {\n if (!existsSync(dir)) {\n return;\n }\n const entries = readdirSync(dir, { withFileTypes: true });\n for (const entry of entries) {\n if (!entry.isFile() || !isLoadableModule(entry.name)) {\n continue;\n }\n await import(pathToFileURL(join(dir, entry.name)).href);\n }\n}\n","import { existsSync, readdirSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\n\nimport { isLoadableModule } from \"../loader/directory-modules.js\";\n\nexport type DiscoveredCommandPaths = {\n commandPaths: string[];\n globalMiddlewarePaths: string[];\n directoryMiddlewarePaths: Map<string, string>;\n commandMiddlewarePaths: Map<string, string>;\n};\n\nfunction stem(name: string): string {\n const dot = name.lastIndexOf(\".\");\n return dot === -1 ? name : name.slice(0, dot);\n}\n\nfunction classifyPlusFile(filePath: string, fileName: string, out: DiscoveredCommandPaths): void {\n const base = stem(fileName);\n if (base === \"+global-middleware\") {\n out.globalMiddlewarePaths.push(filePath);\n return;\n }\n if (base === \"+middleware\") {\n out.directoryMiddlewarePaths.set(dirname(filePath), filePath);\n return;\n }\n if (base.startsWith(\"+\") && base.endsWith(\".middleware\")) {\n const commandName = base.slice(1, -\".middleware\".length);\n if (!commandName) {\n throw new Error(`Invalid command middleware file name: ${filePath}`);\n }\n const key = `${dirname(filePath)}\\0${commandName}`;\n out.commandMiddlewarePaths.set(key, filePath);\n return;\n }\n throw new Error(`Unrecognized middleware file: ${filePath}`);\n}\n\nfunction walkDirectory(dir: string, out: DiscoveredCommandPaths): void {\n const entries = readdirSync(dir, { withFileTypes: true });\n for (const entry of entries) {\n const entryPath = join(dir, entry.name);\n if (entry.isDirectory()) {\n walkDirectory(entryPath, out);\n continue;\n }\n if (!entry.isFile() || !isLoadableModule(entry.name)) {\n continue;\n }\n if (entry.name.startsWith(\"+\")) {\n classifyPlusFile(entryPath, entry.name, out);\n continue;\n }\n out.commandPaths.push(entryPath);\n }\n}\n\nexport function discoverCommandPaths(commandsDir: string): DiscoveredCommandPaths {\n const out: DiscoveredCommandPaths = {\n commandPaths: [],\n globalMiddlewarePaths: [],\n directoryMiddlewarePaths: new Map(),\n commandMiddlewarePaths: new Map(),\n };\n if (!existsSync(commandsDir)) {\n return out;\n }\n walkDirectory(commandsDir, out);\n out.commandPaths.sort((a, b) => a.localeCompare(b));\n return out;\n}\n","import type { DiscoveredCommandPaths } from \"./discover-paths.js\";\nimport type { LoadedCommand } from \"./types.js\";\n\nexport function validateDiscoveredMiddleware(\n discovered: DiscoveredCommandPaths,\n commandsDir: string,\n): void {\n if (discovered.globalMiddlewarePaths.length > 1) {\n throw new Error(\n `Only one +global-middleware module is allowed under ${commandsDir}. Found: ${discovered.globalMiddlewarePaths.join(\", \")}`,\n );\n }\n}\n\nexport function validateCommandTriggers(commands: LoadedCommand[]): void {\n const triggerOwners = new Map<string, string>();\n for (const command of commands) {\n const triggers = [command.data.name, ...(command.data.aliases ?? [])];\n for (const trigger of triggers) {\n if (!trigger) {\n throw new Error(`Command at ${command.filePath} has an empty trigger name or alias`);\n }\n const key = trigger.toLowerCase();\n const existing = triggerOwners.get(key);\n if (existing) {\n throw new Error(\n `Duplicate command trigger \"${trigger}\" in ${command.filePath} (already used by ${existing})`,\n );\n }\n triggerOwners.set(key, command.filePath);\n }\n }\n}\n","import { dirname } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nimport { discoverCommandPaths, type DiscoveredCommandPaths } from \"./discover-paths.js\";\nimport type {\n CommandData,\n CommandMiddleware,\n CommandRegistry,\n LoadedCommand,\n MessageCommand,\n MessageCommandAfter,\n} from \"./types.js\";\nimport { validateCommandTriggers, validateDiscoveredMiddleware } from \"./validate-registry.js\";\n\nfunction isCommandData(value: unknown): value is CommandData {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n const data = value as CommandData;\n return typeof data.name === \"string\" && data.name.length > 0;\n}\n\nfunction isMessageCommand(value: unknown): value is MessageCommand {\n return typeof value === \"function\";\n}\n\nfunction readMiddleware(module: Record<string, unknown>): CommandMiddleware {\n const candidate = module.middleware ?? module.default;\n if (!candidate || typeof candidate !== \"object\") {\n throw new Error(\"Middleware module must default-export or export `middleware`\");\n }\n const middleware = candidate as CommandMiddleware;\n if (\n typeof middleware.beforeExecute !== \"function\" ||\n typeof middleware.afterExecute !== \"function\"\n ) {\n throw new Error(\"Middleware must define beforeExecute and afterExecute functions\");\n }\n return middleware;\n}\n\nasync function loadMiddlewareFile(filePath: string): Promise<CommandMiddleware> {\n const module = await import(pathToFileURL(filePath).href);\n try {\n return readMiddleware(module as Record<string, unknown>);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new Error(`${message}: ${filePath}`);\n }\n}\n\nasync function loadCommandFile(filePath: string): Promise<LoadedCommand> {\n const module = await import(pathToFileURL(filePath).href);\n const data = module.data;\n if (!isCommandData(data)) {\n throw new Error(`Command module must export \\`data\\` with a non-empty name: ${filePath}`);\n }\n const message = module.message;\n if (!isMessageCommand(message)) {\n throw new Error(`Command module must export \\`message\\` function: ${filePath}`);\n }\n const namedAfter = module.after;\n const after: MessageCommandAfter | undefined =\n typeof namedAfter === \"function\"\n ? namedAfter\n : typeof message.after === \"function\"\n ? message.after\n : undefined;\n return {\n filePath,\n directory: dirname(filePath),\n data,\n message,\n after,\n };\n}\n\nasync function loadMiddlewareMaps(discovered: DiscoveredCommandPaths): Promise<{\n globalMiddleware: CommandMiddleware | null;\n directoryMiddleware: Map<string, CommandMiddleware>;\n commandMiddleware: Map<string, CommandMiddleware>;\n}> {\n const globalMiddleware =\n discovered.globalMiddlewarePaths.length === 1\n ? await loadMiddlewareFile(discovered.globalMiddlewarePaths[0]!)\n : null;\n const directoryMiddleware = new Map<string, CommandMiddleware>();\n for (const [dir, filePath] of discovered.directoryMiddlewarePaths) {\n directoryMiddleware.set(dir, await loadMiddlewareFile(filePath));\n }\n const commandMiddleware = new Map<string, CommandMiddleware>();\n for (const [key, filePath] of discovered.commandMiddlewarePaths) {\n commandMiddleware.set(key, await loadMiddlewareFile(filePath));\n }\n return { globalMiddleware, directoryMiddleware, commandMiddleware };\n}\n\nexport async function loadCommandRegistry(commandsDir: string): Promise<CommandRegistry> {\n const discovered = discoverCommandPaths(commandsDir);\n validateDiscoveredMiddleware(discovered, commandsDir);\n const commands: LoadedCommand[] = [];\n for (const filePath of discovered.commandPaths) {\n commands.push(await loadCommandFile(filePath));\n }\n validateCommandTriggers(commands);\n const middleware = await loadMiddlewareMaps(discovered);\n const byTrigger = new Map<string, LoadedCommand>();\n for (const command of commands) {\n byTrigger.set(command.data.name.toLowerCase(), command);\n for (const alias of command.data.aliases ?? []) {\n byTrigger.set(alias.toLowerCase(), command);\n }\n }\n return {\n commands,\n byTrigger,\n ...middleware,\n };\n}\n","import { resolve } from \"node:path\";\n\nimport type { ConfluxUserConfig, ResolvedConfluxConfig } from \"./types.js\";\n\nexport const CONFIG_FILENAMES = [\n \"conflux.config.ts\",\n \"conflux.config.js\",\n \"conflux.config.mjs\",\n \"conflux.config.cjs\",\n \"conflux.config.mts\",\n \"conflux.config.cts\",\n] as const;\n\nexport function resolveConfluxConfig(\n config: ConfluxUserConfig,\n root: string,\n): ResolvedConfluxConfig {\n const resolvedRoot = resolve(root, config.root ?? \".\");\n return {\n root: resolvedRoot,\n outDir: resolve(resolvedRoot, config.outDir ?? \"dist\"),\n entry: resolve(resolvedRoot, config.entry ?? \"src/index.ts\"),\n commandsDir: resolve(resolvedRoot, config.commandsDir ?? \"src/commands\"),\n eventsDir: resolve(resolvedRoot, config.eventsDir ?? \"src/events\"),\n token: config.token,\n env: config.env,\n };\n}\n","import { existsSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nimport { CONFIG_FILENAMES, resolveConfluxConfig } from \"./defaults.js\";\nimport type { ConfluxUserConfig, ResolvedConfluxConfig } from \"./types.js\";\n\nfunction isResolvedConfig(value: unknown): value is ResolvedConfluxConfig {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n const record = value as Record<string, unknown>;\n return (\n typeof record.root === \"string\" &&\n typeof record.entry === \"string\" &&\n typeof record.outDir === \"string\"\n );\n}\n\nexport function findConfigPath(root: string): string | null {\n for (const name of CONFIG_FILENAMES) {\n const path = join(root, name);\n if (existsSync(path)) {\n return path;\n }\n }\n return null;\n}\n\nexport async function loadConfluxConfig(root: string): Promise<ResolvedConfluxConfig> {\n const configPath = findConfigPath(root);\n if (!configPath) {\n return resolveConfluxConfig({}, root);\n }\n const imported = await import(pathToFileURL(configPath).href);\n const exported = imported.default ?? imported;\n if (typeof exported === \"function\") {\n const result = await exported();\n if (isResolvedConfig(result)) {\n return result;\n }\n return resolveConfluxConfig(result as ConfluxUserConfig, root);\n }\n if (isResolvedConfig(exported)) {\n return exported;\n }\n return resolveConfluxConfig(exported as ConfluxUserConfig, root);\n}\n","import type { PermissionResolvable } from \"@fluxerjs/core\";\nimport type { Message } from \"@fluxerjs/core\";\nimport { PermissionsBitField } from \"@fluxerjs/core\";\n\nfunction memberHasPermissions(\n permissions: PermissionsBitField | null | undefined,\n required: PermissionResolvable[],\n): boolean {\n if (required.length === 0) {\n return true;\n }\n if (!permissions) {\n return false;\n }\n return permissions.has(required as PermissionResolvable);\n}\n\nexport async function checkCommandPermissions(\n message: Message,\n userPermissions: PermissionResolvable[] | undefined,\n botPermissions: PermissionResolvable[] | undefined,\n): Promise<boolean> {\n const guild = message.guild;\n if (!guild) {\n if (userPermissions?.length || botPermissions?.length) {\n return false;\n }\n return true;\n }\n if (userPermissions?.length) {\n const member = await guild.members.resolve(message.author.id);\n if (!memberHasPermissions(member.permissions, userPermissions)) {\n return false;\n }\n }\n if (botPermissions?.length) {\n const me = guild.members.me ?? (await guild.members.fetchMe().catch(() => null));\n if (!memberHasPermissions(me?.permissions, botPermissions)) {\n return false;\n }\n }\n return true;\n}\n","import { dirname } from \"node:path\";\n\nimport type { CommandMiddleware, CommandRegistry, LoadedCommand } from \"./types.js\";\n\nfunction directoryChain(commandsDir: string, commandDir: string): string[] {\n const dirs: string[] = [];\n let current = commandDir;\n while (true) {\n dirs.unshift(current);\n if (current === commandsDir) {\n break;\n }\n current = dirname(current);\n }\n return dirs;\n}\n\nexport function resolveMiddlewareChain(\n registry: CommandRegistry,\n command: LoadedCommand,\n commandsDir: string,\n): CommandMiddleware[] {\n const chain: CommandMiddleware[] = [];\n if (registry.globalMiddleware) {\n chain.push(registry.globalMiddleware);\n }\n for (const dir of directoryChain(commandsDir, command.directory)) {\n const middleware = registry.directoryMiddleware.get(dir);\n if (middleware) {\n chain.push(middleware);\n }\n }\n const commandKey = `${command.directory}\\0${command.data.name}`;\n const commandMiddleware = registry.commandMiddleware.get(commandKey);\n if (commandMiddleware) {\n chain.push(commandMiddleware);\n }\n return chain;\n}\n","import type { Client, Message } from \"@fluxerjs/core\";\nimport { parsePrefixCommand } from \"@fluxerjs/core\";\n\nimport type { Conflux } from \"../core/conflux.js\";\nimport { checkCommandPermissions } from \"./check-permissions.js\";\nimport { resolveMiddlewareChain } from \"./resolve-middleware.js\";\nimport type { CommandContext, CommandRegistry } from \"./types.js\";\n\nfunction parseWithPrefixes(\n content: string,\n prefixes: string[],\n): { command: string; args: string[] } | null {\n for (const prefix of prefixes) {\n const parsed = parsePrefixCommand(content, prefix);\n if (parsed) {\n return parsed;\n }\n }\n return null;\n}\n\nfunction passesGuildFilter(message: Message, guilds: string[] | undefined): boolean {\n if (!guilds?.length) {\n return true;\n }\n if (!message.guildId) {\n return true;\n }\n return guilds.includes(message.guildId);\n}\n\nfunction createCommandContext(\n message: Message,\n client: Client,\n conflux: Conflux,\n commandName: string,\n args: string[],\n data: CommandContext[\"data\"],\n): CommandContext {\n return {\n message,\n client,\n conflux,\n data,\n commandName,\n args: () => args,\n };\n}\n\nexport async function dispatchPrefixCommand(\n message: Message,\n client: Client,\n conflux: Conflux,\n registry: CommandRegistry,\n commandsDir: string,\n): Promise<void> {\n if (message.author.bot) {\n return;\n }\n const prefixes = await conflux.resolvePrefixes();\n const parsed = parseWithPrefixes(message.content, prefixes);\n if (!parsed) {\n return;\n }\n const command = registry.byTrigger.get(parsed.command.toLowerCase());\n if (!command) {\n return;\n }\n if (!passesGuildFilter(message, command.data.guilds)) {\n return;\n }\n const allowed = await checkCommandPermissions(\n message,\n command.data.userPermissions,\n command.data.botPermissions,\n );\n if (!allowed) {\n return;\n }\n const ctx = createCommandContext(\n message,\n client,\n conflux,\n parsed.command,\n parsed.args,\n command.data,\n );\n const middlewares = resolveMiddlewareChain(registry, command, commandsDir);\n for (const middleware of middlewares) {\n await middleware.beforeExecute(ctx);\n }\n await command.message(ctx);\n if (command.after) {\n await command.after(ctx);\n }\n for (let i = middlewares.length - 1; i >= 0; i -= 1) {\n await middlewares[i]!.afterExecute(ctx);\n }\n}\n","import type { Client } from \"@fluxerjs/core\";\n\nimport type { Conflux } from \"../core/conflux.js\";\nimport { dispatchPrefixCommand } from \"./dispatch.js\";\nimport type { CommandRegistry } from \"./types.js\";\n\nexport function registerConfluxCommands(\n client: Client,\n conflux: Conflux,\n registry: CommandRegistry,\n commandsDir: string,\n): void {\n client.on(\"messageCreate\", (message) => {\n void dispatchPrefixCommand(message, client, conflux, registry, commandsDir);\n });\n}\n","import type { Client } from \"@fluxerjs/core\";\n\nimport type { ConfluxOptions } from \"../config/types.js\";\n\nexport type PrefixResolver = () => string | string[] | Promise<string | string[]>;\n\nexport type ConfluxConfigure = (conflux: Conflux) => void | Promise<void>;\n\nexport class Conflux {\n readonly options: ConfluxOptions;\n client: Client | null = null;\n private prefixResolver: PrefixResolver | null = null;\n\n constructor(options: ConfluxOptions = {}) {\n this.options = options;\n }\n\n setPrefix(resolver: PrefixResolver): void {\n this.prefixResolver = resolver;\n }\n\n async resolvePrefixes(): Promise<string[]> {\n if (!this.prefixResolver) {\n return [\"!\"];\n }\n const result = await this.prefixResolver();\n return Array.isArray(result) ? result : [result];\n }\n}\n\nexport function createConflux(options?: ConfluxOptions): Conflux {\n return new Conflux(options ?? {});\n}\n","import { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\n\nfunction parseEnvLine(line: string): [string, string] | null {\n const trimmed = line.trim();\n if (!trimmed || trimmed.startsWith(\"#\")) {\n return null;\n }\n const exportPrefix = trimmed.startsWith(\"export \") ? trimmed.slice(7).trim() : trimmed;\n const eq = exportPrefix.indexOf(\"=\");\n if (eq === -1) {\n return null;\n }\n const key = exportPrefix.slice(0, eq).trim();\n let value = exportPrefix.slice(eq + 1).trim();\n if (\n (value.startsWith('\"') && value.endsWith('\"')) ||\n (value.startsWith(\"'\") && value.endsWith(\"'\"))\n ) {\n value = value.slice(1, -1);\n }\n return [key, value];\n}\n\nfunction loadEnvFile(path: string): void {\n if (!existsSync(path)) {\n return;\n }\n const content = readFileSync(path, \"utf8\");\n for (const line of content.split(/\\r?\\n/)) {\n const parsed = parseEnvLine(line);\n if (!parsed) {\n continue;\n }\n const [key, value] = parsed;\n if (process.env[key] === undefined) {\n process.env[key] = value;\n }\n }\n}\n\nexport function loadProjectEnv(root: string): void {\n loadEnvFile(join(root, \".env\"));\n loadEnvFile(join(root, \".env.local\"));\n}\n","import type { ResolvedConfluxConfig } from \"../config/types.js\";\n\nexport const TOKEN_ENV_CANDIDATES = [\"FLUXER_BOT_TOKEN\", \"BOT_TOKEN\", \"TOKEN\"] as const;\n\nexport function resolveBotToken(config: ResolvedConfluxConfig): string {\n if (config.token) {\n return config.token;\n }\n if (config.env) {\n const fromNamed = process.env[config.env];\n if (fromNamed) {\n return fromNamed;\n }\n throw new Error(\n `Bot token env var \"${config.env}\" is not set (check .env or your environment)`,\n );\n }\n for (const name of TOKEN_ENV_CANDIDATES) {\n const value = process.env[name];\n if (value) {\n return value;\n }\n }\n throw new Error(\n `No bot token found. Set one of ${TOKEN_ENV_CANDIDATES.join(\", \")} in .env or use token/env in conflux.config`,\n );\n}\n","let eventsHalted = false;\n\nexport function resetEventPipeline(): void {\n eventsHalted = false;\n}\n\nexport function stopAllEvents(): void {\n eventsHalted = true;\n}\n\nexport function isEventPipelineHalted(): boolean {\n return eventsHalted;\n}\n","import type { Client } from \"@fluxerjs/core\";\n\nimport type { Conflux } from \"../core/conflux.js\";\nimport { isEventPipelineHalted, stopAllEvents } from \"./pipeline.js\";\nimport type { AnyEventHandler, EventHandlerContext, EventHandlerRegistry } from \"./types.js\";\n\nfunction createHandlerContext(client: Client, conflux: Conflux): EventHandlerContext {\n return {\n client,\n conflux,\n stopAllEvents,\n };\n}\n\nasync function runHandlerBatch(\n handlers: AnyEventHandler[],\n fluxerArgs: unknown[],\n ctx: EventHandlerContext,\n): Promise<void> {\n for (const handler of handlers) {\n if (isEventPipelineHalted()) {\n break;\n }\n await handler(...fluxerArgs, ctx);\n }\n}\n\nexport function registerConfluxEventHandlers(\n client: Client,\n conflux: Conflux,\n registry: EventHandlerRegistry,\n): void {\n for (const [eventName, handlers] of registry) {\n client.on(eventName, (...fluxerArgs: unknown[]) => {\n if (isEventPipelineHalted()) {\n return;\n }\n const ctx = createHandlerContext(client, conflux);\n void runHandlerBatch(handlers, fluxerArgs, ctx);\n });\n }\n}\n","import { pathToFileURL } from \"node:url\";\n\nimport { Client } from \"@fluxerjs/core\";\n\nimport type { Conflux } from \"../core/conflux.js\";\n\nfunction isFluxerClient(value: unknown): value is Client {\n if (value instanceof Client) {\n return true;\n }\n if (!value || typeof value !== \"object\") {\n return false;\n }\n const candidate = value as Record<string, unknown>;\n return (\n typeof candidate.login === \"function\" &&\n typeof candidate.on === \"function\" &&\n typeof candidate.once === \"function\"\n );\n}\n\nexport type EntryModule = {\n client: Client;\n configure?: (conflux: Conflux) => void | Promise<void>;\n};\n\nexport async function loadEntryModule(entryPath: string): Promise<EntryModule> {\n const entryModule = await import(pathToFileURL(entryPath).href);\n const namedExport = entryModule.client;\n let client: Client | null = null;\n if (isFluxerClient(namedExport)) {\n client = namedExport;\n } else if (isFluxerClient(entryModule.default)) {\n client = entryModule.default;\n }\n if (!client) {\n throw new Error(\n `Conflux entry must export a @fluxerjs/core Client as named export \\`client\\` or as default export: ${entryPath}`,\n );\n }\n const configure = entryModule.configure;\n if (configure !== undefined && typeof configure !== \"function\") {\n throw new Error(`Conflux entry export \\`configure\\` must be a function: ${entryPath}`);\n }\n return { client, configure };\n}\n\nexport async function loadEntryClient(entryPath: string): Promise<Client> {\n const entry = await loadEntryModule(entryPath);\n return entry.client;\n}\n","import { existsSync, readdirSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nimport { Events } from \"@fluxerjs/core\";\n\nimport type { FluxerClientEventName } from \"../events/fluxer-events.js\";\nimport type { AnyEventHandler, EventHandlerRegistry } from \"../events/types.js\";\nimport { isLoadableModule } from \"./directory-modules.js\";\n\nconst FLUXER_EVENT_NAMES = new Set<string>(Object.values(Events));\n\nfunction isAnyEventHandler(value: unknown): value is AnyEventHandler {\n return typeof value === \"function\";\n}\n\nfunction listEventNames(eventsDir: string): string[] {\n if (!existsSync(eventsDir)) {\n return [];\n }\n return readdirSync(eventsDir, { withFileTypes: true })\n .filter((entry) => entry.isDirectory())\n .map((entry) => entry.name)\n .sort((a, b) => a.localeCompare(b));\n}\n\nfunction sortedHandlerFiles(eventDir: string): string[] {\n return readdirSync(eventDir, { withFileTypes: true })\n .filter((entry) => entry.isFile() && isLoadableModule(entry.name))\n .map((entry) => entry.name)\n .sort((a, b) => a.localeCompare(b))\n .map((name) => join(eventDir, name));\n}\n\nfunction assertKnownEventName(eventName: string, eventsDir: string): void {\n if (!FLUXER_EVENT_NAMES.has(eventName)) {\n throw new Error(\n `Unknown event folder \"${eventName}\" under ${eventsDir}. Name the folder with a Fluxer event string (for example ready, messageCreate). See Events in @fluxerjs/core.`,\n );\n }\n}\n\nexport async function loadEventHandlerRegistry(eventsDir: string): Promise<EventHandlerRegistry> {\n const registry: EventHandlerRegistry = new Map();\n for (const eventName of listEventNames(eventsDir)) {\n assertKnownEventName(eventName, eventsDir);\n const eventDir = join(eventsDir, eventName);\n const handlers: AnyEventHandler[] = [];\n for (const filePath of sortedHandlerFiles(eventDir)) {\n const module = await import(pathToFileURL(filePath).href);\n const handler = module.default;\n if (!isAnyEventHandler(handler)) {\n throw new Error(`Event handler must default-export a function: ${filePath}`);\n }\n handlers.push(handler);\n }\n if (handlers.length > 0) {\n registry.set(eventName as FluxerClientEventName, handlers);\n }\n }\n return registry;\n}\n","import type { ResolvedConfluxConfig } from \"../config/types.js\";\n\ntype RuntimeState = {\n config: ResolvedConfluxConfig | null;\n};\n\nconst state: RuntimeState = {\n config: null,\n};\n\nexport function setConfig(config: ResolvedConfluxConfig): void {\n state.config = config;\n}\n\nexport function getConfig(): ResolvedConfluxConfig {\n if (!state.config) {\n throw new Error(\"Conflux runtime is not initialized. Run `conflux run` first.\");\n }\n return state.config;\n}\n","import { existsSync } from \"node:fs\";\n\nimport { loadCommandRegistry } from \"../commands/load-registry.js\";\nimport { registerConfluxCommands } from \"../commands/register-commands.js\";\nimport { loadConfluxConfig } from \"../config/load-config.js\";\nimport type { ConfluxOptions } from \"../config/types.js\";\nimport { Conflux } from \"../core/conflux.js\";\nimport { loadProjectEnv, resolveBotToken } from \"../env/index.js\";\nimport { resetEventPipeline } from \"../events/pipeline.js\";\nimport { registerConfluxEventHandlers } from \"../events/register-handlers.js\";\nimport { loadEntryModule, loadEventHandlerRegistry } from \"../loader/index.js\";\nimport { setConfig } from \"./state.js\";\n\nexport type RunConfluxOptions = ConfluxOptions & {\n entry?: string;\n eventsDir?: string;\n commandsDir?: string;\n production?: boolean;\n};\n\nexport async function runConflux(options: RunConfluxOptions = {}): Promise<Conflux> {\n const root = options.root ?? process.cwd();\n if (options.production) {\n process.env.NODE_ENV = \"production\";\n }\n loadProjectEnv(root);\n const loaded = await loadConfluxConfig(root);\n const config = {\n ...loaded,\n entry: options.entry ?? loaded.entry,\n eventsDir: options.eventsDir ?? loaded.eventsDir,\n commandsDir: options.commandsDir ?? loaded.commandsDir,\n };\n const token = resolveBotToken(config);\n setConfig(config);\n resetEventPipeline();\n if (!existsSync(config.entry)) {\n throw new Error(`Conflux entry not found: ${config.entry}`);\n }\n const { client, configure } = await loadEntryModule(config.entry);\n const conflux = new Conflux({ root: config.root });\n conflux.client = client;\n await configure?.(conflux);\n const commandRegistry = await loadCommandRegistry(config.commandsDir);\n const eventHandlers = await loadEventHandlerRegistry(config.eventsDir);\n registerConfluxEventHandlers(client, conflux, eventHandlers);\n registerConfluxCommands(client, conflux, commandRegistry, config.commandsDir);\n await client.login(token);\n return conflux;\n}\n"],"mappings":"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"}
|
package/dist/runtime.cjs
ADDED
package/dist/runtime.js
ADDED
package/dist/start.cjs
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const require_run_conflux = require('./run-conflux-B_44EsUH.cjs');
|
|
3
|
+
|
|
4
|
+
//#region src/cli/start.ts
|
|
5
|
+
require_run_conflux.runConflux().catch((error) => {
|
|
6
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
7
|
+
console.error(message);
|
|
8
|
+
process.exit(1);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
//# sourceMappingURL=start.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.cjs","names":["runConflux"],"sources":["../src/cli/start.ts"],"sourcesContent":["import { runConflux } from \"../runtime/run-conflux.js\";\n\nrunConflux().catch((error: unknown) => {\n const message = error instanceof Error ? error.message : String(error);\n console.error(message);\n process.exit(1);\n});\n"],"mappings":";;;;AAEAA,gCAAY,CAAC,OAAO,UAAmB;CACrC,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;AACtE,SAAQ,MAAM,QAAQ;AACtB,SAAQ,KAAK,EAAE;EACf"}
|
package/dist/start.d.cts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
package/dist/start.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
package/dist/start.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { t as runConflux } from "./run-conflux-DMth5S90.js";
|
|
3
|
+
|
|
4
|
+
//#region src/cli/start.ts
|
|
5
|
+
runConflux().catch((error) => {
|
|
6
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
7
|
+
console.error(message);
|
|
8
|
+
process.exit(1);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
export { };
|
|
13
|
+
//# sourceMappingURL=start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.js","names":[],"sources":["../src/cli/start.ts"],"sourcesContent":["import { runConflux } from \"../runtime/run-conflux.js\";\n\nrunConflux().catch((error: unknown) => {\n const message = error instanceof Error ? error.message : String(error);\n console.error(message);\n process.exit(1);\n});\n"],"mappings":";;;;AAEA,YAAY,CAAC,OAAO,UAAmB;CACrC,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;AACtE,SAAQ,MAAM,QAAQ;AACtB,SAAQ,KAAK,EAAE;EACf"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { r as ResolvedConfluxConfig } from "./types-C642X_95.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/runtime/state.d.ts
|
|
4
|
+
declare function setConfig(config: ResolvedConfluxConfig): void;
|
|
5
|
+
declare function getConfig(): ResolvedConfluxConfig;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { setConfig as n, getConfig as t };
|
|
8
|
+
//# sourceMappingURL=state-CCmrZeeU.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-CCmrZeeU.d.cts","names":[],"sources":["../src/runtime/state.ts"],"sourcesContent":[],"mappings":";;;iBAUgB,SAAA,SAAkB;iBAIlB,SAAA,CAAA,GAAa"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { r as ResolvedConfluxConfig } from "./types-BNkZrOSn.js";
|
|
2
|
+
|
|
3
|
+
//#region src/runtime/state.d.ts
|
|
4
|
+
declare function setConfig(config: ResolvedConfluxConfig): void;
|
|
5
|
+
declare function getConfig(): ResolvedConfluxConfig;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { setConfig as n, getConfig as t };
|
|
8
|
+
//# sourceMappingURL=state-CN_liMII.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-CN_liMII.d.ts","names":[],"sources":["../src/runtime/state.ts"],"sourcesContent":[],"mappings":";;;iBAUgB,SAAA,SAAkB;iBAIlB,SAAA,CAAA,GAAa"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/runtime/state.ts
|
|
2
|
+
const state = { config: null };
|
|
3
|
+
function setConfig(config) {
|
|
4
|
+
state.config = config;
|
|
5
|
+
}
|
|
6
|
+
function getConfig() {
|
|
7
|
+
if (!state.config) throw new Error("Conflux runtime is not initialized. Run `conflux run` first.");
|
|
8
|
+
return state.config;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
//#endregion
|
|
12
|
+
export { setConfig as n, getConfig as t };
|
|
13
|
+
//# sourceMappingURL=state-DJDc7S6k.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-DJDc7S6k.js","names":["state: RuntimeState"],"sources":["../src/runtime/state.ts"],"sourcesContent":["import type { ResolvedConfluxConfig } from \"../config/types.js\";\n\ntype RuntimeState = {\n config: ResolvedConfluxConfig | null;\n};\n\nconst state: RuntimeState = {\n config: null,\n};\n\nexport function setConfig(config: ResolvedConfluxConfig): void {\n state.config = config;\n}\n\nexport function getConfig(): ResolvedConfluxConfig {\n if (!state.config) {\n throw new Error(\"Conflux runtime is not initialized. Run `conflux run` first.\");\n }\n return state.config;\n}\n"],"mappings":";AAMA,MAAMA,QAAsB,EAC1B,QAAQ,MACT;AAED,SAAgB,UAAU,QAAqC;AAC7D,OAAM,SAAS;;AAGjB,SAAgB,YAAmC;AACjD,KAAI,CAAC,MAAM,OACT,OAAM,IAAI,MAAM,+DAA+D;AAEjF,QAAO,MAAM"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/runtime/state.ts
|
|
3
|
+
const state = { config: null };
|
|
4
|
+
function setConfig(config) {
|
|
5
|
+
state.config = config;
|
|
6
|
+
}
|
|
7
|
+
function getConfig() {
|
|
8
|
+
if (!state.config) throw new Error("Conflux runtime is not initialized. Run `conflux run` first.");
|
|
9
|
+
return state.config;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
//#endregion
|
|
13
|
+
Object.defineProperty(exports, 'getConfig', {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () {
|
|
16
|
+
return getConfig;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, 'setConfig', {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () {
|
|
22
|
+
return setConfig;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=state-EbW_m9jV.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-EbW_m9jV.cjs","names":["state: RuntimeState"],"sources":["../src/runtime/state.ts"],"sourcesContent":["import type { ResolvedConfluxConfig } from \"../config/types.js\";\n\ntype RuntimeState = {\n config: ResolvedConfluxConfig | null;\n};\n\nconst state: RuntimeState = {\n config: null,\n};\n\nexport function setConfig(config: ResolvedConfluxConfig): void {\n state.config = config;\n}\n\nexport function getConfig(): ResolvedConfluxConfig {\n if (!state.config) {\n throw new Error(\"Conflux runtime is not initialized. Run `conflux run` first.\");\n }\n return state.config;\n}\n"],"mappings":";;AAMA,MAAMA,QAAsB,EAC1B,QAAQ,MACT;AAED,SAAgB,UAAU,QAAqC;AAC7D,OAAM,SAAS;;AAGjB,SAAgB,YAAmC;AACjD,KAAI,CAAC,MAAM,OACT,OAAM,IAAI,MAAM,+DAA+D;AAEjF,QAAO,MAAM"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { t as Conflux } from "./conflux-Cff37YF-.cjs";
|
|
2
|
+
import { Client, ClientEvents } from "@fluxerjs/core";
|
|
3
|
+
|
|
4
|
+
//#region src/events/pipeline.d.ts
|
|
5
|
+
declare function stopAllEvents(): void;
|
|
6
|
+
//#endregion
|
|
7
|
+
//#region src/events/fluxer-events.d.ts
|
|
8
|
+
type FluxerClientEventName = keyof ClientEvents;
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/events/types.d.ts
|
|
11
|
+
type EventHandlerContext = {
|
|
12
|
+
client: Client;
|
|
13
|
+
conflux: Conflux;
|
|
14
|
+
stopAllEvents: () => void;
|
|
15
|
+
};
|
|
16
|
+
type EventHandler<K extends FluxerClientEventName = FluxerClientEventName> = (...args: [...ClientEvents[K], EventHandlerContext]) => void | Promise<void>;
|
|
17
|
+
type AnyEventHandler = (...args: unknown[]) => void | Promise<void>;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { stopAllEvents as a, FluxerClientEventName as i, EventHandler as n, EventHandlerContext as r, AnyEventHandler as t };
|
|
20
|
+
//# sourceMappingURL=types-BF-O7UjY.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-BF-O7UjY.d.cts","names":[],"sources":["../src/events/pipeline.ts","../src/events/fluxer-events.ts","../src/events/types.ts"],"sourcesContent":[],"mappings":";;;;iBAMgB,aAAA,CAAA;;;KCJJ,qBAAA,SAA8B;;;ADI1B,KECJ,mBAAA,GFDiB;UEEnB;WACC;;ADPX,CAAA;KCWY,uBAAuB,wBAAwB,uCAC5C,aAAa,IAAI,gCACpB;KAEA,eAAA,kCAAiD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/config/types.d.ts
|
|
2
|
+
type ConfluxUserConfig = {
|
|
3
|
+
root?: string;
|
|
4
|
+
outDir?: string;
|
|
5
|
+
entry?: string;
|
|
6
|
+
commandsDir?: string;
|
|
7
|
+
eventsDir?: string;
|
|
8
|
+
token?: string;
|
|
9
|
+
env?: string;
|
|
10
|
+
};
|
|
11
|
+
type ResolvedConfluxConfig = {
|
|
12
|
+
root: string;
|
|
13
|
+
outDir: string;
|
|
14
|
+
entry: string;
|
|
15
|
+
commandsDir: string;
|
|
16
|
+
eventsDir: string;
|
|
17
|
+
token?: string;
|
|
18
|
+
env?: string;
|
|
19
|
+
};
|
|
20
|
+
type ConfluxOptions = {
|
|
21
|
+
root?: string;
|
|
22
|
+
};
|
|
23
|
+
//#endregion
|
|
24
|
+
export { ConfluxUserConfig as n, ResolvedConfluxConfig as r, ConfluxOptions as t };
|
|
25
|
+
//# sourceMappingURL=types-BNkZrOSn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-BNkZrOSn.d.ts","names":[],"sources":["../src/config/types.ts"],"sourcesContent":[],"mappings":";KAAY,iBAAA;EAAA,IAAA,CAAA,EAAA,MAAA;EAUA,MAAA,CAAA,EAAA,MAAA;EAUA,KAAA,CAAA,EAAA,MAAA;;;;;;KAVA,qBAAA;;;;;;;;;KAUA,cAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/config/types.d.ts
|
|
2
|
+
type ConfluxUserConfig = {
|
|
3
|
+
root?: string;
|
|
4
|
+
outDir?: string;
|
|
5
|
+
entry?: string;
|
|
6
|
+
commandsDir?: string;
|
|
7
|
+
eventsDir?: string;
|
|
8
|
+
token?: string;
|
|
9
|
+
env?: string;
|
|
10
|
+
};
|
|
11
|
+
type ResolvedConfluxConfig = {
|
|
12
|
+
root: string;
|
|
13
|
+
outDir: string;
|
|
14
|
+
entry: string;
|
|
15
|
+
commandsDir: string;
|
|
16
|
+
eventsDir: string;
|
|
17
|
+
token?: string;
|
|
18
|
+
env?: string;
|
|
19
|
+
};
|
|
20
|
+
type ConfluxOptions = {
|
|
21
|
+
root?: string;
|
|
22
|
+
};
|
|
23
|
+
//#endregion
|
|
24
|
+
export { ConfluxUserConfig as n, ResolvedConfluxConfig as r, ConfluxOptions as t };
|
|
25
|
+
//# sourceMappingURL=types-C642X_95.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-C642X_95.d.cts","names":[],"sources":["../src/config/types.ts"],"sourcesContent":[],"mappings":";KAAY,iBAAA;EAAA,IAAA,CAAA,EAAA,MAAA;EAUA,MAAA,CAAA,EAAA,MAAA;EAUA,KAAA,CAAA,EAAA,MAAA;;;;;;KAVA,qBAAA;;;;;;;;;KAUA,cAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { t as Conflux } from "./conflux-Cff37YF-.cjs";
|
|
2
|
+
import { Client, Message, PermissionResolvable } from "@fluxerjs/core";
|
|
3
|
+
|
|
4
|
+
//#region src/commands/types.d.ts
|
|
5
|
+
type CommandMetadata = {
|
|
6
|
+
userPermissions?: PermissionResolvable[];
|
|
7
|
+
botPermissions?: PermissionResolvable[];
|
|
8
|
+
guilds?: string[];
|
|
9
|
+
aliases?: string[];
|
|
10
|
+
};
|
|
11
|
+
type CommandData = {
|
|
12
|
+
name: string;
|
|
13
|
+
} & CommandMetadata;
|
|
14
|
+
type CommandContext = {
|
|
15
|
+
message: Message;
|
|
16
|
+
client: Client;
|
|
17
|
+
conflux: Conflux;
|
|
18
|
+
args: () => string[];
|
|
19
|
+
data: CommandData;
|
|
20
|
+
commandName: string;
|
|
21
|
+
};
|
|
22
|
+
type MessageCommandAfter = (ctx: CommandContext) => void | Promise<void>;
|
|
23
|
+
type MessageCommand = ((ctx: CommandContext) => void | Promise<void>) & {
|
|
24
|
+
after?: MessageCommandAfter;
|
|
25
|
+
};
|
|
26
|
+
type CommandMiddleware = {
|
|
27
|
+
beforeExecute(ctx: CommandContext): void | Promise<void>;
|
|
28
|
+
afterExecute(ctx: CommandContext): void | Promise<void>;
|
|
29
|
+
};
|
|
30
|
+
type LoadedCommand = {
|
|
31
|
+
filePath: string;
|
|
32
|
+
directory: string;
|
|
33
|
+
data: CommandData;
|
|
34
|
+
message: MessageCommand;
|
|
35
|
+
after?: MessageCommandAfter;
|
|
36
|
+
};
|
|
37
|
+
type CommandRegistry = {
|
|
38
|
+
commands: LoadedCommand[];
|
|
39
|
+
byTrigger: Map<string, LoadedCommand>;
|
|
40
|
+
globalMiddleware: CommandMiddleware | null;
|
|
41
|
+
directoryMiddleware: Map<string, CommandMiddleware>;
|
|
42
|
+
commandMiddleware: Map<string, CommandMiddleware>;
|
|
43
|
+
};
|
|
44
|
+
//#endregion
|
|
45
|
+
export { CommandRegistry as a, MessageCommandAfter as c, CommandMiddleware as i, CommandData as n, LoadedCommand as o, CommandMetadata as r, MessageCommand as s, CommandContext as t };
|
|
46
|
+
//# sourceMappingURL=types-CDgj0pfF.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-CDgj0pfF.d.cts","names":[],"sources":["../src/commands/types.ts"],"sourcesContent":[],"mappings":";;;;KAIY,eAAA;oBACQ;EADR,cAAA,CAAA,EAEO,oBADC,EAAA;EAMR,MAAA,CAAA,EAAA,MAAW,EAAA;EAEX,OAAA,CAAA,EAAA,MAAA,EAAc;CACf;AACD,KAJE,WAAA,GAIF;EACC,IAAA,EAAA,MAAA;CAEH,GAPqC,eAOrC;AAAW,KALP,cAAA,GAKO;EAIP,OAAA,EARD,OAQC;EAEA,MAAA,EATF,MASE;EAAwB,OAAA,EARzB,OAQyB;EAA0B,IAAA,EAAA,GAAA,GAAA,MAAA,EAAA;EACpD,IAAA,EAPF,WAOE;EAAmB,WAAA,EAAA,MAAA;AAG7B,CAAA;AACqB,KAPT,mBAAA,GAOS,CAAA,GAAA,EAPmB,cAOnB,EAAA,GAAA,IAAA,GAP6C,OAO7C,CAAA,IAAA,CAAA;AAAwB,KALjC,cAAA,GAKiC,CAAA,CAAA,GAAA,EALT,cAKS,EAAA,GAAA,IAAA,GALiB,OAKjB,CAAA,IAAA,CAAA,CAAA,GAAA;EACzB,KAAA,CAAA,EALV,mBAKU;CAAwB;AAAO,KAFvC,iBAAA,GAEuC;EAGvC,aAAA,CAAA,GAAa,EAJJ,cAII,CAAA,EAAA,IAAA,GAJoB,OAIpB,CAAA,IAAA,CAAA;EAGjB,YAAA,CAAA,GAAA,EANY,cAMZ,CAAA,EAAA,IAAA,GANoC,OAMpC,CAAA,IAAA,CAAA;CACG;AACD,KALE,aAAA,GAKF;EAAmB,QAAA,EAAA,MAAA;EAGjB,SAAA,EAAA,MAAA;EACA,IAAA,EANJ,WAMI;EACa,OAAA,EANd,cAMc;EAAZ,KAAA,CAAA,EALH,mBAKG;CACO;AACe,KAJvB,eAAA,GAIuB;EAAZ,QAAA,EAHX,aAGW,EAAA;EACU,SAAA,EAHpB,GAGoB,CAAA,MAAA,EAHR,aAGQ,CAAA;EAAZ,gBAAA,EAFD,iBAEC,GAAA,IAAA;EAAG,mBAAA,EADD,GACC,CAAA,MAAA,EADW,iBACX,CAAA;qBAAH,YAAY"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { t as Conflux } from "./conflux-Bx2wI68U.js";
|
|
2
|
+
import { Client, Message, PermissionResolvable } from "@fluxerjs/core";
|
|
3
|
+
|
|
4
|
+
//#region src/commands/types.d.ts
|
|
5
|
+
type CommandMetadata = {
|
|
6
|
+
userPermissions?: PermissionResolvable[];
|
|
7
|
+
botPermissions?: PermissionResolvable[];
|
|
8
|
+
guilds?: string[];
|
|
9
|
+
aliases?: string[];
|
|
10
|
+
};
|
|
11
|
+
type CommandData = {
|
|
12
|
+
name: string;
|
|
13
|
+
} & CommandMetadata;
|
|
14
|
+
type CommandContext = {
|
|
15
|
+
message: Message;
|
|
16
|
+
client: Client;
|
|
17
|
+
conflux: Conflux;
|
|
18
|
+
args: () => string[];
|
|
19
|
+
data: CommandData;
|
|
20
|
+
commandName: string;
|
|
21
|
+
};
|
|
22
|
+
type MessageCommandAfter = (ctx: CommandContext) => void | Promise<void>;
|
|
23
|
+
type MessageCommand = ((ctx: CommandContext) => void | Promise<void>) & {
|
|
24
|
+
after?: MessageCommandAfter;
|
|
25
|
+
};
|
|
26
|
+
type CommandMiddleware = {
|
|
27
|
+
beforeExecute(ctx: CommandContext): void | Promise<void>;
|
|
28
|
+
afterExecute(ctx: CommandContext): void | Promise<void>;
|
|
29
|
+
};
|
|
30
|
+
type LoadedCommand = {
|
|
31
|
+
filePath: string;
|
|
32
|
+
directory: string;
|
|
33
|
+
data: CommandData;
|
|
34
|
+
message: MessageCommand;
|
|
35
|
+
after?: MessageCommandAfter;
|
|
36
|
+
};
|
|
37
|
+
type CommandRegistry = {
|
|
38
|
+
commands: LoadedCommand[];
|
|
39
|
+
byTrigger: Map<string, LoadedCommand>;
|
|
40
|
+
globalMiddleware: CommandMiddleware | null;
|
|
41
|
+
directoryMiddleware: Map<string, CommandMiddleware>;
|
|
42
|
+
commandMiddleware: Map<string, CommandMiddleware>;
|
|
43
|
+
};
|
|
44
|
+
//#endregion
|
|
45
|
+
export { CommandRegistry as a, MessageCommandAfter as c, CommandMiddleware as i, CommandData as n, LoadedCommand as o, CommandMetadata as r, MessageCommand as s, CommandContext as t };
|
|
46
|
+
//# sourceMappingURL=types-CYtE8ckK.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-CYtE8ckK.d.ts","names":[],"sources":["../src/commands/types.ts"],"sourcesContent":[],"mappings":";;;;KAIY,eAAA;oBACQ;EADR,cAAA,CAAA,EAEO,oBADC,EAAA;EAMR,MAAA,CAAA,EAAA,MAAW,EAAA;EAEX,OAAA,CAAA,EAAA,MAAA,EAAc;CACf;AACD,KAJE,WAAA,GAIF;EACC,IAAA,EAAA,MAAA;CAEH,GAPqC,eAOrC;AAAW,KALP,cAAA,GAKO;EAIP,OAAA,EARD,OAQC;EAEA,MAAA,EATF,MASE;EAAwB,OAAA,EARzB,OAQyB;EAA0B,IAAA,EAAA,GAAA,GAAA,MAAA,EAAA;EACpD,IAAA,EAPF,WAOE;EAAmB,WAAA,EAAA,MAAA;AAG7B,CAAA;AACqB,KAPT,mBAAA,GAOS,CAAA,GAAA,EAPmB,cAOnB,EAAA,GAAA,IAAA,GAP6C,OAO7C,CAAA,IAAA,CAAA;AAAwB,KALjC,cAAA,GAKiC,CAAA,CAAA,GAAA,EALT,cAKS,EAAA,GAAA,IAAA,GALiB,OAKjB,CAAA,IAAA,CAAA,CAAA,GAAA;EACzB,KAAA,CAAA,EALV,mBAKU;CAAwB;AAAO,KAFvC,iBAAA,GAEuC;EAGvC,aAAA,CAAA,GAAa,EAJJ,cAII,CAAA,EAAA,IAAA,GAJoB,OAIpB,CAAA,IAAA,CAAA;EAGjB,YAAA,CAAA,GAAA,EANY,cAMZ,CAAA,EAAA,IAAA,GANoC,OAMpC,CAAA,IAAA,CAAA;CACG;AACD,KALE,aAAA,GAKF;EAAmB,QAAA,EAAA,MAAA;EAGjB,SAAA,EAAA,MAAA;EACA,IAAA,EANJ,WAMI;EACa,OAAA,EANd,cAMc;EAAZ,KAAA,CAAA,EALH,mBAKG;CACO;AACe,KAJvB,eAAA,GAIuB;EAAZ,QAAA,EAHX,aAGW,EAAA;EACU,SAAA,EAHpB,GAGoB,CAAA,MAAA,EAHR,aAGQ,CAAA;EAAZ,gBAAA,EAFD,iBAEC,GAAA,IAAA;EAAG,mBAAA,EADD,GACC,CAAA,MAAA,EADW,iBACX,CAAA;qBAAH,YAAY"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { t as Conflux } from "./conflux-Bx2wI68U.js";
|
|
2
|
+
import { Client, ClientEvents } from "@fluxerjs/core";
|
|
3
|
+
|
|
4
|
+
//#region src/events/pipeline.d.ts
|
|
5
|
+
declare function stopAllEvents(): void;
|
|
6
|
+
//#endregion
|
|
7
|
+
//#region src/events/fluxer-events.d.ts
|
|
8
|
+
type FluxerClientEventName = keyof ClientEvents;
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/events/types.d.ts
|
|
11
|
+
type EventHandlerContext = {
|
|
12
|
+
client: Client;
|
|
13
|
+
conflux: Conflux;
|
|
14
|
+
stopAllEvents: () => void;
|
|
15
|
+
};
|
|
16
|
+
type EventHandler<K extends FluxerClientEventName = FluxerClientEventName> = (...args: [...ClientEvents[K], EventHandlerContext]) => void | Promise<void>;
|
|
17
|
+
type AnyEventHandler = (...args: unknown[]) => void | Promise<void>;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { stopAllEvents as a, FluxerClientEventName as i, EventHandler as n, EventHandlerContext as r, AnyEventHandler as t };
|
|
20
|
+
//# sourceMappingURL=types-cu2r7p_e.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-cu2r7p_e.d.ts","names":[],"sources":["../src/events/pipeline.ts","../src/events/fluxer-events.ts","../src/events/types.ts"],"sourcesContent":[],"mappings":";;;;iBAMgB,aAAA,CAAA;;;KCJJ,qBAAA,SAA8B;;;ADI1B,KECJ,mBAAA,GFDiB;UEEnB;WACC;;ADPX,CAAA;KCWY,uBAAuB,wBAAwB,uCAC5C,aAAa,IAAI,gCACpB;KAEA,eAAA,kCAAiD"}
|
package/package.json
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@confluxjs/conflux",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Conflux bot framework CLI and runtime for Fluxer",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"conflux",
|
|
7
|
+
"fluxer",
|
|
8
|
+
"bot",
|
|
9
|
+
"typescript",
|
|
10
|
+
"cli",
|
|
11
|
+
"framework"
|
|
12
|
+
],
|
|
13
|
+
"homepage": "https://conflux.js.org",
|
|
14
|
+
"bugs": "https://github.com/confluxjs/conflux.js/issues",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/confluxjs/conflux.js.git",
|
|
18
|
+
"directory": "packages/conflux"
|
|
19
|
+
},
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"sideEffects": [
|
|
22
|
+
"./dist/cli.js",
|
|
23
|
+
"./dist/cli.cjs",
|
|
24
|
+
"./dist/start.js",
|
|
25
|
+
"./dist/start.cjs",
|
|
26
|
+
"./dist/dev-runner.js",
|
|
27
|
+
"./dist/dev-runner.cjs"
|
|
28
|
+
],
|
|
29
|
+
"type": "module",
|
|
30
|
+
"exports": {
|
|
31
|
+
".": {
|
|
32
|
+
"types": "./dist/index.d.ts",
|
|
33
|
+
"import": "./dist/index.js",
|
|
34
|
+
"require": "./dist/index.cjs"
|
|
35
|
+
},
|
|
36
|
+
"./cli": {
|
|
37
|
+
"types": "./dist/cli.d.ts",
|
|
38
|
+
"import": "./dist/cli.js",
|
|
39
|
+
"require": "./dist/cli.cjs"
|
|
40
|
+
},
|
|
41
|
+
"./commands": {
|
|
42
|
+
"types": "./dist/commands.d.ts",
|
|
43
|
+
"import": "./dist/commands.js",
|
|
44
|
+
"require": "./dist/commands.cjs"
|
|
45
|
+
},
|
|
46
|
+
"./config": {
|
|
47
|
+
"types": "./dist/config.d.ts",
|
|
48
|
+
"import": "./dist/config.js",
|
|
49
|
+
"require": "./dist/config.cjs"
|
|
50
|
+
},
|
|
51
|
+
"./dev-runner": {
|
|
52
|
+
"types": "./dist/dev-runner.d.ts",
|
|
53
|
+
"import": "./dist/dev-runner.js",
|
|
54
|
+
"require": "./dist/dev-runner.cjs"
|
|
55
|
+
},
|
|
56
|
+
"./events": {
|
|
57
|
+
"types": "./dist/events.d.ts",
|
|
58
|
+
"import": "./dist/events.js",
|
|
59
|
+
"require": "./dist/events.cjs"
|
|
60
|
+
},
|
|
61
|
+
"./runtime": {
|
|
62
|
+
"types": "./dist/runtime.d.ts",
|
|
63
|
+
"import": "./dist/runtime.js",
|
|
64
|
+
"require": "./dist/runtime.cjs"
|
|
65
|
+
},
|
|
66
|
+
"./start": {
|
|
67
|
+
"types": "./dist/start.d.ts",
|
|
68
|
+
"import": "./dist/start.js",
|
|
69
|
+
"require": "./dist/start.cjs"
|
|
70
|
+
},
|
|
71
|
+
"./package.json": "./package.json"
|
|
72
|
+
},
|
|
73
|
+
"main": "./dist/index.cjs",
|
|
74
|
+
"module": "./dist/index.js",
|
|
75
|
+
"types": "./dist/index.d.ts",
|
|
76
|
+
"bin": {
|
|
77
|
+
"conflux": "./dist/cli.cjs"
|
|
78
|
+
},
|
|
79
|
+
"files": [
|
|
80
|
+
"dist",
|
|
81
|
+
"README.md"
|
|
82
|
+
],
|
|
83
|
+
"scripts": {
|
|
84
|
+
"build": "tsdown",
|
|
85
|
+
"check-types": "tsc -p tsconfig.json --noEmit",
|
|
86
|
+
"clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
87
|
+
"dev": "tsdown --watch",
|
|
88
|
+
"lint": "eslint src",
|
|
89
|
+
"prepublishOnly": "bun run build"
|
|
90
|
+
},
|
|
91
|
+
"devDependencies": {
|
|
92
|
+
"@confluxjs/tsconfig": "workspace:*",
|
|
93
|
+
"@fluxerjs/core": "catalog:",
|
|
94
|
+
"@types/node": "^22.0.0",
|
|
95
|
+
"tsdown": "catalog:build",
|
|
96
|
+
"typescript": "catalog:build"
|
|
97
|
+
},
|
|
98
|
+
"peerDependencies": {
|
|
99
|
+
"@fluxerjs/core": "^2.1.0"
|
|
100
|
+
},
|
|
101
|
+
"engines": {
|
|
102
|
+
"node": ">=20"
|
|
103
|
+
},
|
|
104
|
+
"publishConfig": {
|
|
105
|
+
"access": "public"
|
|
106
|
+
}
|
|
107
|
+
}
|