@kaleido-io/workflow-engine-sdk 0.0.1 → 0.9.2
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 +201 -0
- package/README.md +1121 -0
- package/bin/init.js +200 -0
- package/bin/wesdk.js +57 -0
- package/dist/package.json +3 -0
- package/dist/src/client/client.d.ts +24 -0
- package/dist/src/client/client.d.ts.map +1 -0
- package/dist/src/client/client.js +58 -0
- package/dist/src/client/client.js.map +1 -0
- package/dist/src/client/rest-client.d.ts +222 -0
- package/dist/src/client/rest-client.d.ts.map +1 -0
- package/dist/src/client/rest-client.js +242 -0
- package/dist/src/client/rest-client.js.map +1 -0
- package/dist/src/config/config.d.ts +60 -0
- package/dist/src/config/config.d.ts.map +1 -0
- package/dist/src/config/config.js +117 -0
- package/dist/src/config/config.js.map +1 -0
- package/dist/src/factories/event_source.d.ts +54 -0
- package/dist/src/factories/event_source.d.ts.map +1 -0
- package/dist/src/factories/event_source.js +170 -0
- package/dist/src/factories/event_source.js.map +1 -0
- package/dist/src/factories/transaction_handler.d.ts +27 -0
- package/dist/src/factories/transaction_handler.d.ts.map +1 -0
- package/dist/src/factories/transaction_handler.js +66 -0
- package/dist/src/factories/transaction_handler.js.map +1 -0
- package/dist/src/helpers/stage_director.d.ts +42 -0
- package/dist/src/helpers/stage_director.d.ts.map +1 -0
- package/dist/src/helpers/stage_director.js +304 -0
- package/dist/src/helpers/stage_director.js.map +1 -0
- package/dist/src/i18n/errors.d.ts +61 -0
- package/dist/src/i18n/errors.d.ts.map +1 -0
- package/dist/src/i18n/errors.js +90 -0
- package/dist/src/i18n/errors.js.map +1 -0
- package/dist/src/index.d.ts +20 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +85 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/interfaces/handlers.d.ts +112 -0
- package/dist/src/interfaces/handlers.d.ts.map +1 -0
- package/dist/src/interfaces/handlers.js +18 -0
- package/dist/src/interfaces/handlers.js.map +1 -0
- package/dist/src/interfaces/messages.d.ts +6 -0
- package/dist/src/interfaces/messages.d.ts.map +1 -0
- package/dist/src/interfaces/messages.js +18 -0
- package/dist/src/interfaces/messages.js.map +1 -0
- package/dist/src/log/logger.d.ts +8 -0
- package/dist/src/log/logger.d.ts.map +1 -0
- package/dist/src/log/logger.js +39 -0
- package/dist/src/log/logger.js.map +1 -0
- package/dist/src/runtime/engine_client.d.ts +37 -0
- package/dist/src/runtime/engine_client.d.ts.map +1 -0
- package/dist/src/runtime/engine_client.js +99 -0
- package/dist/src/runtime/engine_client.js.map +1 -0
- package/dist/src/runtime/handler_runtime.d.ts +124 -0
- package/dist/src/runtime/handler_runtime.d.ts.map +1 -0
- package/dist/src/runtime/handler_runtime.js +623 -0
- package/dist/src/runtime/handler_runtime.js.map +1 -0
- package/dist/src/types/core.d.ts +258 -0
- package/dist/src/types/core.d.ts.map +1 -0
- package/dist/src/types/core.js +71 -0
- package/dist/src/types/core.js.map +1 -0
- package/dist/src/types/flows.d.ts +144 -0
- package/dist/src/types/flows.d.ts.map +1 -0
- package/dist/src/types/flows.js +30 -0
- package/dist/src/types/flows.js.map +1 -0
- package/dist/src/utils/errors.d.ts +2 -0
- package/dist/src/utils/errors.d.ts.map +1 -0
- package/dist/src/utils/errors.js +23 -0
- package/dist/src/utils/errors.js.map +1 -0
- package/dist/src/utils/patch.d.ts +9 -0
- package/dist/src/utils/patch.d.ts.map +1 -0
- package/dist/src/utils/patch.js +99 -0
- package/dist/src/utils/patch.js.map +1 -0
- package/dist-esm/src/client/client.js +54 -0
- package/dist-esm/src/client/client.js.map +1 -0
- package/dist-esm/src/client/rest-client.js +238 -0
- package/dist-esm/src/client/rest-client.js.map +1 -0
- package/dist-esm/src/config/config.js +113 -0
- package/dist-esm/src/config/config.js.map +1 -0
- package/dist-esm/src/factories/event_source.js +167 -0
- package/dist-esm/src/factories/event_source.js.map +1 -0
- package/dist-esm/src/factories/transaction_handler.js +63 -0
- package/dist-esm/src/factories/transaction_handler.js.map +1 -0
- package/dist-esm/src/helpers/stage_director.js +298 -0
- package/dist-esm/src/helpers/stage_director.js.map +1 -0
- package/dist-esm/src/i18n/errors.js +85 -0
- package/dist-esm/src/i18n/errors.js.map +1 -0
- package/dist-esm/src/index.js +51 -0
- package/dist-esm/src/index.js.map +1 -0
- package/dist-esm/src/interfaces/handlers.js +17 -0
- package/dist-esm/src/interfaces/handlers.js.map +1 -0
- package/dist-esm/src/interfaces/messages.js +17 -0
- package/dist-esm/src/interfaces/messages.js.map +1 -0
- package/dist-esm/src/log/logger.js +36 -0
- package/dist-esm/src/log/logger.js.map +1 -0
- package/dist-esm/src/runtime/engine_client.js +95 -0
- package/dist-esm/src/runtime/engine_client.js.map +1 -0
- package/dist-esm/src/runtime/handler_runtime.js +586 -0
- package/dist-esm/src/runtime/handler_runtime.js.map +1 -0
- package/dist-esm/src/types/core.js +68 -0
- package/dist-esm/src/types/core.js.map +1 -0
- package/dist-esm/src/types/flows.js +27 -0
- package/dist-esm/src/types/flows.js.map +1 -0
- package/dist-esm/src/utils/errors.js +19 -0
- package/dist-esm/src/utils/errors.js.map +1 -0
- package/dist-esm/src/utils/patch.js +56 -0
- package/dist-esm/src/utils/patch.js.map +1 -0
- package/package.json +79 -11
- package/template/.env.sample +14 -0
- package/template/.vscode/launch.json +23 -0
- package/template/README.md +37 -0
- package/template/package.json +36 -0
- package/template/src/connect.ts +58 -0
- package/template/src/provider.ts +24 -0
- package/template/src/samples/event-source/README.md +50 -0
- package/template/src/samples/event-source/echo-handler.ts +65 -0
- package/template/src/samples/event-source/event-processor.ts +46 -0
- package/template/src/samples/event-source/event-source.ts +70 -0
- package/template/src/samples/event-source/stream.ts +34 -0
- package/template/src/samples/hello/README.md +52 -0
- package/template/src/samples/hello/flow.ts +74 -0
- package/template/src/samples/hello/handlers.test.ts +147 -0
- package/template/src/samples/hello/handlers.ts +72 -0
- package/template/src/samples/hello/transaction.ts +24 -0
- package/template/src/samples/http-invoke/README.md +42 -0
- package/template/src/samples/http-invoke/flow.ts +63 -0
- package/template/src/samples/http-invoke/handlers.ts +66 -0
- package/template/src/samples/http-invoke/transaction.ts +22 -0
- package/template/src/samples/snap/README.md +98 -0
- package/template/src/samples/snap/event-source.ts +104 -0
- package/template/src/samples/snap/flow.ts +85 -0
- package/template/src/samples/snap/snap-handler.ts +84 -0
- package/template/src/samples/snap/stream.ts +26 -0
- package/template/src/samples/snap/transaction.ts +26 -0
- package/template/src/utils/post-stream.ts +67 -0
- package/template/src/utils/post-transaction.ts +64 -0
- package/template/src/utils/post-workflow.ts +63 -0
- package/template/tsconfig.json +24 -0
- package/template/vitest.config.ts +42 -0
- package/CODEOWNERS +0 -5
package/bin/init.js
ADDED
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Copyright © 2026 Kaleido, Inc.
|
|
3
|
+
//
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
//
|
|
6
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
// you may not use this file except in compliance with the License.
|
|
8
|
+
// You may obtain a copy of the License at
|
|
9
|
+
//
|
|
10
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
//
|
|
12
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
// See the License for the specific language governing permissions and
|
|
16
|
+
// limitations under the License.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
import { readFileSync, writeFileSync, mkdirSync, existsSync, readdirSync } from 'fs';
|
|
20
|
+
import { join, dirname, resolve } from 'path';
|
|
21
|
+
import { fileURLToPath } from 'url';
|
|
22
|
+
|
|
23
|
+
const projectNameRegex = /^(?:@[a-z0-9][a-z0-9-]*\/[a-z0-9][a-z0-9-]*|[a-z0-9][a-z0-9-]*)$/;
|
|
24
|
+
|
|
25
|
+
const templateConfig = {
|
|
26
|
+
"variables": {
|
|
27
|
+
"PROVIDER_NAME": {
|
|
28
|
+
"description": "The npm package name for the provider",
|
|
29
|
+
"default": "my-provider",
|
|
30
|
+
"required": true
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"files": {
|
|
34
|
+
"package.json": {
|
|
35
|
+
"replace": [
|
|
36
|
+
"PROVIDER_NAME"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"src/provider.ts": {
|
|
40
|
+
"replace": [
|
|
41
|
+
"PROVIDER_NAME",
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
48
|
+
const __dirname = dirname(__filename);
|
|
49
|
+
|
|
50
|
+
// Get the project root (parent of bin directory)
|
|
51
|
+
// When installed via npm, this will be in node_modules/@kaleido-io/workflow-engine-sdk
|
|
52
|
+
const PROJECT_ROOT = resolve(__dirname, '..');
|
|
53
|
+
const TEMPLATE_DIR = join(PROJECT_ROOT, 'template');
|
|
54
|
+
|
|
55
|
+
// Files and directories to exclude when copying template
|
|
56
|
+
const EXCLUDE_PATTERNS = [
|
|
57
|
+
'.git',
|
|
58
|
+
];
|
|
59
|
+
|
|
60
|
+
// Parse command line arguments
|
|
61
|
+
const args = process.argv.slice(2);
|
|
62
|
+
if (args.length === 0 || args[0] === '--help' || args[0] === '-h') {
|
|
63
|
+
console.log(`
|
|
64
|
+
Usage: npx @kaleido-io/workflow-engine-sdk init <project-name> [options]
|
|
65
|
+
|
|
66
|
+
Options:
|
|
67
|
+
--help, -h Show this help message
|
|
68
|
+
|
|
69
|
+
Examples:
|
|
70
|
+
npx @kaleido-io/workflow-engine-sdk init @my-scope/my-provider
|
|
71
|
+
npx @kaleido-io/workflow-engine-sdk init my-custom-provider
|
|
72
|
+
`);
|
|
73
|
+
process.exit(0);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const projectName = args[0];
|
|
77
|
+
|
|
78
|
+
// Validate project name (npm package name rules: unscoped or @scope/name)
|
|
79
|
+
if (!projectNameRegex.test(projectName)) {
|
|
80
|
+
console.error(`Error: Project name "${projectName}" is invalid.`);
|
|
81
|
+
console.error('Project names must contain only lowercase letters, numbers, and hyphens, and optionally a scope prefix.');
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Check if template directory exists
|
|
86
|
+
if (!existsSync(TEMPLATE_DIR)) {
|
|
87
|
+
console.error(`Error: Template directory not found at ${TEMPLATE_DIR}`);
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Get current working directory
|
|
92
|
+
const cwd = process.cwd();
|
|
93
|
+
const targetDir = join(cwd, projectName);
|
|
94
|
+
|
|
95
|
+
// Check if target directory already exists
|
|
96
|
+
if (existsSync(targetDir)) {
|
|
97
|
+
console.error(`Error: Directory "${projectName}" already exists.`);
|
|
98
|
+
console.error(`Please choose a different name or remove the existing directory.`);
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Collect variable values
|
|
103
|
+
const variables = {};
|
|
104
|
+
|
|
105
|
+
// Set default values from config
|
|
106
|
+
for (const [key, config] of Object.entries(templateConfig.variables || {})) {
|
|
107
|
+
if (config.default !== undefined) {
|
|
108
|
+
variables[key] = config.default;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Override with project name
|
|
113
|
+
variables.PROVIDER_NAME = projectName;
|
|
114
|
+
|
|
115
|
+
console.log(`\nCreating new provider project: ${projectName}`);
|
|
116
|
+
console.log(`Location: ${targetDir}\n`);
|
|
117
|
+
|
|
118
|
+
// Create target directory
|
|
119
|
+
mkdirSync(targetDir, { recursive: true });
|
|
120
|
+
|
|
121
|
+
// Copy template files (excluding certain patterns)
|
|
122
|
+
function shouldExclude(filePath, relativePath) {
|
|
123
|
+
for (const pattern of EXCLUDE_PATTERNS) {
|
|
124
|
+
if (pattern.startsWith('*.')) {
|
|
125
|
+
// File extension pattern (e.g., "*.tgz")
|
|
126
|
+
const ext = pattern.slice(1);
|
|
127
|
+
if (filePath.endsWith(ext)) {
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
} else if (relativePath.includes(pattern)) {
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
function copyTemplate(src, dest, basePath = '') {
|
|
138
|
+
const entries = readdirSync(src, { withFileTypes: true });
|
|
139
|
+
|
|
140
|
+
for (const entry of entries) {
|
|
141
|
+
const srcPath = join(src, entry.name);
|
|
142
|
+
const relativePath = join(basePath, entry.name);
|
|
143
|
+
|
|
144
|
+
if (shouldExclude(srcPath, relativePath)) {
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
const destPath = join(dest, entry.name);
|
|
149
|
+
|
|
150
|
+
if (entry.isDirectory()) {
|
|
151
|
+
mkdirSync(destPath, { recursive: true });
|
|
152
|
+
copyTemplate(srcPath, destPath, relativePath);
|
|
153
|
+
} else if (entry.isFile()) {
|
|
154
|
+
try {
|
|
155
|
+
// Read file content
|
|
156
|
+
let content = readFileSync(srcPath, 'utf-8');
|
|
157
|
+
|
|
158
|
+
// Check if this file needs variable replacement
|
|
159
|
+
const fileConfig = templateConfig.files?.[relativePath];
|
|
160
|
+
if (fileConfig && fileConfig.replace) {
|
|
161
|
+
// Replace all template variables
|
|
162
|
+
for (const varName of fileConfig.replace) {
|
|
163
|
+
const value = variables[varName];
|
|
164
|
+
if (value !== undefined) {
|
|
165
|
+
const regex = new RegExp(`\\{\\{${varName}\\}\\}`, 'g');
|
|
166
|
+
content = content.replace(regex, value);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
} else {
|
|
170
|
+
// Replace all known variables in any file (in case template.config.json is incomplete)
|
|
171
|
+
for (const [varName, value] of Object.entries(variables)) {
|
|
172
|
+
const regex = new RegExp(`\\{\\{${varName}\\}\\}`, 'g');
|
|
173
|
+
content = content.replace(regex, value);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
writeFileSync(destPath, content, 'utf-8');
|
|
178
|
+
} catch (error) {
|
|
179
|
+
// Skip files that can't be read (permissions, symlinks, etc.)
|
|
180
|
+
console.warn(`Warning: Skipping ${relativePath}: ${error.message}`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// Copy template to target directory
|
|
187
|
+
try {
|
|
188
|
+
copyTemplate(TEMPLATE_DIR, targetDir);
|
|
189
|
+
} catch (error) {
|
|
190
|
+
console.error(`Error copying template files: ${error.message}`);
|
|
191
|
+
process.exit(1);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
console.log(`Project ${projectName} initialized\n\n`);
|
|
195
|
+
console.log('Next steps:');
|
|
196
|
+
console.log(`\tcd ${projectName}`);
|
|
197
|
+
console.log('\tnpm install');
|
|
198
|
+
console.log('\tcp .env.sample .env');
|
|
199
|
+
console.log('\t# Edit .env with your configuration');
|
|
200
|
+
console.log('\tnpm run start:dev\n');
|
package/bin/wesdk.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Copyright © 2026 Kaleido, Inc.
|
|
3
|
+
//
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
//
|
|
6
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
// you may not use this file except in compliance with the License.
|
|
8
|
+
// You may obtain a copy of the License at
|
|
9
|
+
//
|
|
10
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
//
|
|
12
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
// See the License for the specific language governing permissions and
|
|
16
|
+
// limitations under the License.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
import { fileURLToPath } from 'url';
|
|
20
|
+
import { dirname, join } from 'path';
|
|
21
|
+
import { spawn } from 'child_process';
|
|
22
|
+
|
|
23
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
24
|
+
const __dirname = dirname(__filename);
|
|
25
|
+
|
|
26
|
+
const args = process.argv.slice(2);
|
|
27
|
+
const command = args[0];
|
|
28
|
+
|
|
29
|
+
if (command === 'init') {
|
|
30
|
+
// Route to init script
|
|
31
|
+
const initScript = join(__dirname, 'init.js');
|
|
32
|
+
const child = spawn('node', [initScript, ...args.slice(1)], {
|
|
33
|
+
stdio: 'inherit',
|
|
34
|
+
shell: false,
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
child.on('exit', (code) => {
|
|
38
|
+
process.exit(code || 0);
|
|
39
|
+
});
|
|
40
|
+
} else {
|
|
41
|
+
console.log(`
|
|
42
|
+
@kaleido-io/workflow-engine-sdk CLI
|
|
43
|
+
|
|
44
|
+
Usage:
|
|
45
|
+
npx @kaleido-io/workflow-engine-sdk <command> [options]
|
|
46
|
+
|
|
47
|
+
Commands:
|
|
48
|
+
init <project-name> Create a new provider project from template
|
|
49
|
+
|
|
50
|
+
Examples:
|
|
51
|
+
npx @kaleido-io/workflow-engine-sdk init my-provider
|
|
52
|
+
|
|
53
|
+
For more information, run:
|
|
54
|
+
npx @kaleido-io/workflow-engine-sdk init --help
|
|
55
|
+
`);
|
|
56
|
+
process.exit(command ? 1 : 0);
|
|
57
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { TransactionHandler, EventSource, EventProcessor } from '../interfaces/handlers';
|
|
2
|
+
export interface WorkflowEngineClientConfig {
|
|
3
|
+
url?: string;
|
|
4
|
+
providerName: string;
|
|
5
|
+
providerMetadata?: Record<string, string>;
|
|
6
|
+
authToken?: string;
|
|
7
|
+
authHeaderName?: string;
|
|
8
|
+
headers?: Record<string, string>;
|
|
9
|
+
options?: any;
|
|
10
|
+
reconnectDelay?: number;
|
|
11
|
+
maxAttempts?: number;
|
|
12
|
+
}
|
|
13
|
+
export declare class WorkflowEngineClient {
|
|
14
|
+
private runtime;
|
|
15
|
+
constructor(config: WorkflowEngineClientConfig);
|
|
16
|
+
registerTransactionHandler(name: string, handler: TransactionHandler): void;
|
|
17
|
+
registerEventSource(name: string, handler: EventSource): void;
|
|
18
|
+
registerEventProcessor(name: string, handler: EventProcessor): void;
|
|
19
|
+
connect(): Promise<void>;
|
|
20
|
+
disconnect(): void;
|
|
21
|
+
close(): void;
|
|
22
|
+
isConnected(): boolean;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/client/client.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEzF,MAAM,WAAW,0BAA0B;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAiB;gBAEpB,MAAM,EAAE,0BAA0B;IAgB9C,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAI3E,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;IAI7D,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAI7D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,UAAU,IAAI,IAAI;IAIlB,KAAK,IAAI,IAAI;IAIb,WAAW,IAAI,OAAO;CAGvB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright © 2026 Kaleido, Inc.
|
|
3
|
+
//
|
|
4
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
//
|
|
6
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
// you may not use this file except in compliance with the License.
|
|
8
|
+
// You may obtain a copy of the License at
|
|
9
|
+
//
|
|
10
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
//
|
|
12
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
// See the License for the specific language governing permissions and
|
|
16
|
+
// limitations under the License.
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.WorkflowEngineClient = void 0;
|
|
19
|
+
const handler_runtime_1 = require("../runtime/handler_runtime");
|
|
20
|
+
class WorkflowEngineClient {
|
|
21
|
+
constructor(config) {
|
|
22
|
+
const runtimeConfig = {
|
|
23
|
+
url: config.url,
|
|
24
|
+
providerName: config.providerName,
|
|
25
|
+
providerMetadata: config.providerMetadata,
|
|
26
|
+
authToken: config.authToken,
|
|
27
|
+
authHeaderName: config.authHeaderName,
|
|
28
|
+
headers: config.headers,
|
|
29
|
+
options: config.options,
|
|
30
|
+
reconnectDelay: config.reconnectDelay,
|
|
31
|
+
maxAttempts: config.maxAttempts,
|
|
32
|
+
};
|
|
33
|
+
this.runtime = new handler_runtime_1.HandlerRuntime(runtimeConfig);
|
|
34
|
+
}
|
|
35
|
+
registerTransactionHandler(name, handler) {
|
|
36
|
+
this.runtime.registerTransactionHandler(name, handler);
|
|
37
|
+
}
|
|
38
|
+
registerEventSource(name, handler) {
|
|
39
|
+
this.runtime.registerEventSource(name, handler);
|
|
40
|
+
}
|
|
41
|
+
registerEventProcessor(name, handler) {
|
|
42
|
+
this.runtime.registerEventProcessor(name, handler);
|
|
43
|
+
}
|
|
44
|
+
async connect() {
|
|
45
|
+
await this.runtime.start();
|
|
46
|
+
}
|
|
47
|
+
disconnect() {
|
|
48
|
+
this.runtime.stop();
|
|
49
|
+
}
|
|
50
|
+
close() {
|
|
51
|
+
this.disconnect();
|
|
52
|
+
}
|
|
53
|
+
isConnected() {
|
|
54
|
+
return this.runtime.isWebSocketConnected();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.WorkflowEngineClient = WorkflowEngineClient;
|
|
58
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/client/client.ts"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,EAAE;AACF,sCAAsC;AACtC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;AAGjC,gEAAkF;AAelF,MAAa,oBAAoB;IAG/B,YAAY,MAAkC;QAC5C,MAAM,aAAa,GAAyB;YAC1C,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG,IAAI,gCAAc,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;IAED,0BAA0B,CAAC,IAAY,EAAE,OAA2B;QAClE,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,mBAAmB,CAAC,IAAY,EAAE,OAAoB;QACpD,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,sBAAsB,CAAC,IAAY,EAAE,OAAuB;QAC1D,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,UAAU;QACR,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAC7C,CAAC;CACF;AA9CD,oDA8CC"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { WorkflowEngineClientConfig } from './client';
|
|
2
|
+
/**
|
|
3
|
+
* Transaction input payload
|
|
4
|
+
*/
|
|
5
|
+
export interface TransactionInput {
|
|
6
|
+
[key: string]: unknown;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Request to create a transaction
|
|
10
|
+
*/
|
|
11
|
+
export interface CreateTransactionRequest {
|
|
12
|
+
workflow: string;
|
|
13
|
+
operation: string;
|
|
14
|
+
input?: TransactionInput;
|
|
15
|
+
idempotencyKey?: string;
|
|
16
|
+
labels?: Record<string, string>;
|
|
17
|
+
workflowId?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Response from creating a transaction
|
|
21
|
+
*/
|
|
22
|
+
export interface CreateTransactionResponse {
|
|
23
|
+
id?: string;
|
|
24
|
+
idempotencyKey: string;
|
|
25
|
+
position?: number;
|
|
26
|
+
preexisting?: boolean;
|
|
27
|
+
rejectedError?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Request to create a workflow
|
|
31
|
+
*/
|
|
32
|
+
export interface CreateWorkflowRequest {
|
|
33
|
+
name?: string;
|
|
34
|
+
description?: string;
|
|
35
|
+
currentVersion?: string;
|
|
36
|
+
constants?: Record<string, Record<string, unknown>>;
|
|
37
|
+
configProfileBindings?: Record<string, {
|
|
38
|
+
configProfile?: string;
|
|
39
|
+
configProfileId?: string;
|
|
40
|
+
dynamicMapping?: {
|
|
41
|
+
namePrefix?: string;
|
|
42
|
+
};
|
|
43
|
+
}>;
|
|
44
|
+
events?: Array<{
|
|
45
|
+
configProfile?: {
|
|
46
|
+
name?: string;
|
|
47
|
+
type?: string;
|
|
48
|
+
};
|
|
49
|
+
errorRetry?: {
|
|
50
|
+
condition?: {
|
|
51
|
+
jsonata?: string;
|
|
52
|
+
};
|
|
53
|
+
maxAttempts?: number;
|
|
54
|
+
retryDelay?: string;
|
|
55
|
+
};
|
|
56
|
+
[key: string]: unknown;
|
|
57
|
+
}>;
|
|
58
|
+
stages?: Array<{
|
|
59
|
+
[key: string]: unknown;
|
|
60
|
+
}>;
|
|
61
|
+
[key: string]: unknown;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Response from creating a workflow
|
|
65
|
+
*/
|
|
66
|
+
export interface CreateWorkflowResponse {
|
|
67
|
+
id?: string;
|
|
68
|
+
name?: string;
|
|
69
|
+
description?: string;
|
|
70
|
+
created?: string;
|
|
71
|
+
updated?: string;
|
|
72
|
+
[key: string]: unknown;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Request to create a stream
|
|
76
|
+
*/
|
|
77
|
+
export interface CreateStreamRequest {
|
|
78
|
+
name?: string;
|
|
79
|
+
description?: string;
|
|
80
|
+
type?: 'event_stream' | 'correlation_stream' | 'transaction_dispatch';
|
|
81
|
+
started?: boolean;
|
|
82
|
+
config?: Record<string, unknown>;
|
|
83
|
+
eventHandler?: string;
|
|
84
|
+
eventHandlerProvider?: string;
|
|
85
|
+
listenerHandler?: string;
|
|
86
|
+
listenerHandlerProvider?: string;
|
|
87
|
+
postFilter?: {
|
|
88
|
+
jsonata?: string;
|
|
89
|
+
};
|
|
90
|
+
transactionTemplate?: {
|
|
91
|
+
jsonata?: string;
|
|
92
|
+
operation?: string;
|
|
93
|
+
workflow?: string;
|
|
94
|
+
};
|
|
95
|
+
uniquenessPrefix?: string;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Response from creating a stream
|
|
99
|
+
*/
|
|
100
|
+
export interface CreateStreamResponse {
|
|
101
|
+
id?: string;
|
|
102
|
+
name?: string;
|
|
103
|
+
description?: string;
|
|
104
|
+
type?: string;
|
|
105
|
+
started?: boolean;
|
|
106
|
+
created?: string;
|
|
107
|
+
updated?: string;
|
|
108
|
+
[key: string]: unknown;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Request to update a stream (for start/stop)
|
|
112
|
+
*/
|
|
113
|
+
export interface UpdateStreamRequest {
|
|
114
|
+
started?: boolean;
|
|
115
|
+
description?: string;
|
|
116
|
+
name?: string;
|
|
117
|
+
uniquenessPrefix?: string;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* REST Client for Workflow Engine API
|
|
121
|
+
*/
|
|
122
|
+
export declare class WorkflowEngineRestClient {
|
|
123
|
+
private baseUrl;
|
|
124
|
+
private authToken?;
|
|
125
|
+
private authHeaderName;
|
|
126
|
+
private headers?;
|
|
127
|
+
constructor(config?: WorkflowEngineClientConfig);
|
|
128
|
+
/**
|
|
129
|
+
* Gets the full REST API endpoint URL for workflows
|
|
130
|
+
*/
|
|
131
|
+
getWorkflowsEndpoint(): string;
|
|
132
|
+
/**
|
|
133
|
+
* Gets the full REST API endpoint URL for a specific workflow
|
|
134
|
+
*/
|
|
135
|
+
getWorkflowEndpoint(workflowNameOrId: string): string;
|
|
136
|
+
/**
|
|
137
|
+
* Gets the full REST API endpoint URL for transactions
|
|
138
|
+
*/
|
|
139
|
+
getTransactionsEndpoint(): string;
|
|
140
|
+
/**
|
|
141
|
+
* Gets the full REST API endpoint URL for a specific transaction
|
|
142
|
+
*/
|
|
143
|
+
getTransactionEndpoint(idempotencyKeyOrId: string): string;
|
|
144
|
+
/**
|
|
145
|
+
* Gets the full REST API endpoint URL for streams
|
|
146
|
+
*/
|
|
147
|
+
getStreamsEndpoint(): string;
|
|
148
|
+
/**
|
|
149
|
+
* Gets the full REST API endpoint URL for a specific stream
|
|
150
|
+
*/
|
|
151
|
+
getStreamEndpoint(streamNameOrId: string): string;
|
|
152
|
+
/**
|
|
153
|
+
* Makes an HTTP request with proper error handling
|
|
154
|
+
*/
|
|
155
|
+
private makeRequest;
|
|
156
|
+
/**
|
|
157
|
+
* Creates a new workflow
|
|
158
|
+
*
|
|
159
|
+
* @param workflow - The workflow definition
|
|
160
|
+
* @param timeout - Optional timeout in seconds (default: 120)
|
|
161
|
+
* @returns Promise resolving to the created workflow
|
|
162
|
+
*/
|
|
163
|
+
createWorkflow(workflow: CreateWorkflowRequest, timeout?: number): Promise<CreateWorkflowResponse>;
|
|
164
|
+
/**
|
|
165
|
+
* Deletes a workflow by name or ID
|
|
166
|
+
*
|
|
167
|
+
* @param workflowNameOrId - The name or ID of the workflow to delete
|
|
168
|
+
* @param timeout - Optional timeout in seconds (default: 120)
|
|
169
|
+
* @returns Promise that resolves when the workflow is deleted
|
|
170
|
+
*/
|
|
171
|
+
deleteWorkflow(workflowNameOrId: string, timeout?: number): Promise<void>;
|
|
172
|
+
/**
|
|
173
|
+
* Creates a new transaction
|
|
174
|
+
*
|
|
175
|
+
* @param transaction - The transaction request
|
|
176
|
+
* @param timeout - Optional timeout in seconds (default: 120)
|
|
177
|
+
* @returns Promise resolving to the transaction response
|
|
178
|
+
*/
|
|
179
|
+
createTransaction(transaction: CreateTransactionRequest, timeout?: number): Promise<CreateTransactionResponse>;
|
|
180
|
+
/**
|
|
181
|
+
* Deletes a transaction by idempotency key or ID
|
|
182
|
+
*
|
|
183
|
+
* @param idempotencyKeyOrId - The idempotency key or ID of the transaction to delete
|
|
184
|
+
* @param timeout - Optional timeout in seconds (default: 120)
|
|
185
|
+
* @returns Promise that resolves when the transaction is deleted
|
|
186
|
+
*/
|
|
187
|
+
deleteTransaction(idempotencyKeyOrId: string, timeout?: number): Promise<void>;
|
|
188
|
+
/**
|
|
189
|
+
* Creates a new stream
|
|
190
|
+
*
|
|
191
|
+
* @param stream - The stream definition
|
|
192
|
+
* @param timeout - Optional timeout in seconds (default: 120)
|
|
193
|
+
* @returns Promise resolving to the created stream
|
|
194
|
+
*/
|
|
195
|
+
createStream(stream: CreateStreamRequest, timeout?: number): Promise<CreateStreamResponse>;
|
|
196
|
+
/**
|
|
197
|
+
* Deletes a stream by name or ID
|
|
198
|
+
*
|
|
199
|
+
* @param streamNameOrId - The name or ID of the stream to delete
|
|
200
|
+
* @param force - Optional flag to force delete without waiting for handler cleanup
|
|
201
|
+
* @param timeout - Optional timeout in seconds (default: 120)
|
|
202
|
+
* @returns Promise that resolves when the stream is deleted
|
|
203
|
+
*/
|
|
204
|
+
deleteStream(streamNameOrId: string, force?: boolean, timeout?: number): Promise<void>;
|
|
205
|
+
/**
|
|
206
|
+
* Starts a stream by updating its started status to true
|
|
207
|
+
*
|
|
208
|
+
* @param streamNameOrId - The name or ID of the stream to start
|
|
209
|
+
* @param timeout - Optional timeout in seconds (default: 120)
|
|
210
|
+
* @returns Promise resolving to the updated stream
|
|
211
|
+
*/
|
|
212
|
+
startStream(streamNameOrId: string, timeout?: number): Promise<CreateStreamResponse>;
|
|
213
|
+
/**
|
|
214
|
+
* Stops a stream by updating its started status to false
|
|
215
|
+
*
|
|
216
|
+
* @param streamNameOrId - The name or ID of the stream to stop
|
|
217
|
+
* @param timeout - Optional timeout in seconds (default: 120)
|
|
218
|
+
* @returns Promise resolving to the updated stream
|
|
219
|
+
*/
|
|
220
|
+
stopStream(streamNameOrId: string, timeout?: number): Promise<CreateStreamResponse>;
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=rest-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rest-client.d.ts","sourceRoot":"","sources":["../../../src/client/rest-client.ts"],"names":[],"mappings":"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"}
|