@smoothbricks/cli 0.10.8 โ 0.10.9
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/cli.js +1 -0
- package/dist/github-ci/index.d.ts +1 -1
- package/dist/github-ci/index.d.ts.map +1 -1
- package/dist/github-ci/index.js +1 -0
- package/dist/monorepo/publish-workflow.js +1 -1
- package/dist/release/index.d.ts +1 -0
- package/dist/release/index.d.ts.map +1 -1
- package/dist/release/index.js +14 -6
- package/dist/wrangler/cloudflare.d.ts +3 -1
- package/dist/wrangler/cloudflare.d.ts.map +1 -1
- package/dist/wrangler/cloudflare.js +6 -3
- package/package.json +2 -2
- package/src/cli.ts +2 -1
- package/src/github-ci/index.test.ts +4 -2
- package/src/github-ci/index.ts +2 -1
- package/src/monorepo/__tests__/publish-workflow.test.ts +6 -4
- package/src/monorepo/publish-workflow.ts +6 -3
- package/src/release/index.ts +12 -4
- package/src/wrangler/cloudflare.test.ts +76 -0
- package/src/wrangler/cloudflare.ts +5 -2
package/dist/cli.js
CHANGED
|
@@ -149,6 +149,7 @@ function buildProgram() {
|
|
|
149
149
|
.requiredOption('--targets <targets>', 'comma-separated Nx platform target names or globs')
|
|
150
150
|
.requiredOption('--output <path>', 'output directory for current and repair artifacts')
|
|
151
151
|
.option('--ref <ref>', 'fixed release graph ref to inspect')
|
|
152
|
+
.option('--github-output <path>', 'append selected current platform projects to a GitHub Actions output file')
|
|
152
153
|
.action(async (options) => {
|
|
153
154
|
// The source self-hosting shim has no Typia transform; release commands import transformed output validators.
|
|
154
155
|
const { releaseCollectPlatformOutputs } = await import('./release/index.js');
|
|
@@ -42,7 +42,7 @@ export declare function expandNxTargetRuns(projects: ProjectTargets[], options:
|
|
|
42
42
|
export declare function expandNxTargetDependencyRuns(runs: NxTargetRun[]): NxTargetRun[];
|
|
43
43
|
export declare function nxRunManyArgs(run: NxTargetRun, configuration?: string): string[];
|
|
44
44
|
export declare function readGitHeadSha(root: string): Promise<string>;
|
|
45
|
-
export declare function githubCiNxRunMany(root: string, options: NxRunManyOptions): Promise<
|
|
45
|
+
export declare function githubCiNxRunMany(root: string, options: NxRunManyOptions): Promise<ExpandedNxTargetRuns>;
|
|
46
46
|
export declare function githubCiApplyOutputs(root: string, directories: string[], expectedSourceSha: string): Promise<void>;
|
|
47
47
|
export interface GithubCiNxDeployOptions {
|
|
48
48
|
environment?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/github-ci/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,cAAc,EAAsB,MAAM,gBAAgB,CAAC;AACzE,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE;QACX,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,YAAY,CAAC,EAAE;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,EAAE;gBACL,SAAS,CAAC,EAAE,MAAM,CAAC;aACpB,CAAC;SACH,CAAC;KACH,CAAC;CACH;AAkBD,KAAK,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;AAKpD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBtE;AAmFD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAO3G;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GACpG,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,oBAAoB,CAmD9G;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAwC/E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAehF;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGlE;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/github-ci/index.ts"],"names":[],"mappings":"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"}
|
package/dist/github-ci/index.js
CHANGED
|
@@ -276,6 +276,7 @@ export async function githubCiNxRunMany(root, options) {
|
|
|
276
276
|
const sourceSha = await readGitHeadSha(root);
|
|
277
277
|
await collectNxOutputs(root, options.collectOutputs, expandNxTargetDependencyRuns(expanded.runs), sourceSha);
|
|
278
278
|
}
|
|
279
|
+
return expanded;
|
|
279
280
|
}
|
|
280
281
|
export async function githubCiApplyOutputs(root, directories, expectedSourceSha) {
|
|
281
282
|
const { applyCollectedOutputs } = await loadOutputBoundary();
|
|
@@ -557,7 +557,7 @@ function renderMacosPlatformSteps(options) {
|
|
|
557
557
|
if (isSmoothBricksCodebasePackageName(options.repoName)) {
|
|
558
558
|
lines.push('', ` # Step ${stepNumber++}`, ' - name: ๐๏ธ Build self-hosted smoo', ' # SmoothBricks self-hosts smoo from source for release commands.', ' run: nx build cli');
|
|
559
559
|
}
|
|
560
|
-
lines.push('', ` # Step ${stepNumber++}`, ' - name: ๐ Build selected macOS and iOS release outputs', ' run:', ` smoo release build-platform-outputs --bump "${githubExpression('inputs.bump')}" --ref "${githubExpression('github.sha')}" --targets "${MACOS_PLATFORM_TARGET_GLOBS.join(',')}" --output`, ` "${githubExpression('runner.temp')}/macos-platform-outputs"`, '', ` # Step ${stepNumber++}`, ' - name: ๐งช Unit test macOS and iOS packages', ' run:',
|
|
560
|
+
lines.push('', ` # Step ${stepNumber++}`, ' - name: ๐ Build selected macOS and iOS release outputs', ' id: platform-outputs', ' run:', ` smoo release build-platform-outputs --bump "${githubExpression('inputs.bump')}" --ref "${githubExpression('github.sha')}" --targets "${MACOS_PLATFORM_TARGET_GLOBS.join(',')}" --output`, ` "${githubExpression('runner.temp')}/macos-platform-outputs" --github-output "$GITHUB_OUTPUT"`, '', ` # Step ${stepNumber++}`, ' - name: ๐งช Unit test selected macOS and iOS packages', ` if: steps.platform-outputs.outputs.projects != ''`, ' run:', ' smoo github-ci nx-run-many --targets test --projects', ` "${githubExpression('steps.platform-outputs.outputs.projects')}"`, '', ` # Step ${stepNumber++}`, ' - name: ๐ค Upload macOS platform outputs', ' uses: actions/upload-artifact@v7.0.1', ' with:', ` name: publish-macos-outputs-${githubExpression('github.run_id')}`, ` path: ${githubExpression('runner.temp')}/macos-platform-outputs`, ' if-no-files-found: error', ' retention-days: 1', ' include-hidden-files: true', '', ' # --- Cleanup ------------------------------------------------------------', '', ` # Step ${stepNumber}`, ' - name: ๐งน Cleanup and cache Nix/devenv', ' # success() is default; always() still saves GH Nix cache after a red job.', ' if: always()', ' uses: ./.github/actions/save-nix-devenv', ' with:', ` nix-cache-hit: ${githubExpression('steps.setup.outputs.nix-cache-hit')}`, ` devenv-cache-hit: ${githubExpression('steps.setup.outputs.devenv-cache-hit')}`);
|
|
561
561
|
return lines.join('\n').trimEnd();
|
|
562
562
|
}
|
|
563
563
|
function renderFinalLinuxPublishSteps(options) {
|
package/dist/release/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/release/index.ts"],"names":[],"mappings":"AAyBA,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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/release/index.ts"],"names":[],"mappings":"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"}
|
package/dist/release/index.js
CHANGED
|
@@ -104,7 +104,7 @@ export async function releaseCollectPlatformOutputs(root, options) {
|
|
|
104
104
|
? 'Release platform outputs: no current release packages selected.'
|
|
105
105
|
: `Release platform outputs: building current outputs for ${packageSummary(currentPackages)}.`);
|
|
106
106
|
const outputRoot = resolve(root, options.output);
|
|
107
|
-
await githubCiNxRunMany(root, {
|
|
107
|
+
const currentRuns = await githubCiNxRunMany(root, {
|
|
108
108
|
targets: options.targets,
|
|
109
109
|
projects: releasePackageProjects(currentPackages),
|
|
110
110
|
collectOutputs: join(outputRoot, 'current'),
|
|
@@ -114,6 +114,12 @@ export async function releaseCollectPlatformOutputs(root, options) {
|
|
|
114
114
|
const targets = await listPendingReleaseTargets(root, releaseRef);
|
|
115
115
|
logPendingReleaseTargets(targets);
|
|
116
116
|
await collectRepairPlatformOutputs(releaseRepairOutputsShell(root, options.targets, join(outputRoot, 'repairs')), targets, restoreRef);
|
|
117
|
+
if (options.githubOutput) {
|
|
118
|
+
const projects = [
|
|
119
|
+
...new Set(currentRuns.runs.flatMap((run) => run.projects.map((project) => project.project))),
|
|
120
|
+
].sort((left, right) => left.localeCompare(right));
|
|
121
|
+
await appendFile(options.githubOutput, `projects=${projects.join(',')}\n`);
|
|
122
|
+
}
|
|
117
123
|
}
|
|
118
124
|
export async function releaseTrustPublisher(root, options) {
|
|
119
125
|
const repository = githubRepositoryFromRootPackage(root);
|
|
@@ -653,11 +659,13 @@ function releaseRepairShell(root, platformOutputs) {
|
|
|
653
659
|
function releaseRepairOutputsShell(root, targetGlobs, outputRoot) {
|
|
654
660
|
return {
|
|
655
661
|
...releaseTargetCheckoutShell(root),
|
|
656
|
-
collectRepairTargetOutputs: (target) =>
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
662
|
+
collectRepairTargetOutputs: async (target) => {
|
|
663
|
+
await githubCiNxRunMany(root, {
|
|
664
|
+
targets: targetGlobs,
|
|
665
|
+
projects: releasePackageProjects(target.npmPackages),
|
|
666
|
+
collectOutputs: join(outputRoot, target.sha),
|
|
667
|
+
});
|
|
668
|
+
},
|
|
661
669
|
};
|
|
662
670
|
}
|
|
663
671
|
function releaseRetagShell(root, remote) {
|
|
@@ -53,11 +53,12 @@ export declare class CloudflareApiError extends Error {
|
|
|
53
53
|
readonly codes: number[];
|
|
54
54
|
constructor(message: string, status: number, codes: number[]);
|
|
55
55
|
}
|
|
56
|
+
type CloudflareFetcher = (input: string, init?: RequestInit) => Promise<Response>;
|
|
56
57
|
export declare class CloudflareRestClient implements CloudflareClient {
|
|
57
58
|
private readonly apiToken;
|
|
58
59
|
private readonly fetcher;
|
|
59
60
|
private readonly accountPath;
|
|
60
|
-
constructor(accountId: string, apiToken: string, fetcher?:
|
|
61
|
+
constructor(accountId: string, apiToken: string, fetcher?: CloudflareFetcher);
|
|
61
62
|
listKvNamespaces(): Promise<LiveKvNamespace[]>;
|
|
62
63
|
createKvNamespace(title: string): Promise<LiveKvNamespace>;
|
|
63
64
|
deleteKvNamespace(id: string): Promise<void>;
|
|
@@ -82,4 +83,5 @@ export declare class CloudflareRestClient implements CloudflareClient {
|
|
|
82
83
|
private result;
|
|
83
84
|
private request;
|
|
84
85
|
}
|
|
86
|
+
export {};
|
|
85
87
|
//# sourceMappingURL=cloudflare.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../src/wrangler/cloudflare.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC/C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3D,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,aAAa,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,iBAAiB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,iBAAiB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,SAAS,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACvC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACzD,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtF,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACrD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;
|
|
1
|
+
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../src/wrangler/cloudflare.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import typia from 'typia';
|
|
2
2
|
const isCloudflareEnvelope = (() => {
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
3
|
+
const _ip0 = input => undefined === input["code"] || "number" === typeof input["code"];
|
|
4
|
+
const _ip1 = input => undefined === input["message"] || "string" === typeof input["message"];
|
|
5
|
+
const _io0 = input => "boolean" === typeof input.success && true && (null === input.errors || undefined === input.errors || Array.isArray(input.errors) && input.errors.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _io1(elem))) && (null === input.messages || undefined === input.messages || Array.isArray(input.messages) && input.messages.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _io2(elem))) && (undefined === input.result_info || "object" === typeof input.result_info && null !== input.result_info && false === Array.isArray(input.result_info) && _io3(input.result_info));
|
|
6
|
+
const _io1 = input => _ip0(input) && _ip1(input);
|
|
7
|
+
const _io2 = input => _ip0(input) && _ip1(input);
|
|
8
|
+
const _io3 = input => (undefined === input.page || "number" === typeof input.page) && (undefined === input.total_pages || "number" === typeof input.total_pages) && (undefined === input.cursor || "string" === typeof input.cursor) && (undefined === input.is_truncated || "boolean" === typeof input.is_truncated);
|
|
6
9
|
return input => "object" === typeof input && null !== input && _io0(input);
|
|
7
10
|
})();
|
|
8
11
|
const isKvNamespaces = (() => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smoothbricks/cli",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "SmoothBricks monorepo automation CLI",
|
|
6
6
|
"bin": {
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"dependencies": {
|
|
72
72
|
"@arethetypeswrong/core": "^0.18.2",
|
|
73
73
|
"@prettier/sync": "^0.6.1",
|
|
74
|
-
"@smoothbricks/nx-plugin": "0.3.
|
|
74
|
+
"@smoothbricks/nx-plugin": "0.3.6",
|
|
75
75
|
"@smoothbricks/validation": "0.1.5",
|
|
76
76
|
"commander": "^14.0.3",
|
|
77
77
|
"prettier": "^3.6.1",
|
package/src/cli.ts
CHANGED
|
@@ -175,7 +175,8 @@ function buildProgram(): Command {
|
|
|
175
175
|
.requiredOption('--targets <targets>', 'comma-separated Nx platform target names or globs')
|
|
176
176
|
.requiredOption('--output <path>', 'output directory for current and repair artifacts')
|
|
177
177
|
.option('--ref <ref>', 'fixed release graph ref to inspect')
|
|
178
|
-
.
|
|
178
|
+
.option('--github-output <path>', 'append selected current platform projects to a GitHub Actions output file')
|
|
179
|
+
.action(async (options: { bump: string; githubOutput?: string; output: string; ref?: string; targets: string }) => {
|
|
179
180
|
// The source self-hosting shim has no Typia transform; release commands import transformed output validators.
|
|
180
181
|
const { releaseCollectPlatformOutputs } = await import('./release/index.js');
|
|
181
182
|
await releaseCollectPlatformOutputs(await findRepoRoot(), options);
|
|
@@ -166,11 +166,12 @@ describe('collected Nx outputs', () => {
|
|
|
166
166
|
|
|
167
167
|
it('collects an empty artifact when selected projects have no matching target', async () => {
|
|
168
168
|
await withNxRunManyFixture(async ({ root, artifact }) => {
|
|
169
|
-
await githubCiNxRunMany(root, {
|
|
169
|
+
const expanded = await githubCiNxRunMany(root, {
|
|
170
170
|
targets: '*-linux',
|
|
171
171
|
projects: 'app',
|
|
172
172
|
collectOutputs: artifact,
|
|
173
173
|
});
|
|
174
|
+
expect(expanded.runs).toEqual([]);
|
|
174
175
|
|
|
175
176
|
const sourceSha = await readGitHeadSha(root);
|
|
176
177
|
expect(JSON.parse(await readFile(join(artifact, 'manifest.json'), 'utf8'))).toEqual({
|
|
@@ -186,10 +187,11 @@ describe('collected Nx outputs', () => {
|
|
|
186
187
|
await writeFile(join(root, 'packages/app/test-target.ts'), "await Bun.write('test-ran.txt', 'tested');\n");
|
|
187
188
|
await writeFile(join(root, 'packages/app/build-target.ts'), "throw new Error('build must not run here');\n");
|
|
188
189
|
|
|
189
|
-
await githubCiNxRunMany(root, {
|
|
190
|
+
const expanded = await githubCiNxRunMany(root, {
|
|
190
191
|
targets: 'test',
|
|
191
192
|
projectsWithTargets: '*-macos,*-ios',
|
|
192
193
|
});
|
|
194
|
+
expect(expanded.runs.map((run) => run.projects.map((project) => project.project))).toEqual([['app']]);
|
|
193
195
|
|
|
194
196
|
await expect(readFile(join(root, 'test-ran.txt'), 'utf8')).resolves.toBe('tested');
|
|
195
197
|
await expect(readFile(join(root, 'build-ran.txt'), 'utf8')).rejects.toThrow();
|
package/src/github-ci/index.ts
CHANGED
|
@@ -315,7 +315,7 @@ export async function readGitHeadSha(root: string): Promise<string> {
|
|
|
315
315
|
return decode((await $`git rev-parse HEAD`.cwd(root).quiet()).stdout).trim();
|
|
316
316
|
}
|
|
317
317
|
|
|
318
|
-
export async function githubCiNxRunMany(root: string, options: NxRunManyOptions): Promise<
|
|
318
|
+
export async function githubCiNxRunMany(root: string, options: NxRunManyOptions): Promise<ExpandedNxTargetRuns> {
|
|
319
319
|
const expanded = expandNxTargetRuns(await readProjectTargets(root), options);
|
|
320
320
|
if (expanded.unmatchedGlobs.length > 0) {
|
|
321
321
|
console.log(`No Nx targets matched target glob(s): ${expanded.unmatchedGlobs.join(', ')}; skipping.`);
|
|
@@ -328,6 +328,7 @@ export async function githubCiNxRunMany(root: string, options: NxRunManyOptions)
|
|
|
328
328
|
const sourceSha = await readGitHeadSha(root);
|
|
329
329
|
await collectNxOutputs(root, options.collectOutputs, expandNxTargetDependencyRuns(expanded.runs), sourceSha);
|
|
330
330
|
}
|
|
331
|
+
return expanded;
|
|
331
332
|
}
|
|
332
333
|
|
|
333
334
|
export async function githubCiApplyOutputs(
|
|
@@ -159,15 +159,17 @@ describe('publish workflow definition', () => {
|
|
|
159
159
|
expect(foldedRunCommand(macosPlatform, '๐ Build selected macOS and iOS release outputs')).toBe(
|
|
160
160
|
`smoo release build-platform-outputs --bump "\${{ inputs.bump }}" --ref "\${{ github.sha }}" --targets "${MACOS_PLATFORM_TARGET_GLOBS.join(
|
|
161
161
|
',',
|
|
162
|
-
)}" --output "\${{ runner.temp }}/macos-platform-outputs"`,
|
|
162
|
+
)}" --output "\${{ runner.temp }}/macos-platform-outputs" --github-output "$GITHUB_OUTPUT"`,
|
|
163
163
|
);
|
|
164
|
+
expect(macosPlatform).toContain('id: platform-outputs');
|
|
165
|
+
expect(macosPlatform).toContain("if: steps.platform-outputs.outputs.projects != ''");
|
|
164
166
|
expect(macosPlatform).toContain(
|
|
165
|
-
|
|
167
|
+
'run: smoo github-ci nx-run-many --targets test --projects "${{ steps.platform-outputs.outputs.projects }}"',
|
|
166
168
|
);
|
|
167
169
|
expect(macosPlatform.indexOf('- name: ๐ Build selected macOS and iOS release outputs')).toBeLessThan(
|
|
168
|
-
macosPlatform.indexOf('- name: ๐งช Unit test macOS and iOS packages'),
|
|
170
|
+
macosPlatform.indexOf('- name: ๐งช Unit test selected macOS and iOS packages'),
|
|
169
171
|
);
|
|
170
|
-
expect(macosPlatform.indexOf('- name: ๐งช Unit test macOS and iOS packages')).toBeLessThan(
|
|
172
|
+
expect(macosPlatform.indexOf('- name: ๐งช Unit test selected macOS and iOS packages')).toBeLessThan(
|
|
171
173
|
macosPlatform.indexOf('- name: ๐ค Upload macOS platform outputs'),
|
|
172
174
|
);
|
|
173
175
|
expect(finalJob).not.toContain('smoo release version');
|
|
@@ -778,16 +778,19 @@ function renderMacosPlatformSteps(options: PublishWorkflowDefinitionOptions): st
|
|
|
778
778
|
'',
|
|
779
779
|
` # Step ${stepNumber++}`,
|
|
780
780
|
' - name: ๐ Build selected macOS and iOS release outputs',
|
|
781
|
+
' id: platform-outputs',
|
|
781
782
|
' run:',
|
|
782
783
|
` smoo release build-platform-outputs --bump "${githubExpression(
|
|
783
784
|
'inputs.bump',
|
|
784
785
|
)}" --ref "${githubExpression('github.sha')}" --targets "${MACOS_PLATFORM_TARGET_GLOBS.join(',')}" --output`,
|
|
785
|
-
` "${githubExpression('runner.temp')}/macos-platform-outputs"`,
|
|
786
|
+
` "${githubExpression('runner.temp')}/macos-platform-outputs" --github-output "$GITHUB_OUTPUT"`,
|
|
786
787
|
'',
|
|
787
788
|
` # Step ${stepNumber++}`,
|
|
788
|
-
' - name: ๐งช Unit test macOS and iOS packages',
|
|
789
|
+
' - name: ๐งช Unit test selected macOS and iOS packages',
|
|
790
|
+
` if: steps.platform-outputs.outputs.projects != ''`,
|
|
789
791
|
' run:',
|
|
790
|
-
|
|
792
|
+
' smoo github-ci nx-run-many --targets test --projects',
|
|
793
|
+
` "${githubExpression('steps.platform-outputs.outputs.projects')}"`,
|
|
791
794
|
'',
|
|
792
795
|
` # Step ${stepNumber++}`,
|
|
793
796
|
' - name: ๐ค Upload macOS platform outputs',
|
package/src/release/index.ts
CHANGED
|
@@ -80,6 +80,7 @@ export interface ReleaseRepairPendingOptions {
|
|
|
80
80
|
|
|
81
81
|
export interface ReleasePlatformOutputsOptions {
|
|
82
82
|
bump: string;
|
|
83
|
+
githubOutput?: string;
|
|
83
84
|
output: string;
|
|
84
85
|
ref?: string;
|
|
85
86
|
targets: string;
|
|
@@ -221,7 +222,7 @@ export async function releaseCollectPlatformOutputs(
|
|
|
221
222
|
: `Release platform outputs: building current outputs for ${packageSummary(currentPackages)}.`,
|
|
222
223
|
);
|
|
223
224
|
const outputRoot = resolve(root, options.output);
|
|
224
|
-
await githubCiNxRunMany(root, {
|
|
225
|
+
const currentRuns = await githubCiNxRunMany(root, {
|
|
225
226
|
targets: options.targets,
|
|
226
227
|
projects: releasePackageProjects(currentPackages),
|
|
227
228
|
collectOutputs: join(outputRoot, 'current'),
|
|
@@ -236,6 +237,12 @@ export async function releaseCollectPlatformOutputs(
|
|
|
236
237
|
targets,
|
|
237
238
|
restoreRef,
|
|
238
239
|
);
|
|
240
|
+
if (options.githubOutput) {
|
|
241
|
+
const projects = [
|
|
242
|
+
...new Set(currentRuns.runs.flatMap((run) => run.projects.map((project) => project.project))),
|
|
243
|
+
].sort((left, right) => left.localeCompare(right));
|
|
244
|
+
await appendFile(options.githubOutput, `projects=${projects.join(',')}\n`);
|
|
245
|
+
}
|
|
239
246
|
}
|
|
240
247
|
|
|
241
248
|
export async function releaseTrustPublisher(root: string, options: ReleaseTrustPublisherOptions): Promise<void> {
|
|
@@ -966,12 +973,13 @@ function releaseRepairOutputsShell(
|
|
|
966
973
|
): ReleaseRepairOutputsShell<ReleasePackage> {
|
|
967
974
|
return {
|
|
968
975
|
...releaseTargetCheckoutShell(root),
|
|
969
|
-
collectRepairTargetOutputs: (target) =>
|
|
970
|
-
githubCiNxRunMany(root, {
|
|
976
|
+
collectRepairTargetOutputs: async (target) => {
|
|
977
|
+
await githubCiNxRunMany(root, {
|
|
971
978
|
targets: targetGlobs,
|
|
972
979
|
projects: releasePackageProjects(target.npmPackages),
|
|
973
980
|
collectOutputs: join(outputRoot, target.sha),
|
|
974
|
-
})
|
|
981
|
+
});
|
|
982
|
+
},
|
|
975
983
|
};
|
|
976
984
|
}
|
|
977
985
|
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { describe, expect, it } from 'bun:test';
|
|
2
|
+
import { CloudflareApiError, CloudflareRestClient } from './cloudflare.js';
|
|
3
|
+
|
|
4
|
+
type CloudflareFetcher = NonNullable<ConstructorParameters<typeof CloudflareRestClient>[2]>;
|
|
5
|
+
|
|
6
|
+
function jsonFetcher(body: unknown, status = 200): CloudflareFetcher {
|
|
7
|
+
return async () =>
|
|
8
|
+
new Response(JSON.stringify(body), {
|
|
9
|
+
status,
|
|
10
|
+
headers: { 'Content-Type': 'application/json' },
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
describe('CloudflareRestClient', () => {
|
|
15
|
+
it('accepts nullable diagnostics in successful API envelopes', async () => {
|
|
16
|
+
const client = new CloudflareRestClient(
|
|
17
|
+
'account-id',
|
|
18
|
+
'api-token',
|
|
19
|
+
jsonFetcher({
|
|
20
|
+
result: [
|
|
21
|
+
{
|
|
22
|
+
id: 'domain-id',
|
|
23
|
+
hostname: 'app.pr45.example.com',
|
|
24
|
+
service: 'app-pr45',
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
success: true,
|
|
28
|
+
errors: null,
|
|
29
|
+
messages: null,
|
|
30
|
+
result_info: {
|
|
31
|
+
page: 1,
|
|
32
|
+
per_page: 1000,
|
|
33
|
+
count: 1,
|
|
34
|
+
total_count: 1,
|
|
35
|
+
},
|
|
36
|
+
}),
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
await expect(client.listWorkerDomains()).resolves.toEqual([
|
|
40
|
+
{
|
|
41
|
+
id: 'domain-id',
|
|
42
|
+
hostname: 'app.pr45.example.com',
|
|
43
|
+
service: 'app-pr45',
|
|
44
|
+
},
|
|
45
|
+
]);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('preserves structured Cloudflare API failures', async () => {
|
|
49
|
+
const client = new CloudflareRestClient(
|
|
50
|
+
'account-id',
|
|
51
|
+
'api-token',
|
|
52
|
+
jsonFetcher(
|
|
53
|
+
{
|
|
54
|
+
result: null,
|
|
55
|
+
success: false,
|
|
56
|
+
errors: [{ code: 10000, message: 'Authentication error' }],
|
|
57
|
+
messages: [],
|
|
58
|
+
},
|
|
59
|
+
403,
|
|
60
|
+
),
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
try {
|
|
64
|
+
await client.listWorkerDomains();
|
|
65
|
+
throw new Error('expected listWorkerDomains to fail');
|
|
66
|
+
} catch (error) {
|
|
67
|
+
expect(error).toBeInstanceOf(CloudflareApiError);
|
|
68
|
+
expect(error).toMatchObject({
|
|
69
|
+
message:
|
|
70
|
+
'Cloudflare API /accounts/account-id/workers/domains?per_page=1000&page=1 failed: Authentication error',
|
|
71
|
+
status: 403,
|
|
72
|
+
codes: [10000],
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
});
|
|
@@ -60,7 +60,8 @@ export interface CloudflareClient {
|
|
|
60
60
|
interface CloudflareEnvelope {
|
|
61
61
|
success: boolean;
|
|
62
62
|
result?: unknown;
|
|
63
|
-
errors?: Array<{ code?: number; message?: string }
|
|
63
|
+
errors?: Array<{ code?: number; message?: string }> | null;
|
|
64
|
+
messages?: Array<{ code?: number; message?: string }> | null;
|
|
64
65
|
result_info?: {
|
|
65
66
|
page?: number;
|
|
66
67
|
total_pages?: number;
|
|
@@ -92,13 +93,15 @@ export class CloudflareApiError extends Error {
|
|
|
92
93
|
}
|
|
93
94
|
}
|
|
94
95
|
|
|
96
|
+
type CloudflareFetcher = (input: string, init?: RequestInit) => Promise<Response>;
|
|
97
|
+
|
|
95
98
|
export class CloudflareRestClient implements CloudflareClient {
|
|
96
99
|
private readonly accountPath: string;
|
|
97
100
|
|
|
98
101
|
constructor(
|
|
99
102
|
accountId: string,
|
|
100
103
|
private readonly apiToken: string,
|
|
101
|
-
private readonly fetcher:
|
|
104
|
+
private readonly fetcher: CloudflareFetcher = fetch,
|
|
102
105
|
) {
|
|
103
106
|
if (!accountId || !apiToken) {
|
|
104
107
|
throw new Error('CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_API_TOKEN are required.');
|