@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.
Files changed (140) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +1121 -0
  3. package/bin/init.js +200 -0
  4. package/bin/wesdk.js +57 -0
  5. package/dist/package.json +3 -0
  6. package/dist/src/client/client.d.ts +24 -0
  7. package/dist/src/client/client.d.ts.map +1 -0
  8. package/dist/src/client/client.js +58 -0
  9. package/dist/src/client/client.js.map +1 -0
  10. package/dist/src/client/rest-client.d.ts +222 -0
  11. package/dist/src/client/rest-client.d.ts.map +1 -0
  12. package/dist/src/client/rest-client.js +242 -0
  13. package/dist/src/client/rest-client.js.map +1 -0
  14. package/dist/src/config/config.d.ts +60 -0
  15. package/dist/src/config/config.d.ts.map +1 -0
  16. package/dist/src/config/config.js +117 -0
  17. package/dist/src/config/config.js.map +1 -0
  18. package/dist/src/factories/event_source.d.ts +54 -0
  19. package/dist/src/factories/event_source.d.ts.map +1 -0
  20. package/dist/src/factories/event_source.js +170 -0
  21. package/dist/src/factories/event_source.js.map +1 -0
  22. package/dist/src/factories/transaction_handler.d.ts +27 -0
  23. package/dist/src/factories/transaction_handler.d.ts.map +1 -0
  24. package/dist/src/factories/transaction_handler.js +66 -0
  25. package/dist/src/factories/transaction_handler.js.map +1 -0
  26. package/dist/src/helpers/stage_director.d.ts +42 -0
  27. package/dist/src/helpers/stage_director.d.ts.map +1 -0
  28. package/dist/src/helpers/stage_director.js +304 -0
  29. package/dist/src/helpers/stage_director.js.map +1 -0
  30. package/dist/src/i18n/errors.d.ts +61 -0
  31. package/dist/src/i18n/errors.d.ts.map +1 -0
  32. package/dist/src/i18n/errors.js +90 -0
  33. package/dist/src/i18n/errors.js.map +1 -0
  34. package/dist/src/index.d.ts +20 -0
  35. package/dist/src/index.d.ts.map +1 -0
  36. package/dist/src/index.js +85 -0
  37. package/dist/src/index.js.map +1 -0
  38. package/dist/src/interfaces/handlers.d.ts +112 -0
  39. package/dist/src/interfaces/handlers.d.ts.map +1 -0
  40. package/dist/src/interfaces/handlers.js +18 -0
  41. package/dist/src/interfaces/handlers.js.map +1 -0
  42. package/dist/src/interfaces/messages.d.ts +6 -0
  43. package/dist/src/interfaces/messages.d.ts.map +1 -0
  44. package/dist/src/interfaces/messages.js +18 -0
  45. package/dist/src/interfaces/messages.js.map +1 -0
  46. package/dist/src/log/logger.d.ts +8 -0
  47. package/dist/src/log/logger.d.ts.map +1 -0
  48. package/dist/src/log/logger.js +39 -0
  49. package/dist/src/log/logger.js.map +1 -0
  50. package/dist/src/runtime/engine_client.d.ts +37 -0
  51. package/dist/src/runtime/engine_client.d.ts.map +1 -0
  52. package/dist/src/runtime/engine_client.js +99 -0
  53. package/dist/src/runtime/engine_client.js.map +1 -0
  54. package/dist/src/runtime/handler_runtime.d.ts +124 -0
  55. package/dist/src/runtime/handler_runtime.d.ts.map +1 -0
  56. package/dist/src/runtime/handler_runtime.js +623 -0
  57. package/dist/src/runtime/handler_runtime.js.map +1 -0
  58. package/dist/src/types/core.d.ts +258 -0
  59. package/dist/src/types/core.d.ts.map +1 -0
  60. package/dist/src/types/core.js +71 -0
  61. package/dist/src/types/core.js.map +1 -0
  62. package/dist/src/types/flows.d.ts +144 -0
  63. package/dist/src/types/flows.d.ts.map +1 -0
  64. package/dist/src/types/flows.js +30 -0
  65. package/dist/src/types/flows.js.map +1 -0
  66. package/dist/src/utils/errors.d.ts +2 -0
  67. package/dist/src/utils/errors.d.ts.map +1 -0
  68. package/dist/src/utils/errors.js +23 -0
  69. package/dist/src/utils/errors.js.map +1 -0
  70. package/dist/src/utils/patch.d.ts +9 -0
  71. package/dist/src/utils/patch.d.ts.map +1 -0
  72. package/dist/src/utils/patch.js +99 -0
  73. package/dist/src/utils/patch.js.map +1 -0
  74. package/dist-esm/src/client/client.js +54 -0
  75. package/dist-esm/src/client/client.js.map +1 -0
  76. package/dist-esm/src/client/rest-client.js +238 -0
  77. package/dist-esm/src/client/rest-client.js.map +1 -0
  78. package/dist-esm/src/config/config.js +113 -0
  79. package/dist-esm/src/config/config.js.map +1 -0
  80. package/dist-esm/src/factories/event_source.js +167 -0
  81. package/dist-esm/src/factories/event_source.js.map +1 -0
  82. package/dist-esm/src/factories/transaction_handler.js +63 -0
  83. package/dist-esm/src/factories/transaction_handler.js.map +1 -0
  84. package/dist-esm/src/helpers/stage_director.js +298 -0
  85. package/dist-esm/src/helpers/stage_director.js.map +1 -0
  86. package/dist-esm/src/i18n/errors.js +85 -0
  87. package/dist-esm/src/i18n/errors.js.map +1 -0
  88. package/dist-esm/src/index.js +51 -0
  89. package/dist-esm/src/index.js.map +1 -0
  90. package/dist-esm/src/interfaces/handlers.js +17 -0
  91. package/dist-esm/src/interfaces/handlers.js.map +1 -0
  92. package/dist-esm/src/interfaces/messages.js +17 -0
  93. package/dist-esm/src/interfaces/messages.js.map +1 -0
  94. package/dist-esm/src/log/logger.js +36 -0
  95. package/dist-esm/src/log/logger.js.map +1 -0
  96. package/dist-esm/src/runtime/engine_client.js +95 -0
  97. package/dist-esm/src/runtime/engine_client.js.map +1 -0
  98. package/dist-esm/src/runtime/handler_runtime.js +586 -0
  99. package/dist-esm/src/runtime/handler_runtime.js.map +1 -0
  100. package/dist-esm/src/types/core.js +68 -0
  101. package/dist-esm/src/types/core.js.map +1 -0
  102. package/dist-esm/src/types/flows.js +27 -0
  103. package/dist-esm/src/types/flows.js.map +1 -0
  104. package/dist-esm/src/utils/errors.js +19 -0
  105. package/dist-esm/src/utils/errors.js.map +1 -0
  106. package/dist-esm/src/utils/patch.js +56 -0
  107. package/dist-esm/src/utils/patch.js.map +1 -0
  108. package/package.json +79 -11
  109. package/template/.env.sample +14 -0
  110. package/template/.vscode/launch.json +23 -0
  111. package/template/README.md +37 -0
  112. package/template/package.json +36 -0
  113. package/template/src/connect.ts +58 -0
  114. package/template/src/provider.ts +24 -0
  115. package/template/src/samples/event-source/README.md +50 -0
  116. package/template/src/samples/event-source/echo-handler.ts +65 -0
  117. package/template/src/samples/event-source/event-processor.ts +46 -0
  118. package/template/src/samples/event-source/event-source.ts +70 -0
  119. package/template/src/samples/event-source/stream.ts +34 -0
  120. package/template/src/samples/hello/README.md +52 -0
  121. package/template/src/samples/hello/flow.ts +74 -0
  122. package/template/src/samples/hello/handlers.test.ts +147 -0
  123. package/template/src/samples/hello/handlers.ts +72 -0
  124. package/template/src/samples/hello/transaction.ts +24 -0
  125. package/template/src/samples/http-invoke/README.md +42 -0
  126. package/template/src/samples/http-invoke/flow.ts +63 -0
  127. package/template/src/samples/http-invoke/handlers.ts +66 -0
  128. package/template/src/samples/http-invoke/transaction.ts +22 -0
  129. package/template/src/samples/snap/README.md +98 -0
  130. package/template/src/samples/snap/event-source.ts +104 -0
  131. package/template/src/samples/snap/flow.ts +85 -0
  132. package/template/src/samples/snap/snap-handler.ts +84 -0
  133. package/template/src/samples/snap/stream.ts +26 -0
  134. package/template/src/samples/snap/transaction.ts +26 -0
  135. package/template/src/utils/post-stream.ts +67 -0
  136. package/template/src/utils/post-transaction.ts +64 -0
  137. package/template/src/utils/post-workflow.ts +63 -0
  138. package/template/tsconfig.json +24 -0
  139. package/template/vitest.config.ts +42 -0
  140. 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,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -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":"AA2BA,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAMtD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QACrC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE;YACf,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,aAAa,CAAC,EAAE;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,CAAC;QACF,UAAU,CAAC,EAAE;YACX,SAAS,CAAC,EAAE;gBACV,OAAO,CAAC,EAAE,MAAM,CAAC;aAClB,CAAC;YACF,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,cAAc,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,mBAAmB,CAAC,EAAE;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAyB;gBAE7B,MAAM,CAAC,EAAE,0BAA0B;IAoC/C;;OAEG;IACI,oBAAoB,IAAI,MAAM;IAIrC;;OAEG;IACI,mBAAmB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM;IAI5D;;OAEG;IACI,uBAAuB,IAAI,MAAM;IAIxC;;OAEG;IACI,sBAAsB,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM;IAIjE;;OAEG;IACI,kBAAkB,IAAI,MAAM;IAInC;;OAEG;IACI,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IAIxD;;OAEG;YACW,WAAW;IA8CzB;;;;;;OAMG;IACG,cAAc,CAClB,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,sBAAsB,CAAC;IAKlC;;;;;;OAMG;IACG,cAAc,CAClB,gBAAgB,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAShB;;;;;;OAMG;IACG,iBAAiB,CACrB,WAAW,EAAE,wBAAwB,EACrC,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,yBAAyB,CAAC;IAKrC;;;;;;OAMG;IACG,iBAAiB,CACrB,kBAAkB,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAShB;;;;;;OAMG;IACG,YAAY,CAChB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC;IAKhC;;;;;;;OAOG;IACG,YAAY,CAChB,cAAc,EAAE,MAAM,EACtB,KAAK,CAAC,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAQhB;;;;;;OAMG;IACG,WAAW,CACf,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC;IAMhC;;;;;;OAMG;IACG,UAAU,CACd,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC;CAKjC"}