lemon-core 3.1.0 → 3.1.1

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 (101) hide show
  1. package/README.md +1 -0
  2. package/dist/controllers/dummy-controller.d.ts +1 -1
  3. package/dist/controllers/dummy-controller.js +2 -2
  4. package/dist/controllers/dummy-controller.js.map +1 -1
  5. package/dist/controllers/general-api-controller.d.ts +1 -1
  6. package/dist/cores/api/api-service.d.ts +239 -0
  7. package/dist/cores/api/api-service.js +674 -0
  8. package/dist/cores/api/api-service.js.map +1 -0
  9. package/dist/cores/api/index.d.ts +10 -0
  10. package/dist/cores/api/index.js +27 -0
  11. package/dist/cores/api/index.js.map +1 -0
  12. package/dist/cores/aws/aws-kms-service.d.ts +53 -2
  13. package/dist/cores/aws/aws-kms-service.js +104 -17
  14. package/dist/cores/aws/aws-kms-service.js.map +1 -1
  15. package/dist/cores/cache/cache-service.d.ts +440 -0
  16. package/dist/cores/cache/cache-service.js +967 -0
  17. package/dist/cores/cache/cache-service.js.map +1 -0
  18. package/dist/cores/cache/index.d.ts +10 -0
  19. package/dist/cores/cache/index.js +27 -0
  20. package/dist/cores/cache/index.js.map +1 -0
  21. package/dist/cores/cache-service.d.ts +54 -18
  22. package/dist/cores/cache-service.js +37 -26
  23. package/dist/cores/cache-service.js.map +1 -1
  24. package/dist/cores/core-types.d.ts +42 -12
  25. package/dist/cores/dynamo/dynamo-query-service.d.ts +52 -0
  26. package/dist/cores/dynamo/dynamo-query-service.js +127 -0
  27. package/dist/cores/dynamo/dynamo-query-service.js.map +1 -0
  28. package/dist/cores/dynamo/dynamo-scan-service.d.ts +70 -0
  29. package/dist/cores/dynamo/dynamo-scan-service.js +164 -0
  30. package/dist/cores/dynamo/dynamo-scan-service.js.map +1 -0
  31. package/dist/cores/dynamo/dynamo-service.d.ts +192 -0
  32. package/dist/cores/dynamo/dynamo-service.js +525 -0
  33. package/dist/cores/dynamo/dynamo-service.js.map +1 -0
  34. package/dist/cores/dynamo/index.d.ts +12 -0
  35. package/dist/cores/dynamo/index.js +29 -0
  36. package/dist/cores/dynamo/index.js.map +1 -0
  37. package/dist/cores/elastic/elastic6-query-service.d.ts +104 -0
  38. package/dist/cores/elastic/elastic6-query-service.js +510 -0
  39. package/dist/cores/elastic/elastic6-query-service.js.map +1 -0
  40. package/dist/cores/elastic/elastic6-service.d.ts +273 -0
  41. package/dist/cores/elastic/elastic6-service.js +903 -0
  42. package/dist/cores/elastic/elastic6-service.js.map +1 -0
  43. package/dist/cores/elastic/hangul-service.d.ts +102 -0
  44. package/dist/cores/elastic/hangul-service.js +205 -0
  45. package/dist/cores/elastic/hangul-service.js.map +1 -0
  46. package/dist/cores/elastic/index.d.ts +12 -0
  47. package/dist/cores/elastic/index.js +29 -0
  48. package/dist/cores/elastic/index.js.map +1 -0
  49. package/dist/cores/hangul-service.d.ts +17 -3
  50. package/dist/cores/hangul-service.js +17 -8
  51. package/dist/cores/hangul-service.js.map +1 -1
  52. package/dist/cores/index.d.ts +5 -11
  53. package/dist/cores/index.js +8 -13
  54. package/dist/cores/index.js.map +1 -1
  55. package/dist/cores/lambda/lambda-dynamo-stream-handler.d.ts +2 -2
  56. package/dist/cores/lambda/lambda-web-handler.d.ts +158 -8
  57. package/dist/cores/lambda/lambda-web-handler.js +283 -77
  58. package/dist/cores/lambda/lambda-web-handler.js.map +1 -1
  59. package/dist/cores/protocol/protocol-service.d.ts +4 -0
  60. package/dist/cores/protocol/protocol-service.js +12 -7
  61. package/dist/cores/protocol/protocol-service.js.map +1 -1
  62. package/dist/cores/storage/http-storage-service.d.ts +22 -0
  63. package/dist/cores/storage/http-storage-service.js +129 -0
  64. package/dist/cores/storage/http-storage-service.js.map +1 -0
  65. package/dist/cores/storage/index.d.ts +14 -0
  66. package/dist/cores/storage/index.js +31 -0
  67. package/dist/cores/storage/index.js.map +1 -0
  68. package/dist/cores/storage/model-manager.d.ts +93 -0
  69. package/dist/cores/storage/model-manager.js +192 -0
  70. package/dist/cores/storage/model-manager.js.map +1 -0
  71. package/dist/cores/storage/proxy-storage-service.d.ts +573 -0
  72. package/dist/cores/storage/proxy-storage-service.js +913 -0
  73. package/dist/cores/storage/proxy-storage-service.js.map +1 -0
  74. package/dist/cores/storage/redis-storage-service.d.ts +183 -0
  75. package/dist/cores/storage/redis-storage-service.js +391 -0
  76. package/dist/cores/storage/redis-storage-service.js.map +1 -0
  77. package/dist/cores/storage/storage-service.d.ts +169 -0
  78. package/dist/cores/storage/storage-service.js +374 -0
  79. package/dist/cores/storage/storage-service.js.map +1 -0
  80. package/dist/cores/storage-service.d.ts +1 -1
  81. package/dist/cores/storage-service.js +2 -2
  82. package/dist/cores/storage-service.js.map +1 -1
  83. package/dist/engine/utilities.d.ts +4 -3
  84. package/dist/engine/utilities.js +6 -6
  85. package/dist/engine/utilities.js.map +1 -1
  86. package/dist/environ.d.ts +2 -2
  87. package/dist/environ.js +7 -4
  88. package/dist/environ.js.map +1 -1
  89. package/dist/extended/abstract-service.d.ts +533 -0
  90. package/dist/extended/abstract-service.js +915 -0
  91. package/dist/extended/abstract-service.js.map +1 -0
  92. package/dist/extended/index.d.ts +10 -0
  93. package/dist/extended/index.js +27 -0
  94. package/dist/extended/index.js.map +1 -0
  95. package/dist/helpers/helpers.d.ts +7 -0
  96. package/dist/helpers/helpers.js +7 -0
  97. package/dist/helpers/helpers.js.map +1 -1
  98. package/dist/index.d.ts +1 -0
  99. package/dist/index.js +3 -1
  100. package/dist/index.js.map +1 -1
  101. package/package.json +6 -4
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.LambdaWEBHandler = exports.mxNextFailure = exports.mxNextHandler = exports.promised = exports.redirect = exports.failure = exports.notfound = exports.success = exports.buildResponse = void 0;
15
+ exports.MyHttpHeaderTool = exports.LambdaWEBHandler = exports.mxNextFailure = exports.mxNextHandler = exports.promised = exports.redirect = exports.failure = exports.notfound = exports.success = exports.buildResponse = void 0;
16
16
  /**
17
17
  * `lambda-web-handler.ts`
18
18
  * - lambda handler to process WEB(API) event.
@@ -25,6 +25,7 @@ exports.LambdaWEBHandler = exports.mxNextFailure = exports.mxNextHandler = expor
25
25
  *
26
26
  * @author Steve Jung <steve@lemoncloud.io>
27
27
  * @date 2019-11-20 initial version via backbone
28
+ * @date 2022-04-07 use env, and opt header-parser
28
29
  *
29
30
  * @copyright (C) 2019 LemonCloud Co Ltd. - All Rights Reserved.
30
31
  */
