netlify-cli 17.3.2 → 17.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/README.md +2 -138
  2. package/npm-shrinkwrap.json +76 -76
  3. package/package.json +16 -15
  4. package/src/commands/addons/addons-auth.mjs +27 -30
  5. package/src/commands/addons/addons-config.mjs +145 -154
  6. package/src/commands/addons/addons-create.mjs +94 -108
  7. package/src/commands/addons/addons-delete.mjs +36 -41
  8. package/src/commands/addons/addons-list.mjs +38 -42
  9. package/src/commands/addons/addons.mjs +26 -28
  10. package/src/commands/addons/index.mjs +1 -1
  11. package/src/commands/api/api.mjs +45 -53
  12. package/src/commands/api/index.mjs +1 -1
  13. package/src/commands/base-command.mjs +597 -684
  14. package/src/commands/blobs/blobs-delete.mjs +35 -0
  15. package/src/commands/blobs/blobs-get.mjs +44 -0
  16. package/src/commands/blobs/blobs-list.mjs +48 -0
  17. package/src/commands/blobs/blobs-set.mjs +54 -0
  18. package/src/commands/blobs/blobs.mjs +32 -0
  19. package/src/commands/blobs/index.mjs +1 -0
  20. package/src/commands/build/build.mjs +55 -67
  21. package/src/commands/build/index.mjs +1 -1
  22. package/src/commands/completion/completion.mjs +41 -46
  23. package/src/commands/completion/index.mjs +1 -1
  24. package/src/commands/deploy/deploy.mjs +675 -710
  25. package/src/commands/deploy/index.mjs +1 -1
  26. package/src/commands/dev/dev-exec.mjs +20 -32
  27. package/src/commands/dev/dev.mjs +217 -302
  28. package/src/commands/dev/index.mjs +1 -1
  29. package/src/commands/dev/types.d.ts +30 -0
  30. package/src/commands/env/env-clone.mjs +157 -184
  31. package/src/commands/env/env-get.mjs +49 -68
  32. package/src/commands/env/env-import.mjs +100 -119
  33. package/src/commands/env/env-list.mjs +104 -129
  34. package/src/commands/env/env-set.mjs +160 -185
  35. package/src/commands/env/env-unset.mjs +104 -122
  36. package/src/commands/env/env.mjs +28 -30
  37. package/src/commands/env/index.mjs +1 -1
  38. package/src/commands/functions/functions-build.mjs +29 -41
  39. package/src/commands/functions/functions-create.mjs +533 -601
  40. package/src/commands/functions/functions-invoke.mjs +193 -216
  41. package/src/commands/functions/functions-list.mjs +45 -55
  42. package/src/commands/functions/functions-serve.mjs +51 -61
  43. package/src/commands/functions/functions.mjs +26 -32
  44. package/src/commands/functions/index.mjs +1 -1
  45. package/src/commands/index.mjs +2 -2
  46. package/src/commands/init/index.mjs +1 -1
  47. package/src/commands/init/init.mjs +138 -167
  48. package/src/commands/integration/deploy.mjs +337 -399
  49. package/src/commands/integration/index.mjs +12 -13
  50. package/src/commands/link/index.mjs +1 -1
  51. package/src/commands/link/link.mjs +298 -317
  52. package/src/commands/lm/index.mjs +1 -1
  53. package/src/commands/lm/lm-info.mjs +23 -31
  54. package/src/commands/lm/lm-install.mjs +13 -17
  55. package/src/commands/lm/lm-setup.mjs +80 -84
  56. package/src/commands/lm/lm-uninstall.mjs +7 -12
  57. package/src/commands/lm/lm.mjs +18 -22
  58. package/src/commands/login/index.mjs +1 -1
  59. package/src/commands/login/login.mjs +35 -41
  60. package/src/commands/logout/index.mjs +1 -1
  61. package/src/commands/logout/logout.mjs +25 -31
  62. package/src/commands/main.mjs +166 -201
  63. package/src/commands/open/index.mjs +1 -1
  64. package/src/commands/open/open-admin.mjs +15 -18
  65. package/src/commands/open/open-site.mjs +16 -19
  66. package/src/commands/open/open.mjs +24 -27
  67. package/src/commands/recipes/common.mjs +23 -34
  68. package/src/commands/recipes/index.mjs +1 -1
  69. package/src/commands/recipes/recipes-list.mjs +13 -20
  70. package/src/commands/recipes/recipes.mjs +59 -72
  71. package/src/commands/serve/index.mjs +1 -1
  72. package/src/commands/serve/serve.mjs +142 -189
  73. package/src/commands/sites/index.mjs +2 -2
  74. package/src/commands/sites/sites-create-template.mjs +214 -236
  75. package/src/commands/sites/sites-create.mjs +145 -157
  76. package/src/commands/sites/sites-delete.mjs +75 -81
  77. package/src/commands/sites/sites-list.mjs +63 -66
  78. package/src/commands/sites/sites.mjs +18 -20
  79. package/src/commands/status/index.mjs +1 -1
  80. package/src/commands/status/status-hooks.mjs +32 -34
  81. package/src/commands/status/status.mjs +99 -106
  82. package/src/commands/switch/index.mjs +1 -1
  83. package/src/commands/switch/switch.mjs +32 -37
  84. package/src/commands/types.d.ts +31 -0
  85. package/src/commands/unlink/index.mjs +1 -1
  86. package/src/commands/unlink/unlink.mjs +23 -29
  87. package/src/commands/watch/index.mjs +1 -1
  88. package/src/commands/watch/watch.mjs +91 -105
  89. package/src/functions-templates/javascript/hello/{{name}}.js +2 -3
  90. package/src/lib/account.mjs +4 -5
  91. package/src/lib/api.mjs +22 -20
  92. package/src/lib/blobs/blobs.mjs +36 -45
  93. package/src/lib/build.mjs +82 -85
  94. package/src/lib/completion/constants.mjs +2 -4
  95. package/src/lib/completion/generate-autocompletion.mjs +33 -36
  96. package/src/lib/completion/get-autocompletion.mjs +31 -35
  97. package/src/lib/completion/index.mjs +1 -1
  98. package/src/lib/completion/script.mjs +12 -19
  99. package/src/lib/edge-functions/bootstrap.mjs +3 -5
  100. package/src/lib/edge-functions/consts.mjs +9 -10
  101. package/src/lib/edge-functions/deploy.mjs +28 -34
  102. package/src/lib/edge-functions/editor-helper.mjs +29 -42
  103. package/src/lib/edge-functions/headers.mjs +24 -26
  104. package/src/lib/edge-functions/internal.mjs +38 -44
  105. package/src/lib/edge-functions/proxy.mjs +229 -228
  106. package/src/lib/edge-functions/registry.mjs +473 -574
  107. package/src/lib/exec-fetcher.mjs +115 -122
  108. package/src/lib/fs.mjs +28 -27
  109. package/src/lib/functions/background.mjs +16 -20
  110. package/src/lib/functions/config.mjs +12 -9
  111. package/src/lib/functions/form-submissions-handler.mjs +143 -149
  112. package/src/lib/functions/local-proxy.mjs +40 -44
  113. package/src/lib/functions/memoized-build.mjs +19 -21
  114. package/src/lib/functions/netlify-function.mjs +269 -249
  115. package/src/lib/functions/registry.mjs +509 -568
  116. package/src/lib/functions/runtimes/go/index.mjs +62 -71
  117. package/src/lib/functions/runtimes/index.mjs +8 -15
  118. package/src/lib/functions/runtimes/js/builders/netlify-lambda.mjs +55 -64
  119. package/src/lib/functions/runtimes/js/builders/zisi.mjs +135 -154
  120. package/src/lib/functions/runtimes/js/constants.mjs +1 -1
  121. package/src/lib/functions/runtimes/js/index.mjs +92 -109
  122. package/src/lib/functions/runtimes/js/worker.mjs +43 -45
  123. package/src/lib/functions/runtimes/rust/index.mjs +64 -73
  124. package/src/lib/functions/scheduled.mjs +70 -88
  125. package/src/lib/functions/server.mjs +269 -327
  126. package/src/lib/functions/synchronous.mjs +118 -147
  127. package/src/lib/functions/utils.mjs +38 -46
  128. package/src/lib/geo-location.mjs +69 -81
  129. package/src/lib/http-agent.mjs +87 -90
  130. package/src/lib/images/proxy.mjs +97 -99
  131. package/src/lib/log.mjs +6 -9
  132. package/src/lib/path.mjs +2 -1
  133. package/src/lib/render-error-template.mjs +19 -20
  134. package/src/lib/settings.mjs +17 -19
  135. package/src/lib/spinner.mjs +21 -23
  136. package/src/lib/string.mjs +4 -2
  137. package/src/recipes/vscode/index.mjs +69 -85
  138. package/src/recipes/vscode/settings.mjs +53 -58
  139. package/src/utils/addons/compare.mjs +31 -32
  140. package/src/utils/addons/diffs/index.mjs +16 -17
  141. package/src/utils/addons/diffs/options.mjs +99 -101
  142. package/src/utils/addons/prepare.mjs +100 -97
  143. package/src/utils/addons/prompts.mjs +73 -76
  144. package/src/utils/addons/render.mjs +33 -36
  145. package/src/utils/addons/validation.mjs +19 -15
  146. package/src/utils/banner.mjs +11 -16
  147. package/src/utils/build-info.mjs +65 -66
  148. package/src/utils/command-helpers.mjs +185 -199
  149. package/src/utils/create-deferred.mjs +9 -12
  150. package/src/utils/create-stream-promise.mjs +54 -47
  151. package/src/utils/deploy/constants.mjs +9 -11
  152. package/src/utils/deploy/deploy-site.mjs +162 -182
  153. package/src/utils/deploy/hash-config.mjs +21 -21
  154. package/src/utils/deploy/hash-files.mjs +34 -38
  155. package/src/utils/deploy/hash-fns.mjs +149 -154
  156. package/src/utils/deploy/hasher-segments.mjs +58 -52
  157. package/src/utils/deploy/upload-files.mjs +99 -113
  158. package/src/utils/deploy/util.mjs +85 -91
  159. package/src/utils/detect-server-settings.mjs +236 -268
  160. package/src/utils/dev.mjs +163 -178
  161. package/src/utils/dot-env.mjs +37 -42
  162. package/src/utils/env/index.mjs +148 -148
  163. package/src/utils/execa.mjs +9 -13
  164. package/src/utils/feature-flags.mjs +6 -5
  165. package/src/utils/framework-server.mjs +43 -52
  166. package/src/utils/functions/constants.mjs +1 -1
  167. package/src/utils/functions/functions.mjs +30 -40
  168. package/src/utils/functions/get-functions.mjs +28 -29
  169. package/src/utils/functions/index.mjs +3 -3
  170. package/src/utils/get-global-config.mjs +33 -36
  171. package/src/utils/get-package-json.mjs +14 -15
  172. package/src/utils/get-repo-data.mjs +54 -64
  173. package/src/utils/get-site.mjs +14 -14
  174. package/src/utils/gh-auth.mjs +79 -100
  175. package/src/utils/gitignore.mjs +37 -40
  176. package/src/utils/headers.mjs +33 -35
  177. package/src/utils/hooks/requires-site-info.mjs +26 -22
  178. package/src/utils/init/config-github.mjs +207 -219
  179. package/src/utils/init/config-manual.mjs +83 -100
  180. package/src/utils/init/config.mjs +25 -26
  181. package/src/utils/init/node-version.mjs +23 -30
  182. package/src/utils/init/plugins.mjs +12 -8
  183. package/src/utils/init/utils.mjs +152 -172
  184. package/src/utils/live-tunnel.mjs +118 -141
  185. package/src/utils/lm/install.mjs +220 -259
  186. package/src/utils/lm/requirements.mjs +54 -63
  187. package/src/utils/lm/steps.mjs +31 -31
  188. package/src/utils/lm/ui.mjs +13 -20
  189. package/src/utils/open-browser.mjs +31 -32
  190. package/src/utils/parse-raw-flags.mjs +39 -35
  191. package/src/utils/proxy-server.mjs +84 -71
  192. package/src/utils/proxy.mjs +696 -750
  193. package/src/utils/read-repo-url.mjs +48 -47
  194. package/src/utils/redirects.mjs +49 -49
  195. package/src/utils/request-id.mjs +2 -4
  196. package/src/utils/rules-proxy.mjs +96 -100
  197. package/src/utils/run-build.mjs +109 -132
  198. package/src/utils/shell.mjs +99 -106
  199. package/src/utils/sign-redirect.mjs +14 -14
  200. package/src/utils/sites/utils.mjs +48 -55
  201. package/src/utils/state-config.mjs +101 -101
  202. package/src/utils/static-server.mjs +28 -34
  203. package/src/utils/telemetry/index.mjs +2 -2
  204. package/src/utils/telemetry/report-error.mjs +45 -49
  205. package/src/utils/telemetry/request.mjs +36 -43
  206. package/src/utils/telemetry/telemetry.mjs +90 -105
  207. package/src/utils/telemetry/utils.mjs +5 -6
  208. package/src/utils/telemetry/validation.mjs +55 -53
  209. package/src/utils/types.d.ts +46 -0
  210. package/src/utils/validation.mjs +10 -13
@@ -1,58 +1,53 @@
1
- // @ts-check
2
- import inquirer from 'inquirer'
3
-
4
- import { ADDON_VALIDATION, prepareAddonCommand } from '../../utils/addons/prepare.mjs'
5
- import { error, exit, log } from '../../utils/command-helpers.mjs'
6
-
1
+ import inquirer from 'inquirer';
2
+ import { ADDON_VALIDATION, prepareAddonCommand } from '../../utils/addons/prepare.mjs';
3
+ import { error, exit, log } from '../../utils/command-helpers.mjs';
7
4
  /**
8
5
  * The addons:delete command
9
6
  * @param {string} addonName
10
7
  * @param {import('commander').OptionValues} options
11
8
  * @param {import('../base-command.mjs').default} command
12
9
  */
10
+ // @ts-expect-error TS(7006) FIXME: Parameter 'addonName' implicitly has an 'any' type... Remove this comment to see the full error message
13
11
  const addonsDelete = async (addonName, options, command) => {
14
- const { addon } = await prepareAddonCommand({
15
- command,
16
- addonName,
17
- // @ts-ignore.
18
- validation: ADDON_VALIDATION.EXISTS,
19
- })
20
- if (!options.force && !options.f) {
21
- const { wantsToDelete } = await inquirer.prompt({
22
- type: 'confirm',
23
- name: 'wantsToDelete',
24
- message: `Are you sure you want to delete the ${addonName} add-on? (to skip this prompt, pass a --force flag)`,
25
- default: false,
26
- })
27
- if (!wantsToDelete) {
28
- exit()
12
+ const { addon } = await prepareAddonCommand({
13
+ command,
14
+ addonName,
15
+ validation: ADDON_VALIDATION.EXISTS,
16
+ });
17
+ if (!options.force && !options.f) {
18
+ const { wantsToDelete } = await inquirer.prompt({
19
+ type: 'confirm',
20
+ name: 'wantsToDelete',
21
+ message: `Are you sure you want to delete the ${addonName} add-on? (to skip this prompt, pass a --force flag)`,
22
+ default: false,
23
+ });
24
+ if (!wantsToDelete) {
25
+ exit();
26
+ }
29
27
  }
30
- }
31
-
32
- try {
33
- await command.netlify.api.deleteServiceInstance({
34
- siteId: command.netlify.site.id,
35
- addon: addonName,
36
- instanceId: addon.id,
37
- })
38
- log(`Addon "${addonName}" deleted`)
39
- } catch (error_) {
40
- error(error_.message)
41
- }
42
- }
43
-
28
+ try {
29
+ await command.netlify.api.deleteServiceInstance({
30
+ siteId: command.netlify.site.id,
31
+ addon: addonName,
32
+ instanceId: addon.id,
33
+ });
34
+ log(`Addon "${addonName}" deleted`);
35
+ }
36
+ catch (error_) {
37
+ // @ts-expect-error TS(2571) FIXME: Object is of type 'unknown'.
38
+ error(error_.message);
39
+ }
40
+ };
44
41
  /**
45
42
  * Creates the `netlify addons:delete` command
46
43
  * @param {import('../base-command.mjs').default} program
47
44
  * @returns
48
45
  */
49
- export const createAddonsDeleteCommand = (program) =>
50
- program
46
+ // @ts-expect-error TS(7006) FIXME: Parameter 'program' implicitly has an 'any' type.
47
+ export const createAddonsDeleteCommand = (program) => program
51
48
  .command('addons:delete', { hidden: true })
52
49
  .alias('addon:delete')
53
50
  .argument('<name>', 'Add-on namespace')
54
- .description(
55
- `Remove an add-on extension to your site\nAdd-ons are a way to extend the functionality of your Netlify site`,
56
- )
51
+ .description(`Remove an add-on extension to your site\nAdd-ons are a way to extend the functionality of your Netlify site`)
57
52
  .option('-f, --force', 'delete without prompting (useful for CI)')
58
- .action(addonsDelete)
53
+ .action(addonsDelete);
@@ -1,59 +1,55 @@
1
- // @ts-check
2
- import AsciiTable from 'ascii-table'
3
-
4
- import { prepareAddonCommand } from '../../utils/addons/prepare.mjs'
5
- import { log, logJson } from '../../utils/command-helpers.mjs'
6
-
1
+ import AsciiTable from 'ascii-table';
2
+ import { prepareAddonCommand } from '../../utils/addons/prepare.mjs';
3
+ import { log, logJson } from '../../utils/command-helpers.mjs';
7
4
  /**
8
5
  * The addons:list command
9
6
  * @param {import('commander').OptionValues} options
10
7
  * @param {import('../base-command.mjs').default} command
11
8
  * @returns {Promise<boolean>}
12
9
  */
10
+ // @ts-expect-error TS(7006) FIXME: Parameter 'options' implicitly has an 'any' type.
13
11
  const addonsList = async (options, command) => {
14
- const { addons, siteData } = await prepareAddonCommand({ command })
15
- // Return json response for piping commands
16
- if (options.json) {
17
- logJson(addons)
18
- return false
19
- }
20
-
21
- if (!addons || addons.length === 0) {
22
- log(`No addons currently installed for ${siteData.name}`)
23
- log(`> Run \`netlify addons:create addon-namespace\` to install an addon`)
24
- return false
25
- }
26
-
27
- const addonData = addons.map((addon) => ({
28
- namespace: addon.service_path.replace('/.netlify/', ''),
29
- name: addon.service_name,
30
- id: addon.id,
31
- }))
32
-
33
- // Build a table out of addons
34
- log(`site: ${siteData.name}`)
35
- const table = new AsciiTable(`Currently Installed addons`)
36
-
37
- table.setHeading('NameSpace', 'Name', 'Instance Id')
38
-
39
- addonData.forEach(({ id, name, namespace }) => {
40
- table.addRow(namespace, name, id)
41
- })
42
- // Log da addons
43
- log(table.toString())
44
- }
45
-
12
+ // @ts-expect-error TS(2345) FIXME: Argument of type '{ command: any; }' is not assign... Remove this comment to see the full error message
13
+ const { addons, siteData } = await prepareAddonCommand({ command });
14
+ // Return json response for piping commands
15
+ if (options.json) {
16
+ logJson(addons);
17
+ return false;
18
+ }
19
+ if (!addons || addons.length === 0) {
20
+ log(`No addons currently installed for ${siteData.name}`);
21
+ log(`> Run \`netlify addons:create addon-namespace\` to install an addon`);
22
+ return false;
23
+ }
24
+ // @ts-expect-error TS(7006) FIXME: Parameter 'addon' implicitly has an 'any' type.
25
+ const addonData = addons.map((addon) => ({
26
+ namespace: addon.service_path.replace('/.netlify/', ''),
27
+ name: addon.service_name,
28
+ id: addon.id,
29
+ }));
30
+ // Build a table out of addons
31
+ log(`site: ${siteData.name}`);
32
+ const table = new AsciiTable(`Currently Installed addons`);
33
+ table.setHeading('NameSpace', 'Name', 'Instance Id');
34
+ // @ts-expect-error TS(7031) FIXME: Binding element 'id' implicitly has an 'any' type.
35
+ addonData.forEach(({ id, name, namespace }) => {
36
+ table.addRow(namespace, name, id);
37
+ });
38
+ // Log da addons
39
+ log(table.toString());
40
+ };
46
41
  /**
47
42
  * Creates the `netlify addons:list` command
48
43
  * @param {import('../base-command.mjs').default} program
49
44
  * @returns
50
45
  */
