karboai 1.3.0 → 1.4.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.
- package/dist/constants.d.ts +4 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +6 -1
- package/dist/core/httptoolkit.js +1 -1
- package/dist/core/hub/dispatcher.d.ts +13 -0
- package/dist/core/hub/dispatcher.d.ts.map +1 -0
- package/dist/core/hub/dispatcher.js +61 -0
- package/dist/core/hub/router.d.ts +13 -0
- package/dist/core/hub/router.d.ts.map +1 -0
- package/dist/core/hub/router.js +40 -0
- package/dist/core/karboai.d.ts +6 -0
- package/dist/core/karboai.d.ts.map +1 -1
- package/dist/core/karboai.js +10 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -1
- package/dist/schemas/index.d.ts +4 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +2 -0
- package/dist/schemas/karboai/message.d.ts +89 -13
- package/dist/schemas/karboai/message.d.ts.map +1 -1
- package/dist/schemas/karboai/message.js +27 -5
- package/dist/schemas/karboai/users.d.ts +24 -7
- package/dist/schemas/karboai/users.d.ts.map +1 -1
- package/dist/schemas/karboai/users.js +22 -2
- package/dist/schemas/sockets.d.ts +16 -0
- package/dist/schemas/sockets.d.ts.map +1 -0
- package/dist/schemas/sockets.js +2 -0
- package/dist/utils/utils.d.ts +1 -0
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +3 -1
- package/package.json +1 -1
package/dist/constants.d.ts
CHANGED
|
@@ -3,4 +3,8 @@ import { ErrorData } from './schemas/error';
|
|
|
3
3
|
export declare const KARBO_API = "https://api.karboai.com";
|
|
4
4
|
export declare const BASIC_HEADERS: UndiciHeaders;
|
|
5
5
|
export declare const ERRORS: Record<number, ErrorData>;
|
|
6
|
+
export declare const SOCKET_TOPICS: {
|
|
7
|
+
0: string;
|
|
8
|
+
1: string;
|
|
9
|
+
};
|
|
6
10
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,SAAS,4BAA4B,CAAC;AAEnD,eAAO,MAAM,aAAa,EAAE,aAE3B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAyB5C,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,SAAS,4BAA4B,CAAC;AAEnD,eAAO,MAAM,aAAa,EAAE,aAE3B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAyB5C,CAAC;AAEF,eAAO,MAAM,aAAa;;;CAIzB,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ERRORS = exports.BASIC_HEADERS = exports.KARBO_API = void 0;
|
|
3
|
+
exports.SOCKET_TOPICS = exports.ERRORS = exports.BASIC_HEADERS = exports.KARBO_API = void 0;
|
|
4
4
|
exports.KARBO_API = 'https://api.karboai.com';
|
|
5
5
|
exports.BASIC_HEADERS = {
|
|
6
6
|
'Content-Type': 'application/json',
|
|
@@ -31,3 +31,8 @@ exports.ERRORS = {
|
|
|
31
31
|
message: 'Rate limit exceeded',
|
|
32
32
|
},
|
|
33
33
|
};
|
|
34
|
+
exports.SOCKET_TOPICS = {
|
|
35
|
+
// TODO: add more topics
|
|
36
|
+
0: 'message',
|
|
37
|
+
1: 'join',
|
|
38
|
+
};
|
package/dist/core/httptoolkit.js
CHANGED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ConnectCallback } from '../../schemas/sockets';
|
|
2
|
+
import { Router } from './router';
|
|
3
|
+
import { KarboAI } from '../karboai';
|
|
4
|
+
export declare class Dispatcher {
|
|
5
|
+
private karbo;
|
|
6
|
+
private socket?;
|
|
7
|
+
private listeners;
|
|
8
|
+
constructor(karbo: KarboAI);
|
|
9
|
+
private processListeners;
|
|
10
|
+
bind: (...routers: Router[]) => void;
|
|
11
|
+
attach: (token: string, callback: ConnectCallback) => void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=dispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../../src/core/hub/dispatcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAyB,MAAM,uBAAuB,CAAC;AAG/E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,MAAM,CAAC,CAAS;IAExB,OAAO,CAAC,SAAS,CAGb;gBAEQ,KAAK,EAAE,OAAO;IAI1B,OAAO,CAAC,gBAAgB,CAsBtB;IAEK,IAAI,GAAI,GAAG,SAAS,MAAM,EAAE,KAAG,IAAI,CAWxC;IAEK,MAAM,GAAI,OAAO,MAAM,EAAE,UAAU,eAAe,KAAG,IAAI,CAa9D;CACH"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Dispatcher = void 0;
|
|
4
|
+
const socket_io_client_1 = require("socket.io-client");
|
|
5
|
+
const constants_1 = require("../../constants");
|
|
6
|
+
const message_1 = require("../../schemas/karboai/message");
|
|
7
|
+
const logger_1 = require("../../utils/logger");
|
|
8
|
+
class Dispatcher {
|
|
9
|
+
karbo;
|
|
10
|
+
socket;
|
|
11
|
+
listeners = new Map();
|
|
12
|
+
constructor(karbo) {
|
|
13
|
+
this.karbo = karbo;
|
|
14
|
+
}
|
|
15
|
+
processListeners = () => {
|
|
16
|
+
this.socket?.on('new_message', (data) => {
|
|
17
|
+
const message = message_1.MessageSchema.parse(data);
|
|
18
|
+
if (message.author.userId == this.karbo.id)
|
|
19
|
+
return;
|
|
20
|
+
const event = constants_1.SOCKET_TOPICS[message.type];
|
|
21
|
+
this.listeners.get(event)?.forEach(async (listener) => {
|
|
22
|
+
for (const middleware of listener.middlewares) {
|
|
23
|
+
if (!(await middleware({ karbo: this.karbo, message })))
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
logger_1.LOGGER.info({
|
|
27
|
+
event,
|
|
28
|
+
content: message.content,
|
|
29
|
+
chatId: message.chatId,
|
|
30
|
+
userId: message.author.userId,
|
|
31
|
+
});
|
|
32
|
+
listener.callback({ karbo: this.karbo, message });
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
bind = (...routers) => {
|
|
37
|
+
for (const router of routers) {
|
|
38
|
+
for (const [event, listeners] of router.listeners) {
|
|
39
|
+
if (!this.listeners.has(event))
|
|
40
|
+
this.listeners.set(event, new Set());
|
|
41
|
+
for (const listener of listeners) {
|
|
42
|
+
this.listeners.get(event).add(listener);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
logger_1.LOGGER.info(`Bound router: ${router.name}`);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
attach = (token, callback) => {
|
|
49
|
+
this.socket = (0, socket_io_client_1.io)(constants_1.KARBO_API, {
|
|
50
|
+
path: '/bot/ws',
|
|
51
|
+
transports: ['websocket'],
|
|
52
|
+
auth: { bot_token: token },
|
|
53
|
+
});
|
|
54
|
+
this.socket.on('connect', async () => {
|
|
55
|
+
logger_1.LOGGER.info('Connected to KarboAI socket');
|
|
56
|
+
await callback();
|
|
57
|
+
this.processListeners();
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
exports.Dispatcher = Dispatcher;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Listener, SocketCallback, SocketEvent, SocketMiddleware } from '../../schemas/sockets';
|
|
2
|
+
export declare class Router {
|
|
3
|
+
private _name;
|
|
4
|
+
private _listeners;
|
|
5
|
+
private middlewares;
|
|
6
|
+
constructor(name?: string);
|
|
7
|
+
get listeners(): Map<string, Set<Listener>>;
|
|
8
|
+
get name(): string;
|
|
9
|
+
pre: (middleware: SocketMiddleware) => number;
|
|
10
|
+
on: (event: SocketEvent, callback: SocketCallback) => void;
|
|
11
|
+
command: (startsWith: string, callback: SocketCallback) => Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/core/hub/router.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,QAAQ,EACR,cAAc,EACd,WAAW,EACX,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAU/B,qBAAa,MAAM;IACjB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAGd;IACJ,OAAO,CAAC,WAAW,CAA0B;gBAEjC,IAAI,GAAE,MAA6B;IAI/C,IAAI,SAAS,+BAEZ;IAED,IAAI,IAAI,WAEP;IAEM,GAAG,GAAI,YAAY,gBAAgB,YACN;IAE7B,EAAE,GAAI,OAAO,WAAW,EAAE,UAAU,cAAc,KAAG,IAAI,CAM9D;IAEK,OAAO,GACZ,YAAY,MAAM,EAClB,UAAU,cAAc,KACvB,OAAO,CAAC,IAAI,CAAC,CAQd;CACH"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Router = void 0;
|
|
4
|
+
const utils_1 = require("../../utils/utils");
|
|
5
|
+
const commandMiddleware = (content) => async (context) => {
|
|
6
|
+
if (!context.message.content.startsWith(content))
|
|
7
|
+
return false;
|
|
8
|
+
return true;
|
|
9
|
+
};
|
|
10
|
+
class Router {
|
|
11
|
+
_name;
|
|
12
|
+
_listeners = new Map();
|
|
13
|
+
middlewares = [];
|
|
14
|
+
constructor(name = (0, utils_1.generateRouterName)()) {
|
|
15
|
+
this._name = name;
|
|
16
|
+
}
|
|
17
|
+
get listeners() {
|
|
18
|
+
return this._listeners;
|
|
19
|
+
}
|
|
20
|
+
get name() {
|
|
21
|
+
return this._name;
|
|
22
|
+
}
|
|
23
|
+
pre = (middleware) => this.middlewares.push(middleware);
|
|
24
|
+
on = (event, callback) => {
|
|
25
|
+
if (!this._listeners.has(event))
|
|
26
|
+
this._listeners.set(event, new Set());
|
|
27
|
+
this._listeners
|
|
28
|
+
.get(event)
|
|
29
|
+
.add({ middlewares: this.middlewares, callback });
|
|
30
|
+
};
|
|
31
|
+
command = async (startsWith, callback) => {
|
|
32
|
+
if (!this._listeners.has('message'))
|
|
33
|
+
this._listeners.set('message', new Set());
|
|
34
|
+
this._listeners.get('message').add({
|
|
35
|
+
middlewares: [commandMiddleware(startsWith), ...this.middlewares],
|
|
36
|
+
callback,
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
exports.Router = Router;
|
package/dist/core/karboai.d.ts
CHANGED
|
@@ -2,10 +2,14 @@ import { KarboConfig } from '../schemas/configs';
|
|
|
2
2
|
import { MembersResponse, MeResponse } from '../schemas/responses';
|
|
3
3
|
import { Message } from '../schemas/karboai/message';
|
|
4
4
|
import { User } from '../schemas/karboai/users';
|
|
5
|
+
import { ConnectCallback } from '../schemas/sockets';
|
|
6
|
+
import { Router } from './hub/router';
|
|
5
7
|
export declare class KarboAI {
|
|
6
8
|
private readonly config;
|
|
7
9
|
private readonly httptoolkit;
|
|
10
|
+
private readonly dispatcher;
|
|
8
11
|
constructor(config: KarboConfig);
|
|
12
|
+
get id(): string;
|
|
9
13
|
private sendMessage;
|
|
10
14
|
me: () => Promise<MeResponse>;
|
|
11
15
|
text: (chatId: string, content: string, replyMessageId?: string) => Promise<{
|
|
@@ -22,5 +26,7 @@ export declare class KarboAI {
|
|
|
22
26
|
user: (userId: string) => Promise<User>;
|
|
23
27
|
leave: (chatId: string) => Promise<boolean>;
|
|
24
28
|
kick: (chatId: string, userId: string) => Promise<boolean>;
|
|
29
|
+
attach: (callback?: ConnectCallback) => void;
|
|
30
|
+
bind: (...routers: Router[]) => void;
|
|
25
31
|
}
|
|
26
32
|
//# sourceMappingURL=karboai.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"karboai.d.ts","sourceRoot":"","sources":["../../src/core/karboai.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAqB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EACL,eAAe,EAEf,UAAU,EAQX,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,OAAO,EAAiB,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,IAAI,EAAc,MAAM,0BAA0B,CAAC;AAE5D,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;
|
|
1
|
+
{"version":3,"file":"karboai.d.ts","sourceRoot":"","sources":["../../src/core/karboai.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAqB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EACL,eAAe,EAEf,UAAU,EAQX,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,OAAO,EAAiB,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,IAAI,EAAc,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;gBAE5B,MAAM,EAAE,WAAW;IAQ/B,IAAI,EAAE,WAEL;IAED,OAAO,CAAC,WAAW,CAcd;IAEE,EAAE,QAAa,OAAO,CAAC,UAAU,CAAC,CAIpC;IAEE,IAAI,GACT,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,iBAAiB,MAAM;;;OAMpB;IAEE,KAAK,GACV,QAAQ,MAAM,EACd,QAAQ,MAAM,EAAE,EAChB,iBAAiB,MAAM;;;OAMpB;IAEE,MAAM,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,CAWnD;IAEK,OAAO,GACZ,QAAQ,MAAM,EACd,WAAW,MAAM,KAChB,OAAO,CAAC,OAAO,CAAC,CAId;IAEE,OAAO,GACZ,QAAQ,MAAM,EACd,QAAO,MAAY,EACnB,SAAQ,MAAU,KACjB,OAAO,CAAC,eAAe,CAAC,CAItB;IAEE,IAAI,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAI9C;IAEE,KAAK,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC,CAOhD;IAEA,IAAI,GAAU,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC,CAO/D;IAEA,MAAM,GAAI,WAAU,eAAgC,KAAG,IAAI,CACZ;IAE/C,IAAI,GAAI,GAAG,SAAS,MAAM,EAAE,KAAG,IAAI,CACP;CACpC"}
|
package/dist/core/karboai.js
CHANGED
|
@@ -11,13 +11,19 @@ const utils_1 = require("../utils/utils");
|
|
|
11
11
|
const httptoolkit_1 = require("./httptoolkit");
|
|
12
12
|
const message_1 = require("../schemas/karboai/message");
|
|
13
13
|
const users_1 = require("../schemas/karboai/users");
|
|
14
|
+
const dispatcher_1 = require("./hub/dispatcher");
|
|
14
15
|
class KarboAI {
|
|
15
16
|
config;
|
|
16
17
|
httptoolkit;
|
|
18
|
+
dispatcher;
|
|
17
19
|
constructor(config) {
|
|
18
20
|
this.config = config;
|
|
19
|
-
this.httptoolkit = new httptoolkit_1.HttpToolKit(config.token);
|
|
20
|
-
|
|
21
|
+
this.httptoolkit = new httptoolkit_1.HttpToolKit(this.config.token);
|
|
22
|
+
this.dispatcher = new dispatcher_1.Dispatcher(this);
|
|
23
|
+
(0, logger_1.default)(!!this.config.enableLogging);
|
|
24
|
+
}
|
|
25
|
+
get id() {
|
|
26
|
+
return this.config.id;
|
|
21
27
|
}
|
|
22
28
|
sendMessage = async (config) => await this.httptoolkit.post({
|
|
23
29
|
path: '/bot/send-message',
|
|
@@ -74,5 +80,7 @@ class KarboAI {
|
|
|
74
80
|
body: JSON.stringify({ user_id: userId }),
|
|
75
81
|
schema: responses_1.OkResponseSchema,
|
|
76
82
|
})).ok;
|
|
83
|
+
attach = (callback = async () => { }) => this.dispatcher.attach(this.config.token, callback);
|
|
84
|
+
bind = (...routers) => this.dispatcher.bind(...routers);
|
|
77
85
|
}
|
|
78
86
|
exports.KarboAI = KarboAI;
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,cAAc,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
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
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KarboAI = void 0;
|
|
17
|
+
exports.KarboAI = exports.Router = void 0;
|
|
18
|
+
var router_1 = require("./core/hub/router");
|
|
19
|
+
Object.defineProperty(exports, "Router", { enumerable: true, get: function () { return router_1.Router; } });
|
|
4
20
|
var karboai_1 = require("./core/karboai");
|
|
5
21
|
Object.defineProperty(exports, "KarboAI", { enumerable: true, get: function () { return karboai_1.KarboAI; } });
|
|
22
|
+
__exportStar(require("./schemas/index"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,32 +1,108 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const MessageSchema: z.ZodObject<{
|
|
2
|
+
export declare const MessageSchema: z.ZodPipe<z.ZodObject<{
|
|
3
3
|
message_id: z.ZodString;
|
|
4
4
|
chat_id: z.ZodString;
|
|
5
|
-
user_id: z.ZodString;
|
|
6
5
|
content: z.ZodString;
|
|
7
|
-
created_time: z.
|
|
6
|
+
created_time: z.ZodNumber;
|
|
8
7
|
type: z.ZodNumber;
|
|
9
8
|
reply_message_id: z.ZodNullable<z.ZodString>;
|
|
10
|
-
audio: z.ZodNullable<z.ZodString
|
|
11
|
-
sticker: z.ZodNullable<z.ZodString
|
|
9
|
+
audio: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
10
|
+
sticker: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
12
11
|
images: z.ZodArray<z.ZodString>;
|
|
12
|
+
audio_duration_ms: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
13
|
+
waveform: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
14
|
+
video_note: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
15
|
+
video_note_duration_ms: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
16
|
+
transparent: z.ZodOptional<z.ZodBoolean>;
|
|
17
|
+
bubble_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
18
|
+
bubble_version: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
19
|
+
reactions: z.ZodOptional<z.ZodArray<z.ZodAny>>;
|
|
13
20
|
author: z.ZodPipe<z.ZodObject<{
|
|
14
21
|
user_id: z.ZodString;
|
|
15
22
|
nickname: z.ZodString;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
23
|
+
avatar_url: z.ZodString;
|
|
24
|
+
avatar_frame: z.ZodOptional<z.ZodNullable<z.ZodObject<{}, z.core.$strip>>>;
|
|
25
|
+
role: z.ZodOptional<z.ZodNumber>;
|
|
26
|
+
app_role: z.ZodOptional<z.ZodNumber>;
|
|
27
|
+
panel_color: z.ZodOptional<z.ZodString>;
|
|
28
|
+
level: z.ZodOptional<z.ZodNumber>;
|
|
29
|
+
nickname_color: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
30
|
+
nickname_emoji: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
19
31
|
}, z.core.$strip>, z.ZodTransform<{
|
|
20
32
|
userId: string;
|
|
21
33
|
nickname: string;
|
|
22
|
-
|
|
34
|
+
avatarUrl: string;
|
|
35
|
+
avatarFrame: Record<string, never> | null | undefined;
|
|
36
|
+
role: number | undefined;
|
|
37
|
+
appRole: number | undefined;
|
|
38
|
+
panelColor: string | undefined;
|
|
39
|
+
level: number | undefined;
|
|
40
|
+
nicknameColor: string | null | undefined;
|
|
41
|
+
nicknameEmoji: string | null | undefined;
|
|
23
42
|
}, {
|
|
24
43
|
user_id: string;
|
|
25
44
|
nickname: string;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
45
|
+
avatar_url: string;
|
|
46
|
+
avatar_frame?: Record<string, never> | null | undefined;
|
|
47
|
+
role?: number | undefined;
|
|
48
|
+
app_role?: number | undefined;
|
|
49
|
+
panel_color?: string | undefined;
|
|
50
|
+
level?: number | undefined;
|
|
51
|
+
nickname_color?: string | null | undefined;
|
|
52
|
+
nickname_emoji?: string | null | undefined;
|
|
29
53
|
}>>;
|
|
30
|
-
}, z.core.$strip
|
|
54
|
+
}, z.core.$strip>, z.ZodTransform<{
|
|
55
|
+
messageId: string;
|
|
56
|
+
chatId: string;
|
|
57
|
+
content: string;
|
|
58
|
+
createdTime: number;
|
|
59
|
+
type: number;
|
|
60
|
+
replyMessageId: string | null;
|
|
61
|
+
audio: string | null | undefined;
|
|
62
|
+
sticker: string | null | undefined;
|
|
63
|
+
images: string[];
|
|
64
|
+
author: {
|
|
65
|
+
userId: string;
|
|
66
|
+
nickname: string;
|
|
67
|
+
avatarUrl: string;
|
|
68
|
+
avatarFrame: Record<string, never> | null | undefined;
|
|
69
|
+
role: number | undefined;
|
|
70
|
+
appRole: number | undefined;
|
|
71
|
+
panelColor: string | undefined;
|
|
72
|
+
level: number | undefined;
|
|
73
|
+
nicknameColor: string | null | undefined;
|
|
74
|
+
nicknameEmoji: string | null | undefined;
|
|
75
|
+
};
|
|
76
|
+
}, {
|
|
77
|
+
message_id: string;
|
|
78
|
+
chat_id: string;
|
|
79
|
+
content: string;
|
|
80
|
+
created_time: number;
|
|
81
|
+
type: number;
|
|
82
|
+
reply_message_id: string | null;
|
|
83
|
+
images: string[];
|
|
84
|
+
author: {
|
|
85
|
+
userId: string;
|
|
86
|
+
nickname: string;
|
|
87
|
+
avatarUrl: string;
|
|
88
|
+
avatarFrame: Record<string, never> | null | undefined;
|
|
89
|
+
role: number | undefined;
|
|
90
|
+
appRole: number | undefined;
|
|
91
|
+
panelColor: string | undefined;
|
|
92
|
+
level: number | undefined;
|
|
93
|
+
nicknameColor: string | null | undefined;
|
|
94
|
+
nicknameEmoji: string | null | undefined;
|
|
95
|
+
};
|
|
96
|
+
audio?: string | null | undefined;
|
|
97
|
+
sticker?: string | null | undefined;
|
|
98
|
+
audio_duration_ms?: number | null | undefined;
|
|
99
|
+
waveform?: string | null | undefined;
|
|
100
|
+
video_note?: string | null | undefined;
|
|
101
|
+
video_note_duration_ms?: number | null | undefined;
|
|
102
|
+
transparent?: boolean | undefined;
|
|
103
|
+
bubble_id?: string | null | undefined;
|
|
104
|
+
bubble_version?: number | null | undefined;
|
|
105
|
+
reactions?: any[] | undefined;
|
|
106
|
+
}>>;
|
|
31
107
|
export type Message = z.infer<typeof MessageSchema>;
|
|
32
108
|
//# sourceMappingURL=message.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/schemas/karboai/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../src/schemas/karboai/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCtB,CAAC;AAEL,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
|
|
@@ -3,16 +3,38 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MessageSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const users_1 = require("./users");
|
|
6
|
-
exports.MessageSchema = zod_1.z
|
|
6
|
+
exports.MessageSchema = zod_1.z
|
|
7
|
+
.object({
|
|
7
8
|
message_id: zod_1.z.string(),
|
|
8
9
|
chat_id: zod_1.z.string(),
|
|
9
|
-
user_id: zod_1.z.string(),
|
|
10
10
|
content: zod_1.z.string(),
|
|
11
|
-
created_time: zod_1.z.
|
|
11
|
+
created_time: zod_1.z.number(),
|
|
12
12
|
type: zod_1.z.number(),
|
|
13
13
|
reply_message_id: zod_1.z.string().nullable(),
|
|
14
|
-
audio: zod_1.z.string().nullable(),
|
|
15
|
-
sticker: zod_1.z.string().nullable(),
|
|
14
|
+
audio: zod_1.z.string().optional().nullable(),
|
|
15
|
+
sticker: zod_1.z.string().nullable().optional(),
|
|
16
16
|
images: zod_1.z.array(zod_1.z.string()),
|
|
17
|
+
audio_duration_ms: zod_1.z.number().nullable().optional(),
|
|
18
|
+
waveform: zod_1.z.string().nullable().optional(),
|
|
19
|
+
video_note: zod_1.z.string().nullable().optional(),
|
|
20
|
+
video_note_duration_ms: zod_1.z.number().nullable().optional(),
|
|
21
|
+
transparent: zod_1.z.boolean().optional(),
|
|
22
|
+
bubble_id: zod_1.z.string().nullable().optional(),
|
|
23
|
+
bubble_version: zod_1.z.number().nullable().optional(),
|
|
24
|
+
reactions: zod_1.z.array(zod_1.z.any()).optional(),
|
|
17
25
|
author: users_1.AuthorSchema,
|
|
26
|
+
})
|
|
27
|
+
.transform((data) => {
|
|
28
|
+
return {
|
|
29
|
+
messageId: data.message_id,
|
|
30
|
+
chatId: data.chat_id,
|
|
31
|
+
content: data.content,
|
|
32
|
+
createdTime: data.created_time,
|
|
33
|
+
type: data.type,
|
|
34
|
+
replyMessageId: data.reply_message_id,
|
|
35
|
+
audio: data.audio,
|
|
36
|
+
sticker: data.sticker,
|
|
37
|
+
images: data.images,
|
|
38
|
+
author: data.author,
|
|
39
|
+
};
|
|
18
40
|
});
|
|
@@ -39,19 +39,36 @@ export declare const MemberSchema: z.ZodPipe<z.ZodObject<{
|
|
|
39
39
|
export declare const AuthorSchema: z.ZodPipe<z.ZodObject<{
|
|
40
40
|
user_id: z.ZodString;
|
|
41
41
|
nickname: z.ZodString;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
avatar_url: z.ZodString;
|
|
43
|
+
avatar_frame: z.ZodOptional<z.ZodNullable<z.ZodObject<{}, z.core.$strip>>>;
|
|
44
|
+
role: z.ZodOptional<z.ZodNumber>;
|
|
45
|
+
app_role: z.ZodOptional<z.ZodNumber>;
|
|
46
|
+
panel_color: z.ZodOptional<z.ZodString>;
|
|
47
|
+
level: z.ZodOptional<z.ZodNumber>;
|
|
48
|
+
nickname_color: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
49
|
+
nickname_emoji: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
45
50
|
}, z.core.$strip>, z.ZodTransform<{
|
|
46
51
|
userId: string;
|
|
47
52
|
nickname: string;
|
|
48
|
-
|
|
53
|
+
avatarUrl: string;
|
|
54
|
+
avatarFrame: Record<string, never> | null | undefined;
|
|
55
|
+
role: number | undefined;
|
|
56
|
+
appRole: number | undefined;
|
|
57
|
+
panelColor: string | undefined;
|
|
58
|
+
level: number | undefined;
|
|
59
|
+
nicknameColor: string | null | undefined;
|
|
60
|
+
nicknameEmoji: string | null | undefined;
|
|
49
61
|
}, {
|
|
50
62
|
user_id: string;
|
|
51
63
|
nickname: string;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
64
|
+
avatar_url: string;
|
|
65
|
+
avatar_frame?: Record<string, never> | null | undefined;
|
|
66
|
+
role?: number | undefined;
|
|
67
|
+
app_role?: number | undefined;
|
|
68
|
+
panel_color?: string | undefined;
|
|
69
|
+
level?: number | undefined;
|
|
70
|
+
nickname_color?: string | null | undefined;
|
|
71
|
+
nickname_emoji?: string | null | undefined;
|
|
55
72
|
}>>;
|
|
56
73
|
export type User = z.infer<typeof UserSchema>;
|
|
57
74
|
export type Member = z.infer<typeof MemberSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../src/schemas/karboai/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;GAQrB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;GAOvB,CAAC;AAEH,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../../src/schemas/karboai/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;GAQrB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;GAOvB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BrB,CAAC;AAEL,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
@@ -26,10 +26,30 @@ exports.MemberSchema = BasicUserSchema.transform((data) => {
|
|
|
26
26
|
role: data.role,
|
|
27
27
|
};
|
|
28
28
|
});
|
|
29
|
-
exports.AuthorSchema =
|
|
29
|
+
exports.AuthorSchema = zod_1.z
|
|
30
|
+
.object({
|
|
31
|
+
user_id: zod_1.z.string(),
|
|
32
|
+
nickname: zod_1.z.string(),
|
|
33
|
+
avatar_url: zod_1.z.string(),
|
|
34
|
+
avatar_frame: zod_1.z.object().nullable().optional(),
|
|
35
|
+
role: zod_1.z.number().optional(),
|
|
36
|
+
app_role: zod_1.z.number().optional(),
|
|
37
|
+
panel_color: zod_1.z.string().optional(),
|
|
38
|
+
level: zod_1.z.number().optional(),
|
|
39
|
+
nickname_color: zod_1.z.string().nullable().optional(),
|
|
40
|
+
nickname_emoji: zod_1.z.string().nullable().optional(),
|
|
41
|
+
})
|
|
42
|
+
.transform((data) => {
|
|
30
43
|
return {
|
|
31
44
|
userId: data.user_id,
|
|
32
45
|
nickname: data.nickname,
|
|
33
|
-
|
|
46
|
+
avatarUrl: data.avatar_url,
|
|
47
|
+
avatarFrame: data.avatar_frame,
|
|
48
|
+
role: data.role,
|
|
49
|
+
appRole: data.app_role,
|
|
50
|
+
panelColor: data.panel_color,
|
|
51
|
+
level: data.level,
|
|
52
|
+
nicknameColor: data.nickname_color,
|
|
53
|
+
nicknameEmoji: data.nickname_emoji,
|
|
34
54
|
};
|
|
35
55
|
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SOCKET_TOPICS } from '../constants';
|
|
2
|
+
import { KarboAI } from '../core/karboai';
|
|
3
|
+
import { Message } from './karboai/message';
|
|
4
|
+
export type KarboContext = {
|
|
5
|
+
karbo: KarboAI;
|
|
6
|
+
message: Message;
|
|
7
|
+
};
|
|
8
|
+
export type SocketCallback = (context: KarboContext) => Promise<void>;
|
|
9
|
+
export type SocketMiddleware = (context: KarboContext) => Promise<boolean | undefined>;
|
|
10
|
+
export type ConnectCallback = () => Promise<void>;
|
|
11
|
+
export type SocketEvent = (typeof SOCKET_TOPICS)[keyof typeof SOCKET_TOPICS];
|
|
12
|
+
export type Listener = {
|
|
13
|
+
callback: SocketCallback;
|
|
14
|
+
middlewares: SocketMiddleware[];
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=sockets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sockets.d.ts","sourceRoot":"","sources":["../../src/schemas/sockets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAC7B,OAAO,EAAE,YAAY,KAClB,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;AAClC,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAClD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE7E,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,gBAAgB,EAAE,CAAC;CACjC,CAAC"}
|
package/dist/utils/utils.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAGjE,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAGjE,CAAC;AAEJ,eAAO,MAAM,kBAAkB,QAAO,MACkB,CAAC"}
|
package/dist/utils/utils.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.clean = void 0;
|
|
3
|
+
exports.generateRouterName = exports.clean = void 0;
|
|
4
4
|
const clean = (body) => Object.fromEntries(Object.entries(body).filter(([_, value]) => value !== undefined));
|
|
5
5
|
exports.clean = clean;
|
|
6
|
+
const generateRouterName = () => `router-${Math.random().toString(36).substring(2, 9)}`;
|
|
7
|
+
exports.generateRouterName = generateRouterName;
|