netlify-cli 24.6.2 → 24.7.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/claim/claim.d.ts +3 -0
- package/dist/commands/claim/claim.d.ts.map +1 -0
- package/dist/commands/claim/claim.js +19 -0
- package/dist/commands/claim/claim.js.map +1 -0
- package/dist/commands/claim/index.d.ts +3 -0
- package/dist/commands/claim/index.d.ts.map +1 -0
- package/dist/commands/claim/index.js +11 -0
- package/dist/commands/claim/index.js.map +1 -0
- package/dist/commands/deploy/deploy.d.ts.map +1 -1
- package/dist/commands/deploy/deploy.js +159 -1
- package/dist/commands/deploy/deploy.js.map +1 -1
- package/dist/commands/deploy/index.d.ts.map +1 -1
- package/dist/commands/deploy/index.js +3 -0
- package/dist/commands/deploy/index.js.map +1 -1
- package/dist/commands/deploy/option_values.d.ts +2 -0
- package/dist/commands/deploy/option_values.d.ts.map +1 -1
- package/dist/commands/main.d.ts.map +1 -1
- package/dist/commands/main.js +2 -0
- package/dist/commands/main.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/deploy/drop-api.d.ts +34 -0
- package/dist/utils/deploy/drop-api.d.ts.map +1 -0
- package/dist/utils/deploy/drop-api.js +155 -0
- package/dist/utils/deploy/drop-api.js.map +1 -0
- package/npm-shrinkwrap.json +20 -20
- package/package.json +3 -3
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import type { StatusCallback } from './status-cb.js';
|
|
3
|
+
interface DropDeployInfo {
|
|
4
|
+
id: string;
|
|
5
|
+
deploy_id: string;
|
|
6
|
+
subdomain: string;
|
|
7
|
+
url: string;
|
|
8
|
+
state: string;
|
|
9
|
+
required: string[];
|
|
10
|
+
}
|
|
11
|
+
interface DropApiOptions {
|
|
12
|
+
apiBase: string;
|
|
13
|
+
userAgent: string;
|
|
14
|
+
}
|
|
15
|
+
export interface DropApiError extends Error {
|
|
16
|
+
status?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare const getDropToken: ({ apiBase, userAgent }: DropApiOptions) => Promise<string>;
|
|
19
|
+
export declare const createDropDeploy: ({ apiBase, userAgent }: DropApiOptions, files: Record<string, string>, token: string, createdVia?: string) => Promise<DropDeployInfo>;
|
|
20
|
+
export declare const uploadDropFile: ({ apiBase, userAgent }: DropApiOptions, deployId: string, filePath: string, body: fs.ReadStream | Buffer, token: string) => Promise<void>;
|
|
21
|
+
export declare const waitForDropDeploy: ({ apiBase, userAgent }: DropApiOptions, siteId: string, deployId: string, timeout?: number) => Promise<Record<string, unknown>>;
|
|
22
|
+
export declare const claimDropSite: ({ apiBase, userAgent }: DropApiOptions, siteId: string, dropToken: string, authToken: string) => Promise<void>;
|
|
23
|
+
export interface UploadListItem {
|
|
24
|
+
normalizedPath: string;
|
|
25
|
+
filepath: string;
|
|
26
|
+
hash: string;
|
|
27
|
+
}
|
|
28
|
+
export declare const uploadDropFiles: (apiOptions: DropApiOptions, deployId: string, uploadList: UploadListItem[], token: string, { concurrentUpload, maxRetry, statusCb, }?: {
|
|
29
|
+
concurrentUpload?: number;
|
|
30
|
+
maxRetry?: number;
|
|
31
|
+
statusCb?: StatusCallback;
|
|
32
|
+
}) => Promise<void>;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=drop-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drop-api.d.ts","sourceRoot":"","sources":["../../../src/utils/deploy/drop-api.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,IAAI,CAAA;AAKnB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIpD,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AASD,eAAO,MAAM,YAAY,GAAU,wBAAwB,cAAc,KAAG,OAAO,CAAC,MAAM,CAczF,CAAA;AAGD,eAAO,MAAM,gBAAgB,GAC3B,wBAAwB,cAAc,EACtC,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,OAAO,MAAM,EACb,aAAa,MAAM,KAClB,OAAO,CAAC,cAAc,CAoBxB,CAAA;AAOD,eAAO,MAAM,cAAc,GACzB,wBAAwB,cAAc,EACtC,UAAU,MAAM,EAChB,UAAU,MAAM,EAChB,MAAM,EAAE,CAAC,UAAU,GAAG,MAAM,EAC5B,OAAO,MAAM,KACZ,OAAO,CAAC,IAAI,CAsBd,CAAA;AAGD,eAAO,MAAM,iBAAiB,GAC5B,wBAAwB,cAAc,EACtC,QAAQ,MAAM,EACd,UAAU,MAAM,EAChB,UAAS,MAA+B,KACvC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkCjC,CAAA;AAGD,eAAO,MAAM,aAAa,GACxB,wBAAwB,cAAc,EACtC,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,WAAW,MAAM,KAChB,OAAO,CAAC,IAAI,CAgBd,CAAA;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,eAAO,MAAM,eAAe,GAC1B,YAAY,cAAc,EAC1B,UAAU,MAAM,EAChB,YAAY,cAAc,EAAE,EAC5B,OAAO,MAAM,EACb,4CAIG;IACD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,cAAc,CAAA;CACrB,KACL,OAAO,CAAC,IAAI,CA4Cd,CAAA"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
// TODO: These Drop API helpers should be migrated to @netlify/api once the Drop
|
|
2
|
+
// endpoints are added to the OpenAPI spec. Until then, we use raw fetch calls.
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import pWaitFor from 'p-wait-for';
|
|
5
|
+
import { DEPLOY_POLL, DEFAULT_DEPLOY_TIMEOUT, DEFAULT_CONCURRENT_UPLOAD, DEFAULT_MAX_RETRY } from './constants.js';
|
|
6
|
+
const APP_NETLIFY_REFERRER = 'https://app.netlify.com';
|
|
7
|
+
const makeHeaders = (userAgent, extra = {}) => ({
|
|
8
|
+
'User-Agent': userAgent,
|
|
9
|
+
Referer: APP_NETLIFY_REFERRER,
|
|
10
|
+
...extra,
|
|
11
|
+
});
|
|
12
|
+
// TODO: Migrate to @netlify/api when Drop endpoints are in the OpenAPI spec.
|
|
13
|
+
export const getDropToken = async ({ apiBase, userAgent }) => {
|
|
14
|
+
const response = await fetch(`${apiBase}/drop/token`, {
|
|
15
|
+
method: 'POST',
|
|
16
|
+
headers: makeHeaders(userAgent, { 'Content-Type': 'application/json' }),
|
|
17
|
+
});
|
|
18
|
+
if (!response.ok) {
|
|
19
|
+
const error = new Error(`Failed to get drop token: ${String(response.status)} ${response.statusText}`);
|
|
20
|
+
error.status = response.status;
|
|
21
|
+
throw error;
|
|
22
|
+
}
|
|
23
|
+
const data = (await response.json());
|
|
24
|
+
return data.token;
|
|
25
|
+
};
|
|
26
|
+
// TODO: Migrate to @netlify/api when Drop endpoints are in the OpenAPI spec.
|
|
27
|
+
export const createDropDeploy = async ({ apiBase, userAgent }, files, token, createdVia) => {
|
|
28
|
+
const body = { files, token };
|
|
29
|
+
if (createdVia) {
|
|
30
|
+
body.created_via = createdVia;
|
|
31
|
+
}
|
|
32
|
+
const response = await fetch(`${apiBase}/drop`, {
|
|
33
|
+
method: 'POST',
|
|
34
|
+
headers: makeHeaders(userAgent, { 'Content-Type': 'application/json' }),
|
|
35
|
+
body: JSON.stringify(body),
|
|
36
|
+
});
|
|
37
|
+
if (!response.ok) {
|
|
38
|
+
const errorText = await response.text();
|
|
39
|
+
const error = new Error(`Failed to create drop deploy: ${String(response.status)} ${errorText}`);
|
|
40
|
+
error.status = response.status;
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
43
|
+
return (await response.json());
|
|
44
|
+
};
|
|
45
|
+
// TODO: Migrate to @netlify/api when Drop endpoints are in the OpenAPI spec.
|
|
46
|
+
export const uploadDropFile = async ({ apiBase, userAgent }, deployId, filePath, body, token) => {
|
|
47
|
+
// Node.js fetch needs `duplex: 'half'` for streaming bodies which isn't in standard RequestInit
|
|
48
|
+
/* eslint-disable @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any */
|
|
49
|
+
const normalizedFilePath = filePath.startsWith('/') ? filePath : `/${filePath}`;
|
|
50
|
+
const response = await fetch(`${apiBase}/deploys/${deployId}/files${encodeURI(normalizedFilePath)}`, {
|
|
51
|
+
method: 'PUT',
|
|
52
|
+
headers: makeHeaders(userAgent, {
|
|
53
|
+
'Content-Type': 'application/octet-stream',
|
|
54
|
+
Authorization: `Bearer ${token}`,
|
|
55
|
+
}),
|
|
56
|
+
body: body,
|
|
57
|
+
duplex: 'half',
|
|
58
|
+
});
|
|
59
|
+
/* eslint-enable @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any */
|
|
60
|
+
if (!response.ok) {
|
|
61
|
+
const error = new Error(`Failed to upload file ${filePath}: ${String(response.status)} ${response.statusText}`);
|
|
62
|
+
error.status = response.status;
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
// TODO: Migrate to @netlify/api when Drop endpoints are in the OpenAPI spec.
|
|
67
|
+
export const waitForDropDeploy = async ({ apiBase, userAgent }, siteId, deployId, timeout = DEFAULT_DEPLOY_TIMEOUT) => {
|
|
68
|
+
let deploy;
|
|
69
|
+
const checkDeploy = async () => {
|
|
70
|
+
const response = await fetch(`${apiBase}/sites/${siteId}/deploys/${deployId}`, {
|
|
71
|
+
headers: makeHeaders(userAgent),
|
|
72
|
+
});
|
|
73
|
+
if (!response.ok) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
const data = (await response.json());
|
|
77
|
+
if (data.state === 'ready') {
|
|
78
|
+
deploy = data;
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
if (data.state === 'error') {
|
|
82
|
+
throw new Error(data.error_message || `Deploy ${deployId} had an error`);
|
|
83
|
+
}
|
|
84
|
+
return false;
|
|
85
|
+
};
|
|
86
|
+
await pWaitFor(checkDeploy, {
|
|
87
|
+
interval: DEPLOY_POLL,
|
|
88
|
+
timeout: {
|
|
89
|
+
milliseconds: timeout,
|
|
90
|
+
message: 'Timeout while waiting for deploy',
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
// deploy is guaranteed to be set when pWaitFor resolves
|
|
94
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
95
|
+
return deploy;
|
|
96
|
+
};
|
|
97
|
+
// TODO: Migrate to @netlify/api when Drop endpoints are in the OpenAPI spec.
|
|
98
|
+
export const claimDropSite = async ({ apiBase, userAgent }, siteId, dropToken, authToken) => {
|
|
99
|
+
const response = await fetch(`${apiBase}/drop/claim`, {
|
|
100
|
+
method: 'POST',
|
|
101
|
+
headers: makeHeaders(userAgent, {
|
|
102
|
+
'Content-Type': 'application/json',
|
|
103
|
+
Authorization: `Bearer ${authToken}`,
|
|
104
|
+
}),
|
|
105
|
+
body: JSON.stringify({ site: siteId, token: dropToken }),
|
|
106
|
+
});
|
|
107
|
+
if (!response.ok) {
|
|
108
|
+
const errorText = await response.text();
|
|
109
|
+
const error = new Error(`Failed to claim site: ${String(response.status)} ${errorText}`);
|
|
110
|
+
error.status = response.status;
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
export const uploadDropFiles = async (apiOptions, deployId, uploadList, token, { concurrentUpload = DEFAULT_CONCURRENT_UPLOAD, maxRetry = DEFAULT_MAX_RETRY, statusCb = (() => { }), } = {}) => {
|
|
115
|
+
const { default: pMap } = await import('p-map');
|
|
116
|
+
statusCb({
|
|
117
|
+
type: 'upload',
|
|
118
|
+
msg: `Uploading ${String(uploadList.length)} files`,
|
|
119
|
+
phase: 'start',
|
|
120
|
+
});
|
|
121
|
+
const uploadFile = async (fileObj, index) => {
|
|
122
|
+
statusCb({
|
|
123
|
+
type: 'upload',
|
|
124
|
+
msg: `(${String(index + 1)}/${String(uploadList.length)}) Uploading ${fileObj.normalizedPath}...`,
|
|
125
|
+
phase: 'progress',
|
|
126
|
+
});
|
|
127
|
+
let lastError;
|
|
128
|
+
for (let attempt = 0; attempt <= maxRetry; attempt++) {
|
|
129
|
+
try {
|
|
130
|
+
const body = fs.createReadStream(fileObj.filepath);
|
|
131
|
+
await uploadDropFile(apiOptions, deployId, fileObj.normalizedPath, body, token);
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
lastError = error;
|
|
136
|
+
if (lastError.status === 400 || lastError.status === 422) {
|
|
137
|
+
throw error;
|
|
138
|
+
}
|
|
139
|
+
if (attempt < maxRetry) {
|
|
140
|
+
await new Promise((resolve) => setTimeout(resolve, 1000 * (attempt + 1)));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (lastError) {
|
|
145
|
+
throw lastError;
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
await pMap(uploadList, uploadFile, { concurrency: concurrentUpload });
|
|
149
|
+
statusCb({
|
|
150
|
+
type: 'upload',
|
|
151
|
+
msg: `Finished uploading ${String(uploadList.length)} assets`,
|
|
152
|
+
phase: 'stop',
|
|
153
|
+
});
|
|
154
|
+
};
|
|
155
|
+
//# sourceMappingURL=drop-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drop-api.js","sourceRoot":"","sources":["../../../src/utils/deploy/drop-api.ts"],"names":[],"mappings":"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"}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "netlify-cli",
|
|
3
|
-
"version": "24.
|
|
3
|
+
"version": "24.7.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "netlify-cli",
|
|
9
|
-
"version": "24.
|
|
9
|
+
"version": "24.7.0",
|
|
10
10
|
"hasInstallScript": true,
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"@netlify/ai": "0.4.1",
|
|
15
15
|
"@netlify/api": "14.0.18",
|
|
16
16
|
"@netlify/blobs": "10.7.0",
|
|
17
|
-
"@netlify/build": "35.11.
|
|
17
|
+
"@netlify/build": "35.11.2",
|
|
18
18
|
"@netlify/build-info": "10.4.0",
|
|
19
19
|
"@netlify/config": "24.4.4",
|
|
20
20
|
"@netlify/dev": "4.16.4",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"@netlify/images": "1.3.7",
|
|
27
27
|
"@netlify/local-functions-proxy": "2.0.3",
|
|
28
28
|
"@netlify/redirect-parser": "15.0.4",
|
|
29
|
-
"@netlify/zip-it-and-ship-it": "14.5.
|
|
29
|
+
"@netlify/zip-it-and-ship-it": "14.5.3",
|
|
30
30
|
"@octokit/rest": "22.0.0",
|
|
31
31
|
"@opentelemetry/api": "1.8.0",
|
|
32
32
|
"@pnpm/tabtab": "0.5.4",
|
|
@@ -1253,9 +1253,9 @@
|
|
|
1253
1253
|
}
|
|
1254
1254
|
},
|
|
1255
1255
|
"node_modules/@netlify/build": {
|
|
1256
|
-
"version": "35.11.
|
|
1257
|
-
"resolved": "https://registry.npmjs.org/@netlify/build/-/build-35.11.
|
|
1258
|
-
"integrity": "sha512-
|
|
1256
|
+
"version": "35.11.2",
|
|
1257
|
+
"resolved": "https://registry.npmjs.org/@netlify/build/-/build-35.11.2.tgz",
|
|
1258
|
+
"integrity": "sha512-y+Dl2HqNs/5r3z8GBCGRDgjEVaKxJCSIjwQBG9QP/BMOIe18stjhDqECCtFvRvZDqVRF4YjgHZ8Q5VWQ5pFvfA==",
|
|
1259
1259
|
"license": "MIT",
|
|
1260
1260
|
"dependencies": {
|
|
1261
1261
|
"@bugsnag/js": "^8.0.0",
|
|
@@ -1263,12 +1263,12 @@
|
|
|
1263
1263
|
"@netlify/cache-utils": "^6.0.5",
|
|
1264
1264
|
"@netlify/config": "^24.4.4",
|
|
1265
1265
|
"@netlify/edge-bundler": "14.9.19",
|
|
1266
|
-
"@netlify/functions-utils": "^6.2.
|
|
1266
|
+
"@netlify/functions-utils": "^6.2.29",
|
|
1267
1267
|
"@netlify/git-utils": "^6.0.4",
|
|
1268
1268
|
"@netlify/opentelemetry-utils": "^2.0.2",
|
|
1269
1269
|
"@netlify/plugins-list": "^6.81.3",
|
|
1270
1270
|
"@netlify/run-utils": "^6.0.3",
|
|
1271
|
-
"@netlify/zip-it-and-ship-it": "14.5.
|
|
1271
|
+
"@netlify/zip-it-and-ship-it": "14.5.3",
|
|
1272
1272
|
"@sindresorhus/slugify": "^2.0.0",
|
|
1273
1273
|
"ansi-escapes": "^7.0.0",
|
|
1274
1274
|
"ansis": "^4.1.0",
|
|
@@ -2818,12 +2818,12 @@
|
|
|
2818
2818
|
}
|
|
2819
2819
|
},
|
|
2820
2820
|
"node_modules/@netlify/functions-utils": {
|
|
2821
|
-
"version": "6.2.
|
|
2822
|
-
"resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-6.2.
|
|
2823
|
-
"integrity": "sha512-
|
|
2821
|
+
"version": "6.2.29",
|
|
2822
|
+
"resolved": "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-6.2.29.tgz",
|
|
2823
|
+
"integrity": "sha512-82VfLDTEXLl6LKKMlBUIektOOaIz4Bhdn1FI6zgRhE4uPDnDd1rhJZPZ1JXf7QUaj0xUfVQAf9cALnQR0y+8Qw==",
|
|
2824
2824
|
"license": "MIT",
|
|
2825
2825
|
"dependencies": {
|
|
2826
|
-
"@netlify/zip-it-and-ship-it": "14.5.
|
|
2826
|
+
"@netlify/zip-it-and-ship-it": "14.5.3",
|
|
2827
2827
|
"cpy": "^11.0.0",
|
|
2828
2828
|
"path-exists": "^5.0.0"
|
|
2829
2829
|
},
|
|
@@ -3407,9 +3407,9 @@
|
|
|
3407
3407
|
}
|
|
3408
3408
|
},
|
|
3409
3409
|
"node_modules/@netlify/serverless-functions-api": {
|
|
3410
|
-
"version": "2.
|
|
3411
|
-
"resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-2.
|
|
3412
|
-
"integrity": "sha512-
|
|
3410
|
+
"version": "2.14.0",
|
|
3411
|
+
"resolved": "https://registry.npmjs.org/@netlify/serverless-functions-api/-/serverless-functions-api-2.14.0.tgz",
|
|
3412
|
+
"integrity": "sha512-6UwJ9Fm8NU9LPBa5zV5Gv20JgSEPOOwZ7oUbNYbB7SUnNTmIBccafgZF3+xXqSpI3hxXn4/l5xxCO+Pc2KURZA==",
|
|
3413
3413
|
"license": "MIT",
|
|
3414
3414
|
"dependencies": {
|
|
3415
3415
|
"@netlify/types": "^2.6.0"
|
|
@@ -3461,15 +3461,15 @@
|
|
|
3461
3461
|
}
|
|
3462
3462
|
},
|
|
3463
3463
|
"node_modules/@netlify/zip-it-and-ship-it": {
|
|
3464
|
-
"version": "14.5.
|
|
3465
|
-
"resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-14.5.
|
|
3466
|
-
"integrity": "sha512-
|
|
3464
|
+
"version": "14.5.3",
|
|
3465
|
+
"resolved": "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-14.5.3.tgz",
|
|
3466
|
+
"integrity": "sha512-7CCFbfEs11WZmY2ddXR85q6O6dHr8aWA/fcdw+7ftwtIaajQKWGDduZT5lI+u7i60wVymt8CEu2Et/hKOhFtzQ==",
|
|
3467
3467
|
"license": "MIT",
|
|
3468
3468
|
"dependencies": {
|
|
3469
3469
|
"@babel/parser": "^7.22.5",
|
|
3470
3470
|
"@babel/types": "^7.28.5",
|
|
3471
3471
|
"@netlify/binary-info": "^1.0.0",
|
|
3472
|
-
"@netlify/serverless-functions-api": "2.
|
|
3472
|
+
"@netlify/serverless-functions-api": "2.14.0",
|
|
3473
3473
|
"@vercel/nft": "0.29.4",
|
|
3474
3474
|
"archiver": "^7.0.0",
|
|
3475
3475
|
"common-path-prefix": "^3.0.0",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "netlify-cli",
|
|
3
3
|
"description": "Netlify command line tool",
|
|
4
|
-
"version": "24.
|
|
4
|
+
"version": "24.7.0",
|
|
5
5
|
"author": "Netlify Inc.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"engines": {
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"@netlify/ai": "0.4.1",
|
|
62
62
|
"@netlify/api": "14.0.18",
|
|
63
63
|
"@netlify/blobs": "10.7.0",
|
|
64
|
-
"@netlify/build": "35.11.
|
|
64
|
+
"@netlify/build": "35.11.2",
|
|
65
65
|
"@netlify/build-info": "10.4.0",
|
|
66
66
|
"@netlify/config": "24.4.4",
|
|
67
67
|
"@netlify/dev": "4.16.4",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"@netlify/images": "1.3.7",
|
|
74
74
|
"@netlify/local-functions-proxy": "2.0.3",
|
|
75
75
|
"@netlify/redirect-parser": "15.0.4",
|
|
76
|
-
"@netlify/zip-it-and-ship-it": "14.5.
|
|
76
|
+
"@netlify/zip-it-and-ship-it": "14.5.3",
|
|
77
77
|
"@octokit/rest": "22.0.0",
|
|
78
78
|
"@opentelemetry/api": "1.8.0",
|
|
79
79
|
"@pnpm/tabtab": "0.5.4",
|