netlify-cli 17.37.2 → 17.38.1-rc-ds

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 (168) hide show
  1. package/bin/run.js +4 -2
  2. package/dist/commands/base-command.d.ts.map +1 -1
  3. package/dist/commands/base-command.js +5 -3
  4. package/dist/commands/blobs/blobs-delete.d.ts.map +1 -1
  5. package/dist/commands/blobs/blobs-delete.js +7 -1
  6. package/dist/commands/blobs/blobs-set.d.ts +1 -0
  7. package/dist/commands/blobs/blobs-set.d.ts.map +1 -1
  8. package/dist/commands/blobs/blobs-set.js +10 -2
  9. package/dist/commands/completion/completion.d.ts.map +1 -1
  10. package/dist/commands/completion/completion.js +7 -0
  11. package/dist/commands/deploy/deploy.js +2 -2
  12. package/dist/commands/deploy/index.d.ts.map +1 -1
  13. package/dist/commands/deploy/index.js +4 -3
  14. package/dist/commands/env/env-clone.d.ts.map +1 -1
  15. package/dist/commands/env/env-clone.js +12 -3
  16. package/dist/commands/env/env-set.d.ts.map +1 -1
  17. package/dist/commands/env/env-set.js +8 -3
  18. package/dist/commands/env/env-unset.d.ts.map +1 -1
  19. package/dist/commands/env/env-unset.js +7 -3
  20. package/dist/commands/init/index.d.ts.map +1 -1
  21. package/dist/commands/init/index.js +0 -1
  22. package/dist/commands/integration/deploy.d.ts.map +1 -1
  23. package/dist/commands/integration/deploy.js +11 -20
  24. package/dist/commands/main.d.ts +30 -0
  25. package/dist/commands/main.d.ts.map +1 -1
  26. package/dist/commands/main.js +35 -10
  27. package/dist/commands/sites/sites-create-template.d.ts +2 -3
  28. package/dist/commands/sites/sites-create-template.d.ts.map +1 -1
  29. package/dist/commands/sites/sites-create-template.js +114 -94
  30. package/dist/commands/sites/sites-create.d.ts.map +1 -1
  31. package/dist/commands/sites/sites-create.js +1 -2
  32. package/dist/commands/sites/sites.d.ts.map +1 -1
  33. package/dist/commands/sites/sites.js +0 -1
  34. package/dist/commands/status/status.d.ts.map +1 -1
  35. package/dist/commands/status/status.js +2 -6
  36. package/dist/tsconfig.tsbuildinfo +1 -1
  37. package/dist/utils/addons/prepare.d.ts +0 -21
  38. package/dist/utils/addons/prepare.d.ts.map +1 -1
  39. package/dist/utils/addons/prepare.js +1 -85
  40. package/dist/utils/command-helpers.d.ts +16 -0
  41. package/dist/utils/command-helpers.d.ts.map +1 -1
  42. package/dist/utils/command-helpers.js +7 -0
  43. package/dist/utils/framework-server.d.ts.map +1 -1
  44. package/dist/utils/framework-server.js +3 -3
  45. package/dist/utils/gh-auth.js +1 -1
  46. package/dist/utils/headers.js +1 -1
  47. package/dist/utils/prompts/blob-delete-prompts.d.ts +2 -0
  48. package/dist/utils/prompts/blob-delete-prompts.d.ts.map +1 -0
  49. package/dist/utils/prompts/blob-delete-prompts.js +11 -0
  50. package/dist/utils/prompts/blob-set-prompt.d.ts +2 -0
  51. package/dist/utils/prompts/blob-set-prompt.d.ts.map +1 -0
  52. package/dist/utils/prompts/blob-set-prompt.js +11 -0
  53. package/dist/utils/prompts/confirm-prompt.d.ts +2 -0
  54. package/dist/utils/prompts/confirm-prompt.d.ts.map +1 -0
  55. package/dist/utils/prompts/confirm-prompt.js +20 -0
  56. package/dist/utils/prompts/env-clone-prompt.d.ts +11 -0
  57. package/dist/utils/prompts/env-clone-prompt.d.ts.map +1 -0
  58. package/dist/utils/prompts/env-clone-prompt.js +27 -0
  59. package/dist/utils/prompts/env-set-prompts.d.ts +2 -0
  60. package/dist/utils/prompts/env-set-prompts.d.ts.map +1 -0
  61. package/dist/utils/prompts/env-set-prompts.js +11 -0
  62. package/dist/utils/prompts/env-unset-prompts.d.ts +8 -0
  63. package/dist/utils/prompts/env-unset-prompts.d.ts.map +1 -0
  64. package/dist/utils/prompts/env-unset-prompts.js +17 -0
  65. package/dist/utils/prompts/prompt-messages.d.ts +25 -0
  66. package/dist/utils/prompts/prompt-messages.d.ts.map +1 -0
  67. package/dist/utils/prompts/prompt-messages.js +25 -0
  68. package/dist/utils/redirects.js +1 -1
  69. package/dist/utils/run-build.d.ts +2 -0
  70. package/dist/utils/run-build.d.ts.map +1 -1
  71. package/dist/utils/run-build.js +6 -1
  72. package/dist/utils/run-program.d.ts +3 -0
  73. package/dist/utils/run-program.d.ts.map +1 -0
  74. package/dist/utils/run-program.js +12 -0
  75. package/dist/utils/scripted-commands.d.ts +3 -0
  76. package/dist/utils/scripted-commands.d.ts.map +1 -0
  77. package/dist/utils/scripted-commands.js +17 -0
  78. package/dist/utils/sites/create-template.d.ts +14 -0
  79. package/dist/utils/sites/create-template.d.ts.map +1 -0
  80. package/dist/utils/sites/create-template.js +46 -0
  81. package/dist/utils/sites/utils.d.ts +8 -6
  82. package/dist/utils/sites/utils.d.ts.map +1 -1
  83. package/dist/utils/sites/utils.js +10 -4
  84. package/dist/utils/static-server.d.ts +3 -1
  85. package/dist/utils/static-server.d.ts.map +1 -1
  86. package/dist/utils/static-server.js +2 -0
  87. package/dist/utils/types.d.ts +19 -12
  88. package/dist/utils/types.d.ts.map +1 -1
  89. package/functions-templates/javascript/hello-world/{{name}}.mjs +13 -0
  90. package/functions-templates/javascript/scheduled-function/package.json +1 -1
  91. package/functions-templates/javascript/scheduled-function/{{name}}.mjs +11 -0
  92. package/functions-templates/rust/hello-world/Cargo.toml +1 -1
  93. package/functions-templates/typescript/hello-world/package-lock.json +31 -31
  94. package/functions-templates/typescript/hello-world/package.json +2 -2
  95. package/functions-templates/typescript/hello-world/{{name}}.mts +14 -0
  96. package/functions-templates/typescript/scheduled-function/package.json +2 -2
  97. package/functions-templates/typescript/scheduled-function/{{name}}.mts +11 -0
  98. package/npm-shrinkwrap.json +951 -1083
  99. package/package.json +16 -19
  100. package/dist/commands/addons/addons-auth.d.ts +0 -4
  101. package/dist/commands/addons/addons-auth.d.ts.map +0 -1
  102. package/dist/commands/addons/addons-auth.js +0 -22
  103. package/dist/commands/addons/addons-config.d.ts +0 -4
  104. package/dist/commands/addons/addons-config.d.ts.map +0 -1
  105. package/dist/commands/addons/addons-config.js +0 -144
  106. package/dist/commands/addons/addons-create.d.ts +0 -4
  107. package/dist/commands/addons/addons-create.d.ts.map +0 -1
  108. package/dist/commands/addons/addons-create.js +0 -89
  109. package/dist/commands/addons/addons-delete.d.ts +0 -4
  110. package/dist/commands/addons/addons-delete.d.ts.map +0 -1
  111. package/dist/commands/addons/addons-delete.js +0 -32
  112. package/dist/commands/addons/addons-list.d.ts +0 -4
  113. package/dist/commands/addons/addons-list.d.ts.map +0 -1
  114. package/dist/commands/addons/addons-list.js +0 -33
  115. package/dist/commands/addons/addons.d.ts +0 -3
  116. package/dist/commands/addons/addons.d.ts.map +0 -1
  117. package/dist/commands/addons/addons.js +0 -68
  118. package/dist/commands/addons/index.d.ts +0 -2
  119. package/dist/commands/addons/index.d.ts.map +0 -1
  120. package/dist/commands/addons/index.js +0 -1
  121. package/dist/commands/lm/index.d.ts +0 -2
  122. package/dist/commands/lm/index.d.ts.map +0 -1
  123. package/dist/commands/lm/index.js +0 -1
  124. package/dist/commands/lm/lm-info.d.ts +0 -5
  125. package/dist/commands/lm/lm-info.d.ts.map +0 -1
  126. package/dist/commands/lm/lm-info.js +0 -25
  127. package/dist/commands/lm/lm-install.d.ts +0 -3
  128. package/dist/commands/lm/lm-install.d.ts.map +0 -1
  129. package/dist/commands/lm/lm-install.js +0 -8
  130. package/dist/commands/lm/lm-setup.d.ts +0 -4
  131. package/dist/commands/lm/lm-setup.d.ts.map +0 -1
  132. package/dist/commands/lm/lm-setup.js +0 -79
  133. package/dist/commands/lm/lm-uninstall.d.ts +0 -5
  134. package/dist/commands/lm/lm-uninstall.d.ts.map +0 -1
  135. package/dist/commands/lm/lm-uninstall.js +0 -7
  136. package/dist/commands/lm/lm.d.ts +0 -3
  137. package/dist/commands/lm/lm.d.ts.map +0 -1
  138. package/dist/commands/lm/lm.js +0 -46
  139. package/dist/utils/addons/render.d.ts +0 -3
  140. package/dist/utils/addons/render.d.ts.map +0 -1
  141. package/dist/utils/addons/render.js +0 -36
  142. package/dist/utils/lm/install.d.ts +0 -11
  143. package/dist/utils/lm/install.d.ts.map +0 -1
  144. package/dist/utils/lm/install.js +0 -248
  145. package/dist/utils/lm/requirements.d.ts +0 -5
  146. package/dist/utils/lm/requirements.d.ts.map +0 -1
  147. package/dist/utils/lm/requirements.js +0 -56
  148. package/dist/utils/lm/steps.d.ts +0 -17
  149. package/dist/utils/lm/steps.d.ts.map +0 -1
  150. package/dist/utils/lm/steps.js +0 -35
  151. package/dist/utils/lm/ui.d.ts +0 -5
  152. package/dist/utils/lm/ui.d.ts.map +0 -1
  153. package/dist/utils/lm/ui.js +0 -17
  154. package/functions-templates/javascript/hello-world/{{name}}.js +0 -17
  155. package/functions-templates/javascript/identity-signup/.netlify-function-template.mjs +0 -5
  156. package/functions-templates/javascript/identity-signup/{{name}}.js +0 -29
  157. package/functions-templates/javascript/sanity-create/.netlify-function-template.mjs +0 -5
  158. package/functions-templates/javascript/sanity-create/package.json +0 -20
  159. package/functions-templates/javascript/sanity-create/{{name}}.js +0 -72
  160. package/functions-templates/javascript/sanity-groq/.netlify-function-template.mjs +0 -5
  161. package/functions-templates/javascript/sanity-groq/package.json +0 -21
  162. package/functions-templates/javascript/sanity-groq/{{name}}.js +0 -56
  163. package/functions-templates/javascript/scheduled-function/{{name}}.js +0 -12
  164. package/functions-templates/javascript/submission-created/.netlify-function-template.mjs +0 -5
  165. package/functions-templates/javascript/submission-created/package.json +0 -19
  166. package/functions-templates/javascript/submission-created/{{name}}.js +0 -29
  167. package/functions-templates/typescript/hello-world/{{name}}.ts +0 -12
  168. package/functions-templates/typescript/scheduled-function/{{name}}.ts +0 -12
