netlify-cli 10.11.0 → 10.12.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,17 +1,17 @@
1
1
  {
2
2
  "name": "netlify-cli",
3
- "version": "10.11.0",
3
+ "version": "10.12.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "netlify-cli",
9
- "version": "10.11.0",
9
+ "version": "10.12.0",
10
10
  "hasInstallScript": true,
11
11
  "license": "MIT",
12
12
  "dependencies": {
13
- "@netlify/build": "^27.4.2",
14
- "@netlify/config": "^18.1.1",
13
+ "@netlify/build": "^27.5.0",
14
+ "@netlify/config": "^18.1.2",
15
15
  "@netlify/edge-bundler": "^1.7.0",
16
16
  "@netlify/framework-info": "^9.1.1",
17
17
  "@netlify/local-functions-proxy": "^1.1.1",
@@ -81,7 +81,7 @@
81
81
  "multiparty": "^4.2.1",
82
82
  "netlify": "^12.0.0",
83
83
  "netlify-headers-parser": "^6.0.2",
84
- "netlify-onegraph-internal": "0.3.6",
84
+ "netlify-onegraph-internal": "0.3.8",
85
85
  "netlify-redirect-parser": "^13.0.5",
86
86
  "netlify-redirector": "^0.2.1",
87
87
  "node-fetch": "^2.6.0",
@@ -1189,14 +1189,14 @@
1189
1189
  "integrity": "sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw=="
1190
1190
  },
1191
1191
  "node_modules/@netlify/build": {
1192
- "version": "27.4.2",
1193
- "resolved": "https://registry.npmjs.org/@netlify/build/-/build-27.4.2.tgz",
1194
- "integrity": "sha512-Gs9cyxRQFqxVHm6QTRzN3cdTjx5eAXFTMIEgQJyu9OIxvEpvnuUyih1XtVCQbk8IDsoJkGiUyFdZGbK74vi05g==",
1192
+ "version": "27.5.0",
1193
+ "resolved": "https://registry.npmjs.org/@netlify/build/-/build-27.5.0.tgz",
1194
+ "integrity": "sha512-xsoaYmJEmnyWKMPk+W//WbBrBuZm9Oee9lXj+W8oQTtFaYdmPk4X/QN2+YfkmKOf+E303uRERtDuNOrBIkPOPw==",
1195
1195
  "dependencies": {
1196
1196
  "@bugsnag/js": "^7.0.0",
1197
1197
  "@netlify/cache-utils": "^4.0.0",
1198
- "@netlify/config": "^18.1.1",
1199
- "@netlify/edge-bundler": "^1.6.0",
1198
+ "@netlify/config": "^18.1.2",
1199
+ "@netlify/edge-bundler": "^1.7.0",
1200
1200
  "@netlify/functions-utils": "^4.2.2",
1201
1201
  "@netlify/git-utils": "^4.0.0",
1202
1202
  "@netlify/plugins-list": "^6.35.0",
@@ -1776,9 +1776,9 @@
1776
1776
  }
1777
1777
  },
1778
1778
  "node_modules/@netlify/build/node_modules/read-pkg-up/node_modules/type-fest": {
1779
- "version": "2.16.0",
1780
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.16.0.tgz",
1781
- "integrity": "sha512-qpaThT2HQkFb83gMOrdKVsfCN7LKxP26Yq+smPzY1FqoHRjqmjqHXA7n5Gkxi8efirtbeEUxzfEdePthQWCuHw==",
1779
+ "version": "2.17.0",
1780
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.17.0.tgz",
1781
+ "integrity": "sha512-U+g3/JVXnOki1kLSc+xZGPRll3Ah9u2VIG6Sn9iH9YX6UkPERmt6O/0fIyTgsd2/whV0+gAaHAg8fz6sG1QzMA==",
1782
1782
  "engines": {
1783
1783
  "node": ">=12.20"
1784
1784
  },
@@ -1787,9 +1787,9 @@
1787
1787
  }
1788
1788
  },
1789
1789
  "node_modules/@netlify/build/node_modules/read-pkg/node_modules/type-fest": {
1790
- "version": "2.16.0",
1791
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.16.0.tgz",
1792
- "integrity": "sha512-qpaThT2HQkFb83gMOrdKVsfCN7LKxP26Yq+smPzY1FqoHRjqmjqHXA7n5Gkxi8efirtbeEUxzfEdePthQWCuHw==",
1790
+ "version": "2.17.0",
1791
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.17.0.tgz",
1792
+ "integrity": "sha512-U+g3/JVXnOki1kLSc+xZGPRll3Ah9u2VIG6Sn9iH9YX6UkPERmt6O/0fIyTgsd2/whV0+gAaHAg8fz6sG1QzMA==",
1793
1793
  "engines": {
1794
1794
  "node": ">=12.20"
1795
1795
  },
@@ -1981,9 +1981,9 @@
1981
1981
  }
1982
1982
  },
