@runlot/pg 0.1.0-rc.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +60 -0
  2. package/dist/bundler.d.ts +33 -0
  3. package/dist/bundler.d.ts.map +1 -0
  4. package/dist/bundler.js +276 -0
  5. package/dist/bundler.js.map +1 -0
  6. package/dist/client.d.ts +138 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +505 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/emitter.d.ts +14 -0
  11. package/dist/emitter.d.ts.map +1 -0
  12. package/dist/emitter.js +63 -0
  13. package/dist/emitter.js.map +1 -0
  14. package/dist/errors.d.ts +34 -0
  15. package/dist/errors.d.ts.map +1 -0
  16. package/dist/errors.js +46 -0
  17. package/dist/errors.js.map +1 -0
  18. package/dist/index.d.ts +94 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +27 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/orm/drizzle.d.ts +9 -0
  23. package/dist/orm/drizzle.d.ts.map +1 -0
  24. package/dist/orm/drizzle.js +13 -0
  25. package/dist/orm/drizzle.js.map +1 -0
  26. package/dist/orm/knex.d.ts +6 -0
  27. package/dist/orm/knex.d.ts.map +1 -0
  28. package/dist/orm/knex.js +28 -0
  29. package/dist/orm/knex.js.map +1 -0
  30. package/dist/orm/kysely.d.ts +5 -0
  31. package/dist/orm/kysely.d.ts.map +1 -0
  32. package/dist/orm/kysely.js +14 -0
  33. package/dist/orm/kysely.js.map +1 -0
  34. package/dist/orm/prisma.d.ts +49 -0
  35. package/dist/orm/prisma.d.ts.map +1 -0
  36. package/dist/orm/prisma.js +344 -0
  37. package/dist/orm/prisma.js.map +1 -0
  38. package/dist/orm/sequelize.d.ts +4 -0
  39. package/dist/orm/sequelize.d.ts.map +1 -0
  40. package/dist/orm/sequelize.js +24 -0
  41. package/dist/orm/sequelize.js.map +1 -0
  42. package/dist/orm/typeorm.d.ts +11 -0
  43. package/dist/orm/typeorm.d.ts.map +1 -0
  44. package/dist/orm/typeorm.js +22 -0
  45. package/dist/orm/typeorm.js.map +1 -0
  46. package/dist/type-parsers.d.ts +159 -0
  47. package/dist/type-parsers.d.ts.map +1 -0
  48. package/dist/type-parsers.js +329 -0
  49. package/dist/type-parsers.js.map +1 -0
  50. package/dist/types.d.ts +93 -0
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +9 -0
  53. package/dist/types.js.map +1 -0
  54. package/package.json +83 -0