51
- export const createAddonsListCommand = (program) =>
52
- program
46
+ // @ts-expect-error TS(7006) FIXME: Parameter 'program' implicitly has an 'any' type.
47
+ export const createAddonsListCommand = (program) => program
53
48
  .command('addons:list', { hidden: true })
54
49
  .alias('addon:list')
55
50
  .description(`List currently installed add-ons for site`)
56
51
  .option('--json', 'Output add-on data as JSON')
52
+ // @ts-expect-error TS(7006) FIXME: Parameter 'options' implicitly has an 'any' type.
57
53
  .action(async (options, command) => {
58
- await addonsList(options, command)
59
- })
54
+ await addonsList(options, command);
55
+ });
@@ -1,41 +1,39 @@
1
- // @ts-check
2
- import { createAddonsAuthCommand } from './addons-auth.mjs'
3
- import { createAddonsConfigCommand } from './addons-config.mjs'
4
- import { createAddonsCreateCommand } from './addons-create.mjs'
5
- import { createAddonsDeleteCommand } from './addons-delete.mjs'
6
- import { createAddonsListCommand } from './addons-list.mjs'
7
-
1
+ import { createAddonsAuthCommand } from './addons-auth.mjs';
2
+ import { createAddonsConfigCommand } from './addons-config.mjs';
3
+ import { createAddonsCreateCommand } from './addons-create.mjs';
4
+ import { createAddonsDeleteCommand } from './addons-delete.mjs';
5
+ import { createAddonsListCommand } from './addons-list.mjs';
8
6
  /**
9
7
  * The addons command
10
8
  * @param {import('commander').OptionValues} options
11
9
  * @param {import('../base-command.mjs').default} command
12
10
  */
