Skip to content

Add typed JSON output to theme share - #8649

Open
gonzaloriestra wants to merge 7 commits into
gonzalo/json-theme-pullfrom
gonzalo/json-theme-share
Open

gonzaloriestra wants to merge 7 commits into
gonzalo/json-theme-pullfrom
gonzalo/json-theme-share

Conversation

@gonzaloriestra

@gonzaloriestra gonzaloriestra commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

WHY are these changes introduced?

Shared themes need a consistent machine-readable upload result.

WHAT is this pull request doing?

Reuse the public upload projection for strict string IDs, camelCase links and absolute-path issues. Preserve partial uploads, cancellation and complete environment batches.

The public output follows docs/cli/json-output.md; explicitly named environments use one {environments: [...]} object.

How to manually test your changes?

shopify theme share --store example.myshopify.com --json
shopify theme share --json-schema

Checklist

  • I've considered possible cross-platform impacts (Mac, Linux, Windows)
  • I've considered possible documentation changes
  • I've considered analytics changes to measure impact
  • The change is user-facing — I've identified the correct bump type (patch for bug fixes · minor for new features · major for breaking changes) and added a changeset with pnpm changeset add

@gonzaloriestra
gonzaloriestra added this pull request to stack #8650 September 24, 2026 09:31
@github-actions github-actions Bot added shopify.dev preview Area: @shopify/cli @shopify/cli package issues labels Sep 24, 2026
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/json-theme-share branch from da398e8 to 9ea0fcf Compare September 24, 2026 10:04
@gonzaloriestra
gonzaloriestra removed this pull request from stack #8650 September 24, 2026 10:04
@gonzaloriestra
gonzaloriestra added this pull request to stack #8655 September 24, 2026 10:05
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/json-theme-share branch from 9ea0fcf to 9ea9818 Compare September 24, 2026 10:13
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/json-theme-share branch from 9ea9818 to 9b471ea Compare September 24, 2026 10:25
@github-actions github-actions Bot added no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users. and removed Area: @shopify/cli @shopify/cli package issues labels Sep 24, 2026
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/json-theme-share branch from 9b471ea to 6fa7e17 Compare September 24, 2026 11:56
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/json-theme-share branch from 6fa7e17 to 27f1592 Compare September 24, 2026 13:46
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/json-theme-share branch from 27f1592 to 42d54fc Compare September 24, 2026 14:21
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/json-theme-share branch from 42d54fc to 36bed07 Compare September 24, 2026 14:36
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/json-theme-share branch from 36bed07 to 097f129 Compare September 25, 2026 11:43
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/json-theme-share branch 2 times, most recently from 04d63cb to 7c078ff Compare September 25, 2026 12:27
@gonzaloriestra
gonzaloriestra removed this pull request from stack #8655 September 25, 2026 12:28
@gonzaloriestra
gonzaloriestra added this pull request to stack #8673 September 25, 2026 12:29
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/json-theme-share branch from 7c078ff to b0ff2cc Compare September 28, 2026 08:20
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/json-theme-share branch 2 times, most recently from a0f46f1 to 91e0a87 Compare October 1, 2026 08:52
@gonzaloriestra
gonzaloriestra marked this pull request as draft October 6, 2026 12:18
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/json-theme-share branch 2 times, most recently from def650f to cde1d9d Compare October 6, 2026 12:31
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/json-theme-share branch from cde1d9d to 41248be Compare October 6, 2026 13:53
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/json-theme-share branch from 41248be to 0c010fa Compare October 6, 2026 13:56
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/json-theme-share branch from 0c010fa to 42ab5a2 Compare October 8, 2026 08:27
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/json-theme-share branch from 42ab5a2 to 3a596a9 Compare October 8, 2026 08:43
@gonzaloriestra gonzaloriestra reopened this Oct 8, 2026
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/json-theme-share branch from 3a596a9 to 9aa08a9 Compare October 8, 2026 09:53
@gonzaloriestra
gonzaloriestra marked this pull request as ready for review October 8, 2026 10:04
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Differences in type declarations

We detected differences in the type declarations generated by Typescript for this branch compared to the baseline ('main' branch). Please, review them to ensure they are backward-compatible. Here are some important things to keep in mind:

  • Some seemingly private modules might be re-exported through public modules.
  • If the branch is behind main you might see odd diffs, rebase main into this branch.

New type declarations

We found no new type declarations in this PR

Existing type declarations

packages/cli-kit/dist/public/node/base-command.d.ts
@@ -35,6 +35,7 @@ declare abstract class BaseCommand extends Command {
         argv: string[];
     }>;
     protected environmentsFilename(): string | undefined;
+    protected validateNonTTYFlags(flags: FlagOutput): void;
     protected failMissingNonTTYFlags(flags: FlagOutput, requiredFlags: string[]): void;
     private failMissingNonTTYFlagRequirements;
     private applicableNonTTYFlagRequirements;
packages/cli-kit/dist/public/node/themes/theme-manager.d.ts
@@ -11,5 +11,12 @@ export declare abstract class ThemeManager {
     findOrCreate(name?: string, role?: Role): Promise<Theme>;
     fetch(name?: string, role?: Role): Promise<Theme | undefined>;
     generateThemeName(context: string): string;
-    create(themeRole?: Role, themeName?: string): Promise<Theme>;
+    create(themeRole?: Role, themeName?: string): Promise<{
+        createdAtRuntime: boolean;
+        id: number;
+        name: string;
+        processing: boolean;
+        role: string;
+        src?: string;
+    }>;
 }
\ No newline at end of file

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

⚠️ Potential Breaking Changes Detected

This PR contains changes that may break the existing contract.

@shopify/dev_experience — this PR contains breaking changes that require coordination for the next major release.

📦 Major Version Changesets

The following changesets request a major version bump:

Changeset Package
theme-duplicate-json-contract.md '@shopify/cli': major
theme-info-json-contract.md '@shopify/cli': major
theme-list-json-contract.md '@shopify/cli': major
theme-open-json-contract.md '@shopify/cli': major
theme-push-json-contract.md "@shopify/cli": major

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users. shopify.dev preview

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant