serverless-offline 8.8.1 → 9.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/README.md +112 -44
  2. package/package.json +33 -57
  3. package/src/ServerlessOffline.js +409 -0
  4. package/src/config/commandOptions.js +159 -0
  5. package/src/config/constants.js +22 -0
  6. package/{dist → src}/config/defaultOptions.js +9 -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 +1242 -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 +309 -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 +76 -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 +419 -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 +172 -0
  78. package/src/lambda/handler-runner/go-runner/index.js +1 -0
  79. package/src/lambda/handler-runner/in-process-runner/InProcessRunner.js +126 -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/splitHandlerPathAndName.js +31 -0
  128. package/src/utils/unflatten.js +11 -0
  129. package/CHANGELOG.md +0 -78
  130. package/dist/ServerlessOffline.js +0 -508
  131. package/dist/config/commandOptions.js +0 -149
  132. package/dist/config/constants.js +0 -30
  133. package/dist/config/index.js +0 -55
  134. package/dist/config/supportedRuntimes.js +0 -40
  135. package/dist/debugLog.js +0 -12
  136. package/dist/events/authCanExecuteResource.js +0 -35
  137. package/dist/events/authFunctionNameExtractor.js +0 -87
  138. package/dist/events/authMatchPolicyResource.js +0 -62
  139. package/dist/events/authValidateContext.js +0 -53
  140. package/dist/events/http/Endpoint.js +0 -173
  141. package/dist/events/http/Http.js +0 -77
  142. package/dist/events/http/HttpEventDefinition.js +0 -36
  143. package/dist/events/http/HttpServer.js +0 -1370
  144. package/dist/events/http/OfflineEndpoint.js +0 -38
  145. package/dist/events/http/authJWTSettingsExtractor.js +0 -76
  146. package/dist/events/http/createAuthScheme.js +0 -184
  147. package/dist/events/http/createJWTAuthScheme.js +0 -159
  148. package/dist/events/http/index.js +0 -15
  149. package/dist/events/http/javaHelpers.js +0 -99
  150. package/dist/events/http/lambda-events/LambdaIntegrationEvent.js +0 -87
  151. package/dist/events/http/lambda-events/LambdaProxyIntegrationEvent.js +0 -246
  152. package/dist/events/http/lambda-events/LambdaProxyIntegrationEventV2.js +0 -225
  153. package/dist/events/http/lambda-events/VelocityContext.js +0 -170
  154. package/dist/events/http/lambda-events/index.js +0 -39
  155. package/dist/events/http/lambda-events/renderVelocityTemplateObject.js +0 -111
  156. package/dist/events/http/payloadSchemaValidator.js +0 -13
  157. package/dist/events/schedule/Schedule.js +0 -183
  158. package/dist/events/schedule/ScheduleEvent.js +0 -27
  159. package/dist/events/schedule/ScheduleEventDefinition.js +0 -36
  160. package/dist/events/schedule/index.js +0 -15
  161. package/dist/events/websocket/HttpServer.js +0 -114
  162. package/dist/events/websocket/WebSocket.js +0 -78
  163. package/dist/events/websocket/WebSocketClients.js +0 -577
  164. package/dist/events/websocket/WebSocketEventDefinition.js +0 -32
  165. package/dist/events/websocket/WebSocketServer.js +0 -139
  166. package/dist/events/websocket/http-routes/_catchAll/catchAllRoute.js +0 -33
  167. package/dist/events/websocket/http-routes/_catchAll/index.js +0 -15
  168. package/dist/events/websocket/http-routes/connections/ConnectionsController.js +0 -45
  169. package/dist/events/websocket/http-routes/connections/connectionsRoutes.js +0 -95
  170. package/dist/events/websocket/http-routes/connections/index.js +0 -15
  171. package/dist/events/websocket/http-routes/index.js +0 -23
  172. package/dist/events/websocket/index.js +0 -15
  173. package/dist/events/websocket/lambda-events/WebSocketAuthorizerEvent.js +0 -99
  174. package/dist/events/websocket/lambda-events/WebSocketConnectEvent.js +0 -101
  175. package/dist/events/websocket/lambda-events/WebSocketDisconnectEvent.js +0 -47
  176. package/dist/events/websocket/lambda-events/WebSocketEvent.js +0 -54
  177. package/dist/events/websocket/lambda-events/WebSocketRequestContext.js +0 -98
  178. package/dist/events/websocket/lambda-events/index.js +0 -39
  179. package/dist/index.js +0 -15
  180. package/dist/lambda/HttpServer.js +0 -124
  181. package/dist/lambda/Lambda.js +0 -117
  182. package/dist/lambda/LambdaContext.js +0 -53
  183. package/dist/lambda/LambdaFunction.js +0 -390
  184. package/dist/lambda/LambdaFunctionPool.js +0 -127
  185. package/dist/lambda/handler-runner/HandlerRunner.js +0 -195
  186. package/dist/lambda/handler-runner/child-process-runner/ChildProcessRunner.js +0 -124
  187. package/dist/lambda/handler-runner/child-process-runner/childProcessHelper.js +0 -49
  188. package/dist/lambda/handler-runner/child-process-runner/index.js +0 -15
  189. package/dist/lambda/handler-runner/docker-runner/DockerContainer.js +0 -515
  190. package/dist/lambda/handler-runner/docker-runner/DockerImage.js +0 -67
  191. package/dist/lambda/handler-runner/docker-runner/DockerRunner.js +0 -74
  192. package/dist/lambda/handler-runner/docker-runner/index.js +0 -15
  193. package/dist/lambda/handler-runner/go-runner/GoRunner.js +0 -230
  194. package/dist/lambda/handler-runner/go-runner/index.js +0 -15
  195. package/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js +0 -228
  196. package/dist/lambda/handler-runner/in-process-runner/index.js +0 -15
  197. package/dist/lambda/handler-runner/index.js +0 -15
  198. package/dist/lambda/handler-runner/java-runner/JavaRunner.js +0 -153
  199. package/dist/lambda/handler-runner/java-runner/index.js +0 -15
  200. package/dist/lambda/handler-runner/python-runner/PythonRunner.js +0 -185
  201. package/dist/lambda/handler-runner/python-runner/index.js +0 -15
  202. package/dist/lambda/handler-runner/ruby-runner/RubyRunner.js +0 -147
  203. package/dist/lambda/handler-runner/ruby-runner/index.js +0 -15
  204. package/dist/lambda/handler-runner/worker-thread-runner/WorkerThreadRunner.js +0 -92
  205. package/dist/lambda/handler-runner/worker-thread-runner/index.js +0 -15
  206. package/dist/lambda/handler-runner/worker-thread-runner/workerThreadHelper.js +0 -31
  207. package/dist/lambda/index.js +0 -15
  208. package/dist/lambda/routes/index.js +0 -23
  209. package/dist/lambda/routes/invocations/InvocationsController.js +0 -142
  210. package/dist/lambda/routes/invocations/index.js +0 -15
  211. package/dist/lambda/routes/invocations/invocationsRoute.js +0 -90
  212. package/dist/lambda/routes/invoke-async/InvokeAsyncController.js +0 -38
  213. package/dist/lambda/routes/invoke-async/index.js +0 -15
  214. package/dist/lambda/routes/invoke-async/invokeAsyncRoute.js +0 -43
  215. package/dist/main.js +0 -11
  216. package/dist/serverlessLog.js +0 -91
  217. package/dist/utils/checkDockerDaemon.js +0 -27
  218. package/dist/utils/checkGoVersion.js +0 -27
  219. package/dist/utils/createApiKey.js +0 -12
  220. package/dist/utils/createUniqueId.js +0 -14
  221. package/dist/utils/detectExecutable.js +0 -21
  222. package/dist/utils/generateHapiPath.js +0 -28
  223. package/dist/utils/getHttpApiCorsConfig.js +0 -40
  224. package/dist/utils/index.js +0 -165
  225. package/dist/utils/jsonPath.js +0 -21
  226. package/dist/utils/lowerCaseKeys.js +0 -14
  227. package/dist/utils/parseHeaders.js +0 -23
  228. package/dist/utils/parseMultiValueHeaders.js +0 -36
  229. package/dist/utils/parseMultiValueQueryStringParameters.js +0 -40
  230. package/dist/utils/parseQueryStringParameters.js +0 -26
  231. package/dist/utils/resolveJoins.js +0 -36
  232. package/dist/utils/satisfiesVersionRange.js +0 -20
  233. package/dist/utils/splitHandlerPathAndName.js +0 -37
  234. package/dist/utils/unflatten.js +0 -18
