@depup/netlify-cli 24.8.1-depup.0 → 24.8.2-depup.1
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/README.md +5 -3
- package/changes.json +10 -2
- package/dist/commands/login/login-request.d.ts.map +1 -1
- package/dist/commands/login/login-request.js +3 -1
- package/dist/commands/login/login-request.js.map +1 -1
- package/dist/commands/sites/sites-create.d.ts.map +1 -1
- package/dist/commands/sites/sites-create.js +52 -11
- package/dist/commands/sites/sites-create.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/validation.d.ts +1 -0
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +1 -1
- package/dist/utils/validation.js.map +1 -1
- package/npm-shrinkwrap.json +23 -8
- package/package.json +14 -6
package/README.md
CHANGED
|
@@ -13,10 +13,10 @@ npm install @depup/netlify-cli
|
|
|
13
13
|
|
|
14
14
|
| Field | Value |
|
|
15
15
|
|-------|-------|
|
|
16
|
-
| Original | [netlify-cli](https://www.npmjs.com/package/netlify-cli) @ 24.8.
|
|
17
|
-
| Processed | 2026-03-
|
|
16
|
+
| Original | [netlify-cli](https://www.npmjs.com/package/netlify-cli) @ 24.8.2 |
|
|
17
|
+
| Processed | 2026-03-31 |
|
|
18
18
|
| Smoke test | failed |
|
|
19
|
-
| Deps updated |
|
|
19
|
+
| Deps updated | 24 |
|
|
20
20
|
|
|
21
21
|
## Dependency Changes
|
|
22
22
|
|
|
@@ -35,12 +35,14 @@ npm install @depup/netlify-cli
|
|
|
35
35
|
| inquirer | 8.2.7 | ^13.3.2 |
|
|
36
36
|
| inquirer-autocomplete-prompt | 1.4.0 | ^3.0.1 |
|
|
37
37
|
| is-wsl | 3.1.0 | ^3.1.1 |
|
|
38
|
+
| lodash | 4.17.23 | ^4.18.0 |
|
|
38
39
|
| modern-tar | 0.7.5 | ^0.7.6 |
|
|
39
40
|
| normalize-package-data | 7.0.1 | ^8.0.0 |
|
|
40
41
|
| p-map | 7.0.3 | ^7.0.4 |
|
|
41
42
|
| raw-body | 3.0.1 | ^3.0.2 |
|
|
42
43
|
| readdirp | 4.1.2 | ^5.0.0 |
|
|
43
44
|
| semver | 7.7.2 | ^7.7.4 |
|
|
45
|
+
| toml | 3.0.0 | ^4.0.1 |
|
|
44
46
|
| ulid | 3.0.1 | ^3.0.2 |
|
|
45
47
|
| write-file-atomic | 5.0.1 | ^7.0.1 |
|
|
46
48
|
| ws | 8.19.0 | ^8.20.0 |
|
package/changes.json
CHANGED
|
@@ -52,6 +52,10 @@
|
|
|
52
52
|
"from": "3.1.0",
|
|
53
53
|
"to": "^3.1.1"
|
|
54
54
|
},
|
|
55
|
+
"lodash": {
|
|
56
|
+
"from": "4.17.23",
|
|
57
|
+
"to": "^4.18.0"
|
|
58
|
+
},
|
|
55
59
|
"modern-tar": {
|
|
56
60
|
"from": "0.7.5",
|
|
57
61
|
"to": "^0.7.6"
|
|
@@ -76,6 +80,10 @@
|
|
|
76
80
|
"from": "7.7.2",
|
|
77
81
|
"to": "^7.7.4"
|
|
78
82
|
},
|
|
83
|
+
"toml": {
|
|
84
|
+
"from": "3.0.0",
|
|
85
|
+
"to": "^4.0.1"
|
|
86
|
+
},
|
|
79
87
|
"ulid": {
|
|
80
88
|
"from": "3.0.1",
|
|
81
89
|
"to": "^3.0.2"
|
|
@@ -89,6 +97,6 @@
|
|
|
89
97
|
"to": "^8.20.0"
|
|
90
98
|
}
|
|
91
99
|
},
|
|
92
|
-
"timestamp": "2026-03-
|
|
93
|
-
"totalUpdated":
|
|
100
|
+
"timestamp": "2026-03-31T20:22:57.305Z",
|
|
101
|
+
"totalUpdated": 24
|
|
94
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login-request.d.ts","sourceRoot":"","sources":["../../../src/commands/login/login-request.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,YAAY,GAAU,SAAS,MAAM,EAAE,SAAS,cAAc,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"login-request.d.ts","sourceRoot":"","sources":["../../../src/commands/login/login-request.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,YAAY,GAAU,SAAS,MAAM,EAAE,SAAS,cAAc,CAAC,SAAS,CAAC,uBA2BrF,CAAA"}
|
|
@@ -14,11 +14,13 @@ export const loginRequest = async (message, apiOpts) => {
|
|
|
14
14
|
ticket_id: ticketId,
|
|
15
15
|
url,
|
|
16
16
|
check_command: `netlify login --check ${ticketId}`,
|
|
17
|
-
agent_next_steps: '
|
|
17
|
+
agent_next_steps: 'Give the URL to the user so they can authorize. Then poll the check_command for up to ten minutes to see if the user has logged in, or wait for them to tell you and then use check_command after.',
|
|
18
18
|
});
|
|
19
19
|
log(`Ticket ID: ${ticketId}`);
|
|
20
20
|
log(`Authorize URL: ${url}`);
|
|
21
21
|
log();
|
|
22
22
|
log(`After authorizing, run: netlify login --check ${ticketId}`);
|
|
23
|
+
log();
|
|
24
|
+
log('After user opens the authorization URL and approves, the login will be complete.');
|
|
23
25
|
};
|
|
24
26
|
//# sourceMappingURL=login-request.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login-request.js","sourceRoot":"","sources":["../../../src/commands/login/login-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAG9C,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,OAAe,EAAE,OAAkC,EAAE,EAAE;IACxF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,yBAAyB,CAAA;IAErE,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAEvC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;IAEjF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,gBAAgB,CAAC,+BAA+B,CAAC,CAAA;IAC1D,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAA;IAC1B,MAAM,GAAG,GAAG,GAAG,KAAK,0CAA0C,QAAQ,EAAE,CAAA;IAExE,OAAO,CAAC;QACN,SAAS,EAAE,QAAQ;QACnB,GAAG;QACH,aAAa,EAAE,yBAAyB,QAAQ,EAAE;QAClD,gBAAgB,EACd
|
|
1
|
+
{"version":3,"file":"login-request.js","sourceRoot":"","sources":["../../../src/commands/login/login-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAG9C,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,OAAe,EAAE,OAAkC,EAAE,EAAE;IACxF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,yBAAyB,CAAA;IAErE,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAEvC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;IAEjF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,gBAAgB,CAAC,+BAA+B,CAAC,CAAA;IAC1D,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAA;IAC1B,MAAM,GAAG,GAAG,GAAG,KAAK,0CAA0C,QAAQ,EAAE,CAAA;IAExE,OAAO,CAAC;QACN,SAAS,EAAE,QAAQ;QACnB,GAAG;QACH,aAAa,EAAE,yBAAyB,QAAQ,EAAE;QAClD,gBAAgB,EACd,oMAAoM;KACvM,CAAC,CAAA;IAEF,GAAG,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAA;IAC7B,GAAG,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAA;IAC5B,GAAG,EAAE,CAAA;IACL,GAAG,CAAC,iDAAiD,QAAQ,EAAE,CAAC,CAAA;IAChE,GAAG,EAAE,CAAA;IACL,GAAG,CAAC,kFAAkF,CAAC,CAAA;AACzF,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sites-create.d.ts","sourceRoot":"","sources":["../../../src/commands/sites/sites-create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAW7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"sites-create.d.ts","sourceRoot":"","sources":["../../../src/commands/sites/sites-create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAW7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAA;AAGjD,eAAO,MAAM,gBAAgB,GAAU,MAAM,MAAM,GAAG,SAAS,KAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAezF,CAAA;AAED,eAAO,MAAM,WAAW,GAAU,SAAS,YAAY,EAAE,SAAS,WAAW,sBA2L5E,CAAA"}
|
|
@@ -7,6 +7,7 @@ import { configureRepo } from '../../utils/init/config.js';
|
|
|
7
7
|
import { isInteractive } from '../../utils/scripted-commands.js';
|
|
8
8
|
import { resolveTeamForNonInteractive } from '../../utils/team.js';
|
|
9
9
|
import { track } from '../../utils/telemetry/index.js';
|
|
10
|
+
import { MAX_SITE_NAME_LENGTH } from '../../utils/validation.js';
|
|
10
11
|
import { link } from '../link/link.js';
|
|
11
12
|
export const getSiteNameInput = async (name) => {
|
|
12
13
|
if (!name) {
|
|
@@ -48,15 +49,14 @@ export const sitesCreate = async (options, command) => {
|
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
let site;
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
const { name:
|
|
52
|
+
const MAX_NAME_RETRIES = 2;
|
|
53
|
+
const tryCreateSiteInteractive = async (nameToTry) => {
|
|
54
|
+
const { name: attemptName } = await getSiteNameInput(nameToTry);
|
|
54
55
|
const body = {};
|
|
55
|
-
if (
|
|
56
|
-
body.name =
|
|
56
|
+
if (attemptName.trim()) {
|
|
57
|
+
body.name = attemptName.trim();
|
|
57
58
|
}
|
|
58
59
|
try {
|
|
59
|
-
// FIXME(serhalp): `id` and `name` should be required in `netlify` package type
|
|
60
60
|
site = (await api.createSiteInTeam({
|
|
61
61
|
accountSlug: accountSlug,
|
|
62
62
|
body,
|
|
@@ -64,13 +64,50 @@ export const sitesCreate = async (options, command) => {
|
|
|
64
64
|
}
|
|
65
65
|
catch (error_) {
|
|
66
66
|
if (error_.status === 422) {
|
|
67
|
-
warn(`${
|
|
68
|
-
|
|
67
|
+
warn(`${attemptName}.netlify.app already exists. Please try a different slug.`);
|
|
68
|
+
return tryCreateSiteInteractive(undefined);
|
|
69
69
|
}
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
return logAndThrowError(`createSiteInTeam error: ${error_.status}: ${error_.message}`);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
const createSiteWithRetry = async (siteName) => {
|
|
74
|
+
if (!isInteractive() && siteName) {
|
|
75
|
+
for (let attempt = 0; attempt <= MAX_NAME_RETRIES; attempt++) {
|
|
76
|
+
let nameToTry = siteName;
|
|
77
|
+
if (attempt > 0) {
|
|
78
|
+
const suffix = `-${Math.floor(Math.random() * 900 + 100).toString()}`;
|
|
79
|
+
const normalizedBase = siteName.trim();
|
|
80
|
+
const maxBaseLength = MAX_SITE_NAME_LENGTH - suffix.length;
|
|
81
|
+
const truncatedBase = normalizedBase.slice(0, maxBaseLength);
|
|
82
|
+
nameToTry = `${truncatedBase}${suffix}`;
|
|
83
|
+
warn(`${siteName}.netlify.app already exists. Trying ${nameToTry}...`);
|
|
84
|
+
}
|
|
85
|
+
const body = {};
|
|
86
|
+
if (nameToTry.trim()) {
|
|
87
|
+
body.name = nameToTry.trim();
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
site = (await api.createSiteInTeam({
|
|
91
|
+
accountSlug: accountSlug,
|
|
92
|
+
body,
|
|
93
|
+
}));
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
catch (error_) {
|
|
97
|
+
if (error_.status === 422) {
|
|
98
|
+
if (attempt === MAX_NAME_RETRIES) {
|
|
99
|
+
return logAndThrowError(`Project name "${nameToTry}" is already taken. Please try a different name.`);
|
|
100
|
+
}
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
return logAndThrowError(`createSiteInTeam error: ${error_.status}: ${error_.message}`);
|
|
104
|
+
}
|
|
72
105
|
}
|
|
73
106
|
}
|
|
107
|
+
if (isInteractive()) {
|
|
108
|
+
return tryCreateSiteInteractive(siteName);
|
|
109
|
+
}
|
|
110
|
+
return logAndThrowError('Failed to create site: name already taken');
|
|
74
111
|
};
|
|
75
112
|
if (!isInteractive() && !options.name) {
|
|
76
113
|
try {
|
|
@@ -83,8 +120,12 @@ export const sitesCreate = async (options, command) => {
|
|
|
83
120
|
return logAndThrowError(`Failed to create site: ${error_.status}: ${error_.message}`);
|
|
84
121
|
}
|
|
85
122
|
}
|
|
123
|
+
else if (isInteractive() && !options.name) {
|
|
124
|
+
const { name: siteName } = await getSiteNameInput(options.name);
|
|
125
|
+
await createSiteWithRetry(siteName);
|
|
126
|
+
}
|
|
86
127
|
else {
|
|
87
|
-
await
|
|
128
|
+
await createSiteWithRetry(options.name);
|
|
88
129
|
}
|
|
89
130
|
log();
|
|
90
131
|
log(chalk.greenBright.bold.underline(`Project Created`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sites-create.js","sourceRoot":"","sources":["../../../src/commands/sites/sites-create.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,IAAI,MAAM,gBAAgB,CAAA;AACjC,OAAO,UAAU,MAAM,YAAY,CAAA;AAEnC,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAiB,MAAM,gCAAgC,CAAA;AAC3G,OAAO,WAAW,MAAM,8BAA8B,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"sites-create.js","sourceRoot":"","sources":["../../../src/commands/sites/sites-create.ts"],"names":[],"mappings":"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"}
|