@@ -33,16 +34,27 @@ const engine_1 = require("../../engine/");
33
34
  const lambda_handler_1 = require("./lambda-handler");
34
35
  const shared_1 = require("../../tools/shared");
35
36
  const test_helper_1 = require("../../common/test-helper");
37
+ const protocol_service_1 = require("../protocol/protocol-service");
38
+ const aws_kms_service_1 = require("../aws/aws-kms-service");
36
39
  const protocol_1 = __importDefault(require("../protocol/"));
37
40
  const NS = engine_1.$U.NS('HWEB', 'yellow'); // NAMESPACE TO BE PRINTED.
38
- //! header names..
41
+ //! header definitions by environment.
39
42
  const HEADER_LEMON_LANGUAGE = engine_1.$U.env('HEADER_LEMON_LANGUAGE', 'x-lemon-language');
40
43
  const HEADER_LEMON_IDENTITY = engine_1.$U.env('HEADER_LEMON_IDENTITY', 'x-lemon-identity');
41
- const HEADER_COOKIE = 'cookie';
42
- const FAVICON_ICO = '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';
43
- /** ********************************************************************************************************************
44
- * COMMON Functions.
45
- ** ********************************************************************************************************************/
44
+ const HEADER_COOKIE = engine_1.$U.env('HEADER_COOKIE', 'cookie');
45
+ const DEFAULT_FAVICON_ICO = 'AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWOj/AEWu9QBGs/YCRa/1DkSu9R5ErfUmRK31JkSu9R9Fr/UPR7T2AkWu9QBf6P8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARK31AESt9QNErfUeRK31MESt9RpErfUCRK71AEWw9QJErfUhRKz1XkOr9ZlDqvXCQ6r12EOp9ONDqfTjQ6r12UOq9cNDq/WaRKz1XkSt9SJFsPYDRa/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAESt9QBErfUQRK31gkSt9dxErfXuRK3110St9XFErfUwRKz1i0Oq9dxCqPT8Qab0/0Gk8/9AovP/QKLz/0Ci8/9AovP/QaPz/0Gl9P9Cp/T8Q6r03UOs9Y1ErfUqRrP2AUWv9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABErfUARK31AESt9X5ErfX8RK31/0St9f9ErfX/RK319kOq9ehCp/T+QKPz/z+g8/8+nvP/Ppzz/z2b8/89mvP/PZrz/z2b8/89nPP/Pp3z/z+g8/9Ao/P/Qqb0/0Oq9N5ErPVsRK31DUSt9QBErfUAAAAAAAAAAAAAAAAAAAAAAESt9QBErfUYRK311ESt9f9ErfX/RK31/0Ss9f9CqfT/QaT0/z+g8/8+nPP/PJny/zyX8v87lfL/O5Ty/zuT8v87k/L/O5Ty/zuV8v88l/L/PJny/z2c8/8/n/P/QKPz/0Ko9PFDq/VRQ6r1AESt9QAAAAAAAAAAAAAAAAAAAAAARK31AESt9SVErfXmRK31/0St9f9ErPX/Qqj0/0Ci8/8+nfP/PZny/zuW8v87k/H/OpDx/zqP8f85jfH/OY3x/zmN8f85jfH/Oo7x/zqQ8f87kvH/O5Xy/zyZ8v8+nfP6QKLzkEKp9A5Cp/QARK31AAAAAAAAAAAAAAAAAAAAAABErfUARK31EUSt9cdErfX/RKz1/0Ko9P9AovP/Ppzz/zyY8v87k/L/OpDx/zmN8f85ivD/OInw/ziH8P83h/D/N4fw/ziH8P84iPD/OIrw/zmM8f86j/H/O5Py+jyX8o8+nfMNQKP0AEKo9BhDq/VcRK31DUSt9QAAAAAAAAAAAESt9QBErfUARK31XUSt9fNDqfT/QKLz/z6d8/88l/L/O5Lx/zqO8f85i/D/OIjw/zeF7/82hO//NoPv/zWC7/81gu//NoLv/zaD7/83he//N4fw/ziK8Po6jvGPO5PyDT2Y8gA9m/MVQKLzpEKo9PZErPVnQab0AESt9QAAAAAAAAAAAESt9QBErfUqQ6v14kGk9P8+nvP/PJjy/zuS8f86jvH/OInw/zeG8P82g+//NYHv/zV/7/80fu//NH7v/zR+7/80fu//NX/v/zWB7/82g+/6N4bwjziK8A06j/EAOpHxFTyX8qM+nfP9QKPz/0Oq9dlErfUmRK31AAAAAABErfUAPp/0AESs9YRCp/T/P6Dz/z2a8/87lPL/Oo7x/ziK8P83hfD/NoLv/zV/7/80fe//NHzv9DR77800e++wNHvusDR77800fO/0NH3v+zV/7481gu8NN4fwADiJ8BU6jvGjO5Py/TyZ8v8/n/P/Qqf0/0Os9YU3kfIARK31AESt9QBErvUcQ6v11UGk9P8+nfP/PJby/zqQ8f85i/D/N4bw/zaC7/81f+//NHzv/DR777c0eu5JNHnuEzR37QQ0d+0ENHnuEzR67kw0e+5uNHzvDjWA7wA1gu8VN4bwoziK8P46kPH/O5Xy/z6c8/9Ao/P/Q6r11kSt9RxErfUARKz1AESt9VVCqfT6QKHz/z2a8/87k/L/Oo3x/ziI8P82hO//NYDv/zR87/00e+6XNHnuEjR67gAAAAAAAAAAAAAAAAAAAAAAAAAAADR57gA0fe8ANHzvFjV/76M2g+/+OIfw/zmN8f87kvH/PJny/z+g8/9CqPT6RKz1VUSs9QBApPQARKz1jkKn9P8/n/P/PJjy/zqR8f85i/D/N4bw/zWB7/80fe//NHvvvDR57hU0eu4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHnuADSA8QA0e+5+NH3v/zWB7/83he//OYrw/zqQ8f88l/L/Pp7z/0Gm9P9Dq/WPPZryAEWv9QlDq/W3QaX0/z6d8/87lvL/Oo/x/ziJ8P82hO//NYDv/zR87/c0eu5RNHvuADR67gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0ee4ANHruADR67lM0fO/3NX/v/zaE7/84ifD/Oo/x/zuV8v8+nPP/QaT0/0Or9bhFsPUJRK71FkOr9c1BpPP/Ppzz/zuV8v86jvH/OIjw/zaD7/80f+//NHvv1zR67ho0eu4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0ee4ANHnuGTR779U0fu//NoPv/ziI8P86jfH/O5Ty/z2b8/9Ao/P/Q6r1zkSu9RdErvUfQ6v12ECj8/89nPP/O5Xy/zqO8f84iPD/NoPv/zR+7/80e++7NHnuCTR67gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADR57gA0eO4JNHvvujR+7/82gu//N4fw/zmN8f87lPL/PZvz/0Ci8/9DqvXZRK71H0Su9R5Dq/XYQaPz/z2c8/87lfL/Oo7x/ziI8P82g+//NH7v/zR77740ee4KNHruAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHnuADR27QE0e+9ENH7vkTaC78Y3h/DsOY3x/TuU8v89m/P/QKLz/0Oq9dhErvUeRK71FEOr9ctBpPT/Ppzz/zuV8v86j/H/OInw/zaD7/81f+//NHzv2zR67h40eu4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWB7wA0fu8BNoPvDziI8DE6jvFlO5TyoD2b89JAo/P1Q6r1y0Su9RVFr/UHQ6z1skGl9P8+nfP/PJby/zqQ8f84ivD/N4Xv/zWA7/80fO/7NHruYDR77wA0eu4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHjtADRr5wA0eu4gNHzvHjR/7wU1fe8AMn/vADyZ8gA7l/IDPp3zFkGl9EBDq/VPRa71BkOp9QBErPWGQqf0/z+f8/88mPL/OpLx/zmM8P83hvD/NYLv/zR+7/s0e+93NIHxADR67gAAAAAAAAAAAAAAAAAAAAAAAAAAADR57QA0eu4ANHnuIDR778I0fu/cNYLvqjeG8HA5i/A6OpHxFDuW8gI7lPIAAAAAAAAAAAAAAAAARK31AESt9UxDqfT3QKLz/z2b8/87lPL/Oo7x/ziJ8P82hO/6NYDvjzR87w00fu8ANHjuAjR57QA0ee0AAAAAAAAAAAA0eO0ANH3wADR67iE0e+6tNH3v/zWA7/82hO//OIjw/jmN8fE7k/LOPZrzmkCh82FCqfQsRa71BESt9QBErfUARK71FkOr9cxBpfT/Pp7z/zyX8v86kfH/OYzw+jeH8I82g+8NNYDvADR97xY0fO+INHvvaDR67iQ0ee4PNHjuBDR67gA0eu4aNHvvwTR97/81f+//NoPv/zeG8P85i/D/OpDx/zyW8v8+nfP/QaT0/0Oq9btFrvUPRK31AESt9QBDqvUARK31dEKo9P5AofP/PZvz/zuV8vo6kPGPOIrwDTeH8AA2hO8VNYHvozR+7/40fe/7NHzv4zR878o0fO9XNHzvADR87xM0fu/MNYDv/zaD7/83hvD/OIrw/zqP8f87lPL/PZrz/z+g8/9Cp/T/RKz1eEKo9QBErfUAAAAAAESt9QBErfUcQ6v1zEGm9P8/n/P6PJnyjzqT8g06j/EAOYvwFTeH8KM2hO/9NoLv/zWA7/81f+//NH/v/zR/76M1ge8DH0HtADaC75c2hO//N4fw/ziK8P86jvH/O5Py/zyY8v8+nvP/QaX0/0Or9c1ErfUcRK31AAAAAAAAAAAARK31AESs9QBErfVVQ6r17EGk9JA+nfMNPJjyADuU8hU6kPGjOYzw/TiJ8P83h/D/N4Xv/zaE7/82g+//NoPv1DaE7xk3h/AAN4fwXDiJ8Pw5i/D/Oo/x/zuT8v88mPL/Pp3z/0Cj8/9DqfTxRKz1VUOr9QBErfUAAAAAAAAAAAAAAAAARK31AESu9QhErPVEQ6v1EECj9AA/n/MVPZnzozuV8v06kfH/Oo7x/zmM8P84ivD/OInw/ziI8P84iPD0OInwQjiK8AA5jPArOo7x5zqR8f87lPL/PJny/z6d8/9AovP/Qqj0+0Ss9YNFr/UFRK31AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAESt9QBCqfQAQ6v1F0Gk9KQ/n/P+PZvz/zyX8v87lPL/OpLx/zqQ8f86j/H/Oo7x/zqO8f86j/F5Oo7xADqR8Qw7lPK+PJfy/z2a8/8/nvP/QKPz/0Ko9PpErPWTRK71DUSt9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARK31AEOs9QBErPVNQ6r17UGm9P9AofP/Pp7z/z2b8/88mfL/PJfy/zuW8v87lfL/O5Xy/zuW8rI8mPIHP6DzAD2b84c+nvP/QKHz/0Gl9P9DqfTxRKz1gESu9Q1ErfUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABErfUARK71AESu9QZErfVRQ6v1yUKp9PxBpfT/QKLz/z+g8/8+nvP/Pp3z/z6c8/8+nPP/Pp3z3z6e8yJAofMAQKLzTUGl9PlCqPT9Q6v1ykSt9VJFr/UFRK71AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARbD1AEOq9QBErvUYRK31bkOr9cdDqvT0Qqj0/0Gm9P9BpfT/QaTz/0Gk8/9BpfT6Qab0UkKn9ABDqfQfQ6v1q0Ss9W9ErvUZQqj1AEWx9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWw9QBGtfYARK71EkSt9UJErPV8RKz1p0Or9cFDq/XOQ6v1zUOr9cNDrPVWQ6v1AESu9QJFrvULRbD1AUWw9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASbj2AGv/+gBFsfYERa/1DUSu9RZErvUWRa/1DUWv9QRHs/YARK31AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AP/+CAAf/AAAB/gAAAP4AAAD+AAAA/gAAAR8AAAIfAAAEDwAACA4AABAGAB/gBgA/4AQAf+AAAH/gAAB/4AAAf+AAAH/4AAB/w4IAf8A+AE+ABgCBAAcBAQAPAgAAD4QAgB+IAIAf8ACAP/AAQH/wAED//ABD//4AR///wH/8=';
46
+ const FAVICON_ICO = engine_1.$U.env('FAVICON_ICO', DEFAULT_FAVICON_ICO);
47
+ /**
48
+ * build http response body
49
+ * - if body is string type, then content-type would be text/<some>.
50
+ * - or default type is json
51
+ *
52
+ * @param statusCode http response code like 200
53
+ * @param body string or object
54
+ * @param contentType (optional) the target content-type
55
+ * @param origin (optional) the allow origin (default *)
56
+ * @returns http response body
57
+ */
46
58
  const buildResponse = (statusCode, body, contentType, origin) => {
47
59
  const isBase64Encoded = contentType && !contentType.startsWith('text/') ? true : false;
48
60
  contentType =
@@ -52,14 +64,14 @@ const buildResponse = (statusCode, body, contentType, origin) => {
52
64
  ? 'text/html; charset=utf-8'
53
65
  : 'text/plain; charset=utf-8'
54
66
  : 'application/json; charset=utf-8');
55
- // @0612 - body 가 string일 경우, 응답형식을 텍스트로 바꿔서 출력한다.
56
67
  return {
57
68
  statusCode,
58
69
  headers: {
59
70
  'Content-Type': contentType,
60
71
  'Access-Control-Allow-Origin': `${origin || '*'}`,
61
72
  'Access-Control-Allow-Credentials': true,
62
- 'Access-Control-Allow-Headers': `origin, ${HEADER_LEMON_LANGUAGE}`, // custom headers
73
+ // eslint-disable-next-line prettier/prettier
74
+ 'Access-Control-Allow-Headers': ['origin', HEADER_LEMON_LANGUAGE, HEADER_LEMON_IDENTITY].filter(s => !!s).join(', '), // custom headers
63
75
  },
64
76
  body: typeof body === 'string' ? body : JSON.stringify(body),
65
77
  isBase64Encoded,
@@ -95,8 +107,8 @@ const promised = (event, $ctx) => __awaiter(void 0, void 0, void 0, function* ()
95
107
  return () => (0, exports.success)(FAVICON_ICO, 'image/x-icon');
96
108
  }
97
109
  //! transform to protocol-context.
98
- if (event && event.headers && !event.headers['x-protocol-context'])
99
- event.headers['x-protocol-context'] = $ctx ? engine_1.$U.json($ctx) : null;
110
+ if (event && event.headers && !event.headers[protocol_service_1.HEADER_PROTOCOL_CONTEXT])
111
+ event.headers[protocol_service_1.HEADER_PROTOCOL_CONTEXT] = $ctx ? engine_1.$U.json($ctx) : null;
100
112
  const param = protocol_1.default.service.asTransformer('web').transformToParam(event);
101
113
  (0, engine_1._log)(NS, '! protocol-param =', engine_1.$U.json(Object.assign(Object.assign({}, param), { body: undefined }))); // hide `.body` in log.
102
114
  //! returns object..
@@ -199,6 +211,11 @@ class LambdaWEBHandler extends lambda_handler_1.LambdaSubHandler {
199
211
  //! start promised..
200
212
  return (0, exports.promised)(event, $ctx).then((0, exports.mxNextHandler)(this)).catch((0, exports.mxNextFailure)(event, $ctx));
201
213
  });
214
+ /**
215
+ * builder of tools for http-headers
216
+ * - extracting header content, and parse.
217
+ */
218
+ this.tools = (headers) => new MyHttpHeaderTool(this, headers);
202
219
  // _log(NS, `LambdaWEBHandler()..`);
203
220
  }
