@dbos-inc/dbos-sdk 3.0.11-preview.gc9233b8190 → 3.0.13-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 (50) hide show
  1. package/dist/src/authdecorators.d.ts.map +1 -1
  2. package/dist/src/authdecorators.js +6 -1
  3. package/dist/src/authdecorators.js.map +1 -1
  4. package/dist/src/context.d.ts +2 -3
  5. package/dist/src/context.d.ts.map +1 -1
  6. package/dist/src/context.js +6 -23
  7. package/dist/src/context.js.map +1 -1
  8. package/dist/src/datasource.d.ts +1 -1
  9. package/dist/src/datasource.d.ts.map +1 -1
  10. package/dist/src/dbos.d.ts +5 -5
  11. package/dist/src/dbos.d.ts.map +1 -1
  12. package/dist/src/dbos.js +6 -9
  13. package/dist/src/dbos.js.map +1 -1
  14. package/dist/src/decorators.d.ts +3 -45
  15. package/dist/src/decorators.d.ts.map +1 -1
  16. package/dist/src/decorators.js +1 -93
  17. package/dist/src/decorators.js.map +1 -1
  18. package/dist/src/httpServer/handler.d.ts +1 -63
  19. package/dist/src/httpServer/handler.d.ts.map +1 -1
  20. package/dist/src/httpServer/handler.js +1 -182
  21. package/dist/src/httpServer/handler.js.map +1 -1
  22. package/dist/src/httpServer/middleware.d.ts +0 -5
  23. package/dist/src/httpServer/middleware.d.ts.map +1 -1
  24. package/dist/src/httpServer/middleware.js +1 -13
  25. package/dist/src/httpServer/middleware.js.map +1 -1
  26. package/dist/src/httpServer/server.d.ts.map +1 -1
  27. package/dist/src/httpServer/server.js +78 -42
  28. package/dist/src/httpServer/server.js.map +1 -1
  29. package/dist/src/index.d.ts +3 -13
  30. package/dist/src/index.d.ts.map +1 -1
  31. package/dist/src/index.js +1 -29
  32. package/dist/src/index.js.map +1 -1
  33. package/dist/src/scheduler/scheduler.d.ts +0 -3
  34. package/dist/src/scheduler/scheduler.d.ts.map +1 -1
  35. package/dist/src/scheduler/scheduler.js +1 -13
  36. package/dist/src/scheduler/scheduler.js.map +1 -1
  37. package/dist/src/telemetry/logs.d.ts +6 -3
  38. package/dist/src/telemetry/logs.d.ts.map +1 -1
  39. package/dist/src/telemetry/logs.js +1 -1
  40. package/dist/src/telemetry/logs.js.map +1 -1
  41. package/dist/tsconfig.tsbuildinfo +1 -1
  42. package/package.json +1 -1
  43. package/dist/src/kafka/kafka.d.ts +0 -11
  44. package/dist/src/kafka/kafka.d.ts.map +0 -1
  45. package/dist/src/kafka/kafka.js +0 -23
  46. package/dist/src/kafka/kafka.js.map +0 -1
  47. package/dist/src/testing/testing_runtime.d.ts +0 -97
  48. package/dist/src/testing/testing_runtime.d.ts.map +0 -1
  49. package/dist/src/testing/testing_runtime.js +0 -247
  50. package/dist/src/testing/testing_runtime.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dbos-inc/dbos-sdk",
3
- "version": "3.0.11-preview.gc9233b8190",
3
+ "version": "3.0.13-preview",
4
4
  "description": "A Typescript framework built on the database",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,11 +0,0 @@
