@camunda8/sdk 8.4.0 → 8.5.0-alpha.4

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 (215) hide show
  1. package/.eslintrc.json +31 -0
  2. package/CHANGELOG.md +32 -21
  3. package/CODE_OF_CONDUCT.md +73 -0
  4. package/CONTRIBUTING.md +116 -0
  5. package/LICENSE +3 -3
  6. package/README.md +228 -34
  7. package/dist/admin/index.d.ts +2 -0
  8. package/dist/admin/index.js +30 -0
  9. package/dist/admin/index.js.map +1 -0
  10. package/dist/admin/lib/AdminApiClient.d.ts +121 -0
  11. package/dist/admin/lib/AdminApiClient.js +254 -0
  12. package/dist/admin/lib/AdminApiClient.js.map +1 -0
  13. package/dist/admin/lib/AdminDto.d.ts +98 -0
  14. package/dist/admin/lib/AdminDto.js +3 -0
  15. package/dist/admin/lib/AdminDto.js.map +1 -0
  16. package/dist/c8/index.d.ts +42 -0
  17. package/dist/c8/index.js +92 -0
  18. package/dist/c8/index.js.map +1 -0
  19. package/dist/index.d.ts +15 -14
  20. package/dist/index.js +14 -16
  21. package/dist/index.js.map +1 -1
  22. package/dist/lib/CertificateAuthority.d.ts +2 -0
  23. package/dist/lib/CertificateAuthority.js +15 -0
  24. package/dist/lib/CertificateAuthority.js.map +1 -0
  25. package/dist/lib/ClientConstructor.d.ts +6 -0
  26. package/dist/lib/ClientConstructor.js +3 -0
  27. package/dist/lib/ClientConstructor.js.map +1 -0
  28. package/dist/lib/Configuration.d.ts +113 -0
  29. package/dist/lib/Configuration.js +367 -0
  30. package/dist/lib/Configuration.js.map +1 -0
  31. package/dist/lib/ConstructOAuthProvider.d.ts +3 -0
  32. package/dist/lib/ConstructOAuthProvider.js +14 -0
  33. package/dist/lib/ConstructOAuthProvider.js.map +1 -0
  34. package/dist/lib/CreateUserAgentString.d.ts +2 -0
  35. package/dist/lib/CreateUserAgentString.js +11 -0
  36. package/dist/lib/CreateUserAgentString.js.map +1 -0
  37. package/dist/lib/Delay.d.ts +1 -0
  38. package/dist/lib/Delay.js +6 -0
  39. package/dist/lib/Delay.js.map +1 -0
  40. package/dist/lib/EnvironmentSetup.d.ts +11 -0
  41. package/dist/lib/EnvironmentSetup.js +35 -0
  42. package/dist/lib/EnvironmentSetup.js.map +1 -0
  43. package/dist/lib/GetPackageVersion.d.ts +1 -0
  44. package/dist/lib/GetPackageVersion.js +32 -0
  45. package/dist/lib/GetPackageVersion.js.map +1 -0
  46. package/dist/lib/LosslessJsonParser.d.ts +103 -0
  47. package/dist/lib/LosslessJsonParser.js +252 -0
  48. package/dist/lib/LosslessJsonParser.js.map +1 -0
  49. package/dist/lib/RequireConfiguration.d.ts +2 -0
  50. package/dist/lib/RequireConfiguration.js +11 -0
  51. package/dist/lib/RequireConfiguration.js.map +1 -0
  52. package/dist/lib/SuppressZeebeLogging.d.ts +2 -0
  53. package/dist/lib/SuppressZeebeLogging.js +14 -0
  54. package/dist/lib/SuppressZeebeLogging.js.map +1 -0
  55. package/dist/lib/ValueOrDefault.d.ts +1 -0
  56. package/dist/lib/ValueOrDefault.js +8 -0
  57. package/dist/lib/ValueOrDefault.js.map +1 -0
  58. package/dist/lib/index.d.ts +12 -0
  59. package/dist/lib/index.js +32 -0
  60. package/dist/lib/index.js.map +1 -0
  61. package/dist/modeler/index.d.ts +2 -0
  62. package/dist/modeler/index.js +30 -0
  63. package/dist/modeler/index.js.map +1 -0
  64. package/dist/modeler/lib/ModelerAPIClient.d.ts +210 -0
  65. package/dist/modeler/lib/ModelerAPIClient.js +417 -0
  66. package/dist/modeler/lib/ModelerAPIClient.js.map +1 -0
  67. package/dist/modeler/lib/ModelerDto.d.ts +187 -0
  68. package/dist/modeler/lib/ModelerDto.js +3 -0
  69. package/dist/modeler/lib/ModelerDto.js.map +1 -0
  70. package/dist/oauth/index.d.ts +15 -0
  71. package/dist/oauth/index.js +8 -0
  72. package/dist/oauth/index.js.map +1 -0
  73. package/dist/oauth/lib/IOAuthProvider.d.ts +4 -0
  74. package/dist/oauth/lib/IOAuthProvider.js +3 -0
  75. package/dist/oauth/lib/IOAuthProvider.js.map +1 -0
  76. package/dist/oauth/lib/NullAuthProvider.d.ts +5 -0
  77. package/dist/oauth/lib/NullAuthProvider.js +16 -0
  78. package/dist/oauth/lib/NullAuthProvider.js.map +1 -0
  79. package/dist/oauth/lib/OAuthProvider.d.ts +44 -0
  80. package/dist/oauth/lib/OAuthProvider.js +316 -0
  81. package/dist/oauth/lib/OAuthProvider.js.map +1 -0
  82. package/dist/operate/index.d.ts +2 -0
  83. package/dist/operate/index.js +30 -0
  84. package/dist/operate/index.js.map +1 -0
  85. package/dist/operate/lib/OperateApiClient.d.ts +204 -0
  86. package/dist/operate/lib/OperateApiClient.js +440 -0
  87. package/dist/operate/lib/OperateApiClient.js.map +1 -0
  88. package/dist/operate/lib/OperateDto.d.ts +126 -0
  89. package/dist/operate/lib/OperateDto.js +125 -0
  90. package/dist/operate/lib/OperateDto.js.map +1 -0
  91. package/dist/operate/lib/TestableOperateApiClient.d.ts +7 -0
  92. package/dist/operate/lib/TestableOperateApiClient.js +15 -0
  93. package/dist/operate/lib/TestableOperateApiClient.js.map +1 -0
  94. package/dist/operate/lib/parseSearchResults.d.ts +4 -0
  95. package/dist/operate/lib/parseSearchResults.js +26 -0
  96. package/dist/operate/lib/parseSearchResults.js.map +1 -0
  97. package/dist/optimize/index.d.ts +2 -0
  98. package/dist/optimize/index.js +30 -0
  99. package/dist/optimize/index.js.map +1 -0
  100. package/dist/optimize/lib/APIObjects.d.ts +191 -0
  101. package/dist/optimize/lib/APIObjects.js +3 -0
  102. package/dist/optimize/lib/APIObjects.js.map +1 -0
  103. package/dist/optimize/lib/OptimizeApiClient.d.ts +269 -0
  104. package/dist/optimize/lib/OptimizeApiClient.js +410 -0
  105. package/dist/optimize/lib/OptimizeApiClient.js.map +1 -0
  106. package/dist/optimize/lib/ReportResults.d.ts +23 -0
  107. package/dist/optimize/lib/ReportResults.js +28 -0
  108. package/dist/optimize/lib/ReportResults.js.map +1 -0
  109. package/dist/proto/zeebe.proto +996 -0
  110. package/dist/tasklist/index.d.ts +2 -0
  111. package/dist/tasklist/index.js +30 -0
  112. package/dist/tasklist/index.js.map +1 -0
  113. package/dist/tasklist/lib/TasklistApiClient.d.ts +104 -0
  114. package/dist/tasklist/lib/TasklistApiClient.js +233 -0
  115. package/dist/tasklist/lib/TasklistApiClient.js.map +1 -0
  116. package/dist/tasklist/lib/TasklistDto.d.ts +147 -0
  117. package/dist/tasklist/lib/TasklistDto.js +26 -0
  118. package/dist/tasklist/lib/TasklistDto.js.map +1 -0
  119. package/dist/tasklist/lib/utils.d.ts +15 -0
  120. package/dist/tasklist/lib/utils.js +25 -0
  121. package/dist/tasklist/lib/utils.js.map +1 -0
  122. package/dist/zeebe/index.d.ts +21 -0
  123. package/dist/zeebe/index.js +53 -0
  124. package/dist/zeebe/index.js.map +1 -0
  125. package/dist/zeebe/lib/BpmnParser.d.ts +38 -0
  126. package/dist/zeebe/lib/BpmnParser.js +274 -0
  127. package/dist/zeebe/lib/BpmnParser.js.map +1 -0
  128. package/dist/zeebe/lib/ConnectionFactory.d.ts +25 -0
  129. package/dist/zeebe/lib/ConnectionFactory.js +43 -0
  130. package/dist/zeebe/lib/ConnectionFactory.js.map +1 -0
  131. package/dist/zeebe/lib/ConnectionStatusEvent.d.ts +6 -0
  132. package/dist/zeebe/lib/ConnectionStatusEvent.js +10 -0
  133. package/dist/zeebe/lib/ConnectionStatusEvent.js.map +1 -0
  134. package/dist/zeebe/lib/GetPackageVersion.d.ts +1 -0
  135. package/dist/zeebe/lib/GetPackageVersion.js +32 -0
  136. package/dist/zeebe/lib/GetPackageVersion.js.map +1 -0
  137. package/dist/zeebe/lib/GrpcClient.d.ts +75 -0
  138. package/dist/zeebe/lib/GrpcClient.js +467 -0
  139. package/dist/zeebe/lib/GrpcClient.js.map +1 -0
  140. package/dist/zeebe/lib/GrpcError.d.ts +19 -0
  141. package/dist/zeebe/lib/GrpcError.js +23 -0
  142. package/dist/zeebe/lib/GrpcError.js.map +1 -0
  143. package/dist/zeebe/lib/GrpcMiddleware.d.ts +21 -0
  144. package/dist/zeebe/lib/GrpcMiddleware.js +78 -0
  145. package/dist/zeebe/lib/GrpcMiddleware.js.map +1 -0
  146. package/dist/zeebe/lib/MockStdOut.d.ts +7 -0
  147. package/dist/zeebe/lib/MockStdOut.js +19 -0
  148. package/dist/zeebe/lib/MockStdOut.js.map +1 -0
  149. package/dist/zeebe/lib/Queue.d.ts +8 -0
  150. package/dist/zeebe/lib/Queue.js +15 -0
  151. package/dist/zeebe/lib/Queue.js.map +1 -0
  152. package/dist/zeebe/lib/SimpleLogger.d.ts +8 -0
  153. package/dist/zeebe/lib/SimpleLogger.js +47 -0
  154. package/dist/zeebe/lib/SimpleLogger.js.map +1 -0
  155. package/dist/zeebe/lib/StatefulLogInterceptor.d.ts +29 -0
  156. package/dist/zeebe/lib/StatefulLogInterceptor.js +81 -0
  157. package/dist/zeebe/lib/StatefulLogInterceptor.js.map +1 -0
  158. package/dist/zeebe/lib/TypedEmitter.d.ts +16 -0
  159. package/dist/zeebe/lib/TypedEmitter.js +24 -0
  160. package/dist/zeebe/lib/TypedEmitter.js.map +1 -0
  161. package/dist/zeebe/lib/ZBJsonLogger.d.ts +5 -0
  162. package/dist/zeebe/lib/ZBJsonLogger.js +12 -0
  163. package/dist/zeebe/lib/ZBJsonLogger.js.map +1 -0
  164. package/dist/zeebe/lib/ZBLogger.d.ts +20 -0
  165. package/dist/zeebe/lib/ZBLogger.js +134 -0
  166. package/dist/zeebe/lib/ZBLogger.js.map +1 -0
  167. package/dist/zeebe/lib/ZBWorkerBase.d.ts +78 -0
  168. package/dist/zeebe/lib/ZBWorkerBase.js +417 -0
  169. package/dist/zeebe/lib/ZBWorkerBase.js.map +1 -0
  170. package/dist/zeebe/lib/cancelProcesses.d.ts +1 -0
  171. package/dist/zeebe/lib/cancelProcesses.js +40 -0
  172. package/dist/zeebe/lib/cancelProcesses.js.map +1 -0
  173. package/dist/zeebe/lib/createUniqueTaskType.d.ts +0 -0
  174. package/dist/zeebe/lib/createUniqueTaskType.js +65 -0
  175. package/dist/zeebe/lib/createUniqueTaskType.js.map +1 -0
  176. package/dist/zeebe/lib/index.d.ts +2 -0
  177. package/dist/zeebe/lib/index.js +19 -0
  178. package/dist/zeebe/lib/index.js.map +1 -0
  179. package/dist/zeebe/lib/interfaces-1.0.d.ts +303 -0
  180. package/dist/zeebe/lib/interfaces-1.0.js +5 -0
  181. package/dist/zeebe/lib/interfaces-1.0.js.map +1 -0
  182. package/dist/zeebe/lib/interfaces-grpc-1.0.d.ts +679 -0
  183. package/dist/zeebe/lib/interfaces-grpc-1.0.js +22 -0
  184. package/dist/zeebe/lib/interfaces-grpc-1.0.js.map +1 -0
  185. package/dist/zeebe/lib/interfaces-published-contract.d.ts +67 -0
  186. package/dist/zeebe/lib/interfaces-published-contract.js +3 -0
  187. package/dist/zeebe/lib/interfaces-published-contract.js.map +1 -0
  188. package/dist/zeebe/lib/stringifyVariables.d.ts +18 -0
  189. package/dist/zeebe/lib/stringifyVariables.js +28 -0
  190. package/dist/zeebe/lib/stringifyVariables.js.map +1 -0
  191. package/dist/zeebe/lib/utils.d.ts +7 -0
  192. package/dist/zeebe/lib/utils.js +48 -0
  193. package/dist/zeebe/lib/utils.js.map +1 -0
  194. package/dist/zeebe/types.d.ts +3 -0
  195. package/dist/zeebe/types.js +20 -0
  196. package/dist/zeebe/types.js.map +1 -0
  197. package/dist/zeebe/zb/ZBWorker.d.ts +7 -0
  198. package/dist/zeebe/zb/ZBWorker.js +73 -0
  199. package/dist/zeebe/zb/ZBWorker.js.map +1 -0
  200. package/dist/zeebe/zb/ZeebeGrpcClient.d.ts +587 -0
  201. package/dist/zeebe/zb/ZeebeGrpcClient.js +1021 -0
  202. package/dist/zeebe/zb/ZeebeGrpcClient.js.map +1 -0
  203. package/package.json +130 -30
  204. package/renovate.json +9 -0
  205. package/.github/workflows/build-docs.yml +0 -39
  206. package/.github/workflows/tag-and-publish.yml +0 -48
  207. package/.prettierignore +0 -2
  208. package/img/video.png +0 -0
  209. package/jest.config.js +0 -5
  210. package/src/__tests__/exports.spec.ts +0 -7
  211. package/src/index.ts +0 -17
  212. package/tsconfig.build.json +0 -8
  213. package/tsconfig.json +0 -10
  214. package/tsconfig.tsbuildinfo +0 -1
  215. package/typedoc.json +0 -10
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.Logging = exports.Types = exports.BpmnParser = exports.Duration = void 0;
30
+ var typed_duration_1 = require("typed-duration");
31
+ Object.defineProperty(exports, "Duration", { enumerable: true, get: function () { return typed_duration_1.Duration; } });
32
+ var BpmnParser_1 = require("./lib/BpmnParser");
33
+ Object.defineProperty(exports, "BpmnParser", { enumerable: true, get: function () { return BpmnParser_1.BpmnParser; } });
34
+ const SimpleLogger_1 = require("./lib/SimpleLogger");
35
+ const ZBJsonLogger_1 = require("./lib/ZBJsonLogger");
36
+ const ZBLogger_1 = require("./lib/ZBLogger");
37
+ const Interfaces = __importStar(require("./lib/interfaces-1.0"));
38
+ const GrpcInterfaces = __importStar(require("./lib/interfaces-grpc-1.0"));
39
+ const PublishedContract = __importStar(require("./lib/interfaces-published-contract"));
40
+ __exportStar(require("./zb/ZBWorker"), exports);
41
+ __exportStar(require("./zb/ZeebeGrpcClient"), exports);
42
+ /** @namespace */
43
+ exports.Types = {
44
+ ...Interfaces,
45
+ ...GrpcInterfaces,
46
+ ...PublishedContract,
47
+ };
48
+ exports.Logging = {
49
+ ZBJsonLogger: ZBJsonLogger_1.ZBJsonLogger,
50
+ ZBLogger: ZBLogger_1.ZBLogger,
51
+ ZBSimpleLogger: SimpleLogger_1.ZBSimpleLogger,
52
+ };
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/zeebe/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAyC;AAAhC,0GAAA,QAAQ,OAAA;AACjB,+CAA6C;AAApC,wGAAA,UAAU,OAAA;AACnB,qDAAmD;AACnD,qDAAiD;AACjD,6CAAyC;AACzC,iEAAkD;AAClD,0EAA2D;AAC3D,uFAAwE;AAExE,gDAA6B;AAC7B,uDAAoC;AACpC,iBAAiB;AACJ,QAAA,KAAK,GAAG;IACpB,GAAG,UAAU;IACb,GAAG,cAAc;IACjB,GAAG,iBAAiB;CACpB,CAAA;AAEY,QAAA,OAAO,GAAG;IACtB,YAAY,EAAZ,2BAAY;IACZ,QAAQ,EAAR,mBAAQ;IACR,cAAc,EAAd,6BAAc;CACd,CAAA"}
@@ -0,0 +1,38 @@
1
+ export declare class BpmnParser {
2
+ static taskTypes: any;
3
+ /**
4
+ * Read BPMN files and return an array of one or more parsed BPMN objects.
5
+ * @param filenames - A single BPMN file path, or array of BPMN file paths.
6
+ */
7
+ static parseBpmn(filenames: string | string[]): object;
8
+ static getProcessId(bpmnString: string): any;
9
+ static scaffold(filename: string): Promise<string>;
10
+ /**
11
+ * Generate TypeScript constants for task types and message names in BPMN files
12
+ * @param filenames - a BPMN file path or array of BPMN file paths
13
+ */
14
+ static generateConstantsForBpmnFiles(filenames: string | string[]): Promise<string>;
15
+ /**
16
+ * Take one or more parsed BPMN objects and return an array of unique task types.
17
+ * @param processes - A parsed BPMN object, or an array of parsed BPMN objects.
18
+ */
19
+ static getTaskTypes(processes: object[] | object): Promise<string[]>;
20
+ /**
21
+ * Take one or more parsed BPMN objects and return an array of unique message names.
22
+ * @param processes - A parsed BPMN object, or an array of parsed BPMN objects.
23
+ */
24
+ static getMessageNames(processes: object[] | object): Promise<string[]>;
25
+ private static parserOptions;
26
+ private static parser;
27
+ private static mergeDedupeAndSort;
28
+ /**
29
+ * Return an array of task types.
30
+ * @param bpmnObject - A parsed Bpmn object.
31
+ */
32
+ private static scanBpmnObjectForTasks;
33
+ /**
34
+ * Return an array of message names.
35
+ * @param bpmnObject - A parsed Bpmn object.
36
+ */
37
+ private static scanBpmnObjectForMessages;
38
+ }
@@ -0,0 +1,274 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.BpmnParser = void 0;
27
+ const fs = require("fs");
28
+ const path = __importStar(require("path"));
29
+ const fast_xml_parser_1 = require("fast-xml-parser");
30
+ // Converts, for example, task_type or task-type to TaskType
31
+ const getSafeName = (tasktype) => tasktype
32
+ .split('_')
33
+ .map(([f, ...r]) => [f.toUpperCase(), ...r].join(''))
34
+ .join('')
35
+ .split('-')
36
+ .map(([f, ...r]) => [f.toUpperCase(), ...r].join(''))
37
+ .join('');
38
+ const getConstantName = (name) => name.split('-').join('_').split(' ').join('_').toUpperCase();
39
+ const toArray = (stringOrArray) => Array.isArray(stringOrArray) ? stringOrArray : [stringOrArray];
40
+ class BpmnParser {
41
+ /**
42
+ * Read BPMN files and return an array of one or more parsed BPMN objects.
43
+ * @param filenames - A single BPMN file path, or array of BPMN file paths.
44
+ */
45
+ static parseBpmn(filenames) {
46
+ if (typeof filenames === 'string') {
47
+ filenames = [filenames];
48
+ }
49
+ return filenames.map((filename) => {
50
+ if (filename) {
51
+ const xmlData = fs.readFileSync(filename, 'utf8');
52
+ if (xmlData && fast_xml_parser_1.XMLValidator.validate(xmlData)) {
53
+ return BpmnParser.parser.parse(xmlData);
54
+ }
55
+ }
56
+ return {};
57
+ });
58
+ }
59
+ // @ TODO: examine Camunda's parse BPMN code
60
+ // https://github.com/camunda/camunda-bpmn-model/tree/master/src/main/java/org/camunda/bpm/model/bpmn
61
+ static getProcessId(bpmnString) {
62
+ const jsonObj = BpmnParser.parser.parse(bpmnString);
63
+ return jsonObj?.['bpmn:definitions']?.['bpmn:process']?.['@_id'];
64
+ }
65
+ // Produce a starter worker file from a BPMN file
66
+ static async scaffold(filename) {
67
+ const removeUndefined = (t) => !!t;
68
+ const buildEnumDictionaryFromArray = (a) => a
69
+ .filter(removeUndefined)
70
+ .map((t) => ({ [t]: getConstantName(t) }))
71
+ .reduce((prev, curr) => ({ ...prev, ...curr }), {});
72
+ const bpmnObject = BpmnParser.parseBpmn(filename)[0];
73
+ const taskTypes = await BpmnParser.getTaskTypes(bpmnObject);
74
+ const taskEnumDict = buildEnumDictionaryFromArray(taskTypes);
75
+ const interfaces = await BpmnParser.generateConstantsForBpmnFiles(filename);
76
+ const headerInterfaces = {}; // mutated in the recursive function
77
+ await scanForHeadersRecursively(bpmnObject);
78
+ const importStmnt = `import { ZBClient } from "zeebe-node"
79
+
80
+ const zbc = new ZBClient()
81
+ `;
82
+ const genericWorkflowVariables = `// @TODO Update with the shape of your job variables
83
+ // For better intellisense and type-safety
84
+ export interface WorkflowVariables {
85
+ [key: string]: any
86
+ }`;
87
+ const workers = taskTypes
88
+ .map((t) => `// Worker for tasks of type "${t}"
89
+ ${headerInterfaces[t]
90
+ ? headerInterfaces[t].join('|')
91
+ : 'type ' + getSafeName(t) + 'CustomHeaders = never'}
92
+
93
+ export const ${getSafeName(t)}Worker = zbc.createWorker<
94
+ WorkflowVariables,
95
+ ${getSafeName(t)}CustomHeaders,
96
+ WorkflowVariables
97
+ >({ taskType: TaskType.${taskEnumDict[t]},
98
+ taskHandler: job => {
99
+ console.log(job)
100
+ return job.complete()
101
+ }
102
+ })
103
+ `)
104
+ .join('\n');
105
+ return `${importStmnt}
106
+ ${genericWorkflowVariables}
107
+ ${interfaces}
108
+ ${workers}`;
109
+ async function scanForHeadersRecursively(obj) {
110
+ if (!(obj instanceof Object)) {
111
+ return;
112
+ }
113
+ for (const k in obj) {
114
+ if (Object.prototype.hasOwnProperty.call(obj, k)) {
115
+ if (k === 'bpmn:serviceTask') {
116
+ const tasks = toArray(obj[k]);
117
+ tasks.forEach((t) => {
118
+ const taskHeaders = t['bpmn:extensionElements']['zeebe:taskHeaders'];
119
+ const customHeaderNames = taskHeaders
120
+ ? toArray(taskHeaders['zeebe:header']).map((h) => h['@_key'])
121
+ : undefined;
122
+ const tasktype = t['bpmn:extensionElements']['zeebe:taskDefinition']['@_type'];
123
+ const headerInterfaceName = getSafeName(tasktype);
124
+ if (customHeaderNames) {
125
+ const headerInterfaceDfnBody = customHeaderNames
126
+ .sort()
127
+ .map((h) => ' ' + h + ': string')
128
+ .join('\n');
129
+ const headerInterfaceDfn = `interface ${headerInterfaceName}CustomHeaders {
130
+ ${headerInterfaceDfnBody}
131
+ }`;
132
+ if (!headerInterfaces[tasktype]) {
133
+ headerInterfaces[tasktype] = [headerInterfaceDfn];
134
+ }
135
+ else {
136
+ if (headerInterfaces[tasktype].filter((d) => d === headerInterfaceDfn).length === 0) {
137
+ headerInterfaces[tasktype].push(`{
138
+ ${headerInterfaceDfnBody}
139
+ }`);
140
+ }
141
+ }
142
+ }
143
+ });
144
+ }
145
+ else {
146
+ // recursive call to scan property
147
+ await scanForHeadersRecursively(obj[k]);
148
+ }
149
+ }
150
+ }
151
+ }
152
+ }
153
+ /**
154
+ * Generate TypeScript constants for task types and message names in BPMN files
155
+ * @param filenames - a BPMN file path or array of BPMN file paths
156
+ */
157
+ static async generateConstantsForBpmnFiles(filenames) {
158
+ const removeUndefined = (t) => !!t;
159
+ const buildEnumListFromArray = (a) => a
160
+ .filter(removeUndefined)
161
+ .map((t) => ` ${getConstantName(t)} = "${t}"`)
162
+ .join(',\n');
163
+ if (typeof filenames === 'string') {
164
+ filenames = [filenames];
165
+ }
166
+ const parsed = BpmnParser.parseBpmn(filenames);
167
+ const taskTypes = await BpmnParser.getTaskTypes(parsed);
168
+ const messageNames = await BpmnParser.getMessageNames(parsed);
169
+ const files = filenames.map((f) => path.basename(f));
170
+ const taskEnumMembers = buildEnumListFromArray(taskTypes);
171
+ const messageEnumMembers = buildEnumListFromArray(messageNames);
172
+ return `
173
+ // Autogenerated constants for ${files}
174
+
175
+ export enum TaskType {
176
+ ${taskEnumMembers}
177
+ }
178
+
179
+ export enum MessageName {
180
+ ${messageEnumMembers}
181
+ }
182
+
183
+ `;
184
+ }
185
+ /**
186
+ * Take one or more parsed BPMN objects and return an array of unique task types.
187
+ * @param processes - A parsed BPMN object, or an array of parsed BPMN objects.
188
+ */
189
+ static async getTaskTypes(processes) {
190
+ const processArray = toArray(processes);
191
+ return BpmnParser.mergeDedupeAndSort(await Promise.all(processArray.map(BpmnParser.scanBpmnObjectForTasks)));
192
+ }
193
+ /**
194
+ * Take one or more parsed BPMN objects and return an array of unique message names.
195
+ * @param processes - A parsed BPMN object, or an array of parsed BPMN objects.
196
+ */
197
+ static async getMessageNames(processes) {
198
+ const processArray = toArray(processes);
199
+ return BpmnParser.mergeDedupeAndSort(await Promise.all(processArray.map(BpmnParser.scanBpmnObjectForMessages)));
200
+ }
201
+ static mergeDedupeAndSort(arr) {
202
+ return [...new Set([].concat(...arr).sort())];
203
+ }
204
+ /**
205
+ * Return an array of task types.
206
+ * @param bpmnObject - A parsed Bpmn object.
207
+ */
208
+ static async scanBpmnObjectForTasks(bpmnObject) {
209
+ let taskTypes = []; // mutated in the recursive function
210
+ await scanRecursively(bpmnObject);
211
+ return [...new Set(taskTypes.sort())];
212
+ async function scanRecursively(obj) {
213
+ if (!(obj instanceof Object)) {
214
+ return; // not an Object so obj[k] here is a value
215
+ }
216
+ for (const k in obj) {
217
+ if (Object.prototype.hasOwnProperty.call(obj, k)) {
218
+ if (k === 'bpmn:serviceTask') {
219
+ const tasks = toArray(obj[k]);
220
+ taskTypes = taskTypes.concat(tasks.map((t) => t['bpmn:extensionElements']['zeebe:taskDefinition']['@_type']));
221
+ }
222
+ else {
223
+ // recursive call to scan property
224
+ await scanRecursively(obj[k]);
225
+ }
226
+ }
227
+ }
228
+ }
229
+ }
230
+ /**
231
+ * Return an array of message names.
232
+ * @param bpmnObject - A parsed Bpmn object.
233
+ */
234
+ static async scanBpmnObjectForMessages(bpmnObject) {
235
+ let messageNames = []; // mutated in the recursive function
236
+ await scanRecursively(bpmnObject);
237
+ return [...new Set(messageNames.sort())];
238
+ async function scanRecursively(obj) {
239
+ if (!(obj instanceof Object)) {
240
+ return; // not an Object so obj[k] here is a value
241
+ }
242
+ for (const k in obj) {
243
+ if (Object.prototype.hasOwnProperty.call(obj, k)) {
244
+ if (k === 'bpmn:message') {
245
+ const messages = toArray(obj[k]);
246
+ messageNames = messageNames.concat(messages.map((m) => m['@_name']));
247
+ }
248
+ else {
249
+ // recursive call to scan property
250
+ await scanRecursively(obj[k]);
251
+ }
252
+ }
253
+ }
254
+ }
255
+ }
256
+ }
257
+ exports.BpmnParser = BpmnParser;
258
+ BpmnParser.parserOptions = {
259
+ allowBooleanAttributes: false,
260
+ attrNodeName: 'attr',
261
+ attributeNamePrefix: '@_',
262
+ cdataPositionChar: '\\c',
263
+ cdataTagName: '__cdata',
264
+ ignoreAttributes: false,
265
+ ignoreNameSpace: false,
266
+ localeRange: '',
267
+ parseAttributeValue: false,
268
+ parseNodeValue: true,
269
+ parseTrueNumberOnly: false,
270
+ textNodeName: '#text',
271
+ trimValues: true,
272
+ };
273
+ BpmnParser.parser = new fast_xml_parser_1.XMLParser(BpmnParser.parserOptions);
274
+ //# sourceMappingURL=BpmnParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BpmnParser.js","sourceRoot":"","sources":["../../../src/zeebe/lib/BpmnParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { GrpcClientCtor } from './GrpcClient';
2
+ import { ZBLoggerConfig } from './interfaces-1.0';
3
+ import { StatefulLogInterceptor } from './StatefulLogInterceptor';
4
+ export type GrpcConnectionProfile = 'CAMUNDA_CLOUD' | 'VANILLA';
5
+ export interface Characteristics {
6
+ startupTime: number;
7
+ _tag: GrpcConnectionProfile;
8
+ }
9
+ /**
10
+ * @TODO we need to override this via the constructor
11
+ */
12
+ export declare const ConnectionCharacteristics: {
13
+ [key in GrpcConnectionProfile]: Characteristics;
14
+ };
15
+ export type State = 'ERROR' | 'CONNECTED' | 'UNKNOWN';
16
+ export declare class ConnectionFactory {
17
+ static getGrpcClient({ grpcConfig, logConfig, }: {
18
+ grpcConfig: GrpcClientCtor;
19
+ logConfig: ZBLoggerConfig;
20
+ }): {
21
+ grpcClient: import("./GrpcClient").GrpcClient;
22
+ log: StatefulLogInterceptor;
23
+ };
24
+ private static getCharacteristics;
25
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConnectionFactory = exports.ConnectionCharacteristics = void 0;
4
+ const GrpcMiddleware_1 = require("./GrpcMiddleware");
5
+ const StatefulLogInterceptor_1 = require("./StatefulLogInterceptor");
6
+ /**
7
+ * @TODO we need to override this via the constructor
8
+ */
9
+ exports.ConnectionCharacteristics = {
10
+ CAMUNDA_CLOUD: {
11
+ _tag: 'CAMUNDA_CLOUD',
12
+ startupTime: parseInt(process.env.ZEEBE_INITIAL_CONNECTION_TOLERANCE || '6000', 10),
13
+ },
14
+ VANILLA: {
15
+ _tag: 'VANILLA',
16
+ startupTime: parseInt(process.env.ZEEBE_INITIAL_CONNECTION_TOLERANCE || '0', 10),
17
+ },
18
+ };
19
+ class ConnectionFactory {
20
+ static getGrpcClient({ grpcConfig, logConfig, }) {
21
+ const characteristics = ConnectionFactory.getCharacteristics(grpcConfig.host);
22
+ const log = new StatefulLogInterceptor_1.StatefulLogInterceptor({ characteristics, logConfig });
23
+ const grpcClient = new GrpcMiddleware_1.GrpcMiddleware({
24
+ characteristics,
25
+ config: grpcConfig,
26
+ log,
27
+ }).getGrpcClient();
28
+ const _close = grpcClient.close.bind(grpcClient);
29
+ grpcClient.close = async () => {
30
+ log.close();
31
+ _close();
32
+ return null;
33
+ };
34
+ return { grpcClient, log };
35
+ }
36
+ static getCharacteristics(host) {
37
+ const isCamundaCloud = host.includes('zeebe.camunda.io');
38
+ const profile = isCamundaCloud ? 'CAMUNDA_CLOUD' : 'VANILLA';
39
+ return exports.ConnectionCharacteristics[profile];
40
+ }
41
+ }
42
+ exports.ConnectionFactory = ConnectionFactory;
43
+ //# sourceMappingURL=ConnectionFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectionFactory.js","sourceRoot":"","sources":["../../../src/zeebe/lib/ConnectionFactory.ts"],"names":[],"mappings":";;;AACA,qDAAiD;AAEjD,qEAAiE;AAQjE;;GAEG;AACU,QAAA,yBAAyB,GAElC;IACH,aAAa,EAAE;QACd,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,QAAQ,CACpB,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,MAAM,EACxD,EAAE,CACF;KACD;IACD,OAAO,EAAE;QACR,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,QAAQ,CACpB,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,GAAG,EACrD,EAAE,CACF;KACD;CACD,CAAA;AAID,MAAa,iBAAiB;IACtB,MAAM,CAAC,aAAa,CAAC,EAC3B,UAAU,EACV,SAAS,GAIT;QACA,MAAM,eAAe,GAAG,iBAAiB,CAAC,kBAAkB,CAC3D,UAAU,CAAC,IAAI,CACf,CAAA;QACD,MAAM,GAAG,GAAG,IAAI,+CAAsB,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAA;QACtE,MAAM,UAAU,GAAG,IAAI,+BAAc,CAAC;YACrC,eAAe;YACf,MAAM,EAAE,UAAU;YAClB,GAAG;SACH,CAAC,CAAC,aAAa,EAAE,CAAA;QAClB,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAChD,UAAU,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;YAC7B,GAAG,CAAC,KAAK,EAAE,CAAA;YACX,MAAM,EAAE,CAAA;YACR,OAAO,IAAI,CAAA;QACZ,CAAC,CAAA;QAED,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA;IAC3B,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,IAAY;QAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;QACxD,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAA;QAC5D,OAAO,iCAAyB,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;CACD;AAhCD,8CAgCC"}
@@ -0,0 +1,6 @@
1
+ export declare const ConnectionStatusEvent: {
2
+ close: "close";
3
+ connectionError: "connectionError";
4
+ ready: "ready";
5
+ unknown: "unknown";
6
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConnectionStatusEvent = void 0;
4
+ exports.ConnectionStatusEvent = {
5
+ close: 'close',
6
+ connectionError: 'connectionError',
7
+ ready: 'ready',
8
+ unknown: 'unknown',
9
+ };
10
+ //# sourceMappingURL=ConnectionStatusEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectionStatusEvent.js","sourceRoot":"","sources":["../../../src/zeebe/lib/ConnectionStatusEvent.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG;IACpC,KAAK,EAAE,OAAgB;IACvB,eAAe,EAAE,iBAA0B;IAC3C,KAAK,EAAE,OAAgB;IACvB,OAAO,EAAE,SAAkB;CAC3B,CAAA"}
@@ -0,0 +1 @@
1
+ export declare const packageVersion: any;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.packageVersion = void 0;
27
+ const fs = __importStar(require("fs"));
28
+ const path = __importStar(require("path"));
29
+ const packageJsonPath = path.join(__dirname, '..', '..', '..', 'package.json');
30
+ const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
31
+ exports.packageVersion = pkg.version;
32
+ //# sourceMappingURL=GetPackageVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetPackageVersion.js","sourceRoot":"","sources":["../../../src/zeebe/lib/GetPackageVersion.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAwB;AACxB,2CAA4B;AAE5B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;AAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAA;AAEnD,QAAA,cAAc,GAAG,GAAG,CAAC,OAAO,CAAA"}
@@ -0,0 +1,75 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { EventEmitter } from 'events';
4
+ import { Client } from '@grpc/grpc-js';
5
+ import { VerifyOptions } from '@grpc/grpc-js/build/src/channel-credentials';
6
+ import { Options } from '@grpc/proto-loader';
7
+ import { CamundaPlatform8Configuration } from "../../lib";
8
+ import { IOAuthProvider } from "../../oauth";
9
+ import { MaybeTimeDuration } from 'typed-duration';
10
+ import { Loglevel, ZBCustomLogger } from './interfaces-published-contract';
11
+ export interface GrpcClientExtendedOptions {
12
+ longPoll?: MaybeTimeDuration;
13
+ pollInterval?: MaybeTimeDuration;
14
+ }
15
+ export declare const MiddlewareSignals: {
16
+ Log: {
17
+ Error: string;
18
+ Info: string;
19
+ Debug: string;
20
+ };
21
+ Event: {
22
+ Error: string;
23
+ Ready: string;
24
+ GrpcInterceptError: string;
25
+ };
26
+ };
27
+ export interface GrpcClientCtor {
28
+ config: CamundaPlatform8Configuration;
29
+ connectionTolerance: MaybeTimeDuration;
30
+ host: string;
31
+ loglevel: Loglevel;
32
+ oAuth?: IOAuthProvider;
33
+ options: Options & GrpcClientExtendedOptions;
34
+ packageName: string;
35
+ protoPath: string;
36
+ service: string;
37
+ namespace: string;
38
+ tasktype?: string;
39
+ useTLS: boolean;
40
+ stdout: ZBCustomLogger;
41
+ customSSL?: CustomSSL;
42
+ }
43
+ export interface CustomSSL {
44
+ rootCerts?: Buffer;
45
+ privateKey?: Buffer;
46
+ certChain?: Buffer;
47
+ verifyOptions?: VerifyOptions;
48
+ }
49
+ export declare class GrpcClient extends EventEmitter {
50
+ channelClosed: boolean;
51
+ longPoll?: MaybeTimeDuration;
52
+ connected: boolean;
53
+ client: Client;
54
+ host: string;
55
+ private closing;
56
+ private channelState;
57
+ private packageDefinition;
58
+ private listNameMethods;
59
+ private gRPCRetryCount;
60
+ private oAuth?;
61
+ private readyTimer?;
62
+ private failTimer?;
63
+ private connectionTolerance;
64
+ private userAgentString;
65
+ private config;
66
+ constructor({ config, connectionTolerance, host, oAuth, options, packageName, protoPath, service, useTLS, customSSL, }: GrpcClientCtor);
67
+ runService(fnName: any, data: any, fnAnswer: any): void;
68
+ listMethods(): string[];
69
+ close(timeout?: number): Promise<null>;
70
+ private getAuthToken;
71
+ private waitForGrpcChannelReconnect;
72
+ private setReady;
73
+ private setNotReady;
74
+ private interceptor;
75
+ }