@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
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Kaleido Workflow Engine SDK - TypeScript
3
+ */
4
+ export { WorkflowEngineClient, WorkflowEngineClientConfig, } from './client/client';
5
+ export { WorkflowEngineRestClient, CreateWorkflowRequest, CreateWorkflowResponse, CreateTransactionRequest, CreateTransactionResponse, CreateStreamRequest, CreateStreamResponse, UpdateStreamRequest, TransactionInput, } from './client/rest-client';
6
+ export { WorkflowEngineConfig, ConfigLoader, } from './config/config';
7
+ export { newLogger } from './log/logger';
8
+ export * from './types/core';
9
+ export * from './interfaces/handlers';
10
+ export * from './interfaces/messages';
11
+ export { newDirectedTransactionHandler, TransactionHandlerFactory, } from './factories/transaction_handler';
12
+ export { newEventSource, EventSourceFactory, EventSourceConf, EventSourceEvent, EventSourcePollFn, EventSourceBuildInitialCheckpointFn, EventSourceDeleteFn, EventSourceConfigParserFn, } from './factories/event_source';
13
+ export { BasicStageDirector, StageDirectorHelper, evalDirected, } from './helpers/stage_director';
14
+ export * from './config/config';
15
+ export { apply, addOp, removeOp, replaceOp, moveOp, copyOp, testOp, } from './utils/patch';
16
+ export * from './log/logger';
17
+ export * from './i18n/errors';
18
+ export type { HandlerBindingTarget } from './types/flows';
19
+ export { HandlerRuntimeMode } from './runtime/handler_runtime';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAiBA;;GAEG;AAMH,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,oBAAoB,EACpB,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAMzC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AAOtC,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,mCAAmC,EACnC,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACb,MAAM,0BAA0B,CAAC;AAGlC,cAAc,iBAAiB,CAAC;AAMhC,OAAO,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,SAAS,EACT,MAAM,EACN,MAAM,EACN,MAAM,GACP,MAAM,eAAe,CAAC;AAGvB,cAAc,cAAc,CAAC;AAE7B,cAAc,eAAe,CAAC;AAE9B,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,85 @@
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
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
29
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.HandlerRuntimeMode = exports.testOp = exports.copyOp = exports.moveOp = exports.replaceOp = exports.removeOp = exports.addOp = exports.apply = exports.evalDirected = exports.StageDirectorHelper = exports.BasicStageDirector = exports.newEventSource = exports.newDirectedTransactionHandler = exports.newLogger = exports.ConfigLoader = exports.WorkflowEngineRestClient = exports.WorkflowEngineClient = void 0;
33
+ /**
34
+ * Kaleido Workflow Engine SDK - TypeScript
35
+ */
36
+ // ============================================================================
37
+ // Client Entry Point
38
+ // ============================================================================
39
+ var client_1 = require("./client/client");
40
+ Object.defineProperty(exports, "WorkflowEngineClient", { enumerable: true, get: function () { return client_1.WorkflowEngineClient; } });
41
+ var rest_client_1 = require("./client/rest-client");
42
+ Object.defineProperty(exports, "WorkflowEngineRestClient", { enumerable: true, get: function () { return rest_client_1.WorkflowEngineRestClient; } });
43
+ var config_1 = require("./config/config");
44
+ Object.defineProperty(exports, "ConfigLoader", { enumerable: true, get: function () { return config_1.ConfigLoader; } });
45
+ var logger_1 = require("./log/logger");
46
+ Object.defineProperty(exports, "newLogger", { enumerable: true, get: function () { return logger_1.newLogger; } });
47
+ // ============================================================================
48
+ // Core Types & Interfaces
49
+ // ============================================================================
50
+ __exportStar(require("./types/core"), exports);
51
+ __exportStar(require("./interfaces/handlers"), exports);
52
+ __exportStar(require("./interfaces/messages"), exports);
53
+ // ============================================================================
54
+ // Factories & Helpers
55
+ // ============================================================================
56
+ // Transaction handler factory
57
+ var transaction_handler_1 = require("./factories/transaction_handler");
58
+ Object.defineProperty(exports, "newDirectedTransactionHandler", { enumerable: true, get: function () { return transaction_handler_1.newDirectedTransactionHandler; } });
59
+ // Event source factory
60
+ var event_source_1 = require("./factories/event_source");
61
+ Object.defineProperty(exports, "newEventSource", { enumerable: true, get: function () { return event_source_1.newEventSource; } });
62
+ // Stage director helpers
63
+ var stage_director_1 = require("./helpers/stage_director");
64
+ Object.defineProperty(exports, "BasicStageDirector", { enumerable: true, get: function () { return stage_director_1.BasicStageDirector; } });
65
+ Object.defineProperty(exports, "StageDirectorHelper", { enumerable: true, get: function () { return stage_director_1.StageDirectorHelper; } });
66
+ Object.defineProperty(exports, "evalDirected", { enumerable: true, get: function () { return stage_director_1.evalDirected; } });
67
+ // Configuration
68
+ __exportStar(require("./config/config"), exports);
69
+ // Utilities
70
+ // ============================================================================
71
+ // JSON Patch utilities
72
+ var patch_1 = require("./utils/patch");
73
+ Object.defineProperty(exports, "apply", { enumerable: true, get: function () { return patch_1.apply; } });
74
+ Object.defineProperty(exports, "addOp", { enumerable: true, get: function () { return patch_1.addOp; } });
75
+ Object.defineProperty(exports, "removeOp", { enumerable: true, get: function () { return patch_1.removeOp; } });
76
+ Object.defineProperty(exports, "replaceOp", { enumerable: true, get: function () { return patch_1.replaceOp; } });
77
+ Object.defineProperty(exports, "moveOp", { enumerable: true, get: function () { return patch_1.moveOp; } });
78
+ Object.defineProperty(exports, "copyOp", { enumerable: true, get: function () { return patch_1.copyOp; } });
79
+ Object.defineProperty(exports, "testOp", { enumerable: true, get: function () { return patch_1.testOp; } });
80
+ // Logger
81
+ __exportStar(require("./log/logger"), exports);
82
+ __exportStar(require("./i18n/errors"), exports);
83
+ var handler_runtime_1 = require("./runtime/handler_runtime");
84
+ Object.defineProperty(exports, "HandlerRuntimeMode", { enumerable: true, get: function () { return handler_runtime_1.HandlerRuntimeMode; } });
85
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.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;;GAEG;AAEH,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,0CAGyB;AAFvB,8GAAA,oBAAoB,OAAA;AAItB,oDAU8B;AAT5B,uHAAA,wBAAwB,OAAA;AAW1B,0CAGyB;AADvB,sGAAA,YAAY,OAAA;AAGd,uCAAyC;AAAhC,mGAAA,SAAS,OAAA;AAElB,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E,+CAA6B;AAC7B,wDAAsC;AACtC,wDAAsC;AAEtC,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,8BAA8B;AAC9B,uEAGyC;AAFvC,oIAAA,6BAA6B,OAAA;AAI/B,uBAAuB;AACvB,yDASkC;AARhC,8GAAA,cAAc,OAAA;AAUhB,yBAAyB;AACzB,2DAIkC;AAHhC,oHAAA,kBAAkB,OAAA;AAClB,qHAAA,mBAAmB,OAAA;AACnB,8GAAA,YAAY,OAAA;AAGd,gBAAgB;AAChB,kDAAgC;AAEhC,YAAY;AACZ,+EAA+E;AAE/E,uBAAuB;AACvB,uCAQuB;AAPrB,8FAAA,KAAK,OAAA;AACL,8FAAA,KAAK,OAAA;AACL,iGAAA,QAAQ,OAAA;AACR,kGAAA,SAAS,OAAA;AACT,+FAAA,MAAM,OAAA;AACN,+FAAA,MAAM,OAAA;AACN,+FAAA,MAAM,OAAA;AAGR,SAAS;AACT,+CAA6B;AAE7B,gDAA8B;AAI9B,6DAA+D;AAAtD,qHAAA,kBAAkB,OAAA"}
@@ -0,0 +1,112 @@
1
+ import { EvalResult, InvocationMode, WSEvaluateTransaction, WSHandleTransactionsResult, WSHandleTransactions, WSEvaluateReplyResult, WSEventSourceConfig, WSListenerPollRequest, WSListenerPollResult, WithStageDirector, Trigger, Patch, AsyncTransactionInput, IdempotentSubmitResult, HandlerEvent, WSEventProcessorBatchRequest, WSEventProcessorBatchResult } from '../types/core';
2
+ /**
3
+ * EngineAPI interface
4
+ */
5
+ export interface EngineAPI {
6
+ submitAsyncTransactions(authRef: string, transactions: AsyncTransactionInput[]): Promise<IdempotentSubmitResult[]>;
7
+ }
8
+ export interface Handler {
9
+ name(): string;
10
+ init(engAPI: EngineAPI): Promise<void>;
11
+ close(): void;
12
+ }
13
+ /**
14
+ * Event source handler interface
15
+ */
16
+ export interface EventSource extends Handler {
17
+ /**
18
+ * Poll for events and update the result object
19
+ */
20
+ eventSourcePoll(config: WSEventSourceConfig, result: WSListenerPollResult, request: WSListenerPollRequest): Promise<void>;
21
+ /**
22
+ * Validate the event source config
23
+ */
24
+ eventSourceValidateConfig(result: any, request: any): Promise<void>;
25
+ /**
26
+ * Delete the event source
27
+ */
28
+ eventSourceDelete(result: any, request: any): Promise<void>;
29
+ }
30
+ /**
31
+ * Transaction handler interface
32
+ */
33
+ export interface TransactionHandler extends Handler {
34
+ transactionHandlerBatch(result: WSHandleTransactionsResult, batch: WSHandleTransactions): Promise<void>;
35
+ }
36
+ /**
37
+ * Event processor handler interface
38
+ */
39
+ export interface EventProcessor extends Handler {
40
+ eventProcessorBatch(result: WSEventProcessorBatchResult, batch: WSEventProcessorBatchRequest): Promise<void>;
41
+ }
42
+ /**
43
+ * Function type for handling individual directed requests
44
+ */
45
+ export type DirectedTransactionHandler<T extends WithStageDirector> = (transaction: WSEvaluateTransaction, input: T) => Promise<{
46
+ result: EvalResult;
47
+ output?: any;
48
+ error?: Error;
49
+ triggers?: Trigger[];
50
+ events?: HandlerEvent[];
51
+ extraUpdates?: Patch;
52
+ customStage?: string;
53
+ }>;
54
+ /**
55
+ * Input for batch directed transaction handling
56
+ */
57
+ export interface DirectedTransactionBatchIn<T extends WithStageDirector> {
58
+ transaction: WSEvaluateTransaction;
59
+ value: T;
60
+ }
61
+ /**
62
+ * Output for batch directed transaction handling
63
+ */
64
+ export interface DirectedTransactionBatchOut<_T extends WithStageDirector> {
65
+ result: EvalResult;
66
+ output?: any;
67
+ error?: Error;
68
+ triggers?: Trigger[];
69
+ extraUpdates?: Patch;
70
+ customStage?: string;
71
+ events?: HandlerEvent[];
72
+ }
73
+ /**
74
+ * Function type for handling batch directed transactions.
75
+ */
76
+ export type DirectedTransactionBatchHandler<T extends WithStageDirector> = (transactions: DirectedTransactionBatchIn<T>[]) => Promise<DirectedTransactionBatchOut<T>[]>;
77
+ /**
78
+ * Configuration for a directed action
79
+ */
80
+ export interface DirectedActionConfig<T extends WithStageDirector> {
81
+ invocationMode: InvocationMode;
82
+ handler?: DirectedTransactionHandler<T>;
83
+ batchHandler?: DirectedTransactionBatchHandler<T>;
84
+ }
85
+ /**
86
+ * Simple handler interface compatible with existing code
87
+ */
88
+ export interface IHandler {
89
+ init(): Promise<void>;
90
+ handle(transactions: WSEvaluateTransaction[]): Promise<WSEvaluateReplyResult[]>;
91
+ close?(): void;
92
+ }
93
+ /**
94
+ * Transaction handler for batch evaluation with services support
95
+ */
96
+ export interface TransactionHandler<SVCS = any> extends Handler {
97
+ transactionHandlerBatch(reply: WSHandleTransactionsResult, batch: WSHandleTransactions, svcs?: SVCS): Promise<void>;
98
+ }
99
+ /**
100
+ * Listener handler for event streams with services support
101
+ */
102
+ export interface ListenerHandler<SVCS = any> extends Handler {
103
+ /**
104
+ * Configure the listener when it's first set up
105
+ */
106
+ configure?(config: WSEventSourceConfig, svcs?: SVCS): Promise<void>;
107
+ /**
108
+ * Poll for events and update the result object
109
+ */
110
+ poll(request: WSListenerPollRequest, svcs?: SVCS): Promise<WSListenerPollResult>;
111
+ }
112
+ //# sourceMappingURL=handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/interfaces/handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
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
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/interfaces/handlers.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"}
@@ -0,0 +1,6 @@
1
+ import { WSHandleTransactions, WSHandleTransactionsResult, WSRegisterHandler, WSEventSourceConfig, WSListenerPollRequest, WSListenerPollResult } from '../types/core';
2
+ /**
3
+ * All possible WebSocket message types
4
+ */
5
+ export type WSMessage = WSHandleTransactions | WSHandleTransactionsResult | WSRegisterHandler | WSEventSourceConfig | WSListenerPollRequest | WSListenerPollResult;
6
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/interfaces/messages.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AAEvB;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,oBAAoB,GACpB,0BAA0B,GAC1B,iBAAiB,GACjB,mBAAmB,GACnB,qBAAqB,GACrB,oBAAoB,CAAC"}
@@ -0,0 +1,18 @@
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
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/interfaces/messages.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"}
@@ -0,0 +1,8 @@
1
+ export interface Logger {
2
+ debug(message: string, ...args: any[]): void;
3
+ info(message: string, ...args: any[]): void;
4
+ warn(message: string, ...args: any[]): void;
5
+ error(message: string, ...args: any[]): void;
6
+ }
7
+ export declare function newLogger(context: string): Logger;
8
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/log/logger.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC9C;AAsBD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD"}
@@ -0,0 +1,39 @@
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.newLogger = newLogger;
19
+ class ConsoleLogger {
20
+ constructor(context) {
21
+ this.context = context;
22
+ }
23
+ debug(message, ...args) {
24
+ console.debug(`[${this.context}] ${message}`, ...args);
25
+ }
26
+ info(message, ...args) {
27
+ console.info(`[${this.context}] ${message}`, ...args);
28
+ }
29
+ warn(message, ...args) {
30
+ console.warn(`[${this.context}] ${message}`, ...args);
31
+ }
32
+ error(message, ...args) {
33
+ console.error(`[${this.context}] ${message}`, ...args);
34
+ }
35
+ }
36
+ function newLogger(context) {
37
+ return new ConsoleLogger(context);
38
+ }
39
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/log/logger.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;;AA8BjC,8BAEC;AAtBD,MAAM,aAAa;IACjB,YAAoB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAEvC,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW;QACnC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QAClC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QAClC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW;QACnC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;CACF;AAED,SAAgB,SAAS,CAAC,OAAe;IACvC,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { AsyncTransactionInput, IdempotentSubmitResult, WSEngineAPISubmitTransactionsResult } from '../types/core';
2
+ import { EngineAPI } from '../interfaces/handlers';
3
+ /**
4
+ * Interface for the runtime that EngineClient depends on
5
+ */
6
+ export interface EngineClientRuntime {
7
+ sendMessage(message: any): void;
8
+ getActiveHandlerContext(): {
9
+ requestId: string;
10
+ authTokens: Record<string, string>;
11
+ } | undefined;
12
+ isWebSocketConnected(): boolean;
13
+ }
14
+ /**
15
+ * Client for handlers to call back to the workflow engine.
16
+ * Implements the EngineAPI interface and handles the round-trip
17
+ * communication pattern for async operations like submitting transactions.
18
+ */
19
+ export declare class EngineClient implements EngineAPI {
20
+ private runtime;
21
+ private inflightRequests;
22
+ constructor(runtime: EngineClientRuntime);
23
+ /**
24
+ * Submit async transactions to the workflow engine
25
+ */
26
+ submitAsyncTransactions(authRef: string, transactions: AsyncTransactionInput[]): Promise<IdempotentSubmitResult[]>;
27
+ /**
28
+ * Handle response for inflight request
29
+ */
30
+ handleResponse(message: WSEngineAPISubmitTransactionsResult): void;
31
+ /**
32
+ * Round-trip request/response pattern
33
+ */
34
+ private roundTrip;
35
+ private generateId;
36
+ }
37
+ //# sourceMappingURL=engine_client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine_client.d.ts","sourceRoot":"","sources":["../../../src/runtime/engine_client.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EAGtB,mCAAmC,EACpC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAMnD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IAChC,uBAAuB,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,SAAS,CAAC;IACjG,oBAAoB,IAAI,OAAO,CAAC;CACjC;AAED;;;;GAIG;AACH,qBAAa,YAAa,YAAW,SAAS;IAC5C,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,gBAAgB,CAGT;gBAEH,OAAO,EAAE,mBAAmB;IAIxC;;OAEG;IACG,uBAAuB,CAC3B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,qBAAqB,EAAE,GACpC,OAAO,CAAC,sBAAsB,EAAE,CAAC;IA+BpC;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,mCAAmC,GAAG,IAAI;IAsBlE;;OAEG;IACH,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,UAAU;CAGnB"}
@@ -0,0 +1,99 @@
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.EngineClient = void 0;
19
+ const core_1 = require("../types/core");
20
+ const logger_1 = require("../log/logger");
21
+ const errors_1 = require("../i18n/errors");
22
+ const log = (0, logger_1.newLogger)('engine_client');
23
+ /**
24
+ * Client for handlers to call back to the workflow engine.
25
+ * Implements the EngineAPI interface and handles the round-trip
26
+ * communication pattern for async operations like submitting transactions.
27
+ */
28
+ class EngineClient {
29
+ constructor(runtime) {
30
+ this.inflightRequests = new Map();
31
+ this.runtime = runtime;
32
+ }
33
+ /**
34
+ * Submit async transactions to the workflow engine
35
+ */
36
+ async submitAsyncTransactions(authRef, transactions) {
37
+ if (!this.runtime.isWebSocketConnected()) {
38
+ throw (0, errors_1.newError)(errors_1.SDKErrors.MsgSDKEngineNotConnected);
39
+ }
40
+ const activeContext = this.runtime.getActiveHandlerContext();
41
+ if (!activeContext) {
42
+ throw (0, errors_1.newError)(errors_1.SDKErrors.MsgSDKEngineReqNoActiveRequest);
43
+ }
44
+ const requestId = this.generateId();
45
+ log.debug('Submitting async transactions', {
46
+ requestId,
47
+ authRef,
48
+ count: transactions.length
49
+ });
50
+ const request = {
51
+ messageType: core_1.WSMessageType.ENGINE_API_SUBMIT_TRANSACTIONS,
52
+ id: requestId,
53
+ activeRequestId: activeContext.requestId,
54
+ authRef: authRef,
55
+ transactions: transactions,
56
+ };
57
+ return this.roundTrip(request, requestId);
58
+ }
59
+ /**
60
+ * Handle response for inflight request
61
+ */
62
+ handleResponse(message) {
63
+ const inflight = this.inflightRequests.get(message.id);
64
+ if (inflight) {
65
+ this.inflightRequests.delete(message.id);
66
+ if (message.error) {
67
+ log.error('EngineAPI request failed', {
68
+ id: message.id,
69
+ error: message.error
70
+ });
71
+ inflight.reject(new Error(message.error));
72
+ }
73
+ else {
74
+ log.debug('EngineAPI request succeeded', {
75
+ id: message.id,
76
+ results: message.submissions?.length
77
+ });
78
+ inflight.resolve(message.submissions || []);
79
+ }
80
+ }
81
+ else {
82
+ log.warn('Received response for unknown request', { id: message.id });
83
+ }
84
+ }
85
+ /**
86
+ * Round-trip request/response pattern
87
+ */
88
+ roundTrip(request, requestId) {
89
+ return new Promise((resolve, reject) => {
90
+ this.inflightRequests.set(requestId, { resolve, reject });
91
+ this.runtime.sendMessage(request);
92
+ });
93
+ }
94
+ generateId() {
95
+ return `${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;
96
+ }
97
+ }
98
+ exports.EngineClient = EngineClient;
99
+ //# sourceMappingURL=engine_client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine_client.js","sourceRoot":"","sources":["../../../src/runtime/engine_client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ import { ClientOptions } from 'ws';
2
+ import { Handler, TransactionHandler, EventSource, EventProcessor } from '../interfaces/handlers';
3
+ /**
4
+ * outbound mode connects to the configured URL via a WebSocket connection
5
+ * inbound mode creates a websocket server and waits for connections
6
+ */
7
+ export declare enum HandlerRuntimeMode {
8
+ OUTBOUND = "outbound",
9
+ INBOUND = "inbound"
10
+ }
11
+ /**
12
+ * Configuration for the handler runtime
13
+ */
14
+ export interface HandlerRuntimeConfig {
15
+ url?: string;
16
+ providerName: string;
17
+ providerMetadata?: Record<string, string>;
18
+ authToken?: string;
19
+ authHeaderName?: string;
20
+ headers?: Record<string, string>;
21
+ options?: ClientOptions;
22
+ reconnectDelay?: number;
23
+ maxAttempts?: number;
24
+ pingIntervalMs?: number;
25
+ pongTimeoutMs?: number;
26
+ }
27
+ /**
28
+ * Internal runtime that manages WebSocket connection and handler lifecycle.
29
+ */
30
+ export declare class HandlerRuntime {
31
+ private ws?;
32
+ private wsServer?;
33
+ private config;
34
+ private mode;
35
+ private port?;
36
+ private transactionHandlers;
37
+ private eventSources;
38
+ private eventSourceConfigs;
39
+ private eventProcessors;
40
+ private reconnectResolve?;
41
+ private reconnectReject?;
42
+ private isConnected;
43
+ private shouldReconnect;
44
+ private pingInterval?;
45
+ private pongTimeout?;
46
+ private readonly PING_INTERVAL_MS;
47
+ private readonly PONG_TIMEOUT_MS;
48
+ private engineClient;
49
+ private activeHandlerContext?;
50
+ constructor(config: HandlerRuntimeConfig);
51
+ /**
52
+ * Register a transaction handler
53
+ */
54
+ registerTransactionHandler(name: string, handler: TransactionHandler): void;
55
+ /**
56
+ * Register an event source handler
57
+ */
58
+ registerEventSource(name: string, handler: EventSource): void;
59
+ /**
60
+ * Register an event processor handler
61
+ */
62
+ registerEventProcessor(name: string, handler: EventProcessor): void;
63
+ /**
64
+ * Get all registered handlers
65
+ */
66
+ getAllHandlers(): Handler[];
67
+ /**
68
+ * Initialize all handlers and connect to WebSocket
69
+ */
70
+ start(): Promise<void>;
71
+ /**
72
+ * Stop the runtime and close all handlers
73
+ */
74
+ stop(): void;
75
+ /**
76
+ * Check if connected to the workflow engine
77
+ */
78
+ isWebSocketConnected(): boolean;
79
+ /**
80
+ * Set active handler context for EngineAPI calls
81
+ */
82
+ setActiveHandlerContext(requestId: string, authTokens: Record<string, string>): void;
83
+ /**
84
+ * Clear active handler context
85
+ */
86
+ clearActiveHandlerContext(): void;
87
+ /**
88
+ * Get active handler context
89
+ */
90
+ getActiveHandlerContext(): {
91
+ requestId: string;
92
+ authTokens: Record<string, string>;
93
+ } | undefined;
94
+ /**
95
+ * Send a message over WebSocket
96
+ */
97
+ sendMessage(message: any): void;
98
+ private createWebSocketServer;
99
+ private connectWebSocket;
100
+ private onError;
101
+ private onOpen;
102
+ private onClose;
103
+ private onMessage;
104
+ private registerProviderAndHandlers;
105
+ private registerHandler;
106
+ private handleMessage;
107
+ private handleTransactionsMessage;
108
+ private handleEventProcessorBatch;
109
+ private handleEventSourceConfig;
110
+ private handleEventSourcePoll;
111
+ private handleEventSourceValidateConfig;
112
+ private handleEventSourceDelete;
113
+ /**
114
+ * Setup WebSocket heartbeat for connection liveness detection.
115
+ * Sends periodic pings and detects missing pongs to identify dead connections.
116
+ */
117
+ private setupHeartbeat;
118
+ /**
119
+ * Cleanup heartbeat timers and handlers
120
+ */
121
+ private cleanupHeartbeat;
122
+ private generateId;
123
+ }
124
+ //# sourceMappingURL=handler_runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler_runtime.d.ts","sourceRoot":"","sources":["../../../src/runtime/handler_runtime.ts"],"names":[],"mappings":"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"}