UNPKG

oceanic.js

Version:

A NodeJS library for interfacing with Discord.

272 lines 18.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); /** @module ClientApplication */ const Base_1 = tslib_1.__importDefault(require("./Base")); const TestEntitlement_1 = tslib_1.__importDefault(require("./TestEntitlement")); const Entitlement_1 = tslib_1.__importDefault(require("./Entitlement")); const BaseEntitlement_1 = tslib_1.__importDefault(require("./BaseEntitlement")); const TypedCollection_1 = tslib_1.__importDefault(require("../util/TypedCollection")); /** A representation of the authorized client's application (typically received via gateway). */ class ClientApplication extends Base_1.default { /** The entitlements for this application. This will almost certainly be empty unless you fetch entitlements, or recieve new/updated entitlements. */ entitlements; /** This application's [flags](https://discord.com/developers/docs/resources/application#application-object-application-flags). */ flags; constructor(data, client) { super(data.id, client); this.entitlements = new TypedCollection_1.default(BaseEntitlement_1.default, client, Infinity, { construct: (entitlement) => { if ("subscription_id" in entitlement && entitlement.subscription_id) { return new Entitlement_1.default(entitlement, client); } return new TestEntitlement_1.default(entitlement, client); } }); this.flags = data.flags; this.update(data); } update(data) { if (data.flags !== undefined) { this.flags = data.flags; } } /** * Overwrite all existing global application commands. * @param options The commands. */ async bulkEditGlobalCommands(options) { return this.client.rest.applications.bulkEditGlobalCommands(this.id, options); } /** * Overwrite all existing application commands in a guild. * @param guildID The ID of the guild. * @param options The commands. */ async bulkEditGuildCommands(guildID, options) { return this.client.rest.applications.bulkEditGuildCommands(this.id, guildID, options); } /** * Mark an entitlement as consumed. * @param entitlementID The ID of the entitlement to consume. */ async consumeEntitlement(entitlementID) { return this.client.rest.applications.consumeEntitlement(this.id, entitlementID); } /** * Create an emoji for this application. * @param options The options for creating the emoji. * @caching This method **does not** cache its result. */ async createEmoji(options) { return this.client.rest.applications.createEmoji(this.id, options); } /** * Create a global application command. * @param options The options for creating the command. */ async createGlobalCommand(options) { return this.client.rest.applications.createGlobalCommand(this.id, options); } /** * Create a guild application command. * @param guildID The ID of the guild. * @param options The options for creating the command. */ async createGuildCommand(guildID, options) { return this.client.rest.applications.createGuildCommand(this.id, guildID, options); } /** * Create a test entitlement. * @param options The options for creating the test entitlement. */ async createTestEntitlement(options) { return this.client.rest.applications.createTestEntitlement(this.id, options); } /** * Delete an emoji for this application. * @param emojiID The ID of the emoji to be deleted. * @caching This method **does not** cache its result. */ async deleteEmoji(emojiID) { return this.client.rest.applications.deleteEmoji(this.id, emojiID); } /** * Delete a global application command. * @param commandID The ID of the command. */ async deleteGlobalCommand(commandID) { return this.client.rest.applications.deleteGlobalCommand(this.id, commandID); } /** * Delete a guild application command. * @param guildID The ID of the guild. * @param commandID The ID of the command. */ async deleteGuildCommand(guildID, commandID) { return this.client.rest.applications.deleteGuildCommand(this.id, guildID, commandID); } /** * Delete a test entitlement. * @param entitlementID The ID of the entitlement to delete. */ async deleteTestEntitlement(entitlementID) { return this.client.rest.applications.deleteTestEntitlement(this.id, entitlementID); } /** * Edit this application. * @param options The options for editing the application. */ async edit(options) { return this.client.rest.applications.editCurrent(options); } /** * Edit an existing emoji for this application. * @param emojiID The ID of the emoji to be edited. * @param options The options for editing the emoji. * @caching This method **does not** cache its result. */ async editEmoji(emojiID, options) { return this.client.rest.applications.editEmoji(this.id, emojiID, options); } /** * Edit a global application command. * @param commandID The ID of the command. * @param options The options for editing the command. */ async editGlobalCommand(commandID, options) { return this.client.rest.applications.editGlobalCommand(this.id, commandID, options); } /** * Edit a guild application command. * @param guildID The ID of the guild. * @param commandID The ID of the command. * @param options The options for editing the command. */ async editGuildCommand(guildID, commandID, options) { return this.client.rest.applications.editGuildCommand(this.id, guildID, commandID, options); } /** * Edit a guild application command's permissions. This requires a bearer token with the `applications.commands.permissions.update` scope. * @param guildID The ID of the guild. * @param commandID The ID of the command. * @param options The options for editing the permissions. */ async editGuildCommandPermissions(guildID, commandID, options) { return this.client.rest.applications.editGuildCommandPermissions(this.id, guildID, commandID, options); } /** * Get an activity instance. * @param instanceID The ID of the instance. */ async getActivityInstance(instanceID) { return this.client.rest.applications.getActivityInstance(this.id, instanceID); } /** * Get an emoji for this application. * @param emojiID The ID of the emoji to get. */ async getEmoji(emojiID) { return this.client.rest.applications.getEmoji(this.id, emojiID); } /** * Get the emojis for this application. */ async getEmojis() { return this.client.rest.applications.getEmojis(this.id); } /** * Get the entitlements for this application. * @param options The options for getting the entitlements. */ async getEntitlements(options = {}) { return this.client.rest.applications.getEntitlements(this.id, options); } /** * Get a global application command. * @param commandID The ID of the command. * @param options The options for getting the command. */ async getGlobalCommand(commandID, options) { return this.client.rest.applications.getGlobalCommand(this.id, commandID, options); } /** * Get this application's global commands. * @param options The options for getting the command. */ async getGlobalCommands(options) { return this.client.rest.applications.getGlobalCommands(this.id, options); } /** * Get a global application command. * @param guildID The ID of the guild. * @param commandID The ID of the command. * @param options The options for getting the command. */ async getGuildCommand(guildID, commandID, options) { return this.client.rest.applications.getGuildCommand(this.id, guildID, commandID, options); } /** * Get this application's commands in a specific guild. * @param guildID The ID of the guild. * @param options The options for getting the command. */ async getGuildCommands(guildID, options) { return this.client.rest.applications.getGuildCommands(this.id, guildID, options); } /** * Get a command's permissions in a guild. * @param guildID The ID of the guild. * @param commandID The ID of the command. */ async getGuildPermission(guildID, commandID) { return this.client.rest.applications.getGuildPermission(this.id, guildID, commandID); } /** * Get the permissions for all commands in a guild. * @param guildID The ID of the guild. */ async getGuildPermissions(guildID) { return this.client.rest.applications.getGuildPermissions(this.id, guildID); } /** * Get this application's role connection metadata records. */ async getRoleConnectionsMetadata() { return this.client.rest.oauth.getRoleConnectionsMetadata(this.id); } /** * Get the SKUs for this application. */ async getSKUs() { return this.client.rest.applications.getSKUs(this.id); } /** * Get the authenticated user's role connection object for this application. This requires the `role_connections.write` scope. */ async getUserRoleConnection() { return this.client.rest.oauth.getUserRoleConnection(this.id); } toJSON() { return { ...super.toJSON(), flags: this.flags }; } /** * Update this application's role connections metadata. * @param metadata The metadata records. */ async updateRoleConnectionsMetadata(metadata) { return this.client.rest.oauth.updateRoleConnectionsMetadata(this.id, metadata); } /** * Update the authenticated user's role connection object for an application. This requires the `role_connections.write` scope. * @param data The metadata to update. */ async updateUserRoleConnection(data) { return this.client.rest.oauth.updateUserRoleConnection(this.id, data); } } exports.default = ClientApplication; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50QXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc3RydWN0dXJlcy9DbGllbnRBcHBsaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnQ0FBZ0M7QUFDaEMsMERBQTBCO0FBRTFCLGdGQUFnRDtBQUNoRCx3RUFBd0M7QUFDeEMsZ0ZBQWdEO0FBNkJoRCxzRkFBc0Q7QUFFdEQsZ0dBQWdHO0FBQ2hHLE1BQXFCLGlCQUFrQixTQUFRLGNBQUk7SUFDL0MscUpBQXFKO0lBQ3JKLFlBQVksQ0FBc0Y7SUFDbEcsa0lBQWtJO0lBQ2xJLEtBQUssQ0FBUztJQUNkLFlBQVksSUFBMEIsRUFBRSxNQUFjO1FBQ2xELEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBZSxDQUFDLHlCQUFlLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtZQUN2RSxTQUFTLEVBQUUsQ0FBQyxXQUFXLEVBQW1CLEVBQUU7Z0JBQ3hDLElBQUksaUJBQWlCLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDbEUsT0FBTyxJQUFJLHFCQUFXLENBQUMsV0FBNkIsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDbEUsQ0FBQztnQkFFRCxPQUFPLElBQUkseUJBQWUsQ0FBQyxXQUFpQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzFFLENBQUM7U0FDSixDQUF3RixDQUFDO1FBQzFGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFa0IsTUFBTSxDQUFDLElBQW1DO1FBQ3pELElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FB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