netlify-cli 10.3.3 → 10.4.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.
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "netlify-cli",
3
- "version": "10.3.3",
3
+ "version": "10.4.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "netlify-cli",
9
- "version": "10.3.3",
9
+ "version": "10.4.0",
10
10
  "hasInstallScript": true,
11
11
  "license": "MIT",
12
12
  "dependencies": {
@@ -15,7 +15,7 @@
15
15
  "@netlify/edge-bundler": "^1.2.0",
16
16
  "@netlify/framework-info": "^9.0.2",
17
17
  "@netlify/local-functions-proxy": "^1.1.1",
18
- "@netlify/plugins-list": "^6.25.0",
18
+ "@netlify/plugins-list": "^6.26.0",
19
19
  "@netlify/zip-it-and-ship-it": "^5.9.2",
20
20
  "@octokit/rest": "^18.0.0",
21
21
  "@sindresorhus/slugify": "^1.1.0",
@@ -391,9 +391,9 @@
391
391
  }
392
392
  },
393
393
  "node_modules/@babel/helper-plugin-utils": {
394
- "version": "7.16.7",
395
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz",
396
- "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==",
394
+ "version": "7.17.12",
395
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz",
396
+ "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==",
397
397
  "dev": true,
398
398
  "engines": {
399
399
  "node": ">=6.9.0"
@@ -530,12 +530,12 @@
530
530
  }
531
531
  },
532
532
  "node_modules/@babel/plugin-syntax-jsx": {
533
- "version": "7.16.7",
534
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz",
535
- "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==",
533
+ "version": "7.17.12",
534
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz",
535
+ "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==",
536
536
  "dev": true,
537
537
  "dependencies": {
538
- "@babel/helper-plugin-utils": "^7.16.7"
538
+ "@babel/helper-plugin-utils": "^7.17.12"
539
539
  },
540
540
  "engines": {
541
541
  "node": ">=6.9.0"
@@ -560,16 +560,16 @@
560
560
  }
561
561
  },
562
562
  "node_modules/@babel/plugin-transform-react-jsx": {
563
- "version": "7.16.7",
564
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz",
565
- "integrity": "sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==",
563
+ "version": "7.17.12",
564
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz",
565
+ "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==",
566
566
  "dev": true,
567
567
  "dependencies": {
568
568
  "@babel/helper-annotate-as-pure": "^7.16.7",
569
569
  "@babel/helper-module-imports": "^7.16.7",
570
- "@babel/helper-plugin-utils": "^7.16.7",
571
- "@babel/plugin-syntax-jsx": "^7.16.7",
572
- "@babel/types": "^7.16.7"
570
+ "@babel/helper-plugin-utils": "^7.17.12",
571
+ "@babel/plugin-syntax-jsx": "^7.17.12",
572
+ "@babel/types": "^7.17.12"
573
573
  },
574
574
  "engines": {
575
575
  "node": ">=6.9.0"
@@ -610,15 +610,15 @@
610
610
  }
611
611
  },
612
612
  "node_modules/@babel/preset-react": {
613
- "version": "7.16.7",
614
- "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz",
615
- "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==",
613
+ "version": "7.17.12",
614
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.17.12.tgz",
615
+ "integrity": "sha512-h5U+rwreXtZaRBEQhW1hOJLMq8XNJBQ/9oymXiCXTuT/0uOwpbT0gUt+sXeOqoXBgNuUKI7TaObVwoEyWkpFgA==",
616
616
  "dev": true,
617
617
  "dependencies": {
618
- "@babel/helper-plugin-utils": "^7.16.7",
618
+ "@babel/helper-plugin-utils": "^7.17.12",
619
619
  "@babel/helper-validator-option": "^7.16.7",
620
620
  "@babel/plugin-transform-react-display-name": "^7.16.7",
621
- "@babel/plugin-transform-react-jsx": "^7.16.7",
621
+ "@babel/plugin-transform-react-jsx": "^7.17.12",
622
622
  "@babel/plugin-transform-react-jsx-development": "^7.16.7",
623
623
  "@babel/plugin-transform-react-pure-annotations": "^7.16.7"
624
624
  },
@@ -665,9 +665,9 @@
665
665
  }
666
666
  },
