@dbos-inc/dbos-sdk 3.6.3-preview → 3.6.5-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.
Files changed (119) hide show
  1. package/README.md +1 -1
  2. package/dist/src/{httpServer/server.d.ts → adminserver.d.ts} +6 -15
  3. package/dist/src/adminserver.d.ts.map +1 -0
  4. package/dist/src/{httpServer/server.js → adminserver.js} +28 -311
  5. package/dist/src/adminserver.js.map +1 -0
  6. package/dist/src/{dbos-runtime → cli}/cli.d.ts +1 -1
  7. package/dist/src/cli/cli.d.ts.map +1 -0
  8. package/dist/src/{dbos-runtime → cli}/cli.js +3 -12
  9. package/dist/src/cli/cli.js.map +1 -0
  10. package/dist/src/cli/commands.d.ts.map +1 -0
  11. package/dist/src/cli/commands.js.map +1 -0
  12. package/dist/src/cli/docker_pg_helper.d.ts.map +1 -0
  13. package/dist/src/cli/docker_pg_helper.js.map +1 -0
  14. package/dist/src/cli/migrate.d.ts +3 -0
  15. package/dist/src/cli/migrate.d.ts.map +1 -0
  16. package/dist/src/{dbos-runtime → cli}/migrate.js +1 -29
  17. package/dist/src/cli/migrate.js.map +1 -0
  18. package/dist/src/client.d.ts +2 -4
  19. package/dist/src/client.d.ts.map +1 -1
  20. package/dist/src/client.js +6 -19
  21. package/dist/src/client.js.map +1 -1
  22. package/dist/src/conductor/conductor.js +1 -1
  23. package/dist/src/conductor/conductor.js.map +1 -1
  24. package/dist/src/{dbos-runtime/config.d.ts → config.d.ts} +2 -8
  25. package/dist/src/config.d.ts.map +1 -0
  26. package/dist/src/{dbos-runtime/config.js → config.js} +11 -69
  27. package/dist/src/config.js.map +1 -0
  28. package/dist/src/context.d.ts +0 -3
  29. package/dist/src/context.d.ts.map +1 -1
  30. package/dist/src/context.js.map +1 -1
  31. package/dist/src/datasource.js +1 -1
  32. package/dist/src/datasource.js.map +1 -1
  33. package/dist/src/dbos-executor.d.ts +2 -27
  34. package/dist/src/dbos-executor.d.ts.map +1 -1
  35. package/dist/src/dbos-executor.js +14 -765
  36. package/dist/src/dbos-executor.js.map +1 -1
  37. package/dist/src/dbos.d.ts +3 -176
  38. package/dist/src/dbos.d.ts.map +1 -1
  39. package/dist/src/dbos.js +12 -378
  40. package/dist/src/dbos.js.map +1 -1
  41. package/dist/src/decorators.d.ts +3 -21
  42. package/dist/src/decorators.d.ts.map +1 -1
  43. package/dist/src/decorators.js +12 -46
  44. package/dist/src/decorators.js.map +1 -1
  45. package/dist/src/error.d.ts +0 -11
  46. package/dist/src/error.d.ts.map +1 -1
  47. package/dist/src/error.js +1 -21
  48. package/dist/src/error.js.map +1 -1
  49. package/dist/src/index.d.ts +4 -12
  50. package/dist/src/index.d.ts.map +1 -1
  51. package/dist/src/index.js +6 -43
  52. package/dist/src/index.js.map +1 -1
  53. package/dist/src/utils.d.ts +0 -1
  54. package/dist/src/utils.d.ts.map +1 -1
  55. package/dist/src/utils.js +18 -20
  56. package/dist/src/utils.js.map +1 -1
  57. package/dist/src/wfqueue.d.ts +0 -2
  58. package/dist/src/wfqueue.d.ts.map +1 -1
  59. package/dist/src/wfqueue.js.map +1 -1
  60. package/dist/src/workflow.d.ts +0 -8
  61. package/dist/src/workflow.d.ts.map +1 -1
  62. package/dist/src/workflow.js.map +1 -1
  63. package/dist/src/{dbos-runtime/workflow_management.d.ts → workflow_management.d.ts} +4 -6
  64. package/dist/src/workflow_management.d.ts.map +1 -0
  65. package/dist/src/{dbos-runtime/workflow_management.js → workflow_management.js} +5 -26
  66. package/dist/src/workflow_management.js.map +1 -0
  67. package/dist/tsconfig.tsbuildinfo +1 -1
  68. package/package.json +4 -11
  69. package/dist/schemas/user_db_schema.d.ts +0 -15
  70. package/dist/schemas/user_db_schema.d.ts.map +0 -1
  71. package/dist/schemas/user_db_schema.js +0 -33
  72. package/dist/schemas/user_db_schema.js.map +0 -1
  73. package/dist/src/dbos-runtime/cli.d.ts.map +0 -1
  74. package/dist/src/dbos-runtime/cli.js.map +0 -1
  75. package/dist/src/dbos-runtime/commands.d.ts.map +0 -1
  76. package/dist/src/dbos-runtime/commands.js.map +0 -1
  77. package/dist/src/dbos-runtime/config.d.ts.map +0 -1
  78. package/dist/src/dbos-runtime/config.js.map +0 -1
  79. package/dist/src/dbos-runtime/docker_pg_helper.d.ts.map +0 -1
  80. package/dist/src/dbos-runtime/docker_pg_helper.js.map +0 -1
  81. package/dist/src/dbos-runtime/migrate.d.ts +0 -3
  82. package/dist/src/dbos-runtime/migrate.d.ts.map +0 -1
  83. package/dist/src/dbos-runtime/migrate.js.map +0 -1
  84. package/dist/src/dbos-runtime/workflow_management.d.ts.map +0 -1
  85. package/dist/src/dbos-runtime/workflow_management.js.map +0 -1
  86. package/dist/src/httpServer/handler.d.ts +0 -13
  87. package/dist/src/httpServer/handler.d.ts.map +0 -1
  88. package/dist/src/httpServer/handler.js +0 -25
  89. package/dist/src/httpServer/handler.js.map +0 -1
  90. package/dist/src/httpServer/handlerTypes.d.ts +0 -14
  91. package/dist/src/httpServer/handlerTypes.d.ts.map +0 -1
  92. package/dist/src/httpServer/handlerTypes.js +0 -22
  93. package/dist/src/httpServer/handlerTypes.js.map +0 -1
  94. package/dist/src/httpServer/middleware.d.ts +0 -74
  95. package/dist/src/httpServer/middleware.d.ts.map +0 -1
  96. package/dist/src/httpServer/middleware.js +0 -108
  97. package/dist/src/httpServer/middleware.js.map +0 -1
  98. package/dist/src/httpServer/server.d.ts.map +0 -1
  99. package/dist/src/httpServer/server.js.map +0 -1
  100. package/dist/src/paramdecorators.d.ts +0 -39
  101. package/dist/src/paramdecorators.d.ts.map +0 -1
  102. package/dist/src/paramdecorators.js +0 -365
  103. package/dist/src/paramdecorators.js.map +0 -1
  104. package/dist/src/procedure.d.ts +0 -18
  105. package/dist/src/procedure.d.ts.map +0 -1
  106. package/dist/src/procedure.js +0 -3
  107. package/dist/src/procedure.js.map +0 -1
  108. package/dist/src/transaction.d.ts +0 -19
  109. package/dist/src/transaction.d.ts.map +0 -1
  110. package/dist/src/transaction.js +0 -11
  111. package/dist/src/transaction.js.map +0 -1
  112. package/dist/src/user_database.d.ts +0 -176
  113. package/dist/src/user_database.d.ts.map +0 -1
  114. package/dist/src/user_database.js +0 -540
  115. package/dist/src/user_database.js.map +0 -1
  116. /package/dist/src/{dbos-runtime → cli}/commands.d.ts +0 -0
  117. /package/dist/src/{dbos-runtime → cli}/commands.js +0 -0
  118. /package/dist/src/{dbos-runtime → cli}/docker_pg_helper.d.ts +0 -0
  119. /package/dist/src/{dbos-runtime → cli}/docker_pg_helper.js +0 -0
@@ -1,540 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"user_database.js","sourceRoot":"","sources":["../../src/user_database.ts"],"names":[],"mappings":"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"}
File without changes
File without changes