@dbos-inc/dbos-sdk 3.5.44-preview.gc094fdab44 → 3.6.3-preview
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 +6 -0
- package/dist/schemas/user_db_schema.d.ts +15 -0
- package/dist/schemas/user_db_schema.d.ts.map +1 -0
- package/dist/schemas/user_db_schema.js +33 -0
- package/dist/schemas/user_db_schema.js.map +1 -0
- package/dist/src/client.d.ts +4 -2
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/client.js +19 -6
- package/dist/src/client.js.map +1 -1
- package/dist/src/conductor/conductor.js +1 -1
- package/dist/src/conductor/conductor.js.map +1 -1
- package/dist/src/context.d.ts +3 -0
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js.map +1 -1
- package/dist/src/dbos-executor.d.ts +27 -2
- package/dist/src/dbos-executor.d.ts.map +1 -1
- package/dist/src/dbos-executor.js +787 -21
- package/dist/src/dbos-executor.js.map +1 -1
- package/dist/src/{cli → dbos-runtime}/cli.d.ts +1 -1
- package/dist/src/dbos-runtime/cli.d.ts.map +1 -0
- package/dist/src/{cli → dbos-runtime}/cli.js +12 -3
- package/dist/src/dbos-runtime/cli.js.map +1 -0
- package/dist/src/dbos-runtime/commands.d.ts.map +1 -0
- package/dist/src/dbos-runtime/commands.js.map +1 -0
- package/dist/src/{config.d.ts → dbos-runtime/config.d.ts} +6 -2
- package/dist/src/dbos-runtime/config.d.ts.map +1 -0
- package/dist/src/{config.js → dbos-runtime/config.js} +43 -9
- package/dist/src/dbos-runtime/config.js.map +1 -0
- package/dist/src/dbos-runtime/docker_pg_helper.d.ts.map +1 -0
- package/dist/src/dbos-runtime/docker_pg_helper.js.map +1 -0
- package/dist/src/dbos-runtime/migrate.d.ts +3 -0
- package/dist/src/dbos-runtime/migrate.d.ts.map +1 -0
- package/dist/src/{cli → dbos-runtime}/migrate.js +29 -1
- package/dist/src/dbos-runtime/migrate.js.map +1 -0
- package/dist/src/{workflow_management.d.ts → dbos-runtime/workflow_management.d.ts} +6 -4
- package/dist/src/dbos-runtime/workflow_management.d.ts.map +1 -0
- package/dist/src/{workflow_management.js → dbos-runtime/workflow_management.js} +26 -5
- package/dist/src/dbos-runtime/workflow_management.js.map +1 -0
- package/dist/src/dbos.d.ts +196 -2
- package/dist/src/dbos.d.ts.map +1 -1
- package/dist/src/dbos.js +407 -11
- package/dist/src/dbos.js.map +1 -1
- package/dist/src/decorators.d.ts +38 -4
- package/dist/src/decorators.d.ts.map +1 -1
- package/dist/src/decorators.js +164 -9
- package/dist/src/decorators.js.map +1 -1
- package/dist/src/error.d.ts +8 -0
- package/dist/src/error.d.ts.map +1 -1
- package/dist/src/error.js +14 -1
- package/dist/src/error.js.map +1 -1
- package/dist/src/httpServer/handler.d.ts +13 -0
- package/dist/src/httpServer/handler.d.ts.map +1 -0
- package/dist/src/httpServer/handler.js +25 -0
- package/dist/src/httpServer/handler.js.map +1 -0
- package/dist/src/httpServer/handlerTypes.d.ts +14 -0
- package/dist/src/httpServer/handlerTypes.d.ts.map +1 -0
- package/dist/src/httpServer/handlerTypes.js +22 -0
- package/dist/src/httpServer/handlerTypes.js.map +1 -0
- package/dist/src/httpServer/middleware.d.ts +74 -0
- package/dist/src/httpServer/middleware.d.ts.map +1 -0
- package/dist/src/httpServer/middleware.js +108 -0
- package/dist/src/httpServer/middleware.js.map +1 -0
- package/dist/src/{adminserver.d.ts → httpServer/server.d.ts} +15 -6
- package/dist/src/httpServer/server.d.ts.map +1 -0
- package/dist/src/{adminserver.js → httpServer/server.js} +311 -28
- package/dist/src/httpServer/server.js.map +1 -0
- package/dist/src/index.d.ts +12 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +40 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/paramdecorators.d.ts +39 -0
- package/dist/src/paramdecorators.d.ts.map +1 -0
- package/dist/src/paramdecorators.js +365 -0
- package/dist/src/paramdecorators.js.map +1 -0
- package/dist/src/procedure.d.ts +18 -0
- package/dist/src/procedure.d.ts.map +1 -0
- package/dist/src/procedure.js +3 -0
- package/dist/src/procedure.js.map +1 -0
- package/dist/src/transaction.d.ts +19 -0
- package/dist/src/transaction.d.ts.map +1 -0
- package/dist/src/transaction.js +11 -0
- package/dist/src/transaction.js.map +1 -0
- package/dist/src/user_database.d.ts +176 -0
- package/dist/src/user_database.d.ts.map +1 -0
- package/dist/src/user_database.js +540 -0
- package/dist/src/user_database.js.map +1 -0
- package/dist/src/utils.d.ts +22 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +172 -20
- package/dist/src/utils.js.map +1 -1
- package/dist/src/wfqueue.d.ts +2 -0
- package/dist/src/wfqueue.d.ts.map +1 -1
- package/dist/src/wfqueue.js +1 -1
- package/dist/src/wfqueue.js.map +1 -1
- package/dist/src/workflow.d.ts +8 -0
- package/dist/src/workflow.d.ts.map +1 -1
- package/dist/src/workflow.js +11 -0
- package/dist/src/workflow.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +28 -4
- package/dist/src/adminserver.d.ts.map +0 -1
- package/dist/src/adminserver.js.map +0 -1
- package/dist/src/cli/cli.d.ts.map +0 -1
- package/dist/src/cli/cli.js.map +0 -1
- package/dist/src/cli/commands.d.ts.map +0 -1
- package/dist/src/cli/commands.js.map +0 -1
- package/dist/src/cli/docker_pg_helper.d.ts.map +0 -1
- package/dist/src/cli/docker_pg_helper.js.map +0 -1
- package/dist/src/cli/migrate.d.ts +0 -3
- package/dist/src/cli/migrate.d.ts.map +0 -1
- package/dist/src/cli/migrate.js.map +0 -1
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/config.js.map +0 -1
- package/dist/src/workflow_management.d.ts.map +0 -1
- package/dist/src/workflow_management.js.map +0 -1
- /package/dist/src/{cli → dbos-runtime}/commands.d.ts +0 -0
- /package/dist/src/{cli → dbos-runtime}/commands.js +0 -0
- /package/dist/src/{cli → dbos-runtime}/docker_pg_helper.d.ts +0 -0
- /package/dist/src/{cli → dbos-runtime}/docker_pg_helper.js +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"user_database.d.ts","sourceRoot":"","sources":["../../src/user_database.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,540 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DrizzleUserDatabase = exports.KnexUserDatabase = exports.TypeORMDatabase = exports.PrismaUserDatabase = exports.PGNodeUserDatabase = exports.pgNodeIsKeyConflictError = exports.txnOutputIndexExistsQuery = exports.txnOutputTableExistsQuery = exports.schemaExistsQuery = exports.UserDatabaseName = exports.ensureDbosTables = void 0;
|
4
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
5
|
+
const pg_1 = require("pg");
|
6
|
+
const user_db_schema_1 = require("../schemas/user_db_schema");
|
7
|
+
const transaction_1 = require("./transaction");
|
8
|
+
const utils_1 = require("./utils");
|
9
|
+
async function ensureDbosTables(databaseUrl) {
|
10
|
+
const pgUserClient = new pg_1.Client((0, utils_1.getClientConfig)(databaseUrl));
|
11
|
+
try {
|
12
|
+
await pgUserClient.connect();
|
13
|
+
// Create DBOS table/schema in user DB.
|
14
|
+
// Always check if the schema/table exists before creating it to avoid locks.
|
15
|
+
const schemaExists = await pgUserClient.query(exports.schemaExistsQuery);
|
16
|
+
if (!schemaExists.rows[0].exists) {
|
17
|
+
await pgUserClient.query(user_db_schema_1.createUserDBSchema);
|
18
|
+
}
|
19
|
+
const txnOutputTableExists = await pgUserClient.query(exports.txnOutputTableExistsQuery);
|
20
|
+
if (!txnOutputTableExists.rows[0].exists) {
|
21
|
+
await pgUserClient.query(user_db_schema_1.userDBSchema);
|
22
|
+
}
|
23
|
+
else {
|
24
|
+
const columnExists = await pgUserClient.query(user_db_schema_1.columnExistsQuery);
|
25
|
+
if (!columnExists.rows[0].exists) {
|
26
|
+
await pgUserClient.query(user_db_schema_1.addColumnQuery);
|
27
|
+
}
|
28
|
+
}
|
29
|
+
const txnIndexExists = await pgUserClient.query(exports.txnOutputIndexExistsQuery);
|
30
|
+
if (!txnIndexExists.rows[0].exists) {
|
31
|
+
await pgUserClient.query(user_db_schema_1.userDBIndex);
|
32
|
+
}
|
33
|
+
}
|
34
|
+
finally {
|
35
|
+
await pgUserClient.end();
|
36
|
+
}
|
37
|
+
}
|
38
|
+
exports.ensureDbosTables = ensureDbosTables;
|
39
|
+
exports.UserDatabaseName = {
|
40
|
+
PGNODE: 'pg-node',
|
41
|
+
PRISMA: 'prisma',
|
42
|
+
TYPEORM: 'typeorm',
|
43
|
+
KNEX: 'knex',
|
44
|
+
DRIZZLE: 'drizzle',
|
45
|
+
};
|
46
|
+
exports.schemaExistsQuery = `SELECT EXISTS (SELECT FROM information_schema.schemata WHERE schema_name = 'dbos')`;
|
47
|
+
exports.txnOutputTableExistsQuery = `SELECT EXISTS (SELECT FROM information_schema.tables WHERE table_schema = 'dbos' AND table_name = 'transaction_outputs')`;
|
48
|
+
exports.txnOutputIndexExistsQuery = `SELECT EXISTS (SELECT FROM pg_indexes WHERE schemaname='dbos' AND tablename = 'transaction_outputs' AND indexname = 'transaction_outputs_created_at_index')`;
|
49
|
+
function pgNodeIsKeyConflictError(error) {
|
50
|
+
if (!(error instanceof pg_1.DatabaseError)) {
|
51
|
+
return false;
|
52
|
+
}
|
53
|
+
const pge = getPostgresErrorCode(error);
|
54
|
+
return pge === '23505';
|
55
|
+
function getPostgresErrorCode(error) {
|
56
|
+
const dbErr = error;
|
57
|
+
return dbErr.code ? dbErr.code : null;
|
58
|
+
}
|
59
|
+
}
|
60
|
+
exports.pgNodeIsKeyConflictError = pgNodeIsKeyConflictError;
|
61
|
+
/**
|
62
|
+
* node-postgres user data access interface
|
63
|
+
*/
|
64
|
+
class PGNodeUserDatabase {
|
65
|
+
poolConfig;
|
66
|
+
pool;
|
67
|
+
constructor(poolConfig) {
|
68
|
+
this.poolConfig = poolConfig;
|
69
|
+
this.pool = new pg_1.Pool(poolConfig);
|
70
|
+
}
|
71
|
+
async init(debugMode = false) {
|
72
|
+
if (!debugMode) {
|
73
|
+
const schemaExists = await this.pool.query(exports.schemaExistsQuery);
|
74
|
+
if (!schemaExists.rows[0].exists) {
|
75
|
+
await this.pool.query(user_db_schema_1.createUserDBSchema);
|
76
|
+
}
|
77
|
+
const txnOutputTableExists = await this.pool.query(exports.txnOutputTableExistsQuery);
|
78
|
+
if (!txnOutputTableExists.rows[0].exists) {
|
79
|
+
await this.pool.query(user_db_schema_1.userDBSchema);
|
80
|
+
}
|
81
|
+
else {
|
82
|
+
const columnExists = await this.pool.query(user_db_schema_1.columnExistsQuery);
|
83
|
+
if (!columnExists.rows[0].exists) {
|
84
|
+
await this.pool.query(user_db_schema_1.addColumnQuery);
|
85
|
+
}
|
86
|
+
}
|
87
|
+
const txnIndexExists = await this.pool.query(exports.txnOutputIndexExistsQuery);
|
88
|
+
if (!txnIndexExists.rows[0].exists) {
|
89
|
+
await this.pool.query(user_db_schema_1.userDBIndex);
|
90
|
+
}
|
91
|
+
}
|
92
|
+
}
|
93
|
+
async destroy() {
|
94
|
+
await this.pool.end();
|
95
|
+
}
|
96
|
+
getName() {
|
97
|
+
return exports.UserDatabaseName.PGNODE;
|
98
|
+
}
|
99
|
+
async transaction(txn, config, ...args) {
|
100
|
+
const client = await this.pool.connect();
|
101
|
+
try {
|
102
|
+
const isolationLevel = config.isolationLevel ?? transaction_1.IsolationLevel.Serializable;
|
103
|
+
await client.query(`BEGIN ISOLATION LEVEL ${isolationLevel}`);
|
104
|
+
const result = await txn(client, ...args);
|
105
|
+
await client.query(`COMMIT`);
|
106
|
+
return result;
|
107
|
+
}
|
108
|
+
catch (err) {
|
109
|
+
await client.query(`ROLLBACK`);
|
110
|
+
throw err;
|
111
|
+
}
|
112
|
+
finally {
|
113
|
+
client.release();
|
114
|
+
}
|
115
|
+
}
|
116
|
+
async queryFunction(func, ...args) {
|
117
|
+
const client = await this.pool.connect();
|
118
|
+
try {
|
119
|
+
return func(client, ...args);
|
120
|
+
}
|
121
|
+
finally {
|
122
|
+
client.release();
|
123
|
+
}
|
124
|
+
}
|
125
|
+
async query(sql, ...params) {
|
126
|
+
return this.pool.query(sql, params).then((value) => {
|
127
|
+
return value.rows;
|
128
|
+
});
|
129
|
+
}
|
130
|
+
async queryWithClient(client, sql, ...params) {
|
131
|
+
const pgClient = client;
|
132
|
+
return pgClient.query(sql, params).then((value) => {
|
133
|
+
return value.rows;
|
134
|
+
});
|
135
|
+
}
|
136
|
+
getPostgresErrorCode(error) {
|
137
|
+
const dbErr = error;
|
138
|
+
return dbErr.code ? dbErr.code : null;
|
139
|
+
}
|
140
|
+
isRetriableTransactionError(error) {
|
141
|
+
if (!(error instanceof pg_1.DatabaseError)) {
|
142
|
+
return false;
|
143
|
+
}
|
144
|
+
return this.getPostgresErrorCode(error) === '40001';
|
145
|
+
}
|
146
|
+
isKeyConflictError(error) {
|
147
|
+
if (!(error instanceof pg_1.DatabaseError)) {
|
148
|
+
return false;
|
149
|
+
}
|
150
|
+
const pge = this.getPostgresErrorCode(error);
|
151
|
+
return pge === '23505';
|
152
|
+
}
|
153
|
+
isFailedSqlTransactionError(error) {
|
154
|
+
if (!(error instanceof pg_1.DatabaseError)) {
|
155
|
+
return false;
|
156
|
+
}
|
157
|
+
return this.getPostgresErrorCode(error) === '25P02';
|
158
|
+
}
|
159
|
+
async createSchema() {
|
160
|
+
return Promise.reject(new Error('createSchema() is not supported in PG user database.'));
|
161
|
+
}
|
162
|
+
async dropSchema() {
|
163
|
+
return Promise.reject(new Error('dropSchema() is not supported in PG user database.'));
|
164
|
+
}
|
165
|
+
}
|
166
|
+
exports.PGNodeUserDatabase = PGNodeUserDatabase;
|
167
|
+
const PrismaIsolationLevel = {
|
168
|
+
ReadUncommitted: 'ReadUncommitted',
|
169
|
+
ReadCommitted: 'ReadCommitted',
|
170
|
+
RepeatableRead: 'RepeatableRead',
|
171
|
+
Serializable: 'Serializable',
|
172
|
+
};
|
173
|
+
class PrismaUserDatabase {
|
174
|
+
prisma;
|
175
|
+
constructor(prisma) {
|
176
|
+
this.prisma = prisma;
|
177
|
+
}
|
178
|
+
async init(debugMode = false) {
|
179
|
+
if (!debugMode) {
|
180
|
+
const schemaExists = await this.prisma.$queryRawUnsafe(exports.schemaExistsQuery);
|
181
|
+
if (!schemaExists[0].exists) {
|
182
|
+
await this.prisma.$queryRawUnsafe(user_db_schema_1.createUserDBSchema);
|
183
|
+
}
|
184
|
+
const txnOutputTableExists = await this.prisma.$queryRawUnsafe(exports.txnOutputTableExistsQuery);
|
185
|
+
if (!txnOutputTableExists[0].exists) {
|
186
|
+
await this.prisma.$queryRawUnsafe(user_db_schema_1.userDBSchema);
|
187
|
+
}
|
188
|
+
else {
|
189
|
+
const columnExists = await this.prisma.$queryRawUnsafe(user_db_schema_1.columnExistsQuery);
|
190
|
+
if (!columnExists[0].exists) {
|
191
|
+
await this.prisma.$queryRawUnsafe(user_db_schema_1.addColumnQuery);
|
192
|
+
}
|
193
|
+
}
|
194
|
+
const txnIndexExists = await this.prisma.$queryRawUnsafe(exports.txnOutputIndexExistsQuery);
|
195
|
+
if (!txnIndexExists[0].exists) {
|
196
|
+
await this.prisma.$queryRawUnsafe(user_db_schema_1.userDBIndex);
|
197
|
+
}
|
198
|
+
}
|
199
|
+
}
|
200
|
+
async destroy() {
|
201
|
+
await this.prisma.$disconnect();
|
202
|
+
}
|
203
|
+
getName() {
|
204
|
+
return exports.UserDatabaseName.PRISMA;
|
205
|
+
}
|
206
|
+
async transaction(transaction, config, ...args) {
|
207
|
+
let isolationLevel;
|
208
|
+
if (config.isolationLevel === transaction_1.IsolationLevel.ReadUncommitted) {
|
209
|
+
isolationLevel = PrismaIsolationLevel.ReadUncommitted;
|
210
|
+
}
|
211
|
+
else if (config.isolationLevel === transaction_1.IsolationLevel.ReadCommitted) {
|
212
|
+
isolationLevel = PrismaIsolationLevel.ReadCommitted;
|
213
|
+
}
|
214
|
+
else if (config.isolationLevel === transaction_1.IsolationLevel.RepeatableRead) {
|
215
|
+
isolationLevel = PrismaIsolationLevel.RepeatableRead;
|
216
|
+
}
|
217
|
+
else {
|
218
|
+
isolationLevel = PrismaIsolationLevel.Serializable;
|
219
|
+
}
|
220
|
+
const result = await this.prisma.$transaction(async (tx) => {
|
221
|
+
return await transaction(tx, ...args);
|
222
|
+
}, { isolationLevel: isolationLevel });
|
223
|
+
return result;
|
224
|
+
}
|
225
|
+
async queryFunction(func, ...args) {
|
226
|
+
return func(this.prisma, ...args);
|
227
|
+
}
|
228
|
+
async query(sql, ...params) {
|
229
|
+
return this.prisma.$queryRawUnsafe(sql, ...params);
|
230
|
+
}
|
231
|
+
async queryWithClient(client, sql, ...params) {
|
232
|
+
const prismaClient = client;
|
233
|
+
return prismaClient.$queryRawUnsafe(sql, ...params);
|
234
|
+
}
|
235
|
+
getPostgresErrorCode(error) {
|
236
|
+
const dbErr = error;
|
237
|
+
return dbErr.meta ? dbErr.meta.code : null;
|
238
|
+
}
|
239
|
+
isRetriableTransactionError(error) {
|
240
|
+
return this.getPostgresErrorCode(error) === '40001';
|
241
|
+
}
|
242
|
+
isKeyConflictError(error) {
|
243
|
+
return this.getPostgresErrorCode(error) === '23505';
|
244
|
+
}
|
245
|
+
isFailedSqlTransactionError(error) {
|
246
|
+
return this.getPostgresErrorCode(error) === '25P02';
|
247
|
+
}
|
248
|
+
async createSchema() {
|
249
|
+
return Promise.reject(new Error('createSchema() is not supported in Prisma user database.'));
|
250
|
+
}
|
251
|
+
async dropSchema() {
|
252
|
+
return Promise.reject(new Error('dropSchema() is not supported in Prisma user database.'));
|
253
|
+
}
|
254
|
+
}
|
255
|
+
exports.PrismaUserDatabase = PrismaUserDatabase;
|
256
|
+
/**
|
257
|
+
* TypeORM user data access interface
|
258
|
+
*/
|
259
|
+
class TypeORMDatabase {
|
260
|
+
ds;
|
261
|
+
dataSource;
|
262
|
+
constructor(ds) {
|
263
|
+
this.ds = ds;
|
264
|
+
this.dataSource = ds;
|
265
|
+
}
|
266
|
+
async init(debugMode = false) {
|
267
|
+
if (!this.dataSource.isInitialized) {
|
268
|
+
await this.dataSource.initialize(); // Need to initialize datasource even in debug mode.
|
269
|
+
}
|
270
|
+
if (!debugMode) {
|
271
|
+
const schemaExists = await this.dataSource.query(exports.schemaExistsQuery);
|
272
|
+
if (!schemaExists[0].exists) {
|
273
|
+
await this.dataSource.query(user_db_schema_1.createUserDBSchema);
|
274
|
+
}
|
275
|
+
const txnOutputTableExists = await this.dataSource.query(exports.txnOutputTableExistsQuery);
|
276
|
+
if (!txnOutputTableExists[0].exists) {
|
277
|
+
await this.dataSource.query(user_db_schema_1.userDBSchema);
|
278
|
+
}
|
279
|
+
else {
|
280
|
+
const columnExists = await this.dataSource.query(user_db_schema_1.columnExistsQuery);
|
281
|
+
if (!columnExists[0].exists) {
|
282
|
+
await this.dataSource.query(user_db_schema_1.addColumnQuery);
|
283
|
+
}
|
284
|
+
}
|
285
|
+
const txnIndexExists = await this.dataSource.query(exports.txnOutputIndexExistsQuery);
|
286
|
+
if (!txnIndexExists[0].exists) {
|
287
|
+
await this.dataSource.query(user_db_schema_1.userDBIndex);
|
288
|
+
}
|
289
|
+
}
|
290
|
+
}
|
291
|
+
async destroy() {
|
292
|
+
if (this.dataSource.isInitialized) {
|
293
|
+
await this.dataSource.destroy();
|
294
|
+
}
|
295
|
+
}
|
296
|
+
getName() {
|
297
|
+
return exports.UserDatabaseName.TYPEORM;
|
298
|
+
}
|
299
|
+
async transaction(txn, config, ...args) {
|
300
|
+
const isolationLevel = config.isolationLevel ?? transaction_1.IsolationLevel.Serializable;
|
301
|
+
return this.dataSource.manager.transaction(isolationLevel, async (transactionEntityManager) => {
|
302
|
+
const result = await txn(transactionEntityManager, ...args);
|
303
|
+
return result;
|
304
|
+
});
|
305
|
+
}
|
306
|
+
async queryFunction(func, ...args) {
|
307
|
+
return func(this.dataSource.manager, ...args);
|
308
|
+
}
|
309
|
+
async query(sql, ...params) {
|
310
|
+
return this.dataSource.manager.query(sql, params).then((value) => {
|
311
|
+
return value;
|
312
|
+
});
|
313
|
+
}
|
314
|
+
async queryWithClient(client, sql, ...params) {
|
315
|
+
const tClient = client;
|
316
|
+
return tClient.query(sql, params).then((value) => {
|
317
|
+
return value;
|
318
|
+
});
|
319
|
+
}
|
320
|
+
getPostgresErrorCode(error) {
|
321
|
+
const typeormErr = error;
|
322
|
+
if (typeormErr.driverError) {
|
323
|
+
const dbErr = typeormErr.driverError;
|
324
|
+
return dbErr.code ? dbErr.code : null;
|
325
|
+
}
|
326
|
+
else {
|
327
|
+
return null;
|
328
|
+
}
|
329
|
+
}
|
330
|
+
isRetriableTransactionError(error) {
|
331
|
+
return this.getPostgresErrorCode(error) === '40001';
|
332
|
+
}
|
333
|
+
isKeyConflictError(error) {
|
334
|
+
return this.getPostgresErrorCode(error) === '23505';
|
335
|
+
}
|
336
|
+
isFailedSqlTransactionError(error) {
|
337
|
+
return this.getPostgresErrorCode(error) === '25P02';
|
338
|
+
}
|
339
|
+
async createSchema() {
|
340
|
+
return this.dataSource.synchronize();
|
341
|
+
}
|
342
|
+
async dropSchema() {
|
343
|
+
return this.dataSource.dropDatabase();
|
344
|
+
}
|
345
|
+
}
|
346
|
+
exports.TypeORMDatabase = TypeORMDatabase;
|
347
|
+
/**
|
348
|
+
* Knex user data access interface
|
349
|
+
*/
|
350
|
+
class KnexUserDatabase {
|
351
|
+
knex;
|
352
|
+
constructor(knex) {
|
353
|
+
this.knex = knex;
|
354
|
+
}
|
355
|
+
async init(debugMode = false) {
|
356
|
+
if (!debugMode) {
|
357
|
+
const schemaExists = await this.knex.raw(exports.schemaExistsQuery);
|
358
|
+
if (!schemaExists.rows[0].exists) {
|
359
|
+
await this.knex.raw(user_db_schema_1.createUserDBSchema);
|
360
|
+
}
|
361
|
+
const txnOutputTableExists = await this.knex.raw(exports.txnOutputTableExistsQuery);
|
362
|
+
if (!txnOutputTableExists.rows[0].exists) {
|
363
|
+
await this.knex.raw(user_db_schema_1.userDBSchema);
|
364
|
+
}
|
365
|
+
else {
|
366
|
+
const columnExists = await this.knex.raw(user_db_schema_1.columnExistsQuery);
|
367
|
+
if (!columnExists.rows[0].exists) {
|
368
|
+
await this.knex.raw(user_db_schema_1.addColumnQuery);
|
369
|
+
}
|
370
|
+
}
|
371
|
+
const txnIndexExists = await this.knex.raw(exports.txnOutputIndexExistsQuery);
|
372
|
+
if (!txnIndexExists.rows[0].exists) {
|
373
|
+
await this.knex.raw(user_db_schema_1.userDBIndex);
|
374
|
+
}
|
375
|
+
}
|
376
|
+
}
|
377
|
+
async destroy() {
|
378
|
+
await this.knex.destroy();
|
379
|
+
}
|
380
|
+
getName() {
|
381
|
+
return exports.UserDatabaseName.KNEX;
|
382
|
+
}
|
383
|
+
async transaction(transactionFunction, config, ...args) {
|
384
|
+
let isolationLevel;
|
385
|
+
if (config.isolationLevel === transaction_1.IsolationLevel.ReadUncommitted) {
|
386
|
+
isolationLevel = 'read uncommitted';
|
387
|
+
}
|
388
|
+
else if (config.isolationLevel === transaction_1.IsolationLevel.ReadCommitted) {
|
389
|
+
isolationLevel = 'read committed';
|
390
|
+
}
|
391
|
+
else if (config.isolationLevel === transaction_1.IsolationLevel.RepeatableRead) {
|
392
|
+
isolationLevel = 'repeatable read';
|
393
|
+
}
|
394
|
+
else {
|
395
|
+
isolationLevel = 'serializable';
|
396
|
+
}
|
397
|
+
const result = await this.knex.transaction(async (transactionClient) => {
|
398
|
+
return await transactionFunction(transactionClient, ...args);
|
399
|
+
}, { isolationLevel: isolationLevel });
|
400
|
+
return result;
|
401
|
+
}
|
402
|
+
async queryFunction(func, ...args) {
|
403
|
+
const result = await this.knex.transaction(async (transactionClient) => {
|
404
|
+
return await func(transactionClient, ...args);
|
405
|
+
}, { isolationLevel: 'read committed', readOnly: true });
|
406
|
+
return result;
|
407
|
+
}
|
408
|
+
async query(sql, ...params) {
|
409
|
+
return this.queryWithClient(this.knex, sql, ...params);
|
410
|
+
}
|
411
|
+
async queryWithClient(client, sql, ...uparams) {
|
412
|
+
const knexSql = sql.replace(/\$\d+/g, '?'); // Replace $1, $2... with ?
|
413
|
+
let params = uparams;
|
414
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
415
|
+
params = params.map((i) => (i === undefined ? null : i)); // Set undefined parameters to null.
|
416
|
+
const rows = (await client.raw(knexSql, params));
|
417
|
+
return rows.rows;
|
418
|
+
}
|
419
|
+
getPostgresErrorCode(error) {
|
420
|
+
const dbErr = error;
|
421
|
+
return dbErr.code ? dbErr.code : null;
|
422
|
+
}
|
423
|
+
isRetriableTransactionError(error) {
|
424
|
+
return this.getPostgresErrorCode(error) === '40001';
|
425
|
+
}
|
426
|
+
isKeyConflictError(error) {
|
427
|
+
return this.getPostgresErrorCode(error) === '23505';
|
428
|
+
}
|
429
|
+
isFailedSqlTransactionError(error) {
|
430
|
+
return this.getPostgresErrorCode(error) === '25P02';
|
431
|
+
}
|
432
|
+
async createSchema() {
|
433
|
+
return Promise.reject(new Error('createSchema() is not supported in Knex user database.'));
|
434
|
+
}
|
435
|
+
async dropSchema() {
|
436
|
+
return Promise.reject(new Error('dropSchema() is not supported in Knex user database.'));
|
437
|
+
}
|
438
|
+
}
|
439
|
+
exports.KnexUserDatabase = KnexUserDatabase;
|
440
|
+
/**
|
441
|
+
* Drizzle user data access interface
|
442
|
+
*/
|
443
|
+
class DrizzleUserDatabase {
|
444
|
+
pool;
|
445
|
+
db;
|
446
|
+
constructor(pool, db) {
|
447
|
+
this.pool = pool;
|
448
|
+
this.db = db;
|
449
|
+
}
|
450
|
+
async init(debugMode = false) {
|
451
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
452
|
+
const poolClient = this.db._.session.client;
|
453
|
+
if (!debugMode) {
|
454
|
+
const schemaExists = await poolClient.query(exports.schemaExistsQuery);
|
455
|
+
if (!schemaExists.rows[0].exists) {
|
456
|
+
await poolClient.query(user_db_schema_1.createUserDBSchema);
|
457
|
+
}
|
458
|
+
const txnOutputTableExists = await poolClient.query(exports.txnOutputTableExistsQuery);
|
459
|
+
if (!txnOutputTableExists.rows[0].exists) {
|
460
|
+
await poolClient.query(user_db_schema_1.userDBSchema);
|
461
|
+
}
|
462
|
+
else {
|
463
|
+
const columnExists = await poolClient.query(user_db_schema_1.columnExistsQuery);
|
464
|
+
if (!columnExists.rows[0].exists) {
|
465
|
+
await poolClient.query(user_db_schema_1.addColumnQuery);
|
466
|
+
}
|
467
|
+
}
|
468
|
+
const txnIndexExists = await poolClient.query(exports.txnOutputIndexExistsQuery);
|
469
|
+
if (!txnIndexExists.rows[0].exists) {
|
470
|
+
await poolClient.query(user_db_schema_1.userDBIndex);
|
471
|
+
}
|
472
|
+
}
|
473
|
+
}
|
474
|
+
async destroy() {
|
475
|
+
await this.pool.end();
|
476
|
+
}
|
477
|
+
getName() {
|
478
|
+
return exports.UserDatabaseName.DRIZZLE;
|
479
|
+
}
|
480
|
+
async transaction(transactionFunction, config, ...args) {
|
481
|
+
let isolationLevel;
|
482
|
+
if (config.isolationLevel === transaction_1.IsolationLevel.ReadUncommitted) {
|
483
|
+
isolationLevel = 'read uncommitted';
|
484
|
+
}
|
485
|
+
else if (config.isolationLevel === transaction_1.IsolationLevel.ReadCommitted) {
|
486
|
+
isolationLevel = 'read committed';
|
487
|
+
}
|
488
|
+
else if (config.isolationLevel === transaction_1.IsolationLevel.RepeatableRead) {
|
489
|
+
isolationLevel = 'repeatable read';
|
490
|
+
}
|
491
|
+
else {
|
492
|
+
isolationLevel = 'serializable';
|
493
|
+
}
|
494
|
+
const accessMode = 'read write';
|
495
|
+
const result = await this.db.transaction(async (tx) => {
|
496
|
+
try {
|
497
|
+
return await transactionFunction(tx, ...args);
|
498
|
+
}
|
499
|
+
catch (e) {
|
500
|
+
const err = e;
|
501
|
+
throw err.cause ?? e;
|
502
|
+
}
|
503
|
+
}, { isolationLevel, accessMode });
|
504
|
+
return result;
|
505
|
+
}
|
506
|
+
async queryFunction(func, ...args) {
|
507
|
+
return func(this.db, ...args);
|
508
|
+
}
|
509
|
+
async query(sql, ...params) {
|
510
|
+
return this.queryWithClient(this.db, sql, ...params);
|
511
|
+
}
|
512
|
+
async queryWithClient(client, sqlString, ...params) {
|
513
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
514
|
+
const sessionClient = client._.session.client;
|
515
|
+
return sessionClient.query(sqlString, params).then((value) => {
|
516
|
+
return value.rows;
|
517
|
+
});
|
518
|
+
}
|
519
|
+
getPostgresErrorCode(error) {
|
520
|
+
const dbErr = error;
|
521
|
+
return dbErr.code ? dbErr.code : null;
|
522
|
+
}
|
523
|
+
isRetriableTransactionError(error) {
|
524
|
+
return this.getPostgresErrorCode(error) === '40001';
|
525
|
+
}
|
526
|
+
isKeyConflictError(error) {
|
527
|
+
return this.getPostgresErrorCode(error) === '23505';
|
528
|
+
}
|
529
|
+
isFailedSqlTransactionError(error) {
|
530
|
+
return this.getPostgresErrorCode(error) === '25P02';
|
531
|
+
}
|
532
|
+
async createSchema() {
|
533
|
+
return Promise.reject(new Error('createSchema() is not supported in Drizzle user database.'));
|
534
|
+
}
|
535
|
+
async dropSchema() {
|
536
|
+
return Promise.reject(new Error('dropSchema() is not supported in Drizzle user database.'));
|
537
|
+
}
|
538
|
+
}
|
539
|
+
exports.DrizzleUserDatabase = DrizzleUserDatabase;
|
540
|
+
//# sourceMappingURL=user_database.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"user_database.js","sourceRoot":"","sources":["../../src/user_database.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils.d.ts
CHANGED
@@ -1,4 +1,13 @@
|
|
1
1
|
/// <reference types="node" />
|
2
|
+
import type { JSONValue } from 'superjson/dist/types';
|
3
|
+
export { type JSONValue };
|
4
|
+
export type SerializationRecipe<T, S extends JSONValue> = {
|
5
|
+
name: string;
|
6
|
+
isApplicable: (v: unknown) => v is T;
|
7
|
+
serialize: (v: T) => S;
|
8
|
+
deserialize: (s: S) => T;
|
9
|
+
};
|
10
|
+
export declare function registerSerializationRecipe<T, S extends JSONValue>(r: SerializationRecipe<T, S>): void;
|
2
11
|
export declare function readFileSync(path: string, encoding?: BufferEncoding): string;
|
3
12
|
export declare const globalParams: {
|
4
13
|
appVersion: string;
|
@@ -15,6 +24,7 @@ export declare function cancellableSleep(ms: number): {
|
|
15
24
|
cancel: () => void;
|
16
25
|
};
|
17
26
|
export type ValuesOf<T> = T[keyof T];
|
27
|
+
export declare function findPackageRoot(start: string | string[]): string;
|
18
28
|
export declare function DBOSReplacer(this: any, key: string, value: unknown): unknown;
|
19
29
|
export declare function DBOSReviver(_key: string, value: unknown): unknown;
|
20
30
|
export declare const DBOSJSONLegacy: {
|
@@ -34,11 +44,22 @@ export declare const DBOSJSON: {
|
|
34
44
|
parse: (text: string | null | undefined) => unknown;
|
35
45
|
stringify: typeof sjstringify;
|
36
46
|
};
|
47
|
+
type PathToMember = Array<string | number | symbol>;
|
48
|
+
/**
|
49
|
+
* Roundtrips `value` through serialization. This doesn't preserve functions by default.
|
50
|
+
* So then, we recursively attach function stubs that throw clear errors, for any
|
51
|
+
* functions present on the original (own props + prototype methods) that
|
52
|
+
* aren’t present as functions on the deserialized object.
|
53
|
+
* The return is both the deserialized object and its serialized string.
|
54
|
+
*/
|
55
|
+
export declare function serializeFunctionInputOutput<T>(value: T, path?: PathToMember): {
|
56
|
+
deserialized: T;
|
57
|
+
stringified: string;
|
58
|
+
};
|
37
59
|
export declare function exhaustiveCheckGuard(_: never): never;
|
38
60
|
export declare function interceptStreams(onMessage: (msg: string, stream: 'stdout' | 'stderr') => void): void;
|
39
61
|
export declare function getClientConfig(databaseUrl: string | URL): {
|
40
62
|
connectionString: string;
|
41
63
|
connectionTimeoutMillis: number;
|
42
64
|
};
|
43
|
-
export {};
|
44
65
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/src/utils.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAmB,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;AAE1B,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,IAAI;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;CAC1B,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,QAE/F;AAaD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAuB,GAAG,MAAM,CAEpF;AAeD,eAAO,MAAM,YAAY;;;;;;CAMxB,CAAC;AACF,eAAO,MAAM,OAAO,OAAQ,MAAM,qBAA0C,CAAC;AAG7E,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAC1D,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AAQjE,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM;;;EAwB1C;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAGrC,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAoBhE;AAsCD,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,WAmBlE;AAcD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAWjE;AAGD,eAAO,MAAM,cAAc;kBACX,MAAM,GAAG,IAAI;uBAIR,OAAO,KAAG,MAAM,GAAG,SAAS;CAGhD,CAAC;AAGF,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,uBAAuB,cAAc,CAAC;AAuBnD,iBAAS,WAAW,CAAC,KAAK,EAAE,OAAO,UASlC;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;kBACL,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,OAAO;;CAgClD,CAAC;AAMF,KAAK,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;AAGpD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,EAC5C,KAAK,EAAE,CAAC,EACR,IAAI,GAAE,YAAiB,GACtB;IAAE,YAAY,EAAE,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAO1C;AA8ID,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAEpD;AAMD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,QAkB7F;AAGD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG;;;EAiBxD"}
|