@furlow/builtins 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 (46) hide show
  1. package/dist/afk/index.d.ts +21 -0
  2. package/dist/afk/index.js +195 -0
  3. package/dist/afk/index.js.map +1 -0
  4. package/dist/auto-responder/index.d.ts +21 -0
  5. package/dist/auto-responder/index.js +356 -0
  6. package/dist/auto-responder/index.js.map +1 -0
  7. package/dist/giveaways/index.d.ts +25 -0
  8. package/dist/giveaways/index.js +416 -0
  9. package/dist/giveaways/index.js.map +1 -0
  10. package/dist/index.d.ts +15 -0
  11. package/dist/index.js +5402 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/leveling/index.d.ts +46 -0
  14. package/dist/leveling/index.js +521 -0
  15. package/dist/leveling/index.js.map +1 -0
  16. package/dist/logging/index.d.ts +52 -0
  17. package/dist/logging/index.js +519 -0
  18. package/dist/logging/index.js.map +1 -0
  19. package/dist/moderation/index.d.ts +83 -0
  20. package/dist/moderation/index.js +221 -0
  21. package/dist/moderation/index.js.map +1 -0
  22. package/dist/music/index.d.ts +33 -0
  23. package/dist/music/index.js +414 -0
  24. package/dist/music/index.js.map +1 -0
  25. package/dist/polls/index.d.ts +21 -0
  26. package/dist/polls/index.js +395 -0
  27. package/dist/polls/index.js.map +1 -0
  28. package/dist/reaction-roles/index.d.ts +19 -0
  29. package/dist/reaction-roles/index.js +551 -0
  30. package/dist/reaction-roles/index.js.map +1 -0
  31. package/dist/reminders/index.d.ts +23 -0
  32. package/dist/reminders/index.js +224 -0
  33. package/dist/reminders/index.js.map +1 -0
  34. package/dist/starboard/index.d.ts +35 -0
  35. package/dist/starboard/index.js +401 -0
  36. package/dist/starboard/index.js.map +1 -0
  37. package/dist/tickets/index.d.ts +43 -0
  38. package/dist/tickets/index.js +614 -0
  39. package/dist/tickets/index.js.map +1 -0
  40. package/dist/utilities/index.d.ts +15 -0
  41. package/dist/utilities/index.js +299 -0
  42. package/dist/utilities/index.js.map +1 -0
  43. package/dist/welcome/index.d.ts +48 -0
  44. package/dist/welcome/index.js +302 -0
  45. package/dist/welcome/index.js.map +1 -0
  46. package/package.json +109 -0
