@solidactions/sdk 0.1.0
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/.claude/settings.local.json +7 -0
- package/.clavix/outputs/dbos-http-sdk/full-prd.md +142 -0
- package/.clavix/outputs/dbos-http-sdk/quick-prd.md +12 -0
- package/.clavix/outputs/dbos-http-sdk/tasks.md +630 -0
- package/.clavix/outputs/prompts/dbos-http-api-20260110-033219.md +91 -0
- package/.husky/pre-commit +1 -0
- package/.prettierignore +3 -0
- package/.prettierrc +9 -0
- package/CODE_OF_CONDUCT.md +49 -0
- package/CONTRIBUTING.md +47 -0
- package/LICENSE +21 -0
- package/README.md +172 -0
- package/dist/dbos-config.schema.json +132 -0
- package/dist/schemas/system_db_schema.d.ts +73 -0
- package/dist/schemas/system_db_schema.d.ts.map +1 -0
- package/dist/schemas/system_db_schema.js +3 -0
- package/dist/schemas/system_db_schema.js.map +1 -0
- package/dist/src/adminserver.d.ts +79 -0
- package/dist/src/adminserver.d.ts.map +1 -0
- package/dist/src/adminserver.js +495 -0
- package/dist/src/adminserver.js.map +1 -0
- package/dist/src/authdecorators.d.ts +2 -0
- package/dist/src/authdecorators.d.ts.map +1 -0
- package/dist/src/authdecorators.js +48 -0
- package/dist/src/authdecorators.js.map +1 -0
- package/dist/src/cli/cli.d.ts +9 -0
- package/dist/src/cli/cli.d.ts.map +1 -0
- package/dist/src/cli/cli.js +116 -0
- package/dist/src/cli/cli.js.map +1 -0
- package/dist/src/cli/commands.d.ts +3 -0
- package/dist/src/cli/commands.d.ts.map +1 -0
- package/dist/src/cli/commands.js +46 -0
- package/dist/src/cli/commands.js.map +1 -0
- package/dist/src/client.d.ts +85 -0
- package/dist/src/client.d.ts.map +1 -0
- package/dist/src/client.js +186 -0
- package/dist/src/client.js.map +1 -0
- package/dist/src/conductor/conductor.d.ts +28 -0
- package/dist/src/conductor/conductor.d.ts.map +1 -0
- package/dist/src/conductor/conductor.js +376 -0
- package/dist/src/conductor/conductor.js.map +1 -0
- package/dist/src/conductor/protocol.d.ts +238 -0
- package/dist/src/conductor/protocol.d.ts.map +1 -0
- package/dist/src/conductor/protocol.js +353 -0
- package/dist/src/conductor/protocol.js.map +1 -0
- package/dist/src/config.d.ts +91 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +199 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/context.d.ts +62 -0
- package/dist/src/context.d.ts.map +1 -0
- package/dist/src/context.js +118 -0
- package/dist/src/context.js.map +1 -0
- package/dist/src/database_utils.d.ts +17 -0
- package/dist/src/database_utils.d.ts.map +1 -0
- package/dist/src/database_utils.js +53 -0
- package/dist/src/database_utils.js.map +1 -0
- package/dist/src/datasource.d.ts +109 -0
- package/dist/src/datasource.d.ts.map +1 -0
- package/dist/src/datasource.js +204 -0
- package/dist/src/datasource.js.map +1 -0
- package/dist/src/dbos-executor.d.ts +189 -0
- package/dist/src/dbos-executor.d.ts.map +1 -0
- package/dist/src/dbos-executor.js +817 -0
- package/dist/src/dbos-executor.js.map +1 -0
- package/dist/src/dbos.d.ts +519 -0
- package/dist/src/dbos.d.ts.map +1 -0
- package/dist/src/dbos.js +1282 -0
- package/dist/src/dbos.js.map +1 -0
- package/dist/src/debouncer.d.ts +33 -0
- package/dist/src/debouncer.d.ts.map +1 -0
- package/dist/src/debouncer.js +170 -0
- package/dist/src/debouncer.js.map +1 -0
- package/dist/src/debugpoint.d.ts +26 -0
- package/dist/src/debugpoint.d.ts.map +1 -0
- package/dist/src/debugpoint.js +65 -0
- package/dist/src/debugpoint.js.map +1 -0
- package/dist/src/decorators.d.ts +219 -0
- package/dist/src/decorators.d.ts.map +1 -0
- package/dist/src/decorators.js +873 -0
- package/dist/src/decorators.js.map +1 -0
- package/dist/src/error.d.ts +130 -0
- package/dist/src/error.d.ts.map +1 -0
- package/dist/src/error.js +290 -0
- package/dist/src/error.js.map +1 -0
- package/dist/src/http_client.d.ts +82 -0
- package/dist/src/http_client.d.ts.map +1 -0
- package/dist/src/http_client.js +286 -0
- package/dist/src/http_client.js.map +1 -0
- package/dist/src/http_system_database.d.ts +84 -0
- package/dist/src/http_system_database.d.ts.map +1 -0
- package/dist/src/http_system_database.js +429 -0
- package/dist/src/http_system_database.js.map +1 -0
- package/dist/src/index.d.ts +14 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +53 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/scheduler/crontab.d.ts +14 -0
- package/dist/src/scheduler/crontab.d.ts.map +1 -0
- package/dist/src/scheduler/crontab.js +308 -0
- package/dist/src/scheduler/crontab.js.map +1 -0
- package/dist/src/scheduler/scheduler.d.ts +41 -0
- package/dist/src/scheduler/scheduler.d.ts.map +1 -0
- package/dist/src/scheduler/scheduler.js +165 -0
- package/dist/src/scheduler/scheduler.js.map +1 -0
- package/dist/src/serialization.d.ts +57 -0
- package/dist/src/serialization.d.ts.map +1 -0
- package/dist/src/serialization.js +306 -0
- package/dist/src/serialization.js.map +1 -0
- package/dist/src/solidactions-executor.d.ts +177 -0
- package/dist/src/solidactions-executor.d.ts.map +1 -0
- package/dist/src/solidactions-executor.js +817 -0
- package/dist/src/solidactions-executor.js.map +1 -0
- package/dist/src/solidactions.d.ts +519 -0
- package/dist/src/solidactions.d.ts.map +1 -0
- package/dist/src/solidactions.js +1284 -0
- package/dist/src/solidactions.js.map +1 -0
- package/dist/src/step.d.ts +16 -0
- package/dist/src/step.d.ts.map +1 -0
- package/dist/src/step.js +3 -0
- package/dist/src/step.js.map +1 -0
- package/dist/src/system_database.d.ts +141 -0
- package/dist/src/system_database.d.ts.map +1 -0
- package/dist/src/system_database.js +25 -0
- package/dist/src/system_database.js.map +1 -0
- package/dist/src/telemetry/collector.d.ts +13 -0
- package/dist/src/telemetry/collector.d.ts.map +1 -0
- package/dist/src/telemetry/collector.js +63 -0
- package/dist/src/telemetry/collector.js.map +1 -0
- package/dist/src/telemetry/exporters.d.ts +13 -0
- package/dist/src/telemetry/exporters.d.ts.map +1 -0
- package/dist/src/telemetry/exporters.js +101 -0
- package/dist/src/telemetry/exporters.js.map +1 -0
- package/dist/src/telemetry/logs.d.ts +52 -0
- package/dist/src/telemetry/logs.d.ts.map +1 -0
- package/dist/src/telemetry/logs.js +287 -0
- package/dist/src/telemetry/logs.js.map +1 -0
- package/dist/src/telemetry/traces.d.ts +52 -0
- package/dist/src/telemetry/traces.d.ts.map +1 -0
- package/dist/src/telemetry/traces.js +150 -0
- package/dist/src/telemetry/traces.js.map +1 -0
- package/dist/src/utils.d.ts +26 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +136 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/src/wfqueue.d.ts +64 -0
- package/dist/src/wfqueue.d.ts.map +1 -0
- package/dist/src/wfqueue.js +147 -0
- package/dist/src/wfqueue.js.map +1 -0
- package/dist/src/workflow.d.ts +154 -0
- package/dist/src/workflow.d.ts.map +1 -0
- package/dist/src/workflow.js +99 -0
- package/dist/src/workflow.js.map +1 -0
- package/dist/src/workflow_management.d.ts +15 -0
- package/dist/src/workflow_management.d.ts.map +1 -0
- package/dist/src/workflow_management.js +87 -0
- package/dist/src/workflow_management.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/docs/api-schema.md +1441 -0
- package/docs/migration-guide.md +460 -0
- package/docs/phase-14-changes.md +156 -0
- package/docs/solidsteps-ai-prompt.md +534 -0
- package/eslint.config.cjs +50 -0
- package/package.json +84 -0
- package/solidactions-ai-prompt.md +1504 -0
- package/solidactions-config.schema.json +132 -0
- package/solidactions-test-config.yaml +15 -0
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.safeParseError = exports.safeParse = exports.serializeFunctionInputOutput = exports.SolidActionsJSON = exports.SERIALIZER_MARKER_VALUE = exports.SERIALIZER_MARKER_KEY = exports.SolidActionsJSONLegacy = exports.SolidActionsReviver = exports.SolidActionsReplacer = exports.registerSerializationRecipe = void 0;
|
|
7
|
+
const serialize_error_1 = require("serialize-error");
|
|
8
|
+
const superjson_1 = __importDefault(require("superjson"));
|
|
9
|
+
function registerSerializationRecipe(r) {
|
|
10
|
+
superjson_1.default.registerCustom(r, r.name);
|
|
11
|
+
}
|
|
12
|
+
exports.registerSerializationRecipe = registerSerializationRecipe;
|
|
13
|
+
// Register Buffer transformer for SuperJSON
|
|
14
|
+
registerSerializationRecipe({
|
|
15
|
+
isApplicable: (v) => Buffer.isBuffer(v),
|
|
16
|
+
serialize: (v) => Array.from(v),
|
|
17
|
+
deserialize: (v) => Buffer.from(v),
|
|
18
|
+
name: 'Buffer',
|
|
19
|
+
});
|
|
20
|
+
//https://www.typescriptlang.org/docs/handbook/2/functions.html#declaring-this-in-a-function
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
|
+
function SolidActionsReplacer(key, value) {
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment
|
|
24
|
+
const actualValue = this[key];
|
|
25
|
+
if (actualValue instanceof Date) {
|
|
26
|
+
const res = {
|
|
27
|
+
solidactions_type: 'solidactions_Date',
|
|
28
|
+
solidactions_data: actualValue.toISOString(),
|
|
29
|
+
};
|
|
30
|
+
return res;
|
|
31
|
+
}
|
|
32
|
+
if (typeof actualValue === 'bigint') {
|
|
33
|
+
const res = {
|
|
34
|
+
solidactions_type: 'solidactions_BigInt',
|
|
35
|
+
solidactions_data: actualValue.toString(),
|
|
36
|
+
};
|
|
37
|
+
return res;
|
|
38
|
+
}
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
exports.SolidActionsReplacer = SolidActionsReplacer;
|
|
42
|
+
function isSerializedBuffer(value) {
|
|
43
|
+
return typeof value === 'object' && value !== null && value.type === 'Buffer';
|
|
44
|
+
}
|
|
45
|
+
function isSerializedDate(value) {
|
|
46
|
+
return (typeof value === 'object' &&
|
|
47
|
+
value !== null &&
|
|
48
|
+
value.solidactions_type === 'solidactions_Date');
|
|
49
|
+
}
|
|
50
|
+
function isSerializedBigInt(value) {
|
|
51
|
+
return (typeof value === 'object' &&
|
|
52
|
+
value !== null &&
|
|
53
|
+
value.solidactions_type === 'solidactions_BigInt');
|
|
54
|
+
}
|
|
55
|
+
function SolidActionsReviver(_key, value) {
|
|
56
|
+
switch (true) {
|
|
57
|
+
case isSerializedBuffer(value):
|
|
58
|
+
return Buffer.from(value.data);
|
|
59
|
+
case isSerializedDate(value):
|
|
60
|
+
return new Date(Date.parse(value.solidactions_data));
|
|
61
|
+
case isSerializedBigInt(value):
|
|
62
|
+
return BigInt(value.solidactions_data);
|
|
63
|
+
default:
|
|
64
|
+
return value;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.SolidActionsReviver = SolidActionsReviver;
|
|
68
|
+
// Keep the old SolidActionsJSON implementation for reference/testing
|
|
69
|
+
exports.SolidActionsJSONLegacy = {
|
|
70
|
+
parse: (text) => {
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
72
|
+
return text === null ? null : JSON.parse(text, SolidActionsReviver);
|
|
73
|
+
},
|
|
74
|
+
stringify: (value) => {
|
|
75
|
+
return JSON.stringify(value, SolidActionsReplacer);
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
// Constants for SuperJSON serialization marker
|
|
79
|
+
exports.SERIALIZER_MARKER_KEY = '__solidactions_serializer';
|
|
80
|
+
exports.SERIALIZER_MARKER_VALUE = 'superjson';
|
|
81
|
+
const SERIALIZER_MARKER_STRING = `"${exports.SERIALIZER_MARKER_KEY}":"${exports.SERIALIZER_MARKER_VALUE}"`;
|
|
82
|
+
/**
|
|
83
|
+
* Detects if a parsed object was serialized by our SolidActionsJSON with SuperJSON.
|
|
84
|
+
* We check for our explicit marker to avoid ANY ambiguity with user data.
|
|
85
|
+
* Also validates the object has the shape expected by superjson.deserialize().
|
|
86
|
+
*/
|
|
87
|
+
function isSolidActionsBrandedSuperjsonRecord(obj) {
|
|
88
|
+
return (typeof obj === 'object' &&
|
|
89
|
+
obj !== null &&
|
|
90
|
+
exports.SERIALIZER_MARKER_KEY in obj &&
|
|
91
|
+
obj[exports.SERIALIZER_MARKER_KEY] === exports.SERIALIZER_MARKER_VALUE &&
|
|
92
|
+
'json' in obj);
|
|
93
|
+
}
|
|
94
|
+
function sjstringify(value) {
|
|
95
|
+
// Use SuperJSON for all new serialization
|
|
96
|
+
const serialized = superjson_1.default.serialize(value);
|
|
97
|
+
// Add our explicit marker to make detection unambiguous
|
|
98
|
+
return JSON.stringify({
|
|
99
|
+
...serialized,
|
|
100
|
+
[exports.SERIALIZER_MARKER_KEY]: exports.SERIALIZER_MARKER_VALUE,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* SolidActionsJSON with SuperJSON support for richer type serialization.
|
|
105
|
+
*
|
|
106
|
+
* Backwards compatible - can deserialize both old SolidActionsJSON format and new SuperJSON format.
|
|
107
|
+
* New serialization uses SuperJSON to handle Sets, Maps, undefined, RegExp, circular refs, etc.
|
|
108
|
+
*/
|
|
109
|
+
exports.SolidActionsJSON = {
|
|
110
|
+
parse: (text) => {
|
|
111
|
+
if (text === null || text === undefined)
|
|
112
|
+
return null; // This is from legacy; SuperJSON can do it.
|
|
113
|
+
/**
|
|
114
|
+
* Performance optimization: String check before JSON parsing.
|
|
115
|
+
*
|
|
116
|
+
* Why not just parse once and check the resulting object?
|
|
117
|
+
* - Legacy SolidActionsJSON data needs the SolidActionsReviver function during parsing
|
|
118
|
+
* - SuperJSON data must be parsed WITHOUT the reviver (it would corrupt the structure)
|
|
119
|
+
* - We can't know which parser to use without inspecting the data first
|
|
120
|
+
*
|
|
121
|
+
* This string check lets us:
|
|
122
|
+
* 1. Parse legacy data correctly with SolidActionsReviver in one pass (99% of cases)
|
|
123
|
+
* 2. Only double-parse when we detect new SuperJSON format (rare for now)
|
|
124
|
+
* 3. Avoid corrupting SuperJSON's meta structure with the wrong reviver
|
|
125
|
+
*/
|
|
126
|
+
const hasSuperJSONMarker = text.includes(SERIALIZER_MARKER_STRING);
|
|
127
|
+
if (hasSuperJSONMarker) {
|
|
128
|
+
// Parse without reviver first to check if it's really our SuperJSON format
|
|
129
|
+
const vanillaParsed = JSON.parse(text);
|
|
130
|
+
if (isSolidActionsBrandedSuperjsonRecord(vanillaParsed)) {
|
|
131
|
+
return superjson_1.default.deserialize(vanillaParsed);
|
|
132
|
+
}
|
|
133
|
+
// False positive - user data happened to contain our marker string
|
|
134
|
+
// Fall through to parse with reviver
|
|
135
|
+
}
|
|
136
|
+
// Legacy SolidActionsJSON format
|
|
137
|
+
return exports.SolidActionsJSONLegacy.parse(text);
|
|
138
|
+
},
|
|
139
|
+
stringify: sjstringify,
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Roundtrips `value` through serialization. This doesn't preserve functions by default.
|
|
143
|
+
* So then, we recursively attach function stubs that throw clear errors, for any
|
|
144
|
+
* functions present on the original (own props + prototype methods) that
|
|
145
|
+
* aren't present as functions on the deserialized object.
|
|
146
|
+
* The return is both the deserialized object and its serialized string.
|
|
147
|
+
*/
|
|
148
|
+
function serializeFunctionInputOutput(value, path = [], serializer) {
|
|
149
|
+
const stringified = serializer.stringify(value);
|
|
150
|
+
const deserialized = serializer.parse(stringified);
|
|
151
|
+
if (serializer === exports.SolidActionsJSON && isObjectish(deserialized)) {
|
|
152
|
+
attachFunctionStubs(value, deserialized, path);
|
|
153
|
+
}
|
|
154
|
+
return { deserialized, stringified };
|
|
155
|
+
}
|
|
156
|
+
exports.serializeFunctionInputOutput = serializeFunctionInputOutput;
|
|
157
|
+
// Walks original & deserialized in lockstep and attaches stubs for missing functions.
|
|
158
|
+
function attachFunctionStubs(original, deserialized, path = []) {
|
|
159
|
+
// Avoid infinite cycles
|
|
160
|
+
const seen = new WeakSet();
|
|
161
|
+
const pairQueue = [{ o: original, d: deserialized, p: path }];
|
|
162
|
+
while (pairQueue.length) {
|
|
163
|
+
const { o, d, p } = pairQueue.pop();
|
|
164
|
+
if (seen.has(o))
|
|
165
|
+
continue;
|
|
166
|
+
seen.add(o);
|
|
167
|
+
// Collect function keys from the original
|
|
168
|
+
for (const key of collectFunctionKeys(o)) {
|
|
169
|
+
if (!(key in d)) {
|
|
170
|
+
defineThrowingStub(d, key, p);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// Recurse into child properties (plain objects & arrays, but not maps/sets)
|
|
174
|
+
for (const key of getAllKeys(o)) {
|
|
175
|
+
try {
|
|
176
|
+
const childO = o[key];
|
|
177
|
+
const childD = d[key];
|
|
178
|
+
if (!shouldRecurse(childO, childD))
|
|
179
|
+
continue;
|
|
180
|
+
pairQueue.push({ o: childO, d: childD, p: [...p, key] });
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
// Ignore property accessors that throw
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// Map/Set values
|
|
187
|
+
if (o instanceof Map && d instanceof Map) {
|
|
188
|
+
for (const [k, vO] of o) {
|
|
189
|
+
const vD = d.get(k);
|
|
190
|
+
if (shouldRecurse(vO, vD)) {
|
|
191
|
+
const step = isIndexableKey(k) ? String(k) : '[MapValue]';
|
|
192
|
+
pairQueue.push({ o: vO, d: vD, p: [...p, step] });
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
if (o instanceof Set && d instanceof Set) {
|
|
197
|
+
const arrO = Array.from(o);
|
|
198
|
+
const arrD = Array.from(d);
|
|
199
|
+
for (let i = 0; i < Math.min(arrO.length, arrD.length); i++) {
|
|
200
|
+
const vO = arrO[i];
|
|
201
|
+
const vD = arrD[i];
|
|
202
|
+
if (shouldRecurse(vO, vD)) {
|
|
203
|
+
pairQueue.push({ o: vO, d: vD, p: [...p, i] });
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
function isObjectish(v) {
|
|
210
|
+
return (typeof v === 'object' && v !== null) || typeof v === 'function';
|
|
211
|
+
}
|
|
212
|
+
function defineThrowingStub(target, key, path) {
|
|
213
|
+
const stub = function (..._args) {
|
|
214
|
+
throw new Error(`Attempted to call '${String(key)}' at path ${formatPath(path)} on an object that is a serialized function input our output value. ` +
|
|
215
|
+
`Functions are not preserved through serialization; see 'SolidActions.registerSerialization'. `);
|
|
216
|
+
};
|
|
217
|
+
try {
|
|
218
|
+
Object.defineProperty(target, key, {
|
|
219
|
+
value: stub,
|
|
220
|
+
configurable: true,
|
|
221
|
+
writable: false,
|
|
222
|
+
enumerable: false,
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
// Fall back to assignment
|
|
227
|
+
target[key] = stub;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
function shouldRecurse(a, b) {
|
|
231
|
+
if (!a || !b)
|
|
232
|
+
return false;
|
|
233
|
+
if (typeof a !== 'object' || typeof b !== 'object')
|
|
234
|
+
return false;
|
|
235
|
+
// Avoid recursing into special non-plain objects (Date, RegExp, etc.)
|
|
236
|
+
const bad = [Date, RegExp, WeakMap, WeakSet, ArrayBuffer, DataView];
|
|
237
|
+
if (bad.some((t) => a instanceof t))
|
|
238
|
+
return false;
|
|
239
|
+
return true;
|
|
240
|
+
}
|
|
241
|
+
function getAllKeys(obj) {
|
|
242
|
+
const names = Object.getOwnPropertyNames(obj);
|
|
243
|
+
const syms = Object.getOwnPropertySymbols(obj);
|
|
244
|
+
return [...names, ...syms];
|
|
245
|
+
}
|
|
246
|
+
function collectFunctionKeys(obj) {
|
|
247
|
+
const keys = new Set();
|
|
248
|
+
// Own props
|
|
249
|
+
for (const k of getAllKeys(obj)) {
|
|
250
|
+
const d = Object.getOwnPropertyDescriptor(obj, k);
|
|
251
|
+
if (d && 'value' in d && typeof d.value === 'function')
|
|
252
|
+
keys.add(k);
|
|
253
|
+
}
|
|
254
|
+
// Prototype chain methods (so we also stub class methods lost after deserialization)
|
|
255
|
+
let proto = Object.getPrototypeOf(obj);
|
|
256
|
+
while (proto && proto !== Object.prototype) {
|
|
257
|
+
for (const k of Object.getOwnPropertyNames(proto)) {
|
|
258
|
+
if (k === 'constructor')
|
|
259
|
+
continue;
|
|
260
|
+
const d = Object.getOwnPropertyDescriptor(proto, k);
|
|
261
|
+
if (d && 'value' in d && typeof d.value === 'function')
|
|
262
|
+
keys.add(k);
|
|
263
|
+
}
|
|
264
|
+
proto = Object.getPrototypeOf(proto);
|
|
265
|
+
}
|
|
266
|
+
return Array.from(keys);
|
|
267
|
+
}
|
|
268
|
+
function formatPath(path) {
|
|
269
|
+
if (path.length === 0)
|
|
270
|
+
return '(root)';
|
|
271
|
+
return path
|
|
272
|
+
.map((seg) => typeof seg === 'number'
|
|
273
|
+
? `[${seg}]`
|
|
274
|
+
: typeof seg === 'symbol'
|
|
275
|
+
? `[${String(seg)}]`
|
|
276
|
+
: /^<?[A-Za-z_$][A-Za-z0-9_$]*>?$/.test(seg)
|
|
277
|
+
? `.${seg}`
|
|
278
|
+
: `[${JSON.stringify(seg)}]`)
|
|
279
|
+
.join('')
|
|
280
|
+
.replace(/^\./, '');
|
|
281
|
+
}
|
|
282
|
+
function isIndexableKey(k) {
|
|
283
|
+
return typeof k === 'string' || typeof k === 'number';
|
|
284
|
+
}
|
|
285
|
+
// Attempt to deserialize a value, but if it fails, retun the raw string.
|
|
286
|
+
// Used for "best-effort" in introspection methods which may encounter
|
|
287
|
+
// old undeserializable data.
|
|
288
|
+
function safeParse(serializer, val) {
|
|
289
|
+
try {
|
|
290
|
+
return serializer.parse(val);
|
|
291
|
+
}
|
|
292
|
+
catch (e) {
|
|
293
|
+
return val;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
exports.safeParse = safeParse;
|
|
297
|
+
function safeParseError(serializer, val) {
|
|
298
|
+
try {
|
|
299
|
+
return (0, serialize_error_1.deserializeError)(serializer.parse(val));
|
|
300
|
+
}
|
|
301
|
+
catch (e) {
|
|
302
|
+
return val;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
exports.safeParseError = safeParseError;
|
|
306
|
+
//# sourceMappingURL=serialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../src/serialization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { type WorkflowHandle, type WorkflowParams, type WorkflowStatus, type StepInfo } from './workflow';
|
|
2
|
+
import { type StepConfig } from './step';
|
|
3
|
+
import { TelemetryCollector } from './telemetry/collector';
|
|
4
|
+
import { Tracer } from './telemetry/traces';
|
|
5
|
+
import { SolidActionsContextualLogger, GlobalLogger } from './telemetry/logs';
|
|
6
|
+
import { type SystemDatabase, type SystemDatabaseStoredResult } from './system_database';
|
|
7
|
+
import { SolidActionsHttpConfig } from './config';
|
|
8
|
+
import { TypedAsyncFunction } from './decorators';
|
|
9
|
+
import type { step_info } from '../schemas/system_db_schema';
|
|
10
|
+
import { SolidActionsSerializer } from './serialization';
|
|
11
|
+
import { GetWorkflowsInput } from '.';
|
|
12
|
+
export interface SolidActionsConfig {
|
|
13
|
+
name?: string;
|
|
14
|
+
api?: {
|
|
15
|
+
url: string;
|
|
16
|
+
key: string;
|
|
17
|
+
timeout?: number;
|
|
18
|
+
maxRetries?: number;
|
|
19
|
+
};
|
|
20
|
+
enableOTLP?: boolean;
|
|
21
|
+
logLevel?: string;
|
|
22
|
+
addContextMetadata?: boolean;
|
|
23
|
+
otlpTracesEndpoints?: string[];
|
|
24
|
+
otlpLogsEndpoints?: string[];
|
|
25
|
+
adminPort?: number;
|
|
26
|
+
runAdminServer?: boolean;
|
|
27
|
+
applicationVersion?: string;
|
|
28
|
+
executorID?: string;
|
|
29
|
+
serializer?: SolidActionsSerializer;
|
|
30
|
+
enablePatching?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface SolidActionsRuntimeConfig {
|
|
33
|
+
admin_port: number;
|
|
34
|
+
runAdminServer: boolean;
|
|
35
|
+
start: string[];
|
|
36
|
+
setup: string[];
|
|
37
|
+
}
|
|
38
|
+
export interface TelemetryConfig {
|
|
39
|
+
logs?: LoggerConfig;
|
|
40
|
+
OTLPExporter?: OTLPExporterConfig;
|
|
41
|
+
}
|
|
42
|
+
export interface OTLPExporterConfig {
|
|
43
|
+
logsEndpoint?: string[];
|
|
44
|
+
tracesEndpoint?: string[];
|
|
45
|
+
}
|
|
46
|
+
export interface LoggerConfig {
|
|
47
|
+
logLevel?: string;
|
|
48
|
+
silent?: boolean;
|
|
49
|
+
addContextMetadata?: boolean;
|
|
50
|
+
forceConsole?: boolean;
|
|
51
|
+
}
|
|
52
|
+
export type SolidActionsConfigInternal = {
|
|
53
|
+
name?: string;
|
|
54
|
+
api: SolidActionsHttpConfig;
|
|
55
|
+
serializer: SolidActionsSerializer;
|
|
56
|
+
telemetry: TelemetryConfig;
|
|
57
|
+
http?: {
|
|
58
|
+
cors_middleware?: boolean;
|
|
59
|
+
credentials?: boolean;
|
|
60
|
+
allowed_origins?: string[];
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
export interface InternalWorkflowParams extends WorkflowParams {
|
|
64
|
+
readonly tempWfType?: string;
|
|
65
|
+
readonly tempWfName?: string;
|
|
66
|
+
readonly tempWfClass?: string;
|
|
67
|
+
readonly isRecoveryDispatch?: boolean;
|
|
68
|
+
readonly isQueueDispatch?: boolean;
|
|
69
|
+
}
|
|
70
|
+
export declare const OperationType: {
|
|
71
|
+
readonly HANDLER: "handler";
|
|
72
|
+
readonly WORKFLOW: "workflow";
|
|
73
|
+
readonly TRANSACTION: "transaction";
|
|
74
|
+
readonly STEP: "step";
|
|
75
|
+
};
|
|
76
|
+
export declare const TempWorkflowType: {
|
|
77
|
+
readonly step: "step";
|
|
78
|
+
readonly send: "send";
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* State item to be kept in the system database on behalf of clients
|
|
82
|
+
*/
|
|
83
|
+
export interface SolidActionsExternalState {
|
|
84
|
+
/** Name of event receiver service */
|
|
85
|
+
service: string;
|
|
86
|
+
/** Fully qualified function name for which state is kept */
|
|
87
|
+
workflowFnName: string;
|
|
88
|
+
/** subkey within the service+workflowFnName */
|
|
89
|
+
key: string;
|
|
90
|
+
/** Value kept for the service+workflowFnName+key combination */
|
|
91
|
+
value?: string;
|
|
92
|
+
/** Updated time (used to version the value) */
|
|
93
|
+
updateTime?: number;
|
|
94
|
+
/** Updated sequence number (used to version the value) */
|
|
95
|
+
updateSeq?: bigint;
|
|
96
|
+
}
|
|
97
|
+
export interface SolidActionsExecutorOptions {
|
|
98
|
+
systemDatabase?: SystemDatabase;
|
|
99
|
+
debugMode?: boolean;
|
|
100
|
+
}
|
|
101
|
+
export declare class SolidActionsExecutor {
|
|
102
|
+
#private;
|
|
103
|
+
readonly config: SolidActionsConfigInternal;
|
|
104
|
+
initialized: boolean;
|
|
105
|
+
readonly systemDatabase: SystemDatabase;
|
|
106
|
+
readonly telemetryCollector: TelemetryCollector;
|
|
107
|
+
static readonly defaultNotificationTimeoutSec = 60;
|
|
108
|
+
readonly logger: GlobalLogger;
|
|
109
|
+
readonly ctxLogger: SolidActionsContextualLogger;
|
|
110
|
+
readonly tracer: Tracer;
|
|
111
|
+
readonly serializer: SolidActionsSerializer;
|
|
112
|
+
readonly executorID: string;
|
|
113
|
+
static globalInstance: SolidActionsExecutor | undefined;
|
|
114
|
+
constructor(config: SolidActionsConfigInternal, { systemDatabase, debugMode }?: SolidActionsExecutorOptions);
|
|
115
|
+
get appName(): string | undefined;
|
|
116
|
+
init(): Promise<void>;
|
|
117
|
+
destroy(): Promise<void>;
|
|
118
|
+
static reviveResultOrError<R = unknown>(r: SystemDatabaseStoredResult, serializer: SolidActionsSerializer): R;
|
|
119
|
+
workflow<T extends unknown[], R>(wf: TypedAsyncFunction<T, R>, params: InternalWorkflowParams, ...args: T): Promise<WorkflowHandle<R>>;
|
|
120
|
+
internalWorkflow<T extends unknown[], R>(wf: TypedAsyncFunction<T, R>, params: InternalWorkflowParams, callerID?: string, callerFunctionID?: number, ...args: T): Promise<WorkflowHandle<R>>;
|
|
121
|
+
runStepTempWF<T extends unknown[], R>(stepFn: TypedAsyncFunction<T, R>, params: WorkflowParams, ...args: T): Promise<R>;
|
|
122
|
+
startStepTempWF<T extends unknown[], R>(stepFn: TypedAsyncFunction<T, R>, params: InternalWorkflowParams, callerWFID?: string, callerFunctionID?: number, ...args: T): Promise<WorkflowHandle<R>>;
|
|
123
|
+
/**
|
|
124
|
+
* Execute a step function.
|
|
125
|
+
* If it encounters any error, retry according to its configured retry policy until the maximum number of attempts is reached, then throw an SolidActionsError.
|
|
126
|
+
* The step may execute many times, but once it is complete, it will not re-execute.
|
|
127
|
+
*/
|
|
128
|
+
callStepFunction<T extends unknown[], R>(stepFn: TypedAsyncFunction<T, R>, stepFnName: string | undefined, stepConfig: StepConfig | undefined, clsInst: object | null, ...args: T): Promise<R>;
|
|
129
|
+
runSendTempWF<T>(destinationId: string, message: T, topic?: string, idempotencyKey?: string): Promise<void>;
|
|
130
|
+
/**
|
|
131
|
+
* Wait for a workflow to emit an event, then return its value.
|
|
132
|
+
*/
|
|
133
|
+
getEvent<T>(workflowUUID: string, key: string, timeoutSeconds?: number): Promise<T | null>;
|
|
134
|
+
/**
|
|
135
|
+
* Fork a workflow.
|
|
136
|
+
* The forked workflow will be assigned a new ID.
|
|
137
|
+
*/
|
|
138
|
+
forkWorkflow(workflowID: string, startStep: number, options?: {
|
|
139
|
+
newWorkflowID?: string;
|
|
140
|
+
applicationVersion?: string;
|
|
141
|
+
timeoutMS?: number;
|
|
142
|
+
}): Promise<string>;
|
|
143
|
+
/**
|
|
144
|
+
* Retrieve a handle for a workflow UUID.
|
|
145
|
+
*/
|
|
146
|
+
retrieveWorkflow<R>(workflowID: string): WorkflowHandle<R>;
|
|
147
|
+
runInternalStep<T>(callback: () => Promise<T>, functionName: string, workflowID: string, functionID: number, childWfId?: string): Promise<T>;
|
|
148
|
+
getWorkflowStatus(workflowID: string, callerID?: string, callerFN?: number): Promise<WorkflowStatus | null>;
|
|
149
|
+
listWorkflows(input: GetWorkflowsInput): Promise<WorkflowStatus[]>;
|
|
150
|
+
listWorkflowSteps(workflowID: string): Promise<StepInfo[] | undefined>;
|
|
151
|
+
/**
|
|
152
|
+
* A recovery process that by default runs during executor init time.
|
|
153
|
+
* It runs to completion all pending workflows that were executing when the previous executor failed.
|
|
154
|
+
*/
|
|
155
|
+
recoverPendingWorkflows(executorIDs?: string[]): Promise<WorkflowHandle<unknown>[]>;
|
|
156
|
+
initEventReceivers(): Promise<void>;
|
|
157
|
+
deactivateEventReceivers(): Promise<void>;
|
|
158
|
+
executeWorkflowId(workflowID: string, options?: {
|
|
159
|
+
startNewWorkflow?: boolean;
|
|
160
|
+
isRecoveryDispatch?: boolean;
|
|
161
|
+
isQueueDispatch?: boolean;
|
|
162
|
+
}): Promise<WorkflowHandle<unknown>>;
|
|
163
|
+
getEventDispatchState(svc: string, wfn: string, key: string): Promise<SolidActionsExternalState | undefined>;
|
|
164
|
+
upsertEventDispatchState(state: SolidActionsExternalState): Promise<SolidActionsExternalState>;
|
|
165
|
+
cancelWorkflow(workflowID: string): Promise<void>;
|
|
166
|
+
getWorkflowSteps(workflowID: string): Promise<step_info[]>;
|
|
167
|
+
resumeWorkflow(workflowID: string): Promise<void>;
|
|
168
|
+
/**
|
|
169
|
+
An application's version is computed from a hash of the source of its workflows.
|
|
170
|
+
This is guaranteed to be stable given identical source code because it uses an MD5 hash
|
|
171
|
+
and because it iterates through the workflows in sorted order.
|
|
172
|
+
This way, if the app's workflows are updated (which would break recovery), its version changes.
|
|
173
|
+
App version can be manually set through the SolidActions__APPVERSION environment variable.
|
|
174
|
+
*/
|
|
175
|
+
computeAppVersion(): string;
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=solidactions-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solidactions-executor.d.ts","sourceRoot":"","sources":["../../src/solidactions-executor.ts"],"names":[],"mappings":"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"}
|