quidproquo-dev-server 0.0.237 → 0.0.239

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 (194) hide show
  1. package/lib/commonjs/actionProcessor/core/event/index.d.ts +3 -0
  2. package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/index.js +2 -0
  3. package/lib/commonjs/actionProcessor/core/event/node/index.d.ts +1 -0
  4. package/lib/commonjs/{getActionProcessor/core → actionProcessor/core/event/node}/index.js +1 -1
  5. package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/getEventAutoRespondActionProcessor.js +24 -0
  6. package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/getEventGetRecordsActionProcessor.js +28 -0
  7. package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/getEventGetStorySessionActionProcessor.js +24 -0
  8. package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/getEventMatchStoryActionProcessor.js +33 -0
  9. package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/getEventTransformResponseResultActionProcessor.js +30 -0
  10. package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/index.d.ts +2 -0
  11. package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/index.js +21 -0
  12. package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/types.d.ts +11 -0
  13. package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/types.js +2 -0
  14. package/lib/commonjs/actionProcessor/core/event/queue/getEventAutoRespondActionProcessor.d.ts +2 -0
  15. package/lib/commonjs/actionProcessor/core/event/queue/getEventAutoRespondActionProcessor.js +29 -0
  16. package/lib/commonjs/actionProcessor/core/event/queue/getEventGetRecordsActionProcessor.d.ts +2 -0
  17. package/lib/commonjs/actionProcessor/core/event/queue/getEventGetRecordsActionProcessor.js +31 -0
  18. package/lib/commonjs/actionProcessor/core/event/queue/getEventGetStorySessionActionProcessor.d.ts +2 -0
  19. package/lib/commonjs/actionProcessor/core/event/queue/getEventGetStorySessionActionProcessor.js +24 -0
  20. package/lib/commonjs/actionProcessor/core/event/queue/getEventMatchStoryActionProcessor.d.ts +2 -0
  21. package/lib/commonjs/actionProcessor/core/event/queue/getEventMatchStoryActionProcessor.js +43 -0
  22. package/lib/commonjs/actionProcessor/core/event/queue/getEventTransformResponseResultActionProcessor.d.ts +2 -0
  23. package/lib/commonjs/actionProcessor/core/event/queue/getEventTransformResponseResultActionProcessor.js +26 -0
  24. package/lib/commonjs/actionProcessor/core/event/queue/index.d.ts +2 -0
  25. package/lib/commonjs/actionProcessor/core/event/queue/index.js +21 -0
  26. package/lib/commonjs/actionProcessor/core/event/queue/types.d.ts +17 -0
  27. package/lib/commonjs/actionProcessor/core/event/queue/types.js +2 -0
  28. package/lib/commonjs/actionProcessor/core/eventBus/getEventBusSendMessagesActionProcessor.d.ts +10 -0
  29. package/lib/commonjs/actionProcessor/core/eventBus/getEventBusSendMessagesActionProcessor.js +43 -0
  30. package/lib/commonjs/actionProcessor/core/eventBus/index.d.ts +2 -0
  31. package/lib/commonjs/actionProcessor/core/eventBus/index.js +17 -0
  32. package/lib/commonjs/actionProcessor/core/getCoreActionProcessor.d.ts +2 -0
  33. package/lib/commonjs/actionProcessor/core/getCoreActionProcessor.js +19 -0
  34. package/lib/commonjs/actionProcessor/{graphDatabaseOverride → core/graphDatabaseOverride}/getGraphDatabaseExecuteOpenCypherQueryActionProcessor.js +7 -3
  35. package/lib/commonjs/actionProcessor/core/index.d.ts +2 -0
  36. package/lib/commonjs/actionProcessor/core/index.js +18 -0
  37. package/lib/commonjs/actionProcessor/core/queue/getQueueSendMessageActionProcessor.d.ts +2 -0
  38. package/lib/commonjs/actionProcessor/core/queue/getQueueSendMessageActionProcessor.js +46 -0
  39. package/lib/commonjs/actionProcessor/core/queue/index.d.ts +2 -0
  40. package/lib/commonjs/actionProcessor/core/queue/index.js +17 -0
  41. package/lib/commonjs/actionProcessor/index.d.ts +4 -1
  42. package/lib/commonjs/actionProcessor/index.js +21 -1
  43. package/lib/commonjs/actionProcessor/webserver/index.d.ts +2 -0
  44. package/lib/commonjs/actionProcessor/webserver/index.js +17 -0
  45. package/lib/commonjs/actionProcessor/webserver/serviceFunctionOverride/getServiceFunctionExecuteActionProcessor.d.ts +2 -0
  46. package/lib/commonjs/actionProcessor/webserver/serviceFunctionOverride/getServiceFunctionExecuteActionProcessor.js +41 -0
  47. package/lib/commonjs/actionProcessor/webserver/serviceFunctionOverride/index.d.ts +2 -0
  48. package/lib/commonjs/actionProcessor/webserver/serviceFunctionOverride/index.js +17 -0
  49. package/lib/commonjs/implementations/apiImplementation.d.ts +2 -0
  50. package/lib/commonjs/implementations/apiImplementation.js +145 -0
  51. package/lib/commonjs/implementations/eventBusImplementation.d.ts +2 -0
  52. package/lib/commonjs/implementations/eventBusImplementation.js +55 -0
  53. package/lib/commonjs/implementations/index.d.ts +4 -1
  54. package/lib/commonjs/implementations/index.js +4 -1
  55. package/lib/commonjs/implementations/queueImplementation.d.ts +2 -0
  56. package/lib/commonjs/implementations/queueImplementation.js +47 -0
  57. package/lib/commonjs/implementations/serviceFunctionImplementation.d.ts +2 -0
  58. package/lib/commonjs/implementations/serviceFunctionImplementation.js +34 -0
  59. package/lib/commonjs/logic/eventBus.d.ts +11 -0
  60. package/lib/commonjs/logic/eventBus.js +46 -0
  61. package/lib/commonjs/logic/index.d.ts +2 -0
  62. package/lib/commonjs/{getActionProcessor → logic}/index.js +2 -1
  63. package/lib/commonjs/logic/processEvent.d.ts +2 -0
  64. package/lib/commonjs/logic/processEvent.js +32 -0
  65. package/lib/commonjs/main.d.ts +1 -0
  66. package/lib/commonjs/main.js +22 -125
  67. package/lib/esm/actionProcessor/core/event/express/api/getEventAutoRespondActionProcessor.d.ts +2 -0
  68. package/lib/esm/actionProcessor/core/event/express/api/getEventGetRecordsActionProcessor.d.ts +2 -0
  69. package/lib/esm/actionProcessor/core/event/express/api/getEventGetStorySessionActionProcessor.d.ts +2 -0
  70. package/lib/esm/actionProcessor/core/event/express/api/getEventMatchStoryActionProcessor.d.ts +2 -0
  71. package/lib/esm/actionProcessor/core/event/express/api/getEventTransformResponseResultActionProcessor.d.ts +2 -0
  72. package/lib/esm/actionProcessor/core/event/index.d.ts +3 -0
  73. package/lib/esm/actionProcessor/core/event/index.js +3 -0
  74. package/lib/esm/actionProcessor/core/event/node/index.d.ts +1 -0
  75. package/lib/esm/actionProcessor/core/event/node/index.js +1 -0
  76. package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventAutoRespondActionProcessor.d.ts +2 -0
  77. package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventAutoRespondActionProcessor.js +9 -0
  78. package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventGetRecordsActionProcessor.d.ts +2 -0
  79. package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventGetRecordsActionProcessor.js +13 -0
  80. package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventGetStorySessionActionProcessor.d.ts +2 -0
  81. package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventGetStorySessionActionProcessor.js +9 -0
  82. package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventMatchStoryActionProcessor.d.ts +2 -0
  83. package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventMatchStoryActionProcessor.js +18 -0
  84. package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventTransformResponseResultActionProcessor.d.ts +2 -0
  85. package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventTransformResponseResultActionProcessor.js +15 -0
  86. package/lib/esm/actionProcessor/core/event/node/serviceFunction/index.d.ts +2 -0
  87. package/lib/esm/actionProcessor/core/event/node/serviceFunction/index.js +12 -0
  88. package/lib/esm/actionProcessor/core/event/node/serviceFunction/types.d.ts +11 -0
  89. package/lib/esm/actionProcessor/core/event/node/serviceFunction/types.js +1 -0
  90. package/lib/esm/actionProcessor/core/event/queue/getEventAutoRespondActionProcessor.d.ts +2 -0
  91. package/lib/esm/actionProcessor/core/event/queue/getEventAutoRespondActionProcessor.js +14 -0
  92. package/lib/esm/actionProcessor/core/event/queue/getEventGetRecordsActionProcessor.d.ts +2 -0
  93. package/lib/esm/actionProcessor/core/event/queue/getEventGetRecordsActionProcessor.js +16 -0
  94. package/lib/esm/actionProcessor/core/event/queue/getEventGetStorySessionActionProcessor.d.ts +2 -0
  95. package/lib/esm/actionProcessor/core/event/queue/getEventGetStorySessionActionProcessor.js +9 -0
  96. package/lib/esm/actionProcessor/core/event/queue/getEventMatchStoryActionProcessor.d.ts +2 -0
  97. package/lib/esm/actionProcessor/core/event/queue/getEventMatchStoryActionProcessor.js +28 -0
  98. package/lib/esm/actionProcessor/core/event/queue/getEventTransformResponseResultActionProcessor.d.ts +2 -0
  99. package/lib/esm/actionProcessor/core/event/queue/getEventTransformResponseResultActionProcessor.js +11 -0
  100. package/lib/esm/actionProcessor/core/event/queue/index.d.ts +2 -0
  101. package/lib/esm/actionProcessor/core/event/queue/index.js +12 -0
  102. package/lib/esm/actionProcessor/core/event/queue/types.d.ts +17 -0
  103. package/lib/esm/actionProcessor/core/event/queue/types.js +1 -0
  104. package/lib/esm/actionProcessor/core/eventBus/getEventBusSendMessagesActionProcessor.d.ts +10 -0
  105. package/lib/esm/actionProcessor/core/eventBus/getEventBusSendMessagesActionProcessor.js +30 -0
  106. package/lib/esm/actionProcessor/core/eventBus/index.d.ts +2 -0
  107. package/lib/esm/actionProcessor/core/eventBus/index.js +4 -0
  108. package/lib/esm/actionProcessor/core/getCoreActionProcessor.d.ts +2 -0
  109. package/lib/esm/actionProcessor/core/getCoreActionProcessor.js +8 -0
  110. package/lib/esm/actionProcessor/{graphDatabaseOverride → core/graphDatabaseOverride}/getGraphDatabaseExecuteOpenCypherQueryActionProcessor.js +9 -3
  111. package/lib/esm/actionProcessor/core/index.d.ts +2 -0
  112. package/lib/esm/actionProcessor/core/index.js +2 -0
  113. package/lib/esm/actionProcessor/core/queue/getQueueSendMessageActionProcessor.d.ts +2 -0
  114. package/lib/esm/actionProcessor/core/queue/getQueueSendMessageActionProcessor.js +33 -0
  115. package/lib/esm/actionProcessor/core/queue/index.d.ts +2 -0
  116. package/lib/esm/actionProcessor/core/queue/index.js +4 -0
  117. package/lib/esm/actionProcessor/index.d.ts +4 -1
  118. package/lib/esm/actionProcessor/index.js +18 -1
  119. package/lib/esm/actionProcessor/webserver/index.d.ts +2 -0
  120. package/lib/esm/actionProcessor/webserver/index.js +4 -0
  121. package/lib/esm/actionProcessor/webserver/serviceFunctionOverride/getServiceFunctionExecuteActionProcessor.d.ts +2 -0
  122. package/lib/esm/actionProcessor/webserver/serviceFunctionOverride/getServiceFunctionExecuteActionProcessor.js +29 -0
  123. package/lib/esm/actionProcessor/webserver/serviceFunctionOverride/index.d.ts +2 -0
  124. package/lib/esm/actionProcessor/webserver/serviceFunctionOverride/index.js +4 -0
  125. package/lib/esm/implementations/apiImplementation.d.ts +2 -0
  126. package/lib/esm/implementations/apiImplementation.js +129 -0
  127. package/lib/esm/implementations/eventBusImplementation.d.ts +2 -0
  128. package/lib/esm/implementations/eventBusImplementation.js +40 -0
  129. package/lib/esm/implementations/index.d.ts +4 -1
  130. package/lib/esm/implementations/index.js +4 -1
  131. package/lib/esm/implementations/queueImplementation.d.ts +2 -0
  132. package/lib/esm/implementations/queueImplementation.js +34 -0
  133. package/lib/esm/implementations/serviceFunctionImplementation.d.ts +2 -0
  134. package/lib/esm/implementations/serviceFunctionImplementation.js +21 -0
  135. package/lib/esm/logic/eventBus.d.ts +11 -0
  136. package/lib/esm/logic/eventBus.js +31 -0
  137. package/lib/esm/logic/index.d.ts +2 -0
  138. package/lib/esm/logic/index.js +2 -0
  139. package/lib/esm/logic/processEvent.d.ts +2 -0
  140. package/lib/esm/logic/processEvent.js +20 -0
  141. package/lib/esm/main.d.ts +1 -0
  142. package/lib/esm/main.js +9 -123
  143. package/package.json +6 -6
  144. package/lib/commonjs/getActionProcessor/core/event/index.d.ts +0 -1
  145. package/lib/commonjs/getActionProcessor/core/index.d.ts +0 -1
  146. package/lib/commonjs/getActionProcessor/index.d.ts +0 -1
  147. package/lib/commonjs/implementations/route.d.ts +0 -3
  148. package/lib/commonjs/implementations/route.js +0 -67
  149. package/lib/esm/getActionProcessor/core/event/index.d.ts +0 -1
  150. package/lib/esm/getActionProcessor/core/event/index.js +0 -1
  151. package/lib/esm/getActionProcessor/core/index.d.ts +0 -1
  152. package/lib/esm/getActionProcessor/core/index.js +0 -1
  153. package/lib/esm/getActionProcessor/index.d.ts +0 -1
  154. package/lib/esm/getActionProcessor/index.js +0 -1
  155. package/lib/esm/implementations/route.d.ts +0 -3
  156. package/lib/esm/implementations/route.js +0 -58
  157. /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventAutoRespondActionProcessor.d.ts +0 -0
  158. /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventAutoRespondActionProcessor.js +0 -0
  159. /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventGetRecordsActionProcessor.d.ts +0 -0
  160. /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventGetRecordsActionProcessor.js +0 -0
  161. /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventGetStorySessionActionProcessor.d.ts +0 -0
  162. /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventGetStorySessionActionProcessor.js +0 -0
  163. /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventMatchStoryActionProcessor.d.ts +0 -0
  164. /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventMatchStoryActionProcessor.js +0 -0
  165. /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventTransformResponseResultActionProcessor.d.ts +0 -0
  166. /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventTransformResponseResultActionProcessor.js +0 -0
  167. /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/index.d.ts +0 -0
  168. /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/index.js +0 -0
  169. /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/types.d.ts +0 -0
  170. /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/types.js +0 -0
  171. /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/index.d.ts +0 -0
  172. /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/index.js +0 -0
  173. /package/lib/{esm/getActionProcessor/core/event/express/api → commonjs/actionProcessor/core/event/node/serviceFunction}/getEventAutoRespondActionProcessor.d.ts +0 -0
  174. /package/lib/{esm/getActionProcessor/core/event/express/api → commonjs/actionProcessor/core/event/node/serviceFunction}/getEventGetRecordsActionProcessor.d.ts +0 -0
  175. /package/lib/{esm/getActionProcessor/core/event/express/api → commonjs/actionProcessor/core/event/node/serviceFunction}/getEventGetStorySessionActionProcessor.d.ts +0 -0
  176. /package/lib/{esm/getActionProcessor/core/event/express/api → commonjs/actionProcessor/core/event/node/serviceFunction}/getEventMatchStoryActionProcessor.d.ts +0 -0
  177. /package/lib/{esm/getActionProcessor/core/event/express/api → commonjs/actionProcessor/core/event/node/serviceFunction}/getEventTransformResponseResultActionProcessor.d.ts +0 -0
  178. /package/lib/commonjs/actionProcessor/{graphDatabaseOverride → core/graphDatabaseOverride}/getGraphDatabaseExecuteOpenCypherQueryActionProcessor.d.ts +0 -0
  179. /package/lib/commonjs/actionProcessor/{graphDatabaseOverride → core/graphDatabaseOverride}/index.d.ts +0 -0
  180. /package/lib/commonjs/actionProcessor/{graphDatabaseOverride → core/graphDatabaseOverride}/index.js +0 -0
  181. /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/getEventAutoRespondActionProcessor.js +0 -0
  182. /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/getEventGetRecordsActionProcessor.js +0 -0
  183. /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/getEventGetStorySessionActionProcessor.js +0 -0
  184. /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/getEventMatchStoryActionProcessor.js +0 -0
  185. /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/getEventTransformResponseResultActionProcessor.js +0 -0
  186. /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/index.d.ts +0 -0
  187. /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/index.js +0 -0
  188. /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/types.d.ts +0 -0
  189. /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/types.js +0 -0
  190. /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/index.d.ts +0 -0
  191. /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/index.js +0 -0
  192. /package/lib/esm/actionProcessor/{graphDatabaseOverride → core/graphDatabaseOverride}/getGraphDatabaseExecuteOpenCypherQueryActionProcessor.d.ts +0 -0
  193. /package/lib/esm/actionProcessor/{graphDatabaseOverride → core/graphDatabaseOverride}/index.d.ts +0 -0
  194. /package/lib/esm/actionProcessor/{graphDatabaseOverride → core/graphDatabaseOverride}/index.js +0 -0
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getQueueSendMessagesActionProcessor = void 0;
13
+ const quidproquo_core_1 = require("quidproquo-core");
14
+ const quidproquo_core_2 = require("quidproquo-core");
15
+ const uuid_1 = require("uuid");
16
+ const eventBus_1 = require("../../../logic/eventBus");
17
+ const getProcessQueueSendMessage = (qpqConfig) => {
18
+ return ({ queueName, queueMessages, context }, session) => __awaiter(void 0, void 0, void 0, function* () {
19
+ var _a, _b, _c, _d;
20
+ const queueConfig = quidproquo_core_1.qpqCoreUtils.getQueueByName(qpqConfig, queueName);
21
+ if (!queueConfig) {
22
+ return (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.ErrorTypeEnum.NotFound, `Queue ${queueName} not found`);
23
+ }
24
+ for (const queueMessage of queueMessages) {
25
+ const queueEvent = {
26
+ payload: queueMessage.payload,
27
+ type: queueMessage.type,
28
+ storySession: Object.assign(Object.assign({}, session), { context }),
29
+ messageId: (0, uuid_1.v4)(),
30
+ queueName: queueName,
31
+ targetApplication: ((_a = queueConfig.owner) === null || _a === void 0 ? void 0 : _a.application) || quidproquo_core_1.qpqCoreUtils.getApplicationName(qpqConfig),
32
+ targetEnvironment: ((_b = queueConfig.owner) === null || _b === void 0 ? void 0 : _b.environment) || quidproquo_core_1.qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig),
33
+ targetFeature: ((_c = queueConfig.owner) === null || _c === void 0 ? void 0 : _c.feature) || quidproquo_core_1.qpqCoreUtils.getApplicationModuleFeature(qpqConfig),
34
+ targetModule: ((_d = queueConfig.owner) === null || _d === void 0 ? void 0 : _d.module) || quidproquo_core_1.qpqCoreUtils.getApplicationModuleName(qpqConfig),
35
+ };
36
+ eventBus_1.eventBus.publish(quidproquo_core_2.QueueActionType.SendMessages, queueEvent);
37
+ }
38
+ return (0, quidproquo_core_2.actionResult)(void 0);
39
+ });
40
+ };
41
+ const getQueueSendMessagesActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
42
+ return ({
43
+ [quidproquo_core_2.QueueActionType.SendMessages]: getProcessQueueSendMessage(qpqConfig),
44
+ });
45
+ });
46
+ exports.getQueueSendMessagesActionProcessor = getQueueSendMessagesActionProcessor;
@@ -0,0 +1,2 @@
1
+ import { ActionProcessorListResolver } from 'quidproquo-core';
2
+ export declare const getQueueActionProcessor: ActionProcessorListResolver;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getQueueActionProcessor = void 0;
13
+ const getQueueSendMessageActionProcessor_1 = require("./getQueueSendMessageActionProcessor");
14
+ const getQueueActionProcessor = (qpqConfig, dynamicModuleLoader) => __awaiter(void 0, void 0, void 0, function* () {
15
+ return (Object.assign({}, (yield (0, getQueueSendMessageActionProcessor_1.getQueueSendMessagesActionProcessor)(qpqConfig, dynamicModuleLoader))));
16
+ });
17
+ exports.getQueueActionProcessor = getQueueActionProcessor;
@@ -1 +1,4 @@
1
- export * from './graphDatabaseOverride';
1
+ import { ActionProcessorListResolver } from 'quidproquo-core';
2
+ export * from './core';
3
+ export * from './webserver';
4
+ export declare const getDevServerActionProcessors: ActionProcessorListResolver;
@@ -13,5 +13,25 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
13
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
17
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18
+ return new (P || (P = Promise))(function (resolve, reject) {
19
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
20
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
21
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
22
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
23
+ });
24
+ };
16
25
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./graphDatabaseOverride"), exports);
26
+ exports.getDevServerActionProcessors = void 0;
27
+ const quidproquo_actionprocessor_awslambda_1 = require("quidproquo-actionprocessor-awslambda");
28
+ const quidproquo_actionprocessor_node_1 = require("quidproquo-actionprocessor-node");
29
+ const core_1 = require("./core");
30
+ const webserver_1 = require("./webserver");
31
+ __exportStar(require("./core"), exports);
32
+ __exportStar(require("./webserver"), exports);
33
+ const getDevServerActionProcessors = (qpqConfig, dynamicModuleLoader) => __awaiter(void 0, void 0, void 0, function* () {
34
+ const storyActionProcessor = Object.assign(Object.assign(Object.assign(Object.assign({}, (yield (0, quidproquo_actionprocessor_awslambda_1.getAwsActionProcessors)(qpqConfig, dynamicModuleLoader))), (yield (0, core_1.getCoreActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, webserver_1.getWebserverActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, quidproquo_actionprocessor_node_1.getCustomActionActionProcessor)(qpqConfig, dynamicModuleLoader)));
35
+ return storyActionProcessor;
36
+ });
37
+ exports.getDevServerActionProcessors = getDevServerActionProcessors;
@@ -0,0 +1,2 @@
1
+ import { ActionProcessorListResolver } from 'quidproquo-core';
2
+ export declare const getWebserverActionProcessor: ActionProcessorListResolver;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getWebserverActionProcessor = void 0;
13
+ const serviceFunctionOverride_1 = require("./serviceFunctionOverride");
14
+ const getWebserverActionProcessor = (qpqConfig, dynamicModuleLoader) => __awaiter(void 0, void 0, void 0, function* () {
15
+ return (Object.assign({}, (yield (0, serviceFunctionOverride_1.getServiceFunctionActionProcessor)(qpqConfig, dynamicModuleLoader))));
16
+ });
17
+ exports.getWebserverActionProcessor = getWebserverActionProcessor;
@@ -0,0 +1,2 @@
1
+ import { ActionProcessorListResolver } from 'quidproquo-core';
2
+ export declare const getServiceFunctionExecuteActionProcessor: ActionProcessorListResolver;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getServiceFunctionExecuteActionProcessor = void 0;
13
+ const quidproquo_core_1 = require("quidproquo-core");
14
+ const quidproquo_webserver_1 = require("quidproquo-webserver");
15
+ const eventBus_1 = require("../../../logic/eventBus");
16
+ const getProcessExecute = (qpqConfig, dynamicModuleLoader) => {
17
+ return ({ functionName, service, payload, context, isAsync }, session) => __awaiter(void 0, void 0, void 0, function* () {
18
+ const serviceFunctionEvent = {
19
+ functionName: functionName,
20
+ serviceName: service,
21
+ payload: payload,
22
+ storySession: Object.assign(Object.assign({}, session), { context }),
23
+ };
24
+ const eventPromise = eventBus_1.eventBus.publishAndWaitForResponse(quidproquo_webserver_1.ServiceFunctionActionType.Execute, serviceFunctionEvent);
25
+ if (isAsync) {
26
+ return (0, quidproquo_core_1.actionResult)(void 0);
27
+ }
28
+ const response = yield eventPromise;
29
+ if (response.error) {
30
+ return (0, quidproquo_core_1.actionResultError)(response.error.errorType, response.error.errorText, response.error.errorStack);
31
+ }
32
+ console.log('Result', response.result);
33
+ return (0, quidproquo_core_1.actionResult)(response.result);
34
+ });
35
+ };
36
+ const getServiceFunctionExecuteActionProcessor = (qpqConfig, dynamicModuleLoader) => __awaiter(void 0, void 0, void 0, function* () {
37
+ return ({
38
+ [quidproquo_webserver_1.ServiceFunctionActionType.Execute]: getProcessExecute(qpqConfig, dynamicModuleLoader),
39
+ });
40
+ });
41
+ exports.getServiceFunctionExecuteActionProcessor = getServiceFunctionExecuteActionProcessor;
@@ -0,0 +1,2 @@
1
+ import { ActionProcessorListResolver } from 'quidproquo-core';
2
+ export declare const getServiceFunctionActionProcessor: ActionProcessorListResolver;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getServiceFunctionActionProcessor = void 0;
13
+ const getServiceFunctionExecuteActionProcessor_1 = require("./getServiceFunctionExecuteActionProcessor");
14
+ const getServiceFunctionActionProcessor = (qpqConfig, dynamicModuleLoader) => __awaiter(void 0, void 0, void 0, function* () {
15
+ return (Object.assign({}, (yield (0, getServiceFunctionExecuteActionProcessor_1.getServiceFunctionExecuteActionProcessor)(qpqConfig, dynamicModuleLoader))));
16
+ });
17
+ exports.getServiceFunctionActionProcessor = getServiceFunctionActionProcessor;
@@ -0,0 +1,2 @@
1
+ import { DevServerConfig } from '../types';
2
+ export declare const apiImplementation: (devServerConfig: DevServerConfig) => Promise<void>;
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.apiImplementation = void 0;
16
+ const quidproquo_core_1 = require("quidproquo-core");
17
+ const quidproquo_webserver_1 = require("quidproquo-webserver");
18
+ const body_parser_1 = __importDefault(require("body-parser"));
19
+ const express_1 = __importDefault(require("express"));
20
+ const multer_1 = __importDefault(require("multer"));
21
+ const path_1 = __importDefault(require("path"));
22
+ const actionProcessor_1 = require("../actionProcessor");
23
+ const allServiceConfig_1 = require("../allServiceConfig");
24
+ const logic_1 = require("../logic");
25
+ const getServiceBaseDomain = (qpqConfig, devServerConfig) => quidproquo_webserver_1.qpqWebServerUtils.getDomainRoot(`${devServerConfig.serverDomain}:${devServerConfig.serverPort}`, quidproquo_core_1.qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig), quidproquo_core_1.qpqCoreUtils.getApplicationModuleFeature(qpqConfig));
26
+ const getApiDomainsFromConfig = (qpqConfig, devServerConfig) => {
27
+ const baseDomain = getServiceBaseDomain(qpqConfig, devServerConfig);
28
+ const serviceName = quidproquo_core_1.qpqCoreUtils.getApplicationModuleName(qpqConfig);
29
+ // Get apis
30
+ const apiConfigs = quidproquo_webserver_1.qpqWebServerUtils.getApiConfigs(qpqConfig);
31
+ const apiDomains = apiConfigs.map((apiConfig) => ({
32
+ apiName: apiConfig.apiName,
33
+ service: serviceName,
34
+ qpqConfig,
35
+ domain: `${apiConfig.apiSubdomain}.${baseDomain}`,
36
+ devDomain: baseDomain,
37
+ devPath: `/${apiConfig.apiSubdomain}/${serviceName}`,
38
+ }));
39
+ return apiDomains;
40
+ };
41
+ const getDynamicModuleLoader = (qpqConfig, devServerConfig) => {
42
+ const serviceName = quidproquo_core_1.qpqCoreUtils.getApplicationModuleName(qpqConfig);
43
+ return (runtime) => __awaiter(void 0, void 0, void 0, function* () { return devServerConfig.dynamicModuleLoader(serviceName, runtime); });
44
+ };
45
+ const apiImplementation = (devServerConfig) => __awaiter(void 0, void 0, void 0, function* () {
46
+ const allServiceConfig = (0, allServiceConfig_1.getAllServiceConfigs)(devServerConfig);
47
+ const app = (0, express_1.default)();
48
+ app.use((0, multer_1.default)().any());
49
+ app.use(body_parser_1.default.json({ limit: '50mb' }));
50
+ const apiConfigs = allServiceConfig.map((qpqConfig) => getApiDomainsFromConfig(qpqConfig, devServerConfig)).flat();
51
+ console.log(apiConfigs.map((ac) => ac.devPath));
52
+ const adminFrontend = path_1.default.join(__dirname, '../../..', 'node_modules', 'quidproquo-web-admin', 'lib');
53
+ // Admin page
54
+ app.use('/admin', express_1.default.static(adminFrontend));
55
+ app.get('/admin/service/log/list', (req, res) => {
56
+ // Manually set CORS headers
57
+ res.header('Access-Control-Allow-Headers', '*');
58
+ res.header('Access-Control-Allow-Methods', '*');
59
+ res.header('Access-Control-Allow-Origin', '*');
60
+ res.header('Access-Control-Allow-Credentials', 'false');
61
+ const serviceList = allServiceConfig.map((qpqConfig) => quidproquo_core_1.qpqCoreUtils.getApplicationModuleName(qpqConfig)).map((name) => `api/${name}`);
62
+ res.json(serviceList);
63
+ });
64
+ app.use(express_1.default.json());
65
+ app.options('/admin/service/log/execute', (req, res) => __awaiter(void 0, void 0, void 0, function* () {
66
+ // Manually set CORS headers
67
+ res.header('Access-Control-Allow-Headers', '*');
68
+ res.header('Access-Control-Allow-Methods', '*');
69
+ res.header('Access-Control-Allow-Origin', '*');
70
+ res.header('Access-Control-Allow-Credentials', 'false');
71
+ res.json({ done: true });
72
+ }));
73
+ app.get('/mf-manifest-location.json', (req, res) => __awaiter(void 0, void 0, void 0, function* () {
74
+ // Manually set CORS headers
75
+ res.header('Access-Control-Allow-Headers', '*');
76
+ res.header('Access-Control-Allow-Methods', '*');
77
+ res.header('Access-Control-Allow-Origin', '*');
78
+ res.header('Access-Control-Allow-Credentials', 'false');
79
+ res.json({ location: 'http://localhost:3005/mf-manifest.json' });
80
+ }));
81
+ app.post('/admin/service/log/execute', (req, res) => __awaiter(void 0, void 0, void 0, function* () {
82
+ // Manually set CORS headers
83
+ res.header('Access-Control-Allow-Headers', '*');
84
+ res.header('Access-Control-Allow-Methods', '*');
85
+ res.header('Access-Control-Allow-Origin', '*');
86
+ res.header('Access-Control-Allow-Credentials', 'false');
87
+ // TODO: Get list of services from config dynamically
88
+ const serviceLog = req.body;
89
+ let runtimeModule = quidproquo_core_1.askProcessEvent;
90
+ if (serviceLog.runtimeType === quidproquo_core_1.QpqRuntimeType.EXECUTE_STORY) {
91
+ const [srcEntry, module] = serviceLog.tags[0].split('::');
92
+ const loadedModule = yield devServerConfig.dynamicModuleLoader(serviceLog.moduleName, srcEntry);
93
+ runtimeModule = loadedModule[module];
94
+ }
95
+ const result = yield (0, quidproquo_core_1.qpqExecuteLog)(serviceLog, runtimeModule);
96
+ res.json(result);
97
+ }));
98
+ // Proxy for all services
99
+ app.all('*', (req, res) => __awaiter(void 0, void 0, void 0, function* () {
100
+ const apiConfig = apiConfigs.find((c) => req.url.startsWith(`${c.devPath}/`));
101
+ if (apiConfig) {
102
+ console.log(`[${req.method}::${req.socket.remoteAddress}]: ${req.protocol}://${req.get('host')}${req.url}`);
103
+ const event = {
104
+ protocol: req.protocol,
105
+ host: req.get('host') || devServerConfig.serverDomain,
106
+ path: req.url.substring(apiConfig.devPath.length).split('?')[0],
107
+ ip: req.socket.remoteAddress || '127.0.0.1',
108
+ query: req.query,
109
+ correlation: '',
110
+ headers: req.headers,
111
+ method: req.method,
112
+ isBase64Encoded: false,
113
+ body: typeof req.body === 'object' ? JSON.stringify(req.body) : req.body,
114
+ };
115
+ if (req.files) {
116
+ event.files = req.files.map((file) => ({
117
+ base64Data: file.buffer.toString('base64'),
118
+ filename: file.originalname,
119
+ mimetype: file.mimetype,
120
+ }));
121
+ }
122
+ const response = yield (0, logic_1.processEvent)(event, apiConfig.qpqConfig, getDynamicModuleLoader(apiConfig.qpqConfig, devServerConfig), actionProcessor_1.getExpressApiEventEventProcessor, quidproquo_core_1.QpqRuntimeType.API);
123
+ if (response.result) {
124
+ for (const [header, value] of Object.entries(response.result.headers)) {
125
+ res.set(header, value);
126
+ }
127
+ if (response.result.isBase64Encoded) {
128
+ res.status(response.result.statusCode).send(Buffer.from(response.result.body, 'base64'));
129
+ }
130
+ else {
131
+ res.status(response.result.statusCode).send(response.result.body);
132
+ }
133
+ }
134
+ }
135
+ else {
136
+ console.log(`NotFound::[${req.method}::${req.socket.remoteAddress}]: ${req.protocol}://${req.get('host')}${req.url}`);
137
+ res.status(500).send({ message: 'resource does not exist' });
138
+ }
139
+ }));
140
+ app.listen(devServerConfig.serverPort, '0.0.0.0', () => {
141
+ const baseDomain = getServiceBaseDomain(allServiceConfig[0], devServerConfig);
142
+ console.log(`⚡️⚡️⚡️[Qpq - Dev Server]⚡️⚡️⚡️: Server is running at [http://${baseDomain}]`);
143
+ });
144
+ });
145
+ exports.apiImplementation = apiImplementation;
@@ -0,0 +1,2 @@
1
+ import { DevServerConfig } from '../types';
2
+ export declare const eventBusImplementation: (devServerConfig: DevServerConfig) => Promise<void>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.eventBusImplementation = void 0;
13
+ const quidproquo_core_1 = require("quidproquo-core");
14
+ const uuid_1 = require("uuid");
15
+ const logic_1 = require("../logic");
16
+ const processQueueEventBusSubscriptions = (qpqConfig, ebMessage) => __awaiter(void 0, void 0, void 0, function* () {
17
+ var _a, _b, _c, _d;
18
+ const allEventBuses = quidproquo_core_1.qpqCoreUtils.getAllEventBusConfigs(qpqConfig).filter((ebc) => {
19
+ var _a, _b, _c, _d, _e, _f, _g, _h;
20
+ return ((!((_a = ebc.owner) === null || _a === void 0 ? void 0 : _a.application) || ((_b = ebc.owner) === null || _b === void 0 ? void 0 : _b.application) === ebMessage.targetApplication) &&
21
+ (!((_c = ebc.owner) === null || _c === void 0 ? void 0 : _c.environment) || ((_d = ebc.owner) === null || _d === void 0 ? void 0 : _d.environment) === ebMessage.targetEnvironment) &&
22
+ (!((_e = ebc.owner) === null || _e === void 0 ? void 0 : _e.module) || ((_f = ebc.owner) === null || _f === void 0 ? void 0 : _f.module) === ebMessage.targetModule) &&
23
+ ((!((_g = ebc.owner) === null || _g === void 0 ? void 0 : _g.feature) && !ebMessage.targetFeature) || ((_h = ebc.owner) === null || _h === void 0 ? void 0 : _h.feature) === ebMessage.targetFeature));
24
+ });
25
+ // All the queues that we should publish to
26
+ const queues = quidproquo_core_1.qpqCoreUtils.getQueues(qpqConfig).filter((q) => {
27
+ return !!q.eventBusSubscriptions.find((ebsub) => {
28
+ return allEventBuses.some((eb) => { var _a, _b; return ebsub === ((_a = eb.owner) === null || _a === void 0 ? void 0 : _a.resourceNameOverride) || (!((_b = eb.owner) === null || _b === void 0 ? void 0 : _b.resourceNameOverride) && ebsub === eb.name); });
29
+ });
30
+ });
31
+ for (const queue of queues) {
32
+ const queueMessage = {
33
+ payload: ebMessage.payload,
34
+ type: ebMessage.type,
35
+ storySession: ebMessage.storySession,
36
+ queueName: queue.name,
37
+ targetApplication: ((_a = queue.owner) === null || _a === void 0 ? void 0 : _a.application) || quidproquo_core_1.qpqCoreUtils.getApplicationName(qpqConfig),
38
+ targetEnvironment: ((_b = queue.owner) === null || _b === void 0 ? void 0 : _b.environment) || quidproquo_core_1.qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig),
39
+ targetFeature: ((_c = queue.owner) === null || _c === void 0 ? void 0 : _c.feature) || quidproquo_core_1.qpqCoreUtils.getApplicationModuleFeature(qpqConfig),
40
+ targetModule: ((_d = queue.owner) === null || _d === void 0 ? void 0 : _d.module) || quidproquo_core_1.qpqCoreUtils.getApplicationModuleName(qpqConfig),
41
+ messageId: (0, uuid_1.v4)(),
42
+ };
43
+ logic_1.eventBus.publish(quidproquo_core_1.QueueActionType.SendMessages, queueMessage);
44
+ }
45
+ });
46
+ const eventBusImplementation = (devServerConfig) => __awaiter(void 0, void 0, void 0, function* () {
47
+ logic_1.eventBus.on(quidproquo_core_1.EventBusActionType.SendMessages, (payload, correlation) => __awaiter(void 0, void 0, void 0, function* () {
48
+ for (const qpqConfig of devServerConfig.qpqConfigs) {
49
+ yield processQueueEventBusSubscriptions(qpqConfig, payload);
50
+ }
51
+ }));
52
+ // Never ends
53
+ yield new Promise(() => { });
54
+ });
55
+ exports.eventBusImplementation = eventBusImplementation;
@@ -1 +1,4 @@
1
- export * from './route';
1
+ export * from './apiImplementation';
2
+ export * from './eventBusImplementation';
3
+ export * from './queueImplementation';
4
+ export * from './serviceFunctionImplementation';
@@ -14,4 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./route"), exports);
17
+ __exportStar(require("./apiImplementation"), exports);
18
+ __exportStar(require("./eventBusImplementation"), exports);
19
+ __exportStar(require("./queueImplementation"), exports);
20
+ __exportStar(require("./serviceFunctionImplementation"), exports);
@@ -0,0 +1,2 @@
1
+ import { DevServerConfig } from '../types';
2
+ export declare const queueImplementation: (devServerConfig: DevServerConfig) => Promise<void>;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.queueImplementation = void 0;
13
+ const quidproquo_core_1 = require("quidproquo-core");
14
+ const queue_1 = require("../actionProcessor/core/event/queue");
15
+ const logic_1 = require("../logic");
16
+ const getDynamicModuleLoader = (qpqConfig, devServerConfig) => {
17
+ const serviceName = quidproquo_core_1.qpqCoreUtils.getApplicationModuleName(qpqConfig);
18
+ return (runtime) => __awaiter(void 0, void 0, void 0, function* () { return devServerConfig.dynamicModuleLoader(serviceName, runtime); });
19
+ };
20
+ const processQueueMessages = (qpqConfig, payload, devServerConfig) => __awaiter(void 0, void 0, void 0, function* () {
21
+ if (payload.targetEnvironment !== quidproquo_core_1.qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig)) {
22
+ return;
23
+ }
24
+ if (payload.targetApplication !== quidproquo_core_1.qpqCoreUtils.getApplicationName(qpqConfig)) {
25
+ return;
26
+ }
27
+ if (payload.targetModule !== quidproquo_core_1.qpqCoreUtils.getApplicationModuleName(qpqConfig)) {
28
+ return;
29
+ }
30
+ const feature = quidproquo_core_1.qpqCoreUtils.getApplicationModuleFeature(qpqConfig);
31
+ if ((!!payload.targetFeature || !!feature) && payload.targetFeature !== quidproquo_core_1.qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig)) {
32
+ return;
33
+ }
34
+ console.log('Ready to process: ', JSON.stringify(payload, null, 2));
35
+ yield (0, logic_1.processEvent)(payload, qpqConfig, getDynamicModuleLoader(qpqConfig, devServerConfig), queue_1.getQueueEventProcessor, quidproquo_core_1.QpqRuntimeType.QUEUE_EVENT);
36
+ });
37
+ const queueImplementation = (devServerConfig) => __awaiter(void 0, void 0, void 0, function* () {
38
+ logic_1.eventBus.on(quidproquo_core_1.QueueActionType.SendMessages, (payload, correlation) => __awaiter(void 0, void 0, void 0, function* () {
39
+ console.log('Got QUEUE send message event');
40
+ for (const qpqConfig of devServerConfig.qpqConfigs) {
41
+ yield processQueueMessages(qpqConfig, payload, devServerConfig);
42
+ }
43
+ }));
44
+ // Never ends
45
+ yield new Promise(() => { });
46
+ });
47
+ exports.queueImplementation = queueImplementation;
@@ -0,0 +1,2 @@
1
+ import { DevServerConfig } from '../types';
2
+ export declare const serviceFunctionImplementation: (devServerConfig: DevServerConfig) => Promise<void>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.serviceFunctionImplementation = void 0;
13
+ const quidproquo_core_1 = require("quidproquo-core");
14
+ const quidproquo_webserver_1 = require("quidproquo-webserver");
15
+ const actionProcessor_1 = require("../actionProcessor");
16
+ const logic_1 = require("../logic");
17
+ const getDynamicModuleLoader = (qpqConfig, devServerConfig) => {
18
+ const serviceName = quidproquo_core_1.qpqCoreUtils.getApplicationModuleName(qpqConfig);
19
+ return (runtime) => __awaiter(void 0, void 0, void 0, function* () { return devServerConfig.dynamicModuleLoader(serviceName, runtime); });
20
+ };
21
+ const serviceFunctionImplementation = (devServerConfig) => __awaiter(void 0, void 0, void 0, function* () {
22
+ logic_1.eventBus.on(quidproquo_webserver_1.ServiceFunctionActionType.Execute, (payload, correlation) => __awaiter(void 0, void 0, void 0, function* () {
23
+ // We need to find the qpqConfig for this service.
24
+ const qpqConfig = devServerConfig.qpqConfigs.find((qpqConfig) => quidproquo_core_1.qpqCoreUtils.getApplicationModuleName(qpqConfig) === payload.serviceName);
25
+ const eventPromise = yield (0, logic_1.processEvent)(payload, qpqConfig, getDynamicModuleLoader(qpqConfig, devServerConfig), actionProcessor_1.getNodeServiceFunctionEventProcessor, quidproquo_core_1.QpqRuntimeType.SERVICE_FUNCTION_EXE);
26
+ if (correlation) {
27
+ // Emit the response back on the unique responseEvent channel
28
+ logic_1.eventBus.emit(correlation, eventPromise);
29
+ }
30
+ }));
31
+ // Never ends
32
+ yield new Promise(() => { });
33
+ });
34
+ exports.serviceFunctionImplementation = serviceFunctionImplementation;
@@ -0,0 +1,11 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ declare class EventBus extends EventEmitter {
4
+ private static instance;
5
+ private constructor();
6
+ static getInstance(): EventBus;
7
+ publishAndWaitForResponse(eventType: string, payload: any): Promise<any>;
8
+ publish(eventType: string, payload: any): Promise<void>;
9
+ }
10
+ export declare const eventBus: EventBus;
11
+ export {};
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.eventBus = void 0;
13
+ // EventBus.ts
14
+ const events_1 = require("events");
15
+ const uuid_1 = require("uuid");
16
+ class EventBus extends events_1.EventEmitter {
17
+ constructor() {
18
+ super();
19
+ }
20
+ static getInstance() {
21
+ if (!EventBus.instance) {
22
+ EventBus.instance = new EventBus();
23
+ }
24
+ return EventBus.instance;
25
+ }
26
+ publishAndWaitForResponse(eventType, payload) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ return new Promise((resolve) => {
29
+ const responseCorrelation = (0, uuid_1.v4)();
30
+ // Listen for the response once
31
+ this.once(responseCorrelation, (response) => {
32
+ resolve(response);
33
+ });
34
+ // Emit the event along with the response event name
35
+ this.emit(eventType, payload, responseCorrelation);
36
+ });
37
+ });
38
+ }
39
+ publish(eventType, payload) {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ this.emit(eventType, payload);
42
+ });
43
+ }
44
+ }
45
+ // Exporting a singleton instance of EventBus
46
+ exports.eventBus = EventBus.getInstance();
@@ -0,0 +1,2 @@
1
+ export * from './eventBus';
2
+ export * from './processEvent';
@@ -14,4 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./core"), exports);
17
+ __exportStar(require("./eventBus"), exports);
18
+ __exportStar(require("./processEvent"), exports);
@@ -0,0 +1,2 @@
1
+ import { ActionProcessorListResolver, DynamicModuleLoader, QPQConfig, QpqRuntimeType, StoryResult } from 'quidproquo-core';
2
+ export declare const processEvent: <E, ER>(expressEvent: E, qpqConfig: QPQConfig, dynamicModuleLoader: DynamicModuleLoader, getActionProcessors: ActionProcessorListResolver, qpqRuntimeType: QpqRuntimeType) => Promise<StoryResult<[E], ER>>;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.processEvent = void 0;
13
+ const quidproquo_actionprocessor_awslambda_1 = require("quidproquo-actionprocessor-awslambda");
14
+ const quidproquo_core_1 = require("quidproquo-core");
15
+ const crypto_1 = require("crypto");
16
+ const actionProcessor_1 = require("../actionProcessor");
17
+ // TODO: Make this a util or something based on server time or something..
18
+ const getDateNow = () => new Date().toISOString();
19
+ const processEvent = (expressEvent, qpqConfig, dynamicModuleLoader, getActionProcessors, qpqRuntimeType) => __awaiter(void 0, void 0, void 0, function* () {
20
+ const serviceName = quidproquo_core_1.qpqCoreUtils.getApplicationModuleName(qpqConfig);
21
+ const logger = (0, quidproquo_actionprocessor_awslambda_1.getLogger)(qpqConfig);
22
+ const resolveStory = (0, quidproquo_core_1.createRuntime)(qpqConfig, {
23
+ depth: 0,
24
+ context: {},
25
+ }, () => __awaiter(void 0, void 0, void 0, function* () {
26
+ return (Object.assign(Object.assign({}, (yield (0, actionProcessor_1.getDevServerActionProcessors)(qpqConfig, dynamicModuleLoader))), (yield getActionProcessors(qpqConfig, dynamicModuleLoader))));
27
+ }), getDateNow, logger, `${serviceName}::${(0, crypto_1.randomUUID)()}`, qpqRuntimeType, dynamicModuleLoader, []);
28
+ const result = yield resolveStory(quidproquo_core_1.askProcessEvent, [expressEvent]);
29
+ yield logger.waitToFinishWriting();
30
+ return result;
31
+ });
32
+ exports.processEvent = processEvent;