serverless-offline 8.7.0 → 8.8.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 (42) hide show
  1. package/README.md +89 -93
  2. package/dist/ServerlessOffline.js +15 -8
  3. package/dist/config/supportedRuntimes.js +1 -1
  4. package/dist/debugLog.js +3 -1
  5. package/dist/events/{http/authValidateContext.js → authValidateContext.js} +8 -3
  6. package/dist/events/http/Endpoint.js +3 -1
  7. package/dist/events/http/HttpServer.js +27 -20
  8. package/dist/events/http/OfflineEndpoint.js +23 -25
  9. package/dist/events/http/createAuthScheme.js +1 -1
  10. package/dist/events/http/createJWTAuthScheme.js +6 -2
  11. package/dist/events/http/lambda-events/LambdaIntegrationEvent.js +4 -2
  12. package/dist/events/http/lambda-events/LambdaProxyIntegrationEvent.js +16 -14
  13. package/dist/events/http/lambda-events/LambdaProxyIntegrationEventV2.js +17 -13
  14. package/dist/events/http/lambda-events/VelocityContext.js +3 -1
  15. package/dist/events/http/lambda-events/renderVelocityTemplateObject.js +4 -1
  16. package/dist/events/schedule/Schedule.js +10 -9
  17. package/dist/events/websocket/HttpServer.js +3 -1
  18. package/dist/events/websocket/WebSocketClients.js +38 -11
  19. package/dist/events/websocket/WebSocketServer.js +5 -6
  20. package/dist/index.js +0 -4
  21. package/dist/lambda/HttpServer.js +3 -1
  22. package/dist/lambda/Lambda.js +5 -1
  23. package/dist/lambda/LambdaFunction.js +1 -2
  24. package/dist/lambda/handler-runner/HandlerRunner.js +1 -29
  25. package/dist/lambda/handler-runner/child-process-runner/ChildProcessRunner.js +1 -9
  26. package/dist/lambda/handler-runner/child-process-runner/childProcessHelper.js +15 -6
  27. package/dist/lambda/handler-runner/docker-runner/DockerContainer.js +2 -4
  28. package/dist/lambda/handler-runner/go-runner/GoRunner.js +34 -15
  29. package/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js +24 -30
  30. package/dist/lambda/handler-runner/java-runner/JavaRunner.js +3 -1
  31. package/dist/lambda/handler-runner/python-runner/PythonRunner.js +15 -10
  32. package/dist/lambda/handler-runner/ruby-runner/RubyRunner.js +3 -4
  33. package/dist/lambda/handler-runner/worker-thread-runner/WorkerThreadRunner.js +0 -2
  34. package/dist/lambda/handler-runner/worker-thread-runner/workerThreadHelper.js +4 -3
  35. package/dist/utils/generateHapiPath.js +1 -1
  36. package/dist/utils/getHttpApiCorsConfig.js +4 -8
  37. package/dist/utils/index.js +11 -4
  38. package/dist/utils/lowerCaseKeys.js +14 -0
  39. package/dist/utils/resolveJoins.js +4 -2
  40. package/dist/utils/splitHandlerPathAndName.js +9 -13
  41. package/package.json +23 -26
  42. package/dist/checkEngine.js +0 -21
@@ -8,18 +8,18 @@ exports.default = splitHandlerPathAndName;
8
8
  // some-folder/src.index => some-folder/src