1983
1983
  "node_modules/@netlify/config": {
1984
- "version": "18.1.1",
1985
- "resolved": "https://registry.npmjs.org/@netlify/config/-/config-18.1.1.tgz",
1986
- "integrity": "sha512-w3rIWV72anBCnAb69rCTnuwkLHhZUgZPf9Gsr0Y5AIf/sWJ7cbxwo9cAewgfqVt7ZOFniiQD5ePOaZOawGdn8A==",
1984
+ "version": "18.1.2",
1985
+ "resolved": "https://registry.npmjs.org/@netlify/config/-/config-18.1.2.tgz",
1986
+ "integrity": "sha512-eOMKqzkAhUjliLCySLqqf2NYpgbxXYIMPZPNocKnVAoKJiuTouZsEI6Pf+BJ9t/4U1JS0OJLF04MEjHJzaWgow==",
1987
1987
  "dependencies": {
1988
1988
  "chalk": "^5.0.0",
1989
1989
  "cron-parser": "^4.1.0",
@@ -1998,7 +1998,7 @@
1998
1998
  "is-plain-obj": "^4.0.0",
1999
1999
  "js-yaml": "^4.0.0",
2000
2000
  "map-obj": "^5.0.0",
2001
- "netlify": "^11.0.2",
2001
+ "netlify": "^12.0.0",
2002
2002
  "netlify-headers-parser": "^6.0.2",
2003
2003
  "netlify-redirect-parser": "13.0.5",
2004
2004
  "omit.js": "^2.0.2",
@@ -2193,40 +2193,6 @@
2193
2193
  "url": "https://github.com/sponsors/sindresorhus"
2194
2194
  }
2195
2195
  },
2196
- "node_modules/@netlify/config/node_modules/netlify": {
2197
- "version": "11.0.4",
2198
- "resolved": "https://registry.npmjs.org/netlify/-/netlify-11.0.4.tgz",
2199
- "integrity": "sha512-pvaFCKkc0pi4CYnM21pNTlQ79zxbnPi8saxT1aslc4zC7gG6A97iIfCQYF7bGWOQgLyaDbmv6A4AWQ7vncDjBg==",
2200
- "dependencies": {
2201
- "@netlify/open-api": "^2.11.0",
2202
- "lodash.camelcase": "^4.3.0",
2203
- "micro-api-client": "^3.3.0",
2204
- "node-fetch": "^3.0.0",
2205
- "omit.js": "^2.0.2",
2206
- "p-wait-for": "^4.0.0",
2207
- "qs": "^6.9.6"
2208
- },
2209
- "engines": {
2210
- "node": "^12.20.0 || ^14.14.0 || >=16.0.0"
2211
- }
2212
- },
2213
- "node_modules/@netlify/config/node_modules/node-fetch": {
2214
- "version": "3.2.9",
2215
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.9.tgz",
2216
- "integrity": "sha512-/2lI+DBecVvVm9tDhjziTVjo2wmTsSxSk58saUYP0P/fRJ3xxtfMDY24+CKTkfm0Dlhyn3CSXNL0SoRiCZ8Rzg==",
2217
- "dependencies": {
2218
- "data-uri-to-buffer": "^4.0.0",
2219
- "fetch-blob": "^3.1.4",
2220
- "formdata-polyfill": "^4.0.10"
2221
- },
2222
- "engines": {
2223
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
2224
- },
2225
- "funding": {
2226
- "type": "opencollective",
2227
- "url": "https://opencollective.com/node-fetch"
2228
- }
2229
- },
2230
2196
  "node_modules/@netlify/config/node_modules/npm-run-path": {
2231
2197
  "version": "5.1.0",
2232
2198
  "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
@@ -2283,31 +2249,6 @@
2283
2249
  "url": "https://github.com/sponsors/sindresorhus"
2284
2250
  }
2285
2251
  },
2286
- "node_modules/@netlify/config/node_modules/p-timeout": {
2287
- "version": "5.1.0",
2288
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz",
2289
- "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==",
2290
- "engines": {
2291
- "node": ">=12"
2292
- },
2293
- "funding": {
2294
- "url": "https://github.com/sponsors/sindresorhus"
2295
- }
2296
- },
2297
- "node_modules/@netlify/config/node_modules/p-wait-for": {
2298
- "version": "4.1.0",
2299
- "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-4.1.0.tgz",
2300
- "integrity": "sha512-i8nE5q++9h8oaQHWltS1Tnnv4IoMDOlqN7C0KFG2OdbK0iFJIt6CROZ8wfBM+K4Pxqfnq4C4lkkpXqTEpB5DZw==",
2301
- "dependencies": {
2302
- "p-timeout": "^5.0.0"
2303
- },
2304
- "engines": {
2305
- "node": ">=12"
2306
- },
2307
- "funding": {
2308
- "url": "https://github.com/sponsors/sindresorhus"
2309
- }
2310
- },
2311
2252
  "node_modules/@netlify/config/node_modules/path-exists": {
2312
2253
  "version": "5.0.0",
2313
2254
  "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
@@ -2350,9 +2291,9 @@
2350
2291
  }
2351
2292
  },
2352
2293
  "node_modules/@netlify/config/node_modules/type-fest": {
2353
- "version": "2.15.1",
2354
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.15.1.tgz",
2355
- "integrity": "sha512-LYSjcIz3NmoQksXq/3/B7Nfad+T8mkaI628agAAnHCpXPTBRMK2ygt3eABpzII8CbZZM8dLdVQ4Gr8ousjFjMw==",
2294
+ "version": "2.17.0",
2295
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.17.0.tgz",
2296
+ "integrity": "sha512-U+g3/JVXnOki1kLSc+xZGPRll3Ah9u2VIG6Sn9iH9YX6UkPERmt6O/0fIyTgsd2/whV0+gAaHAg8fz6sG1QzMA==",
2356
2297
  "engines": {
2357
2298
  "node": ">=12.20"
2358
2299
  },
@@ -6276,9 +6217,9 @@
6276
6217
  }
