@git.zone/cli 6.7.3 → 6.8.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.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@git.zone/cli',
6
- version: '6.7.3',
6
+ version: '6.8.0',
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
@@ -1,6 +1,7 @@
1
1
  import * as plugins from "./mod.plugins.js";
2
2
  import { type IReleaseArtifact } from "./classes.releasejournal.js";
3
3
  declare const supportedPnpmVersions: readonly ["11.25.0", "12.1.0", "12.2.1", "12.3.4"];
4
+ export declare function assertNpmPackageName(value: unknown): asserts value is string;
4
5
  export interface IPnpmReleaseCapability {
5
6
  version: (typeof supportedPnpmVersions)[number];
6
7
  }
@@ -29,6 +30,8 @@ export declare const publishNpmArtifact: (smartshellArg: plugins.smartshell.Smar
29
30
  exitCode: number;
30
31
  output: string;
31
32
  }>;
33
+ /** Recovery without an original artifact must never adopt a published version. */
34
+ export declare const assertNpmVersionAbsent: (registryArg: string, packageNameArg: string, versionArg: string, optionsArg?: INpmArtifactProbeOptions) => Promise<void>;
32
35
  export declare const probeAnonymousNpmArtifact: (registryArg: string, artifactArg: IReleaseArtifact, tagArg?: string, optionsArg?: INpmArtifactProbeOptions) => Promise<INpmArtifactProbeResult>;
33
36
  export declare const waitForAnonymousNpmArtifact: (registryArg: string, artifactArg: IReleaseArtifact, tagArg?: string, optionsArg?: INpmArtifactProbeOptions) => Promise<INpmArtifactProbeResult>;
34
37
  export {};
@@ -64,6 +64,11 @@ const capabilityCommandTimeoutMs = 30_000;
64
64
  const packCommandTimeoutMs = 10 * 60_000;
65
65
  const publishCommandTimeoutMs = 5 * 60_000;
66
66
  const packageNameRegex = /^(?:@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*|[a-z0-9][a-z0-9._-]*)$/;