@@ -1,98 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _index = require("../../../utils/index.js");
9
-
10
- function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; }
11
-
12
- var id = 0;
13
-
14
- function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; }
15
-
16
- const {
17
- now
18
- } = Date;
19
- const connectedAt = new Map();
20
-
21
- var _connectionId = /*#__PURE__*/_classPrivateFieldLooseKey("connectionId");
22
-
23
- var _eventType = /*#__PURE__*/_classPrivateFieldLooseKey("eventType");
24
-
25
- var _route = /*#__PURE__*/_classPrivateFieldLooseKey("route");
26
-
27
- var _connectedAt = /*#__PURE__*/_classPrivateFieldLooseKey("connectedAt");
28
-
29
- class WebSocketRequestContext {
30
- constructor(eventType, route, connectionId) {
31
- Object.defineProperty(this, _connectionId, {
32
- writable: true,
33
- value: null
34
- });
35
- Object.defineProperty(this, _eventType, {
36
- writable: true,
37
- value: null
38
- });
39
- Object.defineProperty(this, _route, {
40
- writable: true,
41
- value: null
42
- });
43
- Object.defineProperty(this, _connectedAt, {
44
- writable: true,
45
- value: null
46
- });
47
- _classPrivateFieldLooseBase(this, _connectionId)[_connectionId] = connectionId;
48
- _classPrivateFieldLooseBase(this, _eventType)[_eventType] = eventType;
49
- _classPrivateFieldLooseBase(this, _route)[_route] = route;
50
-
51
- if (eventType === 'CONNECT') {
52
- connectedAt.set(connectionId, now());
53
- }
54
-
55
- _classPrivateFieldLooseBase(this, _connectedAt)[_connectedAt] = connectedAt.get(connectionId);
56
-
57
- if (eventType === 'DISCONNECT') {
58
- connectedAt.delete(connectionId);
59
- }
60
- }
61
-
62
- create() {
63
- const timeEpoch = now();
64
- const requestContext = {
65
- apiId: 'private',
66
- connectedAt: _classPrivateFieldLooseBase(this, _connectedAt)[_connectedAt],
67
- connectionId: _classPrivateFieldLooseBase(this, _connectionId)[_connectionId],
68
- domainName: 'localhost',
69
- eventType: _classPrivateFieldLooseBase(this, _eventType)[_eventType],
70
- extendedRequestId: (0, _index.createUniqueId)(),
71
- identity: {
72
- accessKey: null,
73
- accountId: null,
74
- caller: null,
75
- cognitoAuthenticationProvider: null,
76
- cognitoAuthenticationType: null,
77
- cognitoIdentityId: null,
78
- cognitoIdentityPoolId: null,
79
- principalOrgId: null,
80
- sourceIp: '127.0.0.1',
81
- user: null,
82
- userAgent: null,
83
- userArn: null
84
- },
85
- messageDirection: 'IN',
86
- messageId: (0, _index.createUniqueId)(),
87
- requestId: (0, _index.createUniqueId)(),
88
- requestTime: (0, _index.formatToClfTime)(timeEpoch),
89
- requestTimeEpoch: timeEpoch,
90
- routeKey: _classPrivateFieldLooseBase(this, _route)[_route],
91
- stage: 'local'
92
- };
93
- return requestContext;
94
- }
95
-
96
- }
97
-
98
- exports.default = WebSocketRequestContext;
@@ -1,39 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "WebSocketAuthorizerEvent", {
7
- enumerable: true,
8
- get: function () {
9
- return _WebSocketAuthorizerEvent.default;
10
- }
11
- });
12
- Object.defineProperty(exports, "WebSocketConnectEvent", {
13
- enumerable: true,
14
- get: function () {
15
- return _WebSocketConnectEvent.default;
16
- }
17
- });
18
- Object.defineProperty(exports, "WebSocketDisconnectEvent", {
19
- enumerable: true,
20
- get: function () {
21
- return _WebSocketDisconnectEvent.default;
22
- }
23
- });
24
- Object.defineProperty(exports, "WebSocketEvent", {
25
- enumerable: true,
26
- get: function () {
27
- return _WebSocketEvent.default;
28
- }
29
- });
30
-
31
- var _WebSocketConnectEvent = _interopRequireDefault(require("./WebSocketConnectEvent.js"));
32
-
33
- var _WebSocketDisconnectEvent = _interopRequireDefault(require("./WebSocketDisconnectEvent.js"));
34
-
35
- var _WebSocketEvent = _interopRequireDefault(require("./WebSocketEvent.js"));
36
-
37
- var _WebSocketAuthorizerEvent = _interopRequireDefault(require("./WebSocketAuthorizerEvent.js"));
38
-
39
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
package/dist/index.js DELETED
@@ -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 _ServerlessOffline.default;
10
- }
11
- });
12
-
13
- var _ServerlessOffline = _interopRequireDefault(require("./ServerlessOffline.js"));
14
-
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -1,124 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _hapi = require("@hapi/hapi");
9
-
10
- var _process = require("process");
11
-
12
- var _index = require("./routes/index.js");
13
-
14
- var _serverlessLog = _interopRequireDefault(require("../serverlessLog.js"));
15
-
16
- var _debugLog = _interopRequireDefault(require("../debugLog.js"));
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; }
21
-
22
- var id = 0;
23
-
24
- function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; }
25
-
26
- var _lambda = /*#__PURE__*/_classPrivateFieldLooseKey("lambda");
27
-
28
- var _options = /*#__PURE__*/_classPrivateFieldLooseKey("options");
29
-
30
- var _server = /*#__PURE__*/_classPrivateFieldLooseKey("server");
31
-
32
- class HttpServer {
33
- constructor(options, lambda, v3Utils) {
34
- Object.defineProperty(this, _lambda, {
35
- writable: true,
36
- value: null
37
- });
38
- Object.defineProperty(this, _options, {
39
- writable: true,
40
- value: null
41
- });
42
- Object.defineProperty(this, _server, {
43
- writable: true,
44
- value: null
45
- });
46
- _classPrivateFieldLooseBase(this, _lambda)[_lambda] = lambda;
47
- _classPrivateFieldLooseBase(this, _options)[_options] = options;
48
- const {
49
- host,
50
- lambdaPort
51
- } = options;
52
- const serverOptions = {
53
- host,
54
- port: lambdaPort
55
- };
56
-
57
- if (v3Utils) {
58
- this.log = v3Utils.log;
59
- this.progress = v3Utils.progress;
60
- this.writeText = v3Utils.writeText;
61
- this.v3Utils = v3Utils;
62
- }
63
-
64
- _classPrivateFieldLooseBase(this, _server)[_server] = new _hapi.Server(serverOptions);
65
- }
66
-
67
- async start() {
68
- // add routes
69
- const _invocationsRoute = (0, _index.invocationsRoute)(_classPrivateFieldLooseBase(this, _lambda)[_lambda], _classPrivateFieldLooseBase(this, _options)[_options], this.v3Utils);
70
-
71
- const _invokeAsyncRoute = (0, _index.invokeAsyncRoute)(_classPrivateFieldLooseBase(this, _lambda)[_lambda], _classPrivateFieldLooseBase(this, _options)[_options]);
72
-
73
- _classPrivateFieldLooseBase(this, _server)[_server].route([_invokeAsyncRoute, _invocationsRoute]);
74
-
75
- const {
76
- host,
77
- httpsProtocol,
78
- lambdaPort
79
- } = _classPrivateFieldLooseBase(this, _options)[_options];
80
-
81
- try {
82
- await _classPrivateFieldLooseBase(this, _server)[_server].start();
83
- } catch (err) {
84
- if (this.log) {
85
- this.log.error(`Unexpected error while starting serverless-offline lambda server on port ${lambdaPort}:`, err);
86
- } else {
87
- console.error(`Unexpected error while starting serverless-offline lambda server on port ${lambdaPort}:`, err);
88
- }
89
-
90
- (0, _process.exit)(1);
91
- }
92
-
93
- if (this.log) {
94
- this.log.notice(`Offline [http for lambda] listening on http${httpsProtocol ? 's' : ''}://${host}:${lambdaPort}`);
95
- } else {
96
- (0, _serverlessLog.default)(`Offline [http for lambda] listening on http${httpsProtocol ? 's' : ''}://${host}:${lambdaPort}`);
97
- } // Print all the invocation routes to debug
98
-
99
-
100
- const basePath = `http${httpsProtocol ? 's' : ''}://${host}:${lambdaPort}`;
101
-
102
- const funcNamePairs = _classPrivateFieldLooseBase(this, _lambda)[_lambda].listFunctionNamePairs();
103
-
104
- if (this.log) {
105
- this.log.notice([`Function names exposed for local invocation by aws-sdk:`, ..._classPrivateFieldLooseBase(this, _lambda)[_lambda].listFunctionNames().map(functionName => ` * ${funcNamePairs[functionName]}: ${functionName}`)].join('\n'));
106
- this.log.debug([`Lambda Invocation Routes (for AWS SDK or AWS CLI):`, ..._classPrivateFieldLooseBase(this, _lambda)[_lambda].listFunctionNames().map(functionName => ` * ${_invocationsRoute.method} ${basePath}${_invocationsRoute.path.replace('{functionName}', functionName)}`)].join('\n'));
107
- this.log.debug([`Lambda Async Invocation Routes (for AWS SDK or AWS CLI):`, ..._classPrivateFieldLooseBase(this, _lambda)[_lambda].listFunctionNames().map(functionName => ` * ${_invokeAsyncRoute.method} ${basePath}${_invokeAsyncRoute.path.replace('{functionName}', functionName)}`)].join('\n'));
108
- } else {
109
- (0, _serverlessLog.default)([`Function names exposed for local invocation by aws-sdk:`, ..._classPrivateFieldLooseBase(this, _lambda)[_lambda].listFunctionNames().map(functionName => ` * ${funcNamePairs[functionName]}: ${functionName}`)].join('\n'));
110
- (0, _debugLog.default)([`Lambda Invocation Routes (for AWS SDK or AWS CLI):`, ..._classPrivateFieldLooseBase(this, _lambda)[_lambda].listFunctionNames().map(functionName => ` * ${_invocationsRoute.method} ${basePath}${_invocationsRoute.path.replace('{functionName}', functionName)}`)].join('\n'));
111
- (0, _debugLog.default)([`Lambda Async Invocation Routes (for AWS SDK or AWS CLI):`, ..._classPrivateFieldLooseBase(this, _lambda)[_lambda].listFunctionNames().map(functionName => ` * ${_invokeAsyncRoute.method} ${basePath}${_invokeAsyncRoute.path.replace('{functionName}', functionName)}`)].join('\n'));
112
- }
113
- } // stops the server
114
-
115
-
116
- stop(timeout) {
117
- return _classPrivateFieldLooseBase(this, _server)[_server].stop({
118
- timeout
119
- });
120
- }
121
-
122
- }
123
-
124
- exports.default = HttpServer;
@@ -1,117 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _HttpServer = _interopRequireDefault(require("./HttpServer.js"));
9
-
10
- var _LambdaFunctionPool = _interopRequireDefault(require("./LambdaFunctionPool.js"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; }
15
-
16
- var id = 0;
17
-
18
- function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; }
19
-
20
- const {
21
- assign
22
- } = Object;
23
-
24
- var _httpServer = /*#__PURE__*/_classPrivateFieldLooseKey("httpServer");
25
-
26
- var _lambdas = /*#__PURE__*/_classPrivateFieldLooseKey("lambdas");
27
-
28
- var _lambdaFunctionNamesKeys = /*#__PURE__*/_classPrivateFieldLooseKey("lambdaFunctionNamesKeys");
29
-
30
- var _lambdaFunctionPool = /*#__PURE__*/_classPrivateFieldLooseKey("lambdaFunctionPool");
31
-
32
- class Lambda {
33
- constructor(serverless, options, v3Utils) {
34
- Object.defineProperty(this, _httpServer, {
35
- writable: true,
36
- value: null
37
- });
38
- Object.defineProperty(this, _lambdas, {
39
- writable: true,
40
- value: new Map()
41
- });
42
- Object.defineProperty(this, _lambdaFunctionNamesKeys, {
43
- writable: true,
44
- value: new Map()
45
- });
46
- Object.defineProperty(this, _lambdaFunctionPool, {
47
- writable: true,
48
- value: null
49
- });
50
-
51
- if (v3Utils) {
52
- this.log = v3Utils.log;
53
- this.progress = v3Utils.progress;
54
- this.writeText = v3Utils.writeText;
55
- this.v3Utils = v3Utils;
56
- }
57
-
58
- _classPrivateFieldLooseBase(this, _httpServer)[_httpServer] = new _HttpServer.default(options, this, v3Utils);
59
- _classPrivateFieldLooseBase(this, _lambdaFunctionPool)[_lambdaFunctionPool] = new _LambdaFunctionPool.default(serverless, options, v3Utils);
60
- }
61
-
62
- _create(functionKey, functionDefinition) {
63
- _classPrivateFieldLooseBase(this, _lambdas)[_lambdas].set(functionKey, functionDefinition);
64
-
65
- _classPrivateFieldLooseBase(this, _lambdaFunctionNamesKeys)[_lambdaFunctionNamesKeys].set(functionDefinition.name, functionKey);
66
- }
67
-
68
- create(lambdas) {
69
- lambdas.forEach(({
70
- functionKey,
71
- functionDefinition
72
- }) => {
73
- this._create(functionKey, functionDefinition);
74
- });
75
- }
76
-
77
- get(functionKey) {
78
- const functionDefinition = _classPrivateFieldLooseBase(this, _lambdas)[_lambdas].get(functionKey);
79
-
80
- return _classPrivateFieldLooseBase(this, _lambdaFunctionPool)[_lambdaFunctionPool].get(functionKey, functionDefinition);
81
- }
82
-
83
- getByFunctionName(functionName) {
84
- const functionKey = _classPrivateFieldLooseBase(this, _lambdaFunctionNamesKeys)[_lambdaFunctionNamesKeys].get(functionName);
85
-
86
- return this.get(functionKey);
87
- }
88
-
89
- listFunctionNames() {
90
- const functionNames = Array.from(_classPrivateFieldLooseBase(this, _lambdaFunctionNamesKeys)[_lambdaFunctionNamesKeys].keys());
91
- return functionNames;
92
- }
93
-
94
- listFunctionNamePairs() {
95
- const funcNamePairs = Array.from(_classPrivateFieldLooseBase(this, _lambdaFunctionNamesKeys)[_lambdaFunctionNamesKeys]).reduce((obj, [key, value]) => assign(obj, {
96
- [key]: value
97
- }), // Be careful! Maps can have non-String keys; object literals can't.
98
- {});
99
- return funcNamePairs;
100
- }
101
-
102
- start() {
103
- return _classPrivateFieldLooseBase(this, _httpServer)[_httpServer].start();
104
- } // stops the server
105
-
106
-
107
- stop(timeout) {
108
- return _classPrivateFieldLooseBase(this, _httpServer)[_httpServer].stop(timeout);
109
- }
110
-
111
- cleanup() {
112
- return _classPrivateFieldLooseBase(this, _lambdaFunctionPool)[_lambdaFunctionPool].cleanup();
113
- }
114
-
115
- }
116
-
117
- exports.default = Lambda;
@@ -1,53 +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 _context = /*#__PURE__*/_classPrivateFieldLooseKey("context");
15
-
16
- // class for creating a LambdaContext
17
- // http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html
18
- class LambdaContext {
19
- constructor(functionName, memorySize) {
20
- Object.defineProperty(this, _context, {
21
- writable: true,
22
- value: null
23
- });
24
- _classPrivateFieldLooseBase(this, _context)[_context] = {
25
- awsRequestId: undefined,
26
- callbackWaitsForEmptyEventLoop: true,
27
- clientContext: undefined,
28
- functionName,
29
- functionVersion: `$LATEST`,
30
- identity: undefined,
31
- invokedFunctionArn: `offline_invokedFunctionArn_for_${functionName}`,
32
- logGroupName: `offline_logGroupName_for_${functionName}`,
33
- logStreamName: `offline_logStreamName_for_${functionName}`,
34
- memoryLimitInMB: String(memorySize) // NOTE: string in AWS
35
-
36
- };
37
- }
38
-
39
- setClientContext(clientContext) {
40
- _classPrivateFieldLooseBase(this, _context)[_context].clientContext = clientContext;
41
- }
42
-
43
- setRequestId(requestId) {
44
- _classPrivateFieldLooseBase(this, _context)[_context].awsRequestId = requestId;
45
- }
46
-
47
- create() {
48
- return _classPrivateFieldLooseBase(this, _context)[_context];
49
- }
50
-
51
- }
52
-
53
- exports.default = LambdaContext;