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,195 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _debugLog = _interopRequireDefault(require("../../debugLog.js"));
9
-
10
- var _serverlessLog = require("../../serverlessLog.js");
11
-
12
- var _index = require("../../config/index.js");
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
-
18
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
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 _env = /*#__PURE__*/_classPrivateFieldLooseKey("env");
27
-
28
- var _funOptions = /*#__PURE__*/_classPrivateFieldLooseKey("funOptions");
29
-
30
- var _options = /*#__PURE__*/_classPrivateFieldLooseKey("options");
31
-
32
- var _runner = /*#__PURE__*/_classPrivateFieldLooseKey("runner");
33
-
34
- class HandlerRunner {
35
- constructor(funOptions, options, env, v3Utils) {
36
- Object.defineProperty(this, _env, {
37
- writable: true,
38
- value: null
39
- });
40
- Object.defineProperty(this, _funOptions, {
41
- writable: true,
42
- value: null
43
- });
44
- Object.defineProperty(this, _options, {
45
- writable: true,
46
- value: null
47
- });
48
- Object.defineProperty(this, _runner, {
49
- writable: true,
50
- value: null
51
- });
52
- _classPrivateFieldLooseBase(this, _env)[_env] = env;
53
- _classPrivateFieldLooseBase(this, _funOptions)[_funOptions] = funOptions;
54
- _classPrivateFieldLooseBase(this, _options)[_options] = options;
55
-
56
- if (v3Utils) {
57
- this.log = v3Utils.log;
58
- this.progress = v3Utils.progress;
59
- this.writeText = v3Utils.writeText;
60
- this.v3Utils = v3Utils;
61
- }
62
- }
63
-
64
- async _loadRunner() {
65
- const {
66
- useDocker,
67
- useChildProcesses,
68
- useWorkerThreads,
69
- allowCache
70
- } = _classPrivateFieldLooseBase(this, _options)[_options];
71
-
72
- const {
73
- functionKey,
74
- handlerName,
75
- handlerPath,
76
- runtime,
77
- timeout
78
- } = _classPrivateFieldLooseBase(this, _funOptions)[_funOptions];
79
-
80
- if (this.log) {
81
- this.log.debug(`Loading handler... (${handlerPath})`);
82
- } else {
83
- (0, _debugLog.default)(`Loading handler... (${handlerPath})`);
84
- }
85
-
86
- if (useDocker) {
87
- // https://github.com/lambci/docker-lambda/issues/329
88
- if (runtime === 'nodejs14.x') {
89
- if (this.log) {
90
- this.log.warning('"nodejs14.x" runtime is not supported with docker. See https://github.com/lambci/docker-lambda/issues/329');
91
- } else {
92
- (0, _serverlessLog.logWarning)('"nodejs14.x" runtime is not supported with docker. See https://github.com/lambci/docker-lambda/issues/329');
93
- }
94
-
95
- throw new Error('Unsupported runtime');
96
- }
97
-
98
- if (runtime === 'python3.9') {
99
- if (this.log) {
100
- this.log.warning('"python3.9" runtime is not supported with docker.');
101
- } else {
102
- (0, _serverlessLog.logWarning)('"python3.9" runtime is not supported with docker.');
103
- }
104
-
105
- throw new Error('Unsupported runtime');
106
- }
107
-
108
- const dockerOptions = {
109
- host: _classPrivateFieldLooseBase(this, _options)[_options].dockerHost,
110
- hostServicePath: _classPrivateFieldLooseBase(this, _options)[_options].dockerHostServicePath,
111
- layersDir: _classPrivateFieldLooseBase(this, _options)[_options].layersDir,
112
- network: _classPrivateFieldLooseBase(this, _options)[_options].dockerNetwork,
113
- readOnly: _classPrivateFieldLooseBase(this, _options)[_options].dockerReadOnly
114
- };
115
- const {
116
- default: DockerRunner
117
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./docker-runner/index.js')));
118
- return new DockerRunner(_classPrivateFieldLooseBase(this, _funOptions)[_funOptions], _classPrivateFieldLooseBase(this, _env)[_env], dockerOptions, this.v3Utils);
119
- }
120
-
121
- if (_index.supportedNodejs.has(runtime)) {
122
- if (useChildProcesses) {
123
- const {
124
- default: ChildProcessRunner
125
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./child-process-runner/index.js')));
126
- return new ChildProcessRunner(_classPrivateFieldLooseBase(this, _funOptions)[_funOptions], _classPrivateFieldLooseBase(this, _env)[_env], allowCache, this.v3Utils);
127
- }
128
-
129
- if (useWorkerThreads) {
130
- const {
131
- default: WorkerThreadRunner
132
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./worker-thread-runner/index.js')));
133
- return new WorkerThreadRunner(_classPrivateFieldLooseBase(this, _funOptions)[_funOptions], _classPrivateFieldLooseBase(this, _env)[_env], allowCache);
134
- }
135
-
136
- const {
137
- default: InProcessRunner
138
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./in-process-runner/index.js')));
139
- return new InProcessRunner(functionKey, handlerPath, handlerName, _classPrivateFieldLooseBase(this, _env)[_env], timeout, allowCache);
140
- }
141
-
142
- if (_index.supportedGo.has(runtime)) {
143
- const {
144
- default: GoRunner
145
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./go-runner/index.js')));
146
- return new GoRunner(_classPrivateFieldLooseBase(this, _funOptions)[_funOptions], _classPrivateFieldLooseBase(this, _env)[_env], this.v3Utils);
147
- }
148
-
149
- if (_index.supportedPython.has(runtime)) {
150
- const {
151
- default: PythonRunner
152
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./python-runner/index.js')));
153
- return new PythonRunner(_classPrivateFieldLooseBase(this, _funOptions)[_funOptions], _classPrivateFieldLooseBase(this, _env)[_env], allowCache, this.v3Utils);
154
- }
155
-
156
- if (_index.supportedRuby.has(runtime)) {
157
- const {
158
- default: RubyRunner
159
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./ruby-runner/index.js')));
160
- return new RubyRunner(_classPrivateFieldLooseBase(this, _funOptions)[_funOptions], _classPrivateFieldLooseBase(this, _env)[_env], allowCache, this.v3Utils);
161
- }
162
-
163
- if (_index.supportedJava.has(runtime)) {
164
- const {
165
- default: JavaRunner
166
- } = await Promise.resolve().then(() => _interopRequireWildcard(require('./java-runner/index.js')));
167
- return new JavaRunner(_classPrivateFieldLooseBase(this, _funOptions)[_funOptions], _classPrivateFieldLooseBase(this, _env)[_env], allowCache, this.v3Utils);
168
- } // TODO FIXME
169
-
170
-
171
- throw new Error('Unsupported runtime');
172
- } // TEMP TODO FIXME
173
-
174
-
175
- isDockerRunner() {
176
- return _classPrivateFieldLooseBase(this, _runner)[_runner] && _classPrivateFieldLooseBase(this, _runner)[_runner].constructor.name === 'DockerRunner';
177
- } // () => Promise<void>
178
-
179
-
180
- cleanup() {
181
- // TODO console.log('handler runner cleanup')
182
- return _classPrivateFieldLooseBase(this, _runner)[_runner].cleanup();
183
- }
184
-
185
- async run(event, context) {
186
- if (_classPrivateFieldLooseBase(this, _runner)[_runner] == null) {
187
- _classPrivateFieldLooseBase(this, _runner)[_runner] = await this._loadRunner();
188
- }
189
-
190
- return _classPrivateFieldLooseBase(this, _runner)[_runner].run(event, context);
191
- }
192
-
193
- }
194
-
195
- exports.default = HandlerRunner;
@@ -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 _path = _interopRequireDefault(require("path"));
9
-
10
- var _execa = require("execa");
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 childProcessHelperPath = _path.default.resolve(__dirname, 'childProcessHelper.js');
21
-
22
- var _env = /*#__PURE__*/_classPrivateFieldLooseKey("env");
23
-
24
- var _functionKey = /*#__PURE__*/_classPrivateFieldLooseKey("functionKey");
25
-
26
- var _handlerName = /*#__PURE__*/_classPrivateFieldLooseKey("handlerName");
27
-
28
- var _handlerPath = /*#__PURE__*/_classPrivateFieldLooseKey("handlerPath");
29
-
30
- var _timeout = /*#__PURE__*/_classPrivateFieldLooseKey("timeout");
31
-
32
- var _allowCache = /*#__PURE__*/_classPrivateFieldLooseKey("allowCache");
33
-
34
- class ChildProcessRunner {
35
- constructor(funOptions, env, allowCache, v3Utils) {
36
- Object.defineProperty(this, _env, {
37
- writable: true,
38
- value: null
39
- });
40
- Object.defineProperty(this, _functionKey, {
41
- writable: true,
42
- value: null
43
- });
44
- Object.defineProperty(this, _handlerName, {
45
- writable: true,
46
- value: null
47
- });
48
- Object.defineProperty(this, _handlerPath, {
49
- writable: true,
50
- value: null
51
- });
52
- Object.defineProperty(this, _timeout, {
53
- writable: true,
54
- value: null
55
- });
56
- Object.defineProperty(this, _allowCache, {
57
- writable: true,
58
- value: false
59
- });
60
- const {
61
- functionKey,
62
- handlerName,
63
- handlerPath,
64
- timeout
65
- } = funOptions;
66
-
67
- if (v3Utils) {
68
- this.log = v3Utils.log;
69
- this.progress = v3Utils.progress;
70
- this.writeText = v3Utils.writeText;
71
- this.v3Utils = v3Utils;
72
- }
73
-
74
- _classPrivateFieldLooseBase(this, _env)[_env] = env;
75
- _classPrivateFieldLooseBase(this, _functionKey)[_functionKey] = functionKey;
76
- _classPrivateFieldLooseBase(this, _handlerName)[_handlerName] = handlerName;
77
- _classPrivateFieldLooseBase(this, _handlerPath)[_handlerPath] = handlerPath;
78
- _classPrivateFieldLooseBase(this, _timeout)[_timeout] = timeout;
79
- _classPrivateFieldLooseBase(this, _allowCache)[_allowCache] = allowCache;
80
- } // no-op
81
- // () => void
82
-
83
-
84
- cleanup() {}
85
-
86
- async run(event, context) {
87
- const childProcess = (0, _execa.node)(childProcessHelperPath, [_classPrivateFieldLooseBase(this, _functionKey)[_functionKey], _classPrivateFieldLooseBase(this, _handlerName)[_handlerName], _classPrivateFieldLooseBase(this, _handlerPath)[_handlerPath]], {
88
- env: _classPrivateFieldLooseBase(this, _env)[_env],
89
- stdio: 'inherit'
90
- });
91
- const message = new Promise((resolve, reject) => {
92
- childProcess.on('message', data => {
93
- if (data.error) reject(data.error);else resolve(data);
94
- });
95
- }).finally(() => {
96
- childProcess.kill();
97
- });
98
- childProcess.send({
99
- context,
100
- event,
101
- allowCache: _classPrivateFieldLooseBase(this, _allowCache)[_allowCache],
102
- timeout: _classPrivateFieldLooseBase(this, _timeout)[_timeout]
103
- });
104
- let result;
105
-
106
- try {
107
- result = await message;
108
- } catch (err) {
109
- // TODO
110
- if (this.log) {
111
- this.log.error(err);
112
- } else {
113
- console.log(err);
114
- }
115
-
116
- throw err;
117
- }
118
-
119
- return result;
120
- }
121
-
122
- }
123
-
124
- exports.default = ChildProcessRunner;
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- var _process = _interopRequireWildcard(require("process"));
4
-
5
- var _index = _interopRequireDefault(require("../in-process-runner/index.js"));
6
-
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
-
9
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
-
11
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
-
13
- // TODO handle this:
14
- _process.default.on('uncaughtException', err => {
15
- const {
16
- constructor: {
17
- name
18
- },
19
- message,
20
- stack
21
- } = err;
22
-
23
- _process.default.send({
24
- // process.send() can't serialize an Error object, so we help it out a bit
25
- error: {
26
- constructor: {
27
- name
28
- },
29
- message,
30
- stack
31
- }
32
- });
33
- });
34
-
35
- const [,, functionKey, handlerName, handlerPath] = _process.argv;
36
-
37
- _process.default.on('message', async messageData => {
38
- const {
39
- context,
40
- event,
41
- allowCache,
42
- timeout
43
- } = messageData; // TODO we could probably cache this in the module scope?
44
-
45
- const inProcessRunner = new _index.default(functionKey, handlerPath, handlerName, _process.default.env, timeout, allowCache);
46
- const result = await inProcessRunner.run(event, context); // TODO check serializeability (contains function, symbol etc)
47
-
48
- _process.default.send(result);
49
- });
@@ -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 _ChildProcessRunner.default;
10
- }
11
- });
12
-
13
- var _ChildProcessRunner = _interopRequireDefault(require("./ChildProcessRunner.js"));
14
-
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }