netlify-cli 23.15.0 → 24.0.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.
- package/dist/commands/blobs/blobs-set.d.ts.map +1 -1
- package/dist/commands/blobs/blobs-set.js +1 -0
- package/dist/commands/blobs/blobs-set.js.map +1 -1
- package/dist/commands/database/utils.d.ts.map +1 -1
- package/dist/commands/dev/dev.d.ts.map +1 -1
- package/dist/commands/dev/dev.js +10 -1
- package/dist/commands/dev/dev.js.map +1 -1
- package/dist/commands/dev/programmatic-netlify-dev.d.ts +20 -0
- package/dist/commands/dev/programmatic-netlify-dev.d.ts.map +1 -0
- package/dist/commands/dev/programmatic-netlify-dev.js +45 -0
- package/dist/commands/dev/programmatic-netlify-dev.js.map +1 -0
- package/dist/commands/main.d.ts.map +1 -1
- package/dist/commands/main.js +1 -1
- package/dist/commands/main.js.map +1 -1
- package/dist/commands/sites/sites.d.ts +0 -1
- package/dist/commands/sites/sites.d.ts.map +1 -1
- package/dist/commands/sites/sites.js +0 -22
- package/dist/commands/sites/sites.js.map +1 -1
- package/dist/lib/functions/server.js +1 -1
- package/dist/lib/functions/server.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/command-helpers.d.ts +0 -16
- package/dist/utils/command-helpers.d.ts.map +1 -1
- package/dist/utils/command-helpers.js +0 -8
- package/dist/utils/command-helpers.js.map +1 -1
- package/dist/utils/init/utils.d.ts.map +1 -1
- package/dist/utils/proxy.d.ts.map +1 -1
- package/dist/utils/proxy.js +1 -4
- package/dist/utils/proxy.js.map +1 -1
- package/dist/utils/types.d.ts +0 -12
- package/dist/utils/types.d.ts.map +1 -1
- package/npm-shrinkwrap.json +869 -764
- package/package.json +17 -16
- package/dist/commands/sites/sites-create-template.d.ts +0 -5
- package/dist/commands/sites/sites-create-template.d.ts.map +0 -1
- package/dist/commands/sites/sites-create-template.js +0 -235
- package/dist/commands/sites/sites-create-template.js.map +0 -1
- package/dist/utils/sites/create-template.d.ts +0 -14
- package/dist/utils/sites/create-template.d.ts.map +0 -1
- package/dist/utils/sites/create-template.js +0 -47
- package/dist/utils/sites/create-template.js.map +0 -1
- package/dist/utils/sites/utils.d.ts +0 -16
- package/dist/utils/sites/utils.d.ts.map +0 -1
- package/dist/utils/sites/utils.js +0 -63
- package/dist/utils/sites/utils.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "netlify-cli",
|
|
3
3
|
"description": "Netlify command line tool",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "24.0.0",
|
|
5
5
|
"author": "Netlify Inc.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"engines": {
|
|
@@ -58,32 +58,33 @@
|
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
60
|
"@fastify/static": "9.0.0",
|
|
61
|
-
"@netlify/ai": "0.3.
|
|
62
|
-
"@netlify/api": "14.0.
|
|
63
|
-
"@netlify/blobs": "10.
|
|
64
|
-
"@netlify/build": "35.
|
|
61
|
+
"@netlify/ai": "0.3.8",
|
|
62
|
+
"@netlify/api": "14.0.14",
|
|
63
|
+
"@netlify/blobs": "10.7.0",
|
|
64
|
+
"@netlify/build": "35.7.1",
|
|
65
65
|
"@netlify/build-info": "10.3.0",
|
|
66
|
-
"@netlify/config": "24.
|
|
67
|
-
"@netlify/dev
|
|
68
|
-
"@netlify/
|
|
66
|
+
"@netlify/config": "24.4.0",
|
|
67
|
+
"@netlify/dev": "4.11.2",
|
|
68
|
+
"@netlify/dev-utils": "4.3.3",
|
|
69
|
+
"@netlify/edge-bundler": "14.9.8",
|
|
69
70
|
"@netlify/edge-functions": "3.0.3",
|
|
70
71
|
"@netlify/edge-functions-bootstrap": "2.17.1",
|
|
71
72
|
"@netlify/headers-parser": "9.0.2",
|
|
72
|
-
"@netlify/images": "1.
|
|
73
|
+
"@netlify/images": "1.3.3",
|
|
73
74
|
"@netlify/local-functions-proxy": "2.0.3",
|
|
74
75
|
"@netlify/redirect-parser": "15.0.3",
|
|
75
|
-
"@netlify/zip-it-and-ship-it": "14.3.
|
|
76
|
+
"@netlify/zip-it-and-ship-it": "14.3.2",
|
|
76
77
|
"@octokit/rest": "22.0.0",
|
|
77
78
|
"@opentelemetry/api": "1.8.0",
|
|
78
79
|
"@pnpm/tabtab": "0.5.4",
|
|
79
|
-
"ansi-escapes": "7.
|
|
80
|
+
"ansi-escapes": "7.2.0",
|
|
80
81
|
"ansi-to-html": "0.7.2",
|
|
81
82
|
"ascii-table": "0.0.9",
|
|
82
83
|
"backoff": "2.5.0",
|
|
83
84
|
"boxen": "8.0.1",
|
|
84
85
|
"chalk": "5.6.2",
|
|
85
86
|
"chokidar": "4.0.3",
|
|
86
|
-
"ci-info": "4.
|
|
87
|
+
"ci-info": "4.4.0",
|
|
87
88
|
"clean-deep": "3.4.0",
|
|
88
89
|
"commander": "12.1.0",
|
|
89
90
|
"comment-json": "4.3.0",
|
|
@@ -92,13 +93,13 @@
|
|
|
92
93
|
"cron-parser": "4.9.0",
|
|
93
94
|
"debug": "4.4.3",
|
|
94
95
|
"decache": "4.6.2",
|
|
95
|
-
"dot-prop": "
|
|
96
|
+
"dot-prop": "10.1.0",
|
|
96
97
|
"dotenv": "17.2.3",
|
|
97
|
-
"env-paths": "
|
|
98
|
+
"env-paths": "4.0.0",
|
|
98
99
|
"envinfo": "7.15.0",
|
|
99
100
|
"etag": "1.8.1",
|
|
100
101
|
"execa": "5.1.1",
|
|
101
|
-
"express": "
|
|
102
|
+
"express": "5.2.1",
|
|
102
103
|
"express-logging": "1.1.1",
|
|
103
104
|
"extract-zip": "2.0.1",
|
|
104
105
|
"fastest-levenshtein": "1.0.16",
|
|
@@ -111,7 +112,7 @@
|
|
|
111
112
|
"git-repo-info": "2.1.1",
|
|
112
113
|
"gitconfiglocal": "2.1.0",
|
|
113
114
|
"http-proxy": "1.18.1",
|
|
114
|
-
"http-proxy-middleware": "
|
|
115
|
+
"http-proxy-middleware": "3.0.5",
|
|
115
116
|
"https-proxy-agent": "7.0.6",
|
|
116
117
|
"inquirer": "8.2.7",
|
|
117
118
|
"inquirer-autocomplete-prompt": "1.4.0",
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { OptionValues } from 'commander';
|
|
2
|
-
import type { SiteInfo } from '../../utils/types.js';
|
|
3
|
-
import type BaseCommand from '../base-command.js';
|
|
4
|
-
export declare const sitesCreateTemplate: (repository: string, options: OptionValues, command: BaseCommand) => Promise<SiteInfo>;
|
|
5
|
-
//# sourceMappingURL=sites-create-template.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sites-create-template.d.ts","sourceRoot":"","sources":["../../../src/commands/sites/sites-create-template.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAwB7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAA;AAIjD,eAAO,MAAM,mBAAmB,GAAU,YAAY,MAAM,EAAE,SAAS,YAAY,EAAE,SAAS,WAAW,sBAqQxG,CAAA"}
|
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
import path from 'node:path';
|
|
2
|
-
import { fileURLToPath } from 'node:url';
|
|
3
|
-
import inquirer from 'inquirer';
|
|
4
|
-
import pick from 'lodash/pick.js';
|
|
5
|
-
import { render } from 'prettyjson';
|
|
6
|
-
import { v4 as uuid } from 'uuid';
|
|
7
|
-
import { chalk, logAndThrowError, getTerminalLink, log, logJson, warn, GitHubAPIError, } from '../../utils/command-helpers.js';
|
|
8
|
-
import execa from '../../utils/execa.js';
|
|
9
|
-
import getRepoData from '../../utils/get-repo-data.js';
|
|
10
|
-
import { getGitHubToken } from '../../utils/init/config-github.js';
|
|
11
|
-
import { configureRepo } from '../../utils/init/config.js';
|
|
12
|
-
import { deployedSiteExists, getGitHubLink, getTemplateName } from '../../utils/sites/create-template.js';
|
|
13
|
-
import { callLinkSite, createRepo, validateTemplate } from '../../utils/sites/utils.js';
|
|
14
|
-
import { track } from '../../utils/telemetry/index.js';
|
|
15
|
-
import { getSiteNameInput } from './sites-create.js';
|
|
16
|
-
export const sitesCreateTemplate = async (repository, options, command) => {
|
|
17
|
-
const { accounts, api } = command.netlify;
|
|
18
|
-
await command.authenticate();
|
|
19
|
-
const { globalConfig } = command.netlify;
|
|
20
|
-
const ghToken = await getGitHubToken({ globalConfig });
|
|
21
|
-
const templateName = await getTemplateName({ ghToken, options, repository });
|
|
22
|
-
const { exists, isTemplate } = await validateTemplate({ templateName, ghToken });
|
|
23
|
-
if (!exists) {
|
|
24
|
-
const githubLink = getGitHubLink({ options, templateName });
|
|
25
|
-
return logAndThrowError(`Could not find template ${chalk.bold(templateName)}. Please verify it exists and you can ${getTerminalLink('access to it on GitHub', githubLink)}`);
|
|
26
|
-
}
|
|
27
|
-
if (!isTemplate) {
|
|
28
|
-
const githubLink = getGitHubLink({ options, templateName });
|
|
29
|
-
return logAndThrowError(`${getTerminalLink(chalk.bold(templateName), githubLink)} is not a valid GitHub template`);
|
|
30
|
-
}
|
|
31
|
-
let { accountSlug } = options;
|
|
32
|
-
if (!accountSlug) {
|
|
33
|
-
const { accountSlug: accountSlugInput } = await inquirer.prompt([
|
|
34
|
-
{
|
|
35
|
-
type: 'list',
|
|
36
|
-
name: 'accountSlug',
|
|
37
|
-
message: 'Team:',
|
|
38
|
-
choices: accounts.map((account) => ({
|
|
39
|
-
value: account.slug,
|
|
40
|
-
name: account.name,
|
|
41
|
-
})),
|
|
42
|
-
},
|
|
43
|
-
]);
|
|
44
|
-
accountSlug = accountSlugInput;
|
|
45
|
-
}
|
|
46
|
-
const { name: nameFlag } = options;
|
|
47
|
-
let site;
|
|
48
|
-
let repoResp;
|
|
49
|
-
// Allow the user to reenter project name if selected one isn't available
|
|
50
|
-
const inputSiteName = async (name, hasExistingRepo) => {
|
|
51
|
-
const { name: inputName } = await getSiteNameInput(name);
|
|
52
|
-
const siteName = inputName.trim();
|
|
53
|
-
if (siteName && (await deployedSiteExists(siteName))) {
|
|
54
|
-
log('A project with that name already exists');
|
|
55
|
-
return inputSiteName();
|
|
56
|
-
}
|
|
57
|
-
try {
|
|
58
|
-
const sites = await api.listSites({ name: siteName, filter: 'all' });
|
|
59
|
-
const siteFoundByName = sites.find((filteredSite) => filteredSite.name === siteName);
|
|
60
|
-
if (siteFoundByName) {
|
|
61
|
-
log('A project with that name already exists on your account');
|
|
62
|
-
return inputSiteName();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
catch (error_) {
|
|
66
|
-
return logAndThrowError(error_);
|
|
67
|
-
}
|
|
68
|
-
if (!hasExistingRepo) {
|
|
69
|
-
try {
|
|
70
|
-
// Create new repo from template
|
|
71
|
-
let gitHubInputName = siteName || templateName;
|
|
72
|
-
repoResp = await createRepo(templateName, ghToken, gitHubInputName);
|
|
73
|
-
if (repoResp.errors && repoResp.errors[0].includes('Name already exists on this account')) {
|
|
74
|
-
if (gitHubInputName === templateName) {
|
|
75
|
-
gitHubInputName += `-${uuid().split('-')[0]}`;
|
|
76
|
-
repoResp = await createRepo(templateName, ghToken, gitHubInputName);
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
warn(`It seems you have already created a repository with the name ${gitHubInputName}.`);
|
|
80
|
-
return inputSiteName();
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
if (!repoResp.id) {
|
|
84
|
-
throw new GitHubAPIError(repoResp.status, repoResp.message);
|
|
85
|
-
}
|
|
86
|
-
hasExistingRepo = true;
|
|
87
|
-
}
|
|
88
|
-
catch (error_) {
|
|
89
|
-
if (error_.status === '404') {
|
|
90
|
-
return logAndThrowError(`Could not create repository: ${error_.message}. Ensure that your GitHub personal access token grants permission to create repositories`);
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
return logAndThrowError(`Something went wrong trying to create the repository. We're getting the following error: '${error_.message}'. You can try to re-run this command again or open an issue in our repository: https://github.com/netlify/cli/issues`);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
try {
|
|
98
|
-
// FIXME(serhalp): `id` and `name` should be required in `netlify` package type
|
|
99
|
-
site = (await api.createSiteInTeam({
|
|
100
|
-
accountSlug,
|
|
101
|
-
body: {
|
|
102
|
-
repo: {
|
|
103
|
-
provider: 'github',
|
|
104
|
-
// @ts-expect-error -- FIXME(serhalp): Supposedly this is does not exist. Investigate.
|
|
105
|
-
repo: repoResp.full_name,
|
|
106
|
-
// FIXME(serhalp): Supposedly this should be `public_repo`. Investigate.
|
|
107
|
-
private: repoResp.private,
|
|
108
|
-
// FIXME(serhalp): Supposedly this should be `repo_branch`. Investigate.
|
|
109
|
-
branch: repoResp.default_branch,
|
|
110
|
-
},
|
|
111
|
-
name: siteName,
|
|
112
|
-
},
|
|
113
|
-
}));
|
|
114
|
-
}
|
|
115
|
-
catch (error_) {
|
|
116
|
-
if (error_.status === 422) {
|
|
117
|
-
log(`createSiteInTeam error: ${error_.status}: ${error_.message}`);
|
|
118
|
-
log('Cannot create a project with that name. Project name may already exist. Please try a new name.');
|
|
119
|
-
return inputSiteName(undefined, hasExistingRepo);
|
|
120
|
-
}
|
|
121
|
-
return logAndThrowError(`createSiteInTeam error: ${error_.status}: ${error_.message}`);
|
|
122
|
-
}
|
|
123
|
-
return [site, repoResp];
|
|
124
|
-
};
|
|
125
|
-
[site, repoResp] = await inputSiteName(nameFlag);
|
|
126
|
-
log();
|
|
127
|
-
log(chalk.greenBright.bold.underline(`Project Created`));
|
|
128
|
-
log();
|
|
129
|
-
const siteUrl = site.ssl_url || site.url;
|
|
130
|
-
log(render({
|
|
131
|
-
'Admin URL': site.admin_url,
|
|
132
|
-
URL: siteUrl,
|
|
133
|
-
'Project ID': site.id,
|
|
134
|
-
'Repo URL': site.build_settings?.repo_url ?? '',
|
|
135
|
-
}));
|
|
136
|
-
track('sites_createdFromTemplate', {
|
|
137
|
-
siteId: site.id,
|
|
138
|
-
adminUrl: site.admin_url,
|
|
139
|
-
siteUrl,
|
|
140
|
-
});
|
|
141
|
-
const { cloneConfirm } = await inquirer.prompt({
|
|
142
|
-
type: 'confirm',
|
|
143
|
-
name: 'cloneConfirm',
|
|
144
|
-
message: `Do you want to clone the repository to your local machine?`,
|
|
145
|
-
default: true,
|
|
146
|
-
});
|
|
147
|
-
if (cloneConfirm) {
|
|
148
|
-
log();
|
|
149
|
-
if (repoResp.clone_url) {
|
|
150
|
-
await execa('git', ['clone', repoResp.clone_url, `${repoResp.name}`]);
|
|
151
|
-
}
|
|
152
|
-
log(`🚀 Repository cloned successfully. You can find it under the ${chalk.magenta(repoResp.name)} folder`);
|
|
153
|
-
const { linkConfirm } = await inquirer.prompt({
|
|
154
|
-
type: 'confirm',
|
|
155
|
-
name: 'linkConfirm',
|
|
156
|
-
message: `Do you want to link the cloned directory to the project?`,
|
|
157
|
-
default: true,
|
|
158
|
-
});
|
|
159
|
-
if (linkConfirm) {
|
|
160
|
-
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
161
|
-
const cliPath = path.resolve(__dirname, '../../../bin/run.js');
|
|
162
|
-
let stdout;
|
|
163
|
-
// TODO(serhalp): Why is this condition here? We've asked the user multiple prompts, but we already knew we had
|
|
164
|
-
// invalid repo data. Move upstream.
|
|
165
|
-
if (repoResp.name) {
|
|
166
|
-
stdout = await callLinkSite(cliPath, repoResp.name, '\n');
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
return logAndThrowError('Failed to fetch the repo');
|
|
170
|
-
}
|
|
171
|
-
const linkedSiteUrlRegex = /Project url:\s+(\S+)/;
|
|
172
|
-
const lineMatch = linkedSiteUrlRegex.exec(stdout);
|
|
173
|
-
const urlMatch = lineMatch ? lineMatch[1] : undefined;
|
|
174
|
-
if (urlMatch) {
|
|
175
|
-
log(`\nDirectory ${chalk.cyanBright(repoResp.name)} linked to project ${chalk.cyanBright(urlMatch)}\n`);
|
|
176
|
-
log(`${chalk.cyanBright.bold('cd', repoResp.name)} to use other netlify cli commands in the cloned directory.\n`);
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
const linkedSiteMatch = /Project already linked to\s+(\S+)/.exec(stdout);
|
|
180
|
-
const linkedSiteNameMatch = linkedSiteMatch ? linkedSiteMatch[1] : undefined;
|
|
181
|
-
if (linkedSiteNameMatch) {
|
|
182
|
-
log(`\nThis directory appears to be linked to ${chalk.cyanBright(linkedSiteNameMatch)}`);
|
|
183
|
-
log('This can happen if you cloned the template into a subdirectory of an existing Netlify project.');
|
|
184
|
-
log(`You may need to move the ${chalk.cyanBright(repoResp.name)} directory out of its parent directory and then re-run the ${chalk.cyanBright('link')} command manually\n`);
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
log('A problem occurred linking the project');
|
|
188
|
-
log('You can try again manually by running:');
|
|
189
|
-
log(chalk.cyanBright(`cd ${repoResp.name} && netlify link\n`));
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
log('To link the cloned directory manually, run:');
|
|
195
|
-
log(chalk.cyanBright(`cd ${repoResp.name} && netlify link\n`));
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
if (options.withCi) {
|
|
199
|
-
log('Configuring CI');
|
|
200
|
-
const repoData = await getRepoData({ workingDir: command.workingDir });
|
|
201
|
-
if ('error' in repoData) {
|
|
202
|
-
return logAndThrowError('Failed to get repo data');
|
|
203
|
-
}
|
|
204
|
-
await configureRepo({ command, siteId: site.id, repoData, manual: options.manual });
|
|
205
|
-
}
|
|
206
|
-
if (options.json) {
|
|
207
|
-
logJson(pick(site, [
|
|
208
|
-
'id',
|
|
209
|
-
'state',
|
|
210
|
-
'plan',
|
|
211
|
-
'name',
|
|
212
|
-
'custom_domain',
|
|
213
|
-
'domain_aliases',
|
|
214
|
-
'url',
|
|
215
|
-
'ssl_url',
|
|
216
|
-
'admin_url',
|
|
217
|
-
'screenshot_url',
|
|
218
|
-
'created_at',
|
|
219
|
-
'updated_at',
|
|
220
|
-
'user_id',
|
|
221
|
-
'ssl',
|
|
222
|
-
'force_ssl',
|
|
223
|
-
'managed_dns',
|
|
224
|
-
'deploy_url',
|
|
225
|
-
'account_name',
|
|
226
|
-
'account_slug',
|
|
227
|
-
'git_provider',
|
|
228
|
-
'deploy_hook',
|
|
229
|
-
'capabilities',
|
|
230
|
-
'id_domain',
|
|
231
|
-
]));
|
|
232
|
-
}
|
|
233
|
-
return site;
|
|
234
|
-
};
|
|
235
|
-
//# sourceMappingURL=sites-create-template.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sites-create-template.js","sourceRoot":"","sources":["../../../src/commands/sites/sites-create-template.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
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
|
-
}) => string;
|
|
14
|
-
//# sourceMappingURL=create-template.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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;AAKxC,OAAO,EAAE,QAAQ,EAAc,MAAM,aAAa,CAAA;AAIlD,eAAO,MAAM,cAAc,GAAU,OAAO,MAAM,KAAG,OAAO,CAAC,QAAQ,EAAE,CAatE,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,mCAInC;IACD,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,YAAY,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;CACnB,iBA4BA,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,OAAO,CAMtE,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,2BAA2B;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,KAAG,MAC9B,CAAA"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import inquirer from 'inquirer';
|
|
2
|
-
import parseGitHubUrl from 'parse-github-url';
|
|
3
|
-
import { log } from '../command-helpers.js';
|
|
4
|
-
import { getTemplatesFromGitHub } from './utils.js';
|
|
5
|
-
export const fetchTemplates = async (token) => {
|
|
6
|
-
const templatesFromGitHubOrg = await getTemplatesFromGitHub(token);
|
|
7
|
-
return (templatesFromGitHubOrg
|
|
8
|
-
// adding this filter because the react-based-templates has multiple templates in one repo so doesn't work for this command
|
|
9
|
-
.filter((repo) => !repo.archived && !repo.disabled && repo.name !== 'react-based-templates')
|
|
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 parsedUrl = parseGitHubUrl(repository);
|
|
19
|
-
return parsedUrl?.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}`;
|
|
47
|
-
//# sourceMappingURL=create-template.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-template.js","sourceRoot":"","sources":["../../../src/utils/sites/create-template.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAG3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAEnD,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,KAAa,EAAuB,EAAE;IACzE,MAAM,sBAAsB,GAAiB,MAAM,sBAAsB,CAAC,KAAK,CAAC,CAAA;IAEhF,OAAO,CACL,sBAAsB;QACpB,2HAA2H;SAC1H,MAAM,CAAC,CAAC,IAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB,CAAC;SACvG,GAAG,CAAC,CAAC,QAAoB,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,aAAa,EAAE,QAAQ,CAAC,QAAQ;QAChC,IAAI,EAAE,QAAQ,CAAC,SAAS;KACzB,CAAC,CAAC,CACN,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,EACpC,OAAO,EACP,OAAO,EACP,UAAU,GAKX,EAAE,EAAE;IACH,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,cAAc,CAAC,UAAU,CAAC,CAAA;QAC5C,OAAO,SAAS,EAAE,IAAI,IAAI,qBAAqB,UAAU,EAAE,CAAA;IAC7D,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3C,OAAO,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAA;IAE/C,GAAG,CAAC,+GAA+G,CAAC,CAAA;IAEpH,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QAC7C;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACpC,KAAK,EAAE,QAAQ,CAAC,IAAI;gBACpB,IAAI,EAAE,QAAQ,CAAC,IAAI;aACpB,CAAC,CAAC;SACJ;KACF,CAAC,CAAA;IAEF,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,IAAY,EAAoB,EAAE;IACzE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,IAAI,cAAc,EAAE;QACtD,MAAM,EAAE,KAAK;KACd,CAAC,CAAA;IAEF,OAAO,IAAI,CAAC,MAAM,KAAK,GAAG,CAAA;AAC5B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAE,OAAO,EAAE,YAAY,EAAmD,EAAU,EAAE,CACjH,OAAO,CAAC,GAA0B,IAAI,sBAAsB,YAAY,EAAE,CAAA"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { GitHubRepoResponse } from '../command-helpers.js';
|
|
2
|
-
import { GitHubRepo } from '../types.js';
|
|
3
|
-
export declare const getTemplatesFromGitHub: (token: string) => Promise<GitHubRepo[]>;
|
|
4
|
-
export declare const validateTemplate: ({ ghToken, templateName }: {
|
|
5
|
-
ghToken: string;
|
|
6
|
-
templateName: string;
|
|
7
|
-
}) => Promise<{
|
|
8
|
-
exists: boolean;
|
|
9
|
-
isTemplate?: undefined;
|
|
10
|
-
} | {
|
|
11
|
-
exists: boolean;
|
|
12
|
-
isTemplate: boolean | undefined;
|
|
13
|
-
}>;
|
|
14
|
-
export declare const createRepo: (templateName: string, ghToken: string, siteName: string) => Promise<GitHubRepoResponse>;
|
|
15
|
-
export declare const callLinkSite: (cliPath: string, repoName: string, input: string) => Promise<string>;
|
|
16
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils/sites/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAoB,MAAM,uBAAuB,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,eAAO,MAAM,sBAAsB,GAAU,OAAO,MAAM,KAAG,OAAO,CAAC,UAAU,EAAE,CAwBhF,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAU,2BAA2B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE;;;;;;EAkB1G,CAAA;AAED,eAAO,MAAM,UAAU,GACrB,cAAc,MAAM,EACpB,SAAS,MAAM,EACf,UAAU,MAAM,KACf,OAAO,CAAC,kBAAkB,CAc5B,CAAA;AAED,eAAO,MAAM,YAAY,GAAU,SAAS,MAAM,EAAE,UAAU,MAAM,EAAE,OAAO,MAAM,oBAMlF,CAAA"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import fetch from 'node-fetch';
|
|
2
|
-
import execa from 'execa';
|
|
3
|
-
import { logAndThrowError } from '../command-helpers.js';
|
|
4
|
-
export const getTemplatesFromGitHub = async (token) => {
|
|
5
|
-
const getPublicGitHubReposFromOrg = new URL(`https://api.github.com/orgs/netlify-templates/repos`);
|
|
6
|
-
// GitHub returns 30 by default and we want to avoid our limit
|
|
7
|
-
// due to our archived repositories at any given time
|
|
8
|
-
const REPOS_PER_PAGE = 70;
|
|
9
|
-
getPublicGitHubReposFromOrg.searchParams.set('type', 'public');
|
|
10
|
-
getPublicGitHubReposFromOrg.searchParams.set('sort', 'full_name');
|
|
11
|
-
// @ts-expect-error TS(2345) FIXME: Argument of type 'number' is not assignable to par... Remove this comment to see the full error message
|
|
12
|
-
getPublicGitHubReposFromOrg.searchParams.set('per_page', REPOS_PER_PAGE);
|
|
13
|
-
let allTemplates = [];
|
|
14
|
-
try {
|
|
15
|
-
const templates = await fetch(getPublicGitHubReposFromOrg, {
|
|
16
|
-
method: 'GET',
|
|
17
|
-
headers: {
|
|
18
|
-
Authorization: `token ${token}`,
|
|
19
|
-
},
|
|
20
|
-
});
|
|
21
|
-
allTemplates = (await templates.json());
|
|
22
|
-
}
|
|
23
|
-
catch (error_) {
|
|
24
|
-
return logAndThrowError(error_);
|
|
25
|
-
}
|
|
26
|
-
return allTemplates;
|
|
27
|
-
};
|
|
28
|
-
export const validateTemplate = async ({ ghToken, templateName }) => {
|
|
29
|
-
const response = await fetch(`https://api.github.com/repos/${templateName}`, {
|
|
30
|
-
headers: {
|
|
31
|
-
Authorization: `token ${ghToken}`,
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
if (response.status === 404) {
|
|
35
|
-
return { exists: false };
|
|
36
|
-
}
|
|
37
|
-
if (!response.ok) {
|
|
38
|
-
throw new Error(`Error fetching template ${templateName}: ${await response.text()}`);
|
|
39
|
-
}
|
|
40
|
-
const data = (await response.json());
|
|
41
|
-
return { exists: true, isTemplate: data.is_template };
|
|
42
|
-
};
|
|
43
|
-
export const createRepo = async (templateName, ghToken, siteName) => {
|
|
44
|
-
const resp = await fetch(`https://api.github.com/repos/${templateName}/generate`, {
|
|
45
|
-
method: 'POST',
|
|
46
|
-
headers: {
|
|
47
|
-
Authorization: `token ${ghToken}`,
|
|
48
|
-
},
|
|
49
|
-
body: JSON.stringify({
|
|
50
|
-
name: siteName,
|
|
51
|
-
}),
|
|
52
|
-
});
|
|
53
|
-
const data = await resp.json();
|
|
54
|
-
return data;
|
|
55
|
-
};
|
|
56
|
-
export const callLinkSite = async (cliPath, repoName, input) => {
|
|
57
|
-
const { stdout } = await execa(cliPath, ['link'], {
|
|
58
|
-
input,
|
|
59
|
-
cwd: repoName,
|
|
60
|
-
});
|
|
61
|
-
return stdout;
|
|
62
|
-
};
|
|
63
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/sites/utils.ts"],"names":[],"mappings":"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"}
|