netlify-cli 6.9.10 → 6.9.14

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,23 +1,23 @@
1
1
  {
2
2
  "name": "netlify-cli",
3
- "version": "6.9.10",
3
+ "version": "6.9.14",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "netlify-cli",
9
- "version": "6.9.10",
9
+ "version": "6.9.14",
10
10
  "hasInstallScript": true,
11
11
  "license": "MIT",
12
12
  "dependencies": {
13
- "@netlify/build": "^18.11.2",
14
- "@netlify/config": "^15.6.2",
13
+ "@netlify/build": "^18.13.0",
14
+ "@netlify/config": "^15.6.3",
15
15
  "@netlify/framework-info": "^5.9.2",
16
16
  "@netlify/local-functions-proxy": "^1.1.1",
17
17
  "@netlify/plugin-edge-handlers": "^1.11.22",
18
18
  "@netlify/plugins-list": "^3.6.0",
19
19
  "@netlify/routing-local-proxy": "^0.33.2",
20
- "@netlify/zip-it-and-ship-it": "4.22.0",
20
+ "@netlify/zip-it-and-ship-it": "4.23.0",
21
21
  "@oclif/command": "^1.6.1",
22
22
  "@oclif/config": "^1.15.1",
23
23
  "@oclif/errors": "^1.3.4",
@@ -84,7 +84,7 @@
84
84
  "memoize-one": "^5.2.1",
85
85
  "minimist": "^1.2.5",
86
86
  "multiparty": "^4.2.1",
87
- "netlify": "^8.0.0",
87
+ "netlify": "^8.0.1",
88
88
  "netlify-headers-parser": "^4.0.1",
89
89
  "netlify-redirect-parser": "^11.0.2",
90
90
  "netlify-redirector": "^0.2.1",
@@ -132,7 +132,7 @@
132
132
  "@babel/preset-react": "^7.12.13",
133
133
  "@commitlint/cli": "^13.0.0",
134
134
  "@commitlint/config-conventional": "^13.0.0",
135
- "@netlify/eslint-config-node": "^3.2.9",
135
+ "@netlify/eslint-config-node": "^3.2.10",
136
136
  "@oclif/dev-cli": "^1.23.1",
137
137
  "@oclif/test": "^1.2.5",
138
138
  "ava": "^3.15.0",
@@ -2341,9 +2341,9 @@
2341
2341
  }
2342
2342
  },
2343
2343
  "node_modules/@netlify/build": {
2344
- "version": "18.11.2",
2345
- "resolved": "https://registry.npmjs.org/@netlify/build/-/build-18.11.2.tgz",
2346
- "integrity": "sha512-YwqABbzBZ0eSbltdDYXvyp6YoZxh4KoMCayxiOQvRUTGFDVky8EBZkR9Fcvvcb14TIaYQd8PK3xV7SJk2QKtzQ==",
2344
+ "version": "18.13.0",
2345
+ "resolved": "https://registry.npmjs.org/@netlify/build/-/build-18.13.0.tgz",
2346
+ "integrity": "sha512-c/+KxutCLeN7h3BmV+SEesskbepP9SPZ5QkPdWl5JamMCKvqVxlfv/J9o9gAqq/NvAdwl09PVly9tUYdfxdnOQ==",
2347
2347
  "dependencies": {
2348
2348
  "@bugsnag/js": "^7.0.0",
2349
2349
  "@netlify/cache-utils": "^2.0.0",
@@ -2714,9 +2714,9 @@
2714
2714
  }
2715
2715
  },
2716
2716
  "node_modules/@netlify/config": {
2717
- "version": "15.6.2",
2718
- "resolved": "https://registry.npmjs.org/@netlify/config/-/config-15.6.2.tgz",
2719
- "integrity": "sha512-wFZ2sLg/NaU0kQC8EnxdMUrr3rMWC8CQnBedQsxRW2dmQKQgW4tsCqUVy2U++iu2FTZkh8CwYo8W0qCPoel4lA==",
2717
+ "version": "15.6.3",
2718
+ "resolved": "https://registry.npmjs.org/@netlify/config/-/config-15.6.3.tgz",
2719
+ "integrity": "sha512-VYJSJgWAh1VwjCOhMt8h3lEb6ZzfHa6qAzA5TyEtfqFV3chBrIso9qx7JkVapAFlFnEiIb1BFX1n81xkmx/8oA==",
2720
2720
  "dependencies": {
2721
2721
  "@ungap/from-entries": "^0.2.1",
2722
2722
  "array-flat-polyfill": "^1.0.1",
@@ -2733,7 +2733,7 @@
2733
2733
  "js-yaml": "^4.0.0",
2734
2734
  "make-dir": "^3.1.0",
2735
2735
  "map-obj": "^4.0.0",
2736
- "netlify": "^8.0.0",
2736
+ "netlify": "^8.0.1",
2737
2737
  "netlify-headers-parser": "^4.0.1",
2738
2738
  "netlify-redirect-parser": "^11.0.2",
2739
2739
  "omit.js": "^2.0.2",
@@ -2920,9 +2920,9 @@
2920
2920
  }
2921
2921
  },
2922
2922
  "node_modules/@netlify/eslint-config-node": {
2923
- "version": "3.2.9",
2924
- "resolved": "https://registry.npmjs.org/@netlify/eslint-config-node/-/eslint-config-node-3.2.9.tgz",
2925
- "integrity": "sha512-MpSc0b4cZbjMzgtjmtNHtvd8zmDJF0J92C1LskW92lTKM4BW/TJDAi5u1CRz9zQB1mtc8cSB2dIm4a7E5DH/zw==",
2923
+ "version": "3.2.10",
2924
+ "resolved": "https://registry.npmjs.org/@netlify/eslint-config-node/-/eslint-config-node-3.2.10.tgz",
2925
+ "integrity": "sha512-eUqDZ6k806BIzT62bJ3RJVw3lh6WNaye3tFVXqXtMQDDkwAmqDOJfqiiXC2/bcSZZZeDE/gGz1AcaBv9jMThiA==",
2926
2926
  "dev": true,
2927
2927
  "dependencies": {
2928
2928
  "@babel/core": "^7.13.8",
@@ -3321,12 +3321,12 @@
3321
3321
  }
3322
3322
  },
