quidproquo-dev-server 0.0.228
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/README.md +3 -0
- package/lib/commonjs/allServiceConfig.d.ts +3 -0
- package/lib/commonjs/allServiceConfig.js +44 -0
- package/lib/commonjs/dynamicModuleLoader/dynamicModuleLoader.d.ts +3 -0
- package/lib/commonjs/dynamicModuleLoader/dynamicModuleLoader.js +17 -0
- package/lib/commonjs/dynamicModuleLoader/index.d.ts +1 -0
- package/lib/commonjs/dynamicModuleLoader/index.js +17 -0
- package/lib/commonjs/entry/index.d.ts +1 -0
- package/lib/commonjs/entry/index.js +17 -0
- package/lib/commonjs/entry/route.d.ts +3 -0
- package/lib/commonjs/entry/route.js +64 -0
- package/lib/commonjs/getActionProcessor/core/event/express/api/getEventAutoRespondActionProcessor.d.ts +2 -0
- package/lib/commonjs/getActionProcessor/core/event/express/api/getEventAutoRespondActionProcessor.js +31 -0
- package/lib/commonjs/getActionProcessor/core/event/express/api/getEventGetRecordsActionProcessor.d.ts +2 -0
- package/lib/commonjs/getActionProcessor/core/event/express/api/getEventGetRecordsActionProcessor.js +34 -0
- package/lib/commonjs/getActionProcessor/core/event/express/api/getEventGetStorySessionActionProcessor.d.ts +2 -0
- package/lib/commonjs/getActionProcessor/core/event/express/api/getEventGetStorySessionActionProcessor.js +22 -0
- package/lib/commonjs/getActionProcessor/core/event/express/api/getEventMatchStoryActionProcessor.d.ts +2 -0
- package/lib/commonjs/getActionProcessor/core/event/express/api/getEventMatchStoryActionProcessor.js +55 -0
- package/lib/commonjs/getActionProcessor/core/event/express/api/getEventTransformResponseResultActionProcessor.d.ts +2 -0
- package/lib/commonjs/getActionProcessor/core/event/express/api/getEventTransformResponseResultActionProcessor.js +60 -0
- package/lib/commonjs/getActionProcessor/core/event/express/api/index.d.ts +2 -0
- package/lib/commonjs/getActionProcessor/core/event/express/api/index.js +21 -0
- package/lib/commonjs/getActionProcessor/core/event/express/api/types.d.ts +8 -0
- package/lib/commonjs/getActionProcessor/core/event/express/api/types.js +2 -0
- package/lib/commonjs/getActionProcessor/core/event/express/index.d.ts +1 -0
- package/lib/commonjs/getActionProcessor/core/event/express/index.js +17 -0
- package/lib/commonjs/getActionProcessor/core/event/index.d.ts +1 -0
- package/lib/commonjs/getActionProcessor/core/event/index.js +17 -0
- package/lib/commonjs/getActionProcessor/core/index.d.ts +1 -0
- package/lib/commonjs/getActionProcessor/core/index.js +17 -0
- package/lib/commonjs/getActionProcessor/index.d.ts +1 -0
- package/lib/commonjs/getActionProcessor/index.js +17 -0
- package/lib/commonjs/index.d.ts +1 -0
- package/lib/commonjs/index.js +17 -0
- package/lib/commonjs/main.d.ts +2 -0
- package/lib/commonjs/main.js +143 -0
- package/lib/commonjs/types/DevServerConfig.d.ts +4 -0
- package/lib/commonjs/types/DevServerConfig.js +2 -0
- package/lib/commonjs/types/ExpressEvent.d.ts +26 -0
- package/lib/commonjs/types/ExpressEvent.js +2 -0
- package/lib/commonjs/types/index.d.ts +2 -0
- package/lib/commonjs/types/index.js +18 -0
- package/lib/esm/allServiceConfig.d.ts +3 -0
- package/lib/esm/allServiceConfig.js +40 -0
- package/lib/esm/dynamicModuleLoader/dynamicModuleLoader.d.ts +3 -0
- package/lib/esm/dynamicModuleLoader/dynamicModuleLoader.js +6 -0
- package/lib/esm/dynamicModuleLoader/index.d.ts +1 -0
- package/lib/esm/dynamicModuleLoader/index.js +1 -0
- package/lib/esm/entry/index.d.ts +1 -0
- package/lib/esm/entry/index.js +1 -0
- package/lib/esm/entry/route.d.ts +3 -0
- package/lib/esm/entry/route.js +52 -0
- package/lib/esm/getActionProcessor/core/event/express/api/getEventAutoRespondActionProcessor.d.ts +2 -0
- package/lib/esm/getActionProcessor/core/event/express/api/getEventAutoRespondActionProcessor.js +16 -0
- package/lib/esm/getActionProcessor/core/event/express/api/getEventGetRecordsActionProcessor.d.ts +2 -0
- package/lib/esm/getActionProcessor/core/event/express/api/getEventGetRecordsActionProcessor.js +19 -0
- package/lib/esm/getActionProcessor/core/event/express/api/getEventGetStorySessionActionProcessor.d.ts +2 -0
- package/lib/esm/getActionProcessor/core/event/express/api/getEventGetStorySessionActionProcessor.js +7 -0
- package/lib/esm/getActionProcessor/core/event/express/api/getEventMatchStoryActionProcessor.d.ts +2 -0
- package/lib/esm/getActionProcessor/core/event/express/api/getEventMatchStoryActionProcessor.js +40 -0
- package/lib/esm/getActionProcessor/core/event/express/api/getEventTransformResponseResultActionProcessor.d.ts +2 -0
- package/lib/esm/getActionProcessor/core/event/express/api/getEventTransformResponseResultActionProcessor.js +48 -0
- package/lib/esm/getActionProcessor/core/event/express/api/index.d.ts +2 -0
- package/lib/esm/getActionProcessor/core/event/express/api/index.js +12 -0
- package/lib/esm/getActionProcessor/core/event/express/api/types.d.ts +8 -0
- package/lib/esm/getActionProcessor/core/event/express/api/types.js +1 -0
- package/lib/esm/getActionProcessor/core/event/express/index.d.ts +1 -0
- package/lib/esm/getActionProcessor/core/event/express/index.js +1 -0
- package/lib/esm/getActionProcessor/core/event/index.d.ts +1 -0
- package/lib/esm/getActionProcessor/core/event/index.js +1 -0
- package/lib/esm/getActionProcessor/core/index.d.ts +1 -0
- package/lib/esm/getActionProcessor/core/index.js +1 -0
- package/lib/esm/getActionProcessor/index.d.ts +1 -0
- package/lib/esm/getActionProcessor/index.js +1 -0
- package/lib/esm/index.d.ts +1 -0
- package/lib/esm/index.js +1 -0
- package/lib/esm/main.d.ts +2 -0
- package/lib/esm/main.js +127 -0
- package/lib/esm/types/DevServerConfig.d.ts +4 -0
- package/lib/esm/types/DevServerConfig.js +1 -0
- package/lib/esm/types/ExpressEvent.d.ts +26 -0
- package/lib/esm/types/ExpressEvent.js +1 -0
- package/lib/esm/types/index.d.ts +2 -0
- package/lib/esm/types/index.js +2 -0
- package/package.json +41 -0
package/README.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAllServiceConfigs = void 0;
|
|
4
|
+
const quidproquo_1 = require("quidproquo");
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
6
|
+
// @ts-ignore - Special webpack loader
|
|
7
|
+
const quidproquo_dynamic_loader_1 = require("quidproquo-dynamic-loader");
|
|
8
|
+
// Create an async function to fetch all services
|
|
9
|
+
function getAllServiceConfigs(devServerConfig) {
|
|
10
|
+
// Iterate over each enum value and dynamically import the corresponding infrastructure
|
|
11
|
+
const allServices = quidproquo_dynamic_loader_1.qpqConfigs;
|
|
12
|
+
const rootDomain = `${devServerConfig.serverDomain}:${devServerConfig.serverPort}`;
|
|
13
|
+
// TODO: Make this pure
|
|
14
|
+
// Overload the domain settings to represent the local env
|
|
15
|
+
// This is kind of gross, mutating it, but this is just dev.
|
|
16
|
+
for (const qpqConfig of allServices) {
|
|
17
|
+
// Make it a production build
|
|
18
|
+
// const appSettings = qpqCoreUtils.getApplicationModuleSetting(qpqConfig);
|
|
19
|
+
// appSettings.feature = undefined;
|
|
20
|
+
// appSettings.environment = 'production';
|
|
21
|
+
const baseDomain = quidproquo_1.qpqWebServerUtils.getDomainRoot(rootDomain, quidproquo_1.qpqCoreUtils.getApplicationModuleEnvironment(qpqConfig), quidproquo_1.qpqCoreUtils.getApplicationModuleFeature(qpqConfig));
|
|
22
|
+
// Change the domain
|
|
23
|
+
const dnsConfigs = quidproquo_1.qpqWebServerUtils.getDnsConfigs(qpqConfig);
|
|
24
|
+
for (const dnsConfig of dnsConfigs) {
|
|
25
|
+
dnsConfig.dnsBase = rootDomain;
|
|
26
|
+
}
|
|
27
|
+
// Expose global cors headers
|
|
28
|
+
const defaultRouteSettings = quidproquo_1.qpqWebServerUtils.getDefaultRouteSettings(qpqConfig);
|
|
29
|
+
for (const getDefaultRouteSetting of defaultRouteSettings) {
|
|
30
|
+
getDefaultRouteSetting.routeOptions.allowedOrigins = [
|
|
31
|
+
...(getDefaultRouteSetting.routeOptions.allowedOrigins || []),
|
|
32
|
+
`http://${baseDomain}`,
|
|
33
|
+
'*',
|
|
34
|
+
];
|
|
35
|
+
}
|
|
36
|
+
// Expose global cors headers
|
|
37
|
+
const routes = quidproquo_1.qpqWebServerUtils.getAllRoutes(qpqConfig);
|
|
38
|
+
for (const route of routes) {
|
|
39
|
+
route.options.allowedOrigins = [...(route.options.allowedOrigins || []), `http://${baseDomain}`, '*'];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return allServices;
|
|
43
|
+
}
|
|
44
|
+
exports.getAllServiceConfigs = getAllServiceConfigs;
|
|
@@ -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.getQpqConfigs = exports.dynamicModuleLoader = void 0;
|
|
13
|
+
const quidproquo_dynamic_loader_1 = require("quidproquo-dynamic-loader");
|
|
14
|
+
const dynamicModuleLoader = (serviceName, runtime) => __awaiter(void 0, void 0, void 0, function* () { return (0, quidproquo_dynamic_loader_1.qpqDynamicModuleLoaderForService)(serviceName, runtime); });
|
|
15
|
+
exports.dynamicModuleLoader = dynamicModuleLoader;
|
|
16
|
+
const getQpqConfigs = () => quidproquo_dynamic_loader_1.qpqConfigs;
|
|
17
|
+
exports.getQpqConfigs = getQpqConfigs;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './dynamicModuleLoader';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./dynamicModuleLoader"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './route';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./route"), exports);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { DynamicModuleLoader, QPQConfig } from 'quidproquo';
|
|
2
|
+
import { ExpressEvent, ExpressEventResponse } from '../types';
|
|
3
|
+
export declare const route: (expressEvent: ExpressEvent, qpqConfig: QPQConfig, dynamicModuleLoader: DynamicModuleLoader) => Promise<ExpressEventResponse>;
|
|
@@ -0,0 +1,64 @@
|
|
|
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.route = void 0;
|
|
13
|
+
const crypto_1 = require("crypto");
|
|
14
|
+
const quidproquo_1 = require("quidproquo");
|
|
15
|
+
const quidproquo_actionprocessor_awslambda_1 = require("quidproquo-actionprocessor-awslambda");
|
|
16
|
+
const getActionProcessor_1 = require("../getActionProcessor");
|
|
17
|
+
// TODO: Make this a util or something based on server time or something..
|
|
18
|
+
const getDateNow = () => new Date().toISOString();
|
|
19
|
+
const ErrorTypeHttpResponseMap = {
|
|
20
|
+
[quidproquo_1.ErrorTypeEnum.BadRequest]: 400,
|
|
21
|
+
[quidproquo_1.ErrorTypeEnum.Unauthorized]: 401,
|
|
22
|
+
[quidproquo_1.ErrorTypeEnum.PaymentRequired]: 402,
|
|
23
|
+
[quidproquo_1.ErrorTypeEnum.Forbidden]: 403,
|
|
24
|
+
[quidproquo_1.ErrorTypeEnum.NotFound]: 404,
|
|
25
|
+
[quidproquo_1.ErrorTypeEnum.TimeOut]: 408,
|
|
26
|
+
[quidproquo_1.ErrorTypeEnum.Conflict]: 409,
|
|
27
|
+
[quidproquo_1.ErrorTypeEnum.UnsupportedMediaType]: 415,
|
|
28
|
+
[quidproquo_1.ErrorTypeEnum.OutOfResources]: 500,
|
|
29
|
+
[quidproquo_1.ErrorTypeEnum.GenericError]: 500,
|
|
30
|
+
[quidproquo_1.ErrorTypeEnum.NotImplemented]: 501,
|
|
31
|
+
[quidproquo_1.ErrorTypeEnum.NoContent]: 204,
|
|
32
|
+
[quidproquo_1.ErrorTypeEnum.Invalid]: 422,
|
|
33
|
+
};
|
|
34
|
+
const route = (expressEvent, qpqConfig, dynamicModuleLoader) => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
|
+
const serviceName = quidproquo_1.qpqCoreUtils.getApplicationModuleName(qpqConfig);
|
|
36
|
+
const resolveStory = (0, quidproquo_1.createRuntime)(qpqConfig, {
|
|
37
|
+
depth: 0,
|
|
38
|
+
accessToken: quidproquo_1.qpqWebServerUtils.getAccessTokenFromHeaders(expressEvent.headers),
|
|
39
|
+
context: {},
|
|
40
|
+
}, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
41
|
+
return (Object.assign(Object.assign({}, (yield (0, quidproquo_actionprocessor_awslambda_1.getAwsActionProcessors)(qpqConfig, dynamicModuleLoader))), (yield (0, getActionProcessor_1.getExpressApiEventEventProcessor)(qpqConfig, dynamicModuleLoader))));
|
|
42
|
+
}), getDateNow, (0, quidproquo_actionprocessor_awslambda_1.getLogger)(qpqConfig), `${serviceName}::${(0, crypto_1.randomUUID)()}`, quidproquo_1.QpqRuntimeType.API, dynamicModuleLoader, []);
|
|
43
|
+
const result = yield resolveStory(quidproquo_1.askProcessEvent, [expressEvent]);
|
|
44
|
+
// Run the callback
|
|
45
|
+
if (!result.error) {
|
|
46
|
+
const response = {
|
|
47
|
+
statusCode: result.result.statusCode,
|
|
48
|
+
body: result.result.body,
|
|
49
|
+
headers: result.result.headers,
|
|
50
|
+
isBase64Encoded: result.result.isBase64Encoded,
|
|
51
|
+
};
|
|
52
|
+
return response;
|
|
53
|
+
}
|
|
54
|
+
const code = ErrorTypeHttpResponseMap[result.error.errorType];
|
|
55
|
+
return {
|
|
56
|
+
statusCode: code || 500,
|
|
57
|
+
body: JSON.stringify(result.error),
|
|
58
|
+
headers: {
|
|
59
|
+
'Content-Type': 'application/json',
|
|
60
|
+
},
|
|
61
|
+
isBase64Encoded: false,
|
|
62
|
+
};
|
|
63
|
+
});
|
|
64
|
+
exports.route = route;
|
package/lib/commonjs/getActionProcessor/core/event/express/api/getEventAutoRespondActionProcessor.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
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.getEventAutoRespondActionProcessor = void 0;
|
|
13
|
+
const quidproquo_core_1 = require("quidproquo-core");
|
|
14
|
+
const quidproquo_webserver_1 = require("quidproquo-webserver");
|
|
15
|
+
const getProcessAutoRespond = (qpqConfig) => ({ qpqEventRecord, matchResult }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
if (qpqEventRecord.method === 'OPTIONS') {
|
|
17
|
+
return (0, quidproquo_core_1.actionResult)({
|
|
18
|
+
status: 200,
|
|
19
|
+
isBase64Encoded: false,
|
|
20
|
+
body: '',
|
|
21
|
+
headers: quidproquo_webserver_1.qpqWebServerUtils.getCorsHeaders(qpqConfig, matchResult.config || {}, qpqEventRecord.headers),
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return (0, quidproquo_core_1.actionResult)(null);
|
|
25
|
+
});
|
|
26
|
+
const getEventAutoRespondActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
+
return ({
|
|
28
|
+
[quidproquo_core_1.EventActionType.AutoRespond]: getProcessAutoRespond(qpqConfig),
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
exports.getEventAutoRespondActionProcessor = getEventAutoRespondActionProcessor;
|
package/lib/commonjs/getActionProcessor/core/event/express/api/getEventGetRecordsActionProcessor.js
ADDED
|
@@ -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.getEventGetRecordsActionProcessor = void 0;
|
|
13
|
+
const quidproquo_core_1 = require("quidproquo-core");
|
|
14
|
+
const getProcessGetRecords = (_qpqConfig) => ({ eventParams: [expressEvent] }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
15
|
+
const path = expressEvent.path || '';
|
|
16
|
+
const internalEventRecord = {
|
|
17
|
+
path,
|
|
18
|
+
query: expressEvent.query,
|
|
19
|
+
body: expressEvent.body,
|
|
20
|
+
headers: expressEvent.headers,
|
|
21
|
+
method: expressEvent.method,
|
|
22
|
+
correlation: expressEvent.correlation,
|
|
23
|
+
sourceIp: expressEvent.ip,
|
|
24
|
+
isBase64Encoded: expressEvent.isBase64Encoded,
|
|
25
|
+
files: expressEvent.files,
|
|
26
|
+
};
|
|
27
|
+
return (0, quidproquo_core_1.actionResult)([internalEventRecord]);
|
|
28
|
+
});
|
|
29
|
+
const getEventGetRecordsActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
|
|
30
|
+
return ({
|
|
31
|
+
[quidproquo_core_1.EventActionType.GetRecords]: getProcessGetRecords(qpqConfig),
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
exports.getEventGetRecordsActionProcessor = getEventGetRecordsActionProcessor;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable no-void */
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
4
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
5
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
7
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
8
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
9
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
10
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.getEventGetStorySessionActionProcessor = void 0;
|
|
15
|
+
const quidproquo_core_1 = require("quidproquo-core");
|
|
16
|
+
const getProcessGetStorySession = (qpqConfig) => ({ qpqEventRecord, eventParams }) => __awaiter(void 0, void 0, void 0, function* () { return (0, quidproquo_core_1.actionResult)(void 0); });
|
|
17
|
+
const getEventGetStorySessionActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
+
return ({
|
|
19
|
+
[quidproquo_core_1.EventActionType.GetStorySession]: getProcessGetStorySession(qpqConfig),
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
exports.getEventGetStorySessionActionProcessor = getEventGetStorySessionActionProcessor;
|
package/lib/commonjs/getActionProcessor/core/event/express/api/getEventMatchStoryActionProcessor.js
ADDED
|
@@ -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.getEventMatchStoryActionProcessor = void 0;
|
|
13
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
14
|
+
const quidproquo_actionprocessor_awslambda_1 = require("quidproquo-actionprocessor-awslambda");
|
|
15
|
+
const quidproquo_core_1 = require("quidproquo-core");
|
|
16
|
+
const quidproquo_webserver_1 = require("quidproquo-webserver");
|
|
17
|
+
const getProcessMatchStory = (qpqConfig) => {
|
|
18
|
+
const routes = quidproquo_webserver_1.qpqWebServerUtils.getAllRoutes(qpqConfig);
|
|
19
|
+
return ({ qpqEventRecord }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
// Sort the routes by string length
|
|
21
|
+
// Note: We may need to filter variable routes out {} as the variables are length independent
|
|
22
|
+
const sortedRoutes = routes
|
|
23
|
+
.filter((r) => r.method === qpqEventRecord.method ||
|
|
24
|
+
qpqEventRecord.method === 'OPTIONS')
|
|
25
|
+
.sort((a, b) => {
|
|
26
|
+
if (a.path.length < b.path.length)
|
|
27
|
+
return -1;
|
|
28
|
+
if (a.path.length > b.path.length)
|
|
29
|
+
return 1;
|
|
30
|
+
return 0;
|
|
31
|
+
});
|
|
32
|
+
// Find the most relevant match
|
|
33
|
+
const matchedRoute = sortedRoutes
|
|
34
|
+
.map((r) => ({
|
|
35
|
+
match: quidproquo_actionprocessor_awslambda_1.awsLambdaUtils.matchUrl(r.path, qpqEventRecord.path),
|
|
36
|
+
route: r,
|
|
37
|
+
}))
|
|
38
|
+
.find((m) => m.match.didMatch);
|
|
39
|
+
if (!matchedRoute) {
|
|
40
|
+
return (0, quidproquo_core_1.actionResultError)(quidproquo_core_1.ErrorTypeEnum.NotFound, `route not found [${qpqEventRecord.path}] - [${quidproquo_webserver_1.qpqWebServerUtils.getHeaderValue('user-agent', qpqEventRecord.headers)}]`);
|
|
41
|
+
}
|
|
42
|
+
return (0, quidproquo_core_1.actionResult)({
|
|
43
|
+
runtime: matchedRoute.route.runtime,
|
|
44
|
+
runtimeOptions: matchedRoute.match.params || {},
|
|
45
|
+
// TODO: Make this aware of the API that we are eventing
|
|
46
|
+
config: quidproquo_webserver_1.qpqWebServerUtils.mergeAllRouteOptions('api', matchedRoute.route, qpqConfig),
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
const getEventMatchStoryActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
|
|
51
|
+
return ({
|
|
52
|
+
[quidproquo_core_1.EventActionType.MatchStory]: getProcessMatchStory(qpqConfig),
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
exports.getEventMatchStoryActionProcessor = getEventMatchStoryActionProcessor;
|
|
@@ -0,0 +1,60 @@
|
|
|
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.getEventTransformResponseResultActionProcessor = void 0;
|
|
13
|
+
const quidproquo_core_1 = require("quidproquo-core");
|
|
14
|
+
const quidproquo_webserver_1 = require("quidproquo-webserver");
|
|
15
|
+
const ErrorTypeHttpResponseMap = {
|
|
16
|
+
[quidproquo_core_1.ErrorTypeEnum.BadRequest]: 400,
|
|
17
|
+
[quidproquo_core_1.ErrorTypeEnum.Unauthorized]: 401,
|
|
18
|
+
[quidproquo_core_1.ErrorTypeEnum.PaymentRequired]: 402,
|
|
19
|
+
[quidproquo_core_1.ErrorTypeEnum.Forbidden]: 403,
|
|
20
|
+
[quidproquo_core_1.ErrorTypeEnum.NotFound]: 404,
|
|
21
|
+
[quidproquo_core_1.ErrorTypeEnum.TimeOut]: 408,
|
|
22
|
+
[quidproquo_core_1.ErrorTypeEnum.Conflict]: 409,
|
|
23
|
+
[quidproquo_core_1.ErrorTypeEnum.UnsupportedMediaType]: 415,
|
|
24
|
+
[quidproquo_core_1.ErrorTypeEnum.OutOfResources]: 500,
|
|
25
|
+
[quidproquo_core_1.ErrorTypeEnum.GenericError]: 500,
|
|
26
|
+
[quidproquo_core_1.ErrorTypeEnum.NotImplemented]: 501,
|
|
27
|
+
[quidproquo_core_1.ErrorTypeEnum.NoContent]: 204,
|
|
28
|
+
[quidproquo_core_1.ErrorTypeEnum.Invalid]: 422,
|
|
29
|
+
};
|
|
30
|
+
const getResponseFromErrorResult = (error) => {
|
|
31
|
+
const statusCode = ErrorTypeHttpResponseMap[error.errorType] || 500;
|
|
32
|
+
return quidproquo_webserver_1.qpqWebServerUtils.toJsonEventResponse({
|
|
33
|
+
errorType: error.errorType,
|
|
34
|
+
errorText: error.errorText,
|
|
35
|
+
}, statusCode);
|
|
36
|
+
};
|
|
37
|
+
const getProcessTransformResponseResult = (qpqConfig) =>
|
|
38
|
+
// We might need to JSON.stringify the body.
|
|
39
|
+
({ eventParams, qpqEventRecordResponses }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
40
|
+
const [record] = qpqEventRecordResponses;
|
|
41
|
+
const [expressEvent] = eventParams;
|
|
42
|
+
// If we have an error, we need to transform it to a response, otherwise we can just use the record as is
|
|
43
|
+
const successRecord = record.success
|
|
44
|
+
? record.result
|
|
45
|
+
: getResponseFromErrorResult(record.error);
|
|
46
|
+
const recordHeaders = successRecord.headers || {};
|
|
47
|
+
const headers = Object.assign(Object.assign({}, quidproquo_webserver_1.qpqWebServerUtils.getCorsHeaders(qpqConfig, {}, expressEvent.headers)), recordHeaders);
|
|
48
|
+
return (0, quidproquo_core_1.actionResult)({
|
|
49
|
+
statusCode: successRecord.status,
|
|
50
|
+
body: successRecord.body || '',
|
|
51
|
+
isBase64Encoded: successRecord.isBase64Encoded,
|
|
52
|
+
headers,
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
const getEventTransformResponseResultActionProcessor = (qpqConfig) => __awaiter(void 0, void 0, void 0, function* () {
|
|
56
|
+
return ({
|
|
57
|
+
[quidproquo_core_1.EventActionType.TransformResponseResult]: getProcessTransformResponseResult(qpqConfig),
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
exports.getEventTransformResponseResultActionProcessor = getEventTransformResponseResultActionProcessor;
|
|
@@ -0,0 +1,21 @@
|
|
|
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.getExpressApiEventEventProcessor = void 0;
|
|
13
|
+
const getEventAutoRespondActionProcessor_1 = require("./getEventAutoRespondActionProcessor");
|
|
14
|
+
const getEventGetRecordsActionProcessor_1 = require("./getEventGetRecordsActionProcessor");
|
|
15
|
+
const getEventGetStorySessionActionProcessor_1 = require("./getEventGetStorySessionActionProcessor");
|
|
16
|
+
const getEventMatchStoryActionProcessor_1 = require("./getEventMatchStoryActionProcessor");
|
|
17
|
+
const getEventTransformResponseResultActionProcessor_1 = require("./getEventTransformResponseResultActionProcessor");
|
|
18
|
+
const getExpressApiEventEventProcessor = (qpqConfig, dynamicModuleLoader) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
+
return (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (yield (0, getEventAutoRespondActionProcessor_1.getEventAutoRespondActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getEventGetRecordsActionProcessor_1.getEventGetRecordsActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getEventGetStorySessionActionProcessor_1.getEventGetStorySessionActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getEventMatchStoryActionProcessor_1.getEventMatchStoryActionProcessor)(qpqConfig, dynamicModuleLoader))), (yield (0, getEventTransformResponseResultActionProcessor_1.getEventTransformResponseResultActionProcessor)(qpqConfig, dynamicModuleLoader))));
|
|
20
|
+
});
|
|
21
|
+
exports.getExpressApiEventEventProcessor = getExpressApiEventEventProcessor;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { MatchStoryResult } from 'quidproquo-core';
|
|
2
|
+
import { HTTPEvent, HTTPEventResponse, HttpEventRouteParams, RouteOptions } from 'quidproquo-webserver';
|
|
3
|
+
import { ExpressEvent, ExpressEventResponse } from '../../../../../types/ExpressEvent';
|
|
4
|
+
export type EventInput = [ExpressEvent];
|
|
5
|
+
export type EventOutput = ExpressEventResponse;
|
|
6
|
+
export type InternalEventRecord = HTTPEvent;
|
|
7
|
+
export type InternalEventOutput = HTTPEventResponse;
|
|
8
|
+
export type MatchResult = MatchStoryResult<HttpEventRouteParams, RouteOptions>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './api';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./api"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './express';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./express"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './event';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./event"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './core';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./core"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './main';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./main"), exports);
|