@@ -0,0 +1,302 @@
1
+ // src/welcome/index.ts
2
+ var welcomeEventHandlers = [
3
+ {
4
+ event: "member_join",
5
+ actions: [
6
+ // Auto-role assignment
7
+ {
8
+ action: "flow_if",
9
+ condition: "${config.welcome.autoRoles && config.welcome.autoRoles.length > 0}",
10
+ then: [
11
+ {
12
+ action: "assign_role",
13
+ user: "${member.id}",
14
+ role: "${config.welcome.autoRoles}"
15
+ }
16
+ ]
17
+ },
18
+ // DM new member
19
+ {
20
+ action: "flow_if",
21
+ condition: "${config.welcome.dmNewMembers}",
22
+ then: [
23
+ {
24
+ action: "send_dm",
25
+ user: "${member.id}",
26
+ content: '${config.welcome.dmMessage || "Welcome to " + guild.name + "!"}'
27
+ }
28
+ ]
29
+ },
30
+ // Welcome message with image
31
+ {
32
+ action: "flow_if",
33
+ condition: "${config.welcome.useImage}",
34
+ then: [
35
+ {
36
+ action: "canvas_render",
37
+ generator: '${config.welcome.imageGenerator || "welcome_card"}',
38
+ context: {
39
+ member: "${member}",
40
+ guild: "${guild}",
41
+ memberCount: "${guild.memberCount}"
42
+ },
43
+ as: "welcomeImage"
44
+ },
45
+ {
46
+ action: "send_message",
47
+ channel: "${config.welcome.channel}",
48
+ content: '${config.welcome.message || "Welcome to the server, " + member.displayName + "!"}',
49
+ files: [
50
+ {
51
+ attachment: "${welcomeImage}",
52
+ name: "welcome.png"
53
+ }
54
+ ]
55
+ }
56
+ ],
57
+ else: [
58
+ // Welcome message without image
59
+ {
60
+ action: "flow_if",
61
+ condition: "${config.welcome.embed}",
62
+ then: [
63
+ {
64
+ action: "send_message",
65
+ channel: "${config.welcome.channel}",
66
+ content: "${config.welcome.message}",
67
+ embed: {
68
+ title: '${config.welcome.embed.title || "Welcome!"}',
69
+ description: '${config.welcome.embed.description || "Welcome to " + guild.name + ", " + member.displayName + "!"}',
70
+ color: '${config.welcome.embed.color || "#5865f2"}',
71
+ thumbnail: "${config.welcome.embed.thumbnail || member.avatarURL}",
72
+ footer: {
73
+ text: '${config.welcome.embed.footer || "Member #" + guild.memberCount}'
74
+ }
75
+ }
76
+ }
77
+ ],
78
+ else: [
79
+ {
80
+ action: "send_message",
81
+ channel: "${config.welcome.channel}",
82
+ content: '${config.welcome.message || "Welcome to the server, " + member.displayName + "!"}'
83
+ }
84
+ ]
85
+ }
86
+ ]
87
+ }
88
+ ]
89
+ },
90
+ {
91
+ event: "member_leave",
92
+ actions: [
93
+ {
94
+ action: "flow_if",
95
+ condition: "${config.welcome.leaveChannel || config.welcome.channel}",
96
+ then: [
97
+ {
98
+ action: "flow_if",
99
+ condition: "${config.welcome.leaveEmbed}",
100
+ then: [
101
+ {
102
+ action: "send_message",
103
+ channel: "${config.welcome.leaveChannel || config.welcome.channel}",
104
+ embed: {
105
+ title: '${config.welcome.leaveEmbed.title || "Goodbye!"}',
106
+ description: '${config.welcome.leaveEmbed.description || member.displayName + " has left the server."}',
107
+ color: '${config.welcome.leaveEmbed.color || "#ed4245"}'
108
+ }
109
+ }
110
+ ],
111
+ else: [
112
+ {
113
+ action: "send_message",
114
+ channel: "${config.welcome.leaveChannel || config.welcome.channel}",
115
+ content: '${config.welcome.leaveMessage || member.displayName + " has left the server."}'
116
+ }
117
+ ]
118
+ }
119
+ ]
120
+ }
121
+ ]
122
+ }
123
+ ];
124
+ var welcomeCommands = [
125
+ {
126
+ name: "welcome",
127
+ description: "Welcome system commands",
128
+ subcommands: [
129
+ {
130
+ name: "test",
131
+ description: "Test the welcome message",
132
+ actions: [
133
+ {
134
+ action: "emit",
135
+ event: "member_join",
136
+ data: {
137
+ member: "${member}",
138
+ guild: "${guild}"
139
+ }
140
+ },
141
+ {
142
+ action: "reply",
143
+ content: "Welcome message test triggered!",
144
+ ephemeral: true
145
+ }
146
+ ]
147
+ },
148
+ {
149
+ name: "set-channel",
150
+ description: "Set the welcome channel",
151
+ options: [
152
+ { name: "channel", description: "Channel for welcome messages", type: "channel", required: true }
153
+ ],
154
+ actions: [
155
+ {
156
+ action: "set",
157
+ key: "config.welcome.channel",
158
+ value: "${args.channel.id}",
159
+ scope: "guild"
160
+ },
161
+ {
162
+ action: "reply",
163
+ content: "Welcome channel set to ${args.channel}",
164
+ ephemeral: true
165
+ }
166
+ ]
167
+ },
168
+ {
169
+ name: "set-message",
170
+ description: "Set the welcome message",
171
+ options: [
172
+ { name: "message", description: "Welcome message (use {member} and {guild})", type: "string", required: true }
173
+ ],
174
+ actions: [
175
+ {
176
+ action: "set",
177
+ key: "config.welcome.message",
178
+ value: "${args.message}",
179
+ scope: "guild"
180
+ },
181
+ {
182
+ action: "reply",
183
+ content: "Welcome message updated!",
184
+ ephemeral: true
185
+ }
186
+ ]
187
+ },
188
+ {
189
+ name: "add-autorole",
190
+ description: "Add an auto-role",
191
+ options: [
192
+ { name: "role", description: "Role to assign on join", type: "role", required: true }
193
+ ],
194
+ actions: [
195
+ {
196
+ action: "list_push",
197
+ key: "config.welcome.autoRoles",
198
+ value: "${args.role.id}",
199
+ scope: "guild"
200
+ },
201
+ {
202
+ action: "reply",
203
+ content: "Auto-role ${args.role.name} added!",
204
+ ephemeral: true
205
+ }
206
+ ]
207
+ },
208
+ {
209
+ name: "remove-autorole",
210
+ description: "Remove an auto-role",
211
+ options: [
212
+ { name: "role", description: "Role to remove", type: "role", required: true }
213
+ ],
214
+ actions: [
215
+ {
216
+ action: "list_remove",
217
+ key: "config.welcome.autoRoles",
218
+ value: "${args.role.id}",
219
+ scope: "guild"
220
+ },
221
+ {
222
+ action: "reply",
223
+ content: "Auto-role ${args.role.name} removed!",
224
+ ephemeral: true
225
+ }
226
+ ]
227
+ }
228
+ ]
229
+ }
230
+ ];
231
+ var welcomeCanvasGenerators = {
232
+ welcome_card: {
233
+ width: 800,
234
+ height: 300,
235
+ background: "#2f3136",
236
+ layers: [
237
+ {
238
+ type: "rect",
239
+ x: 0,
240
+ y: 0,
241
+ width: 800,
242
+ height: 300,
243
+ color: "linear-gradient(135deg, #667eea 0%, #764ba2 100%)",
244
+ radius: 16
245
+ },
246
+ {
247
+ type: "circle_image",
248
+ url: "${member.avatarURL || member.defaultAvatarURL}",
249
+ x: 400,
250
+ y: 100,
251
+ radius: 64,
252
+ border: {
253
+ width: 4,
254
+ color: "#ffffff"
255
+ }
256
+ },
257
+ {
258
+ type: "text",
259
+ text: "Welcome!",
260
+ x: 400,
261
+ y: 200,
262
+ font: '32px "Poppins", sans-serif',
263
+ color: "#ffffff",
264
+ align: "center"
265
+ },
266
+ {
267
+ type: "text",
268
+ text: "${member.displayName}",
269
+ x: 400,
270
+ y: 240,
271
+ font: 'bold 28px "Poppins", sans-serif',
272
+ color: "#ffffff",
273
+ align: "center"
274
+ },
275
+ {
276
+ type: "text",
277
+ text: "Member #${guild.memberCount}",
278
+ x: 400,
279
+ y: 275,
280
+ font: '16px "Poppins", sans-serif',
281
+ color: "rgba(255, 255, 255, 0.8)",
282
+ align: "center"
283
+ }
284
+ ]
285
+ }
286
+ };
287
+ function getWelcomeSpec(config = {}) {
288
+ return {
289
+ events: welcomeEventHandlers,
290
+ commands: welcomeCommands,
291
+ canvas: {
292
+ generators: welcomeCanvasGenerators
293
+ }
294
+ };
295
+ }
296
+ export {
297
+ getWelcomeSpec,
298
+ welcomeCanvasGenerators,
299
+ welcomeCommands,
300
+ welcomeEventHandlers
301
+ };
302
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/welcome/index.ts"],"sourcesContent":["/**\n * Welcome builtin module\n * Handles member join/leave messages, auto-role assignment, and welcome images\n */\n\nimport type { FurlowSpec, CommandDefinition, EventHandler, CanvasGenerator } from '@furlow/schema';\n\nexport interface WelcomeConfig {\n /** Channel to send welcome messages */\n channel?: string;\n /** Welcome message template */\n message?: string;\n /** Embed for welcome messages */\n embed?: {\n title?: string;\n description?: string;\n color?: string;\n thumbnail?: string;\n image?: string;\n footer?: string;\n };\n /** Use welcome image */\n useImage?: boolean;\n /** Welcome image generator name */\n imageGenerator?: string;\n /** Roles to assign on join */\n autoRoles?: string[];\n /** Leave channel (defaults to welcome channel) */\n leaveChannel?: string;\n /** Leave message template */\n leaveMessage?: string;\n /** Leave embed */\n leaveEmbed?: {\n title?: string;\n description?: string;\n color?: string;\n };\n /** DM new members */\n dmNewMembers?: boolean;\n /** DM message */\n dmMessage?: string;\n}\n\nexport const welcomeEventHandlers: EventHandler[] = [\n {\n event: 'member_join',\n actions: [\n // Auto-role assignment\n {\n action: 'flow_if',\n condition: '${config.welcome.autoRoles && config.welcome.autoRoles.length > 0}',\n then: [\n {\n action: 'assign_role',\n user: '${member.id}',\n role: '${config.welcome.autoRoles}',\n },\n ],\n },\n // DM new member\n {\n action: 'flow_if',\n condition: '${config.welcome.dmNewMembers}',\n then: [\n {\n action: 'send_dm',\n user: '${member.id}',\n content: '${config.welcome.dmMessage || \"Welcome to \" + guild.name + \"!\"}',\n },\n ],\n },\n // Welcome message with image\n {\n action: 'flow_if',\n condition: '${config.welcome.useImage}',\n then: [\n {\n action: 'canvas_render',\n generator: '${config.welcome.imageGenerator || \"welcome_card\"}',\n context: {\n member: '${member}',\n guild: '${guild}',\n memberCount: '${guild.memberCount}',\n },\n as: 'welcomeImage',\n },\n {\n action: 'send_message',\n channel: '${config.welcome.channel}',\n content: '${config.welcome.message || \"Welcome to the server, \" + member.displayName + \"!\"}',\n files: [\n {\n attachment: '${welcomeImage}',\n name: 'welcome.png',\n },\n ],\n },\n ],\n else: [\n // Welcome message without image\n {\n action: 'flow_if',\n condition: '${config.welcome.embed}',\n then: [\n {\n action: 'send_message',\n channel: '${config.welcome.channel}',\n content: '${config.welcome.message}',\n embed: {\n title: '${config.welcome.embed.title || \"Welcome!\"}',\n description: '${config.welcome.embed.description || \"Welcome to \" + guild.name + \", \" + member.displayName + \"!\"}',\n color: '${config.welcome.embed.color || \"#5865f2\"}',\n thumbnail: '${config.welcome.embed.thumbnail || member.avatarURL}',\n footer: {\n text: '${config.welcome.embed.footer || \"Member #\" + guild.memberCount}',\n },\n },\n },\n ],\n else: [\n {\n action: 'send_message',\n channel: '${config.welcome.channel}',\n content: '${config.welcome.message || \"Welcome to the server, \" + member.displayName + \"!\"}',\n },\n ],\n },\n ],\n },\n ],\n },\n {\n event: 'member_leave',\n actions: [\n {\n action: 'flow_if',\n condition: '${config.welcome.leaveChannel || config.welcome.channel}',\n then: [\n {\n action: 'flow_if',\n condition: '${config.welcome.leaveEmbed}',\n then: [\n {\n action: 'send_message',\n channel: '${config.welcome.leaveChannel || config.welcome.channel}',\n embed: {\n title: '${config.welcome.leaveEmbed.title || \"Goodbye!\"}',\n description: '${config.welcome.leaveEmbed.description || member.displayName + \" has left the server.\"}',\n color: '${config.welcome.leaveEmbed.color || \"#ed4245\"}',\n },\n },\n ],\n else: [\n {\n action: 'send_message',\n channel: '${config.welcome.leaveChannel || config.welcome.channel}',\n content: '${config.welcome.leaveMessage || member.displayName + \" has left the server.\"}',\n },\n ],\n },\n ],\n },\n ],\n },\n];\n\nexport const welcomeCommands: CommandDefinition[] = [\n {\n name: 'welcome',\n description: 'Welcome system commands',\n subcommands: [\n {\n name: 'test',\n description: 'Test the welcome message',\n actions: [\n {\n action: 'emit',\n event: 'member_join',\n data: {\n member: '${member}',\n guild: '${guild}',\n },\n },\n {\n action: 'reply',\n content: 'Welcome message test triggered!',\n ephemeral: true,\n },\n ],\n },\n {\n name: 'set-channel',\n description: 'Set the welcome channel',\n options: [\n { name: 'channel', description: 'Channel for welcome messages', type: 'channel', required: true },\n ],\n actions: [\n {\n action: 'set',\n key: 'config.welcome.channel',\n value: '${args.channel.id}',\n scope: 'guild',\n },\n {\n action: 'reply',\n content: 'Welcome channel set to ${args.channel}',\n ephemeral: true,\n },\n ],\n },\n {\n name: 'set-message',\n description: 'Set the welcome message',\n options: [\n { name: 'message', description: 'Welcome message (use {member} and {guild})', type: 'string', required: true },\n ],\n actions: [\n {\n action: 'set',\n key: 'config.welcome.message',\n value: '${args.message}',\n scope: 'guild',\n },\n {\n action: 'reply',\n content: 'Welcome message updated!',\n ephemeral: true,\n },\n ],\n },\n {\n name: 'add-autorole',\n description: 'Add an auto-role',\n options: [\n { name: 'role', description: 'Role to assign on join', type: 'role', required: true },\n ],\n actions: [\n {\n action: 'list_push',\n key: 'config.welcome.autoRoles',\n value: '${args.role.id}',\n scope: 'guild',\n },\n {\n action: 'reply',\n content: 'Auto-role ${args.role.name} added!',\n ephemeral: true,\n },\n ],\n },\n {\n name: 'remove-autorole',\n description: 'Remove an auto-role',\n options: [\n { name: 'role', description: 'Role to remove', type: 'role', required: true },\n ],\n actions: [\n {\n action: 'list_remove',\n key: 'config.welcome.autoRoles',\n value: '${args.role.id}',\n scope: 'guild',\n },\n {\n action: 'reply',\n content: 'Auto-role ${args.role.name} removed!',\n ephemeral: true,\n },\n ],\n },\n ],\n },\n];\n\nexport const welcomeCanvasGenerators: Record<string, CanvasGenerator> = {\n welcome_card: {\n width: 800,\n height: 300,\n background: '#2f3136',\n layers: [\n {\n type: 'rect',\n x: 0,\n y: 0,\n width: 800,\n height: 300,\n color: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',\n radius: 16,\n },\n {\n type: 'circle_image',\n url: '${member.avatarURL || member.defaultAvatarURL}',\n x: 400,\n y: 100,\n radius: 64,\n border: {\n width: 4,\n color: '#ffffff',\n },\n },\n {\n type: 'text',\n text: 'Welcome!',\n x: 400,\n y: 200,\n font: '32px \"Poppins\", sans-serif',\n color: '#ffffff',\n align: 'center',\n },\n {\n type: 'text',\n text: '${member.displayName}',\n x: 400,\n y: 240,\n font: 'bold 28px \"Poppins\", sans-serif',\n color: '#ffffff',\n align: 'center',\n },\n {\n type: 'text',\n text: 'Member #${guild.memberCount}',\n x: 400,\n y: 275,\n font: '16px \"Poppins\", sans-serif',\n color: 'rgba(255, 255, 255, 0.8)',\n align: 'center',\n },\n ],\n },\n};\n\nexport function getWelcomeSpec(config: WelcomeConfig = {}): Partial<FurlowSpec> {\n return {\n events: welcomeEventHandlers,\n commands: welcomeCommands,\n canvas: {\n generators: welcomeCanvasGenerators,\n },\n };\n}\n"],"mappings":"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","names":[]}
package/package.json ADDED
@@ -0,0 +1,109 @@
1
+ {
2
+ "name": "@furlow/builtins",
3
+ "version": "0.1.0",
4
+ "description": "Pre-built bot components for FURLOW framework",
5
+ "keywords": [
6
+ "furlow",
7
+ "discord",
8
+ "builtins",
9
+ "moderation",
10
+ "tickets",
11
+ "leveling"
12
+ ],
13
+ "license": "MIT",
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/virgilvox/discord-furlow",
17
+ "directory": "packages/builtins"
18
+ },
19
+ "author": "virgilvox",
20
+ "type": "module",
21
+ "exports": {
22
+ ".": {
23
+ "types": "./dist/index.d.ts",
24
+ "import": "./dist/index.js"
25
+ },
26
+ "./moderation": {
27
+ "types": "./dist/moderation/index.d.ts",
28
+ "import": "./dist/moderation/index.js"
29
+ },
30
+ "./welcome": {
31
+ "types": "./dist/welcome/index.d.ts",
32
+ "import": "./dist/welcome/index.js"
33
+ },
34
+ "./logging": {
35
+ "types": "./dist/logging/index.d.ts",
36
+ "import": "./dist/logging/index.js"
37
+ },
38
+ "./tickets": {
39
+ "types": "./dist/tickets/index.d.ts",
40
+ "import": "./dist/tickets/index.js"
41
+ },
42
+ "./reaction-roles": {
43
+ "types": "./dist/reaction-roles/index.d.ts",
44
+ "import": "./dist/reaction-roles/index.js"
45
+ },
46
+ "./leveling": {
47
+ "types": "./dist/leveling/index.d.ts",
48
+ "import": "./dist/leveling/index.js"
49
+ },
50
+ "./music": {
51
+ "types": "./dist/music/index.d.ts",
52
+ "import": "./dist/music/index.js"
53
+ },
54
+ "./starboard": {
55
+ "types": "./dist/starboard/index.d.ts",
56
+ "import": "./dist/starboard/index.js"
57
+ },
58
+ "./polls": {
59
+ "types": "./dist/polls/index.d.ts",
60
+ "import": "./dist/polls/index.js"
61
+ },
62
+ "./giveaways": {
63
+ "types": "./dist/giveaways/index.d.ts",
64
+ "import": "./dist/giveaways/index.js"
65
+ },
66
+ "./auto-responder": {
67
+ "types": "./dist/auto-responder/index.d.ts",
68
+ "import": "./dist/auto-responder/index.js"
69
+ },
70
+ "./afk": {
71
+ "types": "./dist/afk/index.d.ts",
72
+ "import": "./dist/afk/index.js"
73
+ },
74
+ "./reminders": {
75
+ "types": "./dist/reminders/index.d.ts",
76
+ "import": "./dist/reminders/index.js"
77
+ },
78
+ "./utilities": {
79
+ "types": "./dist/utilities/index.d.ts",
80
+ "import": "./dist/utilities/index.js"
81
+ }
82
+ },
83
+ "main": "./dist/index.js",
84
+ "types": "./dist/index.d.ts",
85
+ "files": [
86
+ "dist",
87
+ "yaml"
88
+ ],
89
+ "dependencies": {
90
+ "@furlow/core": "0.1.0",
91
+ "@furlow/schema": "0.1.0",
92
+ "@furlow/discord": "0.1.0"
93
+ },
94
+ "devDependencies": {
95
+ "@types/node": "^20.11.0",
96
+ "tsup": "^8.0.0",
97
+ "typescript": "^5.3.0",
98
+ "vitest": "^1.2.0"
99
+ },
100
+ "scripts": {
101
+ "build": "tsup",
102
+ "clean": "rm -rf dist .turbo",
103
+ "dev": "tsup --watch",
104
+ "lint": "eslint src/",
105
+ "test": "vitest run",
106
+ "test:unit": "vitest run",
107
+ "typecheck": "tsc --noEmit"
108
+ }
109
+ }