6277
6218
  },
6278
6219
  "node_modules/c8": {
6279
- "version": "7.11.3",
6280
- "resolved": "https://registry.npmjs.org/c8/-/c8-7.11.3.tgz",
6281
- "integrity": "sha512-6YBmsaNmqRm9OS3ZbIiL2EZgi1+Xc4O24jL3vMYGE6idixYuGdy76rIfIdltSKDj9DpLNrcXSonUTR1miBD0wA==",
6220
+ "version": "7.12.0",
6221
+ "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz",
6222
+ "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==",
6282
6223
  "dev": true,
6283
6224
  "dependencies": {
6284
6225
  "@bcoe/v8-coverage": "^0.2.3",
@@ -16097,9 +16038,9 @@
16097
16038
  }
16098
16039
  },
16099
16040
  "node_modules/netlify-onegraph-internal": {
16100
- "version": "0.3.6",
16101
- "resolved": "https://registry.npmjs.org/netlify-onegraph-internal/-/netlify-onegraph-internal-0.3.6.tgz",
16102
- "integrity": "sha512-nNqCWT2jzPmqw/3/sKf1RFicL2JEFjmxXTpnIzJKt5U+bnS633cOy5pImNnfBGTd50NTNvdZ0GXMhQ7AwH16Qg==",
16041
+ "version": "0.3.8",
16042
+ "resolved": "https://registry.npmjs.org/netlify-onegraph-internal/-/netlify-onegraph-internal-0.3.8.tgz",
16043
+ "integrity": "sha512-ElgiJwQpXwXjHjC0Lhq2woZoJ/l62b1xUIDeg6tC3UF/pQFNIaD0aaIwphoiPfkkkbo5DVLogg9AASt2E0oONQ==",
16103
16044
  "dependencies": {
16104
16045
  "graphql": "16.0.0",
16105
16046
  "node-fetch": "^2.6.0",
@@ -16246,9 +16187,9 @@
16246
16187
  }
16247
16188
  },
16248
16189
  "node_modules/nock": {
16249
- "version": "13.2.8",
16250
- "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.8.tgz",
16251
- "integrity": "sha512-JT42FrXfQRpfyL4cnbBEJdf4nmBpVP0yoCcSBr+xkT8Q1y3pgtaCKHGAAOIFcEJ3O3t0QbVAmid0S0f2bj3Wpg==",
16190
+ "version": "13.2.9",
16191
+ "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz",
16192
+ "integrity": "sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA==",
16252
16193
  "dev": true,
16253
16194
  "dependencies": {
16254
16195
  "debug": "^4.1.0",
@@ -23873,14 +23814,14 @@
23873
23814
  "integrity": "sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw=="
23874
23815
  },
23875
23816
  "@netlify/build": {
23876
- "version": "27.4.2",
23877
- "resolved": "https://registry.npmjs.org/@netlify/build/-/build-27.4.2.tgz",
23878
- "integrity": "sha512-Gs9cyxRQFqxVHm6QTRzN3cdTjx5eAXFTMIEgQJyu9OIxvEpvnuUyih1XtVCQbk8IDsoJkGiUyFdZGbK74vi05g==",
23817
+ "version": "27.5.0",
23818
+ "resolved": "https://registry.npmjs.org/@netlify/build/-/build-27.5.0.tgz",
23819
+ "integrity": "sha512-xsoaYmJEmnyWKMPk+W//WbBrBuZm9Oee9lXj+W8oQTtFaYdmPk4X/QN2+YfkmKOf+E303uRERtDuNOrBIkPOPw==",
23879
23820
  "requires": {
23880
23821
  "@bugsnag/js": "^7.0.0",
23881
23822
  "@netlify/cache-utils": "^4.0.0",
23882
- "@netlify/config": "^18.1.1",
23883
- "@netlify/edge-bundler": "^1.6.0",
23823
+ "@netlify/config": "^18.1.2",
23824
+ "@netlify/edge-bundler": "^1.7.0",
23884
23825
  "@netlify/functions-utils": "^4.2.2",
23885
23826
  "@netlify/git-utils": "^4.0.0",
23886
23827
  "@netlify/plugins-list": "^6.35.0",
@@ -24227,9 +24168,9 @@
24227
24168
  },
24228
24169
  "dependencies": {
24229
24170
  "type-fest": {
24230
- "version": "2.16.0",
24231
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.16.0.tgz",
24232
- "integrity": "sha512-qpaThT2HQkFb83gMOrdKVsfCN7LKxP26Yq+smPzY1FqoHRjqmjqHXA7n5Gkxi8efirtbeEUxzfEdePthQWCuHw=="
24171
+ "version": "2.17.0",
24172
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.17.0.tgz",
24173
+ "integrity": "sha512-U+g3/JVXnOki1kLSc+xZGPRll3Ah9u2VIG6Sn9iH9YX6UkPERmt6O/0fIyTgsd2/whV0+gAaHAg8fz6sG1QzMA=="
24233
24174
  }
24234
24175
  }
24235
24176
  },
@@ -24244,9 +24185,9 @@
24244
24185
  },
