@smoothbricks/cli 0.10.2 → 0.10.4
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 +31 -23
- package/dist/bun/preload.d.ts +13 -0
- package/dist/bun/preload.d.ts.map +1 -0
- package/dist/bun/preload.js +12 -0
- package/dist/cli.js +36 -4
- package/dist/generate/index.d.ts.map +1 -1
- package/dist/generate/index.js +0 -6
- package/dist/github-ci/index.d.ts +17 -2
- package/dist/github-ci/index.d.ts.map +1 -1
- package/dist/github-ci/index.js +192 -26
- package/dist/github-ci/outputs.d.ts +22 -0
- package/dist/github-ci/outputs.d.ts.map +1 -0
- package/dist/github-ci/outputs.js +648 -0
- package/dist/lib/cli-package.js +2 -2
- package/dist/lib/json.d.ts +118 -11
- package/dist/lib/json.d.ts.map +1 -1
- package/dist/lib/json.js +317 -29
- package/dist/lib/workspace.d.ts +7 -14
- package/dist/lib/workspace.d.ts.map +1 -1
- package/dist/lib/workspace.js +76 -82
- package/dist/monorepo/ci-workflow.d.ts +2 -0
- package/dist/monorepo/ci-workflow.d.ts.map +1 -1
- package/dist/monorepo/ci-workflow.js +28 -2
- package/dist/monorepo/git-config.js +2 -2
- package/dist/monorepo/index.d.ts +3 -1
- package/dist/monorepo/index.d.ts.map +1 -1
- package/dist/monorepo/index.js +6 -2
- package/dist/monorepo/lockfile.d.ts +13 -1
- package/dist/monorepo/lockfile.d.ts.map +1 -1
- package/dist/monorepo/lockfile.js +33 -21
- package/dist/monorepo/managed-files.d.ts +12 -0
- package/dist/monorepo/managed-files.d.ts.map +1 -1
- package/dist/monorepo/managed-files.js +86 -28
- package/dist/monorepo/package-policy.d.ts.map +1 -1
- package/dist/monorepo/package-policy.js +78 -45
- package/dist/monorepo/packed-manifest.d.ts +5 -2
- package/dist/monorepo/packed-manifest.d.ts.map +1 -1
- package/dist/monorepo/packed-manifest.js +16 -47
- package/dist/monorepo/packed-package.d.ts.map +1 -1
- package/dist/monorepo/packed-package.js +28 -16
- package/dist/monorepo/packs/index.d.ts +3 -0
- package/dist/monorepo/packs/index.d.ts.map +1 -1
- package/dist/monorepo/packs/index.js +18 -6
- package/dist/monorepo/publish-workflow.d.ts +1 -0
- package/dist/monorepo/publish-workflow.d.ts.map +1 -1
- package/dist/monorepo/publish-workflow.js +242 -3
- package/dist/monorepo/runtime.d.ts +15 -0
- package/dist/monorepo/runtime.d.ts.map +1 -1
- package/dist/monorepo/runtime.js +66 -12
- package/dist/monorepo/tool-validation.d.ts.map +1 -1
- package/dist/monorepo/tool-validation.js +32 -23
- package/dist/monorepo/wrangler.d.ts.map +1 -1
- package/dist/monorepo/wrangler.js +13 -13
- package/dist/nx/index.d.ts +12 -4
- package/dist/nx/index.d.ts.map +1 -1
- package/dist/nx/index.js +86 -19
- package/dist/pr/index.d.ts.map +1 -1
- package/dist/pr/index.js +28 -32
- package/dist/release/candidates.d.ts +3 -2
- package/dist/release/candidates.d.ts.map +1 -1
- package/dist/release/candidates.js +4 -5
- package/dist/release/github-release.d.ts +3 -0
- package/dist/release/github-release.d.ts.map +1 -1
- package/dist/release/github-release.js +11 -0
- package/dist/release/index.d.ts +20 -1
- package/dist/release/index.d.ts.map +1 -1
- package/dist/release/index.js +221 -89
- package/dist/release/orchestration.d.ts +8 -1
- package/dist/release/orchestration.d.ts.map +1 -1
- package/dist/release/orchestration.js +38 -1
- package/dist/wrangler/prepare-env.d.ts +0 -1
- package/dist/wrangler/prepare-env.d.ts.map +1 -1
- package/dist/wrangler/prepare-env.js +100 -51
- package/dist/wrangler/scaffold.d.ts.map +1 -1
- package/dist/wrangler/scaffold.js +12 -12
- package/managed/raw/git-format-staged.yml +19 -1
- package/managed/raw/tooling/direnv/github-actions-bootstrap.sh +6 -0
- package/managed/raw/tooling/direnv/merge-newer-pins.sh +3 -3
- package/managed/raw/tooling/direnv/setup-environment.ts +187 -19
- package/managed/raw/tooling/git-hooks/pre-commit.sh +0 -6
- package/managed/templates/github/actions/cache-nix-devenv/action.yml +12 -10
- package/managed/templates/github/actions/cache-node-modules/action.yml +6 -2
- package/managed/templates/github/actions/cache-nx/action.yml +2 -2
- package/managed/templates/github/actions/cache-ttsc-plugins/action.yml +19 -0
- package/managed/templates/github/actions/save-nix-devenv/action.yml +11 -3
- package/managed/templates/github/actions/setup-devenv/action.yml +5 -0
- package/managed/templates/github/workflows/managed-files.yml +80 -0
- package/package.json +18 -4
- package/src/bun/preload.ts +12 -0
- package/src/cli.ts +49 -11
- package/src/generate/index.ts +0 -6
- package/src/github-ci/index.test.ts +486 -0
- package/src/github-ci/index.ts +220 -30
- package/src/github-ci/outputs.ts +505 -0
- package/src/lib/cli-package.ts +2 -2
- package/src/lib/json.ts +291 -32
- package/src/lib/workspace.ts +88 -100
- package/src/monorepo/__tests__/ci-workflow.test.ts +14 -3
- package/src/monorepo/__tests__/publish-workflow.test.ts +222 -1
- package/src/monorepo/ci-workflow.ts +28 -2
- package/src/monorepo/git-config.ts +2 -2
- package/src/monorepo/index.ts +6 -2
- package/src/monorepo/lockfile.test.ts +35 -36
- package/src/monorepo/lockfile.ts +48 -24
- package/src/monorepo/managed-files.test.ts +63 -0
- package/src/monorepo/managed-files.ts +94 -34
- package/src/monorepo/package-policy.test.ts +70 -51
- package/src/monorepo/package-policy.ts +104 -59
- package/src/monorepo/packed-manifest.ts +18 -52
- package/src/monorepo/packed-package.ts +43 -22
- package/src/monorepo/packs/index.test.ts +18 -1
- package/src/monorepo/packs/index.ts +20 -7
- package/src/monorepo/publish-workflow.ts +482 -3
- package/src/monorepo/runtime.test.ts +42 -3
- package/src/monorepo/runtime.ts +90 -12
- package/src/monorepo/tool-validation.ts +35 -25
- package/src/monorepo/wrangler.test.ts +11 -15
- package/src/monorepo/wrangler.ts +15 -15
- package/src/nx/index.test.ts +43 -0
- package/src/nx/index.ts +110 -23
- package/src/pr/index.ts +42 -36
- package/src/release/__tests__/candidates.test.ts +5 -4
- package/src/release/__tests__/fixture-repo.test.ts +18 -16
- package/src/release/__tests__/github-release.test.ts +11 -0
- package/src/release/__tests__/orchestration.test.ts +57 -2
- package/src/release/__tests__/trust-publisher.test.ts +98 -2
- package/src/release/candidates.ts +10 -17
- package/src/release/github-release.ts +12 -0
- package/src/release/index.ts +321 -112
- package/src/release/orchestration.ts +55 -3
- package/src/wrangler/prepare-env.ts +75 -54
- package/src/wrangler/scaffold.test.ts +9 -12
- package/src/wrangler/scaffold.ts +13 -13
package/dist/pr/index.js
CHANGED
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
import { mkdirSync, rmSync, writeFileSync } from 'node:fs';
|
|
2
2
|
import { dirname, join } from 'node:path';
|
|
3
|
+
import typia from 'typia';
|
|
3
4
|
import { formatMarkerHits, scanRefChangedForMarkers } from '../lib/conflict-markers.js';
|
|
4
|
-
import {
|
|
5
|
+
import { readJson } from '../lib/json.js';
|
|
5
6
|
import { run, runResult } from '../lib/run.js';
|
|
6
7
|
const defaultShell = {
|
|
7
8
|
runResult: (command, args, cwd) => runResult(command, args, cwd),
|
|
8
9
|
run: (command, args, cwd) => run(command, args, cwd),
|
|
9
10
|
};
|
|
11
|
+
const parseGhPrViewJson = (() => {
|
|
12
|
+
const _io0 = input => "number" === typeof input.number && "string" === typeof input.url && "string" === typeof input.headRefName && "string" === typeof input.baseRefName && (undefined === input.isCrossRepository || "boolean" === typeof input.isCrossRepository);
|
|
13
|
+
const __is = input => "object" === typeof input && null !== input && _io0(input);
|
|
14
|
+
return input => { input = JSON.parse(input); return __is(input) ? input : null; };
|
|
15
|
+
})();
|
|
16
|
+
const isPrResolveStateJson = (() => {
|
|
17
|
+
const _io0 = input => "number" === typeof input.pr && (undefined === input.url || "string" === typeof input.url) && "string" === typeof input.headBranch && "string" === typeof input.baseBranch && "string" === typeof input.remote && (undefined === input.crossRepo || "boolean" === typeof input.crossRepo) && (undefined === input.originalBranch || "string" === typeof input.originalBranch) && (undefined === input.originalSha || "string" === typeof input.originalSha) && (undefined === input.startedAt || "string" === typeof input.startedAt);
|
|
18
|
+
return input => "object" === typeof input && null !== input && _io0(input);
|
|
19
|
+
})();
|
|
10
20
|
/**
|
|
11
21
|
* Agent-first conflict resolution for a GitHub PR.
|
|
12
22
|
*
|
|
@@ -122,23 +132,16 @@ async function prMeta(shell, root, prArg) {
|
|
|
122
132
|
if (result.exitCode !== 0) {
|
|
123
133
|
throw new Error(`Could not resolve PR '${prArg}' via gh: ${result.stderr.trim() || `exit ${result.exitCode}`}`);
|
|
124
134
|
}
|
|
125
|
-
const raw =
|
|
126
|
-
if (!
|
|
135
|
+
const raw = parseGhPrViewJson(result.stdout);
|
|
136
|
+
if (!raw) {
|
|
127
137
|
throw new Error(`gh pr view returned unexpected JSON for '${prArg}'.`);
|
|
128
138
|
}
|
|
129
|
-
const
|
|
130
|
-
if (typeof number !== 'number' ||
|
|
131
|
-
typeof url !== 'string' ||
|
|
132
|
-
typeof headRefName !== 'string' ||
|
|
133
|
-
typeof baseRefName !== 'string') {
|
|
134
|
-
throw new Error(`gh pr view JSON for '${prArg}' is missing expected fields.`);
|
|
135
|
-
}
|
|
136
|
-
const match = /github\.com\/([^/]+\/[^/]+)\/pull\//.exec(url);
|
|
139
|
+
const match = /github\.com\/([^/]+\/[^/]+)\/pull\//.exec(raw.url);
|
|
137
140
|
return {
|
|
138
|
-
number,
|
|
139
|
-
url,
|
|
140
|
-
headBranch: headRefName,
|
|
141
|
-
baseBranch: baseRefName,
|
|
141
|
+
number: raw.number,
|
|
142
|
+
url: raw.url,
|
|
143
|
+
headBranch: raw.headRefName,
|
|
144
|
+
baseBranch: raw.baseRefName,
|
|
142
145
|
crossRepo: raw.isCrossRepository === true,
|
|
143
146
|
nameWithOwner: match ? match[1] : '',
|
|
144
147
|
};
|
|
@@ -225,26 +228,19 @@ function readState(statePath) {
|
|
|
225
228
|
catch {
|
|
226
229
|
return null;
|
|
227
230
|
}
|
|
228
|
-
if (!
|
|
229
|
-
return null;
|
|
230
|
-
}
|
|
231
|
-
const { pr, url, headBranch, baseBranch, remote, crossRepo, originalBranch, originalSha, startedAt } = raw;
|
|
232
|
-
if (typeof pr !== 'number' ||
|
|
233
|
-
typeof headBranch !== 'string' ||
|
|
234
|
-
typeof baseBranch !== 'string' ||
|
|
235
|
-
typeof remote !== 'string') {
|
|
231
|
+
if (!isPrResolveStateJson(raw)) {
|
|
236
232
|
return null;
|
|
237
233
|
}
|
|
238
234
|
return {
|
|
239
|
-
pr,
|
|
240
|
-
url:
|
|
241
|
-
headBranch,
|
|
242
|
-
baseBranch,
|
|
243
|
-
remote,
|
|
244
|
-
crossRepo: crossRepo === true,
|
|
245
|
-
originalBranch:
|
|
246
|
-
originalSha:
|
|
247
|
-
startedAt:
|
|
235
|
+
pr: raw.pr,
|
|
236
|
+
url: raw.url ?? '',
|
|
237
|
+
headBranch: raw.headBranch,
|
|
238
|
+
baseBranch: raw.baseBranch,
|
|
239
|
+
remote: raw.remote,
|
|
240
|
+
crossRepo: raw.crossRepo === true,
|
|
241
|
+
originalBranch: raw.originalBranch ?? '',
|
|
242
|
+
originalSha: raw.originalSha ?? '',
|
|
243
|
+
startedAt: raw.startedAt ?? '',
|
|
248
244
|
};
|
|
249
245
|
}
|
|
250
246
|
function writeState(statePath, state) {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import type { PackageJson } from '../lib/json.js';
|
|
1
2
|
import type { ReleasePackageInfo } from './core.js';
|
|
2
3
|
export interface AutoReleaseCandidateShell {
|
|
3
4
|
gitRefExists(ref: string): Promise<boolean>;
|
|
4
5
|
latestStableReleaseRef(projectName: string): Promise<string | null>;
|
|
5
6
|
packageChangedFilesSince(ref: string, packagePath: string): Promise<string[]>;
|
|
6
|
-
packageJsonAtRef(ref: string, packagePath: string): Promise<
|
|
7
|
-
currentPackageJson(packagePath: string): Promise<
|
|
7
|
+
packageJsonAtRef(ref: string, packagePath: string): Promise<PackageJson | null>;
|
|
8
|
+
currentPackageJson(packagePath: string): Promise<PackageJson | null>;
|
|
8
9
|
packageBuildInputPatterns(projectName: string, packagePath: string): Promise<string[]>;
|
|
9
10
|
packageHasHistory(packagePath: string): Promise<boolean>;
|
|
10
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candidates.d.ts","sourceRoot":"","sources":["../../src/release/candidates.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"candidates.d.ts","sourceRoot":"","sources":["../../src/release/candidates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGpD,MAAM,WAAW,yBAAyB;IACxC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpE,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9E,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAChF,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACrE,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvF,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D;AAgCD,wBAAsB,4BAA4B,CAAC,OAAO,SAAS,kBAAkB,EACnF,KAAK,EAAE,yBAAyB,EAChC,QAAQ,EAAE,OAAO,EAAE,GAClB,OAAO,CAAC,OAAO,EAAE,CAAC,CAQpB"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { isRecord } from '../lib/json.js';
|
|
2
1
|
import { releaseTag } from './core.js';
|
|
3
2
|
const releasableManifestKeys = [
|
|
4
3
|
'author',
|
|
@@ -80,7 +79,7 @@ async function packageHasReleasableChangesSince(shell, ref, pkg) {
|
|
|
80
79
|
}
|
|
81
80
|
function releasableManifestChanged(previousManifest, currentManifest) {
|
|
82
81
|
for (const key of releasableManifestKeys) {
|
|
83
|
-
if (!stableJsonEqual(previousManifest
|
|
82
|
+
if (!stableJsonEqual(Reflect.get(previousManifest, key), Reflect.get(currentManifest, key))) {
|
|
84
83
|
return true;
|
|
85
84
|
}
|
|
86
85
|
}
|
|
@@ -159,7 +158,7 @@ function isManifestFilesPath(path, manifest) {
|
|
|
159
158
|
return false;
|
|
160
159
|
}
|
|
161
160
|
for (const entry of files) {
|
|
162
|
-
if (
|
|
161
|
+
if (entry.length === 0 || entry.startsWith('!')) {
|
|
163
162
|
continue;
|
|
164
163
|
}
|
|
165
164
|
if (matchesManifestFilesEntry(path, entry)) {
|
|
@@ -182,10 +181,10 @@ function stableJson(value) {
|
|
|
182
181
|
if (Array.isArray(value)) {
|
|
183
182
|
return value.map(stableJson);
|
|
184
183
|
}
|
|
185
|
-
if (
|
|
184
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
186
185
|
const normalized = {};
|
|
187
186
|
for (const key of Object.keys(value).sort()) {
|
|
188
|
-
normalized[key] = stableJson(value
|
|
187
|
+
normalized[key] = stableJson(Reflect.get(value, key));
|
|
189
188
|
}
|
|
190
189
|
return normalized;
|
|
191
190
|
}
|
|
@@ -25,6 +25,7 @@ export declare function nxProjectChangelogArgs(pkg: ReleasePackageInfo, previous
|
|
|
25
25
|
gitPush: false;
|
|
26
26
|
stageChanges: false;
|
|
27
27
|
createRelease: false;
|
|
28
|
+
forceChangelogGeneration: true;
|
|
28
29
|
deleteVersionPlans: false;
|
|
29
30
|
dryRun: boolean;
|
|
30
31
|
from: string;
|
|
@@ -36,11 +37,13 @@ export declare function nxProjectChangelogArgs(pkg: ReleasePackageInfo, previous
|
|
|
36
37
|
gitPush: false;
|
|
37
38
|
stageChanges: false;
|
|
38
39
|
createRelease: false;
|
|
40
|
+
forceChangelogGeneration: true;
|
|
39
41
|
deleteVersionPlans: false;
|
|
40
42
|
dryRun: boolean;
|
|
41
43
|
firstRelease: boolean;
|
|
42
44
|
};
|
|
43
45
|
export declare function projectChangelogContents(result: ProjectChangelogLookupResult, projectName: string): string;
|
|
46
|
+
export declare function githubReleaseLookupExists(tag: string, exitCode: number, stdout: string, stderr: string): boolean;
|
|
44
47
|
export declare function githubReleaseCommandArgs(tag: string, notesFile: string, releaseExists: boolean, version: string): string[];
|
|
45
48
|
export declare function withNxWorkspaceRoot<T>(root: string, run: () => Promise<T>): Promise<T>;
|
|
46
49
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-release.d.ts","sourceRoot":"","sources":["../../src/release/github-release.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,kBAAkB,EAAc,MAAM,WAAW,CAAC;AAYhE,UAAU,4BAA4B;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,6BAA6B,CAAC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB;IACpG,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAsB,gCAAgC,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,MAAM,CAAC,CAS5G;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,kBAAkB,EACvB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,OAAO
|
|
1
|
+
{"version":3,"file":"github-release.d.ts","sourceRoot":"","sources":["../../src/release/github-release.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,kBAAkB,EAAc,MAAM,WAAW,CAAC;AAYhE,UAAU,4BAA4B;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,6BAA6B,CAAC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB;IACpG,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAsB,gCAAgC,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,MAAM,CAAC,CAS5G;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,kBAAkB,EACvB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;EAc1G;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,4BAA4B,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAM1G;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAShH;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,OAAO,EACtB,OAAO,EAAE,MAAM,GACd,MAAM,EAAE,CAgBV;AAMD,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAmB5F"}
|
|
@@ -41,6 +41,7 @@ export function nxProjectChangelogArgs(pkg, previousTag, dryRun) {
|
|
|
41
41
|
gitPush: false,
|
|
42
42
|
stageChanges: false,
|
|
43
43
|
createRelease: false,
|
|
44
|
+
forceChangelogGeneration: true,
|
|
44
45
|
deleteVersionPlans: false,
|
|
45
46
|
dryRun,
|
|
46
47
|
};
|
|
@@ -53,6 +54,16 @@ export function projectChangelogContents(result, projectName) {
|
|
|
53
54
|
}
|
|
54
55
|
return changelog.contents;
|
|
55
56
|
}
|
|
57
|
+
export function githubReleaseLookupExists(tag, exitCode, stdout, stderr) {
|
|
58
|
+
if (exitCode === 0) {
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
const details = [stderr.trim(), stdout.trim()].filter(Boolean).join('\n');
|
|
62
|
+
if (/\bHTTP 404\b|release not found/i.test(details)) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
throw new Error(`Unable to inspect GitHub Release ${tag}.${details ? `\n${details}` : ''}`);
|
|
66
|
+
}
|
|
56
67
|
export function githubReleaseCommandArgs(tag, notesFile, releaseExists, version) {
|
|
57
68
|
const args = [
|
|
58
69
|
'release',
|
package/dist/release/index.d.ts
CHANGED
|
@@ -11,6 +11,14 @@ export interface ReleasePublishOptions {
|
|
|
11
11
|
}
|
|
12
12
|
export interface ReleaseRepairPendingOptions {
|
|
13
13
|
dryRun?: boolean;
|
|
14
|
+
platformOutputs?: string;
|
|
15
|
+
ref?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ReleasePlatformOutputsOptions {
|
|
18
|
+
bump: string;
|
|
19
|
+
output: string;
|
|
20
|
+
ref?: string;
|
|
21
|
+
targets: string;
|
|
14
22
|
}
|
|
15
23
|
export interface ReleaseTrustPublisherOptions {
|
|
16
24
|
dryRun?: boolean;
|
|
@@ -37,7 +45,9 @@ export interface ReleaseRetagUnpublishedOptions {
|
|
|
37
45
|
export declare function releaseVersion(root: string, options: ReleaseVersionOptions): Promise<void>;
|
|
38
46
|
export declare function releasePublish(root: string, options: ReleasePublishOptions): Promise<void>;
|
|
39
47
|
export declare function releaseRepairPending(root: string, options: ReleaseRepairPendingOptions): Promise<void>;
|
|
48
|
+
export declare function releaseCollectPlatformOutputs(root: string, options: ReleasePlatformOutputsOptions): Promise<void>;
|
|
40
49
|
export declare function releaseTrustPublisher(root: string, options: ReleaseTrustPublisherOptions): Promise<void>;
|
|
50
|
+
export declare function npmTrustGithubArgs(packageName: string, repository: string, workflow: string, dryRun: boolean): string[];
|
|
41
51
|
export interface TrustPublisherShell<Package extends ReleasePackageInfo = ReleasePackageInfo> {
|
|
42
52
|
repository: string;
|
|
43
53
|
workflow: string;
|
|
@@ -45,7 +55,8 @@ export interface TrustPublisherShell<Package extends ReleasePackageInfo = Releas
|
|
|
45
55
|
packageExists(name: string): Promise<boolean>;
|
|
46
56
|
bootstrapNpmPackages(options: BootstrapNpmPackagesOptions): Promise<Package[]>;
|
|
47
57
|
trustPublisher(pkg: Package, dryRun: boolean, env?: Record<string, string>): Promise<TrustPublisherResult>;
|
|
48
|
-
trustedPublishers(pkg: Package): Promise<
|
|
58
|
+
trustedPublishers(pkg: Package): Promise<TrustedPublisherLookup>;
|
|
59
|
+
login(): Promise<void>;
|
|
49
60
|
log(message: string): void;
|
|
50
61
|
error(message: string): void;
|
|
51
62
|
}
|
|
@@ -56,9 +67,17 @@ export interface TrustedPublisher {
|
|
|
56
67
|
file?: string;
|
|
57
68
|
repository?: string;
|
|
58
69
|
}
|
|
70
|
+
export interface NpmTrustAccessDenied {
|
|
71
|
+
readonly status: 'access-denied';
|
|
72
|
+
readonly identity: string;
|
|
73
|
+
readonly owners: string;
|
|
74
|
+
}
|
|
75
|
+
export type TrustedPublisherLookup = TrustedPublisher[] | NpmTrustAccessDenied;
|
|
59
76
|
export declare function configureTrustedPublishers<Package extends ReleasePackageInfo>(shell: TrustPublisherShell<Package>, options: ReleaseTrustPublisherOptions): Promise<void>;
|
|
60
77
|
export declare function releaseBootstrapNpmPackages(root: string, options: ReleaseBootstrapNpmPackagesOptions): Promise<void>;
|
|
61
78
|
export declare function releaseRetagUnpublished(root: string, options: ReleaseRetagUnpublishedOptions): Promise<void>;
|
|
62
79
|
export declare function printReleaseState(root: string): Promise<void>;
|
|
80
|
+
/** npm trust list/setup requires an authenticated package owner. */
|
|
81
|
+
export declare function npmTrustListAccessDenied(stdout: string, stderr: string): boolean;
|
|
63
82
|
export declare function parseTrustedPublishers(stdout: string, packageName: string): TrustedPublisher[];
|
|
64
83
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/release/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/release/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EACL,KAAK,2BAA2B,EAIjC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAML,KAAK,kBAAkB,EAGxB,MAAM,WAAW,CAAC;AAsBnB,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,kCAAkC;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBhG;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDhG;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAc5G;AAED,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B9G;AAED,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GACd,MAAM,EAAE,CAMV;AAED,MAAM,WAAW,mBAAmB,CAAC,OAAO,SAAS,kBAAkB,GAAG,kBAAkB;IAC1F,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,IAAI,OAAO,EAAE,CAAC;IACjC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/E,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC3G,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,oBAAoB,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,EAAE,GAAG,oBAAoB,CAAC;AAE/E,wBAAsB,0BAA0B,CAAC,OAAO,SAAS,kBAAkB,EACjF,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,EACnC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,IAAI,CAAC,CAuEf;AAkED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAelH;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AA6nCD,oEAAoE;AACpE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAShF;AA8CD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAkB9F"}
|