667
667
  "node_modules/@babel/types": {
668
- "version": "7.17.0",
669
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz",
670
- "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==",
668
+ "version": "7.18.4",
669
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz",
670
+ "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==",
671
671
  "dev": true,
672
672
  "dependencies": {
673
673
  "@babel/helper-validator-identifier": "^7.16.7",
@@ -3618,9 +3618,9 @@
3618
3618
  "integrity": "sha512-lfNB/QYDgaP07pwm/nWEaWPvRAAGyhxvJqNzvxMijc7A4uwquMjlbYve8yYyd0LJXPwgBpGobwiQj5RA76xzUQ=="
3619
3619
  },
3620
3620
  "node_modules/@netlify/plugins-list": {
3621
- "version": "6.25.0",
3622
- "resolved": "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-6.25.0.tgz",
3623
- "integrity": "sha512-WFiWpZypNksiA2b6DihGJBtD0nWhYkpiXkN+Y9kCpSehQfKaE9Ma/+KGxElC93J8Bf9KYeIf1a2hEIeAIFqC7w==",
3621
+ "version": "6.26.0",
3622
+ "resolved": "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-6.26.0.tgz",
3623
+ "integrity": "sha512-Hl3wCMMLo4En9nW0y+lHWXmxAHqCI01ItT4hQrClsMmImi3rHwHC7Gd3DpNfsqLXZhK1bmcWYxq06N/uwwtihA==",
3624
3624
  "engines": {
3625
3625
  "node": "^12.20.0 || ^14.14.0 || >=16.0.0"
3626
3626
  }
@@ -6482,9 +6482,9 @@
6482
6482
  }
6483
6483
  },
6484
6484
  "node_modules/c8": {
6485
- "version": "7.11.2",
6486
- "resolved": "https://registry.npmjs.org/c8/-/c8-7.11.2.tgz",
6487
- "integrity": "sha512-6ahJSrhS6TqSghHm+HnWt/8Y2+z0hM/FQyB1ybKhAR30+NYL9CTQ1uwHxuWw6U7BHlHv6wvhgOrH81I+lfCkxg==",
6485
+ "version": "7.11.3",
6486
+ "resolved": "https://registry.npmjs.org/c8/-/c8-7.11.3.tgz",
6487
+ "integrity": "sha512-6YBmsaNmqRm9OS3ZbIiL2EZgi1+Xc4O24jL3vMYGE6idixYuGdy76rIfIdltSKDj9DpLNrcXSonUTR1miBD0wA==",
6488
6488
  "dev": true,
6489
6489
  "dependencies": {
6490
6490
  "@bcoe/v8-coverage": "^0.2.3",
@@ -6835,9 +6835,9 @@
6835
6835
  "dev": true
6836
6836
  },
6837
6837
  "node_modules/ci-info": {
6838
- "version": "3.3.0",
6839
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz",
6840
- "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw=="
6838
+ "version": "3.3.1",
6839
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz",
6840
+ "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg=="
6841
6841
  },
6842
6842
  "node_modules/ci-parallel-vars": {
6843
6843
  "version": "1.0.1",
@@ -8943,9 +8943,9 @@
8943
8943
  }
8944
8944
  },
8945
8945
  "node_modules/del": {
8946
- "version": "6.0.0",
8947
- "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz",
8948
- "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==",
8946
+ "version": "6.1.1",
8947
+ "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz",
8948
+ "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==",
8949
8949
  "dependencies": {
8950
8950
  "globby": "^11.0.1",
8951
8951
  "graceful-fs": "^4.2.4",
@@ -23717,9 +23717,9 @@
23717
23717
  }
23718
23718
  },
23719
23719
  "@babel/helper-plugin-utils": {
23720
- "version": "7.16.7",
23721
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz",
23722
- "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==",
23720
+ "version": "7.17.12",
23721
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz",
23722
+ "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==",
23723
23723
  "dev": true
23724
23724
  },
23725
23725
  "@babel/helper-simple-access": {
@@ -23816,12 +23816,12 @@
23816
23816
  "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw=="
23817
23817
  },
23818
23818
  "@babel/plugin-syntax-jsx": {
23819
- "version": "7.16.7",
23820
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz",
23821
- "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==",
23819
+ "version": "7.17.12",
23820
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz",
23821
+ "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==",
23822
23822
  "dev": true,
23823
23823
  "requires": {
23824
- "@babel/helper-plugin-utils": "^7.16.7"
23824
+ "@babel/helper-plugin-utils": "^7.17.12"
23825
23825
  }
23826
23826
  },
