@git.zone/cli 6.7.2 → 6.7.3
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.
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@git.zone/cli',
|
|
6
|
-
version: '6.7.
|
|
6
|
+
version: '6.7.3',
|
|
7
7
|
description: 'A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxlQUFlO0lBQ3JCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSwrTEFBK0w7Q0FDN00sQ0FBQSJ9
|
|
@@ -33,7 +33,7 @@ const readMetadata = async (registry, packageName, fetchImplementation) => {
|
|
|
33
33
|
method: "GET",
|
|
34
34
|
redirect: "error",
|
|
35
35
|
signal: AbortSignal.timeout(30_000),
|
|
36
|
-
headers: { accept: "application/json" },
|
|
36
|
+
headers: { accept: "application/json", "cache-control": "no-cache" },
|
|
37
37
|
});
|
|
38
38
|
if (!response.ok)
|
|
39
39
|
throw new Error(`Cannot verify ${packageName} on ${registry} (HTTP ${response.status}).`);
|
|
@@ -49,6 +49,7 @@ const readMetadata = async (registry, packageName, fetchImplementation) => {
|
|
|
49
49
|
}
|
|
50
50
|
return metadata;
|
|
51
51
|
};
|
|
52
|
+
const isDeprecationComplete = (metadata, message) => Object.values(metadata.versions).every((version) => version.deprecated === message);
|
|
52
53
|
/** Verify replacements everywhere before changing metadata for any old package. */
|
|
53
54
|
export const executeDeprecation = async (planArg, shell, cwd, fetchImplementation = fetch) => {
|
|
54
55
|
const plan = createDeprecationPlan(planArg);
|
|
@@ -63,6 +64,11 @@ export const executeDeprecation = async (planArg, shell, cwd, fetchImplementatio
|
|
|
63
64
|
await readMetadata(registry, plan.packageName, fetchImplementation);
|
|
64
65
|
}
|
|
65
66
|
for (const registry of plan.registries) {
|
|
67
|
+
// Registry mutations may reject a redundant request even after accepting
|
|
68
|
+
// the original one. Reconcile observable state before issuing another write.
|
|
69
|
+
const existing = await readMetadata(registry, plan.packageName, fetchImplementation);
|
|
70
|
+
if (isDeprecationComplete(existing, plan.message))
|
|
71
|
+
continue;
|
|
66
72
|
const result = await shell.execSpawn("pnpm", [
|
|
67
73
|
"deprecate",
|
|
68
74
|
`${plan.packageName}@*`,
|
|
@@ -74,14 +80,21 @@ export const executeDeprecation = async (planArg, shell, cwd, fetchImplementatio
|
|
|
74
80
|
timeout: 120_000,
|
|
75
81
|
timeoutKillGraceMs: 5_000,
|
|
76
82
|
});
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
+
let verified = false;
|
|
84
|
+
for (let attempt = 0; attempt < 5; attempt++) {
|
|
85
|
+
const metadata = await readMetadata(registry, plan.packageName, fetchImplementation);
|
|
86
|
+
if (isDeprecationComplete(metadata, plan.message)) {
|
|
87
|
+
verified = true;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
if (attempt < 4)
|
|
91
|
+
await new Promise((resolve) => setTimeout(resolve, 1_000));
|
|
92
|
+
}
|
|
93
|
+
if (!verified) {
|
|
94
|
+
if (result.exitCode !== 0)
|
|
95
|
+
throw new Error(`Deprecation failed on ${registry}.`);
|
|
83
96
|
throw new Error(`Deprecation is not yet verified for every version on ${registry}; rerunning the same deprecation is safe.`);
|
|
84
97
|
}
|
|
85
98
|
}
|
|
86
99
|
};
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5kZXByZWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL21vZF9kZXByZWNhdGUvaGVscGVycy5kZXByZWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBU2hGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQ25DLE9BQWlFLEVBQy9DLEVBQUU7SUFDcEIsTUFBTSxXQUFXLEdBQUcsb0RBQW9ELENBQUM7SUFDekUsSUFDRSxPQUFPLE9BQU8sQ0FBQyxXQUFXLEtBQUssUUFBUTtRQUN2QyxPQUFPLE9BQU8sQ0FBQyxXQUFXLEtBQUssUUFBUTtRQUN2QyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN0QyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN0QyxPQUFPLENBQUMsV0FBVyxLQUFLLE9BQU8sQ0FBQyxXQUFXO1FBRTNDLE1BQU0sSUFBSSxLQUFLLENBQ2Isb0VBQW9FLENBQ3JFLENBQUM7SUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUNyRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ25FLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsTUFBTTtRQUN0RSxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7SUFDdEUsTUFBTSxPQUFPLEdB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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@git.zone/cli",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "6.7.
|
|
4
|
+
"version": "6.7.3",
|
|
5
5
|
"description": "A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.",
|
|
6
6
|
"main": "dist_ts/index.js",
|
|
7
7
|
"typings": "dist_ts/index.d.ts",
|
package/readme.md
CHANGED
|
@@ -973,7 +973,10 @@ operation. `--message` supplies migration instructions; otherwise the message
|
|
|
973
973
|
names the replacement. Deprecation applies to every version. GitZone verifies
|
|
974
974
|
an active replacement on all registries before issuing any change, invokes
|
|
975
975
|
`pnpm deprecate` with literal arguments, and verifies the old versions' metadata
|
|
976
|
-
after each registry operation.
|
|
976
|
+
after each registry operation. Verification uses up to five fresh metadata reads,
|
|
977
|
+
one second apart, to allow registry propagation. A rerun skips any registry where
|
|
978
|
+
every version already has the exact requested message, so accepted deprecations
|
|
979
|
+
are not submitted again. `--json` prints the plan without changing it.
|
|
977
980
|
|
|
978
981
|
## Troubleshooting
|
|
979
982
|
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@git.zone/cli',
|
|
6
|
-
version: '6.7.
|
|
6
|
+
version: '6.7.3',
|
|
7
7
|
description: 'A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.'
|
|
8
8
|
}
|
|
@@ -63,7 +63,7 @@ const readMetadata = async (
|
|
|
63
63
|
method: "GET",
|
|
64
64
|
redirect: "error",
|
|
65
65
|
signal: AbortSignal.timeout(30_000),
|
|
66
|
-
headers: { accept: "application/json" },
|
|
66
|
+
headers: { accept: "application/json", "cache-control": "no-cache" },
|
|
67
67
|
},
|
|
68
68
|
);
|
|
69
69
|
if (!response.ok)
|
|
@@ -90,6 +90,14 @@ const readMetadata = async (
|
|
|
90
90
|
return metadata;
|
|
91
91
|
};
|
|
92
92
|
|
|
93
|
+
const isDeprecationComplete = (
|
|
94
|
+
metadata: IPackageMetadata,
|
|
95
|
+
message: string,
|
|
96
|
+
): boolean =>
|
|
97
|
+
Object.values(metadata.versions).every(
|
|
98
|
+
(version) => version.deprecated === message,
|
|
99
|
+
);
|
|
100
|
+
|
|
93
101
|
/** Verify replacements everywhere before changing metadata for any old package. */
|
|
94
102
|
export const executeDeprecation = async (
|
|
95
103
|
planArg: IDeprecationPlan,
|
|
@@ -116,6 +124,14 @@ export const executeDeprecation = async (
|
|
|
116
124
|
await readMetadata(registry, plan.packageName, fetchImplementation);
|
|
117
125
|
}
|
|
118
126
|
for (const registry of plan.registries) {
|
|
127
|
+
// Registry mutations may reject a redundant request even after accepting
|
|
128
|
+
// the original one. Reconcile observable state before issuing another write.
|
|
129
|
+
const existing = await readMetadata(
|
|
130
|
+
registry,
|
|
131
|
+
plan.packageName,
|
|
132
|
+
fetchImplementation,
|
|
133
|
+
);
|
|
134
|
+
if (isDeprecationComplete(existing, plan.message)) continue;
|
|
119
135
|
const result = await shell.execSpawn(
|
|
120
136
|
"pnpm",
|
|
121
137
|
[
|
|
@@ -131,18 +147,23 @@ export const executeDeprecation = async (
|
|
|
131
147
|
timeoutKillGraceMs: 5_000,
|
|
132
148
|
},
|
|
133
149
|
);
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
150
|
+
let verified = false;
|
|
151
|
+
for (let attempt = 0; attempt < 5; attempt++) {
|
|
152
|
+
const metadata = await readMetadata(
|
|
153
|
+
registry,
|
|
154
|
+
plan.packageName,
|
|
155
|
+
fetchImplementation,
|
|
156
|
+
);
|
|
157
|
+
if (isDeprecationComplete(metadata, plan.message)) {
|
|
158
|
+
verified = true;
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
if (attempt < 4)
|
|
162
|
+
await new Promise<void>((resolve) => setTimeout(resolve, 1_000));
|
|
163
|
+
}
|
|
164
|
+
if (!verified) {
|
|
165
|
+
if (result.exitCode !== 0)
|
|
166
|
+
throw new Error(`Deprecation failed on ${registry}.`);
|
|
146
167
|
throw new Error(
|
|
147
168
|
`Deprecation is not yet verified for every version on ${registry}; rerunning the same deprecation is safe.`,
|
|
148
169
|
);
|