24245
24186
  "dependencies": {
24246
24187
  "type-fest": {
24247
- "version": "2.16.0",
24248
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.16.0.tgz",
24249
- "integrity": "sha512-qpaThT2HQkFb83gMOrdKVsfCN7LKxP26Yq+smPzY1FqoHRjqmjqHXA7n5Gkxi8efirtbeEUxzfEdePthQWCuHw=="
24188
+ "version": "2.17.0",
24189
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.17.0.tgz",
24190
+ "integrity": "sha512-U+g3/JVXnOki1kLSc+xZGPRll3Ah9u2VIG6Sn9iH9YX6UkPERmt6O/0fIyTgsd2/whV0+gAaHAg8fz6sG1QzMA=="
24250
24191
  }
24251
24192
  }
24252
24193
  },
@@ -24360,9 +24301,9 @@
24360
24301
  }
24361
24302
  },
24362
24303
  "@netlify/config": {
24363
- "version": "18.1.1",
24364
- "resolved": "https://registry.npmjs.org/@netlify/config/-/config-18.1.1.tgz",
24365
- "integrity": "sha512-w3rIWV72anBCnAb69rCTnuwkLHhZUgZPf9Gsr0Y5AIf/sWJ7cbxwo9cAewgfqVt7ZOFniiQD5ePOaZOawGdn8A==",
24304
+ "version": "18.1.2",
24305
+ "resolved": "https://registry.npmjs.org/@netlify/config/-/config-18.1.2.tgz",
24306
+ "integrity": "sha512-eOMKqzkAhUjliLCySLqqf2NYpgbxXYIMPZPNocKnVAoKJiuTouZsEI6Pf+BJ9t/4U1JS0OJLF04MEjHJzaWgow==",
24366
24307
  "requires": {
24367
24308
  "chalk": "^5.0.0",
24368
24309
  "cron-parser": "^4.1.0",
@@ -24377,7 +24318,7 @@
24377
24318
  "is-plain-obj": "^4.0.0",
24378
24319
  "js-yaml": "^4.0.0",
24379
24320
  "map-obj": "^5.0.0",
24380
- "netlify": "^11.0.2",
24321
+ "netlify": "^12.0.0",
24381
24322
  "netlify-headers-parser": "^6.0.2",
24382
24323
  "netlify-redirect-parser": "13.0.5",
24383
24324
  "omit.js": "^2.0.2",
@@ -24485,30 +24426,6 @@
24485
24426
  "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.2.tgz",
24486
24427
  "integrity": "sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A=="
24487
24428
  },
24488
- "netlify": {
24489
- "version": "11.0.4",
24490
- "resolved": "https://registry.npmjs.org/netlify/-/netlify-11.0.4.tgz",
24491
- "integrity": "sha512-pvaFCKkc0pi4CYnM21pNTlQ79zxbnPi8saxT1aslc4zC7gG6A97iIfCQYF7bGWOQgLyaDbmv6A4AWQ7vncDjBg==",
24492
- "requires": {
24493
- "@netlify/open-api": "^2.11.0",
24494
- "lodash.camelcase": "^4.3.0",
24495
- "micro-api-client": "^3.3.0",
24496
- "node-fetch": "^3.0.0",
24497
- "omit.js": "^2.0.2",
24498
- "p-wait-for": "^4.0.0",
24499
- "qs": "^6.9.6"
24500
- }
24501
- },
24502
- "node-fetch": {
24503
- "version": "3.2.9",
24504
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.9.tgz",
24505
- "integrity": "sha512-/2lI+DBecVvVm9tDhjziTVjo2wmTsSxSk58saUYP0P/fRJ3xxtfMDY24+CKTkfm0Dlhyn3CSXNL0SoRiCZ8Rzg==",
24506
- "requires": {
24507
- "data-uri-to-buffer": "^4.0.0",
24508
- "fetch-blob": "^3.1.4",
24509
- "formdata-polyfill": "^4.0.10"
24510
- }
24511
- },
24512
24429
  "npm-run-path": {
24513
24430
  "version": "5.1.0",
24514
24431
  "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
@@ -24541,19 +24458,6 @@
24541
24458
  "p-limit": "^4.0.0"
24542
24459
  }
24543
24460
  },
24544
- "p-timeout": {
24545
- "version": "5.1.0",
24546
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz",
24547
- "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew=="
24548
- },
24549
- "p-wait-for": {
24550
- "version": "4.1.0",
24551
- "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-4.1.0.tgz",
24552
- "integrity": "sha512-i8nE5q++9h8oaQHWltS1Tnnv4IoMDOlqN7C0KFG2OdbK0iFJIt6CROZ8wfBM+K4Pxqfnq4C4lkkpXqTEpB5DZw==",
24553
- "requires": {
24554
- "p-timeout": "^5.0.0"
24555
- }
24556
- },
24557
24461
  "path-exists": {
24558
24462
  "version": "5.0.0",
24559
24463
  "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
@@ -24575,9 +24479,9 @@
24575
24479
  "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw=="
24576
24480
  },
24577
24481
  "type-fest": {
24578
- "version": "2.15.1",
24579
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.15.1.tgz",
24580
- "integrity": "sha512-LYSjcIz3NmoQksXq/3/B7Nfad+T8mkaI628agAAnHCpXPTBRMK2ygt3eABpzII8CbZZM8dLdVQ4Gr8ousjFjMw=="
24482
+ "version": "2.17.0",
24483
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.17.0.tgz",
24484
+ "integrity": "sha512-U+g3/JVXnOki1kLSc+xZGPRll3Ah9u2VIG6Sn9iH9YX6UkPERmt6O/0fIyTgsd2/whV0+gAaHAg8fz6sG1QzMA=="
24581
24485
  },
