serverless-offline 8.8.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.
Files changed (235) hide show
  1. package/README.md +3 -3
  2. package/package.json +33 -57
  3. package/src/ServerlessOffline.js +412 -0
  4. package/src/config/commandOptions.js +155 -0
  5. package/src/config/constants.js +22 -0
  6. package/{dist → src}/config/defaultOptions.js +8 -17
  7. package/src/config/index.js +4 -0
  8. package/src/config/supportedRuntimes.js +47 -0
  9. package/src/events/authCanExecuteResource.js +35 -0
  10. package/src/events/authFunctionNameExtractor.js +75 -0
  11. package/src/events/authMatchPolicyResource.js +71 -0
  12. package/src/events/authValidateContext.js +51 -0
  13. package/src/events/http/Endpoint.js +135 -0
  14. package/src/events/http/Http.js +50 -0
  15. package/src/events/http/HttpEventDefinition.js +20 -0
  16. package/src/events/http/HttpServer.js +1277 -0
  17. package/src/events/http/OfflineEndpoint.js +33 -0
  18. package/src/events/http/authJWTSettingsExtractor.js +70 -0
  19. package/src/events/http/createAuthScheme.js +176 -0
  20. package/src/events/http/createJWTAuthScheme.js +106 -0
  21. package/src/events/http/index.js +1 -0
  22. package/src/events/http/javaHelpers.js +102 -0
  23. package/src/events/http/lambda-events/LambdaIntegrationEvent.js +57 -0
  24. package/src/events/http/lambda-events/LambdaProxyIntegrationEvent.js +233 -0
  25. package/src/events/http/lambda-events/LambdaProxyIntegrationEventV2.js +190 -0
  26. package/src/events/http/lambda-events/VelocityContext.js +147 -0
  27. package/src/events/http/lambda-events/index.js +4 -0
  28. package/src/events/http/lambda-events/renderVelocityTemplateObject.js +93 -0
  29. package/{dist → src}/events/http/parseResources.js +73 -78
  30. package/src/events/http/payloadSchemaValidator.js +13 -0
  31. package/{dist → src}/events/http/templates/offline-default.req.vm +0 -0
  32. package/{dist → src}/events/http/templates/offline-default.res.vm +0 -0
  33. package/src/events/schedule/Schedule.js +131 -0
  34. package/src/events/schedule/ScheduleEvent.js +18 -0
  35. package/src/events/schedule/ScheduleEventDefinition.js +21 -0
  36. package/src/events/schedule/index.js +1 -0
  37. package/src/events/websocket/HttpServer.js +69 -0
  38. package/src/events/websocket/WebSocket.js +52 -0
  39. package/src/events/websocket/WebSocketClients.js +462 -0
  40. package/src/events/websocket/WebSocketEventDefinition.js +18 -0
  41. package/src/events/websocket/WebSocketServer.js +73 -0
  42. package/src/events/websocket/http-routes/_catchAll/catchAllRoute.js +16 -0
  43. package/src/events/websocket/http-routes/_catchAll/index.js +1 -0
  44. package/src/events/websocket/http-routes/connections/ConnectionsController.js +28 -0
  45. package/src/events/websocket/http-routes/connections/connectionsRoutes.js +70 -0
  46. package/src/events/websocket/http-routes/connections/index.js +1 -0
  47. package/src/events/websocket/http-routes/index.js +2 -0
  48. package/src/events/websocket/index.js +1 -0
  49. package/src/events/websocket/lambda-events/WebSocketAuthorizerEvent.js +65 -0
  50. package/src/events/websocket/lambda-events/WebSocketConnectEvent.js +68 -0
  51. package/src/events/websocket/lambda-events/WebSocketDisconnectEvent.js +31 -0
  52. package/src/events/websocket/lambda-events/WebSocketEvent.js +29 -0
  53. package/src/events/websocket/lambda-events/WebSocketRequestContext.js +67 -0
  54. package/src/events/websocket/lambda-events/index.js +4 -0
  55. package/src/index.js +12 -0
  56. package/src/lambda/HttpServer.js +108 -0
  57. package/src/lambda/Lambda.js +68 -0
  58. package/src/lambda/LambdaContext.js +33 -0
  59. package/src/lambda/LambdaFunction.js +308 -0
  60. package/src/lambda/LambdaFunctionPool.js +109 -0
  61. package/src/lambda/__tests__/LambdaContext.test.js +30 -0
  62. package/src/lambda/__tests__/LambdaFunction.test.js +196 -0
  63. package/src/lambda/__tests__/fixtures/Lambda/LambdaFunctionThatReturnsJSONObject.fixture.js +47 -0
  64. package/src/lambda/__tests__/fixtures/Lambda/LambdaFunctionThatReturnsNativeString.fixture.js +46 -0
  65. package/src/lambda/__tests__/fixtures/Lambda/package.json +3 -0
  66. package/src/lambda/__tests__/fixtures/lambdaFunction.fixture.js +145 -0
  67. package/src/lambda/__tests__/fixtures/package.json +3 -0
  68. package/src/lambda/__tests__/routes/invocations/InvocationsController.test.js +42 -0
  69. package/src/lambda/handler-runner/HandlerRunner.js +136 -0
  70. package/src/lambda/handler-runner/child-process-runner/ChildProcessRunner.js +72 -0
  71. package/src/lambda/handler-runner/child-process-runner/childProcessHelper.js +42 -0
  72. package/src/lambda/handler-runner/child-process-runner/index.js +1 -0
  73. package/src/lambda/handler-runner/docker-runner/DockerContainer.js +417 -0
  74. package/src/lambda/handler-runner/docker-runner/DockerImage.js +35 -0
  75. package/src/lambda/handler-runner/docker-runner/DockerRunner.js +63 -0
  76. package/src/lambda/handler-runner/docker-runner/index.js +1 -0
  77. package/src/lambda/handler-runner/go-runner/GoRunner.js +166 -0
  78. package/src/lambda/handler-runner/go-runner/index.js +1 -0
  79. package/src/lambda/handler-runner/in-process-runner/InProcessRunner.js +125 -0
  80. package/src/lambda/handler-runner/in-process-runner/index.js +1 -0
  81. package/src/lambda/handler-runner/index.js +1 -0
  82. package/src/lambda/handler-runner/java-runner/JavaRunner.js +114 -0
  83. package/src/lambda/handler-runner/java-runner/index.js +1 -0
  84. package/src/lambda/handler-runner/python-runner/PythonRunner.js +138 -0
  85. package/src/lambda/handler-runner/python-runner/index.js +1 -0
  86. package/{dist → src}/lambda/handler-runner/python-runner/invoke.py +0 -0
  87. package/src/lambda/handler-runner/ruby-runner/RubyRunner.js +107 -0
  88. package/src/lambda/handler-runner/ruby-runner/index.js +1 -0
  89. package/{dist → src}/lambda/handler-runner/ruby-runner/invoke.rb +0 -0
  90. package/src/lambda/handler-runner/worker-thread-runner/WorkerThreadRunner.js +70 -0
  91. package/src/lambda/handler-runner/worker-thread-runner/index.js +1 -0
  92. package/src/lambda/handler-runner/worker-thread-runner/workerThreadHelper.js +29 -0
  93. package/src/lambda/index.js +1 -0
  94. package/src/lambda/routes/index.js +2 -0
  95. package/src/lambda/routes/invocations/InvocationsController.js +102 -0
  96. package/src/lambda/routes/invocations/index.js +1 -0
  97. package/src/lambda/routes/invocations/invocationsRoute.js +77 -0
  98. package/src/lambda/routes/invoke-async/InvokeAsyncController.js +20 -0
  99. package/src/lambda/routes/invoke-async/index.js +1 -0
  100. package/src/lambda/routes/invoke-async/invokeAsyncRoute.js +33 -0
  101. package/src/utils/__tests__/createUniqueId.test.js +18 -0
  102. package/src/utils/__tests__/formatToClfTime.test.js +14 -0
  103. package/src/utils/__tests__/generateHapiPath.test.js +46 -0
  104. package/src/utils/__tests__/lowerCaseKeys.test.js +30 -0
  105. package/src/utils/__tests__/parseHeaders.test.js +13 -0
  106. package/src/utils/__tests__/parseMultiValueHeaders.test.js +24 -0
  107. package/src/utils/__tests__/parseMultiValueQueryStringParameters.test.js +159 -0
  108. package/src/utils/__tests__/parseQueryStringParameters.test.js +15 -0
  109. package/src/utils/__tests__/splitHandlerPathAndName.test.js +54 -0
  110. package/src/utils/__tests__/unflatten.test.js +32 -0
  111. package/src/utils/checkDockerDaemon.js +19 -0
  112. package/src/utils/checkGoVersion.js +16 -0
  113. package/src/utils/createApiKey.js +5 -0
  114. package/src/utils/createUniqueId.js +5 -0
  115. package/src/utils/detectExecutable.js +11 -0
  116. package/{dist → src}/utils/formatToClfTime.js +6 -14
  117. package/src/utils/generateHapiPath.js +26 -0
  118. package/src/utils/getHttpApiCorsConfig.js +28 -0
  119. package/src/utils/index.js +42 -0
  120. package/src/utils/jsonPath.js +13 -0
  121. package/src/utils/logRoutes.js +64 -0
  122. package/src/utils/lowerCaseKeys.js +6 -0
  123. package/src/utils/parseHeaders.js +14 -0
  124. package/src/utils/parseMultiValueHeaders.js +27 -0
  125. package/src/utils/parseMultiValueQueryStringParameters.js +31 -0
  126. package/src/utils/parseQueryStringParameters.js +15 -0
  127. package/src/utils/resolveJoins.js +29 -0
  128. package/src/utils/splitHandlerPathAndName.js +31 -0
  129. package/src/utils/unflatten.js +11 -0
  130. package/CHANGELOG.md +0 -78
  131. package/dist/ServerlessOffline.js +0 -508
  132. package/dist/config/commandOptions.js +0 -149
  133. package/dist/config/constants.js +0 -30
  134. package/dist/config/index.js +0 -55
  135. package/dist/config/supportedRuntimes.js +0 -40
  136. package/dist/debugLog.js +0 -12
  137. package/dist/events/authCanExecuteResource.js +0 -35
  138. package/dist/events/authFunctionNameExtractor.js +0 -87
  139. package/dist/events/authMatchPolicyResource.js +0 -62
  140. package/dist/events/authValidateContext.js +0 -53
  141. package/dist/events/http/Endpoint.js +0 -173
  142. package/dist/events/http/Http.js +0 -77
  143. package/dist/events/http/HttpEventDefinition.js +0 -36
  144. package/dist/events/http/HttpServer.js +0 -1370
  145. package/dist/events/http/OfflineEndpoint.js +0 -38
  146. package/dist/events/http/authJWTSettingsExtractor.js +0 -76
  147. package/dist/events/http/createAuthScheme.js +0 -184
  148. package/dist/events/http/createJWTAuthScheme.js +0 -159
  149. package/dist/events/http/index.js +0 -15
  150. package/dist/events/http/javaHelpers.js +0 -99
  151. package/dist/events/http/lambda-events/LambdaIntegrationEvent.js +0 -87
  152. package/dist/events/http/lambda-events/LambdaProxyIntegrationEvent.js +0 -246
  153. package/dist/events/http/lambda-events/LambdaProxyIntegrationEventV2.js +0 -225
  154. package/dist/events/http/lambda-events/VelocityContext.js +0 -170
  155. package/dist/events/http/lambda-events/index.js +0 -39
  156. package/dist/events/http/lambda-events/renderVelocityTemplateObject.js +0 -111
  157. package/dist/events/http/payloadSchemaValidator.js +0 -13
  158. package/dist/events/schedule/Schedule.js +0 -183
  159. package/dist/events/schedule/ScheduleEvent.js +0 -27
  160. package/dist/events/schedule/ScheduleEventDefinition.js +0 -36
  161. package/dist/events/schedule/index.js +0 -15
  162. package/dist/events/websocket/HttpServer.js +0 -114
  163. package/dist/events/websocket/WebSocket.js +0 -78
  164. package/dist/events/websocket/WebSocketClients.js +0 -577
  165. package/dist/events/websocket/WebSocketEventDefinition.js +0 -32
  166. package/dist/events/websocket/WebSocketServer.js +0 -139
  167. package/dist/events/websocket/http-routes/_catchAll/catchAllRoute.js +0 -33
  168. package/dist/events/websocket/http-routes/_catchAll/index.js +0 -15
  169. package/dist/events/websocket/http-routes/connections/ConnectionsController.js +0 -45
  170. package/dist/events/websocket/http-routes/connections/connectionsRoutes.js +0 -95
  171. package/dist/events/websocket/http-routes/connections/index.js +0 -15
  172. package/dist/events/websocket/http-routes/index.js +0 -23
  173. package/dist/events/websocket/index.js +0 -15
  174. package/dist/events/websocket/lambda-events/WebSocketAuthorizerEvent.js +0 -99
  175. package/dist/events/websocket/lambda-events/WebSocketConnectEvent.js +0 -101
  176. package/dist/events/websocket/lambda-events/WebSocketDisconnectEvent.js +0 -47
  177. package/dist/events/websocket/lambda-events/WebSocketEvent.js +0 -54
  178. package/dist/events/websocket/lambda-events/WebSocketRequestContext.js +0 -98
  179. package/dist/events/websocket/lambda-events/index.js +0 -39
  180. package/dist/index.js +0 -15
  181. package/dist/lambda/HttpServer.js +0 -124
  182. package/dist/lambda/Lambda.js +0 -117
  183. package/dist/lambda/LambdaContext.js +0 -53
  184. package/dist/lambda/LambdaFunction.js +0 -390
  185. package/dist/lambda/LambdaFunctionPool.js +0 -127
  186. package/dist/lambda/handler-runner/HandlerRunner.js +0 -195
  187. package/dist/lambda/handler-runner/child-process-runner/ChildProcessRunner.js +0 -124
  188. package/dist/lambda/handler-runner/child-process-runner/childProcessHelper.js +0 -49
  189. package/dist/lambda/handler-runner/child-process-runner/index.js +0 -15
  190. package/dist/lambda/handler-runner/docker-runner/DockerContainer.js +0 -515
  191. package/dist/lambda/handler-runner/docker-runner/DockerImage.js +0 -67
  192. package/dist/lambda/handler-runner/docker-runner/DockerRunner.js +0 -74
  193. package/dist/lambda/handler-runner/docker-runner/index.js +0 -15
  194. package/dist/lambda/handler-runner/go-runner/GoRunner.js +0 -230
  195. package/dist/lambda/handler-runner/go-runner/index.js +0 -15
  196. package/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js +0 -228
  197. package/dist/lambda/handler-runner/in-process-runner/index.js +0 -15
  198. package/dist/lambda/handler-runner/index.js +0 -15
  199. package/dist/lambda/handler-runner/java-runner/JavaRunner.js +0 -153
  200. package/dist/lambda/handler-runner/java-runner/index.js +0 -15
  201. package/dist/lambda/handler-runner/python-runner/PythonRunner.js +0 -185
  202. package/dist/lambda/handler-runner/python-runner/index.js +0 -15
  203. package/dist/lambda/handler-runner/ruby-runner/RubyRunner.js +0 -147
  204. package/dist/lambda/handler-runner/ruby-runner/index.js +0 -15
  205. package/dist/lambda/handler-runner/worker-thread-runner/WorkerThreadRunner.js +0 -92
  206. package/dist/lambda/handler-runner/worker-thread-runner/index.js +0 -15
  207. package/dist/lambda/handler-runner/worker-thread-runner/workerThreadHelper.js +0 -31
  208. package/dist/lambda/index.js +0 -15
  209. package/dist/lambda/routes/index.js +0 -23
  210. package/dist/lambda/routes/invocations/InvocationsController.js +0 -142
  211. package/dist/lambda/routes/invocations/index.js +0 -15
  212. package/dist/lambda/routes/invocations/invocationsRoute.js +0 -90
  213. package/dist/lambda/routes/invoke-async/InvokeAsyncController.js +0 -38
  214. package/dist/lambda/routes/invoke-async/index.js +0 -15
  215. package/dist/lambda/routes/invoke-async/invokeAsyncRoute.js +0 -43
  216. package/dist/main.js +0 -11
  217. package/dist/serverlessLog.js +0 -91
  218. package/dist/utils/checkDockerDaemon.js +0 -27
  219. package/dist/utils/checkGoVersion.js +0 -27
  220. package/dist/utils/createApiKey.js +0 -12
  221. package/dist/utils/createUniqueId.js +0 -14
  222. package/dist/utils/detectExecutable.js +0 -21
  223. package/dist/utils/generateHapiPath.js +0 -28
  224. package/dist/utils/getHttpApiCorsConfig.js +0 -40
  225. package/dist/utils/index.js +0 -165
  226. package/dist/utils/jsonPath.js +0 -21
  227. package/dist/utils/lowerCaseKeys.js +0 -14
  228. package/dist/utils/parseHeaders.js +0 -23
  229. package/dist/utils/parseMultiValueHeaders.js +0 -36
  230. package/dist/utils/parseMultiValueQueryStringParameters.js +0 -40
  231. package/dist/utils/parseQueryStringParameters.js +0 -26
  232. package/dist/utils/resolveJoins.js +0 -36
  233. package/dist/utils/satisfiesVersionRange.js +0 -20
  234. package/dist/utils/splitHandlerPathAndName.js +0 -37
  235. package/dist/utils/unflatten.js +0 -18
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "default", {
7
- enumerable: true,
8
- get: function () {
9
- return _invocationsRoute.default;
10
- }
11
- });
12
-
13
- var _invocationsRoute = _interopRequireDefault(require("./invocationsRoute.js"));
14
-
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -1,90 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = invocationsRoute;
7
-
8
- var _buffer = require("buffer");
9
-
10
- var _nodeFetch = require("node-fetch");
11
-
12
- var _InvocationsController = _interopRequireDefault(require("./InvocationsController.js"));
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- const {
17
- parse
18
- } = JSON; // https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html
19
-
20
- function invocationsRoute(lambda, options, v3Utils) {
21
- const invocationsController = new _InvocationsController.default(lambda, v3Utils);
22
- return {
23
- async handler(request, h) {
24
- const {
25
- headers,
26
- params: {
27
- functionName
28
- },
29
- payload
30
- } = request;
31
-
32
- const _headers = new _nodeFetch.Headers(headers);
33
-
34
- const clientContextHeader = _headers.get('x-amz-client-context');
35
-
36
- const invocationType = _headers.get('x-amz-invocation-type'); // default is undefined
37
-
38
-
39
- let clientContext; // check client context header was set
40
-
41
- if (clientContextHeader) {
42
- const clientContextBuffer = _buffer.Buffer.from(clientContextHeader, 'base64');
43
-
44
- clientContext = parse(clientContextBuffer.toString('utf-8'));
45
- } // check if payload was set, if not, default event is an empty object
46
-
47
-
48
- const event = payload.length > 0 ? parse(payload.toString('utf-8')) : {};
49
- const invokeResults = await invocationsController.invoke(functionName, invocationType, event, clientContext); // Return with correct status codes
50
-
51
- let resultPayload = '';
52
- let statusCode = 200;
53
- let functionError = null;
54
-
55
- if (invokeResults) {
56
- const isPayloadDefined = typeof invokeResults.Payload !== 'undefined';
57
- resultPayload = isPayloadDefined ? invokeResults.Payload : '';
58
- statusCode = invokeResults.StatusCode || 200;
59
- functionError = invokeResults.FunctionError || null;
60
- }
61
-
62
- const response = h.response(resultPayload).code(statusCode);
63
-
64
- if (functionError) {
65
- // AWS Invoke documentation is wrong. The header for error type is
66
- // 'x-amzn-ErrorType' in production, not 'X-Amz-Function-Error'
67
- response.header('x-amzn-ErrorType', functionError);
68
- }
69
-
70
- if (invokeResults && invokeResults.UnhandledError) {
71
- response.header('X-Amz-Function-Error', 'Unhandled');
72
- }
73
-
74
- return response;
75
- },
76
-
77
- method: 'POST',
78
- options: {
79
- payload: {
80
- // allow: ['binary/octet-stream'],
81
- defaultContentType: 'binary/octet-stream',
82
- // request.payload will be a raw buffer
83
- parse: false
84
- },
85
- cors: options.corsConfig,
86
- tags: ['api']
87
- },
88
- path: '/2015-03-31/functions/{functionName}/invocations'
89
- };
90
- }
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; }
9
-
10
- var id = 0;
11
-
12
- function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; }
13
-
14
- var _lambda = /*#__PURE__*/_classPrivateFieldLooseKey("lambda");
15
-
16
- class InvokeAsyncController {
17
- constructor(lambda) {
18
- Object.defineProperty(this, _lambda, {
19
- writable: true,
20
- value: null
21
- });
22
- _classPrivateFieldLooseBase(this, _lambda)[_lambda] = lambda;
23
- }
24
-
25
- async invokeAsync(functionName, event) {
26
- const lambdaFunction = _classPrivateFieldLooseBase(this, _lambda)[_lambda].getByFunctionName(functionName);
27
-
28
- lambdaFunction.setEvent(event); // don't await result!
29
-
30
- lambdaFunction.runHandler();
31
- return {
32
- StatusCode: 202
33
- };
34
- }
35
-
36
- }
37
-
38
- exports.default = InvokeAsyncController;
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "default", {
7
- enumerable: true,
8
- get: function () {
9
- return _invokeAsyncRoute.default;
10
- }
11
- });
12
-
13
- var _invokeAsyncRoute = _interopRequireDefault(require("./invokeAsyncRoute.js"));
14
-
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -1,43 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = invokeRoute;
7
-
8
- var _InvokeAsyncController = _interopRequireDefault(require("./InvokeAsyncController.js"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- const {
13
- parse
14
- } = JSON; // https://docs.aws.amazon.com/lambda/latest/dg/API_InvokeAsync.html
15
-
16
- function invokeRoute(lambda, options) {
17
- const invokeAsyncController = new _InvokeAsyncController.default(lambda);
18
- return {
19
- handler(request) {
20
- const {
21
- params: {
22
- functionName
23
- },
24
- payload
25
- } = request;
26
- const event = parse(payload.toString('utf-8'));
27
- return invokeAsyncController.invokeAsync(functionName, event);
28
- },
29
-
30
- method: 'POST',
31
- options: {
32
- payload: {
33
- // allow: ['binary/octet-stream'],
34
- defaultContentType: 'binary/octet-stream',
35
- // request.payload will be a raw buffer
36
- parse: false
37
- },
38
- cors: options.corsConfig,
39
- tags: ['api']
40
- },
41
- path: '/2014-11-13/functions/{functionName}/invoke-async/'
42
- };
43
- }
package/dist/main.js DELETED
@@ -1,11 +0,0 @@
1
- 'use strict'; // UNCOMMENT FOR DEVELOPMENT:
2
- //
3
- // const { resolve } = require('path')
4
- //
5
- // // eslint-disable-next-line import/no-extraneous-dependencies
6
- // require('@babel/register')({
7
- // configFile: resolve(__dirname, '../babel.config.js'),
8
- // ignore: [/node_modules/],
9
- // })
10
-
11
- module.exports = require('./index.js').default;
@@ -1,91 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = serverlessLog;
7
- exports.logLayers = logLayers;
8
- exports.logRoutes = logRoutes;
9
- exports.logWarning = logWarning;
10
- exports.setLog = setLog;
11
-
12
- var _boxen = _interopRequireDefault(require("boxen"));
13
-
14
- var _chalk = _interopRequireDefault(require("chalk"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- const {
19
- max
20
- } = Math;
21
-
22
- const blue = _chalk.default.keyword('dodgerblue');
23
-
24
- const grey = _chalk.default.keyword('grey');
25
-
26
- const lime = _chalk.default.keyword('lime');
27
-
28
- const orange = _chalk.default.keyword('orange');
29
-
30
- const peachpuff = _chalk.default.keyword('peachpuff');
31
-
32
- const plum = _chalk.default.keyword('plum');
33
-
34
- const red = _chalk.default.keyword('red');
35
-
36
- const yellow = _chalk.default.keyword('yellow');
37
-
38
- const colorMethodMapping = new Map([['DELETE', red], ['GET', blue], // ['HEAD', ...],
39
- ['PATCH', orange], ['POST', plum], ['PUT', blue]]);
40
- let log;
41
-
42
- function serverlessLog(msg) {
43
- if (log) {
44
- log(msg, 'offline');
45
- }
46
- }
47
-
48
- function logLayers(msg) {
49
- console.log(`offline: ${blue(msg)}`);
50
- }
51
-
52
- function setLog(serverlessLogRef) {
53
- log = serverlessLogRef;
54
- } // logs based on:
55
- // https://github.com/serverless/serverless/blob/master/lib/classes/CLI.js
56
-
57
-
58
- function logRoute(method, server, path, maxLength, dimPath = false) {
59
- var _colorMethodMapping$g;
60
-
61
- const methodColor = (_colorMethodMapping$g = colorMethodMapping.get(method)) !== null && _colorMethodMapping$g !== void 0 ? _colorMethodMapping$g : peachpuff;
62
- const methodFormatted = method.padEnd(maxLength, ' ');
63
- return `${methodColor(methodFormatted)} ${yellow.dim('|')} ${grey.dim(server)}${dimPath ? grey.dim(path) : lime(path)}`;
64
- }
65
-
66
- function getMaxHttpMethodNameLength(routeInfo) {
67
- return max(...routeInfo.map(({
68
- method
69
- }) => method.length));
70
- }
71
-
72
- function logRoutes(routeInfo) {
73
- const boxenOptions = {
74
- borderColor: 'yellow',
75
- dimBorder: true,
76
- margin: 1,
77
- padding: 1
78
- };
79
- const maxLength = getMaxHttpMethodNameLength(routeInfo);
80
- console.log((0, _boxen.default)(routeInfo.map(({
81
- method,
82
- path,
83
- server,
84
- invokePath
85
- }) => // eslint-disable-next-line prefer-template
86
- logRoute(method, server, path, maxLength) + '\n' + logRoute('POST', server, invokePath, maxLength, true)).join('\n'), boxenOptions));
87
- }
88
-
89
- function logWarning(msg) {
90
- console.log(`offline: ${red(msg)}`);
91
- }
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = checkDockerDaemon;
7
-
8
- var _execa = _interopRequireDefault(require("execa"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- async function checkDockerDaemon() {
13
- let dockerServerOS;
14
-
15
- try {
16
- const {
17
- stdout
18
- } = await (0, _execa.default)('docker', ['version', '--format', '{{.Server.Os}}']);
19
- dockerServerOS = stdout;
20
- } catch (err) {
21
- throw new Error('The docker daemon is not running.');
22
- }
23
-
24
- if (dockerServerOS !== 'linux') {
25
- throw new Error('Please switch docker daemon to linux mode.');
26
- }
27
- }
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = checkGoVersion;
7
-
8
- var _execa = _interopRequireDefault(require("execa"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- async function checkGoVersion() {
13
- let goVersion;
14
-
15
- try {
16
- const {
17
- stdout
18
- } = await (0, _execa.default)('go', ['version']);
19
-
20
- if (stdout.match(/go1.\d+/g)) {
21
- goVersion = '1.x';
22
- }
23
- } catch (err) {// @ignore
24
- }
25
-
26
- return goVersion;
27
- }
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = createApiKey;
7
-
8
- var _crypto = require("crypto");
9
-
10
- function createApiKey() {
11
- return (0, _crypto.createHash)('md5').digest('hex');
12
- }
@@ -1,14 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = createUniqueId;
7
-
8
- var _cuid = _interopRequireDefault(require("cuid"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- function createUniqueId() {
13
- return (0, _cuid.default)();
14
- }
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = detectExecutable;
7
-
8
- var _execa = _interopRequireDefault(require("execa"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- async function detectExecutable(exe, versionFlag = '--version') {
13
- try {
14
- const {
15
- failed
16
- } = await (0, _execa.default)(exe, [versionFlag]);
17
- return failed === false;
18
- } catch (err) {
19
- return false;
20
- }
21
- }
@@ -1,28 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = generateHapiPath;
7
-
8
- function generateHapiPath(path, options, serverless) {
9
- // path must start with '/'
10
- let hapiPath = path.startsWith('/') ? path : `/${path}`;
11
-
12
- if (!options.noPrependStageInUrl) {
13
- const stage = options.stage || serverless.service.provider.stage; // prepend the stage to path
14
-
15
- hapiPath = `/${stage}${hapiPath}`;
16
- }
17
-
18
- if (options.prefix) {
19
- hapiPath = `/${options.prefix}${hapiPath}`;
20
- }
21
-
22
- if (hapiPath !== '/' && hapiPath.endsWith('/') && (!options.noStripTrailingSlashInUrl || hapiPath.endsWith('+}/'))) {
23
- hapiPath = hapiPath.slice(0, -1);
24
- }
25
-
26
- hapiPath = hapiPath.replace(/\+}/g, '*}');
27
- return hapiPath;
28
- }
@@ -1,40 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = getHttpApiCorsConfig;
7
-
8
- var _debugLog = _interopRequireDefault(require("../debugLog.js"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- function getHttpApiCorsConfig(httpApiCors, {
13
- log
14
- }) {
15
- if (httpApiCors === true) {
16
- // default values that should be set by serverless
17
- // https://www.serverless.com/framework/docs/providers/aws/events/http-api/
18
- const c = {
19
- allowedOrigins: ['*'],
20
- allowedHeaders: ['Content-Type', 'X-Amz-Date', 'Authorization', 'X-Api-Key', 'X-Amz-Security-Token', 'X-Amz-User-Agent'],
21
- allowedMethods: ['OPTIONS', 'GET', 'POST', 'PUT', 'DELETE', 'PATCH']
22
- };
23
-
24
- if (log) {
25
- log.debug('Using CORS policy', c);
26
- } else {
27
- (0, _debugLog.default)('Using CORS policy', c);
28
- }
29
-
30
- return c;
31
- }
32
-
33
- if (log) {
34
- log.debug('Using CORS policy', httpApiCors);
35
- } else {
36
- (0, _debugLog.default)('Using CORS policy', httpApiCors);
37
- }
38
-
39
- return httpApiCors;
40
- }
@@ -1,165 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "checkDockerDaemon", {
7
- enumerable: true,
8
- get: function () {
9
- return _checkDockerDaemon.default;
10
- }
11
- });
12
- Object.defineProperty(exports, "checkGoVersion", {
13
- enumerable: true,
14
- get: function () {
15
- return _checkGoVersion.default;
16
- }
17
- });
18
- Object.defineProperty(exports, "createApiKey", {
19
- enumerable: true,
20
- get: function () {
21
- return _createApiKey.default;
22
- }
23
- });
24
- Object.defineProperty(exports, "createUniqueId", {
25
- enumerable: true,
26
- get: function () {
27
- return _createUniqueId.default;
28
- }
29
- });
30
- exports.detectEncoding = detectEncoding;
31
- Object.defineProperty(exports, "detectExecutable", {
32
- enumerable: true,
33
- get: function () {
34
- return _detectExecutable.default;
35
- }
36
- });
37
- Object.defineProperty(exports, "formatToClfTime", {
38
- enumerable: true,
39
- get: function () {
40
- return _formatToClfTime.default;
41
- }
42
- });
43
- Object.defineProperty(exports, "generateHapiPath", {
44
- enumerable: true,
45
- get: function () {
46
- return _generateHapiPath.default;
47
- }
48
- });
49
- Object.defineProperty(exports, "getHttpApiCorsConfig", {
50
- enumerable: true,
51
- get: function () {
52
- return _getHttpApiCorsConfig.default;
53
- }
54
- });
55
- exports.isPlainObject = isPlainObject;
56
- Object.defineProperty(exports, "jsonPath", {
57
- enumerable: true,
58
- get: function () {
59
- return _jsonPath.default;
60
- }
61
- });
62
- Object.defineProperty(exports, "lowerCaseKeys", {
63
- enumerable: true,
64
- get: function () {
65
- return _lowerCaseKeys.default;
66
- }
67
- });
68
- exports.nullIfEmpty = nullIfEmpty;
69
- Object.defineProperty(exports, "parseHeaders", {
70
- enumerable: true,
71
- get: function () {
72
- return _parseHeaders.default;
73
- }
74
- });
75
- Object.defineProperty(exports, "parseMultiValueHeaders", {
76
- enumerable: true,
77
- get: function () {
78
- return _parseMultiValueHeaders.default;
79
- }
80
- });
81
- Object.defineProperty(exports, "parseMultiValueQueryStringParameters", {
82
- enumerable: true,
83
- get: function () {
84
- return _parseMultiValueQueryStringParameters.default;
85
- }
86
- });
87
- Object.defineProperty(exports, "parseQueryStringParameters", {
88
- enumerable: true,
89
- get: function () {
90
- return _parseQueryStringParameters.default;
91
- }
92
- });
93
- Object.defineProperty(exports, "satisfiesVersionRange", {
94
- enumerable: true,
95
- get: function () {
96
- return _satisfiesVersionRange.default;
97
- }
98
- });
99
- Object.defineProperty(exports, "splitHandlerPathAndName", {
100
- enumerable: true,
101
- get: function () {
102
- return _splitHandlerPathAndName.default;
103
- }
104
- });
105
- exports.toPlainOrEmptyObject = toPlainOrEmptyObject;
106
-
107
- var _createApiKey = _interopRequireDefault(require("./createApiKey.js"));
108
-
109
- var _createUniqueId = _interopRequireDefault(require("./createUniqueId.js"));
110
-
111
- var _detectExecutable = _interopRequireDefault(require("./detectExecutable.js"));
112
-
113
- var _formatToClfTime = _interopRequireDefault(require("./formatToClfTime.js"));
114
-
115
- var _getHttpApiCorsConfig = _interopRequireDefault(require("./getHttpApiCorsConfig.js"));
116
-
117
- var _jsonPath = _interopRequireDefault(require("./jsonPath.js"));
118
-
119
- var _lowerCaseKeys = _interopRequireDefault(require("./lowerCaseKeys.js"));
120
-
121
- var _parseHeaders = _interopRequireDefault(require("./parseHeaders.js"));
122
-
123
- var _parseMultiValueHeaders = _interopRequireDefault(require("./parseMultiValueHeaders.js"));
124
-
125
- var _parseMultiValueQueryStringParameters = _interopRequireDefault(require("./parseMultiValueQueryStringParameters.js"));
126
-
127
- var _parseQueryStringParameters = _interopRequireDefault(require("./parseQueryStringParameters.js"));
128
-
129
- var _satisfiesVersionRange = _interopRequireDefault(require("./satisfiesVersionRange.js"));
130
-
131
- var _splitHandlerPathAndName = _interopRequireDefault(require("./splitHandlerPathAndName.js"));
132
-
133
- var _checkDockerDaemon = _interopRequireDefault(require("./checkDockerDaemon.js"));
134
-
135
- var _checkGoVersion = _interopRequireDefault(require("./checkGoVersion.js"));
136
-
137
- var _generateHapiPath = _interopRequireDefault(require("./generateHapiPath.js"));
138
-
139
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
140
-
141
- // export { default as baseImage } from './baseImage.js'
142
- const {
143
- isArray
144
- } = Array;
145
- const {
146
- keys
147
- } = Object; // Detect the toString encoding from the request headers content-type
148
- // enhance if further content types need to be non utf8 encoded.
149
-
150
- function detectEncoding(request) {
151
- const contentType = request.headers['content-type'];
152
- return typeof contentType === 'string' && contentType.includes('multipart/form-data') ? 'binary' : 'utf8';
153
- }
154
-
155
- function nullIfEmpty(obj) {
156
- return obj && (keys(obj).length > 0 ? obj : null);
157
- }
158
-
159
- function isPlainObject(obj) {
160
- return typeof obj === 'object' && !isArray(obj) && obj != null;
161
- }
162
-
163
- function toPlainOrEmptyObject(obj) {
164
- return typeof obj === 'object' && !isArray(obj) ? obj : {};
165
- }
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = jsonPath;
7
-
8
- var _jsonpathPlus = require("jsonpath-plus");
9
-
10
- // import debugLog from '../debugLog.js'
11
- function jsonPath(json, path) {
12
- // debugLog('Calling jsonPath:', path)
13
- // NOTE: JSONPath returns undefined if 'json' is e.g. null, undefined, string,
14
- // number (anything other than JSON)
15
- const [result] = (0, _jsonpathPlus.JSONPath)({
16
- json,
17
- path
18
- }) || []; // debugLog('jsonPath resolved:', result)
19
-
20
- return result;
21
- }
@@ -1,14 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = parseHeaders;
7
- const {
8
- entries,
9
- fromEntries
10
- } = Object; // (obj: { [string]: string }): { [Lowercase<string>]: string }
11
-
12
- function parseHeaders(obj) {
13
- return fromEntries(entries(obj).map(([k, v]) => [k.toLowerCase(), v]));
14
- }