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.
Files changed (86) hide show
  1. package/README.md +3 -0
  2. package/lib/commonjs/allServiceConfig.d.ts +3 -0
  3. package/lib/commonjs/allServiceConfig.js +44 -0
  4. package/lib/commonjs/dynamicModuleLoader/dynamicModuleLoader.d.ts +3 -0
  5. package/lib/commonjs/dynamicModuleLoader/dynamicModuleLoader.js +17 -0
  6. package/lib/commonjs/dynamicModuleLoader/index.d.ts +1 -0
  7. package/lib/commonjs/dynamicModuleLoader/index.js +17 -0
  8. package/lib/commonjs/entry/index.d.ts +1 -0
  9. package/lib/commonjs/entry/index.js +17 -0
  10. package/lib/commonjs/entry/route.d.ts +3 -0
  11. package/lib/commonjs/entry/route.js +64 -0
  12. package/lib/commonjs/getActionProcessor/core/event/express/api/getEventAutoRespondActionProcessor.d.ts +2 -0
  13. package/lib/commonjs/getActionProcessor/core/event/express/api/getEventAutoRespondActionProcessor.js +31 -0
  14. package/lib/commonjs/getActionProcessor/core/event/express/api/getEventGetRecordsActionProcessor.d.ts +2 -0
  15. package/lib/commonjs/getActionProcessor/core/event/express/api/getEventGetRecordsActionProcessor.js +34 -0
  16. package/lib/commonjs/getActionProcessor/core/event/express/api/getEventGetStorySessionActionProcessor.d.ts +2 -0
  17. package/lib/commonjs/getActionProcessor/core/event/express/api/getEventGetStorySessionActionProcessor.js +22 -0
  18. package/lib/commonjs/getActionProcessor/core/event/express/api/getEventMatchStoryActionProcessor.d.ts +2 -0
  19. package/lib/commonjs/getActionProcessor/core/event/express/api/getEventMatchStoryActionProcessor.js +55 -0
  20. package/lib/commonjs/getActionProcessor/core/event/express/api/getEventTransformResponseResultActionProcessor.d.ts +2 -0
  21. package/lib/commonjs/getActionProcessor/core/event/express/api/getEventTransformResponseResultActionProcessor.js +60 -0
  22. package/lib/commonjs/getActionProcessor/core/event/express/api/index.d.ts +2 -0
  23. package/lib/commonjs/getActionProcessor/core/event/express/api/index.js +21 -0
  24. package/lib/commonjs/getActionProcessor/core/event/express/api/types.d.ts +8 -0
  25. package/lib/commonjs/getActionProcessor/core/event/express/api/types.js +2 -0
  26. package/lib/commonjs/getActionProcessor/core/event/express/index.d.ts +1 -0
  27. package/lib/commonjs/getActionProcessor/core/event/express/index.js +17 -0
  28. package/lib/commonjs/getActionProcessor/core/event/index.d.ts +1 -0
  29. package/lib/commonjs/getActionProcessor/core/event/index.js +17 -0
  30. package/lib/commonjs/getActionProcessor/core/index.d.ts +1 -0
  31. package/lib/commonjs/getActionProcessor/core/index.js +17 -0
  32. package/lib/commonjs/getActionProcessor/index.d.ts +1 -0
  33. package/lib/commonjs/getActionProcessor/index.js +17 -0
  34. package/lib/commonjs/index.d.ts +1 -0
  35. package/lib/commonjs/index.js +17 -0
  36. package/lib/commonjs/main.d.ts +2 -0
  37. package/lib/commonjs/main.js +143 -0
  38. package/lib/commonjs/types/DevServerConfig.d.ts +4 -0
  39. package/lib/commonjs/types/DevServerConfig.js +2 -0
  40. package/lib/commonjs/types/ExpressEvent.d.ts +26 -0
  41. package/lib/commonjs/types/ExpressEvent.js +2 -0
  42. package/lib/commonjs/types/index.d.ts +2 -0
  43. package/lib/commonjs/types/index.js +18 -0
  44. package/lib/esm/allServiceConfig.d.ts +3 -0
  45. package/lib/esm/allServiceConfig.js +40 -0
  46. package/lib/esm/dynamicModuleLoader/dynamicModuleLoader.d.ts +3 -0
  47. package/lib/esm/dynamicModuleLoader/dynamicModuleLoader.js +6 -0
  48. package/lib/esm/dynamicModuleLoader/index.d.ts +1 -0
  49. package/lib/esm/dynamicModuleLoader/index.js +1 -0
  50. package/lib/esm/entry/index.d.ts +1 -0
  51. package/lib/esm/entry/index.js +1 -0
  52. package/lib/esm/entry/route.d.ts +3 -0
  53. package/lib/esm/entry/route.js +52 -0
  54. package/lib/esm/getActionProcessor/core/event/express/api/getEventAutoRespondActionProcessor.d.ts +2 -0
  55. package/lib/esm/getActionProcessor/core/event/express/api/getEventAutoRespondActionProcessor.js +16 -0
  56. package/lib/esm/getActionProcessor/core/event/express/api/getEventGetRecordsActionProcessor.d.ts +2 -0
  57. package/lib/esm/getActionProcessor/core/event/express/api/getEventGetRecordsActionProcessor.js +19 -0
  58. package/lib/esm/getActionProcessor/core/event/express/api/getEventGetStorySessionActionProcessor.d.ts +2 -0
  59. package/lib/esm/getActionProcessor/core/event/express/api/getEventGetStorySessionActionProcessor.js +7 -0
  60. package/lib/esm/getActionProcessor/core/event/express/api/getEventMatchStoryActionProcessor.d.ts +2 -0
  61. package/lib/esm/getActionProcessor/core/event/express/api/getEventMatchStoryActionProcessor.js +40 -0
  62. package/lib/esm/getActionProcessor/core/event/express/api/getEventTransformResponseResultActionProcessor.d.ts +2 -0
  63. package/lib/esm/getActionProcessor/core/event/express/api/getEventTransformResponseResultActionProcessor.js +48 -0
  64. package/lib/esm/getActionProcessor/core/event/express/api/index.d.ts +2 -0
  65. package/lib/esm/getActionProcessor/core/event/express/api/index.js +12 -0
  66. package/lib/esm/getActionProcessor/core/event/express/api/types.d.ts +8 -0
  67. package/lib/esm/getActionProcessor/core/event/express/api/types.js +1 -0
  68. package/lib/esm/getActionProcessor/core/event/express/index.d.ts +1 -0
  69. package/lib/esm/getActionProcessor/core/event/express/index.js +1 -0
  70. package/lib/esm/getActionProcessor/core/event/index.d.ts +1 -0
  71. package/lib/esm/getActionProcessor/core/event/index.js +1 -0
  72. package/lib/esm/getActionProcessor/core/index.d.ts +1 -0
  73. package/lib/esm/getActionProcessor/core/index.js +1 -0
  74. package/lib/esm/getActionProcessor/index.d.ts +1 -0
  75. package/lib/esm/getActionProcessor/index.js +1 -0
  76. package/lib/esm/index.d.ts +1 -0
  77. package/lib/esm/index.js +1 -0
  78. package/lib/esm/main.d.ts +2 -0
  79. package/lib/esm/main.js +127 -0
  80. package/lib/esm/types/DevServerConfig.d.ts +4 -0
  81. package/lib/esm/types/DevServerConfig.js +1 -0
  82. package/lib/esm/types/ExpressEvent.d.ts +26 -0
  83. package/lib/esm/types/ExpressEvent.js +1 -0
  84. package/lib/esm/types/index.d.ts +2 -0
  85. package/lib/esm/types/index.js +2 -0
  86. package/package.json +41 -0
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # quidproquo-dev-server
2
+
3
+ Not prod ready
@@ -0,0 +1,3 @@
1
+ import { QPQConfig } from 'quidproquo';
2
+ import { DevServerConfig } from './types';
3
+ export declare function getAllServiceConfigs(devServerConfig: DevServerConfig): QPQConfig[];
@@ -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,3 @@
1
+ import { QPQConfig, QpqFunctionRuntime } from 'quidproquo';
2
+ export declare const dynamicModuleLoader: <T = any>(serviceName: string, runtime: QpqFunctionRuntime) => Promise<T>;
3
+ export declare const getQpqConfigs: () => QPQConfig[];
@@ -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;
@@ -0,0 +1,2 @@
1
+ import { ActionProcessorListResolver } from 'quidproquo-core';
2
+ export declare const getEventAutoRespondActionProcessor: ActionProcessorListResolver;
@@ -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;
@@ -0,0 +1,2 @@
1
+ import { ActionProcessorListResolver } from 'quidproquo-core';
2
+ export declare const getEventGetRecordsActionProcessor: ActionProcessorListResolver;
@@ -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,2 @@
1
+ import { ActionProcessorListResolver } from 'quidproquo-core';
2
+ export declare const getEventGetStorySessionActionProcessor: ActionProcessorListResolver;
@@ -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;
@@ -0,0 +1,2 @@
1
+ import { ActionProcessorListResolver } from 'quidproquo-core';
2
+ export declare const getEventMatchStoryActionProcessor: ActionProcessorListResolver;
@@ -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,2 @@
1
+ import { ActionProcessorListResolver } from 'quidproquo-core';
2
+ export declare const getEventTransformResponseResultActionProcessor: ActionProcessorListResolver;
@@ -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,2 @@
1
+ import { ActionProcessorListResolver } from 'quidproquo';
2
+ export declare const getExpressApiEventEventProcessor: ActionProcessorListResolver;
@@ -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,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -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);
@@ -0,0 +1,2 @@
1
+ import { DevServerConfig } from './types';
2
+ export declare const spinUpService: (devServerConfig: DevServerConfig) => Promise<void>;