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.
- package/lib/commonjs/actionProcessor/core/event/index.d.ts +3 -0
- package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/index.js +2 -0
- package/lib/commonjs/actionProcessor/core/event/node/index.d.ts +1 -0
- package/lib/commonjs/{getActionProcessor/core → actionProcessor/core/event/node}/index.js +1 -1
- package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/getEventAutoRespondActionProcessor.js +24 -0
- package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/getEventGetRecordsActionProcessor.js +28 -0
- package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/getEventGetStorySessionActionProcessor.js +24 -0
- package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/getEventMatchStoryActionProcessor.js +33 -0
- package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/getEventTransformResponseResultActionProcessor.js +30 -0
- package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/index.d.ts +2 -0
- package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/index.js +21 -0
- package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/types.d.ts +11 -0
- package/lib/commonjs/actionProcessor/core/event/node/serviceFunction/types.js +2 -0
- package/lib/commonjs/actionProcessor/core/event/queue/getEventAutoRespondActionProcessor.d.ts +2 -0
- package/lib/commonjs/actionProcessor/core/event/queue/getEventAutoRespondActionProcessor.js +29 -0
- package/lib/commonjs/actionProcessor/core/event/queue/getEventGetRecordsActionProcessor.d.ts +2 -0
- package/lib/commonjs/actionProcessor/core/event/queue/getEventGetRecordsActionProcessor.js +31 -0
- package/lib/commonjs/actionProcessor/core/event/queue/getEventGetStorySessionActionProcessor.d.ts +2 -0
- package/lib/commonjs/actionProcessor/core/event/queue/getEventGetStorySessionActionProcessor.js +24 -0
- package/lib/commonjs/actionProcessor/core/event/queue/getEventMatchStoryActionProcessor.d.ts +2 -0
- package/lib/commonjs/actionProcessor/core/event/queue/getEventMatchStoryActionProcessor.js +43 -0
- package/lib/commonjs/actionProcessor/core/event/queue/getEventTransformResponseResultActionProcessor.d.ts +2 -0
- package/lib/commonjs/actionProcessor/core/event/queue/getEventTransformResponseResultActionProcessor.js +26 -0
- package/lib/commonjs/actionProcessor/core/event/queue/index.d.ts +2 -0
- package/lib/commonjs/actionProcessor/core/event/queue/index.js +21 -0
- package/lib/commonjs/actionProcessor/core/event/queue/types.d.ts +17 -0
- package/lib/commonjs/actionProcessor/core/event/queue/types.js +2 -0
- package/lib/commonjs/actionProcessor/core/eventBus/getEventBusSendMessagesActionProcessor.d.ts +10 -0
- package/lib/commonjs/actionProcessor/core/eventBus/getEventBusSendMessagesActionProcessor.js +43 -0
- package/lib/commonjs/actionProcessor/core/eventBus/index.d.ts +2 -0
- package/lib/commonjs/actionProcessor/core/eventBus/index.js +17 -0
- package/lib/commonjs/actionProcessor/core/getCoreActionProcessor.d.ts +2 -0
- package/lib/commonjs/actionProcessor/core/getCoreActionProcessor.js +19 -0
- package/lib/commonjs/actionProcessor/{graphDatabaseOverride → core/graphDatabaseOverride}/getGraphDatabaseExecuteOpenCypherQueryActionProcessor.js +7 -3
- package/lib/commonjs/actionProcessor/core/index.d.ts +2 -0
- package/lib/commonjs/actionProcessor/core/index.js +18 -0
- package/lib/commonjs/actionProcessor/core/queue/getQueueSendMessageActionProcessor.d.ts +2 -0
- package/lib/commonjs/actionProcessor/core/queue/getQueueSendMessageActionProcessor.js +46 -0
- package/lib/commonjs/actionProcessor/core/queue/index.d.ts +2 -0
- package/lib/commonjs/actionProcessor/core/queue/index.js +17 -0
- package/lib/commonjs/actionProcessor/index.d.ts +4 -1
- package/lib/commonjs/actionProcessor/index.js +21 -1
- package/lib/commonjs/actionProcessor/webserver/index.d.ts +2 -0
- package/lib/commonjs/actionProcessor/webserver/index.js +17 -0
- package/lib/commonjs/actionProcessor/webserver/serviceFunctionOverride/getServiceFunctionExecuteActionProcessor.d.ts +2 -0
- package/lib/commonjs/actionProcessor/webserver/serviceFunctionOverride/getServiceFunctionExecuteActionProcessor.js +41 -0
- package/lib/commonjs/actionProcessor/webserver/serviceFunctionOverride/index.d.ts +2 -0
- package/lib/commonjs/actionProcessor/webserver/serviceFunctionOverride/index.js +17 -0
- package/lib/commonjs/implementations/apiImplementation.d.ts +2 -0
- package/lib/commonjs/implementations/apiImplementation.js +145 -0
- package/lib/commonjs/implementations/eventBusImplementation.d.ts +2 -0
- package/lib/commonjs/implementations/eventBusImplementation.js +55 -0
- package/lib/commonjs/implementations/index.d.ts +4 -1
- package/lib/commonjs/implementations/index.js +4 -1
- package/lib/commonjs/implementations/queueImplementation.d.ts +2 -0
- package/lib/commonjs/implementations/queueImplementation.js +47 -0
- package/lib/commonjs/implementations/serviceFunctionImplementation.d.ts +2 -0
- package/lib/commonjs/implementations/serviceFunctionImplementation.js +34 -0
- package/lib/commonjs/logic/eventBus.d.ts +11 -0
- package/lib/commonjs/logic/eventBus.js +46 -0
- package/lib/commonjs/logic/index.d.ts +2 -0
- package/lib/commonjs/{getActionProcessor → logic}/index.js +2 -1
- package/lib/commonjs/logic/processEvent.d.ts +2 -0
- package/lib/commonjs/logic/processEvent.js +32 -0
- package/lib/commonjs/main.d.ts +1 -0
- package/lib/commonjs/main.js +22 -125
- package/lib/esm/actionProcessor/core/event/express/api/getEventAutoRespondActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/core/event/express/api/getEventGetRecordsActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/core/event/express/api/getEventGetStorySessionActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/core/event/express/api/getEventMatchStoryActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/core/event/express/api/getEventTransformResponseResultActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/core/event/index.d.ts +3 -0
- package/lib/esm/actionProcessor/core/event/index.js +3 -0
- package/lib/esm/actionProcessor/core/event/node/index.d.ts +1 -0
- package/lib/esm/actionProcessor/core/event/node/index.js +1 -0
- package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventAutoRespondActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventAutoRespondActionProcessor.js +9 -0
- package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventGetRecordsActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventGetRecordsActionProcessor.js +13 -0
- package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventGetStorySessionActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventGetStorySessionActionProcessor.js +9 -0
- package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventMatchStoryActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventMatchStoryActionProcessor.js +18 -0
- package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventTransformResponseResultActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/core/event/node/serviceFunction/getEventTransformResponseResultActionProcessor.js +15 -0
- package/lib/esm/actionProcessor/core/event/node/serviceFunction/index.d.ts +2 -0
- package/lib/esm/actionProcessor/core/event/node/serviceFunction/index.js +12 -0
- package/lib/esm/actionProcessor/core/event/node/serviceFunction/types.d.ts +11 -0
- package/lib/esm/actionProcessor/core/event/node/serviceFunction/types.js +1 -0
- package/lib/esm/actionProcessor/core/event/queue/getEventAutoRespondActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/core/event/queue/getEventAutoRespondActionProcessor.js +14 -0
- package/lib/esm/actionProcessor/core/event/queue/getEventGetRecordsActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/core/event/queue/getEventGetRecordsActionProcessor.js +16 -0
- package/lib/esm/actionProcessor/core/event/queue/getEventGetStorySessionActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/core/event/queue/getEventGetStorySessionActionProcessor.js +9 -0
- package/lib/esm/actionProcessor/core/event/queue/getEventMatchStoryActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/core/event/queue/getEventMatchStoryActionProcessor.js +28 -0
- package/lib/esm/actionProcessor/core/event/queue/getEventTransformResponseResultActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/core/event/queue/getEventTransformResponseResultActionProcessor.js +11 -0
- package/lib/esm/actionProcessor/core/event/queue/index.d.ts +2 -0
- package/lib/esm/actionProcessor/core/event/queue/index.js +12 -0
- package/lib/esm/actionProcessor/core/event/queue/types.d.ts +17 -0
- package/lib/esm/actionProcessor/core/event/queue/types.js +1 -0
- package/lib/esm/actionProcessor/core/eventBus/getEventBusSendMessagesActionProcessor.d.ts +10 -0
- package/lib/esm/actionProcessor/core/eventBus/getEventBusSendMessagesActionProcessor.js +30 -0
- package/lib/esm/actionProcessor/core/eventBus/index.d.ts +2 -0
- package/lib/esm/actionProcessor/core/eventBus/index.js +4 -0
- package/lib/esm/actionProcessor/core/getCoreActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/core/getCoreActionProcessor.js +8 -0
- package/lib/esm/actionProcessor/{graphDatabaseOverride → core/graphDatabaseOverride}/getGraphDatabaseExecuteOpenCypherQueryActionProcessor.js +9 -3
- package/lib/esm/actionProcessor/core/index.d.ts +2 -0
- package/lib/esm/actionProcessor/core/index.js +2 -0
- package/lib/esm/actionProcessor/core/queue/getQueueSendMessageActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/core/queue/getQueueSendMessageActionProcessor.js +33 -0
- package/lib/esm/actionProcessor/core/queue/index.d.ts +2 -0
- package/lib/esm/actionProcessor/core/queue/index.js +4 -0
- package/lib/esm/actionProcessor/index.d.ts +4 -1
- package/lib/esm/actionProcessor/index.js +18 -1
- package/lib/esm/actionProcessor/webserver/index.d.ts +2 -0
- package/lib/esm/actionProcessor/webserver/index.js +4 -0
- package/lib/esm/actionProcessor/webserver/serviceFunctionOverride/getServiceFunctionExecuteActionProcessor.d.ts +2 -0
- package/lib/esm/actionProcessor/webserver/serviceFunctionOverride/getServiceFunctionExecuteActionProcessor.js +29 -0
- package/lib/esm/actionProcessor/webserver/serviceFunctionOverride/index.d.ts +2 -0
- package/lib/esm/actionProcessor/webserver/serviceFunctionOverride/index.js +4 -0
- package/lib/esm/implementations/apiImplementation.d.ts +2 -0
- package/lib/esm/implementations/apiImplementation.js +129 -0
- package/lib/esm/implementations/eventBusImplementation.d.ts +2 -0
- package/lib/esm/implementations/eventBusImplementation.js +40 -0
- package/lib/esm/implementations/index.d.ts +4 -1
- package/lib/esm/implementations/index.js +4 -1
- package/lib/esm/implementations/queueImplementation.d.ts +2 -0
- package/lib/esm/implementations/queueImplementation.js +34 -0
- package/lib/esm/implementations/serviceFunctionImplementation.d.ts +2 -0
- package/lib/esm/implementations/serviceFunctionImplementation.js +21 -0
- package/lib/esm/logic/eventBus.d.ts +11 -0
- package/lib/esm/logic/eventBus.js +31 -0
- package/lib/esm/logic/index.d.ts +2 -0
- package/lib/esm/logic/index.js +2 -0
- package/lib/esm/logic/processEvent.d.ts +2 -0
- package/lib/esm/logic/processEvent.js +20 -0
- package/lib/esm/main.d.ts +1 -0
- package/lib/esm/main.js +9 -123
- package/package.json +6 -6
- package/lib/commonjs/getActionProcessor/core/event/index.d.ts +0 -1
- package/lib/commonjs/getActionProcessor/core/index.d.ts +0 -1
- package/lib/commonjs/getActionProcessor/index.d.ts +0 -1
- package/lib/commonjs/implementations/route.d.ts +0 -3
- package/lib/commonjs/implementations/route.js +0 -67
- package/lib/esm/getActionProcessor/core/event/index.d.ts +0 -1
- package/lib/esm/getActionProcessor/core/event/index.js +0 -1
- package/lib/esm/getActionProcessor/core/index.d.ts +0 -1
- package/lib/esm/getActionProcessor/core/index.js +0 -1
- package/lib/esm/getActionProcessor/index.d.ts +0 -1
- package/lib/esm/getActionProcessor/index.js +0 -1
- package/lib/esm/implementations/route.d.ts +0 -3
- package/lib/esm/implementations/route.js +0 -58
- /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventAutoRespondActionProcessor.d.ts +0 -0
- /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventAutoRespondActionProcessor.js +0 -0
- /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventGetRecordsActionProcessor.d.ts +0 -0
- /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventGetRecordsActionProcessor.js +0 -0
- /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventGetStorySessionActionProcessor.d.ts +0 -0
- /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventGetStorySessionActionProcessor.js +0 -0
- /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventMatchStoryActionProcessor.d.ts +0 -0
- /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventMatchStoryActionProcessor.js +0 -0
- /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventTransformResponseResultActionProcessor.d.ts +0 -0
- /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/getEventTransformResponseResultActionProcessor.js +0 -0
- /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/index.d.ts +0 -0
- /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/index.js +0 -0
- /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/types.d.ts +0 -0
- /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/api/types.js +0 -0
- /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/index.d.ts +0 -0
- /package/lib/commonjs/{getActionProcessor → actionProcessor}/core/event/express/index.js +0 -0
- /package/lib/{esm/getActionProcessor/core/event/express/api → commonjs/actionProcessor/core/event/node/serviceFunction}/getEventAutoRespondActionProcessor.d.ts +0 -0
- /package/lib/{esm/getActionProcessor/core/event/express/api → commonjs/actionProcessor/core/event/node/serviceFunction}/getEventGetRecordsActionProcessor.d.ts +0 -0
- /package/lib/{esm/getActionProcessor/core/event/express/api → commonjs/actionProcessor/core/event/node/serviceFunction}/getEventGetStorySessionActionProcessor.d.ts +0 -0
- /package/lib/{esm/getActionProcessor/core/event/express/api → commonjs/actionProcessor/core/event/node/serviceFunction}/getEventMatchStoryActionProcessor.d.ts +0 -0
- /package/lib/{esm/getActionProcessor/core/event/express/api → commonjs/actionProcessor/core/event/node/serviceFunction}/getEventTransformResponseResultActionProcessor.d.ts +0 -0
- /package/lib/commonjs/actionProcessor/{graphDatabaseOverride → core/graphDatabaseOverride}/getGraphDatabaseExecuteOpenCypherQueryActionProcessor.d.ts +0 -0
- /package/lib/commonjs/actionProcessor/{graphDatabaseOverride → core/graphDatabaseOverride}/index.d.ts +0 -0
- /package/lib/commonjs/actionProcessor/{graphDatabaseOverride → core/graphDatabaseOverride}/index.js +0 -0
- /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/getEventAutoRespondActionProcessor.js +0 -0
- /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/getEventGetRecordsActionProcessor.js +0 -0
- /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/getEventGetStorySessionActionProcessor.js +0 -0
- /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/getEventMatchStoryActionProcessor.js +0 -0
- /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/getEventTransformResponseResultActionProcessor.js +0 -0
- /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/index.d.ts +0 -0
- /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/index.js +0 -0
- /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/types.d.ts +0 -0
- /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/api/types.js +0 -0
- /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/index.d.ts +0 -0
- /package/lib/esm/{getActionProcessor → actionProcessor}/core/event/express/index.js +0 -0
- /package/lib/esm/actionProcessor/{graphDatabaseOverride → core/graphDatabaseOverride}/getGraphDatabaseExecuteOpenCypherQueryActionProcessor.d.ts +0 -0
- /package/lib/esm/actionProcessor/{graphDatabaseOverride → core/graphDatabaseOverride}/index.d.ts +0 -0
- /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,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;
|
|
@@ -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
|
-
|
|
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,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,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,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,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,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;
|
|
@@ -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("./
|
|
17
|
+
__exportStar(require("./apiImplementation"), exports);
|
|
18
|
+
__exportStar(require("./eventBusImplementation"), exports);
|
|
19
|
+
__exportStar(require("./queueImplementation"), exports);
|
|
20
|
+
__exportStar(require("./serviceFunctionImplementation"), exports);
|
|
@@ -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,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();
|
|
@@ -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("./
|
|
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;
|