@@ -0,0 +1,329 @@
1
+ // An imitation of `pg.types`.
2
+ //
3
+ // ORMs touch this table in two ways: global registration through
4
+ // `types.setTypeParser(oid, fn)`, and per-query injection through the query
5
+ // config's `types.getTypeParser(oid, format)` (Drizzle and Prisma do that).
6
+ // Both expect a function that takes the **text representation**, so we turn a
7
+ // cell the facade has already decoded back into text and feed it in
8
+ // (`cellToText`).
9
+ //
10
+ // With no registration it follows pg's default conversion — that is what makes
11
+ // code that used plain `pg` see the same values after switching to the
12
+ // adapter.
13
+ /** pg-types' builtins. The OIDs are the stable values from pg_catalog. */
14
+ export const builtins = {
15
+ BOOL: 16,
16
+ BYTEA: 17,
17
+ CHAR: 18,
18
+ INT8: 20,
19
+ INT2: 21,
20
+ INT4: 23,
21
+ REGPROC: 24,
22
+ TEXT: 25,
23
+ OID: 26,
24
+ TID: 27,
25
+ XID: 28,
26
+ CID: 29,
27
+ JSON: 114,
28
+ XML: 142,
29
+ PG_NODE_TREE: 194,
30
+ SMGR: 210,
31
+ PATH: 602,
32
+ POLYGON: 604,
33
+ CIDR: 650,
34
+ FLOAT4: 700,
35
+ FLOAT8: 701,
36
+ ABSTIME: 702,
37
+ RELTIME: 703,
38
+ TINTERVAL: 704,
39
+ CIRCLE: 718,
40
+ MACADDR8: 774,
41
+ MONEY: 790,
42
+ MACADDR: 829,
43
+ INET: 869,
44
+ ACLITEM: 1033,
45
+ BPCHAR: 1042,
46
+ VARCHAR: 1043,
47
+ DATE: 1082,
48
+ TIME: 1083,
49
+ TIMESTAMP: 1114,
50
+ TIMESTAMPTZ: 1184,
51
+ INTERVAL: 1186,
52
+ TIMETZ: 1266,
53
+ BIT: 1560,
54
+ VARBIT: 1562,
55
+ NUMERIC: 1700,
56
+ REFCURSOR: 1790,
57
+ REGPROCEDURE: 2202,
58
+ REGOPER: 2203,
59
+ REGOPERATOR: 2204,
60
+ REGCLASS: 2205,
61
+ REGTYPE: 2206,
62
+ UUID: 2950,
63
+ TXID_SNAPSHOT: 2970,
64
+ PG_LSN: 3220,
65
+ PG_NDISTINCT: 3361,
66
+ PG_DEPENDENCIES: 3402,
67
+ TSVECTOR: 3614,
68
+ TSQUERY: 3615,
69
+ GTSVECTOR: 3642,
70
+ REGCONFIG: 3734,
71
+ REGDICTIONARY: 3769,
72
+ JSONB: 3802,
73
+ REGNAMESPACE: 4089,
74
+ REGROLE: 4096,
75
+ };
76
+ // ---- Text → value: the same rules as pg-types' defaults ----
77
+ function parseBool(t) {
78
+ return t === "t" || t === "true" || t === "TRUE";
79
+ }
80
+ function parseBytea(t) {
81
+ // The server gives it in hex form ('\x...'). pg-feather does not emit the
82
+ // escape form.
83
+ if (t.startsWith("\\x")) {
84
+ const hex = t.slice(2);
85
+ const out = new Uint8Array(hex.length >> 1);
86
+ for (let i = 0; i < out.length; i++)
87
+ out[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);
88
+ return out;
89
+ }
90
+ const out = new Uint8Array(t.length);
91
+ for (let i = 0; i < t.length; i++)
92
+ out[i] = t.charCodeAt(i) & 0xff;
93
+ return out;
94
+ }
95
+ /**
96
+ * timestamp/timestamptz/date → Date (pg's default).
97
+ *
98
+ * pg reads a timestamp (without time zone) as **local time**. A worker's local
99
+ * time is UTC, so in practice it is UTC. pg also makes a date at local
100
+ * midnight — for the same reason, UTC midnight.
101
+ */
102
+ function parseDate(t) {
103
+ // The same as pg-types: infinity is the number Infinity, not a Date.
104
+ if (t === "infinity")
105
+ return Infinity;
106
+ if (t === "-infinity")
107
+ return -Infinity;
108
+ const m = /^(\d{4,})-(\d{2})-(\d{2})(?:[ T](\d{2}):(\d{2}):(\d{2})(\.\d+)?)?\s*(Z|[+-]\d{2}(?::?\d{2})?(?::?\d{2})?)?\s*(BC)?$/.exec(t);
109
+ if (!m) {
110
+ const d = new Date(t);
111
+ return Number.isNaN(d.getTime()) ? null : d;
112
+ }
113
+ let year = Number(m[1]);
114
+ if (m[9])
115
+ year = -year + 1;
116
+ const month = Number(m[2]) - 1;
117
+ const day = Number(m[3]);
118
+ const hour = m[4] ? Number(m[4]) : 0;
119
+ const minute = m[5] ? Number(m[5]) : 0;
120
+ const second = m[6] ? Number(m[6]) : 0;
121
+ const ms = m[7] ? Math.round(Number(m[7]) * 1000) : 0;
122
+ let offsetMin = 0;
123
+ const tz = m[8];
124
+ if (tz && tz !== "Z") {
125
+ const sign = tz[0] === "-" ? -1 : 1;
126
+ const parts = tz.slice(1).split(":");
127
+ const raw = parts.length === 1 && parts[0].length > 2 ? [parts[0].slice(0, 2), parts[0].slice(2, 4)] : parts;
128
+ offsetMin = sign * (Number(raw[0] ?? 0) * 60 + Number(raw[1] ?? 0));
129
+ }
130
+ const d = new Date(Date.UTC(2000, month, day, hour, minute, second, ms));
131
+ d.setUTCFullYear(year);
132
+ return new Date(d.getTime() - offsetMin * 60_000);
133
+ }
134
+ /** A parser for PostgreSQL array text ('{a,b}'). It handles nesting and
135
+ * quoting. */
136
+ export function parseArray(text, element = (s) => s) {
137
+ let i = 0;
138
+ // Skip the dimension prefix '[1:3]={...}'.
139
+ if (text[0] === "[")
140
+ i = text.indexOf("=") + 1;
141
+ function parseInner() {
142
+ const out = [];
143
+ if (text[i] !== "{")
144
+ throw new Error("Malformed array literal. It has to start with an opening brace ({): " + text);
145
+ i++;
146
+ if (text[i] === "}") {
147
+ i++;
148
+ return out;
149
+ }
150
+ for (;;) {
151
+ if (text[i] === "{") {
152
+ out.push(parseInner());
153
+ }
154
+ else if (text[i] === '"') {
155
+ i++;
156
+ let s = "";
157
+ while (i < text.length && text[i] !== '"') {
158
+ if (text[i] === "\\")
159
+ i++;
160
+ s += text[i];
161
+ i++;
162
+ }
163
+ i++;
164
+ out.push(element(s));
165
+ }
166
+ else {
167
+ let s = "";
168
+ while (i < text.length && text[i] !== "," && text[i] !== "}") {
169
+ s += text[i];
170
+ i++;
171
+ }
172
+ out.push(s === "NULL" ? null : element(s));
173
+ }
174
+ if (text[i] === ",") {
175
+ i++;
176
+ continue;
177
+ }
178
+ if (text[i] === "}") {
179
+ i++;
180
+ return out;
181
+ }
182
+ throw new Error("Malformed array literal. An element has to be followed by a comma (,) or a closing brace (}): " + text);
183
+ }
184
+ }
185
+ return parseInner();
186
+ }
187
+ const identity = (s) => s;
188
+ const num = (s) => Number(s);
189
+ const json = (s) => JSON.parse(s);
190
+ /** pg-types' default text-parser table. An oid that is not here stays a
191
+ * string. */
192
+ const defaults = new Map([
193
+ [builtins.BOOL, parseBool],
194
+ [builtins.BYTEA, parseBytea],
195
+ [builtins.INT2, num],
196
+ [builtins.INT4, num],
197
+ [builtins.OID, num],
198
+ [builtins.FLOAT4, num],
199
+ [builtins.FLOAT8, num],
200
+ [builtins.JSON, json],
201
+ [builtins.JSONB, json],
202
+ [builtins.DATE, parseDate],
203
+ [builtins.TIMESTAMP, parseDate],
204
+ [builtins.TIMESTAMPTZ, parseDate],
205
+ // The array oids are the values of pg_type.typarray.
206
+ [1000, (s) => parseArray(s, parseBool)],
207
+ [1001, (s) => parseArray(s, parseBytea)],
208
+ [1005, (s) => parseArray(s, num)],
209
+ [1007, (s) => parseArray(s, num)],
210
+ [1016, (s) => parseArray(s, identity)],
211
+ [1021, (s) => parseArray(s, num)],
212
+ [1022, (s) => parseArray(s, num)],
213
+ [1028, (s) => parseArray(s, num)],
214
+ [1231, (s) => parseArray(s, identity)],
215
+ [1009, (s) => parseArray(s, identity)],
216
+ [1014, (s) => parseArray(s, identity)],
217
+ [1015, (s) => parseArray(s, identity)],
218
+ [1002, (s) => parseArray(s, identity)],
219
+ [2951, (s) => parseArray(s, identity)],
220
+ [199, (s) => parseArray(s, json)],
221
+ [3807, (s) => parseArray(s, json)],
222
+ [1182, (s) => parseArray(s, parseDate)],
223
+ [1115, (s) => parseArray(s, parseDate)],
224
+ [1185, (s) => parseArray(s, parseDate)],
225
+ [1183, (s) => parseArray(s, identity)],
226
+ ]);
227
+ const overrides = new Map();
228
+ export function getTypeParser(oid, format = "text") {
229
+ if (format === "binary") {
230
+ // The facade carries text only. No caller asks for a binary parser, but
231
+ // pg takes this argument, so we match the signature.
232
+ return identity;
233
+ }
234
+ return overrides.get(oid) ?? defaults.get(oid) ?? identity;
235
+ }
236
+ export function setTypeParser(oid, format, parser) {
237
+ if (typeof format === "function") {
238
+ overrides.set(oid, format);
239
+ return;
240
+ }
241
+ if (format === "text" && parser)
242
+ overrides.set(oid, parser);
243
+ }
244
+ /** The object handed over as `pg.types`. */
245
+ export const types = { builtins, getTypeParser, setTypeParser, arrayParser: { create: (s, p) => ({ parse: () => parseArray(s, p) }) } };
246
+ // ---- Value → text: turning a cell the facade decoded into what a parser eats ----
247
+ /**
248
+ * The facade hands cells over already decoded (the §8 table). The parser table
249
+ * takes text, so we turn them back. It is the lossless direction: a number was
250
+ * only made where the facade could hold it exactly, and json has the same value
251
+ * after being serialised back to a string.
252
+ */
253
+ export function cellToText(cell, oid) {
254
+ if (cell === null || cell === undefined)
255
+ return null;
256
+ if (typeof cell === "string")
257
+ return cell;
258
+ if (typeof cell === "boolean")
259
+ return cell ? "t" : "f";
260
+ if (typeof cell === "number")
261
+ return oid === builtins.FLOAT4 || oid === builtins.FLOAT8 ? floatText(cell) : String(cell);
262
+ if (typeof cell === "bigint")
263
+ return String(cell);
264
+ if (cell instanceof ArrayBuffer)
265
+ return hexText(new Uint8Array(cell));
266
+ if (ArrayBuffer.isView(cell))
267
+ return hexText(new Uint8Array(cell.buffer, cell.byteOffset, cell.byteLength));
268
+ return JSON.stringify(cell);
269
+ }
270
+ function floatText(n) {
271
+ if (Number.isNaN(n))
272
+ return "NaN";
273
+ if (n === Infinity)
274
+ return "Infinity";
275
+ if (n === -Infinity)
276
+ return "-Infinity";
277
+ return String(n);
278
+ }
279
+ function hexText(bytes) {
280
+ let s = "\\x";
281
+ for (let i = 0; i < bytes.length; i++)
282
+ s += bytes[i].toString(16).padStart(2, "0");
283
+ return s;
284
+ }
285
+ /**
286
+ * Moves one cell into the public value.
287
+ *
288
+ * When there is a registered parser (global or per query), we turn the cell
289
+ * back into text and feed it to that. When there is not, we leave the facade's
290
+ * decoding alone and only fix the places where it differs from the pg default:
291
+ * date-like types become a Date, bytea becomes a Uint8Array, an array becomes
292
+ * an array.
293
+ */
294
+ export function convertCell(cell, oid, lookup) {
295
+ if (cell === null || cell === undefined)
296
+ return null;
297
+ const custom = lookup ? lookup(oid, "text") : overrides.get(oid);
298
+ if (custom) {
299
+ const text = cellToText(cell, oid);
300
+ return text === null ? null : custom(text);
301
+ }
302
+ switch (oid) {
303
+ case builtins.BOOL:
304
+ case builtins.INT2:
305
+ case builtins.INT4:
306
+ case builtins.OID:
307
+ case builtins.FLOAT4:
308
+ case builtins.FLOAT8:
309
+ case builtins.JSON:
310
+ case builtins.JSONB:
311
+ case builtins.INT8:
312
+ case builtins.NUMERIC:
313
+ case builtins.TEXT:
314
+ case builtins.VARCHAR:
315
+ case builtins.UUID:
316
+ return cell;
317
+ case builtins.BYTEA:
318
+ if (cell instanceof ArrayBuffer)
319
+ return new Uint8Array(cell);
320
+ return typeof cell === "string" ? parseBytea(cell) : cell;
321
+ default: {
322
+ const d = defaults.get(oid);
323
+ if (!d || typeof cell !== "string")
324
+ return cell;
325
+ return d(cell);
326
+ }
327
+ }
328
+ }
329
+ //# sourceMappingURL=type-parsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-parsers.js","sourceRoot":"","sources":["../src/type-parsers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /** The error `tryExec` answers with as a value. The SQLSTATE is read from
2
+ * `code` and nowhere else. */
3
+ export interface DbErrorData {
4
+ code: string;
5
+ message: string;
6
+ detail: string | null;
7
+ hint: string | null;
8
+ position: string | null;
9
+ severity: string;
10
+ }
11
+ export interface DbColumn {
12
+ name: string;
13
+ typeOid: number;
14
+ }
15
+ export type TryExecResult = {
16
+ ok: true;
17
+ columns: DbColumn[];
18
+ /** Positional arrays. No cell is lost even when column names
19
+ * collide. */
20
+ values: unknown[][];
21
+ rows: Record<string, unknown>[];
22
+ commandTag: string | null;
23
+ transactionStatus: string | null;
24
+ } | {
25
+ ok: false;
26
+ error: DbErrorData;
27
+ transactionStatus?: string | null;
28
+ };
29
+ /** A request-scoped session handle (`env.db.session()`). Transactions,
30
+ * prepared statements and SET are kept inside it. */
31
+ export interface DbSession {
32
+ exec(sql: string, params?: unknown[]): Promise<unknown[]>;
33
+ tryExec(sql: string, params?: unknown[]): Promise<TryExecResult>;
34
+ close(): Promise<void>;
35
+ }
36
+ /** What the user worker sees as `env.db`. */
37
+ export interface Db {
38
+ exec(sql: string, params?: unknown[]): Promise<unknown[]>;
39
+ tryExec(sql: string, params?: unknown[]): Promise<TryExecResult>;
40
+ session(): Promise<DbSession>;
41
+ identity(): Promise<{
42
+ project: string;
43
+ epoch: number;
44
+ }>;
45
+ }
46
+ export interface StorageObject {
47
+ key: string;
48
+ size: number;
49
+ etag: string;
50
+ contentType: string;
51
+ /** RFC 1123 (exactly the Last-Modified header). It can be empty. */
52
+ lastModified: string;
53
+ }
54
+ export interface StorageListPage {
55
+ objects: StorageObject[];
56
+ /** Empty means it is the last page. Pass it as the `cursor` of the next
57
+ * call. */
58
+ cursor: string;
59
+ }
60
+ /** What the user worker sees as `env.storage`. A key is a path relative to the
61
+ * project prefix. */
62
+ export interface Storage {
63
+ put(key: string, body: BodyInit | null, opts?: {
64
+ contentType?: string;
65
+ }): Promise<StorageObject>;
66
+ /** `null` when it is not there. A 404 is not an exception. */
67
+ get(key: string): Promise<(StorageObject & {
68
+ body: ReadableStream<Uint8Array> | null;
69
+ }) | null>;
70
+ head(key: string): Promise<StorageObject | null>;
71
+ /** Idempotent. Deleting a key that does not exist is a success. */
72
+ delete(key: string): Promise<void>;
73
+ list(opts?: {
74
+ prefix?: string;
75
+ cursor?: string;
76
+ limit?: number;
77
+ }): Promise<StorageListPage>;
78
+ /**
79
+ * A signed URL. GET and PUT only. ttl is in seconds (default 300, ceiling
80
+ * 3600).
81
+ *
82
+ * Passing `size` binds that byte count into the signature — uploading a
83
+ * different length gets refused by the store with a 403, and the quota is
84
+ * checked against that size at issue time. Without it there is no ceiling on
85
+ * how much this URL can upload. Used on PUT only.
86
+ */
87
+ presign(key: string, opts?: {
88
+ method?: "GET" | "PUT";
89
+ ttl?: number;
90
+ size?: number;
91
+ }): Promise<string>;
92
+ }
93
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,9 @@
1
+ // The surface of `env.db` (docs/env-db-assembly.md §8,
2
+ // docs/pg-driver-support.md §3.1).
3
+ //
4
+ // What is written here is everything the adapter expects. The system worker's
5
+ // `Db` facade is canonical and this file is a copy of its shape carried over
6
+ // into TypeScript — if the two drift apart the adapter quietly produces wrong
7
+ // values, so when the facade changes this changes with it.
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,mCAAmC;AACnC,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAC9E,2DAA2D"}
package/package.json ADDED
@@ -0,0 +1,83 @@
1
+ {
2
+ "name": "@runlot/pg",
3
+ "version": "0.1.0-rc.100",
4
+ "description": "node-postgres-compatible adapter for env.db, with adapters for six ORMs",
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/runlot/runlot",
11
+ "directory": "web/packages/pg"
12
+ },
13
+ "type": "module",
14
+ "main": "./dist/index.js",
15
+ "types": "./dist/index.d.ts",
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/index.d.ts",
19
+ "default": "./dist/index.js"
20
+ },
21
+ "./drizzle": {
22
+ "types": "./dist/orm/drizzle.d.ts",
23
+ "default": "./dist/orm/drizzle.js"
24
+ },
25
+ "./kysely": {
26
+ "types": "./dist/orm/kysely.d.ts",
27
+ "default": "./dist/orm/kysely.js"
28
+ },
29
+ "./knex": {
30
+ "types": "./dist/orm/knex.d.ts",
31
+ "default": "./dist/orm/knex.js"
32
+ },
33
+ "./typeorm": {
34
+ "types": "./dist/orm/typeorm.d.ts",
35
+ "default": "./dist/orm/typeorm.js"
36
+ },
37
+ "./sequelize": {
38
+ "types": "./dist/orm/sequelize.d.ts",
39
+ "default": "./dist/orm/sequelize.js"
40
+ },
41
+ "./prisma": {
42
+ "types": "./dist/orm/prisma.d.ts",
43
+ "default": "./dist/orm/prisma.js"
44
+ },
45
+ "./bundler": {
46
+ "types": "./dist/bundler.d.ts",
47
+ "default": "./dist/bundler.js"
48
+ },
49
+ "./type-parsers": {
50
+ "types": "./dist/type-parsers.d.ts",
51
+ "default": "./dist/type-parsers.js"
52
+ }
53
+ },
54
+ "files": [
55
+ "dist"
56
+ ],
57
+ "dependencies": {
58
+ "esbuild": "^0.24.2",
59
+ "@prisma/driver-adapter-utils": "7.10.0"
60
+ },
61
+ "devDependencies": {
62
+ "@types/node": "^22.10.2",
63
+ "@types/pg": "^8.23.1",
64
+ "typescript": "^5.7.2",
65
+ "drizzle-orm": "0.45.2",
66
+ "kysely": "0.29.5",
67
+ "knex": "3.3.0",
68
+ "typeorm": "1.1.1",
69
+ "reflect-metadata": "0.2.2",
70
+ "sequelize": "6.37.8",
71
+ "@prisma/client": "7.10.0",
72
+ "@prisma/driver-adapter-utils": "7.10.0",
73
+ "prisma": "7.10.0",
74
+ "@runlot/config": "0.1.0-rc.100"
75
+ },
76
+ "scripts": {
77
+ "build": "tsc -p tsconfig.build.json",
78
+ "test": "node build.mjs --test",
79
+ "prisma:generate": "prisma generate --config e2e/prisma/prisma.config.ts",
80
+ "typecheck": "pnpm run -s prisma:generate >/dev/null && tsc --noEmit",
81
+ "e2e:build": "node build.mjs --e2e"
82
+ }
83
+ }