24582
24486
  "yocto-queue": {
24583
24487
  "version": "1.0.0",
@@ -27310,9 +27214,9 @@
27310
27214
  "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
27311
27215
  },
27312
27216
  "c8": {
27313
- "version": "7.11.3",
27314
- "resolved": "https://registry.npmjs.org/c8/-/c8-7.11.3.tgz",
27315
- "integrity": "sha512-6YBmsaNmqRm9OS3ZbIiL2EZgi1+Xc4O24jL3vMYGE6idixYuGdy76rIfIdltSKDj9DpLNrcXSonUTR1miBD0wA==",
27217
+ "version": "7.12.0",
27218
+ "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz",
27219
+ "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==",
27316
27220
  "dev": true,
27317
27221
  "requires": {
27318
27222
  "@bcoe/v8-coverage": "^0.2.3",
@@ -34799,9 +34703,9 @@
34799
34703
  }
34800
34704
  },
34801
34705
  "netlify-onegraph-internal": {
34802
- "version": "0.3.6",
34803
- "resolved": "https://registry.npmjs.org/netlify-onegraph-internal/-/netlify-onegraph-internal-0.3.6.tgz",
34804
- "integrity": "sha512-nNqCWT2jzPmqw/3/sKf1RFicL2JEFjmxXTpnIzJKt5U+bnS633cOy5pImNnfBGTd50NTNvdZ0GXMhQ7AwH16Qg==",
34706
+ "version": "0.3.8",
34707
+ "resolved": "https://registry.npmjs.org/netlify-onegraph-internal/-/netlify-onegraph-internal-0.3.8.tgz",
34708
+ "integrity": "sha512-ElgiJwQpXwXjHjC0Lhq2woZoJ/l62b1xUIDeg6tC3UF/pQFNIaD0aaIwphoiPfkkkbo5DVLogg9AASt2E0oONQ==",
34805
34709
  "requires": {
34806
34710
  "graphql": "16.0.0",
34807
34711
  "node-fetch": "^2.6.0",
@@ -34891,9 +34795,9 @@
34891
34795
  }
34892
34796
  },
