netlify-cli 15.6.0 → 15.7.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/npm-shrinkwrap.json +135 -136
- package/package.json +8 -7
- package/src/commands/dev/dev.mjs +6 -2
- package/src/commands/functions/functions-create.mjs +0 -4
- package/src/commands/functions/functions-invoke.mjs +1 -1
- package/src/commands/functions/functions-serve.mjs +5 -1
- package/src/commands/recipes/common.mjs +2 -2
- package/src/commands/serve/serve.mjs +4 -0
- package/src/lib/functions/runtimes/js/builders/zisi.mjs +66 -23
- package/src/lib/functions/runtimes/js/constants.mjs +1 -0
- package/src/lib/functions/runtimes/js/index.mjs +50 -7
- package/src/lib/functions/runtimes/js/worker.mjs +49 -0
- package/src/lib/functions/server.mjs +11 -4
- package/src/lib/functions/synchronous.mjs +2 -2
- package/src/utils/execa.mjs +0 -1
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "netlify-cli",
|
|
3
|
-
"version": "15.
|
|
3
|
+
"version": "15.7.0",
|
|
4
4
|
"lockfileVersion": 2,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "netlify-cli",
|
|
9
|
-
"version": "15.
|
|
9
|
+
"version": "15.7.0",
|
|
10
10
|
"hasInstallScript": true,
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@bugsnag/js": "7.20.2",
|
|
14
14
|
"@fastify/static": "6.10.2",
|
|
15
|
-
"@netlify/build": "29.12.
|
|
16
|
-
"@netlify/build-info": "7.0.
|
|
15
|
+
"@netlify/build": "29.12.8",
|
|
16
|
+
"@netlify/build-info": "7.0.8",
|
|
17
17
|
"@netlify/config": "20.5.1",
|
|
18
18
|
"@netlify/edge-bundler": "8.16.2",
|
|
19
19
|
"@netlify/framework-info": "9.8.10",
|
|
20
20
|
"@netlify/local-functions-proxy": "1.1.1",
|
|
21
|
-
"@netlify/
|
|
22
|
-
"@
|
|
21
|
+
"@netlify/serverless-functions-api": "1.5.1",
|
|
22
|
+
"@netlify/zip-it-and-ship-it": "9.10.0",
|
|
23
|
+
"@octokit/rest": "19.0.13",
|
|
23
24
|
"@skn0tt/lambda-local": "2.0.3",
|
|
24
25
|
"ansi-escapes": "6.2.0",
|
|
25
26
|
"ansi-styles": "6.2.1",
|
|
@@ -41,7 +42,7 @@
|
|
|
41
42
|
"copy-template-dir": "1.4.0",
|
|
42
43
|
"cron-parser": "4.8.1",
|
|
43
44
|
"debug": "4.3.4",
|
|
44
|
-
"decache": "4.6.
|
|
45
|
+
"decache": "4.6.2",
|
|
45
46
|
"dot-prop": "7.2.0",
|
|
46
47
|
"dotenv": "16.0.3",
|
|
47
48
|
"env-paths": "3.0.0",
|
|
@@ -100,7 +101,7 @@
|
|
|
100
101
|
"pump": "3.0.0",
|
|
101
102
|
"raw-body": "2.5.2",
|
|
102
103
|
"read-pkg-up": "9.1.0",
|
|
103
|
-
"semver": "7.5.
|
|
104
|
+
"semver": "7.5.3",
|
|
104
105
|
"source-map-support": "0.5.21",
|
|
105
106
|
"strip-ansi-control-characters": "2.0.0",
|
|
106
107
|
"tabtab": "3.0.2",
|
|
@@ -650,20 +651,20 @@
|
|
|
650
651
|
"integrity": "sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw=="
|
|
651
652
|
},
|
|
652
653
|
"node_modules/@netlify/build": {
|
|
653
|
-
"version": "29.12.
|
|
654
|
-
"resolved": "https://registry.npmjs.org/@netlify/build/-/build-29.12.
|
|
655
|
-
"integrity": "sha512-
|
|
654
|
+
"version": "29.12.8",
|
|
655
|
+
"resolved": "https://registry.npmjs.org/@netlify/build/-/build-29.12.8.tgz",
|
|
656
|
+
"integrity": "sha512-es3nRMmb5zEpvON3qRKCGMqpfcqPvVYKR6ulQe+LP6+U2Nw9oAHr7+nBgiMvo0moJBC7t+lYFSphLjpn4G1M1Q==",
|
|
656
657
|
"dependencies": {
|
|
657
658
|
"@bugsnag/js": "^7.0.0",
|
|
658
659
|
"@netlify/cache-utils": "^5.1.5",
|
|
659
660
|
"@netlify/config": "^20.5.1",
|
|
660
661
|
"@netlify/edge-bundler": "8.16.2",
|
|
661
662
|
"@netlify/framework-info": "^9.8.10",
|
|
662
|
-
"@netlify/functions-utils": "^5.2.
|
|
663
|
+
"@netlify/functions-utils": "^5.2.13",
|
|
663
664
|
"@netlify/git-utils": "^5.1.1",
|
|
664
665
|
"@netlify/plugins-list": "^6.68.0",
|
|
665
666
|
"@netlify/run-utils": "^5.1.1",
|
|
666
|
-
"@netlify/zip-it-and-ship-it": "9.
|
|
667
|
+
"@netlify/zip-it-and-ship-it": "9.10.0",
|
|
667
668
|
"@sindresorhus/slugify": "^2.0.0",
|
|
668
669
|
"ansi-escapes": "^6.0.0",
|
|
669
670
|
"chalk": "^5.0.0",
|
|
@@ -702,7 +703,6 @@
|
|
|
702
703
|
"strip-ansi": "^7.0.0",
|
|
703
704
|
"supports-color": "^9.0.0",
|
|
704
705
|
"terminal-link": "^3.0.0",
|
|
705
|
-
"tmp-promise": "^3.0.2",
|
|
706
706
|
"ts-node": "^10.9.1",
|
|
707
707
|
"typescript": "^5.0.0",
|
|
708
708
|
"uuid": "^9.0.0",
|
|
@@ -716,9 +716,9 @@
|
|
|
716
716
|
}
|
|
717
717
|
},
|
|
718
718
|
"node_modules/@netlify/build-info": {
|
|
719
|
-
"version": "7.0.
|
|
720
|
-
"resolved": "https://registry.npmjs.org/@netlify/build-info/-/build-info-7.0.
|
|
721
|
-
"integrity": "sha512-
|
|
719
|
+
"version": "7.0.8",
|
|
720
|
+
"resolved": "https://registry.npmjs.org/@netlify/build-info/-/build-info-7.0.8.tgz",
|
|
721
|
+
"integrity": "sha512-VbasUPF4WcvFdq0B58+cM5/Jf6SUjYympgwz6B4IA5PQom/Ptkj5OMzRVclHclIhyDiiuwhIpCeeA0R6ru6XdA==",
|
|
722
722
|
"dependencies": {
|
|
723
723
|
"@bugsnag/js": "^7.20.0",
|
|
724
724
|
"@netlify/framework-info": "^9.8.10",
|
|
@@ -745,9 +745,9 @@
|
|
|
745
745
|
}
|
|
746
746
|
},
|
|
747
747
|
"node_modules/@netlify/build-info/node_modules/minimatch": {
|
|
748
|
-
"version": "9.0.
|
|
749
|
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.
|
|
750
|
-
"integrity": "sha512-
|
|
748
|
+
"version": "9.0.2",
|
|
749
|
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz",
|
|
750
|
+
"integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==",
|
|
751
751
|
"dependencies": {
|
|
752
752
|
"brace-expansion": "^2.0.1"
|
|
753
753
|
},
|
|
@@ -825,9 +825,9 @@
|
|
|
825
825
|
}
|
|
826
826
|
},
|
|
827
827
|
"node_modules/@netlify/build/node_modules/cacheable-request": {
|
|
828
|
-
"version": "10.2.
|
|
829
|
-
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.
|
|
830
|
-
"integrity": "sha512-
|
|
828
|
+
"version": "10.2.12",
|
|
829
|
+
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz",
|
|
830
|
+
"integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==",
|
|
831
831
|
"dependencies": {
|
|
832
832
|
"@types/http-cache-semantics": "^4.0.1",
|
|
833
833
|
"get-stream": "^6.0.1",
|
|
@@ -1186,9 +1186,9 @@
|
|
|
1186
1186
|
}
|
|
1187
1187
|
},
|
|
1188
1188
|
"node_modules/@netlify/cache-utils/node_modules/globby": {
|
|
1189
|
-
"version": "13.
|
|
1190
|
-
"resolved": "https://registry.npmjs.org/globby/-/globby-13.
|
|
1191
|
-
"integrity": "sha512-
|
|
1189
|
+
"version": "13.2.0",
|
|
1190
|
+
"resolved": "https://registry.npmjs.org/globby/-/globby-13.2.0.tgz",
|
|
1191
|
+
"integrity": "sha512-jWsQfayf13NvqKUIL3Ta+CIqMnvlaIDFveWE/dpOZ9+3AMEJozsxDvKA02zync9UuvOM8rOXzsD5GqKP4OnWPQ==",
|
|
1192
1192
|
"dependencies": {
|
|
1193
1193
|
"dir-glob": "^3.0.1",
|
|
1194
1194
|
"fast-glob": "^3.2.11",
|
|
@@ -2031,11 +2031,11 @@
|
|
|
2031
2031
|
}
|
|
2032
2032
|
},
|
|
2033
2033
|
"node_modules/@netlify/functions-utils": {
|
|
2034
|
-
"version": "5.2.
|
|
2035
|
-
"resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-5.2.
|
|
2036
|
-
"integrity": "sha512-
|
|
2034
|
+
"version": "5.2.13",
|
|
2035
|
+
"resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-5.2.13.tgz",
|
|
2036
|
+
"integrity": "sha512-j8jLlXC5tU7BbbmLLhsmCsJvS7DItEz4GAF3qIDfNFKvTfplk6MUGIuHUpezeBWr3UlNqCEn9UbvJym/CT2iLQ==",
|
|
2037
2037
|
"dependencies": {
|
|
2038
|
-
"@netlify/zip-it-and-ship-it": "9.
|
|
2038
|
+
"@netlify/zip-it-and-ship-it": "9.10.0",
|
|
2039
2039
|
"cpy": "^9.0.0",
|
|
2040
2040
|
"path-exists": "^5.0.0"
|
|
2041
2041
|
},
|
|
@@ -2455,9 +2455,9 @@
|
|
|
2455
2455
|
}
|
|
2456
2456
|
},
|
|
2457
2457
|
"node_modules/@netlify/zip-it-and-ship-it": {
|
|
2458
|
-
"version": "9.
|
|
2459
|
-
"resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.
|
|
2460
|
-
"integrity": "sha512-
|
|
2458
|
+
"version": "9.10.0",
|
|
2459
|
+
"resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.10.0.tgz",
|
|
2460
|
+
"integrity": "sha512-E9Hh4MQdhWDeDn3YjDNIpYvqUdLBMx7ghxfShFXv73/KyDns7tS/BpyakuObL/89JDV76CG/jtIx/cPPfxmg9w==",
|
|
2461
2461
|
"dependencies": {
|
|
2462
2462
|
"@babel/parser": "^7.22.5",
|
|
2463
2463
|
"@netlify/binary-info": "^1.0.0",
|
|
@@ -2576,9 +2576,9 @@
|
|
|
2576
2576
|
}
|
|
2577
2577
|
},
|
|
2578
2578
|
"node_modules/@netlify/zip-it-and-ship-it/node_modules/minimatch": {
|
|
2579
|
-
"version": "9.0.
|
|
2580
|
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.
|
|
2581
|
-
"integrity": "sha512-
|
|
2579
|
+
"version": "9.0.2",
|
|
2580
|
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz",
|
|
2581
|
+
"integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==",
|
|
2582
2582
|
"dependencies": {
|
|
2583
2583
|
"brace-expansion": "^2.0.1"
|
|
2584
2584
|
},
|
|
@@ -2834,9 +2834,9 @@
|
|
|
2834
2834
|
}
|
|
2835
2835
|
},
|
|
2836
2836
|
"node_modules/@octokit/rest": {
|
|
2837
|
-
"version": "19.0.
|
|
2838
|
-
"resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.
|
|
2839
|
-
"integrity": "sha512
|
|
2837
|
+
"version": "19.0.13",
|
|
2838
|
+
"resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.13.tgz",
|
|
2839
|
+
"integrity": "sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA==",
|
|
2840
2840
|
"dependencies": {
|
|
2841
2841
|
"@octokit/core": "^4.2.1",
|
|
2842
2842
|
"@octokit/plugin-paginate-rest": "^6.1.2",
|
|
@@ -3312,9 +3312,9 @@
|
|
|
3312
3312
|
}
|
|
3313
3313
|
},
|
|
3314
3314
|
"node_modules/@xhmikosr/downloader/node_modules/cacheable-request": {
|
|
3315
|
-
"version": "10.2.
|
|
3316
|
-
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.
|
|
3317
|
-
"integrity": "sha512-
|
|
3315
|
+
"version": "10.2.12",
|
|
3316
|
+
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz",
|
|
3317
|
+
"integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==",
|
|
3318
3318
|
"dependencies": {
|
|
3319
3319
|
"@types/http-cache-semantics": "^4.0.1",
|
|
3320
3320
|
"get-stream": "^6.0.1",
|
|
@@ -5189,9 +5189,9 @@
|
|
|
5189
5189
|
}
|
|
5190
5190
|
},
|
|
5191
5191
|
"node_modules/cpy/node_modules/globby": {
|
|
5192
|
-
"version": "13.
|
|
5193
|
-
"resolved": "https://registry.npmjs.org/globby/-/globby-13.
|
|
5194
|
-
"integrity": "sha512-
|
|
5192
|
+
"version": "13.2.0",
|
|
5193
|
+
"resolved": "https://registry.npmjs.org/globby/-/globby-13.2.0.tgz",
|
|
5194
|
+
"integrity": "sha512-jWsQfayf13NvqKUIL3Ta+CIqMnvlaIDFveWE/dpOZ9+3AMEJozsxDvKA02zync9UuvOM8rOXzsD5GqKP4OnWPQ==",
|
|
5195
5195
|
"dependencies": {
|
|
5196
5196
|
"dir-glob": "^3.0.1",
|
|
5197
5197
|
"fast-glob": "^3.2.11",
|
|
@@ -5382,9 +5382,9 @@
|
|
|
5382
5382
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
|
5383
5383
|
},
|
|
5384
5384
|
"node_modules/decache": {
|
|
5385
|
-
"version": "4.6.
|
|
5386
|
-
"resolved": "https://registry.npmjs.org/decache/-/decache-4.6.
|
|
5387
|
-
"integrity": "sha512-
|
|
5385
|
+
"version": "4.6.2",
|
|
5386
|
+
"resolved": "https://registry.npmjs.org/decache/-/decache-4.6.2.tgz",
|
|
5387
|
+
"integrity": "sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==",
|
|
5388
5388
|
"dependencies": {
|
|
5389
5389
|
"callsite": "^1.0.0"
|
|
5390
5390
|
}
|
|
@@ -5614,9 +5614,9 @@
|
|
|
5614
5614
|
}
|
|
5615
5615
|
},
|
|
5616
5616
|
"node_modules/detective-typescript/node_modules/@typescript-eslint/types": {
|
|
5617
|
-
"version": "5.
|
|
5618
|
-
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.
|
|
5619
|
-
"integrity": "sha512-
|
|
5617
|
+
"version": "5.60.0",
|
|
5618
|
+
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.60.0.tgz",
|
|
5619
|
+
"integrity": "sha512-ascOuoCpNZBccFVNJRSC6rPq4EmJ2NkuoKnd6LDNyAQmdDnziAtxbCGWCbefG1CNzmDvd05zO36AmB7H8RzKPA==",
|
|
5620
5620
|
"engines": {
|
|
5621
5621
|
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
|
5622
5622
|
},
|
|
@@ -5626,12 +5626,12 @@
|
|
|
5626
5626
|
}
|
|
5627
5627
|
},
|
|
5628
5628
|
"node_modules/detective-typescript/node_modules/@typescript-eslint/typescript-estree": {
|
|
5629
|
-
"version": "5.
|
|
5630
|
-
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.
|
|
5631
|
-
"integrity": "sha512-
|
|
5629
|
+
"version": "5.60.0",
|
|
5630
|
+
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.0.tgz",
|
|
5631
|
+
"integrity": "sha512-R43thAuwarC99SnvrBmh26tc7F6sPa2B3evkXp/8q954kYL6Ro56AwASYWtEEi+4j09GbiNAHqYwNNZuNlARGQ==",
|
|
5632
5632
|
"dependencies": {
|
|
5633
|
-
"@typescript-eslint/types": "5.
|
|
5634
|
-
"@typescript-eslint/visitor-keys": "5.
|
|
5633
|
+
"@typescript-eslint/types": "5.60.0",
|
|
5634
|
+
"@typescript-eslint/visitor-keys": "5.60.0",
|
|
5635
5635
|
"debug": "^4.3.4",
|
|
5636
5636
|
"globby": "^11.1.0",
|
|
5637
5637
|
"is-glob": "^4.0.3",
|
|
@@ -5652,11 +5652,11 @@
|
|
|
5652
5652
|
}
|
|
5653
5653
|
},
|
|
5654
5654
|
"node_modules/detective-typescript/node_modules/@typescript-eslint/visitor-keys": {
|
|
5655
|
-
"version": "5.
|
|
5656
|
-
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.
|
|
5657
|
-
"integrity": "sha512-
|
|
5655
|
+
"version": "5.60.0",
|
|
5656
|
+
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.0.tgz",
|
|
5657
|
+
"integrity": "sha512-wm9Uz71SbCyhUKgcaPRauBdTegUyY/ZWl8gLwD/i/ybJqscrrdVSFImpvUz16BLPChIeKBK5Fa9s6KDQjsjyWw==",
|
|
5658
5658
|
"dependencies": {
|
|
5659
|
-
"@typescript-eslint/types": "5.
|
|
5659
|
+
"@typescript-eslint/types": "5.60.0",
|
|
5660
5660
|
"eslint-visitor-keys": "^3.3.0"
|
|
5661
5661
|
},
|
|
5662
5662
|
"engines": {
|
|
@@ -6555,9 +6555,9 @@
|
|
|
6555
6555
|
}
|
|
6556
6556
|
},
|
|
6557
6557
|
"node_modules/fastify/node_modules/pino-std-serializers": {
|
|
6558
|
-
"version": "6.2.
|
|
6559
|
-
"resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.
|
|
6560
|
-
"integrity": "sha512-
|
|
6558
|
+
"version": "6.2.2",
|
|
6559
|
+
"resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz",
|
|
6560
|
+
"integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA=="
|
|
6561
6561
|
},
|
|
6562
6562
|
"node_modules/fastify/node_modules/process-warning": {
|
|
6563
6563
|
"version": "2.2.0",
|
|
@@ -6653,9 +6653,9 @@
|
|
|
6653
6653
|
}
|
|
6654
6654
|
},
|
|
6655
6655
|
"node_modules/fetch-node-website/node_modules/cacheable-request": {
|
|
6656
|
-
"version": "10.2.
|
|
6657
|
-
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.
|
|
6658
|
-
"integrity": "sha512-
|
|
6656
|
+
"version": "10.2.12",
|
|
6657
|
+
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz",
|
|
6658
|
+
"integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==",
|
|
6659
6659
|
"dependencies": {
|
|
6660
6660
|
"@types/http-cache-semantics": "^4.0.1",
|
|
6661
6661
|
"get-stream": "^6.0.1",
|
|
@@ -10581,9 +10581,9 @@
|
|
|
10581
10581
|
}
|
|
10582
10582
|
},
|
|
10583
10583
|
"node_modules/package-json/node_modules/cacheable-request": {
|
|
10584
|
-
"version": "10.2.
|
|
10585
|
-
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.
|
|
10586
|
-
"integrity": "sha512-
|
|
10584
|
+
"version": "10.2.12",
|
|
10585
|
+
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz",
|
|
10586
|
+
"integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==",
|
|
10587
10587
|
"dependencies": {
|
|
10588
10588
|
"@types/http-cache-semantics": "^4.0.1",
|
|
10589
10589
|
"get-stream": "^6.0.1",
|
|
@@ -11660,9 +11660,9 @@
|
|
|
11660
11660
|
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
|
|
11661
11661
|
},
|
|
11662
11662
|
"node_modules/semver": {
|
|
11663
|
-
"version": "7.5.
|
|
11664
|
-
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.
|
|
11665
|
-
"integrity": "sha512-
|
|
11663
|
+
"version": "7.5.3",
|
|
11664
|
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
|
|
11665
|
+
"integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
|
|
11666
11666
|
"dependencies": {
|
|
11667
11667
|
"lru-cache": "^6.0.0"
|
|
11668
11668
|
},
|
|
@@ -14138,20 +14138,20 @@
|
|
|
14138
14138
|
"integrity": "sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw=="
|
|
14139
14139
|
},
|
|
14140
14140
|
"@netlify/build": {
|
|
14141
|
-
"version": "29.12.
|
|
14142
|
-
"resolved": "https://registry.npmjs.org/@netlify/build/-/build-29.12.
|
|
14143
|
-
"integrity": "sha512-
|
|
14141
|
+
"version": "29.12.8",
|
|
14142
|
+
"resolved": "https://registry.npmjs.org/@netlify/build/-/build-29.12.8.tgz",
|
|
14143
|
+
"integrity": "sha512-es3nRMmb5zEpvON3qRKCGMqpfcqPvVYKR6ulQe+LP6+U2Nw9oAHr7+nBgiMvo0moJBC7t+lYFSphLjpn4G1M1Q==",
|
|
14144
14144
|
"requires": {
|
|
14145
14145
|
"@bugsnag/js": "^7.0.0",
|
|
14146
14146
|
"@netlify/cache-utils": "^5.1.5",
|
|
14147
14147
|
"@netlify/config": "^20.5.1",
|
|
14148
14148
|
"@netlify/edge-bundler": "8.16.2",
|
|
14149
14149
|
"@netlify/framework-info": "^9.8.10",
|
|
14150
|
-
"@netlify/functions-utils": "^5.2.
|
|
14150
|
+
"@netlify/functions-utils": "^5.2.13",
|
|
14151
14151
|
"@netlify/git-utils": "^5.1.1",
|
|
14152
14152
|
"@netlify/plugins-list": "^6.68.0",
|
|
14153
14153
|
"@netlify/run-utils": "^5.1.1",
|
|
14154
|
-
"@netlify/zip-it-and-ship-it": "9.
|
|
14154
|
+
"@netlify/zip-it-and-ship-it": "9.10.0",
|
|
14155
14155
|
"@sindresorhus/slugify": "^2.0.0",
|
|
14156
14156
|
"ansi-escapes": "^6.0.0",
|
|
14157
14157
|
"chalk": "^5.0.0",
|
|
@@ -14190,7 +14190,6 @@
|
|
|
14190
14190
|
"strip-ansi": "^7.0.0",
|
|
14191
14191
|
"supports-color": "^9.0.0",
|
|
14192
14192
|
"terminal-link": "^3.0.0",
|
|
14193
|
-
"tmp-promise": "^3.0.2",
|
|
14194
14193
|
"ts-node": "^10.9.1",
|
|
14195
14194
|
"typescript": "^5.0.0",
|
|
14196
14195
|
"uuid": "^9.0.0",
|
|
@@ -14216,9 +14215,9 @@
|
|
|
14216
14215
|
"integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w=="
|
|
14217
14216
|
},
|
|
14218
14217
|
"cacheable-request": {
|
|
14219
|
-
"version": "10.2.
|
|
14220
|
-
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.
|
|
14221
|
-
"integrity": "sha512-
|
|
14218
|
+
"version": "10.2.12",
|
|
14219
|
+
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz",
|
|
14220
|
+
"integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==",
|
|
14222
14221
|
"requires": {
|
|
14223
14222
|
"@types/http-cache-semantics": "^4.0.1",
|
|
14224
14223
|
"get-stream": "^6.0.1",
|
|
@@ -14420,9 +14419,9 @@
|
|
|
14420
14419
|
}
|
|
14421
14420
|
},
|
|
14422
14421
|
"@netlify/build-info": {
|
|
14423
|
-
"version": "7.0.
|
|
14424
|
-
"resolved": "https://registry.npmjs.org/@netlify/build-info/-/build-info-7.0.
|
|
14425
|
-
"integrity": "sha512-
|
|
14422
|
+
"version": "7.0.8",
|
|
14423
|
+
"resolved": "https://registry.npmjs.org/@netlify/build-info/-/build-info-7.0.8.tgz",
|
|
14424
|
+
"integrity": "sha512-VbasUPF4WcvFdq0B58+cM5/Jf6SUjYympgwz6B4IA5PQom/Ptkj5OMzRVclHclIhyDiiuwhIpCeeA0R6ru6XdA==",
|
|
14426
14425
|
"requires": {
|
|
14427
14426
|
"@bugsnag/js": "^7.20.0",
|
|
14428
14427
|
"@netlify/framework-info": "^9.8.10",
|
|
@@ -14443,9 +14442,9 @@
|
|
|
14443
14442
|
}
|
|
14444
14443
|
},
|
|
14445
14444
|
"minimatch": {
|
|
14446
|
-
"version": "9.0.
|
|
14447
|
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.
|
|
14448
|
-
"integrity": "sha512-
|
|
14445
|
+
"version": "9.0.2",
|
|
14446
|
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz",
|
|
14447
|
+
"integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==",
|
|
14449
14448
|
"requires": {
|
|
14450
14449
|
"brace-expansion": "^2.0.1"
|
|
14451
14450
|
}
|
|
@@ -14489,9 +14488,9 @@
|
|
|
14489
14488
|
},
|
|
14490
14489
|
"dependencies": {
|
|
14491
14490
|
"globby": {
|
|
14492
|
-
"version": "13.
|
|
14493
|
-
"resolved": "https://registry.npmjs.org/globby/-/globby-13.
|
|
14494
|
-
"integrity": "sha512-
|
|
14491
|
+
"version": "13.2.0",
|
|
14492
|
+
"resolved": "https://registry.npmjs.org/globby/-/globby-13.2.0.tgz",
|
|
14493
|
+
"integrity": "sha512-jWsQfayf13NvqKUIL3Ta+CIqMnvlaIDFveWE/dpOZ9+3AMEJozsxDvKA02zync9UuvOM8rOXzsD5GqKP4OnWPQ==",
|
|
14495
14494
|
"requires": {
|
|
14496
14495
|
"dir-glob": "^3.0.1",
|
|
14497
14496
|
"fast-glob": "^3.2.11",
|
|
@@ -14967,11 +14966,11 @@
|
|
|
14967
14966
|
}
|
|
14968
14967
|
},
|
|
14969
14968
|
"@netlify/functions-utils": {
|
|
14970
|
-
"version": "5.2.
|
|
14971
|
-
"resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-5.2.
|
|
14972
|
-
"integrity": "sha512-
|
|
14969
|
+
"version": "5.2.13",
|
|
14970
|
+
"resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-5.2.13.tgz",
|
|
14971
|
+
"integrity": "sha512-j8jLlXC5tU7BbbmLLhsmCsJvS7DItEz4GAF3qIDfNFKvTfplk6MUGIuHUpezeBWr3UlNqCEn9UbvJym/CT2iLQ==",
|
|
14973
14972
|
"requires": {
|
|
14974
|
-
"@netlify/zip-it-and-ship-it": "9.
|
|
14973
|
+
"@netlify/zip-it-and-ship-it": "9.10.0",
|
|
14975
14974
|
"cpy": "^9.0.0",
|
|
14976
14975
|
"path-exists": "^5.0.0"
|
|
14977
14976
|
},
|
|
@@ -15208,9 +15207,9 @@
|
|
|
15208
15207
|
"integrity": "sha512-c8RjIu+fkpfOGLaW0Z0iFG39GUK7sCa6M3Qy3fqouMpT00TaiheiyssnnDZGSLkNp4o+UtbRnITB1zuwDeHMLw=="
|
|
15209
15208
|
},
|
|
15210
15209
|
"@netlify/zip-it-and-ship-it": {
|
|
15211
|
-
"version": "9.
|
|
15212
|
-
"resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.
|
|
15213
|
-
"integrity": "sha512-
|
|
15210
|
+
"version": "9.10.0",
|
|
15211
|
+
"resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-9.10.0.tgz",
|
|
15212
|
+
"integrity": "sha512-E9Hh4MQdhWDeDn3YjDNIpYvqUdLBMx7ghxfShFXv73/KyDns7tS/BpyakuObL/89JDV76CG/jtIx/cPPfxmg9w==",
|
|
15214
15213
|
"requires": {
|
|
15215
15214
|
"@babel/parser": "^7.22.5",
|
|
15216
15215
|
"@netlify/binary-info": "^1.0.0",
|
|
@@ -15301,9 +15300,9 @@
|
|
|
15301
15300
|
"integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA=="
|
|
15302
15301
|
},
|
|
15303
15302
|
"minimatch": {
|
|
15304
|
-
"version": "9.0.
|
|
15305
|
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.
|
|
15306
|
-
"integrity": "sha512-
|
|
15303
|
+
"version": "9.0.2",
|
|
15304
|
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz",
|
|
15305
|
+
"integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==",
|
|
15307
15306
|
"requires": {
|
|
15308
15307
|
"brace-expansion": "^2.0.1"
|
|
15309
15308
|
}
|
|
@@ -15499,9 +15498,9 @@
|
|
|
15499
15498
|
}
|
|
15500
15499
|
},
|
|
15501
15500
|
"@octokit/rest": {
|
|
15502
|
-
"version": "19.0.
|
|
15503
|
-
"resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.
|
|
15504
|
-
"integrity": "sha512
|
|
15501
|
+
"version": "19.0.13",
|
|
15502
|
+
"resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.13.tgz",
|
|
15503
|
+
"integrity": "sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA==",
|
|
15505
15504
|
"requires": {
|
|
15506
15505
|
"@octokit/core": "^4.2.1",
|
|
15507
15506
|
"@octokit/plugin-paginate-rest": "^6.1.2",
|
|
@@ -15893,9 +15892,9 @@
|
|
|
15893
15892
|
"integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w=="
|
|
15894
15893
|
},
|
|
15895
15894
|
"cacheable-request": {
|
|
15896
|
-
"version": "10.2.
|
|
15897
|
-
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.
|
|
15898
|
-
"integrity": "sha512-
|
|
15895
|
+
"version": "10.2.12",
|
|
15896
|
+
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz",
|
|
15897
|
+
"integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==",
|
|
15899
15898
|
"requires": {
|
|
15900
15899
|
"@types/http-cache-semantics": "^4.0.1",
|
|
15901
15900
|
"get-stream": "^6.0.1",
|
|
@@ -17276,9 +17275,9 @@
|
|
|
17276
17275
|
}
|
|
17277
17276
|
},
|
|
17278
17277
|
"globby": {
|
|
17279
|
-
"version": "13.
|
|
17280
|
-
"resolved": "https://registry.npmjs.org/globby/-/globby-13.
|
|
17281
|
-
"integrity": "sha512-
|
|
17278
|
+
"version": "13.2.0",
|
|
17279
|
+
"resolved": "https://registry.npmjs.org/globby/-/globby-13.2.0.tgz",
|
|
17280
|
+
"integrity": "sha512-jWsQfayf13NvqKUIL3Ta+CIqMnvlaIDFveWE/dpOZ9+3AMEJozsxDvKA02zync9UuvOM8rOXzsD5GqKP4OnWPQ==",
|
|
17282
17281
|
"requires": {
|
|
17283
17282
|
"dir-glob": "^3.0.1",
|
|
17284
17283
|
"fast-glob": "^3.2.11",
|
|
@@ -17412,9 +17411,9 @@
|
|
|
17412
17411
|
}
|
|
17413
17412
|
},
|
|
17414
17413
|
"decache": {
|
|
17415
|
-
"version": "4.6.
|
|
17416
|
-
"resolved": "https://registry.npmjs.org/decache/-/decache-4.6.
|
|
17417
|
-
"integrity": "sha512-
|
|
17414
|
+
"version": "4.6.2",
|
|
17415
|
+
"resolved": "https://registry.npmjs.org/decache/-/decache-4.6.2.tgz",
|
|
17416
|
+
"integrity": "sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==",
|
|
17418
17417
|
"requires": {
|
|
17419
17418
|
"callsite": "^1.0.0"
|
|
17420
17419
|
}
|
|
@@ -17579,17 +17578,17 @@
|
|
|
17579
17578
|
},
|
|
17580
17579
|
"dependencies": {
|
|
17581
17580
|
"@typescript-eslint/types": {
|
|
17582
|
-
"version": "5.
|
|
17583
|
-
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.
|
|
17584
|
-
"integrity": "sha512-
|
|
17581
|
+
"version": "5.60.0",
|
|
17582
|
+
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.60.0.tgz",
|
|
17583
|
+
"integrity": "sha512-ascOuoCpNZBccFVNJRSC6rPq4EmJ2NkuoKnd6LDNyAQmdDnziAtxbCGWCbefG1CNzmDvd05zO36AmB7H8RzKPA=="
|
|
17585
17584
|
},
|
|
17586
17585
|
"@typescript-eslint/typescript-estree": {
|
|
17587
|
-
"version": "5.
|
|
17588
|
-
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.
|
|
17589
|
-
"integrity": "sha512-
|
|
17586
|
+
"version": "5.60.0",
|
|
17587
|
+
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.60.0.tgz",
|
|
17588
|
+
"integrity": "sha512-R43thAuwarC99SnvrBmh26tc7F6sPa2B3evkXp/8q954kYL6Ro56AwASYWtEEi+4j09GbiNAHqYwNNZuNlARGQ==",
|
|
17590
17589
|
"requires": {
|
|
17591
|
-
"@typescript-eslint/types": "5.
|
|
17592
|
-
"@typescript-eslint/visitor-keys": "5.
|
|
17590
|
+
"@typescript-eslint/types": "5.60.0",
|
|
17591
|
+
"@typescript-eslint/visitor-keys": "5.60.0",
|
|
17593
17592
|
"debug": "^4.3.4",
|
|
17594
17593
|
"globby": "^11.1.0",
|
|
17595
17594
|
"is-glob": "^4.0.3",
|
|
@@ -17598,11 +17597,11 @@
|
|
|
17598
17597
|
}
|
|
17599
17598
|
},
|
|
17600
17599
|
"@typescript-eslint/visitor-keys": {
|
|
17601
|
-
"version": "5.
|
|
17602
|
-
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.
|
|
17603
|
-
"integrity": "sha512-
|
|
17600
|
+
"version": "5.60.0",
|
|
17601
|
+
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.60.0.tgz",
|
|
17602
|
+
"integrity": "sha512-wm9Uz71SbCyhUKgcaPRauBdTegUyY/ZWl8gLwD/i/ybJqscrrdVSFImpvUz16BLPChIeKBK5Fa9s6KDQjsjyWw==",
|
|
17604
17603
|
"requires": {
|
|
17605
|
-
"@typescript-eslint/types": "5.
|
|
17604
|
+
"@typescript-eslint/types": "5.60.0",
|
|
17606
17605
|
"eslint-visitor-keys": "^3.3.0"
|
|
17607
17606
|
}
|
|
17608
17607
|
},
|
|
@@ -18289,9 +18288,9 @@
|
|
|
18289
18288
|
}
|
|
18290
18289
|
},
|
|
18291
18290
|
"pino-std-serializers": {
|
|
18292
|
-
"version": "6.2.
|
|
18293
|
-
"resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.
|
|
18294
|
-
"integrity": "sha512-
|
|
18291
|
+
"version": "6.2.2",
|
|
18292
|
+
"resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz",
|
|
18293
|
+
"integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA=="
|
|
18295
18294
|
},
|
|
18296
18295
|
"process-warning": {
|
|
18297
18296
|
"version": "2.2.0",
|
|
@@ -18366,9 +18365,9 @@
|
|
|
18366
18365
|
"integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w=="
|
|
18367
18366
|
},
|
|
18368
18367
|
"cacheable-request": {
|
|
18369
|
-
"version": "10.2.
|
|
18370
|
-
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.
|
|
18371
|
-
"integrity": "sha512-
|
|
18368
|
+
"version": "10.2.12",
|
|
18369
|
+
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz",
|
|
18370
|
+
"integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==",
|
|
18372
18371
|
"requires": {
|
|
18373
18372
|
"@types/http-cache-semantics": "^4.0.1",
|
|
18374
18373
|
"get-stream": "^6.0.1",
|
|
@@ -21157,9 +21156,9 @@
|
|
|
21157
21156
|
"integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w=="
|
|
21158
21157
|
},
|
|
21159
21158
|
"cacheable-request": {
|
|
21160
|
-
"version": "10.2.
|
|
21161
|
-
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.
|
|
21162
|
-
"integrity": "sha512-
|
|
21159
|
+
"version": "10.2.12",
|
|
21160
|
+
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.12.tgz",
|
|
21161
|
+
"integrity": "sha512-qtWGB5kn2OLjx47pYUkWicyOpK1vy9XZhq8yRTXOy+KAmjjESSRLx6SiExnnaGGUP1NM6/vmygMu0fGylNh9tw==",
|
|
21163
21162
|
"requires": {
|
|
21164
21163
|
"@types/http-cache-semantics": "^4.0.1",
|
|
21165
21164
|
"get-stream": "^6.0.1",
|
|
@@ -21910,9 +21909,9 @@
|
|
|
21910
21909
|
}
|
|
21911
21910
|
},
|
|
21912
21911
|
"semver": {
|
|
21913
|
-
"version": "7.5.
|
|
21914
|
-
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.
|
|
21915
|
-
"integrity": "sha512-
|
|
21912
|
+
"version": "7.5.3",
|
|
21913
|
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
|
|
21914
|
+
"integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
|
|
21916
21915
|
"requires": {
|
|
21917
21916
|
"lru-cache": "^6.0.0"
|
|
21918
21917
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "netlify-cli",
|
|
3
3
|
"description": "Netlify command line tool",
|
|
4
|
-
"version": "15.
|
|
4
|
+
"version": "15.7.0",
|
|
5
5
|
"author": "Netlify Inc.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"engines": {
|
|
@@ -44,14 +44,15 @@
|
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@bugsnag/js": "7.20.2",
|
|
46
46
|
"@fastify/static": "6.10.2",
|
|
47
|
-
"@netlify/build": "29.12.
|
|
48
|
-
"@netlify/build-info": "7.0.
|
|
47
|
+
"@netlify/build": "29.12.8",
|
|
48
|
+
"@netlify/build-info": "7.0.8",
|
|
49
49
|
"@netlify/config": "20.5.1",
|
|
50
50
|
"@netlify/edge-bundler": "8.16.2",
|
|
51
51
|
"@netlify/framework-info": "9.8.10",
|
|
52
52
|
"@netlify/local-functions-proxy": "1.1.1",
|
|
53
|
-
"@netlify/
|
|
54
|
-
"@
|
|
53
|
+
"@netlify/serverless-functions-api": "1.5.1",
|
|
54
|
+
"@netlify/zip-it-and-ship-it": "9.10.0",
|
|
55
|
+
"@octokit/rest": "19.0.13",
|
|
55
56
|
"@skn0tt/lambda-local": "2.0.3",
|
|
56
57
|
"ansi-escapes": "6.2.0",
|
|
57
58
|
"ansi-styles": "6.2.1",
|
|
@@ -73,7 +74,7 @@
|
|
|
73
74
|
"copy-template-dir": "1.4.0",
|
|
74
75
|
"cron-parser": "4.8.1",
|
|
75
76
|
"debug": "4.3.4",
|
|
76
|
-
"decache": "4.6.
|
|
77
|
+
"decache": "4.6.2",
|
|
77
78
|
"dot-prop": "7.2.0",
|
|
78
79
|
"dotenv": "16.0.3",
|
|
79
80
|
"env-paths": "3.0.0",
|
|
@@ -132,7 +133,7 @@
|
|
|
132
133
|
"pump": "3.0.0",
|
|
133
134
|
"raw-body": "2.5.2",
|
|
134
135
|
"read-pkg-up": "9.1.0",
|
|
135
|
-
"semver": "7.5.
|
|
136
|
+
"semver": "7.5.3",
|
|
136
137
|
"source-map-support": "0.5.21",
|
|
137
138
|
"strip-ansi-control-characters": "2.0.0",
|
|
138
139
|
"tabtab": "3.0.2",
|
package/src/commands/dev/dev.mjs
CHANGED
|
@@ -172,6 +172,10 @@ const dev = async (options, command) => {
|
|
|
172
172
|
siteUrl,
|
|
173
173
|
capabilities,
|
|
174
174
|
timeouts,
|
|
175
|
+
geolocationMode: options.geo,
|
|
176
|
+
geoCountry: options.country,
|
|
177
|
+
offline: options.offline,
|
|
178
|
+
state,
|
|
175
179
|
})
|
|
176
180
|
|
|
177
181
|
// Try to add `.netlify` to `.gitignore`.
|
|
@@ -198,8 +202,6 @@ const dev = async (options, command) => {
|
|
|
198
202
|
configPath: configPathOverride,
|
|
199
203
|
debug: options.debug,
|
|
200
204
|
env,
|
|
201
|
-
geolocationMode: options.geo,
|
|
202
|
-
geoCountry: options.country,
|
|
203
205
|
getUpdatedConfig,
|
|
204
206
|
inspectSettings,
|
|
205
207
|
offline: options.offline,
|
|
@@ -207,6 +209,8 @@ const dev = async (options, command) => {
|
|
|
207
209
|
site,
|
|
208
210
|
siteInfo,
|
|
209
211
|
state,
|
|
212
|
+
geolocationMode: options.geo,
|
|
213
|
+
geoCountry: options.country,
|
|
210
214
|
})
|
|
211
215
|
|
|
212
216
|
if (devConfig.autoLaunch !== false) {
|
|
@@ -100,7 +100,6 @@ const formatRegistryArrayForInquirer = async function (lang, funcType) {
|
|
|
100
100
|
.filter((folderName) => !folderName.endsWith('.md'))
|
|
101
101
|
.map(async (folderName) => {
|
|
102
102
|
const templatePath = path.join(templatesDir, lang, folderName, '.netlify-function-template.mjs')
|
|
103
|
-
// eslint-disable-next-line import/no-dynamic-require
|
|
104
103
|
const template = await import(pathToFileURL(templatePath))
|
|
105
104
|
|
|
106
105
|
return template.default
|
|
@@ -362,7 +361,6 @@ const downloadFromURL = async function (command, options, argumentName, function
|
|
|
362
361
|
if (await fileExistsAsync(fnTemplateFile)) {
|
|
363
362
|
const {
|
|
364
363
|
default: { addons = [], onComplete },
|
|
365
|
-
// eslint-disable-next-line import/no-dynamic-require
|
|
366
364
|
} = await import(pathToFileURL(fnTemplateFile).href)
|
|
367
365
|
|
|
368
366
|
await installAddons(command, addons, path.resolve(fnFolder))
|
|
@@ -387,7 +385,6 @@ const getNpmInstallPackages = (existingPackages = {}, neededPackages = {}) =>
|
|
|
387
385
|
// we don't do this check, we may be upgrading the version of a module used in
|
|
388
386
|
// another part of the project, which we don't want to do.
|
|
389
387
|
const installDeps = async ({ functionPackageJson, functionPath, functionsDir }) => {
|
|
390
|
-
// eslint-disable-next-line import/no-dynamic-require
|
|
391
388
|
const { dependencies: functionDependencies, devDependencies: functionDevDependencies } = require(functionPackageJson)
|
|
392
389
|
const sitePackageJson = await findUp('package.json', { cwd: functionsDir })
|
|
393
390
|
const npmInstallFlags = ['--no-audit', '--no-fund']
|
|
@@ -401,7 +398,6 @@ const installDeps = async ({ functionPackageJson, functionPath, functionsDir })
|
|
|
401
398
|
return
|
|
402
399
|
}
|
|
403
400
|
|
|
404
|
-
// eslint-disable-next-line import/no-dynamic-require
|
|
405
401
|
const { dependencies: siteDependencies, devDependencies: siteDevDependencies } = require(sitePackageJson)
|
|
406
402
|
const dependencies = getNpmInstallPackages(siteDependencies, functionDependencies)
|
|
407
403
|
const devDependencies = getNpmInstallPackages(siteDevDependencies, functionDevDependencies)
|
|
@@ -68,7 +68,7 @@ const processPayloadFromFlag = function (payloadString) {
|
|
|
68
68
|
if (pathexists) {
|
|
69
69
|
try {
|
|
70
70
|
// there is code execution potential here
|
|
71
|
-
|
|
71
|
+
|
|
72
72
|
payload = require(payloadpath)
|
|
73
73
|
return payload
|
|
74
74
|
} catch (error_) {
|
|
@@ -13,7 +13,7 @@ const DEFAULT_PORT = 9999
|
|
|
13
13
|
* @param {import('../base-command.mjs').default} command
|
|
14
14
|
*/
|
|
15
15
|
const functionsServe = async (options, command) => {
|
|
16
|
-
const { api, config, site, siteInfo } = command.netlify
|
|
16
|
+
const { api, config, site, siteInfo, state } = command.netlify
|
|
17
17
|
|
|
18
18
|
const functionsDir = getFunctionsDir({ options, config }, join('netlify', 'functions'))
|
|
19
19
|
let { env } = command.netlify.cachedConfig
|
|
@@ -48,6 +48,10 @@ const functionsServe = async (options, command) => {
|
|
|
48
48
|
timeouts,
|
|
49
49
|
functionsPrefix: '/.netlify/functions/',
|
|
50
50
|
buildersPrefix: '/.netlify/builders/',
|
|
51
|
+
geolocationMode: options.geo,
|
|
52
|
+
geoCountry: options.country,
|
|
53
|
+
offline: options.offline,
|
|
54
|
+
state,
|
|
51
55
|
})
|
|
52
56
|
}
|
|
53
57
|
|
|
@@ -8,7 +8,7 @@ export const getRecipe = async (name) => {
|
|
|
8
8
|
const recipePath = resolve(directoryPath, '../../recipes', name, 'index.mjs')
|
|
9
9
|
|
|
10
10
|
// windows needs a URL for absolute paths
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
const recipe = await import(pathToFileURL(recipePath).href)
|
|
13
13
|
|
|
14
14
|
return recipe
|
|
@@ -22,7 +22,7 @@ export const listRecipes = async () => {
|
|
|
22
22
|
const recipePath = join(recipesPath, name, 'index.mjs')
|
|
23
23
|
|
|
24
24
|
// windows needs a URL for absolute paths
|
|
25
|
-
|
|
25
|
+
|
|
26
26
|
const recipe = await import(pathToFileURL(recipePath).href)
|
|
27
27
|
|
|
28
28
|
return {
|
|
@@ -101,6 +101,10 @@ const serve = async (options, command) => {
|
|
|
101
101
|
siteUrl,
|
|
102
102
|
capabilities,
|
|
103
103
|
timeouts,
|
|
104
|
+
geolocationMode: options.geo,
|
|
105
|
+
geoCountry: options.country,
|
|
106
|
+
offline: options.offline,
|
|
107
|
+
state,
|
|
104
108
|
})
|
|
105
109
|
|
|
106
110
|
// Try to add `.netlify` to `.gitignore`.
|
|
@@ -22,11 +22,25 @@ const addFunctionsConfigDefaults = (config) => ({
|
|
|
22
22
|
},
|
|
23
23
|
})
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
/**
|
|
26
|
+
* @param {object} params
|
|
27
|
+
* @param {import("@netlify/zip-it-and-ship-it/dist/feature_flags.js").FeatureFlags} params.featureFlags
|
|
28
|
+
*/
|
|
29
|
+
const buildFunction = async ({
|
|
30
|
+
cache,
|
|
31
|
+
config,
|
|
32
|
+
directory,
|
|
33
|
+
featureFlags,
|
|
34
|
+
func,
|
|
35
|
+
hasTypeModule,
|
|
36
|
+
projectRoot,
|
|
37
|
+
targetDirectory,
|
|
38
|
+
}) => {
|
|
26
39
|
const zipOptions = {
|
|
27
40
|
archiveFormat: 'none',
|
|
28
41
|
basePath: projectRoot,
|
|
29
42
|
config,
|
|
43
|
+
featureFlags: { ...featureFlags, zisi_functions_api_v2: true },
|
|
30
44
|
}
|
|
31
45
|
const functionDirectory = path.dirname(func.mainFile)
|
|
32
46
|
|
|
@@ -42,9 +56,11 @@ const buildFunction = async ({ cache, config, directory, func, hasTypeModule, pr
|
|
|
42
56
|
// this case, we use `mainFile` as the function path of `zipFunction`.
|
|
43
57
|
const entryPath = functionDirectory === directory ? func.mainFile : functionDirectory
|
|
44
58
|
const {
|
|
59
|
+
entryFilename,
|
|
45
60
|
includedFiles,
|
|
46
61
|
inputs,
|
|
47
62
|
path: functionPath,
|
|
63
|
+
runtimeAPIVersion,
|
|
48
64
|
schedule,
|
|
49
65
|
} = await memoizedBuild({
|
|
50
66
|
cache,
|
|
@@ -52,7 +68,7 @@ const buildFunction = async ({ cache, config, directory, func, hasTypeModule, pr
|
|
|
52
68
|
command: () => zipFunction(entryPath, targetDirectory, zipOptions),
|
|
53
69
|
})
|
|
54
70
|
const srcFiles = inputs.filter((inputPath) => !inputPath.includes(`${path.sep}node_modules${path.sep}`))
|
|
55
|
-
const buildPath = path.join(functionPath,
|
|
71
|
+
const buildPath = path.join(functionPath, entryFilename)
|
|
56
72
|
|
|
57
73
|
// some projects include a package.json with "type=module", forcing Node to interpret every descending file
|
|
58
74
|
// as ESM. ZISI outputs CJS, so we emit an overriding directive into the output directory.
|
|
@@ -67,7 +83,7 @@ const buildFunction = async ({ cache, config, directory, func, hasTypeModule, pr
|
|
|
67
83
|
|
|
68
84
|
clearFunctionsCache(targetDirectory)
|
|
69
85
|
|
|
70
|
-
return { buildPath, includedFiles, srcFiles, schedule }
|
|
86
|
+
return { buildPath, includedFiles, runtimeAPIVersion, srcFiles, schedule }
|
|
71
87
|
}
|
|
72
88
|
|
|
73
89
|
/**
|
|
@@ -76,14 +92,14 @@ const buildFunction = async ({ cache, config, directory, func, hasTypeModule, pr
|
|
|
76
92
|
* @param {string} params.mainFile
|
|
77
93
|
* @param {string} params.projectRoot
|
|
78
94
|
*/
|
|
79
|
-
export const
|
|
95
|
+
export const parseFunctionForMetadata = async ({ config, mainFile, projectRoot }) => {
|
|
80
96
|
const { listFunction } = await import('@netlify/zip-it-and-ship-it')
|
|
81
|
-
|
|
97
|
+
|
|
98
|
+
return await listFunction(mainFile, {
|
|
82
99
|
config: netlifyConfigToZisiConfig({ config, projectRoot }),
|
|
100
|
+
featureFlags: { zisi_functions_api_v2: true },
|
|
83
101
|
parseISC: true,
|
|
84
102
|
})
|
|
85
|
-
|
|
86
|
-
return listedFunction && listedFunction.schedule
|
|
87
103
|
}
|
|
88
104
|
|
|
89
105
|
// Clears the cache for any files inside the directory from which functions are
|
|
@@ -109,26 +125,44 @@ const getTargetDirectory = async ({ errorExit }) => {
|
|
|
109
125
|
const netlifyConfigToZisiConfig = ({ config, projectRoot }) =>
|
|
110
126
|
addFunctionsConfigDefaults(normalizeFunctionsConfig({ functionsConfig: config.functions, projectRoot }))
|
|
111
127
|
|
|
112
|
-
export default async function handler({ config, directory, errorExit, func, projectRoot }) {
|
|
128
|
+
export default async function handler({ config, directory, errorExit, func, metadata, projectRoot }) {
|
|
113
129
|
const functionsConfig = netlifyConfigToZisiConfig({ config, projectRoot })
|
|
114
130
|
|
|
115
131
|
const packageJson = await readPackageUp(func.mainFile)
|
|
116
132
|
const hasTypeModule = packageJson && packageJson.packageJson.type === 'module'
|
|
117
133
|
|
|
118
|
-
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
134
|
+
/** @type {import("@netlify/zip-it-and-ship-it/dist/feature_flags.js").FeatureFlags} */
|
|
135
|
+
const featureFlags = {}
|
|
136
|
+
|
|
137
|
+
if (metadata.runtimeAPIVersion === 2) {
|
|
138
|
+
// For TypeScript we use NFT, otherwise we leave the file untouched with the `none` bundler
|
|
139
|
+
const isTypescript = ['.ts', '.mts', '.cts'].includes(path.extname(func.mainFile))
|
|
140
|
+
|
|
141
|
+
if (isTypescript) {
|
|
142
|
+
functionsConfig['*'].nodeBundler = 'nft'
|
|
143
|
+
} else {
|
|
144
|
+
// using esbuild is less performant than `none`, but it emits sourcemaps and thus
|
|
145
|
+
// enables debugging functions
|
|
146
|
+
functionsConfig['*'].nodeBundler = 'esbuild'
|
|
147
|
+
featureFlags.zisi_pure_esm = true
|
|
148
|
+
featureFlags.zisi_pure_esm_mjs = true
|
|
149
|
+
}
|
|
150
|
+
} else {
|
|
151
|
+
// We must use esbuild for certain file extensions.
|
|
152
|
+
const mustTranspile = ['.mjs', '.ts', '.mts', '.cts'].includes(path.extname(func.mainFile))
|
|
153
|
+
const mustUseEsbuild = hasTypeModule || mustTranspile
|
|
154
|
+
|
|
155
|
+
if (mustUseEsbuild && !functionsConfig['*'].nodeBundler) {
|
|
156
|
+
functionsConfig['*'].nodeBundler = 'esbuild'
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// TODO: Resolve functions config globs so that we can check for the bundler
|
|
160
|
+
// on a per-function basis.
|
|
161
|
+
const isUsingEsbuild = ['esbuild_zisi', 'esbuild'].includes(functionsConfig['*'].nodeBundler)
|
|
162
|
+
|
|
163
|
+
if (!isUsingEsbuild) {
|
|
164
|
+
return false
|
|
165
|
+
}
|
|
132
166
|
}
|
|
133
167
|
|
|
134
168
|
// Enable source map support.
|
|
@@ -138,7 +172,16 @@ export default async function handler({ config, directory, errorExit, func, proj
|
|
|
138
172
|
|
|
139
173
|
return {
|
|
140
174
|
build: ({ cache = {} }) =>
|
|
141
|
-
buildFunction({
|
|
175
|
+
buildFunction({
|
|
176
|
+
cache,
|
|
177
|
+
config: functionsConfig,
|
|
178
|
+
directory,
|
|
179
|
+
func,
|
|
180
|
+
projectRoot,
|
|
181
|
+
targetDirectory,
|
|
182
|
+
hasTypeModule,
|
|
183
|
+
featureFlags,
|
|
184
|
+
}),
|
|
142
185
|
builderName: 'zip-it-and-ship-it',
|
|
143
186
|
target: targetDirectory,
|
|
144
187
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const SECONDS_TO_MILLISECONDS = 1000
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
+
import { createConnection } from 'net'
|
|
1
2
|
import { dirname } from 'path'
|
|
3
|
+
import { pathToFileURL } from 'url'
|
|
4
|
+
import { Worker } from 'worker_threads'
|
|
2
5
|
|
|
3
6
|
import lambdaLocal from '@skn0tt/lambda-local'
|
|
4
7
|
import winston from 'winston'
|
|
5
8
|
|
|
6
9
|
import detectNetlifyLambdaBuilder from './builders/netlify-lambda.mjs'
|
|
7
|
-
import detectZisiBuilder, {
|
|
10
|
+
import detectZisiBuilder, { parseFunctionForMetadata } from './builders/zisi.mjs'
|
|
11
|
+
import { SECONDS_TO_MILLISECONDS } from './constants.mjs'
|
|
8
12
|
|
|
9
13
|
export const name = 'js'
|
|
10
14
|
|
|
11
|
-
const SECONDS_TO_MILLISECONDS = 1000
|
|
12
|
-
|
|
13
15
|
let netlifyLambdaDetectorCache
|
|
14
16
|
|
|
15
17
|
const logger = winston.createLogger({
|
|
@@ -37,7 +39,8 @@ export const getBuildFunction = async ({ config, directory, errorExit, func, pro
|
|
|
37
39
|
return netlifyLambdaBuilder.build
|
|
38
40
|
}
|
|
39
41
|
|
|
40
|
-
const
|
|
42
|
+
const metadata = await parseFunctionForMetadata({ mainFile: func.mainFile, config, projectRoot })
|
|
43
|
+
const zisiBuilder = await detectZisiBuilder({ config, directory, errorExit, func, metadata, projectRoot })
|
|
41
44
|
|
|
42
45
|
if (zisiBuilder) {
|
|
43
46
|
return zisiBuilder.build
|
|
@@ -48,15 +51,55 @@ export const getBuildFunction = async ({ config, directory, errorExit, func, pro
|
|
|
48
51
|
// main file otherwise.
|
|
49
52
|
const functionDirectory = dirname(func.mainFile)
|
|
50
53
|
const srcFiles = functionDirectory === directory ? [func.mainFile] : [functionDirectory]
|
|
51
|
-
const schedule = await parseForSchedule({ mainFile: func.mainFile, config, projectRoot })
|
|
52
54
|
|
|
53
|
-
return () => ({ schedule, srcFiles })
|
|
55
|
+
return () => ({ schedule: metadata.schedule, srcFiles })
|
|
54
56
|
}
|
|
55
57
|
|
|
58
|
+
const workerURL = new URL('worker.mjs', import.meta.url)
|
|
59
|
+
|
|
56
60
|
export const invokeFunction = async ({ context, event, func, timeout }) => {
|
|
61
|
+
if (func.buildData.runtimeAPIVersion !== 2) {
|
|
62
|
+
return await invokeFunctionDirectly({ context, event, func, timeout })
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const workerData = {
|
|
66
|
+
clientContext: JSON.stringify(context),
|
|
67
|
+
event,
|
|
68
|
+
// If a function builder has defined a `buildPath` property, we use it.
|
|
69
|
+
// Otherwise, we'll invoke the function's main file.
|
|
70
|
+
// Because we use import() we have to use file:// URLs for Windows.
|
|
71
|
+
entryFilePath: pathToFileURL(func.buildData?.buildPath ?? func.mainFile).href,
|
|
72
|
+
timeoutMs: timeout * SECONDS_TO_MILLISECONDS,
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const worker = new Worker(workerURL, { workerData })
|
|
76
|
+
return await new Promise((resolve, reject) => {
|
|
77
|
+
worker.on('message', (result) => {
|
|
78
|
+
if (result?.streamPort) {
|
|
79
|
+
const client = createConnection(
|
|
80
|
+
{
|
|
81
|
+
port: result.streamPort,
|
|
82
|
+
host: 'localhost',
|
|
83
|
+
},
|
|
84
|
+
() => {
|
|
85
|
+
result.body = client
|
|
86
|
+
resolve(result)
|
|
87
|
+
},
|
|
88
|
+
)
|
|
89
|
+
client.on('error', reject)
|
|
90
|
+
} else {
|
|
91
|
+
resolve(result)
|
|
92
|
+
}
|
|
93
|
+
})
|
|
94
|
+
|
|
95
|
+
worker.on('error', reject)
|
|
96
|
+
})
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export const invokeFunctionDirectly = async ({ context, event, func, timeout }) => {
|
|
57
100
|
// If a function builder has defined a `buildPath` property, we use it.
|
|
58
101
|
// Otherwise, we'll invoke the function's main file.
|
|
59
|
-
const lambdaPath =
|
|
102
|
+
const lambdaPath = func.buildData?.buildPath ?? func.mainFile
|
|
60
103
|
const result = await lambdaLocal.execute({
|
|
61
104
|
clientContext: JSON.stringify(context),
|
|
62
105
|
event,
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { createServer } from 'net'
|
|
2
|
+
import { isMainThread, workerData, parentPort } from 'worker_threads'
|
|
3
|
+
|
|
4
|
+
import lambdaLocal from '@skn0tt/lambda-local'
|
|
5
|
+
import { isStream } from 'is-stream'
|
|
6
|
+
import sourceMapSupport from 'source-map-support'
|
|
7
|
+
|
|
8
|
+
if (isMainThread) {
|
|
9
|
+
throw new Error(`Do not import "${import.meta.url}" in the main thread.`)
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
sourceMapSupport.install()
|
|
13
|
+
|
|
14
|
+
lambdaLocal.getLogger().level = 'warn'
|
|
15
|
+
|
|
16
|
+
const { clientContext, entryFilePath, event, timeoutMs } = workerData
|
|
17
|
+
|
|
18
|
+
const lambdaFunc = await import(entryFilePath)
|
|
19
|
+
|
|
20
|
+
const result = await lambdaLocal.execute({
|
|
21
|
+
clientContext,
|
|
22
|
+
event,
|
|
23
|
+
lambdaFunc,
|
|
24
|
+
region: 'dev',
|
|
25
|
+
timeoutMs,
|
|
26
|
+
verboseLevel: 3,
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
// When the result body is a StreamResponse
|
|
30
|
+
// we open up a http server that proxies back to the main thread.
|
|
31
|
+
if (result && isStream(result.body)) {
|
|
32
|
+
const { body } = result
|
|
33
|
+
delete result.body
|
|
34
|
+
await new Promise((resolve, reject) => {
|
|
35
|
+
const server = createServer((socket) => {
|
|
36
|
+
body.pipe(socket).on('end', () => server.close())
|
|
37
|
+
})
|
|
38
|
+
server.on('error', (error) => {
|
|
39
|
+
reject(error)
|
|
40
|
+
})
|
|
41
|
+
server.listen({ port: 0, host: 'localhost' }, () => {
|
|
42
|
+
const { port } = server.address()
|
|
43
|
+
result.streamPort = port
|
|
44
|
+
resolve()
|
|
45
|
+
})
|
|
46
|
+
})
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
parentPort.postMessage(result)
|
|
@@ -3,6 +3,8 @@ import jwtDecode from 'jwt-decode'
|
|
|
3
3
|
|
|
4
4
|
import { NETLIFYDEVERR, NETLIFYDEVLOG, error as errorExit, log } from '../../utils/command-helpers.mjs'
|
|
5
5
|
import { CLOCKWORK_USERAGENT, getFunctionsDistPath, getInternalFunctionsDir } from '../../utils/functions/index.mjs'
|
|
6
|
+
import { headers as efHeaders } from '../edge-functions/headers.mjs'
|
|
7
|
+
import { getGeoLocation } from '../geo-location.mjs'
|
|
6
8
|
|
|
7
9
|
import { handleBackgroundFunction, handleBackgroundFunctionResult } from './background.mjs'
|
|
8
10
|
import { createFormSubmissionHandler } from './form-submissions-handler.mjs'
|
|
@@ -102,10 +104,15 @@ export const createHandler = function (options) {
|
|
|
102
104
|
(prev, [key, value]) => ({ ...prev, [key]: Array.isArray(value) ? value : [value] }),
|
|
103
105
|
{},
|
|
104
106
|
)
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
|
|
108
|
+
const geoLocation = await getGeoLocation({ ...options, mode: options.geo })
|
|
109
|
+
|
|
110
|
+
const headers = Object.entries({
|
|
111
|
+
...request.headers,
|
|
112
|
+
'client-ip': [remoteAddress],
|
|
113
|
+
'x-nf-client-connection-ip': [remoteAddress],
|
|
114
|
+
[efHeaders.Geo]: JSON.stringify(geoLocation),
|
|
115
|
+
}).reduce((prev, [key, value]) => ({ ...prev, [key]: Array.isArray(value) ? value : [value] }), {})
|
|
109
116
|
const rawQuery = new URLSearchParams(requestQuery).toString()
|
|
110
117
|
const protocol = options.config?.dev?.https ? 'https' : 'http'
|
|
111
118
|
const url = new URL(requestPath, `${protocol}://${request.get('host') || 'localhost'}`)
|
|
@@ -73,7 +73,7 @@ const formatLambdaLocalError = (err, acceptsHtml) =>
|
|
|
73
73
|
errorMessage: err.errorMessage,
|
|
74
74
|
trace: err.stackTrace,
|
|
75
75
|
})
|
|
76
|
-
: `${err.errorType}: ${err.errorMessage}\n ${err.stackTrace
|
|
76
|
+
: `${err.errorType}: ${err.errorMessage}\n ${err.stackTrace?.join('\n ')}`
|
|
77
77
|
|
|
78
78
|
const processRenderedResponse = async (err, request) => {
|
|
79
79
|
const acceptsHtml = request.headers && request.headers.accept && request.headers.accept.includes('text/html')
|
|
@@ -102,7 +102,7 @@ const validateLambdaResponse = (lambdaResponse) => {
|
|
|
102
102
|
}
|
|
103
103
|
if (!Number(lambdaResponse.statusCode)) {
|
|
104
104
|
return {
|
|
105
|
-
error: `Your function response must have a numerical statusCode. You gave: $
|
|
105
|
+
error: `Your function response must have a numerical statusCode. You gave: ${lambdaResponse.statusCode}`,
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
if (lambdaResponse.body && typeof lambdaResponse.body !== 'string' && !isStream(lambdaResponse.body)) {
|
package/src/utils/execa.mjs
CHANGED