@betterinternship/core 2.5.0 → 2.5.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/dist/lib/broker/base.task.d.ts +16 -0
- package/dist/lib/broker/base.task.js +41 -0
- package/dist/lib/broker/base.task.js.map +1 -0
- package/dist/lib/broker/broker.d.ts +12 -16
- package/dist/lib/broker/broker.js +54 -69
- package/dist/lib/broker/broker.js.map +1 -1
- package/dist/lib/broker/index.d.ts +1 -1
- package/dist/lib/broker/index.js +1 -1
- package/dist/lib/broker/tasks/base.task.d.ts +22 -22
- package/dist/lib/broker/tasks/base.task.js +33 -33
- package/dist/lib/broker/tasks/email..task.d.ts +15 -15
- package/dist/lib/broker/tasks/email..task.js +3 -3
- package/dist/lib/broker/tasks/index.d.ts +1 -1
- package/dist/lib/broker/tasks/sign.task.d.ts +35 -35
- package/dist/lib/broker/tasks/sign.task.js +3 -3
- package/dist/lib/chat/chat.d.ts +51 -51
- package/dist/lib/chat/index.d.ts +2 -2
- package/dist/lib/chat/pb.d.ts +3 -3
- package/dist/lib/chat/pb.js +15 -15
- package/dist/lib/email/email.d.ts +11 -11
- package/dist/lib/email/email.js +2 -1
- package/dist/lib/email/email.js.map +1 -1
- package/dist/lib/email/index.d.ts +1 -1
- package/dist/lib/email/index.js +1 -1
- package/dist/lib/env.d.ts +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type BaseTaskResponseHandler<Response> = (response: Response) => Promise<void>;
|
|
2
|
+
export declare class BaseTaskInitiator<Request, Response> {
|
|
3
|
+
private requestQueueId;
|
|
4
|
+
private responseQueueId;
|
|
5
|
+
constructor(queueId: string, handler: BaseTaskResponseHandler<Response>);
|
|
6
|
+
init(handler: BaseTaskResponseHandler<Response>): Promise<void>;
|
|
7
|
+
sendRequest(content: Request): Promise<boolean>;
|
|
8
|
+
}
|
|
9
|
+
type BaseTaskRequestHandler<Request, Response> = (request: Request) => Promise<Response>;
|
|
10
|
+
export declare class BaseTaskRunner<Request, Response> {
|
|
11
|
+
private requestQueueId;
|
|
12
|
+
private responseQueueId;
|
|
13
|
+
constructor(queueId: string, handler: BaseTaskRequestHandler<Request, Response>);
|
|
14
|
+
private init;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BrokerAPI } from './broker.js';
|
|
2
|
+
export class BaseTaskInitiator {
|
|
3
|
+
requestQueueId;
|
|
4
|
+
responseQueueId;
|
|
5
|
+
constructor(queueId, handler) {
|
|
6
|
+
this.requestQueueId = `request.${queueId}`;
|
|
7
|
+
this.responseQueueId = `response.${queueId}`;
|
|
8
|
+
void this.init(handler);
|
|
9
|
+
}
|
|
10
|
+
async init(handler) {
|
|
11
|
+
const brokerAPI = await BrokerAPI.instance();
|
|
12
|
+
return await brokerAPI.addQueueHandler(this.responseQueueId, async (message) => {
|
|
13
|
+
const content = message?.content?.toString?.();
|
|
14
|
+
const response = JSON.parse(content);
|
|
15
|
+
await handler(response);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
async sendRequest(content) {
|
|
19
|
+
const brokerAPI = await BrokerAPI.instance();
|
|
20
|
+
return brokerAPI.sendToQueue(this.requestQueueId, content);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export class BaseTaskRunner {
|
|
24
|
+
requestQueueId;
|
|
25
|
+
responseQueueId;
|
|
26
|
+
constructor(queueId, handler) {
|
|
27
|
+
this.requestQueueId = `request.${queueId}`;
|
|
28
|
+
this.responseQueueId = `response.${queueId}`;
|
|
29
|
+
void this.init(handler);
|
|
30
|
+
}
|
|
31
|
+
async init(handler) {
|
|
32
|
+
const brokerAPI = await BrokerAPI.instance();
|
|
33
|
+
await brokerAPI.addQueueHandler(this.requestQueueId, async (message) => {
|
|
34
|
+
const content = message?.content?.toString?.();
|
|
35
|
+
const request = JSON.parse(content);
|
|
36
|
+
const response = await handler(request);
|
|
37
|
+
await brokerAPI.sendToQueue(this.responseQueueId, response);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=base.task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.task.js","sourceRoot":"","sources":["../../../lib/broker/base.task.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQxC,MAAM,OAAO,iBAAiB;IACpB,cAAc,CAAS;IACvB,eAAe,CAAS;IAQhC,YAAY,OAAe,EAAE,OAA0C;QACrE,IAAI,CAAC,cAAc,GAAG,WAAW,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,YAAY,OAAO,EAAE,CAAC;QAC7C,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAA0C;QACnD,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC7C,OAAO,MAAM,SAAS,CAAC,eAAe,CACpC,IAAI,CAAC,eAAe,EACpB,KAAK,EAAE,OAA4B,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAa,CAAC;YACjD,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC,CACF,CAAC;IACJ,CAAC;IAQD,KAAK,CAAC,WAAW,CAAC,OAAgB;QAChC,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;CACF;AASD,MAAM,OAAO,cAAc;IACjB,cAAc,CAAS;IACvB,eAAe,CAAS;IAQhC,YACE,OAAe,EACf,OAAkD;QAElD,IAAI,CAAC,cAAc,GAAG,WAAW,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,YAAY,OAAO,EAAE,CAAC;QAC7C,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,OAAkD;QACnE,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC7C,MAAM,SAAS,CAAC,eAAe,CAC7B,IAAI,CAAC,cAAc,EACnB,KAAK,EAAE,OAA4B,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;YAC/C,MAAM,QAAQ,GAAa,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC9D,CAAC,CACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
import * as amqp from 'amqplib';
|
|
2
|
-
export declare const QueueName: (...args: string[]) => string;
|
|
3
|
-
export declare class BrokerAPI {
|
|
4
|
-
connection: amqp.ChannelModel;
|
|
5
|
-
channels: Record<string, amqp.Channel>;
|
|
6
|
-
private static __instance;
|
|
7
|
-
private constructor();
|
|
8
|
-
static instance(): Promise<BrokerAPI>;
|
|
9
|
-
assertQueue(queueId: string, options?: amqp.Options.AssertQueue): Promise<amqp.Replies.AssertQueue>;
|
|
10
|
-
sendToQueue(queueId: string, content: any): boolean
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
resolve: () => void;
|
|
14
|
-
reject: () => void;
|
|
15
|
-
}>;
|
|
16
|
-
}
|
|
1
|
+
import * as amqp from 'amqplib';
|
|
2
|
+
export declare const QueueName: (...args: string[]) => string;
|
|
3
|
+
export declare class BrokerAPI {
|
|
4
|
+
connection: amqp.ChannelModel;
|
|
5
|
+
channels: Record<string, amqp.Channel>;
|
|
6
|
+
private static __instance;
|
|
7
|
+
private constructor();
|
|
8
|
+
static instance(): Promise<BrokerAPI>;
|
|
9
|
+
assertQueue(queueId: string, options?: amqp.Options.AssertQueue): Promise<amqp.Replies.AssertQueue>;
|
|
10
|
+
sendToQueue(queueId: string, content: any): Promise<boolean>;
|
|
11
|
+
addQueueHandler<T>(queueId: string, handler: (message: amqp.ConsumeMessage) => Promise<T>): Promise<void>;
|
|
12
|
+
}
|
|
@@ -1,70 +1,55 @@
|
|
|
1
|
-
import * as amqp from 'amqplib';
|
|
2
|
-
import { ENV } from '../env.js';
|
|
3
|
-
const RABBITMQ_ENABLED = ENV.RABBITMQ_ENABLED;
|
|
4
|
-
const RABBITMQ_URL = ENV.RABBITMQ_URL;
|
|
5
|
-
if (!RABBITMQ_URL && RABBITMQ_ENABLED)
|
|
6
|
-
throw new Error('[ERROR:ENV] Missing RabbitMQ configuration.');
|
|
7
|
-
export const QueueName = (...args) => {
|
|
8
|
-
if (ENV.ENVIRONMENT === 'production')
|
|
9
|
-
return args.join('.');
|
|
10
|
-
else
|
|
11
|
-
return ['dev', ...args].join('.');
|
|
12
|
-
};
|
|
13
|
-
export class BrokerAPI {
|
|
14
|
-
connection;
|
|
15
|
-
channels;
|
|
16
|
-
static __instance;
|
|
17
|
-
constructor() { }
|
|
18
|
-
static async instance() {
|
|
19
|
-
if (BrokerAPI.__instance || !RABBITMQ_ENABLED)
|
|
20
|
-
return BrokerAPI.__instance;
|
|
21
|
-
BrokerAPI.__instance = new BrokerAPI();
|
|
22
|
-
BrokerAPI.__instance.connection = await amqp.connect(RABBITMQ_URL);
|
|
23
|
-
BrokerAPI.__instance.channels = {
|
|
24
|
-
asserter: await BrokerAPI.__instance.connection.createChannel(),
|
|
25
|
-
reader: await BrokerAPI.__instance.connection.createChannel(),
|
|
26
|
-
writer: await BrokerAPI.__instance.connection.createChannel(),
|
|
27
|
-
};
|
|
28
|
-
return BrokerAPI.__instance;
|
|
29
|
-
}
|
|
30
|
-
async assertQueue(queueId, options) {
|
|
31
|
-
const result = await this.channels.asserter.assertQueue(queueId, {
|
|
32
|
-
durable: true,
|
|
33
|
-
...options,
|
|
34
|
-
});
|
|
35
|
-
console.log(`[BROKER] Queue "${queueId}" has been asserted.`);
|
|
36
|
-
return result;
|
|
37
|
-
}
|
|
38
|
-
sendToQueue(queueId, content) {
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
console.log(`[BROKER] Message "${message.properties.messageId}" rejected from queue "${queueId}".`);
|
|
56
|
-
};
|
|
57
|
-
let resolveResultPromise;
|
|
58
|
-
const resultPromise = new Promise((r) => (resolveResultPromise = r));
|
|
59
|
-
await this.channels.reader.consume(queueId, (message) => {
|
|
60
|
-
const content = message?.content?.toString?.();
|
|
61
|
-
resolveResultPromise({
|
|
62
|
-
content: content ? JSON.parse(content) : null,
|
|
63
|
-
resolve: () => message && resolveFromQueue(message),
|
|
64
|
-
reject: () => message && rejectFromQueue(message),
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
return resultPromise;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
1
|
+
import * as amqp from 'amqplib';
|
|
2
|
+
import { ENV } from '../env.js';
|
|
3
|
+
const RABBITMQ_ENABLED = ENV.RABBITMQ_ENABLED;
|
|
4
|
+
const RABBITMQ_URL = ENV.RABBITMQ_URL;
|
|
5
|
+
if (!RABBITMQ_URL && RABBITMQ_ENABLED)
|
|
6
|
+
throw new Error('[ERROR:ENV] Missing RabbitMQ configuration.');
|
|
7
|
+
export const QueueName = (...args) => {
|
|
8
|
+
if (ENV.ENVIRONMENT === 'production')
|
|
9
|
+
return args.join('.');
|
|
10
|
+
else
|
|
11
|
+
return ['dev', ...args].join('.');
|
|
12
|
+
};
|
|
13
|
+
export class BrokerAPI {
|
|
14
|
+
connection;
|
|
15
|
+
channels;
|
|
16
|
+
static __instance;
|
|
17
|
+
constructor() { }
|
|
18
|
+
static async instance() {
|
|
19
|
+
if (BrokerAPI.__instance || !RABBITMQ_ENABLED)
|
|
20
|
+
return BrokerAPI.__instance;
|
|
21
|
+
BrokerAPI.__instance = new BrokerAPI();
|
|
22
|
+
BrokerAPI.__instance.connection = await amqp.connect(RABBITMQ_URL);
|
|
23
|
+
BrokerAPI.__instance.channels = {
|
|
24
|
+
asserter: await BrokerAPI.__instance.connection.createChannel(),
|
|
25
|
+
reader: await BrokerAPI.__instance.connection.createChannel(),
|
|
26
|
+
writer: await BrokerAPI.__instance.connection.createChannel(),
|
|
27
|
+
};
|
|
28
|
+
return BrokerAPI.__instance;
|
|
29
|
+
}
|
|
30
|
+
async assertQueue(queueId, options) {
|
|
31
|
+
const result = await this.channels.asserter.assertQueue(queueId, {
|
|
32
|
+
durable: true,
|
|
33
|
+
...options,
|
|
34
|
+
});
|
|
35
|
+
console.log(`[BROKER] Queue "${queueId}" has been asserted.`);
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
async sendToQueue(queueId, content) {
|
|
39
|
+
const contentStr = JSON.stringify(content);
|
|
40
|
+
const result = this.channels.writer.sendToQueue(queueId, Buffer.from(contentStr));
|
|
41
|
+
if (result) {
|
|
42
|
+
console.log(`[BROKER] Message sent to queue "${queueId}": ${contentStr}.`);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
console.log(`[BROKER] Message could not sent to queue "${queueId}": ${contentStr}.`);
|
|
46
|
+
}
|
|
47
|
+
return Promise.resolve(result);
|
|
48
|
+
}
|
|
49
|
+
async addQueueHandler(queueId, handler) {
|
|
50
|
+
await this.channels.reader.consume(queueId, (message) => {
|
|
51
|
+
void handler(message);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
70
55
|
//# sourceMappingURL=broker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../lib/broker/broker.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../lib/broker/broker.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGhC,MAAM,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;AAC9C,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;AACtC,IAAI,CAAC,YAAY,IAAI,gBAAgB;IACnC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;AAKjE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,IAAc,EAAU,EAAE;IACrD,IAAI,GAAG,CAAC,WAAW,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;QACvD,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC,CAAC;AAKF,MAAM,OAAO,SAAS;IAEpB,UAAU,CAAoB;IAC9B,QAAQ,CAA+B;IAG/B,MAAM,CAAC,UAAU,CAAY;IAGrC,gBAAuB,CAAC;IAExB,MAAM,CAAC,KAAK,CAAC,QAAQ;QACnB,IAAI,SAAS,CAAC,UAAU,IAAI,CAAC,gBAAgB;YAAE,OAAO,SAAS,CAAC,UAAU,CAAC;QAI3E,SAAS,CAAC,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;QACvC,SAAS,CAAC,UAAU,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAa,CAAC,CAAC;QAIpE,SAAS,CAAC,UAAU,CAAC,QAAQ,GAAG;YAC9B,QAAQ,EAAE,MAAM,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa,EAAE;YAC/D,MAAM,EAAE,MAAM,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa,EAAE;YAC7D,MAAM,EAAE,MAAM,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa,EAAE;SAC9D,CAAC;QAEF,OAAO,SAAS,CAAC,UAAU,CAAC;IAC9B,CAAC;IASD,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,OAAkC;QACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE;YAC/D,OAAO,EAAE,IAAI;YACb,GAAG,OAAO;SACX,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,sBAAsB,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC;IAChB,CAAC;IASD,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,OAAY;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAC7C,OAAO,EACP,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CACxB,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CACT,mCAAmC,OAAO,MAAM,UAAU,GAAG,CAC9D,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,6CAA6C,OAAO,MAAM,UAAU,GAAG,CACxE,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IASD,KAAK,CAAC,eAAe,CACnB,OAAe,EACf,OAAqD;QAErD,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAChC,OAAO,EACP,CAAC,OAA4B,EAAE,EAAE;YAC/B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './broker.js';
|
|
1
|
+
export * from './broker.js';
|
package/dist/lib/broker/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './broker.js';
|
|
1
|
+
export * from './broker.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
export declare class BaseTaskInitiator<Request, Response> {
|
|
2
|
-
private requestQueueId;
|
|
3
|
-
private responseQueueId;
|
|
4
|
-
constructor(queueId: string);
|
|
5
|
-
sendRequest(content: Request): Promise<boolean>;
|
|
6
|
-
readResponse(): Promise<{
|
|
7
|
-
content: Response | null;
|
|
8
|
-
resolve: () => void;
|
|
9
|
-
reject: () => void;
|
|
10
|
-
}>;
|
|
11
|
-
}
|
|
12
|
-
export declare class BaseTaskHandler<Request, Response> {
|
|
13
|
-
private requestQueueId;
|
|
14
|
-
private responseQueueId;
|
|
15
|
-
constructor(queueId: string);
|
|
16
|
-
readRequest(): Promise<{
|
|
17
|
-
content: Request | null;
|
|
18
|
-
resolve: () => void;
|
|
19
|
-
reject: () => void;
|
|
20
|
-
}>;
|
|
21
|
-
sendResponse(content: Response): Promise<boolean>;
|
|
22
|
-
}
|
|
1
|
+
export declare class BaseTaskInitiator<Request, Response> {
|
|
2
|
+
private requestQueueId;
|
|
3
|
+
private responseQueueId;
|
|
4
|
+
constructor(queueId: string);
|
|
5
|
+
sendRequest(content: Request): Promise<boolean>;
|
|
6
|
+
readResponse(): Promise<{
|
|
7
|
+
content: Response | null;
|
|
8
|
+
resolve: () => void;
|
|
9
|
+
reject: () => void;
|
|
10
|
+
}>;
|
|
11
|
+
}
|
|
12
|
+
export declare class BaseTaskHandler<Request, Response> {
|
|
13
|
+
private requestQueueId;
|
|
14
|
+
private responseQueueId;
|
|
15
|
+
constructor(queueId: string);
|
|
16
|
+
readRequest(): Promise<{
|
|
17
|
+
content: Request | null;
|
|
18
|
+
resolve: () => void;
|
|
19
|
+
reject: () => void;
|
|
20
|
+
}>;
|
|
21
|
+
sendResponse(content: Response): Promise<boolean>;
|
|
22
|
+
}
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { BrokerAPI } from '../broker.js';
|
|
2
|
-
export class BaseTaskInitiator {
|
|
3
|
-
requestQueueId;
|
|
4
|
-
responseQueueId;
|
|
5
|
-
constructor(queueId) {
|
|
6
|
-
this.requestQueueId = `request.${queueId}`;
|
|
7
|
-
this.responseQueueId = `response.${queueId}`;
|
|
8
|
-
}
|
|
9
|
-
async sendRequest(content) {
|
|
10
|
-
const brokerAPI = await BrokerAPI.instance();
|
|
11
|
-
return brokerAPI.sendToQueue(this.requestQueueId, content);
|
|
12
|
-
}
|
|
13
|
-
async readResponse() {
|
|
14
|
-
const brokerAPI = await BrokerAPI.instance();
|
|
15
|
-
return await brokerAPI.readFromQueue(this.responseQueueId);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
export class BaseTaskHandler {
|
|
19
|
-
requestQueueId;
|
|
20
|
-
responseQueueId;
|
|
21
|
-
constructor(queueId) {
|
|
22
|
-
this.requestQueueId = `request.${queueId}`;
|
|
23
|
-
this.responseQueueId = `response.${queueId}`;
|
|
24
|
-
}
|
|
25
|
-
async readRequest() {
|
|
26
|
-
const brokerAPI = await BrokerAPI.instance();
|
|
27
|
-
return brokerAPI.readFromQueue(this.requestQueueId);
|
|
28
|
-
}
|
|
29
|
-
async sendResponse(content) {
|
|
30
|
-
const brokerAPI = await BrokerAPI.instance();
|
|
31
|
-
return brokerAPI.sendToQueue(this.responseQueueId, content);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
1
|
+
import { BrokerAPI } from '../broker.js';
|
|
2
|
+
export class BaseTaskInitiator {
|
|
3
|
+
requestQueueId;
|
|
4
|
+
responseQueueId;
|
|
5
|
+
constructor(queueId) {
|
|
6
|
+
this.requestQueueId = `request.${queueId}`;
|
|
7
|
+
this.responseQueueId = `response.${queueId}`;
|
|
8
|
+
}
|
|
9
|
+
async sendRequest(content) {
|
|
10
|
+
const brokerAPI = await BrokerAPI.instance();
|
|
11
|
+
return brokerAPI.sendToQueue(this.requestQueueId, content);
|
|
12
|
+
}
|
|
13
|
+
async readResponse() {
|
|
14
|
+
const brokerAPI = await BrokerAPI.instance();
|
|
15
|
+
return await brokerAPI.readFromQueue(this.responseQueueId);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export class BaseTaskHandler {
|
|
19
|
+
requestQueueId;
|
|
20
|
+
responseQueueId;
|
|
21
|
+
constructor(queueId) {
|
|
22
|
+
this.requestQueueId = `request.${queueId}`;
|
|
23
|
+
this.responseQueueId = `response.${queueId}`;
|
|
24
|
+
}
|
|
25
|
+
async readRequest() {
|
|
26
|
+
const brokerAPI = await BrokerAPI.instance();
|
|
27
|
+
return brokerAPI.readFromQueue(this.requestQueueId);
|
|
28
|
+
}
|
|
29
|
+
async sendResponse(content) {
|
|
30
|
+
const brokerAPI = await BrokerAPI.instance();
|
|
31
|
+
return brokerAPI.sendToQueue(this.responseQueueId, content);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
34
|
//# sourceMappingURL=base.task.js.map
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { BaseTaskInitiator, BaseTaskHandler } from './base.task.js';
|
|
2
|
-
export interface EmailTaskRequest {
|
|
3
|
-
sender?: string;
|
|
4
|
-
subject: string;
|
|
5
|
-
recipient: string;
|
|
6
|
-
content: string;
|
|
7
|
-
alias?: 'otp' | 'applications' | 'sign' | 'hello';
|
|
8
|
-
}
|
|
9
|
-
export interface EmailTaskResponse {
|
|
10
|
-
id: string;
|
|
11
|
-
recipient: string;
|
|
12
|
-
alias?: 'otp' | 'applications' | 'sign' | 'hello';
|
|
13
|
-
}
|
|
14
|
-
export declare const EmailTaskInitiator: BaseTaskInitiator<EmailTaskRequest, EmailTaskResponse>;
|
|
15
|
-
export declare const EmailTaskHandler: BaseTaskHandler<EmailTaskRequest, EmailTaskResponse>;
|
|
1
|
+
import { BaseTaskInitiator, BaseTaskHandler } from './base.task.js';
|
|
2
|
+
export interface EmailTaskRequest {
|
|
3
|
+
sender?: string;
|
|
4
|
+
subject: string;
|
|
5
|
+
recipient: string;
|
|
6
|
+
content: string;
|
|
7
|
+
alias?: 'otp' | 'applications' | 'sign' | 'hello';
|
|
8
|
+
}
|
|
9
|
+
export interface EmailTaskResponse {
|
|
10
|
+
id: string;
|
|
11
|
+
recipient: string;
|
|
12
|
+
alias?: 'otp' | 'applications' | 'sign' | 'hello';
|
|
13
|
+
}
|
|
14
|
+
export declare const EmailTaskInitiator: BaseTaskInitiator<EmailTaskRequest, EmailTaskResponse>;
|
|
15
|
+
export declare const EmailTaskHandler: BaseTaskHandler<EmailTaskRequest, EmailTaskResponse>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseTaskInitiator, BaseTaskHandler } from './base.task.js';
|
|
2
|
-
export const EmailTaskInitiator = new BaseTaskInitiator('email.service');
|
|
3
|
-
export const EmailTaskHandler = new BaseTaskHandler('email.service');
|
|
1
|
+
import { BaseTaskInitiator, BaseTaskHandler } from './base.task.js';
|
|
2
|
+
export const EmailTaskInitiator = new BaseTaskInitiator('email.service');
|
|
3
|
+
export const EmailTaskHandler = new BaseTaskHandler('email.service');
|
|
4
4
|
//# sourceMappingURL=email..task.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { BaseTaskHandler, BaseTaskInitiator } from './base.task.js';
|
|
2
|
-
export interface SignTaskRequest {
|
|
3
|
-
populatedSchema: FilledFormSchema;
|
|
4
|
-
template: string;
|
|
5
|
-
excludeVerificationCode?: boolean;
|
|
6
|
-
}
|
|
7
|
-
export interface SignTaskResponse {
|
|
8
|
-
buffer: Buffer<ArrayBuffer>;
|
|
9
|
-
inputs: object;
|
|
10
|
-
templateId: string;
|
|
11
|
-
templateHash: string;
|
|
12
|
-
formSchema: object;
|
|
13
|
-
formSchemaHash: string;
|
|
14
|
-
inputHash: string;
|
|
15
|
-
timestamp: string;
|
|
16
|
-
}
|
|
17
|
-
export declare const SignTaskInitiator: BaseTaskInitiator<SignTaskRequest, SignTaskResponse>;
|
|
18
|
-
export declare const SignTaskHandler: BaseTaskHandler<SignTaskRequest, SignTaskResponse>;
|
|
19
|
-
type FilledFormSchema = FilledFormSchemaField[];
|
|
20
|
-
interface EmptyFormSchemaField {
|
|
21
|
-
field: string;
|
|
22
|
-
value?: string;
|
|
23
|
-
type: string;
|
|
24
|
-
x: number;
|
|
25
|
-
y: number;
|
|
26
|
-
w: number;
|
|
27
|
-
h: number;
|
|
28
|
-
page: number;
|
|
29
|
-
align_h?: 'center' | 'left' | 'right';
|
|
30
|
-
align_v?: 'middle' | 'top' | 'bottom';
|
|
31
|
-
}
|
|
32
|
-
interface FilledFormSchemaField extends EmptyFormSchemaField {
|
|
33
|
-
value: string;
|
|
34
|
-
}
|
|
35
|
-
export {};
|
|
1
|
+
import { BaseTaskHandler, BaseTaskInitiator } from './base.task.js';
|
|
2
|
+
export interface SignTaskRequest {
|
|
3
|
+
populatedSchema: FilledFormSchema;
|
|
4
|
+
template: string;
|
|
5
|
+
excludeVerificationCode?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface SignTaskResponse {
|
|
8
|
+
buffer: Buffer<ArrayBuffer>;
|
|
9
|
+
inputs: object;
|
|
10
|
+
templateId: string;
|
|
11
|
+
templateHash: string;
|
|
12
|
+
formSchema: object;
|
|
13
|
+
formSchemaHash: string;
|
|
14
|
+
inputHash: string;
|
|
15
|
+
timestamp: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const SignTaskInitiator: BaseTaskInitiator<SignTaskRequest, SignTaskResponse>;
|
|
18
|
+
export declare const SignTaskHandler: BaseTaskHandler<SignTaskRequest, SignTaskResponse>;
|
|
19
|
+
type FilledFormSchema = FilledFormSchemaField[];
|
|
20
|
+
interface EmptyFormSchemaField {
|
|
21
|
+
field: string;
|
|
22
|
+
value?: string;
|
|
23
|
+
type: string;
|
|
24
|
+
x: number;
|
|
25
|
+
y: number;
|
|
26
|
+
w: number;
|
|
27
|
+
h: number;
|
|
28
|
+
page: number;
|
|
29
|
+
align_h?: 'center' | 'left' | 'right';
|
|
30
|
+
align_v?: 'middle' | 'top' | 'bottom';
|
|
31
|
+
}
|
|
32
|
+
interface FilledFormSchemaField extends EmptyFormSchemaField {
|
|
33
|
+
value: string;
|
|
34
|
+
}
|
|
35
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseTaskHandler, BaseTaskInitiator } from './base.task.js';
|
|
2
|
-
export const SignTaskInitiator = new BaseTaskInitiator('sign.service');
|
|
3
|
-
export const SignTaskHandler = new BaseTaskHandler('sign.service');
|
|
1
|
+
import { BaseTaskHandler, BaseTaskInitiator } from './base.task.js';
|
|
2
|
+
export const SignTaskInitiator = new BaseTaskInitiator('sign.service');
|
|
3
|
+
export const SignTaskHandler = new BaseTaskHandler('sign.service');
|
|
4
4
|
//# sourceMappingURL=sign.task.js.map
|
package/dist/lib/chat/chat.d.ts
CHANGED
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import { RecordModel } from 'pocketbase';
|
|
2
|
-
export interface Message {
|
|
3
|
-
message: string;
|
|
4
|
-
sender_id: string;
|
|
5
|
-
timestamp: number;
|
|
6
|
-
digested?: boolean;
|
|
7
|
-
}
|
|
8
|
-
export interface Consumer extends RecordModel {
|
|
9
|
-
email: string;
|
|
10
|
-
last_reads: {
|
|
11
|
-
[conversationId: string]: Message;
|
|
12
|
-
};
|
|
13
|
-
last_unreads: {
|
|
14
|
-
[conversationId: string]: Message;
|
|
15
|
-
};
|
|
16
|
-
conversations: string[];
|
|
17
|
-
}
|
|
18
|
-
export interface Conversation extends RecordModel {
|
|
19
|
-
id: string;
|
|
20
|
-
subscribers: string[];
|
|
21
|
-
contents: Message[];
|
|
22
|
-
last_message: Message;
|
|
23
|
-
}
|
|
24
|
-
export declare class ConsumerService {
|
|
25
|
-
findOne(id: string): Promise<Consumer>;
|
|
26
|
-
findAll(): Promise<Consumer[]>;
|
|
27
|
-
register(id: string, email: string): Promise<Consumer>;
|
|
28
|
-
setLastRead(id: string, conversationId: string, message: Message): Promise<RecordModel>;
|
|
29
|
-
authenticateAs(id: string): Promise<{
|
|
30
|
-
token: string;
|
|
31
|
-
user: import("pocketbase").AuthRecord;
|
|
32
|
-
}>;
|
|
33
|
-
}
|
|
34
|
-
export declare class MessageService {
|
|
35
|
-
private readonly consumerService;
|
|
36
|
-
private readonly conversationService;
|
|
37
|
-
private updateConversationUnread;
|
|
38
|
-
send(senderId: string, conversationId: string, messageContent: string): Promise<Message>;
|
|
39
|
-
read(consumerId: string, conversationId: string): Promise<Message>;
|
|
40
|
-
digest(consumerId: string, conversationId: string): Promise<Message>;
|
|
41
|
-
}
|
|
42
|
-
export declare class ConversationService {
|
|
43
|
-
consumerService: ConsumerService;
|
|
44
|
-
findOne(id: string): Promise<Conversation>;
|
|
45
|
-
appendMessage(conversationId: string, message: Message): Promise<Conversation>;
|
|
46
|
-
subscribe(subscriberId: string, conversationId: string): Promise<Conversation>;
|
|
47
|
-
getSubscriptions(subscriberId: any): Promise<Conversation[]>;
|
|
48
|
-
findExisting(userId: string, employerId: string): Promise<Conversation>;
|
|
49
|
-
checkIfSubscribed(subscriberId: string, conversationId: string): Promise<boolean>;
|
|
50
|
-
create(userId: string, employerId: string): Promise<Conversation>;
|
|
51
|
-
}
|
|
1
|
+
import { RecordModel } from 'pocketbase';
|
|
2
|
+
export interface Message {
|
|
3
|
+
message: string;
|
|
4
|
+
sender_id: string;
|
|
5
|
+
timestamp: number;
|
|
6
|
+
digested?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface Consumer extends RecordModel {
|
|
9
|
+
email: string;
|
|
10
|
+
last_reads: {
|
|
11
|
+
[conversationId: string]: Message;
|
|
12
|
+
};
|
|
13
|
+
last_unreads: {
|
|
14
|
+
[conversationId: string]: Message;
|
|
15
|
+
};
|
|
16
|
+
conversations: string[];
|
|
17
|
+
}
|
|
18
|
+
export interface Conversation extends RecordModel {
|
|
19
|
+
id: string;
|
|
20
|
+
subscribers: string[];
|
|
21
|
+
contents: Message[];
|
|
22
|
+
last_message: Message;
|
|
23
|
+
}
|
|
24
|
+
export declare class ConsumerService {
|
|
25
|
+
findOne(id: string): Promise<Consumer>;
|
|
26
|
+
findAll(): Promise<Consumer[]>;
|
|
27
|
+
register(id: string, email: string): Promise<Consumer>;
|
|
28
|
+
setLastRead(id: string, conversationId: string, message: Message): Promise<RecordModel>;
|
|
29
|
+
authenticateAs(id: string): Promise<{
|
|
30
|
+
token: string;
|
|
31
|
+
user: import("pocketbase").AuthRecord;
|
|
32
|
+
}>;
|
|
33
|
+
}
|
|
34
|
+
export declare class MessageService {
|
|
35
|
+
private readonly consumerService;
|
|
36
|
+
private readonly conversationService;
|
|
37
|
+
private updateConversationUnread;
|
|
38
|
+
send(senderId: string, conversationId: string, messageContent: string): Promise<Message>;
|
|
39
|
+
read(consumerId: string, conversationId: string): Promise<Message>;
|
|
40
|
+
digest(consumerId: string, conversationId: string): Promise<Message>;
|
|
41
|
+
}
|
|
42
|
+
export declare class ConversationService {
|
|
43
|
+
consumerService: ConsumerService;
|
|
44
|
+
findOne(id: string): Promise<Conversation>;
|
|
45
|
+
appendMessage(conversationId: string, message: Message): Promise<Conversation>;
|
|
46
|
+
subscribe(subscriberId: string, conversationId: string): Promise<Conversation>;
|
|
47
|
+
getSubscriptions(subscriberId: any): Promise<Conversation[]>;
|
|
48
|
+
findExisting(userId: string, employerId: string): Promise<Conversation>;
|
|
49
|
+
checkIfSubscribed(subscriberId: string, conversationId: string): Promise<boolean>;
|
|
50
|
+
create(userId: string, employerId: string): Promise<Conversation>;
|
|
51
|
+
}
|
package/dist/lib/chat/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './chat.js';
|
|
2
|
-
export * from './pb.js';
|
|
1
|
+
export * from './chat.js';
|
|
2
|
+
export * from './pb.js';
|
package/dist/lib/chat/pb.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import PocketBase from 'pocketbase';
|
|
2
|
-
export declare const pb: PocketBase;
|
|
3
|
-
export declare const authenticatePocketbase: () => Promise<void>;
|
|
1
|
+
import PocketBase from 'pocketbase';
|
|
2
|
+
export declare const pb: PocketBase;
|
|
3
|
+
export declare const authenticatePocketbase: () => Promise<void>;
|
package/dist/lib/chat/pb.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import PocketBase from 'pocketbase';
|
|
2
|
-
import { ENV } from '../env.js';
|
|
3
|
-
let _pb = {};
|
|
4
|
-
if (!ENV.BICORE_IGNORE_POCKETBASE) {
|
|
5
|
-
_pb = new PocketBase(ENV.PB_URL);
|
|
6
|
-
_pb.autoCancellation(false);
|
|
7
|
-
}
|
|
8
|
-
export const pb = _pb;
|
|
9
|
-
export const authenticatePocketbase = async () => {
|
|
10
|
-
await _pb
|
|
11
|
-
.collection('_superusers')
|
|
12
|
-
.authWithPassword(ENV.PB_ADMIN_EMAIL, ENV.PB_ADMIN_PASSWORD, { autoRefreshThreshold: 30 * 60 });
|
|
13
|
-
};
|
|
14
|
-
if (!ENV.BICORE_IGNORE_POCKETBASE)
|
|
15
|
-
authenticatePocketbase();
|
|
1
|
+
import PocketBase from 'pocketbase';
|
|
2
|
+
import { ENV } from '../env.js';
|
|
3
|
+
let _pb = {};
|
|
4
|
+
if (!ENV.BICORE_IGNORE_POCKETBASE) {
|
|
5
|
+
_pb = new PocketBase(ENV.PB_URL);
|
|
6
|
+
_pb.autoCancellation(false);
|
|
7
|
+
}
|
|
8
|
+
export const pb = _pb;
|
|
9
|
+
export const authenticatePocketbase = async () => {
|
|
10
|
+
await _pb
|
|
11
|
+
.collection('_superusers')
|
|
12
|
+
.authWithPassword(ENV.PB_ADMIN_EMAIL, ENV.PB_ADMIN_PASSWORD, { autoRefreshThreshold: 30 * 60 });
|
|
13
|
+
};
|
|
14
|
+
if (!ENV.BICORE_IGNORE_POCKETBASE)
|
|
15
|
+
authenticatePocketbase();
|
|
16
16
|
//# sourceMappingURL=pb.js.map
|