@git.zone/cli 6.9.0 → 6.11.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.
Files changed (29) hide show
  1. package/dist_ts/00_commitinfo_data.js +2 -2
  2. package/dist_ts/helpers.workflow.d.ts +23 -1
  3. package/dist_ts/helpers.workflow.js +93 -3
  4. package/dist_ts/mod_config/index.js +49 -7
  5. package/dist_ts/mod_release/classes.releasejournal.d.ts +20 -1
  6. package/dist_ts/mod_release/classes.releasejournal.js +191 -9
  7. package/dist_ts/mod_release/helpers.giteaassets.d.ts +36 -0
  8. package/dist_ts/mod_release/helpers.giteaassets.js +661 -0
  9. package/dist_ts/mod_release/helpers.npmartifact.d.ts +1 -3
  10. package/dist_ts/mod_release/helpers.npmartifact.js +88 -66
  11. package/dist_ts/mod_release/helpers.releasepublication.d.ts +2 -0
  12. package/dist_ts/mod_release/helpers.releasepublication.js +147 -6
  13. package/dist_ts/mod_release/index.js +86 -11
  14. package/dist_ts/mod_release/interfaces.giteaassets.d.ts +50 -0
  15. package/dist_ts/mod_release/interfaces.giteaassets.js +2 -0
  16. package/dist_ts/mod_tools/classes.packagemanager.d.ts +2 -0
  17. package/dist_ts/mod_tools/classes.packagemanager.js +3 -3
  18. package/package.json +3 -3
  19. package/readme.md +94 -5
  20. package/ts/00_commitinfo_data.ts +1 -1
  21. package/ts/helpers.workflow.ts +154 -3
  22. package/ts/mod_config/index.ts +61 -6
  23. package/ts/mod_release/classes.releasejournal.ts +298 -14
  24. package/ts/mod_release/helpers.giteaassets.ts +932 -0
  25. package/ts/mod_release/helpers.npmartifact.ts +156 -77
  26. package/ts/mod_release/helpers.releasepublication.ts +224 -4
  27. package/ts/mod_release/index.ts +111 -8
  28. package/ts/mod_release/interfaces.giteaassets.ts +67 -0
  29. package/ts/mod_tools/classes.packagemanager.ts +2 -2
@@ -1,9 +1,8 @@
1
1
  import * as plugins from "./mod.plugins.js";
2
2
  import { type IReleaseArtifact } from "./classes.releasejournal.js";
3
- declare const supportedPnpmVersions: readonly ["11.25.0", "12.1.0", "12.2.1", "12.3.0", "12.3.4"];
4
3
  export declare function assertNpmPackageName(value: unknown): asserts value is string;
5
4
  export interface IPnpmReleaseCapability {
6
- readonly version: (typeof supportedPnpmVersions)[number];
5
+ readonly version: string;
7
6
  }
8
7
  export declare const buildQualifiedPnpmArgs: (capabilityArg: IPnpmReleaseCapability | undefined, argsArg: readonly string[]) => string[];
9
8
  export type TNpmArtifactProbeStatus = "absent" | "exact" | "conflict" | "inconclusive";
