yuzuha 0.2.0 → 0.2.1
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 +12 -0
- package/VERSIONING.md +29 -7
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +6 -1
- package/dist/commands/context.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- 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 +51 -0
- package/dist/infrastructure/fluxer/resources/cache.js.map +1 -0
- 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/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 +49 -35
- package/dist/infrastructure/fluxer/resources/messages.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/users.d.ts +4 -2
- package/dist/infrastructure/fluxer/resources/users.d.ts.map +1 -1
- package/dist/infrastructure/fluxer/resources/users.js +2 -2
- package/dist/infrastructure/fluxer/resources/users.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 +52 -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/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/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 +20 -0
- package/dist/ports/resources/messages.d.ts.map +1 -1
- package/dist/ports/resources/messages.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.d.ts +8 -0
- package/dist/ports/resources.d.ts.map +1 -1
- package/dist/ports/resources.js.map +1 -1
- 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/resource-authorization.d.ts.map +1 -1
- package/dist/services/resource-authorization.js +2 -1
- 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/FUNCTION-GAPS.md +8 -3
- package/docs/NATIVE.md +32 -5
- package/docs/PARITY-MATRIX.md +25 -25
- package/docs/PARITY.md +21 -9
- package/package.json +22 -1
- package/src/commands/context.ts +6 -1
- package/src/index.ts +8 -2
- package/src/infrastructure/fluxer/resources/cache.ts +52 -0
- package/src/infrastructure/fluxer/resources/collectors.ts +87 -4
- 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 +49 -35
- package/src/infrastructure/fluxer/resources/self.ts +39 -0
- package/src/infrastructure/fluxer/resources/users.ts +2 -2
- package/src/infrastructure/fluxer/resources.ts +12 -0
- package/src/ports/resources/cache.ts +56 -0
- package/src/ports/resources/collectors.ts +20 -0
- package/src/ports/resources/gateway.ts +49 -0
- package/src/ports/resources/instance.ts +109 -0
- package/src/ports/resources/messages.ts +23 -0
- package/src/ports/resources/self.ts +30 -0
- package/src/ports/resources.ts +8 -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/resource-authorization.ts +2 -1
- package/src/testing.ts +4 -0
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import type { CacheResources } from './resources/cache.js';
|
|
1
2
|
import type { ChannelsResources } from './resources/channels.js';
|
|
2
3
|
import type { CollectorsResources } from './resources/collectors.js';
|
|
3
4
|
import type { ExpressionsResources } from './resources/expressions.js';
|
|
5
|
+
import type { GatewayResources } from './resources/gateway.js';
|
|
6
|
+
import type { InstanceResources } from './resources/instance.js';
|
|
4
7
|
import type { InvitesResources } from './resources/invites.js';
|
|
5
8
|
import type { MessagesResources } from './resources/messages.js';
|
|
6
9
|
import type { RolesResources } from './resources/roles.js';
|
|
10
|
+
import type { SelfResources } from './resources/self.js';
|
|
7
11
|
import type { ThreadsResources } from './resources/threads.js';
|
|
8
12
|
import type { UsersResources } from './resources/users.js';
|
|
9
13
|
import type { WebhooksResources } from './resources/webhooks.js';
|
|
@@ -18,5 +22,9 @@ export interface Resources {
|
|
|
18
22
|
readonly expressions: ExpressionsResources;
|
|
19
23
|
readonly threads: ThreadsResources;
|
|
20
24
|
readonly invites: InvitesResources;
|
|
25
|
+
readonly gateway: GatewayResources;
|
|
26
|
+
readonly instance: InstanceResources;
|
|
27
|
+
readonly self: SelfResources;
|
|
28
|
+
readonly cache: CacheResources;
|
|
21
29
|
}
|
|
22
30
|
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/ports/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,+EAA+E;AAC/E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/ports/resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,+EAA+E;AAC/E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;CAChC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/ports/resources.ts"],"names":[],"mappings":"","sourcesContent":["import type { ChannelsResources } from './resources/channels.js';\nimport type { CollectorsResources } from './resources/collectors.js';\nimport type { ExpressionsResources } from './resources/expressions.js';\nimport type { InvitesResources } from './resources/invites.js';\nimport type { MessagesResources } from './resources/messages.js';\nimport type { RolesResources } from './resources/roles.js';\nimport type { ThreadsResources } from './resources/threads.js';\nimport type { UsersResources } from './resources/users.js';\nimport type { WebhooksResources } from './resources/webhooks.js';\n\n/** Operações nativas usadas pelas funções de script, agrupadas por recurso. */\nexport interface Resources {\n readonly users: UsersResources;\n readonly roles: RolesResources;\n readonly channels: ChannelsResources;\n readonly messages: MessagesResources;\n readonly collectors: CollectorsResources;\n readonly webhooks: WebhooksResources;\n readonly expressions: ExpressionsResources;\n readonly threads: ThreadsResources;\n readonly invites: InvitesResources;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/ports/resources.ts"],"names":[],"mappings":"","sourcesContent":["import type { CacheResources } from './resources/cache.js';\nimport type { ChannelsResources } from './resources/channels.js';\nimport type { CollectorsResources } from './resources/collectors.js';\nimport type { ExpressionsResources } from './resources/expressions.js';\nimport type { GatewayResources } from './resources/gateway.js';\nimport type { InstanceResources } from './resources/instance.js';\nimport type { InvitesResources } from './resources/invites.js';\nimport type { MessagesResources } from './resources/messages.js';\nimport type { RolesResources } from './resources/roles.js';\nimport type { SelfResources } from './resources/self.js';\nimport type { ThreadsResources } from './resources/threads.js';\nimport type { UsersResources } from './resources/users.js';\nimport type { WebhooksResources } from './resources/webhooks.js';\n\n/** Operações nativas usadas pelas funções de script, agrupadas por recurso. */\nexport interface Resources {\n readonly users: UsersResources;\n readonly roles: RolesResources;\n readonly channels: ChannelsResources;\n readonly messages: MessagesResources;\n readonly collectors: CollectorsResources;\n readonly webhooks: WebhooksResources;\n readonly expressions: ExpressionsResources;\n readonly threads: ThreadsResources;\n readonly invites: InvitesResources;\n readonly gateway: GatewayResources;\n readonly instance: InstanceResources;\n readonly self: SelfResources;\n readonly cache: CacheResources;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/sdk/builders.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builders.js","sourceRoot":"","sources":["../../src/sdk/builders.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC","sourcesContent":["export * from '@fluxerjs/builders';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/sdk/client.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/sdk/client.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC","sourcesContent":["export * from '@fluxerjs/core/client';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cluster.d.ts","sourceRoot":"","sources":["../../src/sdk/cluster.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cluster.js","sourceRoot":"","sources":["../../src/sdk/cluster.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC","sourcesContent":["export * from '@fluxerjs/core/cluster';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../src/sdk/collection.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../src/sdk/collection.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC","sourcesContent":["export * from '@fluxerjs/collection';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/sdk/errors.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/sdk/errors.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC","sourcesContent":["export * from '@fluxerjs/core/errors';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/sdk/internal.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/sdk/internal.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC","sourcesContent":["export * from '@fluxerjs/core/internal';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/sdk/message.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/sdk/message.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC","sourcesContent":["export * from '@fluxerjs/core/message';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-manager.d.ts","sourceRoot":"","sources":["../../../src/sdk/rest/request-manager.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-manager.js","sourceRoot":"","sources":["../../../src/sdk/rest/request-manager.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC","sourcesContent":["export * from '@fluxerjs/rest/request-manager';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/sdk/rest.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
package/dist/sdk/rest.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../src/sdk/rest.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC","sourcesContent":["export * from '@fluxerjs/rest';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sharding.d.ts","sourceRoot":"","sources":["../../src/sdk/sharding.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sharding.js","sourceRoot":"","sources":["../../src/sdk/sharding.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC","sourcesContent":["export * from '@fluxerjs/sharding';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/sdk/types/routes.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/sdk/types/routes.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC","sourcesContent":["export * from '@fluxerjs/types/routes';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sdk/types.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sdk/types.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC","sourcesContent":["export * from '@fluxerjs/types';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/sdk/util.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
package/dist/sdk/util.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/sdk/util.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC","sourcesContent":["export * from '@fluxerjs/util';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../src/sdk/voice.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice.js","sourceRoot":"","sources":["../../src/sdk/voice.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC","sourcesContent":["export * from '@fluxerjs/voice';\n"]}
|
package/dist/sdk/ws.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../src/sdk/ws.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
package/dist/sdk/ws.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws.js","sourceRoot":"","sources":["../../src/sdk/ws.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC","sourcesContent":["export * from '@fluxerjs/ws';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-authorization.d.ts","sourceRoot":"","sources":["../../src/services/resource-authorization.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"resource-authorization.d.ts","sourceRoot":"","sources":["../../src/services/resource-authorization.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,GAAG,SAAS,CA0M7G"}
|
|
@@ -74,7 +74,8 @@ export function bindAuthorizedResources(source, transport, scope) {
|
|
|
74
74
|
await allowed('ManageExpressions');
|
|
75
75
|
};
|
|
76
76
|
return { users: source.users, messages: source.messages, collectors: source.collectors,
|
|
77
|
-
threads: source.threads, invites: source.invites,
|
|
77
|
+
threads: source.threads, invites: source.invites, gateway: source.gateway,
|
|
78
|
+
instance: source.instance, self: source.self, cache: source.cache, expressions: {
|
|
78
79
|
emoji: source.expressions.emoji.bind(source.expressions), emojis: source.expressions.emojis.bind(source.expressions),
|
|
79
80
|
sticker: source.expressions.sticker.bind(source.expressions), stickers: source.expressions.stickers.bind(source.expressions),
|
|
80
81
|
async createEmoji(...args) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-authorization.js","sourceRoot":"","sources":["../../src/services/resource-authorization.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ModerationMember } from '../domain/moderation.js';\nimport { isAbove } from '../domain/moderation.js';\nimport { hasPermission, permission } from '../domain/permissions.js';\nimport { emojiBatch } from '../domain/resource-batches.js';\nimport type { Resources } from '../ports/resources.js';\nimport type { RoleInfo } from '../ports/resources/roles.js';\nimport type { Transport } from '../ports/transport.js';\nimport { GuardError } from '../shared/errors.js';\nimport { AuthorizationService, requireGuild } from './authorization.js';\nimport type { ActorScope } from './authorization.js';\n\nexport function bindAuthorizedResources(source: Resources, transport: Transport, scope: ActorScope): Resources {\n const authorization = new AuthorizationService(transport, scope);\n const guild = (id: string) => {\n if (id !== requireGuild(scope.guildID)) throw new GuardError('O recurso deve pertencer ao servidor atual.');\n return id;\n };\n const allowed = async (name: string, channelID?: string) => {\n await authorization.requirePermission(name, false, undefined, channelID);\n await authorization.requirePermission(name, true, undefined, channelID);\n };\n const actors = async (): Promise<[ModerationMember, ModerationMember]> => Promise.all([\n transport.member(requireGuild(scope.guildID), scope.authorID),\n transport.member(requireGuild(scope.guildID), transport.botID),\n ]);\n const permissions = async (names: string[] | undefined, channelID?: string) => {\n for (const name of names ?? []) {\n permission(name);\n await allowed(name, channelID);\n }\n };\n const roleHierarchy = async (role: RoleInfo, everyone = false) => {\n if (role.managed !== false || (!everyone && role.id === scope.guildID)) {\n throw new GuardError('Cargos gerenciados e @everyone não podem ser alterados por esta operação.');\n }\n if (everyone && role.id === scope.guildID) return;\n const [author, bot] = await actors();\n const target = { id: role.id, owner: false, rank: role.position, topRoleID: role.id, permissions: 0n };\n if ((!author.owner && !isAbove(author, target)) || !isAbove(bot, target)) {\n throw new GuardError('O cargo deve estar abaixo dos cargos do autor e do bot.');\n }\n };\n const memberHierarchy = async (id: string) => {\n const [author, bot] = await actors();\n const target = await transport.member(requireGuild(scope.guildID), id);\n if (target.owner || (id !== author.id && !author.owner && !isAbove(author, target))\n || (id !== bot.id && !isAbove(bot, target))) {\n throw new GuardError('O membro deve estar abaixo dos cargos do autor e do bot.');\n }\n };\n const role = async (guildID: string, query: string) => {\n guild(guildID);\n await allowed('ManageRoles');\n const target = await source.roles.resolve(guildID, query);\n await roleHierarchy(target);\n return target;\n };\n const channel = async (id: string, flag = 'ManageChannels') => {\n requireGuild(scope.guildID);\n const target = await source.channels.get(id);\n guild(target.guildID ?? '');\n await allowed(flag, id);\n return target;\n };\n const parent = async (id: string) => {\n const target = await channel(id);\n if (target.type !== 4) throw new GuardError('O canal pai deve ser uma categoria.');\n };\n const webhook = async (id: string) => {\n requireGuild(scope.guildID);\n const target = await source.webhooks.fetch(id);\n guild(target.guildID);\n await channel(target.channelID, 'ManageWebhooks');\n };\n const expressions = async (guildID: string) => {\n guild(guildID);\n await allowed('ManageExpressions');\n };\n return { users: source.users, messages: source.messages, collectors: source.collectors,\n threads: source.threads, invites: source.invites, expressions: {\n emoji: source.expressions.emoji.bind(source.expressions), emojis: source.expressions.emojis.bind(source.expressions),\n sticker: source.expressions.sticker.bind(source.expressions), stickers: source.expressions.stickers.bind(source.expressions),\n async createEmoji(...args) {\n await expressions(args[0]);\n return source.expressions.createEmoji(...args);\n },\n async editEmoji(...args) {\n await expressions(args[0]);\n return source.expressions.editEmoji(...args);\n },\n async deleteEmoji(...args) {\n await expressions(args[0]);\n return source.expressions.deleteEmoji(...args);\n },\n async createSticker(...args) {\n await expressions(args[0]);\n return source.expressions.createSticker(...args);\n },\n async editSticker(...args) {\n await expressions(args[0]);\n return source.expressions.editSticker(...args);\n },\n async deleteSticker(...args) {\n await expressions(args[0]);\n return source.expressions.deleteSticker(...args);\n },\n async cloneEmoji(...args) {\n await expressions(args[0]);\n return source.expressions.cloneEmoji(...args);\n },\n async cloneSticker(...args) {\n await expressions(args[0]);\n return source.expressions.cloneSticker(...args);\n },\n async createEmojisBulk(guildID, inputs) {\n const batch = emojiBatch(inputs);\n await expressions(guildID);\n return source.expressions.createEmojisBulk(guildID, batch);\n },\n }, roles: {\n resolve: source.roles.resolve.bind(source.roles), list: source.roles.list.bind(source.roles),\n has: source.roles.has.bind(source.roles),\n async add(guildID, userID, query) {\n const target = await role(guildID, query);\n await memberHierarchy(userID);\n await permissionsFromRole(target);\n return source.roles.add(guildID, userID, target.id);\n },\n async remove(guildID, userID, query) {\n const target = await role(guildID, query);\n await memberHierarchy(userID);\n return source.roles.remove(guildID, userID, target.id);\n },\n async create(guildID, input) {\n guild(guildID);\n await allowed('ManageRoles');\n await permissions(input.permissions);\n return source.roles.create(guildID, input);\n },\n async edit(guildID, query, input) {\n const target = await role(guildID, query);\n await permissions(input.permissions);\n return source.roles.edit(guildID, target.id, input);\n },\n async delete(guildID, query, reason) {\n const target = await role(guildID, query);\n return source.roles.delete(guildID, target.id, reason);\n },\n async move(guildID, query, position) {\n const target = await role(guildID, query);\n if (!Number.isSafeInteger(position) || position < 1) throw new GuardError('Posição de cargo deve ser um inteiro maior que zero.');\n await roleHierarchy({ ...target, position });\n return source.roles.move(guildID, target.id, position);\n },\n }, channels: {\n get: source.channels.get.bind(source.channels), list: source.channels.list.bind(source.channels),\n permissionsFor: source.channels.permissionsFor.bind(source.channels),\n async create(guildID, input) {\n guild(guildID);\n if (input.parentID) await parent(input.parentID);\n else await allowed('ManageChannels');\n return source.channels.create(guildID, input);\n },\n async edit(id, input) {\n await channel(id);\n if (input.parentID) await parent(input.parentID);\n return source.channels.edit(id, input);\n },\n async delete(id, reason) { await channel(id); return source.channels.delete(id, reason); },\n async setSlowmode(id, seconds, reason) { await channel(id); return source.channels.setSlowmode(id, seconds, reason); },\n async move(id, position) { await channel(id); return source.channels.move(id, position); },\n async setCategory(id, parentID, reason) {\n await channel(id);\n if (parentID) await parent(parentID);\n return source.channels.setCategory(id, parentID, reason);\n },\n async overwrite(id, targetID, input) {\n await channel(id, 'ManageRoles');\n const roles = await source.roles.list(requireGuild(scope.guildID));\n const targetRole = roles.find(candidate => candidate.id === targetID);\n if (input.type === 'role' || (input.type === undefined && targetRole)) {\n if (!targetRole) throw new GuardError('Cargo não encontrado no servidor atual.');\n await roleHierarchy(targetRole, true);\n } else await memberHierarchy(targetID);\n await permissions(input.allow, id);\n await permissions(input.deny, id);\n return source.channels.overwrite(id, targetID, { ...input, type: targetRole && input.type !== 'member' ? 'role' : 'member' });\n },\n }, webhooks: {\n async fetch(id) {\n requireGuild(scope.guildID);\n const target = await source.webhooks.fetch(id);\n guild(target.guildID);\n await channel(target.channelID, 'ManageWebhooks');\n return target;\n },\n async create(id, name, reason) { await channel(id, 'ManageWebhooks'); return source.webhooks.create(id, name, reason); },\n async list(id) { await channel(id, 'ManageWebhooks'); return source.webhooks.list(id); },\n async send(id, token, input) { await webhook(id); return source.webhooks.send(id, token, input); },\n async edit(id, token, name) { await webhook(id); return source.webhooks.edit(id, token, name); },\n async delete(id, token) { await webhook(id); return source.webhooks.delete(id, token); },\n } };\n\n async function permissionsFromRole(target: RoleInfo) {\n const [author, bot] = await actors();\n const bits = BigInt(target.permissions);\n for (const actor of [author, bot]) {\n if (!hasPermission(actor.permissions, 'Administrator', actor.owner) && (bits & actor.permissions) !== bits) {\n throw new GuardError('O cargo contém permissões que o autor ou o bot não possui.');\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"resource-authorization.js","sourceRoot":"","sources":["../../src/services/resource-authorization.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ModerationMember } from '../domain/moderation.js';\nimport { isAbove } from '../domain/moderation.js';\nimport { hasPermission, permission } from '../domain/permissions.js';\nimport { emojiBatch } from '../domain/resource-batches.js';\nimport type { Resources } from '../ports/resources.js';\nimport type { RoleInfo } from '../ports/resources/roles.js';\nimport type { Transport } from '../ports/transport.js';\nimport { GuardError } from '../shared/errors.js';\nimport { AuthorizationService, requireGuild } from './authorization.js';\nimport type { ActorScope } from './authorization.js';\n\nexport function bindAuthorizedResources(source: Resources, transport: Transport, scope: ActorScope): Resources {\n const authorization = new AuthorizationService(transport, scope);\n const guild = (id: string) => {\n if (id !== requireGuild(scope.guildID)) throw new GuardError('O recurso deve pertencer ao servidor atual.');\n return id;\n };\n const allowed = async (name: string, channelID?: string) => {\n await authorization.requirePermission(name, false, undefined, channelID);\n await authorization.requirePermission(name, true, undefined, channelID);\n };\n const actors = async (): Promise<[ModerationMember, ModerationMember]> => Promise.all([\n transport.member(requireGuild(scope.guildID), scope.authorID),\n transport.member(requireGuild(scope.guildID), transport.botID),\n ]);\n const permissions = async (names: string[] | undefined, channelID?: string) => {\n for (const name of names ?? []) {\n permission(name);\n await allowed(name, channelID);\n }\n };\n const roleHierarchy = async (role: RoleInfo, everyone = false) => {\n if (role.managed !== false || (!everyone && role.id === scope.guildID)) {\n throw new GuardError('Cargos gerenciados e @everyone não podem ser alterados por esta operação.');\n }\n if (everyone && role.id === scope.guildID) return;\n const [author, bot] = await actors();\n const target = { id: role.id, owner: false, rank: role.position, topRoleID: role.id, permissions: 0n };\n if ((!author.owner && !isAbove(author, target)) || !isAbove(bot, target)) {\n throw new GuardError('O cargo deve estar abaixo dos cargos do autor e do bot.');\n }\n };\n const memberHierarchy = async (id: string) => {\n const [author, bot] = await actors();\n const target = await transport.member(requireGuild(scope.guildID), id);\n if (target.owner || (id !== author.id && !author.owner && !isAbove(author, target))\n || (id !== bot.id && !isAbove(bot, target))) {\n throw new GuardError('O membro deve estar abaixo dos cargos do autor e do bot.');\n }\n };\n const role = async (guildID: string, query: string) => {\n guild(guildID);\n await allowed('ManageRoles');\n const target = await source.roles.resolve(guildID, query);\n await roleHierarchy(target);\n return target;\n };\n const channel = async (id: string, flag = 'ManageChannels') => {\n requireGuild(scope.guildID);\n const target = await source.channels.get(id);\n guild(target.guildID ?? '');\n await allowed(flag, id);\n return target;\n };\n const parent = async (id: string) => {\n const target = await channel(id);\n if (target.type !== 4) throw new GuardError('O canal pai deve ser uma categoria.');\n };\n const webhook = async (id: string) => {\n requireGuild(scope.guildID);\n const target = await source.webhooks.fetch(id);\n guild(target.guildID);\n await channel(target.channelID, 'ManageWebhooks');\n };\n const expressions = async (guildID: string) => {\n guild(guildID);\n await allowed('ManageExpressions');\n };\n return { users: source.users, messages: source.messages, collectors: source.collectors,\n threads: source.threads, invites: source.invites, gateway: source.gateway,\n instance: source.instance, self: source.self, cache: source.cache, expressions: {\n emoji: source.expressions.emoji.bind(source.expressions), emojis: source.expressions.emojis.bind(source.expressions),\n sticker: source.expressions.sticker.bind(source.expressions), stickers: source.expressions.stickers.bind(source.expressions),\n async createEmoji(...args) {\n await expressions(args[0]);\n return source.expressions.createEmoji(...args);\n },\n async editEmoji(...args) {\n await expressions(args[0]);\n return source.expressions.editEmoji(...args);\n },\n async deleteEmoji(...args) {\n await expressions(args[0]);\n return source.expressions.deleteEmoji(...args);\n },\n async createSticker(...args) {\n await expressions(args[0]);\n return source.expressions.createSticker(...args);\n },\n async editSticker(...args) {\n await expressions(args[0]);\n return source.expressions.editSticker(...args);\n },\n async deleteSticker(...args) {\n await expressions(args[0]);\n return source.expressions.deleteSticker(...args);\n },\n async cloneEmoji(...args) {\n await expressions(args[0]);\n return source.expressions.cloneEmoji(...args);\n },\n async cloneSticker(...args) {\n await expressions(args[0]);\n return source.expressions.cloneSticker(...args);\n },\n async createEmojisBulk(guildID, inputs) {\n const batch = emojiBatch(inputs);\n await expressions(guildID);\n return source.expressions.createEmojisBulk(guildID, batch);\n },\n }, roles: {\n resolve: source.roles.resolve.bind(source.roles), list: source.roles.list.bind(source.roles),\n has: source.roles.has.bind(source.roles),\n async add(guildID, userID, query) {\n const target = await role(guildID, query);\n await memberHierarchy(userID);\n await permissionsFromRole(target);\n return source.roles.add(guildID, userID, target.id);\n },\n async remove(guildID, userID, query) {\n const target = await role(guildID, query);\n await memberHierarchy(userID);\n return source.roles.remove(guildID, userID, target.id);\n },\n async create(guildID, input) {\n guild(guildID);\n await allowed('ManageRoles');\n await permissions(input.permissions);\n return source.roles.create(guildID, input);\n },\n async edit(guildID, query, input) {\n const target = await role(guildID, query);\n await permissions(input.permissions);\n return source.roles.edit(guildID, target.id, input);\n },\n async delete(guildID, query, reason) {\n const target = await role(guildID, query);\n return source.roles.delete(guildID, target.id, reason);\n },\n async move(guildID, query, position) {\n const target = await role(guildID, query);\n if (!Number.isSafeInteger(position) || position < 1) throw new GuardError('Posição de cargo deve ser um inteiro maior que zero.');\n await roleHierarchy({ ...target, position });\n return source.roles.move(guildID, target.id, position);\n },\n }, channels: {\n get: source.channels.get.bind(source.channels), list: source.channels.list.bind(source.channels),\n permissionsFor: source.channels.permissionsFor.bind(source.channels),\n async create(guildID, input) {\n guild(guildID);\n if (input.parentID) await parent(input.parentID);\n else await allowed('ManageChannels');\n return source.channels.create(guildID, input);\n },\n async edit(id, input) {\n await channel(id);\n if (input.parentID) await parent(input.parentID);\n return source.channels.edit(id, input);\n },\n async delete(id, reason) { await channel(id); return source.channels.delete(id, reason); },\n async setSlowmode(id, seconds, reason) { await channel(id); return source.channels.setSlowmode(id, seconds, reason); },\n async move(id, position) { await channel(id); return source.channels.move(id, position); },\n async setCategory(id, parentID, reason) {\n await channel(id);\n if (parentID) await parent(parentID);\n return source.channels.setCategory(id, parentID, reason);\n },\n async overwrite(id, targetID, input) {\n await channel(id, 'ManageRoles');\n const roles = await source.roles.list(requireGuild(scope.guildID));\n const targetRole = roles.find(candidate => candidate.id === targetID);\n if (input.type === 'role' || (input.type === undefined && targetRole)) {\n if (!targetRole) throw new GuardError('Cargo não encontrado no servidor atual.');\n await roleHierarchy(targetRole, true);\n } else await memberHierarchy(targetID);\n await permissions(input.allow, id);\n await permissions(input.deny, id);\n return source.channels.overwrite(id, targetID, { ...input, type: targetRole && input.type !== 'member' ? 'role' : 'member' });\n },\n }, webhooks: {\n async fetch(id) {\n requireGuild(scope.guildID);\n const target = await source.webhooks.fetch(id);\n guild(target.guildID);\n await channel(target.channelID, 'ManageWebhooks');\n return target;\n },\n async create(id, name, reason) { await channel(id, 'ManageWebhooks'); return source.webhooks.create(id, name, reason); },\n async list(id) { await channel(id, 'ManageWebhooks'); return source.webhooks.list(id); },\n async send(id, token, input) { await webhook(id); return source.webhooks.send(id, token, input); },\n async edit(id, token, name) { await webhook(id); return source.webhooks.edit(id, token, name); },\n async delete(id, token) { await webhook(id); return source.webhooks.delete(id, token); },\n } };\n\n async function permissionsFromRole(target: RoleInfo) {\n const [author, bot] = await actors();\n const bits = BigInt(target.permissions);\n for (const actor of [author, bot]) {\n if (!hasPermission(actor.permissions, 'Administrator', actor.owner) && (bits & actor.permissions) !== bits) {\n throw new GuardError('O cargo contém permissões que o autor ou o bot não possui.');\n }\n }\n }\n}\n"]}
|
package/dist/testing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC9G,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;KAAG,CAAC,IAAI,MAAM,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAEvF,wBAAgB,aAAa,CAAC,SAAS,GAAE,qBAA0B,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC9G,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;KAAG,CAAC,IAAI,MAAM,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAEvF,wBAAgB,aAAa,CAAC,SAAS,GAAE,qBAA0B,GAAG,SAAS,CAyB9E;AAGD,qBAAa,aAAc,YAAW,SAAS;IAC7C,OAAO,CAAC,eAAe,CAAK;IAC5B,KAAK,SAAS;IACd,IAAI,SAAM;IACV,QAAQ,CAAC,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,CAAM;IAChG,QAAQ,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,gBAAgB,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,sBAAsB,CAAC,EAAE,CAAM;IACvJ,QAAQ,CAAC,OAAO,gCAAuC;IACvD,QAAQ,CAAC,SAAS,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAM;IACnF,UAAU,UAAS;;IAMnB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI;IACpD,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAGlE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3E,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACzE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKlE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;CAI9J;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,OAAO,CAAC,eAAe,CAAM,GAAG,eAAe,CAGtG;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAS;gBAET,GAAG,SAAa;IAK5B,QAAQ,CAAC,GAAG,QAAO,MAAM,CAAc;IAEvC,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;CAOtC;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW,CAAC;IAC5F,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;IACnC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACrF,sFAAsF;IACtF,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAoCnE;AACD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/testing.js
CHANGED
|
@@ -23,6 +23,10 @@ export function mockResources(overrides = {}) {
|
|
|
23
23
|
expressions: resource('expressions'),
|
|
24
24
|
threads: resource('threads'),
|
|
25
25
|
invites: resource('invites'),
|
|
26
|
+
gateway: resource('gateway'),
|
|
27
|
+
instance: resource('instance'),
|
|
28
|
+
self: resource('self'),
|
|
29
|
+
cache: resource('cache'),
|
|
26
30
|
};
|
|
27
31
|
}
|
|
28
32
|
export class MockTransport {
|
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IncomingMessage, ModerationAction, ModerationMember, Payload, Transport } from './contracts.js';\nimport type { Resources } from './ports/resources.js';\nimport { PermissionFlags } from '@fluxerjs/core';\nimport { YuzuhaError } from './errors.js';\nimport type { VoiceModerationOptions } from './domain/moderation.js';\nimport { Yuzuha } from './framework/bot.js';\nimport type { DispatchResult, YuzuhaOptions } from './framework/options.js';\nimport { reportError } from './framework/reporting.js';\nimport type { Command } from './commands/definition.js';\nimport { MemoryStore } from './store.js';\nimport type { Store } from './ports/store.js';\n\n/**\n * Recursos nativos simulados para testes. Áreas não informadas falham ao ser usadas.\n */\nexport type MockResourceOverrides = { [K in keyof Resources]?: Partial<Resources[K]> };\n\nexport function mockResources(overrides: MockResourceOverrides = {}): Resources {\n const resource = <K extends keyof Resources>(area: K): Resources[K] => new Proxy(overrides[area] ?? {}, {\n get(target, property) {\n if (Reflect.has(target, property)) {\n const value = Reflect.get(target, property, target);\n return typeof value === 'function' ? value.bind(target) : value;\n }\n return () => { throw new YuzuhaError('NATIVE_UNAVAILABLE', `Recurso simulado ausente: ${area}.`); };\n },\n }) as Resources[K];\n return {\n users: resource('users'),\n roles: resource('roles'),\n channels: resource('channels'),\n messages: resource('messages'),\n collectors: resource('collectors'),\n webhooks: resource('webhooks'),\n expressions: resource('expressions'),\n threads: resource('threads'),\n invites: resource('invites'),\n };\n}\n\n\nexport class MockTransport implements Transport {\n private messageSequence = 0;\n botID = '999';\n ping = 12;\n readonly messages: { id: string; channelID: string; replyTo?: string; payload: Payload }[] = [];\n readonly actions: ({ guildID: string; action: ModerationAction; targetID: string; reason: string; duration?: number } & VoiceModerationOptions)[] = [];\n readonly members = new Map<string, ModerationMember>();\n readonly reactions: { channelID: string; messageID: string; emoji: string }[] = [];\n failAction = false;\n constructor() {\n this.setMember('100', { id: '1', owner: true, permissions: PermissionFlags.Administrator, rank: 100 });\n this.setMember('100', { id: this.botID, owner: false, permissions: PermissionFlags.Administrator, rank: 90 });\n this.setMember('100', { id: '2', owner: false, permissions: 0n, rank: 1 });\n }\n setMember(guildID: string, member: ModerationMember): void { this.members.set(JSON.stringify([guildID, member.id]), member); }\n async reply(message: IncomingMessage, payload: Payload): Promise<string> {\n const id = await this.send(message.channelID, payload); this.messages.find(item => item.id === id)!.replyTo = message.id; return id;\n }\n async send(channelID: string, payload: Payload): Promise<string> {\n const id = String(++this.messageSequence);\n this.messages.push({ id, channelID, payload: structuredClone(payload) }); return id;\n }\n async edit(channelID: string, messageID: string, payload: Payload): Promise<void> {\n const message = this.messages.find(m => m.id === messageID && m.channelID === channelID);\n if (!message) throw new YuzuhaError('NOT_FOUND', 'Mensagem não encontrada.');\n message.payload = structuredClone(payload);\n }\n async delete(channelID: string, messageID: string): Promise<void> {\n const i = this.messages.findIndex(m => m.id === messageID && m.channelID === channelID);\n if (i < 0) throw new YuzuhaError('NOT_FOUND', 'Mensagem não encontrada.');\n this.messages.splice(i, 1);\n }\n async react(channelID: string, messageID: string, emoji: string): Promise<void> { this.reactions.push({ channelID, messageID, emoji }); }\n async member(guildID: string, userID: string): Promise<ModerationMember> {\n const member = this.members.get(JSON.stringify([guildID, userID]));\n if (!member) throw new YuzuhaError('MEMBER_NOT_FOUND', 'Membro não encontrado.');\n return structuredClone(member);\n }\n async moderate(guildID: string, action: ModerationAction, targetID: string, reason: string, duration?: number, voice?: VoiceModerationOptions): Promise<void> {\n if (this.failAction) throw new YuzuhaError('API_ERROR', 'Falha simulada.');\n this.actions.push({ guildID, action, targetID, reason, duration, ...voice });\n }\n}\nlet sequence = 0;\nexport function mockMessage(content: string, overrides: Partial<IncomingMessage> = {}): IncomingMessage {\n return { id: String(++sequence), content, authorID: '1', authorName: 'Hory', authorBot: false,\n guildID: '100', channelID: '200', mentions: [...content.matchAll(/<@!?(\\d+)>/g)].map(m => m[1]!), ...overrides };\n}\n\nexport class TestClock {\n private time: number;\n\n constructor(now = Date.now()) {\n if (!Number.isSafeInteger(now) || now < 0) throw new YuzuhaError('TEST_CLOCK', 'O relógio exige um instante inteiro não negativo.');\n this.time = now;\n }\n\n readonly now = (): number => this.time;\n\n advance(milliseconds: number): number {\n if (!Number.isSafeInteger(milliseconds) || milliseconds < 0 || !Number.isSafeInteger(this.time + milliseconds)) {\n throw new YuzuhaError('TEST_CLOCK', 'O avanço exige milissegundos inteiros não negativos dentro do intervalo seguro.');\n }\n this.time += milliseconds;\n return this.time;\n }\n}\n\nexport interface TestBotOptions extends Omit<YuzuhaOptions, 'now' | 'transport' | 'resources'> {\n commands?: readonly Command[];\n transport?: MockTransport;\n resources?: MockResourceOverrides;\n message?: Partial<IncomingMessage>;\n now?: number;\n}\n\nexport interface TestBot {\n readonly bot: Yuzuha;\n readonly transport: MockTransport;\n readonly store: Store;\n readonly clock: TestClock;\n readonly messages: MockTransport['messages'];\n readonly errors: unknown[];\n readonly results: DispatchResult[];\n send(content: string, overrides?: Partial<IncomingMessage>): Promise<DispatchResult>;\n /** Advances the clock and awaits one scheduler pass, including scheduled handlers. */\n tick(milliseconds?: number): Promise<void>;\n destroy(): Promise<void>;\n close(): Promise<void>;\n [Symbol.asyncDispose](): Promise<void>;\n}\n\n/** Creates an offline bot with isolated state, captured output and a manually advanced clock. */\nexport function createTestBot(options: TestBotOptions = {}): TestBot {\n const { commands = [], transport = new MockTransport(), resources, message, now,\n onError, ...botOptions } = options;\n const clock = new TestClock(now);\n const store = options.store ?? new MemoryStore();\n const errors: unknown[] = [], results: DispatchResult[] = [];\n const defaults = structuredClone(message ?? {});\n const bot = new Yuzuha({ ...botOptions, transport, resources: mockResources(resources), store,\n now: clock.now, http: options.http ?? false,\n onError: async (error, ctx) => { errors.push(error); await onError?.(error, ctx); },\n });\n try { for (const command of commands) bot.command(command); }\n catch (error) {\n void bot.destroy().catch(failure => reportError(bot.options, failure));\n throw error;\n }\n let messageID = 0;\n let closing = false;\n const destroy = (): Promise<void> => {\n closing = true;\n return bot.destroy();\n };\n return {\n bot, transport, store, clock, messages: transport.messages, errors, results,\n async send(content, overrides) {\n const outcome = await bot.handle(mockMessage(content, { ...defaults, id: String(++messageID), ...overrides }));\n results.push(outcome);\n return outcome;\n },\n async tick(milliseconds = 0) {\n if (closing || bot.signal.aborted) throw new YuzuhaError('BOT_CLOSED', 'O bot está encerrado.');\n clock.advance(milliseconds);\n await bot.scheduler?.tick();\n },\n destroy, close: destroy, [Symbol.asyncDispose]: destroy,\n };\n}\nexport { MockMusicBackend, mockTrack } from './testing/music.js';\n"]}
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IncomingMessage, ModerationAction, ModerationMember, Payload, Transport } from './contracts.js';\nimport type { Resources } from './ports/resources.js';\nimport { PermissionFlags } from '@fluxerjs/core';\nimport { YuzuhaError } from './errors.js';\nimport type { VoiceModerationOptions } from './domain/moderation.js';\nimport { Yuzuha } from './framework/bot.js';\nimport type { DispatchResult, YuzuhaOptions } from './framework/options.js';\nimport { reportError } from './framework/reporting.js';\nimport type { Command } from './commands/definition.js';\nimport { MemoryStore } from './store.js';\nimport type { Store } from './ports/store.js';\n\n/**\n * Recursos nativos simulados para testes. Áreas não informadas falham ao ser usadas.\n */\nexport type MockResourceOverrides = { [K in keyof Resources]?: Partial<Resources[K]> };\n\nexport function mockResources(overrides: MockResourceOverrides = {}): Resources {\n const resource = <K extends keyof Resources>(area: K): Resources[K] => new Proxy(overrides[area] ?? {}, {\n get(target, property) {\n if (Reflect.has(target, property)) {\n const value = Reflect.get(target, property, target);\n return typeof value === 'function' ? value.bind(target) : value;\n }\n return () => { throw new YuzuhaError('NATIVE_UNAVAILABLE', `Recurso simulado ausente: ${area}.`); };\n },\n }) as Resources[K];\n return {\n users: resource('users'),\n roles: resource('roles'),\n channels: resource('channels'),\n messages: resource('messages'),\n collectors: resource('collectors'),\n webhooks: resource('webhooks'),\n expressions: resource('expressions'),\n threads: resource('threads'),\n invites: resource('invites'),\n gateway: resource('gateway'),\n instance: resource('instance'),\n self: resource('self'),\n cache: resource('cache'),\n };\n}\n\n\nexport class MockTransport implements Transport {\n private messageSequence = 0;\n botID = '999';\n ping = 12;\n readonly messages: { id: string; channelID: string; replyTo?: string; payload: Payload }[] = [];\n readonly actions: ({ guildID: string; action: ModerationAction; targetID: string; reason: string; duration?: number } & VoiceModerationOptions)[] = [];\n readonly members = new Map<string, ModerationMember>();\n readonly reactions: { channelID: string; messageID: string; emoji: string }[] = [];\n failAction = false;\n constructor() {\n this.setMember('100', { id: '1', owner: true, permissions: PermissionFlags.Administrator, rank: 100 });\n this.setMember('100', { id: this.botID, owner: false, permissions: PermissionFlags.Administrator, rank: 90 });\n this.setMember('100', { id: '2', owner: false, permissions: 0n, rank: 1 });\n }\n setMember(guildID: string, member: ModerationMember): void { this.members.set(JSON.stringify([guildID, member.id]), member); }\n async reply(message: IncomingMessage, payload: Payload): Promise<string> {\n const id = await this.send(message.channelID, payload); this.messages.find(item => item.id === id)!.replyTo = message.id; return id;\n }\n async send(channelID: string, payload: Payload): Promise<string> {\n const id = String(++this.messageSequence);\n this.messages.push({ id, channelID, payload: structuredClone(payload) }); return id;\n }\n async edit(channelID: string, messageID: string, payload: Payload): Promise<void> {\n const message = this.messages.find(m => m.id === messageID && m.channelID === channelID);\n if (!message) throw new YuzuhaError('NOT_FOUND', 'Mensagem não encontrada.');\n message.payload = structuredClone(payload);\n }\n async delete(channelID: string, messageID: string): Promise<void> {\n const i = this.messages.findIndex(m => m.id === messageID && m.channelID === channelID);\n if (i < 0) throw new YuzuhaError('NOT_FOUND', 'Mensagem não encontrada.');\n this.messages.splice(i, 1);\n }\n async react(channelID: string, messageID: string, emoji: string): Promise<void> { this.reactions.push({ channelID, messageID, emoji }); }\n async member(guildID: string, userID: string): Promise<ModerationMember> {\n const member = this.members.get(JSON.stringify([guildID, userID]));\n if (!member) throw new YuzuhaError('MEMBER_NOT_FOUND', 'Membro não encontrado.');\n return structuredClone(member);\n }\n async moderate(guildID: string, action: ModerationAction, targetID: string, reason: string, duration?: number, voice?: VoiceModerationOptions): Promise<void> {\n if (this.failAction) throw new YuzuhaError('API_ERROR', 'Falha simulada.');\n this.actions.push({ guildID, action, targetID, reason, duration, ...voice });\n }\n}\nlet sequence = 0;\nexport function mockMessage(content: string, overrides: Partial<IncomingMessage> = {}): IncomingMessage {\n return { id: String(++sequence), content, authorID: '1', authorName: 'Hory', authorBot: false,\n guildID: '100', channelID: '200', mentions: [...content.matchAll(/<@!?(\\d+)>/g)].map(m => m[1]!), ...overrides };\n}\n\nexport class TestClock {\n private time: number;\n\n constructor(now = Date.now()) {\n if (!Number.isSafeInteger(now) || now < 0) throw new YuzuhaError('TEST_CLOCK', 'O relógio exige um instante inteiro não negativo.');\n this.time = now;\n }\n\n readonly now = (): number => this.time;\n\n advance(milliseconds: number): number {\n if (!Number.isSafeInteger(milliseconds) || milliseconds < 0 || !Number.isSafeInteger(this.time + milliseconds)) {\n throw new YuzuhaError('TEST_CLOCK', 'O avanço exige milissegundos inteiros não negativos dentro do intervalo seguro.');\n }\n this.time += milliseconds;\n return this.time;\n }\n}\n\nexport interface TestBotOptions extends Omit<YuzuhaOptions, 'now' | 'transport' | 'resources'> {\n commands?: readonly Command[];\n transport?: MockTransport;\n resources?: MockResourceOverrides;\n message?: Partial<IncomingMessage>;\n now?: number;\n}\n\nexport interface TestBot {\n readonly bot: Yuzuha;\n readonly transport: MockTransport;\n readonly store: Store;\n readonly clock: TestClock;\n readonly messages: MockTransport['messages'];\n readonly errors: unknown[];\n readonly results: DispatchResult[];\n send(content: string, overrides?: Partial<IncomingMessage>): Promise<DispatchResult>;\n /** Advances the clock and awaits one scheduler pass, including scheduled handlers. */\n tick(milliseconds?: number): Promise<void>;\n destroy(): Promise<void>;\n close(): Promise<void>;\n [Symbol.asyncDispose](): Promise<void>;\n}\n\n/** Creates an offline bot with isolated state, captured output and a manually advanced clock. */\nexport function createTestBot(options: TestBotOptions = {}): TestBot {\n const { commands = [], transport = new MockTransport(), resources, message, now,\n onError, ...botOptions } = options;\n const clock = new TestClock(now);\n const store = options.store ?? new MemoryStore();\n const errors: unknown[] = [], results: DispatchResult[] = [];\n const defaults = structuredClone(message ?? {});\n const bot = new Yuzuha({ ...botOptions, transport, resources: mockResources(resources), store,\n now: clock.now, http: options.http ?? false,\n onError: async (error, ctx) => { errors.push(error); await onError?.(error, ctx); },\n });\n try { for (const command of commands) bot.command(command); }\n catch (error) {\n void bot.destroy().catch(failure => reportError(bot.options, failure));\n throw error;\n }\n let messageID = 0;\n let closing = false;\n const destroy = (): Promise<void> => {\n closing = true;\n return bot.destroy();\n };\n return {\n bot, transport, store, clock, messages: transport.messages, errors, results,\n async send(content, overrides) {\n const outcome = await bot.handle(mockMessage(content, { ...defaults, id: String(++messageID), ...overrides }));\n results.push(outcome);\n return outcome;\n },\n async tick(milliseconds = 0) {\n if (closing || bot.signal.aborted) throw new YuzuhaError('BOT_CLOSED', 'O bot está encerrado.');\n clock.advance(milliseconds);\n await bot.scheduler?.tick();\n },\n destroy, close: destroy, [Symbol.asyncDispose]: destroy,\n };\n}\nexport { MockMusicBackend, mockTrack } from './testing/music.js';\n"]}
|
package/docs/FUNCTION-GAPS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Funções que ainda faltam
|
|
2
2
|
|
|
3
|
-
Inventário da versão **0.2.
|
|
3
|
+
Inventário da versão **0.2.1**, comparando o registro executável do Yuzuha com os
|
|
4
4
|
tipos públicos de **@fluxerjs/core 3.3.0**, fixado no lockfile. O inventário tem
|
|
5
5
|
**336 funções canônicas**; aliases não aumentam esse número.
|
|
6
6
|
|
|
@@ -10,10 +10,15 @@ ideias de API: **não estão registrados e não podem ser usados em scripts**.
|
|
|
10
10
|
|
|
11
11
|
## Cobertura atual
|
|
12
12
|
|
|
13
|
-
O function mode tem 336 funções canônicas
|
|
13
|
+
O function mode tem 336 funções canônicas. O SDK continua
|
|
14
14
|
disponível em JS/TS, com recursos injetáveis e testáveis offline.
|
|
15
15
|
Esta tabela é um mapa dos recursos entregues pelo Yuzuha e das APIs nativas
|
|
16
|
-
disponíveis para escrever novos comandos.
|
|
16
|
+
disponíveis para escrever novos comandos. Desde a 0.2.1, `ctx.resources` inclui
|
|
17
|
+
as áreas `gateway` (pedidos brutos), `instance` (descoberta e aplicação), `self`
|
|
18
|
+
(usuário autenticado com verificação sudo) e `cache` (estatísticas e limpezas);
|
|
19
|
+
`collectors` ganhou streams `AsyncIterable` e `messages` ganhou `bulkFetch` e
|
|
20
|
+
`searchAll`. Os subpaths `yuzuha/sdk/*` espelham `@fluxerjs/core/*` e os pacotes
|
|
21
|
+
satélites do monorepo.
|
|
17
22
|
|
|
18
23
|
| Área | Funções | Cobertura |
|
|
19
24
|
|---|---|---|
|