@@ -6,10 +6,6 @@ export declare const getCurrentAddon: ({ addonName, addons }: {
6
6
  addonName: any;
7
7
  addons: any;
8
8
  }) => any;
9
- export declare const getAddonManifest: ({ addonName, api }: {
10
- addonName: any;
11
- api: any;
12
- }) => Promise<any>;
13
9
  export declare const getSiteData: ({ api, siteId }: {
14
10
  api: any;
15
11
  siteId: any;
@@ -18,21 +14,4 @@ export declare const getAddons: ({ api, siteId }: {
18
14
  api: any;
19
15
  siteId: any;
20
16
  }) => Promise<any>;
21
- /**
22
- *
23
- * @param {object} config
24
- * @param {import('../../commands/base-command.js').default} config.command
25
- * @param {string} [config.addonName]
26
- * @param {keyof ADDON_VALIDATION} [config.validation]
27
- */
28
- export declare const prepareAddonCommand: ({ addonName, command, validation }: {
29
- addonName: any;
30
- command: any;
31
- validation: any;
32
- }) => Promise<{
33
- manifest: any;
34
- addons: any;
35
- addon: any;
36
- siteData: any;
37
- }>;
38
17
  //# sourceMappingURL=prepare.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../../src/utils/addons/prepare.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;CAG5B,CAAA;AA0BD,eAAO,MAAM,eAAe;;;SAAsF,CAAA;AAqBlH,eAAO,MAAM,gBAAgB;;;kBAY5B,CAAA;AAGD,eAAO,MAAM,WAAW;;;kBAQvB,CAAA;AAGD,eAAO,MAAM,SAAS;;;kBAQrB,CAAA;AAED;;;;;;GAMG;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;EAyB/B,CAAA"}
1
+ {"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../../src/utils/addons/prepare.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;CAG5B,CAAA;AAGD,eAAO,MAAM,eAAe;;;SAAsF,CAAA;AAGlH,eAAO,MAAM,WAAW;;;kBAQvB,CAAA;AAGD,eAAO,MAAM,SAAS;;;kBAQrB,CAAA"}
@@ -1,64 +1,10 @@
1
- import { chalk, error, exit, log, warn } from '../command-helpers.js';
1
+ import { error } from '../command-helpers.js';
2
2
  export const ADDON_VALIDATION = {
3
3
  EXISTS: 'EXISTS',
4
4
  NOT_EXISTS: 'NOT_EXISTS',
5
5
  };
6
- // @ts-expect-error TS(7031) FIXME: Binding element 'addon' implicitly has an 'any' ty... Remove this comment to see the full error message
7
- const validateExists = ({ addon, addonName, siteData }) => {
8
- if (!addon || !addon.id) {
9
- log(`Add-on ${addonName} doesn't exist for ${siteData.name}`);
10
- log(`> Run \`netlify addons:create ${addonName}\` to create an instance for this site`);
11
- exit(1);
12
- }
13
- };
14
- // @ts-expect-error TS(7031) FIXME: Binding element 'addon' implicitly has an 'any' ty... Remove this comment to see the full error message
15
- const validateNotExists = ({ addon, addonName, siteData }) => {
16
- if (addon && addon.id) {
17
- log(`The "${addonName} add-on" already exists for ${siteData.name}`);
18
- log();
19
- const cmd = chalk.cyan(`\`netlify addons:config ${addonName}\``);
20
- log(`- To update this add-on run: ${cmd}`);
21
- const deleteCmd = chalk.cyan(`\`netlify addons:delete ${addonName}\``);
22
- log(`- To remove this add-on run: ${deleteCmd}`);
23
- log();
24
- exit(1);
25
- }
26
- };
27
6
  // @ts-expect-error TS(7031) FIXME: Binding element 'addonName' implicitly has an 'any... Remove this comment to see the full error message
28
7
  export const getCurrentAddon = ({ addonName, addons }) => addons.find((addon) => addon.service_slug === addonName);
29
- // @ts-expect-error TS(7031) FIXME: Binding element 'addon' implicitly has an 'any' ty... Remove this comment to see the full error message
30
- const validateCurrentAddon = ({ addon, addonName, siteData, validation }) => {
31
- switch (validation) {
32
- case ADDON_VALIDATION.EXISTS: {
33
- validateExists({ addon, addonName, siteData });
34
- break;
35
- }
36
- case ADDON_VALIDATION.NOT_EXISTS: {
37
- validateNotExists({ addon, addonName, siteData });
38
- break;
39
- }
40
- default: {
41
- warn(`Unknown addons validation: ${validation}`);
42
- break;
43
- }
44
- }
45
- };
46
- // @ts-expect-error TS(7031) FIXME: Binding element 'addonName' implicitly has an 'any... Remove this comment to see the full error message
47
- export const getAddonManifest = async ({ addonName, api }) => {
48
- let manifest;
49
- try {
50
- manifest = await api.showServiceManifest({ addonName });
51
- }
52
- catch (error_) {
53
- if (error_.message.includes('Not Found')) {
54
- error(`No add-on "${addonName}" found. Please double check your add-on name and try again`);
55
- }
56
- else {
57
- error(error_.message);
58
- }
59
- }
60
- return manifest;
61
- };
62
8
  // @ts-expect-error TS(7031) FIXME: Binding element 'api' implicitly has an 'any' type... Remove this comment to see the full error message
63
9
  export const getSiteData = async ({ api, siteId }) => {
64
10
  let siteData;
@@ -81,33 +27,3 @@ export const getAddons = async ({ api, siteId }) => {
81
27
  }
82
28
  return addons;
83
29
  };
84
- /**
85
- *
86
- * @param {object} config
87
- * @param {import('../../commands/base-command.js').default} config.command
88
- * @param {string} [config.addonName]
89
- * @param {keyof ADDON_VALIDATION} [config.validation]
90
- */
91
- // @ts-expect-error TS(7031) FIXME: Binding element 'addonName' implicitly has an 'any... Remove this comment to see the full error message
92
- export const prepareAddonCommand = async ({ addonName, command, validation }) => {
93
- const { netlify } = command;
94
- const { api, site } = netlify;
95
- const siteId = site.id;
96
- if (!siteId) {
97
- error('No site id found, please run inside a site folder or `netlify link`');
98
- }
99
- await command.authenticate();
100
- const [manifest, siteData, addons] = await Promise.all([
101
- // TODO: check as `getAddonManifest` did not accept a parameter error
102
- // @ts-expect-error TS(2345) FIXME: Argument of type '{ api: any; addonName: any; erro... Remove this comment to see the full error message
103
- addonName ? getAddonManifest({ api, addonName, error }) : Promise.resolve(),
104
- getSiteData({ api, siteId }),
105
- getAddons({ api, siteId }),
106
- ]);
107
- let addon;
108
- if (addonName) {
109
- addon = getCurrentAddon({ addons, addonName });
110
- validateCurrentAddon({ addon, validation, addonName, siteData });
111
- }
112
- return { manifest, addons, addon, siteData };
113
- };
@@ -94,6 +94,22 @@ export interface APIError extends Error {
94
94
  status: number;
95
95
  message: string;
96
96
  }
97
+ export declare class GitHubAPIError extends Error {
98
+ status: string;
99
+ constructor(status: string, message: string);
100
+ }
101
+ export interface GitHubRepoResponse {
102
+ status?: string;
103
+ message?: string;
104
+ id?: number;
105
+ name?: string;
106
+ clone_url?: string;
107
+ full_name?: string;
108
+ private?: boolean;
109
+ default_branch?: string;
110
+ errors?: string[];
111
+ is_template?: boolean;
112
+ }
97
113
  export declare const checkFileForLine: (filename: string, line: string) => boolean;
98
114
  export declare const TABTAB_CONFIG_LINE = "[[ -f ~/.config/tabtab/__tabtab.zsh ]] && . ~/.config/tabtab/__tabtab.zsh || true";
99
115
  export declare const AUTOLOAD_COMPINIT = "autoload -U compinit; compinit";
@@ -1 +1 @@
1
- {"version":3,"file":"command-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/command-helpers.ts"],"names":[],"mappings":";AAOA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAI/B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAQpC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAmB1C,eAAO,MAAM,KAAK,+BAAqC,CAAA;AAEvD;;;;;;GAMG;AAEH,eAAO,MAAM,OAAO,gDAAyE,CAAA;AAO7F,eAAO,MAAM,OAAO,KAAiB,CAAA;AACrC,eAAO,MAAM,UAAU,QAAmE,CAAA;AAK1F,eAAO,MAAM,YAAY,+BAA0B,CAAA;AAEnD,eAAO,MAAM,UAAU,QAAuF,CAAA;AAC9G,eAAO,MAAM,aAAa,QAA8B,CAAA;AACxD,eAAO,MAAM,cAAc,QAA+B,CAAA;AAC1D,eAAO,MAAM,aAAa,QAA4B,CAAA;AAEtD,eAAO,MAAM,IAAI,QAA2C,CAAA;AAE5D;;;;;;;GAOG;AAEH,eAAO,MAAM,WAAW,qCAMvB,CAAA;AAKD;;;;;;GAMG;AAEH,eAAO,MAAM,YAAY;SAIlB,UAAU;YACP;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;iCAyBnF,CAAA;AACD;;;;GAIG;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,aAAa,CAAC,CAAA;AAEvD,eAAO,MAAM,QAAQ,sBAA6B,MAAM,KAAG,QAAQ,UAAU,CAkB5E,CAAA;AAMD;;GAEG;AACH,eAAO,MAAM,OAAO,aAAa,OAAO,SAIvC,CAAA;AAGD,eAAO,MAAM,GAAG,4CAOf,CAAA;AAGD,eAAO,MAAM,SAAS,4CAIrB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,4BAGhB,CAAA;AAED,iCAAiC;AACjC,eAAO,MAAM,KAAK,aAAa,OAAO,GAAG,KAAK,GAAG,MAAM,YAAgB;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,SAoBxF,CAAA;AAED,eAAO,MAAM,IAAI,0BAEhB,CAAA;AAED;;;;;;GAMG;AAEH,eAAO,MAAM,eAAe,sBAM3B,CAAA;AAID,UAAU,qBAAqB;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC7B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACjC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CACrC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,WACjB,MAAM,GAAG,MAAM,EAAE,iDACgD,qBAAqB,gCA6C/F,CAAA;AAGD,eAAO,MAAM,eAAe,iCAAiF,CAAA;AAE7G,eAAO,MAAM,WAAW,QAAS,OAAO,iCAAyD,CAAA;AAEjG,eAAO,MAAM,WAAW,0CAAkF,CAAA;AAE1G,eAAO,MAAM,IAAI,YAEhB,CAAA;AAED,MAAM,WAAW,QAAS,SAAQ,KAAK;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,gBAAgB,aAAc,MAAM,QAAQ,MAAM,YAQ9D,CAAA;AAED,eAAO,MAAM,kBAAkB,sFAAsF,CAAA;AACrH,eAAO,MAAM,iBAAiB,mCAAmC,CAAA"}
1
+ {"version":3,"file":"command-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/command-helpers.ts"],"names":[],"mappings":";AAOA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAI/B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAQpC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAmB1C,eAAO,MAAM,KAAK,+BAAqC,CAAA;AAEvD;;;;;;GAMG;AAEH,eAAO,MAAM,OAAO,gDAAyE,CAAA;AAO7F,eAAO,MAAM,OAAO,KAAiB,CAAA;AACrC,eAAO,MAAM,UAAU,QAAmE,CAAA;AAK1F,eAAO,MAAM,YAAY,+BAA0B,CAAA;AAEnD,eAAO,MAAM,UAAU,QAAuF,CAAA;AAC9G,eAAO,MAAM,aAAa,QAA8B,CAAA;AACxD,eAAO,MAAM,cAAc,QAA+B,CAAA;AAC1D,eAAO,MAAM,aAAa,QAA4B,CAAA;AAEtD,eAAO,MAAM,IAAI,QAA2C,CAAA;AAE5D;;;;;;;GAOG;AAEH,eAAO,MAAM,WAAW,qCAMvB,CAAA;AAKD;;;;;;GAMG;AAEH,eAAO,MAAM,YAAY;SAIlB,UAAU;YACP;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;iCAyBnF,CAAA;AACD;;;;GAIG;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,aAAa,CAAC,CAAA;AAEvD,eAAO,MAAM,QAAQ,sBAA6B,MAAM,KAAG,QAAQ,UAAU,CAkB5E,CAAA;AAMD;;GAEG;AACH,eAAO,MAAM,OAAO,aAAa,OAAO,SAIvC,CAAA;AAGD,eAAO,MAAM,GAAG,4CAOf,CAAA;AAGD,eAAO,MAAM,SAAS,4CAIrB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,4BAGhB,CAAA;AAED,iCAAiC;AACjC,eAAO,MAAM,KAAK,aAAa,OAAO,GAAG,KAAK,GAAG,MAAM,YAAgB;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,SAoBxF,CAAA;AAED,eAAO,MAAM,IAAI,0BAEhB,CAAA;AAED;;;;;;GAMG;AAEH,eAAO,MAAM,eAAe,sBAM3B,CAAA;AAID,UAAU,qBAAqB;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IAC7B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACjC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CACrC;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,WACjB,MAAM,GAAG,MAAM,EAAE,iDACgD,qBAAqB,gCA6C/F,CAAA;AAGD,eAAO,MAAM,eAAe,iCAAiF,CAAA;AAE7G,eAAO,MAAM,WAAW,QAAS,OAAO,iCAAyD,CAAA;AAEjG,eAAO,MAAM,WAAW,0CAAkF,CAAA;AAE1G,eAAO,MAAM,IAAI,YAEhB,CAAA;AAED,MAAM,WAAW,QAAS,SAAQ,KAAK;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,MAAM,EAAE,MAAM,CAAA;gBAEF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK5C;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,eAAO,MAAM,gBAAgB,aAAc,MAAM,QAAQ,MAAM,YAQ9D,CAAA;AAED,eAAO,MAAM,kBAAkB,sFAAsF,CAAA;AACrH,eAAO,MAAM,iBAAiB,mCAAmC,CAAA"}
@@ -241,6 +241,13 @@ export const nonNullable = (value) => value !== null && value !== undefined;
241
241
  export const noOp = () => {
242
242
  // no-op
243
243
  };
244
+ export class GitHubAPIError extends Error {
245
+ constructor(status, message) {
246
+ super(message);
247
+ this.status = status;
248
+ this.name = 'GitHubAPIError';
249
+ }
250
+ }
244
251
  export const checkFileForLine = (filename, line) => {
245
252
  let filecontent = '';
246
253
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"framework-server.d.ts","sourceRoot":"","sources":["../../src/utils/framework-server.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAK3C,UAAU,iBAAiB;IACzB,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB;SAI1B,MAAM;cACD,cAAc;MACtB,QAAQ,iBAAiB,CAkD5B,CAAA"}
1
+ {"version":3,"file":"framework-server.d.ts","sourceRoot":"","sources":["../../src/utils/framework-server.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAK3C,UAAU,iBAAiB;IACzB,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB;SAI1B,MAAM;cACD,cAAc;MACtB,QAAQ,iBAAiB,CAiD5B,CAAA"}
@@ -14,8 +14,8 @@ export const startFrameworkServer = async function ({ cwd, settings, }) {
14
14
  if (settings.command) {
15
15
  runCommand(settings.command, { env: settings.env, cwd });
16
16
  }
17
- await startStaticServer({ settings });
18
- return {};
17
+ const { family } = await startStaticServer({ settings });
18
+ return { ipVersion: family === 'IPv6' ? 6 : 4 };
19
19
  }
20
20
  log(`${NETLIFYDEVLOG} Starting Netlify Dev with ${settings.framework || 'custom config'}`);
21
21
  const spinner = startSpinner({
@@ -28,7 +28,7 @@ export const startFrameworkServer = async function ({ cwd, settings, }) {
28
28
  let port;
29
29
  try {
30
30
  if (settings.skipWaitPort) {
31
- port = { open: true, ipVersion: 6 };
31
+ port = { open: true };
32
32
  }
33
33
  else {
34
34
  port = await waitPort({
@@ -71,7 +71,7 @@ export const authWithNetlify = async () => {
71
71
  const getPersonalAccessToken = async () => {
72
72
  const { token } = await inquirer.prompt([
73
73
  {
74
- type: 'input',
74
+ type: 'password',
75
75
  name: 'token',
76
76
  message: 'Your GitHub personal access token:',
77
77
  filter: (input) => input.trim(),
@@ -1,4 +1,4 @@
1
- import { parseAllHeaders } from 'netlify-headers-parser';
1
+ import { parseAllHeaders } from '@netlify/headers-parser';
2
2
  import { NETLIFYDEVERR, log } from './command-helpers.js';
3
3
  /**
4
4
  * Get the matching headers for `path` given a set of `rules`.
@@ -0,0 +1,2 @@
1
+ export declare const promptBlobDelete: (key: string, storeName: string) => Promise<void>;
2
+ //# sourceMappingURL=blob-delete-prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob-delete-prompts.d.ts","sourceRoot":"","sources":["../../../src/utils/prompts/blob-delete-prompts.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB,QAAe,MAAM,aAAa,MAAM,KAAG,QAAQ,IAAI,CAQnF,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { log } from '../command-helpers.js';
2
+ import { confirmPrompt } from './confirm-prompt.js';
3
+ import { destructiveCommandMessages } from './prompt-messages.js';
4
+ export const promptBlobDelete = async (key, storeName) => {
5
+ const warningMessage = destructiveCommandMessages.blobDelete.generateWarning(key, storeName);
6
+ log();
7
+ log(warningMessage);
8
+ log();
9
+ log(destructiveCommandMessages.overwriteNotice);
10
+ await confirmPrompt(destructiveCommandMessages.blobDelete.overwriteConfirmation);
11
+ };
@@ -0,0 +1,2 @@
1
+ export declare const promptBlobSetOverwrite: (key: string, storeName: string) => Promise<void>;
2
+ //# sourceMappingURL=blob-set-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob-set-prompt.d.ts","sourceRoot":"","sources":["../../../src/utils/prompts/blob-set-prompt.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,sBAAsB,QAAe,MAAM,aAAa,MAAM,KAAG,QAAQ,IAAI,CAQzF,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { log } from '../command-helpers.js';
2
+ import { confirmPrompt } from './confirm-prompt.js';
3
+ import { destructiveCommandMessages } from './prompt-messages.js';
4
+ export const promptBlobSetOverwrite = async (key, storeName) => {
5
+ const warningMessage = destructiveCommandMessages.blobSet.generateWarning(key, storeName);
6
+ log();
7
+ log(warningMessage);
8
+ log();
9
+ log(destructiveCommandMessages.overwriteNotice);
10
+ await confirmPrompt(destructiveCommandMessages.blobSet.overwriteConfirmation);
11
+ };
@@ -0,0 +1,2 @@
1
+ export declare const confirmPrompt: (message: string) => Promise<void>;
2
+ //# sourceMappingURL=confirm-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm-prompt.d.ts","sourceRoot":"","sources":["../../../src/utils/prompts/confirm-prompt.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,YAAmB,MAAM,KAAG,QAAQ,IAAI,CAgBjE,CAAA"}
@@ -0,0 +1,20 @@
1
+ import inquirer from 'inquirer';
2
+ import { log, exit } from '../command-helpers.js';
3
+ export const confirmPrompt = async (message) => {
4
+ try {
5
+ const { confirm } = await inquirer.prompt({
6
+ type: 'confirm',
7
+ name: 'confirm',
8
+ message,
9
+ default: false,
10
+ });
11
+ log();
12
+ if (!confirm) {
13
+ exit();
14
+ }
15
+ }
16
+ catch (error) {
17
+ console.error(error);
18
+ exit();
19
+ }
20
+ };
@@ -0,0 +1,11 @@
1
+ import { EnvVar } from '../types.js';
2
+ export declare const generateEnvVarsList: (envVarsToDelete: EnvVar[]) => string[];
3
+ /**
4
+ * Prompts the user to confirm overwriting environment variables on a site.
5
+ *
6
+ * @param {string} siteId - The ID of the site.
7
+ * @param {EnvVar[]} existingEnvVars - The environment variables that already exist on the site.
8
+ * @returns {Promise<void>} A promise that resolves when the user has confirmed the overwriting of the variables.
9
+ */
10
+ export declare function promptEnvCloneOverwrite(siteId: string, existingEnvVars: EnvVar[]): Promise<void>;
11
+ //# sourceMappingURL=env-clone-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-clone-prompt.d.ts","sourceRoot":"","sources":["../../../src/utils/prompts/env-clone-prompt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAKpC,eAAO,MAAM,mBAAmB,oBAAqB,MAAM,EAAE,aAAgD,CAAA;AAE7G;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBtG"}
@@ -0,0 +1,27 @@
1
+ import { log } from '../command-helpers.js';
2
+ import { confirmPrompt } from './confirm-prompt.js';
3
+ import { destructiveCommandMessages } from './prompt-messages.js';
4
+ export const generateEnvVarsList = (envVarsToDelete) => envVarsToDelete.map((envVar) => envVar.key);
5
+ /**
6
+ * Prompts the user to confirm overwriting environment variables on a site.
7
+ *
8
+ * @param {string} siteId - The ID of the site.
9
+ * @param {EnvVar[]} existingEnvVars - The environment variables that already exist on the site.
10
+ * @returns {Promise<void>} A promise that resolves when the user has confirmed the overwriting of the variables.
11
+ */
12
+ export async function promptEnvCloneOverwrite(siteId, existingEnvVars) {
13
+ const { generateWarning } = destructiveCommandMessages.envClone;
14
+ const existingEnvVarKeys = generateEnvVarsList(existingEnvVars);
15
+ const warningMessage = generateWarning(siteId);
16
+ log();
17
+ log(warningMessage);
18
+ log();
19
+ log(destructiveCommandMessages.envClone.noticeEnvVars);
20
+ log();
21
+ existingEnvVarKeys.forEach((envVar) => {
22
+ log(envVar);
23
+ });
24
+ log();
25
+ log(destructiveCommandMessages.overwriteNotice);
26
+ await confirmPrompt(destructiveCommandMessages.envClone.overwriteConfirmation);
27
+ }
@@ -0,0 +1,2 @@
1
+ export declare const promptOverwriteEnvVariable: (key: string) => Promise<void>;
2
+ //# sourceMappingURL=env-set-prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-set-prompts.d.ts","sourceRoot":"","sources":["../../../src/utils/prompts/env-set-prompts.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,0BAA0B,QAAe,MAAM,KAAG,QAAQ,IAAI,CAQ1E,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { log } from '../command-helpers.js';
2
+ import { confirmPrompt } from './confirm-prompt.js';
3
+ import { destructiveCommandMessages } from './prompt-messages.js';
4
+ export const promptOverwriteEnvVariable = async (key) => {
5
+ const warningMessage = destructiveCommandMessages.envSet.generateWarning(key);
6
+ log();
7
+ log(warningMessage);
8
+ log();
9
+ log(destructiveCommandMessages.overwriteNotice);
10
+ await confirmPrompt(destructiveCommandMessages.envSet.overwriteConfirmation);
11
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Logs a warning and prompts user to confirm overwriting an existing environment variable
3
+ *
4
+ * @param {string} key - The key of the environment variable that already exists
5
+ * @returns {Promise<void>} A promise that resolves when the user has confirmed overwriting the variable
6
+ */
7
+ export declare const promptOverwriteEnvVariable: (existingKey: string) => Promise<void>;
8
+ //# sourceMappingURL=env-unset-prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-unset-prompts.d.ts","sourceRoot":"","sources":["../../../src/utils/prompts/env-unset-prompts.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,gBAAuB,MAAM,KAAG,QAAQ,IAAI,CASlF,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { log } from '../command-helpers.js';
2
+ import { confirmPrompt } from './confirm-prompt.js';
3
+ import { destructiveCommandMessages } from './prompt-messages.js';
4
+ /**
5
+ * Logs a warning and prompts user to confirm overwriting an existing environment variable
6
+ *
7
+ * @param {string} key - The key of the environment variable that already exists
8
+ * @returns {Promise<void>} A promise that resolves when the user has confirmed overwriting the variable
9
+ */
10
+ export const promptOverwriteEnvVariable = async (existingKey) => {
11
+ const { generateWarning } = destructiveCommandMessages.envUnset;
12
+ const warningMessage = generateWarning(existingKey);
13
+ log(warningMessage);
14
+ log();
15
+ log(destructiveCommandMessages.overwriteNotice);
16
+ await confirmPrompt(destructiveCommandMessages.envUnset.overwriteConfirmation);
17
+ };
@@ -0,0 +1,25 @@
1
+ export declare const destructiveCommandMessages: {
2
+ overwriteNotice: string;
3
+ blobSet: {
4
+ generateWarning: (key: string, storeName: string) => string;
5
+ overwriteConfirmation: string;
6
+ };
7
+ blobDelete: {
8
+ generateWarning: (key: string, storeName: string) => string;
9
+ overwriteConfirmation: string;
10
+ };
11
+ envSet: {
12
+ generateWarning: (variableName: string) => string;
13
+ overwriteConfirmation: string;
14
+ };
15
+ envUnset: {
16
+ generateWarning: (variableName: string) => string;
17
+ overwriteConfirmation: string;
18
+ };
19
+ envClone: {
20
+ generateWarning: (siteId: string) => string;
21
+ noticeEnvVars: string;
22
+ overwriteConfirmation: string;
23
+ };
24
+ };
25
+ //# sourceMappingURL=prompt-messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-messages.d.ts","sourceRoot":"","sources":["../../../src/utils/prompts/prompt-messages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,0BAA0B;;;+BAIZ,MAAM,aAAa,MAAM;;;;+BAQzB,MAAM,aAAa,MAAM;;;;wCAQhB,MAAM;;;;wCAMN,MAAM;;;;kCAQZ,MAAM;;;;CASnC,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { chalk } from '../command-helpers.js';
2
+ export const destructiveCommandMessages = {
3
+ overwriteNotice: `${chalk.yellowBright('Notice')}: To overwrite without this warning, you can use the --force flag.`,
4
+ blobSet: {
5
+ generateWarning: (key, storeName) => `${chalk.redBright('Warning')}: The blob key ${chalk.cyan(key)} already exists in store ${chalk.cyan(storeName)}!`,
6
+ overwriteConfirmation: 'Do you want to proceed with overwriting this blob key existing value?',
7
+ },
8
+ blobDelete: {
9
+ generateWarning: (key, storeName) => `${chalk.redBright('Warning')}: The following blob key ${chalk.cyan(key)} will be deleted from store ${chalk.cyan(storeName)}!`,
10
+ overwriteConfirmation: 'Do you want to proceed with deleting the value at this key?',
11
+ },
12
+ envSet: {
13
+ generateWarning: (variableName) => `${chalk.redBright('Warning')}: The environment variable ${chalk.bgBlueBright(variableName)} already exists!`,
14
+ overwriteConfirmation: 'Do you want to overwrite it?',
15
+ },
16
+ envUnset: {
17
+ generateWarning: (variableName) => `${chalk.redBright('Warning')}: The environment variable ${chalk.bgBlueBright(variableName)} will be removed from all contexts!`,
18
+ overwriteConfirmation: 'Do you want to remove it?',
19
+ },
20
+ envClone: {
21
+ generateWarning: (siteId) => `${chalk.redBright('Warning')}: The following environment variables are already set on the site with ID ${chalk.bgBlueBright(siteId)}. They will be overwritten!`,
22
+ noticeEnvVars: `${chalk.yellowBright('Notice')}: The following variables will be overwritten:`,
23
+ overwriteConfirmation: 'The environment variables already exist. Do you want to overwrite them?',
24
+ },
25
+ };
@@ -1,4 +1,4 @@
1
- import { parseAllRedirects } from 'netlify-redirect-parser';
1
+ import { parseAllRedirects } from '@netlify/redirect-parser';
2
2
  import { NETLIFYDEVERR, log } from './command-helpers.js';
3
3
  // Parse, normalize and validate all redirects from `_redirects` files
4
4
  // and `netlify.toml`
@@ -3,6 +3,8 @@
3
3
  /// <reference types="node" resolution-mode="require"/>
4
4
  /// <reference types="node" resolution-mode="require"/>
5
5
  /// <reference types="node" resolution-mode="require"/>
6
+ /// <reference types="node" resolution-mode="require"/>
7
+ /// <reference types="node" resolution-mode="require"/>
6
8
  import BaseCommand from '../commands/base-command.js';
7
9
  import { $TSFixMe } from '../commands/types.js';
8
10
  import { ServerSettings } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"run-build.d.ts","sourceRoot":"","sources":["../../src/utils/run-build.ts"],"names":[],"mappings":";;;;;AAGA,OAAO,WAAW,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAS/C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAqC3C,eAAO,MAAM,eAAe;aAOjB,WAAW;aAEX,QAAQ;cACP,cAAc;SACnB,OAAO,UAAU;cACZ,OAAO,GAAG,KAAK;;;;;;;;;;EAsG1B,CAAA;AAED,KAAK,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;AAEjF,eAAO,MAAM,cAAc,YAAa,kBAAkB;;;;;;;;;EAAqD,CAAA;AAE/G,eAAO,MAAM,gBAAgB,YAAa,kBAAkB;;;;;;;;;EAAuD,CAAA"}
1
+ {"version":3,"file":"run-build.d.ts","sourceRoot":"","sources":["../../src/utils/run-build.ts"],"names":[],"mappings":";;;;;;;AAGA,OAAO,WAAW,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAS/C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAqC3C,eAAO,MAAM,eAAe;aAOjB,WAAW;aAEX,QAAQ;cACP,cAAc;SACnB,OAAO,UAAU;cACZ,OAAO,GAAG,KAAK;;;;;;;;;;EA0G1B,CAAA;AAED,KAAK,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;AAEjF,eAAO,MAAM,cAAc,YAAa,kBAAkB;;;;;;;;;EAAqD,CAAA;AAE/G,eAAO,MAAM,gBAAgB,YAAa,kBAAkB;;;;;;;;;EAAuD,CAAA"}
@@ -71,7 +71,12 @@ export const runNetlifyBuild = async ({ command, env = {}, options, settings, ti
71
71
  },
72
72
  cwd,
73
73
  });
74
- settings.frameworkHost = ipVersion === 6 ? '::1' : '127.0.0.1';
74
+ if (ipVersion) {
75
+ settings.frameworkHost = ipVersion === 6 ? '::1' : '127.0.0.1';
76
+ }
77
+ else {
78
+ settings.frameworkHost = 'localhost';
79
+ }
75
80
  };
76
81
  if (timeline === 'build') {
77
82
  // Start by cleaning the internal directory, as it may have artifacts left
@@ -0,0 +1,3 @@
1
+ import { BaseCommand } from '../commands/index.js';
2
+ export declare const runProgram: (program: BaseCommand, argv: string[]) => Promise<void>;
3
+ //# sourceMappingURL=run-program.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-program.d.ts","sourceRoot":"","sources":["../../src/utils/run-program.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIlD,eAAO,MAAM,UAAU,YAAmB,WAAW,QAAQ,MAAM,EAAE,kBAUpE,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { injectForceFlagIfScripted } from './scripted-commands.js';
2
+ import { CI_FORCED_COMMANDS } from '../commands/main.js';
3
+ // This function is used to run the program with the correct flags
4
+ export const runProgram = async (program, argv) => {
5
+ const cmdName = argv[2];
6
+ // checks if the command has a force option
7
+ const isValidForceCommand = cmdName in CI_FORCED_COMMANDS;
8
+ if (isValidForceCommand) {
9
+ injectForceFlagIfScripted(argv);
10
+ }
11
+ await program.parseAsync(argv);
12
+ };
@@ -0,0 +1,3 @@
1
+ export declare const shouldForceFlagBeInjected: (argv: string[]) => boolean;
2
+ export declare const injectForceFlagIfScripted: (argv: string[]) => void;
3
+ //# sourceMappingURL=scripted-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripted-commands.d.ts","sourceRoot":"","sources":["../../src/utils/scripted-commands.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,yBAAyB,SAAU,MAAM,EAAE,KAAG,OAY1D,CAAA;AAED,eAAO,MAAM,yBAAyB,SAAU,MAAM,EAAE,SAIvD,CAAA"}
@@ -0,0 +1,17 @@
1
+ import process from 'process';
2
+ import { isCI } from 'ci-info';
3
+ export const shouldForceFlagBeInjected = (argv) => {
4
+ // Is the command run in a non-interactive shell or CI/CD environment?
5
+ const scriptedCommand = Boolean(!process.stdin.isTTY || isCI || process.env.CI);
6
+ // Is the `--force` flag not already present?
7
+ const noForceFlag = !argv.includes('--force');
8
+ // ENV Variable used to tests prompts in CI/CD enviroment
9
+ const testingPrompts = process.env.TESTING_PROMPTS !== 'true';
10
+ // Prevents prompts from blocking scripted commands
11
+ return Boolean(scriptedCommand && testingPrompts && noForceFlag);
12
+ };
13
+ export const injectForceFlagIfScripted = (argv) => {
14
+ if (shouldForceFlagBeInjected(argv)) {
15
+ argv.push('--force');
16
+ }
17
+ };
@@ -0,0 +1,14 @@
1
+ import { OptionValues } from 'commander';
2
+ import { Template } from '../types.js';
3
+ export declare const fetchTemplates: (token: string) => Promise<Template[]>;
4
+ export declare const getTemplateName: ({ ghToken, options, repository, }: {
5
+ ghToken: string;
6
+ options: OptionValues;
7
+ repository: string;
8
+ }) => Promise<any>;
9
+ export declare const deployedSiteExists: (name: string) => Promise<boolean>;
10
+ export declare const getGitHubLink: ({ options, templateName }: {
11
+ options: OptionValues;
12
+ templateName: string;
13
+ }) => any;
14
+ //# sourceMappingURL=create-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-template.d.ts","sourceRoot":"","sources":["../../../src/utils/sites/create-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAMxC,OAAO,EAAE,QAAQ,EAAc,MAAM,aAAa,CAAA;AAIlD,eAAO,MAAM,cAAc,UAAiB,MAAM,KAAG,QAAQ,QAAQ,EAAE,CAUtE,CAAA;AAED,eAAO,MAAM,eAAe;aAKjB,MAAM;aACN,YAAY;gBACT,MAAM;kBA6BnB,CAAA;AAED,eAAO,MAAM,kBAAkB,SAAgB,MAAM,KAAG,QAAQ,OAAO,CAMtE,CAAA;AAED,eAAO,MAAM,aAAa;aAA0C,YAAY;kBAAgB,MAAM;SACjD,CAAA"}
@@ -0,0 +1,46 @@
1
+ import inquirer from 'inquirer';
2
+ // @ts-expect-error TS(7016) FIXME: Could not find a declaration file for module 'pars... Remove this comment to see the full error message
3
+ import parseGitHubUrl from 'parse-github-url';
4
+ import { log } from '../command-helpers.js';
5
+ import { getTemplatesFromGitHub } from './utils.js';
6
+ export const fetchTemplates = async (token) => {
7
+ const templatesFromGitHubOrg = await getTemplatesFromGitHub(token);
8
+ return templatesFromGitHubOrg
9
+ .filter((repo) => !repo.archived && !repo.disabled)
10
+ .map((template) => ({
11
+ name: template.name,
12
+ sourceCodeUrl: template.html_url,
13
+ slug: template.full_name,
14
+ }));
15
+ };
16
+ export const getTemplateName = async ({ ghToken, options, repository, }) => {
17
+ if (repository) {
18
+ const { repo } = parseGitHubUrl(repository);
19
+ return repo || `netlify-templates/${repository}`;
20
+ }
21
+ if (options.url) {
22
+ const urlFromOptions = new URL(options.url);
23
+ return urlFromOptions.pathname.slice(1);
24
+ }
25
+ const templates = await fetchTemplates(ghToken);
26
+ log(`Choose one of our starter templates. Netlify will create a new repo for this template in your GitHub account.`);
27
+ const { templateName } = await inquirer.prompt([
28
+ {
29
+ type: 'list',
30
+ name: 'templateName',
31
+ message: 'Template:',
32
+ choices: templates.map((template) => ({
33
+ value: template.slug,
34
+ name: template.name,
35
+ })),
36
+ },
37
+ ]);
38
+ return templateName;
39
+ };
40
+ export const deployedSiteExists = async (name) => {
41
+ const resp = await fetch(`https://${name}.netlify.app`, {
42
+ method: 'GET',
43
+ });
44
+ return resp.status === 200;
45
+ };
46
+ export const getGitHubLink = ({ options, templateName }) => options.url || `https://github.com/${templateName}`;