netlify-cli 6.9.9 → 6.9.10

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,16 +1,16 @@
1
1
  {
2
2
  "name": "netlify-cli",
3
- "version": "6.9.9",
3
+ "version": "6.9.10",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "netlify-cli",
9
- "version": "6.9.9",
9
+ "version": "6.9.10",
10
10
  "hasInstallScript": true,
11
11
  "license": "MIT",
12
12
  "dependencies": {
13
- "@netlify/build": "^18.11.0",
13
+ "@netlify/build": "^18.11.2",
14
14
  "@netlify/config": "^15.6.2",
15
15
  "@netlify/framework-info": "^5.9.2",
16
16
  "@netlify/local-functions-proxy": "^1.1.1",
@@ -2341,9 +2341,9 @@
2341
2341
  }
2342
2342
  },
2343
2343
  "node_modules/@netlify/build": {
2344
- "version": "18.11.0",
2345
- "resolved": "https://registry.npmjs.org/@netlify/build/-/build-18.11.0.tgz",
2346
- "integrity": "sha512-R1qVxqCrCOCLUXpsYmmnmgknQV3ZV47HonDsv50wnvQvaKN5QIJraB5T8IzotTMUrl46c5pJ9fDYeMo+gplc5A==",
2344
+ "version": "18.11.2",
2345
+ "resolved": "https://registry.npmjs.org/@netlify/build/-/build-18.11.2.tgz",
2346
+ "integrity": "sha512-YwqABbzBZ0eSbltdDYXvyp6YoZxh4KoMCayxiOQvRUTGFDVky8EBZkR9Fcvvcb14TIaYQd8PK3xV7SJk2QKtzQ==",
2347
2347
  "dependencies": {
2348
2348
  "@bugsnag/js": "^7.0.0",
2349
2349
  "@netlify/cache-utils": "^2.0.0",
@@ -2353,7 +2353,7 @@
2353
2353
  "@netlify/plugin-edge-handlers": "^1.11.22",
2354
2354
  "@netlify/plugins-list": "^3.6.0",
2355
2355
  "@netlify/run-utils": "^2.0.0",
2356
- "@netlify/zip-it-and-ship-it": "^4.21.1",
2356
+ "@netlify/zip-it-and-ship-it": "^4.22.0",
2357
2357
  "@sindresorhus/slugify": "^1.1.0",
2358
2358
  "@ungap/from-entries": "^0.2.1",
2359
2359
  "ansi-escapes": "^4.3.2",
@@ -22749,9 +22749,9 @@
22749
22749
  }
22750
22750
  },
22751
22751
  "@netlify/build": {
22752
- "version": "18.11.0",
22753
- "resolved": "https://registry.npmjs.org/@netlify/build/-/build-18.11.0.tgz",
22754
- "integrity": "sha512-R1qVxqCrCOCLUXpsYmmnmgknQV3ZV47HonDsv50wnvQvaKN5QIJraB5T8IzotTMUrl46c5pJ9fDYeMo+gplc5A==",
22752
+ "version": "18.11.2",
22753
+ "resolved": "https://registry.npmjs.org/@netlify/build/-/build-18.11.2.tgz",
22754
+ "integrity": "sha512-YwqABbzBZ0eSbltdDYXvyp6YoZxh4KoMCayxiOQvRUTGFDVky8EBZkR9Fcvvcb14TIaYQd8PK3xV7SJk2QKtzQ==",
22755
22755
  "requires": {
22756
22756
  "@bugsnag/js": "^7.0.0",
22757
22757
  "@netlify/cache-utils": "^2.0.0",
@@ -22761,7 +22761,7 @@
22761
22761
  "@netlify/plugin-edge-handlers": "^1.11.22",
22762
22762
  "@netlify/plugins-list": "^3.6.0",
22763
22763
  "@netlify/run-utils": "^2.0.0",
22764
- "@netlify/zip-it-and-ship-it": "^4.21.1",
22764
+ "@netlify/zip-it-and-ship-it": "^4.22.0",
22765
22765
  "@sindresorhus/slugify": "^1.1.0",
22766
22766
  "@ungap/from-entries": "^0.2.1",
22767
22767
  "ansi-escapes": "^4.3.2",
@@ -1 +1 @@
1
- {"version":"6.9.9","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.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":[]}}}
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.9",
4
+ "version": "6.9.10",
5
5
  "author": "Netlify Inc.",
