prototurk-sdk 0.0.1 → 0.0.2

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/README.md CHANGED
@@ -144,6 +144,28 @@ await client.posts.createComment(targetId, {
144
144
  });
145
145
  ```
146
146
 
147
+ ### 💬 Command Manager (`client.commands`)
148
+
149
+ DM ve Post (Gönderi/Yorum) komutlarınızı (ör. `/ping`) kolayca oluşturmanızı ve yönetmenizi sağlar. Client oluşturulurken `commandPrefix` verilerek (varsayılan: `/`) aktif edilebilir.
150
+
151
+ - `client.commands.load("./commands")`: Belirtilen klasördeki komut dosyalarını içe aktarır.
152
+
153
+ **Örnek Komut Dosyası (`./commands/ping.ts`)**
154
+ ```typescript
155
+ import { Command, Client, CommandMessage } from "prototurk-sdk";
156
+
157
+ export default new Command({
158
+ name: "ping",
159
+ description: "Ping komutu",
160
+ aliases: ["pong"],
161
+ type: "all", // "dm" | "post" | "all" (varsayılan "all")
162
+ execute: async (client: Client, message: CommandMessage, args: string[]) => {
163
+ // Komut DM'den gelirse DM mesajı atar, gönderiden (mention vs.) gelirse yorum atar.
164
+ await message.reply("Pong!");
165
+ }
166
+ });
167
+ ```
168
+
147
169
  ---
148
170
 
149
171
  ## 📡 Olaylar (Events)
@@ -5,6 +5,7 @@ import { PostManager } from "../managers/PostManager";
5
5
  import { UserManager } from "../managers/UserManager";
6
6
  import { DMManager } from "../managers/DMManager";
7
7
  import { UploadManager } from "../managers/UploadManager";
8
+ import { CommandManager } from "../managers/CommandManager";
8
9
  import { EventPoller } from "../gateway/EventPoller";
9
10
  import { type ClientEvents } from "../gateway/GatewayEvents";
10
11
  export interface ClientOptions {
@@ -24,6 +25,11 @@ export interface ClientOptions {
24
25
  * Function to retrieve the last processed event cursor on startup.
25
26
  */
26
27
  getEventSince?: () => Promise<string | null> | string | null;
28
+ /**
29
+ * The prefix for the command manager. If provided, commands will be available.
30
+ * Default: "/"
31
+ */
32
+ commandPrefix?: string;
27
33
  }
28
34
  export declare interface Client {
29
35
  on<K extends keyof ClientEvents>(event: K | K[], listener: (...args: ClientEvents[K]) => void): this;
@@ -42,6 +48,7 @@ export declare class Client extends EventEmitter {
42
48
  dms: DMManager;
43
49
  uploads: UploadManager;
44
50
  poller: EventPoller;
51
+ commands: CommandManager;
45
52
  constructor(options?: ClientOptions);
46
53
  /**
47
54
  * Fetch a post by ID
@@ -1 +1 @@
1
- {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../src/client/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAuB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1D;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;CAChE;AAED,MAAM,CAAC,OAAO,WAAW,MAAM;IAC3B,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAC3B,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,EACd,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,GAC7C,IAAI,CAAC;IACR,EAAE,CACE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAC5C,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GACnC,IAAI,CAAC;IACR,IAAI,CAAC,CAAC,SAAS,MAAM,YAAY,EAC7B,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,EACd,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,GAC7C,IAAI,CAAC;IACR,IAAI,CACA,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAC5C,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GACnC,IAAI,CAAC;IACR,IAAI,CAAC,CAAC,SAAS,MAAM,YAAY,EAC7B,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC;IACX,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;CACzD;AAED,qBAAa,MAAO,SAAQ,YAAY;IAC7B,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,SAAS,CAAC;IACf,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;gBAEf,OAAO,GAAE,aAAkB;IAiDvC;;OAEG;IACU,SAAS,CAAC,EAAE,EAAE,MAAM;IAIjC;;;;OAIG;IACU,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBnD;;OAEG;IACI,OAAO;CAGjB"}
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../src/client/Client.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { PostManager } from "../managers/PostManager";
6
6
  import { UserManager } from "../managers/UserManager";
7
7
  import { DMManager } from "../managers/DMManager";
8
8
  import { UploadManager } from "../managers/UploadManager";
9
+ import { CommandManager } from "../managers/CommandManager";
9
10
  import { EventPoller } from "../gateway/EventPoller";
10
11
  export class Client extends EventEmitter {
11
12
  options;
@@ -16,6 +17,7 @@ export class Client extends EventEmitter {
16
17
  dms;
17
18
  uploads;
18
19
  poller;
20
+ commands;
19
21
  constructor(options = {}) {
20
22
  super();
21
23
  this.options = { autoPoll: true, ...options };
@@ -26,6 +28,7 @@ export class Client extends EventEmitter {
26
28
  this.dms = new DMManager(this);
27
29
  this.uploads = new UploadManager(this);
28
30
  this.poller = new EventPoller(this);
31
+ this.commands = new CommandManager(this, this.options.commandPrefix || "/");
29
32
  if (this.options.token) {
30
33
  this.rest.setToken(this.options.token);
31
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Client.js","sourceRoot":"","sources":["../../src/client/Client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Client.js","sourceRoot":"","sources":["../../src/client/Client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export * from "./managers/DMManager";
6
6
  export * from "./managers/PostManager";
7
7
  export * from "./managers/UserManager";
8
8
  export * from "./managers/UploadManager";
9
+ export * from "./managers/CommandManager";
9
10
  export * from "./rest/APIError";
10
11
  export * from "./rest/RESTManager";
11
12
  export * from "./structures/Base";
@@ -13,6 +14,8 @@ export * from "./structures/DMConversation";
13
14
  export * from "./structures/DMMessage";
14
15
  export * from "./structures/Post";
15
16
  export * from "./structures/User";
17
+ export * from "./structures/Command";
18
+ export * from "./structures/CommandMessage";
16
19
  export * from "./gateway/GatewayEvents";
17
20
  export * from "./util/Collection";
18
21
  export * from "./util/Constants";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AAExC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AAExC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ export * from "./managers/DMManager";
6
6
  export * from "./managers/PostManager";
7
7
  export * from "./managers/UserManager";
8
8
  export * from "./managers/UploadManager";
9
+ export * from "./managers/CommandManager";
9
10
  export * from "./rest/APIError";
10
11
  export * from "./rest/RESTManager";
11
12
  export * from "./structures/Base";
@@ -13,6 +14,8 @@ export * from "./structures/DMConversation";
13
14
  export * from "./structures/DMMessage";
14
15
  export * from "./structures/Post";
15
16
  export * from "./structures/User";
17
+ export * from "./structures/Command";
18
+ export * from "./structures/CommandMessage";
16
19
  export * from "./gateway/GatewayEvents";
17
20
  export * from "./util/Collection";
18
21
  export * from "./util/Constants";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AAExC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AAExC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { Client } from "../client/Client";
2
+ import { Command } from "../structures/Command";
3
+ export declare class CommandManager {
4
+ client: Client;
5
+ prefix: string;
6
+ commands: Map<string, Command>;
7
+ aliases: Map<string, string>;
8
+ constructor(client: Client, prefix?: string);
9
+ /**
10
+ * Registers a single command.
11
+ * @param command The command instance to register.
12
+ */
13
+ register(command: Command): this;
14
+ /**
15
+ * Dynamically loads all commands from a given directory.
16
+ * Subdirectories are also scanned.
17
+ * @param directoryPath The absolute path to the commands directory.
18
+ */
19
+ load(directoryPath: string): Promise<this>;
20
+ /**
21
+ * Handles incoming DM messages.
22
+ */
23
+ private handleDMMessage;
24
+ /**
25
+ * Handles incoming post events like mentions and replies.
26
+ */
27
+ private handlePostEvent;
28
+ /**
29
+ * Executes the command from a CommandMessage context.
30
+ * @param context The CommandMessage context.
31
+ */
32
+ private executeCommand;
33
+ }
34
+ //# sourceMappingURL=CommandManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandManager.d.ts","sourceRoot":"","sources":["../../src/managers/CommandManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAKhD,qBAAa,cAAc;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAExB,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAY;IAWhD;;;OAGG;IACI,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQvC;;;;OAIG;IACU,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BvD;;OAEG;YACW,eAAe;IAQ7B;;OAEG;YACW,eAAe;IA0B7B;;;OAGG;YACW,cAAc;CAgC/B"}
@@ -0,0 +1,138 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import { Command } from "../structures/Command";
4
+ import { CommandMessage } from "../structures/CommandMessage";
5
+ export class CommandManager {
6
+ client;
7
+ prefix;
8
+ commands;
9
+ aliases;
10
+ constructor(client, prefix = "/") {
11
+ this.client = client;
12
+ this.prefix = prefix;
13
+ this.commands = new Map();
14
+ this.aliases = new Map();
15
+ // Bind the handler and register it as an event listener.
16
+ this.client.on("dmMessageCreate", this.handleDMMessage.bind(this));
17
+ this.client.on(["mention", "reply", "comment"], this.handlePostEvent.bind(this));
18
+ }
19
+ /**
20
+ * Registers a single command.
21
+ * @param command The command instance to register.
22
+ */
23
+ register(command) {
24
+ this.commands.set(command.name, command);
25
+ for (const alias of command.aliases) {
26
+ this.aliases.set(alias, command.name);
27
+ }
28
+ return this;
29
+ }
30
+ /**
31
+ * Dynamically loads all commands from a given directory.
32
+ * Subdirectories are also scanned.
33
+ * @param directoryPath The absolute path to the commands directory.
34
+ */
35
+ async load(directoryPath) {
36
+ const files = fs.readdirSync(directoryPath);
37
+ for (const file of files) {
38
+ const fullPath = path.join(directoryPath, file);
39
+ const stat = fs.statSync(fullPath);
40
+ if (stat.isDirectory()) {
41
+ await this.load(fullPath); // Recursively load commands from subdirectories
42
+ }
43
+ else if (file.endsWith(".ts") || file.endsWith(".js")) {
44
+ try {
45
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
46
+ const module = require(fullPath);
47
+ // Handle default exports or standard exports
48
+ const CommandClass = module.default || module;
49
+ if (CommandClass && typeof CommandClass === "function" || CommandClass instanceof Command) {
50
+ const commandInstance = CommandClass instanceof Command ? CommandClass : new CommandClass();
51
+ if (commandInstance instanceof Command) {
52
+ this.register(commandInstance);
53
+ }
54
+ }
55
+ }
56
+ catch (error) {
57
+ console.error(`Failed to load command from ${fullPath}:`, error);
58
+ }
59
+ }
60
+ }
61
+ return this;
62
+ }
63
+ /**
64
+ * Handles incoming DM messages.
65
+ */
66
+ async handleDMMessage(message) {
67
+ if (message.fromBot)
68
+ return; // Do not respond to bots
69
+ if (!message.text)
70
+ return;
71
+ const context = new CommandMessage(this.client, "dm", message);
72
+ await this.executeCommand(context);
73
+ }
74
+ /**
75
+ * Handles incoming post events like mentions and replies.
76
+ */
77
+ async handlePostEvent(payload) {
78
+ if (payload.actor.isBot)
79
+ return; // ignore bots
80
+ if (!payload.excerpt)
81
+ return;
82
+ // Quick check using excerpt to avoid unnecessary API requests
83
+ let excerpt = payload.excerpt.trim();
84
+ if (this.client.user?.username) {
85
+ const mentionPrefix = `@${this.client.user.username}`;
86
+ if (excerpt.startsWith(mentionPrefix)) {
87
+ excerpt = excerpt.slice(mentionPrefix.length).trim();
88
+ }
89
+ }
90
+ if (!excerpt.startsWith(this.prefix))
91
+ return;
92
+ const targetId = payload.commentId || payload.postId || (payload.entityType === "post" ? payload.entityId : null);
93
+ if (!targetId)
94
+ return;
95
+ try {
96
+ const post = await this.client.posts.fetch(targetId);
97
+ const context = new CommandMessage(this.client, "post", post);
98
+ await this.executeCommand(context);
99
+ }
100
+ catch (error) {
101
+ console.error(`Error fetching post for command:`, error);
102
+ }
103
+ }
104
+ /**
105
+ * Executes the command from a CommandMessage context.
106
+ * @param context The CommandMessage context.
107
+ */
108
+ async executeCommand(context) {
109
+ let text = context.text.trim();
110
+ // Strip mention if the context is a post
111
+ if (context.type === "post" && this.client.user?.username) {
112
+ const mentionPrefix = `@${this.client.user.username}`;
113
+ if (text.startsWith(mentionPrefix)) {
114
+ text = text.slice(mentionPrefix.length).trim();
115
+ }
116
+ }
117
+ if (!text.startsWith(this.prefix))
118
+ return;
119
+ const args = text.slice(this.prefix.length).trim().split(/ +/);
120
+ const commandName = args.shift()?.toLowerCase();
121
+ if (!commandName)
122
+ return;
123
+ // Resolve command by name or alias
124
+ const command = this.commands.get(commandName) || this.commands.get(this.aliases.get(commandName) || "");
125
+ if (!command)
126
+ return;
127
+ // Check command type support
128
+ if (command.type !== "all" && command.type !== context.type)
129
+ return;
130
+ try {
131
+ await command.execute(this.client, context, args);
132
+ }
133
+ catch (error) {
134
+ console.error(`Error executing command ${command.name}:`, error);
135
+ }
136
+ }
137
+ }
138
+ //# sourceMappingURL=CommandManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandManager.js","sourceRoot":"","sources":["../../src/managers/CommandManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { Client } from "../client/Client";
2
+ import { CommandMessage, type CommandType } from "./CommandMessage";
3
+ export interface CommandOptions {
4
+ /**
5
+ * The name of the command.
6
+ */
7
+ name: string;
8
+ /**
9
+ * A brief description of the command.
10
+ */
11
+ description?: string;
12
+ /**
13
+ * Alternative names for the command.
14
+ */
15
+ aliases?: string[];
16
+ /**
17
+ * Where the command can be executed. Defaults to "all".
18
+ */
19
+ type?: CommandType;
20
+ /**
21
+ * The function to execute when the command is called.
22
+ */
23
+ execute: (client: Client, message: CommandMessage, args: string[]) => any | Promise<any>;
24
+ }
25
+ export declare class Command {
26
+ name: string;
27
+ description: string;
28
+ aliases: string[];
29
+ type: CommandType;
30
+ execute: (client: Client, message: CommandMessage, args: string[]) => any | Promise<any>;
31
+ constructor(options: CommandOptions);
32
+ }
33
+ //# sourceMappingURL=Command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../../src/structures/Command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAC5F;AAED,qBAAa,OAAO;IACT,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;gBAEpF,OAAO,EAAE,cAAc;CAOtC"}
@@ -0,0 +1,15 @@
1
+ export class Command {
2
+ name;
3
+ description;
4
+ aliases;
5
+ type;
6
+ execute;
7
+ constructor(options) {
8
+ this.name = options.name;
9
+ this.description = options.description || "";
10
+ this.aliases = options.aliases || [];
11
+ this.type = options.type || "all";
12
+ this.execute = options.execute;
13
+ }
14
+ }
15
+ //# sourceMappingURL=Command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Command.js","sourceRoot":"","sources":["../../src/structures/Command.ts"],"names":[],"mappings":"AA0BA,MAAM,OAAO,OAAO;IACT,IAAI,CAAS;IACb,WAAW,CAAS;IACpB,OAAO,CAAW;IAClB,IAAI,CAAc;IAClB,OAAO,CAAkF;IAEhG,YAAY,OAAuB;QAC/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACnC,CAAC;CACJ"}
@@ -0,0 +1,20 @@
1
+ import { Client } from "../client/Client";
2
+ import { DMMessage } from "./DMMessage";
3
+ import { Post, type MessageOptions } from "./Post";
4
+ export type CommandType = "dm" | "post" | "all";
5
+ export declare class CommandMessage {
6
+ client: Client;
7
+ type: "dm" | "post";
8
+ authorUsername: string;
9
+ text: string;
10
+ dm?: DMMessage;
11
+ post?: Post;
12
+ constructor(client: Client, type: "dm" | "post", source: DMMessage | Post);
13
+ /**
14
+ * Replies to the command sender.
15
+ * If DM, sends a DM. If Post, sends a comment.
16
+ * @param content Text or MessageOptions
17
+ */
18
+ reply(content: string | MessageOptions): Promise<Post | DMMessage | undefined>;
19
+ }
20
+ //# sourceMappingURL=CommandMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandMessage.d.ts","sourceRoot":"","sources":["../../src/structures/CommandMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEnD,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC;AAEhD,qBAAa,cAAc;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IAEb,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,IAAI,CAAC,EAAE,IAAI,CAAC;gBAEP,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI;IAezE;;;;OAIG;IACU,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc;CAOtD"}
@@ -0,0 +1,36 @@
1
+ export class CommandMessage {
2
+ client;
3
+ type;
4
+ authorUsername;
5
+ text;
6
+ dm;
7
+ post;
8
+ constructor(client, type, source) {
9
+ this.client = client;
10
+ this.type = type;
11
+ if (type === "dm") {
12
+ this.dm = source;
13
+ this.authorUsername = this.dm.authorUsername;
14
+ this.text = this.dm.text;
15
+ }
16
+ else {
17
+ this.post = source;
18
+ this.authorUsername = this.post.author.username;
19
+ this.text = this.post.text;
20
+ }
21
+ }
22
+ /**
23
+ * Replies to the command sender.
24
+ * If DM, sends a DM. If Post, sends a comment.
25
+ * @param content Text or MessageOptions
26
+ */
27
+ async reply(content) {
28
+ if (this.type === "dm" && this.dm) {
29
+ return this.dm.reply(content);
30
+ }
31
+ else if (this.type === "post" && this.post) {
32
+ return this.post.reply(content);
33
+ }
34
+ }
35
+ }
36
+ //# sourceMappingURL=CommandMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandMessage.js","sourceRoot":"","sources":["../../src/structures/CommandMessage.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,cAAc;IAChB,MAAM,CAAS;IACf,IAAI,CAAgB;IACpB,cAAc,CAAS;IACvB,IAAI,CAAS;IAEb,EAAE,CAAa;IACf,IAAI,CAAQ;IAEnB,YAAY,MAAc,EAAE,IAAmB,EAAE,MAAwB;QACrE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,MAAmB,CAAC;YAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC;YAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;QAC7B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,GAAG,MAAc,CAAC;YAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,KAAK,CAAC,OAAgC;QAC/C,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prototurk-sdk",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Prototürk platformunda Bot geliştirmek için geliştirilmiş SDK.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",