diff --git a/README.md b/README.md
index 78a202a59..392d73938 100644
--- a/README.md
+++ b/README.md
@@ -40,38 +40,83 @@ This plugin is updated by its users, I just do maintenance and ensure that PRs a
## Documentation
-- [Installation](#installation)
-- [Usage and command line options](#usage-and-command-line-options)
-- [Run modes](#run-modes)
-- [Invoke Lambda](#invoke-lambda)
-- [The `process.env.IS_OFFLINE` variable](#the-processenvis_offline-variable)
-- [Docker and Layers](#docker-and-layers)
-- [Authorizers](#authorizers)
- - [Token authorizers](#token-authorizers)
- - [Custom authorizers](#custom-authorizers)
- - [Remote authorizers](#remote-authorizers)
- - [JWT authorizers](#jwt-authorizers)
- - [Serverless plugin authorizers](#serverless-plugin-authorizers)
-- [Custom headers](#custom-headers)
-- [Environment variables](#environment-variables)
-- [AWS API Gateway Features](#aws-api-gateway-features)
- - [Velocity Templates](#velocity-templates)
- - [Velocity nuances](#velocity-nuances)
- - [CORS](#cors)
- - [Catch-all Path Variables](#catch-all-path-variables)
- - [ANY method](#any-method)
- - [Lambda and Lambda Proxy Integrations](#lambda-and-lambda-proxy-integrations)
- - [HTTP Proxy](#http-proxy)
- - [Response parameters](#response-parameters)
-- [WebSocket](#websocket)
-- [Debug process](#debug-process)
-- [Resource permissions and AWS profile](#resource-permissions-and-aws-profile)
-- [Simulation quality](#simulation-quality)
-- [Usage with other plugins](#usage-with-other-plugins)
-- [Credits and inspiration](#credits-and-inspiration)
-- [License](#license)
-- [Contributing](#contributing)
-- [Contributors](#contributors)
+- [Serverless Offline](#serverless-offline)
+ - [Documentation](#documentation)
+ - [Installation](#installation)
+ - [Usage and command line options](#usage-and-command-line-options)
+ - [corsAllowHeaders](#corsallowheaders)
+ - [corsAllowOrigin](#corsalloworigin)
+ - [corsDisallowCredentials](#corsdisallowcredentials)
+ - [corsExposedHeaders](#corsexposedheaders)
+ - [disableCookieValidation](#disablecookievalidation)
+ - [dockerHost](#dockerhost)
+ - [dockerHostServicePath](#dockerhostservicepath)
+ - [dockerNetwork](#dockernetwork)
+ - [dockerReadOnly](#dockerreadonly)
+ - [enforceSecureCookies](#enforcesecurecookies)
+ - [host](#host)
+ - [httpPort](#httpport)
+ - [httpsProtocol](#httpsprotocol)
+ - [ignoreJWTSignature](#ignorejwtsignature)
+ - [lambdaPort](#lambdaport)
+ - [layersDir](#layersdir)
+ - [localEnvironment](#localenvironment)
+ - [noAuth](#noauth)
+ - [noPrependStageInUrl](#noprependstageinurl)
+ - [noTimeout](#notimeout)
+ - [prefix](#prefix)
+ - [reloadHandler](#reloadhandler)
+ - [resourceRoutes](#resourceroutes)
+ - [terminateIdleLambdaTime](#terminateidlelambdatime)
+ - [useDocker](#usedocker)
+ - [useInProcess](#useinprocess)
+ - [webSocketHardTimeout](#websockethardtimeout)
+ - [webSocketIdleTimeout](#websocketidletimeout)
+ - [websocketPort](#websocketport)
+ - [Run modes](#run-modes)
+ - [node.js](#nodejs)
+ - [worker-threads (default)](#worker-threads-default)
+ - [in-process](#in-process)
+ - [docker](#docker)
+ - [Python, Ruby, Go, Java (incl. Kotlin, Groovy, Scala)](#python-ruby-go-java-incl-kotlin-groovy-scala)
+ - [Invoke Lambda](#invoke-lambda)
+ - [The `process.env.IS_OFFLINE` variable](#the-processenvis_offline-variable)
+ - [Docker and Layers](#docker-and-layers)
+ - [Additional Options](#additional-options)
+ - [dockerHost](#dockerhost-1)
+ - [dockerHostServicePath](#dockerhostservicepath-1)
+ - [dockerNetwork](#dockernetwork-1)
+ - [dockerReadOnly](#dockerreadonly-1)
+ - [layersDir](#layersdir-1)
+ - [Authorizers](#authorizers)
+ - [Token authorizers](#token-authorizers)
+ - [Custom authorizers](#custom-authorizers)
+ - [Remote authorizers](#remote-authorizers)
+ - [JWT authorizers](#jwt-authorizers)
+ - [Serverless plugin authorizers](#serverless-plugin-authorizers)
+ - [Custom headers](#custom-headers)
+ - [Environment variables](#environment-variables)
+ - [AWS API Gateway Features](#aws-api-gateway-features)
+ - [Velocity Templates](#velocity-templates)
+ - [Velocity nuances](#velocity-nuances)
+ - [CORS](#cors)
+ - [Catch-all Path Variables](#catch-all-path-variables)
+ - [ANY method](#any-method)
+ - [Lambda and Lambda Proxy Integrations](#lambda-and-lambda-proxy-integrations)
+ - [HTTP Proxy](#http-proxy)
+ - [Response parameters](#response-parameters)
+ - [WebSocket](#websocket)
+ - [Debug process](#debug-process)
+ - [Interactive Debugging with Visual Studio Code (VSC)](#interactive-debugging-with-visual-studio-code-vsc)
+ - [Step 1 : Adding a launch configuration in IDE](#step-1--adding-a-launch-configuration-in-ide)
+ - [Step2 : Adding a debug script](#step2--adding-a-debug-script)
+ - [Resource permissions and AWS profile](#resource-permissions-and-aws-profile)
+ - [Simulation quality](#simulation-quality)
+ - [Usage with other plugins](#usage-with-other-plugins)
+ - [Credits and inspiration](#credits-and-inspiration)
+ - [License](#license)
+ - [Contributing](#contributing)
+ - [Contributors](#contributors)
## Installation
@@ -983,6 +1028,6 @@ We try to follow [Airbnb's JavaScript Style Guide](https://github.com/airbnb/jav
| :---------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------ |
| [m0ppers](https://github.com/m0ppers) | [footballencarta](https://github.com/footballencarta) | [bryanvaz](https://github.com/bryanvaz) | [njyjn](https://github.com/njyjn) | [kdybicz](https://github.com/kdybicz) |
-| [](https://github.com/ericctsf) | [](https://github.com/brazilianbytes) |
-| :------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------: |
-| [ericctsf](https://github.com/erictsf) | [brazilianbytes](https://github.com/brazilianbytes) |
+| [](https://github.com/ericctsf) | [](https://github.com/brazilianbytes) | [](https://github.com/cmeadows)
+| :---------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------: |
+| [ericctsf](https://github.com/erictsf) | [brazilianbytes](https://github.com/brazilianbytes) | [cmeadows](https://github.com/cmeadows) |
diff --git a/package-lock.json b/package-lock.json
index afda3ade3..d27164c08 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -28,6 +28,7 @@
"jsonschema": "^1.4.1",
"jszip": "^3.10.1",
"luxon": "^3.4.4",
+ "node-fetch": "^3.3.2",
"node-schedule": "^2.1.1",
"p-memoize": "^7.1.1",
"p-retry": "^6.2.0",
@@ -1888,6 +1889,26 @@
"node": ">=10"
}
},
+ "node_modules/@serverless/dashboard-plugin/node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "dev": true,
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@serverless/dashboard-plugin/node_modules/open": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
@@ -1919,6 +1940,28 @@
"node": ">=10"
}
},
+ "node_modules/@serverless/dashboard-plugin/node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "dev": true
+ },
+ "node_modules/@serverless/dashboard-plugin/node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "dev": true
+ },
+ "node_modules/@serverless/dashboard-plugin/node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dev": true,
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
"node_modules/@serverless/dashboard-plugin/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
@@ -2302,6 +2345,44 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/@serverless/utils/node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@serverless/utils/node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
+ "node_modules/@serverless/utils/node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
+ "node_modules/@serverless/utils/node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
"node_modules/@sindresorhus/is": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
@@ -5155,6 +5236,14 @@
"node": ">=8"
}
},
+ "node_modules/data-uri-to-buffer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
+ "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
"node_modules/data-urls": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
@@ -6896,6 +6985,28 @@
"pend": "~1.2.0"
}
},
+ "node_modules/fetch-blob": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "dependencies": {
+ "node-domexception": "^1.0.0",
+ "web-streams-polyfill": "^3.0.3"
+ },
+ "engines": {
+ "node": "^12.20 || >= 14.13"
+ }
+ },
"node_modules/figures": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
@@ -7139,6 +7250,17 @@
"node": ">= 6"
}
},
+ "node_modules/formdata-polyfill": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
+ "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
+ "dependencies": {
+ "fetch-blob": "^3.1.2"
+ },
+ "engines": {
+ "node": ">=12.20.0"
+ }
+ },
"node_modules/formidable": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz",
@@ -10265,42 +10387,39 @@
"node": ">= 0.10.5"
}
},
+ "node_modules/node-domexception": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "github",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "engines": {
+ "node": ">=10.5.0"
+ }
+ },
"node_modules/node-fetch": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
- "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz",
+ "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==",
"dependencies": {
- "whatwg-url": "^5.0.0"
+ "data-uri-to-buffer": "^4.0.0",
+ "fetch-blob": "^3.1.4",
+ "formdata-polyfill": "^4.0.10"
},
"engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/node-fetch/node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
- },
- "node_modules/node-fetch/node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
- },
- "node_modules/node-fetch/node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/node-fetch"
}
},
"node_modules/node-preload": {
@@ -10432,6 +10551,26 @@
"node": ">=10"
}
},
+ "node_modules/npm-registry-utilities/node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "dev": true,
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
"node_modules/npm-registry-utilities/node_modules/semver": {
"version": "7.6.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
@@ -10447,6 +10586,28 @@
"node": ">=10"
}
},
+ "node_modules/npm-registry-utilities/node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "dev": true
+ },
+ "node_modules/npm-registry-utilities/node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "dev": true
+ },
+ "node_modules/npm-registry-utilities/node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dev": true,
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
"node_modules/npm-registry-utilities/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
@@ -12462,6 +12623,26 @@
"node": ">=10"
}
},
+ "node_modules/serverless/node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "dev": true,
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
"node_modules/serverless/node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -12514,6 +12695,12 @@
"node": ">=6"
}
},
+ "node_modules/serverless/node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "dev": true
+ },
"node_modules/serverless/node_modules/uuid": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
@@ -12527,6 +12714,22 @@
"uuid": "dist/bin/uuid"
}
},
+ "node_modules/serverless/node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "dev": true
+ },
+ "node_modules/serverless/node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dev": true,
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
"node_modules/serverless/node_modules/ws": {
"version": "7.5.9",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
@@ -13792,6 +13995,14 @@
"defaults": "^1.0.3"
}
},
+ "node_modules/web-streams-polyfill": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
+ "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
"node_modules/webidl-conversions": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
diff --git a/package.json b/package.json
index 18c1ecf77..ada2c6aa9 100644
--- a/package.json
+++ b/package.json
@@ -93,6 +93,7 @@
"jsonschema": "^1.4.1",
"jszip": "^3.10.1",
"luxon": "^3.4.4",
+ "node-fetch": "^3.3.2",
"node-schedule": "^2.1.1",
"p-memoize": "^7.1.1",
"p-retry": "^6.2.0",
diff --git a/src/lambda/routes/invocations/invocationsRoute.js b/src/lambda/routes/invocations/invocationsRoute.js
index 9c100c640..f5f3ae012 100644
--- a/src/lambda/routes/invocations/invocationsRoute.js
+++ b/src/lambda/routes/invocations/invocationsRoute.js
@@ -1,4 +1,5 @@
import { Buffer } from "node:buffer"
+import { Headers } from "node-fetch"
import InvocationsController from "./InvocationsController.js"
const { parse } = JSON