serverless-offline 14.4.0 → 14.6.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.
- package/LICENSE +1 -1
- package/README.md +74 -59
- package/package.json +19 -20
- package/src/config/constants.js +1 -1
- package/src/config/supportedRuntimes.js +12 -7
- package/src/events/alb/HttpServer.js +43 -40
- package/src/lambda/LambdaFunction.js +8 -7
- package/src/lambda/handler-runner/HandlerRunner.js +4 -6
- package/src/lambda/handler-runner/docker-runner/DockerContainer.js +6 -7
- package/src/lambda/handler-runner/in-process-runner/aws-lambda-ric/UserFunction.js +7 -5
- package/src/utils/renderIntrinsicFunction.js +34 -0
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
# Serverless Offline
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
We are looking for maintainers!
|
|
5
|
+
<br />
|
|
6
|
+
Please contact <a href="https://github.com/dherault">dherault</a> if you feel you are a good match.
|
|
7
|
+
</div>
|
|
8
|
+
<br />
|
|
9
|
+
<div align="center">
|
|
10
|
+
<sup>
|
|
11
|
+
Serverless-offline is supported by the community.
|
|
12
|
+
</sup>
|
|
13
|
+
<br />
|
|
9
14
|
<sup>
|
|
10
15
|
Special thanks to:
|
|
11
16
|
</sup>
|
|
12
|
-
<
|
|
13
|
-
<div>
|
|
14
|
-
<img src="https://airfriend.app/images/logotype.png" height="64" alt="Airfriend">
|
|
15
|
-
</div>
|
|
16
|
-
<b>
|
|
17
|
-
An AI friend on WhatsApp.
|
|
18
|
-
</b>
|
|
19
|
-
</a>
|
|
17
|
+
<br />
|
|
20
18
|
<a href="https://arccode.dev?ref=so">
|
|
21
19
|
<div>
|
|
22
20
|
<img src="https://arccode.dev/images/logotype.png" height="64" alt="Arccode">
|
|
@@ -31,9 +29,6 @@
|
|
|
31
29
|
</div>
|
|
32
30
|
|
|
33
31
|
<p>
|
|
34
|
-
<a href="https://www.serverless.com">
|
|
35
|
-
<img src="http://public.serverless.com/badges/v3.svg">
|
|
36
|
-
</a>
|
|
37
32
|
<a href="https://www.npmjs.com/package/serverless-offline">
|
|
38
33
|
<img src="https://img.shields.io/npm/v/serverless-offline.svg?style=flat-square">
|
|
39
34
|
</a>
|
|
@@ -898,88 +893,108 @@ We try to follow [Airbnb's JavaScript Style Guide](https://github.com/airbnb/jav
|
|
|
898
893
|
|
|
899
894
|
## Contributors
|
|
900
895
|
|
|
901
|
-
[<img alt="dnalborczyk" src="https://avatars.githubusercontent.com/u/2903325?v=4&s=117" width="117">](https://github.com/dnalborczyk)[<img alt="dherault" src="https://avatars.githubusercontent.com/u/4154003?v=4&s=117" width="117">](https://github.com/dherault)[<img alt="computerpunc" src="https://avatars.githubusercontent.com/u/721008?v=4&s=117" width="117">](https://github.com/computerpunc)[<img alt="frozenbonito" src="https://avatars.githubusercontent.com/u/26363256?v=4&s=117" width="117">](https://github.com/frozenbonito)[<img alt="leonardoalifraco" src="https://avatars.githubusercontent.com/u/2942943?v=4&s=117" width="117">](https://github.com/leonardoalifraco)
|
|
896
|
+
[<img alt="dnalborczyk" src="https://avatars.githubusercontent.com/u/2903325?v=4&s=117" width="117">](https://github.com/dnalborczyk)[<img alt="dherault" src="https://avatars.githubusercontent.com/u/4154003?v=4&s=117" width="117">](https://github.com/dherault)[<img alt="computerpunc" src="https://avatars.githubusercontent.com/u/721008?v=4&s=117" width="117">](https://github.com/computerpunc)[<img alt="frozenbonito" src="https://avatars.githubusercontent.com/u/26363256?v=4&s=117" width="117">](https://github.com/frozenbonito)[<img alt="leonardoalifraco" src="https://avatars.githubusercontent.com/u/2942943?v=4&s=117" width="117">](https://github.com/leonardoalifraco)
|
|
897
|
+
|
|
898
|
+
[<img alt="medikoo" src="https://avatars.githubusercontent.com/u/122434?v=4&s=117" width="117">](https://github.com/medikoo)[<img alt="DorianMazur" src="https://avatars.githubusercontent.com/u/46839236?v=4&s=117" width="117">](https://github.com/DorianMazur)[<img alt="apancutt" src="https://avatars.githubusercontent.com/u/1040525?v=4&s=117" width="117">](https://github.com/apancutt)[<img alt="chardos" src="https://avatars.githubusercontent.com/u/4082442?v=4&s=117" width="117">](https://github.com/chardos)[<img alt="daniel-cottone" src="https://avatars.githubusercontent.com/u/26556340?v=4&s=117" width="117">](https://github.com/daniel-cottone)
|
|
899
|
+
|
|
900
|
+
[<img alt="damon-williams-rm" src="https://avatars.githubusercontent.com/u/254429975?v=4&s=117" width="117">](https://github.com/damon-williams-rm)[<img alt="bryantbiggs" src="https://avatars.githubusercontent.com/u/10913471?v=4&s=117" width="117">](https://github.com/bryantbiggs)[<img alt="pgrzesik" src="https://avatars.githubusercontent.com/u/17499590?v=4&s=117" width="117">](https://github.com/pgrzesik)[<img alt="Bilal-S" src="https://avatars.githubusercontent.com/u/668901?v=4&s=117" width="117">](https://github.com/Bilal-S)[<img alt="mikestaub" src="https://avatars.githubusercontent.com/u/1254558?v=4&s=117" width="117">](https://github.com/mikestaub)
|
|
901
|
+
|
|
902
|
+
[<img alt="juanjoDiaz" src="https://avatars.githubusercontent.com/u/3322485?v=4&s=117" width="117">](https://github.com/juanjoDiaz)[<img alt="frsechet" src="https://avatars.githubusercontent.com/u/7351940?v=4&s=117" width="117">](https://github.com/frsechet)[<img alt="johncmckim" src="https://avatars.githubusercontent.com/u/1297227?v=4&s=117" width="117">](https://github.com/johncmckim)[<img alt="dl748" src="https://avatars.githubusercontent.com/u/4815868?v=4&s=117" width="117">](https://github.com/dl748)[<img alt="zoellner" src="https://avatars.githubusercontent.com/u/2665319?v=4&s=117" width="117">](https://github.com/zoellner)
|
|
903
|
+
|
|
904
|
+
[<img alt="ThisIsNoZaku" src="https://avatars.githubusercontent.com/u/4680766?v=4&s=117" width="117">](https://github.com/ThisIsNoZaku)[<img alt="darthtrevino" src="https://avatars.githubusercontent.com/u/113544?v=4&s=117" width="117">](https://github.com/darthtrevino)[<img alt="NicolasSeiler" src="https://avatars.githubusercontent.com/u/31805224?v=4&s=117" width="117">](https://github.com/NicolasSeiler)[<img alt="miltador" src="https://avatars.githubusercontent.com/u/17062283?v=4&s=117" width="117">](https://github.com/miltador)[<img alt="moroine" src="https://avatars.githubusercontent.com/u/4658821?v=4&s=117" width="117">](https://github.com/moroine)
|
|
905
|
+
|
|
906
|
+
[<img alt="gertjvr" src="https://avatars.githubusercontent.com/u/1691062?v=4&s=117" width="117">](https://github.com/gertjvr)[<img alt="crespowang" src="https://avatars.githubusercontent.com/u/25573589?v=4&s=117" width="117">](https://github.com/crespowang)[<img alt="bytekast" src="https://avatars.githubusercontent.com/u/241901?v=4&s=117" width="117">](https://github.com/bytekast)[<img alt="jormaechea" src="https://avatars.githubusercontent.com/u/5612500?v=4&s=117" width="117">](https://github.com/jormaechea)[<img alt="thomaschaaf" src="https://avatars.githubusercontent.com/u/893393?v=4&s=117" width="117">](https://github.com/thomaschaaf)
|
|
907
|
+
|
|
908
|
+
[<img alt="dortega3000" src="https://avatars.githubusercontent.com/u/6676525?v=4&s=117" width="117">](https://github.com/dortega3000)[<img alt="tom-marsh" src="https://avatars.githubusercontent.com/u/18220186?v=4&s=117" width="117">](https://github.com/tom-marsh)[<img alt="rwynn" src="https://avatars.githubusercontent.com/u/260672?v=4&s=117" width="117">](https://github.com/rwynn)[<img alt="robbtraister" src="https://avatars.githubusercontent.com/u/5815296?v=4&s=117" width="117">](https://github.com/robbtraister)[<img alt="joubertredrat" src="https://avatars.githubusercontent.com/u/1520407?v=4&s=117" width="117">](https://github.com/joubertredrat)
|
|
909
|
+
|
|
910
|
+
[<img alt="jack-seek" src="https://avatars.githubusercontent.com/u/19676584?v=4&s=117" width="117">](https://github.com/jack-seek)[<img alt="perkyguy" src="https://avatars.githubusercontent.com/u/4624648?v=4&s=117" width="117">](https://github.com/perkyguy)[<img alt="ansraliant" src="https://avatars.githubusercontent.com/u/7121475?v=4&s=117" width="117">](https://github.com/ansraliant)[<img alt="hueniverse" src="https://avatars.githubusercontent.com/u/56631?v=4&s=117" width="117">](https://github.com/hueniverse)[<img alt="james-relyea" src="https://avatars.githubusercontent.com/u/1944491?v=4&s=117" width="117">](https://github.com/james-relyea)
|
|
911
|
+
|
|
912
|
+
[<img alt="sulaysumaria" src="https://avatars.githubusercontent.com/u/174357920?v=4&s=117" width="117">](https://github.com/sulaysumaria)[<img alt="paneidos" src="https://avatars.githubusercontent.com/u/125766?v=4&s=117" width="117">](https://github.com/paneidos)[<img alt="ondrowan" src="https://avatars.githubusercontent.com/u/423776?v=4&s=117" width="117">](https://github.com/ondrowan)[<img alt="kajwik" src="https://avatars.githubusercontent.com/u/230137596?v=4&s=117" width="117">](https://github.com/kajwik)[<img alt="franciscocpg" src="https://avatars.githubusercontent.com/u/3680556?v=4&s=117" width="117">](https://github.com/franciscocpg)
|
|
913
|
+
|
|
914
|
+
[<img alt="AyushG3112" src="https://avatars.githubusercontent.com/u/21307931?v=4&s=117" width="117">](https://github.com/AyushG3112)[<img alt="Andorbal" src="https://avatars.githubusercontent.com/u/579839?v=4&s=117" width="117">](https://github.com/Andorbal)[<img alt="AlexHayton" src="https://avatars.githubusercontent.com/u/63102?v=4&s=117" width="117">](https://github.com/AlexHayton)[<img alt="awwong1" src="https://avatars.githubusercontent.com/u/2760111?v=4&s=117" width="117">](https://github.com/awwong1)[<img alt="andreipopovici" src="https://avatars.githubusercontent.com/u/1143417?v=4&s=117" width="117">](https://github.com/andreipopovici)
|
|
915
|
+
|
|
916
|
+
[<img alt="emmoistner" src="https://avatars.githubusercontent.com/u/5419727?v=4&s=117" width="117">](https://github.com/emmoistner)[<img alt="coyoteecd" src="https://avatars.githubusercontent.com/u/47973420?v=4&s=117" width="117">](https://github.com/coyoteecd)[<img alt="OrKoN" src="https://avatars.githubusercontent.com/u/399150?v=4&s=117" width="117">](https://github.com/OrKoN)[<img alt="trevor-leach" src="https://avatars.githubusercontent.com/u/39206334?v=4&s=117" width="117">](https://github.com/trevor-leach)[<img alt="bebbi" src="https://avatars.githubusercontent.com/u/2752391?v=4&s=117" width="117">](https://github.com/bebbi)
|
|
902
917
|
|
|
903
|
-
[<img alt="
|
|
918
|
+
[<img alt="paulhbarker" src="https://avatars.githubusercontent.com/u/7366567?v=4&s=117" width="117">](https://github.com/paulhbarker)[<img alt="adieuadieu" src="https://avatars.githubusercontent.com/u/438848?v=4&s=117" width="117">](https://github.com/adieuadieu)[<img alt="encounter" src="https://avatars.githubusercontent.com/u/549122?v=4&s=117" width="117">](https://github.com/encounter)[<img alt="leemhenson" src="https://avatars.githubusercontent.com/u/515?v=4&s=117" width="117">](https://github.com/leemhenson)[<img alt="henrist" src="https://avatars.githubusercontent.com/u/703354?v=4&s=117" width="117">](https://github.com/henrist)
|
|
904
919
|
|
|
905
|
-
[<img alt="
|
|
920
|
+
[<img alt="ALOHACREPES345" src="https://avatars.githubusercontent.com/u/51868219?v=4&s=117" width="117">](https://github.com/ALOHACREPES345)[<img alt="Bob-Thomas" src="https://avatars.githubusercontent.com/u/2785213?v=4&s=117" width="117">](https://github.com/Bob-Thomas)[<img alt="cnuss" src="https://avatars.githubusercontent.com/u/819991?v=4&s=117" width="117">](https://github.com/cnuss)[<img alt="c24w" src="https://avatars.githubusercontent.com/u/710406?v=4&s=117" width="117">](https://github.com/c24w)[<img alt="Rawne" src="https://avatars.githubusercontent.com/u/1477918?v=4&s=117" width="117">](https://github.com/Rawne)
|
|
906
921
|
|
|
907
|
-
[<img alt="
|
|
922
|
+
[<img alt="raySavignone" src="https://avatars.githubusercontent.com/u/10362370?v=4&s=117" width="117">](https://github.com/raySavignone)[<img alt="pierreis" src="https://avatars.githubusercontent.com/u/203973?v=4&s=117" width="117">](https://github.com/pierreis)[<img alt="pmuens" src="https://avatars.githubusercontent.com/u/1606004?v=4&s=117" width="117">](https://github.com/pmuens)[<img alt="mzmiric5" src="https://avatars.githubusercontent.com/u/1480072?v=4&s=117" width="117">](https://github.com/mzmiric5)[<img alt="purefan" src="https://avatars.githubusercontent.com/u/315880?v=4&s=117" width="117">](https://github.com/purefan)
|
|
908
923
|
|
|
909
|
-
[<img alt="
|
|
924
|
+
[<img alt="matt-peck" src="https://avatars.githubusercontent.com/u/18297252?v=4&s=117" width="117">](https://github.com/matt-peck)[<img alt="marccampbell" src="https://avatars.githubusercontent.com/u/173451?v=4&s=117" width="117">](https://github.com/marccampbell)[<img alt="ablythe" src="https://avatars.githubusercontent.com/u/6164745?v=4&s=117" width="117">](https://github.com/ablythe)[<img alt="selcukcihan" src="https://avatars.githubusercontent.com/u/7043904?v=4&s=117" width="117">](https://github.com/selcukcihan)[<img alt="shalvah" src="https://avatars.githubusercontent.com/u/14361073?v=4&s=117" width="117">](https://github.com/shalvah)
|
|
910
925
|
|
|
911
|
-
[<img alt="
|
|
926
|
+
[<img alt="footballencarta" src="https://avatars.githubusercontent.com/u/1312258?v=4&s=117" width="117">](https://github.com/footballencarta)[<img alt="francisu" src="https://avatars.githubusercontent.com/u/944949?v=4&s=117" width="117">](https://github.com/francisu)[<img alt="haider-zada96" src="https://avatars.githubusercontent.com/u/65647762?v=4&s=117" width="117">](https://github.com/haider-zada96)[<img alt="naomichi-y" src="https://avatars.githubusercontent.com/u/1632478?v=4&s=117" width="117">](https://github.com/naomichi-y)[<img alt="patrickheeney" src="https://avatars.githubusercontent.com/u/1407228?v=4&s=117" width="117">](https://github.com/patrickheeney)
|
|
912
927
|
|
|
913
|
-
[<img alt="
|
|
928
|
+
[<img alt="re1ro" src="https://avatars.githubusercontent.com/u/470292?v=4&s=117" width="117">](https://github.com/re1ro)[<img alt="andidev" src="https://avatars.githubusercontent.com/u/571389?v=4&s=117" width="117">](https://github.com/andidev)[<img alt="arnas" src="https://avatars.githubusercontent.com/u/13507001?v=4&s=117" width="117">](https://github.com/arnas)[<img alt="clschnei" src="https://avatars.githubusercontent.com/u/1232625?v=4&s=117" width="117">](https://github.com/clschnei)[<img alt="d10-cc" src="https://avatars.githubusercontent.com/u/94011455?v=4&s=117" width="117">](https://github.com/d10-cc)
|
|
914
929
|
|
|
915
|
-
[<img alt="
|
|
930
|
+
[<img alt="pettyalex" src="https://avatars.githubusercontent.com/u/3219141?v=4&s=117" width="117">](https://github.com/pettyalex)[<img alt="domdomegg" src="https://avatars.githubusercontent.com/u/4953590?v=4&s=117" width="117">](https://github.com/domdomegg)[<img alt="apalumbo" src="https://avatars.githubusercontent.com/u/1729784?v=4&s=117" width="117">](https://github.com/apalumbo)[<img alt="rion18" src="https://avatars.githubusercontent.com/u/5338637?v=4&s=117" width="117">](https://github.com/rion18)[<img alt="anishkny" src="https://avatars.githubusercontent.com/u/357499?v=4&s=117" width="117">](https://github.com/anishkny)
|
|
916
931
|
|
|
917
|
-
[<img alt="
|
|
932
|
+
[<img alt="cameroncooper" src="https://avatars.githubusercontent.com/u/898689?v=4&s=117" width="117">](https://github.com/cameroncooper)[<img alt="cmuto09" src="https://avatars.githubusercontent.com/u/4679612?v=4&s=117" width="117">](https://github.com/cmuto09)[<img alt="dschep" src="https://avatars.githubusercontent.com/u/667763?v=4&s=117" width="117">](https://github.com/dschep)[<img alt="dimadk24" src="https://avatars.githubusercontent.com/u/25607790?v=4&s=117" width="117">](https://github.com/dimadk24)[<img alt="astron8t-voyagerx" src="https://avatars.githubusercontent.com/u/131428302?v=4&s=117" width="117">](https://github.com/astron8t-voyagerx)
|
|
918
933
|
|
|
919
|
-
[<img alt="
|
|
934
|
+
[<img alt="dwbelliston" src="https://avatars.githubusercontent.com/u/11450118?v=4&s=117" width="117">](https://github.com/dwbelliston)[<img alt="efrain17" src="https://avatars.githubusercontent.com/u/21026552?v=4&s=117" width="117">](https://github.com/efrain17)[<img alt="eabadjiev" src="https://avatars.githubusercontent.com/u/934059?v=4&s=117" width="117">](https://github.com/eabadjiev)[<img alt="tqfipe" src="https://avatars.githubusercontent.com/u/19840740?v=4&s=117" width="117">](https://github.com/tqfipe)[<img alt="G-Rath" src="https://avatars.githubusercontent.com/u/3151613?v=4&s=117" width="117">](https://github.com/G-Rath)
|
|
920
935
|
|
|
921
|
-
[<img alt="
|
|
936
|
+
[<img alt="garunski" src="https://avatars.githubusercontent.com/u/1002770?v=4&s=117" width="117">](https://github.com/garunski)[<img alt="jeroenvollenbrock" src="https://avatars.githubusercontent.com/u/4551130?v=4&s=117" width="117">](https://github.com/jeroenvollenbrock)[<img alt="joewestcott" src="https://avatars.githubusercontent.com/u/11187741?v=4&s=117" width="117">](https://github.com/joewestcott)[<img alt="djcrabhat" src="https://avatars.githubusercontent.com/u/803042?v=4&s=117" width="117">](https://github.com/djcrabhat)[<img alt="perrin4869" src="https://avatars.githubusercontent.com/u/5774716?v=4&s=117" width="117">](https://github.com/perrin4869)
|
|
922
937
|
|
|
923
|
-
[<img alt="
|
|
938
|
+
[<img alt="njyjn" src="https://avatars.githubusercontent.com/u/10694375?v=4&s=117" width="117">](https://github.com/njyjn)[<img alt="DocLM" src="https://avatars.githubusercontent.com/u/2318483?v=4&s=117" width="117">](https://github.com/DocLM)[<img alt="rfranco" src="https://avatars.githubusercontent.com/u/399203?v=4&s=117" width="117">](https://github.com/rfranco)[<img alt="uh-zz" src="https://avatars.githubusercontent.com/u/47747828?v=4&s=117" width="117">](https://github.com/uh-zz)[<img alt="juarezjaramillo" src="https://avatars.githubusercontent.com/u/4152822?v=4&s=117" width="117">](https://github.com/juarezjaramillo)
|
|
924
939
|
|
|
925
|
-
[<img alt="
|
|
940
|
+
[<img alt="Raph22" src="https://avatars.githubusercontent.com/u/18127594?v=4&s=117" width="117">](https://github.com/Raph22)[<img alt="randytarampi" src="https://avatars.githubusercontent.com/u/592216?v=4&s=117" width="117">](https://github.com/randytarampi)[<img alt="PsychicCat" src="https://avatars.githubusercontent.com/u/4073856?v=4&s=117" width="117">](https://github.com/PsychicCat)[<img alt="petetnt" src="https://avatars.githubusercontent.com/u/7641760?v=4&s=117" width="117">](https://github.com/petetnt)[<img alt="thepont" src="https://avatars.githubusercontent.com/u/2901992?v=4&s=117" width="117">](https://github.com/thepont)
|
|
926
941
|
|
|
927
|
-
[<img alt="
|
|
942
|
+
[<img alt="parasgera" src="https://avatars.githubusercontent.com/u/4932306?v=4&s=117" width="117">](https://github.com/parasgera)[<img alt="Trott" src="https://avatars.githubusercontent.com/u/718899?v=4&s=117" width="117">](https://github.com/Trott)[<img alt="RichiCoder1" src="https://avatars.githubusercontent.com/u/2391878?v=4&s=117" width="117">](https://github.com/RichiCoder1)[<img alt="rishi8094" src="https://avatars.githubusercontent.com/u/20362222?v=4&s=117" width="117">](https://github.com/rishi8094)[<img alt="rloomans" src="https://avatars.githubusercontent.com/u/92133?v=4&s=117" width="117">](https://github.com/rloomans)
|
|
928
943
|
|
|
929
|
-
[<img alt="
|
|
944
|
+
[<img alt="roberttaylor426" src="https://avatars.githubusercontent.com/u/535032?v=4&s=117" width="117">](https://github.com/roberttaylor426)[<img alt="wwsno" src="https://avatars.githubusercontent.com/u/6328924?v=4&s=117" width="117">](https://github.com/wwsno)[<img alt="gribnoysup" src="https://avatars.githubusercontent.com/u/5036933?v=4&s=117" width="117">](https://github.com/gribnoysup)[<img alt="sergiodurand" src="https://avatars.githubusercontent.com/u/19421918?v=4&s=117" width="117">](https://github.com/sergiodurand)[<img alt="sethetter" src="https://avatars.githubusercontent.com/u/655500?v=4&s=117" width="117">](https://github.com/sethetter)
|
|
930
945
|
|
|
931
|
-
[<img alt="
|
|
946
|
+
[<img alt="drace-rgare" src="https://avatars.githubusercontent.com/u/96196419?v=4&s=117" width="117">](https://github.com/drace-rgare)[<img alt="jeromemacias" src="https://avatars.githubusercontent.com/u/582446?v=4&s=117" width="117">](https://github.com/jeromemacias)[<img alt="kdybicz" src="https://avatars.githubusercontent.com/u/13134892?v=4&s=117" width="117">](https://github.com/kdybicz)[<img alt="kenleytomlin" src="https://avatars.githubusercontent.com/u/3004590?v=4&s=117" width="117">](https://github.com/kenleytomlin)[<img alt="kevinhankens" src="https://avatars.githubusercontent.com/u/679364?v=4&s=117" width="117">](https://github.com/kevinhankens)
|
|
932
947
|
|
|
933
|
-
[<img alt="
|
|
948
|
+
[<img alt="kerueter" src="https://avatars.githubusercontent.com/u/16644743?v=4&s=117" width="117">](https://github.com/kerueter)[<img alt="ktwbc" src="https://avatars.githubusercontent.com/u/624611?v=4&s=117" width="117">](https://github.com/ktwbc)[<img alt="kohanian" src="https://avatars.githubusercontent.com/u/8570821?v=4&s=117" width="117">](https://github.com/kohanian)[<img alt="kyusungpark" src="https://avatars.githubusercontent.com/u/58890841?v=4&s=117" width="117">](https://github.com/kyusungpark)[<img alt="lalifraco-devspark" src="https://avatars.githubusercontent.com/u/13339324?v=4&s=117" width="117">](https://github.com/lalifraco-devspark)
|
|
934
949
|
|
|
935
|
-
[<img alt="
|
|
950
|
+
[<img alt="DynamicSTOP" src="https://avatars.githubusercontent.com/u/9434504?v=4&s=117" width="117">](https://github.com/DynamicSTOP)[<img alt="brazilianbytes" src="https://avatars.githubusercontent.com/u/1900570?v=4&s=117" width="117">](https://github.com/brazilianbytes)[<img alt="m4i3r" src="https://avatars.githubusercontent.com/u/106649997?v=4&s=117" width="117">](https://github.com/m4i3r)[<img alt="Marcel-G" src="https://avatars.githubusercontent.com/u/2770666?v=4&s=117" width="117">](https://github.com/Marcel-G)[<img alt="neverendingqs" src="https://avatars.githubusercontent.com/u/8854618?v=4&s=117" width="117">](https://github.com/neverendingqs)
|
|
936
951
|
|
|
937
|
-
[<img alt="
|
|
952
|
+
[<img alt="msjonker" src="https://avatars.githubusercontent.com/u/781683?v=4&s=117" width="117">](https://github.com/msjonker)[<img alt="Takeno" src="https://avatars.githubusercontent.com/u/1499063?v=4&s=117" width="117">](https://github.com/Takeno)[<img alt="kelchm" src="https://avatars.githubusercontent.com/u/172301?v=4&s=117" width="117">](https://github.com/kelchm)[<img alt="mjmac" src="https://avatars.githubusercontent.com/u/83737?v=4&s=117" width="117">](https://github.com/mjmac)[<img alt="mohokh67" src="https://avatars.githubusercontent.com/u/10816168?v=4&s=117" width="117">](https://github.com/mohokh67)
|
|
938
953
|
|
|
939
|
-
[<img alt="
|
|
954
|
+
[<img alt="AlexHladin" src="https://avatars.githubusercontent.com/u/7945837?v=4&s=117" width="117">](https://github.com/AlexHladin)[<img alt="ojongerius" src="https://avatars.githubusercontent.com/u/1726055?v=4&s=117" width="117">](https://github.com/ojongerius)[<img alt="ericctsf" src="https://avatars.githubusercontent.com/u/42775388?v=4&s=117" width="117">](https://github.com/ericctsf)[<img alt="furipon308" src="https://avatars.githubusercontent.com/u/12597185?v=4&s=117" width="117">](https://github.com/furipon308)[<img alt="hsz" src="https://avatars.githubusercontent.com/u/108333?v=4&s=117" width="117">](https://github.com/hsz)
|
|
940
955
|
|
|
941
|
-
[<img alt="
|
|
956
|
+
[<img alt="jeffhall4" src="https://avatars.githubusercontent.com/u/14976795?v=4&s=117" width="117">](https://github.com/jeffhall4)[<img alt="jgilbert01" src="https://avatars.githubusercontent.com/u/1082126?v=4&s=117" width="117">](https://github.com/jgilbert01)[<img alt="polaris340" src="https://avatars.githubusercontent.com/u/2861192?v=4&s=117" width="117">](https://github.com/polaris340)[<img alt="khanguyen88" src="https://avatars.githubusercontent.com/u/26890183?v=4&s=117" width="117">](https://github.com/khanguyen88)[<img alt="kobanyan" src="https://avatars.githubusercontent.com/u/14950314?v=4&s=117" width="117">](https://github.com/kobanyan)
|
|
942
957
|
|
|
943
|
-
[<img alt="
|
|
958
|
+
[<img alt="livingmine" src="https://avatars.githubusercontent.com/u/7286614?v=4&s=117" width="117">](https://github.com/livingmine)[<img alt="lteacher" src="https://avatars.githubusercontent.com/u/6103860?v=4&s=117" width="117">](https://github.com/lteacher)[<img alt="martinmicunda" src="https://avatars.githubusercontent.com/u/1643606?v=4&s=117" width="117">](https://github.com/martinmicunda)[<img alt="nick-w-nick" src="https://avatars.githubusercontent.com/u/43578531?v=4&s=117" width="117">](https://github.com/nick-w-nick)[<img alt="nori3tsu" src="https://avatars.githubusercontent.com/u/379587?v=4&s=117" width="117">](https://github.com/nori3tsu)
|
|
944
959
|
|
|
945
|
-
[<img alt="
|
|
960
|
+
[<img alt="ppasmanik" src="https://avatars.githubusercontent.com/u/3534835?v=4&s=117" width="117">](https://github.com/ppasmanik)[<img alt="ryanzyy" src="https://avatars.githubusercontent.com/u/2299226?v=4&s=117" width="117">](https://github.com/ryanzyy)[<img alt="skhrapko-amplify" src="https://avatars.githubusercontent.com/u/103408480?v=4&s=117" width="117">](https://github.com/skhrapko-amplify)[<img alt="tom-stclair" src="https://avatars.githubusercontent.com/u/96192789?v=4&s=117" width="117">](https://github.com/tom-stclair)[<img alt="tveal" src="https://avatars.githubusercontent.com/u/42526035?v=4&s=117" width="117">](https://github.com/tveal)
|
|
946
961
|
|
|
947
|
-
[<img alt="
|
|
962
|
+
[<img alt="constb" src="https://avatars.githubusercontent.com/u/1006766?v=4&s=117" width="117">](https://github.com/constb)[<img alt="dfffpoi" src="https://avatars.githubusercontent.com/u/1043331?v=4&s=117" width="117">](https://github.com/dfffpoi)[<img alt="stesie" src="https://avatars.githubusercontent.com/u/113068?v=4&s=117" width="117">](https://github.com/stesie)[<img alt="stevemao" src="https://avatars.githubusercontent.com/u/6316590?v=4&s=117" width="117">](https://github.com/stevemao)[<img alt="trsrm" src="https://avatars.githubusercontent.com/u/1160872?v=4&s=117" width="117">](https://github.com/trsrm)
|
|
948
963
|
|
|
949
|
-
[<img alt="
|
|
964
|
+
[<img alt="ittus" src="https://avatars.githubusercontent.com/u/5120965?v=4&s=117" width="117">](https://github.com/ittus)[<img alt="Ankcorn" src="https://avatars.githubusercontent.com/u/7361428?v=4&s=117" width="117">](https://github.com/Ankcorn)[<img alt="expoe-codebuild" src="https://avatars.githubusercontent.com/u/38527465?v=4&s=117" width="117">](https://github.com/expoe-codebuild)[<img alt="tiagogoncalves89" src="https://avatars.githubusercontent.com/u/55122?v=4&s=117" width="117">](https://github.com/tiagogoncalves89)[<img alt="czubocha" src="https://avatars.githubusercontent.com/u/23511767?v=4&s=117" width="117">](https://github.com/czubocha)
|
|
950
965
|
|
|
951
|
-
[<img alt="
|
|
966
|
+
[<img alt="tuanmh" src="https://avatars.githubusercontent.com/u/3193353?v=4&s=117" width="117">](https://github.com/tuanmh)[<img alt="Gregoirevda" src="https://avatars.githubusercontent.com/u/12223738?v=4&s=117" width="117">](https://github.com/Gregoirevda)[<img alt="vivganes" src="https://avatars.githubusercontent.com/u/2035886?v=4&s=117" width="117">](https://github.com/vivganes)[<img alt="gcphost" src="https://avatars.githubusercontent.com/u/1173636?v=4&s=117" width="117">](https://github.com/gcphost)[<img alt="YaroslavApatiev" src="https://avatars.githubusercontent.com/u/24372409?v=4&s=117" width="117">](https://github.com/YaroslavApatiev)
|
|
952
967
|
|
|
953
|
-
[<img alt="
|
|
968
|
+
[<img alt="yo-ga" src="https://avatars.githubusercontent.com/u/9553773?v=4&s=117" width="117">](https://github.com/yo-ga)[<img alt="zacacollier" src="https://avatars.githubusercontent.com/u/18710669?v=4&s=117" width="117">](https://github.com/zacacollier)[<img alt="akinboboye" src="https://avatars.githubusercontent.com/u/60622084?v=4&s=117" width="117">](https://github.com/akinboboye)[<img alt="allenhartwig" src="https://avatars.githubusercontent.com/u/1261521?v=4&s=117" width="117">](https://github.com/allenhartwig)[<img alt="ctbaird" src="https://avatars.githubusercontent.com/u/37962844?v=4&s=117" width="117">](https://github.com/ctbaird)
|
|
954
969
|
|
|
955
|
-
[<img alt="
|
|
970
|
+
[<img alt="dependabot[bot]" src="https://avatars.githubusercontent.com/in/29110?v=4&s=117" width="117">](https://github.com/apps/dependabot)[<img alt="bchew" src="https://avatars.githubusercontent.com/u/818316?v=4&s=117" width="117">](https://github.com/bchew)[<img alt="BorjaMacedo" src="https://avatars.githubusercontent.com/u/16381759?v=4&s=117" width="117">](https://github.com/BorjaMacedo)[<img alt="BrandonE" src="https://avatars.githubusercontent.com/u/542245?v=4&s=117" width="117">](https://github.com/BrandonE)[<img alt="guerrerocarlos" src="https://avatars.githubusercontent.com/u/82532?v=4&s=117" width="117">](https://github.com/guerrerocarlos)
|
|
956
971
|
|
|
957
|
-
[<img alt="
|
|
972
|
+
[<img alt="icarus-sullivan" src="https://avatars.githubusercontent.com/u/17626168?v=4&s=117" width="117">](https://github.com/icarus-sullivan)[<img alt="christophgysin" src="https://avatars.githubusercontent.com/u/527924?v=4&s=117" width="117">](https://github.com/christophgysin)[<img alt="cdubz" src="https://avatars.githubusercontent.com/u/10456740?v=4&s=117" width="117">](https://github.com/cdubz)[<img alt="corwinm" src="https://avatars.githubusercontent.com/u/7642548?v=4&s=117" width="117">](https://github.com/corwinm)[<img alt="danmactough" src="https://avatars.githubusercontent.com/u/357481?v=4&s=117" width="117">](https://github.com/danmactough)
|
|
958
973
|
|
|
959
|
-
[<img alt="
|
|
974
|
+
[<img alt="GeneralistDev" src="https://avatars.githubusercontent.com/u/1705096?v=4&s=117" width="117">](https://github.com/GeneralistDev)[<img alt="designfrontier" src="https://avatars.githubusercontent.com/u/422540?v=4&s=117" width="117">](https://github.com/designfrontier)[<img alt="daniel0707" src="https://avatars.githubusercontent.com/u/22343156?v=4&s=117" width="117">](https://github.com/daniel0707)[<img alt="dnicolson" src="https://avatars.githubusercontent.com/u/2276355?v=4&s=117" width="117">](https://github.com/dnicolson)[<img alt="dbunker" src="https://avatars.githubusercontent.com/u/751580?v=4&s=117" width="117">](https://github.com/dbunker)
|
|
960
975
|
|
|
961
|
-
[<img alt="
|
|
976
|
+
[<img alt="dobrynin" src="https://avatars.githubusercontent.com/u/12061016?v=4&s=117" width="117">](https://github.com/dobrynin)[<img alt="DavideSegullo" src="https://avatars.githubusercontent.com/u/17269969?v=4&s=117" width="117">](https://github.com/DavideSegullo)[<img alt="domaslasauskas" src="https://avatars.githubusercontent.com/u/2464675?v=4&s=117" width="117">](https://github.com/domaslasauskas)[<img alt="enolan" src="https://avatars.githubusercontent.com/u/61517?v=4&s=117" width="117">](https://github.com/enolan)[<img alt="EduardMcfly" src="https://avatars.githubusercontent.com/u/16842163?v=4&s=117" width="117">](https://github.com/EduardMcfly)
|
|
962
977
|
|
|
963
|
-
[<img alt="
|
|
978
|
+
[<img alt="iansu" src="https://avatars.githubusercontent.com/u/433725?v=4&s=117" width="117">](https://github.com/iansu)[<img alt="adamldoyle" src="https://avatars.githubusercontent.com/u/86401?v=4&s=117" width="117">](https://github.com/adamldoyle)[<img alt="thejuan" src="https://avatars.githubusercontent.com/u/329807?v=4&s=117" width="117">](https://github.com/thejuan)[<img alt="adam-nielsen" src="https://avatars.githubusercontent.com/u/278772?v=4&s=117" width="117">](https://github.com/adam-nielsen)[<img alt="againer" src="https://avatars.githubusercontent.com/u/509709?v=4&s=117" width="117">](https://github.com/againer)
|
|
964
979
|
|
|
965
|
-
[<img alt="
|
|
980
|
+
[<img alt="AlbertXingZhang" src="https://avatars.githubusercontent.com/u/12808025?v=4&s=117" width="117">](https://github.com/AlbertXingZhang)[<img alt="aldenquimby" src="https://avatars.githubusercontent.com/u/2145098?v=4&s=117" width="117">](https://github.com/aldenquimby)[<img alt="abianco-doxee" src="https://avatars.githubusercontent.com/u/56639478?v=4&s=117" width="117">](https://github.com/abianco-doxee)[<img alt="koterpillar" src="https://avatars.githubusercontent.com/u/140276?v=4&s=117" width="117">](https://github.com/koterpillar)[<img alt="aliclark" src="https://avatars.githubusercontent.com/u/85300?v=4&s=117" width="117">](https://github.com/aliclark)
|
|
966
981
|
|
|
967
|
-
[<img alt="
|
|
982
|
+
[<img alt="andersem" src="https://avatars.githubusercontent.com/u/509817?v=4&s=117" width="117">](https://github.com/andersem)[<img alt="triptec" src="https://avatars.githubusercontent.com/u/240159?v=4&s=117" width="117">](https://github.com/triptec)[<img alt="m0ppers" src="https://avatars.githubusercontent.com/u/819421?v=4&s=117" width="117">](https://github.com/m0ppers)[<img alt="cspotcode" src="https://avatars.githubusercontent.com/u/376504?v=4&s=117" width="117">](https://github.com/cspotcode)[<img alt="AndrewCEmil" src="https://avatars.githubusercontent.com/u/2167475?v=4&s=117" width="117">](https://github.com/AndrewCEmil)
|
|
968
983
|
|
|
969
|
-
[<img alt="
|
|
984
|
+
[<img alt="mapsi" src="https://avatars.githubusercontent.com/u/516735?v=4&s=117" width="117">](https://github.com/mapsi)[<img alt="aliatsis" src="https://avatars.githubusercontent.com/u/4140524?v=4&s=117" width="117">](https://github.com/aliatsis)[<img alt="akaila" src="https://avatars.githubusercontent.com/u/484181?v=4&s=117" width="117">](https://github.com/akaila)[<img alt="austencollins" src="https://avatars.githubusercontent.com/u/2752551?v=4&s=117" width="117">](https://github.com/austencollins)[<img alt="austin-payne" src="https://avatars.githubusercontent.com/u/29075091?v=4&s=117" width="117">](https://github.com/austin-payne)
|
|
970
985
|
|
|
971
|
-
[<img alt="
|
|
986
|
+
[<img alt="BenjaminBergerM" src="https://avatars.githubusercontent.com/u/50329833?v=4&s=117" width="117">](https://github.com/BenjaminBergerM)[<img alt="gdinn" src="https://avatars.githubusercontent.com/u/19908659?v=4&s=117" width="117">](https://github.com/gdinn)[<img alt="MEGApixel23" src="https://avatars.githubusercontent.com/u/4102786?v=4&s=117" width="117">](https://github.com/MEGApixel23)[<img alt="idmontie" src="https://avatars.githubusercontent.com/u/412382?v=4&s=117" width="117">](https://github.com/idmontie)[<img alt="ihendriks" src="https://avatars.githubusercontent.com/u/7311659?v=4&s=117" width="117">](https://github.com/ihendriks)
|
|
972
987
|
|
|
973
|
-
[<img alt="
|
|
988
|
+
[<img alt="jacintoArias" src="https://avatars.githubusercontent.com/u/7511199?v=4&s=117" width="117">](https://github.com/jacintoArias)[<img alt="JacekDuszenko" src="https://avatars.githubusercontent.com/u/24210015?v=4&s=117" width="117">](https://github.com/JacekDuszenko)[<img alt="jgrigg" src="https://avatars.githubusercontent.com/u/12800024?v=4&s=117" width="117">](https://github.com/jgrigg)[<img alt="jankdc" src="https://avatars.githubusercontent.com/u/8384002?v=4&s=117" width="117">](https://github.com/jankdc)[<img alt="janicduplessis" src="https://avatars.githubusercontent.com/u/2677334?v=4&s=117" width="117">](https://github.com/janicduplessis)
|
|
974
989
|
|
|
975
|
-
[<img alt="
|
|
990
|
+
[<img alt="jsnajdr" src="https://avatars.githubusercontent.com/u/664258?v=4&s=117" width="117">](https://github.com/jsnajdr)[<img alt="horyd" src="https://avatars.githubusercontent.com/u/916414?v=4&s=117" width="117">](https://github.com/horyd)[<img alt="jasonfungsing" src="https://avatars.githubusercontent.com/u/1302364?v=4&s=117" width="117">](https://github.com/jasonfungsing)[<img alt="jaydp17" src="https://avatars.githubusercontent.com/u/1743425?v=4&s=117" width="117">](https://github.com/jaydp17)[<img alt="jeremygiberson" src="https://avatars.githubusercontent.com/u/487411?v=4&s=117" width="117">](https://github.com/jeremygiberson)
|
|
976
991
|
|
|
977
|
-
[<img alt="
|
|
992
|
+
[<img alt="josephwarrick" src="https://avatars.githubusercontent.com/u/5392984?v=4&s=117" width="117">](https://github.com/josephwarrick)[<img alt="jlsjonas" src="https://avatars.githubusercontent.com/u/932193?v=4&s=117" width="117">](https://github.com/jlsjonas)[<img alt="jonathonadams" src="https://avatars.githubusercontent.com/u/24870903?v=4&s=117" width="117">](https://github.com/jonathonadams)[<img alt="joostfarla" src="https://avatars.githubusercontent.com/u/851863?v=4&s=117" width="117">](https://github.com/joostfarla)[<img alt="TheTeaCat" src="https://avatars.githubusercontent.com/u/20339741?v=4&s=117" width="117">](https://github.com/TheTeaCat)
|
|
978
993
|
|
|
979
|
-
[<img alt="
|
|
994
|
+
[<img alt="eeroniemi" src="https://avatars.githubusercontent.com/u/1384231?v=4&s=117" width="117">](https://github.com/eeroniemi)[<img alt="minibikini" src="https://avatars.githubusercontent.com/u/439309?v=4&s=117" width="117">](https://github.com/minibikini)[<img alt="em0ney" src="https://avatars.githubusercontent.com/u/5679658?v=4&s=117" width="117">](https://github.com/em0ney)[<img alt="webdeveric" src="https://avatars.githubusercontent.com/u/1823514?v=4&s=117" width="117">](https://github.com/webdeveric)[<img alt="ericr3r" src="https://avatars.githubusercontent.com/u/792171?v=4&s=117" width="117">](https://github.com/ericr3r)
|
|
980
995
|
|
|
981
|
-
[<img alt="
|
|
996
|
+
[<img alt="fernyettheplant" src="https://avatars.githubusercontent.com/u/3887243?v=4&s=117" width="117">](https://github.com/fernyettheplant)[<img alt="fernandomoraes" src="https://avatars.githubusercontent.com/u/2366763?v=4&s=117" width="117">](https://github.com/fernandomoraes)[<img alt="panva" src="https://avatars.githubusercontent.com/u/241506?v=4&s=117" width="117">](https://github.com/panva)[<img alt="Edweis" src="https://avatars.githubusercontent.com/u/18052624?v=4&s=117" width="117">](https://github.com/Edweis)[<img alt="frodeaa" src="https://avatars.githubusercontent.com/u/45172?v=4&s=117" width="117">](https://github.com/frodeaa)
|
|
982
997
|
|
|
983
|
-
[<img alt="
|
|
998
|
+
[<img alt="gbroques" src="https://avatars.githubusercontent.com/u/12969835?v=4&s=117" width="117">](https://github.com/gbroques)[<img alt="ganey" src="https://avatars.githubusercontent.com/u/1401832?v=4&s=117" width="117">](https://github.com/ganey)[<img alt="geoffmanningcleartrace" src="https://avatars.githubusercontent.com/u/101125585?v=4&s=117" width="117">](https://github.com/geoffmanningcleartrace)[<img alt="grakic-glopal" src="https://avatars.githubusercontent.com/u/118749735?v=4&s=117" width="117">](https://github.com/grakic-glopal)[<img alt="guillaume" src="https://avatars.githubusercontent.com/u/368?v=4&s=117" width="117">](https://github.com/guillaume)
|
|
984
999
|
|
|
985
|
-
[<img alt="mebibou" src="https://avatars.githubusercontent.com/u/305342?v=4&s=117" width="117">](https://github.com/mebibou)[<img alt="balassy" src="https://avatars.githubusercontent.com/u/1872777?v=4&s=117" width="117">](https://github.com/balassy)[<img alt="bayoudhi" src="https://avatars.githubusercontent.com/u/3085156?v=4&s=117" width="117">](https://github.com/bayoudhi)[<img alt="enapupe" src="https://avatars.githubusercontent.com/u/291082?v=4&s=117" width="117">](https://github.com/enapupe)[<img alt="aardvarkk" src="https://avatars.githubusercontent.com/u/1251092?v=4&s=117" width="117">](https://github.com/aardvarkk)
|
|
1000
|
+
[<img alt="mebibou" src="https://avatars.githubusercontent.com/u/305342?v=4&s=117" width="117">](https://github.com/mebibou)[<img alt="balassy" src="https://avatars.githubusercontent.com/u/1872777?v=4&s=117" width="117">](https://github.com/balassy)[<img alt="bayoudhi" src="https://avatars.githubusercontent.com/u/3085156?v=4&s=117" width="117">](https://github.com/bayoudhi)[<img alt="enapupe" src="https://avatars.githubusercontent.com/u/291082?v=4&s=117" width="117">](https://github.com/enapupe)[<img alt="aardvarkk" src="https://avatars.githubusercontent.com/u/1251092?v=4&s=117" width="117">](https://github.com/aardvarkk)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "serverless-offline",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.6.0",
|
|
4
4
|
"description": "Emulate AWS λ and API Gateway locally when developing your Serverless project",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"exports": {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"code-quality": "npm run prettier && npm run lint",
|
|
14
14
|
"lint": "eslint .",
|
|
15
15
|
"lint:fix": "eslint . --fix",
|
|
16
|
-
"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 --
|
|
16
|
+
"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 --sortOrder desc > contributors.md",
|
|
17
17
|
"prepare-release": "commit-and-tag-version && prettier --write CHANGELOG.md",
|
|
18
18
|
"prepublishOnly": "npm run lint",
|
|
19
19
|
"prettier": "prettier --check .",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
],
|
|
50
50
|
"author": "David Hérault <dherault@gmail.com> (https://github.com/dherault)",
|
|
51
51
|
"engines": {
|
|
52
|
-
"node": ">=
|
|
52
|
+
"node": ">=20.0.0"
|
|
53
53
|
},
|
|
54
54
|
"commit-and-tag-version": {
|
|
55
55
|
"skip": {
|
|
@@ -76,47 +76,46 @@
|
|
|
76
76
|
]
|
|
77
77
|
},
|
|
78
78
|
"dependencies": {
|
|
79
|
-
"@aws-sdk/client-lambda": "^3.
|
|
79
|
+
"@aws-sdk/client-lambda": "^3.1045.0",
|
|
80
80
|
"@hapi/boom": "^10.0.1",
|
|
81
81
|
"@hapi/h2o2": "^10.0.4",
|
|
82
|
-
"@hapi/hapi": "^21.
|
|
82
|
+
"@hapi/hapi": "^21.4.9",
|
|
83
83
|
"array-unflat-js": "^0.1.3",
|
|
84
84
|
"boxen": "^7.1.1",
|
|
85
|
-
"chalk": "^5.
|
|
85
|
+
"chalk": "^5.6.2",
|
|
86
86
|
"desm": "^1.3.1",
|
|
87
87
|
"execa": "^8.0.1",
|
|
88
|
-
"
|
|
89
|
-
"is-wsl": "^3.1.0",
|
|
88
|
+
"is-wsl": "^3.1.1",
|
|
90
89
|
"java-invoke-local": "0.0.6",
|
|
91
90
|
"jose": "^5.7.0",
|
|
92
91
|
"js-string-escape": "^1.0.1",
|
|
93
|
-
"jsonpath-plus": "^10.
|
|
94
|
-
"jsonschema": "^1.
|
|
92
|
+
"jsonpath-plus": "^10.4.0",
|
|
93
|
+
"jsonschema": "^1.5.0",
|
|
95
94
|
"jszip": "^3.10.1",
|
|
96
|
-
"luxon": "^3.
|
|
95
|
+
"luxon": "^3.7.2",
|
|
97
96
|
"nock": "^13.5.6",
|
|
98
97
|
"node-fetch": "^3.3.2",
|
|
99
98
|
"node-schedule": "^2.1.1",
|
|
100
99
|
"p-memoize": "^7.1.1",
|
|
101
100
|
"tree-kill": "^1.2.2",
|
|
102
|
-
"tsx": "^4.
|
|
103
|
-
"velocityjs": "^2.
|
|
104
|
-
"ws": "^8.
|
|
101
|
+
"tsx": "^4.21.0",
|
|
102
|
+
"velocityjs": "^2.1.6",
|
|
103
|
+
"ws": "^8.20.0"
|
|
105
104
|
},
|
|
106
105
|
"devDependencies": {
|
|
107
|
-
"@istanbuljs/esm-loader-hook": "^0.
|
|
106
|
+
"@istanbuljs/esm-loader-hook": "^0.3.0",
|
|
108
107
|
"archiver": "^7.0.1",
|
|
109
|
-
"commit-and-tag-version": "^12.
|
|
108
|
+
"commit-and-tag-version": "^12.7.3",
|
|
110
109
|
"eslint": "^8.57.0",
|
|
111
110
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
112
111
|
"eslint-config-prettier": "^9.1.0",
|
|
113
|
-
"eslint-plugin-import": "^2.
|
|
114
|
-
"eslint-plugin-prettier": "^5.
|
|
112
|
+
"eslint-plugin-import": "^2.32.0",
|
|
113
|
+
"eslint-plugin-prettier": "^5.5.5",
|
|
115
114
|
"eslint-plugin-unicorn": "^54.0.0",
|
|
116
115
|
"mocha": "^10.7.3",
|
|
117
116
|
"nyc": "^17.0.0",
|
|
118
|
-
"prettier": "^3.
|
|
119
|
-
"serverless": "^4.
|
|
117
|
+
"prettier": "^3.8.3",
|
|
118
|
+
"serverless": "^4.35.1"
|
|
120
119
|
},
|
|
121
120
|
"peerDependencies": {
|
|
122
121
|
"serverless": "^4.0.0"
|
package/src/config/constants.js
CHANGED
|
@@ -4,7 +4,7 @@ export const BASE_URL_PLACEHOLDER = "http://example"
|
|
|
4
4
|
|
|
5
5
|
export const CUSTOM_OPTION = "serverless-offline"
|
|
6
6
|
|
|
7
|
-
export const DEFAULT_LAMBDA_RUNTIME = "
|
|
7
|
+
export const DEFAULT_LAMBDA_RUNTIME = "nodejs20.x"
|
|
8
8
|
|
|
9
9
|
export const DEFAULT_LAMBDA_ARCHITECTURE = "arm64"
|
|
10
10
|
|
|
@@ -11,19 +11,20 @@ const X86_64 = "x86_64"
|
|
|
11
11
|
const ARM64 = "arm64"
|
|
12
12
|
|
|
13
13
|
export const supportedRuntimesArchitecture = {
|
|
14
|
-
"nodejs14.x": [ARM64, X86_64],
|
|
15
|
-
"nodejs16.x": [ARM64, X86_64],
|
|
16
|
-
"nodejs18.x": [ARM64, X86_64],
|
|
17
14
|
"nodejs20.x": [ARM64, X86_64],
|
|
18
15
|
"nodejs22.x": [ARM64, X86_64],
|
|
16
|
+
"nodejs24.x": [ARM64, X86_64],
|
|
19
17
|
"python3.7": [X86_64],
|
|
20
18
|
"python3.8": [ARM64, X86_64],
|
|
21
19
|
"python3.9": [ARM64, X86_64],
|
|
22
20
|
"python3.10": [ARM64, X86_64],
|
|
23
21
|
"python3.11": [ARM64, X86_64],
|
|
24
22
|
"python3.12": [ARM64, X86_64],
|
|
23
|
+
"python3.13": [ARM64, X86_64],
|
|
25
24
|
"ruby2.7": [ARM64, X86_64],
|
|
26
25
|
"ruby3.2": [ARM64, X86_64],
|
|
26
|
+
"ruby3.3": [ARM64, X86_64],
|
|
27
|
+
"ruby3.4": [ARM64, X86_64],
|
|
27
28
|
java8: [X86_64],
|
|
28
29
|
"java8.al2": [ARM64, X86_64],
|
|
29
30
|
java11: [ARM64, X86_64],
|
|
@@ -44,11 +45,9 @@ export const supportedJava = new Set(["java8", "java8.al2", "java11", "java17"])
|
|
|
44
45
|
|
|
45
46
|
// NODE.JS
|
|
46
47
|
export const supportedNodejs = new Set([
|
|
47
|
-
"nodejs14.x",
|
|
48
|
-
"nodejs16.x",
|
|
49
|
-
"nodejs18.x",
|
|
50
48
|
"nodejs20.x",
|
|
51
49
|
"nodejs22.x",
|
|
50
|
+
"nodejs24.x",
|
|
52
51
|
])
|
|
53
52
|
|
|
54
53
|
// PROVIDED
|
|
@@ -66,10 +65,16 @@ export const supportedPython = new Set([
|
|
|
66
65
|
"python3.10",
|
|
67
66
|
"python3.11",
|
|
68
67
|
"python3.12",
|
|
68
|
+
"python3.13",
|
|
69
69
|
])
|
|
70
70
|
|
|
71
71
|
// RUBY
|
|
72
|
-
export const supportedRuby = new Set([
|
|
72
|
+
export const supportedRuby = new Set([
|
|
73
|
+
"ruby2.7",
|
|
74
|
+
"ruby3.2",
|
|
75
|
+
"ruby3.3",
|
|
76
|
+
"ruby3.4",
|
|
77
|
+
])
|
|
73
78
|
|
|
74
79
|
export const supportedRuntimes = new Set([
|
|
75
80
|
// ...supportedDotnetcore,
|
|
@@ -294,10 +294,11 @@ export default class HttpServer {
|
|
|
294
294
|
}
|
|
295
295
|
|
|
296
296
|
createRoutes(functionKey, albEvent) {
|
|
297
|
-
let
|
|
297
|
+
let methods = ["ANY"]
|
|
298
298
|
if ((albEvent.conditions.method || []).length > 0) {
|
|
299
|
-
|
|
299
|
+
methods = albEvent.conditions.method.map((m) => m.toUpperCase())
|
|
300
300
|
}
|
|
301
|
+
methods = methods.includes("ANY") ? ["ANY"] : methods
|
|
301
302
|
|
|
302
303
|
const path = albEvent.conditions.path[0]
|
|
303
304
|
const hapiPath = generateAlbHapiPath(path, this.#options, this.#serverless)
|
|
@@ -306,51 +307,53 @@ export default class HttpServer {
|
|
|
306
307
|
const { host, albPort, httpsProtocol } = this.#options
|
|
307
308
|
const server = `${httpsProtocol ? "https" : "http"}://${host}:${albPort}`
|
|
308
309
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
310
|
+
methods.forEach((method) => {
|
|
311
|
+
this.#terminalInfo.push({
|
|
312
|
+
invokePath: `/2015-03-31/functions/${functionKey}/invocations`,
|
|
313
|
+
method,
|
|
314
|
+
path: hapiPath,
|
|
315
|
+
server,
|
|
316
|
+
stage: this.#options.noPrependStageInUrl ? null : stage,
|
|
317
|
+
})
|
|
316
318
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
319
|
+
const hapiMethod = method === "ANY" ? "*" : method
|
|
320
|
+
const hapiOptions = {
|
|
321
|
+
response: {
|
|
322
|
+
emptyStatusCode: 200,
|
|
323
|
+
},
|
|
324
|
+
}
|
|
323
325
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
326
|
+
// skip HEAD routes as hapi will fail with 'Method name not allowed: HEAD ...'
|
|
327
|
+
// for more details, check https://github.com/dherault/serverless-offline/issues/204
|
|
328
|
+
if (hapiMethod === "HEAD") {
|
|
329
|
+
log.notice(
|
|
330
|
+
"HEAD method event detected. Skipping HAPI server route mapping",
|
|
331
|
+
)
|
|
330
332
|
|
|
331
|
-
|
|
332
|
-
|
|
333
|
+
return
|
|
334
|
+
}
|
|
333
335
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
336
|
+
if (hapiMethod !== "HEAD" && hapiMethod !== "GET") {
|
|
337
|
+
// maxBytes: Increase request size from 1MB default limit to 10MB.
|
|
338
|
+
// Cf AWS API GW payload limits.
|
|
339
|
+
hapiOptions.payload = {
|
|
340
|
+
maxBytes: 1024 * 1024 * 10,
|
|
341
|
+
parse: false,
|
|
342
|
+
}
|
|
340
343
|
}
|
|
341
|
-
}
|
|
342
344
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
345
|
+
const hapiHandler = this.#createHapiHandler({
|
|
346
|
+
functionKey,
|
|
347
|
+
method,
|
|
348
|
+
stage,
|
|
349
|
+
})
|
|
348
350
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
351
|
+
this.#server.route({
|
|
352
|
+
handler: hapiHandler,
|
|
353
|
+
method: hapiMethod,
|
|
354
|
+
options: hapiOptions,
|
|
355
|
+
path: hapiPath,
|
|
356
|
+
})
|
|
354
357
|
})
|
|
355
358
|
}
|
|
356
359
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import crypto from "node:crypto"
|
|
2
|
-
import { readFile, writeFile } from "node:fs/promises"
|
|
2
|
+
import { mkdir, readFile, rm, writeFile } from "node:fs/promises"
|
|
3
3
|
import { dirname, join, resolve } from "node:path"
|
|
4
4
|
import process from "node:process"
|
|
5
5
|
import { performance } from "node:perf_hooks"
|
|
6
6
|
import { setTimeout } from "node:timers/promises"
|
|
7
|
-
import { emptyDir, ensureDir, remove } from "fs-extra"
|
|
8
7
|
import jszip from "jszip"
|
|
9
8
|
import { log } from "../utils/log.js"
|
|
9
|
+
import renderIntrinsicFunction from "../utils/renderIntrinsicFunction.js"
|
|
10
10
|
import HandlerRunner from "./handler-runner/index.js"
|
|
11
11
|
import LambdaContext from "./LambdaContext.js"
|
|
12
12
|
import {
|
|
@@ -114,8 +114,8 @@ export default class LambdaFunction {
|
|
|
114
114
|
entries(process.env).filter(([key]) => key.startsWith("AWS_")),
|
|
115
115
|
)),
|
|
116
116
|
...this.#getAwsEnvVars(),
|
|
117
|
-
...provider.environment,
|
|
118
|
-
...functionDefinition.environment,
|
|
117
|
+
...renderIntrinsicFunction(provider.environment),
|
|
118
|
+
...renderIntrinsicFunction(functionDefinition.environment),
|
|
119
119
|
IS_OFFLINE: "true",
|
|
120
120
|
}
|
|
121
121
|
|
|
@@ -225,7 +225,7 @@ export default class LambdaFunction {
|
|
|
225
225
|
// TODO console.log('lambda cleanup')
|
|
226
226
|
await this.#handlerRunner.cleanup()
|
|
227
227
|
if (this.#lambdaDir) {
|
|
228
|
-
await
|
|
228
|
+
await rm(this.#lambdaDir, { force: true, recursive: true })
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
231
|
|
|
@@ -245,7 +245,8 @@ export default class LambdaFunction {
|
|
|
245
245
|
return
|
|
246
246
|
}
|
|
247
247
|
|
|
248
|
-
await
|
|
248
|
+
await rm(this.#codeDir, { force: true, recursive: true })
|
|
249
|
+
await mkdir(this.#codeDir, { recursive: true })
|
|
249
250
|
|
|
250
251
|
const data = await readFile(this.#artifact)
|
|
251
252
|
const zip = await jszip.loadAsync(data)
|
|
@@ -256,7 +257,7 @@ export default class LambdaFunction {
|
|
|
256
257
|
if (filename.endsWith("/")) {
|
|
257
258
|
return undefined
|
|
258
259
|
}
|
|
259
|
-
await
|
|
260
|
+
await mkdir(join(this.#codeDir, dirname(filename)), { recursive: true })
|
|
260
261
|
return writeFile(join(this.#codeDir, filename), fileData, {
|
|
261
262
|
mode: jsZipObj.unixPermissions,
|
|
262
263
|
})
|
|
@@ -52,16 +52,14 @@ export default class HandlerRunner {
|
|
|
52
52
|
|
|
53
53
|
if (supportedNodejs.has(runtime)) {
|
|
54
54
|
if (useInProcess) {
|
|
55
|
-
const { default: InProcessRunner } =
|
|
56
|
-
"./in-process-runner/index.js"
|
|
57
|
-
)
|
|
55
|
+
const { default: InProcessRunner } =
|
|
56
|
+
await import("./in-process-runner/index.js")
|
|
58
57
|
|
|
59
58
|
return new InProcessRunner(this.#funOptions, this.#env)
|
|
60
59
|
}
|
|
61
60
|
|
|
62
|
-
const { default: WorkerThreadRunner } =
|
|
63
|
-
"./worker-thread-runner/index.js"
|
|
64
|
-
)
|
|
61
|
+
const { default: WorkerThreadRunner } =
|
|
62
|
+
await import("./worker-thread-runner/index.js")
|
|
65
63
|
|
|
66
64
|
return new WorkerThreadRunner(this.#funOptions, this.#env)
|
|
67
65
|
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { createHash } from "node:crypto"
|
|
2
|
-
import { createWriteStream } from "node:fs"
|
|
3
|
-
import { readFile, unlink, writeFile } from "node:fs/promises"
|
|
2
|
+
import { createWriteStream, existsSync } from "node:fs"
|
|
3
|
+
import { mkdir, readFile, unlink, writeFile } from "node:fs/promises"
|
|
4
4
|
import { platform } from "node:os"
|
|
5
5
|
import { dirname, join, sep } from "node:path"
|
|
6
6
|
import { LambdaClient, GetLayerVersionCommand } from "@aws-sdk/client-lambda"
|
|
7
7
|
import { execa } from "execa"
|
|
8
|
-
import { ensureDir, pathExists } from "fs-extra"
|
|
9
8
|
import isWsl from "is-wsl"
|
|
10
9
|
import jszip from "jszip"
|
|
11
10
|
import { log, progress } from "../../../utils/log.js"
|
|
@@ -103,7 +102,7 @@ export default class DockerContainer {
|
|
|
103
102
|
|
|
104
103
|
layerDir = join(layerDir, this.#getLayersSha256())
|
|
105
104
|
|
|
106
|
-
if (
|
|
105
|
+
if (existsSync(layerDir)) {
|
|
107
106
|
log.verbose(
|
|
108
107
|
`Layers already exist for this function. Skipping download.`,
|
|
109
108
|
)
|
|
@@ -143,7 +142,7 @@ export default class DockerContainer {
|
|
|
143
142
|
} else {
|
|
144
143
|
log.debug("Looking for bootstrap file")
|
|
145
144
|
const bootstrapDir = join(this.#servicePath, "bootstrap")
|
|
146
|
-
if (
|
|
145
|
+
if (existsSync(bootstrapDir)) {
|
|
147
146
|
log.debug(`Found bootstrap file at ${bootstrapDir}`)
|
|
148
147
|
dockerArgs.push(
|
|
149
148
|
"-v",
|
|
@@ -262,7 +261,7 @@ export default class DockerContainer {
|
|
|
262
261
|
const { CodeSize: layerSize, Location: layerUrl } = layer.Content
|
|
263
262
|
// const layerSha = layer.Content.CodeSha256
|
|
264
263
|
|
|
265
|
-
await
|
|
264
|
+
await mkdir(layerDir, { recursive: true })
|
|
266
265
|
|
|
267
266
|
log.verbose(
|
|
268
267
|
`Retrieving "${layerName}": Downloading ${this.#formatBytes(
|
|
@@ -311,7 +310,7 @@ export default class DockerContainer {
|
|
|
311
310
|
if (filename.endsWith(sep)) {
|
|
312
311
|
return undefined
|
|
313
312
|
}
|
|
314
|
-
await
|
|
313
|
+
await mkdir(join(layerDir, dirname(filename)), { recursive: true })
|
|
315
314
|
return writeFile(join(layerDir, filename), fileData, {
|
|
316
315
|
mode: zip.files[filename].unixPermissions,
|
|
317
316
|
})
|
|
@@ -20,6 +20,7 @@ const fs = require("node:fs")
|
|
|
20
20
|
const process = require("node:process")
|
|
21
21
|
|
|
22
22
|
const { require: tsxRequire } = require(`tsx/cjs/api`)
|
|
23
|
+
const { tsImport } = require(`tsx/esm/api`)
|
|
23
24
|
const {
|
|
24
25
|
HandlerNotFound,
|
|
25
26
|
MalformedHandlerName,
|
|
@@ -136,10 +137,9 @@ function _hasFolderPackageJsonTypeModule(folder) {
|
|
|
136
137
|
}
|
|
137
138
|
|
|
138
139
|
function _hasPackageJsonTypeModule(file) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
? _hasFolderPackageJsonTypeModule(path.resolve(path.dirname(jsPath)))
|
|
140
|
+
const dir = path.dirname(file)
|
|
141
|
+
return fs.existsSync(dir)
|
|
142
|
+
? _hasFolderPackageJsonTypeModule(path.resolve(dir))
|
|
143
143
|
: false
|
|
144
144
|
}
|
|
145
145
|
|
|
@@ -175,13 +175,15 @@ async function _tryRequire(appRoot, moduleRoot, module) {
|
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
// If still not loaded, try .js, .mjs, .cjs and .ts in that order.
|
|
178
|
-
// Files ending with .js are loaded as ES modules when the nearest parent package.json
|
|
178
|
+
// Files ending with .js and .ts are loaded as ES modules when the nearest parent package.json
|
|
179
179
|
// file contains a top-level field "type" with a value of "module".
|
|
180
180
|
// https://nodejs.org/api/packages.html#packages_type
|
|
181
181
|
const loaded =
|
|
182
182
|
(pjHasModule && (await _tryAwaitImport(lambdaStylePath, ".js"))) ||
|
|
183
183
|
(await _tryAwaitImport(lambdaStylePath, ".mjs")) ||
|
|
184
184
|
_tryRequireFile(lambdaStylePath, ".cjs") ||
|
|
185
|
+
(pjHasModule &&
|
|
186
|
+
(await tsImport(`${lambdaStylePath}.ts`, `${lambdaStylePath}.ts`))) ||
|
|
185
187
|
tsxRequire(`${lambdaStylePath}.ts`, `${lambdaStylePath}.ts`)
|
|
186
188
|
if (loaded) {
|
|
187
189
|
return loaded
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export default function renderIntrinsicFunction(input) {
|
|
2
|
+
if (input === null || input === undefined) {
|
|
3
|
+
return input
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
if (typeof input === "string") {
|
|
7
|
+
return input
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
if (Array.isArray(input)) {
|
|
11
|
+
return input.map(renderIntrinsicFunction)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
if (typeof input === "object") {
|
|
15
|
+
const result = {}
|
|
16
|
+
for (const [key, value] of Object.entries(input)) {
|
|
17
|
+
if (key === "Fn::Join" || key === "!Join") {
|
|
18
|
+
const [delimiter, list] = value
|
|
19
|
+
return list.map(renderIntrinsicFunction).join(delimiter)
|
|
20
|
+
}
|
|
21
|
+
if (key === "Fn::Sub" || key === "!Sub") {
|
|
22
|
+
const [template, variables] = value
|
|
23
|
+
result[key] = template.replaceAll(/\${(.*?)}/g, (match, variable) => {
|
|
24
|
+
return variable in variables ? variables[variable] : match
|
|
25
|
+
})
|
|
26
|
+
return result[key]
|
|
27
|
+
}
|
|
28
|
+
result[key] = renderIntrinsicFunction(value)
|
|
29
|
+
}
|
|
30
|
+
return result
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return input
|
|
34
|
+
}
|