34893
34797
  "nock": {
34894
- "version": "13.2.8",
34895
- "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.8.tgz",
34896
- "integrity": "sha512-JT42FrXfQRpfyL4cnbBEJdf4nmBpVP0yoCcSBr+xkT8Q1y3pgtaCKHGAAOIFcEJ3O3t0QbVAmid0S0f2bj3Wpg==",
34798
+ "version": "13.2.9",
34799
+ "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz",
34800
+ "integrity": "sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA==",
34897
34801
  "dev": true,
34898
34802
  "requires": {
34899
34803
  "debug": "^4.1.0",
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.11.0",
4
+ "version": "10.12.0",
5
5
  "author": "Netlify Inc.",
6
6
  "contributors": [
7
7
  "Abraham Schilling <AbrahamSchilling@gmail.com> (https://gitlab.com/n4bb12)",
@@ -219,8 +219,8 @@
219
219
  "prettier": "--ignore-path .gitignore --loglevel=warn \"{src,tools,scripts,site,tests,.github}/**/*.{mjs,cjs,js,md,yml,json,html}\" \"*.{mjs,cjs,js,yml,json,html}\" \".*.{mjs,cjs,js,yml,json,html}\" \"!CHANGELOG.md\" \"!npm-shrinkwrap.json\" \"!**/*/package-lock.json\" \"!.github/**/*.md\""
220
220
  },
221
221
  "dependencies": {
222
- "@netlify/build": "^27.4.2",
223
- "@netlify/config": "^18.1.1",
222
+ "@netlify/build": "^27.5.0",
223
+ "@netlify/config": "^18.1.2",
224
224
  "@netlify/edge-bundler": "^1.7.0",
225
225
  "@netlify/framework-info": "^9.1.1",
226
226
  "@netlify/local-functions-proxy": "^1.1.1",
@@ -290,7 +290,7 @@
290
290
  "multiparty": "^4.2.1",
291
291
  "netlify": "^12.0.0",
292
292
  "netlify-headers-parser": "^6.0.2",
293
- "netlify-onegraph-internal": "0.3.6",
293
+ "netlify-onegraph-internal": "0.3.8",
294
294
  "netlify-redirect-parser": "^13.0.5",
295
295
  "netlify-redirector": "^0.2.1",
296
296
  "node-fetch": "^2.6.0",
@@ -598,6 +598,7 @@ const createDevCommand = (program) => {
598
598
 
599
599
  return program
600
600
  .command('dev')
601
+ .alias('develop')
601
602
  .description(
602
603
  `Local dev server\nThe dev command will run a local dev server with Netlify's proxy and redirect rules`,
603
604
  )
@@ -1,5 +1,5 @@
1
1
  module github.com/someone/{{name}}
2
2
 
3
- go 1.15
3
+ go 1.18
4
4
 
5
- require github.com/aws/aws-lambda-go v1.32.1
5
+ require github.com/aws/aws-lambda-go v1.33.0
@@ -105,9 +105,9 @@
105
105
  }
106
106
  },
107
107
  "node_modules/stripe": {
108
- "version": "9.13.0",
109
- "resolved": "https://registry.npmjs.org/stripe/-/stripe-9.13.0.tgz",
110
- "integrity": "sha512-PSxYaoaIoFwziNR4dmR6uw20UUmOM9ixtd8fML/gRWlPHsqi3FSGEszR//AttRjihRj+1SfjI5V/x6hhQZBTUA==",
108
+ "version": "9.14.0",
109
+ "resolved": "https://registry.npmjs.org/stripe/-/stripe-9.14.0.tgz",
110
+ "integrity": "sha512-nonEpYI7kPxZI8BGqlichBont9oHTBKFdKQV4LW6SvMAfYyQ95pL3vw1kqnW38oAui/c1sJqDOE2t8AoosOC9w==",
111
111
  "dependencies": {
112
112
  "@types/node": ">=8.1.0",
113
113
  "qs": "^6.10.3"
@@ -184,9 +184,9 @@
184
184
  }
185
185
  },
186
186
  "stripe": {
187
- "version": "9.13.0",
188
- "resolved": "https://registry.npmjs.org/stripe/-/stripe-9.13.0.tgz",
189
- "integrity": "sha512-PSxYaoaIoFwziNR4dmR6uw20UUmOM9ixtd8fML/gRWlPHsqi3FSGEszR//AttRjihRj+1SfjI5V/x6hhQZBTUA==",
187
+ "version": "9.14.0",
188
+ "resolved": "https://registry.npmjs.org/stripe/-/stripe-9.14.0.tgz",
189
+ "integrity": "sha512-nonEpYI7kPxZI8BGqlichBont9oHTBKFdKQV4LW6SvMAfYyQ95pL3vw1kqnW38oAui/c1sJqDOE2t8AoosOC9w==",
190
190
  "requires": {
191
191
  "@types/node": ">=8.1.0",
192
192
  "qs": "^6.10.3"
@@ -105,9 +105,9 @@
105
105
  }
106
106
  },
107
107
  "node_modules/stripe": {
108
- "version": "9.13.0",
109
- "resolved": "https://registry.npmjs.org/stripe/-/stripe-9.13.0.tgz",
110
- "integrity": "sha512-PSxYaoaIoFwziNR4dmR6uw20UUmOM9ixtd8fML/gRWlPHsqi3FSGEszR//AttRjihRj+1SfjI5V/x6hhQZBTUA==",
108
+ "version": "9.14.0",
109
+ "resolved": "https://registry.npmjs.org/stripe/-/stripe-9.14.0.tgz",
110
+ "integrity": "sha512-nonEpYI7kPxZI8BGqlichBont9oHTBKFdKQV4LW6SvMAfYyQ95pL3vw1kqnW38oAui/c1sJqDOE2t8AoosOC9w==",
111
111
  "dependencies": {
112
112
  "@types/node": ">=8.1.0",
113
113
  "qs": "^6.10.3"
@@ -184,9 +184,9 @@
184
184
  }
185
185
  },
186
186
  "stripe": {
187
- "version": "9.13.0",
188
- "resolved": "https://registry.npmjs.org/stripe/-/stripe-9.13.0.tgz",
189
- "integrity": "sha512-PSxYaoaIoFwziNR4dmR6uw20UUmOM9ixtd8fML/gRWlPHsqi3FSGEszR//AttRjihRj+1SfjI5V/x6hhQZBTUA==",
187
+ "version": "9.14.0",
188
+ "resolved": "https://registry.npmjs.org/stripe/-/stripe-9.14.0.tgz",
189
+ "integrity": "sha512-nonEpYI7kPxZI8BGqlichBont9oHTBKFdKQV4LW6SvMAfYyQ95pL3vw1kqnW38oAui/c1sJqDOE2t8AoosOC9w==",
190
190
  "requires": {
191
191
  "@types/node": ">=8.1.0",
192
192
  "qs": "^6.10.3"
@@ -8,7 +8,7 @@ version = "0.1.0"
8
8
  [dependencies]
9
9
  aws_lambda_events = "0.6.3"
10
10
  http = "0.2.8"
11
- lambda_runtime = "0.5.1"
11
+ lambda_runtime = "0.6.0"
12
12
  log = "0.4.17"
13
13
  simple_logger = "1.16.0"
14
14
  tokio = "1.20.0"
@@ -1,5 +1,6 @@
1
1
  // @ts-check
2
2
  const { stat } = require('fs').promises
3
+ const { join } = require('path')
3
4
 
4
5
  const { getPathInProject } = require('../settings')
5
6
 
@@ -7,8 +8,9 @@ const { EDGE_FUNCTIONS_FOLDER, PUBLIC_URL_PATH } = require('./consts')
7
8
 
8
9
  const distPath = getPathInProject([EDGE_FUNCTIONS_FOLDER])
9
10
 
10
- const deployFileNormalizer = (file) => {
11
- const isEdgeFunction = file.root === distPath
11
+ const deployFileNormalizer = (rootDir, file) => {
12
+ const absoluteDistPath = join(rootDir, distPath)
13
+ const isEdgeFunction = file.root === absoluteDistPath
12
14
  const normalizedPath = isEdgeFunction ? `${PUBLIC_URL_PATH}/${file.normalizedPath}` : file.normalizedPath
13
15
 
14
16
  return {
@@ -17,15 +19,16 @@ const deployFileNormalizer = (file) => {
17
19
  }
18
20
  }
19
21
 
20
- const getDistPathIfExists = async () => {
22
+ const getDistPathIfExists = async ({ rootDir }) => {
21
23
  try {
22
- const stats = await stat(distPath)
24
+ const absoluteDistPath = join(rootDir, distPath)
25
+ const stats = await stat(absoluteDistPath)
23
26
 
24
27
  if (!stats.isDirectory()) {
25
- throw new Error(`Path ${distPath} must be a directory.`)
28
+ throw new Error(`Path ${absoluteDistPath} must be a directory.`)
26
29
  }
27
30
 
28
- return distPath
31
+ return absoluteDistPath
29
32
  } catch {
30
33
  // no-op
31
34
  }
@@ -7,6 +7,10 @@ const { runRecipe } = require('../../commands/recipes')
7
7
  const STATE_PROMPT_PROPERTY = 'promptVSCodeSettings'
8
8
 
9
9
  const promptEditorHelper = async ({ NETLIFYDEVLOG, chalk, config, log, repositoryRoot, state }) => {
10
+ // This prevents tests from hanging when running them inside the VS Code
11
+ // terminal, as otherwise we'll show the prompt and wait for a response.
12
+ if (env.NODE_ENV === 'test') return
13
+
10
14
  const isVSCode = env.TERM_PROGRAM === 'vscode'
11
15
  const hasShownPrompt = Boolean(state.get(STATE_PROMPT_PROPERTY))
12
16
  const hasEdgeFunctions = Boolean(config.edge_functions && config.edge_functions.length !== 0)
@@ -61,7 +61,8 @@ InternalConsole.registerConsole(internalConsole)
61
61
  * @returns
62
62
  */
63
63
  const monitorCLISessionEvents = (input) => {
64
- const { appId, netlifyGraphConfig, netlifyToken, onClose, onError, onEvents, sessionId, site, state } = input
64
+ const { appId, netlifyGraphConfig, netlifyToken, onClose, onError, onEvents, site, state } = input
65
+ const currentSessionId = input.sessionId
65
66
 
66
67
  const frequency = 5000
67
68
  // 30 minutes
@@ -71,11 +72,15 @@ const monitorCLISessionEvents = (input) => {
71
72
 
72
73
  const markActiveHelper = async () => {
73
74
  const graphJwt = await OneGraphClient.getGraphJwtForSite({ siteId: appId, nfToken: netlifyToken })
74
- const fullSession = await OneGraphClient.fetchCliSession({ jwt: graphJwt.jwt, appId, sessionId })
75
+ const fullSession = await OneGraphClient.fetchCliSession({ jwt: graphJwt.jwt, appId, sessionId: currentSessionId })
75
76
  // @ts-ignore
76
77
  const heartbeatIntervalms = fullSession.session.cliHeartbeatIntervalMs || defaultHeartbeatFrequency
77
78
  nextMarkActiveHeartbeat = heartbeatIntervalms
78
- const markCLISessionActiveResult = await executeMarkCliSessionActiveHeartbeat(graphJwt.jwt, site.id, sessionId)
79
+ const markCLISessionActiveResult = await executeMarkCliSessionActiveHeartbeat(
80
+ graphJwt.jwt,
81
+ site.id,
82
+ currentSessionId,
83
+ )
79
84
  if (markCLISessionActiveResult.errors && markCLISessionActiveResult.errors.length !== 0) {
80
85
  warn(`Failed to mark CLI session active: ${markCLISessionActiveResult.errors.join(', ')}`)
81
86
  }
@@ -84,10 +89,10 @@ const monitorCLISessionEvents = (input) => {
84
89
 
85
90
  setTimeout(markActiveHelper, nextMarkActiveHeartbeat)
86
91
 
87
- const enabledServiceWatcher = async (jwt, siteId) => {
92
+ const enabledServiceWatcher = async (jwt, { appId: siteId, sessionId }) => {
88
93
  const enabledServices = state.get('oneGraphEnabledServices') || ['onegraph']
89
94
 
90
- const enabledServicesInfo = await OneGraphClient.fetchEnabledServices(jwt, siteId)
95
+ const enabledServicesInfo = await OneGraphClient.fetchEnabledServicesForSession(jwt, siteId, sessionId)
91
96
  if (!enabledServicesInfo) {
92
97
  warn('Unable to fetch enabled services for site for code generation')
93
98
  return
@@ -102,7 +107,7 @@ const monitorCLISessionEvents = (input) => {
102
107
  'Reloading',
103
108
  )} Netlify Graph schema..., ${enabledServicesCompareKey} => ${newEnabledServicesCompareKey}`,
104
109
  )
105
- await refetchAndGenerateFromOneGraph({ netlifyGraphConfig, state, jwt, siteId })
110
+ await refetchAndGenerateFromOneGraph({ netlifyGraphConfig, state, jwt, siteId, sessionId })
106
111
  log(`${chalk.green('Reloaded')} Netlify Graph schema and regenerated functions`)
107
112
  }
108
113
  }
@@ -120,7 +125,7 @@ const monitorCLISessionEvents = (input) => {
120
125
  }
121
126
 
122
127
  const graphJwt = await OneGraphClient.getGraphJwtForSite({ siteId: appId, nfToken: netlifyToken })
123
- const next = await OneGraphClient.fetchCliSessionEvents({ appId, jwt: graphJwt.jwt, sessionId })
128
+ const next = await OneGraphClient.fetchCliSessionEvents({ appId, jwt: graphJwt.jwt, sessionId: currentSessionId })
124
129
 
125
130
  if (next && next.errors) {
126
131
  next.errors.forEach((fetchEventError) => {
@@ -137,11 +142,16 @@ const monitorCLISessionEvents = (input) => {
137
142
  } catch (eventHandlerError) {
138
143
  warn(`Error handling event: ${eventHandlerError}`)
139
144
  } finally {
140
- await OneGraphClient.ackCLISessionEvents({ appId, jwt: graphJwt.jwt, sessionId, eventIds: ackIds })
145
+ await OneGraphClient.ackCLISessionEvents({
146
+ appId,
147
+ jwt: graphJwt.jwt,
148
+ sessionId: currentSessionId,
149
+ eventIds: ackIds,
150
+ })
141
151
  }
142
152
  }
143
153
 
144
- await enabledServiceWatcher(graphJwt.jwt, appId)
154
+ await enabledServiceWatcher(graphJwt.jwt, { appId, sessionId: currentSessionId })
145
155
 
146
156
  handle = setTimeout(helper, frequency)
147
157
  }
@@ -178,6 +188,7 @@ const monitorOperationFile = async ({ netlifyGraphConfig, onAdd, onChange, onUnl
178
188
  * @param {object} input
179
189
  * @param {string} input.siteId The id of the site to query against
180
190
  * @param {string} input.jwt The Graph JWT
191
+ * @param {string} input.sessionId The session ID for the current session
181
192
  * @param {NetlifyGraph.NetlifyGraphConfig} input.netlifyGraphConfig A standalone config object that contains all the information necessary for Netlify Graph to process events
182
193
  * @param {StateConfig} input.state A function to call to set/get the current state of the local Netlify project
183
194
  * @param {(message: string) => void=} input.logger A function that if provided will be used to log messages
@@ -188,7 +199,7 @@ const refetchAndGenerateFromOneGraph = async (input) => {
188
199
 
189
200
  await OneGraphClient.ensureAppForSite(jwt, siteId)
190
201
 
191
- const enabledServicesInfo = await OneGraphClient.fetchEnabledServices(jwt, siteId)
202
+ const enabledServicesInfo = await OneGraphClient.fetchEnabledServicesForSession(jwt, siteId, input.sessionId)
192
203
  if (!enabledServicesInfo) {
193
204
  warn('Unable to fetch enabled services for site for code generation')
194
205
  return
@@ -54,7 +54,7 @@ const deploySite = async (
54
54
  phase: 'start',
55
55
  })
56
56
 
57
- const edgeFunctionsDistPath = await edgeFunctions.getDistPathIfExists()
57
+ const edgeFunctionsDistPath = await edgeFunctions.getDistPathIfExists({ rootDir })
58
58
  const [{ files, filesShaMap }, { fnShaMap, functionSchedules, functions, functionsWithNativeModules }] =
59
59
  await Promise.all([
60
60
  hashFiles({
@@ -63,7 +63,7 @@ const deploySite = async (
63
63
  directories: [configPath, dir, edgeFunctionsDistPath].filter(Boolean),
64
64
  filter,
65
65
  hashAlgorithm,
66
- normalizer: edgeFunctions.deployFileNormalizer,
66
+ normalizer: edgeFunctions.deployFileNormalizer.bind(null, rootDir),
67
67
  statusCb,
68
68
  }),
69
69
  hashFns(fnDir, {
@@ -279,7 +279,7 @@ const initializeProxy = async function ({ configPath, distDir, port, projectDir
279
279
  const proxy = httpProxy.createProxyServer({
280
280
  selfHandleResponse: true,
281
281
  target: {
282
- host: 'localhost',
282
+ host: '127.0.0.1',
283
283
  port,
284
284
  },
285
285
  })
@@ -349,7 +349,7 @@ const initializeProxy = async function ({ configPath, distDir, port, projectDir
349
349
  }
350
350
 
351
351
  const responseData = []
352
- const requestURL = new URL(req.url, `http://${req.headers.host || 'localhost'}`)
352
+ const requestURL = new URL(req.url, `http://${req.headers.host || '127.0.0.1'}`)
353
353
  const headersRules = headersForPath(headers, requestURL.pathname)
354
354
 
355
355
  proxyRes.on('data', function onData(data) {
@@ -392,7 +392,7 @@ const initializeProxy = async function ({ configPath, distDir, port, projectDir
392
392
 
393
393
  const handlers = {
394
394
  web: (req, res, options) => {
395
- const requestURL = new URL(req.url, 'http://localhost')
395
+ const requestURL = new URL(req.url, 'http://127.0.0.1')
396
396
  req.proxyOptions = options
397
397
  req.alternativePaths = alternativePathsFor(requestURL.pathname).map((filePath) => filePath + requestURL.search)
398
398
  // Ref: https://nodejs.org/api/net.html#net_socket_remoteaddress
@@ -428,7 +428,7 @@ const onRequest = async ({ addonsUrls, edgeFunctionsProxy, functionsServer, prox
428
428
  const options = {
429
429
  match,
430
430
  addonsUrls,
431
- target: `http://localhost:${settings.frameworkPort}`,
431
+ target: `http://127.0.0.1:${settings.frameworkPort}`,
432
432
  publicFolder: settings.dist,
433
433
  functionsServer,
434
434
  functionsPort: settings.functionsPort,
@@ -474,7 +474,7 @@ const startProxy = async function ({
474
474
  settings,
475
475
  state,
476
476
  }) {
477
- const functionsServer = settings.functionsPort ? `http://localhost:${settings.functionsPort}` : null
477
+ const functionsServer = settings.functionsPort ? `http://127.0.0.1:${settings.functionsPort}` : null
478
478
  const edgeFunctionsProxy = await edgeFunctions.initializeProxy({
479
479
  config,
480
480
  configPath,