6
6
  "contributors": [
7
7
  "Mathias Biilmann <matt@netlify.com> (https://twitter.com/biilmann)",
@@ -77,7 +77,7 @@
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.0",
80
+ "@netlify/build": "^18.11.2",
81
81
  "@netlify/config": "^15.6.2",
82
82
  "@netlify/framework-info": "^5.9.2",
83
83
  "@netlify/local-functions-proxy": "^1.1.1",
@@ -5,7 +5,7 @@ const { methods } = require('netlify')
5
5
 
6
6
  const { isEmptyCommand } = require('../utils/check-command-inputs')
7
7
  const Command = require('../utils/command')
8
- const { log, logJson } = require('../utils/command-helpers')
8
+ const { log, logJson, error, exit } = require('../utils/command-helpers')
9
9
 
10
10
  class APICommand extends Command {
11
11
  async run() {
@@ -25,15 +25,15 @@ class APICommand extends Command {
25
25
  log()
26
26
  log('Above is a list of available API methods')
27
27
  log(`To run a method use "${chalk.cyanBright('netlify api methodName')}"`)
28
- this.exit()
28
+ exit()
29
29
  }
30
30
 
31
31
  if (!apiMethod) {
32
- this.error(`You must provide an API method. Run "netlify api --list" to see available methods`)
32
+ error(`You must provide an API method. Run "netlify api --list" to see available methods`)
33
33
  }
34
34
 
35
35
  if (!api[apiMethod] || typeof api[apiMethod] !== 'function') {
36
- this.error(`"${apiMethod}"" is not a valid api method. Run "netlify api --list" to see available methods`)
36
+ error(`"${apiMethod}"" is not a valid api method. Run "netlify api --list" to see available methods`)
37
37
  }
38
38
 
39
39
  let payload
@@ -45,8 +45,8 @@ class APICommand extends Command {
45
45
  try {
46
46
  const apiResponse = await api[apiMethod](payload)
47
47
  logJson(apiResponse)
48
- } catch (error) {
49
- this.error(error)
48
+ } catch (error_) {
49
+ error(error_)
50
50
  }
51
51
  }
52
52
  }
@@ -2,7 +2,17 @@ const { flags: flagsLib } = require('@oclif/command')
2
2
 
3
3
  const { getBuildOptions, runBuild } = require('../../lib/build')
4
4
  const Command = require('../../utils/command')
5
- const { getToken } = require('../../utils/command-helpers')
5
+ const { error, exit, getToken } = require('../../utils/command-helpers')
6
+
7
+ const checkOptions = ({ cachedConfig: { siteInfo = {} }, token }) => {
8
+ if (!siteInfo.id) {
9
+ error('Could not find the site ID. Please run netlify link.', { exit: 1 })
10
+ }
11
+
12
+ if (!token) {
13
+ error('Could not find the access token. Please run netlify login.', { exit: 1 })
14
+ }
15
+ }
6
16
 
7
17
  class BuildCommand extends Command {
8
18
  // Run Netlify Build
@@ -21,21 +31,11 @@ class BuildCommand extends Command {
21
31
  })
22
32
 
23
33
  if (!flags.offline) {
24
- this.checkOptions(options)
34
+ checkOptions(options)
25
35
  }
26
36
 
27
37
  const { exitCode } = await runBuild(options)
28
- this.exit(exitCode)
29
- }
30
-
31
- checkOptions({ cachedConfig: { siteInfo = {} }, token }) {
32
- if (!siteInfo.id) {
33
- this.error('Could not find the site ID. Please run netlify link.', { exit: 1 })
34
- }
35
-
36
- if (!token) {
37
- this.error('Could not find the access token. Please run netlify login.', { exit: 1 })
38
- }
38
+ exit(exitCode)
39
39
  }
40
40
  }
41
41
 
@@ -16,7 +16,7 @@ const { normalizeFunctionsConfig } = require('../lib/functions/config')
16
16
  const { getLogMessage } = require('../lib/log')
17
17
  const { startSpinner, stopSpinner } = require('../lib/spinner')
