yuzuha 0.0.0-stage → 0.1.5
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/CHANGELOG.md +115 -0
- package/LICENSE +21 -0
- package/README.md +158 -2
- package/VERSIONING.md +147 -0
- package/benchmarks/compare.mjs +21 -0
- package/benchmarks/run.mjs +123 -0
- package/dist/adapter.d.ts +3 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.js +3 -0
- package/dist/adapter.js.map +1 -0
- package/dist/bot.d.ts +3 -0
- package/dist/bot.d.ts.map +1 -0
- package/dist/bot.js +2 -0
- package/dist/bot.js.map +1 -0
- package/dist/cli/arguments.d.ts +49 -0
- package/dist/cli/arguments.d.ts.map +1 -0
- package/dist/cli/arguments.js +144 -0
- package/dist/cli/arguments.js.map +1 -0
- package/dist/cli/command-catalog.d.ts +14 -0
- package/dist/cli/command-catalog.d.ts.map +1 -0
- package/dist/cli/command-catalog.js +22 -0
- package/dist/cli/command-catalog.js.map +1 -0
- package/dist/cli/config.d.ts +9 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +59 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/data.d.ts +5 -0
- package/dist/cli/data.d.ts.map +1 -0
- package/dist/cli/data.js +58 -0
- package/dist/cli/data.js.map +1 -0
- package/dist/cli/doctor.d.ts +13 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +85 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/lint.d.ts +13 -0
- package/dist/cli/lint.d.ts.map +1 -0
- package/dist/cli/lint.js +78 -0
- package/dist/cli/lint.js.map +1 -0
- package/dist/cli/main.d.ts +3 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +127 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/runner.d.ts +3 -0
- package/dist/cli/runner.d.ts.map +1 -0
- package/dist/cli/runner.js +44 -0
- package/dist/cli/runner.js.map +1 -0
- package/dist/cli/scaffold.d.ts +2 -0
- package/dist/cli/scaffold.d.ts.map +1 -0
- package/dist/cli/scaffold.js +53 -0
- package/dist/cli/scaffold.js.map +1 -0
- package/dist/cli/scenarios.d.ts +72 -0
- package/dist/cli/scenarios.d.ts.map +1 -0
- package/dist/cli/scenarios.js +161 -0
- package/dist/cli/scenarios.js.map +1 -0
- package/dist/cli/version.d.ts +4 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +7 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/cli/watch.d.ts +5 -0
- package/dist/cli/watch.d.ts.map +1 -0
- package/dist/cli/watch.js +28 -0
- package/dist/cli/watch.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +7 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/arguments.d.ts +11 -0
- package/dist/commands/arguments.d.ts.map +1 -0
- package/dist/commands/arguments.js +210 -0
- package/dist/commands/arguments.js.map +1 -0
- package/dist/commands/builders.d.ts +33 -0
- package/dist/commands/builders.d.ts.map +1 -0
- package/dist/commands/builders.js +49 -0
- package/dist/commands/builders.js.map +1 -0
- package/dist/commands/context.d.ts +106 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +220 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/definition.d.ts +55 -0
- package/dist/commands/definition.d.ts.map +1 -0
- package/dist/commands/definition.js +8 -0
- package/dist/commands/definition.js.map +1 -0
- package/dist/commands/event-context.d.ts +19 -0
- package/dist/commands/event-context.d.ts.map +1 -0
- package/dist/commands/event-context.js +16 -0
- package/dist/commands/event-context.js.map +1 -0
- package/dist/commands/help.d.ts +4 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +45 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/typed-arguments.d.ts +14 -0
- package/dist/commands/typed-arguments.d.ts.map +1 -0
- package/dist/commands/typed-arguments.js +19 -0
- package/dist/commands/typed-arguments.js.map +1 -0
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +13 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +8 -0
- package/dist/context.js.map +1 -0
- package/dist/contracts.d.ts +6 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +2 -0
- package/dist/contracts.js.map +1 -0
- package/dist/domain/cron.d.ts +15 -0
- package/dist/domain/cron.d.ts.map +1 -0
- package/dist/domain/cron.js +122 -0
- package/dist/domain/cron.js.map +1 -0
- package/dist/domain/events.d.ts +14 -0
- package/dist/domain/events.d.ts.map +1 -0
- package/dist/domain/events.js +2 -0
- package/dist/domain/events.js.map +1 -0
- package/dist/domain/messages.d.ts +40 -0
- package/dist/domain/messages.d.ts.map +1 -0
- package/dist/domain/messages.js +2 -0
- package/dist/domain/messages.js.map +1 -0
- package/dist/domain/moderation.d.ts +31 -0
- package/dist/domain/moderation.d.ts.map +1 -0
- package/dist/domain/moderation.js +9 -0
- package/dist/domain/moderation.js.map +1 -0
- package/dist/domain/permissions.d.ts +3 -0
- package/dist/domain/permissions.d.ts.map +1 -0
- package/dist/domain/permissions.js +15 -0
- package/dist/domain/permissions.js.map +1 -0
- package/dist/domain/resource-batches.d.ts +6 -0
- package/dist/domain/resource-batches.d.ts.map +1 -0
- package/dist/domain/resource-batches.js +34 -0
- package/dist/domain/resource-batches.js.map +1 -0
- package/dist/domain/state-validation.d.ts +7 -0
- package/dist/domain/state-validation.d.ts.map +1 -0
- package/dist/domain/state-validation.js +143 -0
- package/dist/domain/state-validation.js.map +1 -0
- package/dist/domain/state.d.ts +46 -0
- package/dist/domain/state.d.ts.map +1 -0
- package/dist/domain/state.js +13 -0
- package/dist/domain/state.js.map +1 -0
- package/dist/domain/values.d.ts +3 -0
- package/dist/domain/values.d.ts.map +1 -0
- package/dist/domain/values.js +23 -0
- package/dist/domain/values.js.map +1 -0
- package/dist/errors.d.ts +2 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +2 -0
- package/dist/errors.js.map +1 -0
- package/dist/framework/bot.d.ts +67 -0
- package/dist/framework/bot.d.ts.map +1 -0
- package/dist/framework/bot.js +358 -0
- package/dist/framework/bot.js.map +1 -0
- package/dist/framework/command-loader.d.ts +4 -0
- package/dist/framework/command-loader.d.ts.map +1 -0
- package/dist/framework/command-loader.js +36 -0
- package/dist/framework/command-loader.js.map +1 -0
- package/dist/framework/command-registry.d.ts +32 -0
- package/dist/framework/command-registry.d.ts.map +1 -0
- package/dist/framework/command-registry.js +163 -0
- package/dist/framework/command-registry.js.map +1 -0
- package/dist/framework/config.d.ts +8 -0
- package/dist/framework/config.d.ts.map +1 -0
- package/dist/framework/config.js +2 -0
- package/dist/framework/config.js.map +1 -0
- package/dist/framework/events.d.ts +26 -0
- package/dist/framework/events.d.ts.map +1 -0
- package/dist/framework/events.js +52 -0
- package/dist/framework/events.js.map +1 -0
- package/dist/framework/logging.d.ts +16 -0
- package/dist/framework/logging.d.ts.map +1 -0
- package/dist/framework/logging.js +11 -0
- package/dist/framework/logging.js.map +1 -0
- package/dist/framework/middleware.d.ts +4 -0
- package/dist/framework/middleware.d.ts.map +1 -0
- package/dist/framework/middleware.js +16 -0
- package/dist/framework/middleware.js.map +1 -0
- package/dist/framework/module-loader.d.ts +4 -0
- package/dist/framework/module-loader.d.ts.map +1 -0
- package/dist/framework/module-loader.js +10 -0
- package/dist/framework/module-loader.js.map +1 -0
- package/dist/framework/options.d.ts +39 -0
- package/dist/framework/options.d.ts.map +1 -0
- package/dist/framework/options.js +2 -0
- package/dist/framework/options.js.map +1 -0
- package/dist/framework/rate-limits.d.ts +11 -0
- package/dist/framework/rate-limits.d.ts.map +1 -0
- package/dist/framework/rate-limits.js +43 -0
- package/dist/framework/rate-limits.js.map +1 -0
- package/dist/framework/reporting.d.ts +5 -0
- package/dist/framework/reporting.d.ts.map +1 -0
- package/dist/framework/reporting.js +23 -0
- package/dist/framework/reporting.js.map +1 -0
- package/dist/framework/routing.d.ts +7 -0
- package/dist/framework/routing.d.ts.map +1 -0
- package/dist/framework/routing.js +17 -0
- package/dist/framework/routing.js.map +1 -0
- package/dist/framework/script-events.d.ts +19 -0
- package/dist/framework/script-events.d.ts.map +1 -0
- package/dist/framework/script-events.js +42 -0
- package/dist/framework/script-events.js.map +1 -0
- package/dist/functions.d.ts +13 -0
- package/dist/functions.d.ts.map +1 -0
- package/dist/functions.js +12 -0
- package/dist/functions.js.map +1 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/fluxer/messages.d.ts +4 -0
- package/dist/infrastructure/fluxer/messages.d.ts.map +1 -0
- package/dist/infrastructure/fluxer/messages.js +7 -0
- package/dist/infrastructure/fluxer/messages.js.map +1 -0
- package/dist/infrastructure/fluxer/payload.d.ts +4 -0
- package/dist/infrastructure/fluxer/payload.d.ts.map +1 -0
- package/dist/infrastructure/fluxer/payload.js +24 -0
- package/dist/infrastructure/fluxer/payload.js.map +1 -0
- package/dist/infrastructure/fluxer/resources/channels.d.ts +4 -0
- package/dist/infrastructure/fluxer/resources/channels.d.ts.map +1 -0
- package/dist/infrastructure/fluxer/resources/channels.js +161 -0
- package/dist/infrastructure/fluxer/resources/channels.js.map +1 -0
- package/dist/infrastructure/fluxer/resources/collectors.d.ts +4 -0
- package/dist/infrastructure/fluxer/resources/collectors.d.ts.map +1 -0
- package/dist/infrastructure/fluxer/resources/collectors.js +117 -0
- package/dist/infrastructure/fluxer/resources/collectors.js.map +1 -0
- package/dist/infrastructure/fluxer/resources/expressions.d.ts +4 -0
- package/dist/infrastructure/fluxer/resources/expressions.d.ts.map +1 -0
- package/dist/infrastructure/fluxer/resources/expressions.js +71 -0
- package/dist/infrastructure/fluxer/resources/expressions.js.map +1 -0
- package/dist/infrastructure/fluxer/resources/invites.d.ts +4 -0
- package/dist/infrastructure/fluxer/resources/invites.d.ts.map +1 -0
- package/dist/infrastructure/fluxer/resources/invites.js +47 -0
- package/dist/infrastructure/fluxer/resources/invites.js.map +1 -0
- package/dist/infrastructure/fluxer/resources/messages.d.ts +4 -0
- package/dist/infrastructure/fluxer/resources/messages.d.ts.map +1 -0
- package/dist/infrastructure/fluxer/resources/messages.js +111 -0
- package/dist/infrastructure/fluxer/resources/messages.js.map +1 -0
- package/dist/infrastructure/fluxer/resources/roles.d.ts +4 -0
- package/dist/infrastructure/fluxer/resources/roles.d.ts.map +1 -0
- package/dist/infrastructure/fluxer/resources/roles.js +120 -0
- package/dist/infrastructure/fluxer/resources/roles.js.map +1 -0
- package/dist/infrastructure/fluxer/resources/threads.d.ts +4 -0
- package/dist/infrastructure/fluxer/resources/threads.d.ts.map +1 -0
- package/dist/infrastructure/fluxer/resources/threads.js +136 -0
- package/dist/infrastructure/fluxer/resources/threads.js.map +1 -0
- package/dist/infrastructure/fluxer/resources/users.d.ts +4 -0
- package/dist/infrastructure/fluxer/resources/users.d.ts.map +1 -0
- package/dist/infrastructure/fluxer/resources/users.js +194 -0
- package/dist/infrastructure/fluxer/resources/users.js.map +1 -0
- package/dist/infrastructure/fluxer/resources/webhooks.d.ts +4 -0
- package/dist/infrastructure/fluxer/resources/webhooks.d.ts.map +1 -0
- package/dist/infrastructure/fluxer/resources/webhooks.js +42 -0
- package/dist/infrastructure/fluxer/resources/webhooks.js.map +1 -0
- package/dist/infrastructure/fluxer/resources.d.ts +16 -0
- package/dist/infrastructure/fluxer/resources.d.ts.map +1 -0
- package/dist/infrastructure/fluxer/resources.js +33 -0
- package/dist/infrastructure/fluxer/resources.js.map +1 -0
- package/dist/infrastructure/fluxer/transport.d.ts +17 -0
- package/dist/infrastructure/fluxer/transport.d.ts.map +1 -0
- package/dist/infrastructure/fluxer/transport.js +76 -0
- package/dist/infrastructure/fluxer/transport.js.map +1 -0
- package/dist/infrastructure/storage/json.d.ts +10 -0
- package/dist/infrastructure/storage/json.d.ts.map +1 -0
- package/dist/infrastructure/storage/json.js +51 -0
- package/dist/infrastructure/storage/json.js.map +1 -0
- package/dist/infrastructure/storage/memory.d.ts +10 -0
- package/dist/infrastructure/storage/memory.d.ts.map +1 -0
- package/dist/infrastructure/storage/memory.js +26 -0
- package/dist/infrastructure/storage/memory.js.map +1 -0
- package/dist/infrastructure/storage/paths.d.ts +2 -0
- package/dist/infrastructure/storage/paths.d.ts.map +1 -0
- package/dist/infrastructure/storage/paths.js +11 -0
- package/dist/infrastructure/storage/paths.js.map +1 -0
- package/dist/infrastructure/storage/queue.d.ts +5 -0
- package/dist/infrastructure/storage/queue.d.ts.map +1 -0
- package/dist/infrastructure/storage/queue.js +9 -0
- package/dist/infrastructure/storage/queue.js.map +1 -0
- package/dist/infrastructure/storage/sqlite.d.ts +14 -0
- package/dist/infrastructure/storage/sqlite.d.ts.map +1 -0
- package/dist/infrastructure/storage/sqlite.js +68 -0
- package/dist/infrastructure/storage/sqlite.js.map +1 -0
- package/dist/infrastructure/storage/state.d.ts +2 -0
- package/dist/infrastructure/storage/state.d.ts.map +1 -0
- package/dist/infrastructure/storage/state.js +2 -0
- package/dist/infrastructure/storage/state.js.map +1 -0
- package/dist/loader.d.ts +2 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +2 -0
- package/dist/loader.js.map +1 -0
- package/dist/parser.d.ts +3 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +2 -0
- package/dist/parser.js.map +1 -0
- package/dist/permissions.d.ts +2 -0
- package/dist/permissions.d.ts.map +1 -0
- package/dist/permissions.js +2 -0
- package/dist/permissions.js.map +1 -0
- package/dist/ports/native.d.ts +6 -0
- package/dist/ports/native.d.ts.map +1 -0
- package/dist/ports/native.js +2 -0
- package/dist/ports/native.js.map +1 -0
- package/dist/ports/resources/channels.d.ts +56 -0
- package/dist/ports/resources/channels.d.ts.map +1 -0
- package/dist/ports/resources/channels.js +2 -0
- package/dist/ports/resources/channels.js.map +1 -0
- package/dist/ports/resources/collectors.d.ts +21 -0
- package/dist/ports/resources/collectors.d.ts.map +1 -0
- package/dist/ports/resources/collectors.js +2 -0
- package/dist/ports/resources/collectors.js.map +1 -0
- package/dist/ports/resources/common.d.ts +20 -0
- package/dist/ports/resources/common.d.ts.map +1 -0
- package/dist/ports/resources/common.js +10 -0
- package/dist/ports/resources/common.js.map +1 -0
- package/dist/ports/resources/expressions.d.ts +50 -0
- package/dist/ports/resources/expressions.d.ts.map +1 -0
- package/dist/ports/resources/expressions.js +2 -0
- package/dist/ports/resources/expressions.js.map +1 -0
- package/dist/ports/resources/invites.d.ts +32 -0
- package/dist/ports/resources/invites.d.ts.map +1 -0
- package/dist/ports/resources/invites.js +2 -0
- package/dist/ports/resources/invites.js.map +1 -0
- package/dist/ports/resources/messages.d.ts +55 -0
- package/dist/ports/resources/messages.d.ts.map +1 -0
- package/dist/ports/resources/messages.js +2 -0
- package/dist/ports/resources/messages.js.map +1 -0
- package/dist/ports/resources/roles.d.ts +39 -0
- package/dist/ports/resources/roles.d.ts.map +1 -0
- package/dist/ports/resources/roles.js +2 -0
- package/dist/ports/resources/roles.js.map +1 -0
- package/dist/ports/resources/threads.d.ts +78 -0
- package/dist/ports/resources/threads.d.ts.map +1 -0
- package/dist/ports/resources/threads.js +2 -0
- package/dist/ports/resources/threads.js.map +1 -0
- package/dist/ports/resources/users.d.ts +106 -0
- package/dist/ports/resources/users.d.ts.map +1 -0
- package/dist/ports/resources/users.js +2 -0
- package/dist/ports/resources/users.js.map +1 -0
- package/dist/ports/resources/webhooks.d.ts +21 -0
- package/dist/ports/resources/webhooks.d.ts.map +1 -0
- package/dist/ports/resources/webhooks.js +2 -0
- package/dist/ports/resources/webhooks.js.map +1 -0
- package/dist/ports/resources.d.ts +22 -0
- package/dist/ports/resources.d.ts.map +1 -0
- package/dist/ports/resources.js +2 -0
- package/dist/ports/resources.js.map +1 -0
- package/dist/ports/store.d.ts +7 -0
- package/dist/ports/store.d.ts.map +1 -0
- package/dist/ports/store.js +2 -0
- package/dist/ports/store.js.map +1 -0
- package/dist/ports/transport.d.ts +14 -0
- package/dist/ports/transport.d.ts.map +1 -0
- package/dist/ports/transport.js +2 -0
- package/dist/ports/transport.js.map +1 -0
- package/dist/runtime.d.ts +5 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +4 -0
- package/dist/runtime.js.map +1 -0
- package/dist/scripting/ast.d.ts +18 -0
- package/dist/scripting/ast.d.ts.map +1 -0
- package/dist/scripting/ast.js +2 -0
- package/dist/scripting/ast.js.map +1 -0
- package/dist/scripting/builtins/arguments.d.ts +5 -0
- package/dist/scripting/builtins/arguments.d.ts.map +1 -0
- package/dist/scripting/builtins/arguments.js +22 -0
- package/dist/scripting/builtins/arguments.js.map +1 -0
- package/dist/scripting/builtins/context.d.ts +2 -0
- package/dist/scripting/builtins/context.d.ts.map +1 -0
- package/dist/scripting/builtins/context.js +20 -0
- package/dist/scripting/builtins/context.js.map +1 -0
- package/dist/scripting/builtins/definition.d.ts +5 -0
- package/dist/scripting/builtins/definition.d.ts.map +1 -0
- package/dist/scripting/builtins/definition.js +8 -0
- package/dist/scripting/builtins/definition.js.map +1 -0
- package/dist/scripting/builtins/embeds.d.ts +4 -0
- package/dist/scripting/builtins/embeds.d.ts.map +1 -0
- package/dist/scripting/builtins/embeds.js +55 -0
- package/dist/scripting/builtins/embeds.js.map +1 -0
- package/dist/scripting/builtins/events.d.ts +2 -0
- package/dist/scripting/builtins/events.d.ts.map +1 -0
- package/dist/scripting/builtins/events.js +14 -0
- package/dist/scripting/builtins/events.js.map +1 -0
- package/dist/scripting/builtins/flow.d.ts +2 -0
- package/dist/scripting/builtins/flow.d.ts.map +1 -0
- package/dist/scripting/builtins/flow.js +26 -0
- package/dist/scripting/builtins/flow.js.map +1 -0
- package/dist/scripting/builtins/guards.d.ts +2 -0
- package/dist/scripting/builtins/guards.d.ts.map +1 -0
- package/dist/scripting/builtins/guards.js +28 -0
- package/dist/scripting/builtins/guards.js.map +1 -0
- package/dist/scripting/builtins/http.d.ts +2 -0
- package/dist/scripting/builtins/http.d.ts.map +1 -0
- package/dist/scripting/builtins/http.js +114 -0
- package/dist/scripting/builtins/http.js.map +1 -0
- package/dist/scripting/builtins/index.d.ts +5 -0
- package/dist/scripting/builtins/index.d.ts.map +1 -0
- package/dist/scripting/builtins/index.js +35 -0
- package/dist/scripting/builtins/index.js.map +1 -0
- package/dist/scripting/builtins/language/array-callbacks.d.ts +2 -0
- package/dist/scripting/builtins/language/array-callbacks.d.ts.map +1 -0
- package/dist/scripting/builtins/language/array-callbacks.js +95 -0
- package/dist/scripting/builtins/language/array-callbacks.js.map +1 -0
- package/dist/scripting/builtins/language/arrays.d.ts +2 -0
- package/dist/scripting/builtins/language/arrays.d.ts.map +1 -0
- package/dist/scripting/builtins/language/arrays.js +162 -0
- package/dist/scripting/builtins/language/arrays.js.map +1 -0
- package/dist/scripting/builtins/language/common.d.ts +13 -0
- package/dist/scripting/builtins/language/common.d.ts.map +1 -0
- package/dist/scripting/builtins/language/common.js +65 -0
- package/dist/scripting/builtins/language/common.js.map +1 -0
- package/dist/scripting/builtins/language/index.d.ts +3 -0
- package/dist/scripting/builtins/language/index.d.ts.map +1 -0
- package/dist/scripting/builtins/language/index.js +17 -0
- package/dist/scripting/builtins/language/index.js.map +1 -0
- package/dist/scripting/builtins/language/loops.d.ts +4 -0
- package/dist/scripting/builtins/language/loops.d.ts.map +1 -0
- package/dist/scripting/builtins/language/loops.js +81 -0
- package/dist/scripting/builtins/language/loops.js.map +1 -0
- package/dist/scripting/builtins/language/numbers.d.ts +2 -0
- package/dist/scripting/builtins/language/numbers.d.ts.map +1 -0
- package/dist/scripting/builtins/language/numbers.js +185 -0
- package/dist/scripting/builtins/language/numbers.js.map +1 -0
- package/dist/scripting/builtins/language/objects.d.ts +7 -0
- package/dist/scripting/builtins/language/objects.d.ts.map +1 -0
- package/dist/scripting/builtins/language/objects.js +243 -0
- package/dist/scripting/builtins/language/objects.js.map +1 -0
- package/dist/scripting/builtins/language/state.d.ts +6 -0
- package/dist/scripting/builtins/language/state.d.ts.map +1 -0
- package/dist/scripting/builtins/language/state.js +72 -0
- package/dist/scripting/builtins/language/state.js.map +1 -0
- package/dist/scripting/builtins/language/texts.d.ts +2 -0
- package/dist/scripting/builtins/language/texts.d.ts.map +1 -0
- package/dist/scripting/builtins/language/texts.js +87 -0
- package/dist/scripting/builtins/language/texts.js.map +1 -0
- package/dist/scripting/builtins/messages.d.ts +2 -0
- package/dist/scripting/builtins/messages.d.ts.map +1 -0
- package/dist/scripting/builtins/messages.js +10 -0
- package/dist/scripting/builtins/messages.js.map +1 -0
- package/dist/scripting/builtins/moderation.d.ts +2 -0
- package/dist/scripting/builtins/moderation.d.ts.map +1 -0
- package/dist/scripting/builtins/moderation.js +37 -0
- package/dist/scripting/builtins/moderation.js.map +1 -0
- package/dist/scripting/builtins/native-channels.d.ts +2 -0
- package/dist/scripting/builtins/native-channels.d.ts.map +1 -0
- package/dist/scripting/builtins/native-channels.js +202 -0
- package/dist/scripting/builtins/native-channels.js.map +1 -0
- package/dist/scripting/builtins/native-collectors.d.ts +2 -0
- package/dist/scripting/builtins/native-collectors.d.ts.map +1 -0
- package/dist/scripting/builtins/native-collectors.js +51 -0
- package/dist/scripting/builtins/native-collectors.js.map +1 -0
- package/dist/scripting/builtins/native-expressions.d.ts +2 -0
- package/dist/scripting/builtins/native-expressions.d.ts.map +1 -0
- package/dist/scripting/builtins/native-expressions.js +127 -0
- package/dist/scripting/builtins/native-expressions.js.map +1 -0
- package/dist/scripting/builtins/native-invites.d.ts +2 -0
- package/dist/scripting/builtins/native-invites.d.ts.map +1 -0
- package/dist/scripting/builtins/native-invites.js +45 -0
- package/dist/scripting/builtins/native-invites.js.map +1 -0
- package/dist/scripting/builtins/native-messages.d.ts +2 -0
- package/dist/scripting/builtins/native-messages.d.ts.map +1 -0
- package/dist/scripting/builtins/native-messages.js +155 -0
- package/dist/scripting/builtins/native-messages.js.map +1 -0
- package/dist/scripting/builtins/native-roles.d.ts +2 -0
- package/dist/scripting/builtins/native-roles.d.ts.map +1 -0
- package/dist/scripting/builtins/native-roles.js +128 -0
- package/dist/scripting/builtins/native-roles.js.map +1 -0
- package/dist/scripting/builtins/native-threads.d.ts +2 -0
- package/dist/scripting/builtins/native-threads.d.ts.map +1 -0
- package/dist/scripting/builtins/native-threads.js +113 -0
- package/dist/scripting/builtins/native-threads.js.map +1 -0
- package/dist/scripting/builtins/native-users.d.ts +2 -0
- package/dist/scripting/builtins/native-users.d.ts.map +1 -0
- package/dist/scripting/builtins/native-users.js +178 -0
- package/dist/scripting/builtins/native-users.js.map +1 -0
- package/dist/scripting/builtins/native-webhooks.d.ts +2 -0
- package/dist/scripting/builtins/native-webhooks.d.ts.map +1 -0
- package/dist/scripting/builtins/native-webhooks.js +33 -0
- package/dist/scripting/builtins/native-webhooks.js.map +1 -0
- package/dist/scripting/builtins/payload.d.ts +3 -0
- package/dist/scripting/builtins/payload.d.ts.map +1 -0
- package/dist/scripting/builtins/payload.js +14 -0
- package/dist/scripting/builtins/payload.js.map +1 -0
- package/dist/scripting/builtins/resource-extras.d.ts +2 -0
- package/dist/scripting/builtins/resource-extras.d.ts.map +1 -0
- package/dist/scripting/builtins/resource-extras.js +142 -0
- package/dist/scripting/builtins/resource-extras.js.map +1 -0
- package/dist/scripting/builtins/schedule.d.ts +2 -0
- package/dist/scripting/builtins/schedule.d.ts.map +1 -0
- package/dist/scripting/builtins/schedule.js +67 -0
- package/dist/scripting/builtins/schedule.js.map +1 -0
- package/dist/scripting/builtins/storage.d.ts +2 -0
- package/dist/scripting/builtins/storage.d.ts.map +1 -0
- package/dist/scripting/builtins/storage.js +44 -0
- package/dist/scripting/builtins/storage.js.map +1 -0
- package/dist/scripting/builtins/values.d.ts +2 -0
- package/dist/scripting/builtins/values.d.ts.map +1 -0
- package/dist/scripting/builtins/values.js +60 -0
- package/dist/scripting/builtins/values.js.map +1 -0
- package/dist/scripting/evaluator.d.ts +20 -0
- package/dist/scripting/evaluator.d.ts.map +1 -0
- package/dist/scripting/evaluator.js +107 -0
- package/dist/scripting/evaluator.js.map +1 -0
- package/dist/scripting/limits.d.ts +4 -0
- package/dist/scripting/limits.d.ts.map +1 -0
- package/dist/scripting/limits.js +17 -0
- package/dist/scripting/limits.js.map +1 -0
- package/dist/scripting/parser.d.ts +3 -0
- package/dist/scripting/parser.d.ts.map +1 -0
- package/dist/scripting/parser.js +91 -0
- package/dist/scripting/parser.js.map +1 -0
- package/dist/scripting/registry.d.ts +11 -0
- package/dist/scripting/registry.d.ts.map +1 -0
- package/dist/scripting/registry.js +54 -0
- package/dist/scripting/registry.js.map +1 -0
- package/dist/scripting/runtime.d.ts +14 -0
- package/dist/scripting/runtime.d.ts.map +1 -0
- package/dist/scripting/runtime.js +29 -0
- package/dist/scripting/runtime.js.map +1 -0
- package/dist/scripting/types.d.ts +30 -0
- package/dist/scripting/types.d.ts.map +1 -0
- package/dist/scripting/types.js +2 -0
- package/dist/scripting/types.js.map +1 -0
- package/dist/scripting/values.d.ts +3 -0
- package/dist/scripting/values.d.ts.map +1 -0
- package/dist/scripting/values.js +28 -0
- package/dist/scripting/values.js.map +1 -0
- package/dist/sdk.d.ts +2 -0
- package/dist/sdk.d.ts.map +1 -0
- package/dist/sdk.js +2 -0
- package/dist/sdk.js.map +1 -0
- package/dist/services/authorization.d.ts +16 -0
- package/dist/services/authorization.d.ts.map +1 -0
- package/dist/services/authorization.js +58 -0
- package/dist/services/authorization.js.map +1 -0
- package/dist/services/cancellation.d.ts +4 -0
- package/dist/services/cancellation.d.ts.map +1 -0
- package/dist/services/cancellation.js +14 -0
- package/dist/services/cancellation.js.map +1 -0
- package/dist/services/cases.d.ts +11 -0
- package/dist/services/cases.d.ts.map +1 -0
- package/dist/services/cases.js +33 -0
- package/dist/services/cases.js.map +1 -0
- package/dist/services/http.d.ts +60 -0
- package/dist/services/http.d.ts.map +1 -0
- package/dist/services/http.js +363 -0
- package/dist/services/http.js.map +1 -0
- package/dist/services/members.d.ts +14 -0
- package/dist/services/members.d.ts.map +1 -0
- package/dist/services/members.js +46 -0
- package/dist/services/members.js.map +1 -0
- package/dist/services/moderation.d.ts +13 -0
- package/dist/services/moderation.d.ts.map +1 -0
- package/dist/services/moderation.js +58 -0
- package/dist/services/moderation.js.map +1 -0
- package/dist/services/native-data.d.ts +23 -0
- package/dist/services/native-data.d.ts.map +1 -0
- package/dist/services/native-data.js +27 -0
- package/dist/services/native-data.js.map +1 -0
- package/dist/services/native-moderation.d.ts +77 -0
- package/dist/services/native-moderation.d.ts.map +1 -0
- package/dist/services/native-moderation.js +32 -0
- package/dist/services/native-moderation.js.map +1 -0
- package/dist/services/resource-authorization.d.ts +5 -0
- package/dist/services/resource-authorization.d.ts.map +1 -0
- package/dist/services/resource-authorization.js +187 -0
- package/dist/services/resource-authorization.js.map +1 -0
- package/dist/services/scheduler.d.ts +103 -0
- package/dist/services/scheduler.d.ts.map +1 -0
- package/dist/services/scheduler.js +385 -0
- package/dist/services/scheduler.js.map +1 -0
- package/dist/services/state-maintenance.d.ts +55 -0
- package/dist/services/state-maintenance.d.ts.map +1 -0
- package/dist/services/state-maintenance.js +182 -0
- package/dist/services/state-maintenance.js.map +1 -0
- package/dist/services/variables.d.ts +64 -0
- package/dist/services/variables.d.ts.map +1 -0
- package/dist/services/variables.js +213 -0
- package/dist/services/variables.js.map +1 -0
- package/dist/shared/clone.d.ts +3 -0
- package/dist/shared/clone.d.ts.map +1 -0
- package/dist/shared/clone.js +6 -0
- package/dist/shared/clone.js.map +1 -0
- package/dist/shared/errors.d.ts +25 -0
- package/dist/shared/errors.d.ts.map +1 -0
- package/dist/shared/errors.js +45 -0
- package/dist/shared/errors.js.map +1 -0
- package/dist/sqlite.d.ts +2 -0
- package/dist/sqlite.d.ts.map +1 -0
- package/dist/sqlite.js +2 -0
- package/dist/sqlite.js.map +1 -0
- package/dist/store.d.ts +6 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +6 -0
- package/dist/store.js.map +1 -0
- package/dist/testing.d.ts +79 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +139 -0
- package/dist/testing.js.map +1 -0
- package/dist/tooling/language.d.ts +74 -0
- package/dist/tooling/language.d.ts.map +1 -0
- package/dist/tooling/language.js +392 -0
- package/dist/tooling/language.js.map +1 -0
- package/dist/tooling.d.ts +3 -0
- package/dist/tooling.d.ts.map +1 -0
- package/dist/tooling.js +2 -0
- package/dist/tooling.js.map +1 -0
- package/docs/API.md +306 -0
- package/docs/ARCHITECTURE.md +206 -0
- package/docs/BENCHMARKS.md +92 -0
- package/docs/CLI.md +285 -0
- package/docs/COOKBOOK.md +270 -0
- package/docs/EDITOR.md +151 -0
- package/docs/EVENTS.md +118 -0
- package/docs/FRAMEWORK.md +222 -0
- package/docs/FUNCTION-GAPS.md +152 -0
- package/docs/FUNCTIONS.md +394 -0
- package/docs/HTTP.md +125 -0
- package/docs/LANGUAGE.md +497 -0
- package/docs/NATIVE.md +655 -0
- package/docs/OBSERVABILITY.md +48 -0
- package/docs/PARITY.md +122 -0
- package/docs/PLAN.md +112 -0
- package/docs/QUICKSTART.md +183 -0
- package/docs/README.md +53 -0
- package/docs/SCHEDULER.md +109 -0
- package/docs/STORAGE.md +341 -0
- package/docs/TESTING.md +214 -0
- package/docs/TROUBLESHOOTING.md +108 -0
- package/docs/VALIDATION.md +170 -0
- package/editors/vscode/.vscodeignore +2 -0
- package/editors/vscode/LICENSE +21 -0
- package/editors/vscode/README.md +59 -0
- package/editors/vscode/extension.cjs +154 -0
- package/editors/vscode/functions.json +2318 -0
- package/editors/vscode/language-configuration.json +1 -0
- package/editors/vscode/language.d.mts +74 -0
- package/editors/vscode/language.js.map +1 -0
- package/editors/vscode/language.mjs +392 -0
- package/editors/vscode/package.json +62 -0
- package/editors/vscode/tsconfig.json +8 -0
- package/editors/vscode/yuzuha.tmLanguage.json +9 -0
- package/examples/commands/ban.js +10 -0
- package/examples/commands/counter.ts +19 -0
- package/examples/commands/help.js +6 -0
- package/examples/commands/native-ban.ts +14 -0
- package/examples/commands/ping.ts +6 -0
- package/examples/commands/profile.ts +13 -0
- package/examples/function-mode.ts +16 -0
- package/examples/offline.ts +19 -0
- package/examples/yuzuha.config.js +19 -0
- package/package.json +78 -4
- package/src/adapter.ts +2 -0
- package/src/bot.ts +2 -0
- package/src/cli/arguments.ts +115 -0
- package/src/cli/command-catalog.ts +37 -0
- package/src/cli/config.ts +47 -0
- package/src/cli/data.ts +45 -0
- package/src/cli/doctor.ts +69 -0
- package/src/cli/lint.ts +69 -0
- package/src/cli/main.ts +92 -0
- package/src/cli/runner.ts +32 -0
- package/src/cli/scaffold.ts +46 -0
- package/src/cli/scenarios.ts +154 -0
- package/src/cli/version.ts +10 -0
- package/src/cli/watch.ts +22 -0
- package/src/cli.ts +7 -0
- package/src/commands/arguments.ts +172 -0
- package/src/commands/builders.ts +61 -0
- package/src/commands/context.ts +250 -0
- package/src/commands/definition.ts +59 -0
- package/src/commands/event-context.ts +29 -0
- package/src/commands/help.ts +37 -0
- package/src/commands/typed-arguments.ts +27 -0
- package/src/config.ts +2 -0
- package/src/context.ts +12 -0
- package/src/contracts.ts +5 -0
- package/src/domain/cron.ts +120 -0
- package/src/domain/events.ts +13 -0
- package/src/domain/messages.ts +27 -0
- package/src/domain/moderation.ts +40 -0
- package/src/domain/permissions.ts +16 -0
- package/src/domain/resource-batches.ts +34 -0
- package/src/domain/state-validation.ts +114 -0
- package/src/domain/state.ts +58 -0
- package/src/domain/values.ts +20 -0
- package/src/errors.ts +1 -0
- package/src/framework/bot.ts +316 -0
- package/src/framework/command-loader.ts +33 -0
- package/src/framework/command-registry.ts +149 -0
- package/src/framework/config.ts +8 -0
- package/src/framework/events.ts +65 -0
- package/src/framework/logging.ts +18 -0
- package/src/framework/middleware.ts +15 -0
- package/src/framework/module-loader.ts +8 -0
- package/src/framework/options.ts +39 -0
- package/src/framework/rate-limits.ts +37 -0
- package/src/framework/reporting.ts +19 -0
- package/src/framework/routing.ts +16 -0
- package/src/framework/script-events.ts +53 -0
- package/src/functions.ts +16 -0
- package/src/index.ts +60 -0
- package/src/infrastructure/fluxer/messages.ts +9 -0
- package/src/infrastructure/fluxer/payload.ts +20 -0
- package/src/infrastructure/fluxer/resources/channels.ts +159 -0
- package/src/infrastructure/fluxer/resources/collectors.ts +89 -0
- package/src/infrastructure/fluxer/resources/expressions.ts +79 -0
- package/src/infrastructure/fluxer/resources/invites.ts +49 -0
- package/src/infrastructure/fluxer/resources/messages.ts +111 -0
- package/src/infrastructure/fluxer/resources/roles.ts +113 -0
- package/src/infrastructure/fluxer/resources/threads.ts +141 -0
- package/src/infrastructure/fluxer/resources/users.ts +203 -0
- package/src/infrastructure/fluxer/resources/webhooks.ts +44 -0
- package/src/infrastructure/fluxer/resources.ts +36 -0
- package/src/infrastructure/fluxer/transport.ts +65 -0
- package/src/infrastructure/storage/json.ts +37 -0
- package/src/infrastructure/storage/memory.ts +30 -0
- package/src/infrastructure/storage/paths.ts +10 -0
- package/src/infrastructure/storage/queue.ts +9 -0
- package/src/infrastructure/storage/sqlite.ts +60 -0
- package/src/infrastructure/storage/state.ts +1 -0
- package/src/loader.ts +1 -0
- package/src/parser.ts +2 -0
- package/src/permissions.ts +1 -0
- package/src/ports/native.ts +6 -0
- package/src/ports/resources/channels.ts +59 -0
- package/src/ports/resources/collectors.ts +24 -0
- package/src/ports/resources/common.ts +32 -0
- package/src/ports/resources/expressions.ts +48 -0
- package/src/ports/resources/invites.ts +27 -0
- package/src/ports/resources/messages.ts +54 -0
- package/src/ports/resources/roles.ts +41 -0
- package/src/ports/resources/threads.ts +81 -0
- package/src/ports/resources/users.ts +109 -0
- package/src/ports/resources/webhooks.ts +22 -0
- package/src/ports/resources.ts +22 -0
- package/src/ports/store.ts +7 -0
- package/src/ports/transport.ts +15 -0
- package/src/runtime.ts +4 -0
- package/src/scripting/ast.ts +4 -0
- package/src/scripting/builtins/arguments.ts +19 -0
- package/src/scripting/builtins/context.ts +21 -0
- package/src/scripting/builtins/definition.ts +15 -0
- package/src/scripting/builtins/embeds.ts +48 -0
- package/src/scripting/builtins/events.ts +13 -0
- package/src/scripting/builtins/flow.ts +23 -0
- package/src/scripting/builtins/guards.ts +26 -0
- package/src/scripting/builtins/http.ts +101 -0
- package/src/scripting/builtins/index.ts +38 -0
- package/src/scripting/builtins/language/array-callbacks.ts +88 -0
- package/src/scripting/builtins/language/arrays.ts +140 -0
- package/src/scripting/builtins/language/common.ts +59 -0
- package/src/scripting/builtins/language/index.ts +18 -0
- package/src/scripting/builtins/language/loops.ts +75 -0
- package/src/scripting/builtins/language/numbers.ts +164 -0
- package/src/scripting/builtins/language/objects.ts +221 -0
- package/src/scripting/builtins/language/state.ts +65 -0
- package/src/scripting/builtins/language/texts.ts +72 -0
- package/src/scripting/builtins/messages.ts +10 -0
- package/src/scripting/builtins/moderation.ts +38 -0
- package/src/scripting/builtins/native-channels.ts +193 -0
- package/src/scripting/builtins/native-collectors.ts +52 -0
- package/src/scripting/builtins/native-expressions.ts +118 -0
- package/src/scripting/builtins/native-invites.ts +45 -0
- package/src/scripting/builtins/native-messages.ts +145 -0
- package/src/scripting/builtins/native-roles.ts +125 -0
- package/src/scripting/builtins/native-threads.ts +100 -0
- package/src/scripting/builtins/native-users.ts +173 -0
- package/src/scripting/builtins/native-webhooks.ts +34 -0
- package/src/scripting/builtins/payload.ts +14 -0
- package/src/scripting/builtins/resource-extras.ts +133 -0
- package/src/scripting/builtins/schedule.ts +73 -0
- package/src/scripting/builtins/storage.ts +43 -0
- package/src/scripting/builtins/values.ts +50 -0
- package/src/scripting/evaluator.ts +98 -0
- package/src/scripting/limits.ts +18 -0
- package/src/scripting/parser.ts +63 -0
- package/src/scripting/registry.ts +54 -0
- package/src/scripting/runtime.ts +38 -0
- package/src/scripting/types.ts +27 -0
- package/src/scripting/values.ts +25 -0
- package/src/sdk.ts +1 -0
- package/src/services/authorization.ts +60 -0
- package/src/services/cancellation.ts +15 -0
- package/src/services/cases.ts +34 -0
- package/src/services/http.ts +327 -0
- package/src/services/members.ts +41 -0
- package/src/services/moderation.ts +52 -0
- package/src/services/native-data.ts +40 -0
- package/src/services/native-moderation.ts +87 -0
- package/src/services/resource-authorization.ts +182 -0
- package/src/services/scheduler.ts +356 -0
- package/src/services/state-maintenance.ts +207 -0
- package/src/services/variables.ts +230 -0
- package/src/shared/clone.ts +5 -0
- package/src/shared/errors.ts +35 -0
- package/src/sqlite.ts +1 -0
- package/src/store.ts +5 -0
- package/src/testing.ts +170 -0
- package/src/tooling/language.ts +335 -0
- package/src/tooling.ts +3 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
O Yuzuha segue [Semantic Versioning](https://semver.org/) e
|
|
4
|
+
[Keep a Changelog](https://keepachangelog.com/). Biblioteca, SDK reexportado e CLI
|
|
5
|
+
são entregues no mesmo pacote npm.
|
|
6
|
+
|
|
7
|
+
<details>
|
|
8
|
+
<summary>Para saber mais sobre o versionamento, expanda aqui.</summary>
|
|
9
|
+
|
|
10
|
+
As versões do pacote usam SemVer simples, como `0.1.0`. Os títulos do histórico
|
|
11
|
+
e eventuais tags Git incluem `v`, como `v0.1.0`.
|
|
12
|
+
|
|
13
|
+
O Yuzuha é uma biblioteca com CLI incluída. Não há sufixo `m`, divisão por
|
|
14
|
+
superfícies ou canais `-alpha`, `-beta` e `-stable` no histórico. A série `0.x`
|
|
15
|
+
continua em desenvolvimento inicial; ausência de sufixo não significa validação
|
|
16
|
+
de operação no Fluxer real.
|
|
17
|
+
|
|
18
|
+
Cada entrada usa `## vX.Y.Z · DD/MM/YYYY`, um resumo humano e a lista de mudanças.
|
|
19
|
+
Publicar um pacote ou criar uma tag é uma operação separada da atualização destes
|
|
20
|
+
documentos. Veja a [política completa](VERSIONING.md).
|
|
21
|
+
|
|
22
|
+
</details>
|
|
23
|
+
|
|
24
|
+
## v0.1.5 · 22/10/2026
|
|
25
|
+
|
|
26
|
+
Subcomandos e flags tipadas, ajuda derivada das definições e testes nativos com relógio controlável, com projetos gerados prontos para compartilhar. Esta atualização da biblioteca Yuzuha foi preparada em 22/10/2026 (v0.1.5).
|
|
27
|
+
|
|
28
|
+
- Comandos aceitam árvores de subcomandos e flags com inferência de tipos, aliases, valores entre aspas e separador `--`. As restrições dos grupos são preservadas na execução dos filhos.
|
|
29
|
+
- Ajuda detalha argumentos, flags, escolhas, valores padrão, exemplos e subcomandos. Erros de entrada incluem o uso esperado; metadados também ficam disponíveis no JSON de `check`.
|
|
30
|
+
- `createTestBot`, em `yuzuha/testing`, reúne transporte, recursos simulados, estado isolado, mensagens, erros e resultados. O relógio controlável permite verificar cooldown, TTL e tarefas sem aguardar tempo real; o descarte aguarda o encerramento.
|
|
31
|
+
- `init` usa dependência npm por padrão; `--local` seleciona a instalação local explicitamente. Projetos JS/TS incluem teste offline de exemplo e `npm test`.
|
|
32
|
+
- SDK permanece em 3.3.0 e o catálogo mantém 288 funções. Os contratos e exemplos novos são compartilhados com a documentação e a validação do pacote instalado.
|
|
33
|
+
|
|
34
|
+
## v0.1.4 · 22/10/2026
|
|
35
|
+
|
|
36
|
+
Eventos em scripts, cron com fuso, HTTP em streaming e ferramentas de manutenção e testes offline, com autorização compartilhada nos recursos. Esta atualização da biblioteca Yuzuha foi preparada em 22/10/2026 (v0.1.4).
|
|
37
|
+
|
|
38
|
+
- **19 funções novas**, totalizando **288**: eventos, cron, HTTP multipart, conjuntos de arrays, bytes, percentuais, conversão exata de bases, pré-carga de mensagens e criação de emojis em lote. O SDK permanece em **3.3.0**.
|
|
39
|
+
- Mutações de cargos, canais e webhooks em `ctx.resources` verificam autor e bot, servidor, permissões locais e hierarquia aplicável, tanto em scripts quanto em comandos nativos. IDs autorizados são usados na operação final; tokens de webhook não dispensam os guards.
|
|
40
|
+
- `bot.scriptEvent` e `plugin.scriptEvents` atendem seis eventos do SDK com dados próprios e imutáveis. Payloads parciais mantêm campos ausentes como `null`; reply exige mensagem disponível. Cancelamento, erros, logs e encerramento seguem o ciclo de vida do bot.
|
|
41
|
+
- Scheduler aceita cron de cinco campos, fusos IANA, políticas de execuções atrasadas, concorrência limitada e jitter de retry. Mantém claims, heartbeat e proteção de efeitos parciais; trata transições de horário de verão e expressões sem ocorrência válida.
|
|
42
|
+
- `HttpService.stream` entrega o corpo incrementalmente, mantendo timeout, limite e cancelamento durante a leitura. Multipart aceita texto e bytes; políticas por comando só restringem hosts e limites existentes. `$try` continua sem capturar guards e cancelamento.
|
|
43
|
+
- Transações reduzem cópias redundantes mantendo isolamento e rollback. `StateMaintenance` oferece estatísticas, limpeza paginada por cursor e backup versionado; restore valida conflitos e claims antes de aplicar, com simulação por padrão.
|
|
44
|
+
- CLI acrescenta `lint --json`, exportação de catálogo de plugins, `test` com cenários JSON offline e `data` para manutenção. Lint e cenários não importam código do usuário; exportar funções de uma config exige indicar o arquivo confiável explicitamente.
|
|
45
|
+
- Ports próprios precisam implementar os novos métodos e o campo `RoleInfo.managed`; o SDK fixado não expõe esse metadado. As mudanças de autorização e migração estão em [VERSIONING.md](VERSIONING.md).
|
|
46
|
+
- Correções de integração preservam IDs reais em eventos sem cache, recusam autor ausente antes de consultas ou dados de usuário, rejeitam arrays esparsos antes de persistir e descartam corpos HTTP também em falhas de redirecionamento.
|
|
47
|
+
- Catálogo do editor, referência gerada, documentação e testes do pacote instalado atualizados. Instruções de instalação pelo npm e de uso local incluídas; a validação funcional é offline, sem login no Fluxer.
|
|
48
|
+
- Manifest usa o caminho normalizado da CLI para evitar avisos no publish; o teste do pacote instalado também verifica `npm exec --offline -- yuzuha --version`.
|
|
49
|
+
|
|
50
|
+
## v0.1.3 · 21/10/2026
|
|
51
|
+
|
|
52
|
+
Histórico de tarefas, diagnósticos no editor, variáveis com expiração e mais recursos do Fluxer, com cancelamento e logs integrados. Esta atualização da biblioteca Yuzuha foi preparada em 21/10/2026 (v0.1.3).
|
|
53
|
+
|
|
54
|
+
- **24 funções novas**, totalizando **269**: moderação de voz, threads ativas/arquivadas, canais de link, avisos de conteúdo, perfis, contagens ao vivo, TTL, transações declarativas e histórico/reexecução de tarefas.
|
|
55
|
+
- `ctx.mod.move`, `mute` e `deafen` compartilham guards de autor/bot, hierarquia, proteção de alvos e casos; falhas parciais continuam escapando de `$try` e impedem retry.
|
|
56
|
+
- Threads arquivadas preservam membros, paginação e cursores; perfis normalizados e contagens de gateway incluem timeout e cancelamento. O SDK permanece em **3.3.0**.
|
|
57
|
+
- Scheduler persiste histórico limitado, oferece consulta de falhas e reexecução manual segura, renova a claim por heartbeat e encaminha falhas de manutenção aos hooks. Encerramento cancela e aguarda a finalização das execuções rastreadas.
|
|
58
|
+
- Variáveis recebem TTL consistente em memória, JSON e SQLite; `userFor` escolhe outro usuário explicitamente. `$dataTransaction` executa até 100 operações entre escopos com rollback, validação e limite de saída antes do commit.
|
|
59
|
+
- Editor aponta sintaxe, nomes desconhecidos e aridade em arquivos e strings JS/TS, com posições UTF-16. Catálogos JSON de plugins atualizam sugestões e diagnósticos sem importar código do workspace.
|
|
60
|
+
- HTTP e collectors recebem automaticamente `ctx.signal`; cancelamento encerra esperas, remove listeners e não é capturado por `$try`. Respostas HTTP que chegam após o cancelamento têm o corpo descartado.
|
|
61
|
+
- `onLog` fornece eventos estruturados com correlação, resultado e duração, sem incluir entrada de comandos, mensagens de erro ou tokens automaticamente. Não há serviço de telemetria.
|
|
62
|
+
- Contextos criam os adaptadores de HTTP/collectors sob demanda. Benchmarks acrescentam catálogo grande, payload maior, séries de memória e comparação com baseline compatível, com limiar opcional de regressão.
|
|
63
|
+
- Documentação, exemplos de migração e verificações do pacote/editor atualizados. Validação continua offline, sem login ou publicação.
|
|
64
|
+
|
|
65
|
+
## v0.1.2 · 21/10/2026
|
|
66
|
+
|
|
67
|
+
Busca e envio de mensagens, gestão de membros e threads, tarefas editáveis, transações entre chaves e ferramentas de desenvolvimento. Esta atualização da biblioteca Yuzuha foi preparada em 21/10/2026 (v0.1.2).
|
|
68
|
+
|
|
69
|
+
- **21 funções novas**, totalizando **245**: mensagens diretas, encaminhamento, buscas, apelidos, servidor, threads, convites/vanity, clonagem, anexos e controles de agendamento.
|
|
70
|
+
- Histórico com cursores `before`, `after` ou `around`; buscas preservam paginação e o estado de indexação do Fluxer.
|
|
71
|
+
- `ctx.members.setNickname` e `$nickname` compartilham motivo, permissões do autor/bot, hierarquia e proteção do dono. `ctx.members.search` acrescenta busca por nome.
|
|
72
|
+
- Edição de servidor e threads, entrada/saída do bot em threads, convites/vanity e clonagem de expressões sobre **@fluxerjs/core 3.3.0**.
|
|
73
|
+
- `$fileBase64`, `$sendFileBase64`, `$sendAttachments` e `sendBytes`/`sendAttachments` nativos: até dez anexos URL/binários na mesma mensagem, com descrições e menções desabilitadas.
|
|
74
|
+
- Scheduler com edição, pausa, retomada e política persistente de retry/backoff por tarefa. Alterações recusam tarefas em execução; scripts só alteram tarefas do mesmo autor e servidor.
|
|
75
|
+
- Falhas de dispatch agora chegam ao scheduler. Guards e moderação aplicada ou parcialmente concluída encerram a tarefa sem retry automático; claims impedem que uma conclusão antiga apague uma tarefa reivindicada novamente.
|
|
76
|
+
- `ctx.data.transaction` oferece operações síncronas entre várias chaves e escopos, com rollback, validação antes do commit e isolamento em memória, JSON e SQLite.
|
|
77
|
+
- `yuzuha doctor [config] [--json]` verifica Node, SDK, configuração, comandos, permissões declaradas, presença de token e acesso ao caminho do store, sem login ou exposição de segredos.
|
|
78
|
+
- Extensão VS Code incluída no pacote e instalador VSIX local: autocomplete, argumentos em snippets, hover e assinatura ativa para `.yz`/`.yuzuha` e strings JS/TS. Catálogo gerado do registro; `yuzuha/tooling` expõe os auxiliares de linguagem.
|
|
79
|
+
- Benchmarks reproduzíveis de dispatch, compilação, avaliação, memória e transações concorrentes, com aquecimento, amostras e JSON. Resultados locais não representam desempenho em rede.
|
|
80
|
+
- Guias de migração, editor, benchmarks e cobertura atualizados; validação offline dos contratos novos e do tarball instalado.
|
|
81
|
+
|
|
82
|
+
## v0.1.1 · 21/10/2026
|
|
83
|
+
|
|
84
|
+
Mais recursos do Fluxer.js nos modos nativo e script, operações de arrays e correções de execução, JSON e HTTP. Esta atualização da biblioteca Yuzuha foi preparada em 21/10/2026 (v0.1.1).
|
|
85
|
+
|
|
86
|
+
- **26 funções novas**, totalizando **224**: reações de mensagens, membros de threads, edição de emojis, criação/edição/exclusão de stickers, posição de canais/cargos e categorias.
|
|
87
|
+
- `$arrayMap`, `$arrayFilter`, `$arraySome`, `$arrayEvery`, `$arrayFind`, `$arrayReduce` e `$arraySortBy`, com expressões reavaliadas por item, curto-circuito, restauração de variáveis e os mesmos orçamentos do runtime. `$loopAccumulator` expõe o acumulador da redução.
|
|
88
|
+
- `$arrayConcat`, `$arrayFlat`, `$arrayChunk`, `$jsonValues` e `$jsonEntries` para compor e consultar dados sem alterar os valores originais.
|
|
89
|
+
- Os recursos de `ctx.resources` compartilham as novas operações com scripts. Listas de usuários de reações e membros de threads aceitam limite e cursor de paginação.
|
|
90
|
+
- `$createEmoji[nome;url]` baixa bytes respeitando a política HTTP e envia base64 ao SDK; corrige o envio da URL como se fosse uma imagem codificada. `ctx.http.requestBytes` permite downloads binários sem conversão UTF-8.
|
|
91
|
+
- HTTP remove credenciais ao seguir redirecionamentos para outra origem, cancela streams que excedem o tamanho permitido e identifica timeout durante a leitura do corpo.
|
|
92
|
+
- Caminhos JSON deixam de seguir propriedades herdadas; `$object` e `$jsonMerge` preservam `__proto__` como dado. Escritas em arrays por caminho aceitam índices de **0 a 9999**, evitando alocações descontroladas.
|
|
93
|
+
- `$range` termina corretamente nos extremos de inteiros seguros; loops verificam a saída entre iterações, e `$loopValue` preserva itens `null`.
|
|
94
|
+
- Deduplicação de valores primitivos em `$arrayUnique` usa um conjunto, mantendo igualdade profunda para objetos. Arquivar e bloquear uma thread usa uma única chamada ao SDK.
|
|
95
|
+
- Resolução de emojis, stickers e cargos preserva erros de transporte; buscas por ID deixam de disparar listagens extras após falha.
|
|
96
|
+
- `mockResources` aceita implementações parciais por método, mantém `this` para campos privados e informa recursos ausentes com `NATIVE_UNAVAILABLE`.
|
|
97
|
+
- Referência gerada, inventário de lacunas, exemplos e testes offline atualizados. O SDK continua fixado em **@fluxerjs/core 3.3.0**; os wrappers ampliam a cobertura sem prometer uma função para cada método do SDK.
|
|
98
|
+
|
|
99
|
+
## v0.1.0 · 20/10/2026
|
|
100
|
+
|
|
101
|
+
Primeira versão do Yuzuha como framework para Fluxer.js com function mode opcional. Um bot nativo ganha comandos tipados, guards, estado, moderação, recursos, agendamentos e HTTP sem carregar o runtime de scripts; quem quiser a sintaxe curta ativa `yuzuha/functions`.
|
|
102
|
+
|
|
103
|
+
- Entrypoint `yuzuha` focado em JS/TS: `Yuzuha`, `defineCommand`, `arg`, eventos, contexto, plugins, middleware, recursos, stores, scheduler, HTTP e `yuzuha/sdk`.
|
|
104
|
+
- Function mode isolado em `yuzuha/functions`: parser, AST, evaluator, `Runtime`, `registerBuiltins`, `script()` e **198 funções**.
|
|
105
|
+
- Builtins registrados sob demanda: comandos nativos não pagam o custo nem expõem a linguagem; `code` ativa o modo automaticamente e `bot.enableFunctions()` permite pré-carregar.
|
|
106
|
+
- Comandos com prefixos, aliases, argumentos tipados, cooldowns, permissões, checks, middleware e recarga atômica de diretórios.
|
|
107
|
+
- Eventos tipados, plugins com comandos/eventos/funções e encerramento idempotente.
|
|
108
|
+
- Moderação compartilhada entre JS/TS e scripts, com permissões efetivas, hierarquia, proteção do alvo e casos por servidor.
|
|
109
|
+
- Recursos de usuários, membros, servidor, banimentos, auditoria, presença, cargos, canais, mensagens, fixados, anexos, convites, webhooks, emojis, stickers, threads e fóruns.
|
|
110
|
+
- Coletores com timeout e filtro por autor, `$confirm`, JSON, arrays, texto, números, datas, loops e caminhos persistentes.
|
|
111
|
+
- Agendamentos persistentes com retry e recuperação de tarefas órfãs; HTTP com timeout, limite de bytes, allowlist e bloqueio de hosts privados.
|
|
112
|
+
- Estado em memória, JSON e SQLite com schema 2, transações, snapshots isolados e migração automática do schema 1.
|
|
113
|
+
- CLI `init`, `check`, `functions`, `run` e `dev`; scaffolds JS/TS com `--functions` opcional.
|
|
114
|
+
- `MockTransport`, `mockResources` e `MemoryStore` para validação offline, sem login ou ações reais.
|
|
115
|
+
- **168 testes** offline, **198 funções** na referência gerada e documentação de linguagem, framework, API, arquitetura, estado, paridade, CLI e validação.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Gabriel
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,159 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Yuzuha
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Framework para bots do Fluxer: a ergonomia que falta no Fluxer.js, com comandos
|
|
4
|
+
tipados, guards, estado, moderação, agendamentos e testes offline. Function mode
|
|
5
|
+
(scripts no estilo ForgeScript) é opcional. Versão **0.1.5**.
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
import { arg, defineCommand, Yuzuha } from 'yuzuha';
|
|
9
|
+
|
|
10
|
+
const bot = new Yuzuha({ name: 'meu-bot', prefix: '!' });
|
|
11
|
+
|
|
12
|
+
bot.command(defineCommand({
|
|
13
|
+
name: 'ban',
|
|
14
|
+
description: 'Bane um membro e registra um caso.',
|
|
15
|
+
args: {
|
|
16
|
+
membro: arg.user().required(),
|
|
17
|
+
motivo: arg.text().rest(),
|
|
18
|
+
},
|
|
19
|
+
async run(ctx) {
|
|
20
|
+
const caso = await ctx.mod.ban(ctx.args.get('membro'), {
|
|
21
|
+
reason: ctx.args.get('motivo') ?? '',
|
|
22
|
+
});
|
|
23
|
+
await ctx.reply(`Membro banido. Caso #${caso.id}.`);
|
|
24
|
+
},
|
|
25
|
+
}));
|
|
26
|
+
|
|
27
|
+
await bot.login();
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Uso: `!ban @membro spam no chat`. `ctx.mod.ban` verifica permissões e hierarquia,
|
|
31
|
+
executa o banimento e registra o caso. O token vem de `FLUXER_BOT_TOKEN`.
|
|
32
|
+
`bot.client` continua sendo o client real do Fluxer.js.
|
|
33
|
+
|
|
34
|
+
## O que o Yuzuha adiciona ao Fluxer.js
|
|
35
|
+
|
|
36
|
+
- Comandos com prefixos, subcomandos, flags e argumentos tipados, cooldowns e permissões.
|
|
37
|
+
- Ajuda com uso, escolhas e exemplos a partir das definições dos comandos.
|
|
38
|
+
- Guards, middleware, plugins, eventos tipados e recarga de comandos sem reiniciar.
|
|
39
|
+
- Moderação compartilhada (ban, kick, timeout, unban) com casos por servidor.
|
|
40
|
+
- Recursos prontos: usuários, cargos, canais, mensagens, convites, webhooks,
|
|
41
|
+
emojis, stickers, threads e fóruns, incluindo reações, membros de threads,
|
|
42
|
+
posição de cargos/canais e categorias.
|
|
43
|
+
- Estado em memória, JSON ou SQLite, com transações e variáveis por escopo.
|
|
44
|
+
- Agendamentos persistentes com cron, fuso IANA, concorrência e retry com jitter.
|
|
45
|
+
- HTTP textual/binário, streaming e multipart, com limites e políticas por comando.
|
|
46
|
+
- `createTestBot`, relógio controlável, `MockTransport` e stores isolados para testar sem token.
|
|
47
|
+
- Transações entre chaves, agendamentos editáveis com pausa/retry e apelidos com autorização compartilhada.
|
|
48
|
+
- Limpeza de expirados, estatísticas e backup/restauração versionados com simulação.
|
|
49
|
+
- `doctor`, lint JSON, cenários offline, catálogos de plugins e extensão VS Code.
|
|
50
|
+
- SDK `@fluxerjs/core` **3.3.0** reexportado em `yuzuha/sdk`, sem esconder o original.
|
|
51
|
+
|
|
52
|
+
Não é um fork do Fluxer.js nem um wrapper de todos os métodos do SDK. O que não
|
|
53
|
+
estiver no framework continua acessível por `bot.client` e pelos tipos originais.
|
|
54
|
+
|
|
55
|
+
## Function mode (opcional)
|
|
56
|
+
|
|
57
|
+
Quem preferir a sintaxe curta do ForgeScript pode usar `yuzuha/functions`. O
|
|
58
|
+
runtime é ativado quando um comando com `code` ou um evento de script é registrado.
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
import { script } from 'yuzuha/functions';
|
|
62
|
+
import { Yuzuha } from 'yuzuha';
|
|
63
|
+
|
|
64
|
+
const bot = new Yuzuha({ prefix: '!' });
|
|
65
|
+
|
|
66
|
+
bot.command(script({
|
|
67
|
+
name: 'ban',
|
|
68
|
+
code: '$modBan[$mentioned[1];$messageSlice[1]]$reply[Membro banido. Caso #$caseID.]',
|
|
69
|
+
}));
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Os dois modos compartilham guards, estado, moderação e recursos. São
|
|
73
|
+
**288 funções** com referência gerada, ou use `bot.enableFunctions()` para
|
|
74
|
+
pré-carregar o runtime.
|
|
75
|
+
|
|
76
|
+
`bot.scriptEvent()` registra scripts para entrada/saída de membros, edição/exclusão
|
|
77
|
+
de mensagens e reações. O contexto preserva os dados disponíveis do evento e exige
|
|
78
|
+
um canal real para enviar respostas. Veja [eventos](docs/EVENTS.md).
|
|
79
|
+
|
|
80
|
+
## Instalar pelo npm
|
|
81
|
+
|
|
82
|
+
Requer Node **22.13 ou mais recente**. O pacote é ESM; use `"type": "module"`
|
|
83
|
+
no `package.json` do seu projeto.
|
|
84
|
+
|
|
85
|
+
```sh
|
|
86
|
+
npm install yuzuha@0.1.5
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Para gerar um bot novo:
|
|
90
|
+
|
|
91
|
+
```sh
|
|
92
|
+
npx yuzuha@0.1.5 init ./meu-bot --ts
|
|
93
|
+
cd meu-bot
|
|
94
|
+
npm install
|
|
95
|
+
npm run check
|
|
96
|
+
npm run typecheck
|
|
97
|
+
npm test
|
|
98
|
+
cp .env.example .env
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
`init` declara a dependência npm e gera um teste offline. O projeto pode ser
|
|
102
|
+
movido e compartilhado sem depender do caminho da instalação que o criou.
|
|
103
|
+
Para JavaScript, use `--js` e omita `typecheck`.
|
|
104
|
+
Para acrescentar um exemplo de script, use `--functions`.
|
|
105
|
+
|
|
106
|
+
Preencha `FLUXER_BOT_TOKEN` no `.env` e execute `npm run dev`.
|
|
107
|
+
|
|
108
|
+
## Desenvolver a biblioteca localmente
|
|
109
|
+
|
|
110
|
+
```sh
|
|
111
|
+
cd ~/Projects/yuzuha
|
|
112
|
+
npm ci
|
|
113
|
+
npm run build
|
|
114
|
+
node dist/cli.js init ~/Projects/meu-bot --ts --local
|
|
115
|
+
cd ~/Projects/meu-bot
|
|
116
|
+
npm install
|
|
117
|
+
npm run check
|
|
118
|
+
npm run typecheck
|
|
119
|
+
cp .env.example .env
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
O scaffold desse fluxo usa a biblioteca local. O
|
|
123
|
+
[guia inicial](docs/QUICKSTART.md) explica instalação e configuração.
|
|
124
|
+
|
|
125
|
+
## Experimentar sem token
|
|
126
|
+
|
|
127
|
+
```sh
|
|
128
|
+
npx tsx examples/offline.ts
|
|
129
|
+
npx tsx examples/function-mode.ts
|
|
130
|
+
node dist/cli.js check examples/yuzuha.config.js --json
|
|
131
|
+
node dist/cli.js functions --category moderation
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Os exemplos usam `MockTransport`; nenhuma ação chega ao Fluxer. `check` importa
|
|
135
|
+
config e comandos JS/TS de confiança, valida os scripts e não chama `login`.
|
|
136
|
+
Ele não substitui o typecheck do TypeScript.
|
|
137
|
+
|
|
138
|
+
## Documentação
|
|
139
|
+
|
|
140
|
+
Comece pelo [índice da documentação](docs/README.md).
|
|
141
|
+
|
|
142
|
+
| Preciso de… | Documento |
|
|
143
|
+
|---|---|
|
|
144
|
+
| Criar meu primeiro bot JS ou TS | [Guia inicial](docs/QUICKSTART.md) |
|
|
145
|
+
| Programar comandos, eventos e plugins | [Guia nativo JS/TS](docs/NATIVE.md) |
|
|
146
|
+
| Escrever scripts `$...` | [Function mode](docs/LANGUAGE.md) e [referência](docs/FUNCTIONS.md) |
|
|
147
|
+
| Saber quais funções de script existem | [Lacunas auditadas](docs/FUNCTION-GAPS.md) |
|
|
148
|
+
| Usar comandos, contexto e extensões | [Framework](docs/FRAMEWORK.md) e [API](docs/API.md) |
|
|
149
|
+
| Copiar exemplos completos | [Receitas](docs/COOKBOOK.md) |
|
|
150
|
+
| Usar a linha de comando | [CLI](docs/CLI.md) |
|
|
151
|
+
| Entender módulos e dependências | [Arquitetura](docs/ARCHITECTURE.md) |
|
|
152
|
+
| Escolher persistência e tratar falhas | [Estado e execução](docs/STORAGE.md) |
|
|
153
|
+
| Diagnosticar ou testar | [Problemas comuns](docs/TROUBLESHOOTING.md) e [testes](docs/TESTING.md) |
|
|
154
|
+
| Usar autocomplete e diagnóstico offline | [Editor e doctor](docs/EDITOR.md) |
|
|
155
|
+
| Medir dispatch, runtime e memória | [Benchmarks](docs/BENCHMARKS.md) |
|
|
156
|
+
| Ver evidência local | [Validação](docs/VALIDATION.md) |
|
|
157
|
+
|
|
158
|
+
As mudanças estão no [changelog](CHANGELOG.md); a política de versões está em
|
|
159
|
+
[VERSIONING.md](VERSIONING.md). Leia [CONTRIBUTING.md](CONTRIBUTING.md) para contribuir.
|
package/VERSIONING.md
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# Versionamento
|
|
2
|
+
|
|
3
|
+
O Yuzuha aplica o formato Hory ao histórico e usa **SemVer simples** no pacote.
|
|
4
|
+
A versão desta atualização é **0.1.5**.
|
|
5
|
+
|
|
6
|
+
## Pacote e histórico
|
|
7
|
+
|
|
8
|
+
| Lugar | Formato nesta versão |
|
|
9
|
+
|---|---|
|
|
10
|
+
| `package.json` e raiz do `package-lock.json` | `0.1.5` |
|
|
11
|
+
| Pacote npm e saída de `yuzuha --version` | `0.1.5` |
|
|
12
|
+
| Título do changelog | `## v0.1.5 · 22/10/2026` |
|
|
13
|
+
| Eventual tag Git | `v0.1.5` |
|
|
14
|
+
|
|
15
|
+
O SDK e a CLI pertencem ao mesmo pacote. Para bibliotecas, a convenção Hory mantém
|
|
16
|
+
SemVer sem `m`, sem seções por superfície e sem sufixos de canal.
|
|
17
|
+
|
|
18
|
+
As datas dos títulos usam `DD/MM/YYYY`. Cada entrada começa com uma frase sobre
|
|
19
|
+
o resultado da versão, menciona o produto, a data e a tag, e lista mudanças
|
|
20
|
+
de uso ou manutenção. O histórico preserva as datas e os fatos anteriores.
|
|
21
|
+
|
|
22
|
+
## Compatibilidade
|
|
23
|
+
|
|
24
|
+
A série `0.x` ainda evolui. Mesmo assim, correções patch preservam os imports
|
|
25
|
+
públicos e os comandos documentados; mudanças incompatíveis recebem uma nota
|
|
26
|
+
explícita no changelog.
|
|
27
|
+
|
|
28
|
+
Mudanças incompatíveis planejadas devem entrar numa versão minor enquanto
|
|
29
|
+
estivermos em `0.x`. Ao chegar a `1.0.0`, mudanças incompatíveis exigem major;
|
|
30
|
+
novas funcionalidades compatíveis, minor; correções compatíveis, patch.
|
|
31
|
+
|
|
32
|
+
Os exports públicos são `yuzuha`, `yuzuha/functions`, `yuzuha/sdk`,
|
|
33
|
+
`yuzuha/testing` e `yuzuha/tooling`. A organização interna de `src/` não cria estabilidade de deep
|
|
34
|
+
imports. Schema persistido,
|
|
35
|
+
gramática e funções documentadas também fazem parte da compatibilidade.
|
|
36
|
+
|
|
37
|
+
A versão do SDK é fixada separadamente. Atualizá-la exige revisar
|
|
38
|
+
[PARITY.md](docs/PARITY.md), o adaptador e o teste de consumidor. A versão do bot
|
|
39
|
+
gerado por `init` pertence ao consumidor e não precisa acompanhar a biblioteca.
|
|
40
|
+
|
|
41
|
+
## Preparar uma atualização
|
|
42
|
+
|
|
43
|
+
### Migrar para 0.1.5
|
|
44
|
+
|
|
45
|
+
Imports, argumentos posicionais e comandos existentes continuam disponíveis.
|
|
46
|
+
Flags são interpretadas somente em comandos que as declaram. Grupos de
|
|
47
|
+
subcomandos não declaram argumentos ou flags próprios; a folha define sua entrada.
|
|
48
|
+
Permissões, checks, middleware e demais restrições dos grupos continuam valendo
|
|
49
|
+
nos filhos. Veja o contrato em [NATIVE.md](docs/NATIVE.md).
|
|
50
|
+
|
|
51
|
+
O scaffold agora declara a versão npm do Yuzuha. Para desenvolver contra a
|
|
52
|
+
instalação que executa a CLI, use `init --local`. Projetos já gerados conservam
|
|
53
|
+
suas dependências; a atualização não reescreve projetos consumidores.
|
|
54
|
+
O schema de persistência permanece em 2 e o SDK em 3.3.0.
|
|
55
|
+
|
|
56
|
+
### Migrar para 0.1.4
|
|
57
|
+
|
|
58
|
+
O schema persistido continua em 2. Cron, timezone, missedRun e retryJitter são
|
|
59
|
+
campos opcionais das tarefas; stores próprios devem preservá-los. Backup usa um
|
|
60
|
+
envelope separado `yuzuha-state` versão 1, validado antes de qualquer gravação.
|
|
61
|
+
`StateMaintenance.restore` exige política `replace` ou `merge` e simula por
|
|
62
|
+
padrão; passe `dryRun: false` ou `data restore --apply` para confirmar a alteração.
|
|
63
|
+
Pare e drene o scheduler antes de backup/restore de tarefas em execução.
|
|
64
|
+
|
|
65
|
+
Implementações próprias de `Resources` precisam acrescentar `messages.preload`,
|
|
66
|
+
`expressions.createEmojisBulk` e `webhooks.fetch`, além de `RoleInfo.managed`.
|
|
67
|
+
`transport.member(guildID, userID, channelID)` precisa resolver permissões locais
|
|
68
|
+
em qualquer canal do servidor, inclusive categorias. O adaptador do SDK 3.3.0
|
|
69
|
+
usa `false` quando o campo `managed` não está disponível no SDK; essa limitação
|
|
70
|
+
não permite afirmar proteção completa de cargos gerenciados remotamente.
|
|
71
|
+
|
|
72
|
+
Mutações de cargos/canais e operações de webhooks pelo contexto agora exigem as
|
|
73
|
+
permissões do autor e do bot, com hierarquia e escopo aplicáveis. Comandos que antes
|
|
74
|
+
usavam apenas a autoridade do bot podem receber `GuardError`. Use `ctx.resources`
|
|
75
|
+
para a autorização compartilhada. `bot.resources` e `bot.client` permanecem APIs
|
|
76
|
+
de código nativo confiável com a autoridade do bot.
|
|
77
|
+
|
|
78
|
+
`ScriptEventDefinition` é separado de comandos. Em eventos, `ctx.event` contém
|
|
79
|
+
os dados disponíveis; eventos parciais ou de exclusão não oferecem uma mensagem
|
|
80
|
+
para reply. Defina um canal de saída quando necessário e um `actorID` explícito
|
|
81
|
+
somente quando o código confiável precisar escolher outro autor. Não há promoção
|
|
82
|
+
automática para a identidade do bot. Veja [EVENTS.md](docs/EVENTS.md).
|
|
83
|
+
|
|
84
|
+
Políticas `command.http` só restringem a política global; configurações inválidas
|
|
85
|
+
são recusadas no registro. O timeout do streaming permanece ativo até o corpo
|
|
86
|
+
terminar ou ser cancelado. Código nativo deve consumir ou cancelar o corpo de
|
|
87
|
+
`stream`. Consulte [HTTP.md](docs/HTTP.md), [SCHEDULER.md](docs/SCHEDULER.md) e
|
|
88
|
+
[CLI.md](docs/CLI.md) para limites e formatos novos.
|
|
89
|
+
|
|
90
|
+
### Migrar para 0.1.3
|
|
91
|
+
|
|
92
|
+
Schema 2 anterior continua legível. Os campos opcionais `variableExpirations` e
|
|
93
|
+
`scheduleHistory` guardam TTL e histórico; não remova esses campos ao escrever um
|
|
94
|
+
store próprio. `set` sem TTL mantém o comportamento persistente; `update` preserva
|
|
95
|
+
o prazo de valores vivos. `userFor` é explícito e exige contexto de servidor.
|
|
96
|
+
|
|
97
|
+
Implementações próprias de `Resources` precisam acrescentar `users.profile`,
|
|
98
|
+
`users.guildCounts`, `users.channelCounts`, `threads.active` e `threads.archived`.
|
|
99
|
+
Collectors aceitam `AbortSignal` opcional; o transporte passa a receber as ações
|
|
100
|
+
`move`, `mute` e `deafen`, as opções de voz no sexto argumento de `moderate` e
|
|
101
|
+
um canal opcional em `member` para verificar permissões efetivas. Adapte esses
|
|
102
|
+
contratos antes de habilitar os novos comandos. `mockResources` continua
|
|
103
|
+
permitindo mocks parciais. Os ports brutos mantêm a autoridade do bot; prefira
|
|
104
|
+
`ctx.mod` para autorização do autor e casos.
|
|
105
|
+
|
|
106
|
+
`destroy` agora cancela HTTP/collectors do contexto e aguarda também o scheduler.
|
|
107
|
+
Callbacks próprios do scheduler recebem `signal` como segundo argumento;
|
|
108
|
+
callbacks antigos que ignoram esse argumento continuam válidos. Use `stop()`
|
|
109
|
+
seguido de `await drain()` ao gerenciar uma instância fora do bot. Cancelamento
|
|
110
|
+
é cooperativo e não desfaz efeitos já confirmados.
|
|
111
|
+
|
|
112
|
+
O histórico retém 1000 execuções por padrão. Reexecução manual usa o ID da
|
|
113
|
+
execução com falha, cria uma tarefa nova e recusa guards/efeitos de moderação.
|
|
114
|
+
Os catálogos do editor são JSON declarativo configurado em
|
|
115
|
+
`yuzuha.functionCatalogs`; não são imports de plugins. Veja
|
|
116
|
+
[STORAGE.md](docs/STORAGE.md), [NATIVE.md](docs/NATIVE.md) e
|
|
117
|
+
[EDITOR.md](docs/EDITOR.md).
|
|
118
|
+
|
|
119
|
+
### Migrar para 0.1.2
|
|
120
|
+
|
|
121
|
+
Os imports existentes e o schema 2 continuam válidos. Implementações próprias
|
|
122
|
+
de `Resources` precisam fornecer os novos métodos das áreas de mensagens,
|
|
123
|
+
usuários, threads, convites e expressões. Mocks podem usar implementações parciais
|
|
124
|
+
com `mockResources`. A extensão tem a mesma versão numérica da biblioteca e
|
|
125
|
+
continua sendo uma ferramenta incluída, sem criar uma superfície Hory separada.
|
|
126
|
+
|
|
127
|
+
Operações de agendamento em script agora respeitam autor e servidor; um ID de
|
|
128
|
+
outro escopo retorna `false`. Tarefas em execução recusam edição/pausa/retomada.
|
|
129
|
+
Falhas de comandos passam a receber retry conforme a política; guards e
|
|
130
|
+
moderação já aplicada são terminais. Revise comandos agendados com efeitos
|
|
131
|
+
externos para idempotência. Veja [NATIVE.md](docs/NATIVE.md) e
|
|
132
|
+
[EDITOR.md](docs/EDITOR.md).
|
|
133
|
+
|
|
134
|
+
### Procedimento
|
|
135
|
+
|
|
136
|
+
1. Atualize manifest e lockfile para a mesma versão.
|
|
137
|
+
2. Acrescente a entrada no [CHANGELOG.md](CHANGELOG.md), com data real e mudanças verificáveis.
|
|
138
|
+
3. Atualize migração, cobertura e documentação quando o contrato mudar.
|
|
139
|
+
4. Rode `npm run check` e `npm run smoke:package` e registre a evidência.
|
|
140
|
+
5. Inspecione `npm pack --dry-run` para conferir a distribuição.
|
|
141
|
+
|
|
142
|
+
A CLI lê a versão do manifest; não mantenha um número paralelo no código.
|
|
143
|
+
`npm run check:docs` verifica links locais e a correspondência entre manifest,
|
|
144
|
+
lockfile e título do changelog.
|
|
145
|
+
|
|
146
|
+
Atualizar estes arquivos prepara a versão local. Publicação npm, criação de tag
|
|
147
|
+
e release remota são operações separadas e exigem instrução explícita.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function compareReports(current, baseline) {
|
|
2
|
+
for (const field of ['platform', 'arch', 'cpu']) {
|
|
3
|
+
if (current[field] !== baseline[field]) throw new Error(`Baseline incompatível: ${field}.`);
|
|
4
|
+
}
|
|
5
|
+
if (current.node.split('.')[0] !== baseline.node?.split('.')[0]) throw new Error('Baseline incompatível: versão principal do Node.');
|
|
6
|
+
for (const field of ['iterations', 'samples', 'concurrency']) {
|
|
7
|
+
if (current.config[field] !== baseline.config?.[field]) throw new Error(`Baseline incompatível: ${field}.`);
|
|
8
|
+
}
|
|
9
|
+
for (const field of ['catalogSize', 'payloadSize', 'soakRounds']) {
|
|
10
|
+
if (baseline.config?.[field] !== undefined && current.config[field] !== baseline.config[field]) throw new Error(`Baseline incompatível: ${field}.`);
|
|
11
|
+
}
|
|
12
|
+
if (!Array.isArray(baseline.results)) throw new Error('Baseline sem resultados.');
|
|
13
|
+
return current.results.map(row => {
|
|
14
|
+
const previous = baseline.results.find(item => item.name === row.name);
|
|
15
|
+
if (!previous) return { name: row.name, status: 'new' };
|
|
16
|
+
if (!(previous.operationsPerSecond > 0) || !Number.isFinite(previous.operationsPerSecond)) throw new Error(`Baseline inválida: ${row.name}.`);
|
|
17
|
+
const throughputChangePercent = (row.operationsPerSecond / previous.operationsPerSecond - 1) * 100;
|
|
18
|
+
return { name: row.name, status: 'compared', throughputChangePercent,
|
|
19
|
+
regressionPercent: Math.max(0, -throughputChangePercent), heapChangeBytes: row.heapDeltaBytes - previous.heapDeltaBytes };
|
|
20
|
+
});
|
|
21
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import { performance } from 'node:perf_hooks';
|
|
3
|
+
import { arch, cpus, platform } from 'node:os';
|
|
4
|
+
import { readFile } from 'node:fs/promises';
|
|
5
|
+
import { CommandContext, MemoryStore, Yuzuha } from '../dist/index.js';
|
|
6
|
+
import { registerBuiltins, Runtime } from '../dist/functions.js';
|
|
7
|
+
import { MockTransport, mockMessage } from '../dist/testing.js';
|
|
8
|
+
import { compareReports } from './compare.mjs';
|
|
9
|
+
|
|
10
|
+
const config = { iterations: 1000, samples: 7, concurrency: 16, catalogSize: 1000, payloadSize: 4096, soakRounds: 5, json: false };
|
|
11
|
+
let baselinePath, maxRegression;
|
|
12
|
+
for (let index = 2; index < process.argv.length; index++) {
|
|
13
|
+
const key = process.argv[index];
|
|
14
|
+
if (key === '--json') { config.json = true; continue; }
|
|
15
|
+
if (key === '--baseline') {
|
|
16
|
+
baselinePath = process.argv[++index];
|
|
17
|
+
if (!baselinePath || baselinePath.startsWith('--')) throw new Error('Informe --baseline <arquivo.json>.');
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
if (key === '--max-regression') {
|
|
21
|
+
maxRegression = Number(process.argv[++index]);
|
|
22
|
+
if (!Number.isFinite(maxRegression) || maxRegression < 0 || maxRegression > 100) throw new Error('--max-regression deve estar entre 0 e 100.');
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
const name = { '--catalog-size': 'catalogSize', '--payload-size': 'payloadSize', '--soak-rounds': 'soakRounds' }[key] ?? key?.slice(2);
|
|
26
|
+
if (!['iterations', 'samples', 'concurrency', 'catalogSize', 'payloadSize', 'soakRounds'].includes(name)) throw new Error(`Opção desconhecida: ${key}`);
|
|
27
|
+
const value = Number(process.argv[++index]);
|
|
28
|
+
const max = { iterations: 1_000_000, samples: 50, concurrency: 128, catalogSize: 10_000, payloadSize: 99_000, soakRounds: 1000 }[name];
|
|
29
|
+
if (!Number.isSafeInteger(value) || value < 1 || value > max) throw new Error(`${key} deve estar entre 1 e ${max}.`);
|
|
30
|
+
config[name] = value;
|
|
31
|
+
}
|
|
32
|
+
if (maxRegression !== undefined && !baselinePath) throw new Error('--max-regression precisa de --baseline.');
|
|
33
|
+
const percentile = (values, fraction) => [...values].sort((a, b) => a - b)[Math.ceil(values.length * fraction) - 1];
|
|
34
|
+
const results = [];
|
|
35
|
+
async function measure(name, operation, concurrency = 1) {
|
|
36
|
+
const run = async count => {
|
|
37
|
+
let next = 0;
|
|
38
|
+
await Promise.all(Array.from({ length: Math.min(concurrency, count) }, async () => {
|
|
39
|
+
while (next++ < count) await operation();
|
|
40
|
+
}));
|
|
41
|
+
};
|
|
42
|
+
await run(Math.min(config.iterations, 200));
|
|
43
|
+
global.gc?.();
|
|
44
|
+
const before = process.memoryUsage(), samples = [];
|
|
45
|
+
for (let sample = 0; sample < config.samples; sample++) {
|
|
46
|
+
const start = performance.now();
|
|
47
|
+
await run(config.iterations);
|
|
48
|
+
samples.push(performance.now() - start);
|
|
49
|
+
}
|
|
50
|
+
global.gc?.();
|
|
51
|
+
const after = process.memoryUsage();
|
|
52
|
+
results.push({ name, operations: config.iterations * config.samples, concurrency,
|
|
53
|
+
medianMs: percentile(samples, 0.5), p95Ms: percentile(samples, 0.95),
|
|
54
|
+
operationsPerSecond: config.iterations * config.samples / (samples.reduce((sum, value) => sum + value, 0) / 1000),
|
|
55
|
+
heapDeltaBytes: after.heapUsed - before.heapUsed, rssDeltaBytes: after.rss - before.rss, samplesMs: samples });
|
|
56
|
+
}
|
|
57
|
+
const bots = [];
|
|
58
|
+
try {
|
|
59
|
+
for (const scripted of [false, true]) {
|
|
60
|
+
for (const concurrency of new Set([1, config.concurrency])) {
|
|
61
|
+
const bot = new Yuzuha({ transport: new MockTransport(), store: new MemoryStore(), scheduler: false, http: false });
|
|
62
|
+
bots.push(bot);
|
|
63
|
+
bot.command(scripted ? { name: 'bench', code: '$let[x;$math[2;*;3]]' } : { name: 'bench', run() {} });
|
|
64
|
+
const name = scripted ? 'dispatch/functions' : 'dispatch/native';
|
|
65
|
+
await measure(concurrency > 1 ? `${name}-concurrent` : name, async () => {
|
|
66
|
+
assert.equal(await bot.handle(mockMessage('!bench')), 'success');
|
|
67
|
+
}, concurrency);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const runtime = registerBuiltins(new Runtime());
|
|
71
|
+
const source = '$arrayReduce[$range[1;10];0;$math[$loopAccumulator;+;$loopValue]]';
|
|
72
|
+
const program = runtime.compile(source);
|
|
73
|
+
const ctx = new CommandContext({ message: mockMessage('!bench'), command: { name: 'bench', code: '' },
|
|
74
|
+
transport: new MockTransport(), store: new MemoryStore(), cooldown: () => 0 });
|
|
75
|
+
await measure('runtime/compile', () => { runtime.compile(source); });
|
|
76
|
+
await measure('runtime/evaluate', async () => { assert.equal(await runtime.execute(program, ctx), 55); });
|
|
77
|
+
await measure('store/transaction-concurrent', async () => {
|
|
78
|
+
await ctx.data.transaction(tx => {
|
|
79
|
+
tx.guild.update('a', value => Number(value) + 1, 0);
|
|
80
|
+
tx.guild.update('b', value => Number(value) + 1, 0);
|
|
81
|
+
});
|
|
82
|
+
}, config.concurrency);
|
|
83
|
+
const expected = Math.min(config.iterations, 200) + config.iterations * config.samples;
|
|
84
|
+
assert.equal(await ctx.data.guild.get('a'), expected);
|
|
85
|
+
assert.equal(await ctx.data.guild.get('b'), expected);
|
|
86
|
+
const catalog = new Yuzuha({ transport: new MockTransport(), store: new MemoryStore(), scheduler: false, http: false });
|
|
87
|
+
bots.push(catalog);
|
|
88
|
+
for (let index = 0; index < config.catalogSize; index++) catalog.command({ name: `item${index}`, run() {} });
|
|
89
|
+
await measure('dispatch/large-catalog', async () => {
|
|
90
|
+
assert.equal(await catalog.handle(mockMessage(`!item${config.catalogSize - 1}`)), 'success');
|
|
91
|
+
});
|
|
92
|
+
const payload = 'x'.repeat(config.payloadSize);
|
|
93
|
+
const payloadProgram = runtime.compile(`$let[payload;${payload}]`);
|
|
94
|
+
await measure('runtime/large-payload', async () => {
|
|
95
|
+
assert.equal(await runtime.execute(payloadProgram, ctx), '');
|
|
96
|
+
assert.equal(ctx.vars.get('payload').length, config.payloadSize);
|
|
97
|
+
});
|
|
98
|
+
const memory = [];
|
|
99
|
+
for (let round = 0; round <= config.soakRounds; round++) {
|
|
100
|
+
if (round > 0) for (let index = 0; index < config.iterations; index++) {
|
|
101
|
+
assert.equal(await catalog.handle(mockMessage(`!item${config.catalogSize - 1} ${payload}`)), 'success');
|
|
102
|
+
}
|
|
103
|
+
global.gc?.();
|
|
104
|
+
const usage = process.memoryUsage();
|
|
105
|
+
memory.push({ round, operations: round * config.iterations, heapUsed: usage.heapUsed, rss: usage.rss });
|
|
106
|
+
}
|
|
107
|
+
const manifest = JSON.parse(await readFile(new URL('../package.json', import.meta.url), 'utf8'));
|
|
108
|
+
const report = { version: manifest.version, date: new Date().toISOString(), node: process.versions.node,
|
|
109
|
+
platform: platform(), arch: arch(), cpu: cpus()[0]?.model, gc: typeof global.gc === 'function', config, results,
|
|
110
|
+
memory: { samples: memory, heapGrowthBytes: memory.at(-1).heapUsed - memory[0].heapUsed,
|
|
111
|
+
rssGrowthBytes: memory.at(-1).rss - memory[0].rss } };
|
|
112
|
+
if (baselinePath) {
|
|
113
|
+
report.comparison = compareReports(report, JSON.parse(await readFile(baselinePath, 'utf8')));
|
|
114
|
+
if (maxRegression !== undefined && report.comparison.some(row => row.regressionPercent > maxRegression)) process.exitCode = 1;
|
|
115
|
+
}
|
|
116
|
+
console.log(config.json ? JSON.stringify(report, null, 2) : [
|
|
117
|
+
`Yuzuha ${report.version} · Node ${report.node} · ${report.platform}/${report.arch}`,
|
|
118
|
+
`${config.iterations} operações/amostra, ${config.samples} amostras; GC explícito: ${report.gc}`,
|
|
119
|
+
...results.map(row => `${row.name}: ${row.operationsPerSecond.toFixed(0)} ops/s; mediana ${row.medianMs.toFixed(2)}ms; p95 ${row.p95Ms.toFixed(2)}ms; heap ${row.heapDeltaBytes} bytes`),
|
|
120
|
+
`Memória após ${config.soakRounds * config.iterations} operações: heap ${report.memory.heapGrowthBytes} bytes; RSS ${report.memory.rssGrowthBytes} bytes`,
|
|
121
|
+
...(report.comparison ?? []).map(row => `${row.name}: ${row.status === 'new' ? 'novo cenário' : `${row.throughputChangePercent.toFixed(1)}% ops/s ante baseline`}`),
|
|
122
|
+
].join('\n'));
|
|
123
|
+
} finally { await Promise.all(bots.map(bot => bot.destroy())); }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC"}
|
package/dist/adapter.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC","sourcesContent":["export { FluxerTransport } from './infrastructure/fluxer/transport.js';\nexport { incoming } from './infrastructure/fluxer/messages.js';\n"]}
|
package/dist/bot.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/bot.js
ADDED
package/dist/bot.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC","sourcesContent":["export { Yuzuha, Bot } from './framework/bot.js';\nexport type { YuzuhaOptions, YuzuhaPlugin, Middleware, DispatchResult } from './framework/options.js';\n"]}
|