oceanic.js
Version:
A NodeJS library for interfacing with Discord.
272 lines • 18.5 kB
JavaScript
"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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