1
- /**
2
- * @deprecated The `@KafkaConsume` decorator function has moved to an extension package.
3
- * Please install @dbos-inc/dbos-kafkajs, and change your import.
4
- */
5
- export declare function KafkaConsume(_topics: unknown, _consumerConfig?: unknown, _queueName?: unknown): never;
6
- /**
7
- * @deprecated The `@Kafka` decorator function has moved to an extension package.
8
- * Please install @dbos-inc/dbos-kafkajs, and change your import.
9
- */
10
- export declare function Kafka(_kafkaConfig: unknown): never;
11
- //# sourceMappingURL=kafka.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kafka.d.ts","sourceRoot":"","sources":["../../../src/kafka/kafka.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,KAAK,CAIrG;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,YAAY,EAAE,OAAO,GAAG,KAAK,CAIlD"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- /////////////////////////////
3
- /* Kafka Decorators */
4
- /////////////////////////////
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Kafka = exports.KafkaConsume = void 0;
7
- /**
8
- * @deprecated The `@KafkaConsume` decorator function has moved to an extension package.
9
- * Please install @dbos-inc/dbos-kafkajs, and change your import.
10
- */
11
- function KafkaConsume(_topics, _consumerConfig, _queueName) {
12
- throw new Error('@KafkaConsume decorator has moved to the `@dbos-inc/dbos-kafkajs` package, please install and change the imports');
13
- }
14
- exports.KafkaConsume = KafkaConsume;
15
- /**
16
- * @deprecated The `@Kafka` decorator function has moved to an extension package.
17
- * Please install @dbos-inc/dbos-kafkajs, and change your import.
18
- */
19
- function Kafka(_kafkaConfig) {
20
- throw new Error('@Kafka decorator has moved to the `@dbos-inc/dbos-kafkajs` package, please install and change the imports');
21
- }
22
- exports.Kafka = Kafka;
23
- //# sourceMappingURL=kafka.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kafka.js","sourceRoot":"","sources":["../../../src/kafka/kafka.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,uBAAuB;AACvB,6BAA6B;;;AAE7B;;;GAGG;AACH,SAAgB,YAAY,CAAC,OAAgB,EAAE,eAAyB,EAAE,UAAoB;IAC5F,MAAM,IAAI,KAAK,CACb,kHAAkH,CACnH,CAAC;AACJ,CAAC;AAJD,oCAIC;AAED;;;GAGG;AACH,SAAgB,KAAK,CAAC,YAAqB;IACzC,MAAM,IAAI,KAAK,CACb,2GAA2G,CAC5G,CAAC;AACJ,CAAC;AAJD,sBAIC"}
@@ -1,97 +0,0 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- /// <reference types="node/http" />
4
- import { IncomingMessage } from 'http';
5
- import { ConfiguredInstance } from '../decorators';
6
- import { AsyncHandlerWfFuncs, AsyncHandlerWfFuncInst, InvokeFuncs, InvokeFuncsInst, SyncHandlerWfFuncs, SyncHandlerWfFuncsInst } from '../httpServer/handler';
7
- import { DBOSExecutor, DBOSConfigInternal, DBOSExecutorOptions } from '../dbos-executor';
8
- import { GetWorkflowsInput, GetWorkflowsOutput, WorkflowHandle } from '../workflow';
9
- import { Http2ServerRequest, Http2ServerResponse } from 'http2';
10
- import { ServerResponse } from 'http';
11
- import { WorkflowQueue } from '../wfqueue';
12
- /**
13
- * Create a testing runtime. Warn: this function will drop the existing system DB and create a clean new one. Don't run tests against your production database!
14
- * @deprecated Use `DBOS.` methods in tests
15
- */
16
- export declare function createTestingRuntime(userClasses?: object[] | undefined, configFilePath?: string, dropSysDB?: boolean): Promise<TestingRuntime>;
17
- export interface WorkflowInvokeParams {
18
- readonly authenticatedUser?: string;
19
- readonly authenticatedRoles?: string[];
20
- readonly request?: object;
21
- }
22
- /** @deprecated */
23
- export interface TestingRuntime {
24
- invoke<T extends ConfiguredInstance>(targetInst: T, workflowUUID?: string, params?: WorkflowInvokeParams): InvokeFuncsInst<T>;
25
- invoke<T extends object>(targetClass: T, workflowUUID?: string, params?: WorkflowInvokeParams): InvokeFuncs<T>;
26
- invokeWorkflow<T extends ConfiguredInstance>(targetCfg: T, workflowUUID?: string, params?: WorkflowInvokeParams): SyncHandlerWfFuncsInst<T>;
27
- invokeWorkflow<T extends object>(targetClass: T, workflowUUID?: string, params?: WorkflowInvokeParams): SyncHandlerWfFuncs<T>;
28
- startWorkflow<T extends ConfiguredInstance>(targetCfg: T, workflowUUID?: string, params?: WorkflowInvokeParams, queue?: WorkflowQueue): AsyncHandlerWfFuncInst<T>;
29
- startWorkflow<T extends object>(targetClass: T, workflowUUID?: string, params?: WorkflowInvokeParams, queue?: WorkflowQueue): AsyncHandlerWfFuncs<T>;
30
- retrieveWorkflow<R>(workflowUUID: string): WorkflowHandle<R>;
31
- getWorkflows(input: GetWorkflowsInput): Promise<GetWorkflowsOutput>;
32
- send<T>(destinationUUID: string, message: T, topic?: string, idempotencyKey?: string): Promise<void>;
33
- getEvent<T>(workflowUUID: string, key: string, timeoutSeconds?: number): Promise<T | null>;
34
- getHandlersCallback(): (req: IncomingMessage | Http2ServerRequest, res: ServerResponse | Http2ServerResponse) => Promise<void>;
35
- getAdminCallback(): (req: IncomingMessage | Http2ServerRequest, res: ServerResponse | Http2ServerResponse) => Promise<void>;
36
- getConfig<T>(key: string): T | undefined;
37
- getConfig<T>(key: string, defaultValue: T): T;
38
- setConfig<T>(key: string, newValue: T): void;
39
- queryUserDB<R>(sql: string, ...params: any[]): Promise<R[]>;
40
- createUserSchema(): Promise<void>;
41
- dropUserSchema(): Promise<void>;
42
- destroy(): Promise<void>;
43
- deactivateEventReceivers(): Promise<void>;
44
- initEventReceivers(): Promise<void>;
45
- }
46
- /**
47
- * For internal unit tests which allows us to provide different system DB and control its behavior.
48
- */
49
- export declare function createInternalTestRuntime(userClasses: object[] | undefined, testConfig: DBOSConfigInternal, options?: DBOSExecutorOptions): Promise<TestingRuntime>;
50
- /**
51
- * This class provides a runtime to test DBOS functions in unit tests.
52
- */
53
- export declare class TestingRuntimeImpl implements TestingRuntime {
54
- #private;
55
- /**
56
- * Initialize the testing runtime by loading user functions specified in classes and using the specified config.
57
- * This should be the first function call before any subsequent calls.
58
- */
59
- init(userClasses?: object[], testConfig?: DBOSConfigInternal, options?: DBOSExecutorOptions): Promise<void>;
60
- initEventReceivers(): Promise<void>;
61
- /**
62
- * Release resources after tests.
63
- */
64
- destroy(): Promise<void>;
65
- deactivateEventReceivers(): Promise<void>;
66
- /**
67
- * Get Application Configuration.
68
- */
69
- getConfig<T>(key: string): T | undefined;
70
- getConfig<T>(key: string, defaultValue: T): T;
71
- setConfig<T>(key: string, newValue: T): void;
72
- /**
73
- * Generate a proxy object for the provided class that wraps direct calls (i.e. OpClass.someMethod(param))
74
- * to invoke workflows, transactions, and steps;
75
- */
76
- mainInvoke<T extends object>(object: T, workflowUUID: string | undefined, params: WorkflowInvokeParams | undefined, asyncWf: boolean, clsinst: ConfiguredInstance | null, queue?: WorkflowQueue): InvokeFuncs<T>;
77
- invoke<T extends object>(object: T | ConfiguredInstance, workflowUUID?: string, params?: WorkflowInvokeParams): InvokeFuncs<T> | InvokeFuncsInst<T>;
78
- startWorkflow<T extends object>(object: T, workflowUUID?: string, params?: WorkflowInvokeParams, queue?: WorkflowQueue): AsyncHandlerWfFuncs<T> | AsyncHandlerWfFuncInst<T>;
79
- invokeWorkflow<T extends object>(object: T | ConfiguredInstance, workflowUUID?: string, params?: WorkflowInvokeParams): SyncHandlerWfFuncs<T> | SyncHandlerWfFuncsInst<T>;
80
- /**
81
- * Return a request handler callback for node's native http/http2 server, which includes all registered HTTP endpoints.
82
- */
83
- getHandlersCallback(): (req: IncomingMessage | Http2ServerRequest, res: ServerResponse<IncomingMessage> | Http2ServerResponse) => Promise<void>;
84
- getAdminCallback(): (req: IncomingMessage | Http2ServerRequest, res: ServerResponse<IncomingMessage> | Http2ServerResponse) => Promise<void>;
85
- send<T>(destinationUUID: string, message: T, topic?: string, idempotencyKey?: string): Promise<void>;
86
- getEvent<T>(workflowUUID: string, key: string, timeoutSeconds?: number): Promise<T | null>;
87
- retrieveWorkflow<R>(workflowUUID: string): WorkflowHandle<R>;
88
- getWorkflows(input: GetWorkflowsInput): Promise<GetWorkflowsOutput>;
89
- queryUserDB<R>(sql: string, ...params: any[]): Promise<R[]>;
90
- createUserSchema(): Promise<void>;
91
- dropUserSchema(): Promise<void>;
92
- /**
93
- * For internal tests use only -- return the workflow executor object.
94
- */
95
- getDBOSExec(): DBOSExecutor;
96
- }
97
- //# sourceMappingURL=testing_runtime.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testing_runtime.d.ts","sourceRoot":"","sources":["../../../src/testing/testing_runtime.ts"],"names":[],"mappings":"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"}
@@ -1,247 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TestingRuntimeImpl = exports.createInternalTestRuntime = exports.createTestingRuntime = void 0;
4
- const context_1 = require("../context");
5
- const decorators_1 = require("../decorators");
6
- const error_1 = require("../error");
7
- const server_1 = require("../httpServer/server");
8
- const dbos_executor_1 = require("../dbos-executor");
9
- const config_1 = require("../dbos-runtime/config");
10
- const lodash_1 = require("lodash");
11
- const pg_1 = require("pg");
12
- const scheduler_1 = require("../scheduler/scheduler");
13
- const wfqueue_1 = require("../wfqueue");
14
- const dbos_1 = require("../dbos");
15
- /**
16
- * Create a testing runtime. Warn: this function will drop the existing system DB and create a clean new one. Don't run tests against your production database!
17
- * @deprecated Use `DBOS.` methods in tests
18
- */
19
- async function createTestingRuntime(userClasses = undefined, configFilePath = config_1.dbosConfigFilePath, dropSysDB = true) {
20
- const [dbosConfig] = (0, config_1.parseConfigFile)({ configfile: configFilePath });
21
- if (dropSysDB) {
22
- // Drop system database. Testing runtime always uses Postgres for local testing.
23
- const pgSystemClient = new pg_1.Client({
24
- user: dbosConfig.poolConfig.user,
25
- port: dbosConfig.poolConfig.port,
26
- host: dbosConfig.poolConfig.host,
27
- password: dbosConfig.poolConfig.password,
28
- database: dbosConfig.poolConfig.database,
29
- });
30
- await pgSystemClient.connect();
31
- await pgSystemClient.query(`DROP DATABASE IF EXISTS ${dbosConfig.system_database} WITH (FORCE);`);
32
- await pgSystemClient.end();
33
- }
34
- const otr = createInternalTestRuntime(userClasses, dbosConfig, undefined);
35
- return otr;
36
- }
37
- exports.createTestingRuntime = createTestingRuntime;
38
- /**
39
- * For internal unit tests which allows us to provide different system DB and control its behavior.
40
- */
41
- async function createInternalTestRuntime(userClasses, testConfig, options = {}) {
42
- const otr = new TestingRuntimeImpl();
43
- await otr.init(userClasses, testConfig, options);
44
- return otr;
45
- }
46
- exports.createInternalTestRuntime = createInternalTestRuntime;
47
- /**
48
- * This class provides a runtime to test DBOS functions in unit tests.
49
- */
50
- class TestingRuntimeImpl {
51
- #server = null;
52
- #scheduler = null;
53
- #wfQueueRunner = null;
54
- #applicationConfig = {};
55
- #isInitialized = false;
56
- #dbosExec = null;
57
- /**
58
- * Initialize the testing runtime by loading user functions specified in classes and using the specified config.
59
- * This should be the first function call before any subsequent calls.
60
- */
61
- async init(userClasses, testConfig, options = {}) {
62
- (0, decorators_1.insertAllMiddleware)();
63
- const dbosConfig = testConfig ? [testConfig] : (0, config_1.parseConfigFile)();
64
- dbos_1.DBOS.setConfig(dbosConfig[0]);
65
- this.#dbosExec = new dbos_executor_1.DBOSExecutor(dbosConfig[0], options);
66
- this.#applicationConfig = this.#dbosExec.config.application ?? {};
67
- await this.#dbosExec.init(userClasses);
68
- this.#server = new server_1.DBOSHttpServer(this.#dbosExec);
69
- await this.initEventReceivers();
70
- this.#applicationConfig = this.#dbosExec.config.application ?? {};
71
- this.#isInitialized = true;
72
- }
73
- async initEventReceivers() {
74
- for (const evtRcvr of this.#dbosExec.eventReceivers) {
75
- await evtRcvr.initialize(this.#dbosExec);
76
- }
77
- this.#scheduler = new scheduler_1.DBOSScheduler(this.#dbosExec);
78
- this.#scheduler.initScheduler();
79
- this.#wfQueueRunner = wfqueue_1.wfQueueRunner.dispatchLoop(this.#dbosExec);
80
- }
81
- /**
82
- * Release resources after tests.
83
- */
84
- async destroy() {
85
- // Only release once.
86
- try {
87
- if (this.#isInitialized) {
88
- await this.deactivateEventReceivers();
89
- await this.#server?.dbosExec.destroy();
90
- this.#isInitialized = false;
91
- }
92
- }
93
- catch (err) {
94
- const e = err;
95
- console.log(`Error destroying testing runtime: ${e.message}`);
96
- throw err;
97
- }
98
- }
99
- async deactivateEventReceivers() {
100
- for (const evtRcvr of this.#server?.dbosExec?.eventReceivers || []) {
101
- try {
102
- await evtRcvr.destroy();
103
- }
104
- catch (err) {
105
- const e = err;
106
- this.#server?.dbosExec?.logger.warn(`Error destroying event receiver: ${e.message}`);
107
- }
108
- }
109
- await this.#scheduler?.destroyScheduler();
110
- try {
111
- wfqueue_1.wfQueueRunner.stop();
112
- await this.#wfQueueRunner;
113
- }
114
- catch (err) {
115
- const e = err;
116
- this.#server?.dbosExec?.logger.warn(`Error destroying workflow queue runner: ${e.message}`);
117
- }
118
- }
119
- getConfig(key, defaultValue) {
120
- const value = (0, lodash_1.get)(this.#applicationConfig, key, defaultValue);
121
- if (value && defaultValue && typeof value !== typeof defaultValue) {
122
- throw new error_1.DBOSConfigKeyTypeError(key, typeof defaultValue, typeof value);
123
- }
124
- return value;
125
- }
126
- setConfig(key, newValue) {
127
- (0, lodash_1.set)(this.#applicationConfig, key, newValue);
128
- }
129
- /**
130
- * Generate a proxy object for the provided class that wraps direct calls (i.e. OpClass.someMethod(param))
131
- * to invoke workflows, transactions, and steps;
132
- */
133
- mainInvoke(object, workflowUUID, params, asyncWf, clsinst, queue) {
134
- const dbosExec = this.getDBOSExec();
135
- const ops = (0, decorators_1.getRegisteredOperations)(clsinst ? clsinst : object);
136
- const proxy = {};
137
- // Creates a context to pass in necessary info.
138
- const span = dbosExec.tracer.startSpan('test');
139
- const oc = new context_1.DBOSContextImpl('test', span, dbosExec.logger);
140
- oc.authenticatedUser = params?.authenticatedUser ?? '';
141
- oc.request = params?.request ?? {};
142
- oc.authenticatedRoles = params?.authenticatedRoles ?? [];
143
- const wfParams = {
144
- workflowUUID: workflowUUID,
145
- parentCtx: oc,
146
- configuredInstance: clsinst,
147
- queueName: queue?.name,
148
- };
149
- for (const op of ops) {
150
- if (asyncWf) {
151
- proxy[op.name] = op.txnConfig
152
- ? (...args) => dbosExec.transaction(op.registeredFunction, wfParams, ...args)
153
- : op.workflowConfig
154
- ? (...args) => dbosExec.workflow(op.registeredFunction, wfParams, ...args)
155
- : op.stepConfig
156
- ? (...args) => dbosExec.external(op.registeredFunction, wfParams, ...args)
157
- : op.procConfig
158
- ? (...args) => dbosExec.procedure(op.registeredFunction, wfParams, ...args)
159
- : undefined;
160
- }
161
- else {
162
- proxy[op.name] = op.workflowConfig
163
- ? (...args) => dbosExec
164
- .workflow(op.registeredFunction, wfParams, ...args)
165
- .then((handle) => handle.getResult())
166
- : undefined;
167
- }
168
- }
169
- return proxy;
170
- }
171
- invoke(object, workflowUUID, params) {
172
- if (typeof object === 'function') {
173
- return this.mainInvoke(object, workflowUUID, params, true, null);
174
- }
175
- else {
176
- const targetInst = object;
177
- return this.mainInvoke(targetInst.constructor, workflowUUID, params, true, targetInst);
178
- }
179
- }
180
- startWorkflow(object, workflowUUID, params, queue) {
181
- if (typeof object === 'function') {
182
- return this.mainInvoke(object, workflowUUID, params, true, null, queue);
183
- }
184
- else {
185
- const targetInst = object;
186
- return this.mainInvoke(targetInst.constructor, workflowUUID, params, true, targetInst, queue);
187
- }
188
- }
189
- invokeWorkflow(object, workflowUUID, params) {
190
- if (typeof object === 'function') {
191
- return this.mainInvoke(object, workflowUUID, params, false, null);
192
- }
193
- else {
194
- const targetInst = object;
195
- return this.mainInvoke(targetInst.constructor, workflowUUID, params, false, targetInst);
196
- }
197
- }
198
- /**
199
- * Return a request handler callback for node's native http/http2 server, which includes all registered HTTP endpoints.
200
- */
201
- getHandlersCallback() {
202
- if (!this.#server) {
203
- throw new error_1.DBOSError('Uninitialized testing runtime! Did you forget to call init() first?');
204
- }
205
- return this.#server.app.callback();
206
- }
207
- getAdminCallback() {
208
- if (!this.#server) {
209
- throw new error_1.DBOSError('Uninitialized testing runtime! Did you forget to call init() first?');
210
- }
211
- return this.#server.adminApp.callback();
212
- }
213
- async send(destinationUUID, message, topic, idempotencyKey) {
214
- return this.getDBOSExec().send(destinationUUID, message, topic, idempotencyKey);
215
- }
216
- async getEvent(workflowUUID, key, timeoutSeconds = dbos_executor_1.DBOSExecutor.defaultNotificationTimeoutSec) {
217
- return this.getDBOSExec().getEvent(workflowUUID, key, timeoutSeconds);
218
- }
219
- retrieveWorkflow(workflowUUID) {
220
- return this.getDBOSExec().retrieveWorkflow(workflowUUID);
221
- }
222
- async getWorkflows(input) {
223
- const wfs = await this.getDBOSExec().listWorkflows(input);
224
- return { workflowUUIDs: wfs.map((wf) => wf.workflowID) };
225
- }
226
- async queryUserDB(sql, ...params) {
227
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
228
- return this.getDBOSExec().userDatabase.query(sql, ...params);
229
- }
230
- async createUserSchema() {
231
- return this.getDBOSExec().userDatabase.createSchema();
232
- }
233
- dropUserSchema() {
234
- return this.getDBOSExec().userDatabase.dropSchema();
235
- }
236
- /**
237
- * For internal tests use only -- return the workflow executor object.
238
- */
239
- getDBOSExec() {
240
- if (!this.#server) {
241
- throw new error_1.DBOSError('Uninitialized testing runtime! Did you forget to call init() first?');
242
- }
243
- return this.#server.dbosExec;
244
- }
245
- }
246
- exports.TestingRuntimeImpl = TestingRuntimeImpl;
247
- //# sourceMappingURL=testing_runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testing_runtime.js","sourceRoot":"","sources":["../../../src/testing/testing_runtime.ts"],"names":[],"mappings":"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"}