@dbos-inc/dbos-sdk 0.7.18-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/LICENSE +21 -0
- package/README.md +30 -0
- package/dbos-config.schema.json +121 -0
- package/dbos-test-config.yaml +16 -0
- package/dist/schemas/system_db_schema.d.ts +34 -0
- package/dist/schemas/system_db_schema.d.ts.map +1 -0
- package/dist/schemas/system_db_schema.js +75 -0
- package/dist/schemas/system_db_schema.js.map +1 -0
- package/dist/schemas/user_db_schema.d.ts +11 -0
- package/dist/schemas/user_db_schema.d.ts.map +1 -0
- package/dist/schemas/user_db_schema.js +16 -0
- package/dist/schemas/user_db_schema.js.map +1 -0
- package/dist/src/cloud-cli/applications/configure.d.ts +2 -0
- package/dist/src/cloud-cli/applications/configure.d.ts.map +1 -0
- package/dist/src/cloud-cli/applications/configure.js +57 -0
- package/dist/src/cloud-cli/applications/configure.js.map +1 -0
- package/dist/src/cloud-cli/applications/delete-app.d.ts +2 -0
- package/dist/src/cloud-cli/applications/delete-app.d.ts.map +1 -0
- package/dist/src/cloud-cli/applications/delete-app.js +36 -0
- package/dist/src/cloud-cli/applications/delete-app.js.map +1 -0
- package/dist/src/cloud-cli/applications/deploy-app-code.d.ts +2 -0
- package/dist/src/cloud-cli/applications/deploy-app-code.d.ts.map +1 -0
- package/dist/src/cloud-cli/applications/deploy-app-code.js +64 -0
- package/dist/src/cloud-cli/applications/deploy-app-code.js.map +1 -0
- package/dist/src/cloud-cli/applications/get-app-logs.d.ts +2 -0
- package/dist/src/cloud-cli/applications/get-app-logs.d.ts.map +1 -0
- package/dist/src/cloud-cli/applications/get-app-logs.js +37 -0
- package/dist/src/cloud-cli/applications/get-app-logs.js.map +1 -0
- package/dist/src/cloud-cli/applications/index.d.ts +8 -0
- package/dist/src/cloud-cli/applications/index.d.ts.map +1 -0
- package/dist/src/cloud-cli/applications/index.js +18 -0
- package/dist/src/cloud-cli/applications/index.js.map +1 -0
- package/dist/src/cloud-cli/applications/list-apps.d.ts +2 -0
- package/dist/src/cloud-cli/applications/list-apps.d.ts.map +1 -0
- package/dist/src/cloud-cli/applications/list-apps.js +45 -0
- package/dist/src/cloud-cli/applications/list-apps.js.map +1 -0
- package/dist/src/cloud-cli/applications/register-app.d.ts +2 -0
- package/dist/src/cloud-cli/applications/register-app.d.ts.map +1 -0
- package/dist/src/cloud-cli/applications/register-app.js +41 -0
- package/dist/src/cloud-cli/applications/register-app.js.map +1 -0
- package/dist/src/cloud-cli/applications/types.d.ts +7 -0
- package/dist/src/cloud-cli/applications/types.d.ts.map +1 -0
- package/dist/src/cloud-cli/applications/types.js +3 -0
- package/dist/src/cloud-cli/applications/types.js.map +1 -0
- package/dist/src/cloud-cli/applications/update-app.d.ts +2 -0
- package/dist/src/cloud-cli/applications/update-app.d.ts.map +1 -0
- package/dist/src/cloud-cli/applications/update-app.js +42 -0
- package/dist/src/cloud-cli/applications/update-app.js.map +1 -0
- package/dist/src/cloud-cli/cli.d.ts +3 -0
- package/dist/src/cloud-cli/cli.d.ts.map +1 -0
- package/dist/src/cloud-cli/cli.js +148 -0
- package/dist/src/cloud-cli/cli.js.map +1 -0
- package/dist/src/cloud-cli/login.d.ts +7 -0
- package/dist/src/cloud-cli/login.d.ts.map +1 -0
- package/dist/src/cloud-cli/login.js +40 -0
- package/dist/src/cloud-cli/login.js.map +1 -0
- package/dist/src/cloud-cli/register.d.ts +2 -0
- package/dist/src/cloud-cli/register.d.ts.map +1 -0
- package/dist/src/cloud-cli/register.js +35 -0
- package/dist/src/cloud-cli/register.js.map +1 -0
- package/dist/src/cloud-cli/userdb.d.ts +4 -0
- package/dist/src/cloud-cli/userdb.d.ts.map +1 -0
- package/dist/src/cloud-cli/userdb.js +149 -0
- package/dist/src/cloud-cli/userdb.js.map +1 -0
- package/dist/src/cloud-cli/utils.d.ts +3 -0
- package/dist/src/cloud-cli/utils.d.ts.map +1 -0
- package/dist/src/cloud-cli/utils.js +17 -0
- package/dist/src/cloud-cli/utils.js.map +1 -0
- package/dist/src/communicator.d.ts +24 -0
- package/dist/src/communicator.d.ts.map +1 -0
- package/dist/src/communicator.js +26 -0
- package/dist/src/communicator.js.map +1 -0
- package/dist/src/context.d.ts +60 -0
- package/dist/src/context.d.ts.map +1 -0
- package/dist/src/context.js +94 -0
- package/dist/src/context.js.map +1 -0
- package/dist/src/data_validation.d.ts +3 -0
- package/dist/src/data_validation.d.ts.map +1 -0
- package/dist/src/data_validation.js +168 -0
- package/dist/src/data_validation.js.map +1 -0
- package/dist/src/dbos-executor.d.ts +79 -0
- package/dist/src/dbos-executor.d.ts.map +1 -0
- package/dist/src/dbos-executor.js +408 -0
- package/dist/src/dbos-executor.js.map +1 -0
- package/dist/src/dbos-runtime/TypeParser.d.ts +33 -0
- package/dist/src/dbos-runtime/TypeParser.d.ts.map +1 -0
- package/dist/src/dbos-runtime/TypeParser.js +104 -0
- package/dist/src/dbos-runtime/TypeParser.js.map +1 -0
- package/dist/src/dbos-runtime/applicationVersion.d.ts +3 -0
- package/dist/src/dbos-runtime/applicationVersion.d.ts.map +1 -0
- package/dist/src/dbos-runtime/applicationVersion.js +13 -0
- package/dist/src/dbos-runtime/applicationVersion.js.map +1 -0
- package/dist/src/dbos-runtime/cli.d.ts +8 -0
- package/dist/src/dbos-runtime/cli.d.ts.map +1 -0
- package/dist/src/dbos-runtime/cli.js +52 -0
- package/dist/src/dbos-runtime/cli.js.map +1 -0
- package/dist/src/dbos-runtime/config.d.ts +28 -0
- package/dist/src/dbos-runtime/config.d.ts.map +1 -0
- package/dist/src/dbos-runtime/config.js +111 -0
- package/dist/src/dbos-runtime/config.js.map +1 -0
- package/dist/src/dbos-runtime/init.d.ts +7 -0
- package/dist/src/dbos-runtime/init.d.ts.map +1 -0
- package/dist/src/dbos-runtime/init.js +51 -0
- package/dist/src/dbos-runtime/init.js.map +1 -0
- package/dist/src/dbos-runtime/openApi.d.ts +35 -0
- package/dist/src/dbos-runtime/openApi.d.ts.map +1 -0
- package/dist/src/dbos-runtime/openApi.js +595 -0
- package/dist/src/dbos-runtime/openApi.js.map +1 -0
- package/dist/src/dbos-runtime/runtime.d.ts +28 -0
- package/dist/src/dbos-runtime/runtime.d.ts.map +1 -0
- package/dist/src/dbos-runtime/runtime.js +96 -0
- package/dist/src/dbos-runtime/runtime.js.map +1 -0
- package/dist/src/dbos-runtime/tsDiagUtil.d.ts +16 -0
- package/dist/src/dbos-runtime/tsDiagUtil.d.ts.map +1 -0
- package/dist/src/dbos-runtime/tsDiagUtil.js +72 -0
- package/dist/src/dbos-runtime/tsDiagUtil.js.map +1 -0
- package/dist/src/decorators.d.ts +118 -0
- package/dist/src/decorators.d.ts.map +1 -0
- package/dist/src/decorators.js +467 -0
- package/dist/src/decorators.js.map +1 -0
- package/dist/src/error.d.ts +44 -0
- package/dist/src/error.d.ts.map +1 -0
- package/dist/src/error.js +164 -0
- package/dist/src/error.js.map +1 -0
- package/dist/src/httpServer/handler.d.ts +62 -0
- package/dist/src/httpServer/handler.d.ts.map +1 -0
- package/dist/src/httpServer/handler.js +168 -0
- package/dist/src/httpServer/handler.js.map +1 -0
- package/dist/src/httpServer/middleware.d.ts +56 -0
- package/dist/src/httpServer/middleware.d.ts.map +1 -0
- package/dist/src/httpServer/middleware.js +57 -0
- package/dist/src/httpServer/middleware.js.map +1 -0
- package/dist/src/httpServer/server.d.ts +40 -0
- package/dist/src/httpServer/server.d.ts.map +1 -0
- package/dist/src/httpServer/server.js +231 -0
- package/dist/src/httpServer/server.js.map +1 -0
- package/dist/src/index.d.ts +12 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +75 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/provenance/provenance_daemon.d.ts +34 -0
- package/dist/src/provenance/provenance_daemon.d.ts.map +1 -0
- package/dist/src/provenance/provenance_daemon.js +86 -0
- package/dist/src/provenance/provenance_daemon.js.map +1 -0
- package/dist/src/system_database.d.ts +69 -0
- package/dist/src/system_database.d.ts.map +1 -0
- package/dist/src/system_database.js +384 -0
- package/dist/src/system_database.js.map +1 -0
- package/dist/src/telemetry/collector.d.ts +17 -0
- package/dist/src/telemetry/collector.d.ts.map +1 -0
- package/dist/src/telemetry/collector.js +77 -0
- package/dist/src/telemetry/collector.js.map +1 -0
- package/dist/src/telemetry/exporters.d.ts +29 -0
- package/dist/src/telemetry/exporters.d.ts.map +1 -0
- package/dist/src/telemetry/exporters.js +186 -0
- package/dist/src/telemetry/exporters.js.map +1 -0
- package/dist/src/telemetry/index.d.ts +7 -0
- package/dist/src/telemetry/index.d.ts.map +1 -0
- package/dist/src/telemetry/index.js +3 -0
- package/dist/src/telemetry/index.js.map +1 -0
- package/dist/src/telemetry/logs.d.ts +25 -0
- package/dist/src/telemetry/logs.d.ts.map +1 -0
- package/dist/src/telemetry/logs.js +91 -0
- package/dist/src/telemetry/logs.js.map +1 -0
- package/dist/src/telemetry/signals.d.ts +30 -0
- package/dist/src/telemetry/signals.d.ts.map +1 -0
- package/dist/src/telemetry/signals.js +11 -0
- package/dist/src/telemetry/signals.js.map +1 -0
- package/dist/src/telemetry/traces.d.ts +17 -0
- package/dist/src/telemetry/traces.d.ts.map +1 -0
- package/dist/src/telemetry/traces.js +76 -0
- package/dist/src/telemetry/traces.js.map +1 -0
- package/dist/src/testing/testing_runtime.d.ts +76 -0
- package/dist/src/testing/testing_runtime.d.ts.map +1 -0
- package/dist/src/testing/testing_runtime.js +147 -0
- package/dist/src/testing/testing_runtime.js.map +1 -0
- package/dist/src/transaction.d.ts +28 -0
- package/dist/src/transaction.d.ts.map +1 -0
- package/dist/src/transaction.js +27 -0
- package/dist/src/transaction.js.map +1 -0
- package/dist/src/user_database.d.ts +132 -0
- package/dist/src/user_database.d.ts.map +1 -0
- package/dist/src/user_database.js +324 -0
- package/dist/src/user_database.js.map +1 -0
- package/dist/src/utils.d.ts +6 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +35 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/src/workflow.d.ts +179 -0
- package/dist/src/workflow.d.ts.map +1 -0
- package/dist/src/workflow.js +446 -0
- package/dist/src/workflow.js.map +1 -0
- package/examples/hello/README.md +41 -0
- package/examples/hello/dbos-config.yaml +15 -0
- package/examples/hello/jest.config.js +8 -0
- package/examples/hello/knexfile.ts +23 -0
- package/examples/hello/migrations/create_dbos_hello_tables.ts +12 -0
- package/examples/hello/package.json +21 -0
- package/examples/hello/src/operations.test.ts +38 -0
- package/examples/hello/src/operations.ts +21 -0
- package/examples/hello/start_postgres_docker.sh +23 -0
- package/examples/hello/tsconfig.json +24 -0
- package/package.json +78 -0
@@ -0,0 +1,467 @@
|
|
1
|
+
"use strict";
|
2
|
+
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
4
|
+
if (k2 === undefined) k2 = k;
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
8
|
+
}
|
9
|
+
Object.defineProperty(o, k2, desc);
|
10
|
+
}) : (function(o, m, k, k2) {
|
11
|
+
if (k2 === undefined) k2 = k;
|
12
|
+
o[k2] = m[k];
|
13
|
+
}));
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
16
|
+
}) : function(o, v) {
|
17
|
+
o["default"] = v;
|
18
|
+
});
|
19
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
20
|
+
if (mod && mod.__esModule) return mod;
|
21
|
+
var result = {};
|
22
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
23
|
+
__setModuleDefault(result, mod);
|
24
|
+
return result;
|
25
|
+
};
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
27
|
+
exports.DBOSDeploy = exports.DBOSInitializer = exports.OrmEntities = exports.Communicator = exports.Transaction = exports.Workflow = exports.RequiredRole = exports.Debug = exports.DefaultArgOptional = exports.DefaultArgRequired = exports.DefaultRequiredRole = exports.ArgVarchar = exports.ArgDate = exports.ArgName = exports.LogMask = exports.SkipLogging = exports.ArgOptional = exports.ArgRequired = exports.getOrCreateClassRegistration = exports.registerAndWrapFunction = exports.getOrCreateMethodArgsRegistration = exports.getRegisteredOperations = exports.ClassRegistration = exports.MethodRegistration = exports.MethodParameter = exports.ArgRequiredOptions = exports.LogMasks = exports.DBOSDataType = void 0;
|
28
|
+
require("reflect-metadata");
|
29
|
+
const crypto = __importStar(require("crypto"));
|
30
|
+
const error_1 = require("./error");
|
31
|
+
const data_validation_1 = require("./data_validation");
|
32
|
+
class DBOSDataType {
|
33
|
+
dataType = "text";
|
34
|
+
length = -1;
|
35
|
+
precision = -1;
|
36
|
+
scale = -1;
|
37
|
+
/** Varchar has length */
|
38
|
+
static varchar(length) {
|
39
|
+
const dt = new DBOSDataType();
|
40
|
+
dt.dataType = "varchar";
|
41
|
+
dt.length = length;
|
42
|
+
return dt;
|
43
|
+
}
|
44
|
+
/** Some decimal has precision / scale (as opposed to floating point decimal) */
|
45
|
+
static decimal(precision, scale) {
|
46
|
+
const dt = new DBOSDataType();
|
47
|
+
dt.dataType = "decimal";
|
48
|
+
dt.precision = precision;
|
49
|
+
dt.scale = scale;
|
50
|
+
return dt;
|
51
|
+
}
|
52
|
+
/** Take type from reflect metadata */
|
53
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
54
|
+
static fromArg(arg) {
|
55
|
+
const dt = new DBOSDataType();
|
56
|
+
if (arg === String) {
|
57
|
+
dt.dataType = "text";
|
58
|
+
}
|
59
|
+
else if (arg === Date) {
|
60
|
+
dt.dataType = "timestamp";
|
61
|
+
}
|
62
|
+
else if (arg === Number) {
|
63
|
+
dt.dataType = "double";
|
64
|
+
}
|
65
|
+
else if (arg === Boolean) {
|
66
|
+
dt.dataType = "boolean";
|
67
|
+
}
|
68
|
+
else {
|
69
|
+
dt.dataType = "json";
|
70
|
+
}
|
71
|
+
return dt;
|
72
|
+
}
|
73
|
+
formatAsString() {
|
74
|
+
let rv = this.dataType;
|
75
|
+
if (this.dataType === "varchar" && this.length > 0) {
|
76
|
+
rv += `(${this.length})`;
|
77
|
+
}
|
78
|
+
if (this.dataType === "decimal" && this.precision > 0) {
|
79
|
+
if (this.scale > 0) {
|
80
|
+
rv += `(${this.precision},${this.scale})`;
|
81
|
+
}
|
82
|
+
else {
|
83
|
+
rv += `(${this.precision})`;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
return rv;
|
87
|
+
}
|
88
|
+
}
|
89
|
+
exports.DBOSDataType = DBOSDataType;
|
90
|
+
const paramMetadataKey = Symbol("dbos:parameter");
|
91
|
+
const methodMetadataKey = Symbol("dbos:method");
|
92
|
+
const classMetadataKey = Symbol("dbos:class");
|
93
|
+
/* Arguments parsing heuristic:
|
94
|
+
* - Convert the function to a string
|
95
|
+
* - Minify the function
|
96
|
+
* - Remove everything before the first open parenthesis and after the first closed parenthesis
|
97
|
+
* This will obviously not work on code that has been obfuscated or optimized as the names get
|
98
|
+
* changed to be really small and useless.
|
99
|
+
**/
|
100
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
101
|
+
function getArgNames(func) {
|
102
|
+
let fn = func.toString();
|
103
|
+
fn = fn.replace(/\s/g, "");
|
104
|
+
fn = fn.substring(fn.indexOf("(") + 1, fn.indexOf(")"));
|
105
|
+
return fn.split(",");
|
106
|
+
}
|
107
|
+
var LogMasks;
|
108
|
+
(function (LogMasks) {
|
109
|
+
LogMasks["NONE"] = "NONE";
|
110
|
+
LogMasks["HASH"] = "HASH";
|
111
|
+
LogMasks["SKIP"] = "SKIP";
|
112
|
+
})(LogMasks || (exports.LogMasks = LogMasks = {}));
|
113
|
+
var ArgRequiredOptions;
|
114
|
+
(function (ArgRequiredOptions) {
|
115
|
+
ArgRequiredOptions["REQUIRED"] = "REQUIRED";
|
116
|
+
ArgRequiredOptions["OPTIONAL"] = "OPTIONAL";
|
117
|
+
ArgRequiredOptions["DEFAULT"] = "DEFAULT";
|
118
|
+
})(ArgRequiredOptions || (exports.ArgRequiredOptions = ArgRequiredOptions = {}));
|
119
|
+
class MethodParameter {
|
120
|
+
name = "";
|
121
|
+
required = ArgRequiredOptions.DEFAULT;
|
122
|
+
validate = true;
|
123
|
+
logMask = LogMasks.NONE;
|
124
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
125
|
+
argType = String;
|
126
|
+
dataType;
|
127
|
+
index = -1;
|
128
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
129
|
+
constructor(idx, at) {
|
130
|
+
this.index = idx;
|
131
|
+
this.argType = at;
|
132
|
+
this.dataType = DBOSDataType.fromArg(at);
|
133
|
+
}
|
134
|
+
}
|
135
|
+
exports.MethodParameter = MethodParameter;
|
136
|
+
class MethodRegistration {
|
137
|
+
defaults;
|
138
|
+
name = "";
|
139
|
+
requiredRole = undefined;
|
140
|
+
args = [];
|
141
|
+
constructor(origFunc) {
|
142
|
+
this.origFunction = origFunc;
|
143
|
+
}
|
144
|
+
debug = false;
|
145
|
+
needInitialized = true;
|
146
|
+
origFunction;
|
147
|
+
registeredFunction;
|
148
|
+
workflowConfig;
|
149
|
+
txnConfig;
|
150
|
+
commConfig;
|
151
|
+
init = false;
|
152
|
+
invoke(pthis, args) {
|
153
|
+
return this.registeredFunction.call(pthis, ...args);
|
154
|
+
}
|
155
|
+
getRequiredRoles() {
|
156
|
+
if (this.requiredRole) {
|
157
|
+
return this.requiredRole;
|
158
|
+
}
|
159
|
+
return this.defaults?.requiredRole || [];
|
160
|
+
}
|
161
|
+
}
|
162
|
+
exports.MethodRegistration = MethodRegistration;
|
163
|
+
class ClassRegistration {
|
164
|
+
name = "";
|
165
|
+
requiredRole;
|
166
|
+
defaultArgRequired = ArgRequiredOptions.REQUIRED;
|
167
|
+
needsInitialized = true;
|
168
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
169
|
+
ormEntities = [];
|
170
|
+
ctor;
|
171
|
+
constructor(ctor) {
|
172
|
+
this.ctor = ctor;
|
173
|
+
}
|
174
|
+
}
|
175
|
+
exports.ClassRegistration = ClassRegistration;
|
176
|
+
////////////////////////////////////////////////////////////////////////////////
|
177
|
+
// DECORATOR REGISTRATION
|
178
|
+
// These manage registration objects, creating them at decorator evaluation time
|
179
|
+
// and making wrapped methods available for function registration at runtime
|
180
|
+
// initialization time.
|
181
|
+
////////////////////////////////////////////////////////////////////////////////
|
182
|
+
function getRegisteredOperations(target) {
|
183
|
+
const registeredOperations = [];
|
184
|
+
for (const name of Object.getOwnPropertyNames(target)) {
|
185
|
+
const operation = Reflect.getOwnMetadata(methodMetadataKey, target, name);
|
186
|
+
if (operation) {
|
187
|
+
registeredOperations.push(operation);
|
188
|
+
}
|
189
|
+
}
|
190
|
+
return registeredOperations;
|
191
|
+
}
|
192
|
+
exports.getRegisteredOperations = getRegisteredOperations;
|
193
|
+
function getOrCreateMethodArgsRegistration(target, propertyKey) {
|
194
|
+
let mParameters = Reflect.getOwnMetadata(paramMetadataKey, target, propertyKey) || [];
|
195
|
+
if (!mParameters.length) {
|
196
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
197
|
+
const designParamTypes = Reflect.getMetadata("design:paramtypes", target, propertyKey);
|
198
|
+
mParameters = designParamTypes.map((value, index) => new MethodParameter(index, value));
|
199
|
+
Reflect.defineMetadata(paramMetadataKey, mParameters, target, propertyKey);
|
200
|
+
}
|
201
|
+
return mParameters;
|
202
|
+
}
|
203
|
+
exports.getOrCreateMethodArgsRegistration = getOrCreateMethodArgsRegistration;
|
204
|
+
function generateSaltedHash(data, salt) {
|
205
|
+
const hash = crypto.createHash("sha256"); // You can use other algorithms like 'md5', 'sha512', etc.
|
206
|
+
hash.update(data + salt);
|
207
|
+
return hash.digest("hex");
|
208
|
+
}
|
209
|
+
function getOrCreateMethodRegistration(target, propertyKey, descriptor) {
|
210
|
+
const methReg = Reflect.getOwnMetadata(methodMetadataKey, target, propertyKey) || new MethodRegistration(descriptor.value);
|
211
|
+
if (methReg.needInitialized) {
|
212
|
+
methReg.name = propertyKey.toString();
|
213
|
+
methReg.args = getOrCreateMethodArgsRegistration(target, propertyKey);
|
214
|
+
const argNames = getArgNames(descriptor.value);
|
215
|
+
methReg.args.forEach((e) => {
|
216
|
+
if (!e.name) {
|
217
|
+
if (e.index < argNames.length) {
|
218
|
+
e.name = argNames[e.index];
|
219
|
+
}
|
220
|
+
if (e.index === 0) { // The first argument is always the context.
|
221
|
+
e.logMask = LogMasks.SKIP;
|
222
|
+
}
|
223
|
+
// TODO else warn/log something
|
224
|
+
}
|
225
|
+
});
|
226
|
+
Reflect.defineMetadata(methodMetadataKey, methReg, target, propertyKey);
|
227
|
+
const wrappedMethod = async function (...rawArgs) {
|
228
|
+
let opCtx = undefined;
|
229
|
+
// Validate the user authentication and populate the role field
|
230
|
+
const requiredRoles = methReg.getRequiredRoles();
|
231
|
+
if (requiredRoles.length > 0) {
|
232
|
+
opCtx = rawArgs[0];
|
233
|
+
const curRoles = opCtx.authenticatedRoles;
|
234
|
+
let authorized = false;
|
235
|
+
const set = new Set(curRoles);
|
236
|
+
for (const role of requiredRoles) {
|
237
|
+
if (set.has(role)) {
|
238
|
+
authorized = true;
|
239
|
+
opCtx.assumedRole = role;
|
240
|
+
opCtx.span.setAttribute("assumedRole", role);
|
241
|
+
break;
|
242
|
+
}
|
243
|
+
}
|
244
|
+
if (!authorized) {
|
245
|
+
const err = new error_1.DBOSNotAuthorizedError(`User does not have a role with permission to call ${methReg.name}`, 403);
|
246
|
+
opCtx.span.addEvent("DBOSNotAuthorizedError", { message: err.message });
|
247
|
+
throw err;
|
248
|
+
}
|
249
|
+
}
|
250
|
+
const validatedArgs = (0, data_validation_1.validateMethodArgs)(methReg, rawArgs);
|
251
|
+
// Argument logging
|
252
|
+
validatedArgs.forEach((argValue, idx) => {
|
253
|
+
let isCtx = false;
|
254
|
+
// TODO: we assume the first argument is always a context, need a more robust way to test it.
|
255
|
+
if (idx === 0) {
|
256
|
+
// Context -- I suppose we could just instanceof
|
257
|
+
opCtx = validatedArgs[0];
|
258
|
+
isCtx = true;
|
259
|
+
}
|
260
|
+
let loggedArgValue = argValue;
|
261
|
+
if (isCtx || methReg.args[idx].logMask === LogMasks.SKIP) {
|
262
|
+
return;
|
263
|
+
}
|
264
|
+
else {
|
265
|
+
if (methReg.args[idx].logMask !== LogMasks.NONE) {
|
266
|
+
// For now this means hash
|
267
|
+
if (methReg.args[idx].dataType.dataType === "json") {
|
268
|
+
loggedArgValue = generateSaltedHash(JSON.stringify(argValue), "JSONSALT");
|
269
|
+
}
|
270
|
+
else {
|
271
|
+
// Yes, we are doing the same as above for now.
|
272
|
+
// It can be better if we have verified the type of the data
|
273
|
+
loggedArgValue = generateSaltedHash(JSON.stringify(argValue), "DBOSSALT");
|
274
|
+
}
|
275
|
+
}
|
276
|
+
opCtx?.span.setAttribute(methReg.args[idx].name, loggedArgValue);
|
277
|
+
}
|
278
|
+
});
|
279
|
+
return methReg.origFunction.call(this, ...validatedArgs);
|
280
|
+
};
|
281
|
+
Object.defineProperty(wrappedMethod, "name", {
|
282
|
+
value: methReg.name,
|
283
|
+
});
|
284
|
+
descriptor.value = wrappedMethod;
|
285
|
+
methReg.registeredFunction = wrappedMethod;
|
286
|
+
methReg.needInitialized = false;
|
287
|
+
}
|
288
|
+
return methReg;
|
289
|
+
}
|
290
|
+
function registerAndWrapFunction(target, propertyKey, descriptor) {
|
291
|
+
if (!descriptor.value) {
|
292
|
+
throw Error("Use of decorator when original method is undefined");
|
293
|
+
}
|
294
|
+
const registration = getOrCreateMethodRegistration(target, propertyKey, descriptor);
|
295
|
+
return { descriptor, registration };
|
296
|
+
}
|
297
|
+
exports.registerAndWrapFunction = registerAndWrapFunction;
|
298
|
+
function getOrCreateClassRegistration(ctor) {
|
299
|
+
const clsReg = Reflect.getOwnMetadata(classMetadataKey, ctor, "dbosclassreg") || new ClassRegistration(ctor);
|
300
|
+
if (clsReg.needsInitialized) {
|
301
|
+
clsReg.name = ctor.name;
|
302
|
+
Reflect.defineMetadata(classMetadataKey, clsReg, ctor, "dbosclassreg");
|
303
|
+
const ops = getRegisteredOperations(ctor);
|
304
|
+
ops.forEach((op) => {
|
305
|
+
op.defaults = clsReg;
|
306
|
+
});
|
307
|
+
}
|
308
|
+
return clsReg;
|
309
|
+
}
|
310
|
+
exports.getOrCreateClassRegistration = getOrCreateClassRegistration;
|
311
|
+
//////////////////////////
|
312
|
+
/* PARAMETER DECORATORS */
|
313
|
+
//////////////////////////
|
314
|
+
function ArgRequired(target, propertyKey, parameterIndex) {
|
315
|
+
const existingParameters = getOrCreateMethodArgsRegistration(target, propertyKey);
|
316
|
+
const curParam = existingParameters[parameterIndex];
|
317
|
+
curParam.required = ArgRequiredOptions.REQUIRED;
|
318
|
+
}
|
319
|
+
exports.ArgRequired = ArgRequired;
|
320
|
+
function ArgOptional(target, propertyKey, parameterIndex) {
|
321
|
+
const existingParameters = getOrCreateMethodArgsRegistration(target, propertyKey);
|
322
|
+
const curParam = existingParameters[parameterIndex];
|
323
|
+
curParam.required = ArgRequiredOptions.OPTIONAL;
|
324
|
+
}
|
325
|
+
exports.ArgOptional = ArgOptional;
|
326
|
+
function SkipLogging(target, propertyKey, parameterIndex) {
|
327
|
+
const existingParameters = getOrCreateMethodArgsRegistration(target, propertyKey);
|
328
|
+
const curParam = existingParameters[parameterIndex];
|
329
|
+
curParam.logMask = LogMasks.SKIP;
|
330
|
+
}
|
331
|
+
exports.SkipLogging = SkipLogging;
|
332
|
+
function LogMask(mask) {
|
333
|
+
return function (target, propertyKey, parameterIndex) {
|
334
|
+
const existingParameters = getOrCreateMethodArgsRegistration(target, propertyKey);
|
335
|
+
const curParam = existingParameters[parameterIndex];
|
336
|
+
curParam.logMask = mask;
|
337
|
+
};
|
338
|
+
}
|
339
|
+
exports.LogMask = LogMask;
|
340
|
+
function ArgName(name) {
|
341
|
+
return function (target, propertyKey, parameterIndex) {
|
342
|
+
const existingParameters = getOrCreateMethodArgsRegistration(target, propertyKey);
|
343
|
+
const curParam = existingParameters[parameterIndex];
|
344
|
+
curParam.name = name;
|
345
|
+
};
|
346
|
+
}
|
347
|
+
exports.ArgName = ArgName;
|
348
|
+
function ArgDate() {
|
349
|
+
return function (target, propertyKey, parameterIndex) {
|
350
|
+
const existingParameters = getOrCreateMethodArgsRegistration(target, propertyKey);
|
351
|
+
const curParam = existingParameters[parameterIndex];
|
352
|
+
curParam.dataType.dataType = 'timestamp';
|
353
|
+
};
|
354
|
+
}
|
355
|
+
exports.ArgDate = ArgDate;
|
356
|
+
function ArgVarchar(length) {
|
357
|
+
return function (target, propertyKey, parameterIndex) {
|
358
|
+
const existingParameters = getOrCreateMethodArgsRegistration(target, propertyKey);
|
359
|
+
const curParam = existingParameters[parameterIndex];
|
360
|
+
curParam.dataType = DBOSDataType.varchar(length);
|
361
|
+
};
|
362
|
+
}
|
363
|
+
exports.ArgVarchar = ArgVarchar;
|
364
|
+
///////////////////////
|
365
|
+
/* CLASS DECORATORS */
|
366
|
+
///////////////////////
|
367
|
+
function DefaultRequiredRole(anyOf) {
|
368
|
+
function clsdec(ctor) {
|
369
|
+
const clsreg = getOrCreateClassRegistration(ctor);
|
370
|
+
clsreg.requiredRole = anyOf;
|
371
|
+
}
|
372
|
+
return clsdec;
|
373
|
+
}
|
374
|
+
exports.DefaultRequiredRole = DefaultRequiredRole;
|
375
|
+
function DefaultArgRequired(ctor) {
|
376
|
+
const clsreg = getOrCreateClassRegistration(ctor);
|
377
|
+
clsreg.defaultArgRequired = ArgRequiredOptions.REQUIRED;
|
378
|
+
}
|
379
|
+
exports.DefaultArgRequired = DefaultArgRequired;
|
380
|
+
function DefaultArgOptional(ctor) {
|
381
|
+
const clsreg = getOrCreateClassRegistration(ctor);
|
382
|
+
clsreg.defaultArgRequired = ArgRequiredOptions.OPTIONAL;
|
383
|
+
}
|
384
|
+
exports.DefaultArgOptional = DefaultArgOptional;
|
385
|
+
///////////////////////
|
386
|
+
/* METHOD DECORATORS */
|
387
|
+
///////////////////////
|
388
|
+
function Debug() {
|
389
|
+
function logdec(target, propertyKey, inDescriptor) {
|
390
|
+
const { descriptor, registration } = registerAndWrapFunction(target, propertyKey, inDescriptor);
|
391
|
+
registration.debug = true;
|
392
|
+
return descriptor;
|
393
|
+
}
|
394
|
+
return logdec;
|
395
|
+
}
|
396
|
+
exports.Debug = Debug;
|
397
|
+
function RequiredRole(anyOf) {
|
398
|
+
function apidec(target, propertyKey, inDescriptor) {
|
399
|
+
const { descriptor, registration } = registerAndWrapFunction(target, propertyKey, inDescriptor);
|
400
|
+
registration.requiredRole = anyOf;
|
401
|
+
return descriptor;
|
402
|
+
}
|
403
|
+
return apidec;
|
404
|
+
}
|
405
|
+
exports.RequiredRole = RequiredRole;
|
406
|
+
function Workflow(config = {}) {
|
407
|
+
function decorator(target, propertyKey, inDescriptor) {
|
408
|
+
const { descriptor, registration } = registerAndWrapFunction(target, propertyKey, inDescriptor);
|
409
|
+
registration.workflowConfig = config;
|
410
|
+
return descriptor;
|
411
|
+
}
|
412
|
+
return decorator;
|
413
|
+
}
|
414
|
+
exports.Workflow = Workflow;
|
415
|
+
function Transaction(config = {}) {
|
416
|
+
function decorator(target, propertyKey,
|
417
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
418
|
+
inDescriptor) {
|
419
|
+
const { descriptor, registration } = registerAndWrapFunction(target, propertyKey, inDescriptor);
|
420
|
+
registration.txnConfig = config;
|
421
|
+
return descriptor;
|
422
|
+
}
|
423
|
+
return decorator;
|
424
|
+
}
|
425
|
+
exports.Transaction = Transaction;
|
426
|
+
function Communicator(config = {}) {
|
427
|
+
function decorator(target, propertyKey, inDescriptor) {
|
428
|
+
const { descriptor, registration } = registerAndWrapFunction(target, propertyKey, inDescriptor);
|
429
|
+
registration.commConfig = config;
|
430
|
+
return descriptor;
|
431
|
+
}
|
432
|
+
return decorator;
|
433
|
+
}
|
434
|
+
exports.Communicator = Communicator;
|
435
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
436
|
+
function OrmEntities(entities) {
|
437
|
+
function clsdec(ctor) {
|
438
|
+
const clsreg = getOrCreateClassRegistration(ctor);
|
439
|
+
clsreg.ormEntities = entities;
|
440
|
+
}
|
441
|
+
return clsdec;
|
442
|
+
}
|
443
|
+
exports.OrmEntities = OrmEntities;
|
444
|
+
function DBOSInitializer() {
|
445
|
+
function decorator(target, propertyKey,
|
446
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
447
|
+
inDescriptor) {
|
448
|
+
const { descriptor, registration } = registerAndWrapFunction(target, propertyKey, inDescriptor);
|
449
|
+
registration.init = true;
|
450
|
+
return descriptor;
|
451
|
+
}
|
452
|
+
return decorator;
|
453
|
+
}
|
454
|
+
exports.DBOSInitializer = DBOSInitializer;
|
455
|
+
// For future use with Deploy
|
456
|
+
function DBOSDeploy() {
|
457
|
+
function decorator(target, propertyKey,
|
458
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
459
|
+
inDescriptor) {
|
460
|
+
const { descriptor, registration } = registerAndWrapFunction(target, propertyKey, inDescriptor);
|
461
|
+
registration.init = true;
|
462
|
+
return descriptor;
|
463
|
+
}
|
464
|
+
return decorator;
|
465
|
+
}
|
466
|
+
exports.DBOSDeploy = DBOSDeploy;
|
467
|
+
//# sourceMappingURL=decorators.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
export declare function isClientError(dbosErrorCode: number): boolean;
|
2
|
+
export declare class DBOSError extends Error {
|
3
|
+
readonly dbosErrorCode: number;
|
4
|
+
constructor(msg: string, dbosErrorCode?: number);
|
5
|
+
}
|
6
|
+
export declare class DBOSWorkflowPermissionDeniedError extends DBOSError {
|
7
|
+
constructor(runAs: string, workflowName: string);
|
8
|
+
}
|
9
|
+
export declare class DBOSInitializationError extends DBOSError {
|
10
|
+
constructor(msg: string);
|
11
|
+
}
|
12
|
+
export declare class DBOSTopicPermissionDeniedError extends DBOSError {
|
13
|
+
constructor(destinationUUID: string, workflowUUID: string, functionID: number, runAs: string);
|
14
|
+
}
|
15
|
+
export declare class DBOSWorkflowConflictUUIDError extends DBOSError {
|
16
|
+
constructor(workflowUUID: string);
|
17
|
+
}
|
18
|
+
export declare class DBOSNotRegisteredError extends DBOSError {
|
19
|
+
constructor(name: string);
|
20
|
+
}
|
21
|
+
export declare class DBOSPostgresExporterError extends DBOSError {
|
22
|
+
constructor(err: Error);
|
23
|
+
}
|
24
|
+
export declare class DBOSDataValidationError extends DBOSError {
|
25
|
+
constructor(msg: string);
|
26
|
+
}
|
27
|
+
export declare class DuplicateWorkflowEventError extends DBOSError {
|
28
|
+
constructor(workflowUUID: string, key: string);
|
29
|
+
}
|
30
|
+
export declare class DBOSResponseError extends DBOSError {
|
31
|
+
readonly status: number;
|
32
|
+
constructor(msg: string, status?: number);
|
33
|
+
}
|
34
|
+
export declare class DBOSNotAuthorizedError extends DBOSError {
|
35
|
+
readonly status: number;
|
36
|
+
constructor(msg: string, status?: number);
|
37
|
+
}
|
38
|
+
export declare class DBOSUndefinedDecoratorInputError extends DBOSError {
|
39
|
+
constructor(decoratorName: string);
|
40
|
+
}
|
41
|
+
export declare class DBOSConfigKeyTypeError extends DBOSError {
|
42
|
+
constructor(configKey: string, expectedType: string, actualType: string);
|
43
|
+
}
|
44
|
+
//# sourceMappingURL=error.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"AAqDA,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,WAElD;AAED,qBAAa,SAAU,SAAQ,KAAK;IAET,QAAQ,CAAC,aAAa,EAAE,MAAM;gBAA3C,GAAG,EAAE,MAAM,EAAW,aAAa,GAAE,MAAU;CAG5D;AAGD,qBAAa,iCAAkC,SAAQ,SAAS;gBAClD,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;CAIhD;AAGD,qBAAa,uBAAwB,SAAQ,SAAS;gBACxC,GAAG,EAAE,MAAM;CAGxB;AAGD,qBAAa,8BAA+B,SAAQ,SAAS;gBAC/C,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAI7F;AAGD,qBAAa,6BAA8B,SAAQ,SAAS;gBAC9C,YAAY,EAAE,MAAM;CAGjC;AAGD,qBAAa,sBAAuB,SAAQ,SAAS;gBACvC,IAAI,EAAE,MAAM;CAIzB;AAGD,qBAAa,yBAA0B,SAAQ,SAAS;gBAC1C,GAAG,EAAE,KAAK;CAOvB;AAGD,qBAAa,uBAAwB,SAAQ,SAAS;gBACxC,GAAG,EAAE,MAAM;CAGxB;AAGD,qBAAa,2BAA4B,SAAQ,SAAS;gBAC5C,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAG9C;AAID,qBAAa,iBAAkB,SAAQ,SAAS;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAApC,GAAG,EAAE,MAAM,EAAW,MAAM,GAAE,MAAY;CAGvD;AAGD,qBAAa,sBAAuB,SAAQ,SAAS;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAApC,GAAG,EAAE,MAAM,EAAW,MAAM,GAAE,MAAY;CAGvD;AAGD,qBAAa,gCAAiC,SAAQ,SAAS;gBACjD,aAAa,EAAE,MAAM;CAGlC;AAGD,qBAAa,sBAAuB,SAAQ,SAAS;gBACvC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAGxE"}
|