9
9
  function splitHandlerPathAndName(handler) {
10
10
  // Split handler into method name and path i.e. handler.run
11
- const prepathDelimiter = handler.lastIndexOf('/');
12
- const prepath = handler.substr(0, prepathDelimiter + 1); // include '/' for path
13
-
14
- const postpath = handler.substr(prepathDelimiter + 1); // Support Ruby paths with namespace resolution operators e.g.
11
+ // Support Ruby paths with namespace resolution operators e.g.
15
12
  // ./src/somefolder/source.LambdaFunctions::Handler.process
16
13
  // prepath: ./src/somefolder/
17
14
  // postpath: source.LambdaFunctions::Handler.process
18
15
  // filename: source
19
16
  // path: ./src/somefolder/source
20
17
  // name: LambdaFunctions::Handler.process
21
-
22
18
  if (handler.match(/::/)) {
19
+ const prepathDelimiter = handler.lastIndexOf('/');
20
+ const prepath = handler.substr(0, prepathDelimiter + 1); // include '/' for path
21
+
22
+ const postpath = handler.substr(prepathDelimiter + 1);
23
23
  const nameDelimiter = postpath.indexOf('.');
24
24
  const filename = postpath.substr(0, nameDelimiter);
25
25
  const path = prepath + filename;
@@ -30,12 +30,8 @@ function splitHandlerPathAndName(handler) {
30
30
  // name: run
31
31
 
32
32
 
33
- const [filename, ...moduleNesting] = postpath.split('.');
34
- const [name] = moduleNesting.slice(-1);
35
- const path = prepath + filename; // module nesting has been added to support when the
36
- // handler function is buried deep inside of a module
37
- // e.g /src/somefoler/handlers/index.layer1.layer2.handler
38
- // AWS supports this feature
39
-
40
- return [path, name, moduleNesting];
33
+ const delimiter = handler.lastIndexOf('.');
34
+ const path = handler.substr(0, delimiter);
35
+ const name = handler.substr(delimiter + 1);
36
+ return [path, name];
41
37
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "dedicatedTo": "Blue, a great migrating bird.",
3
3
  "name": "serverless-offline",
4
- "version": "8.7.0",
4
+ "version": "8.8.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",
@@ -118,6 +118,7 @@
118
118
  "kobanyan (https://github.com/kobanyan)",
119
119
  "Leonardo Alifraco (https://github.com/lalifraco-devspark)",
120
120
  "Leonardo Medici (https://github.com/doclm)",
121
+ "Luciano Jesus Lima (https://github.com/brazilianbytes)",
121
122
  "Luke Chavers (https://github.com/vmadman)",
122
123
  "Manuel Böhm (https://github.com/boehmers)",
123
124
  "Marc Campbell (https://github.com/marccampbell)",
@@ -204,59 +205,55 @@
204
205
  "dependencies": {
205
206
  "@hapi/boom": "^9.1.4",
206
207
  "@hapi/h2o2": "^9.1.0",
207
- "@hapi/hapi": "^20.2.1",
208
- "aws-sdk": "^2.1097.0",
208
+ "@hapi/hapi": "^20.2.2",
209
+ "aws-sdk": "^2.1136.0",
209
210
  "boxen": "^5.1.2",
210
211
  "chalk": "^4.1.2",
211
212
  "cuid": "^2.1.8",
212
213
  "execa": "^5.1.1",
213
- "extend": "^3.0.2",
214
- "fs-extra": "^9.1.0",
214
+ "fs-extra": "^10.1.0",
215
215
  "java-invoke-local": "0.0.6",
216
216
  "js-string-escape": "^1.0.1",
217
217
  "jsonpath-plus": "^5.1.0",
218
218
  "jsonschema": "^1.4.0",
219
219
  "jsonwebtoken": "^8.5.1",
220
- "jszip": "^3.7.1",
221
- "luxon": "^1.28.0",
220
+ "jszip": "^3.9.1",
221
+ "luxon": "^2.4.0",
222
222
  "node-fetch": "^2.6.7",
223
- "node-schedule": "^1.3.3",
224
- "object.fromentries": "^2.0.5",
223
+ "node-schedule": "^2.1.0",
225
224
  "p-memoize": "^4.0.4",
226
225
  "p-queue": "^6.6.2",
227
- "p-retry": "^4.6.1",
228
- "please-upgrade-node": "^3.2.0",
229
- "semver": "^7.3.5",
226
+ "p-retry": "^4.6.2",
227
+ "semver": "^7.3.7",
230
228
  "update-notifier": "^5.1.0",
231
229
  "velocityjs": "^2.0.6",
232
230
  "ws": "^7.5.7"
233
231
  },
234
232
  "devDependencies": {
235
- "@babel/cli": "^7.17.6",
236
- "@babel/core": "^7.17.8",
237
- "@babel/plugin-proposal-class-properties": "^7.16.7",
233
+ "@babel/cli": "^7.17.10",
234
+ "@babel/core": "^7.17.12",
235
+ "@babel/plugin-proposal-class-properties": "^7.17.12",
238
236
  "@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.17.7",
237
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12",
238
+ "@babel/plugin-proposal-optional-chaining": "^7.17.12",
239
+ "@babel/plugin-transform-modules-commonjs": "^7.17.12",
242
240
  "@babel/register": "^7.17.7",
243
- "archiver": "^5.3.0",
244
- "babel-eslint": "^10.1.0",
241
+ "archiver": "^5.3.1",
245
242
  "copyfiles": "^2.4.1",
246
- "eslint": "^7.32.0",
247
- "eslint-config-airbnb-base": "^14.2.1",
248
- "eslint-config-prettier": "^7.2.0",
243
+ "eslint": "^8.15.0",
244
+ "eslint-config-airbnb-base": "^15.0.0",
245
+ "eslint-config-prettier": "^8.5.0",
249
246
  "eslint-plugin-import": "^2.25.4",
250
- "eslint-plugin-prettier": "^3.4.1",
247
+ "eslint-plugin-prettier": "^4.0.0",
251
248
  "git-list-updated": "^1.2.1",
252
249
  "husky": "^4.3.8",
253
250
  "jest": "^26.6.3",
254
251
  "lint-staged": "^11.2.6",
255
252
  "p-map": "^4.0.0",
256
- "prettier": "^2.6.0",
253
+ "prettier": "^2.6.2",
257
254
  "rimraf": "^3.0.2",
258
255
  "serverless": "^2.72.3",
259
- "standard-version": "^9.3.2"
256
+ "standard-version": "^9.5.0"
260
257
  },
261
258
  "peerDependencies": {
262
259
  "serverless": "^1.60.0 || 2 || 3"
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- var _pleaseUpgradeNode = _interopRequireDefault(require("please-upgrade-node"));
4
-
5
- var _package = _interopRequireDefault(require("../package.json"));
6
-
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
-
9
- // NOTE: important, don't use any new javascript language features in this file!
10
- // (other than es6 modules, which are transpiled)
11
- const currentNodeVersion = process.versions.node;
12
-
13
- const requiredNodeVersion = _package.default.engines.node.replace('>=', '');
14
-
15
- (0, _pleaseUpgradeNode.default)(_package.default, {
16
- message: function message() {
17
- return (// eslint-disable-next-line prefer-template
18
- 'serverless-offline requires node.js version ' + requiredNodeVersion + ' or higher, but found version ' + currentNodeVersion + '. Please upgrade!'
19
- );
20
- }
21
- });