67
+ export function assertNpmPackageName(value) {
68
+ if (typeof value !== "string" || !packageNameRegex.test(value)) {
69
+ throw new Error("Invalid release package name.");
70
+ }
71
+ }
67
72
  const readPackageIdentity = async (cwdArg) => {
68
73
  let packageJson;
69
74
  try {
@@ -339,6 +344,16 @@ const cancelResponseBody = (responseArg) => {
339
344
  void responseArg.body.cancel().catch(() => { });
340
345
  }
341
346
  };
347
+ /** Recovery without an original artifact must never adopt a published version. */
348
+ export const assertNpmVersionAbsent = async (registryArg, packageNameArg, versionArg, optionsArg = {}) => {
349
+ const registry = normalizeNpmRegistryUrl(registryArg);
350
+ assertNpmPackageName(packageNameArg);
351
+ const response = await fetchWithoutRedirects(new URL(`${registry}/${encodeURIComponent(packageNameArg)}/${encodeURIComponent(versionArg)}`), "application/json", optionsArg);
352
+ cancelResponseBody(response);
353
+ if (response.status !== 404) {
354
+ throw new Error(`Cannot prove ${packageNameArg}@${versionArg} is unpublished at ${registry} (HTTP ${response.status}).`);
355
+ }
356
+ };
342
357
  const readBoundedResponse = async (responseArg, maximumSizeArg, contextArg) => {
343
358
  const contentLength = responseArg.headers.get("content-length");
344
359
  if (contentLength &&
@@ -463,4 +478,4 @@ export const waitForAnonymousNpmArtifact = async (registryArg, artifactArg, tagA
463
478
  }
464
479
  return lastResult;
465
480
  };
466
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5ucG1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL21vZF9yZWxlYXNlL2hlbHBlcnMubnBtYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsdUJBQXVCLEdBRXhCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEYsTUFBTSxxQkFBcUIsR0FBRztJQUM1QixTQUFTO0lBQ1QsUUFBUTtJQUNSLFFBQVE7SUFDUixRQUFRO0NBQ0EsQ0FBQztBQUNYLE1BQU0sb0JBQW9CLEdBQUc7SUFDM0IsU0FBUyxFQUFFO1FBQ1QsSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQztRQUNoQyxPQUFPLEVBQUU7WUFDUCwyQkFBMkI7WUFDM0IsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixRQUFRO1lBQ1IsYUFBYTtZQUNiLDhCQUE4QjtTQUMvQjtLQUNGO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFLENBQUMsNEJBQTRCLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQztRQUM3RCxPQUFPLEVBQUU7WUFDUCx5Q0FBeUM7WUFDekMsaUNBQWlDO1lBQ2pDLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsUUFBUTtZQUNSLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsdUNBQXVDO1NBQ3hDO0tBQ0Y7SUFDRCxRQUFRLEVBQUU7UUFDUixJQUFJLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDO1FBQzdELE9BQU8sRUFBRTtZQUNQLHlDQUF5QztZQUN6QyxpQ0FBaUM7WUFDakMsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixRQUFRO1lBQ1IsYUFBYTtZQUNiLG1CQUFtQjtZQUNuQix1Q0FBdUM7U0FDeEM7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
481
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5ucG1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL21vZF9yZWxlYXNlL2hlbHBlcnMubnBtYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsdUJBQXVCLEdBRXhCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEYsTUFBTSxxQkFBcUIsR0FBRztJQUM1QixTQUFTO0lBQ1QsUUFBUTtJQUNSLFFBQVE7SUFDUixRQUFRO0NBQ0EsQ0FBQztBQUNYLE1BQU0sb0JBQW9CLEdBQUc7SUFDM0IsU0FBUyxFQUFFO1FBQ1QsSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQztRQUNoQyxPQUFPLEVBQUU7WUFDUCwyQkFBMkI7WUFDM0IsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixRQUFRO1lBQ1IsYUFBYTtZQUNiLDhCQUE4QjtTQUMvQjtLQUNGO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFLENBQUMsNEJBQTRCLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQztRQUM3RCxPQUFPLEVBQUU7WUFDUCx5Q0FBeUM7WUFDekMsaUNBQWlDO1lBQ2pDLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsUUFBUTtZQUNSLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsdUNBQXVDO1NBQ3hDO0tBQ0Y7SUFDRCxRQUFRLEVBQUU7UUFDUixJQUFJLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDO1FBQzdELE9BQU8sRUFBRTtZQUNQLHlDQUF5QztZQUN6QyxpQ0FBaUM7WUFDakMsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixRQUFRO1lBQ1IsYUFBYTtZQUNiLG1CQUFtQjtZQUNuQix1Q0FBdUM7U0FDeEM7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
@@ -0,0 +1,21 @@
1
+ import * as plugins from "./mod.plugins.js";
2
+ import type { IResolvedReleaseWorkflow } from "../helpers.workflow.js";
3
+ import { ReleaseJournalStore } from "./classes.releasejournal.js";
4
+ import { type IReleaseBranchContext } from "./helpers.releasebranch.js";
5
+ interface IRecoveryRefs {
6
+ mainOid: string;
7
+ tagOid: string;
8
+ }
9
+ export interface IReleasePreparationRecovery {
10
+ smartshell: plugins.smartshell.Smartshell;
11
+ workflow: IResolvedReleaseWorkflow;
12
+ branch: IReleaseBranchContext;
13
+ refs: IRecoveryRefs;
14
+ version: string;
15
+ store: ReleaseJournalStore;
16
+ }
17
+ export declare const assertPackageReleaseRecovery: (options: IReleasePreparationRecovery) => Promise<string>;
18
+ export declare const assertRecoveryUnpublished: (options: IReleasePreparationRecovery, packageName: string) => Promise<void>;
19
+ /** Build and seal one unpublished, already tagged package without changing refs. */
20
+ export declare const withReleasePreparationRecovery: <T>(options: IReleasePreparationRecovery, ensureState: () => Promise<void>, prepare: (checkout: string, ensureCheckout: () => Promise<void>) => Promise<T>) => Promise<T>;
21
+ export {};
@@ -0,0 +1,196 @@
1
+ import * as plugins from "./mod.plugins.js";
2
+ import { readPendingChangelog } from "../helpers.changelog.js";
3
+ import { InterProcessLock } from "../mod_services/classes.interprocesslock.js";
4
+ import { ReleaseJournalStore } from "./classes.releasejournal.js";
5
+ import { releaseGitEnv, } from "./helpers.releasebranch.js";
6
+ import { assertNpmVersionAbsent, assertNpmPackageName, hashReleaseDestination, } from "./helpers.npmartifact.js";
7
+ import { canonicalReleaseJson } from "./helpers.tsdockerprotocol.js";
8
+ const git = async (options, args, cwd = options.branch.sourceCwd) => {
9
+ const result = await options.smartshell.execSpawn("git", args, {
10
+ cwd,
11
+ env: releaseGitEnv,
12
+ silent: true,
13
+ timeout: 60_000,
14
+ timeoutKillGraceMs: 5_000,
15
+ });
16
+ if (result.exitCode !== 0)
17
+ throw new Error(`Release recovery Git validation failed: ${args[0]}.`);
18
+ return result.stdout.trim();
19
+ };
20
+ export const assertPackageReleaseRecovery = async (options) => {
21
+ const { workflow, branch, version } = options;
22
+ if (workflow.targets.length !== 2 ||
23
+ !workflow.targets.includes("git") ||
24
+ !workflow.targets.includes("npm") ||
25
+ workflow.npmPackageSource !== "root" ||
26
+ !workflow.pushBranch ||
27
+ !workflow.pushTags ||
28
+ branch.sourceBranch !== "main" ||
29
+ !branch.pushUrl ||
30
+ !branch.remoteMainOid) {
31
+ throw new Error("Release recover requires configured Git and root npm targets from clean main.");
32
+ }
33
+ const manifest = JSON.parse(await plugins.fs.readFile(plugins.path.join(branch.sourceCwd, "package.json"), "utf8"));
34
+ if (manifest.version !== version || typeof manifest.name !== "string") {
35
+ throw new Error("Recovery package identity does not match the existing release version.");
36
+ }
37
+ assertNpmPackageName(manifest.name);
38
+ const pending = await readPendingChangelog(plugins.path.join(branch.sourceCwd, workflow.changelogFile), workflow.changelogPendingSection);
39
+ const changelog = await plugins.fs.readFile(plugins.path.join(branch.sourceCwd, workflow.changelogFile), "utf8");
40
+ const headings = changelog
41
+ .split(/\r?\n/)
42
+ .filter((line) => /^##\s/.test(line) && line !== `## ${workflow.changelogPendingSection}`);
43
+ if (!pending.isEmpty ||
44
+ !new RegExp(`^## \\d{4}-\\d{2}-\\d{2} - ${version.replace(/\./g, "\\.")}\\s*$`).test(headings[0] ?? "")) {
45
+ throw new Error("Recovery requires the completed changelog section for this version and no Pending changes.");
46
+ }
47
+ if ((await git(options, [
48
+ "show",
49
+ "-s",
50
+ "--format=%s",
51
+ options.refs.mainOid,
52
+ ])) !== `v${version}` ||
53
+ (await git(options, [
54
+ "rev-list",
55
+ "--parents",
56
+ "-n",
57
+ "1",
58
+ options.refs.mainOid,
59
+ ])).split(" ").length !== 2) {
60
+ throw new Error("Recovery requires an existing non-merge release commit.");
61
+ }
62
+ if (await git(options, [
63
+ "diff",
64
+ `${options.refs.mainOid}^`,
65
+ options.refs.mainOid,
66
+ "--",
67
+ ".smartconfig.json",
68
+ ])) {
69
+ throw new Error("Release configuration changed inside the release metadata commit.");
70
+ }
71
+ return manifest.name;
72
+ };
73
+ export const assertRecoveryUnpublished = async (options, packageName) => {
74
+ const output = await git(options, [
75
+ "ls-remote",
76
+ options.branch.pushUrl,
77
+ `refs/tags/v${options.version}`,
78
+ `refs/tags/v${options.version}^{}`,
79
+ ]);
80
+ if (output)
81
+ throw new Error("Recovery cannot adopt an existing remote release tag. Use its original journal.");
82
+ for (const registry of options.workflow.npmRegistries)
83
+ await assertNpmVersionAbsent(registry, packageName, options.version);
84
+ };
85
+ const preparationBinding = (options) => ({
86
+ kind: "gitzone-package-release-preparation",
87
+ schemaVersion: 1,
88
+ version: options.version,
89
+ ...options.refs,
90
+ destinationHash: hashReleaseDestination(options.branch.pushUrl),
91
+ expectedRemoteMainOid: options.branch.remoteMainOid,
92
+ // Capture resolved configuration, including build/test commands, so retries
93
+ // cannot silently prepare a different release.
94
+ workflow: JSON.parse(JSON.stringify({ ...options.workflow, confirmation: "auto" })),
95
+ });
96
+ const bindPreparation = async (path, expected) => {
97
+ try {
98
+ const stat = await plugins.fs.lstat(path);
99
+ if (!stat.isFile() ||
100
+ stat.isSymbolicLink() ||
101
+ stat.size > 128 * 1024 ||
102
+ (await plugins.fs.readFile(path, "utf8")) !== expected) {
103
+ throw new Error("Release recovery identity or configuration differs from its original preparation.");
104
+ }
105
+ }
106
+ catch (error) {
107
+ if (error.code !== "ENOENT")
108
+ throw error;
109
+ const handle = await plugins.fs.open(path, "wx", 0o600);
110
+ try {
111
+ await handle.writeFile(expected, "utf8");
112
+ await handle.sync();
113
+ }
114
+ finally {
115
+ await handle.close();
116
+ }
117
+ const directory = await plugins.fs.open(plugins.path.dirname(path), "r");
118
+ try {
119
+ await directory.sync();
120
+ }
121
+ finally {
122
+ await directory.close();
123
+ }
124
+ }
125
+ };
126
+ /** Build and seal one unpublished, already tagged package without changing refs. */
127
+ export const withReleasePreparationRecovery = async (options, ensureState, prepare) => {
128
+ if (!options.branch.planAncestryVerified) {
129
+ throw new Error("Release recovery requires verified remote ancestry before preparation.");
130
+ }
131
+ const directory = options.store.getReleaseDirectory(options.version);
132
+ return new InterProcessLock({
133
+ lockPath: `${directory}.prepare.lock`,
134
+ description: `Release v${options.version} preparation`,
135
+ }).runExclusive(async () => {
136
+ await ensureState();
137
+ try {
138
+ await plugins.fs.lstat(directory);
139
+ throw new Error("Release journal already exists. Use release resume; do not rebuild its artifact.");
140
+ }
141
+ catch (error) {
142
+ if (error.code !== "ENOENT")
143
+ throw error;
144
+ }
145
+ await bindPreparation(`${directory}.preparation.json`, `${canonicalReleaseJson(preparationBinding(options))}\n`);
146
+ const root = await plugins.fs.mkdtemp(plugins.path.join(plugins.os.tmpdir(), "gitzone-release-prepare-"));
147
+ const checkout = plugins.path.join(root, "source");
148
+ let added = false;
149
+ try {
150
+ await git(options, [
151
+ "worktree",
152
+ "add",
153
+ "--detach",
154
+ checkout,
155
+ options.refs.mainOid,
156
+ ]);
157
+ added = true;
158
+ const install = await options.smartshell.execSpawn("pnpm", ["install", "--frozen-lockfile"], {
159
+ cwd: checkout,
160
+ timeout: 10 * 60_000,
161
+ timeoutKillGraceMs: 5_000,
162
+ });
163
+ if (install.exitCode !== 0)
164
+ throw new Error("Release recovery dependency installation failed.");
165
+ if (options.workflow.runTests)
166
+ await run(options, checkout, options.workflow.testCommand, "tests");
167
+ if (options.workflow.runBuild)
168
+ await run(options, checkout, options.workflow.buildCommand, "build");
169
+ await assertCheckout(options, checkout);
170
+ await ensureState();
171
+ const result = await prepare(checkout, () => assertCheckout(options, checkout));
172
+ await assertCheckout(options, checkout);
173
+ return result;
174
+ }
175
+ finally {
176
+ // This path is a uniquely owned disposable checkout, never the user's
177
+ // source tree or runtime data. Keep registration evidence if cleanup fails.
178
+ if (added)
179
+ await git(options, ["worktree", "remove", "--force", checkout]);
180
+ await plugins.fs.rm(root, { recursive: true, force: true });
181
+ }
182
+ });
183
+ };
184
+ const run = async (options, cwd, command, phase) => {
185
+ const result = await options.smartshell.exec(command, { cwd });
186
+ if (result.exitCode !== 0)
187
+ throw new Error(`Release recovery ${phase} failed.`);
188
+ };
189
+ const assertCheckout = async (options, checkout) => {
190
+ if ((await git(options, ["rev-parse", "HEAD"], checkout)) !==
191
+ options.refs.mainOid ||
192
+ (await git(options, ["status", "--porcelain", "--untracked-files=all"], checkout))) {
193
+ throw new Error("Release recovery build changed its exact tracked source.");
194
+ }
195
+ };
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5yZWxlYXNlcHJlcGFyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90cy9tb2RfcmVsZWFzZS9oZWxwZXJzLnJlbGVhc2VwcmVwYXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFDTCxhQUFhLEdBRWQsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUNwQixzQkFBc0IsR0FDdkIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQWdCckUsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUNmLE9BQW9DLEVBQ3BDLElBQWMsRUFDZCxHQUFHLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQzlCLEVBQUU7SUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUU7UUFDN0QsR0FBRztRQUNILEdBQUcsRUFBRSxhQUFhO1FBQ2xCLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLE1BQU07UUFDZixrQkFBa0IsRUFBRSxLQUFLO0tBQzFCLENBQUMsQ0FBQztJQUNILElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxDQUFDO1FBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekUsT0FBTyxNQUFNLENBQUMs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
@@ -9,6 +9,8 @@ interface ICreateReleaseJournalOptions {
9
9
  smartshell: plugins.smartshell.Smartshell;
10
10
  workflow: IResolvedReleaseWorkflow;
11
11
  releaseCwd: string;
12
+ /** Exact detached checkout used only while recovering pre-journal packaging. */
13
+ npmSourceCwd?: string;
12
14
  releasePushUrl?: string;
13
15
  expectedRemoteMainOid?: string;
14
16
  version: string;