18
18
  const Command = require('../utils/command')
19
- const { log, logJson, getToken } = require('../utils/command-helpers')
19
+ const { log, logJson, getToken, error, exit, warn } = require('../utils/command-helpers')
20
20
  const { deploySite } = require('../utils/deploy/deploy-site')
21
21
  const { deployEdgeHandlers } = require('../utils/edge-handlers')
22
22
  const { getFunctionsManifestPath, getInternalFunctionsDir } = require('../utils/functions')
@@ -28,7 +28,7 @@ const SitesCreateCommand = require('./sites/create')
28
28
 
29
29
  const DEFAULT_DEPLOY_TIMEOUT = 1.2e6
30
30
 
31
- const triggerDeploy = async ({ api, siteId, siteData, error }) => {
31
+ const triggerDeploy = async ({ api, siteId, siteData }) => {
32
32
  try {
33
33
  const siteBuild = await api.createSiteBuild({ siteId })
34
34
  log(
@@ -71,7 +71,7 @@ const getDeployFolder = async ({ flags, config, site, siteData }) => {
71
71
  return deployFolder
72
72
  }
73
73
 
74
- const validateDeployFolder = async ({ deployFolder, error }) => {
74
+ const validateDeployFolder = async ({ deployFolder }) => {
75
75
  let stat
76
76
  try {
77
77
  stat = await statAsync(deployFolder)
@@ -107,7 +107,7 @@ const getFunctionsFolder = ({ flags, config, site, siteData }) => {
107
107
  return functionsFolder
108
108
  }
109
109
 
110
- const validateFunctionsFolder = async ({ functionsFolder, error }) => {
110
+ const validateFunctionsFolder = async ({ functionsFolder }) => {
111
111
  let stat
112
112
  if (functionsFolder) {
113
113
  // we used to hard error if functions folder is specified but doesn't exist
@@ -134,9 +134,9 @@ const validateFunctionsFolder = async ({ functionsFolder, error }) => {
134
134
  return stat
135
135
  }
136
136
 
137
- const validateFolders = async ({ deployFolder, functionsFolder, error }) => {
138
- const deployFolderStat = await validateDeployFolder({ deployFolder, error })
139
- const functionsFolderStat = await validateFunctionsFolder({ functionsFolder, error })
137
+ const validateFolders = async ({ deployFolder, functionsFolder }) => {
138
+ const deployFolderStat = await validateDeployFolder({ deployFolder })
139
+ const functionsFolderStat = await validateFunctionsFolder({ functionsFolder })
140
140
  return { deployFolderStat, functionsFolderStat }
141
141
  }
142
142
 
@@ -169,7 +169,7 @@ const SEC_TO_MILLISEC = 1e3
169
169
  // 100 bytes
170
170
  const SYNC_FILE_LIMIT = 1e2
171
171
 
172
- const prepareProductionDeploy = async ({ siteData, api, exit }) => {
172
+ const prepareProductionDeploy = async ({ siteData, api }) => {
173
173
  if (isObject(siteData.published_deploy) && siteData.published_deploy.locked) {
174
174
  log(`\n${NETLIFYDEVERR} Deployments are "locked" for production context of this site\n`)
175
175
  const { unlockChoice } = await inquirer.prompt([
@@ -194,34 +194,34 @@ const hasErrorMessage = (actual, expected) => {
194
194
  return false
195
195
  }
196
196
 
197
- const getJsonErrorMessage = (error) => get(error, 'json.message', '')
197
+ const getJsonErrorMessage = (error_) => get(error_, 'json.message', '')
198
198
 
199
- const reportDeployError = ({ error, warn, failAndExit }) => {
199
+ const reportDeployError = ({ error_, failAndExit }) => {
200
200
  switch (true) {
201
- case error.name === 'JSONHTTPError': {
201
+ case error_.name === 'JSONHTTPError': {
202
202
  const message = getJsonErrorMessage(error)
203
203
  if (hasErrorMessage(message, 'Background Functions not allowed by team plan')) {
204
204
  return failAndExit(`\n${getLogMessage('functions.backgroundNotSupported')}`)
205
205
  }
206
- warn(`JSONHTTPError: ${message} ${error.status}`)
207
- warn(`\n${JSON.stringify(error, null, ' ')}\n`)
208
- failAndExit(error)
206
+ warn(`JSONHTTPError: ${message} ${error_.status}`)
207
+ warn(`\n${JSON.stringify(error_, null, ' ')}\n`)
208
+ failAndExit(error_)
209
209
  return
210
210
  }
211
- case error.name === 'TextHTTPError': {
212
- warn(`TextHTTPError: ${error.status}`)
213
- warn(`\n${error}\n`)
214
- failAndExit(error)
211
+ case error_.name === 'TextHTTPError': {
212
+ warn(`TextHTTPError: ${error_.status}`)
213
+ warn(`\n${error_}\n`)
214
+ failAndExit(error_)
215
215
  return
216
216
  }
217
- case hasErrorMessage(error.message, 'Invalid filename'): {
218
- warn(error.message)
219
- failAndExit(error)
217
+ case hasErrorMessage(error_.message, 'Invalid filename'): {
218
+ warn(error_.message)
219
+ failAndExit(error_)
220
220
  return
221
221
  }
222
222
  default: {
223
- warn(`\n${JSON.stringify(error, null, ' ')}\n`)
224
- failAndExit(error)
223
+ warn(`\n${JSON.stringify(error_, null, ' ')}\n`)
224
+ failAndExit(error_)
225
225
  }
226
226
  }
227
227
  }
@@ -238,15 +238,12 @@ const runDeploy = async ({
238
238
  functionsConfig,
239
239
  functionsFolder,
240
240
  alias,
241
- warn,
242
- error,
243
- exit,
244
241
  }) => {
245
242
  let results
246
243
  let deployId
247
244
  try {
248
245
  if (deployToProduction) {
249
- await prepareProductionDeploy({ siteData, api, exit })
246
+ await prepareProductionDeploy({ siteData, api })
250
247
  } else {
251
248
  log('Deploying to draft URL...')
252
249
  }
@@ -262,8 +259,6 @@ const runDeploy = async ({
262
259
  deployId,
263
260
  api,
264
261
  silent,
265
- error,
266
- warn,
267
262
  })
268
263
  const internalFunctionsFolder = await getInternalFunctionsDir({ base: site.root })
269
264
 
@@ -284,16 +279,15 @@ const runDeploy = async ({
284
279
  // pass an existing deployId to update
285
280
  deployId,
286
281
  filter: getDeployFilesFilter({ site, deployFolder }),
287
- warn,
288
282
  rootDir: site.root,
289
283
  manifestPath,
290
284
  skipFunctionsCache,
291
285
  })
292
286
  } catch (error_) {
293
287
  if (deployId) {
294
- await cancelDeploy({ api, deployId, warn })
288
+ await cancelDeploy({ api, deployId })
295
289
  }
296
- reportDeployError({ error: error_, warn, failAndExit: error })
290
+ reportDeployError({ error_, failAndExit: error })
297
291
  }
298
292
 
299
293
  const siteUrl = results.deploy.ssl_url || results.deploy.url
@@ -322,12 +316,12 @@ const handleBuild = async ({ context, flags }) => {
322
316
  })
323
317
  const { exitCode, newConfig, configMutations } = await runBuild(options)
324
318
  if (exitCode !== 0) {
325
- context.exit(exitCode)
319
+ exit(exitCode)
326
320
  }
327
321
  return { newConfig, configMutations }
328
322
  }
329
323
 
330
- const printResults = ({ flags, results, deployToProduction, exit }) => {
324
+ const printResults = ({ flags, results, deployToProduction }) => {
331
325
  const msgData = {
332
326
  Logs: `${results.logsUrl}`,
333
327
  'Unique Deploy URL': results.deployUrl,
@@ -374,7 +368,6 @@ const printResults = ({ flags, results, deployToProduction, exit }) => {
374
368
  class DeployCommand extends Command {
375
369
  async run() {
376
370
  const { flags } = this.parse(DeployCommand)
377
- const { warn, error, exit } = this
378
371
  const { api, site } = this.netlify
379
372
  const alias = flags.alias || flags.branch
380
373
 
@@ -431,7 +424,7 @@ class DeployCommand extends Command {
431
424
  const deployToProduction = flags.prod || (flags.prodIfUnlocked && !siteData.published_deploy.locked)
432
425
 
433
426
  if (flags.trigger) {
434
- return triggerDeploy({ api, siteId, siteData, error })
427
+ return triggerDeploy({ api, siteId, siteData })
435
428
  }
436
429
 
437
430
  const { newConfig, configMutations = [] } = await handleBuild({ context: this, flags })
@@ -452,7 +445,6 @@ class DeployCommand extends Command {
452
445
  const { functionsFolderStat } = await validateFolders({
453
446
  deployFolder,
454
447
  functionsFolder,
455
- error,
456
448
  })
457
449
  const functionsConfig = normalizeFunctionsConfig({ functionsConfig: config.functions, projectRoot: site.root })
458
450
 
@@ -477,14 +469,11 @@ class DeployCommand extends Command {
477
469
  // pass undefined functionsFolder if doesn't exist
478
470
  functionsFolder: functionsFolderStat && functionsFolder,
479
471
  alias,
480
- warn,
481
- error,
482
- exit,
483
472
  })
484
473
 
485
474
  await restoreConfig(configMutations, { buildDir: deployFolder, configPath, redirectsPath })
486
475
 
487
- printResults({ flags, results, deployToProduction, exit })
476
+ printResults({ flags, results, deployToProduction })
488
477
 
489
478
  if (flags.open) {
490
479
  const urlToOpen = deployToProduction ? results.siteUrl : results.deployUrl
@@ -6,7 +6,7 @@ const dotenv = require('dotenv')
6
6
  const isEmpty = require('lodash/isEmpty')
7
7
 
8
8
  const Command = require('../../utils/command')
9
- const { log, logJson } = require('../../utils/command-helpers')
9
+ const { log, logJson, exit } = require('../../utils/command-helpers')
10
10
 
11
11
  class EnvImportCommand extends Command {
12
12
  async run() {
@@ -34,7 +34,7 @@ class EnvImportCommand extends Command {
34
34
  importedEnv = dotenv.parse(envFileContents)
35
35
  } catch (error) {
36
36
  log(error.message)
37
- this.exit(1)
37
+ exit(1)
38
38
  }
39
39
 
40
40
  if (isEmpty(importedEnv)) {
@@ -6,7 +6,7 @@ const chalk = require('chalk')
6
6
 
7
7
  const { listSites } = require('../lib/api')
8
8
  const Command = require('../utils/command')
9
- const { log } = require('../utils/command-helpers')
9
+ const { log, error, exit } = require('../utils/command-helpers')
10
10
  const ensureNetlifyIgnore = require('../utils/gitignore')
11
11
  const linkPrompt = require('../utils/link/link-by-prompt')
12
12
  const { track } = require('../utils/telemetry')
@@ -26,7 +26,7 @@ class LinkCommand extends Command {
26
26
  let siteData
27
27
  try {
28
28
  siteData = await api.getSite({ siteId })
29
- } catch (error) {
29
+ } catch {
30
30
  // silent api error
31
31
  }
32
32
 
@@ -37,7 +37,7 @@ class LinkCommand extends Command {
37
37
  if (siteId && !siteData) {
38
38
  console.log(`"${siteId}" was not found in your Netlify account.`)
39
39
  console.log(`Please double check your siteID and which account you are logged into via \`netlify status\`.`)
40
- return this.exit()
40
+ return exit()
41
41
  }
42
42
 
43
43
  // If already linked to site. exit and prompt for unlink
@@ -46,17 +46,17 @@ class LinkCommand extends Command {
46
46
  log(`Admin url: ${siteData.admin_url}`)
47
47
  log()
48
48
  log(`To unlink this site, run: ${chalk.cyanBright('netlify unlink')}`)
49
- return this.exit()
49
+ return exit()
50
50
  }
51
51
 
52
52
  if (flags.id) {
53
53
  try {
54
54
  siteData = await api.getSite({ site_id: flags.id })
55
- } catch (error) {
56
- if (error.status === 404) {
57
- this.error(new Error(`Site id ${flags.id} not found`))
55
+ } catch (error_) {
56
+ if (error_.status === 404) {
57
+ error(new Error(`Site id ${flags.id} not found`))
58
58
  } else {
59
- this.error(error)
59
+ error(error_)
60
60
  }
61
61
  }
62
62
 
@@ -70,7 +70,7 @@ class LinkCommand extends Command {
70
70
  kind: 'byId',
71
71
  })
72
72
 
73
- return this.exit()
73
+ return exit()
74
74
  }
75
75
 
76
76
  if (flags.name) {
@@ -83,16 +83,16 @@ class LinkCommand extends Command {
83
83
  filter: 'all',
84
84
  },
85
85
  })
86
- } catch (error) {
87
- if (error.status === 404) {
88
- this.error(new Error(`${flags.name} not found`))
86
+ } catch (error_) {
87
+ if (error_.status === 404) {
88
+ error(new Error(`${flags.name} not found`))
89
89
  } else {
90
- this.error(error)
90
+ error(error_)
91
91
  }
92
92
  }
93
93
 
94
94
  if (results.length === 0) {
95
- this.error(new Error(`No sites found named ${flags.name}`))
95
+ error(new Error(`No sites found named ${flags.name}`))
96
96
  }
97
97
  const [firstSiteData] = results
98
98
  state.set('siteId', firstSiteData.id)
@@ -105,7 +105,7 @@ class LinkCommand extends Command {
105
105
  kind: 'byName',
106
106
  })
107
107
 
108
- return this.exit()
108
+ return exit()
109
109
  }
110
110
 
111
111
  siteData = await linkPrompt(this, flags)
@@ -3,6 +3,7 @@ const execa = require('execa')
3
3
  const Listr = require('listr')
4
4
 
5
5
  const Command = require('../../utils/command')
6
+ const { error } = require('../../utils/command-helpers')
6
7
  const { installPlatform } = require('../../utils/lm/install')
7
8
  const { checkHelperVersion } = require('../../utils/lm/requirements')
8
9
  const { printBanner } = require('../../utils/lm/ui')
@@ -14,7 +15,7 @@ const installHelperIfMissing = async function ({ force }) {
14
15
  if (!version) {
15
16
  installHelper = true
16
17
  }
17
- } catch (error) {
18
+ } catch {
18
19
  installHelper = true
19
20
  }
20
21
 
@@ -37,9 +38,9 @@ const provisionService = async function (siteId, api) {
37
38
  addon: addonName,
38
39
  body: {},
39
40
  })
40
- } catch (error) {
41
+ } catch (error_) {
41
42
  // error is JSONHTTPError
42
- throw new Error(error.json.error)
43
+ throw new Error(error_.json.error)
43
44
  }
44
45
  }
45
46
 
@@ -62,7 +63,7 @@ class LmSetupCommand extends Command {
62
63
  try {
63
64
  helperInstalled = await installHelperIfMissing({ force: flags['force-install'] })
64
65
  } catch (error_) {
65
- this.error(error_)
66
+ error(error_)
66
67
  }
67
68
  }
68
69
 
@@ -2,7 +2,7 @@ const { get } = require('dot-prop')
2
2
  const prettyjson = require('prettyjson')
3
3
 
4
4
  const Command = require('../../utils/command')
5
- const { log } = require('../../utils/command-helpers')
5
+ const { log, warn, error } = require('../../utils/command-helpers')
6
6
 
7
7
  class StatusHooksCommand extends Command {
8
8
  async run() {
@@ -12,24 +12,24 @@ class StatusHooksCommand extends Command {
12
12
 
13
13
  const siteId = site.id
14
14
  if (!siteId) {
15
- this.warn('Did you run `netlify link` yet?')
16
- this.error(`You don't appear to be in a folder that is linked to a site`)
15
+ warn('Did you run `netlify link` yet?')
16
+ error(`You don't appear to be in a folder that is linked to a site`)
17
17
  }
18
18
 
19
19
  let siteData
20
20
  try {
21
21
  siteData = await api.getSite({ siteId })
22
- } catch (error) {
22
+ } catch (error_) {
23
23
  // unauthorized
24
- if (error.status === 401) {
25
- this.warn(`Log in with a different account or re-link to a site you have permission for`)
26
- this.error(`Not authorized to view the currently linked site (${siteId})`)
24
+ if (error_.status === 401) {
25
+ warn(`Log in with a different account or re-link to a site you have permission for`)
26
+ error(`Not authorized to view the currently linked site (${siteId})`)
27
27
  }
28
28
  // missing
29
- if (error.status === 404) {
30
- this.error(`The site this folder is linked to can't be found`)
29
+ if (error_.status === 404) {
30
+ error(`The site this folder is linked to can't be found`)
31
31
  }
32
- this.error(error)
32
+ error(error_)
33
33
  }
34
34
 
35
35
  const ntlHooks = await api.listHooksBySiteId({ siteId: siteData.id })
@@ -4,7 +4,7 @@ const clean = require('clean-deep')
4
4
  const prettyjson = require('prettyjson')
5
5
 
6
6
  const Command = require('../../utils/command')
7
- const { log, logJson, getToken } = require('../../utils/command-helpers')
7
+ const { log, logJson, warn, error, exit, getToken } = require('../../utils/command-helpers')
8
8
 
9
9
  class StatusCommand extends Command {
10
10
  async run() {
@@ -18,7 +18,7 @@ class StatusCommand extends Command {
18
18
  log(`Not logged in. Please log in to see site status.`)
19
19
  log()
20
20
  log('Login with "netlify login" command')
21
- this.exit()
21
+ exit()
22
22
  }
23
23
 
24
24
  const siteId = site.id
@@ -32,9 +32,9 @@ class StatusCommand extends Command {
32
32
 
33
33
  try {
34
34
  ;[accounts, user] = await Promise.all([api.listAccountsForUser(), api.getCurrentUser()])
35
- } catch (error) {
36
- if (error.status === 401) {
37
- this.error(
35
+ } catch (error_) {
36
+ if (error_.status === 401) {
37
+ error(
38
38
  'Your session has expired. Please try to re-authenticate by running `netlify logout` and `netlify login`.',
39
39
  )
40
40
  }
@@ -59,23 +59,23 @@ class StatusCommand extends Command {
59
59
  log(prettyjson.render(cleanAccountData))
60
60
 
61
61
  if (!siteId) {
62
- this.warn('Did you run `netlify link` yet?')
63
- this.error(`You don't appear to be in a folder that is linked to a site`)
62
+ warn('Did you run `netlify link` yet?')
63
+ error(`You don't appear to be in a folder that is linked to a site`)
64
64
  }
65
65
  let siteData
66
66
  try {
67
67
  siteData = await api.getSite({ siteId })
68
- } catch (error) {
68
+ } catch (error_) {
69
69
  // unauthorized
70
- if (error.status === 401) {
71
- this.warn(`Log in with a different account or re-link to a site you have permission for`)
72
- this.error(`Not authorized to view the currently linked site (${siteId})`)
70
+ if (error_.status === 401) {
71
+ warn(`Log in with a different account or re-link to a site you have permission for`)
72
+ error(`Not authorized to view the currently linked site (${siteId})`)
73
73
  }
74
74
  // missing
75
- if (error.status === 404) {
76
- this.error(`The site this folder is linked to can't be found`)
75
+ if (error_.status === 404) {
76
+ error(`The site this folder is linked to can't be found`)
77
77
  }
78
- this.error(error)
78
+ error(error_)
79
79
  }
80
80
 
81
81
  // Json only logs out if --json flag is passed
@@ -1,5 +1,5 @@
1
1
  const Command = require('../utils/command')
2
- const { log } = require('../utils/command-helpers')
2
+ const { log, exit } = require('../utils/command-helpers')
3
3
  const { track } = require('../utils/telemetry')
4
4
 
5
5
  class UnlinkCommand extends Command {
@@ -9,7 +9,7 @@ class UnlinkCommand extends Command {
9
9
 
10
10
  if (!siteId) {
11
11
  log(`Folder is not linked to a Netlify site. Run 'netlify link' to link it`)
12
- return this.exit()
12
+ return exit()
13
13
  }
14
14
 
15
15
  let siteData = {}
package/src/lib/api.js CHANGED
@@ -1,5 +1,7 @@
1
1
  const fetch = require('node-fetch')
2
2
 
3
+ const { warn } = require('../utils/command-helpers')
4
+
3
5
  const getHeaders = ({ token }) => ({
4
6
  'Content-Type': 'application/json',
5
7
  Authorization: `Bearer ${token}`,
@@ -69,7 +71,7 @@ const uploadEdgeHandlers = async ({ api, deployId, bundleBuffer, manifest }) =>
69
71
  return true
70
72
  }
71
73
 
72
- const cancelDeploy = async ({ api, deployId, warn }) => {
74
+ const cancelDeploy = async ({ api, deployId }) => {
73
75
  try {
74
76
  await api.cancelSiteDeploy({ deploy_id: deployId })
75
77
  } catch (error) {
@@ -2,6 +2,7 @@ const cleanDeep = require('clean-deep')
2
2
  const tempy = require('tempy')
3
3
 
4
4
  const { rmdirRecursiveAsync } = require('../../lib/fs')
5
+ const { warn } = require('../command-helpers')
5
6
 
6
7
  const {
7
8
  DEFAULT_DEPLOY_TIMEOUT,
@@ -42,7 +43,6 @@ const deploySite = async (
42
43
  },
43
44
  syncFileLimit = DEFAULT_SYNC_LIMIT,
44
45
  tmpDir = tempy.directory(),
45
- warn,
46
46
  rootDir,
47
47
  } = {},
48
48
  ) => {
@@ -4,10 +4,12 @@ const { uploadEdgeHandlers, cancelDeploy } = require('../lib/api')
4
4
  const { statAsync, readFileAsyncCatchError } = require('../lib/fs')
5
5
  const { startSpinner, stopSpinner } = require('../lib/spinner')
6
6
 
7
+ const { warn, error } = require('./command-helpers')
8
+
7
9
  const MANIFEST_FILENAME = 'manifest.json'
8
10
  const EDGE_HANDLERS_FOLDER = '.netlify/edge-handlers'
9
11
 
10
- const validateEdgeHandlerFolder = async ({ site, error }) => {
12
+ const validateEdgeHandlerFolder = async ({ site }) => {
11
13
  try {
12
14
  const resolvedFolder = path.resolve(site.root, EDGE_HANDLERS_FOLDER)
13
15
  const stat = await statAsync(resolvedFolder)
@@ -22,7 +24,7 @@ const validateEdgeHandlerFolder = async ({ site, error }) => {
22
24
  }
23
25
  }
24
26
 
25
- const readBundleAndManifest = async ({ edgeHandlersResolvedFolder, error }) => {
27
+ const readBundleAndManifest = async ({ edgeHandlersResolvedFolder }) => {
26
28
  const manifestPath = path.resolve(edgeHandlersResolvedFolder, MANIFEST_FILENAME)
27
29
  const { content: manifest, error: manifestError } = await readFileAsyncCatchError(manifestPath)
28
30
  if (manifestError) {
@@ -50,8 +52,8 @@ const readBundleAndManifest = async ({ edgeHandlersResolvedFolder, error }) => {
50
52
  return { bundleBuffer, manifest: manifestJson }
51
53
  }
52
54
 
53
- const deployEdgeHandlers = async ({ site, deployId, api, silent, error, warn }) => {
54
- const edgeHandlersResolvedFolder = await validateEdgeHandlerFolder({ site, error })
55
+ const deployEdgeHandlers = async ({ site, deployId, api, silent }) => {
56
+ const edgeHandlersResolvedFolder = await validateEdgeHandlerFolder({ site })
55
57
  if (edgeHandlersResolvedFolder) {
56
58
  let spinner
57
59
  try {
@@ -59,7 +61,7 @@ const deployEdgeHandlers = async ({ site, deployId, api, silent, error, warn })
59
61
  ? null
60
62
  : startSpinner({ text: `Deploying Edge Handlers from directory ${edgeHandlersResolvedFolder}` })
61
63
 
62
- const { bundleBuffer, manifest } = await readBundleAndManifest({ edgeHandlersResolvedFolder, error })
64
+ const { bundleBuffer, manifest } = await readBundleAndManifest({ edgeHandlersResolvedFolder })
63
65
  // returns false if the bundle exists, true on success, throws on error
64
66
  const success = await uploadEdgeHandlers({
65
67
  api,