204
221
  /**
@@ -320,90 +337,279 @@ class LambdaWEBHandler extends lambda_handler_1.LambdaSubHandler {
320
337
  /**
321
338
  * pack the request context for Http request.
322
339
  *
323
- * @param event origin Event.
324
- * @param $ctx (optional) referenced lambda.Context
340
+ * @param event origin Event.
341
+ * @param orgContext (optional) original lambda.Context
325
342
  */
326
- packContext(event, $ctx) {
343
+ packContext(event, orgContext) {
327
344
  return __awaiter(this, void 0, void 0, function* () {
328
- //! prepare chain object.
329
- const reqContext = event && event.requestContext;
345
+ (0, engine_1._log)(NS, `packContext(${event ? '' : 'null'})..`);
330
346
  if (!event)
331
347
  return null;
332
- (0, engine_1._log)(NS, `packContext()..`);
333
- (0, engine_1._log)(NS, `> reqContext=`, engine_1.$U.S(reqContext, 256, 32));
334
- (0, engine_1._log)(NS, `> orgContext=`, engine_1.$U.S($ctx, 256, 32));
335
- //! prepare the next-context.
336
- const res = { identity: null };
348
+ //! prepare chain object.
349
+ const reqContext = event === null || event === void 0 ? void 0 : event.requestContext;
350
+ orgContext && (0, engine_1._log)(NS, `> orgContext =`, engine_1.$U.S(orgContext, 256, 32));
351
+ reqContext && (0, engine_1._log)(NS, `> reqContext =`, engine_1.$U.S(reqContext, 256, 32));
337
352
  // STEP.1 support lambda call JWT Token authentication.
338
- //! if it is protocol request via lambda, then returns valid context.
339
- const headers = event.headers || {};
340
- if (headers['x-protocol-context']) {
353
+ const headers = event.headers;
354
+ if (headers && headers[protocol_service_1.HEADER_PROTOCOL_CONTEXT]) {
355
+ //! if it is protocol request via lambda, then returns valid context.
341
356
  const $param = protocol_1.default.service.asTransformer('web').transformToParam(event);
342
- return $param.context;
357
+ return $param === null || $param === void 0 ? void 0 : $param.context;
343
358
  }
344
- //TODO - support internal JWT Token authentication.
345
- // STEP.3 use internal identity json data via python lambda call.
346
- //! `x-lemon-identity` 정보로부터, 계정 정보를 얻음 (for direct call via lambda)
347
- // - http 호출시 해더에 x-lemon-identity = '{"ns": "SS", "sid": "SS000002", "uid": "", "gid": "", "role": "guest"}'
348
- // - lambda 호출시 requestContext.identity = {"ns": "SS", "sid": "SS000002", "uid": "", "gid": "", "role": "guest"}
349
- // _log(NS,'headers['+HEADER_LEMON_IDENTITY+']=', event.headers[HEADER_LEMON_IDENTITY]);
350
- const _identity = (val) => __awaiter(this, void 0, void 0, function* () {
351
- val = `${val || ''}`.trim();
352
- try {
353
- if (val && val.startsWith('{') && val.endsWith('}'))
354
- return JSON.parse(val);
355
- (0, engine_1._err)(NS, '!WARN! identity =', val);
359
+ // STEP.2 use internal identity json data via python lambda call.
360
+ const $tool = this.tools(headers);
361
+ const identity = yield $tool.parseIdentityHeader();
362
+ const cookie = $tool.parseCookiesHeader();
363
+ // STEP.3. prepare the final `next-context`.
364
+ const $ctx = yield $tool.prepareContext({ identity, cookie }, reqContext);
365
+ $ctx.source = protocol_1.default.service.myProtocolURI($ctx); // self service-uri as source
366
+ // FINIAL. returns
367
+ return $ctx;
368
+ });
369
+ }
370
+ }
371
+ exports.LambdaWEBHandler = LambdaWEBHandler;
372
+ //! shared config.
373
+ LambdaWEBHandler.REPORT_ERROR = lambda_handler_1.LambdaHandler.REPORT_ERROR;
374
+ /**
375
+ * class: `MyHttpHeaderTool`
376
+ * - basic implementation of HttpHeaderTool
377
+ */
378
+ class MyHttpHeaderTool {
379
+ /**
380
+ * default constructor.
381
+ * @param headers
382
+ */
383
+ constructor(handler, headers) {
384
+ /**
385
+ * get values by name
386
+ * @param name case-insentive name of field
387
+ */
388
+ this.getHeaders = (name) => Object.entries(this.headers).reduce((L, [key, val]) => {
389
+ if (name === key || key.toLowerCase() === name) {
390
+ if (Array.isArray(val)) {
391
+ val.forEach(val => {
392
+ if (typeof val === 'string') {
393
+ L.push(val.trim());
394
+ }
395
+ else {
396
+ (0, engine_1._err)(NS, `! invalid type @header[${name}] =`, typeof val, val);
397
+ }
398
+ });
356
399
  }
357
- catch (e) {
358
- (0, engine_1._err)(NS, '!WARN! parse.err =', e);
359
- (0, engine_1._err)(NS, '!WARN! identity =', val);
400
+ else if (typeof val === 'string') {
401
+ L.push(val.trim());
402
+ }
403
+ else {
404
+ (0, engine_1._err)(NS, `! invalid type @header[${name}] =`, typeof val, val);
360
405
  }
361
- const ret = val ? { meta: val } : {};
362
- return ret;
363
- });
364
- const identity = yield _identity(headers[HEADER_LEMON_IDENTITY]);
365
- //! support prefered lanauge.
366
- if (headers[HEADER_LEMON_LANGUAGE])
367
- identity.lang = `${headers[HEADER_LEMON_LANGUAGE]}`.trim();
368
- //! support cookie (string) to .cookie (object)
369
- const cookie = ((cookie) => {
370
- cookie = `${cookie || ''}`.trim();
371
- if (!cookie)
372
- return undefined;
373
- const parseCookies = (str) => {
374
- const rx = /([^;=\s]*)=([^;]*)/g;
375
- const obj = {};
376
- for (let m; (m = rx.exec(str));)
377
- obj[m[1]] = decodeURIComponent(m[2]);
378
- return obj;
379
- };
380
- return parseCookies(cookie);
381
- })(headers[HEADER_COOKIE]);
382
- //! translate cognito authentication to NextIdentity.
383
- if (reqContext.identity && reqContext.identity.cognitoIdentityPoolId !== undefined) {
406
+ }
407
+ return L;
408
+ }, []);
409
+ /**
410
+ * get the last value in header by name
411
+ */
412
+ this.getHeader = (name) => {
413
+ const vals = this.getHeaders(name);
414
+ return vals.length < 1 ? undefined : vals[vals.length - 1];
415
+ };
416
+ /**
417
+ * check if this request is from externals (like API-GW)
418
+ * @returns true if in external
419
+ */
420
+ this.isExternal = () => {
421
+ const host = this.getHeader('host');
422
+ const isExternal = host ? true : false;
423
+ return !!isExternal;
424
+ };
425
+ /**
426
+ * parse of header[`x-lemon-identity`] to get the instance of `NextIdentity`
427
+ * - lambda 호출의 2가지 방법이 있음 (interval vs external)
428
+ * - internal는 AWS 같은 계정내 호출로 labmda 직접 호출이 가능함.
429
+ * - external는 API-GW를 통한 호출로 JWT 지원 (since 3.1.2).
430
+ *
431
+ * **[FOR INTERNAL CALL BY LAMBDA]**
432
+ * - `x-lemon-identity` 정보로부터, 계정 정보를 얻음 (for direct call via lambda)
433
+ * - 외부 호출과 구분하기 위해서 headr[host]가 비어 있어야함 (API-GW에서는 무조건 있으므로)
434
+ *
435
+ * **[FOR EXTERNAL CALL BY API-GW]**
436
+ * - support ONLY JWT Token authentication (verification).
437
+ * - iat
438
+ */
439
+ this.parseIdentityHeader = (name = HEADER_LEMON_IDENTITY) => __awaiter(this, void 0, void 0, function* () {
440
+ var _a;
441
+ //! internal means `request from internal services`
442
+ const isInternal = !this.isExternal();
443
+ const val = this.getHeader(name);
444
+ let result = val ? { meta: val } : {};
445
+ try {
446
+ if (!val) {
447
+ //NOP
448
+ }
449
+ else if (isInternal && val.startsWith('{') && val.endsWith('}')) {
450
+ result = yield this.parseIdentityJson(val);
451
+ }
452
+ else if (typeof val === 'string' && val.split('.').length === 3) {
453
+ result = yield this.parseIdentityJWT(val);
454
+ }
455
+ }
456
+ catch (e) {
457
+ (0, engine_1._err)(NS, '!WARN! parse.err =', e);
458
+ (0, engine_1._err)(NS, '!WARN! identity =', val);
459
+ result.error = (0, test_helper_1.GETERR)(e);
460
+ }
461
+ //! overwrite finally language selection.
462
+ const lang = (_a = this.parseLanguageHeader()) !== null && _a !== void 0 ? _a : result === null || result === void 0 ? void 0 : result.lang;
463
+ return Object.assign(Object.assign({}, result), { lang });
464
+ });
465
+ /**
466
+ * parse as identity from json encoded text.
467
+ */
468
+ this.parseIdentityJson = (val) => __awaiter(this, void 0, void 0, function* () {
469
+ if (typeof val !== 'string')
470
+ throw new Error(`@val[${val}] is invalid - not string!`);
471
+ //! (ONLY for internal) parse payload as `json`
472
+ const data = JSON.parse(val);
473
+ // if (typeof data?.ns !== 'string') throw new Error(`.ns[${data?.ns}] is required - IdentityHeader`);
474
+ if (typeof (data === null || data === void 0 ? void 0 : data.sid) !== 'string' || !(data === null || data === void 0 ? void 0 : data.sid))
475
+ throw new Error(`.sid[${data === null || data === void 0 ? void 0 : data.sid}] is required - IdentityHeader`);
476
+ return data;
477
+ });
478
+ /**
479
+ * encode as JWT string.
480
+ */
481
+ this.encodeIdentityJWT = (identity, params) => __awaiter(this, void 0, void 0, function* () {
482
+ var _b;
483
+ // STEP.1 prepare payload data
484
+ const current = (_b = params === null || params === void 0 ? void 0 : params.current) !== null && _b !== void 0 ? _b : engine_1.$U.current_time_ms();
485
+ const alias = params === null || params === void 0 ? void 0 : params.alias;
486
+ const payload = Object.assign(Object.assign({}, identity), { iss: alias ? `kms/${alias}` : null, iat: Math.floor(current / 1000), exp: Math.floor(current / 1000) + 24 * 60 * 60 });
487
+ const base64url = (t) => (0, aws_kms_service_1.fromBase64)(Buffer.from(t).toString('base64'));
488
+ const data = {
489
+ header: base64url(JSON.stringify({
490
+ alg: 'RS256',
491
+ typ: 'JWT',
492
+ })),
493
+ payload: base64url(JSON.stringify(payload)),
494
+ };
495
+ // STEP.2 encode and calc signature.
496
+ const message = [data.header, data.payload].join('.');
497
+ const $kms = alias ? this.findKMSService(`alias/${alias}`) : null;
498
+ const signature = $kms ? yield $kms.sign(message, true) : '';
499
+ const token = [message, signature].join('.');
500
+ return { signature, message, token };
501
+ });
502
+ /**
503
+ * parse as jwt-token, and validate the signature.
504
+ */
505
+ this.parseIdentityJWT = (token, params) => __awaiter(this, void 0, void 0, function* () {
506
+ var _c;
507
+ //! it must be JWT Token. verify signature, and load.
508
+ if (typeof token !== 'string' || !token)
509
+ throw new Error(`@token (string) is required - but ${typeof token}`);
510
+ // STEP.1 decode jwt, and extract { iss, iat, exp }
511
+ const current = (_c = params === null || params === void 0 ? void 0 : params.current) !== null && _c !== void 0 ? _c : engine_1.$U.current_time_ms();
512
+ const sections = token.split('.');
513
+ if (sections.length !== 3)
514
+ throw new Error(`@token[${token}] is invalid format!`);
515
+ const [header, payload, signature] = sections;
516
+ const $jwt = engine_1.$U.jwt();
517
+ const data = $jwt.decode(token, { complete: false, json: true });
518
+ if (!data)
519
+ throw new Error(`@token[${token}] is invalid - failed to decode!`);
520
+ const { iss, iat, exp } = data;
521
+ // STEP.1-1 validate parameters.
522
+ if (typeof iss !== 'string' && iss !== null)
523
+ throw new Error(`.iss (string) is required!`);
524
+ if (typeof iat !== 'number' && iat !== null)
525
+ throw new Error(`.iat (number) is required!`);
526
+ if (typeof exp !== 'number' && exp !== null)
527
+ throw new Error(`.exp (number) is required!`);
528
+ // STEP.2 validate signature by KMS(iss).verify()
529
+ if (typeof iss === 'string' && iss.startsWith('kms/')) {
530
+ const alias = iss.substring(4);
531
+ const $kms = alias ? this.findKMSService(`alias/${alias}`) : null;
532
+ const verified = $kms ? yield $kms.verify([header, payload].join('.'), signature) : false;
533
+ if (!verified)
534
+ throw new Error(`@signature[] is invalid - not be verified!`);
535
+ if (!exp || exp * 1000 < current)
536
+ throw new Error(`.exp[${engine_1.$U.ts(exp * 1000)}] is invalid - expired!`);
537
+ return data;
538
+ }
539
+ //! or throw
540
+ throw new Error(`@iss[${iss}] is invalid - unsupportable issuer!`);
541
+ });
542
+ /**
543
+ * parse of header[HEADER_LEMON_LANGUAGE] to get language-type.
544
+ */
545
+ this.parseLanguageHeader = (name = HEADER_LEMON_LANGUAGE) => {
546
+ const val = this.getHeader(name);
547
+ return typeof val === 'string' ? val.trim().toLowerCase() : undefined;
548
+ };
549
+ /**
550
+ * parse of header[HEADER_LEMON_LANGUAGE] to get cookie-set.
551
+ */
552
+ this.parseCookiesHeader = (name = HEADER_COOKIE) => {
553
+ const cookie = this.getHeader(name);
554
+ if (!cookie)
555
+ return undefined;
556
+ const parseCookies = (str) => {
557
+ const rx = /([^;=\s]*)=([^;]*)/g;
558
+ const obj = {};
559
+ for (let m; (m = rx.exec(str));)
560
+ obj[m[1]] = decodeURIComponent(m[2]);
561
+ return obj;
562
+ };
563
+ return parseCookies(cookie);
564
+ };
565
+ /**
566
+ * override with AWS request-context
567
+ */
568
+ this.prepareContext = ($org, reqContext) => __awaiter(this, void 0, void 0, function* () {
569
+ var _d, _e, _f, _g;
570
+ // STEP.4 override w/ cognito authentication to NextIdentity.
571
+ if (((_d = reqContext === null || reqContext === void 0 ? void 0 : reqContext.identity) === null || _d === void 0 ? void 0 : _d.cognitoIdentityPoolId) !== undefined) {
572
+ const identity = $org.identity;
573
+ if (!identity)
574
+ throw new Error(`.identity is required - prepareContext()`);
384
575
  const $id = reqContext.identity;
385
- (0, engine_1._inf)(NS, '! identity :=', engine_1.$U.json(identity));
386
- identity.identityProvider = $id.cognitoAuthenticationProvider;
576
+ (0, engine_1._inf)(NS, '! identity(req) :=', engine_1.$U.json(Object.assign({}, $id)));
577
+ identity.identityProvider = $id.cognitoAuthenticationProvider; // provider string.
387
578
  identity.identityPoolId = $id.cognitoIdentityPoolId; // identity-pool-id like 'ap-northeast-2:618ce9d2-3ad6-49df-b3b3-e248ea51425e'
388
579
  identity.identityId = $id.cognitoIdentityId; // identity-id like 'ap-northeast-2:dbd95fb4-7423-48b8-8a04-56e5bc95e444'
389
580
  identity.accountId = $id.accountId; // account-id should be same as context.accountId
390
581
  identity.userAgent = $id.userAgent; // user-agent string.
391
- //TODO - transform to access identity via `lemon-accounts-api` service @200106
582
+ identity.caller = (_e = $id.caller) !== null && _e !== void 0 ? _e : undefined; // caller string.
583
+ (0, engine_1._inf)(NS, '! identity(new) :=', engine_1.$U.json(Object.assign({}, identity)));
392
584
  }
393
- //! - extract original request infor.
394
- const clientIp = `${(reqContext.identity && reqContext.identity.sourceIp) || ''}`;
395
- const userAgent = `${(reqContext.identity && reqContext.identity.userAgent) || ''}`;
396
- const requestId = `${reqContext.requestId || ''}`;
397
- const accountId = `${reqContext.accountId || ''}`;
398
- const domain = `${reqContext.domainName || headers['Host'] || headers['host'] || ''}`; //! chore avoid null of headers
585
+ //TODO - transform to access identity via `lemon-accounts-api` service @200106
586
+ // STEP.5 extract additional request infor from req-context.
587
+ const clientIp = `${((_f = reqContext === null || reqContext === void 0 ? void 0 : reqContext.identity) === null || _f === void 0 ? void 0 : _f.sourceIp) || ''}`;
588
+ const userAgent = `${((_g = reqContext === null || reqContext === void 0 ? void 0 : reqContext.identity) === null || _g === void 0 ? void 0 : _g.userAgent) || ''}`;
589
+ const requestId = `${(reqContext === null || reqContext === void 0 ? void 0 : reqContext.requestId) || ''}`;
590
+ const accountId = `${(reqContext === null || reqContext === void 0 ? void 0 : reqContext.accountId) || ''}`;
591
+ const domain = `${(reqContext === null || reqContext === void 0 ? void 0 : reqContext.domainName) || this.getHeader('host') || ''}`; //! chore avoid null of headers
399
592
  //! save into headers and returns.
400
- const context = Object.assign(Object.assign({}, res), { identity, userAgent, clientIp, requestId, accountId, domain, cookie });
401
- context.source = protocol_1.default.service.myProtocolURI(context); // self service-uri as source
593
+ const context = Object.assign(Object.assign({}, $org), { userAgent, clientIp, requestId, accountId, domain });
402
594
  return context;
403
595
  });
596
+ this.handler = handler;
597
+ this.headers = Object.assign({}, headers);
598
+ }
599
+ hello() {
600
+ return 'header-tool-by-default';
601
+ }
602
+ /**
603
+ * find(or make) the proper KMSService per key
604
+ * @param keyId key of KMS
605
+ * @returns service
606
+ */
607
+ findKMSService(keyId) {
608
+ // const aws = $engine.module('aws') as AWSModule;
609
+ // return aws?.kms;
610
+ const kms = new aws_kms_service_1.AWSKMSService(keyId);
611
+ return kms;
404
612
  }
405
613
  }
406
- exports.LambdaWEBHandler = LambdaWEBHandler;
407
- //! shared config.
408
- LambdaWEBHandler.REPORT_ERROR = lambda_handler_1.LambdaHandler.REPORT_ERROR;
614
+ exports.MyHttpHeaderTool = MyHttpHeaderTool;
409
615
  //# sourceMappingURL=lambda-web-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lambda-web-handler.js","sourceRoot":"","sources":["../../../src/cores/lambda/lambda-web-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lambda-web-handler.js","sourceRoot":"","sources":["../../../src/cores/lambda/lambda-web-handler.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,10 @@ import { STAGE, ProtocolService, ProtocolParam, ProtocolTransformer, ProtocolBod
3
3
  import AWS, { SQS, SNS } from 'aws-sdk';
4
4
  import { APIGatewayProxyEvent, SNSMessage, SQSRecord } from 'aws-lambda';
5
5
  import { ConfigService } from './../config/config-service';
6
+ /**
7
+ * header name to exchange `next-context`
8
+ */
9
+ export declare const HEADER_PROTOCOL_CONTEXT: any;
6
10
  /**
7
11
  * type: MyProtocolType
8
12
  * - supportable type of protocol
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.SQSProtocolTransformer = exports.SNSProtocolTransformer = exports.WEBProtocolTransformer = exports.MyProtocolService = void 0;
15
+ exports.SQSProtocolTransformer = exports.SNSProtocolTransformer = exports.WEBProtocolTransformer = exports.MyProtocolService = exports.HEADER_PROTOCOL_CONTEXT = void 0;
16
16
  /**
17
17
  * file: `cores/protocol-service.ts`
18
18
  * - inter communication protocol services
@@ -27,12 +27,15 @@ exports.SQSProtocolTransformer = exports.SNSProtocolTransformer = exports.WEBPro
27
27
  const engine_1 = require("../../engine/");
28
28
  const aws_sdk_1 = __importDefault(require("aws-sdk"));
29
29
  const lambda_handler_1 = require("./../lambda/lambda-handler");
30
- const NS = engine_1.$U.NS('PRTS', 'yellow'); // NAMESPACE TO BE PRINTED.
31
30
  const url_1 = __importDefault(require("url"));
32
31
  const config_1 = __importDefault(require("../config/")); // load config-module.
33
32
  const aws_1 = __importDefault(require("../aws/")); // load config-module.
34
- // import queryString from 'query-string';
35
33
  const qs_1 = __importDefault(require("qs"));
34
+ const NS = engine_1.$U.NS('PRTS', 'yellow'); // NAMESPACE TO BE PRINTED.
35
+ /**
36
+ * header name to exchange `next-context`
37
+ */
38
+ exports.HEADER_PROTOCOL_CONTEXT = engine_1.$U.env('HEADER_PROTOCOL_CONTEXT', 'x-protocol-context');
36
39
  /**
37
40
  * class: `MyConfigService`
38
41
  * - main implementation for `protocol-service`
@@ -499,7 +502,7 @@ class WEBProtocolTransformer {
499
502
  const base = {};
500
503
  const $ctx = {};
501
504
  const event = Object.assign(Object.assign({}, base), { headers: {
502
- 'x-protocol-context': engine_1.$U.json(context),
505
+ [exports.HEADER_PROTOCOL_CONTEXT]: engine_1.$U.json(context),
503
506
  }, path,
504
507
  httpMethod, pathParameters: { type, id, cmd }, queryStringParameters: param.param, requestContext: Object.assign(Object.assign({}, $ctx), { path,
505
508
  httpMethod, identity: null, // must be 'null' due to not compartible with AWS auth.
@@ -545,9 +548,11 @@ class WEBProtocolTransformer {
545
548
  return body;
546
549
  })(event.body, contType);
547
550
  //! decode context (can be null)
548
- if (typeof headers['x-protocol-context'] == 'undefined')
549
- throw new Error(".headers['x-protocol-context'] is required");
550
- const context = headers['x-protocol-context'] ? JSON.parse(headers['x-protocol-context']) : null;
551
+ if (typeof headers[exports.HEADER_PROTOCOL_CONTEXT] === 'undefined')
552
+ throw new Error(`.headers[${exports.HEADER_PROTOCOL_CONTEXT}] is required`);
553
+ const context = headers[exports.HEADER_PROTOCOL_CONTEXT]
554
+ ? JSON.parse(headers[exports.HEADER_PROTOCOL_CONTEXT])
555
+ : null;
551
556
  //! determine execute mode.
552
557
  const service = '';
553
558
  const stage = `${requestContext.stage || ''}`;