@voscarmv/aimessagestore 1.0.4 → 1.0.6
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/server.d.ts.map +1 -1
- package/dist/server.js +10 -1
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
- package/dist/db.d.ts +0 -2
- package/dist/db.d.ts.map +0 -1
- package/dist/db.js +0 -64
- package/dist/db.js.map +0 -1
- package/dist/s.d.ts +0 -17
- package/dist/s.d.ts.map +0 -1
- package/dist/s.js +0 -36
- package/dist/s.js.map +0 -1
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,MAAM,CAAC;AAaxC,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,MAAM,yBAAyB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,qBAAa,qBAAsB,YAAW,YAAY;;gBAI1C,MAAM,EAAE,yBAAyB;IAuFvC,OAAO;IAQb,MAAM;CAIT"}
|
package/dist/server.js
CHANGED
|
@@ -7,6 +7,10 @@ import cors from "cors";
|
|
|
7
7
|
import helmet from "helmet";
|
|
8
8
|
import morgan from "morgan";
|
|
9
9
|
import { and, asc, eq, sql } from "drizzle-orm";
|
|
10
|
+
import { fileURLToPath } from 'url';
|
|
11
|
+
import { dirname } from 'path';
|
|
12
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
13
|
+
const __dirname = dirname(__filename);
|
|
10
14
|
;
|
|
11
15
|
export class AiMessageStoreBackend {
|
|
12
16
|
#db;
|
|
@@ -82,7 +86,12 @@ export class AiMessageStoreBackend {
|
|
|
82
86
|
});
|
|
83
87
|
}
|
|
84
88
|
async migrate() {
|
|
85
|
-
|
|
89
|
+
try {
|
|
90
|
+
await migrate(this.#db, { migrationsFolder: `${__dirname}/drizzle` });
|
|
91
|
+
}
|
|
92
|
+
catch (e) {
|
|
93
|
+
console.log(e.message);
|
|
94
|
+
}
|
|
86
95
|
return;
|
|
87
96
|
}
|
|
88
97
|
listen() {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAA6C,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAoB,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/dist/db.d.ts
DELETED
package/dist/db.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":""}
|
package/dist/db.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
// import 'dotenv/config';
|
|
2
|
-
// import { messages } from './schema.js';
|
|
3
|
-
// import { drizzle } from 'drizzle-orm/node-postgres';
|
|
4
|
-
// import {
|
|
5
|
-
// sql,
|
|
6
|
-
// eq,
|
|
7
|
-
// and,
|
|
8
|
-
// asc,
|
|
9
|
-
// type InferSelectModel
|
|
10
|
-
// } from 'drizzle-orm';
|
|
11
|
-
export {};
|
|
12
|
-
// const db = drizzle(process.env.DB_URL!);
|
|
13
|
-
// // Types
|
|
14
|
-
// export type Message = InferSelectModel<typeof messages>;
|
|
15
|
-
// // ---------------------- MESSAGES CRUD ----------------------
|
|
16
|
-
// export async function insertMessage(
|
|
17
|
-
// user_id: string,
|
|
18
|
-
// queued: boolean,
|
|
19
|
-
// message: object
|
|
20
|
-
// ): Promise<Message[]> {
|
|
21
|
-
// return await db
|
|
22
|
-
// .insert(messages)
|
|
23
|
-
// .values({
|
|
24
|
-
// user_id,
|
|
25
|
-
// queued,
|
|
26
|
-
// message: JSON.stringify(message)
|
|
27
|
-
// })
|
|
28
|
-
// .returning();
|
|
29
|
-
// }
|
|
30
|
-
// export async function readMessages(user_id: string): Promise<Message[]> {
|
|
31
|
-
// return await db
|
|
32
|
-
// .select()
|
|
33
|
-
// .from(messages)
|
|
34
|
-
// .where(eq(messages.user_id, user_id))
|
|
35
|
-
// .orderBy(asc(messages.updated_at), asc(messages.id));
|
|
36
|
-
// }
|
|
37
|
-
// export async function queuedMessages(user_id: string): Promise<Message[]> {
|
|
38
|
-
// return await db
|
|
39
|
-
// .select()
|
|
40
|
-
// .from(messages)
|
|
41
|
-
// .where(
|
|
42
|
-
// and(
|
|
43
|
-
// eq(messages.queued, true),
|
|
44
|
-
// eq(messages.user_id, user_id)
|
|
45
|
-
// )
|
|
46
|
-
// );
|
|
47
|
-
// }
|
|
48
|
-
// export async function unqueueMessages(user_id: string): Promise<Message[]> {
|
|
49
|
-
// return await db
|
|
50
|
-
// .update(messages)
|
|
51
|
-
// .set({
|
|
52
|
-
// queued: false,
|
|
53
|
-
// updated_at: sql`now()`
|
|
54
|
-
// })
|
|
55
|
-
// .where(eq(messages.user_id, user_id))
|
|
56
|
-
// .returning();
|
|
57
|
-
// }
|
|
58
|
-
// export async function deleteMessage(id: number): Promise<Message[]> {
|
|
59
|
-
// return await db
|
|
60
|
-
// .delete(messages)
|
|
61
|
-
// .where(eq(messages.id, id))
|
|
62
|
-
// .returning();
|
|
63
|
-
// }
|
|
64
|
-
//# sourceMappingURL=db.js.map
|
package/dist/db.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,0CAA0C;AAC1C,uDAAuD;AACvD,WAAW;AACX,WAAW;AACX,UAAU;AACV,WAAW;AACX,WAAW;AACX,4BAA4B;AAC5B,wBAAwB;;AAExB,2CAA2C;AAE3C,WAAW;AACX,2DAA2D;AAE3D,iEAAiE;AAEjE,uCAAuC;AACvC,uBAAuB;AACvB,uBAAuB;AACvB,sBAAsB;AACtB,0BAA0B;AAC1B,sBAAsB;AACtB,4BAA4B;AAC5B,oBAAoB;AACpB,uBAAuB;AACvB,sBAAsB;AACtB,+CAA+C;AAC/C,aAAa;AACb,wBAAwB;AACxB,IAAI;AAEJ,4EAA4E;AAC5E,sBAAsB;AACtB,oBAAoB;AACpB,0BAA0B;AAC1B,gDAAgD;AAChD,gEAAgE;AAChE,IAAI;AAEJ,8EAA8E;AAC9E,sBAAsB;AACtB,oBAAoB;AACpB,0BAA0B;AAC1B,kBAAkB;AAClB,mBAAmB;AACnB,6CAA6C;AAC7C,gDAAgD;AAChD,gBAAgB;AAChB,aAAa;AACb,IAAI;AAEJ,+EAA+E;AAC/E,sBAAsB;AACtB,4BAA4B;AAC5B,iBAAiB;AACjB,6BAA6B;AAC7B,qCAAqC;AACrC,aAAa;AACb,gDAAgD;AAChD,wBAAwB;AACxB,IAAI;AAEJ,wEAAwE;AACxE,sBAAsB;AACtB,4BAA4B;AAC5B,sCAAsC;AACtC,wBAAwB;AACxB,IAAI"}
|
package/dist/s.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type CorsOptions } from "cors";
|
|
2
|
-
export interface StoreBackend {
|
|
3
|
-
migrate: () => void;
|
|
4
|
-
listen: () => void;
|
|
5
|
-
}
|
|
6
|
-
export type MessageStoreBackendParams = {
|
|
7
|
-
dbUrl: string;
|
|
8
|
-
port: number;
|
|
9
|
-
corsOpts?: CorsOptions;
|
|
10
|
-
};
|
|
11
|
-
export declare class AiMessageStoreBackend implements StoreBackend {
|
|
12
|
-
#private;
|
|
13
|
-
constructor(params: MessageStoreBackendParams);
|
|
14
|
-
migrate(): Promise<void>;
|
|
15
|
-
listen(): void;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=s.d.ts.map
|
package/dist/s.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"s.d.ts","sourceRoot":"","sources":["../src/s.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,MAAM,CAAC;AAOxC,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,MAAM,yBAAyB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,qBAAa,qBAAsB,YAAW,YAAY;;gBAI1C,MAAM,EAAE,yBAAyB;IAavC,OAAO;IAIb,MAAM;CAIT"}
|
package/dist/s.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import express, {} from "express";
|
|
2
|
-
import {} from "cors";
|
|
3
|
-
import { drizzle, NodePgDatabase } from "drizzle-orm/node-postgres";
|
|
4
|
-
import { migrate } from 'drizzle-orm/node-postgres/migrator';
|
|
5
|
-
import cors from "cors";
|
|
6
|
-
import helmet from "helmet";
|
|
7
|
-
import morgan from "morgan";
|
|
8
|
-
;
|
|
9
|
-
export class AiMessageStoreBackend {
|
|
10
|
-
#db;
|
|
11
|
-
#app;
|
|
12
|
-
#port;
|
|
13
|
-
constructor(params) {
|
|
14
|
-
this.#db = drizzle(params.dbUrl);
|
|
15
|
-
this.#app = express();
|
|
16
|
-
if (params.corsOpts) {
|
|
17
|
-
this.#app.use(cors(params.corsOpts));
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
this.#app.use(cors());
|
|
21
|
-
}
|
|
22
|
-
this.#app.use(helmet());
|
|
23
|
-
this.#app.use(morgan("combined"));
|
|
24
|
-
this.#app.use(express.json());
|
|
25
|
-
this.#port = params.port;
|
|
26
|
-
}
|
|
27
|
-
async migrate() {
|
|
28
|
-
await migrate(this.#db, { migrationsFolder: './dist/drizzle' });
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
listen() {
|
|
32
|
-
this.#app.listen(this.#port);
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=s.js.map
|
package/dist/s.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"s.js","sourceRoot":"","sources":["../src/s.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAgB,MAAM,SAAS,CAAC;AAChD,OAAO,EAAoB,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAK3B,CAAC;AAQF,MAAM,OAAO,qBAAqB;IAC9B,GAAG,CAAwC;IAC3C,IAAI,CAAU;IACd,KAAK,CAAS;IACd,YAAY,MAAiC;QACzC,IAAI,CAAC,GAAG,GAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAC,OAAO,EAAE,CAAC;QACpB,IAAG,MAAM,CAAC,QAAQ,EAAC,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;IAC7B,CAAC;IACD,KAAK,CAAC,OAAO;QACT,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAC,gBAAgB,EAAE,gBAAgB,EAAC,CAAC,CAAC;QAC9D,OAAO;IACX,CAAC;IACD,MAAM;QACF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO;IACX,CAAC;CACJ"}
|