3323
3323
  "node_modules/@netlify/zip-it-and-ship-it": {
3324
- "version": "4.22.0",
3325
- "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-4.22.0.tgz",
3326
- "integrity": "sha512-etOGaq248ws55tYiJ16qnkpD9UKisiVH4g/RnO1oVP45+BSdRmNynUZkFbAZqpkEe8F61r4lxGBHsStuxXfXMQ==",
3324
+ "version": "4.23.0",
3325
+ "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-4.23.0.tgz",
3326
+ "integrity": "sha512-hefNXuzWnQqEClsgQMOAubkScTiIf+r+AmsrEShNkUUrg9pUoQpNVpbIpQUiP9VEIvnrCwAtPmSOaus0ijTOXQ==",
3327
3327
  "dependencies": {
3328
+ "@babel/parser": "^7.15.7",
3328
3329
  "@netlify/esbuild": "^0.13.6",
3329
- "acorn": "^8.4.0",
3330
3330
  "archiver": "^5.3.0",
3331
3331
  "array-flat-polyfill": "^1.0.1",
3332
3332
  "common-path-prefix": "^3.0.0",
@@ -3339,6 +3339,7 @@
3339
3339
  "filter-obj": "^2.0.1",
3340
3340
  "find-up": "^5.0.0",
3341
3341
  "glob": "^7.1.6",
3342
+ "is-builtin-module": "^3.1.0",
3342
3343
  "junk": "^3.1.0",
3343
3344
  "locate-path": "^6.0.0",
3344
3345
  "make-dir": "^3.1.0",
@@ -4811,6 +4812,7 @@
4811
4812
  "version": "8.5.0",
4812
4813
  "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz",
4813
4814
  "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==",
4815
+ "dev": true,
4814
4816
  "bin": {
4815
4817
  "acorn": "bin/acorn"
4816
4818
  },
@@ -12375,7 +12377,6 @@
12375
12377
  "version": "3.1.0",
12376
12378
  "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz",
12377
12379
  "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==",
12378
- "dev": true,
12379
12380
  "dependencies": {
12380
12381
  "builtin-modules": "^3.0.0"
12381
12382
  },
@@ -14792,9 +14793,9 @@
14792
14793
  "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug=="
14793
14794
  },
14794
14795
  "node_modules/netlify": {
14795
- "version": "8.0.0",
14796
- "resolved": "https://registry.npmjs.org/netlify/-/netlify-8.0.0.tgz",
14797
- "integrity": "sha512-BiQblBf85/GmerTZYxVH/1A4/O8qBvg0Qr8QX0MvxjAvO3j+jDUk1PSudMxNgJjU1zFw5pKM2/DBk70hP5gt+Q==",
14796
+ "version": "8.0.1",
14797
+ "resolved": "https://registry.npmjs.org/netlify/-/netlify-8.0.1.tgz",
14798
+ "integrity": "sha512-bAUay/JDmUdmFSfW6BQuUGHuj498ALr/aS4Se3Juhgv1N0q1Whrp1uwGlkIgatrlP0lLL/zkTWc6hxmG1TqQcQ==",
14798
14799
  "dependencies": {
14799
14800
  "@netlify/open-api": "^2.5.0",
14800
14801
  "lodash.camelcase": "^4.3.0",
@@ -22749,9 +22750,9 @@
22749
22750
  }
22750
22751
  },
22751
22752
  "@netlify/build": {
22752
- "version": "18.11.2",
22753
- "resolved": "https://registry.npmjs.org/@netlify/build/-/build-18.11.2.tgz",
22754
- "integrity": "sha512-YwqABbzBZ0eSbltdDYXvyp6YoZxh4KoMCayxiOQvRUTGFDVky8EBZkR9Fcvvcb14TIaYQd8PK3xV7SJk2QKtzQ==",
22753
+ "version": "18.13.0",
22754
+ "resolved": "https://registry.npmjs.org/@netlify/build/-/build-18.13.0.tgz",
22755
+ "integrity": "sha512-c/+KxutCLeN7h3BmV+SEesskbepP9SPZ5QkPdWl5JamMCKvqVxlfv/J9o9gAqq/NvAdwl09PVly9tUYdfxdnOQ==",
22755
22756
  "requires": {
22756
22757
  "@bugsnag/js": "^7.0.0",
22757
22758
  "@netlify/cache-utils": "^2.0.0",
@@ -23038,9 +23039,9 @@
23038
23039
  }
23039
23040
  },
23040
23041
  "@netlify/config": {
23041
- "version": "15.6.2",
23042
- "resolved": "https://registry.npmjs.org/@netlify/config/-/config-15.6.2.tgz",
23043
- "integrity": "sha512-wFZ2sLg/NaU0kQC8EnxdMUrr3rMWC8CQnBedQsxRW2dmQKQgW4tsCqUVy2U++iu2FTZkh8CwYo8W0qCPoel4lA==",
23042
+ "version": "15.6.3",
23043
+ "resolved": "https://registry.npmjs.org/@netlify/config/-/config-15.6.3.tgz",
23044
+ "integrity": "sha512-VYJSJgWAh1VwjCOhMt8h3lEb6ZzfHa6qAzA5TyEtfqFV3chBrIso9qx7JkVapAFlFnEiIb1BFX1n81xkmx/8oA==",
23044
23045
  "requires": {
23045
23046
  "@ungap/from-entries": "^0.2.1",
23046
23047
  "array-flat-polyfill": "^1.0.1",
@@ -23057,7 +23058,7 @@
23057
23058
  "js-yaml": "^4.0.0",
23058
23059
  "make-dir": "^3.1.0",
23059
23060
  "map-obj": "^4.0.0",
23060
- "netlify": "^8.0.0",
23061
+ "netlify": "^8.0.1",
23061
23062
  "netlify-headers-parser": "^4.0.1",
23062
23063
  "netlify-redirect-parser": "^11.0.2",
23063
23064
  "omit.js": "^2.0.2",
@@ -23201,9 +23202,9 @@
23201
23202
  "integrity": "sha512-tiKmDcHM2riSVN79c0mJY/67EBDafXQAMitHuLiCDAMdtz3kfv+NqdVG5krgf5lWR8Uf8AeZrUW5Q9RP25REvw=="
23202
23203
  },
23203
23204
  "@netlify/eslint-config-node": {
23204
- "version": "3.2.9",
23205
- "resolved": "https://registry.npmjs.org/@netlify/eslint-config-node/-/eslint-config-node-3.2.9.tgz",
23206
- "integrity": "sha512-MpSc0b4cZbjMzgtjmtNHtvd8zmDJF0J92C1LskW92lTKM4BW/TJDAi5u1CRz9zQB1mtc8cSB2dIm4a7E5DH/zw==",
23205
+ "version": "3.2.10",
23206
+ "resolved": "https://registry.npmjs.org/@netlify/eslint-config-node/-/eslint-config-node-3.2.10.tgz",
23207
+ "integrity": "sha512-eUqDZ6k806BIzT62bJ3RJVw3lh6WNaye3tFVXqXtMQDDkwAmqDOJfqiiXC2/bcSZZZeDE/gGz1AcaBv9jMThiA==",
23207
23208
  "dev": true,
23208
23209
  "requires": {
23209
23210
  "@babel/core": "^7.13.8",
@@ -23441,12 +23442,12 @@
23441
23442
  }
23442
23443
  },
23443
23444
  "@netlify/zip-it-and-ship-it": {
23444
- "version": "4.22.0",
23445
- "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-4.22.0.tgz",
23446
- "integrity": "sha512-etOGaq248ws55tYiJ16qnkpD9UKisiVH4g/RnO1oVP45+BSdRmNynUZkFbAZqpkEe8F61r4lxGBHsStuxXfXMQ==",
23445
+ "version": "4.23.0",
23446
+ "resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-4.23.0.tgz",
23447
+ "integrity": "sha512-hefNXuzWnQqEClsgQMOAubkScTiIf+r+AmsrEShNkUUrg9pUoQpNVpbIpQUiP9VEIvnrCwAtPmSOaus0ijTOXQ==",
23447
23448
  "requires": {
23449
+ "@babel/parser": "^7.15.7",
23448
23450
  "@netlify/esbuild": "^0.13.6",
23449
- "acorn": "^8.4.0",
23450
23451
  "archiver": "^5.3.0",
23451
23452
  "array-flat-polyfill": "^1.0.1",
23452
23453
  "common-path-prefix": "^3.0.0",
@@ -23459,6 +23460,7 @@
23459
23460
  "filter-obj": "^2.0.1",
23460
23461
  "find-up": "^5.0.0",
23461
23462
  "glob": "^7.1.6",
23463
+ "is-builtin-module": "^3.1.0",
23462
23464
  "junk": "^3.1.0",
23463
23465
  "locate-path": "^6.0.0",
23464
23466
  "make-dir": "^3.1.0",
@@ -24644,7 +24646,8 @@
24644
24646
  "acorn": {
24645
24647
  "version": "8.5.0",
24646
24648
  "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz",
24647
- "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q=="
24649
+ "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==",
24650
+ "dev": true
24648
24651
  },
24649
24652
  "acorn-jsx": {
24650
24653
  "version": "5.3.2",
@@ -30408,7 +30411,6 @@
30408
30411
  "version": "3.1.0",
30409
30412
  "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz",
30410
30413
  "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==",
30411
- "dev": true,
30412
30414
  "requires": {
30413
30415
  "builtin-modules": "^3.0.0"
30414
30416
  }
@@ -32241,9 +32243,9 @@
32241
32243
  "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug=="
32242
32244
  },
32243
32245
  "netlify": {
32244
- "version": "8.0.0",
32245
- "resolved": "https://registry.npmjs.org/netlify/-/netlify-8.0.0.tgz",
32246
- "integrity": "sha512-BiQblBf85/GmerTZYxVH/1A4/O8qBvg0Qr8QX0MvxjAvO3j+jDUk1PSudMxNgJjU1zFw5pKM2/DBk70hP5gt+Q==",
32246
+ "version": "8.0.1",
32247
+ "resolved": "https://registry.npmjs.org/netlify/-/netlify-8.0.1.tgz",
32248
+ "integrity": "sha512-bAUay/JDmUdmFSfW6BQuUGHuj498ALr/aS4Se3Juhgv1N0q1Whrp1uwGlkIgatrlP0lLL/zkTWc6hxmG1TqQcQ==",
32247
32249
  "requires": {
32248
32250
  "@netlify/open-api": "^2.5.0",
32249
32251
  "lodash.camelcase": "^4.3.0",
@@ -1 +1 @@
1
- {"version":"6.9.10","commands":{"api":{"id":"api","description":"Run any Netlify API method\n\nFor more information on available methods checkout https://open-api.netlify.com/ or run \"netlify api --list\"\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify api --list","netlify api getSite --data '{ \"site_id\": \"123456\"}'"],"flags":{"data":{"name":"data","type":"option","char":"d","description":"Data to use"},"list":{"name":"list","type":"boolean","description":"List out available API methods","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"apiMethod","description":"Open API method to run"}]},"deploy":{"id":"deploy","description":"Create a new deploy from the contents of a folder\n\nDeploys from the build settings found in the netlify.toml file, or settings from the API.\n\nThe following environment variables can be used to override configuration file lookups and prompts:\n\n- `NETLIFY_AUTH_TOKEN` - an access token to use when authenticating commands. Keep this value private.\n- `NETLIFY_SITE_ID` - override any linked site in the current working directory.\n\nLambda functions in the function folder can be in the following configurations for deployment:\n\n\nBuilt Go binaries:\n------------------\n\n```\nfunctions/\n└── nameOfGoFunction\n```\n\nBuild binaries of your Go language functions into the functions folder as part of your build process.\n\n\nSingle file Node.js functions:\n-----------------------------\n\nBuild dependency bundled Node.js lambda functions with tools like netlify-lambda, webpack or browserify into the function folder as part of your build process.\n\n```\nfunctions/\n└── nameOfBundledNodeJSFunction.js\n```\n\nUnbundled Node.js functions that have dependencies outside or inside of the functions folder:\n---------------------------------------------------------------------------------------------\n\nYou can ship unbundled Node.js functions with the CLI, utilizing top level project dependencies, or a nested package.json.\nIf you use nested dependencies, be sure to populate the nested node_modules as part of your build process before deploying using npm or yarn.\n\n```\nproject/\n├── functions\n│ ├── functionName/\n│ │ ├── functionName.js (Note the folder and the function name need to match)\n│ │ ├── package.json\n│ │ └── node_modules/\n│ └── unbundledFunction.js\n├── package.json\n├── netlify.toml\n└── node_modules/\n```\n\nAny mix of these configurations works as well.\n\n\nNode.js function entry points\n-----------------------------\n\nFunction entry points are determined by the file name and name of the folder they are in:\n\n```\nfunctions/\n├── aFolderlessFunctionEntrypoint.js\n└── functionName/\n ├── notTheEntryPoint.js\n └── functionName.js\n```\n\nSupport for package.json's main field, and intrinsic index.js entrypoints are coming soon.\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify deploy","netlify deploy --prod","netlify deploy --prod --open","netlify deploy --prodIfUnlocked","netlify deploy --message \"A message with an $ENV_VAR\"","netlify deploy --auth $NETLIFY_AUTH_TOKEN","netlify deploy --trigger"],"flags":{"dir":{"name":"dir","type":"option","char":"d","description":"Specify a folder to deploy"},"functions":{"name":"functions","type":"option","char":"f","description":"Specify a functions folder to deploy"},"prod":{"name":"prod","type":"boolean","char":"p","description":"Deploy to production","allowNo":false},"prodIfUnlocked":{"name":"prodIfUnlocked","type":"boolean","description":"Deploy to production if unlocked, create a draft otherwise","allowNo":false},"alias":{"name":"alias","type":"option","description":"Specifies the alias for deployment, the string at the beginning of the deploy subdomain. Useful for creating predictable deployment URLs. Avoid setting an alias string to the same value as a deployed branch. `alias` doesn’t create a branch deploy and can’t be used in conjunction with the branch subdomain feature. Maximum 37 characters."},"branch":{"name":"branch","type":"option","char":"b","description":"Serves the same functionality as --alias. Deprecated and will be removed in future versions"},"open":{"name":"open","type":"boolean","char":"o","description":"Open site after deploy","allowNo":false},"message":{"name":"message","type":"option","char":"m","description":"A short message to include in the deploy log"},"auth":{"name":"auth","type":"option","char":"a","description":"Netlify auth token to deploy with"},"site":{"name":"site","type":"option","char":"s","description":"A site ID to deploy to"},"json":{"name":"json","type":"boolean","description":"Output deployment data as JSON","allowNo":false},"timeout":{"name":"timeout","type":"option","description":"Timeout to wait for deployment to finish"},"trigger":{"name":"trigger","type":"boolean","description":"Trigger a new build of your site on Netlify without uploading local files","allowNo":false},"build":{"name":"build","type":"boolean","description":"Run build command before deploying","allowNo":false},"skip-functions-cache":{"name":"skip-functions-cache","type":"boolean","description":"Ignore any functions created as part of a previous `build` or `deploy` commands, forcing them to be bundled again as part of the deployment","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"init":{"id":"init","description":"Configure continuous deployment for a new or existing site. To create a new site without continuous deployment, use `netlify sites:create`","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"manual":{"name":"manual","type":"boolean","char":"m","description":"Manually configure a git remote for CI","allowNo":false},"force":{"name":"force","type":"boolean","description":"Reinitialize CI hooks if the linked site is already configured to use CI","allowNo":false},"gitRemoteName":{"name":"gitRemoteName","type":"option","description":"Name of Git remote to use. e.g. \"origin\""},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"link":{"id":"link","description":"Link a local repo or project folder to an existing site on Netlify","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify link","netlify link --id 123-123-123-123","netlify link --name my-site-name"],"flags":{"id":{"name":"id","type":"option","description":"ID of site to link to"},"name":{"name":"name","type":"option","description":"Name of site to link to"},"gitRemoteName":{"name":"gitRemoteName","type":"option","description":"Name of Git remote to use. e.g. \"origin\""},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"login":{"id":"login","description":"Login to your Netlify account\n\nOpens a web browser to acquire an OAuth token.\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"new":{"name":"new","type":"boolean","description":"Login to new Netlify account","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"logout":{"id":"logout","description":"Logout of your Netlify account","pluginName":"netlify-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"switch":{"id":"switch","description":"Switch your active Netlify account","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"unlink":{"id":"unlink","description":"Unlink a local folder from a Netlify site","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"watch":{"id":"watch","description":"Watch for site deploy to finish","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify watch","git push && netlify watch"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"addons:auth":{"id":"addons:auth","description":"Login to add-on provider","pluginName":"netlify-cli","pluginType":"core","aliases":["addon:auth"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"Add-on slug","required":true}]},"addons:config":{"id":"addons:config","description":"Configure add-on settings","pluginName":"netlify-cli","pluginType":"core","aliases":["addon:config"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"Add-on namespace","required":true}]},"addons:create":{"id":"addons:create","description":"Add an add-on extension to your site\n...\nAdd-ons are a way to extend the functionality of your Netlify site\n","pluginName":"netlify-cli","pluginType":"core","aliases":["addon:create"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"Add-on namespace","required":true}]},"addons:delete":{"id":"addons:delete","description":"Remove an add-on extension to your site\n...\nAdd-ons are a way to extend the functionality of your Netlify site\n","pluginName":"netlify-cli","pluginType":"core","aliases":["addon:delete"],"flags":{"force":{"name":"force","type":"boolean","char":"f","description":"delete without prompting (useful for CI)","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"Add-on namespace","required":true}]},"addons":{"id":"addons","description":"(Beta) Manage Netlify Add-ons","pluginName":"netlify-cli","pluginType":"core","aliases":["addon"],"examples":["netlify addons:create addon-xyz","netlify addons:list","netlify addons:config addon-xyz","netlify addons:delete addon-xyz","netlify addons:auth addon-xyz"],"flags":{},"args":[]},"addons:list":{"id":"addons:list","description":"List currently installed add-ons for site","pluginName":"netlify-cli","pluginType":"core","aliases":["addon:list"],"flags":{"json":{"name":"json","type":"boolean","description":"Output add-on data as JSON","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"build":{"id":"build","description":"(Beta) Build on your local machine","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify build"],"flags":{"dry":{"name":"dry","type":"boolean","description":"Dry run: show instructions without running them","allowNo":false},"context":{"name":"context","type":"option","description":"Build context"},"offline":{"name":"offline","type":"boolean","char":"o","description":"disables any features that require network access","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"dev:exec":{"id":"dev:exec","description":"Exec command\nRuns a command within the netlify dev environment, e.g. with env variables from any installed addons\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["$ netlify dev:exec npm run bootstrap"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"dev":{"id":"dev","description":"Local dev server\nThe dev command will run a local dev server with Netlify's proxy and redirect rules\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["$ netlify dev","$ netlify dev -d public","$ netlify dev -c \"hugo server -w\" --targetPort 1313"],"flags":{"command":{"name":"command","type":"option","char":"c","description":"command to run"},"port":{"name":"port","type":"option","char":"p","description":"port of netlify dev"},"targetPort":{"name":"targetPort","type":"option","description":"port of target app server"},"framework":{"name":"framework","type":"option","description":"framework to use. Defaults to #auto which automatically detects a framework"},"staticServerPort":{"name":"staticServerPort","type":"option","description":"port of the static app server used when no framework is detected","hidden":true},"dir":{"name":"dir","type":"option","char":"d","description":"dir with static files"},"functions":{"name":"functions","type":"option","char":"f","description":"specify a functions folder to serve"},"offline":{"name":"offline","type":"boolean","char":"o","description":"disables any features that require network access","allowNo":false},"live":{"name":"live","type":"boolean","char":"l","description":"start a public live session","allowNo":false},"edgeHandlers":{"name":"edgeHandlers","type":"boolean","char":"e","description":"activates the Edge Handlers runtime","hidden":true,"allowNo":false},"trafficMesh":{"name":"trafficMesh","type":"boolean","char":"t","description":"(DEPRECATED: use --edgeHandlers or -e instead) uses Traffic Mesh for proxying requests","hidden":true,"allowNo":false},"locationDb":{"name":"locationDb","type":"option","char":"g","description":"specify the path to a local GeoIP location database in MMDB format","hidden":true},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"dev:trace":{"id":"dev:trace","description":"Trace command\nSimulates Netlify's Edge routing logic to match specific requests.\nThis command is designed to mimic cURL's command line, so the flags are more familiar.\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["$ netlify dev:trace http://localhost/routing-path","$ netlify dev:trace -w dist-directory http://localhost/routing-path","$ netlify dev:trace -X POST http://localhost/routing-path","$ netlify dev:trace -H \"Accept-Language es\" http://localhost/routing-path","$ netlify dev:trace --cookie nf_jwt=token http://localhost/routing-path"],"flags":{"request":{"name":"request","type":"option","char":"X","description":"Specifies a custom request method [default: GET]"},"cookie":{"name":"cookie","type":"option","char":"b","description":"Request cookie, this flag can be used multiple times. Example: \"nf_jwt=token\""},"header":{"name":"header","type":"option","char":"H","description":"Request header, this flag can be used multiple times. Example: \"Host: netlify.test\""},"watch":{"name":"watch","type":"option","char":"w","description":"Path to the publish directory"},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false}},"args":[{"name":"url","description":"Sets the request URL","required":true}]},"env:get":{"id":"env:get","description":"Get resolved value of specified environment variable (includes netlify.toml)","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"Environment variable name","required":true}]},"env:import":{"id":"env:import","description":"Import and set environment variables from .env file","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"replaceExisting":{"name":"replaceExisting","type":"boolean","char":"r","description":"Replace all existing variables instead of merging them with the current ones","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"fileName","description":".env file to import","required":true}]},"env":{"id":"env","description":"(Beta) Control environment variables for the current site","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify env:list","netlify env:get VAR_NAME","netlify env:set VAR_NAME value","netlify env:unset VAR_NAME","netlify env:import fileName"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"env:list":{"id":"env:list","description":"Lists resolved environment variables for site (includes netlify.toml)","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"env:set":{"id":"env:set","description":"Set value of environment variable","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"Environment variable name","required":true},{"name":"value","description":"Value to set to","required":false,"default":""}]},"env:unset":{"id":"env:unset","description":"Unset an environment variable which removes it from the UI","pluginName":"netlify-cli","pluginType":"core","aliases":["env:delete","env:remove"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"Environment variable name","required":true}]},"functions:build":{"id":"functions:build","description":"Build functions locally\n","pluginName":"netlify-cli","pluginType":"core","aliases":["function:build"],"flags":{"functions":{"name":"functions","type":"option","char":"f","description":"Specify a functions directory to build to"},"src":{"name":"src","type":"option","char":"s","description":"Specify the source directory for the functions"},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"functions:create":{"id":"functions:create","description":"Create a new function locally","pluginName":"netlify-cli","pluginType":"core","aliases":["function:create"],"examples":["netlify functions:create","netlify functions:create hello-world","netlify functions:create --name hello-world"],"flags":{"name":{"name":"name","type":"option","char":"n","description":"function name"},"url":{"name":"url","type":"option","char":"u","description":"pull template from URL"},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"name of your new function file inside your functions directory"}]},"functions":{"id":"functions","description":"Manage netlify functions\nThe `functions` command will help you manage the functions in this site\n","pluginName":"netlify-cli","pluginType":"core","aliases":["function"],"examples":["netlify functions:create --name function-xyz","netlify functions:build --name function-abc --timeout 30s"],"flags":{},"args":[]},"functions:invoke":{"id":"functions:invoke","description":"Trigger a function while in netlify dev with simulated data, good for testing function calls including Netlify's Event Triggered Functions","pluginName":"netlify-cli","pluginType":"core","aliases":["function:trigger"],"examples":["$ netlify functions:invoke","$ netlify functions:invoke myfunction","$ netlify functions:invoke --name myfunction","$ netlify functions:invoke --name myfunction --identity","$ netlify functions:invoke --name myfunction --no-identity","$ netlify functions:invoke myfunction --payload '{\"foo\": 1}'","$ netlify functions:invoke myfunction --querystring \"foo=1","$ netlify functions:invoke myfunction --payload \"./pathTo.json\""],"flags":{"name":{"name":"name","type":"option","char":"n","description":"function name to invoke"},"functions":{"name":"functions","type":"option","char":"f","description":"Specify a functions folder to parse, overriding netlify.toml"},"querystring":{"name":"querystring","type":"option","char":"q","description":"Querystring to add to your function invocation"},"payload":{"name":"payload","type":"option","char":"p","description":"Supply POST payload in stringified json, or a path to a json file"},"identity":{"name":"identity","type":"boolean","description":"simulate Netlify Identity authentication JWT. pass --no-identity to affirm unauthenticated request","allowNo":true},"port":{"name":"port","type":"option","description":"Port where netlify dev is accessible. e.g. 8888"},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"function name to invoke"}]},"functions:list":{"id":"functions:list","description":"List functions that exist locally\n\nHelpful for making sure that you have formatted your functions correctly\n\nNOT the same as listing the functions that have been deployed. For that info you need to go to your Netlify deploy log.\n","pluginName":"netlify-cli","pluginType":"core","aliases":["function:list"],"flags":{"name":{"name":"name","type":"option","char":"n","description":"name to print"},"functions":{"name":"functions","type":"option","char":"f","description":"Specify a functions directory to list"},"json":{"name":"json","type":"boolean","description":"Output function data as JSON","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"functions:serve":{"id":"functions:serve","description":"(Beta) Serve functions locally\n\nHelpful for debugging functions.\n","pluginName":"netlify-cli","pluginType":"core","aliases":["function:serve"],"flags":{"functions":{"name":"functions","type":"option","char":"f","description":"Specify a functions directory to serve"},"port":{"name":"port","type":"option","char":"p","description":"Specify a port for the functions server"},"offline":{"name":"offline","type":"boolean","char":"o","description":"disables any features that require network access","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"lm":{"id":"lm","description":"Handle Netlify Large Media operations\nThe lm command will help you manage large media for a site\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify lm:info","netlify lm:install","netlify lm:setup"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"lm:info":{"id":"lm:info","description":"Show large media requirements information.","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"lm:install":{"id":"lm:install","description":"Configures your computer to use Netlify Large Media.\nIt installs the required credentials helper for Git,\nand configures your Git environment with the right credentials.","pluginName":"netlify-cli","pluginType":"core","aliases":["lm:init"],"flags":{"force":{"name":"force","type":"boolean","char":"f","description":"Force the credentials helper installation","allowNo":false}},"args":[]},"lm:setup":{"id":"lm:setup","description":"Configures your site to use Netlify Large Media.\nIt runs the install command if you have not installed the dependencies yet.","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"skip-install":{"name":"skip-install","type":"boolean","char":"s","description":"Skip the credentials helper installation check","allowNo":false},"force-install":{"name":"force-install","type":"boolean","char":"f","description":"Force the credentials helper installation","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"lm:uninstall":{"id":"lm:uninstall","description":"Uninstalls Netlify git credentials helper and cleans up any related configuration changes made by the install command.","pluginName":"netlify-cli","pluginType":"core","hidden":true,"aliases":["lm:remove"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"open:admin":{"id":"open:admin","description":"Opens current site admin UI in Netlify","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify open:admin"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"open":{"id":"open","description":"Open settings for the site linked to the current folder","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify open --site","netlify open --admin","netlify open:admin","netlify open:site"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"},"site":{"name":"site","type":"boolean","description":"Open site","allowNo":false},"admin":{"name":"admin","type":"boolean","description":"Open Netlify site","allowNo":false}},"args":[]},"open:site":{"id":"open:site","description":"Opens current site url in browser","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify open:site"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"sites:create":{"id":"sites:create","description":"Create an empty site (advanced)\n\nCreate a blank site that isn't associated with any git remote. Does not link to the current working directory.\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"name":{"name":"name","type":"option","char":"n","description":"name of site"},"account-slug":{"name":"account-slug","type":"option","char":"a","description":"account slug to create the site under"},"with-ci":{"name":"with-ci","type":"boolean","char":"c","description":"initialize CI hooks during site creation","allowNo":false},"manual":{"name":"manual","type":"boolean","char":"m","description":"Force manual CI setup. Used --with-ci flag","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"sites:delete":{"id":"sites:delete","description":"Delete a site\n\nThis command will permanently delete the site on Netlify. Use with caution.\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify sites:delete 1234-3262-1211"],"flags":{"force":{"name":"force","type":"boolean","char":"f","description":"delete without prompting (useful for CI)","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"siteId","description":"Site ID to delete.","required":true}]},"sites":{"id":"sites","description":"Handle various site operations\nThe sites command will help you manage all your sites\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify sites:create --name my-new-site","netlify sites:list"],"flags":{},"args":[]},"sites:list":{"id":"sites:list","description":"List all sites you have access to","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Output site data as JSON","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"status:hooks":{"id":"status:hooks","description":"Print hook information of the linked site","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"status":{"id":"status","description":"Print status information","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"verbose":{"name":"verbose","type":"boolean","description":"Output system info","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]}}}
1
+ {"version":"6.9.14","commands":{"api":{"id":"api","description":"Run any Netlify API method\n\nFor more information on available methods checkout https://open-api.netlify.com/ or run \"netlify api --list\"\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify api --list","netlify api getSite --data '{ \"site_id\": \"123456\"}'"],"flags":{"data":{"name":"data","type":"option","char":"d","description":"Data to use"},"list":{"name":"list","type":"boolean","description":"List out available API methods","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"apiMethod","description":"Open API method to run"}]},"deploy":{"id":"deploy","description":"Create a new deploy from the contents of a folder\n\nDeploys from the build settings found in the netlify.toml file, or settings from the API.\n\nThe following environment variables can be used to override configuration file lookups and prompts:\n\n- `NETLIFY_AUTH_TOKEN` - an access token to use when authenticating commands. Keep this value private.\n- `NETLIFY_SITE_ID` - override any linked site in the current working directory.\n\nLambda functions in the function folder can be in the following configurations for deployment:\n\n\nBuilt Go binaries:\n------------------\n\n```\nfunctions/\n└── nameOfGoFunction\n```\n\nBuild binaries of your Go language functions into the functions folder as part of your build process.\n\n\nSingle file Node.js functions:\n-----------------------------\n\nBuild dependency bundled Node.js lambda functions with tools like netlify-lambda, webpack or browserify into the function folder as part of your build process.\n\n```\nfunctions/\n└── nameOfBundledNodeJSFunction.js\n```\n\nUnbundled Node.js functions that have dependencies outside or inside of the functions folder:\n---------------------------------------------------------------------------------------------\n\nYou can ship unbundled Node.js functions with the CLI, utilizing top level project dependencies, or a nested package.json.\nIf you use nested dependencies, be sure to populate the nested node_modules as part of your build process before deploying using npm or yarn.\n\n```\nproject/\n├── functions\n│ ├── functionName/\n│ │ ├── functionName.js (Note the folder and the function name need to match)\n│ │ ├── package.json\n│ │ └── node_modules/\n│ └── unbundledFunction.js\n├── package.json\n├── netlify.toml\n└── node_modules/\n```\n\nAny mix of these configurations works as well.\n\n\nNode.js function entry points\n-----------------------------\n\nFunction entry points are determined by the file name and name of the folder they are in:\n\n```\nfunctions/\n├── aFolderlessFunctionEntrypoint.js\n└── functionName/\n ├── notTheEntryPoint.js\n └── functionName.js\n```\n\nSupport for package.json's main field, and intrinsic index.js entrypoints are coming soon.\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify deploy","netlify deploy --prod","netlify deploy --prod --open","netlify deploy --prodIfUnlocked","netlify deploy --message \"A message with an $ENV_VAR\"","netlify deploy --auth $NETLIFY_AUTH_TOKEN","netlify deploy --trigger"],"flags":{"dir":{"name":"dir","type":"option","char":"d","description":"Specify a folder to deploy"},"functions":{"name":"functions","type":"option","char":"f","description":"Specify a functions folder to deploy"},"prod":{"name":"prod","type":"boolean","char":"p","description":"Deploy to production","allowNo":false},"prodIfUnlocked":{"name":"prodIfUnlocked","type":"boolean","description":"Deploy to production if unlocked, create a draft otherwise","allowNo":false},"alias":{"name":"alias","type":"option","description":"Specifies the alias for deployment, the string at the beginning of the deploy subdomain. Useful for creating predictable deployment URLs. Avoid setting an alias string to the same value as a deployed branch. `alias` doesn’t create a branch deploy and can’t be used in conjunction with the branch subdomain feature. Maximum 37 characters."},"branch":{"name":"branch","type":"option","char":"b","description":"Serves the same functionality as --alias. Deprecated and will be removed in future versions"},"open":{"name":"open","type":"boolean","char":"o","description":"Open site after deploy","allowNo":false},"message":{"name":"message","type":"option","char":"m","description":"A short message to include in the deploy log"},"auth":{"name":"auth","type":"option","char":"a","description":"Netlify auth token to deploy with"},"site":{"name":"site","type":"option","char":"s","description":"A site ID to deploy to"},"json":{"name":"json","type":"boolean","description":"Output deployment data as JSON","allowNo":false},"timeout":{"name":"timeout","type":"option","description":"Timeout to wait for deployment to finish"},"trigger":{"name":"trigger","type":"boolean","description":"Trigger a new build of your site on Netlify without uploading local files","allowNo":false},"build":{"name":"build","type":"boolean","description":"Run build command before deploying","allowNo":false},"skip-functions-cache":{"name":"skip-functions-cache","type":"boolean","description":"Ignore any functions created as part of a previous `build` or `deploy` commands, forcing them to be bundled again as part of the deployment","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"init":{"id":"init","description":"Configure continuous deployment for a new or existing site. To create a new site without continuous deployment, use `netlify sites:create`","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"manual":{"name":"manual","type":"boolean","char":"m","description":"Manually configure a git remote for CI","allowNo":false},"force":{"name":"force","type":"boolean","description":"Reinitialize CI hooks if the linked site is already configured to use CI","allowNo":false},"gitRemoteName":{"name":"gitRemoteName","type":"option","description":"Name of Git remote to use. e.g. \"origin\""},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"link":{"id":"link","description":"Link a local repo or project folder to an existing site on Netlify","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify link","netlify link --id 123-123-123-123","netlify link --name my-site-name"],"flags":{"id":{"name":"id","type":"option","description":"ID of site to link to"},"name":{"name":"name","type":"option","description":"Name of site to link to"},"gitRemoteName":{"name":"gitRemoteName","type":"option","description":"Name of Git remote to use. e.g. \"origin\""},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"login":{"id":"login","description":"Login to your Netlify account\n\nOpens a web browser to acquire an OAuth token.\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"new":{"name":"new","type":"boolean","description":"Login to new Netlify account","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"logout":{"id":"logout","description":"Logout of your Netlify account","pluginName":"netlify-cli","pluginType":"core","hidden":true,"aliases":[],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"switch":{"id":"switch","description":"Switch your active Netlify account","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"unlink":{"id":"unlink","description":"Unlink a local folder from a Netlify site","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"watch":{"id":"watch","description":"Watch for site deploy to finish","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify watch","git push && netlify watch"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"addons:auth":{"id":"addons:auth","description":"Login to add-on provider","pluginName":"netlify-cli","pluginType":"core","aliases":["addon:auth"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"Add-on slug","required":true}]},"addons:config":{"id":"addons:config","description":"Configure add-on settings","pluginName":"netlify-cli","pluginType":"core","aliases":["addon:config"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"Add-on namespace","required":true}]},"addons:create":{"id":"addons:create","description":"Add an add-on extension to your site\n...\nAdd-ons are a way to extend the functionality of your Netlify site\n","pluginName":"netlify-cli","pluginType":"core","aliases":["addon:create"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"Add-on namespace","required":true}]},"addons:delete":{"id":"addons:delete","description":"Remove an add-on extension to your site\n...\nAdd-ons are a way to extend the functionality of your Netlify site\n","pluginName":"netlify-cli","pluginType":"core","aliases":["addon:delete"],"flags":{"force":{"name":"force","type":"boolean","char":"f","description":"delete without prompting (useful for CI)","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"Add-on namespace","required":true}]},"addons":{"id":"addons","description":"(Beta) Manage Netlify Add-ons","pluginName":"netlify-cli","pluginType":"core","aliases":["addon"],"examples":["netlify addons:create addon-xyz","netlify addons:list","netlify addons:config addon-xyz","netlify addons:delete addon-xyz","netlify addons:auth addon-xyz"],"flags":{},"args":[]},"addons:list":{"id":"addons:list","description":"List currently installed add-ons for site","pluginName":"netlify-cli","pluginType":"core","aliases":["addon:list"],"flags":{"json":{"name":"json","type":"boolean","description":"Output add-on data as JSON","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"build":{"id":"build","description":"(Beta) Build on your local machine","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify build"],"flags":{"dry":{"name":"dry","type":"boolean","description":"Dry run: show instructions without running them","allowNo":false},"context":{"name":"context","type":"option","description":"Build context"},"offline":{"name":"offline","type":"boolean","char":"o","description":"disables any features that require network access","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"dev:exec":{"id":"dev:exec","description":"Exec command\nRuns a command within the netlify dev environment, e.g. with env variables from any installed addons\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["$ netlify dev:exec npm run bootstrap"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"dev":{"id":"dev","description":"Local dev server\nThe dev command will run a local dev server with Netlify's proxy and redirect rules\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["$ netlify dev","$ netlify dev -d public","$ netlify dev -c \"hugo server -w\" --targetPort 1313"],"flags":{"command":{"name":"command","type":"option","char":"c","description":"command to run"},"port":{"name":"port","type":"option","char":"p","description":"port of netlify dev"},"targetPort":{"name":"targetPort","type":"option","description":"port of target app server"},"framework":{"name":"framework","type":"option","description":"framework to use. Defaults to #auto which automatically detects a framework"},"staticServerPort":{"name":"staticServerPort","type":"option","description":"port of the static app server used when no framework is detected","hidden":true},"dir":{"name":"dir","type":"option","char":"d","description":"dir with static files"},"functions":{"name":"functions","type":"option","char":"f","description":"specify a functions folder to serve"},"offline":{"name":"offline","type":"boolean","char":"o","description":"disables any features that require network access","allowNo":false},"live":{"name":"live","type":"boolean","char":"l","description":"start a public live session","allowNo":false},"edgeHandlers":{"name":"edgeHandlers","type":"boolean","char":"e","description":"activates the Edge Handlers runtime","hidden":true,"allowNo":false},"trafficMesh":{"name":"trafficMesh","type":"boolean","char":"t","description":"(DEPRECATED: use --edgeHandlers or -e instead) uses Traffic Mesh for proxying requests","hidden":true,"allowNo":false},"locationDb":{"name":"locationDb","type":"option","char":"g","description":"specify the path to a local GeoIP location database in MMDB format","hidden":true},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"dev:trace":{"id":"dev:trace","description":"Trace command\nSimulates Netlify's Edge routing logic to match specific requests.\nThis command is designed to mimic cURL's command line, so the flags are more familiar.\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["$ netlify dev:trace http://localhost/routing-path","$ netlify dev:trace -w dist-directory http://localhost/routing-path","$ netlify dev:trace -X POST http://localhost/routing-path","$ netlify dev:trace -H \"Accept-Language es\" http://localhost/routing-path","$ netlify dev:trace --cookie nf_jwt=token http://localhost/routing-path"],"flags":{"request":{"name":"request","type":"option","char":"X","description":"Specifies a custom request method [default: GET]"},"cookie":{"name":"cookie","type":"option","char":"b","description":"Request cookie, this flag can be used multiple times. Example: \"nf_jwt=token\""},"header":{"name":"header","type":"option","char":"H","description":"Request header, this flag can be used multiple times. Example: \"Host: netlify.test\""},"watch":{"name":"watch","type":"option","char":"w","description":"Path to the publish directory"},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false}},"args":[{"name":"url","description":"Sets the request URL","required":true}]},"env:get":{"id":"env:get","description":"Get resolved value of specified environment variable (includes netlify.toml)","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"Environment variable name","required":true}]},"env:import":{"id":"env:import","description":"Import and set environment variables from .env file","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"replaceExisting":{"name":"replaceExisting","type":"boolean","char":"r","description":"Replace all existing variables instead of merging them with the current ones","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"fileName","description":".env file to import","required":true}]},"env":{"id":"env","description":"(Beta) Control environment variables for the current site","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify env:list","netlify env:get VAR_NAME","netlify env:set VAR_NAME value","netlify env:unset VAR_NAME","netlify env:import fileName"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"env:list":{"id":"env:list","description":"Lists resolved environment variables for site (includes netlify.toml)","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"env:set":{"id":"env:set","description":"Set value of environment variable","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"Environment variable name","required":true},{"name":"value","description":"Value to set to","required":false,"default":""}]},"env:unset":{"id":"env:unset","description":"Unset an environment variable which removes it from the UI","pluginName":"netlify-cli","pluginType":"core","aliases":["env:delete","env:remove"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"Environment variable name","required":true}]},"functions:build":{"id":"functions:build","description":"Build functions locally\n","pluginName":"netlify-cli","pluginType":"core","aliases":["function:build"],"flags":{"functions":{"name":"functions","type":"option","char":"f","description":"Specify a functions directory to build to"},"src":{"name":"src","type":"option","char":"s","description":"Specify the source directory for the functions"},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"functions:create":{"id":"functions:create","description":"Create a new function locally","pluginName":"netlify-cli","pluginType":"core","aliases":["function:create"],"examples":["netlify functions:create","netlify functions:create hello-world","netlify functions:create --name hello-world"],"flags":{"name":{"name":"name","type":"option","char":"n","description":"function name"},"url":{"name":"url","type":"option","char":"u","description":"pull template from URL"},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"name of your new function file inside your functions directory"}]},"functions":{"id":"functions","description":"Manage netlify functions\nThe `functions` command will help you manage the functions in this site\n","pluginName":"netlify-cli","pluginType":"core","aliases":["function"],"examples":["netlify functions:create --name function-xyz","netlify functions:build --name function-abc --timeout 30s"],"flags":{},"args":[]},"functions:invoke":{"id":"functions:invoke","description":"Trigger a function while in netlify dev with simulated data, good for testing function calls including Netlify's Event Triggered Functions","pluginName":"netlify-cli","pluginType":"core","aliases":["function:trigger"],"examples":["$ netlify functions:invoke","$ netlify functions:invoke myfunction","$ netlify functions:invoke --name myfunction","$ netlify functions:invoke --name myfunction --identity","$ netlify functions:invoke --name myfunction --no-identity","$ netlify functions:invoke myfunction --payload '{\"foo\": 1}'","$ netlify functions:invoke myfunction --querystring \"foo=1","$ netlify functions:invoke myfunction --payload \"./pathTo.json\""],"flags":{"name":{"name":"name","type":"option","char":"n","description":"function name to invoke"},"functions":{"name":"functions","type":"option","char":"f","description":"Specify a functions folder to parse, overriding netlify.toml"},"querystring":{"name":"querystring","type":"option","char":"q","description":"Querystring to add to your function invocation"},"payload":{"name":"payload","type":"option","char":"p","description":"Supply POST payload in stringified json, or a path to a json file"},"identity":{"name":"identity","type":"boolean","description":"simulate Netlify Identity authentication JWT. pass --no-identity to affirm unauthenticated request","allowNo":true},"port":{"name":"port","type":"option","description":"Port where netlify dev is accessible. e.g. 8888"},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"name","description":"function name to invoke"}]},"functions:list":{"id":"functions:list","description":"List functions that exist locally\n\nHelpful for making sure that you have formatted your functions correctly\n\nNOT the same as listing the functions that have been deployed. For that info you need to go to your Netlify deploy log.\n","pluginName":"netlify-cli","pluginType":"core","aliases":["function:list"],"flags":{"name":{"name":"name","type":"option","char":"n","description":"name to print"},"functions":{"name":"functions","type":"option","char":"f","description":"Specify a functions directory to list"},"json":{"name":"json","type":"boolean","description":"Output function data as JSON","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"functions:serve":{"id":"functions:serve","description":"(Beta) Serve functions locally\n\nHelpful for debugging functions.\n","pluginName":"netlify-cli","pluginType":"core","aliases":["function:serve"],"flags":{"functions":{"name":"functions","type":"option","char":"f","description":"Specify a functions directory to serve"},"port":{"name":"port","type":"option","char":"p","description":"Specify a port for the functions server"},"offline":{"name":"offline","type":"boolean","char":"o","description":"disables any features that require network access","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"lm":{"id":"lm","description":"Handle Netlify Large Media operations\nThe lm command will help you manage large media for a site\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify lm:info","netlify lm:install","netlify lm:setup"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"lm:info":{"id":"lm:info","description":"Show large media requirements information.","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"lm:install":{"id":"lm:install","description":"Configures your computer to use Netlify Large Media.\nIt installs the required credentials helper for Git,\nand configures your Git environment with the right credentials.","pluginName":"netlify-cli","pluginType":"core","aliases":["lm:init"],"flags":{"force":{"name":"force","type":"boolean","char":"f","description":"Force the credentials helper installation","allowNo":false}},"args":[]},"lm:setup":{"id":"lm:setup","description":"Configures your site to use Netlify Large Media.\nIt runs the install command if you have not installed the dependencies yet.","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"skip-install":{"name":"skip-install","type":"boolean","char":"s","description":"Skip the credentials helper installation check","allowNo":false},"force-install":{"name":"force-install","type":"boolean","char":"f","description":"Force the credentials helper installation","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"lm:uninstall":{"id":"lm:uninstall","description":"Uninstalls Netlify git credentials helper and cleans up any related configuration changes made by the install command.","pluginName":"netlify-cli","pluginType":"core","hidden":true,"aliases":["lm:remove"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"open:admin":{"id":"open:admin","description":"Opens current site admin UI in Netlify","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify open:admin"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"open":{"id":"open","description":"Open settings for the site linked to the current folder","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify open --site","netlify open --admin","netlify open:admin","netlify open:site"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"},"site":{"name":"site","type":"boolean","description":"Open site","allowNo":false},"admin":{"name":"admin","type":"boolean","description":"Open Netlify site","allowNo":false}},"args":[]},"open:site":{"id":"open:site","description":"Opens current site url in browser","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify open:site"],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"sites:create":{"id":"sites:create","description":"Create an empty site (advanced)\n\nCreate a blank site that isn't associated with any git remote. Does not link to the current working directory.\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"name":{"name":"name","type":"option","char":"n","description":"name of site"},"account-slug":{"name":"account-slug","type":"option","char":"a","description":"account slug to create the site under"},"with-ci":{"name":"with-ci","type":"boolean","char":"c","description":"initialize CI hooks during site creation","allowNo":false},"manual":{"name":"manual","type":"boolean","char":"m","description":"Force manual CI setup. Used --with-ci flag","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"sites:delete":{"id":"sites:delete","description":"Delete a site\n\nThis command will permanently delete the site on Netlify. Use with caution.\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify sites:delete 1234-3262-1211"],"flags":{"force":{"name":"force","type":"boolean","char":"f","description":"delete without prompting (useful for CI)","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[{"name":"siteId","description":"Site ID to delete.","required":true}]},"sites":{"id":"sites","description":"Handle various site operations\nThe sites command will help you manage all your sites\n","pluginName":"netlify-cli","pluginType":"core","aliases":[],"examples":["netlify sites:create --name my-new-site","netlify sites:list"],"flags":{},"args":[]},"sites:list":{"id":"sites:list","description":"List all sites you have access to","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"json":{"name":"json","type":"boolean","description":"Output site data as JSON","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"status:hooks":{"id":"status:hooks","description":"Print hook information of the linked site","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]},"status":{"id":"status","description":"Print status information","pluginName":"netlify-cli","pluginType":"core","aliases":[],"flags":{"verbose":{"name":"verbose","type":"boolean","description":"Output system info","allowNo":false},"debug":{"name":"debug","type":"boolean","description":"Print debugging information","allowNo":false},"httpProxy":{"name":"httpProxy","type":"option","description":"Proxy server address to route requests through."},"httpProxyCertificateFilename":{"name":"httpProxyCertificateFilename","type":"option","description":"Certificate file to use when connecting using a proxy server"}},"args":[]}}}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "netlify-cli",
3
3
  "description": "Netlify command line tool",
4
- "version": "6.9.10",
4
+ "version": "6.9.14",
5
5
  "author": "Netlify Inc.",
6
6
  "contributors": [
7
7
  "Mathias Biilmann <matt@netlify.com> (https://twitter.com/biilmann)",
@@ -77,14 +77,14 @@
77
77
  "prettier": "--ignore-path .gitignore --loglevel=warn \"{src,scripts,site,tests,.github}/**/*.{js,md,yml,json,html}\" \"*.{js,yml,json,html}\" \".*.{js,yml,json,html}\" \"!CHANGELOG.md\" \"!npm-shrinkwrap.json\""
78
78
  },
79
79
  "dependencies": {
80
- "@netlify/build": "^18.11.2",
81
- "@netlify/config": "^15.6.2",
80
+ "@netlify/build": "^18.13.0",
81
+ "@netlify/config": "^15.6.3",
82
82
  "@netlify/framework-info": "^5.9.2",
83
83
  "@netlify/local-functions-proxy": "^1.1.1",
84
84
  "@netlify/plugin-edge-handlers": "^1.11.22",
85
85
  "@netlify/plugins-list": "^3.6.0",
86
86
  "@netlify/routing-local-proxy": "^0.33.2",
87
- "@netlify/zip-it-and-ship-it": "4.22.0",
87
+ "@netlify/zip-it-and-ship-it": "4.23.0",
88
88
  "@oclif/command": "^1.6.1",
89
89
  "@oclif/config": "^1.15.1",
90
90
  "@oclif/errors": "^1.3.4",
@@ -151,7 +151,7 @@
151
151
  "memoize-one": "^5.2.1",
152
152
  "minimist": "^1.2.5",
153
153
  "multiparty": "^4.2.1",
154
- "netlify": "^8.0.0",
154
+ "netlify": "^8.0.1",
155
155
  "netlify-headers-parser": "^4.0.1",
156
156
  "netlify-redirect-parser": "^11.0.2",
157
157
  "netlify-redirector": "^0.2.1",
@@ -195,7 +195,7 @@
195
195
  "@babel/preset-react": "^7.12.13",
196
196
  "@commitlint/cli": "^13.0.0",
197
197
  "@commitlint/config-conventional": "^13.0.0",
198
- "@netlify/eslint-config-node": "^3.2.9",
198
+ "@netlify/eslint-config-node": "^3.2.10",
199
199
  "@oclif/dev-cli": "^1.23.1",
200
200
  "@oclif/test": "^1.2.5",
201
201
  "ava": "^3.15.0",
@@ -61,7 +61,6 @@ class AddonsConfigCommand extends Command {
61
61
  siteId,
62
62
  instanceId: addon.id,
63
63
  api,
64
- error: this.error,
65
64
  })
66
65
  return false
67
66
  }
@@ -181,7 +181,6 @@ class DevCommand extends Command {
181
181
 
182
182
  async run() {
183
183
  log(`${NETLIFYDEV}`)
184
- const { error: errorExit } = this
185
184
  const { flags } = this.parse(DevCommand)
186
185
  const { api, site, config, siteInfo } = this.netlify
187
186
  config.dev = { ...config.dev }
@@ -200,13 +199,11 @@ class DevCommand extends Command {
200
199
  )
201
200
  }
202
201
 
203
- await injectEnvVariables({ env: this.netlify.cachedConfig.env, site, warn })
202
+ await injectEnvVariables({ env: this.netlify.cachedConfig.env, site })
204
203
  const { addonsUrls, siteUrl, capabilities, timeouts } = await getSiteInformation({
205
204
  flags,
206
205
  api,
207
206
  site,
208
- warn,
209
- error: errorExit,
210
207
  siteInfo,
211
208
  })
212
209
 
@@ -224,8 +221,6 @@ class DevCommand extends Command {
224
221
  config,
225
222
  settings,
226
223
  site,
227
- warn,
228
- errorExit,
229
224
  siteUrl,
230
225
  capabilities,
231
226
  timeouts,
@@ -13,7 +13,7 @@ class FunctionsServeCommand extends Command {
13
13
  async run() {
14
14
  const { flags } = this.parse(FunctionsServeCommand)
15
15
 
16
- const { error: errorExit, netlify } = this
16
+ const { netlify } = this
17
17
  const { api, site, config, siteInfo } = netlify
18
18
 
19
19
  const functionsDir = getFunctionsDir({ flags, config }, join('netlify', 'functions'))
@@ -24,7 +24,6 @@ class FunctionsServeCommand extends Command {
24
24
  flags,
25
25
  api,
26
26
  site,
27
- error: errorExit,
28
27
  siteInfo,
29
28
  })
30
29
 
@@ -38,7 +37,6 @@ class FunctionsServeCommand extends Command {
38
37
  config,
39
38
  settings: { functions: functionsDir, functionsPort },
40
39
  site,
41
- errorExit,
42
40
  siteUrl,
43
41
  capabilities,
44
42
  timeouts,
@@ -5,7 +5,7 @@ const inquirer = require('inquirer')
5
5
  const isEmpty = require('lodash/isEmpty')
6
6
 
7
7
  const Command = require('../utils/command')
8
- const { log } = require('../utils/command-helpers')
8
+ const { log, exit } = require('../utils/command-helpers')
9
9
  const { getRepoData } = require('../utils/get-repo-data')
10
10
  const ensureNetlifyIgnore = require('../utils/gitignore')
11
11
  const { configureRepo } = require('../utils/init/config')
@@ -21,7 +21,7 @@ const persistState = ({ state, siteInfo }) => {
21
21
 
22
22
  const getRepoUrl = ({ siteInfo }) => dotProp.get(siteInfo, 'build_settings.repo_url')
23
23
 
24
- const logExistingAndExit = ({ exit, siteInfo }) => {
24
+ const logExistingAndExit = ({ siteInfo }) => {
25
25
  log()
26
26
  log(`This site has been initialized`)
27
27
  log()
@@ -37,7 +37,7 @@ const logExistingAndExit = ({ exit, siteInfo }) => {
37
37
  exit()
38
38
  }
39
39
 
40
- const createNewSiteAndExit = async ({ exit, state }) => {
40
+ const createNewSiteAndExit = async ({ state }) => {
41
41
  const siteInfo = await SitesCreateCommand.run([])
42
42
 
43
43
  log(`"${siteInfo.name}" site was created`)
@@ -49,7 +49,7 @@ const createNewSiteAndExit = async ({ exit, state }) => {
49
49
  exit()
50
50
  }
51
51
 
52
- const logGitSetupInstructionsAndExit = ({ exit }) => {
52
+ const logGitSetupInstructionsAndExit = () => {
53
53
  log()
54
54
  log(`${chalk.bold('To initialize a new git repo follow the steps below.')}
55
55
 
@@ -82,7 +82,7 @@ const logGitSetupInstructionsAndExit = ({ exit }) => {
82
82
  exit()
83
83
  }
84
84
 
85
- const handleNoGitRemoteAndExit = async ({ exit, error, state }) => {
85
+ const handleNoGitRemoteAndExit = async ({ error, state }) => {
86
86
  log()
87
87
  log(`${chalk.yellow('No git remote was found, would you like to set one up?')}`)
88
88
  log(`
@@ -112,9 +112,9 @@ git remote add origin https://github.com/YourUserName/RepoName.git
112
112
  ])
113
113
 
114
114
  if (noGitRemoteChoice === NEW_SITE_NO_GIT) {
115
- await createNewSiteAndExit({ exit, state })
115
+ await createNewSiteAndExit({ state })
116
116
  } else if (noGitRemoteChoice === NO_ABORT) {
117
- logGitSetupInstructionsAndExit({ exit })
117
+ logGitSetupInstructionsAndExit()
118
118
  }
119
119
  }
120
120
 
@@ -147,7 +147,7 @@ const createOrLinkSiteToRepo = async () => {
147
147
  }
148
148
  }
149
149
 
150
- const logExistingRepoSetupAndExit = ({ exit, siteName, repoUrl }) => {
150
+ const logExistingRepoSetupAndExit = ({ siteName, repoUrl }) => {
151
151
  log()
152
152
  log(chalk.underline.bold(`Success`))
153
153
  log(`This site "${siteName}" is configured to automatically deploy via ${repoUrl}`)
@@ -161,7 +161,7 @@ class InitCommand extends Command {
161
161
 
162
162
  this.setAnalyticsPayload({ manual: flags.manual, force: flags.force })
163
163
 
164
- const { exit, netlify } = this
164
+ const { netlify } = this
165
165
  const { repositoryRoot, state } = netlify
166
166
  let { siteInfo } = this.netlify
167
167
 
@@ -173,13 +173,13 @@ class InitCommand extends Command {
173
173
 
174
174
  const repoUrl = getRepoUrl({ siteInfo })
175
175
  if (repoUrl && !flags.force) {
176
- logExistingAndExit({ exit, siteInfo })
176
+ logExistingAndExit({ siteInfo })
177
177
  }
178
178
 
179
179
  // Look for local repo
180
180
  const repoData = await getRepoData({ remoteName: flags.gitRemoteName })
181
181
  if (repoData.error) {
182
- await handleNoGitRemoteAndExit({ exit, error: repoData.error, state })
182
+ await handleNoGitRemoteAndExit({ error: repoData.error, state })
183
183
  }
184
184
 
185
185
  if (isEmpty(siteInfo)) {
@@ -189,7 +189,7 @@ class InitCommand extends Command {
189
189
  // Check for existing CI setup
190
190
  const remoteBuildRepo = getRepoUrl({ siteInfo })
191
191
  if (remoteBuildRepo && !flags.force) {
192
- logExistingRepoSetupAndExit({ exit, siteName: siteInfo.name, repoUrl: remoteBuildRepo })
192
+ logExistingRepoSetupAndExit({ siteName: siteInfo.name, repoUrl: remoteBuildRepo })
193
193
  }
194
194
 
195
195
  persistState({ state, siteInfo })
@@ -2,7 +2,7 @@ const { flags: flagsLib } = require('@oclif/command')
2
2
  const chalk = require('chalk')
3
3
 
4
4
  const Command = require('../utils/command')
5
- const { log, getToken } = require('../utils/command-helpers')
5
+ const { log, exit, getToken } = require('../utils/command-helpers')
6
6
 
7
7
  class LoginCommand extends Command {
8
8
  async run() {
@@ -18,12 +18,12 @@ class LoginCommand extends Command {
18
18
  log()
19
19
  log(`To see all available commands run: ${chalk.cyanBright('netlify help')}`)
20
20
  log()
21
- return this.exit()
21
+ return exit()
22
22
  }
23
23
 
24
24
  await this.expensivelyAuthenticate()
25
25
 
26
- return this.exit()
26
+ return exit()
27
27
  }
28
28
  }
29
29
 
@@ -1,5 +1,5 @@
1
1
  const Command = require('../utils/command')
2
- const { log, getToken } = require('../utils/command-helpers')
2
+ const { log, exit, getToken } = require('../utils/command-helpers')
3
3
  const { track } = require('../utils/telemetry')
4
4
 
5
5
  class LogoutCommand extends Command {
@@ -10,7 +10,7 @@ class LogoutCommand extends Command {
10
10
  log(`Already logged out`)
11
11
  log()
12
12
  log('To login run "netlify login"')
13
- this.exit()
13
+ exit()
14
14
  }
15
15
 
16
16
  await track('user_logout')
@@ -23,7 +23,7 @@ class LogoutCommand extends Command {
23
23
  log()
24
24
  log('To logout completely, unset the environment variable')
25
25
  log()
26
- this.exit()
26
+ exit()
27
27
  }
28
28
 
29
29
  log(`Logging you out of Netlify. Come back soon!`)
@@ -2,7 +2,7 @@ const chalk = require('chalk')
2
2
  const inquirer = require('inquirer')
3
3
 
4
4
  const Command = require('../utils/command')
5
- const { log } = require('../utils/command-helpers')
5
+ const { log, exit } = require('../utils/command-helpers')
6
6
 
7
7
  const LoginCommand = require('./login')
8
8
 
@@ -35,7 +35,7 @@ class SwitchCommand extends Command {
35
35
  log(`You're now using ${chalk.bold(selectedAccount[1])}.`)
36
36
  }
37
37
 
38
- return this.exit()
38
+ return exit()
39
39
  }
40
40
  }
41
41
 
@@ -5,7 +5,7 @@ const pWaitFor = require('p-wait-for')
5
5
  const prettyjson = require('prettyjson')
6
6
 
7
7
  const Command = require('../utils/command')
8
- const { log } = require('../utils/command-helpers')
8
+ const { log, exit } = require('../utils/command-helpers')
9
9
 
10
10
  const InitCommand = require('./init')
11
11
 
@@ -70,7 +70,7 @@ class SitesWatchCommand extends Command {
70
70
  throw new CLIError(error)
71
71
  }
72
72
 
73
- this.exit()
73
+ exit()
74
74
  }
75
75
  }
76
76
 
@@ -5,10 +5,11 @@ const { parse: parseContentType } = require('content-type')
5
5
  const multiparty = require('multiparty')
6
6
  const getRawBody = require('raw-body')
7
7
 
8
+ const { warn } = require('../../utils/command-helpers')
8
9
  const { BACKGROUND } = require('../../utils/get-functions')
9
10
  const { capitalize } = require('../string')
10
11
 
11
- const createFormSubmissionHandler = function ({ functionsRegistry, siteUrl, warn }) {
12
+ const createFormSubmissionHandler = function ({ functionsRegistry, siteUrl }) {
12
13
  return async function formSubmissionHandler(req, res, next) {
13
14
  if (req.url.startsWith('/.netlify/') || req.method !== 'POST') return next()
14
15
 
@@ -20,7 +21,7 @@ const createFormSubmissionHandler = function ({ functionsRegistry, siteUrl, warn
20
21
  })
21
22
  fakeRequest.headers = req.headers
22
23
 
23
- const handlerName = getFormHandler({ functionsRegistry, warn })
24
+ const handlerName = getFormHandler({ functionsRegistry })
24
25
  if (!handlerName) {
25
26
  return next()
26
27
  }
@@ -125,7 +126,7 @@ const createFormSubmissionHandler = function ({ functionsRegistry, siteUrl, warn
125
126
  }
126
127
  }
127
128
 
128
- const getFormHandler = function ({ functionsRegistry, warn }) {
129
+ const getFormHandler = function ({ functionsRegistry }) {
129
130
  const handlers = ['submission-created', `submission-created${BACKGROUND}`]
130
131
  .map((name) => functionsRegistry.get(name))
131
132
  .filter(Boolean)
@@ -1,19 +1,10 @@
1
+ const { error: errorExit } = require('../../utils/command-helpers')
1
2
  const { difference } = require('../../utils/difference')
2
3
 
3
4
  const BACKGROUND_SUFFIX = '-background'
4
5
 
5
6
  class NetlifyFunction {
6
- constructor({
7
- config,
8
- directory,
9
- errorExit,
10
- mainFile,
11
- name,
12
- projectRoot,
13
- runtime,
14
- timeoutBackground,
15
- timeoutSynchronous,
16
- }) {
7
+ constructor({ config, directory, mainFile, name, projectRoot, runtime, timeoutBackground, timeoutSynchronous }) {
17
8
  this.config = config
18
9
  this.directory = directory
19
10
  this.errorExit = errorExit
@@ -2,7 +2,7 @@ const { env } = require('process')
2
2
 
3
3
  const chalk = require('chalk')
4
4
 
5
- const { log } = require('../../utils/command-helpers')
5
+ const { log, warn } = require('../../utils/command-helpers')
6
6
  const { NETLIFYDEVLOG, NETLIFYDEVERR } = require('../../utils/logo')
7
7
  const { mkdirRecursiveAsync } = require('../fs')
8
8
  const { getLogMessage } = require('../log')
@@ -12,14 +12,9 @@ const runtimes = require('./runtimes')
12
12
  const { watchDebounced } = require('./watcher')
13
13
 
14
14
  class FunctionsRegistry {
15
- constructor({ capabilities, config, errorExit, projectRoot, timeouts, warn }) {
15
+ constructor({ capabilities, config, projectRoot, timeouts }) {
16
16
  this.capabilities = capabilities
17
17
  this.config = config
18
- this.errorExit = errorExit
19
- this.logger = {
20
- log,
21
- warn,
22
- }
23
18
  this.projectRoot = projectRoot
24
19
  this.timeouts = timeouts
25
20
 
@@ -67,19 +62,19 @@ class FunctionsRegistry {
67
62
 
68
63
  async buildFunctionAndWatchFiles(func, { verbose } = {}) {
69
64
  if (verbose) {
70
- this.logger.log(`${NETLIFYDEVLOG} ${chalk.magenta('Reloading')} function ${chalk.yellow(func.name)}...`)
65
+ log(`${NETLIFYDEVLOG} ${chalk.magenta('Reloading')} function ${chalk.yellow(func.name)}...`)
71
66
  }
72
67
 
73
- const { error, srcFilesDiff } = await func.build({ cache: this.buildCache })
68
+ const { error_, srcFilesDiff } = await func.build({ cache: this.buildCache })
74
69
 
75
- if (error) {
76
- this.logger.log(
70
+ if (error_) {
71
+ log(
77
72
  `${NETLIFYDEVERR} ${chalk.red('Failed')} reloading function ${chalk.yellow(func.name)} with error:\n${
78
- error.message
73
+ error_.message
79
74
  }`,
80
75
  )
81
76
  } else if (verbose) {
82
- this.logger.log(`${NETLIFYDEVLOG} ${chalk.green('Reloaded')} function ${chalk.yellow(func.name)}`)
77
+ log(`${NETLIFYDEVLOG} ${chalk.green('Reloaded')} function ${chalk.yellow(func.name)}`)
83
78
  }
84
79
 
85
80
  // If the build hasn't resulted in any files being added or removed, there
@@ -134,13 +129,13 @@ class FunctionsRegistry {
134
129
  }
135
130
 
136
131
  if (func.isBackground && !this.capabilities.backgroundFunctions) {
137
- this.logger.warn(getLogMessage('functions.backgroundNotSupported'))
132
+ warn(getLogMessage('functions.backgroundNotSupported'))
138
133
  }
139
134
 
140
135
  this.functions.set(name, func)
141
136
  this.buildFunctionAndWatchFiles(func)
142
137
 
143
- this.logger.log(`${NETLIFYDEVLOG} ${chalk.green('Loaded')} function ${chalk.yellow(name)}.`)
138
+ log(`${NETLIFYDEVLOG} ${chalk.green('Loaded')} function ${chalk.yellow(name)}.`)
144
139
  }
145
140
 
146
141
  async scan(directories) {
@@ -186,7 +181,6 @@ class FunctionsRegistry {
186
181
  const func = new NetlifyFunction({
187
182
  config: this.config,
188
183
  directory: directories.find((directory) => mainFile.startsWith(directory)),
189
- errorExit: this.errorExit,
190
184
  mainFile,
191
185
  name,
192
186
  projectRoot: this.projectRoot,
@@ -225,7 +219,7 @@ class FunctionsRegistry {
225
219
  async unregisterFunction(name) {
226
220
  this.functions.delete(name)
227
221
 
228
- this.logger.log(`${NETLIFYDEVLOG} ${chalk.magenta('Removed')} function ${chalk.yellow(name)}.`)
222
+ log(`${NETLIFYDEVLOG} ${chalk.magenta('Removed')} function ${chalk.yellow(name)}.`)
229
223
 
230
224
  const watcher = this.functionWatchers.get(name)
231
225
 
@@ -1,7 +1,7 @@
1
1
  const bodyParser = require('body-parser')
2
2
  const jwtDecode = require('jwt-decode')
3
3
 
4
- const { log, warn } = require('../../utils/command-helpers')
4
+ const { log, error: errorExit } = require('../../utils/command-helpers')
5
5
  const { getInternalFunctionsDir } = require('../../utils/functions')
6
6
  const { NETLIFYDEVERR, NETLIFYDEVLOG } = require('../../utils/logo')
7
7
 
@@ -124,14 +124,14 @@ const getFunctionsServer = async function ({ functionsRegistry, siteUrl, prefix
124
124
  }),
125
125
  )
126
126
  app.use(bodyParser.raw({ limit: '6mb', type: '*/*' }))
127
- app.use(createFormSubmissionHandler({ functionsRegistry, siteUrl, warn }))
127
+ app.use(createFormSubmissionHandler({ functionsRegistry, siteUrl }))
128
128
  app.use(
129
129
  expressLogging(console, {
130
130
  blacklist: ['/favicon.ico'],
131
131
  }),
132
132
  )
133
133
 
134
- app.get('/favicon.ico', function onRequest(req, res) {
134
+ app.get('/favicon.ico', function onRequest(_req, res) {
135
135
  res.status(204).end()
136
136
  })
137
137
 
@@ -140,16 +140,7 @@ const getFunctionsServer = async function ({ functionsRegistry, siteUrl, prefix
140
140
  return app
141
141
  }
142
142
 
143
- const startFunctionsServer = async ({
144
- config,
145
- settings,
146
- site,
147
- errorExit,
148
- siteUrl,
149
- capabilities,
150
- timeouts,
151
- prefix = '',
152
- }) => {
143
+ const startFunctionsServer = async ({ config, settings, site, siteUrl, capabilities, timeouts, prefix = '' }) => {
153
144
  const internalFunctionsDir = await getInternalFunctionsDir({ base: site.root })
154
145
 
155
146
  // The order of the function directories matters. Leftmost directories take
@@ -160,10 +151,8 @@ const startFunctionsServer = async ({
160
151
  const functionsRegistry = new FunctionsRegistry({
161
152
  capabilities,
162
153
  config,
163
- errorExit,
164
154
  projectRoot: site.root,
165
155
  timeouts,
166
- warn,
167
156
  })
168
157
 
169
158
  await functionsRegistry.scan(functionsDirectories)
@@ -172,14 +161,13 @@ const startFunctionsServer = async ({
172
161
  functionsRegistry,
173
162
  siteUrl,
174
163
  prefix,
175
- warn,
176
164
  })
177
165
 
178
- await startWebServer({ server, settings, errorExit })
166
+ await startWebServer({ server, settings })
179
167
  }
180
168
  }
181
169
 
182
- const startWebServer = async ({ server, settings, errorExit }) => {
170
+ const startWebServer = async ({ server, settings }) => {
183
171
  await new Promise((resolve) => {
184
172
  server.listen(settings.functionsPort, (err) => {
185
173
  if (err) {
package/src/utils/dev.js CHANGED
@@ -8,7 +8,7 @@ const isEmpty = require('lodash/isEmpty')
8
8
 
9
9
  const { supportsBackgroundFunctions } = require('../lib/account')
10
10
 
11
- const { log, warn } = require('./command-helpers')
11
+ const { log, warn, exit: failAndExit } = require('./command-helpers')
12
12
  const { loadDotEnvFiles } = require('./dot-env')
13
13
  const { NETLIFYDEVLOG } = require('./logo')
14
14
 
@@ -43,13 +43,13 @@ const ENV_VAR_SOURCES = {
43
43
  const ERROR_CALL_TO_ACTION =
44
44
  "Double-check your login status with 'netlify status' or contact support with details of your error."
45
45
 
46
- const validateSiteInfo = ({ site, siteInfo, failAndExit }) => {
46
+ const validateSiteInfo = ({ site, siteInfo }) => {
47
47
  if (isEmpty(siteInfo)) {
48
48
  failAndExit(`Failed retrieving site information for site ${chalk.yellow(site.id)}. ${ERROR_CALL_TO_ACTION}`)
49
49
  }
50
50
  }
51
51
 
52
- const getAccounts = async ({ api, failAndExit }) => {
52
+ const getAccounts = async ({ api }) => {
53
53
  try {
54
54
  const accounts = await api.listAccountsForUser()
55
55
  return accounts
@@ -58,7 +58,7 @@ const getAccounts = async ({ api, failAndExit }) => {
58
58
  }
59
59
  }
60
60
 
61
- const getAddons = async ({ api, site, failAndExit }) => {
61
+ const getAddons = async ({ api, site }) => {
62
62
  try {
63
63
  const addons = await api.listServiceInstancesForSite({ siteId: site.id })
64
64
  return addons
@@ -88,13 +88,10 @@ const SYNCHRONOUS_FUNCTION_TIMEOUT = 10
88
88
  // default 15 minutes for background functions
89
89
  const BACKGROUND_FUNCTION_TIMEOUT = 900
90
90
 
91
- const getSiteInformation = async ({ flags = {}, api, site, error: failAndExit, siteInfo }) => {
91
+ const getSiteInformation = async ({ flags = {}, api, site, siteInfo }) => {
92
92
  if (site.id && !flags.offline) {
93
- validateSiteInfo({ site, siteInfo, failAndExit })
94
- const [accounts, addons] = await Promise.all([
95
- getAccounts({ api, failAndExit }),
96
- getAddons({ api, site, failAndExit }),
97
- ])
93
+ validateSiteInfo({ site, siteInfo })
94
+ const [accounts, addons] = await Promise.all([getAccounts({ api }), getAddons({ api, site })])
98
95
 
99
96
  const { urls: addonsUrls } = getAddonsInformation({ siteInfo, addons })
100
97
  const account = getSiteAccount({ siteInfo, accounts })
@@ -5,7 +5,7 @@ const inquirer = require('inquirer')
5
5
  const isEmpty = require('lodash/isEmpty')
6
6
 
7
7
  const { listSites } = require('../../lib/api')
8
- const { log } = require('../command-helpers')
8
+ const { log, error, exit } = require('../command-helpers')
9
9
  const { getRepoData } = require('../get-repo-data')
10
10
  const { track } = require('../telemetry')
11
11
 
@@ -70,7 +70,7 @@ Double check you are in the correct working directory and a remote origin repo i
70
70
 
71
71
  Run ${chalk.cyanBright('git remote -v')} to see a list of your git remotes.`)
72
72
 
73
- context.exit()
73
+ exit()
74
74
  }
75
75
 
76
76
  // Matches a single site hooray!
@@ -94,7 +94,7 @@ Run ${chalk.cyanBright('git remote -v')} to see a list of your git remotes.`)
94
94
  },
95
95
  ])
96
96
  if (!selectedSite) {
97
- context.error('No site selected')
97
+ error('No site selected')
98
98
  }
99
99
  site = selectedSite
100
100
  }
@@ -118,16 +118,16 @@ Run ${chalk.cyanBright('git remote -v')} to see a list of your git remotes.`)
118
118
  api,
119
119
  options: { name: searchTerm, filter: 'all' },
120
120
  })
121
- } catch (error) {
122
- if (error.status === 404) {
123
- context.error(`'${searchTerm}' not found`)
121
+ } catch (error_) {
122
+ if (error_.status === 404) {
123
+ error(`'${searchTerm}' not found`)
124
124
  } else {
125
- context.error(error)
125
+ error(error_)
126
126
  }
127
127
  }
128
128
 
129
129
  if (isEmpty(matchingSites)) {
130
- context.error(`No site names found containing '${searchTerm}'.
130
+ error(`No site names found containing '${searchTerm}'.
131
131
 
132
132
  Run ${chalk.cyanBright('netlify link')} again to try a new search,
133
133
  or run ${chalk.cyanBright('netlify sites:create')} to create a site.`)
@@ -162,12 +162,12 @@ or run ${chalk.cyanBright('netlify sites:create')} to create a site.`)
162
162
  let sites
163
163
  try {
164
164
  sites = await listSites({ api, options: { maxPages: 1, filter: 'all' } })
165
- } catch (error) {
166
- context.error(error)
165
+ } catch (error_) {
166
+ error(error_)
167
167
  }
168
168
 
169
169
  if (isEmpty(sites)) {
170
- context.error(`You don't have any sites yet. Run ${chalk.cyanBright('netlify sites:create')} to create a site.`)
170
+ error(`You don't have any sites yet. Run ${chalk.cyanBright('netlify sites:create')} to create a site.`)
171
171
  }
172
172
 
173
173
  const { selectedSite } = await inquirer.prompt([
@@ -180,7 +180,7 @@ or run ${chalk.cyanBright('netlify sites:create')} to create a site.`)
180
180
  },
181
181
  ])
182
182
  if (!selectedSite) {
183
- context.error('No site selected')
183
+ error('No site selected')
184
184
  }
185
185
  site = selectedSite
186
186
  break
@@ -197,11 +197,11 @@ or run ${chalk.cyanBright('netlify sites:create')} to create a site.`)
197
197
 
198
198
  try {
199
199
  site = await api.getSite({ siteId })
200
- } catch (error) {
201
- if (error.status === 404) {
202
- context.error(new Error(`Site ID '${siteId}' not found`))
200
+ } catch (error_) {
201
+ if (error_.status === 404) {
202
+ error(new Error(`Site ID '${siteId}' not found`))
203
203
  } else {
204
- context.error(error)
204
+ error(error_)
205
205
  }
206
206
  }
207
207
  break
@@ -211,7 +211,7 @@ or run ${chalk.cyanBright('netlify sites:create')} to create a site.`)
211
211
  }
212
212
 
213
213
  if (!site) {
214
- context.error(new Error(`No site found`))
214
+ error(new Error(`No site found`))
215
215
  }
216
216
 
217
217
  // Save site ID to config