serverless-offline 8.2.0 → 8.5.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 (57) hide show
  1. package/README.md +157 -116
  2. package/dist/ServerlessOffline.js +98 -26
  3. package/dist/config/commandOptions.js +4 -0
  4. package/dist/config/constants.js +1 -1
  5. package/dist/config/defaultOptions.js +1 -0
  6. package/dist/events/http/Endpoint.js +27 -9
  7. package/dist/events/http/Http.js +3 -3
  8. package/dist/events/http/HttpServer.js +355 -82
  9. package/dist/events/http/authFunctionNameExtractor.js +14 -8
  10. package/dist/events/http/authJWTSettingsExtractor.js +14 -7
  11. package/dist/events/http/createAuthScheme.js +44 -9
  12. package/dist/events/http/createJWTAuthScheme.js +52 -13
  13. package/dist/events/http/lambda-events/LambdaIntegrationEvent.js +7 -6
  14. package/dist/events/http/lambda-events/LambdaProxyIntegrationEvent.js +38 -7
  15. package/dist/events/http/lambda-events/LambdaProxyIntegrationEventV2.js +37 -6
  16. package/dist/events/http/lambda-events/VelocityContext.js +4 -4
  17. package/dist/events/http/lambda-events/index.js +4 -4
  18. package/dist/events/http/lambda-events/renderVelocityTemplateObject.js +19 -7
  19. package/dist/events/schedule/Schedule.js +45 -10
  20. package/dist/events/websocket/HttpServer.js +24 -7
  21. package/dist/events/websocket/WebSocket.js +14 -6
  22. package/dist/events/websocket/WebSocketClients.js +127 -38
  23. package/dist/events/websocket/WebSocketServer.js +79 -11
  24. package/dist/events/websocket/http-routes/_catchAll/catchAllRoute.js +9 -2
  25. package/dist/events/websocket/http-routes/connections/ConnectionsController.js +1 -1
  26. package/dist/events/websocket/http-routes/connections/connectionsRoutes.js +28 -5
  27. package/dist/events/websocket/lambda-events/WebSocketConnectEvent.js +5 -5
  28. package/dist/events/websocket/lambda-events/WebSocketDisconnectEvent.js +1 -1
  29. package/dist/events/websocket/lambda-events/WebSocketEvent.js +3 -3
  30. package/dist/events/websocket/lambda-events/WebSocketRequestContext.js +4 -4
  31. package/dist/lambda/HttpServer.js +34 -10
  32. package/dist/lambda/Lambda.js +15 -7
  33. package/dist/lambda/LambdaContext.js +1 -1
  34. package/dist/lambda/LambdaFunction.js +40 -23
  35. package/dist/lambda/LambdaFunctionPool.js +9 -8
  36. package/dist/lambda/handler-runner/HandlerRunner.js +51 -16
  37. package/dist/lambda/handler-runner/child-process-runner/ChildProcessRunner.js +21 -8
  38. package/dist/lambda/handler-runner/child-process-runner/childProcessHelper.js +1 -10
  39. package/dist/lambda/handler-runner/docker-runner/DockerContainer.js +168 -69
  40. package/dist/lambda/handler-runner/docker-runner/DockerImage.js +21 -5
  41. package/dist/lambda/handler-runner/docker-runner/DockerRunner.js +4 -4
  42. package/dist/lambda/handler-runner/go-runner/GoRunner.js +211 -0
  43. package/dist/lambda/handler-runner/go-runner/index.js +15 -0
  44. package/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js +16 -22
  45. package/dist/lambda/handler-runner/java-runner/JavaRunner.js +26 -14
  46. package/dist/lambda/handler-runner/python-runner/PythonRunner.js +20 -7
  47. package/dist/lambda/handler-runner/ruby-runner/RubyRunner.js +22 -24
  48. package/dist/lambda/handler-runner/worker-thread-runner/WorkerThreadRunner.js +2 -2
  49. package/dist/lambda/handler-runner/worker-thread-runner/workerThreadHelper.js +1 -11
  50. package/dist/lambda/routes/invocations/InvocationsController.js +30 -11
  51. package/dist/lambda/routes/invocations/invocationsRoute.js +4 -3
  52. package/dist/lambda/routes/invoke-async/InvokeAsyncController.js +2 -6
  53. package/dist/serverlessLog.js +1 -1
  54. package/dist/utils/checkGoVersion.js +27 -0
  55. package/dist/utils/getHttpApiCorsConfig.js +18 -5
  56. package/dist/utils/index.js +24 -16
  57. package/package.json +86 -37