11
+ // @ts-expect-error TS(7006) FIXME: Parameter 'options' implicitly has an 'any' type.
13
12
  const addons = (options, command) => {
14
- command.help()
15
- }
16
-
13
+ command.help();
14
+ };
17
15
  /**
18
16
  * Creates the `netlify addons` command
19
17
  * @param {import('../base-command.mjs').default} program
20
18
  * @returns
21
19
  */
20
+ // @ts-expect-error TS(7006) FIXME: Parameter 'program' implicitly has an 'any' type.
22
21
  export const createAddonsCommand = (program) => {
23
- createAddonsAuthCommand(program)
24
- createAddonsConfigCommand(program)
25
- createAddonsCreateCommand(program)
26
- createAddonsDeleteCommand(program)
27
- createAddonsListCommand(program)
28
-
29
- return program
30
- .command('addons', { hidden: true })
31
- .alias('addon')
32
- .description('[Deprecated and will be removed from future versions] Manage Netlify Add-ons')
33
- .addExamples([
34
- 'netlify addons:create addon-xyz',
35
- 'netlify addons:list',
36
- 'netlify addons:config addon-xyz',
37
- 'netlify addons:delete addon-xyz',
38
- 'netlify addons:auth addon-xyz',
22
+ createAddonsAuthCommand(program);
23
+ createAddonsConfigCommand(program);
24
+ createAddonsCreateCommand(program);
25
+ createAddonsDeleteCommand(program);
26
+ createAddonsListCommand(program);
27
+ return program
28
+ .command('addons', { hidden: true })
29
+ .alias('addon')
30
+ .description('[Deprecated and will be removed from future versions] Manage Netlify Add-ons')
31
+ .addExamples([
32
+ 'netlify addons:create addon-xyz',
33
+ 'netlify addons:list',
34
+ 'netlify addons:config addon-xyz',
35
+ 'netlify addons:delete addon-xyz',
36
+ 'netlify addons:auth addon-xyz',
39
37
  ])
40
- .action(addons)
41
- }
38
+ .action(addons);
39
+ };
@@ -1 +1 @@
1
- export { createAddonsCommand } from './addons.mjs'
1
+ export { createAddonsCommand } from './addons.mjs';
@@ -1,70 +1,62 @@
1
- // @ts-check
2
- import AsciiTable from 'ascii-table'
3
- import { methods } from 'netlify'
4
-
5
- import { chalk, error, exit, log, logJson } from '../../utils/command-helpers.mjs'
6
-
1
+ import AsciiTable from 'ascii-table';
2
+ import { methods } from 'netlify';
3
+ import { chalk, error, exit, log, logJson } from '../../utils/command-helpers.mjs';
7
4
  /**
8
5
  * The api command
9
6
  * @param {string} apiMethod
10
7
  * @param {import('commander').OptionValues} options
11
8
  * @param {import('../base-command.mjs').default} command
12
9
  */
10
+ // @ts-expect-error TS(7006) FIXME: Parameter 'apiMethod' implicitly has an 'any' type... Remove this comment to see the full error message
13
11
  const apiCommand = async (apiMethod, options, command) => {
14
- const { api } = command.netlify
15
-
16
- if (options.list) {
17
- const table = new AsciiTable(`Netlify API Methods`)
18
- table.setHeading('API Method', 'Docs Link')
19
- methods.forEach((method) => {
20
- const { operationId } = method
21
- table.addRow(operationId, `https://open-api.netlify.com/#operation/${operationId}`)
22
- })
23
- log(table.toString())
24
- log()
25
- log('Above is a list of available API methods')
26
- log(`To run a method use "${chalk.cyanBright('netlify api methodName')}"`)
27
- exit()
28
- }
29
-
30
- if (!apiMethod) {
31
- error(`You must provide an API method. Run "netlify api --list" to see available methods`)
32
- }
33
-
34
- if (!api[apiMethod] || typeof api[apiMethod] !== 'function') {
35
- error(`"${apiMethod}"" is not a valid api method. Run "netlify api --list" to see available methods`)
36
- }
37
-
38
- let payload
39
- if (options.data) {
40
- payload = typeof options.data === 'string' ? JSON.parse(options.data) : options.data
41
- } else {
42
- payload = {}
43
- }
44
- try {
45
- const apiResponse = await api[apiMethod](payload)
46
- logJson(apiResponse)
47
- } catch (error_) {
48
- error(error_)
49
- }
50
- }
51
-
12
+ const { api } = command.netlify;
13
+ if (options.list) {
14
+ const table = new AsciiTable(`Netlify API Methods`);
15
+ table.setHeading('API Method', 'Docs Link');
16
+ methods.forEach((method) => {
17
+ const { operationId } = method;
18
+ table.addRow(operationId, `https://open-api.netlify.com/#operation/${operationId}`);
19
+ });
20
+ log(table.toString());
21
+ log();
22
+ log('Above is a list of available API methods');
23
+ log(`To run a method use "${chalk.cyanBright('netlify api methodName')}"`);
24
+ exit();
25
+ }
26
+ if (!apiMethod) {
27
+ error(`You must provide an API method. Run "netlify api --list" to see available methods`);
28
+ }
29
+ if (!api[apiMethod] || typeof api[apiMethod] !== 'function') {
30
+ error(`"${apiMethod}"" is not a valid api method. Run "netlify api --list" to see available methods`);
31
+ }
32
+ let payload;
33
+ if (options.data) {
34
+ payload = typeof options.data === 'string' ? JSON.parse(options.data) : options.data;
35
+ }
36
+ else {
37
+ payload = {};
38
+ }
39
+ try {
40
+ const apiResponse = await api[apiMethod](payload);
41
+ logJson(apiResponse);
42
+ }
43
+ catch (error_) {
44
+ // @ts-expect-error TS(2345) FIXME: Argument of type 'unknown' is not assignable to pa... Remove this comment to see the full error message
45
+ error(error_);
46
+ }
47
+ };
52
48
  /**
53
49
  * Creates the `netlify api` command
54
50
  * @param {import('../base-command.mjs').default} program
55
51
  * @returns
56
52
  */
57
- export const createApiCommand = (program) =>
58
- program
53
+ // @ts-expect-error TS(7006) FIXME: Parameter 'program' implicitly has an 'any' type.
54
+ export const createApiCommand = (program) => program
59
55
  .command('api')
60
56
  .argument('[apiMethod]', 'Open API method to run')
61
- .description(
62
- `Run any Netlify API method
63
- For more information on available methods checkout https://open-api.netlify.com/ or run '${chalk.grey(
64
- 'netlify api --list',
65
- )}'`,
66
- )
57
+ .description(`Run any Netlify API method
58
+ For more information on available methods checkout https://open-api.netlify.com/ or run '${chalk.grey('netlify api --list')}'`)
67
59
  .option('-d, --data <data>', 'Data to use')
68
60
  .option('--list', 'List out available API methods', false)
69
61
  .addExamples(['netlify api --list', `netlify api getSite --data '{ "site_id": "123456" }'`])
70
- .action(apiCommand)
62
+ .action(apiCommand);
@@ -1 +1 @@
1
- export { createApiCommand } from './api.mjs'
1
+ export { createApiCommand } from './api.mjs';