@whook/gcp-functions 8.5.1 → 9.0.0

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.
@@ -15,27 +15,13 @@ var _httpRouter = require("@whook/http-router");
15
15
 
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
 
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
19
 
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
21
 
22
22
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
23
23
 
24
- /**
25
- * Wrap the _autoload service in order to build AWS
26
- * Lambda compatible code.
27
- * @param {Object} services
28
- * The services ENV depends on
29
- * @param {Object} services.NODE_ENV
30
- * The injected NODE_ENV value to add it to the build env
31
- * @param {Object} [services.PROXYED_ENV_VARS={}]
32
- * A list of environment variable names to proxy
33
- * @param {Object} [services.log=noop]
34
- * An optional logging service
35
- * @return {Promise<Object>}
36
- * A promise of an object containing the reshaped env vars.
37
- */
38
- var _default = (0, _knifecycle.alsoInject)(['?BUILD_CONSTANTS', '$instance', '$injector', '?log'], (0, _knifecycle.wrapInitializer)(async ({
24
+ const initializerWrapper = async ({
39
25
  BUILD_CONSTANTS = {},
40
26
  $injector,
41
27
  $instance,
@@ -46,6 +32,8 @@ var _default = (0, _knifecycle.alsoInject)(['?BUILD_CONSTANTS', '$instance', '$i
46
32
 
47
33
  const getAPIOperation = (() => {
48
34
  return async serviceName => {
35
+ var _API$paths$OPERATION$, _OPERATION_API$paths$;
36
+
49
37
  // eslint-disable-next-line
50
38
  API = API || (await $injector(['API'])).API; // eslint-disable-next-line
51
39
 
@@ -61,7 +49,7 @@ var _default = (0, _knifecycle.alsoInject)(['?BUILD_CONSTANTS', '$instance', '$i
61
49
  const OPERATION_API = (0, _whook.cleanupOpenAPI)(_objectSpread(_objectSpread({}, API), {}, {
62
50
  paths: {
63
51
  [OPERATION.path]: {
64
- [OPERATION.method]: API.paths[OPERATION.path][OPERATION.method]
52
+ [OPERATION.method]: (_API$paths$OPERATION$ = API.paths[OPERATION.path]) === null || _API$paths$OPERATION$ === void 0 ? void 0 : _API$paths$OPERATION$[OPERATION.method]
65
53
  }
66
54
  }
67
55
  }));
@@ -71,7 +59,7 @@ var _default = (0, _knifecycle.alsoInject)(['?BUILD_CONSTANTS', '$instance', '$i
71
59
  [OPERATION.method]: (await (0, _httpRouter.dereferenceOpenAPIOperations)(OPERATION_API, [_objectSpread(_objectSpread({
72
60
  path: OPERATION.path,
73
61
  method: OPERATION.method
74
- }, OPERATION_API.paths[OPERATION.path][OPERATION.method]), {}, {
62
+ }, (_OPERATION_API$paths$ = OPERATION_API.paths[OPERATION.path]) === null || _OPERATION_API$paths$ === void 0 ? void 0 : _OPERATION_API$paths$[OPERATION.method]), {}, {
75
63
  parameters: OPERATION.parameters
76
64
  })]))[0]
77
65
  }
@@ -112,10 +100,28 @@ var _default = (0, _knifecycle.alsoInject)(['?BUILD_CONSTANTS', '$instance', '$i
112
100
  return $autoload(serviceName);
113
101
  } catch (err) {
114
102
  log('error', `Build error while loading "${serviceName}".`);
115
- log('stack', err.stack);
103
+ log('error-stack', err.stack || 'no_stack_trace');
104
+ throw err;
116
105
  }
117
106
  };
118
- }, _whook.initAutoload));
107
+ };
108
+ /**
109
+ * Wrap the _autoload service in order to build AWS
110
+ * Lambda compatible code.
111
+ * @param {Object} services
112
+ * The services ENV depends on
113
+ * @param {Object} services.NODE_ENV
114
+ * The injected NODE_ENV value to add it to the build env
115
+ * @param {Object} [services.PROXYED_ENV_VARS={}]
116
+ * A list of environment variable names to proxy
117
+ * @param {Object} [services.log=noop]
118
+ * An optional logging service
119
+ * @return {Promise<Object>}
120
+ * A promise of an object containing the reshaped env vars.
121
+ */
122
+
123
+
124
+ var _default = (0, _knifecycle.alsoInject)(['?BUILD_CONSTANTS', '$instance', '$injector', '?log'], (0, _knifecycle.wrapInitializer)(initializerWrapper, _whook.initAutoload));
119
125
 
120
126
  exports.default = _default;
121
127
  //# sourceMappingURL=_autoload.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/services/_autoload.ts"],"names":["BUILD_CONSTANTS","$injector","$instance","log","noop","$autoload","API","OPERATION_APIS","getAPIOperation","serviceName","OPERATION","find","operation","sourceOperationId","operationId","suffix","YError","OPERATION_API","paths","path","method","parameters","initializer","_initializers","get","SPECIAL_PROPS","TYPE","startsWith","err","stack","initAutoload"],"mappings":"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","sourcesContent":["import { initAutoload, noop, cleanupOpenAPI } from '@whook/whook';\nimport Knifecycle, {\n SPECIAL_PROPS,\n wrapInitializer,\n constant,\n alsoInject,\n} from 'knifecycle';\nimport YError from 'yerror';\nimport {\n dereferenceOpenAPIOperations,\n getOpenAPIOperations,\n} from '@whook/http-router';\nimport type {\n Injector,\n Autoloader,\n Initializer,\n Dependencies,\n Service,\n} from 'knifecycle';\nimport type { WhookBuildConstantsService } from '@whook/whook';\nimport type { WhookRawOperation } from '@whook/http-router';\nimport type { LogService } from 'common-services';\nimport type { OpenAPIV3 } from 'openapi-types';\nimport type { WhookAPIOperationGCPFunctionConfig } from '..';\n\n/**\n * Wrap the _autoload service in order to build AWS\n * Lambda compatible code.\n * @param {Object} services\n * The services ENV depends on\n * @param {Object} services.NODE_ENV\n * The injected NODE_ENV value to add it to the build env\n * @param {Object} [services.PROXYED_ENV_VARS={}]\n * A list of environment variable names to proxy\n * @param {Object} [services.log=noop]\n * An optional logging service\n * @return {Promise<Object>}\n * A promise of an object containing the reshaped env vars.\n */\nexport default alsoInject(\n ['?BUILD_CONSTANTS', '$instance', '$injector', '?log'],\n wrapInitializer(\n async (\n {\n BUILD_CONSTANTS = {},\n $injector,\n $instance,\n log = noop,\n }: {\n BUILD_CONSTANTS?: WhookBuildConstantsService;\n $injector: Injector<Service>;\n $instance: Knifecycle<Dependencies>;\n log: LogService;\n },\n $autoload: Autoloader,\n ): Promise<\n (serviceName: string) => Promise<{\n initializer: Initializer<Dependencies, Service>;\n path: string;\n }>\n > => {\n let API: OpenAPIV3.Document;\n let OPERATION_APIS: WhookRawOperation<WhookAPIOperationGCPFunctionConfig>[];\n const getAPIOperation = (() => {\n return async (serviceName) => {\n // eslint-disable-next-line\n API = API || (await $injector(['API'])).API;\n // eslint-disable-next-line\n OPERATION_APIS =\n OPERATION_APIS ||\n getOpenAPIOperations<WhookAPIOperationGCPFunctionConfig>(API);\n\n const OPERATION = OPERATION_APIS.find(\n (operation) =>\n serviceName ===\n (((operation['x-whook'] || {}).sourceOperationId &&\n 'OPERATION_API_' +\n (operation['x-whook'] || {}).sourceOperationId) ||\n 'OPERATION_API_' + operation.operationId) +\n ((operation['x-whook'] || {}).suffix || ''),\n );\n\n if (!OPERATION) {\n log('error', '💥 - Unable to find a lambda operation definition!');\n throw new YError('E_OPERATION_NOT_FOUND', serviceName);\n }\n\n // eslint-disable-next-line\n const OPERATION_API = cleanupOpenAPI({\n ...API,\n paths: {\n [OPERATION.path]: {\n [OPERATION.method]: API.paths[OPERATION.path][OPERATION.method],\n },\n },\n });\n\n return {\n ...OPERATION_API,\n paths: {\n [OPERATION.path]: {\n [OPERATION.method]: (\n await dereferenceOpenAPIOperations(OPERATION_API, [\n {\n path: OPERATION.path,\n method: OPERATION.method,\n ...OPERATION_API.paths[OPERATION.path][OPERATION.method],\n parameters: OPERATION.parameters,\n },\n ])\n )[0],\n },\n },\n };\n };\n })();\n\n log('debug', '🤖 - Initializing the `$autoload` build wrapper.');\n\n return async (serviceName) => {\n try {\n // TODO: add initializer map to knifecycle public API\n const initializer = ($instance as any)._initializers.get(serviceName);\n\n if (initializer && initializer[SPECIAL_PROPS.TYPE] === 'constant') {\n log(\n 'debug',\n `🤖 - Reusing a constant initializer directly from the Knifecycle instance: \"${serviceName}\".`,\n );\n return {\n initializer,\n path: `instance://${serviceName}`,\n };\n }\n\n if (serviceName.startsWith('OPERATION_API_')) {\n const OPERATION_API = await getAPIOperation(serviceName);\n\n return {\n initializer: constant(serviceName, OPERATION_API),\n path: `api://${serviceName}`,\n };\n }\n\n if (BUILD_CONSTANTS[serviceName]) {\n return {\n initializer: constant(serviceName, BUILD_CONSTANTS[serviceName]),\n path: `constant://${serviceName}`,\n };\n }\n\n return $autoload(serviceName);\n } catch (err) {\n log('error', `Build error while loading \"${serviceName}\".`);\n log('stack', err.stack);\n }\n };\n },\n initAutoload,\n ),\n);\n"],"file":"_autoload.js"}
1
+ {"version":3,"file":"_autoload.js","names":["initializerWrapper","BUILD_CONSTANTS","$injector","$instance","log","noop","$autoload","API","OPERATION_APIS","getAPIOperation","serviceName","getOpenAPIOperations","OPERATION","find","operation","sourceOperationId","operationId","suffix","YError","OPERATION_API","cleanupOpenAPI","paths","path","method","dereferenceOpenAPIOperations","parameters","initializer","_initializers","get","SPECIAL_PROPS","TYPE","startsWith","constant","err","stack","alsoInject","wrapInitializer","initAutoload"],"sources":["../../src/services/_autoload.ts"],"sourcesContent":["import { initAutoload, noop, cleanupOpenAPI } from '@whook/whook';\nimport Knifecycle, {\n SPECIAL_PROPS,\n wrapInitializer,\n constant,\n alsoInject,\n} from 'knifecycle';\nimport YError from 'yerror';\nimport {\n dereferenceOpenAPIOperations,\n getOpenAPIOperations,\n} from '@whook/http-router';\nimport type {\n Injector,\n Autoloader,\n Initializer,\n Dependencies,\n Service,\n ServiceInitializerWrapper,\n} from 'knifecycle';\nimport type { WhookBuildConstantsService } from '@whook/whook';\nimport type { WhookRawOperation } from '@whook/http-router';\nimport type { LogService } from 'common-services';\nimport type { OpenAPIV3 } from 'openapi-types';\nimport type { WhookAPIOperationGCPFunctionConfig } from '..';\n\nconst initializerWrapper: ServiceInitializerWrapper<\n Autoloader<Initializer<Dependencies, Service>>,\n Dependencies\n> = (async (\n {\n BUILD_CONSTANTS = {},\n $injector,\n $instance,\n log = noop,\n }: {\n BUILD_CONSTANTS?: WhookBuildConstantsService;\n $injector: Injector<Service>;\n $instance: Knifecycle;\n log: LogService;\n },\n $autoload: Autoloader<Initializer<Dependencies, Service>>,\n): Promise<\n (serviceName: string) => Promise<{\n initializer: Initializer<Dependencies, Service>;\n path: string;\n }>\n> => {\n let API: OpenAPIV3.Document;\n let OPERATION_APIS: WhookRawOperation<WhookAPIOperationGCPFunctionConfig>[];\n const getAPIOperation = (() => {\n return async (serviceName) => {\n // eslint-disable-next-line\n API = API || (await $injector(['API'])).API;\n // eslint-disable-next-line\n OPERATION_APIS =\n OPERATION_APIS ||\n getOpenAPIOperations<WhookAPIOperationGCPFunctionConfig>(API);\n\n const OPERATION = OPERATION_APIS.find(\n (operation) =>\n serviceName ===\n (((operation['x-whook'] || {}).sourceOperationId &&\n 'OPERATION_API_' +\n (operation['x-whook'] || {}).sourceOperationId) ||\n 'OPERATION_API_' + operation.operationId) +\n ((operation['x-whook'] || {}).suffix || ''),\n );\n\n if (!OPERATION) {\n log('error', '💥 - Unable to find a lambda operation definition!');\n throw new YError('E_OPERATION_NOT_FOUND', serviceName);\n }\n\n // eslint-disable-next-line\n const OPERATION_API = cleanupOpenAPI({\n ...API,\n paths: {\n [OPERATION.path]: {\n [OPERATION.method]: API.paths[OPERATION.path]?.[OPERATION.method],\n },\n },\n });\n\n return {\n ...OPERATION_API,\n paths: {\n [OPERATION.path]: {\n [OPERATION.method]: (\n await dereferenceOpenAPIOperations(OPERATION_API, [\n {\n path: OPERATION.path,\n method: OPERATION.method,\n ...OPERATION_API.paths[OPERATION.path]?.[OPERATION.method],\n parameters: OPERATION.parameters,\n },\n ])\n )[0],\n },\n },\n };\n };\n })();\n\n log('debug', '🤖 - Initializing the `$autoload` build wrapper.');\n\n return async (serviceName) => {\n try {\n // TODO: add initializer map to knifecycle public API\n const initializer = ($instance as any)._initializers.get(serviceName);\n\n if (initializer && initializer[SPECIAL_PROPS.TYPE] === 'constant') {\n log(\n 'debug',\n `🤖 - Reusing a constant initializer directly from the Knifecycle instance: \"${serviceName}\".`,\n );\n return {\n initializer,\n path: `instance://${serviceName}`,\n };\n }\n\n if (serviceName.startsWith('OPERATION_API_')) {\n const OPERATION_API = await getAPIOperation(serviceName);\n\n return {\n initializer: constant(serviceName, OPERATION_API),\n path: `api://${serviceName}`,\n };\n }\n\n if (BUILD_CONSTANTS[serviceName]) {\n return {\n initializer: constant(serviceName, BUILD_CONSTANTS[serviceName]),\n path: `constant://${serviceName}`,\n };\n }\n\n return $autoload(serviceName);\n } catch (err) {\n log('error', `Build error while loading \"${serviceName}\".`);\n log('error-stack', (err as Error).stack || 'no_stack_trace');\n throw err;\n }\n };\n}) as any;\n\n/**\n * Wrap the _autoload service in order to build AWS\n * Lambda compatible code.\n * @param {Object} services\n * The services ENV depends on\n * @param {Object} services.NODE_ENV\n * The injected NODE_ENV value to add it to the build env\n * @param {Object} [services.PROXYED_ENV_VARS={}]\n * A list of environment variable names to proxy\n * @param {Object} [services.log=noop]\n * An optional logging service\n * @return {Promise<Object>}\n * A promise of an object containing the reshaped env vars.\n */\nexport default alsoInject(\n ['?BUILD_CONSTANTS', '$instance', '$injector', '?log'],\n wrapInitializer(initializerWrapper as any, initAutoload),\n);\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
1
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
2
 
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
4
 
5
5
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
6
 
@@ -9,21 +9,7 @@ import { SPECIAL_PROPS, wrapInitializer, constant, alsoInject } from 'knifecycle
9
9
  import YError from 'yerror';
10
10
  import { dereferenceOpenAPIOperations, getOpenAPIOperations } from '@whook/http-router';
11
11
 
12
- /**
13
- * Wrap the _autoload service in order to build AWS
14
- * Lambda compatible code.
15
- * @param {Object} services
16
- * The services ENV depends on
17
- * @param {Object} services.NODE_ENV
18
- * The injected NODE_ENV value to add it to the build env
19
- * @param {Object} [services.PROXYED_ENV_VARS={}]
20
- * A list of environment variable names to proxy
21
- * @param {Object} [services.log=noop]
22
- * An optional logging service
23
- * @return {Promise<Object>}
24
- * A promise of an object containing the reshaped env vars.
25
- */
26
- export default alsoInject(['?BUILD_CONSTANTS', '$instance', '$injector', '?log'], wrapInitializer(async ({
12
+ const initializerWrapper = async ({
27
13
  BUILD_CONSTANTS = {},
28
14
  $injector,
29
15
  $instance,
@@ -34,6 +20,8 @@ export default alsoInject(['?BUILD_CONSTANTS', '$instance', '$injector', '?log']
34
20
 
35
21
  const getAPIOperation = (() => {
36
22
  return async serviceName => {
23
+ var _API$paths$OPERATION$, _OPERATION_API$paths$;
24
+
37
25
  // eslint-disable-next-line
38
26
  API = API || (await $injector(['API'])).API; // eslint-disable-next-line
39
27
 
@@ -49,7 +37,7 @@ export default alsoInject(['?BUILD_CONSTANTS', '$instance', '$injector', '?log']
49
37
  const OPERATION_API = cleanupOpenAPI(_objectSpread(_objectSpread({}, API), {}, {
50
38
  paths: {
51
39
  [OPERATION.path]: {
52
- [OPERATION.method]: API.paths[OPERATION.path][OPERATION.method]
40
+ [OPERATION.method]: (_API$paths$OPERATION$ = API.paths[OPERATION.path]) === null || _API$paths$OPERATION$ === void 0 ? void 0 : _API$paths$OPERATION$[OPERATION.method]
53
41
  }
54
42
  }
55
43
  }));
@@ -59,7 +47,7 @@ export default alsoInject(['?BUILD_CONSTANTS', '$instance', '$injector', '?log']
59
47
  [OPERATION.method]: (await dereferenceOpenAPIOperations(OPERATION_API, [_objectSpread(_objectSpread({
60
48
  path: OPERATION.path,
61
49
  method: OPERATION.method
62
- }, OPERATION_API.paths[OPERATION.path][OPERATION.method]), {}, {
50
+ }, (_OPERATION_API$paths$ = OPERATION_API.paths[OPERATION.path]) === null || _OPERATION_API$paths$ === void 0 ? void 0 : _OPERATION_API$paths$[OPERATION.method]), {}, {
63
51
  parameters: OPERATION.parameters
64
52
  })]))[0]
65
53
  }
@@ -100,8 +88,26 @@ export default alsoInject(['?BUILD_CONSTANTS', '$instance', '$injector', '?log']
100
88
  return $autoload(serviceName);
101
89
  } catch (err) {
102
90
  log('error', `Build error while loading "${serviceName}".`);
103
- log('stack', err.stack);
91
+ log('error-stack', err.stack || 'no_stack_trace');
92
+ throw err;
104
93
  }
105
94
  };
106
- }, initAutoload));
95
+ };
96
+ /**
97
+ * Wrap the _autoload service in order to build AWS
98
+ * Lambda compatible code.
99
+ * @param {Object} services
100
+ * The services ENV depends on
101
+ * @param {Object} services.NODE_ENV
102
+ * The injected NODE_ENV value to add it to the build env
103
+ * @param {Object} [services.PROXYED_ENV_VARS={}]
104
+ * A list of environment variable names to proxy
105
+ * @param {Object} [services.log=noop]
106
+ * An optional logging service
107
+ * @return {Promise<Object>}
108
+ * A promise of an object containing the reshaped env vars.
109
+ */
110
+
111
+
112
+ export default alsoInject(['?BUILD_CONSTANTS', '$instance', '$injector', '?log'], wrapInitializer(initializerWrapper, initAutoload));
107
113
  //# sourceMappingURL=_autoload.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/services/_autoload.ts"],"names":["initAutoload","noop","cleanupOpenAPI","SPECIAL_PROPS","wrapInitializer","constant","alsoInject","YError","dereferenceOpenAPIOperations","getOpenAPIOperations","BUILD_CONSTANTS","$injector","$instance","log","$autoload","API","OPERATION_APIS","getAPIOperation","serviceName","OPERATION","find","operation","sourceOperationId","operationId","suffix","OPERATION_API","paths","path","method","parameters","initializer","_initializers","get","TYPE","startsWith","err","stack"],"mappings":"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","sourcesContent":["import { initAutoload, noop, cleanupOpenAPI } from '@whook/whook';\nimport Knifecycle, {\n SPECIAL_PROPS,\n wrapInitializer,\n constant,\n alsoInject,\n} from 'knifecycle';\nimport YError from 'yerror';\nimport {\n dereferenceOpenAPIOperations,\n getOpenAPIOperations,\n} from '@whook/http-router';\nimport type {\n Injector,\n Autoloader,\n Initializer,\n Dependencies,\n Service,\n} from 'knifecycle';\nimport type { WhookBuildConstantsService } from '@whook/whook';\nimport type { WhookRawOperation } from '@whook/http-router';\nimport type { LogService } from 'common-services';\nimport type { OpenAPIV3 } from 'openapi-types';\nimport type { WhookAPIOperationGCPFunctionConfig } from '..';\n\n/**\n * Wrap the _autoload service in order to build AWS\n * Lambda compatible code.\n * @param {Object} services\n * The services ENV depends on\n * @param {Object} services.NODE_ENV\n * The injected NODE_ENV value to add it to the build env\n * @param {Object} [services.PROXYED_ENV_VARS={}]\n * A list of environment variable names to proxy\n * @param {Object} [services.log=noop]\n * An optional logging service\n * @return {Promise<Object>}\n * A promise of an object containing the reshaped env vars.\n */\nexport default alsoInject(\n ['?BUILD_CONSTANTS', '$instance', '$injector', '?log'],\n wrapInitializer(\n async (\n {\n BUILD_CONSTANTS = {},\n $injector,\n $instance,\n log = noop,\n }: {\n BUILD_CONSTANTS?: WhookBuildConstantsService;\n $injector: Injector<Service>;\n $instance: Knifecycle<Dependencies>;\n log: LogService;\n },\n $autoload: Autoloader,\n ): Promise<\n (serviceName: string) => Promise<{\n initializer: Initializer<Dependencies, Service>;\n path: string;\n }>\n > => {\n let API: OpenAPIV3.Document;\n let OPERATION_APIS: WhookRawOperation<WhookAPIOperationGCPFunctionConfig>[];\n const getAPIOperation = (() => {\n return async (serviceName) => {\n // eslint-disable-next-line\n API = API || (await $injector(['API'])).API;\n // eslint-disable-next-line\n OPERATION_APIS =\n OPERATION_APIS ||\n getOpenAPIOperations<WhookAPIOperationGCPFunctionConfig>(API);\n\n const OPERATION = OPERATION_APIS.find(\n (operation) =>\n serviceName ===\n (((operation['x-whook'] || {}).sourceOperationId &&\n 'OPERATION_API_' +\n (operation['x-whook'] || {}).sourceOperationId) ||\n 'OPERATION_API_' + operation.operationId) +\n ((operation['x-whook'] || {}).suffix || ''),\n );\n\n if (!OPERATION) {\n log('error', '💥 - Unable to find a lambda operation definition!');\n throw new YError('E_OPERATION_NOT_FOUND', serviceName);\n }\n\n // eslint-disable-next-line\n const OPERATION_API = cleanupOpenAPI({\n ...API,\n paths: {\n [OPERATION.path]: {\n [OPERATION.method]: API.paths[OPERATION.path][OPERATION.method],\n },\n },\n });\n\n return {\n ...OPERATION_API,\n paths: {\n [OPERATION.path]: {\n [OPERATION.method]: (\n await dereferenceOpenAPIOperations(OPERATION_API, [\n {\n path: OPERATION.path,\n method: OPERATION.method,\n ...OPERATION_API.paths[OPERATION.path][OPERATION.method],\n parameters: OPERATION.parameters,\n },\n ])\n )[0],\n },\n },\n };\n };\n })();\n\n log('debug', '🤖 - Initializing the `$autoload` build wrapper.');\n\n return async (serviceName) => {\n try {\n // TODO: add initializer map to knifecycle public API\n const initializer = ($instance as any)._initializers.get(serviceName);\n\n if (initializer && initializer[SPECIAL_PROPS.TYPE] === 'constant') {\n log(\n 'debug',\n `🤖 - Reusing a constant initializer directly from the Knifecycle instance: \"${serviceName}\".`,\n );\n return {\n initializer,\n path: `instance://${serviceName}`,\n };\n }\n\n if (serviceName.startsWith('OPERATION_API_')) {\n const OPERATION_API = await getAPIOperation(serviceName);\n\n return {\n initializer: constant(serviceName, OPERATION_API),\n path: `api://${serviceName}`,\n };\n }\n\n if (BUILD_CONSTANTS[serviceName]) {\n return {\n initializer: constant(serviceName, BUILD_CONSTANTS[serviceName]),\n path: `constant://${serviceName}`,\n };\n }\n\n return $autoload(serviceName);\n } catch (err) {\n log('error', `Build error while loading \"${serviceName}\".`);\n log('stack', err.stack);\n }\n };\n },\n initAutoload,\n ),\n);\n"],"file":"_autoload.mjs"}
1
+ {"version":3,"file":"_autoload.mjs","names":["initAutoload","noop","cleanupOpenAPI","SPECIAL_PROPS","wrapInitializer","constant","alsoInject","YError","dereferenceOpenAPIOperations","getOpenAPIOperations","initializerWrapper","BUILD_CONSTANTS","$injector","$instance","log","$autoload","API","OPERATION_APIS","getAPIOperation","serviceName","OPERATION","find","operation","sourceOperationId","operationId","suffix","OPERATION_API","paths","path","method","parameters","initializer","_initializers","get","TYPE","startsWith","err","stack"],"sources":["../../src/services/_autoload.ts"],"sourcesContent":["import { initAutoload, noop, cleanupOpenAPI } from '@whook/whook';\nimport Knifecycle, {\n SPECIAL_PROPS,\n wrapInitializer,\n constant,\n alsoInject,\n} from 'knifecycle';\nimport YError from 'yerror';\nimport {\n dereferenceOpenAPIOperations,\n getOpenAPIOperations,\n} from '@whook/http-router';\nimport type {\n Injector,\n Autoloader,\n Initializer,\n Dependencies,\n Service,\n ServiceInitializerWrapper,\n} from 'knifecycle';\nimport type { WhookBuildConstantsService } from '@whook/whook';\nimport type { WhookRawOperation } from '@whook/http-router';\nimport type { LogService } from 'common-services';\nimport type { OpenAPIV3 } from 'openapi-types';\nimport type { WhookAPIOperationGCPFunctionConfig } from '..';\n\nconst initializerWrapper: ServiceInitializerWrapper<\n Autoloader<Initializer<Dependencies, Service>>,\n Dependencies\n> = (async (\n {\n BUILD_CONSTANTS = {},\n $injector,\n $instance,\n log = noop,\n }: {\n BUILD_CONSTANTS?: WhookBuildConstantsService;\n $injector: Injector<Service>;\n $instance: Knifecycle;\n log: LogService;\n },\n $autoload: Autoloader<Initializer<Dependencies, Service>>,\n): Promise<\n (serviceName: string) => Promise<{\n initializer: Initializer<Dependencies, Service>;\n path: string;\n }>\n> => {\n let API: OpenAPIV3.Document;\n let OPERATION_APIS: WhookRawOperation<WhookAPIOperationGCPFunctionConfig>[];\n const getAPIOperation = (() => {\n return async (serviceName) => {\n // eslint-disable-next-line\n API = API || (await $injector(['API'])).API;\n // eslint-disable-next-line\n OPERATION_APIS =\n OPERATION_APIS ||\n getOpenAPIOperations<WhookAPIOperationGCPFunctionConfig>(API);\n\n const OPERATION = OPERATION_APIS.find(\n (operation) =>\n serviceName ===\n (((operation['x-whook'] || {}).sourceOperationId &&\n 'OPERATION_API_' +\n (operation['x-whook'] || {}).sourceOperationId) ||\n 'OPERATION_API_' + operation.operationId) +\n ((operation['x-whook'] || {}).suffix || ''),\n );\n\n if (!OPERATION) {\n log('error', '💥 - Unable to find a lambda operation definition!');\n throw new YError('E_OPERATION_NOT_FOUND', serviceName);\n }\n\n // eslint-disable-next-line\n const OPERATION_API = cleanupOpenAPI({\n ...API,\n paths: {\n [OPERATION.path]: {\n [OPERATION.method]: API.paths[OPERATION.path]?.[OPERATION.method],\n },\n },\n });\n\n return {\n ...OPERATION_API,\n paths: {\n [OPERATION.path]: {\n [OPERATION.method]: (\n await dereferenceOpenAPIOperations(OPERATION_API, [\n {\n path: OPERATION.path,\n method: OPERATION.method,\n ...OPERATION_API.paths[OPERATION.path]?.[OPERATION.method],\n parameters: OPERATION.parameters,\n },\n ])\n )[0],\n },\n },\n };\n };\n })();\n\n log('debug', '🤖 - Initializing the `$autoload` build wrapper.');\n\n return async (serviceName) => {\n try {\n // TODO: add initializer map to knifecycle public API\n const initializer = ($instance as any)._initializers.get(serviceName);\n\n if (initializer && initializer[SPECIAL_PROPS.TYPE] === 'constant') {\n log(\n 'debug',\n `🤖 - Reusing a constant initializer directly from the Knifecycle instance: \"${serviceName}\".`,\n );\n return {\n initializer,\n path: `instance://${serviceName}`,\n };\n }\n\n if (serviceName.startsWith('OPERATION_API_')) {\n const OPERATION_API = await getAPIOperation(serviceName);\n\n return {\n initializer: constant(serviceName, OPERATION_API),\n path: `api://${serviceName}`,\n };\n }\n\n if (BUILD_CONSTANTS[serviceName]) {\n return {\n initializer: constant(serviceName, BUILD_CONSTANTS[serviceName]),\n path: `constant://${serviceName}`,\n };\n }\n\n return $autoload(serviceName);\n } catch (err) {\n log('error', `Build error while loading \"${serviceName}\".`);\n log('error-stack', (err as Error).stack || 'no_stack_trace');\n throw err;\n }\n };\n}) as any;\n\n/**\n * Wrap the _autoload service in order to build AWS\n * Lambda compatible code.\n * @param {Object} services\n * The services ENV depends on\n * @param {Object} services.NODE_ENV\n * The injected NODE_ENV value to add it to the build env\n * @param {Object} [services.PROXYED_ENV_VARS={}]\n * A list of environment variable names to proxy\n * @param {Object} [services.log=noop]\n * An optional logging service\n * @return {Promise<Object>}\n * A promise of an object containing the reshaped env vars.\n */\nexport default alsoInject(\n ['?BUILD_CONSTANTS', '$instance', '$injector', '?log'],\n wrapInitializer(initializerWrapper as any, initAutoload),\n);\n"],"mappings":"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"}
@@ -1,2 +1,5 @@
1
- declare const _default: import("knifecycle").ServiceInitializer<unknown, any>;
1
+ declare const _default: import("knifecycle").ServiceInitializer<unknown, {
2
+ (...data: any[]): void;
3
+ (message?: any, ...optionalParams: any[]): void;
4
+ }>;
2
5
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/services/log.ts"],"names":["console","log","bind"],"mappings":";;;;;;;AAAA;;AAEA;eACe,yBAAQ,YAAYA,OAAO,CAACC,GAAR,CAAYC,IAAZ,CAAiBF,OAAjB,CAApB,EAA+C,KAA/C,C","sourcesContent":["import { service } from 'knifecycle';\n\n// eslint-disable-next-line\nexport default service(async () => console.log.bind(console), 'log');\n"],"file":"log.js"}
1
+ {"version":3,"file":"log.js","names":["service","console","log","bind"],"sources":["../../src/services/log.ts"],"sourcesContent":["import { service } from 'knifecycle';\n\n// eslint-disable-next-line\nexport default service(async () => console.log.bind(console), 'log');\n"],"mappings":";;;;;;;AAAA;;AAEA;eACe,IAAAA,mBAAA,EAAQ,YAAYC,OAAO,CAACC,GAAR,CAAYC,IAAZ,CAAiBF,OAAjB,CAApB,EAA+C,KAA/C,C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/services/log.ts"],"names":["service","console","log","bind"],"mappings":"AAAA,SAASA,OAAT,QAAwB,YAAxB,C,CAEA;;AACA,eAAeA,OAAO,CAAC,YAAYC,OAAO,CAACC,GAAR,CAAYC,IAAZ,CAAiBF,OAAjB,CAAb,EAAwC,KAAxC,CAAtB","sourcesContent":["import { service } from 'knifecycle';\n\n// eslint-disable-next-line\nexport default service(async () => console.log.bind(console), 'log');\n"],"file":"log.mjs"}
1
+ {"version":3,"file":"log.mjs","names":["service","console","log","bind"],"sources":["../../src/services/log.ts"],"sourcesContent":["import { service } from 'knifecycle';\n\n// eslint-disable-next-line\nexport default service(async () => console.log.bind(console), 'log');\n"],"mappings":"AAAA,SAASA,OAAT,QAAwB,YAAxB,C,CAEA;;AACA,eAAeA,OAAO,CAAC,YAAYC,OAAO,CAACC,GAAR,CAAYC,IAAZ,CAAiBF,OAAjB,CAAb,EAAwC,KAAxC,CAAtB"}
@@ -6,7 +6,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
6
6
 
7
7
  describe('initLogService', () => {
8
8
  it('should work', async () => {
9
- await (0, _log.default)();
9
+ await (0, _log.default)({});
10
10
  });
11
11
  });
12
12
  //# sourceMappingURL=log.test.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/services/log.test.ts"],"names":["describe","it"],"mappings":";;AAAA;;;;AAEAA,QAAQ,CAAC,gBAAD,EAAmB,MAAM;AAC/BC,EAAAA,EAAE,CAAC,aAAD,EAAgB,YAAY;AAC5B,UAAM,mBAAN;AACD,GAFC,CAAF;AAGD,CAJO,CAAR","sourcesContent":["import initLogService from './log';\n\ndescribe('initLogService', () => {\n it('should work', async () => {\n await initLogService();\n });\n});\n"],"file":"log.test.js"}
1
+ {"version":3,"file":"log.test.js","names":["describe","it","initLogService"],"sources":["../../src/services/log.test.ts"],"sourcesContent":["import initLogService from './log';\n\ndescribe('initLogService', () => {\n it('should work', async () => {\n await initLogService({});\n });\n});\n"],"mappings":";;AAAA;;;;AAEAA,QAAQ,CAAC,gBAAD,EAAmB,MAAM;EAC/BC,EAAE,CAAC,aAAD,EAAgB,YAAY;IAC5B,MAAM,IAAAC,YAAA,EAAe,EAAf,CAAN;EACD,CAFC,CAAF;AAGD,CAJO,CAAR"}
@@ -1,7 +1,7 @@
1
1
  import initLogService from './log';
2
2
  describe('initLogService', () => {
3
3
  it('should work', async () => {
4
- await initLogService();
4
+ await initLogService({});
5
5
  });
6
6
  });
7
7
  //# sourceMappingURL=log.test.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/services/log.test.ts"],"names":["initLogService","describe","it"],"mappings":"AAAA,OAAOA,cAAP,MAA2B,OAA3B;AAEAC,QAAQ,CAAC,gBAAD,EAAmB,MAAM;AAC/BC,EAAAA,EAAE,CAAC,aAAD,EAAgB,YAAY;AAC5B,UAAMF,cAAc,EAApB;AACD,GAFC,CAAF;AAGD,CAJO,CAAR","sourcesContent":["import initLogService from './log';\n\ndescribe('initLogService', () => {\n it('should work', async () => {\n await initLogService();\n });\n});\n"],"file":"log.test.mjs"}
1
+ {"version":3,"file":"log.test.mjs","names":["initLogService","describe","it"],"sources":["../../src/services/log.test.ts"],"sourcesContent":["import initLogService from './log';\n\ndescribe('initLogService', () => {\n it('should work', async () => {\n await initLogService({});\n });\n});\n"],"mappings":"AAAA,OAAOA,cAAP,MAA2B,OAA3B;AAEAC,QAAQ,CAAC,gBAAD,EAAmB,MAAM;EAC/BC,EAAE,CAAC,aAAD,EAAgB,YAAY;IAC5B,MAAMF,cAAc,CAAC,EAAD,CAApB;EACD,CAFC,CAAF;AAGD,CAJO,CAAR"}
@@ -25,9 +25,9 @@ const _excluded = ["OPERATION_API", "WRAPPERS", "NODE_ENV", "DEBUG_NODE_ENVS", "
25
25
 
26
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
27
 
28
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
28
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
29
29
 
30
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
30
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
31
31
 
32
32
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
33
33
 
@@ -71,9 +71,9 @@ async function initHandlerForAWSHTTPFunction(initHandler, _ref) {
71
71
  verbose: DEBUG_NODE_ENVS.includes(NODE_ENV),
72
72
  strict: true,
73
73
  logger: {
74
- log: (...args) => log('debug', ...args),
75
- warn: (...args) => log('warning', ...args),
76
- error: (...args) => log('error', ...args)
74
+ log: (...args) => log === null || log === void 0 ? void 0 : log('debug', ...args),
75
+ warn: (...args) => log === null || log === void 0 ? void 0 : log('warning', ...args),
76
+ error: (...args) => log === null || log === void 0 ? void 0 : log('error', ...args)
77
77
  },
78
78
  useDefaults: true,
79
79
  coerceTypes: true
@@ -131,11 +131,11 @@ async function handleForAWSHTTPFunction({
131
131
  validators,
132
132
  bodyValidator
133
133
  }, handler, req, res) {
134
- const debugging = DEBUG_NODE_ENVS.includes(NODE_ENV);
134
+ const debugging = (DEBUG_NODE_ENVS || []).includes(NODE_ENV);
135
135
 
136
136
  const bufferLimit = _bytes.default.parse(BUFFER_LIMIT);
137
137
 
138
- log('info', 'GCP_FUNCTIONS_REQUEST', JSON.stringify({
138
+ log === null || log === void 0 ? void 0 : log('info', 'GCP_FUNCTIONS_REQUEST', JSON.stringify({
139
139
  url: req.originalUrl,
140
140
  method: req.method,
141
141
  body: req.body,
@@ -147,7 +147,7 @@ async function handleForAWSHTTPFunction({
147
147
  let response;
148
148
  let responseLog;
149
149
  let responseSpec;
150
- log('debug', 'REQUEST', JSON.stringify(_objectSpread(_objectSpread({}, request), {}, {
150
+ log === null || log === void 0 ? void 0 : log('debug', 'REQUEST', JSON.stringify(_objectSpread(_objectSpread({}, request), {}, {
151
151
  body: request.body ? 'Stream' : undefined,
152
152
  headers: obfuscator.obfuscateSensibleHeaders(request.headers)
153
153
  })));
@@ -224,7 +224,7 @@ async function handleForAWSHTTPFunction({
224
224
  type: 'success',
225
225
  status: response.status
226
226
  };
227
- log('debug', JSON.stringify(responseLog));
227
+ log === null || log === void 0 ? void 0 : log('debug', JSON.stringify(responseLog));
228
228
  } catch (err) {
229
229
  var _castedError$headers;
230
230
 
@@ -237,7 +237,7 @@ async function handleForAWSHTTPFunction({
237
237
  params: castedError.params || [],
238
238
  stack: castedError.stack
239
239
  };
240
- log('error', JSON.stringify(responseLog));
240
+ log === null || log === void 0 ? void 0 : log('error', JSON.stringify(responseLog));
241
241
  response = {
242
242
  status: castedError.httpCode,
243
243
  headers: _objectSpread(_objectSpread(_objectSpread({}, (0, _whook.lowerCaseHeaders)(CORS)), (_castedError$headers = castedError.headers) !== null && _castedError$headers !== void 0 ? _castedError$headers : {}), {}, {
@@ -253,7 +253,7 @@ async function handleForAWSHTTPFunction({
253
253
  };
254
254
  }
255
255
 
256
- log('debug', 'RESPONSE', JSON.stringify(_objectSpread(_objectSpread({}, response), {}, {
256
+ log === null || log === void 0 ? void 0 : log('debug', 'RESPONSE', JSON.stringify(_objectSpread(_objectSpread({}, response), {}, {
257
257
  body: obfuscateEventBody(obfuscator, response.body),
258
258
  headers: obfuscator.obfuscateSensibleHeaders(response.headers)
259
259
  })));
@@ -282,8 +282,10 @@ async function gcpfReqToRequest(req) {
282
282
  }
283
283
 
284
284
  async function pipeResponseInGCPFResponse(response, res) {
285
- Object.keys(response.headers).forEach(headerName => {
286
- res.set(headerName, response.headers[headerName]);
285
+ Object.keys(response.headers || {}).forEach(headerName => {
286
+ var _response$headers;
287
+
288
+ res.set(headerName, (_response$headers = response.headers) === null || _response$headers === void 0 ? void 0 : _response$headers[headerName]);
287
289
  });
288
290
  res.status(response.status);
289
291
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/wrappers/googleHTTPFunction.ts"],"names":["SEARCH_SEPARATOR","PATH_SEPARATOR","wrapHandlerForAWSHTTPFunction","initHandler","initHandlerForAWSHTTPFunction","bind","OPERATION_API","WRAPPERS","NODE_ENV","DEBUG_NODE_ENVS","DEFAULT_DEBUG_NODE_ENVS","DECODERS","DEFAULT_DECODERS","ENCODERS","DEFAULT_ENCODERS","log","noop","time","Date","now","services","path","Object","keys","paths","method","OPERATION","consumableCharsets","produceableCharsets","consumableMediaTypes","produceableMediaTypes","ajv","Ajv","verbose","includes","strict","logger","args","warn","error","useDefaults","coerceTypes","ammendedParameters","validators","operationId","parameters","concat","bodyValidator","applyWrappers","handler","handleForAWSHTTPFunction","PARSERS","DEFAULT_PARSERS","STRINGIFYERS","DEFAULT_STRINGIFYERS","BUFFER_LIMIT","DEFAULT_BUFFER_LIMIT","QUERY_PARSER","CORS","obfuscator","req","res","debugging","bufferLimit","bytes","parse","JSON","stringify","url","originalUrl","body","headers","obfuscateSensibleHeaders","request","gcpfReqToRequest","response","responseLog","responseSpec","undefined","operation","bodySpec","split","parts","filter","identity","search","substr","length","pathParameters","map","part","index","matches","exec","name","value","reduce","accParameters","retroCompatibleQueryParameters","p","in","schema","authorization","contentType","err","HTTPError","cast","contentTypes","responseObject","responses","status","responseSchema","content","responseHasSchema","type","format","castedError","code","statusCode","httpCode","params","stack","obfuscateEventBody","pipeResponseInGCPFResponse","toLowerCase","rawBody","toString","bodyStream","stream","PassThrough","write","end","forEach","headerName","set","pipe","jsonBody","obfuscateSensibleProps"],"mappings":"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","sourcesContent":["import {\n DEFAULT_DEBUG_NODE_ENVS,\n DEFAULT_BUFFER_LIMIT,\n DEFAULT_PARSERS,\n DEFAULT_STRINGIFYERS,\n DEFAULT_DECODERS,\n DEFAULT_ENCODERS,\n extractOperationSecurityParameters,\n castParameters,\n} from '@whook/http-router';\nimport { reuseSpecialProps, alsoInject } from 'knifecycle';\nimport Ajv from 'ajv';\nimport addAJVFormats from 'ajv-formats';\nimport bytes from 'bytes';\nimport HTTPError from 'yhttperror';\nimport {\n prepareParametersValidators,\n prepareBodyValidator,\n applyValidators,\n filterHeaders,\n extractBodySpec,\n extractResponseSpec,\n checkResponseCharset,\n checkResponseMediaType,\n executeHandler,\n extractProduceableMediaTypes,\n extractConsumableMediaTypes,\n getBody,\n sendBody,\n} from '@whook/http-router';\nimport { noop, compose, identity, lowerCaseHeaders } from '@whook/whook';\nimport stream from 'stream';\nimport type { WhookQueryStringParser } from '@whook/http-router';\nimport type { ServiceInitializer, Dependencies, Service } from 'knifecycle';\nimport type {\n WhookRequest,\n WhookResponse,\n WhookHandler,\n ObfuscatorService,\n WhookOperation,\n WhookWrapper,\n} from '@whook/whook';\nimport type { TimeService, LogService } from 'common-services';\nimport type { OpenAPIV3 } from 'openapi-types';\nimport type { Readable } from 'stream';\nimport type { CORSConfig } from '@whook/cors';\n\ntype HTTPWrapperDependencies = {\n NODE_ENV: string;\n DEBUG_NODE_ENVS?: string[];\n OPERATION: WhookOperation;\n DECODERS?: typeof DEFAULT_DECODERS;\n ENCODERS?: typeof DEFAULT_ENCODERS;\n PARSERS?: typeof DEFAULT_PARSERS;\n STRINGIFYERS?: typeof DEFAULT_STRINGIFYERS;\n QUERY_PARSER: WhookQueryStringParser;\n BUFFER_LIMIT?: string;\n obfuscator: ObfuscatorService;\n time?: TimeService;\n log?: LogService;\n WRAPPERS: WhookWrapper<Dependencies, Service>[];\n};\n\nconst SEARCH_SEPARATOR = '?';\nconst PATH_SEPARATOR = '/';\n\nexport default function wrapHandlerForAWSHTTPFunction<\n D,\n S extends WhookHandler,\n>(\n initHandler: ServiceInitializer<D, S>,\n): ServiceInitializer<D & HTTPWrapperDependencies, S> {\n return alsoInject<HTTPWrapperDependencies, D, S>(\n [\n 'OPERATION_API',\n 'WRAPPERS',\n '?DEBUG_NODE_ENVS',\n 'NODE_ENV',\n '?DECODERS',\n '?ENCODERS',\n '?PARSERS',\n '?STRINGIFYERS',\n '?BUFFER_LIMIT',\n 'QUERY_PARSER',\n 'obfuscator',\n '?log',\n '?time',\n ],\n reuseSpecialProps(\n initHandler,\n initHandlerForAWSHTTPFunction.bind(\n null,\n initHandler,\n ) as ServiceInitializer<D, S>,\n ),\n );\n}\n\nasync function initHandlerForAWSHTTPFunction(\n initHandler: ServiceInitializer<unknown, WhookHandler>,\n {\n OPERATION_API,\n WRAPPERS,\n NODE_ENV,\n DEBUG_NODE_ENVS = DEFAULT_DEBUG_NODE_ENVS,\n DECODERS = DEFAULT_DECODERS,\n ENCODERS = DEFAULT_ENCODERS,\n log = noop,\n time = Date.now.bind(Date),\n ...services\n },\n) {\n const path = Object.keys(OPERATION_API.paths)[0];\n const method = Object.keys(OPERATION_API.paths[path])[0];\n const OPERATION: WhookOperation = {\n path,\n method,\n ...OPERATION_API.paths[path][method],\n };\n const consumableCharsets = Object.keys(DECODERS);\n const produceableCharsets = Object.keys(ENCODERS);\n const consumableMediaTypes = extractConsumableMediaTypes(OPERATION);\n const produceableMediaTypes = extractProduceableMediaTypes(OPERATION);\n const ajv = new Ajv({\n verbose: DEBUG_NODE_ENVS.includes(NODE_ENV),\n strict: true,\n logger: {\n log: (...args) => log('debug', ...args),\n warn: (...args) => log('warning', ...args),\n error: (...args) => log('error', ...args),\n },\n useDefaults: true,\n coerceTypes: true,\n });\n addAJVFormats(ajv);\n const ammendedParameters = extractOperationSecurityParameters(\n OPERATION_API,\n OPERATION,\n );\n const validators = prepareParametersValidators(\n ajv,\n OPERATION.operationId,\n ((OPERATION.parameters || []) as OpenAPIV3.ParameterObject[]).concat(\n ammendedParameters,\n ),\n );\n const bodyValidator = prepareBodyValidator(ajv, OPERATION);\n const applyWrappers = compose(...WRAPPERS) as WhookWrapper<\n Dependencies,\n Service\n >;\n\n const handler = await (\n applyWrappers(initHandler) as ServiceInitializer<Dependencies, Service>\n )({\n OPERATION,\n DEBUG_NODE_ENVS,\n NODE_ENV,\n ...services,\n time,\n log,\n });\n\n return handleForAWSHTTPFunction.bind(\n null,\n {\n OPERATION,\n NODE_ENV,\n DEBUG_NODE_ENVS,\n DECODERS,\n ENCODERS,\n log,\n time,\n ...services,\n },\n {\n consumableMediaTypes,\n produceableMediaTypes,\n consumableCharsets,\n produceableCharsets,\n validators,\n bodyValidator,\n ammendedParameters,\n },\n handler,\n );\n}\n\nasync function handleForAWSHTTPFunction(\n {\n OPERATION,\n DEBUG_NODE_ENVS,\n NODE_ENV,\n ENCODERS,\n DECODERS,\n PARSERS = DEFAULT_PARSERS,\n STRINGIFYERS = DEFAULT_STRINGIFYERS,\n BUFFER_LIMIT = DEFAULT_BUFFER_LIMIT,\n QUERY_PARSER,\n CORS,\n log,\n obfuscator,\n }: HTTPWrapperDependencies & { CORS: CORSConfig },\n {\n consumableMediaTypes,\n produceableMediaTypes,\n consumableCharsets,\n produceableCharsets,\n validators,\n bodyValidator,\n },\n handler: WhookHandler,\n req,\n res,\n) {\n const debugging = DEBUG_NODE_ENVS.includes(NODE_ENV);\n const bufferLimit = bytes.parse(BUFFER_LIMIT);\n\n log(\n 'info',\n 'GCP_FUNCTIONS_REQUEST',\n JSON.stringify({\n url: req.originalUrl,\n method: req.method,\n body: req.body,\n // body: obfuscateEventBody(obfuscator, req.body),\n headers: obfuscator.obfuscateSensibleHeaders(req.headers),\n }),\n );\n\n const request = await gcpfReqToRequest(req);\n let parameters;\n let response;\n let responseLog;\n let responseSpec;\n\n log(\n 'debug',\n 'REQUEST',\n JSON.stringify({\n ...request,\n body: request.body ? 'Stream' : undefined,\n headers: obfuscator.obfuscateSensibleHeaders(request.headers),\n }),\n );\n\n try {\n const operation = OPERATION;\n const bodySpec = extractBodySpec(\n request,\n consumableMediaTypes,\n consumableCharsets,\n );\n\n responseSpec = extractResponseSpec(\n operation,\n request,\n produceableMediaTypes,\n produceableCharsets,\n );\n\n try {\n const body = await getBody(\n {\n DECODERS,\n PARSERS,\n bufferLimit,\n },\n operation,\n request.body as Readable,\n bodySpec,\n );\n const path = request.url.split(SEARCH_SEPARATOR)[0];\n const parts = path.split(PATH_SEPARATOR).filter(identity);\n const search = request.url.substr(\n request.url.split(SEARCH_SEPARATOR)[0].length,\n );\n\n const pathParameters = OPERATION.path\n .split(PATH_SEPARATOR)\n .filter(identity)\n .map((part, index) => {\n const matches = /^\\{([\\d\\w]+)\\}$/i.exec(part);\n\n if (matches) {\n return {\n name: matches[1],\n value: parts[index],\n };\n }\n })\n .filter(identity)\n .reduce(\n (accParameters, { name, value }) => ({\n ...accParameters,\n [name]: value,\n }),\n {},\n );\n\n // TODO: Update strictQS to handle OpenAPI 3\n const retroCompatibleQueryParameters = (OPERATION.parameters || [])\n .filter((p) => p.in === 'query')\n .map((p) => ({ ...p, ...p.schema }));\n\n parameters = {\n ...pathParameters,\n ...QUERY_PARSER(retroCompatibleQueryParameters as any, search),\n ...filterHeaders(operation.parameters, request.headers),\n };\n\n parameters = {\n // TODO: Use the security of the operation to infer\n // authorization parameters, see:\n // https://github.com/nfroidure/whook/blob/06ccae93d1d52d97ff70fd5e19fa826bdabf3968/packages/whook-http-router/src/validation.js#L110\n authorization: parameters.authorization,\n ...castParameters(operation.parameters || [], parameters),\n };\n\n applyValidators(operation, validators, parameters);\n\n bodyValidator(operation, bodySpec.contentType, body);\n\n parameters = {\n ...parameters,\n ...('undefined' !== typeof body ? { body } : {}),\n };\n } catch (err) {\n throw HTTPError.cast(err, 400);\n }\n\n response = await executeHandler(operation, handler, parameters);\n\n if (response.body) {\n response.headers['content-type'] =\n response.headers['content-type'] || responseSpec.contentTypes[0];\n }\n\n // Check the stringifyer only when a schema is\n // specified and it is not a binary one\n const responseObject =\n operation.responses &&\n (operation.responses[response.status] as OpenAPIV3.ResponseObject);\n const responseSchema =\n responseObject &&\n responseObject.content &&\n responseObject.content[response.headers['content-type']] &&\n (responseObject.content[response.headers['content-type']]\n .schema as OpenAPIV3.SchemaObject);\n const responseHasSchema =\n responseSchema &&\n (responseSchema.type !== 'string' || responseSchema.format !== 'binary');\n\n if (responseHasSchema && !STRINGIFYERS[response.headers['content-type']]) {\n throw new HTTPError(\n 500,\n 'E_STRINGIFYER_LACK',\n response.headers['content-type'],\n );\n }\n if (response.body) {\n checkResponseMediaType(request, responseSpec, produceableMediaTypes);\n checkResponseCharset(request, responseSpec, produceableCharsets);\n }\n responseLog = {\n type: 'success',\n status: response.status,\n };\n log('debug', JSON.stringify(responseLog));\n } catch (err) {\n const castedError = HTTPError.cast(err);\n\n responseLog = {\n type: 'error',\n code: castedError.code,\n statusCode: castedError.httpCode,\n params: castedError.params || [],\n stack: castedError.stack,\n };\n\n log('error', JSON.stringify(responseLog));\n response = {\n status: castedError.httpCode,\n headers: {\n ...lowerCaseHeaders(CORS),\n ...(castedError.headers ?? {}),\n 'content-type': 'application/json',\n },\n body: {\n error: {\n code: castedError.code,\n stack: debugging ? responseLog.stack : undefined,\n params: debugging ? responseLog.params : undefined,\n },\n },\n };\n }\n\n log(\n 'debug',\n 'RESPONSE',\n JSON.stringify({\n ...response,\n body: obfuscateEventBody(obfuscator, response.body),\n headers: obfuscator.obfuscateSensibleHeaders(response.headers),\n }),\n );\n\n await pipeResponseInGCPFResponse(\n await sendBody(\n {\n ENCODERS,\n STRINGIFYERS,\n },\n response,\n ),\n res,\n );\n}\n\nasync function gcpfReqToRequest(req): Promise<WhookRequest> {\n const request: WhookRequest = {\n method: req.method.toLowerCase(),\n headers: lowerCaseHeaders(req.headers || {}),\n url: req.originalUrl,\n };\n\n if (req.rawBody) {\n request.headers['content-length'] = req.rawBody.length.toString();\n const bodyStream = new stream.PassThrough();\n\n request.body = bodyStream;\n bodyStream.write(req.rawBody);\n bodyStream.end();\n }\n\n return request;\n}\n\nasync function pipeResponseInGCPFResponse(\n response: WhookResponse,\n res,\n): Promise<void> {\n Object.keys(response.headers).forEach((headerName) => {\n res.set(headerName, response.headers[headerName]);\n });\n res.status(response.status);\n\n if (response.body) {\n (response.body as Readable).pipe(res);\n return;\n }\n\n res.end();\n}\n\nfunction obfuscateEventBody(obfuscator, rawBody) {\n if (typeof rawBody === 'string') {\n try {\n const jsonBody = JSON.parse(rawBody);\n\n return JSON.stringify(obfuscator.obfuscateSensibleProps(jsonBody));\n // eslint-disable-next-line\n } catch (err) {}\n }\n return rawBody;\n}\n"],"file":"googleHTTPFunction.js"}
1
+ {"version":3,"file":"googleHTTPFunction.js","names":["SEARCH_SEPARATOR","PATH_SEPARATOR","wrapHandlerForAWSHTTPFunction","initHandler","alsoInject","reuseSpecialProps","initHandlerForAWSHTTPFunction","bind","OPERATION_API","WRAPPERS","NODE_ENV","DEBUG_NODE_ENVS","DEFAULT_DEBUG_NODE_ENVS","DECODERS","DEFAULT_DECODERS","ENCODERS","DEFAULT_ENCODERS","log","noop","time","Date","now","services","path","Object","keys","paths","method","OPERATION","consumableCharsets","produceableCharsets","consumableMediaTypes","extractConsumableMediaTypes","produceableMediaTypes","extractProduceableMediaTypes","ajv","Ajv","verbose","includes","strict","logger","args","warn","error","useDefaults","coerceTypes","addAJVFormats","ammendedParameters","extractOperationSecurityParameters","validators","prepareParametersValidators","operationId","parameters","concat","bodyValidator","prepareBodyValidator","applyWrappers","compose","handler","handleForAWSHTTPFunction","PARSERS","DEFAULT_PARSERS","STRINGIFYERS","DEFAULT_STRINGIFYERS","BUFFER_LIMIT","DEFAULT_BUFFER_LIMIT","QUERY_PARSER","CORS","obfuscator","req","res","debugging","bufferLimit","bytes","parse","JSON","stringify","url","originalUrl","body","headers","obfuscateSensibleHeaders","request","gcpfReqToRequest","response","responseLog","responseSpec","undefined","operation","bodySpec","extractBodySpec","extractResponseSpec","getBody","split","parts","filter","identity","search","substr","length","pathParameters","map","part","index","matches","exec","name","value","reduce","accParameters","retroCompatibleQueryParameters","p","in","schema","filterHeaders","authorization","castParameters","applyValidators","contentType","err","HTTPError","cast","executeHandler","contentTypes","responseObject","responses","status","responseSchema","content","responseHasSchema","type","format","checkResponseMediaType","checkResponseCharset","castedError","code","statusCode","httpCode","params","stack","lowerCaseHeaders","obfuscateEventBody","pipeResponseInGCPFResponse","sendBody","toLowerCase","rawBody","toString","bodyStream","stream","PassThrough","write","end","forEach","headerName","set","pipe","jsonBody","obfuscateSensibleProps"],"sources":["../../src/wrappers/googleHTTPFunction.ts"],"sourcesContent":["import {\n DEFAULT_DEBUG_NODE_ENVS,\n DEFAULT_BUFFER_LIMIT,\n DEFAULT_PARSERS,\n DEFAULT_STRINGIFYERS,\n DEFAULT_DECODERS,\n DEFAULT_ENCODERS,\n extractOperationSecurityParameters,\n castParameters,\n} from '@whook/http-router';\nimport { reuseSpecialProps, alsoInject } from 'knifecycle';\nimport Ajv from 'ajv';\nimport addAJVFormats from 'ajv-formats';\nimport bytes from 'bytes';\nimport HTTPError from 'yhttperror';\nimport {\n prepareParametersValidators,\n prepareBodyValidator,\n applyValidators,\n filterHeaders,\n extractBodySpec,\n extractResponseSpec,\n checkResponseCharset,\n checkResponseMediaType,\n executeHandler,\n extractProduceableMediaTypes,\n extractConsumableMediaTypes,\n getBody,\n sendBody,\n} from '@whook/http-router';\nimport { noop, compose, identity, lowerCaseHeaders } from '@whook/whook';\nimport stream from 'stream';\nimport type { WhookQueryStringParser } from '@whook/http-router';\nimport type { ServiceInitializer, Dependencies, Service } from 'knifecycle';\nimport type {\n WhookRequest,\n WhookResponse,\n WhookHandler,\n ObfuscatorService,\n WhookOperation,\n WhookWrapper,\n} from '@whook/whook';\nimport type { TimeService, LogService } from 'common-services';\nimport type { OpenAPIV3 } from 'openapi-types';\nimport type { Readable } from 'stream';\nimport type { CORSConfig } from '@whook/cors';\n\ntype HTTPWrapperDependencies = {\n NODE_ENV: string;\n DEBUG_NODE_ENVS?: string[];\n OPERATION: WhookOperation;\n DECODERS?: typeof DEFAULT_DECODERS;\n ENCODERS?: typeof DEFAULT_ENCODERS;\n PARSERS?: typeof DEFAULT_PARSERS;\n STRINGIFYERS?: typeof DEFAULT_STRINGIFYERS;\n QUERY_PARSER: WhookQueryStringParser;\n BUFFER_LIMIT?: string;\n obfuscator: ObfuscatorService;\n time?: TimeService;\n log?: LogService;\n WRAPPERS: WhookWrapper<Dependencies, Service>[];\n};\n\nconst SEARCH_SEPARATOR = '?';\nconst PATH_SEPARATOR = '/';\n\nexport default function wrapHandlerForAWSHTTPFunction<\n D,\n S extends WhookHandler,\n>(\n initHandler: ServiceInitializer<D, S>,\n): ServiceInitializer<D & HTTPWrapperDependencies, S> {\n return alsoInject<HTTPWrapperDependencies, D, S>(\n [\n 'OPERATION_API',\n 'WRAPPERS',\n '?DEBUG_NODE_ENVS',\n 'NODE_ENV',\n '?DECODERS',\n '?ENCODERS',\n '?PARSERS',\n '?STRINGIFYERS',\n '?BUFFER_LIMIT',\n 'QUERY_PARSER',\n 'obfuscator',\n '?log',\n '?time',\n ],\n reuseSpecialProps(\n initHandler,\n (initHandlerForAWSHTTPFunction as any).bind(\n null,\n initHandler,\n ) as ServiceInitializer<D, S>,\n ),\n );\n}\n\nasync function initHandlerForAWSHTTPFunction(\n initHandler: ServiceInitializer<Dependencies<any>, WhookHandler>,\n {\n OPERATION_API,\n WRAPPERS,\n NODE_ENV,\n DEBUG_NODE_ENVS = DEFAULT_DEBUG_NODE_ENVS,\n DECODERS = DEFAULT_DECODERS,\n ENCODERS = DEFAULT_ENCODERS,\n log = noop,\n time = Date.now.bind(Date),\n ...services\n },\n) {\n const path = Object.keys(OPERATION_API.paths)[0];\n const method = Object.keys(OPERATION_API.paths[path])[0];\n const OPERATION: WhookOperation = {\n path,\n method,\n ...OPERATION_API.paths[path][method],\n };\n const consumableCharsets = Object.keys(DECODERS);\n const produceableCharsets = Object.keys(ENCODERS);\n const consumableMediaTypes = extractConsumableMediaTypes(OPERATION);\n const produceableMediaTypes = extractProduceableMediaTypes(OPERATION);\n const ajv = new Ajv({\n verbose: DEBUG_NODE_ENVS.includes(NODE_ENV),\n strict: true,\n logger: {\n log: (...args) => log?.('debug', ...args),\n warn: (...args) => log?.('warning', ...args),\n error: (...args) => log?.('error', ...args),\n },\n useDefaults: true,\n coerceTypes: true,\n });\n addAJVFormats(ajv);\n const ammendedParameters = extractOperationSecurityParameters(\n OPERATION_API,\n OPERATION,\n );\n const validators = prepareParametersValidators(\n ajv,\n OPERATION.operationId,\n ((OPERATION.parameters || []) as OpenAPIV3.ParameterObject[]).concat(\n ammendedParameters,\n ),\n );\n const bodyValidator = prepareBodyValidator(ajv, OPERATION);\n const applyWrappers = compose(...WRAPPERS) as WhookWrapper<\n Dependencies,\n Service\n >;\n\n const handler = await (\n applyWrappers(initHandler) as ServiceInitializer<Dependencies, Service>\n )({\n OPERATION,\n DEBUG_NODE_ENVS,\n NODE_ENV,\n ...services,\n time,\n log,\n });\n\n return handleForAWSHTTPFunction.bind(\n null,\n {\n OPERATION,\n NODE_ENV,\n DEBUG_NODE_ENVS,\n DECODERS,\n ENCODERS,\n log,\n time,\n ...services,\n },\n {\n consumableMediaTypes,\n produceableMediaTypes,\n consumableCharsets,\n produceableCharsets,\n validators,\n bodyValidator,\n ammendedParameters,\n },\n handler,\n );\n}\n\nasync function handleForAWSHTTPFunction(\n {\n OPERATION,\n DEBUG_NODE_ENVS,\n NODE_ENV,\n ENCODERS,\n DECODERS,\n PARSERS = DEFAULT_PARSERS,\n STRINGIFYERS = DEFAULT_STRINGIFYERS,\n BUFFER_LIMIT = DEFAULT_BUFFER_LIMIT,\n QUERY_PARSER,\n CORS,\n log,\n obfuscator,\n }: HTTPWrapperDependencies & { CORS: CORSConfig },\n {\n consumableMediaTypes,\n produceableMediaTypes,\n consumableCharsets,\n produceableCharsets,\n validators,\n bodyValidator,\n },\n handler: WhookHandler,\n req,\n res,\n) {\n const debugging = (DEBUG_NODE_ENVS || []).includes(NODE_ENV);\n const bufferLimit = bytes.parse(BUFFER_LIMIT);\n\n log?.(\n 'info',\n 'GCP_FUNCTIONS_REQUEST',\n JSON.stringify({\n url: req.originalUrl,\n method: req.method,\n body: req.body,\n // body: obfuscateEventBody(obfuscator, req.body),\n headers: obfuscator.obfuscateSensibleHeaders(req.headers),\n }),\n );\n\n const request = await gcpfReqToRequest(req);\n let parameters;\n let response;\n let responseLog;\n let responseSpec;\n\n log?.(\n 'debug',\n 'REQUEST',\n JSON.stringify({\n ...request,\n body: request.body ? 'Stream' : undefined,\n headers: obfuscator.obfuscateSensibleHeaders(request.headers),\n }),\n );\n\n try {\n const operation = OPERATION;\n const bodySpec = extractBodySpec(\n request,\n consumableMediaTypes,\n consumableCharsets,\n );\n\n responseSpec = extractResponseSpec(\n operation,\n request,\n produceableMediaTypes,\n produceableCharsets,\n );\n\n try {\n const body = await getBody(\n {\n DECODERS,\n PARSERS,\n bufferLimit,\n },\n operation,\n request.body as Readable,\n bodySpec,\n );\n const path = request.url.split(SEARCH_SEPARATOR)[0];\n const parts = path.split(PATH_SEPARATOR).filter(identity);\n const search = request.url.substr(\n request.url.split(SEARCH_SEPARATOR)[0].length,\n );\n\n const pathParameters = (\n OPERATION.path\n .split(PATH_SEPARATOR)\n .filter(identity)\n .map((part, index) => {\n const matches = /^\\{([\\d\\w]+)\\}$/i.exec(part);\n\n if (matches) {\n return {\n name: matches[1],\n value: parts[index],\n };\n }\n }) as Array<{ name: string; value: string }>\n )\n .filter(identity)\n .reduce(\n (accParameters, { name, value }) => ({\n ...accParameters,\n [name]: value,\n }),\n {},\n );\n\n // TODO: Update strictQS to handle OpenAPI 3\n const retroCompatibleQueryParameters = (OPERATION.parameters || [])\n .filter((p) => p.in === 'query')\n .map((p) => ({ ...p, ...p.schema }));\n\n parameters = {\n ...pathParameters,\n ...QUERY_PARSER(retroCompatibleQueryParameters as any, search),\n ...filterHeaders(operation.parameters, request.headers),\n };\n\n parameters = {\n // TODO: Use the security of the operation to infer\n // authorization parameters, see:\n // https://github.com/nfroidure/whook/blob/06ccae93d1d52d97ff70fd5e19fa826bdabf3968/packages/whook-http-router/src/validation.js#L110\n authorization: parameters.authorization,\n ...castParameters(operation.parameters || [], parameters),\n };\n\n applyValidators(operation, validators, parameters);\n\n bodyValidator(operation, bodySpec.contentType, body);\n\n parameters = {\n ...parameters,\n ...('undefined' !== typeof body ? { body } : {}),\n };\n } catch (err) {\n throw HTTPError.cast(err as Error, 400);\n }\n\n response = await executeHandler(operation, handler, parameters);\n\n if (response.body) {\n response.headers['content-type'] =\n response.headers['content-type'] || responseSpec.contentTypes[0];\n }\n\n // Check the stringifyer only when a schema is\n // specified and it is not a binary one\n const responseObject =\n operation.responses &&\n (operation.responses[response.status] as OpenAPIV3.ResponseObject);\n const responseSchema =\n responseObject &&\n responseObject.content &&\n responseObject.content[response.headers['content-type']] &&\n (responseObject.content[response.headers['content-type']]\n .schema as OpenAPIV3.SchemaObject);\n const responseHasSchema =\n responseSchema &&\n (responseSchema.type !== 'string' || responseSchema.format !== 'binary');\n\n if (responseHasSchema && !STRINGIFYERS[response.headers['content-type']]) {\n throw new HTTPError(\n 500,\n 'E_STRINGIFYER_LACK',\n response.headers['content-type'],\n );\n }\n if (response.body) {\n checkResponseMediaType(request, responseSpec, produceableMediaTypes);\n checkResponseCharset(request, responseSpec, produceableCharsets);\n }\n responseLog = {\n type: 'success',\n status: response.status,\n };\n log?.('debug', JSON.stringify(responseLog));\n } catch (err) {\n const castedError = HTTPError.cast(err as Error);\n\n responseLog = {\n type: 'error',\n code: castedError.code,\n statusCode: castedError.httpCode,\n params: castedError.params || [],\n stack: castedError.stack,\n };\n\n log?.('error', JSON.stringify(responseLog));\n response = {\n status: castedError.httpCode,\n headers: {\n ...lowerCaseHeaders(CORS),\n ...(castedError.headers ?? {}),\n 'content-type': 'application/json',\n },\n body: {\n error: {\n code: castedError.code,\n stack: debugging ? responseLog.stack : undefined,\n params: debugging ? responseLog.params : undefined,\n },\n },\n };\n }\n\n log?.(\n 'debug',\n 'RESPONSE',\n JSON.stringify({\n ...response,\n body: obfuscateEventBody(obfuscator, response.body),\n headers: obfuscator.obfuscateSensibleHeaders(response.headers),\n }),\n );\n\n await pipeResponseInGCPFResponse(\n await sendBody(\n {\n ENCODERS,\n STRINGIFYERS,\n },\n response,\n ),\n res,\n );\n}\n\nasync function gcpfReqToRequest(req): Promise<WhookRequest> {\n const request: WhookRequest = {\n method: req.method.toLowerCase(),\n headers: lowerCaseHeaders(req.headers || {}),\n url: req.originalUrl,\n };\n\n if (req.rawBody) {\n request.headers['content-length'] = req.rawBody.length.toString();\n const bodyStream = new stream.PassThrough();\n\n request.body = bodyStream;\n bodyStream.write(req.rawBody);\n bodyStream.end();\n }\n\n return request;\n}\n\nasync function pipeResponseInGCPFResponse(\n response: WhookResponse,\n res,\n): Promise<void> {\n Object.keys(response.headers || {}).forEach((headerName) => {\n res.set(headerName, response.headers?.[headerName]);\n });\n res.status(response.status);\n\n if (response.body) {\n (response.body as Readable).pipe(res);\n return;\n }\n\n res.end();\n}\n\nfunction obfuscateEventBody(obfuscator, rawBody) {\n if (typeof rawBody === 'string') {\n try {\n const jsonBody = JSON.parse(rawBody);\n\n return JSON.stringify(obfuscator.obfuscateSensibleProps(jsonBody));\n // eslint-disable-next-line\n } catch (err) {}\n }\n return rawBody;\n}\n"],"mappings":"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"}