23827
23827
  "@babel/plugin-transform-react-display-name": {
@@ -23834,16 +23834,16 @@
23834
23834
  }
23835
23835
  },
23836
23836
  "@babel/plugin-transform-react-jsx": {
23837
- "version": "7.16.7",
23838
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz",
23839
- "integrity": "sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==",
23837
+ "version": "7.17.12",
23838
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz",
23839
+ "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==",
23840
23840
  "dev": true,
23841
23841
  "requires": {
23842
23842
  "@babel/helper-annotate-as-pure": "^7.16.7",
23843
23843
  "@babel/helper-module-imports": "^7.16.7",
23844
- "@babel/helper-plugin-utils": "^7.16.7",
23845
- "@babel/plugin-syntax-jsx": "^7.16.7",
23846
- "@babel/types": "^7.16.7"
23844
+ "@babel/helper-plugin-utils": "^7.17.12",
23845
+ "@babel/plugin-syntax-jsx": "^7.17.12",
23846
+ "@babel/types": "^7.17.12"
23847
23847
  }
23848
23848
  },
23849
23849
  "@babel/plugin-transform-react-jsx-development": {
@@ -23866,15 +23866,15 @@
23866
23866
  }
23867
23867
  },
23868
23868
  "@babel/preset-react": {
23869
- "version": "7.16.7",
23870
- "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz",
23871
- "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==",
23869
+ "version": "7.17.12",
23870
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.17.12.tgz",
23871
+ "integrity": "sha512-h5U+rwreXtZaRBEQhW1hOJLMq8XNJBQ/9oymXiCXTuT/0uOwpbT0gUt+sXeOqoXBgNuUKI7TaObVwoEyWkpFgA==",
23872
23872
  "dev": true,
23873
23873
  "requires": {
23874
- "@babel/helper-plugin-utils": "^7.16.7",
23874
+ "@babel/helper-plugin-utils": "^7.17.12",
23875
23875
  "@babel/helper-validator-option": "^7.16.7",
23876
23876
  "@babel/plugin-transform-react-display-name": "^7.16.7",
23877
- "@babel/plugin-transform-react-jsx": "^7.16.7",
23877
+ "@babel/plugin-transform-react-jsx": "^7.17.12",
23878
23878
  "@babel/plugin-transform-react-jsx-development": "^7.16.7",
23879
23879
  "@babel/plugin-transform-react-pure-annotations": "^7.16.7"
23880
23880
  }
@@ -23909,9 +23909,9 @@
23909
23909
  }
23910
23910
  },
