gubo-data-types 0.1.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.
Files changed (51) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +72 -0
  3. package/dist/guild.d.ts +17 -0
  4. package/dist/guild.d.ts.map +1 -0
  5. package/dist/guild.js +3 -0
  6. package/dist/guild.js.map +1 -0
  7. package/dist/index.d.ts +8 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +24 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/plugins/economy.d.ts +78 -0
  12. package/dist/plugins/economy.d.ts.map +1 -0
  13. package/dist/plugins/economy.js +26 -0
  14. package/dist/plugins/economy.js.map +1 -0
  15. package/dist/plugins/goodbye.d.ts +12 -0
  16. package/dist/plugins/goodbye.d.ts.map +1 -0
  17. package/dist/plugins/goodbye.js +14 -0
  18. package/dist/plugins/goodbye.js.map +1 -0
  19. package/dist/plugins/moderation.d.ts +27 -0
  20. package/dist/plugins/moderation.d.ts.map +1 -0
  21. package/dist/plugins/moderation.js +27 -0
  22. package/dist/plugins/moderation.js.map +1 -0
  23. package/dist/plugins/reactionRoles.d.ts +21 -0
  24. package/dist/plugins/reactionRoles.d.ts.map +1 -0
  25. package/dist/plugins/reactionRoles.js +11 -0
  26. package/dist/plugins/reactionRoles.js.map +1 -0
  27. package/dist/plugins/tickets.d.ts +25 -0
  28. package/dist/plugins/tickets.d.ts.map +1 -0
  29. package/dist/plugins/tickets.js +22 -0
  30. package/dist/plugins/tickets.js.map +1 -0
  31. package/dist/plugins/welcome.d.ts +17 -0
  32. package/dist/plugins/welcome.d.ts.map +1 -0
  33. package/dist/plugins/welcome.js +19 -0
  34. package/dist/plugins/welcome.js.map +1 -0
  35. package/package.json +50 -0
  36. package/src/guild.js.map +1 -0
  37. package/src/guild.ts +18 -0
  38. package/src/index.js.map +1 -0
  39. package/src/index.ts +7 -0
  40. package/src/plugins/economy.js.map +1 -0
  41. package/src/plugins/economy.ts +106 -0
  42. package/src/plugins/goodbye.js.map +1 -0
  43. package/src/plugins/goodbye.ts +21 -0
  44. package/src/plugins/moderation.js.map +1 -0
  45. package/src/plugins/moderation.ts +50 -0
  46. package/src/plugins/reactionRoles.js.map +1 -0
  47. package/src/plugins/reactionRoles.ts +26 -0
  48. package/src/plugins/tickets.js.map +1 -0
  49. package/src/plugins/tickets.ts +43 -0
  50. package/src/plugins/welcome.js.map +1 -0
  51. package/src/plugins/welcome.ts +31 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 GUBO Data Types
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,72 @@
1
+ # gubo-data-types
2
+
3
+ Shared type definitions and default configurations for GUBO Discord Bot.
4
+
5
+ Este paquete contiene todas las definiciones de tipos TypeScript utilizadas por el bot GUBO, incluyendo configuraciones para plugins de moderaci�n, tickets, econom�a y m�s.
6
+
7
+ ## Instalaci�n
8
+
9
+ ```bash
10
+ npm install gubo-data-types
11
+ ```
12
+
13
+ ## Uso
14
+
15
+ ```typescript
16
+ import {
17
+ GuildConfig,
18
+ WelcomeConfig,
19
+ GoodbyeConfig,
20
+ ModerationConfig,
21
+ TicketsConfig,
22
+ EconomyConfig,
23
+ ReactionRolesConfig
24
+ } from 'gubo-data-types';
25
+
26
+ // Usar los tipos en tu proyecto
27
+ const guildConfig: GuildConfig = {
28
+ id: "123456789",
29
+ name: "Mi Servidor",
30
+ plugins: {
31
+ welcome: {
32
+ enabled: true,
33
+ channel: "welcome-channel-id",
34
+ message: "�Bienvenido {user}!"
35
+ }
36
+ }
37
+ };
38
+ ```
39
+
40
+ ## Tipos disponibles
41
+
42
+ ### GuildConfig
43
+ Configuraci�n principal del servidor con todos los plugins habilitados.
44
+
45
+ ### Plugin Configs
46
+ - `WelcomeConfig`: Configuraci�n del plugin de bienvenida
47
+ - `GoodbyeConfig`: Configuraci�n del plugin de despedida
48
+ - `ModerationConfig`: Configuraci�n del plugin de moderaci�n
49
+ - `TicketsConfig`: Configuraci�n del sistema de tickets
50
+ - `EconomyConfig`: Configuraci�n del sistema de econom�a
51
+ - `ReactionRolesConfig`: Configuraci�n de roles por reacci�n
52
+
53
+ ## Caracter�sticas
54
+
55
+ - ? Sin dependencias externas
56
+ - ? Tipos TypeScript completos
57
+ - ? Valores por defecto incluidos
58
+ - ? Compatible con cualquier bot de Discord
59
+ - ? Documentaci�n JSDoc incluida
60
+
61
+ ## Compatibilidad
62
+
63
+ - Node.js 18+
64
+ - TypeScript 4.5+
65
+
66
+ ## Licencia
67
+
68
+ MIT
69
+
70
+ ## Contribuir
71
+
72
+ Este paquete es parte del proyecto [GUBO Discord Bot](https://github.com/zeekee/DiscordBot).
@@ -0,0 +1,17 @@
1
+ export type PlanTier = 'free' | 'premium';
2
+ export interface Plan {
3
+ tier: PlanTier;
4
+ expiresAt?: any | null;
5
+ isTrial?: boolean | null;
6
+ }
7
+ export interface GuildDoc {
8
+ name?: string;
9
+ iconUrl?: string | null;
10
+ ownerId?: string | null;
11
+ plan: Plan;
12
+ configVersion: number;
13
+ createdAt?: any;
14
+ updatedAt?: any;
15
+ locale?: string | null;
16
+ }
17
+ //# sourceMappingURL=guild.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guild.d.ts","sourceRoot":"","sources":["../src/guild.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1C,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,IAAI,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB"}
package/dist/guild.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=guild.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guild.js","sourceRoot":"","sources":["../src/guild.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export * from './plugins/welcome';
2
+ export * from './plugins/goodbye';
3
+ export * from './plugins/moderation';
4
+ export * from './plugins/tickets';
5
+ export * from './plugins/economy';
6
+ export * from './plugins/reactionRoles';
7
+ export * from './guild';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./plugins/welcome"), exports);
18
+ __exportStar(require("./plugins/goodbye"), exports);
19
+ __exportStar(require("./plugins/moderation"), exports);
20
+ __exportStar(require("./plugins/tickets"), exports);
21
+ __exportStar(require("./plugins/economy"), exports);
22
+ __exportStar(require("./plugins/reactionRoles"), exports);
23
+ __exportStar(require("./guild"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,oDAAkC;AAClC,uDAAqC;AACrC,oDAAkC;AAClC,oDAAkC;AAClC,0DAAwC;AACxC,0CAAwB"}
@@ -0,0 +1,78 @@
1
+ export type ShopItemType = 'role' | 'tempRole' | 'digital' | 'custom';
2
+ export interface ShopItem {
3
+ id: string;
4
+ name: string;
5
+ price: number;
6
+ description?: string | null;
7
+ roleRewardId?: string | null;
8
+ stock?: number | null;
9
+ enabled?: boolean;
10
+ type?: ShopItemType;
11
+ imageUrl?: string | null;
12
+ durationHours?: number | null;
13
+ category?: string | null;
14
+ buttonLabel?: string | null;
15
+ sort?: number | null;
16
+ }
17
+ export type DonationPlatformType = 'stripe' | 'paypal' | 'mercadopago' | 'link';
18
+ export interface DonationPlatform {
19
+ key: string;
20
+ type: DonationPlatformType;
21
+ displayName: string;
22
+ enabled?: boolean;
23
+ currency?: string | null;
24
+ linkUrl?: string | null;
25
+ stripeSecretKey?: string | null;
26
+ paypalClientId?: string | null;
27
+ paypalClientSecret?: string | null;
28
+ mpAccessToken?: string | null;
29
+ successUrl?: string | null;
30
+ cancelUrl?: string | null;
31
+ }
32
+ export interface DonationConfig {
33
+ enabled: boolean;
34
+ exchangeRates: Record<string, number>;
35
+ platforms: DonationPlatform[];
36
+ showButtonsInTickets?: boolean;
37
+ ticketCategoryId?: string | null;
38
+ openMessage?: string | null;
39
+ transactionLogChannelId?: string | null;
40
+ }
41
+ export interface EconomyPluginConfig {
42
+ enabled: boolean;
43
+ currencyName?: string;
44
+ shopEnabled?: boolean;
45
+ shopItems?: ShopItem[];
46
+ shopManagerRoleIds?: string[];
47
+ shopUseEmbeds?: boolean;
48
+ transactionLogChannelId?: string | null;
49
+ priorityRoleIds?: string[];
50
+ donation?: DonationConfig;
51
+ updatedAt?: any | null;
52
+ updatedBy?: string | null;
53
+ version?: number;
54
+ }
55
+ export interface EconomyDataDoc {
56
+ guildId: string;
57
+ userId: string;
58
+ balance: number;
59
+ totalEarned: number;
60
+ totalSpent: number;
61
+ createdAt: any;
62
+ updatedAt: any;
63
+ }
64
+ export interface RoleGrantDoc {
65
+ id?: string;
66
+ guildId: string;
67
+ userId: string;
68
+ roleId: string;
69
+ grantedAt: any;
70
+ expiresAt?: any | null;
71
+ reason?: string | null;
72
+ grantedBy?: string | null;
73
+ revoked?: boolean;
74
+ revokedAt?: any | null;
75
+ shopItemId?: string | null;
76
+ }
77
+ export declare const DEFAULT_ECONOMY: EconomyPluginConfig;
78
+ //# sourceMappingURL=economy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"economy.d.ts","sourceRoot":"","sources":["../../src/plugins/economy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_ECONOMY = void 0;
4
+ exports.DEFAULT_ECONOMY = {
5
+ enabled: false,
6
+ currencyName: 'Coins',
7
+ shopEnabled: false,
8
+ shopItems: [],
9
+ shopManagerRoleIds: [],
10
+ shopUseEmbeds: true,
11
+ transactionLogChannelId: null,
12
+ priorityRoleIds: [],
13
+ donation: {
14
+ enabled: false,
15
+ exchangeRates: { USD: 10 },
16
+ platforms: [],
17
+ showButtonsInTickets: true,
18
+ ticketCategoryId: null,
19
+ openMessage: 'Gracias por tu apoyo. Aquí tienes las opciones para realizar tu donación:',
20
+ transactionLogChannelId: null
21
+ },
22
+ updatedAt: null,
23
+ updatedBy: null,
24
+ version: 0
25
+ };
26
+ //# sourceMappingURL=economy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"economy.js","sourceRoot":"","sources":["../../src/plugins/economy.ts"],"names":[],"mappings":";;;AAoFa,QAAA,eAAe,GAAwB;IAClD,OAAO,EAAE,KAAK;IACd,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,EAAE;IACb,kBAAkB,EAAE,EAAE;IACtB,aAAa,EAAE,IAAI;IACnB,uBAAuB,EAAE,IAAI;IAC7B,eAAe,EAAE,EAAE;IACnB,QAAQ,EAAE;QACR,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QAC1B,SAAS,EAAE,EAAE;QACb,oBAAoB,EAAE,IAAI;QAC1B,gBAAgB,EAAE,IAAI;QACtB,WAAW,EAAE,2EAA2E;QACxF,uBAAuB,EAAE,IAAI;KAC9B;IACD,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC;CACX,CAAC"}
@@ -0,0 +1,12 @@
1
+ export interface GoodbyePluginConfig {
2
+ enabled: boolean;
3
+ channelId?: string | null;
4
+ message?: string;
5
+ useEmbed?: boolean;
6
+ imageUrl?: string | null;
7
+ updatedAt?: any | null;
8
+ updatedBy?: string | null;
9
+ version?: number;
10
+ }
11
+ export declare const DEFAULT_GOODBYE: GoodbyePluginConfig;
12
+ //# sourceMappingURL=goodbye.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goodbye.d.ts","sourceRoot":"","sources":["../../src/plugins/goodbye.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,EAAE,mBAS7B,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_GOODBYE = void 0;
4
+ exports.DEFAULT_GOODBYE = {
5
+ enabled: false,
6
+ channelId: null,
7
+ message: 'Goodbye {user}, thanks for being with us in {guild}.',
8
+ useEmbed: false,
9
+ imageUrl: null,
10
+ updatedAt: null,
11
+ updatedBy: null,
12
+ version: 0
13
+ };
14
+ //# sourceMappingURL=goodbye.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goodbye.js","sourceRoot":"","sources":["../../src/plugins/goodbye.ts"],"names":[],"mappings":";;;AAWa,QAAA,eAAe,GAAwB;IAClD,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,sDAAsD;IAC/D,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC;CACX,CAAC"}
@@ -0,0 +1,27 @@
1
+ export interface ModerationAutoModFilters {
2
+ spam?: boolean;
3
+ caps?: boolean;
4
+ links?: boolean;
5
+ invites?: boolean;
6
+ badWordsEnabled?: boolean;
7
+ badWords?: string[];
8
+ [key: string]: any;
9
+ }
10
+ export interface ModerationPluginConfig {
11
+ enabled: boolean;
12
+ logChannelId?: string | null;
13
+ modRoleIds?: string[];
14
+ banFreeMaxDeleteDays?: number;
15
+ banPremiumMaxDeleteDays?: number;
16
+ autoModEnabled?: boolean;
17
+ autoModFilters?: ModerationAutoModFilters;
18
+ maxWarnings?: number;
19
+ autoActionOnMaxWarnings?: 'kick' | 'ban' | 'mute' | 'none';
20
+ autoActionMuteDurationMin?: number;
21
+ autoActionBanDurationDays?: number;
22
+ updatedAt?: any | null;
23
+ updatedBy?: string | null;
24
+ version?: number;
25
+ }
26
+ export declare const DEFAULT_MODERATION: ModerationPluginConfig;
27
+ //# sourceMappingURL=moderation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moderation.d.ts","sourceRoot":"","sources":["../../src/plugins/moderation.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3D,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,EAAE,sBAsBhC,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_MODERATION = void 0;
4
+ exports.DEFAULT_MODERATION = {
5
+ enabled: false,
6
+ logChannelId: null,
7
+ modRoleIds: [],
8
+ banFreeMaxDeleteDays: 1,
9
+ banPremiumMaxDeleteDays: 7,
10
+ autoModEnabled: false,
11
+ autoModFilters: {
12
+ spam: false,
13
+ caps: false,
14
+ links: false,
15
+ invites: false,
16
+ badWordsEnabled: false,
17
+ badWords: []
18
+ },
19
+ maxWarnings: 3,
20
+ autoActionOnMaxWarnings: 'none',
21
+ autoActionMuteDurationMin: 24 * 60,
22
+ autoActionBanDurationDays: 0,
23
+ updatedAt: null,
24
+ updatedBy: null,
25
+ version: 0
26
+ };
27
+ //# sourceMappingURL=moderation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moderation.js","sourceRoot":"","sources":["../../src/plugins/moderation.ts"],"names":[],"mappings":";;;AA2Ba,QAAA,kBAAkB,GAA2B;IACxD,OAAO,EAAE,KAAK;IACd,YAAY,EAAE,IAAI;IAClB,UAAU,EAAE,EAAE;IACd,oBAAoB,EAAE,CAAC;IACvB,uBAAuB,EAAE,CAAC;IAC1B,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE;QACd,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,KAAK;QACtB,QAAQ,EAAE,EAAE;KACb;IACD,WAAW,EAAE,CAAC;IACd,uBAAuB,EAAE,MAAM;IAC/B,yBAAyB,EAAE,EAAE,GAAG,EAAE;IAClC,yBAAyB,EAAE,CAAC;IAC5B,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC;CACX,CAAC"}
@@ -0,0 +1,21 @@
1
+ export interface ReactionRoleEntry {
2
+ emoji: string;
3
+ roleId: string;
4
+ removeOnUnreact?: boolean;
5
+ }
6
+ export interface ReactionRolePanel {
7
+ id: string;
8
+ channelId: string;
9
+ messageId?: string | null;
10
+ entries: ReactionRoleEntry[];
11
+ allowMulti?: boolean;
12
+ }
13
+ export interface ReactionRolesPluginConfig {
14
+ enabled: boolean;
15
+ panels: ReactionRolePanel[];
16
+ updatedAt?: any | null;
17
+ updatedBy?: string | null;
18
+ version?: number;
19
+ }
20
+ export declare const DEFAULT_REACTION_ROLES: ReactionRolesPluginConfig;
21
+ //# sourceMappingURL=reactionRoles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactionRoles.d.ts","sourceRoot":"","sources":["../../src/plugins/reactionRoles.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AACD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AACD,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,eAAO,MAAM,sBAAsB,EAAE,yBAMpC,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_REACTION_ROLES = void 0;
4
+ exports.DEFAULT_REACTION_ROLES = {
5
+ enabled: false,
6
+ panels: [],
7
+ updatedAt: null,
8
+ updatedBy: null,
9
+ version: 0
10
+ };
11
+ //# sourceMappingURL=reactionRoles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactionRoles.js","sourceRoot":"","sources":["../../src/plugins/reactionRoles.ts"],"names":[],"mappings":";;;AAmBa,QAAA,sBAAsB,GAA8B;IAC/D,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,EAAE;IACV,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC;CACX,CAAC"}
@@ -0,0 +1,25 @@
1
+ export interface TicketCategoryOption {
2
+ key: string;
3
+ label: string;
4
+ categoryId?: string | null;
5
+ }
6
+ export interface TicketsPluginConfig {
7
+ enabled: boolean;
8
+ maxOpenTicketsPerUser?: number;
9
+ messageOnOpen?: string | null;
10
+ namingScheme?: 'ticket-username' | 'ticket-id';
11
+ panelMessage?: string | null;
12
+ panelButtonLabel?: string | null;
13
+ panelCreatorsMode?: 'admin' | 'supportRoles';
14
+ categoryId?: string | null;
15
+ supportRoleIds?: string[];
16
+ logChannelId?: string | null;
17
+ transcriptsEnabled?: boolean;
18
+ autoAssignMode?: 'ping' | 'none';
19
+ categories?: TicketCategoryOption[];
20
+ updatedAt?: any | null;
21
+ updatedBy?: string | null;
22
+ version?: number;
23
+ }
24
+ export declare const DEFAULT_TICKETS: TicketsPluginConfig;
25
+ //# sourceMappingURL=tickets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tickets.d.ts","sourceRoot":"","sources":["../../src/plugins/tickets.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,iBAAiB,GAAG,WAAW,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,iBAAiB,CAAC,EAAE,OAAO,GAAG,cAAc,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACpC,SAAS,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,EAAE,mBAiB7B,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_TICKETS = void 0;
4
+ exports.DEFAULT_TICKETS = {
5
+ enabled: false,
6
+ maxOpenTicketsPerUser: 1,
7
+ messageOnOpen: 'Thanks for opening a ticket. A staff member will assist you shortly. Please describe your issue below.',
8
+ namingScheme: 'ticket-username',
9
+ panelMessage: 'Press the button to open a ticket with the staff.',
10
+ panelButtonLabel: 'Open ticket',
11
+ panelCreatorsMode: 'admin',
12
+ categoryId: null,
13
+ supportRoleIds: [],
14
+ logChannelId: null,
15
+ transcriptsEnabled: false,
16
+ autoAssignMode: 'none',
17
+ categories: [],
18
+ updatedAt: null,
19
+ updatedBy: null,
20
+ version: 0
21
+ };
22
+ //# sourceMappingURL=tickets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tickets.js","sourceRoot":"","sources":["../../src/plugins/tickets.ts"],"names":[],"mappings":";;;AAyBa,QAAA,eAAe,GAAwB;IAClD,OAAO,EAAE,KAAK;IACd,qBAAqB,EAAE,CAAC;IACxB,aAAa,EAAE,wGAAwG;IACvH,YAAY,EAAE,iBAAiB;IAC/B,YAAY,EAAE,mDAAmD;IACjE,gBAAgB,EAAE,aAAa;IAC/B,iBAAiB,EAAE,OAAO;IAC1B,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,EAAE;IAClB,YAAY,EAAE,IAAI;IAClB,kBAAkB,EAAE,KAAK;IACzB,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC;CACX,CAAC"}
@@ -0,0 +1,17 @@
1
+ export interface WelcomePluginConfig {
2
+ enabled: boolean;
3
+ channelId?: string | null;
4
+ message?: string;
5
+ useEmbed?: boolean;
6
+ imageUrl?: string | null;
7
+ autoRoleIds?: string[];
8
+ dmEnabled?: boolean;
9
+ dmMessage?: string | null;
10
+ dmImageUrl?: string | null;
11
+ cardEnabled?: boolean;
12
+ updatedAt?: any | null;
13
+ updatedBy?: string | null;
14
+ version?: number;
15
+ }
16
+ export declare const DEFAULT_WELCOME: WelcomePluginConfig;
17
+ //# sourceMappingURL=welcome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"welcome.d.ts","sourceRoot":"","sources":["../../src/plugins/welcome.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,EAAE,mBAc7B,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_WELCOME = void 0;
4
+ exports.DEFAULT_WELCOME = {
5
+ enabled: false,
6
+ channelId: null,
7
+ message: 'Welcome {user} to {guild}!',
8
+ useEmbed: false,
9
+ imageUrl: null,
10
+ autoRoleIds: [],
11
+ dmEnabled: false,
12
+ dmMessage: 'Welcome {user} to {guild}! Glad to have you here.',
13
+ dmImageUrl: null,
14
+ cardEnabled: false,
15
+ updatedAt: null,
16
+ updatedBy: null,
17
+ version: 0
18
+ };
19
+ //# sourceMappingURL=welcome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../src/plugins/welcome.ts"],"names":[],"mappings":";;;AAgBa,QAAA,eAAe,GAAwB;IAClD,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,4BAA4B;IACrC,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,mDAAmD;IAC9D,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC;CACX,CAAC"}
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "gubo-data-types",
3
+ "version": "0.1.0",
4
+ "description": "Shared type definitions and defaults for GUBO Discord Bot (no firebase-admin dependency)",
5
+ "license": "MIT",
6
+ "private": false,
7
+ "main": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "sideEffects": false,
10
+ "files": [
11
+ "dist/",
12
+ "src/",
13
+ "README.md",
14
+ "LICENSE"
15
+ ],
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/zeekee/DiscordBot.git",
19
+ "directory": "packages/data-types"
20
+ },
21
+ "homepage": "https://github.com/zeekee/DiscordBot/tree/master/packages/data-types#readme",
22
+ "bugs": {
23
+ "url": "https://github.com/zeekee/DiscordBot/issues"
24
+ },
25
+ "keywords": [
26
+ "discord",
27
+ "bot",
28
+ "types",
29
+ "typescript",
30
+ "gubo",
31
+ "data-types",
32
+ "moderation",
33
+ "tickets",
34
+ "economy"
35
+ ],
36
+ "author": "Tu Nombre <tu@email.com>",
37
+ "publishConfig": {
38
+ "access": "public"
39
+ },
40
+ "scripts": {
41
+ "clean": "rimraf dist tsconfig.tsbuildinfo",
42
+ "build": "tsc -p tsconfig.json",
43
+ "prepublishOnly": "npm run build",
44
+ "dev": "tsc -w -p tsconfig.json"
45
+ },
46
+ "devDependencies": {
47
+ "typescript": "^5.1.6",
48
+ "rimraf": "^5.0.5"
49
+ }
50
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guild.js","sourceRoot":"","sources":["guild.ts"],"names":[],"mappings":""}
package/src/guild.ts ADDED
@@ -0,0 +1,18 @@
1
+ export type PlanTier = 'free' | 'premium';
2
+
3
+ export interface Plan {
4
+ tier: PlanTier;
5
+ expiresAt?: any | null; // timestamp placeholder
6
+ isTrial?: boolean | null;
7
+ }
8
+
9
+ export interface GuildDoc {
10
+ name?: string;
11
+ iconUrl?: string | null;
12
+ ownerId?: string | null;
13
+ plan: Plan;
14
+ configVersion: number;
15
+ createdAt?: any;
16
+ updatedAt?: any;
17
+ locale?: string | null;
18
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,oDAAkC;AAClC,uDAAqC;AACrC,oDAAkC;AAClC,oDAAkC;AAClC,0DAAwC;AACxC,0CAAwB"}
package/src/index.ts ADDED
@@ -0,0 +1,7 @@
1
+ export * from './plugins/welcome';
2
+ export * from './plugins/goodbye';
3
+ export * from './plugins/moderation';
4
+ export * from './plugins/tickets';
5
+ export * from './plugins/economy';
6
+ export * from './plugins/reactionRoles';
7
+ export * from './guild';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"economy.js","sourceRoot":"","sources":["economy.ts"],"names":[],"mappings":";;;AA0Da,QAAA,eAAe,GAAwB;IAClD,OAAO,EAAE,KAAK;IACd,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,EAAE;IACb,kBAAkB,EAAE,EAAE;IACtB,aAAa,EAAE,IAAI;IACnB,uBAAuB,EAAE,IAAI;IAC7B,eAAe,EAAE,EAAE;IACnB,QAAQ,EAAE;QACR,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QAC1B,SAAS,EAAE,EAAE;QACb,oBAAoB,EAAE,IAAI;QAC1B,gBAAgB,EAAE,IAAI;QACtB,WAAW,EAAE,2EAA2E;QACxF,uBAAuB,EAAE,IAAI;KAC9B;IACD,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC;CACX,CAAC"}
@@ -0,0 +1,106 @@
1
+ export type ShopItemType = 'role' | 'tempRole' | 'digital' | 'custom';
2
+ export interface ShopItem {
3
+ id: string;
4
+ name: string;
5
+ price: number;
6
+ description?: string | null;
7
+ roleRewardId?: string | null;
8
+ stock?: number | null;
9
+ enabled?: boolean;
10
+ type?: ShopItemType;
11
+ imageUrl?: string | null;
12
+ durationHours?: number | null;
13
+ category?: string | null;
14
+ buttonLabel?: string | null;
15
+ sort?: number | null;
16
+ }
17
+
18
+ export type DonationPlatformType = 'stripe' | 'paypal' | 'mercadopago' | 'link';
19
+ export interface DonationPlatform {
20
+ key: string;
21
+ type: DonationPlatformType;
22
+ displayName: string;
23
+ enabled?: boolean;
24
+ currency?: string | null;
25
+ linkUrl?: string | null;
26
+ stripeSecretKey?: string | null;
27
+ paypalClientId?: string | null;
28
+ paypalClientSecret?: string | null;
29
+ mpAccessToken?: string | null;
30
+ successUrl?: string | null;
31
+ cancelUrl?: string | null;
32
+ }
33
+
34
+ export interface DonationConfig {
35
+ enabled: boolean;
36
+ exchangeRates: Record<string, number>;
37
+ platforms: DonationPlatform[];
38
+ showButtonsInTickets?: boolean;
39
+ ticketCategoryId?: string | null;
40
+ openMessage?: string | null;
41
+ transactionLogChannelId?: string | null;
42
+ }
43
+
44
+ export interface EconomyPluginConfig {
45
+ enabled: boolean;
46
+ currencyName?: string;
47
+ shopEnabled?: boolean;
48
+ shopItems?: ShopItem[];
49
+ shopManagerRoleIds?: string[];
50
+ shopUseEmbeds?: boolean;
51
+ transactionLogChannelId?: string | null;
52
+ priorityRoleIds?: string[];
53
+ donation?: DonationConfig;
54
+ updatedAt?: any | null;
55
+ updatedBy?: string | null;
56
+ version?: number;
57
+ }
58
+
59
+ // Economy Data Document
60
+ export interface EconomyDataDoc {
61
+ guildId: string;
62
+ userId: string;
63
+ balance: number;
64
+ totalEarned: number;
65
+ totalSpent: number;
66
+ createdAt: any;
67
+ updatedAt: any;
68
+ }
69
+
70
+ // Role Grant Document
71
+ export interface RoleGrantDoc {
72
+ id?: string;
73
+ guildId: string;
74
+ userId: string;
75
+ roleId: string;
76
+ grantedAt: any;
77
+ expiresAt?: any | null;
78
+ reason?: string | null;
79
+ grantedBy?: string | null;
80
+ revoked?: boolean;
81
+ revokedAt?: any | null;
82
+ shopItemId?: string | null;
83
+ }
84
+
85
+ export const DEFAULT_ECONOMY: EconomyPluginConfig = {
86
+ enabled: false,
87
+ currencyName: 'Coins',
88
+ shopEnabled: false,
89
+ shopItems: [],
90
+ shopManagerRoleIds: [],
91
+ shopUseEmbeds: true,
92
+ transactionLogChannelId: null,
93
+ priorityRoleIds: [],
94
+ donation: {
95
+ enabled: false,
96
+ exchangeRates: { USD: 10 },
97
+ platforms: [],
98
+ showButtonsInTickets: true,
99
+ ticketCategoryId: null,
100
+ openMessage: 'Gracias por tu apoyo. Aquí tienes las opciones para realizar tu donación:',
101
+ transactionLogChannelId: null
102
+ },
103
+ updatedAt: null,
104
+ updatedBy: null,
105
+ version: 0
106
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goodbye.js","sourceRoot":"","sources":["goodbye.ts"],"names":[],"mappings":";;;AAWa,QAAA,eAAe,GAAwB;IAClD,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,sDAAsD;IAC/D,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC;CACX,CAAC"}
@@ -0,0 +1,21 @@
1
+ export interface GoodbyePluginConfig {
2
+ enabled: boolean;
3
+ channelId?: string | null;
4
+ message?: string;
5
+ useEmbed?: boolean;
6
+ imageUrl?: string | null;
7
+ updatedAt?: any | null;
8
+ updatedBy?: string | null;
9
+ version?: number;
10
+ }
11
+
12
+ export const DEFAULT_GOODBYE: GoodbyePluginConfig = {
13
+ enabled: false,
14
+ channelId: null,
15
+ message: 'Goodbye {user}, thanks for being with us in {guild}.',
16
+ useEmbed: false,
17
+ imageUrl: null,
18
+ updatedAt: null,
19
+ updatedBy: null,
20
+ version: 0
21
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moderation.js","sourceRoot":"","sources":["moderation.ts"],"names":[],"mappings":";;;AA2Ba,QAAA,kBAAkB,GAA2B;IACxD,OAAO,EAAE,KAAK;IACd,YAAY,EAAE,IAAI;IAClB,UAAU,EAAE,EAAE;IACd,oBAAoB,EAAE,CAAC;IACvB,uBAAuB,EAAE,CAAC;IAC1B,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE;QACd,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,KAAK;QACtB,QAAQ,EAAE,EAAE;KACb;IACD,WAAW,EAAE,CAAC;IACd,uBAAuB,EAAE,MAAM;IAC/B,yBAAyB,EAAE,EAAE,GAAG,EAAE;IAClC,yBAAyB,EAAE,CAAC;IAC5B,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC;CACX,CAAC"}
@@ -0,0 +1,50 @@
1
+ export interface ModerationAutoModFilters {
2
+ spam?: boolean;
3
+ caps?: boolean;
4
+ links?: boolean;
5
+ invites?: boolean;
6
+ badWordsEnabled?: boolean;
7
+ badWords?: string[];
8
+ [key: string]: any;
9
+ }
10
+
11
+ export interface ModerationPluginConfig {
12
+ enabled: boolean;
13
+ logChannelId?: string | null;
14
+ modRoleIds?: string[];
15
+ banFreeMaxDeleteDays?: number;
16
+ banPremiumMaxDeleteDays?: number;
17
+ autoModEnabled?: boolean;
18
+ autoModFilters?: ModerationAutoModFilters;
19
+ maxWarnings?: number;
20
+ autoActionOnMaxWarnings?: 'kick' | 'ban' | 'mute' | 'none';
21
+ autoActionMuteDurationMin?: number;
22
+ autoActionBanDurationDays?: number;
23
+ updatedAt?: any | null;
24
+ updatedBy?: string | null;
25
+ version?: number;
26
+ }
27
+
28
+ export const DEFAULT_MODERATION: ModerationPluginConfig = {
29
+ enabled: false,
30
+ logChannelId: null,
31
+ modRoleIds: [],
32
+ banFreeMaxDeleteDays: 1,
33
+ banPremiumMaxDeleteDays: 7,
34
+ autoModEnabled: false,
35
+ autoModFilters: {
36
+ spam: false,
37
+ caps: false,
38
+ links: false,
39
+ invites: false,
40
+ badWordsEnabled: false,
41
+ badWords: []
42
+ },
43
+ maxWarnings: 3,
44
+ autoActionOnMaxWarnings: 'none',
45
+ autoActionMuteDurationMin: 24 * 60,
46
+ autoActionBanDurationDays: 0,
47
+ updatedAt: null,
48
+ updatedBy: null,
49
+ version: 0
50
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactionRoles.js","sourceRoot":"","sources":["reactionRoles.ts"],"names":[],"mappings":";;;AAmBa,QAAA,sBAAsB,GAA8B;IAC/D,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,EAAE;IACV,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC;CACX,CAAC"}
@@ -0,0 +1,26 @@
1
+ export interface ReactionRoleEntry {
2
+ emoji: string;
3
+ roleId: string;
4
+ removeOnUnreact?: boolean;
5
+ }
6
+ export interface ReactionRolePanel {
7
+ id: string;
8
+ channelId: string;
9
+ messageId?: string | null;
10
+ entries: ReactionRoleEntry[];
11
+ allowMulti?: boolean;
12
+ }
13
+ export interface ReactionRolesPluginConfig {
14
+ enabled: boolean;
15
+ panels: ReactionRolePanel[];
16
+ updatedAt?: any | null;
17
+ updatedBy?: string | null;
18
+ version?: number;
19
+ }
20
+ export const DEFAULT_REACTION_ROLES: ReactionRolesPluginConfig = {
21
+ enabled: false,
22
+ panels: [],
23
+ updatedAt: null,
24
+ updatedBy: null,
25
+ version: 0
26
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tickets.js","sourceRoot":"","sources":["tickets.ts"],"names":[],"mappings":";;;AAyBa,QAAA,eAAe,GAAwB;IAClD,OAAO,EAAE,KAAK;IACd,qBAAqB,EAAE,CAAC;IACxB,aAAa,EAAE,wGAAwG;IACvH,YAAY,EAAE,iBAAiB;IAC/B,YAAY,EAAE,mDAAmD;IACjE,gBAAgB,EAAE,aAAa;IAC/B,iBAAiB,EAAE,OAAO;IAC1B,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,EAAE;IAClB,YAAY,EAAE,IAAI;IAClB,kBAAkB,EAAE,KAAK;IACzB,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC;CACX,CAAC"}
@@ -0,0 +1,43 @@
1
+ export interface TicketCategoryOption {
2
+ key: string;
3
+ label: string;
4
+ categoryId?: string | null;
5
+ }
6
+
7
+ export interface TicketsPluginConfig {
8
+ enabled: boolean;
9
+ maxOpenTicketsPerUser?: number;
10
+ messageOnOpen?: string | null;
11
+ namingScheme?: 'ticket-username' | 'ticket-id';
12
+ panelMessage?: string | null;
13
+ panelButtonLabel?: string | null;
14
+ panelCreatorsMode?: 'admin' | 'supportRoles';
15
+ categoryId?: string | null;
16
+ supportRoleIds?: string[];
17
+ logChannelId?: string | null;
18
+ transcriptsEnabled?: boolean;
19
+ autoAssignMode?: 'ping' | 'none';
20
+ categories?: TicketCategoryOption[];
21
+ updatedAt?: any | null;
22
+ updatedBy?: string | null;
23
+ version?: number;
24
+ }
25
+
26
+ export const DEFAULT_TICKETS: TicketsPluginConfig = {
27
+ enabled: false,
28
+ maxOpenTicketsPerUser: 1,
29
+ messageOnOpen: 'Thanks for opening a ticket. A staff member will assist you shortly. Please describe your issue below.',
30
+ namingScheme: 'ticket-username',
31
+ panelMessage: 'Press the button to open a ticket with the staff.',
32
+ panelButtonLabel: 'Open ticket',
33
+ panelCreatorsMode: 'admin',
34
+ categoryId: null,
35
+ supportRoleIds: [],
36
+ logChannelId: null,
37
+ transcriptsEnabled: false,
38
+ autoAssignMode: 'none',
39
+ categories: [],
40
+ updatedAt: null,
41
+ updatedBy: null,
42
+ version: 0
43
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"welcome.js","sourceRoot":"","sources":["welcome.ts"],"names":[],"mappings":";;;AAgBa,QAAA,eAAe,GAAwB;IAClD,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,4BAA4B;IACrC,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,mDAAmD;IAC9D,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,CAAC;CACX,CAAC"}
@@ -0,0 +1,31 @@
1
+ export interface WelcomePluginConfig {
2
+ enabled: boolean;
3
+ channelId?: string | null;
4
+ message?: string;
5
+ useEmbed?: boolean;
6
+ imageUrl?: string | null;
7
+ autoRoleIds?: string[];
8
+ dmEnabled?: boolean;
9
+ dmMessage?: string | null;
10
+ dmImageUrl?: string | null;
11
+ cardEnabled?: boolean;
12
+ updatedAt?: any | null;
13
+ updatedBy?: string | null;
14
+ version?: number;
15
+ }
16
+
17
+ export const DEFAULT_WELCOME: WelcomePluginConfig = {
18
+ enabled: false,
19
+ channelId: null,
20
+ message: 'Welcome {user} to {guild}!',
21
+ useEmbed: false,
22
+ imageUrl: null,
23
+ autoRoleIds: [],
24
+ dmEnabled: false,
25
+ dmMessage: 'Welcome {user} to {guild}! Glad to have you here.',
26
+ dmImageUrl: null,
27
+ cardEnabled: false,
28
+ updatedAt: null,
29
+ updatedBy: null,
30
+ version: 0
31
+ };