@@ -35,4 +34,3 @@ export declare const publishNpmArtifact: (smartshellArg: plugins.smartshell.Smar
35
34
  export declare const assertNpmVersionAbsent: (registryArg: string, packageNameArg: string, versionArg: string, optionsArg?: INpmArtifactProbeOptions) => Promise<void>;
36
35
  export declare const probeAnonymousNpmArtifact: (registryArg: string, artifactArg: IReleaseArtifact, tagArg?: string, optionsArg?: INpmArtifactProbeOptions) => Promise<INpmArtifactProbeResult>;
37
36
  export declare const waitForAnonymousNpmArtifact: (registryArg: string, artifactArg: IReleaseArtifact, tagArg?: string, optionsArg?: INpmArtifactProbeOptions) => Promise<INpmArtifactProbeResult>;
38
- export {};
@@ -1,15 +1,11 @@
1
1
  import * as plugins from "./mod.plugins.js";
2
2
  import { releaseArtifactFileName, } from "./classes.releasejournal.js";
3
3
  import { assertCredentialFreeGitPushDestination } from "./helpers.releasebranch.js";
4
- const supportedPnpmVersions = [
5
- "11.25.0",
6
- "12.1.0",
7
- "12.2.1",
8
- "12.3.0",
9
- "12.3.4",
10
- ];
11
- const pnpmHelpRequirements = {
12
- "11.25.0": {
4
+ import { getDefaultMinimumReleaseAgeMinutes, packageSelectorMatches, } from "../mod_tools/classes.packagemanager.js";
5
+ const stablePnpmVersion = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;
6
+ // Qualify the command contract, independently of the executable's version.
7
+ const pnpmHelpRequirements = [
8
+ {
13
9
  pack: ["--out <path>", "--json"],
14
10
  publish: [
15
11
  "publish [<tarball>|<dir>]",
@@ -20,46 +16,7 @@ const pnpmHelpRequirements = {
20
16
  "--access <public|restricted>",
21
17
  ],
22
18
  },
23
- "12.1.0": {
24
- pack: ["Usage: pnpm pack [OPTIONS]", "--out <OUT>", "--json"],
25
- publish: [
26
- "Usage: pnpm publish [OPTIONS] [PACKAGE]",
27
- "Tarball or directory to publish",
28
- "--no-git-checks",
29
- "--ignore-scripts",
30
- "--json",
31
- "--tag <TAG>",
32
- "--access <ACCESS>",
33
- "[possible values: public, restricted]",
34
- ],
35
- },
36
- "12.2.1": {
37
- pack: ["Usage: pnpm pack [OPTIONS]", "--out <OUT>", "--json"],
38
- publish: [
39
- "Usage: pnpm publish [OPTIONS] [PACKAGE]",
40
- "Tarball or directory to publish",
41
- "--no-git-checks",
42
- "--ignore-scripts",
43
- "--json",
44
- "--tag <TAG>",
45
- "--access <ACCESS>",
46
- "[possible values: public, restricted]",
47
- ],
48
- },
49
- "12.3.0": {
50
- pack: ["Usage: pnpm pack [OPTIONS]", "--out <OUT>", "--json"],
51
- publish: [
52
- "Usage: pnpm publish [OPTIONS] [PACKAGE]",
53
- "Tarball or directory to publish",
54
- "--no-git-checks",
55
- "--ignore-scripts",
56
- "--json",
57
- "--tag <TAG>",
58
- "--access <ACCESS>",
59
- "[possible values: public, restricted]",
60
- ],
61
- },
62
- "12.3.4": {
19
+ {
63
20
  pack: ["Usage: pnpm pack [OPTIONS]", "--out <OUT>", "--json"],
64
21
  publish: [
65
22
  "Usage: pnpm publish [OPTIONS] [PACKAGE]",
@@ -72,7 +29,7 @@ const pnpmHelpRequirements = {
72
29
  "[possible values: public, restricted]",
73
30
  ],
74
31
  },
75
- };
32
+ ];
76
33
  const maximumMetadataResponseBytes = 8 * 1024 * 1024;
77
34
  const capabilityCommandTimeoutMs = 30_000;
78
35
  const packCommandTimeoutMs = 10 * 60_000;
@@ -84,8 +41,7 @@ export function assertNpmPackageName(value) {
84
41
  }
85
42
  }
86
43
  export const buildQualifiedPnpmArgs = (capabilityArg, argsArg) => {
87
- if (!capabilityArg ||
88
- !supportedPnpmVersions.includes(capabilityArg.version)) {
44
+ if (!capabilityArg || !stablePnpmVersion.test(capabilityArg.version)) {
89
45
  throw new Error("npm release commands require a qualified pnpm invocation.");
90
46
  }
91
47
  return ["with", capabilityArg.version, ...argsArg];
@@ -113,10 +69,75 @@ const readPackageIdentity = async (cwdArg) => {
113
69
  version: packageJson.version,
114
70
  };
115
71
  };
116
- const requireHelpFragments = (outputArg, fragmentsArg, commandArg) => {
117
- const missing = fragmentsArg.filter((fragmentArg) => !outputArg.includes(fragmentArg));
118
- if (missing.length > 0) {
119
- throw new Error(`pnpm ${commandArg} is missing required exact-release capabilities: ${missing.join(", ")}.`);
72
+ const requireHelpFragments = (outputArg, commandArg) => {
73
+ const missing = pnpmHelpRequirements.map((requirements) => requirements[commandArg].filter((fragment) => !outputArg.includes(fragment)));
74
+ if (missing.every((fragments) => fragments.length > 0)) {
75
+ throw new Error(`pnpm ${commandArg} is missing required exact-release capabilities: ${missing.map((fragments) => fragments.join(", ")).join("; or ")}.`);
76
+ }
77
+ };
78
+ const readPnpmJson = async (shellArg, cwdArg, capabilityArg, argsArg, labelArg) => {
79
+ const result = await shellArg.execSpawn("pnpm", buildQualifiedPnpmArgs(capabilityArg, [...argsArg, "--json"]), {
80
+ cwd: cwdArg,
81
+ silent: true,
82
+ timeout: capabilityCommandTimeoutMs,
83
+ timeoutKillGraceMs: 5_000,
84
+ maxBuffer: maximumMetadataResponseBytes,
85
+ });
86
+ if (result.exitCode !== 0 || result.timedOut) {
87
+ throw new Error(`Unable to inspect pnpm ${labelArg}.`);
88
+ }
89
+ if (result.stdout.trim() === "undefined")
90
+ return undefined;
91
+ try {
92
+ return JSON.parse(result.stdout);
93
+ }
94
+ catch {
95
+ throw new Error(`Invalid pnpm ${labelArg} response.`);
96
+ }
97
+ };
98
+ const assertPnpmReleaseAge = async (shellArg, cwdArg, capabilityArg) => {
99
+ const configuredAge = await readPnpmJson(shellArg, cwdArg, capabilityArg, ["config", "get", "minimum-release-age"], "minimum release age");
100
+ const age = configuredAge === undefined || configuredAge === null
101
+ ? getDefaultMinimumReleaseAgeMinutes(capabilityArg.version)
102
+ : configuredAge;
103
+ if (typeof age !== "number" ||
104
+ !Number.isSafeInteger(age) ||
105
+ age < 0 ||
106
+ age > Number.MAX_SAFE_INTEGER / 60_000) {
107
+ throw new Error("pnpm minimum-release-age must be a nonnegative integer number of minutes.");
108
+ }
109
+ if (age === 0)
110
+ return;
111
+ const configuredExclusions = await readPnpmJson(shellArg, cwdArg, capabilityArg, ["config", "get", "minimum-release-age-exclude"], "release-age exclusions");
112
+ const exclusions = configuredExclusions === undefined || configuredExclusions === null
113
+ ? []
114
+ : configuredExclusions;
115
+ if (!Array.isArray(exclusions) ||
116
+ exclusions.some((value) => typeof value !== "string" || !value.trim())) {
117
+ throw new Error("pnpm minimum-release-age-exclude must be an array of package selectors.");
118
+ }
119
+ if (exclusions.some((selector) => packageSelectorMatches("pnpm", capabilityArg.version, selector)))
120
+ return;
121
+ const times = await readPnpmJson(shellArg, cwdArg, capabilityArg, ["view", `pnpm@${capabilityArg.version}`, "time"], "publication times");
122
+ if (!times || typeof times !== "object" || Array.isArray(times)) {
123
+ throw new Error("pnpm publication times must be an object.");
124
+ }
125
+ const publishedAt = Object.hasOwn(times, capabilityArg.version)
126
+ ? times[capabilityArg.version]
127
+ : undefined;
128
+ if (publishedAt === undefined) {
129
+ const ignoreMissingTime = await readPnpmJson(shellArg, cwdArg, capabilityArg, ["config", "get", "minimum-release-age-ignore-missing-time"], "missing publication time policy");
130
+ if (ignoreMissingTime === true ||
131
+ ignoreMissingTime === undefined ||
132
+ ignoreMissingTime === null)
133
+ return;
134
+ throw new Error(`The registry has no publication time for pnpm ${capabilityArg.version}; its minimum release age cannot be verified.`);
135
+ }
136
+ const timestamp = typeof publishedAt === "string" ? Date.parse(publishedAt) : NaN;
137
+ if (!Number.isFinite(timestamp))
138
+ throw new Error("Invalid pnpm publication timestamp.");
139
+ if (timestamp > Date.now() - age * 60_000) {
140
+ throw new Error(`pnpm ${capabilityArg.version} does not yet satisfy minimum-release-age (${age} minutes).`);
120
141
  }
121
142
  };
122
143
  export const assertPnpmReleaseCapability = async (smartshellArg, cwdArg) => {
@@ -127,32 +148,33 @@ export const assertPnpmReleaseCapability = async (smartshellArg, cwdArg) => {
127
148
  timeoutKillGraceMs: 5_000,
128
149
  });
129
150
  const version = versionResult.stdout.trim();
130
- const supportedVersion = supportedPnpmVersions.find((candidateArg) => candidateArg === version);
131
- if (versionResult.exitCode !== 0 || !supportedVersion) {
132
- throw new Error(`Exact release packaging requires a verified pnpm version (${supportedPnpmVersions.join(", ")}); resolved ${version || "unknown"}.`);
151
+ if (versionResult.exitCode !== 0 ||
152
+ versionResult.timedOut ||
153
+ !stablePnpmVersion.test(version)) {
154
+ throw new Error("Exact release packaging requires a canonical stable pnpm version.");
133
155
  }
134
- const requirements = pnpmHelpRequirements[supportedVersion];
135
- const capability = Object.freeze({ version: supportedVersion });
156
+ const capability = Object.freeze({ version });
157
+ await assertPnpmReleaseAge(smartshellArg, cwdArg, capability);
136
158
  const packHelp = await smartshellArg.execSpawn("pnpm", buildQualifiedPnpmArgs(capability, ["pack", "--help"]), {
137
159
  cwd: cwdArg,
138
160
  silent: true,
139
161
  timeout: capabilityCommandTimeoutMs,
140
162
  timeoutKillGraceMs: 5_000,
141
163
  });
142
- if (packHelp.exitCode !== 0) {
164
+ if (packHelp.exitCode !== 0 || packHelp.timedOut) {
143
165
  throw new Error("Unable to inspect the selected pnpm pack capabilities. Exact release commands require standalone pnpm with support; Corepack launchers are unsupported.");
144
166
  }
145
- requireHelpFragments(packHelp.combinedOutput, requirements.pack, "pack");
167
+ requireHelpFragments(packHelp.combinedOutput, "pack");
146
168
  const publishHelp = await smartshellArg.execSpawn("pnpm", buildQualifiedPnpmArgs(capability, ["publish", "--help"]), {
147
169
  cwd: cwdArg,
148
170
  silent: true,
149
171
  timeout: capabilityCommandTimeoutMs,
150
172
  timeoutKillGraceMs: 5_000,
151
173
  });
152
- if (publishHelp.exitCode !== 0) {
174
+ if (publishHelp.exitCode !== 0 || publishHelp.timedOut) {
153
175
  throw new Error("Unable to inspect pnpm publish capabilities.");
154
176
  }
155
- requireHelpFragments(publishHelp.combinedOutput, requirements.publish, "publish");
177
+ requireHelpFragments(publishHelp.combinedOutput, "publish");
156
178
  return capability;
157
179
  };
158
180
  /**
@@ -505,4 +527,4 @@ export const waitForAnonymousNpmArtifact = async (registryArg, artifactArg, tagA
505
527
  }
506
528
  return lastResult;
507
529
  };
508
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5ucG1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL21vZF9yZWxlYXNlL2hlbHBlcnMubnBtYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsdUJBQXVCLEdBRXhCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEYsTUFBTSxxQkFBcUIsR0FBRztJQUM1QixTQUFTO0lBQ1QsUUFBUTtJQUNSLFFBQVE7SUFDUixRQUFRO0lBQ1IsUUFBUTtDQUNBLENBQUM7QUFDWCxNQUFNLG9CQUFvQixHQUFHO0lBQzNCLFNBQVMsRUFBRTtRQUNULElBQUksRUFBRSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUM7UUFDaEMsT0FBTyxFQUFFO1lBQ1AsMkJBQTJCO1lBQzNCLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsUUFBUTtZQUNSLGFBQWE7WUFDYiw4QkFBOEI7U0FDL0I7S0FDRjtJQUNELFFBQVEsRUFBRTtRQUNSLElBQUksRUFBRSxDQUFDLDRCQUE0QixFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUM7UUFDN0QsT0FBTyxFQUFFO1lBQ1AseUNBQXlDO1lBQ3pDLGlDQUFpQztZQUNqQyxpQkFBaUI7WUFDakIsa0JBQWtCO1lBQ2xCLFFBQVE7WUFDUixhQUFhO1lBQ2IsbUJBQW1CO1lBQ25CLHVDQUF1QztTQUN4QztLQUNGO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFLENBQUMsNEJBQTRCLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQztRQUM3RCxPQUFPLEVBQUU7WUFDUCx5Q0FBeUM7WUFDekMsaUNBQWlDO1lBQ2pDLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsUUFBUTtZQUNSLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsdUNB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
530
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5ucG1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL21vZF9yZWxlYXNlL2hlbHBlcnMubnBtYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsdUJBQXVCLEdBRXhCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEYsT0FBTyxFQUNMLGtDQUFrQyxFQUNsQyxzQkFBc0IsR0FDdkIsTUFBTSx3Q0FBd0MsQ0FBQztBQUVoRCxNQUFNLGlCQUFpQixHQUFHLDRDQUE0QyxDQUFDO0FBQ3ZFLDJFQUEyRTtBQUMzRSxNQUFNLG9CQUFvQixHQUFHO0lBQzNCO1FBQ0UsSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQztRQUNoQyxPQUFPLEVBQUU7WUFDUCwyQkFBMkI7WUFDM0IsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixRQUFRO1lBQ1IsYUFBYTtZQUNiLDhCQUE4QjtTQUMvQjtLQUNGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDO1FBQzdELE9BQU8sRUFBRTtZQUNQLHlDQUF5QztZQUN6QyxpQ0FBaUM7WUFDakMsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixRQUFRO1lBQ1IsYUFBYTtZQUNiLG1CQUFtQjtZQUNuQix1Q0FBdUM7U0FDeEM7S0FDRjtDQUNPLENBQUM7QUFDWCxNQUFNLDRCQUE0QixHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ3JELE1BQU0sMEJBQTBCLEdBQUcsTUFBTSxDQUFDO0FBQzFDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztBQUN6QyxNQUFNLHVCQUF1QixHQUFHLENBQUMsR0FBRyxN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
@@ -1,5 +1,6 @@
1
1
  import * as plugins from "./mod.plugins.js";
2
2
  import { ReleaseJournalStore, type TReleaseJournal } from "./classes.releasejournal.js";
3
+ import { GiteaAssetsClient } from "./helpers.giteaassets.js";
3
4
  import { type IPnpmReleaseCapability, type INpmArtifactProbeOptions } from "./helpers.npmartifact.js";
4
5
  import { type ITsdockerReleaseClient } from "./helpers.tsdockerprotocol.js";
5
6
  export interface IBuildReleaseGitPushArgsOptions {
@@ -22,6 +23,7 @@ export interface IReleasePublicationOptions {
22
23
  recoveryAttemptId?: string;
23
24
  npmProbeOptions?: INpmArtifactProbeOptions;
24
25
  tsdocker?: ITsdockerReleaseClient;
26
+ giteaAssets?: Pick<GiteaAssetsClient, "preflight" | "inspectRelease" | "createRelease" | "inspectAssets" | "uploadAsset" | "verifyComplete">;
25
27
  ensurePublicationState: (expectedRemoteMainOidArg?: string) => Promise<void>;
26
28
  }
27
29
  export declare const executeReleasePublication: (optionsArg: IReleasePublicationOptions) => Promise<TReleaseJournal>;