23911
23911
  "@babel/types": {
23912
- "version": "7.17.0",
23913
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz",
23914
- "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==",
23912
+ "version": "7.18.4",
23913
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz",
23914
+ "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==",
23915
23915
  "dev": true,
23916
23916
  "requires": {
23917
23917
  "@babel/helper-validator-identifier": "^7.16.7",
@@ -25750,9 +25750,9 @@
25750
25750
  "integrity": "sha512-lfNB/QYDgaP07pwm/nWEaWPvRAAGyhxvJqNzvxMijc7A4uwquMjlbYve8yYyd0LJXPwgBpGobwiQj5RA76xzUQ=="
25751
25751
  },
25752
25752
  "@netlify/plugins-list": {
25753
- "version": "6.25.0",
25754
- "resolved": "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-6.25.0.tgz",
25755
- "integrity": "sha512-WFiWpZypNksiA2b6DihGJBtD0nWhYkpiXkN+Y9kCpSehQfKaE9Ma/+KGxElC93J8Bf9KYeIf1a2hEIeAIFqC7w=="
25753
+ "version": "6.26.0",
25754
+ "resolved": "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-6.26.0.tgz",
25755
+ "integrity": "sha512-Hl3wCMMLo4En9nW0y+lHWXmxAHqCI01ItT4hQrClsMmImi3rHwHC7Gd3DpNfsqLXZhK1bmcWYxq06N/uwwtihA=="
25756
25756
  },
25757
25757
  "@netlify/run-utils": {
25758
25758
  "version": "4.0.1",
@@ -27939,9 +27939,9 @@
27939
27939
  "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
27940
27940
  },
27941
27941
  "c8": {
27942
- "version": "7.11.2",
27943
- "resolved": "https://registry.npmjs.org/c8/-/c8-7.11.2.tgz",
27944
- "integrity": "sha512-6ahJSrhS6TqSghHm+HnWt/8Y2+z0hM/FQyB1ybKhAR30+NYL9CTQ1uwHxuWw6U7BHlHv6wvhgOrH81I+lfCkxg==",
27942
+ "version": "7.11.3",
27943
+ "resolved": "https://registry.npmjs.org/c8/-/c8-7.11.3.tgz",
27944
+ "integrity": "sha512-6YBmsaNmqRm9OS3ZbIiL2EZgi1+Xc4O24jL3vMYGE6idixYuGdy76rIfIdltSKDj9DpLNrcXSonUTR1miBD0wA==",
27945
27945
  "dev": true,
27946
27946
  "requires": {
27947
27947
  "@bcoe/v8-coverage": "^0.2.3",
@@ -28192,9 +28192,9 @@
28192
28192
  "dev": true
28193
28193
  },
28194
28194
  "ci-info": {
28195
- "version": "3.3.0",
28196
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz",
28197
- "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw=="
28195
+ "version": "3.3.1",
28196
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz",
28197
+ "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg=="
28198
28198
  },
28199
28199
  "ci-parallel-vars": {
28200
28200
  "version": "1.0.1",
@@ -29856,9 +29856,9 @@
29856
29856
  }
29857
29857
  },
29858
29858
  "del": {
29859
- "version": "6.0.0",
29860
- "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz",
29861
- "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==",
29859
+ "version": "6.1.1",
29860
+ "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz",
29861
+ "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==",
29862
29862
  "requires": {
29863
29863
  "globby": "^11.0.1",
29864
29864
  "graceful-fs": "^4.2.4",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "netlify-cli",
3
3
  "description": "Netlify command line tool",
4
- "version": "10.3.3",
4
+ "version": "10.4.0",
5
5
  "author": "Netlify Inc.",
6
6
  "contributors": [
7
7
  "Abraham Schilling <AbrahamSchilling@gmail.com> (https://gitlab.com/n4bb12)",
@@ -122,6 +122,7 @@
122
122
  "Tim Perry (https://twitter.com/pimterry)",
123
123
  "Tim Trautman (timtrautman.com)",
124
124
  "Tom Dyson (https://wagtail.io/)",
125
+ "Tom Hu (https://twitter.com/thomasrockhu)",
125
126
  "Travis Horn <travis@travishorn.com> (https://twitter.com/horn_travis)",
126
127
  "Try Ajitiono <ballinst@gmail.com> (https://twitter.com/Ajiballinst)",
127
128
  "Victor Dadfar",
@@ -213,7 +214,7 @@
213
214
  "@netlify/edge-bundler": "^1.2.0",
214
215
  "@netlify/framework-info": "^9.0.2",
215
216
  "@netlify/local-functions-proxy": "^1.1.1",
216
- "@netlify/plugins-list": "^6.25.0",
217
+ "@netlify/plugins-list": "^6.26.0",
217
218
  "@netlify/zip-it-and-ship-it": "^5.9.2",
218
219
  "@octokit/rest": "^18.0.0",
219
220
  "@sindresorhus/slugify": "^1.1.0",
@@ -27,6 +27,7 @@ const {
27
27
  readGraphQLOperationsSourceFile,
28
28
  } = require('../../lib/one-graph/cli-netlify-graph')
29
29
  const {
30
+ BANG,
30
31
  NETLIFYDEV,
31
32
  NETLIFYDEVERR,
32
33
  NETLIFYDEVLOG,
@@ -195,11 +196,19 @@ const startFrameworkServer = async function ({ settings }) {
195
196
  // 10 minutes
196
197
  const FRAMEWORK_PORT_TIMEOUT = 6e5
197
198
 
199
+ /**
200
+ * @typedef {Object} InspectSettings
201
+ * @property {boolean} enabled - Inspect enabled
202
+ * @property {boolean} pause - Pause on breakpoints
203
+ * @property {string|undefined} address - Host/port override (optional)
204
+ */
205
+
198
206
  /**
199
207
  *
200
208
  * @param {object} params
201
209
  * @param {*} params.addonsUrls
202
210
  * @param {import('../base-command').NetlifyOptions["config"]} params.config
211
+ * @param {InspectSettings} params.inspectSettings
203
212
  * @param {() => Promise<object>} params.getUpdatedConfig
204
213
  * @param {string} params.geolocationMode
205
214
  * @param {*} params.settings
@@ -213,6 +222,7 @@ const startProxyServer = async ({
213
222
  config,
214
223
  geolocationMode,
215
224
  getUpdatedConfig,
225
+ inspectSettings,
216
226
  offline,
217
227
  settings,
218
228
  site,
@@ -224,6 +234,7 @@ const startProxyServer = async ({
224
234
  configPath: site.configPath,
225
235
  geolocationMode,
226
236
  getUpdatedConfig,
237
+ inspectSettings,
227
238
  offline,
228
239
  projectDir: site.root,
229
240
  settings,
@@ -312,6 +323,46 @@ const startPollingForAPIAuthentication = async function (options) {
312
323
  await helper(siteInfo)
313
324
  }
314
325
 
326
+ /**
327
+ * @param {boolean|string} edgeInspect
328
+ * @param {boolean|string} edgeInspectBrk
329
+ * @returns {InspectSettings}
330
+ */
331
+ const generateInspectSettings = (edgeInspect, edgeInspectBrk) => {
332
+ const enabled = Boolean(edgeInspect) || Boolean(edgeInspectBrk)
333
+ const pause = Boolean(edgeInspectBrk)
334
+ const getAddress = () => {
335
+ if (edgeInspect) {
336
+ return typeof edgeInspect === 'string' ? edgeInspect : undefined
337
+ }
338
+ if (edgeInspectBrk) {
339
+ return typeof edgeInspectBrk === 'string' ? edgeInspectBrk : undefined
340
+ }
341
+ }
342
+
343
+ return {
344
+ enabled,
345
+ pause,
346
+ address: getAddress(),
347
+ }
348
+ }
349
+
350
+ const validateShortFlagArgs = (args) => {
351
+ if (args.startsWith('=')) {
352
+ throw new Error(
353
+ `Short flag options like -e or -E don't support the '=' sign
354
+ ${chalk.red(BANG)} Supported formats:
355
+ netlify dev -e
356
+ netlify dev -e 127.0.0.1:9229
357
+ netlify dev -e127.0.0.1:9229
358
+ netlify dev -E
359
+ netlify dev -E 127.0.0.1:9229
360
+ netlify dev -E127.0.0.1:9229`,
361
+ )
362
+ }
363
+ return args
364
+ }
365
+
315
366
  /**
316
367
  * The dev command
317
368
  * @param {import('commander').OptionValues} options
@@ -380,11 +431,14 @@ const dev = async (options, command) => {
380
431
  return normalizedNewConfig
381
432
  }
382
433
 
434
+ const inspectSettings = generateInspectSettings(options.edgeInspect, options.edgeInspectBrk)
435
+
383
436
  let url = await startProxyServer({
384
437
  addonsUrls,
385
438
  config,
386
439
  geolocationMode: options.geo,
387
440
  getUpdatedConfig,
441
+ inspectSettings,
388
442
  offline: options.offline,
389
443
  settings,
390
444
  site,
@@ -522,11 +576,31 @@ const createDevCommand = (program) => {
522
576
  .hideHelp(),
523
577
  )
524
578
  .addOption(new Option('--graph', 'enable Netlify Graph support').hideHelp())
579
+ .addOption(
580
+ new Option(
581
+ '-e, --edgeInspect [address]',
582
+ 'enable the V8 Inspector Protocol for Edge Functions, with an optional address in the host:port format',
583
+ )
584
+ .conflicts('edgeInspectBrk')
585
+ .argParser(validateShortFlagArgs),
586
+ )
587
+ .addOption(
588
+ new Option(
589
+ '-E, --edgeInspectBrk [address]',
590
+ 'enable the V8 Inspector Protocol for Edge Functions and pause execution on the first line of code, with an optional address in the host:port format',
591
+ )
592
+ .conflicts('edgeInspect')
593
+ .argParser(validateShortFlagArgs),
594
+ )
525
595
  .addExamples([
526
596
  'netlify dev',
527
597
  'netlify dev -d public',
528
598
  'netlify dev -c "hugo server -w" --targetPort 1313',
529
599
  'netlify dev --graph',
600
+ 'netlify dev --edgeInspect',
601
+ 'netlify dev --edgeInspect=127.0.0.1:9229',
602
+ 'netlify dev --edgeInspectBrk',
603
+ 'netlify dev --edgeInspectBrk=127.0.0.1:9229',
530
604
  'BROWSER=none netlify dev # disable browser auto opening',
531
605
  ])
532
606
  .action(dev)
@@ -26,9 +26,9 @@
26
26
  }
27
27
  },
28
28
  "node_modules/@types/node": {
29
- "version": "14.18.16",
30
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.16.tgz",
31
- "integrity": "sha512-X3bUMdK/VmvrWdoTkz+VCn6nwKwrKCFTHtqwBIaQJNx4RUIBBUFXM00bqPz/DsDd+Icjmzm6/tyYZzeGVqb6/Q=="
29
+ "version": "14.18.18",
30
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.18.tgz",
31
+ "integrity": "sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig=="
32
32
  },
33
33
  "node_modules/is-promise": {
34
34
  "version": "4.0.0",
@@ -58,9 +58,9 @@
58
58
  }
59
59
  },
60
60
  "@types/node": {
61
- "version": "14.18.16",
62
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.16.tgz",
63
- "integrity": "sha512-X3bUMdK/VmvrWdoTkz+VCn6nwKwrKCFTHtqwBIaQJNx4RUIBBUFXM00bqPz/DsDd+Icjmzm6/tyYZzeGVqb6/Q=="
61
+ "version": "14.18.18",
62
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.18.tgz",
63
+ "integrity": "sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig=="
64
64
  },
65
65
  "is-promise": {
66
66
  "version": "4.0.0",
@@ -47,6 +47,7 @@ const initializeProxy = async ({
47
47
  configPath,
48
48
  geolocationMode,
49
49
  getUpdatedConfig,
50
+ inspectSettings,
50
51
  offline,
51
52
  projectDir,
52
53
  settings,
@@ -67,6 +68,7 @@ const initializeProxy = async ({
67
68
  directories: [internalFunctionsPath, userFunctionsPath].filter(Boolean),
68
69
  getUpdatedConfig,
69
70
  importMaps: [importMap].filter(Boolean),
71
+ inspectSettings,
70
72
  internalFunctions,
71
73
  port: isolatePort,
72
74
  projectDir,
@@ -133,6 +135,7 @@ const prepareServer = async ({
133
135
  directories,
134
136
  getUpdatedConfig,
135
137
  importMaps,
138
+ inspectSettings,
136
139
  internalFunctions,
137
140
  port,
138
141
  projectDir,
@@ -150,6 +153,7 @@ const prepareServer = async ({
150
153
  )}. The file does not seem to have a function as the default export.`,
151
154
  formatImportError: (name) => `${NETLIFYDEVERR} ${chalk.red('Failed')} to run Edge Function ${chalk.yellow(name)}:`,
152
155
  importMaps,
156
+ inspectSettings,
153
157
  port,
154
158
  })
155
159
  const registry = new EdgeFunctionsRegistry({
@@ -54,11 +54,12 @@ const invokeFunction = async ({ context, event, func, timeout }) => {
54
54
  })
55
55
 
56
56
  try {
57
- const { body, headers, statusCode } = JSON.parse(stdout)
57
+ const { body, headers, multiValueHeaders, statusCode } = JSON.parse(stdout)
58
58
 
59
59
  return {
60
60
  body,
61
61
  headers,
62
+ multiValueHeaders,
62
63
  statusCode,
63
64
  }
64
65
  } catch {
@@ -467,6 +467,7 @@ const startProxy = async function ({
467
467
  configPath,
468
468
  geolocationMode,
469
469
  getUpdatedConfig,
470
+ inspectSettings,
470
471
  offline,
471
472
  projectDir,
472
473
  settings,
@@ -478,6 +479,7 @@ const startProxy = async function ({
478
479
  configPath,
479
480
  geolocationMode,
480
481
  getUpdatedConfig,
482
+ inspectSettings,
481
483
  offline,
482
484
  projectDir,
483
485
  settings,