yuzuha 0.2.0 → 0.3.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/CHANGELOG.md +29 -1
- package/README.md +22 -14
- package/VERSIONING.md +56 -7
- package/benchmarks/parser.mjs +1 -1
- package/benchmarks/run.mjs +3 -2
- package/dist/canvas/card.d.ts +10 -0
- package/dist/canvas/card.d.ts.map +1 -0
- package/dist/canvas/card.js +11 -0
- package/dist/canvas/card.js.map +1 -0
- package/dist/canvas.d.ts +30 -9
- package/dist/canvas.d.ts.map +1 -1
- package/dist/canvas.js +64 -9
- package/dist/canvas.js.map +1 -1
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +2 -1
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/lint.d.ts.map +1 -1
- package/dist/cli/lint.js +1 -2
- package/dist/cli/lint.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +8 -9
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/scaffold.js +1 -1
- package/dist/cli/scaffold.js.map +1 -1
- package/dist/cli/scenarios.d.ts.map +1 -1
- package/dist/cli/scenarios.js +2 -1
- package/dist/cli/scenarios.js.map +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +7 -2
- package/dist/commands/context.js.map +1 -1
- package/dist/domain/resource-batches.d.ts +6 -0
- package/dist/domain/resource-batches.d.ts.map +1 -1
- package/dist/domain/resource-batches.js +31 -0
- package/dist/domain/resource-batches.js.map +1 -1
- package/dist/framework/bot.d.ts +9 -5
- package/dist/framework/bot.d.ts.map +1 -1
- package/dist/framework/bot.js +51 -27
- package/dist/framework/bot.js.map +1 -1
- package/dist/framework/command-registry.d.ts +8 -7
- package/dist/framework/command-registry.d.ts.map +1 -1
- package/dist/framework/command-registry.js +14 -11
- package/dist/framework/command-registry.js.map +1 -1
- package/dist/framework/options.d.ts +3 -3
- package/dist/framework/options.d.ts.map +1 -1
- package/dist/framework/options.js.map +1 -1
- package/dist/{scripting → functions}/builtins/arguments.d.ts.map +1 -1
- package/dist/{scripting → functions}/builtins/arguments.js.map +1 -1
- package/dist/functions/builtins/canvas.d.ts +2 -0
- package/dist/functions/builtins/canvas.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/canvas.js +1 -1
- package/dist/{scripting → functions}/builtins/canvas.js.map +1 -1
- package/dist/functions/builtins/context.d.ts +2 -0
- package/dist/functions/builtins/context.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/context.js.map +1 -1
- package/dist/{scripting → functions}/builtins/definition.d.ts +1 -1
- package/dist/functions/builtins/definition.d.ts.map +1 -0
- package/dist/functions/builtins/definition.js.map +1 -0
- package/dist/functions/builtins/embeds.d.ts +3 -0
- package/dist/{scripting → functions}/builtins/embeds.d.ts.map +1 -1
- package/dist/{scripting → functions}/builtins/embeds.js +1 -1
- package/dist/functions/builtins/embeds.js.map +1 -0
- package/dist/functions/builtins/events.d.ts +2 -0
- package/dist/functions/builtins/events.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/events.js.map +1 -1
- package/dist/functions/builtins/flow.d.ts +2 -0
- package/dist/functions/builtins/flow.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/flow.js +2 -2
- package/dist/functions/builtins/flow.js.map +1 -0
- package/dist/functions/builtins/guards.d.ts +2 -0
- package/dist/functions/builtins/guards.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/guards.js +1 -1
- package/dist/functions/builtins/guards.js.map +1 -0
- package/dist/functions/builtins/http.d.ts +2 -0
- package/dist/functions/builtins/http.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/http.js +2 -2
- package/dist/functions/builtins/http.js.map +1 -0
- package/dist/functions/builtins/index.d.ts +5 -0
- package/dist/functions/builtins/index.d.ts.map +1 -0
- package/dist/functions/builtins/index.js.map +1 -0
- package/dist/functions/builtins/language/array-callbacks.d.ts +2 -0
- package/dist/functions/builtins/language/array-callbacks.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/language/array-callbacks.js +1 -1
- package/dist/{scripting → functions}/builtins/language/array-callbacks.js.map +1 -1
- package/dist/functions/builtins/language/arrays.d.ts +2 -0
- package/dist/functions/builtins/language/arrays.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/language/arrays.js +1 -1
- package/dist/{scripting → functions}/builtins/language/arrays.js.map +1 -1
- package/dist/{scripting → functions}/builtins/language/common.d.ts.map +1 -1
- package/dist/{scripting → functions}/builtins/language/common.js.map +1 -1
- package/dist/functions/builtins/language/decimals.d.ts +2 -0
- package/dist/functions/builtins/language/decimals.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/language/decimals.js.map +1 -1
- package/dist/functions/builtins/language/index.d.ts +3 -0
- package/dist/functions/builtins/language/index.d.ts.map +1 -0
- package/dist/functions/builtins/language/index.js.map +1 -0
- package/dist/functions/builtins/language/loops.d.ts +4 -0
- package/dist/{scripting → functions}/builtins/language/loops.d.ts.map +1 -1
- package/dist/{scripting → functions}/builtins/language/loops.js +3 -3
- package/dist/{scripting → functions}/builtins/language/loops.js.map +1 -1
- package/dist/functions/builtins/language/numbers.d.ts +2 -0
- package/dist/functions/builtins/language/numbers.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/language/numbers.js.map +1 -1
- package/dist/{scripting → functions}/builtins/language/objects.d.ts +1 -1
- package/dist/{scripting → functions}/builtins/language/objects.d.ts.map +1 -1
- package/dist/{scripting → functions}/builtins/language/objects.js.map +1 -1
- package/dist/functions/builtins/language/regex.d.ts +2 -0
- package/dist/functions/builtins/language/regex.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/language/regex.js +1 -1
- package/dist/{scripting → functions}/builtins/language/regex.js.map +1 -1
- package/dist/functions/builtins/language/sort.d.ts +2 -0
- package/dist/functions/builtins/language/sort.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/language/sort.js.map +1 -1
- package/dist/{scripting → functions}/builtins/language/state.d.ts +1 -1
- package/dist/{scripting → functions}/builtins/language/state.d.ts.map +1 -1
- package/dist/{scripting → functions}/builtins/language/state.js.map +1 -1
- package/dist/functions/builtins/language/texts.d.ts +2 -0
- package/dist/functions/builtins/language/texts.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/language/texts.js.map +1 -1
- package/dist/functions/builtins/messages.d.ts +2 -0
- package/dist/functions/builtins/messages.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/messages.js.map +1 -1
- package/dist/functions/builtins/moderation.d.ts +2 -0
- package/dist/functions/builtins/moderation.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/moderation.js.map +1 -1
- package/dist/functions/builtins/native-channels.d.ts +2 -0
- package/dist/functions/builtins/native-channels.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/native-channels.js.map +1 -1
- package/dist/functions/builtins/native-collectors.d.ts +2 -0
- package/dist/functions/builtins/native-collectors.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/native-collectors.js.map +1 -1
- package/dist/functions/builtins/native-expressions.d.ts +2 -0
- package/dist/functions/builtins/native-expressions.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/native-expressions.js.map +1 -1
- package/dist/functions/builtins/native-invites.d.ts +2 -0
- package/dist/functions/builtins/native-invites.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/native-invites.js.map +1 -1
- package/dist/functions/builtins/native-messages.d.ts +2 -0
- package/dist/functions/builtins/native-messages.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/native-messages.js.map +1 -1
- package/dist/functions/builtins/native-roles.d.ts +2 -0
- package/dist/functions/builtins/native-roles.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/native-roles.js.map +1 -1
- package/dist/functions/builtins/native-threads.d.ts +2 -0
- package/dist/functions/builtins/native-threads.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/native-threads.js.map +1 -1
- package/dist/functions/builtins/native-users.d.ts +2 -0
- package/dist/functions/builtins/native-users.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/native-users.js.map +1 -1
- package/dist/functions/builtins/native-webhooks.d.ts +2 -0
- package/dist/functions/builtins/native-webhooks.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/native-webhooks.js.map +1 -1
- package/dist/{scripting → functions}/builtins/payload.d.ts +2 -2
- package/dist/functions/builtins/payload.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/payload.js +1 -1
- package/dist/functions/builtins/payload.js.map +1 -0
- package/dist/functions/builtins/resource-extras.d.ts +2 -0
- package/dist/functions/builtins/resource-extras.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/resource-extras.js.map +1 -1
- package/dist/functions/builtins/schedule.d.ts +2 -0
- package/dist/functions/builtins/schedule.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/schedule.js.map +1 -1
- package/dist/functions/builtins/storage.d.ts +2 -0
- package/dist/functions/builtins/storage.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/storage.js.map +1 -1
- package/dist/functions/builtins/values.d.ts +2 -0
- package/dist/functions/builtins/values.d.ts.map +1 -0
- package/dist/{scripting → functions}/builtins/values.js +1 -1
- package/dist/functions/builtins/values.js.map +1 -0
- package/dist/functions/runtime/ast.d.ts.map +1 -0
- package/dist/functions/runtime/ast.js.map +1 -0
- package/dist/{scripting → functions/runtime}/canvas-execution.d.ts +1 -1
- package/dist/functions/runtime/canvas-execution.d.ts.map +1 -0
- package/dist/functions/runtime/canvas-execution.js.map +1 -0
- package/dist/functions/runtime/control-flow.d.ts.map +1 -0
- package/dist/functions/runtime/control-flow.js.map +1 -0
- package/dist/{scripting → functions/runtime}/evaluator.d.ts +1 -1
- package/dist/functions/runtime/evaluator.d.ts.map +1 -0
- package/dist/{scripting → functions/runtime}/evaluator.js +1 -1
- package/dist/functions/runtime/evaluator.js.map +1 -0
- package/dist/functions/runtime/limits.d.ts.map +1 -0
- package/dist/{scripting → functions/runtime}/limits.js +1 -1
- package/dist/functions/runtime/limits.js.map +1 -0
- package/dist/functions/runtime/parser.d.ts.map +1 -0
- package/dist/{scripting → functions/runtime}/parser.js +1 -1
- package/dist/functions/runtime/parser.js.map +1 -0
- package/dist/functions/runtime/regex.d.ts.map +1 -0
- package/dist/{scripting → functions/runtime}/regex.js +1 -1
- package/dist/functions/runtime/regex.js.map +1 -0
- package/dist/functions/runtime/registry.d.ts.map +1 -0
- package/dist/{scripting → functions/runtime}/registry.js +1 -1
- package/dist/functions/runtime/registry.js.map +1 -0
- package/dist/{scripting → functions/runtime}/runtime.d.ts +3 -1
- package/dist/functions/runtime/runtime.d.ts.map +1 -0
- package/dist/{scripting → functions/runtime}/runtime.js +3 -0
- package/dist/functions/runtime/runtime.js.map +1 -0
- package/dist/{scripting → functions/runtime}/types.d.ts +1 -1
- package/dist/functions/runtime/types.d.ts.map +1 -0
- package/dist/functions/runtime/types.js.map +1 -0
- package/dist/functions/runtime/values.d.ts.map +1 -0
- package/dist/functions/runtime/values.js.map +1 -0
- package/dist/functions.d.ts +19 -8
- package/dist/functions.d.ts.map +1 -1
- package/dist/functions.js +18 -6
- package/dist/functions.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/canvas/napi.d.ts +4 -0
- package/dist/infrastructure/canvas/napi.d.ts.map +1 -0
- package/dist/infrastructure/canvas/napi.js +17 -0
- package/dist/infrastructure/canvas/napi.js.map +1 -0
- package/dist/infrastructure/fluxer/resources/cache.d.ts +4 -0
- package/dist/infrastructure/fluxer/resources/cache.d.ts.map +1 -0
- package/dist/infrastructure/fluxer/resources/cache.js +68 -0
- package/dist/infrastructure/fluxer/resources/cache.js.map +1 -0
- package/dist/infrastructure/fluxer/resources/channels.d.ts +3 -2
- package/dist/infrastructure/fluxer/resources/channels.d.ts.map +1 -1
- package/dist/infrastructure/fluxer/resources/channels.js +54 -2
- package/dist/infrastructure/fluxer/resources/channels.js.map +1 -1
- package/dist/infrastructure/fluxer/resources/collectors.d.ts.map +1 -1
- package/dist/infrastructure/fluxer/resources/collectors.js +86 -4
- package/dist/infrastructure/fluxer/resources/collectors.js.map +1 -1
- package/dist/infrastructure/fluxer/resources/expressions.d.ts.map +1 -1
- package/dist/infrastructure/fluxer/resources/expressions.js +8 -1
- package/dist/infrastructure/fluxer/resources/expressions.js.map +1 -1
- package/dist/infrastructure/fluxer/resources/gateway.d.ts +4 -0
- package/dist/infrastructure/fluxer/resources/gateway.d.ts.map +1 -0
- package/dist/infrastructure/fluxer/resources/gateway.js +31 -0
- package/dist/infrastructure/fluxer/resources/gateway.js.map +1 -0
- package/dist/infrastructure/fluxer/resources/instance.d.ts +4 -0
- package/dist/infrastructure/fluxer/resources/instance.d.ts.map +1 -0
- package/dist/infrastructure/fluxer/resources/instance.js +96 -0
- package/dist/infrastructure/fluxer/resources/instance.js.map +1 -0
- package/dist/infrastructure/fluxer/resources/messages.d.ts +3 -1
- package/dist/infrastructure/fluxer/resources/messages.d.ts.map +1 -1
- package/dist/infrastructure/fluxer/resources/messages.js +91 -36
- package/dist/infrastructure/fluxer/resources/messages.js.map +1 -1
- package/dist/infrastructure/fluxer/resources/roles.d.ts.map +1 -1
- package/dist/infrastructure/fluxer/resources/roles.js +8 -0
- package/dist/infrastructure/fluxer/resources/roles.js.map +1 -1
- package/dist/infrastructure/fluxer/resources/self.d.ts +4 -0
- package/dist/infrastructure/fluxer/resources/self.d.ts.map +1 -0
- package/dist/infrastructure/fluxer/resources/self.js +36 -0
- package/dist/infrastructure/fluxer/resources/self.js.map +1 -0
- package/dist/infrastructure/fluxer/resources/threads.d.ts.map +1 -1
- package/dist/infrastructure/fluxer/resources/threads.js +15 -0
- package/dist/infrastructure/fluxer/resources/threads.js.map +1 -1
- package/dist/infrastructure/fluxer/resources/users.d.ts +5 -2
- package/dist/infrastructure/fluxer/resources/users.d.ts.map +1 -1
- package/dist/infrastructure/fluxer/resources/users.js +36 -3
- package/dist/infrastructure/fluxer/resources/users.js.map +1 -1
- package/dist/infrastructure/fluxer/resources/webhooks.d.ts.map +1 -1
- package/dist/infrastructure/fluxer/resources/webhooks.js +9 -0
- package/dist/infrastructure/fluxer/resources/webhooks.js.map +1 -1
- package/dist/infrastructure/fluxer/resources.d.ts +4 -0
- package/dist/infrastructure/fluxer/resources.d.ts.map +1 -1
- package/dist/infrastructure/fluxer/resources.js +12 -0
- package/dist/infrastructure/fluxer/resources.js.map +1 -1
- package/dist/ports/resources/cache.d.ts +74 -0
- package/dist/ports/resources/cache.d.ts.map +1 -0
- package/dist/ports/resources/cache.js +2 -0
- package/dist/ports/resources/cache.js.map +1 -0
- package/dist/ports/resources/channels.d.ts +17 -0
- package/dist/ports/resources/channels.d.ts.map +1 -1
- package/dist/ports/resources/channels.js.map +1 -1
- package/dist/ports/resources/collectors.d.ts +18 -0
- package/dist/ports/resources/collectors.d.ts.map +1 -1
- package/dist/ports/resources/collectors.js.map +1 -1
- package/dist/ports/resources/common.d.ts +2 -0
- package/dist/ports/resources/common.d.ts.map +1 -1
- package/dist/ports/resources/common.js.map +1 -1
- package/dist/ports/resources/expressions.d.ts +8 -0
- package/dist/ports/resources/expressions.d.ts.map +1 -1
- package/dist/ports/resources/expressions.js.map +1 -1
- package/dist/ports/resources/gateway.d.ts +48 -0
- package/dist/ports/resources/gateway.d.ts.map +1 -0
- package/dist/ports/resources/gateway.js +2 -0
- package/dist/ports/resources/gateway.js.map +1 -0
- package/dist/ports/resources/instance.d.ts +101 -0
- package/dist/ports/resources/instance.d.ts.map +1 -0
- package/dist/ports/resources/instance.js +2 -0
- package/dist/ports/resources/instance.js.map +1 -0
- package/dist/ports/resources/messages.d.ts +27 -0
- package/dist/ports/resources/messages.d.ts.map +1 -1
- package/dist/ports/resources/messages.js.map +1 -1
- package/dist/ports/resources/roles.d.ts +6 -0
- package/dist/ports/resources/roles.d.ts.map +1 -1
- package/dist/ports/resources/roles.js.map +1 -1
- package/dist/ports/resources/self.d.ts +30 -0
- package/dist/ports/resources/self.d.ts.map +1 -0
- package/dist/ports/resources/self.js +2 -0
- package/dist/ports/resources/self.js.map +1 -0
- package/dist/ports/resources/threads.d.ts +16 -0
- package/dist/ports/resources/threads.d.ts.map +1 -1
- package/dist/ports/resources/threads.js.map +1 -1
- package/dist/ports/resources/users.d.ts +30 -0
- package/dist/ports/resources/users.d.ts.map +1 -1
- package/dist/ports/resources/users.js.map +1 -1
- package/dist/ports/resources/webhooks.d.ts +5 -0
- package/dist/ports/resources/webhooks.d.ts.map +1 -1
- package/dist/ports/resources/webhooks.js.map +1 -1
- package/dist/ports/resources.d.ts +8 -0
- package/dist/ports/resources.d.ts.map +1 -1
- package/dist/ports/resources.js.map +1 -1
- package/dist/ports/script-engine.d.ts +45 -0
- package/dist/ports/script-engine.d.ts.map +1 -0
- package/dist/ports/script-engine.js +2 -0
- package/dist/ports/script-engine.js.map +1 -0
- package/dist/sdk/builders.d.ts +2 -0
- package/dist/sdk/builders.d.ts.map +1 -0
- package/dist/sdk/builders.js +2 -0
- package/dist/sdk/builders.js.map +1 -0
- package/dist/sdk/client.d.ts +2 -0
- package/dist/sdk/client.d.ts.map +1 -0
- package/dist/sdk/client.js +2 -0
- package/dist/sdk/client.js.map +1 -0
- package/dist/sdk/cluster.d.ts +2 -0
- package/dist/sdk/cluster.d.ts.map +1 -0
- package/dist/sdk/cluster.js +2 -0
- package/dist/sdk/cluster.js.map +1 -0
- package/dist/sdk/collection.d.ts +2 -0
- package/dist/sdk/collection.d.ts.map +1 -0
- package/dist/sdk/collection.js +2 -0
- package/dist/sdk/collection.js.map +1 -0
- package/dist/sdk/errors.d.ts +2 -0
- package/dist/sdk/errors.d.ts.map +1 -0
- package/dist/sdk/errors.js +2 -0
- package/dist/sdk/errors.js.map +1 -0
- package/dist/sdk/internal.d.ts +2 -0
- package/dist/sdk/internal.d.ts.map +1 -0
- package/dist/sdk/internal.js +2 -0
- package/dist/sdk/internal.js.map +1 -0
- package/dist/sdk/message.d.ts +2 -0
- package/dist/sdk/message.d.ts.map +1 -0
- package/dist/sdk/message.js +2 -0
- package/dist/sdk/message.js.map +1 -0
- package/dist/sdk/rest/request-manager.d.ts +2 -0
- package/dist/sdk/rest/request-manager.d.ts.map +1 -0
- package/dist/sdk/rest/request-manager.js +2 -0
- package/dist/sdk/rest/request-manager.js.map +1 -0
- package/dist/sdk/rest.d.ts +2 -0
- package/dist/sdk/rest.d.ts.map +1 -0
- package/dist/sdk/rest.js +2 -0
- package/dist/sdk/rest.js.map +1 -0
- package/dist/sdk/sharding.d.ts +2 -0
- package/dist/sdk/sharding.d.ts.map +1 -0
- package/dist/sdk/sharding.js +2 -0
- package/dist/sdk/sharding.js.map +1 -0
- package/dist/sdk/types/routes.d.ts +2 -0
- package/dist/sdk/types/routes.d.ts.map +1 -0
- package/dist/sdk/types/routes.js +2 -0
- package/dist/sdk/types/routes.js.map +1 -0
- package/dist/sdk/types.d.ts +2 -0
- package/dist/sdk/types.d.ts.map +1 -0
- package/dist/sdk/types.js +2 -0
- package/dist/sdk/types.js.map +1 -0
- package/dist/sdk/util.d.ts +2 -0
- package/dist/sdk/util.d.ts.map +1 -0
- package/dist/sdk/util.js +2 -0
- package/dist/sdk/util.js.map +1 -0
- package/dist/sdk/voice.d.ts +2 -0
- package/dist/sdk/voice.d.ts.map +1 -0
- package/dist/sdk/voice.js +2 -0
- package/dist/sdk/voice.js.map +1 -0
- package/dist/sdk/ws.d.ts +2 -0
- package/dist/sdk/ws.d.ts.map +1 -0
- package/dist/sdk/ws.js +2 -0
- package/dist/sdk/ws.js.map +1 -0
- package/dist/services/canvas-image.d.ts +12 -0
- package/dist/services/canvas-image.d.ts.map +1 -0
- package/dist/services/canvas-image.js +56 -0
- package/dist/services/canvas-image.js.map +1 -0
- package/dist/services/canvas.d.ts +12 -2
- package/dist/services/canvas.d.ts.map +1 -1
- package/dist/services/canvas.js +91 -5
- package/dist/services/canvas.js.map +1 -1
- package/dist/services/moderation.d.ts +1 -0
- package/dist/services/moderation.d.ts.map +1 -1
- package/dist/services/moderation.js +11 -0
- package/dist/services/moderation.js.map +1 -1
- package/dist/services/native-moderation.d.ts +6 -1
- package/dist/services/native-moderation.d.ts.map +1 -1
- package/dist/services/native-moderation.js +11 -1
- package/dist/services/native-moderation.js.map +1 -1
- package/dist/services/resource-authorization.d.ts.map +1 -1
- package/dist/services/resource-authorization.js +95 -3
- package/dist/services/resource-authorization.js.map +1 -1
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +4 -0
- package/dist/testing.js.map +1 -1
- package/docs/API.md +8 -7
- package/docs/ARCHITECTURE.md +14 -9
- package/docs/BENCHMARKS.md +1 -1
- package/docs/CANVAS.md +70 -15
- package/docs/EDITOR.md +1 -1
- package/docs/FRAMEWORK.md +2 -3
- package/docs/HTTP.md +1 -1
- package/docs/IMAGES.md +2 -1
- package/docs/NATIVE.md +45 -14
- package/docs/PARITY-MATRIX.md +853 -843
- package/docs/PARITY.md +24 -12
- package/docs/PLAN.md +14 -3
- package/docs/QUICKSTART.md +5 -5
- package/docs/README.md +7 -7
- package/docs/REPOSITORY.md +1 -1
- package/docs/SCHEDULER.md +1 -1
- package/docs/TROUBLESHOOTING.md +1 -1
- package/docs/VALIDATION.md +5 -5
- package/docs/{FUNCTION-GAPS.md → functions/FUNCTION-GAPS.md} +18 -13
- package/docs/{LANGUAGE.md → functions/LANGUAGE.md} +7 -7
- package/docs/functions/README.md +33 -0
- package/docs/tutorials/DATA.md +2 -2
- package/docs/tutorials/FUNCTION-MODE.md +2 -2
- package/examples/canvas/napi-style.ts +24 -0
- package/examples/canvas/output/napi-style.png +0 -0
- package/examples/canvas/profile.d.mts +1 -1
- package/examples/canvas/profile.mjs +2 -2
- package/examples/canvas/profile.ts +3 -3
- package/examples/canvas/ranking.d.mts +1 -1
- package/examples/canvas/ranking.mjs +2 -2
- package/examples/canvas/ranking.ts +3 -3
- package/examples/canvas/render.ts +2 -1
- package/examples/canvas/welcome.d.mts +1 -1
- package/examples/canvas/welcome.mjs +2 -2
- package/examples/canvas/welcome.ts +3 -3
- package/examples/embeds/complete-embed-functions.ts +2 -2
- package/examples/function-mode.ts +3 -3
- package/examples/yuzuha.config.js +2 -0
- package/package.json +26 -1
- package/src/canvas/card.ts +20 -0
- package/src/canvas.ts +69 -17
- package/src/cli/config.ts +2 -1
- package/src/cli/lint.ts +1 -2
- package/src/cli/main.ts +8 -9
- package/src/cli/scaffold.ts +1 -1
- package/src/cli/scenarios.ts +2 -1
- package/src/commands/context.ts +9 -2
- package/src/domain/resource-batches.ts +31 -0
- package/src/framework/bot.ts +44 -27
- package/src/framework/command-registry.ts +15 -10
- package/src/framework/options.ts +3 -3
- package/src/{scripting → functions}/builtins/canvas.ts +2 -2
- package/src/{scripting → functions}/builtins/context.ts +1 -1
- package/src/{scripting → functions}/builtins/definition.ts +1 -1
- package/src/{scripting → functions}/builtins/embeds.ts +1 -1
- package/src/{scripting → functions}/builtins/flow.ts +2 -2
- package/src/{scripting → functions}/builtins/guards.ts +1 -1
- package/src/{scripting → functions}/builtins/http.ts +2 -2
- package/src/{scripting → functions}/builtins/index.ts +2 -2
- package/src/{scripting → functions}/builtins/language/array-callbacks.ts +2 -2
- package/src/{scripting → functions}/builtins/language/arrays.ts +1 -1
- package/src/{scripting → functions}/builtins/language/index.ts +1 -1
- package/src/{scripting → functions}/builtins/language/loops.ts +4 -4
- package/src/{scripting → functions}/builtins/language/regex.ts +1 -1
- package/src/{scripting → functions}/builtins/moderation.ts +1 -1
- package/src/{scripting → functions}/builtins/native-channels.ts +1 -1
- package/src/{scripting → functions}/builtins/native-roles.ts +1 -1
- package/src/{scripting → functions}/builtins/native-users.ts +1 -1
- package/src/{scripting → functions}/builtins/payload.ts +2 -2
- package/src/{scripting → functions}/builtins/resource-extras.ts +1 -1
- package/src/{scripting → functions}/builtins/values.ts +1 -1
- package/src/{scripting → functions/runtime}/canvas-execution.ts +1 -1
- package/src/{scripting → functions/runtime}/evaluator.ts +2 -2
- package/src/{scripting → functions/runtime}/limits.ts +1 -1
- package/src/{scripting → functions/runtime}/parser.ts +1 -1
- package/src/{scripting → functions/runtime}/regex.ts +1 -1
- package/src/{scripting → functions/runtime}/registry.ts +1 -1
- package/src/{scripting → functions/runtime}/runtime.ts +6 -1
- package/src/{scripting → functions/runtime}/types.ts +1 -1
- package/src/functions.ts +28 -8
- package/src/index.ts +9 -2
- package/src/infrastructure/canvas/napi.ts +17 -0
- package/src/infrastructure/fluxer/resources/cache.ts +69 -0
- package/src/infrastructure/fluxer/resources/channels.ts +51 -3
- package/src/infrastructure/fluxer/resources/collectors.ts +87 -4
- package/src/infrastructure/fluxer/resources/expressions.ts +7 -1
- package/src/infrastructure/fluxer/resources/gateway.ts +33 -0
- package/src/infrastructure/fluxer/resources/instance.ts +105 -0
- package/src/infrastructure/fluxer/resources/messages.ts +84 -36
- package/src/infrastructure/fluxer/resources/roles.ts +8 -0
- package/src/infrastructure/fluxer/resources/self.ts +39 -0
- package/src/infrastructure/fluxer/resources/threads.ts +14 -0
- package/src/infrastructure/fluxer/resources/users.ts +40 -4
- package/src/infrastructure/fluxer/resources/webhooks.ts +9 -0
- package/src/infrastructure/fluxer/resources.ts +12 -0
- package/src/ports/resources/cache.ts +81 -0
- package/src/ports/resources/channels.ts +12 -0
- package/src/ports/resources/collectors.ts +20 -0
- package/src/ports/resources/common.ts +2 -0
- package/src/ports/resources/expressions.ts +6 -0
- package/src/ports/resources/gateway.ts +49 -0
- package/src/ports/resources/instance.ts +109 -0
- package/src/ports/resources/messages.ts +30 -0
- package/src/ports/resources/roles.ts +3 -0
- package/src/ports/resources/self.ts +30 -0
- package/src/ports/resources/threads.ts +15 -0
- package/src/ports/resources/users.ts +33 -0
- package/src/ports/resources/webhooks.ts +6 -0
- package/src/ports/resources.ts +8 -0
- package/src/ports/script-engine.ts +42 -0
- package/src/sdk/builders.ts +1 -0
- package/src/sdk/client.ts +1 -0
- package/src/sdk/cluster.ts +1 -0
- package/src/sdk/collection.ts +1 -0
- package/src/sdk/errors.ts +1 -0
- package/src/sdk/internal.ts +1 -0
- package/src/sdk/message.ts +1 -0
- package/src/sdk/rest/request-manager.ts +1 -0
- package/src/sdk/rest.ts +1 -0
- package/src/sdk/sharding.ts +1 -0
- package/src/sdk/types/routes.ts +1 -0
- package/src/sdk/types.ts +1 -0
- package/src/sdk/util.ts +1 -0
- package/src/sdk/voice.ts +1 -0
- package/src/sdk/ws.ts +1 -0
- package/src/services/canvas-image.ts +54 -0
- package/src/services/canvas.ts +89 -6
- package/src/services/moderation.ts +4 -0
- package/src/services/native-moderation.ts +11 -1
- package/src/services/resource-authorization.ts +89 -3
- package/src/testing.ts +4 -0
- package/dist/parser.d.ts +0 -3
- package/dist/parser.d.ts.map +0 -1
- package/dist/parser.js +0 -2
- package/dist/parser.js.map +0 -1
- package/dist/runtime.d.ts +0 -5
- package/dist/runtime.d.ts.map +0 -1
- package/dist/runtime.js +0 -4
- package/dist/runtime.js.map +0 -1
- package/dist/scripting/ast.d.ts.map +0 -1
- package/dist/scripting/ast.js.map +0 -1
- package/dist/scripting/builtins/canvas.d.ts +0 -2
- package/dist/scripting/builtins/canvas.d.ts.map +0 -1
- package/dist/scripting/builtins/context.d.ts +0 -2
- package/dist/scripting/builtins/context.d.ts.map +0 -1
- package/dist/scripting/builtins/definition.d.ts.map +0 -1
- package/dist/scripting/builtins/definition.js.map +0 -1
- package/dist/scripting/builtins/embeds.d.ts +0 -3
- package/dist/scripting/builtins/embeds.js.map +0 -1
- package/dist/scripting/builtins/events.d.ts +0 -2
- package/dist/scripting/builtins/events.d.ts.map +0 -1
- package/dist/scripting/builtins/flow.d.ts +0 -2
- package/dist/scripting/builtins/flow.d.ts.map +0 -1
- package/dist/scripting/builtins/flow.js.map +0 -1
- package/dist/scripting/builtins/guards.d.ts +0 -2
- package/dist/scripting/builtins/guards.d.ts.map +0 -1
- package/dist/scripting/builtins/guards.js.map +0 -1
- package/dist/scripting/builtins/http.d.ts +0 -2
- package/dist/scripting/builtins/http.d.ts.map +0 -1
- package/dist/scripting/builtins/http.js.map +0 -1
- package/dist/scripting/builtins/index.d.ts +0 -5
- package/dist/scripting/builtins/index.d.ts.map +0 -1
- package/dist/scripting/builtins/index.js.map +0 -1
- package/dist/scripting/builtins/language/array-callbacks.d.ts +0 -2
- package/dist/scripting/builtins/language/array-callbacks.d.ts.map +0 -1
- package/dist/scripting/builtins/language/arrays.d.ts +0 -2
- package/dist/scripting/builtins/language/arrays.d.ts.map +0 -1
- package/dist/scripting/builtins/language/decimals.d.ts +0 -2
- package/dist/scripting/builtins/language/decimals.d.ts.map +0 -1
- package/dist/scripting/builtins/language/index.d.ts +0 -3
- package/dist/scripting/builtins/language/index.d.ts.map +0 -1
- package/dist/scripting/builtins/language/index.js.map +0 -1
- package/dist/scripting/builtins/language/loops.d.ts +0 -4
- package/dist/scripting/builtins/language/numbers.d.ts +0 -2
- package/dist/scripting/builtins/language/numbers.d.ts.map +0 -1
- package/dist/scripting/builtins/language/regex.d.ts +0 -2
- package/dist/scripting/builtins/language/regex.d.ts.map +0 -1
- package/dist/scripting/builtins/language/sort.d.ts +0 -2
- package/dist/scripting/builtins/language/sort.d.ts.map +0 -1
- package/dist/scripting/builtins/language/texts.d.ts +0 -2
- package/dist/scripting/builtins/language/texts.d.ts.map +0 -1
- package/dist/scripting/builtins/messages.d.ts +0 -2
- package/dist/scripting/builtins/messages.d.ts.map +0 -1
- package/dist/scripting/builtins/moderation.d.ts +0 -2
- package/dist/scripting/builtins/moderation.d.ts.map +0 -1
- package/dist/scripting/builtins/native-channels.d.ts +0 -2
- package/dist/scripting/builtins/native-channels.d.ts.map +0 -1
- package/dist/scripting/builtins/native-collectors.d.ts +0 -2
- package/dist/scripting/builtins/native-collectors.d.ts.map +0 -1
- package/dist/scripting/builtins/native-expressions.d.ts +0 -2
- package/dist/scripting/builtins/native-expressions.d.ts.map +0 -1
- package/dist/scripting/builtins/native-invites.d.ts +0 -2
- package/dist/scripting/builtins/native-invites.d.ts.map +0 -1
- package/dist/scripting/builtins/native-messages.d.ts +0 -2
- package/dist/scripting/builtins/native-messages.d.ts.map +0 -1
- package/dist/scripting/builtins/native-roles.d.ts +0 -2
- package/dist/scripting/builtins/native-roles.d.ts.map +0 -1
- package/dist/scripting/builtins/native-threads.d.ts +0 -2
- package/dist/scripting/builtins/native-threads.d.ts.map +0 -1
- package/dist/scripting/builtins/native-users.d.ts +0 -2
- package/dist/scripting/builtins/native-users.d.ts.map +0 -1
- package/dist/scripting/builtins/native-webhooks.d.ts +0 -2
- package/dist/scripting/builtins/native-webhooks.d.ts.map +0 -1
- package/dist/scripting/builtins/payload.d.ts.map +0 -1
- package/dist/scripting/builtins/payload.js.map +0 -1
- package/dist/scripting/builtins/resource-extras.d.ts +0 -2
- package/dist/scripting/builtins/resource-extras.d.ts.map +0 -1
- package/dist/scripting/builtins/schedule.d.ts +0 -2
- package/dist/scripting/builtins/schedule.d.ts.map +0 -1
- package/dist/scripting/builtins/storage.d.ts +0 -2
- package/dist/scripting/builtins/storage.d.ts.map +0 -1
- package/dist/scripting/builtins/values.d.ts +0 -2
- package/dist/scripting/builtins/values.d.ts.map +0 -1
- package/dist/scripting/builtins/values.js.map +0 -1
- package/dist/scripting/canvas-execution.d.ts.map +0 -1
- package/dist/scripting/canvas-execution.js.map +0 -1
- package/dist/scripting/control-flow.d.ts.map +0 -1
- package/dist/scripting/control-flow.js.map +0 -1
- package/dist/scripting/evaluator.d.ts.map +0 -1
- package/dist/scripting/evaluator.js.map +0 -1
- package/dist/scripting/limits.d.ts.map +0 -1
- package/dist/scripting/limits.js.map +0 -1
- package/dist/scripting/parser.d.ts.map +0 -1
- package/dist/scripting/parser.js.map +0 -1
- package/dist/scripting/regex.d.ts.map +0 -1
- package/dist/scripting/regex.js.map +0 -1
- package/dist/scripting/registry.d.ts.map +0 -1
- package/dist/scripting/registry.js.map +0 -1
- package/dist/scripting/runtime.d.ts.map +0 -1
- package/dist/scripting/runtime.js.map +0 -1
- package/dist/scripting/types.d.ts.map +0 -1
- package/dist/scripting/types.js.map +0 -1
- package/dist/scripting/values.d.ts.map +0 -1
- package/dist/scripting/values.js.map +0 -1
- package/src/parser.ts +0 -2
- package/src/runtime.ts +0 -4
- /package/dist/{scripting → functions}/builtins/arguments.d.ts +0 -0
- /package/dist/{scripting → functions}/builtins/arguments.js +0 -0
- /package/dist/{scripting → functions}/builtins/context.js +0 -0
- /package/dist/{scripting → functions}/builtins/definition.js +0 -0
- /package/dist/{scripting → functions}/builtins/events.js +0 -0
- /package/dist/{scripting → functions}/builtins/index.js +0 -0
- /package/dist/{scripting → functions}/builtins/language/common.d.ts +0 -0
- /package/dist/{scripting → functions}/builtins/language/common.js +0 -0
- /package/dist/{scripting → functions}/builtins/language/decimals.js +0 -0
- /package/dist/{scripting → functions}/builtins/language/index.js +0 -0
- /package/dist/{scripting → functions}/builtins/language/numbers.js +0 -0
- /package/dist/{scripting → functions}/builtins/language/objects.js +0 -0
- /package/dist/{scripting → functions}/builtins/language/sort.js +0 -0
- /package/dist/{scripting → functions}/builtins/language/state.js +0 -0
- /package/dist/{scripting → functions}/builtins/language/texts.js +0 -0
- /package/dist/{scripting → functions}/builtins/messages.js +0 -0
- /package/dist/{scripting → functions}/builtins/moderation.js +0 -0
- /package/dist/{scripting → functions}/builtins/native-channels.js +0 -0
- /package/dist/{scripting → functions}/builtins/native-collectors.js +0 -0
- /package/dist/{scripting → functions}/builtins/native-expressions.js +0 -0
- /package/dist/{scripting → functions}/builtins/native-invites.js +0 -0
- /package/dist/{scripting → functions}/builtins/native-messages.js +0 -0
- /package/dist/{scripting → functions}/builtins/native-roles.js +0 -0
- /package/dist/{scripting → functions}/builtins/native-threads.js +0 -0
- /package/dist/{scripting → functions}/builtins/native-users.js +0 -0
- /package/dist/{scripting → functions}/builtins/native-webhooks.js +0 -0
- /package/dist/{scripting → functions}/builtins/resource-extras.js +0 -0
- /package/dist/{scripting → functions}/builtins/schedule.js +0 -0
- /package/dist/{scripting → functions}/builtins/storage.js +0 -0
- /package/dist/{scripting → functions/runtime}/ast.d.ts +0 -0
- /package/dist/{scripting → functions/runtime}/ast.js +0 -0
- /package/dist/{scripting → functions/runtime}/canvas-execution.js +0 -0
- /package/dist/{scripting → functions/runtime}/control-flow.d.ts +0 -0
- /package/dist/{scripting → functions/runtime}/control-flow.js +0 -0
- /package/dist/{scripting → functions/runtime}/limits.d.ts +0 -0
- /package/dist/{scripting → functions/runtime}/parser.d.ts +0 -0
- /package/dist/{scripting → functions/runtime}/regex-worker.mjs +0 -0
- /package/dist/{scripting → functions/runtime}/regex.d.ts +0 -0
- /package/dist/{scripting → functions/runtime}/registry.d.ts +0 -0
- /package/dist/{scripting → functions/runtime}/types.js +0 -0
- /package/dist/{scripting → functions/runtime}/values.d.ts +0 -0
- /package/dist/{scripting → functions/runtime}/values.js +0 -0
- /package/docs/{FUNCTIONS.md → functions/FUNCTIONS.md} +0 -0
- /package/docs/{LANGUAGE-EXTENSIONS.md → functions/LANGUAGE-EXTENSIONS.md} +0 -0
- /package/src/{scripting → functions}/builtins/arguments.ts +0 -0
- /package/src/{scripting → functions}/builtins/events.ts +0 -0
- /package/src/{scripting → functions}/builtins/language/common.ts +0 -0
- /package/src/{scripting → functions}/builtins/language/decimals.ts +0 -0
- /package/src/{scripting → functions}/builtins/language/numbers.ts +0 -0
- /package/src/{scripting → functions}/builtins/language/objects.ts +0 -0
- /package/src/{scripting → functions}/builtins/language/sort.ts +0 -0
- /package/src/{scripting → functions}/builtins/language/state.ts +0 -0
- /package/src/{scripting → functions}/builtins/language/texts.ts +0 -0
- /package/src/{scripting → functions}/builtins/messages.ts +0 -0
- /package/src/{scripting → functions}/builtins/native-collectors.ts +0 -0
- /package/src/{scripting → functions}/builtins/native-expressions.ts +0 -0
- /package/src/{scripting → functions}/builtins/native-invites.ts +0 -0
- /package/src/{scripting → functions}/builtins/native-messages.ts +0 -0
- /package/src/{scripting → functions}/builtins/native-threads.ts +0 -0
- /package/src/{scripting → functions}/builtins/native-webhooks.ts +0 -0
- /package/src/{scripting → functions}/builtins/schedule.ts +0 -0
- /package/src/{scripting → functions}/builtins/storage.ts +0 -0
- /package/src/{scripting → functions/runtime}/ast.ts +0 -0
- /package/src/{scripting → functions/runtime}/control-flow.ts +0 -0
- /package/src/{scripting → functions/runtime}/regex-worker.mjs +0 -0
- /package/src/{scripting → functions/runtime}/values.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-registry.js","sourceRoot":"","sources":["../../src/framework/command-registry.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolve } from 'node:path';\nimport { validateArgumentDefinitions, validateFlagDefinitions } from '../commands/arguments.js';\nimport { commandHelp, commandUsage } from '../commands/help.js';\nimport type { Command } from '../context.js';\nimport { parseDuration } from '../context.js';\nimport { YuzuhaError } from '../errors.js';\nimport { loadCommands } from '../loader.js';\nimport type { Program } from '../parser.js';\nimport { permission } from '../permissions.js';\nimport type { Runtime } from '../runtime.js';\nimport type { HttpPolicy } from '../services/http.js';\n\nexport interface CompiledCommand {\n command: Command;\n definition: Command;\n program?: Program;\n directory?: string;\n children: Map<string, CompiledCommand>;\n lineage: Command[];\n}\n\nfunction validateMetadata(command: Command): void {\n if (!command || typeof command !== 'object') throw new YuzuhaError('COMMAND_BODY', 'Comando deve ser um objeto.');\n if ((command.code !== undefined && typeof command.code !== 'string')\n || (command.run !== undefined && typeof command.run !== 'function')) throw new YuzuhaError('COMMAND_BODY', 'code deve ser texto e run deve ser uma função.');\n for (const key of ['aliases', 'permissions', 'botPermissions', 'examples'] as const) {\n const value = command[key];\n if (value !== undefined && (!Array.isArray(value) || value.some(item => typeof item !== 'string'))) throw new YuzuhaError('COMMAND_METADATA', `${key} deve ser uma lista de textos.`);\n }\n for (const key of ['checks', 'middleware'] as const) {\n const value = command[key];\n if (value !== undefined && (!Array.isArray(value) || value.some(item => typeof item !== 'function'))) throw new YuzuhaError('COMMAND_METADATA', `${key} deve ser uma lista de funções.`);\n }\n for (const key of ['args', 'flags', 'subcommands'] as const) {\n if (command[key] !== undefined && (!Array.isArray(command[key]) || command[key]!.some(item => !item || typeof item !== 'object'))) throw new YuzuhaError('COMMAND_ARGS', `${key} deve ser uma lista de definições.`);\n }\n if ((command.description !== undefined && typeof command.description !== 'string')\n || (command.guildOnly !== undefined && typeof command.guildOnly !== 'boolean')\n || (command.hidden !== undefined && typeof command.hidden !== 'boolean')) throw new YuzuhaError('COMMAND_METADATA', 'description deve ser texto; guildOnly e hidden devem ser booleanos.');\n}\n\nfunction snapshot(command: Command): Command {\n const definitions = (items: Command['args']) => items?.map(arg => ({ ...arg, aliases: arg.aliases && [...arg.aliases], choices: arg.choices && [...arg.choices], validators: arg.validators?.map(validator => ({ ...validator })) }));\n return { ...command, aliases: command.aliases && [...command.aliases], permissions: command.permissions && [...command.permissions],\n botPermissions: command.botPermissions && [...command.botPermissions], args: definitions(command.args), flags: definitions(command.flags),\n examples: command.examples && [...command.examples], subcommands: command.subcommands?.map(snapshot),\n checks: command.checks && [...command.checks], middleware: command.middleware && [...command.middleware], http: command.http && structuredClone(command.http) };\n}\n\nfunction inheritedHttp(parent?: HttpPolicy, child?: HttpPolicy): HttpPolicy | undefined {\n if (!parent || !child) return child ?? parent;\n const policy = { ...parent };\n for (const [key, value] of Object.entries(child)) if (value !== undefined) Object.assign(policy, { [key]: value });\n for (const key of ['timeoutMs', 'maxBytes', 'maxRequestBytes'] as const) {\n if (parent[key] !== undefined && child[key] !== undefined) policy[key] = Math.min(parent[key], child[key]);\n }\n if (parent.allowedHosts && child.allowedHosts) {\n const allowed = new Set(parent.allowedHosts.map(host => host.toLowerCase()));\n policy.allowedHosts = child.allowedHosts.map(host => host.toLowerCase()).filter(host => allowed.has(host));\n if (!policy.allowedHosts.length) throw new YuzuhaError('HTTP_POLICY', 'As políticas HTTP do grupo e subcomando não permitem nenhum host.');\n }\n return policy;\n}\n\nexport class CommandRegistry {\n private entries = new Map<string, CompiledCommand>();\n private loading: Promise<unknown> = Promise.resolve();\n constructor(private readonly runtime: Runtime, private readonly onScript: () => void = () => {},\n private readonly validate: (command: Command) => void = () => {}) {}\n\n private compile(input: Command, directory?: string, runtime = this.runtime, ancestors: CompiledCommand[] = [], seen = new Set<Command>()): CompiledCommand {\n if (ancestors.length >= 32 || seen.has(input)) throw new YuzuhaError('COMMAND_TREE', 'Árvore de comandos cíclica ou com mais de 32 níveis.');\n validateMetadata(input);\n this.validate(input);\n validateArgumentDefinitions(input.args ?? [], input.name);\n validateFlagDefinitions(input.flags ?? [], input.name);\n const names = [input.name, ...(input.aliases ?? [])];\n if (names.some(n => typeof n !== 'string' || !/^[\\p{L}\\p{N}_-]+$/u.test(n))) throw new YuzuhaError('COMMAND_NAME', 'Nome ou alias inválido.');\n if (new Set(names.map(n => n.toLowerCase())).size !== names.length) throw new YuzuhaError('COMMAND_DUPLICATE', `Nome ou alias duplicado: ${input.name}.`);\n const handlers = Number(typeof input.code === 'string') + Number(typeof input.run === 'function');\n if (handlers > 1 || (!handlers && !input.subcommands?.length)) throw new YuzuhaError('COMMAND_BODY', `Comando ${input.name} precisa de code ou run, exclusivamente, ou subcomandos.`);\n if (input.subcommands?.length && (input.args?.length || input.flags?.length)) throw new YuzuhaError('COMMAND_GROUP_ARGS', 'Grupos não aceitam argumentos ou flags; declare-os nos subcomandos.');\n for (const p of [...(input.permissions ?? []), ...(input.botPermissions ?? [])]) permission(p);\n if (input.cooldown !== undefined) parseDuration(input.cooldown);\n const definition = snapshot({ ...input, subcommands: undefined });\n const parent = ancestors.at(-1)?.command;\n const command: Command = { ...definition, name: parent ? `${parent.name} ${definition.name}` : definition.name,\n guildOnly: Boolean(parent?.guildOnly || definition.guildOnly), hidden: Boolean(parent?.hidden || definition.hidden),\n permissions: [...parent?.permissions ?? [], ...definition.permissions ?? []], botPermissions: [...parent?.botPermissions ?? [], ...definition.botPermissions ?? []],\n checks: [...parent?.checks ?? [], ...definition.checks ?? []], middleware: [...parent?.middleware ?? [], ...definition.middleware ?? []],\n http: inheritedHttp(parent?.http, definition.http) };\n this.validate(command);\n const ownGuard = { ...definition, name: command.name };\n const entry: CompiledCommand = { command, definition, directory, children: new Map(), lineage: [...ancestors.at(-1)?.lineage ?? [], ownGuard] };\n const visiting = new Set(seen).add(input);\n for (const child of input.subcommands ?? []) this.insert(entry.children, this.compile(child, directory, runtime, [...ancestors, entry], visiting));\n definition.subcommands = [...new Set(entry.children.values())].map(child => child.definition);\n command.subcommands = definition.subcommands;\n if (command.code !== undefined) {\n this.onScript();\n entry.program = runtime.compile(command.code, command.file ?? command.name);\n }\n return entry;\n }\n\n private insert(next: Map<string, CompiledCommand>, entry: CompiledCommand): void {\n for (const name of [entry.definition.name, ...(entry.definition.aliases ?? [])].map(n => n.toLowerCase())) {\n if (next.has(name)) throw new YuzuhaError('COMMAND_DUPLICATE', `Nome ou alias duplicado: ${name}.`);\n next.set(name, entry);\n }\n }\n add(command: Command): void {\n const entry = this.compile(command);\n for (const name of [entry.definition.name, ...(entry.definition.aliases ?? [])]) {\n if (this.entries.has(name.toLowerCase())) throw new YuzuhaError('COMMAND_DUPLICATE', `Nome ou alias duplicado: ${name}.`);\n }\n this.insert(this.entries, entry);\n }\n prepare(commands: Command[], runtime = this.runtime): () => void {\n const next = new Map(this.entries);\n for (const command of commands) this.insert(next, this.compile(command, undefined, runtime));\n return () => { this.entries = next; };\n }\n load(directory: string, mode: 'replace' | 'append' | 'reload'): Promise<void> {\n const path = resolve(directory);\n const nextLoad = this.loading.then(async () => {\n const loaded = await loadCommands(path);\n const next = new Map(mode === 'replace' ? [] : [...this.entries].filter(([, item]) => mode !== 'reload' || item.directory !== path));\n for (const command of loaded) this.insert(next, this.compile(command, path));\n this.entries = next;\n });\n this.loading = nextLoad.catch(() => {});\n return nextLoad;\n }\n find(name: string): CompiledCommand | undefined { return this.entries.get(name.toLowerCase()); }\n resolve(name: string, input: string): { compiled: CompiledCommand; input: string } | undefined {\n const root = this.find(name);\n if (!root) return;\n let compiled: CompiledCommand = root;\n while (compiled.children.size) {\n const match = /^(\\S+)(?:\\s+([\\s\\S]*))?$/.exec(input.trim());\n const child: CompiledCommand | undefined = match ? compiled.children.get(match[1]!.toLowerCase()) : undefined;\n if (!child) break;\n compiled = child; input = match![2] ?? '';\n }\n return { compiled, input };\n }\n list(): Command[] { return [...new Set(this.entries.values())].map(item => snapshot(item.definition)); }\n help(path?: string, prefix = ''): string {\n if (!path) return this.list().filter(command => !command.hidden).map(command => `${commandUsage(command, prefix)}${command.description ? `: ${command.description}` : ''}`).join('\\n');\n const [name, ...parts] = path.trim().split(/\\s+/);\n const resolved = this.resolve(name ?? '', parts.join(' '));\n return resolved && !resolved.input && !resolved.compiled.command.hidden ? commandHelp(resolved.compiled.command, prefix) : '';\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"command-registry.js","sourceRoot":"","sources":["../../src/framework/command-registry.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolve } from 'node:path';\nimport { validateArgumentDefinitions, validateFlagDefinitions } from '../commands/arguments.js';\nimport { commandHelp, commandUsage } from '../commands/help.js';\nimport type { Command } from '../context.js';\nimport { parseDuration } from '../context.js';\nimport { YuzuhaError } from '../errors.js';\nimport { loadCommands } from '../loader.js';\nimport { permission } from '../permissions.js';\nimport type { ScriptEngine } from '../ports/script-engine.js';\nimport type { HttpPolicy } from '../services/http.js';\n\nexport interface CompiledCommand {\n command: Command;\n definition: Command;\n program?: unknown;\n programEngine?: ScriptEngine;\n directory?: string;\n children: Map<string, CompiledCommand>;\n lineage: Command[];\n}\n\nfunction validateMetadata(command: Command): void {\n if (!command || typeof command !== 'object') throw new YuzuhaError('COMMAND_BODY', 'Comando deve ser um objeto.');\n if ((command.code !== undefined && typeof command.code !== 'string')\n || (command.run !== undefined && typeof command.run !== 'function')) throw new YuzuhaError('COMMAND_BODY', 'code deve ser texto e run deve ser uma função.');\n for (const key of ['aliases', 'permissions', 'botPermissions', 'examples'] as const) {\n const value = command[key];\n if (value !== undefined && (!Array.isArray(value) || value.some(item => typeof item !== 'string'))) throw new YuzuhaError('COMMAND_METADATA', `${key} deve ser uma lista de textos.`);\n }\n for (const key of ['checks', 'middleware'] as const) {\n const value = command[key];\n if (value !== undefined && (!Array.isArray(value) || value.some(item => typeof item !== 'function'))) throw new YuzuhaError('COMMAND_METADATA', `${key} deve ser uma lista de funções.`);\n }\n for (const key of ['args', 'flags', 'subcommands'] as const) {\n if (command[key] !== undefined && (!Array.isArray(command[key]) || command[key]!.some(item => !item || typeof item !== 'object'))) throw new YuzuhaError('COMMAND_ARGS', `${key} deve ser uma lista de definições.`);\n }\n if ((command.description !== undefined && typeof command.description !== 'string')\n || (command.guildOnly !== undefined && typeof command.guildOnly !== 'boolean')\n || (command.hidden !== undefined && typeof command.hidden !== 'boolean')) throw new YuzuhaError('COMMAND_METADATA', 'description deve ser texto; guildOnly e hidden devem ser booleanos.');\n}\n\nfunction snapshot(command: Command): Command {\n const definitions = (items: Command['args']) => items?.map(arg => ({ ...arg, aliases: arg.aliases && [...arg.aliases], choices: arg.choices && [...arg.choices], validators: arg.validators?.map(validator => ({ ...validator })) }));\n return { ...command, aliases: command.aliases && [...command.aliases], permissions: command.permissions && [...command.permissions],\n botPermissions: command.botPermissions && [...command.botPermissions], args: definitions(command.args), flags: definitions(command.flags),\n examples: command.examples && [...command.examples], subcommands: command.subcommands?.map(snapshot),\n checks: command.checks && [...command.checks], middleware: command.middleware && [...command.middleware], http: command.http && structuredClone(command.http) };\n}\n\nfunction inheritedHttp(parent?: HttpPolicy, child?: HttpPolicy): HttpPolicy | undefined {\n if (!parent || !child) return child ?? parent;\n const policy = { ...parent };\n for (const [key, value] of Object.entries(child)) if (value !== undefined) Object.assign(policy, { [key]: value });\n for (const key of ['timeoutMs', 'maxBytes', 'maxRequestBytes'] as const) {\n if (parent[key] !== undefined && child[key] !== undefined) policy[key] = Math.min(parent[key], child[key]);\n }\n if (parent.allowedHosts && child.allowedHosts) {\n const allowed = new Set(parent.allowedHosts.map(host => host.toLowerCase()));\n policy.allowedHosts = child.allowedHosts.map(host => host.toLowerCase()).filter(host => allowed.has(host));\n if (!policy.allowedHosts.length) throw new YuzuhaError('HTTP_POLICY', 'As políticas HTTP do grupo e subcomando não permitem nenhum host.');\n }\n return policy;\n}\n\nexport function functionsRequired(): YuzuhaError {\n return new YuzuhaError('FUNCTIONS_REQUIRED', 'Function mode requer um engine. Use import { functions } from \\'yuzuha/functions\\' e passe engine: functions() nas opções do bot.');\n}\n\nexport class CommandRegistry {\n private entries = new Map<string, CompiledCommand>();\n private loading: Promise<unknown> = Promise.resolve();\n constructor(private readonly engine: () => ScriptEngine | undefined,\n private readonly validate: (command: Command) => void = () => {}) {}\n\n private compile(input: Command, directory?: string, engine = this.engine(), ancestors: CompiledCommand[] = [], seen = new Set<Command>()): CompiledCommand {\n if (ancestors.length >= 32 || seen.has(input)) throw new YuzuhaError('COMMAND_TREE', 'Árvore de comandos cíclica ou com mais de 32 níveis.');\n validateMetadata(input);\n this.validate(input);\n validateArgumentDefinitions(input.args ?? [], input.name);\n validateFlagDefinitions(input.flags ?? [], input.name);\n const names = [input.name, ...(input.aliases ?? [])];\n if (names.some(n => typeof n !== 'string' || !/^[\\p{L}\\p{N}_-]+$/u.test(n))) throw new YuzuhaError('COMMAND_NAME', 'Nome ou alias inválido.');\n if (new Set(names.map(n => n.toLowerCase())).size !== names.length) throw new YuzuhaError('COMMAND_DUPLICATE', `Nome ou alias duplicado: ${input.name}.`);\n const handlers = Number(typeof input.code === 'string') + Number(typeof input.run === 'function');\n if (handlers > 1 || (!handlers && !input.subcommands?.length)) throw new YuzuhaError('COMMAND_BODY', `Comando ${input.name} precisa de code ou run, exclusivamente, ou subcomandos.`);\n if (input.subcommands?.length && (input.args?.length || input.flags?.length)) throw new YuzuhaError('COMMAND_GROUP_ARGS', 'Grupos não aceitam argumentos ou flags; declare-os nos subcomandos.');\n for (const p of [...(input.permissions ?? []), ...(input.botPermissions ?? [])]) permission(p);\n if (input.cooldown !== undefined) parseDuration(input.cooldown);\n const definition = snapshot({ ...input, subcommands: undefined });\n const parent = ancestors.at(-1)?.command;\n const command: Command = { ...definition, name: parent ? `${parent.name} ${definition.name}` : definition.name,\n guildOnly: Boolean(parent?.guildOnly || definition.guildOnly), hidden: Boolean(parent?.hidden || definition.hidden),\n permissions: [...parent?.permissions ?? [], ...definition.permissions ?? []], botPermissions: [...parent?.botPermissions ?? [], ...definition.botPermissions ?? []],\n checks: [...parent?.checks ?? [], ...definition.checks ?? []], middleware: [...parent?.middleware ?? [], ...definition.middleware ?? []],\n http: inheritedHttp(parent?.http, definition.http) };\n this.validate(command);\n const ownGuard = { ...definition, name: command.name };\n const entry: CompiledCommand = { command, definition, directory, children: new Map(), lineage: [...ancestors.at(-1)?.lineage ?? [], ownGuard] };\n const visiting = new Set(seen).add(input);\n for (const child of input.subcommands ?? []) this.insert(entry.children, this.compile(child, directory, engine, [...ancestors, entry], visiting));\n definition.subcommands = [...new Set(entry.children.values())].map(child => child.definition);\n command.subcommands = definition.subcommands;\n if (command.code !== undefined) {\n if (!engine) throw functionsRequired();\n entry.program = engine.compile(command.code, command.file ?? command.name);\n entry.programEngine = engine;\n }\n return entry;\n }\n\n private insert(next: Map<string, CompiledCommand>, entry: CompiledCommand): void {\n for (const name of [entry.definition.name, ...(entry.definition.aliases ?? [])].map(n => n.toLowerCase())) {\n if (next.has(name)) throw new YuzuhaError('COMMAND_DUPLICATE', `Nome ou alias duplicado: ${name}.`);\n next.set(name, entry);\n }\n }\n add(command: Command): void {\n const entry = this.compile(command);\n for (const name of [entry.definition.name, ...(entry.definition.aliases ?? [])]) {\n if (this.entries.has(name.toLowerCase())) throw new YuzuhaError('COMMAND_DUPLICATE', `Nome ou alias duplicado: ${name}.`);\n }\n this.insert(this.entries, entry);\n }\n prepare(commands: Command[], engine = this.engine()): () => void {\n const next = new Map(this.entries);\n for (const command of commands) this.insert(next, this.compile(command, undefined, engine));\n return () => { this.entries = next; };\n }\n load(directory: string, mode: 'replace' | 'append' | 'reload'): Promise<void> {\n const path = resolve(directory);\n const nextLoad = this.loading.then(async () => {\n const loaded = await loadCommands(path);\n const next = new Map(mode === 'replace' ? [] : [...this.entries].filter(([, item]) => mode !== 'reload' || item.directory !== path));\n for (const command of loaded) this.insert(next, this.compile(command, path));\n this.entries = next;\n });\n this.loading = nextLoad.catch(() => {});\n return nextLoad;\n }\n find(name: string): CompiledCommand | undefined { return this.entries.get(name.toLowerCase()); }\n resolve(name: string, input: string): { compiled: CompiledCommand; input: string } | undefined {\n const root = this.find(name);\n if (!root) return;\n let compiled: CompiledCommand = root;\n while (compiled.children.size) {\n const match = /^(\\S+)(?:\\s+([\\s\\S]*))?$/.exec(input.trim());\n const child: CompiledCommand | undefined = match ? compiled.children.get(match[1]!.toLowerCase()) : undefined;\n if (!child) break;\n compiled = child; input = match![2] ?? '';\n }\n return { compiled, input };\n }\n list(): Command[] { return [...new Set(this.entries.values())].map(item => snapshot(item.definition)); }\n help(path?: string, prefix = ''): string {\n if (!path) return this.list().filter(command => !command.hidden).map(command => `${commandUsage(command, prefix)}${command.description ? `: ${command.description}` : ''}`).join('\\n');\n const [name, ...parts] = path.trim().split(/\\s+/);\n const resolved = this.resolve(name ?? '', parts.join(' '));\n return resolved && !resolved.input && !resolved.compiled.command.hidden ? commandHelp(resolved.compiled.command, prefix) : '';\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Client, ClientOptions } from '@fluxerjs/core';
|
|
2
2
|
import type { CommandContext } from '../context.js';
|
|
3
3
|
import type { IncomingMessage, Store, Transport } from '../contracts.js';
|
|
4
|
-
import type {
|
|
4
|
+
import type { ScriptEngine, ScriptFunctionDefinition } from '../ports/script-engine.js';
|
|
5
5
|
import type { Command } from '../context.js';
|
|
6
6
|
import type { Resources } from '../ports/resources.js';
|
|
7
7
|
import type { HttpService } from '../services/http.js';
|
|
@@ -16,7 +16,7 @@ export type DispatchResult = 'ignored' | 'success' | 'guarded' | 'error';
|
|
|
16
16
|
export type Middleware = (ctx: CommandContext, next: () => Promise<void>) => Promise<void>;
|
|
17
17
|
export interface YuzuhaPlugin {
|
|
18
18
|
name: string;
|
|
19
|
-
functions?:
|
|
19
|
+
functions?: ScriptFunctionDefinition[];
|
|
20
20
|
middleware?: Middleware[];
|
|
21
21
|
commands?: Command[];
|
|
22
22
|
events?: NativeEvent[];
|
|
@@ -32,7 +32,7 @@ export interface YuzuhaOptions {
|
|
|
32
32
|
name?: string;
|
|
33
33
|
/** Clock shared by cooldowns, variable TTLs and the default scheduler. */
|
|
34
34
|
now?: () => number;
|
|
35
|
-
|
|
35
|
+
engine?: ScriptEngine;
|
|
36
36
|
scheduler?: Scheduler | false;
|
|
37
37
|
http?: HttpService | false;
|
|
38
38
|
music?: MusicManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/framework/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/framework/options.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/framework/options.ts"],"names":[],"mappings":"","sourcesContent":["import type { Client, ClientOptions } from '@fluxerjs/core';\nimport type { CommandContext } from '../context.js';\nimport type { IncomingMessage, Store, Transport } from '../contracts.js';\nimport type {
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/framework/options.ts"],"names":[],"mappings":"","sourcesContent":["import type { Client, ClientOptions } from '@fluxerjs/core';\nimport type { CommandContext } from '../context.js';\nimport type { IncomingMessage, Store, Transport } from '../contracts.js';\nimport type { ScriptEngine, ScriptFunctionDefinition } from '../ports/script-engine.js';\nimport type { Command } from '../context.js';\nimport type { Resources } from '../ports/resources.js';\nimport type { HttpService } from '../services/http.js';\nimport type { Scheduler } from '../services/scheduler.js';\nimport type { NativeEvent } from './events.js';\nimport type { LogRecord } from './logging.js';\nimport type { ScriptEventDefinition } from './script-events.js';\nimport type { MusicManager } from '../services/music.js';\nimport type { NativeVoice } from '../ports/voice.js';\nimport type { CanvasConfig } from '../domain/canvas.js';\n\nexport type DispatchResult = 'ignored' | 'success' | 'guarded' | 'error';\nexport type Middleware = (ctx: CommandContext, next: () => Promise<void>) => Promise<void>;\nexport interface YuzuhaPlugin {\n name: string;\n functions?: ScriptFunctionDefinition[];\n middleware?: Middleware[];\n commands?: Command[];\n events?: NativeEvent[];\n scriptEvents?: ScriptEventDefinition[];\n}\nexport interface YuzuhaOptions {\n prefix?: string | string[] | ((message: IncomingMessage) => string | string[] | Promise<string | string[]>);\n client?: Client;\n clientOptions?: ClientOptions;\n transport?: Transport;\n resources?: Resources;\n store?: Store;\n name?: string;\n /** Clock shared by cooldowns, variable TTLs and the default scheduler. */\n now?: () => number;\n engine?: ScriptEngine;\n scheduler?: Scheduler | false;\n http?: HttpService | false;\n music?: MusicManager;\n voice?: NativeVoice;\n canvas?: CanvasConfig;\n onError?: (error: unknown, ctx?: CommandContext) => void | Promise<void>;\n onCommand?: (ctx: CommandContext, outcome: DispatchResult) => void | Promise<void>;\n onLog?: (record: LogRecord) => void | Promise<void>;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arguments.d.ts","sourceRoot":"","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"arguments.d.ts","sourceRoot":"","sources":["../../../src/functions/builtins/arguments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAI,GAAG,MAAM,CAIpD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI5C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAGhD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arguments.js","sourceRoot":"","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"arguments.js","sourceRoot":"","sources":["../../../src/functions/builtins/arguments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,GAAG,GAAG,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,GAAG;QAAE,MAAM,IAAI,WAAW,CAAC,OAAO,EAAE,8BAA8B,GAAG,GAAG,CAAC,CAAC;IACzI,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IACnG,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAc,CAAC;IAAC,CAAC;IAC9D,OAAO,KAAK,EAAE,CAAC;QAAC,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,qCAAqC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAAC,CAAC;AACpG,CAAC","sourcesContent":["import type { JsonValue } from '../../domain/state.js';\nimport { YuzuhaError } from '../../errors.js';\n\nexport function index(value: string, min = 0): number {\n const result = Number(value);\n if (!value.trim() || !Number.isSafeInteger(result) || result < min) throw new YuzuhaError('INDEX', `Índice deve ser inteiro >= ${min}.`);\n return result;\n}\n\nexport function finite(value: string): number {\n const result = Number(value);\n if (!value.trim() || !Number.isFinite(result)) throw new YuzuhaError('NUMBER', 'Número inválido.');\n return result;\n}\n\nexport function toJson(value: unknown): JsonValue {\n try { return JSON.parse(JSON.stringify(value)) as JsonValue; }\n catch (cause) { throw new YuzuhaError('JSON', 'Valor não pode ser salvo como JSON.', { cause }); }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../../src/functions/builtins/canvas.ts"],"names":[],"mappings":"AAwCA,eAAO,MAAM,eAAe,oDA4E1B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CANVAS_LIMITS } from '../../domain/canvas.js';
|
|
2
2
|
import { YuzuhaError } from '../../shared/errors.js';
|
|
3
|
-
import { canvasExecution } from '../canvas-execution.js';
|
|
3
|
+
import { canvasExecution } from '../runtime/canvas-execution.js';
|
|
4
4
|
import { defineFunctions } from './definition.js';
|
|
5
5
|
function requiredId(value) {
|
|
6
6
|
if (!/^[A-Za-z0-9_-]{1,64}$/.test(value))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../../src/scripting/builtins/canvas.ts"],"names":[],"mappings":"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","sourcesContent":["import { CANVAS_LIMITS } from '../../domain/canvas.js';\nimport type { CanvasAvatarOptions, CanvasBadgeItem, CanvasBadgesOptions, CanvasCreateOptions, CanvasFontOptions,\n CanvasImageOptions, CanvasLineOptions, CanvasProgressOptions, CanvasRectOptions, CanvasTextOptions } from '../../domain/canvas.js';\nimport type { CanvasBuilder, CanvasSendOptions } from '../../services/canvas.js';\nimport { YuzuhaError } from '../../shared/errors.js';\nimport { canvasExecution } from '../canvas-execution.js';\nimport type { FunctionCall } from '../types.js';\nimport { defineFunctions } from './definition.js';\n\nfunction requiredId(value: string): string {\n if (!/^[A-Za-z0-9_-]{1,64}$/.test(value)) throw new YuzuhaError('CANVAS_STATE', 'ID deve ter de 1 a 64 caracteres: letras, números, _ ou -.');\n return value;\n}\n\nfunction number(value: string, label: string, integer = false): number {\n const parsed = Number(value);\n if (!Number.isFinite(parsed) || (integer && !Number.isSafeInteger(parsed))) throw new YuzuhaError('CANVAS_OPTIONS', `${label} deve ser ${integer ? 'inteiro' : 'número'} válido.`);\n return parsed;\n}\n\nasync function options<T extends object>(call: FunctionCall, index: number): Promise<T> {\n if (index >= call.count) return {} as T;\n const value = await call.arg(index);\n if (value === null || typeof value !== 'object' || Array.isArray(value) || value instanceof Uint8Array) {\n throw new YuzuhaError('CANVAS_OPTIONS', 'Opções devem ser um objeto criado com $object.');\n }\n return value as T;\n}\n\nfunction getCanvas(call: FunctionCall, rawID: string): CanvasBuilder {\n const id = requiredId(rawID), canvas = canvasExecution(call).canvases.get(id);\n if (!canvas) throw new YuzuhaError('CANVAS_STATE', `Canvas inexistente: ${id}.`);\n return canvas;\n}\n\nasync function addCanvas(call: FunctionCall, operation: (canvas: CanvasBuilder) => void): Promise<string> {\n operation(getCanvas(call, await call.text(0)));\n return '';\n}\n\nexport const canvasFunctions = defineFunctions(fn => {\n fn('canvasCreate', 'canvas', 3, 4, '[id;largura;altura;opções?]', 'Cria um canvas de composição privado à execução atual.', async call => {\n const id = requiredId(await call.text(0)), state = canvasExecution(call);\n if (state.canvases.has(id)) throw new YuzuhaError('CANVAS_STATE', `ID de canvas já existe: ${id}.`);\n if (state.canvases.size >= CANVAS_LIMITS.maxScriptCanvases) throw new YuzuhaError('EXECUTION_LIMIT', 'Execução excedeu 4 canvases ativos.');\n const width = number(await call.text(1), 'Largura', true), height = number(await call.text(2), 'Altura', true);\n const createOptions = await options<CanvasCreateOptions>(call, 3);\n state.canvases.set(id, call.ctx.canvas.create(width, height, createOptions));\n return '';\n });\n fn('canvasFont', 'canvas', 3, 4, '[id;família;fonte;opções?]', 'Registra uma fonte TTF/OTF na cena sem expor seus bytes às variáveis.', async call => {\n const family = await call.text(1), source = await call.text(2), input = await options<CanvasFontOptions>(call, 3);\n return addCanvas(call, canvas => { canvas.font(family, source, input); });\n });\n fn('canvasRect', 'canvas', 5, 6, '[id;x;y;largura;altura;opções?]', 'Desenha um retângulo preenchido ou com borda.', async call => {\n const x = number(await call.text(1), 'x'), y = number(await call.text(2), 'y');\n const width = number(await call.text(3), 'Largura'), height = number(await call.text(4), 'Altura');\n const input = await options<Omit<CanvasRectOptions, 'x' | 'y' | 'width' | 'height'>>(call, 5);\n return addCanvas(call, canvas => { canvas.rect({ ...input, x, y, width, height }); });\n });\n fn('canvasCircle', 'canvas', 4, 5, '[id;x;y;raio;opções?]', 'Desenha um círculo pelo centro e raio.', async call => {\n const x = number(await call.text(1), 'x'), y = number(await call.text(2), 'y'), radius = number(await call.text(3), 'Raio');\n const input = await options<Omit<import('../../domain/canvas.js').CanvasCircleOptions, 'x' | 'y' | 'radius'>>(call, 4);\n return addCanvas(call, canvas => { canvas.circle({ ...input, x, y, radius }); });\n });\n fn('canvasLine', 'canvas', 5, 6, '[id;x1;y1;x2;y2;opções?]', 'Desenha uma linha com largura e acabamento opcionais.', async call => {\n const x1 = number(await call.text(1), 'x1'), y1 = number(await call.text(2), 'y1');\n const x2 = number(await call.text(3), 'x2'), y2 = number(await call.text(4), 'y2');\n const input = await options<Omit<CanvasLineOptions, 'x1' | 'y1' | 'x2' | 'y2'>>(call, 5);\n return addCanvas(call, canvas => { canvas.line({ ...input, x1, y1, x2, y2 }); });\n });\n fn('canvasImage', 'canvas', 6, 7, '[id;fonte;x;y;largura;altura;opções?]', 'Desenha imagem local configurada, bytes ou URL permitida pelo serviço HTTP.', async call => {\n const source = await call.text(1), x = number(await call.text(2), 'x'), y = number(await call.text(3), 'y');\n const width = number(await call.text(4), 'Largura'), height = number(await call.text(5), 'Altura');\n const input = await options<Omit<CanvasImageOptions, 'x' | 'y' | 'width' | 'height'>>(call, 6);\n return addCanvas(call, canvas => { canvas.image(source, { ...input, x, y, width, height }); });\n });\n fn('canvasAvatar', 'canvas', 5, 6, '[id;fonte;x;y;tamanho;opções?]', 'Desenha uma imagem quadrada com recorte circular e borda opcional.', async call => {\n const source = await call.text(1), x = number(await call.text(2), 'x'), y = number(await call.text(3), 'y');\n const size = number(await call.text(4), 'Tamanho');\n const input = await options<Omit<CanvasAvatarOptions, 'x' | 'y' | 'size'>>(call, 5);\n return addCanvas(call, canvas => { canvas.avatar(source, { ...input, x, y, size }); });\n });\n fn('canvasText', 'canvas', 4, 5, '[id;texto;x;y;opções?]', 'Desenha texto com ajuste, quebra e overflow por grafemas.', async call => {\n const value = await call.text(1), x = number(await call.text(2), 'x'), y = number(await call.text(3), 'y');\n const input = await options<Omit<CanvasTextOptions, 'x' | 'y'>>(call, 4);\n return addCanvas(call, canvas => { canvas.text(value, { ...input, x, y }); });\n });\n fn('canvasBadges', 'canvas', 5, 6, '[id;itens;x;y;larguraMáxima;opções?]', 'Compõe badges medidos e reserva espaço para o contador +N.', async call => {\n const items = await call.arg(1);\n if (!Array.isArray(items)) throw new YuzuhaError('CANVAS_OPTIONS', 'itens deve ser um array criado com $array.');\n const x = number(await call.text(2), 'x'), y = number(await call.text(3), 'y'), maxWidth = number(await call.text(4), 'maxWidth');\n const input = await options<Omit<CanvasBadgesOptions, 'x' | 'y' | 'maxWidth'>>(call, 5);\n return addCanvas(call, canvas => { canvas.badges(items as CanvasBadgeItem[], { ...input, x, y, maxWidth }); });\n });\n fn('canvasProgress', 'canvas', 7, 8, '[id;x;y;largura;altura;valor;máximo;opções?]', 'Desenha progresso limitado a zero e ao máximo informado.', async call => {\n const x = number(await call.text(1), 'x'), y = number(await call.text(2), 'y');\n const width = number(await call.text(3), 'Largura'), height = number(await call.text(4), 'Altura');\n const value = number(await call.text(5), 'Valor'), max = number(await call.text(6), 'Máximo');\n const input = await options<Omit<CanvasProgressOptions, 'x' | 'y' | 'width' | 'height' | 'value' | 'max'>>(call, 7);\n return addCanvas(call, canvas => { canvas.progress({ ...input, x, y, width, height, value, max }); });\n });\n fn('canvasSend', 'canvas', 1, 2, '[id;opções?]', 'Renderiza e envia uma imagem sem produzir uma resposta automática adicional.', async call => {\n const id = requiredId(await call.text(0)), state = canvasExecution(call), builder = state.canvases.get(id);\n if (!builder) throw new YuzuhaError('CANVAS_STATE', `Canvas inexistente: ${id}.`);\n if (state.renderAttempts >= CANVAS_LIMITS.maxScriptRenders) throw new YuzuhaError('EXECUTION_LIMIT', 'Execução excedeu 4 tentativas de renderização.');\n const sendOptions = await options<CanvasSendOptions>(call, 1);\n state.renderAttempts++;\n await call.wait(call.ctx.canvas.send(builder, sendOptions));\n return '';\n });\n fn('canvasDispose', 'canvas', 1, 1, '[id]', 'Descarta o canvas da execução para liberar sua vaga e reutilizar o ID.', async call => {\n const id = requiredId(await call.text(0)), state = canvasExecution(call);\n if (!state.canvases.delete(id)) throw new YuzuhaError('CANVAS_STATE', `Canvas inexistente: ${id}.`);\n return '';\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../../src/functions/builtins/canvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAIvD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,cAAc,EAAE,4DAA4D,CAAC,CAAC;IAC9I,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,MAAM,CAAC,KAAa,EAAE,KAAa,EAAE,OAAO,GAAG,KAAK;IAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,gBAAgB,EAAE,GAAG,KAAK,aAAa,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,UAAU,CAAC,CAAC;IACnL,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,OAAO,CAAmB,IAAkB,EAAE,KAAa;IACxE,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,EAAO,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QACvG,MAAM,IAAI,WAAW,CAAC,gBAAgB,EAAE,gDAAgD,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,KAAU,CAAC;AACpB,CAAC;AAED,SAAS,SAAS,CAAC,IAAkB,EAAE,KAAa;IAClD,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9E,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,WAAW,CAAC,cAAc,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAkB,EAAE,SAA0C;IACrF,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC,EAAE,CAAC,EAAE;IAClD,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,6BAA6B,EAAE,wDAAwD,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;QACvI,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,cAAc,EAAE,2BAA2B,EAAE,GAAG,CAAC,CAAC;QACpG,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,aAAa,CAAC,iBAAiB;YAAE,MAAM,IAAI,WAAW,CAAC,iBAAiB,EAAE,qCAAqC,CAAC,CAAC;QAC5I,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/G,MAAM,aAAa,GAAG,MAAM,OAAO,CAAsB,IAAI,EAAE,CAAC,CAAC,CAAC;QAClE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;QAC7E,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,4BAA4B,EAAE,uEAAuE,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;QACnJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,OAAO,CAAoB,IAAI,EAAE,CAAC,CAAC,CAAC;QAClH,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,iCAAiC,EAAE,+CAA+C,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;QAChI,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACnG,MAAM,KAAK,GAAG,MAAM,OAAO,CAA0D,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9F,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,uBAAuB,EAAE,wCAAwC,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;QACjH,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5H,MAAM,KAAK,GAAG,MAAM,OAAO,CAAmF,IAAI,EAAE,CAAC,CAAC,CAAC;QACvH,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,0BAA0B,EAAE,uDAAuD,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;QACjI,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACnF,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACnF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAqD,IAAI,EAAE,CAAC,CAAC,CAAC;QACzF,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,uCAAuC,EAAE,6EAA6E,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;QACrK,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5G,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACnG,MAAM,KAAK,GAAG,MAAM,OAAO,CAA2D,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/F,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,gCAAgC,EAAE,oEAAoE,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;QACtJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5G,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAgD,IAAI,EAAE,CAAC,CAAC,CAAC;QACpF,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,wBAAwB,EAAE,2DAA2D,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;QACnI,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3G,MAAM,KAAK,GAAG,MAAM,OAAO,CAAqC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzE,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,sCAAsC,EAAE,4DAA4D,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;QACpJ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,gBAAgB,EAAE,4CAA4C,CAAC,CAAC;QACjH,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAClI,MAAM,KAAK,GAAG,MAAM,OAAO,CAAoD,IAAI,EAAE,CAAC,CAAC,CAAC;QACxF,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,KAA0B,EAAE,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjH,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,8CAA8C,EAAE,0DAA0D,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;QAC5J,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACnG,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC9F,MAAM,KAAK,GAAG,MAAM,OAAO,CAAgF,IAAI,EAAE,CAAC,CAAC,CAAC;QACpH,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,8EAA8E,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;QAC5I,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3G,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,WAAW,CAAC,cAAc,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAAC;QAClF,IAAI,KAAK,CAAC,cAAc,IAAI,aAAa,CAAC,gBAAgB;YAAE,MAAM,IAAI,WAAW,CAAC,iBAAiB,EAAE,gDAAgD,CAAC,CAAC;QACvJ,MAAM,WAAW,GAAG,MAAM,OAAO,CAAoB,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9D,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;QAC5D,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,wEAAwE,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;QACjI,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,cAAc,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAAC;QACpG,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { CANVAS_LIMITS } from '../../domain/canvas.js';\nimport type { CanvasAvatarOptions, CanvasBadgeItem, CanvasBadgesOptions, CanvasCreateOptions, CanvasFontOptions,\n CanvasImageOptions, CanvasLineOptions, CanvasProgressOptions, CanvasRectOptions, CanvasTextOptions } from '../../domain/canvas.js';\nimport type { CanvasBuilder, CanvasSendOptions } from '../../services/canvas.js';\nimport { YuzuhaError } from '../../shared/errors.js';\nimport { canvasExecution } from '../runtime/canvas-execution.js';\nimport type { FunctionCall } from '../runtime/types.js';\nimport { defineFunctions } from './definition.js';\n\nfunction requiredId(value: string): string {\n if (!/^[A-Za-z0-9_-]{1,64}$/.test(value)) throw new YuzuhaError('CANVAS_STATE', 'ID deve ter de 1 a 64 caracteres: letras, números, _ ou -.');\n return value;\n}\n\nfunction number(value: string, label: string, integer = false): number {\n const parsed = Number(value);\n if (!Number.isFinite(parsed) || (integer && !Number.isSafeInteger(parsed))) throw new YuzuhaError('CANVAS_OPTIONS', `${label} deve ser ${integer ? 'inteiro' : 'número'} válido.`);\n return parsed;\n}\n\nasync function options<T extends object>(call: FunctionCall, index: number): Promise<T> {\n if (index >= call.count) return {} as T;\n const value = await call.arg(index);\n if (value === null || typeof value !== 'object' || Array.isArray(value) || value instanceof Uint8Array) {\n throw new YuzuhaError('CANVAS_OPTIONS', 'Opções devem ser um objeto criado com $object.');\n }\n return value as T;\n}\n\nfunction getCanvas(call: FunctionCall, rawID: string): CanvasBuilder {\n const id = requiredId(rawID), canvas = canvasExecution(call).canvases.get(id);\n if (!canvas) throw new YuzuhaError('CANVAS_STATE', `Canvas inexistente: ${id}.`);\n return canvas;\n}\n\nasync function addCanvas(call: FunctionCall, operation: (canvas: CanvasBuilder) => void): Promise<string> {\n operation(getCanvas(call, await call.text(0)));\n return '';\n}\n\nexport const canvasFunctions = defineFunctions(fn => {\n fn('canvasCreate', 'canvas', 3, 4, '[id;largura;altura;opções?]', 'Cria um canvas de composição privado à execução atual.', async call => {\n const id = requiredId(await call.text(0)), state = canvasExecution(call);\n if (state.canvases.has(id)) throw new YuzuhaError('CANVAS_STATE', `ID de canvas já existe: ${id}.`);\n if (state.canvases.size >= CANVAS_LIMITS.maxScriptCanvases) throw new YuzuhaError('EXECUTION_LIMIT', 'Execução excedeu 4 canvases ativos.');\n const width = number(await call.text(1), 'Largura', true), height = number(await call.text(2), 'Altura', true);\n const createOptions = await options<CanvasCreateOptions>(call, 3);\n state.canvases.set(id, call.ctx.canvas.create(width, height, createOptions));\n return '';\n });\n fn('canvasFont', 'canvas', 3, 4, '[id;família;fonte;opções?]', 'Registra uma fonte TTF/OTF na cena sem expor seus bytes às variáveis.', async call => {\n const family = await call.text(1), source = await call.text(2), input = await options<CanvasFontOptions>(call, 3);\n return addCanvas(call, canvas => { canvas.font(family, source, input); });\n });\n fn('canvasRect', 'canvas', 5, 6, '[id;x;y;largura;altura;opções?]', 'Desenha um retângulo preenchido ou com borda.', async call => {\n const x = number(await call.text(1), 'x'), y = number(await call.text(2), 'y');\n const width = number(await call.text(3), 'Largura'), height = number(await call.text(4), 'Altura');\n const input = await options<Omit<CanvasRectOptions, 'x' | 'y' | 'width' | 'height'>>(call, 5);\n return addCanvas(call, canvas => { canvas.rect({ ...input, x, y, width, height }); });\n });\n fn('canvasCircle', 'canvas', 4, 5, '[id;x;y;raio;opções?]', 'Desenha um círculo pelo centro e raio.', async call => {\n const x = number(await call.text(1), 'x'), y = number(await call.text(2), 'y'), radius = number(await call.text(3), 'Raio');\n const input = await options<Omit<import('../../domain/canvas.js').CanvasCircleOptions, 'x' | 'y' | 'radius'>>(call, 4);\n return addCanvas(call, canvas => { canvas.circle({ ...input, x, y, radius }); });\n });\n fn('canvasLine', 'canvas', 5, 6, '[id;x1;y1;x2;y2;opções?]', 'Desenha uma linha com largura e acabamento opcionais.', async call => {\n const x1 = number(await call.text(1), 'x1'), y1 = number(await call.text(2), 'y1');\n const x2 = number(await call.text(3), 'x2'), y2 = number(await call.text(4), 'y2');\n const input = await options<Omit<CanvasLineOptions, 'x1' | 'y1' | 'x2' | 'y2'>>(call, 5);\n return addCanvas(call, canvas => { canvas.line({ ...input, x1, y1, x2, y2 }); });\n });\n fn('canvasImage', 'canvas', 6, 7, '[id;fonte;x;y;largura;altura;opções?]', 'Desenha imagem local configurada, bytes ou URL permitida pelo serviço HTTP.', async call => {\n const source = await call.text(1), x = number(await call.text(2), 'x'), y = number(await call.text(3), 'y');\n const width = number(await call.text(4), 'Largura'), height = number(await call.text(5), 'Altura');\n const input = await options<Omit<CanvasImageOptions, 'x' | 'y' | 'width' | 'height'>>(call, 6);\n return addCanvas(call, canvas => { canvas.image(source, { ...input, x, y, width, height }); });\n });\n fn('canvasAvatar', 'canvas', 5, 6, '[id;fonte;x;y;tamanho;opções?]', 'Desenha uma imagem quadrada com recorte circular e borda opcional.', async call => {\n const source = await call.text(1), x = number(await call.text(2), 'x'), y = number(await call.text(3), 'y');\n const size = number(await call.text(4), 'Tamanho');\n const input = await options<Omit<CanvasAvatarOptions, 'x' | 'y' | 'size'>>(call, 5);\n return addCanvas(call, canvas => { canvas.avatar(source, { ...input, x, y, size }); });\n });\n fn('canvasText', 'canvas', 4, 5, '[id;texto;x;y;opções?]', 'Desenha texto com ajuste, quebra e overflow por grafemas.', async call => {\n const value = await call.text(1), x = number(await call.text(2), 'x'), y = number(await call.text(3), 'y');\n const input = await options<Omit<CanvasTextOptions, 'x' | 'y'>>(call, 4);\n return addCanvas(call, canvas => { canvas.text(value, { ...input, x, y }); });\n });\n fn('canvasBadges', 'canvas', 5, 6, '[id;itens;x;y;larguraMáxima;opções?]', 'Compõe badges medidos e reserva espaço para o contador +N.', async call => {\n const items = await call.arg(1);\n if (!Array.isArray(items)) throw new YuzuhaError('CANVAS_OPTIONS', 'itens deve ser um array criado com $array.');\n const x = number(await call.text(2), 'x'), y = number(await call.text(3), 'y'), maxWidth = number(await call.text(4), 'maxWidth');\n const input = await options<Omit<CanvasBadgesOptions, 'x' | 'y' | 'maxWidth'>>(call, 5);\n return addCanvas(call, canvas => { canvas.badges(items as CanvasBadgeItem[], { ...input, x, y, maxWidth }); });\n });\n fn('canvasProgress', 'canvas', 7, 8, '[id;x;y;largura;altura;valor;máximo;opções?]', 'Desenha progresso limitado a zero e ao máximo informado.', async call => {\n const x = number(await call.text(1), 'x'), y = number(await call.text(2), 'y');\n const width = number(await call.text(3), 'Largura'), height = number(await call.text(4), 'Altura');\n const value = number(await call.text(5), 'Valor'), max = number(await call.text(6), 'Máximo');\n const input = await options<Omit<CanvasProgressOptions, 'x' | 'y' | 'width' | 'height' | 'value' | 'max'>>(call, 7);\n return addCanvas(call, canvas => { canvas.progress({ ...input, x, y, width, height, value, max }); });\n });\n fn('canvasSend', 'canvas', 1, 2, '[id;opções?]', 'Renderiza e envia uma imagem sem produzir uma resposta automática adicional.', async call => {\n const id = requiredId(await call.text(0)), state = canvasExecution(call), builder = state.canvases.get(id);\n if (!builder) throw new YuzuhaError('CANVAS_STATE', `Canvas inexistente: ${id}.`);\n if (state.renderAttempts >= CANVAS_LIMITS.maxScriptRenders) throw new YuzuhaError('EXECUTION_LIMIT', 'Execução excedeu 4 tentativas de renderização.');\n const sendOptions = await options<CanvasSendOptions>(call, 1);\n state.renderAttempts++;\n await call.wait(call.ctx.canvas.send(builder, sendOptions));\n return '';\n });\n fn('canvasDispose', 'canvas', 1, 1, '[id]', 'Descarta o canvas da execução para liberar sua vaga e reutilizar o ID.', async call => {\n const id = requiredId(await call.text(0)), state = canvasExecution(call);\n if (!state.canvases.delete(id)) throw new YuzuhaError('CANVAS_STATE', `Canvas inexistente: ${id}.`);\n return '';\n });\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/functions/builtins/context.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,oDAgB3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/functions/builtins/context.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FunctionCall } from '../runtime/types.js';\nimport { index } from './arguments.js';\nimport { defineFunctions } from './definition.js';\n\nexport const contextFunctions = defineFunctions(fn => {\n const zero = (name: string, description: string, run: (call: FunctionCall) => unknown) => fn(name, 'context', 0, 0, '', description, run);\n zero('authorID', 'ID do autor.', c => c.ctx.authorID);\n zero('authorName', 'Nome do autor.', c => c.ctx.authorName);\n zero('username', 'Nome do autor.', c => c.ctx.authorName);\n zero('botID', 'ID do bot.', c => c.ctx.transport.botID);\n zero('guildID', 'ID do servidor; vazio em DM.', c => c.ctx.guildID);\n zero('channelID', 'ID do canal; vazio se o evento não tiver canal.', c => c.ctx.channelID);\n zero('messageID', 'ID da mensagem.', c => c.ctx.message.id);\n zero('ping', 'Latência do gateway em ms.', c => c.ctx.transport.ping);\n zero('caseID', 'ID do último caso criado nesta execução.', c => c.ctx.lastCase?.id ?? '');\n zero('help', 'Ajuda dos comandos registrados.', c => c.ctx.help());\n fn('mentioned', 'context', 1, 1, '[posição]', 'Menção por posição, começando em 1; vazio se ausente.', async c => c.ctx.message.mentions[index(await c.text(0), 1) - 1] ?? '');\n fn('message', 'context', 0, 1, '[posição?]', 'Texto dos argumentos, ou argumento por posição começando em 0.', async c => c.count ? c.ctx.tokens[index(await c.text(0))] ?? '' : c.ctx.input);\n fn('messageSlice', 'context', 1, 2, '[início;fim?]', 'Fatia de argumentos, índice inicial 0 e fim exclusivo.', async c => c.ctx.tokens.slice(index(await c.text(0)), c.count > 1 ? index(await c.text(1)) : undefined).join(' '));\n fn('arg', 'context', 1, 1, '[nome]', 'Argumento declarativo convertido.', async c => c.ctx.args.get(await c.text(0)) ?? '');\n});\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FunctionCall, FunctionDefinition } from '../types.js';
|
|
1
|
+
import type { FunctionCall, FunctionDefinition } from '../runtime/types.js';
|
|
2
2
|
type RegisterBuiltin = (name: string, category: string, minArgs: number, maxArgs: number, usage: string, description: string, execute: (call: FunctionCall) => unknown | Promise<unknown>, aliases?: string[]) => void;
|
|
3
3
|
export declare function defineFunctions(setup: (register: RegisterBuiltin) => void): FunctionDefinition[];
|
|
4
4
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../src/functions/builtins/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,KAAK,eAAe,GAAG,CACrB,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAChE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAClC,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAC5E,IAAI,CAAC;AAEV,wBAAgB,eAAe,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,GAAG,kBAAkB,EAAE,CAMhG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../src/functions/builtins/definition.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,eAAe,CAAC,KAA0C;IACxE,MAAM,WAAW,GAAyB,EAAE,CAAC;IAC7C,KAAK,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QAC/E,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACnH,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC","sourcesContent":["import type { FunctionCall, FunctionDefinition } from '../runtime/types.js';\n\ntype RegisterBuiltin = (\n name: string, category: string, minArgs: number, maxArgs: number,\n usage: string, description: string,\n execute: (call: FunctionCall) => unknown | Promise<unknown>, aliases?: string[],\n) => void;\n\nexport function defineFunctions(setup: (register: RegisterBuiltin) => void): FunctionDefinition[] {\n const definitions: FunctionDefinition[] = [];\n setup((name, category, minArgs, maxArgs, usage, description, execute, aliases) => {\n definitions.push({ name, category, minArgs, maxArgs, usage: `$${name}${usage}`, description, execute, aliases });\n });\n return definitions;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embeds.d.ts","sourceRoot":"","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"embeds.d.ts","sourceRoot":"","sources":["../../../src/functions/builtins/embeds.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAmBvD,eAAO,MAAM,cAAc,oDAyEzB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { YuzuhaError } from '../../errors.js';
|
|
2
2
|
import { httpURL, isoTimestamp, mergeEmbedParts, normalizeEmbed, normalizeFields, parseColor, validateEmbed } from '../../domain/embeds.js';
|
|
3
|
-
import { truthy } from '../values.js';
|
|
3
|
+
import { truthy } from '../runtime/values.js';
|
|
4
4
|
import { defineFunctions } from './definition.js';
|
|
5
5
|
export { validateEmbed } from '../../domain/embeds.js';
|
|
6
6
|
function record(value, label) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeds.js","sourceRoot":"","sources":["../../../src/functions/builtins/embeds.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Embed, EmbedField } from '../../domain/messages.js';\nimport { YuzuhaError } from '../../errors.js';\nimport { httpURL, isoTimestamp, mergeEmbedParts, normalizeEmbed, normalizeFields, parseColor, validateEmbed } from '../../domain/embeds.js';\nimport { truthy } from '../runtime/values.js';\nimport { defineFunctions } from './definition.js';\n\nexport { validateEmbed } from '../../domain/embeds.js';\n\nfunction record(value: unknown, label: string): Record<string, unknown> {\n if (!value || typeof value !== 'object' || Array.isArray(value)) throw new YuzuhaError('EMBED', `${label} deve ser um embed (objeto).`);\n return value as Record<string, unknown>;\n}\n\n/** Argumento opcional: vazio conta como ausente. */\nfunction optional(value: string): string | undefined {\n return value.trim() === '' ? undefined : value;\n}\n\nfunction fieldFrom(value: unknown): EmbedField {\n const [field] = normalizeFields([Array.isArray(value)\n ? { name: value[0], value: value[1], ...(value.length > 2 ? { inline: value[2] } : {}) }\n : value]);\n return field!;\n}\n\nexport const embedFunctions = defineFunctions(fn => {\n fn('embed', 'embeds', 1, 32, '[parte;parte;...]', 'Combina partes tipadas de embed. Separe-as por ponto e vírgula.', async c => {\n const parts: Embed[] = [];\n for (const part of await c.all()) {\n if (!part || typeof part !== 'object' || Array.isArray(part)) throw new YuzuhaError('EMBED', 'Use funções de embed separadas por ;.');\n parts.push(part as Embed);\n }\n const result = mergeEmbedParts(parts);\n validateEmbed(result);\n return result;\n });\n for (const name of ['title', 'description', 'footer'] as const) {\n fn(name, 'embeds', 1, 1, '[texto]', 'Parte de embed.', async c => {\n const value = await c.text(0);\n return name === 'footer' ? { footer: { text: value } } : { [name]: value };\n });\n }\n fn('url', 'embeds', 1, 1, '[url]', 'URL clicável do título do embed (HTTP/HTTPS).', async c => ({ url: httpURL(await c.text(0)) }));\n fn('embedTimestamp', 'embeds', 1, 1, '[iso|agora]', 'Data do embed em ISO-8601 com fuso, ou \"agora\" para o instante atual.', async c => {\n const value = (await c.text(0)).trim();\n return { timestamp: value.toLowerCase() === 'agora' ? new Date().toISOString() : isoTimestamp(value) };\n });\n fn('footerIcon', 'embeds', 1, 1, '[iconURL]', 'Ícone do rodapé do embed (HTTP/HTTPS). Use depois de $footer.', async c => ({ footer: { iconURL: httpURL(await c.text(0)) } }));\n fn('author', 'embeds', 1, 3, '[nome;url?;iconURL?]', 'Autor do embed, com link e ícone opcionais (HTTP/HTTPS).', async c => {\n const author: { name: string; url?: string; iconURL?: string } = { name: await c.text(0) };\n const url = c.count > 1 ? optional(await c.text(1)) : undefined;\n const iconURL = c.count > 2 ? optional(await c.text(2)) : undefined;\n if (url !== undefined) author.url = httpURL(url);\n if (iconURL !== undefined) author.iconURL = httpURL(iconURL);\n return { author };\n });\n for (const name of ['image', 'thumbnail'] as const) {\n fn(name, 'embeds', 1, 1, '[url]', 'Imagem ou miniatura do embed (HTTP/HTTPS).', async c => ({ [name]: { url: httpURL(await c.text(0)) } }));\n fn(`${name}Alt`, 'embeds', 1, 1, '[descrição]', `Texto alternativo da ${name === 'image' ? 'imagem' : 'miniatura'} do embed.`, async c => ({ [name]: { description: await c.text(0) } }));\n }\n fn('color', 'embeds', 1, 1, '[#RRGGBB|r,g,b|nome]', 'Cor do embed: #RRGGBB, tupla r,g,b (0 a 255) ou nome simples (red, blue, green...).', async c => ({ color: parseColor(await c.arg(0)) }));\n fn('field', 'embeds', 2, 3, '[nome;valor;inline?]', 'Campo de embed. O valor pode ser vazio quando o campo é inline.', async c => ({\n fields: [{ name: await c.text(0), value: await c.text(1), inline: c.count > 2 ? truthy(await c.arg(2)) : false }],\n }));\n fn('fields', 'embeds', 1, 1, '[array]', 'Campos de embed a partir de um array de objetos {name, value, inline} ou de arrays [nome, valor, inline?].', async c => {\n const value = await c.arg(0);\n if (!Array.isArray(value)) throw new YuzuhaError('EMBED_FIELD', 'fields recebe um array de campos.');\n return { fields: value.map(fieldFrom) };\n });\n fn('addField', 'embeds', 3, 4, '[embed;nome;valor;inline?]', 'Retorna cópia do embed com um campo adicionado ao final.', async c => {\n const base = normalizeEmbed(record(await c.arg(0), 'addField'));\n const field = { name: await c.text(1), value: await c.text(2), inline: c.count > 3 ? truthy(await c.arg(3)) : false };\n return normalizeEmbed({ ...base, fields: [...(base.fields ?? []), field] });\n });\n fn('removeField', 'embeds', 2, 2, '[embed;índice]', 'Retorna cópia do embed sem o campo de índice indicado, começando em 0.', async c => {\n const base = normalizeEmbed(record(await c.arg(0), 'removeField'));\n const index = fieldIndex(await c.text(1), base.fields?.length ?? 0);\n const fields = (base.fields ?? []).filter((_, position) => position !== index);\n const { fields: _removed, ...rest } = base;\n return normalizeEmbed(fields.length ? { ...rest, fields } : rest);\n });\n fn('editField', 'embeds', 4, 5, '[embed;índice;nome;valor;inline?]', 'Retorna cópia do embed com o campo de índice substituído. Sem inline, mantém o valor anterior.', async c => {\n const base = normalizeEmbed(record(await c.arg(0), 'editField'));\n const index = fieldIndex(await c.text(1), base.fields?.length ?? 0);\n const current = base.fields![index]!;\n const replaced = { name: await c.text(2), value: await c.text(3), inline: c.count > 4 ? truthy(await c.arg(4)) : current.inline };\n const fields = (base.fields ?? []).map((field, position) => (position === index ? replaced : field));\n return normalizeEmbed({ ...base, fields });\n });\n fn('embedFromObject', 'embeds', 1, 1, '[objeto|json]', 'Monta um embed a partir de objeto ou texto JSON, com as mesmas regras de $embed. Campos de resposta do Fluxer são descartados.', async c => {\n const value = await c.arg(0);\n if (typeof value !== 'string') return normalizeEmbed(value);\n try { return normalizeEmbed(JSON.parse(value)); }\n catch (error) {\n if (error instanceof YuzuhaError) throw error;\n throw new YuzuhaError('EMBED', 'JSON de embed inválido.');\n }\n });\n});\n\nfunction fieldIndex(raw: string, length: number): number {\n const index = Number(raw.trim());\n if (!Number.isInteger(index) || index < 0 || index >= length) {\n throw new YuzuhaError('EMBED_FIELD', `Índice de campo inválido. Use um inteiro de 0 a ${Math.max(length - 1, 0)}.`);\n }\n return index;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/functions/builtins/events.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,oDASzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/functions/builtins/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC,EAAE,CAAC,EAAE;IACjD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC;QACtG,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC;QAC7F,CAAC,iBAAiB,EAAE,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,CAAU,EAAE,CAAC;QACvE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,uFAAuF,EAAE,CAAC,CAAC,EAAE;YACxH,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK;gBAAE,MAAM,IAAI,UAAU,CAAC,0CAA0C,CAAC,CAAC;YACnF,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC","sourcesContent":["import { GuardError } from '../../shared/errors.js';\nimport { defineFunctions } from './definition.js';\n\nexport const eventFunctions = defineFunctions(fn => {\n for (const [name, key] of [['eventName', 'name'], ['eventUserID', 'userID'], ['eventGuildID', 'guildID'],\n ['eventChannelID', 'channelID'], ['eventMessageID', 'messageID'], ['eventContent', 'content'],\n ['eventOldContent', 'oldContent'], ['eventEmoji', 'emoji']] as const) {\n fn(name, 'events', 0, 0, '', 'Consulta o campo do evento; requer contexto de evento e preserva ausências como null.', c => {\n if (!c.ctx.event) throw new GuardError('Esta função exige um contexto de evento.');\n return c.ctx.event[key];\n });\n }\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../../src/functions/builtins/flow.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,aAAa,oDAkBxB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { GuardError, PartialModerationError, ScriptError, StopExecution, YuzuhaError } from '../../errors.js';
|
|
2
|
-
import { truthy } from '../values.js';
|
|
2
|
+
import { truthy } from '../runtime/values.js';
|
|
3
3
|
import { defineFunctions } from './definition.js';
|
|
4
|
-
import { LoopControl } from '../control-flow.js';
|
|
4
|
+
import { LoopControl } from '../runtime/control-flow.js';
|
|
5
5
|
export const flowFunctions = defineFunctions(fn => {
|
|
6
6
|
fn('let', 'flow', 2, 2, '[nome;valor]', 'Define variável local sem produzir texto.', async (c) => {
|
|
7
7
|
const key = await c.text(0);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../../src/functions/builtins/flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9G,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC,EAAE,CAAC,EAAE;IAChD,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,2CAA2C,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAC7F,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,+CAA+C,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,yBAAyB,EAAE,kCAAkC,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,6CAA6C,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClH,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,uBAAuB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,GAAG,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,qBAAqB,EAAE,qFAAqF,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAC9I,IAAI,CAAC;YAAC,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAC9B,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,YAAY,aAAa,IAAI,KAAK,YAAY,sBAAsB,IAAI,KAAK,YAAY,WAAW;mBACvI,CAAC,KAAK,YAAY,WAAW,IAAI,CAAC,iBAAiB,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAAE,MAAM,KAAK,CAAC;YAClI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { GuardError, PartialModerationError, ScriptError, StopExecution, YuzuhaError } from '../../errors.js';\nimport { truthy } from '../runtime/values.js';\nimport { defineFunctions } from './definition.js';\nimport { LoopControl } from '../runtime/control-flow.js';\n\nexport const flowFunctions = defineFunctions(fn => {\n fn('let', 'flow', 2, 2, '[nome;valor]', 'Define variável local sem produzir texto.', async c => {\n const key = await c.text(0);\n c.ctx.vars.set(key, await c.arg(1));\n return '';\n });\n fn('get', 'flow', 1, 1, '[nome]', 'Recupera variável local preservando seu tipo.', async c => c.ctx.vars.get(await c.text(0)) ?? '');\n fn('if', 'flow', 2, 3, '[condição;então;senão?]', 'Avalia somente o ramo escolhido.', async c => truthy(await c.arg(0)) ? c.arg(1) : c.count > 2 ? c.arg(2) : '');\n fn('stop', 'flow', 0, 0, '', 'Encerra a execução sem resposta automática.', () => { throw new StopExecution(); });\n fn('throw', 'flow', 1, 1, '[mensagem]', 'Emite erro explícito.', async c => { throw new YuzuhaError('USER_ERROR', await c.text(0)); });\n fn('try', 'flow', 2, 2, '[operação;fallback]', 'Captura erros de operações; guards, limites e ações parciais continuam sendo erros.', async c => {\n try { return await c.arg(0); }\n catch (error) {\n if (error instanceof GuardError || error instanceof StopExecution || error instanceof PartialModerationError || error instanceof LoopControl\n || (error instanceof ScriptError && ['EXECUTION_LIMIT', 'OUTPUT_LIMIT', 'EXECUTION_ABORTED'].includes(error.code))) throw error;\n return c.arg(1);\n }\n });\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../../src/functions/builtins/guards.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc,oDAqBzB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GuardError } from '../../errors.js';
|
|
2
|
-
import { truthy } from '../values.js';
|
|
2
|
+
import { truthy } from '../runtime/values.js';
|
|
3
3
|
import { defineFunctions } from './definition.js';
|
|
4
4
|
export const guardFunctions = defineFunctions(fn => {
|
|
5
5
|
fn('onlyIf', 'guards', 2, 2, '[condição;erro]', 'Encerra se a condição for falsa; aceita ==, !=, >, <, >= e <=.', async (c) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../../../src/functions/builtins/guards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC,EAAE,CAAC,EAAE;IACjD,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,gEAAgE,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAC1H,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAChB,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,6BAA6B,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACrF,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO;YAAE,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC;QAChH,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAClB,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAE,uCAAuC,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACtG,MAAM,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjG,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC1B,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAE,qCAAqC,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACvG,MAAM,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAChG,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAC7B,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,qEAAqE,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACjI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3E,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { GuardError } from '../../errors.js';\nimport { truthy } from '../runtime/values.js';\nimport { defineFunctions } from './definition.js';\n\nexport const guardFunctions = defineFunctions(fn => {\n fn('onlyIf', 'guards', 2, 2, '[condição;erro]', 'Encerra se a condição for falsa; aceita ==, !=, >, <, >= e <=.', async c => {\n if (!truthy(await c.arg(0))) throw new GuardError(await c.text(1));\n return '';\n }, ['require']);\n fn('requireGuild', 'guards', 0, 1, '[erro?]', 'Exige execução em servidor.', async c => {\n if (!c.ctx.guildID) throw new GuardError(c.count ? await c.text(0) : 'Este comando só funciona em servidores.');\n return '';\n }, ['onlyGuild']);\n fn('onlyPerms', 'guards', 1, 2, '[permissão;erro?]', 'Exige permissão do autor no servidor.', async c => {\n await c.ctx.requirePermission(await c.text(0), false, c.count > 1 ? await c.text(1) : undefined);\n return '';\n }, ['requirePermission']);\n fn('onlyBotPerms', 'guards', 1, 2, '[permissão;erro?]', 'Exige permissão do bot no servidor.', async c => {\n await c.ctx.requirePermission(await c.text(0), true, c.count > 1 ? await c.text(1) : undefined);\n return '';\n }, ['requireBotPermission']);\n fn('cooldown', 'guards', 1, 2, '[duração;erro?]', 'Cooldown por autor/canal/servidor/comando; erro aceita {remaining}.', async c => {\n c.ctx.cooldown(await c.text(0), c.count > 1 ? await c.text(1) : undefined);\n return '';\n });\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/functions/builtins/http.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,aAAa,oDAgHxB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { text } from '../values.js';
|
|
2
|
-
import { loopFrame, setLoopFrame, LoopControl } from '../control-flow.js';
|
|
1
|
+
import { text } from '../runtime/values.js';
|
|
2
|
+
import { loopFrame, setLoopFrame, LoopControl } from '../runtime/control-flow.js';
|
|
3
3
|
import { YuzuhaError } from '../../errors.js';
|
|
4
4
|
import { defineFunctions } from './definition.js';
|
|
5
5
|
const METHODS = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/functions/builtins/http.ts"],"names":[],"mappings":"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","sourcesContent":["import { text } from '../runtime/values.js';\nimport { loopFrame, setLoopFrame, LoopControl } from '../runtime/control-flow.js';\nimport { YuzuhaError } from '../../errors.js';\nimport { defineFunctions } from './definition.js';\n\nconst METHODS = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'] as const;\n\nfunction headers(raw: string): Record<string, string> {\n const result: Record<string, string> = {};\n const entries = raw.split(/\\n|,(?=\\s*[A-Za-z0-9-]+\\s*:)/);\n for (const entry of entries) {\n const text = entry.trim();\n if (!text) continue;\n const separator = text.indexOf(':');\n if (separator <= 0) throw new YuzuhaError('HTTP_HEADER', `Cabeçalho inválido: ${text}. Use \"Nome: valor\".`);\n const name = text.slice(0, separator).trim();\n const value = text.slice(separator + 1).trim();\n if (!/^[A-Za-z0-9-]+$/.test(name)) throw new YuzuhaError('HTTP_HEADER', `Nome de cabeçalho inválido: ${name}.`);\n if (/[\\r\\n]/.test(value)) throw new YuzuhaError('HTTP_HEADER', 'Valor de cabeçalho não pode conter quebras de linha.');\n result[name] = value;\n }\n return result;\n}\n\nfunction method(raw: string): string {\n const value = raw.trim().toUpperCase();\n if (!METHODS.includes(value as typeof METHODS[number])) {\n throw new YuzuhaError('HTTP_METHOD', `Método HTTP inválido: ${raw}. Use ${METHODS.join(', ')}.`);\n }\n return value;\n}\n\nexport const httpFunctions = defineFunctions(fn => {\n fn('httpChunk', 'network', 0, 0, '', 'Trecho UTF-8 atual de httpStream; vazio fora do callback.', c => c.ctx.vars.get('__httpChunk') ?? '');\n fn('httpChunkIndex', 'network', 0, 0, '', 'Índice do trecho textual de httpStream, começando em zero; vazio fora dele.', c => c.ctx.vars.get('__httpChunkIndex') ?? '');\n fn('httpStream', 'network', 3, 5, '[método;url;callback;corpo?;cabeçalhos?]', 'Consome resposta por trechos UTF-8 e reavalia callback; até 1000 chunks, com backpressure, cancelamento e política HTTP do comando.', async c => {\n const requestMethod = method(await c.text(0)), url = await c.text(1);\n const body = c.count > 3 ? await c.text(3) : undefined;\n const response = await c.wait(c.ctx.http.stream({ method: requestMethod, url,\n ...(body ? { body } : {}), ...(c.count > 4 ? { headers: headers(await c.text(4)) } : {}) }));\n const reader = response.body.getReader(), decoder = new TextDecoder();\n const keys = ['__httpChunk', '__httpChunkIndex'];\n const saved = new Map(keys.filter(key => c.ctx.vars.has(key)).map(key => [key, c.ctx.vars.get(key)]));\n const previousFrame = loopFrame(c.ctx), frame = {};\n let result = '', index = 0, chunks = 0, stop = false;\n const consume = async (chunk: string): Promise<void> => {\n if (!chunk) return;\n c.checkOutput(chunk);\n c.ctx.vars.set('__httpChunk', chunk); c.ctx.vars.set('__httpChunkIndex', index++);\n setLoopFrame(c.ctx, frame);\n try { result += text(await c.fresh(2)); c.checkOutput(result); }\n catch (error) {\n if (!(error instanceof LoopControl) || error.frame !== frame) throw error;\n stop = error.action === 'break';\n }\n };\n try {\n for (;;) {\n const next = await c.wait(reader.read());\n if (next.done) { await consume(decoder.decode()); break; }\n if (++chunks > 1000) throw new YuzuhaError('EXECUTION_LIMIT', 'Streaming excede 1000 chunks.');\n await consume(decoder.decode(next.value, { stream: true }));\n if (stop) break;\n }\n return result;\n } finally {\n // Source cancellation may never settle; cleanup must not hold the command open.\n void reader.cancel().catch(() => {});\n reader.releaseLock();\n for (const key of keys) {\n if (saved.has(key)) c.ctx.vars.set(key, saved.get(key)); else c.ctx.vars.delete(key);\n }\n setLoopFrame(c.ctx, previousFrame);\n }\n });\n fn('httpMultipart', 'network', 3, 4, '[método;url;partes;cabeçalhos?]', 'Envia partes de formulário com value textual ou base64 binário; retorna o corpo da resposta.', async c => {\n const requestMethod = method(await c.text(0));\n if (requestMethod === 'GET' || requestMethod === 'HEAD') throw new YuzuhaError('HTTP_BODY', `${requestMethod} não aceita corpo.`);\n const parts: unknown = await c.arg(2);\n if (!Array.isArray(parts) || !parts.length || parts.length > 100) throw new YuzuhaError('HTTP_MULTIPART', 'Informe de 1 a 100 partes.');\n const input = parts.map((part: unknown) => {\n if (!part || typeof part !== 'object' || Array.isArray(part)) throw new YuzuhaError('HTTP_MULTIPART', 'Parte inválida.');\n const data = part as Record<string, unknown>;\n if (Object.keys(data).some(key => !['name', 'value', 'base64', 'filename', 'contentType'].includes(key))\n || typeof data['name'] !== 'string' || (data['filename'] !== undefined && typeof data['filename'] !== 'string')\n || (data['contentType'] !== undefined && typeof data['contentType'] !== 'string')\n || (data['base64'] !== undefined && data['value'] !== undefined)) throw new YuzuhaError('HTTP_MULTIPART', 'Campos de parte inválidos.');\n let value: string | Uint8Array;\n if (data['base64'] !== undefined) {\n if (typeof data['base64'] !== 'string' || data['base64'].length > 13_333_336\n || !/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(data['base64'])) throw new YuzuhaError('HTTP_MULTIPART', 'Base64 inválido ou excessivo.');\n const bytes = Buffer.from(data['base64'], 'base64');\n if (bytes.toString('base64') !== data['base64']) throw new YuzuhaError('HTTP_MULTIPART', 'Base64 deve usar a forma canônica.');\n value = bytes;\n } else {\n if (typeof data['value'] !== 'string') throw new YuzuhaError('HTTP_MULTIPART', 'Parte precisa de value textual ou base64.');\n value = data['value'];\n }\n return { name: data['name'], value, filename: data['filename'] as string | undefined, contentType: data['contentType'] as string | undefined };\n });\n return (await c.wait(c.ctx.http.multipart({ method: requestMethod, url: await c.text(1), parts: input,\n ...(c.count > 3 ? { headers: headers(await c.text(3)) } : {}) }))).body;\n });\n fn('http', 'network', 2, 4, '[método;url;corpo?;cabeçalhos?]', 'Executa requisição HTTP com timeout e limite de resposta; retorna o corpo.', async c => {\n const requestMethod = method(await c.text(0));\n const url = (await c.text(1)).trim();\n if (!url) throw new YuzuhaError('HTTP_URL', 'Informe a URL da requisição.');\n const body = c.count > 2 ? await c.text(2) : undefined;\n if (body && (requestMethod === 'GET' || requestMethod === 'HEAD')) {\n throw new YuzuhaError('HTTP_BODY', `${requestMethod} não aceita corpo.`);\n }\n const response = await c.wait(c.ctx.http.request({\n method: requestMethod,\n url,\n ...(body === undefined || body === '' ? {} : { body }),\n ...(c.count > 3 ? { headers: headers(await c.text(3)) } : {}),\n }));\n return response.body;\n });\n fn('httpJson', 'network', 2, 4, '[método;url;corpo?;cabeçalhos?]', 'Como $http, mas decodifica a resposta como JSON.', async c => {\n const requestMethod = method(await c.text(0));\n const url = (await c.text(1)).trim();\n if (!url) throw new YuzuhaError('HTTP_URL', 'Informe a URL da requisição.');\n const body = c.count > 2 ? await c.text(2) : undefined;\n const requestHeaders = c.count > 3 ? headers(await c.text(3)) : {};\n if (body && (requestMethod === 'GET' || requestMethod === 'HEAD')) {\n throw new YuzuhaError('HTTP_BODY', `${requestMethod} não aceita corpo.`);\n }\n if (body && !Object.keys(requestHeaders).some(name => name.toLowerCase() === 'content-type')) {\n requestHeaders['Content-Type'] = 'application/json';\n }\n const response = await c.wait(c.ctx.http.request({\n method: requestMethod,\n url,\n ...(body === undefined || body === '' ? {} : { body }),\n ...(Object.keys(requestHeaders).length ? { headers: requestHeaders } : {}),\n }));\n if (!response.body.trim()) return null;\n try {\n return JSON.parse(response.body) as unknown;\n } catch (cause) {\n throw new YuzuhaError('HTTP_JSON', 'Resposta não é JSON válido.', { cause });\n }\n });\n});\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Runtime } from '../runtime/runtime.js';
|
|
2
|
+
import type { FunctionDefinition } from '../runtime/types.js';
|
|
3
|
+
export declare const builtinFunctions: FunctionDefinition[];
|
|
4
|
+
export declare function registerBuiltins(runtime: Runtime): Runtime;
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/functions/builtins/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AA0B9D,eAAO,MAAM,gBAAgB,EAAE,kBAAkB,EAShD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/builtins/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,CAAC,MAAM,gBAAgB,GAAyB;IACpD,GAAG,gBAAgB,EAAE,GAAG,aAAa,EAAE,GAAG,cAAc,EAAE,GAAG,cAAc;IAC3E,GAAG,gBAAgB,EAAE,GAAG,cAAc,EAAE,GAAG,gBAAgB,EAAE,GAAG,mBAAmB,EAAE,GAAG,gBAAgB;IACxG,GAAG,aAAa,EAAE,GAAG,aAAa,EAAE,GAAG,gBAAgB,EAAE,GAAG,wBAAwB;IACpF,GAAG,kBAAkB,EAAE,GAAG,gBAAgB,EAAE,GAAG,mBAAmB,EAAE,GAAG,eAAe;IACtF,GAAG,eAAe,EAAE,GAAG,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,GAAG,aAAa;IAChF,GAAG,cAAc;IACjB,GAAG,eAAe;IAClB,GAAG,cAAc;CAClB,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AAC/C,CAAC","sourcesContent":["import type { Runtime } from '../runtime/runtime.js';\nimport type { FunctionDefinition } from '../runtime/types.js';\nimport { channelFunctions } from './native-channels.js';\nimport { collectorFunctions } from './native-collectors.js';\nimport { expressionFunctions } from './native-expressions.js';\nimport { inviteFunctions } from './native-invites.js';\nimport { resourceMessageFunctions } from './native-messages.js';\nimport { roleFunctions } from './native-roles.js';\nimport { threadFunctions } from './native-threads.js';\nimport { userFunctions } from './native-users.js';\nimport { webhookFunctions } from './native-webhooks.js';\nimport { contextFunctions } from './context.js';\nimport { embedFunctions } from './embeds.js';\nimport { payloadFunctions } from './payload.js';\nimport { flowFunctions } from './flow.js';\nimport { guardFunctions } from './guards.js';\nimport { httpFunctions } from './http.js';\nimport { languageFunctions } from './language/index.js';\nimport { messageFunctions } from './messages.js';\nimport { moderationFunctions } from './moderation.js';\nimport { scheduleFunctions } from './schedule.js';\nimport { storageFunctions } from './storage.js';\nimport { valueFunctions } from './values.js';\nimport { resourceExtras } from './resource-extras.js';\nimport { eventFunctions } from './events.js';\nimport { canvasFunctions } from './canvas.js';\n\nexport const builtinFunctions: FunctionDefinition[] = [\n ...contextFunctions, ...flowFunctions, ...guardFunctions, ...valueFunctions,\n ...messageFunctions, ...embedFunctions, ...payloadFunctions, ...moderationFunctions, ...storageFunctions,\n ...userFunctions, ...roleFunctions, ...channelFunctions, ...resourceMessageFunctions,\n ...collectorFunctions, ...webhookFunctions, ...expressionFunctions, ...threadFunctions,\n ...inviteFunctions, ...languageFunctions, ...scheduleFunctions, ...httpFunctions,\n ...resourceExtras,\n ...canvasFunctions,\n ...eventFunctions,\n];\n\nexport function registerBuiltins(runtime: Runtime): Runtime {\n return runtime.registerAll(builtinFunctions);\n}\n"]}
|