package/package.json CHANGED
@@ -1,23 +1,29 @@
1
1
  {
2
2
  "dedicatedTo": "Blue, a great migrating bird.",
3
3
  "name": "serverless-offline",
4
- "version": "8.2.0",
4
+ "version": "8.5.0",
5
5
  "description": "Emulate AWS λ and API Gateway locally when developing your Serverless project",
6
6
  "license": "MIT",
7
7
  "main": "dist/main.js",
8
8
  "type": "commonjs",
9
9
  "scripts": {
10
10
  "build": "rimraf dist && babel src --ignore \"**/__tests__/**/*\" --out-dir dist && copyfiles -u 1 \"src/**/*.{vm,py,rb}\" dist",
11
- "lint": "eslint .",
12
11
  "format": "eslint . --fix",
12
+ "lint": "eslint .",
13
+ "lint:updated": "pipe-git-updated --ext=js -- eslint",
13
14
  "list-contributors": "echo 'clone https://github.com/mgechev/github-contributors-list.git first, then run npm install' && cd ../github-contributors-list && node bin/githubcontrib --owner dherault --repo serverless-offline --sortBy contributions --showlogin true --sortOrder desc > contributors.md",
14
15
  "prepare": "npm run build",
16
+ "prepare-release": "standard-version && prettier --write CHANGELOG.md",
15
17
  "prepublishOnly": "npm run lint && npm run build",
18
+ "prettier-check": "prettier -c --ignore-path .gitignore \"**/*.{css,html,js,json,md,yaml,yml}\"",
19
+ "prettier-check:updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier -c",
20
+ "prettify": "prettier --write --ignore-path .gitignore \"**/*.{css,html,js,json,md,yaml,yml}\"",
21
+ "prettify:updated": "pipe-git-updated --ext=css --ext=html --ext=js --ext=json --ext=md --ext=yaml --ext=yml -- prettier --write",
16
22
  "test": "npm run build && jest --verbose --silent --runInBand",
17
- "test:unit": "jest --verbose --silent --runInBand --config jest.config.units.js",
18
23
  "test:cov": "npm run build && jest --coverage --silent --runInBand --collectCoverageFrom=src/**/*.js",
19
24
  "test:log": "npm run build && jest --verbose",
20
25
  "test:noBuild": "jest --verbose --runInBand --bail",
26
+ "test:unit": "jest --verbose --silent --runInBand --config jest.config.units.js",
21
27
  "test:watch": "SKIP_SETUP=true jest --verbose --watch"
22
28
  },
23
29
  "repository": {
@@ -96,6 +102,7 @@
96
102
  "Gert Jansen van Rensburg (https://github.com/gertjvr)",
97
103
  "Guillaume Carbonneau (https://github.com/guillaume)",
98
104
  "György Balássy (https://github.com/balassy)",
105
+ "James Relyea (https://github.com/james-relyea)",
99
106
  "Jarda Snajdr (https://github.com/jsnajdr)",
100
107
  "Jaryd Carolin (https://github.com/horyd)",
101
108
  "Jeff Hall (https://github.com/electrikdevelopment)",
@@ -142,6 +149,7 @@
142
149
  "Stewart Gleadow (https://github.com/sgleadow)",
143
150
  "Thales Minussi (https://github.com/tminussi)",
144
151
  "Thang Minh Vu (https://github.com/ittus)",
152
+ "Tom St. Clair (https://github.com/tom-stclair)",
145
153
  "Trevor Leach (https://github.com/trevor-leach)",
146
154
  "Tuan Minh Huynh (https://github.com/tuanmh)",
147
155
  "Utku Turunc (https://github.com/utkuturunc)",
@@ -149,67 +157,108 @@
149
157
  "Dima Krutolianov (https://github.com/dimadk24)",
150
158
  "Bryan Vaz (https://github.com/bryanvaz)",
151
159
  "Justin Ng (https://github.com/njyjn)",
152
- "Fernando Alvarez (https://github.com/jefer590)"
160
+ "Fernando Alvarez (https://github.com/jefer590)",
161
+ "Eric Carter (https://github.com/ericctsf)"
153
162
  ],
163
+ "husky": {
164
+ "hooks": {
165
+ "pre-commit": "lint-staged"
166
+ }
167
+ },
168
+ "lint-staged": {
169
+ "*.js": [
170
+ "eslint"
171
+ ],
172
+ "*.{css,html,js,json,md,yaml,yml}": [
173
+ "prettier -c"
174
+ ]
175
+ },
154
176
  "engines": {
155
177
  "node": ">=12.0.0"
156
178
  },
179
+ "standard-version": {
180
+ "skip": {
181
+ "commit": true,
182
+ "tag": true
183
+ },
184
+ "types": [
185
+ {
186
+ "type": "feat",
187
+ "section": "Features"
188
+ },
189
+ {
190
+ "type": "fix",
191
+ "section": "Bug Fixes"
192
+ },
193
+ {
194
+ "type": "perf",
195
+ "section": "Performance Improvements"
196
+ },
197
+ {
198
+ "type": "refactor",
199
+ "section": "Maintenance Improvements"
200
+ }
201
+ ]
202
+ },
157
203
  "dependencies": {
158
- "@hapi/boom": "^9.1.2",
159
- "@hapi/h2o2": "^9.0.2",
160
- "@hapi/hapi": "^20.1.3",
161
- "aws-sdk": "^2.834.0",
162
- "boxen": "^5.0.0",
163
- "chalk": "^4.1.0",
204
+ "@hapi/boom": "^9.1.4",
205
+ "@hapi/h2o2": "^9.1.0",
206
+ "@hapi/hapi": "^20.2.1",
207
+ "aws-sdk": "^2.1076.0",
208
+ "boxen": "^5.1.2",
209
+ "chalk": "^4.1.2",
164
210
  "cuid": "^2.1.8",
165
- "execa": "^5.0.0",
211
+ "execa": "^5.1.1",
166
212
  "extend": "^3.0.2",
167
213
  "fs-extra": "^9.1.0",
168
214
  "java-invoke-local": "0.0.6",
169
215
  "js-string-escape": "^1.0.1",
170
- "jsonpath-plus": "^5.0.2",
216
+ "jsonpath-plus": "^5.1.0",
171
217
  "jsonschema": "^1.4.0",
172
218
  "jsonwebtoken": "^8.5.1",
173
- "jszip": "^3.5.0",
174
- "luxon": "^1.25.0",
175
- "node-fetch": "^2.6.1",
219
+ "jszip": "^3.7.1",
220
+ "luxon": "^1.28.0",
221
+ "node-fetch": "^2.6.7",
176
222
  "node-schedule": "^1.3.3",
177
- "object.fromentries": "^2.0.3",
178
- "p-memoize": "^4.0.1",
223
+ "object.fromentries": "^2.0.5",
224
+ "p-memoize": "^4.0.4",
179
225
  "p-queue": "^6.6.2",
180
- "p-retry": "^4.3.0",
226
+ "p-retry": "^4.6.1",
181
227
  "please-upgrade-node": "^3.2.0",
182
228
  "portfinder": "^1.0.28",
183
- "semver": "^7.3.4",
184
- "update-notifier": "^5.0.1",
185
- "velocityjs": "^2.0.3",
186
- "ws": "^7.4.2"
229
+ "semver": "^7.3.5",
230
+ "update-notifier": "^5.1.0",
231
+ "velocityjs": "^2.0.6",
232
+ "ws": "^7.5.7"
187
233
  },
188
234
  "devDependencies": {
189
- "@babel/cli": "^7.12.10",
190
- "@babel/core": "^7.12.10",
191
- "@babel/plugin-proposal-class-properties": "^7.12.1",
192
- "@babel/plugin-proposal-dynamic-import": "^7.12.1",
193
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1",
194
- "@babel/plugin-proposal-optional-chaining": "^7.12.7",
195
- "@babel/plugin-transform-modules-commonjs": "^7.12.1",
196
- "@babel/register": "^7.12.10",
197
- "archiver": "^5.2.0",
235
+ "@babel/cli": "^7.17.3",
236
+ "@babel/core": "^7.17.5",
237
+ "@babel/plugin-proposal-class-properties": "^7.16.7",
238
+ "@babel/plugin-proposal-dynamic-import": "^7.16.7",
239
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7",
240
+ "@babel/plugin-proposal-optional-chaining": "^7.16.7",
241
+ "@babel/plugin-transform-modules-commonjs": "^7.16.8",
242
+ "@babel/register": "^7.17.0",
243
+ "archiver": "^5.3.0",
198
244
  "babel-eslint": "^10.1.0",
199
245
  "copyfiles": "^2.4.1",
200
- "eslint": "^7.18.0",
246
+ "eslint": "^7.32.0",
201
247
  "eslint-config-airbnb-base": "^14.2.1",
202
248
  "eslint-config-prettier": "^7.2.0",
203
- "eslint-plugin-import": "^2.22.1",
204
- "eslint-plugin-prettier": "^3.3.1",
249
+ "eslint-plugin-import": "^2.25.4",
250
+ "eslint-plugin-prettier": "^3.4.1",
251
+ "git-list-updated": "^1.2.1",
205
252
  "husky": "^4.3.8",
206
253
  "jest": "^26.6.3",
254
+ "lint-staged": "^11.2.6",
207
255
  "p-map": "^4.0.0",
208
- "prettier": "^2.2.1",
256
+ "prettier": "^2.5.1",
209
257
  "rimraf": "^3.0.2",
210
- "serverless": "^2.2.0"
258
+ "serverless": "^2.72.2",
259
+ "standard-version": "^9.3.2"
211
260
  },
212
261
  "peerDependencies": {
213
- "serverless": "^1.60.0 || 2"
262
+ "serverless": "^1.60.0 || 2 || 3"
214
263
  }
215
264
  }