diff --git a/.changeset/theme-account-alias.md b/.changeset/theme-account-alias.md new file mode 100644 index 00000000000..5881a75d710 --- /dev/null +++ b/.changeset/theme-account-alias.md @@ -0,0 +1,6 @@ +--- +'@shopify/cli-kit': patch +'@shopify/theme': patch +--- + +Allow theme commands to authenticate with a Shopify account alias without changing the current global CLI session. diff --git a/docs-shopify.dev/commands/interfaces/app-build.interface.ts b/docs-shopify.dev/commands/interfaces/app-build.interface.ts index b49ee1cf21c..395ee36f287 100644 --- a/docs-shopify.dev/commands/interfaces/app-build.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-build.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appbuild { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-bulk-cancel.interface.ts b/docs-shopify.dev/commands/interfaces/app-bulk-cancel.interface.ts index 35af820689f..c91e0627383 100644 --- a/docs-shopify.dev/commands/interfaces/app-bulk-cancel.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-bulk-cancel.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appbulkcancel { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-bulk-execute.interface.ts b/docs-shopify.dev/commands/interfaces/app-bulk-execute.interface.ts index 20287c13968..42240e11bee 100644 --- a/docs-shopify.dev/commands/interfaces/app-bulk-execute.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-bulk-execute.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appbulkexecute { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-bulk-status.interface.ts b/docs-shopify.dev/commands/interfaces/app-bulk-status.interface.ts index 51f7be3a0fa..5cbefcfafd8 100644 --- a/docs-shopify.dev/commands/interfaces/app-bulk-status.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-bulk-status.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appbulkstatus { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-config-link.interface.ts b/docs-shopify.dev/commands/interfaces/app-config-link.interface.ts index 61612d1b815..2da85fe32d2 100644 --- a/docs-shopify.dev/commands/interfaces/app-config-link.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-config-link.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appconfiglink { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-config-pull.interface.ts b/docs-shopify.dev/commands/interfaces/app-config-pull.interface.ts index b536b11053b..3913e868306 100644 --- a/docs-shopify.dev/commands/interfaces/app-config-pull.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-config-pull.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appconfigpull { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-config-use.interface.ts b/docs-shopify.dev/commands/interfaces/app-config-use.interface.ts index baff1d18848..729b63e91aa 100644 --- a/docs-shopify.dev/commands/interfaces/app-config-use.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-config-use.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appconfiguse { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-config-validate.interface.ts b/docs-shopify.dev/commands/interfaces/app-config-validate.interface.ts index 3d8d00ad456..6828b6814b0 100644 --- a/docs-shopify.dev/commands/interfaces/app-config-validate.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-config-validate.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appconfigvalidate { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-deploy.interface.ts b/docs-shopify.dev/commands/interfaces/app-deploy.interface.ts index e7d9472cfaf..12d9366a0b5 100644 --- a/docs-shopify.dev/commands/interfaces/app-deploy.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-deploy.interface.ts @@ -16,6 +16,12 @@ export interface appdeploy { */ '--allow-updates'?: '' + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-dev-clean.interface.ts b/docs-shopify.dev/commands/interfaces/app-dev-clean.interface.ts index 4f40193eeca..ecbd8559630 100644 --- a/docs-shopify.dev/commands/interfaces/app-dev-clean.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-dev-clean.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appdevclean { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-dev.interface.ts b/docs-shopify.dev/commands/interfaces/app-dev.interface.ts index 82bc41c8b3f..f7c4112cdd4 100644 --- a/docs-shopify.dev/commands/interfaces/app-dev.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-dev.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appdev { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * Resource URL for checkout UI extension. Format: "/cart/{productVariantID}:{productQuantity}" * @environment SHOPIFY_FLAG_CHECKOUT_CART_URL diff --git a/docs-shopify.dev/commands/interfaces/app-env-pull.interface.ts b/docs-shopify.dev/commands/interfaces/app-env-pull.interface.ts index b1955be10b3..1372a40c905 100644 --- a/docs-shopify.dev/commands/interfaces/app-env-pull.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-env-pull.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appenvpull { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-env-show.interface.ts b/docs-shopify.dev/commands/interfaces/app-env-show.interface.ts index 22922d457f7..13562dac66e 100644 --- a/docs-shopify.dev/commands/interfaces/app-env-show.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-env-show.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appenvshow { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-execute.interface.ts b/docs-shopify.dev/commands/interfaces/app-execute.interface.ts index 6579aacae38..877953fc63a 100644 --- a/docs-shopify.dev/commands/interfaces/app-execute.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-execute.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appexecute { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-function-build.interface.ts b/docs-shopify.dev/commands/interfaces/app-function-build.interface.ts index 48fa548058c..0299e15689e 100644 --- a/docs-shopify.dev/commands/interfaces/app-function-build.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-function-build.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appfunctionbuild { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-function-info.interface.ts b/docs-shopify.dev/commands/interfaces/app-function-info.interface.ts index 1a63189a074..42a2f8a21c3 100644 --- a/docs-shopify.dev/commands/interfaces/app-function-info.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-function-info.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appfunctioninfo { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-function-replay.interface.ts b/docs-shopify.dev/commands/interfaces/app-function-replay.interface.ts index 09917f4c3c5..8ae74f9c679 100644 --- a/docs-shopify.dev/commands/interfaces/app-function-replay.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-function-replay.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appfunctionreplay { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-function-run.interface.ts b/docs-shopify.dev/commands/interfaces/app-function-run.interface.ts index 266a8f4bc56..4e8a6448e73 100644 --- a/docs-shopify.dev/commands/interfaces/app-function-run.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-function-run.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appfunctionrun { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-function-schema.interface.ts b/docs-shopify.dev/commands/interfaces/app-function-schema.interface.ts index 184f8c2dd10..371e243fa5e 100644 --- a/docs-shopify.dev/commands/interfaces/app-function-schema.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-function-schema.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appfunctionschema { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-function-typegen.interface.ts b/docs-shopify.dev/commands/interfaces/app-function-typegen.interface.ts index 26e4b821ad3..e14db548a1b 100644 --- a/docs-shopify.dev/commands/interfaces/app-function-typegen.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-function-typegen.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appfunctiontypegen { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-generate-extension.interface.ts b/docs-shopify.dev/commands/interfaces/app-generate-extension.interface.ts index f5b91df900e..04f4492f4b6 100644 --- a/docs-shopify.dev/commands/interfaces/app-generate-extension.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-generate-extension.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appgenerateextension { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-import-custom-data-definitions.interface.ts b/docs-shopify.dev/commands/interfaces/app-import-custom-data-definitions.interface.ts index eadb26647eb..44ad7c3ee90 100644 --- a/docs-shopify.dev/commands/interfaces/app-import-custom-data-definitions.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-import-custom-data-definitions.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appimportcustomdatadefinitions { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-import-extensions.interface.ts b/docs-shopify.dev/commands/interfaces/app-import-extensions.interface.ts index 29b7f26fe74..138377f478c 100644 --- a/docs-shopify.dev/commands/interfaces/app-import-extensions.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-import-extensions.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appimportextensions { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-info.interface.ts b/docs-shopify.dev/commands/interfaces/app-info.interface.ts index fe05159c10f..e76f770cbf3 100644 --- a/docs-shopify.dev/commands/interfaces/app-info.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-info.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appinfo { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-init.interface.ts b/docs-shopify.dev/commands/interfaces/app-init.interface.ts index 5a894ab5af6..0e8d859be70 100644 --- a/docs-shopify.dev/commands/interfaces/app-init.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-init.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appinit { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. Use this to automatically link your new project to an existing app. Using this flag avoids the app selection prompt. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-logs-sources.interface.ts b/docs-shopify.dev/commands/interfaces/app-logs-sources.interface.ts index 1ce5188ffd7..903f6816971 100644 --- a/docs-shopify.dev/commands/interfaces/app-logs-sources.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-logs-sources.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface applogssources { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-logs.interface.ts b/docs-shopify.dev/commands/interfaces/app-logs.interface.ts index 8498e2ac7fb..1b7f6f2bb52 100644 --- a/docs-shopify.dev/commands/interfaces/app-logs.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-logs.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface applogs { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-release.interface.ts b/docs-shopify.dev/commands/interfaces/app-release.interface.ts index ea024422430..78aec0f725d 100644 --- a/docs-shopify.dev/commands/interfaces/app-release.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-release.interface.ts @@ -16,6 +16,12 @@ export interface apprelease { */ '--allow-updates'?: '' + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-versions-list.interface.ts b/docs-shopify.dev/commands/interfaces/app-versions-list.interface.ts index d4c6ca406cd..38017124311 100644 --- a/docs-shopify.dev/commands/interfaces/app-versions-list.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-versions-list.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface appversionslist { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/app-webhook-trigger.interface.ts b/docs-shopify.dev/commands/interfaces/app-webhook-trigger.interface.ts index fe488bf5f68..ef877bd55c0 100644 --- a/docs-shopify.dev/commands/interfaces/app-webhook-trigger.interface.ts +++ b/docs-shopify.dev/commands/interfaces/app-webhook-trigger.interface.ts @@ -21,6 +21,12 @@ export interface appwebhooktrigger { */ '--api-version '?: string + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The Client ID of your app. * @environment SHOPIFY_FLAG_CLIENT_ID diff --git a/docs-shopify.dev/commands/interfaces/theme-console.interface.ts b/docs-shopify.dev/commands/interfaces/theme-console.interface.ts index 2bb63673dae..6b5266aa7b4 100644 --- a/docs-shopify.dev/commands/interfaces/theme-console.interface.ts +++ b/docs-shopify.dev/commands/interfaces/theme-console.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface themeconsole { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The environment to apply to the current command. * @environment SHOPIFY_FLAG_ENVIRONMENT diff --git a/docs-shopify.dev/commands/interfaces/theme-delete.interface.ts b/docs-shopify.dev/commands/interfaces/theme-delete.interface.ts index 16ce3004333..f840c2b7027 100644 --- a/docs-shopify.dev/commands/interfaces/theme-delete.interface.ts +++ b/docs-shopify.dev/commands/interfaces/theme-delete.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface themedelete { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * Delete your development theme. * @environment SHOPIFY_FLAG_DEVELOPMENT diff --git a/docs-shopify.dev/commands/interfaces/theme-dev.interface.ts b/docs-shopify.dev/commands/interfaces/theme-dev.interface.ts index 6cca4461c16..306a2f84aad 100644 --- a/docs-shopify.dev/commands/interfaces/theme-dev.interface.ts +++ b/docs-shopify.dev/commands/interfaces/theme-dev.interface.ts @@ -10,6 +10,12 @@ export interface themedev { */ '-a, --allow-live'?: '' + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The environment to apply to the current command. * @environment SHOPIFY_FLAG_ENVIRONMENT diff --git a/docs-shopify.dev/commands/interfaces/theme-duplicate.interface.ts b/docs-shopify.dev/commands/interfaces/theme-duplicate.interface.ts index 87cac1ae070..ec2e891e8e0 100644 --- a/docs-shopify.dev/commands/interfaces/theme-duplicate.interface.ts +++ b/docs-shopify.dev/commands/interfaces/theme-duplicate.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface themeduplicate { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The environment to apply to the current command. * @environment SHOPIFY_FLAG_ENVIRONMENT diff --git a/docs-shopify.dev/commands/interfaces/theme-info.interface.ts b/docs-shopify.dev/commands/interfaces/theme-info.interface.ts index 13626fc21b1..ea87c1c69ab 100644 --- a/docs-shopify.dev/commands/interfaces/theme-info.interface.ts +++ b/docs-shopify.dev/commands/interfaces/theme-info.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface themeinfo { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * Retrieve info from your development theme. * @environment SHOPIFY_FLAG_DEVELOPMENT diff --git a/docs-shopify.dev/commands/interfaces/theme-list.interface.ts b/docs-shopify.dev/commands/interfaces/theme-list.interface.ts index 3915ac72a84..1469f230b79 100644 --- a/docs-shopify.dev/commands/interfaces/theme-list.interface.ts +++ b/docs-shopify.dev/commands/interfaces/theme-list.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface themelist { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The environment to apply to the current command. * @environment SHOPIFY_FLAG_ENVIRONMENT diff --git a/docs-shopify.dev/commands/interfaces/theme-metafields-pull.interface.ts b/docs-shopify.dev/commands/interfaces/theme-metafields-pull.interface.ts index fa2d7ed2443..c91ba822842 100644 --- a/docs-shopify.dev/commands/interfaces/theme-metafields-pull.interface.ts +++ b/docs-shopify.dev/commands/interfaces/theme-metafields-pull.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface thememetafieldspull { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The environment to apply to the current command. * @environment SHOPIFY_FLAG_ENVIRONMENT diff --git a/docs-shopify.dev/commands/interfaces/theme-open.interface.ts b/docs-shopify.dev/commands/interfaces/theme-open.interface.ts index ad278be9e01..6d6cbbd5689 100644 --- a/docs-shopify.dev/commands/interfaces/theme-open.interface.ts +++ b/docs-shopify.dev/commands/interfaces/theme-open.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface themeopen { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * Open your development theme. * @environment SHOPIFY_FLAG_DEVELOPMENT diff --git a/docs-shopify.dev/commands/interfaces/theme-preview.interface.ts b/docs-shopify.dev/commands/interfaces/theme-preview.interface.ts index 57f05a11f23..71724eb39d1 100644 --- a/docs-shopify.dev/commands/interfaces/theme-preview.interface.ts +++ b/docs-shopify.dev/commands/interfaces/theme-preview.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface themepreview { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The environment to apply to the current command. * @environment SHOPIFY_FLAG_ENVIRONMENT diff --git a/docs-shopify.dev/commands/interfaces/theme-profile.interface.ts b/docs-shopify.dev/commands/interfaces/theme-profile.interface.ts index 27cc8a0ebd2..9d8388e770a 100644 --- a/docs-shopify.dev/commands/interfaces/theme-profile.interface.ts +++ b/docs-shopify.dev/commands/interfaces/theme-profile.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface themeprofile { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The environment to apply to the current command. * @environment SHOPIFY_FLAG_ENVIRONMENT diff --git a/docs-shopify.dev/commands/interfaces/theme-publish.interface.ts b/docs-shopify.dev/commands/interfaces/theme-publish.interface.ts index d040efd5a9a..f1a500c759b 100644 --- a/docs-shopify.dev/commands/interfaces/theme-publish.interface.ts +++ b/docs-shopify.dev/commands/interfaces/theme-publish.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface themepublish { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The environment to apply to the current command. * @environment SHOPIFY_FLAG_ENVIRONMENT diff --git a/docs-shopify.dev/commands/interfaces/theme-pull.interface.ts b/docs-shopify.dev/commands/interfaces/theme-pull.interface.ts index 227338fca0a..d1ec26c5edc 100644 --- a/docs-shopify.dev/commands/interfaces/theme-pull.interface.ts +++ b/docs-shopify.dev/commands/interfaces/theme-pull.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface themepull { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * Pull theme files from your remote development theme. * @environment SHOPIFY_FLAG_DEVELOPMENT diff --git a/docs-shopify.dev/commands/interfaces/theme-push.interface.ts b/docs-shopify.dev/commands/interfaces/theme-push.interface.ts index 3abaa13038d..c0fc9168f90 100644 --- a/docs-shopify.dev/commands/interfaces/theme-push.interface.ts +++ b/docs-shopify.dev/commands/interfaces/theme-push.interface.ts @@ -10,6 +10,12 @@ export interface themepush { */ '-a, --allow-live'?: '' + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * Push theme files from your remote development theme. * @environment SHOPIFY_FLAG_DEVELOPMENT diff --git a/docs-shopify.dev/commands/interfaces/theme-rename.interface.ts b/docs-shopify.dev/commands/interfaces/theme-rename.interface.ts index b1eea93668e..3369b25c282 100644 --- a/docs-shopify.dev/commands/interfaces/theme-rename.interface.ts +++ b/docs-shopify.dev/commands/interfaces/theme-rename.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface themerename { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * Rename your development theme. * @environment SHOPIFY_FLAG_DEVELOPMENT diff --git a/docs-shopify.dev/commands/interfaces/theme-share.interface.ts b/docs-shopify.dev/commands/interfaces/theme-share.interface.ts index 468f14844d4..9df71e03d54 100644 --- a/docs-shopify.dev/commands/interfaces/theme-share.interface.ts +++ b/docs-shopify.dev/commands/interfaces/theme-share.interface.ts @@ -4,6 +4,12 @@ * @publicDocs */ export interface themeshare { + /** + * Alias of the Shopify account to use for authentication. + * @environment SHOPIFY_FLAG_AUTH_ALIAS + */ + '--auth-alias '?: string + /** * The environment to apply to the current command. * @environment SHOPIFY_FLAG_ENVIRONMENT diff --git a/docs-shopify.dev/generated/generated_docs_data_v2.json b/docs-shopify.dev/generated/generated_docs_data_v2.json index 8c4b5fc61fa..1cdd53758f8 100644 --- a/docs-shopify.dev/generated/generated_docs_data_v2.json +++ b/docs-shopify.dev/generated/generated_docs_data_v2.json @@ -6,6 +6,15 @@ "description": "The following flags are available for the `app build` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-build.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-build.interface.ts", "syntaxKind": "PropertySignature", @@ -70,7 +79,7 @@ "environmentValue": "SHOPIFY_FLAG_APP_CONFIG" } ], - "value": "export interface appbuild {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Skips the installation of dependencies. Deprecated, use workspaces instead.\n * @environment SHOPIFY_FLAG_SKIP_DEPENDENCIES_INSTALLATION\n */\n '--skip-dependencies-installation'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appbuild {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Skips the installation of dependencies. Deprecated, use workspaces instead.\n * @environment SHOPIFY_FLAG_SKIP_DEPENDENCIES_INSTALLATION\n */\n '--skip-dependencies-installation'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appbulkcancel": { @@ -80,6 +89,15 @@ "description": "The following flags are available for the `app bulk cancel` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-bulk-cancel.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-bulk-cancel.interface.ts", "syntaxKind": "PropertySignature", @@ -152,7 +170,7 @@ "environmentValue": "SHOPIFY_FLAG_STORE" } ], - "value": "export interface appbulkcancel {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * The bulk operation ID to cancel (numeric ID or full GID).\n * @environment SHOPIFY_FLAG_ID\n */\n '--id ': string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * The store domain. Must be an existing dev store.\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appbulkcancel {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * The bulk operation ID to cancel (numeric ID or full GID).\n * @environment SHOPIFY_FLAG_ID\n */\n '--id ': string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * The store domain. Must be an existing dev store.\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appbulkexecute": { @@ -162,6 +180,15 @@ "description": "The following flags are available for the `app bulk execute` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-bulk-execute.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-bulk-execute.interface.ts", "syntaxKind": "PropertySignature", @@ -289,7 +316,7 @@ "environmentValue": "SHOPIFY_FLAG_VARIABLES" } ], - "value": "export interface appbulkexecute {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The file path where results should be written if --watch is specified. If not specified, results will be written to STDOUT.\n * @environment SHOPIFY_FLAG_OUTPUT_FILE\n */\n '--output-file '?: string\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * The GraphQL query or mutation to run as a bulk operation.\n * @environment SHOPIFY_FLAG_QUERY\n */\n '-q, --query '?: string\n\n /**\n * Path to a file containing the GraphQL query or mutation. Can't be used with --query.\n * @environment SHOPIFY_FLAG_QUERY_FILE\n */\n '--query-file '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * The store domain. Must be an existing dev store.\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Path to a file containing GraphQL variables in JSONL format (one JSON object per line). Can't be used with --variables.\n * @environment SHOPIFY_FLAG_VARIABLE_FILE\n */\n '--variable-file '?: string\n\n /**\n * The values for any GraphQL variables in your mutation, in JSON format. Can be specified multiple times.\n * @environment SHOPIFY_FLAG_VARIABLES\n */\n '-v, --variables '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n\n /**\n * The API version to use for the bulk operation. If not specified, uses the latest stable version.\n * @environment SHOPIFY_FLAG_VERSION\n */\n '--version '?: string\n\n /**\n * Wait for bulk operation results before exiting. Defaults to false.\n * @environment SHOPIFY_FLAG_WATCH\n */\n '--watch'?: ''\n}" + "value": "export interface appbulkexecute {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The file path where results should be written if --watch is specified. If not specified, results will be written to STDOUT.\n * @environment SHOPIFY_FLAG_OUTPUT_FILE\n */\n '--output-file '?: string\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * The GraphQL query or mutation to run as a bulk operation.\n * @environment SHOPIFY_FLAG_QUERY\n */\n '-q, --query '?: string\n\n /**\n * Path to a file containing the GraphQL query or mutation. Can't be used with --query.\n * @environment SHOPIFY_FLAG_QUERY_FILE\n */\n '--query-file '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * The store domain. Must be an existing dev store.\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Path to a file containing GraphQL variables in JSONL format (one JSON object per line). Can't be used with --variables.\n * @environment SHOPIFY_FLAG_VARIABLE_FILE\n */\n '--variable-file '?: string\n\n /**\n * The values for any GraphQL variables in your mutation, in JSON format. Can be specified multiple times.\n * @environment SHOPIFY_FLAG_VARIABLES\n */\n '-v, --variables '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n\n /**\n * The API version to use for the bulk operation. If not specified, uses the latest stable version.\n * @environment SHOPIFY_FLAG_VERSION\n */\n '--version '?: string\n\n /**\n * Wait for bulk operation results before exiting. Defaults to false.\n * @environment SHOPIFY_FLAG_WATCH\n */\n '--watch'?: ''\n}" } }, "appbulkstatus": { @@ -299,6 +326,15 @@ "description": "The following flags are available for the `app bulk status` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-bulk-status.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-bulk-status.interface.ts", "syntaxKind": "PropertySignature", @@ -372,7 +408,7 @@ "environmentValue": "SHOPIFY_FLAG_STORE" } ], - "value": "export interface appbulkstatus {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * The bulk operation ID (numeric ID or full GID). If not provided, lists all bulk operations belonging to this app on this store in the last 7 days.\n * @environment SHOPIFY_FLAG_ID\n */\n '--id '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * The store domain. Must be an existing dev store.\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appbulkstatus {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * The bulk operation ID (numeric ID or full GID). If not provided, lists all bulk operations belonging to this app on this store in the last 7 days.\n * @environment SHOPIFY_FLAG_ID\n */\n '--id '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * The store domain. Must be an existing dev store.\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appconfiglink": { @@ -382,6 +418,15 @@ "description": "The following flags are available for the `app config link` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-config-link.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-config-link.interface.ts", "syntaxKind": "PropertySignature", @@ -437,7 +482,7 @@ "environmentValue": "SHOPIFY_FLAG_APP_CONFIG" } ], - "value": "export interface appconfiglink {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appconfiglink {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appconfigpull": { @@ -447,6 +492,15 @@ "description": "The following flags are available for the `app config pull` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-config-pull.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-config-pull.interface.ts", "syntaxKind": "PropertySignature", @@ -502,7 +556,7 @@ "environmentValue": "SHOPIFY_FLAG_APP_CONFIG" } ], - "value": "export interface appconfigpull {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appconfigpull {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appconfiguse": { @@ -512,6 +566,15 @@ "description": "The following flags are available for the `app config use` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-config-use.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-config-use.interface.ts", "syntaxKind": "PropertySignature", @@ -558,7 +621,7 @@ "environmentValue": "SHOPIFY_FLAG_VERBOSE" } ], - "value": "export interface appconfiguse {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appconfiguse {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appconfigvalidate": { @@ -568,6 +631,15 @@ "description": "The following flags are available for the `app config validate` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-config-validate.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-config-validate.interface.ts", "syntaxKind": "PropertySignature", @@ -632,7 +704,7 @@ "environmentValue": "SHOPIFY_FLAG_JSON" } ], - "value": "export interface appconfigvalidate {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appconfigvalidate {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appdeploy": { @@ -660,6 +732,15 @@ "isOptional": true, "environmentValue": "SHOPIFY_FLAG_ALLOW_UPDATES" }, + { + "filePath": "docs-shopify.dev/commands/interfaces/app-deploy.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-deploy.interface.ts", "syntaxKind": "PropertySignature", @@ -760,7 +841,7 @@ "environmentValue": "SHOPIFY_FLAG_APP_CONFIG" } ], - "value": "export interface appdeploy {\n /**\n * Allows removing extensions and configuration without requiring user confirmation. For CI/CD environments, the recommended flag is --allow-updates.\n * @environment SHOPIFY_FLAG_ALLOW_DELETES\n */\n '--allow-deletes'?: ''\n\n /**\n * Allows adding and updating extensions and configuration without requiring user confirmation. Recommended option for CI/CD environments.\n * @environment SHOPIFY_FLAG_ALLOW_UPDATES\n */\n '--allow-updates'?: ''\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Optional message that will be associated with this version. This is for internal use only and won't be available externally.\n * @environment SHOPIFY_FLAG_MESSAGE\n */\n '--message '?: string\n\n /**\n * Use with caution: Skips building any elements of the app that require building. You should ensure your app has been prepared in advance, such as by running `shopify app build` or by caching build artifacts.\n * @environment SHOPIFY_FLAG_NO_BUILD\n */\n '--no-build'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Creates a version but doesn't release it - it's not made available to merchants. With this flag, a user confirmation is not required.\n * @environment SHOPIFY_FLAG_NO_RELEASE\n */\n '--no-release'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * URL associated with the new app version.\n * @environment SHOPIFY_FLAG_SOURCE_CONTROL_URL\n */\n '--source-control-url '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n\n /**\n * Optional version tag that will be associated with this app version. If not provided, an auto-generated identifier will be generated for this app version.\n * @environment SHOPIFY_FLAG_VERSION\n */\n '--version '?: string\n}" + "value": "export interface appdeploy {\n /**\n * Allows removing extensions and configuration without requiring user confirmation. For CI/CD environments, the recommended flag is --allow-updates.\n * @environment SHOPIFY_FLAG_ALLOW_DELETES\n */\n '--allow-deletes'?: ''\n\n /**\n * Allows adding and updating extensions and configuration without requiring user confirmation. Recommended option for CI/CD environments.\n * @environment SHOPIFY_FLAG_ALLOW_UPDATES\n */\n '--allow-updates'?: ''\n\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Optional message that will be associated with this version. This is for internal use only and won't be available externally.\n * @environment SHOPIFY_FLAG_MESSAGE\n */\n '--message '?: string\n\n /**\n * Use with caution: Skips building any elements of the app that require building. You should ensure your app has been prepared in advance, such as by running `shopify app build` or by caching build artifacts.\n * @environment SHOPIFY_FLAG_NO_BUILD\n */\n '--no-build'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Creates a version but doesn't release it - it's not made available to merchants. With this flag, a user confirmation is not required.\n * @environment SHOPIFY_FLAG_NO_RELEASE\n */\n '--no-release'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * URL associated with the new app version.\n * @environment SHOPIFY_FLAG_SOURCE_CONTROL_URL\n */\n '--source-control-url '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n\n /**\n * Optional version tag that will be associated with this app version. If not provided, an auto-generated identifier will be generated for this app version.\n * @environment SHOPIFY_FLAG_VERSION\n */\n '--version '?: string\n}" } }, "appdevclean": { @@ -770,6 +851,15 @@ "description": "The following flags are available for the `app dev clean` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-dev-clean.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-dev-clean.interface.ts", "syntaxKind": "PropertySignature", @@ -834,7 +924,7 @@ "environmentValue": "SHOPIFY_FLAG_STORE" } ], - "value": "export interface appdevclean {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Store URL. Must be an existing development store.\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appdevclean {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Store URL. Must be an existing development store.\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appdev": { @@ -844,6 +934,15 @@ "description": "The following flags are available for the `app dev` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-dev.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-dev.interface.ts", "syntaxKind": "PropertySignature", @@ -998,7 +1097,7 @@ "environmentValue": "SHOPIFY_FLAG_THEME" } ], - "value": "export interface appdev {\n /**\n * Resource URL for checkout UI extension. Format: \"/cart/{productVariantID}:{productQuantity}\"\n * @environment SHOPIFY_FLAG_CHECKOUT_CART_URL\n */\n '--checkout-cart-url '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Port to use for localhost. Must be between 1 and 65535.\n * @environment SHOPIFY_FLAG_LOCALHOST_PORT\n */\n '--localhost-port '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Uses the app URL from the toml file instead an autogenerated URL for dev.\n * @environment SHOPIFY_FLAG_NO_UPDATE\n */\n '--no-update'?: ''\n\n /**\n * The file path or URL. The file path is to a file that you want updated on idle. The URL path is where you want a webhook posted to report on file changes.\n * @environment SHOPIFY_FLAG_NOTIFY\n */\n '--notify '?: string\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Skips the installation of dependencies. Deprecated, use workspaces instead.\n * @environment SHOPIFY_FLAG_SKIP_DEPENDENCIES_INSTALLATION\n */\n '--skip-dependencies-installation'?: ''\n\n /**\n * Store URL. Must be an existing development or Shopify Plus sandbox store.\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Resource URL for subscription UI extension. Format: \"/products/{productId}\"\n * @environment SHOPIFY_FLAG_SUBSCRIPTION_PRODUCT_URL\n */\n '--subscription-product-url '?: string\n\n /**\n * Theme ID or name of the theme app extension host theme.\n * @environment SHOPIFY_FLAG_THEME\n */\n '-t, --theme '?: string\n\n /**\n * Local port of the theme app extension development server. Must be between 1 and 65535.\n * @environment SHOPIFY_FLAG_THEME_APP_EXTENSION_PORT\n */\n '--theme-app-extension-port '?: string\n\n /**\n * Use a custom tunnel, it must be running before executing dev. Format: \"https://my-tunnel-url:port\".\n * @environment SHOPIFY_FLAG_TUNNEL_URL\n */\n '--tunnel-url '?: string\n\n /**\n * Service entry point will listen to localhost. A tunnel won't be used. Will work for testing many app features, but not those that directly invoke your app (E.g: Webhooks)\n * @environment SHOPIFY_FLAG_USE_LOCALHOST\n */\n '--use-localhost'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appdev {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * Resource URL for checkout UI extension. Format: \"/cart/{productVariantID}:{productQuantity}\"\n * @environment SHOPIFY_FLAG_CHECKOUT_CART_URL\n */\n '--checkout-cart-url '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Port to use for localhost. Must be between 1 and 65535.\n * @environment SHOPIFY_FLAG_LOCALHOST_PORT\n */\n '--localhost-port '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Uses the app URL from the toml file instead an autogenerated URL for dev.\n * @environment SHOPIFY_FLAG_NO_UPDATE\n */\n '--no-update'?: ''\n\n /**\n * The file path or URL. The file path is to a file that you want updated on idle. The URL path is where you want a webhook posted to report on file changes.\n * @environment SHOPIFY_FLAG_NOTIFY\n */\n '--notify '?: string\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Skips the installation of dependencies. Deprecated, use workspaces instead.\n * @environment SHOPIFY_FLAG_SKIP_DEPENDENCIES_INSTALLATION\n */\n '--skip-dependencies-installation'?: ''\n\n /**\n * Store URL. Must be an existing development or Shopify Plus sandbox store.\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Resource URL for subscription UI extension. Format: \"/products/{productId}\"\n * @environment SHOPIFY_FLAG_SUBSCRIPTION_PRODUCT_URL\n */\n '--subscription-product-url '?: string\n\n /**\n * Theme ID or name of the theme app extension host theme.\n * @environment SHOPIFY_FLAG_THEME\n */\n '-t, --theme '?: string\n\n /**\n * Local port of the theme app extension development server. Must be between 1 and 65535.\n * @environment SHOPIFY_FLAG_THEME_APP_EXTENSION_PORT\n */\n '--theme-app-extension-port '?: string\n\n /**\n * Use a custom tunnel, it must be running before executing dev. Format: \"https://my-tunnel-url:port\".\n * @environment SHOPIFY_FLAG_TUNNEL_URL\n */\n '--tunnel-url '?: string\n\n /**\n * Service entry point will listen to localhost. A tunnel won't be used. Will work for testing many app features, but not those that directly invoke your app (E.g: Webhooks)\n * @environment SHOPIFY_FLAG_USE_LOCALHOST\n */\n '--use-localhost'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appenvpull": { @@ -1008,6 +1107,15 @@ "description": "The following flags are available for the `app env pull` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-env-pull.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-env-pull.interface.ts", "syntaxKind": "PropertySignature", @@ -1072,7 +1180,7 @@ "environmentValue": "SHOPIFY_FLAG_APP_CONFIG" } ], - "value": "export interface appenvpull {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Specify an environment file to update if the update flag is set\n * @environment SHOPIFY_FLAG_ENV_FILE\n */\n '--env-file '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appenvpull {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Specify an environment file to update if the update flag is set\n * @environment SHOPIFY_FLAG_ENV_FILE\n */\n '--env-file '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appenvshow": { @@ -1082,6 +1190,15 @@ "description": "The following flags are available for the `app env show` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-env-show.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-env-show.interface.ts", "syntaxKind": "PropertySignature", @@ -1137,7 +1254,7 @@ "environmentValue": "SHOPIFY_FLAG_APP_CONFIG" } ], - "value": "export interface appenvshow {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appenvshow {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appexecute": { @@ -1147,6 +1264,15 @@ "description": "The following flags are available for the `app execute` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-execute.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-execute.interface.ts", "syntaxKind": "PropertySignature", @@ -1265,7 +1391,7 @@ "environmentValue": "SHOPIFY_FLAG_VARIABLES" } ], - "value": "export interface appexecute {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The file name where results should be written, instead of STDOUT.\n * @environment SHOPIFY_FLAG_OUTPUT_FILE\n */\n '--output-file '?: string\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * The GraphQL query or mutation, as a string.\n * @environment SHOPIFY_FLAG_QUERY\n */\n '-q, --query '?: string\n\n /**\n * Path to a file containing the GraphQL query or mutation. Can't be used with --query.\n * @environment SHOPIFY_FLAG_QUERY_FILE\n */\n '--query-file '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * The myshopify.com domain of the store to execute against. The app must be installed on the store. If not specified, you will be prompted to select a store.\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Path to a file containing GraphQL variables in JSON format. Can't be used with --variables.\n * @environment SHOPIFY_FLAG_VARIABLE_FILE\n */\n '--variable-file '?: string\n\n /**\n * The values for any GraphQL variables in your query or mutation, in JSON format.\n * @environment SHOPIFY_FLAG_VARIABLES\n */\n '-v, --variables '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n\n /**\n * The API version to use for the query or mutation. Defaults to the latest stable version.\n * @environment SHOPIFY_FLAG_VERSION\n */\n '--version '?: string\n}" + "value": "export interface appexecute {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The file name where results should be written, instead of STDOUT.\n * @environment SHOPIFY_FLAG_OUTPUT_FILE\n */\n '--output-file '?: string\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * The GraphQL query or mutation, as a string.\n * @environment SHOPIFY_FLAG_QUERY\n */\n '-q, --query '?: string\n\n /**\n * Path to a file containing the GraphQL query or mutation. Can't be used with --query.\n * @environment SHOPIFY_FLAG_QUERY_FILE\n */\n '--query-file '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * The myshopify.com domain of the store to execute against. The app must be installed on the store. If not specified, you will be prompted to select a store.\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Path to a file containing GraphQL variables in JSON format. Can't be used with --variables.\n * @environment SHOPIFY_FLAG_VARIABLE_FILE\n */\n '--variable-file '?: string\n\n /**\n * The values for any GraphQL variables in your query or mutation, in JSON format.\n * @environment SHOPIFY_FLAG_VARIABLES\n */\n '-v, --variables '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n\n /**\n * The API version to use for the query or mutation. Defaults to the latest stable version.\n * @environment SHOPIFY_FLAG_VERSION\n */\n '--version '?: string\n}" } }, "appfunctionbuild": { @@ -1275,6 +1401,15 @@ "description": "The following flags are available for the `app function build` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-function-build.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-function-build.interface.ts", "syntaxKind": "PropertySignature", @@ -1330,7 +1465,7 @@ "environmentValue": "SHOPIFY_FLAG_APP_CONFIG" } ], - "value": "export interface appfunctionbuild {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your function directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appfunctionbuild {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your function directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appfunctioninfo": { @@ -1340,6 +1475,15 @@ "description": "The following flags are available for the `app function info` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-function-info.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-function-info.interface.ts", "syntaxKind": "PropertySignature", @@ -1404,7 +1548,7 @@ "environmentValue": "SHOPIFY_FLAG_JSON" } ], - "value": "export interface appfunctioninfo {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your function directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appfunctioninfo {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your function directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appfunctionreplay": { @@ -1414,6 +1558,15 @@ "description": "The following flags are available for the `app function replay` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-function-replay.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-function-replay.interface.ts", "syntaxKind": "PropertySignature", @@ -1496,7 +1649,7 @@ "environmentValue": "SHOPIFY_FLAG_WATCH" } ], - "value": "export interface appfunctionreplay {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Specifies a log identifier to replay instead of selecting from a list. The identifier is provided in the output of `shopify app dev` and is the suffix of the log file name.\n * @environment SHOPIFY_FLAG_LOG\n */\n '-l, --log '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your function directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n\n /**\n * Re-run the function when the source code changes.\n * @environment SHOPIFY_FLAG_WATCH\n */\n '-w, --watch'?: ''\n}" + "value": "export interface appfunctionreplay {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Specifies a log identifier to replay instead of selecting from a list. The identifier is provided in the output of `shopify app dev` and is the suffix of the log file name.\n * @environment SHOPIFY_FLAG_LOG\n */\n '-l, --log '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your function directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n\n /**\n * Re-run the function when the source code changes.\n * @environment SHOPIFY_FLAG_WATCH\n */\n '-w, --watch'?: ''\n}" } }, "appfunctionrun": { @@ -1506,6 +1659,15 @@ "description": "The following flags are available for the `app function run` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-function-run.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-function-run.interface.ts", "syntaxKind": "PropertySignature", @@ -1588,7 +1750,7 @@ "environmentValue": "SHOPIFY_FLAG_JSON" } ], - "value": "export interface appfunctionrun {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Name of the WebAssembly export to invoke.\n * @environment SHOPIFY_FLAG_EXPORT\n */\n '-e, --export '?: string\n\n /**\n * The input JSON to pass to the function. If omitted, standard input is used.\n * @environment SHOPIFY_FLAG_INPUT\n */\n '-i, --input '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your function directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appfunctionrun {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Name of the WebAssembly export to invoke.\n * @environment SHOPIFY_FLAG_EXPORT\n */\n '-e, --export '?: string\n\n /**\n * The input JSON to pass to the function. If omitted, standard input is used.\n * @environment SHOPIFY_FLAG_INPUT\n */\n '-i, --input '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your function directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appfunctionschema": { @@ -1598,6 +1760,15 @@ "description": "The following flags are available for the `app function schema` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-function-schema.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-function-schema.interface.ts", "syntaxKind": "PropertySignature", @@ -1662,7 +1833,7 @@ "environmentValue": "SHOPIFY_FLAG_APP_CONFIG" } ], - "value": "export interface appfunctionschema {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your function directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Output the schema to stdout instead of writing to a file.\n * @environment SHOPIFY_FLAG_STDOUT\n */\n '--stdout'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appfunctionschema {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your function directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Output the schema to stdout instead of writing to a file.\n * @environment SHOPIFY_FLAG_STDOUT\n */\n '--stdout'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appfunctiontypegen": { @@ -1672,6 +1843,15 @@ "description": "The following flags are available for the `app function typegen` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-function-typegen.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-function-typegen.interface.ts", "syntaxKind": "PropertySignature", @@ -1727,7 +1907,7 @@ "environmentValue": "SHOPIFY_FLAG_APP_CONFIG" } ], - "value": "export interface appfunctiontypegen {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your function directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appfunctiontypegen {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your function directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appgenerateextension": { @@ -1737,6 +1917,15 @@ "description": "The following flags are available for the `app generate extension` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-generate-extension.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-generate-extension.interface.ts", "syntaxKind": "PropertySignature", @@ -1819,7 +2008,7 @@ "environmentValue": "SHOPIFY_FLAG_EXTENSION_TEMPLATE" } ], - "value": "export interface appgenerateextension {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Choose a starting template for your extension, where applicable\n * @environment SHOPIFY_FLAG_FLAVOR\n */\n '--flavor '?: string\n\n /**\n * name of your Extension\n * @environment SHOPIFY_FLAG_NAME\n */\n '-n, --name '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Extension template\n * @environment SHOPIFY_FLAG_EXTENSION_TEMPLATE\n */\n '-t, --template '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appgenerateextension {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Choose a starting template for your extension, where applicable\n * @environment SHOPIFY_FLAG_FLAVOR\n */\n '--flavor '?: string\n\n /**\n * name of your Extension\n * @environment SHOPIFY_FLAG_NAME\n */\n '-n, --name '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Extension template\n * @environment SHOPIFY_FLAG_EXTENSION_TEMPLATE\n */\n '-t, --template '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appimportcustomdatadefinitions": { @@ -1829,6 +2018,15 @@ "description": "The following flags are available for the `app import-custom-data-definitions` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-import-custom-data-definitions.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-import-custom-data-definitions.interface.ts", "syntaxKind": "PropertySignature", @@ -1902,7 +2100,7 @@ "environmentValue": "SHOPIFY_FLAG_STORE" } ], - "value": "export interface appimportcustomdatadefinitions {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Include existing declared definitions in the output.\n * @environment SHOPIFY_FLAG_INCLUDE_EXISTING\n */\n '--include-existing'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Store URL. Must be an existing development or Shopify Plus sandbox store.\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appimportcustomdatadefinitions {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Include existing declared definitions in the output.\n * @environment SHOPIFY_FLAG_INCLUDE_EXISTING\n */\n '--include-existing'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Store URL. Must be an existing development or Shopify Plus sandbox store.\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appimportextensions": { @@ -1912,6 +2110,15 @@ "description": "The following flags are available for the `app import-extensions` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-import-extensions.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-import-extensions.interface.ts", "syntaxKind": "PropertySignature", @@ -1967,7 +2174,7 @@ "environmentValue": "SHOPIFY_FLAG_APP_CONFIG" } ], - "value": "export interface appimportextensions {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appimportextensions {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appinfo": { @@ -1977,6 +2184,15 @@ "description": "The following flags are available for the `app info` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-info.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-info.interface.ts", "syntaxKind": "PropertySignature", @@ -2050,7 +2266,7 @@ "environmentValue": "SHOPIFY_FLAG_JSON" } ], - "value": "export interface appinfo {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n\n /**\n * Outputs environment variables necessary for running and deploying web/.\n * @environment SHOPIFY_FLAG_OUTPUT_WEB_ENV\n */\n '--web-env'?: ''\n}" + "value": "export interface appinfo {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n\n /**\n * Outputs environment variables necessary for running and deploying web/.\n * @environment SHOPIFY_FLAG_OUTPUT_WEB_ENV\n */\n '--web-env'?: ''\n}" } }, "appinit": { @@ -2060,6 +2276,15 @@ "description": "The following flags are available for the `app init` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-init.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-init.interface.ts", "syntaxKind": "PropertySignature", @@ -2142,7 +2367,7 @@ "environmentValue": "SHOPIFY_FLAG_PATH" } ], - "value": "export interface appinit {\n /**\n * The Client ID of your app. Use this to automatically link your new project to an existing app. Using this flag avoids the app selection prompt.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * Which flavor of the given template to use.\n * @environment SHOPIFY_FLAG_TEMPLATE_FLAVOR\n */\n '--flavor '?: string\n\n /**\n * The name for the new app. When provided, skips the app selection prompt and creates a new app with this name.\n * @environment SHOPIFY_FLAG_NAME\n */\n '-n, --name '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The organization ID. Your organization ID can be found in your Dev Dashboard URL: https://dev.shopify.com/dashboard/\n * @environment SHOPIFY_FLAG_ORGANIZATION_ID\n */\n '--organization-id '?: string\n\n /**\n * \n * @environment SHOPIFY_FLAG_PACKAGE_MANAGER\n */\n '-d, --package-manager '?: string\n\n /**\n * \n * @environment SHOPIFY_FLAG_PATH\n */\n '-p, --path '?: string\n\n /**\n * The app template. Accepts one of the following:\n - \n - Any GitHub repo with optional branch and subpath, e.g., https://github.com/Shopify//[subpath]#[branch]\n * @environment SHOPIFY_FLAG_TEMPLATE\n */\n '--template '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appinit {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app. Use this to automatically link your new project to an existing app. Using this flag avoids the app selection prompt.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * Which flavor of the given template to use.\n * @environment SHOPIFY_FLAG_TEMPLATE_FLAVOR\n */\n '--flavor '?: string\n\n /**\n * The name for the new app. When provided, skips the app selection prompt and creates a new app with this name.\n * @environment SHOPIFY_FLAG_NAME\n */\n '-n, --name '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The organization ID. Your organization ID can be found in your Dev Dashboard URL: https://dev.shopify.com/dashboard/\n * @environment SHOPIFY_FLAG_ORGANIZATION_ID\n */\n '--organization-id '?: string\n\n /**\n * \n * @environment SHOPIFY_FLAG_PACKAGE_MANAGER\n */\n '-d, --package-manager '?: string\n\n /**\n * \n * @environment SHOPIFY_FLAG_PATH\n */\n '-p, --path '?: string\n\n /**\n * The app template. Accepts one of the following:\n - \n - Any GitHub repo with optional branch and subpath, e.g., https://github.com/Shopify//[subpath]#[branch]\n * @environment SHOPIFY_FLAG_TEMPLATE\n */\n '--template '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "applogssources": { @@ -2152,6 +2377,15 @@ "description": "The following flags are available for the `app logs sources` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-logs-sources.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-logs-sources.interface.ts", "syntaxKind": "PropertySignature", @@ -2207,7 +2441,7 @@ "environmentValue": "SHOPIFY_FLAG_APP_CONFIG" } ], - "value": "export interface applogssources {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface applogssources {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "applogs": { @@ -2217,6 +2451,15 @@ "description": "The following flags are available for the `app logs` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-logs.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-logs.interface.ts", "syntaxKind": "PropertySignature", @@ -2308,7 +2551,7 @@ "environmentValue": "SHOPIFY_FLAG_STORE" } ], - "value": "export interface applogs {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Filters output to the specified log source.\n * @environment SHOPIFY_FLAG_SOURCE\n */\n '--source '?: string\n\n /**\n * Filters output to the specified status (success or failure).\n * @environment SHOPIFY_FLAG_STATUS\n */\n '--status '?: string\n\n /**\n * Store URL. Must be an existing development or Shopify Plus sandbox store.\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface applogs {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Filters output to the specified log source.\n * @environment SHOPIFY_FLAG_SOURCE\n */\n '--source '?: string\n\n /**\n * Filters output to the specified status (success or failure).\n * @environment SHOPIFY_FLAG_STATUS\n */\n '--status '?: string\n\n /**\n * Store URL. Must be an existing development or Shopify Plus sandbox store.\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "apprelease": { @@ -2336,6 +2579,15 @@ "isOptional": true, "environmentValue": "SHOPIFY_FLAG_ALLOW_UPDATES" }, + { + "filePath": "docs-shopify.dev/commands/interfaces/app-release.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-release.interface.ts", "syntaxKind": "PropertySignature", @@ -2399,7 +2651,7 @@ "environmentValue": "SHOPIFY_FLAG_APP_CONFIG" } ], - "value": "export interface apprelease {\n /**\n * Allows removing extensions and configuration without requiring user confirmation. For CI/CD environments, the recommended flag is --allow-updates.\n * @environment SHOPIFY_FLAG_ALLOW_DELETES\n */\n '--allow-deletes'?: ''\n\n /**\n * Allows adding and updating extensions and configuration without requiring user confirmation. Recommended option for CI/CD environments.\n * @environment SHOPIFY_FLAG_ALLOW_UPDATES\n */\n '--allow-updates'?: ''\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n\n /**\n * The name of the app version to release.\n * @environment SHOPIFY_FLAG_VERSION\n */\n '--version ': string\n}" + "value": "export interface apprelease {\n /**\n * Allows removing extensions and configuration without requiring user confirmation. For CI/CD environments, the recommended flag is --allow-updates.\n * @environment SHOPIFY_FLAG_ALLOW_DELETES\n */\n '--allow-deletes'?: ''\n\n /**\n * Allows adding and updating extensions and configuration without requiring user confirmation. Recommended option for CI/CD environments.\n * @environment SHOPIFY_FLAG_ALLOW_UPDATES\n */\n '--allow-updates'?: ''\n\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n\n /**\n * The name of the app version to release.\n * @environment SHOPIFY_FLAG_VERSION\n */\n '--version ': string\n}" } }, "appversionslist": { @@ -2409,6 +2661,15 @@ "description": "The following flags are available for the `app versions list` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/app-versions-list.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-versions-list.interface.ts", "syntaxKind": "PropertySignature", @@ -2473,7 +2734,7 @@ "environmentValue": "SHOPIFY_FLAG_JSON" } ], - "value": "export interface appversionslist {\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface appversionslist {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "appwebhooktrigger": { @@ -2501,6 +2762,15 @@ "isOptional": true, "environmentValue": "SHOPIFY_FLAG_API_VERSION" }, + { + "filePath": "docs-shopify.dev/commands/interfaces/app-webhook-trigger.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/app-webhook-trigger.interface.ts", "syntaxKind": "PropertySignature", @@ -2574,7 +2844,7 @@ "environmentValue": "SHOPIFY_FLAG_APP_CONFIG" } ], - "value": "export interface appwebhooktrigger {\n /**\n * The URL where the webhook payload should be sent.\n You will need a different address type for each delivery-method:\n · For remote HTTP testing, use a URL that starts with https://\n · For local HTTP testing, use http://localhost:{port}/{url-path}\n · For Google Pub/Sub, use pubsub://{project-id}:{topic-id}\n · For Amazon EventBridge, use an Amazon Resource Name (ARN) starting with arn:aws:events:\n * @environment SHOPIFY_FLAG_ADDRESS\n */\n '--address '?: string\n\n /**\n * The API Version of the webhook topic.\n * @environment SHOPIFY_FLAG_API_VERSION\n */\n '--api-version '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * Your app's client secret. This secret allows us to return the X-Shopify-Hmac-SHA256 header that lets you validate the origin of the response that you receive.\n * @environment SHOPIFY_FLAG_CLIENT_SECRET\n */\n '--client-secret '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Method chosen to deliver the topic payload. If not passed, it's inferred from the address.\n * @environment SHOPIFY_FLAG_DELIVERY_METHOD\n */\n '--delivery-method '?: string\n\n /**\n * This help. When you run the trigger command the CLI will prompt you for any information that isn't passed using flags.\n * @environment SHOPIFY_FLAG_HELP\n */\n '--help'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * The requested webhook topic.\n * @environment SHOPIFY_FLAG_TOPIC\n */\n '--topic '?: string\n}" + "value": "export interface appwebhooktrigger {\n /**\n * The URL where the webhook payload should be sent.\n You will need a different address type for each delivery-method:\n · For remote HTTP testing, use a URL that starts with https://\n · For local HTTP testing, use http://localhost:{port}/{url-path}\n · For Google Pub/Sub, use pubsub://{project-id}:{topic-id}\n · For Amazon EventBridge, use an Amazon Resource Name (ARN) starting with arn:aws:events:\n * @environment SHOPIFY_FLAG_ADDRESS\n */\n '--address '?: string\n\n /**\n * The API Version of the webhook topic.\n * @environment SHOPIFY_FLAG_API_VERSION\n */\n '--api-version '?: string\n\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The Client ID of your app.\n * @environment SHOPIFY_FLAG_CLIENT_ID\n */\n '--client-id '?: string\n\n /**\n * Your app's client secret. This secret allows us to return the X-Shopify-Hmac-SHA256 header that lets you validate the origin of the response that you receive.\n * @environment SHOPIFY_FLAG_CLIENT_SECRET\n */\n '--client-secret '?: string\n\n /**\n * The name of the app configuration.\n * @environment SHOPIFY_FLAG_APP_CONFIG\n */\n '-c, --config '?: string\n\n /**\n * Method chosen to deliver the topic payload. If not passed, it's inferred from the address.\n * @environment SHOPIFY_FLAG_DELIVERY_METHOD\n */\n '--delivery-method '?: string\n\n /**\n * This help. When you run the trigger command the CLI will prompt you for any information that isn't passed using flags.\n * @environment SHOPIFY_FLAG_HELP\n */\n '--help'?: ''\n\n /**\n * The path to your app directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Reset all your settings.\n * @environment SHOPIFY_FLAG_RESET\n */\n '--reset'?: ''\n\n /**\n * The requested webhook topic.\n * @environment SHOPIFY_FLAG_TOPIC\n */\n '--topic '?: string\n}" } }, "authlogin": { @@ -4803,6 +5073,15 @@ "description": "The following flags are available for the `theme console` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/theme-console.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/theme-console.interface.ts", "syntaxKind": "PropertySignature", @@ -4876,7 +5155,7 @@ "environmentValue": "SHOPIFY_FLAG_STORE" } ], - "value": "export interface themeconsole {\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * The password for storefronts with password protection.\n * @environment SHOPIFY_FLAG_STORE_PASSWORD\n */\n '--store-password '?: string\n\n /**\n * The url to be used as context\n * @environment SHOPIFY_FLAG_URL\n */\n '--url '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface themeconsole {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * The password for storefronts with password protection.\n * @environment SHOPIFY_FLAG_STORE_PASSWORD\n */\n '--store-password '?: string\n\n /**\n * The url to be used as context\n * @environment SHOPIFY_FLAG_URL\n */\n '--url '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "themedelete": { @@ -4886,6 +5165,15 @@ "description": "The following flags are available for the `theme delete` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/theme-delete.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/theme-delete.interface.ts", "syntaxKind": "PropertySignature", @@ -4977,7 +5265,7 @@ "environmentValue": "SHOPIFY_FLAG_THEME_ID" } ], - "value": "export interface themedelete {\n /**\n * Delete your development theme.\n * @environment SHOPIFY_FLAG_DEVELOPMENT\n */\n '-d, --development'?: ''\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Skip confirmation.\n * @environment SHOPIFY_FLAG_FORCE\n */\n '-f, --force'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Include others development themes in theme list.\n * @environment SHOPIFY_FLAG_SHOW_ALL\n */\n '-a, --show-all'?: ''\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface themedelete {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * Delete your development theme.\n * @environment SHOPIFY_FLAG_DEVELOPMENT\n */\n '-d, --development'?: ''\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Skip confirmation.\n * @environment SHOPIFY_FLAG_FORCE\n */\n '-f, --force'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Include others development themes in theme list.\n * @environment SHOPIFY_FLAG_SHOW_ALL\n */\n '-a, --show-all'?: ''\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "themedev": { @@ -4987,6 +5275,15 @@ "description": "The following flags are available for the `theme dev` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/theme-dev.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/theme-dev.interface.ts", "syntaxKind": "PropertySignature", @@ -5177,7 +5474,7 @@ "environmentValue": "SHOPIFY_FLAG_IGNORE" } ], - "value": "export interface themedev {\n /**\n * Allow development on a live theme.\n * @environment SHOPIFY_FLAG_ALLOW_LIVE\n */\n '-a, --allow-live'?: ''\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Controls the visibility of the error overlay when an theme asset upload fails:\n- silent Prevents the error overlay from appearing.\n- default Displays the error overlay.\n \n * @environment SHOPIFY_FLAG_ERROR_OVERLAY\n */\n '--error-overlay '?: string\n\n /**\n * Set which network interface the web server listens on. The default value is 127.0.0.1.\n * @environment SHOPIFY_FLAG_HOST\n */\n '--host '?: string\n\n /**\n * Skip hot reloading any files that match the specified pattern.\n * @environment SHOPIFY_FLAG_IGNORE\n */\n '-x, --ignore '?: string\n\n /**\n * The listing preset to use for multi-preset themes. Applies preset files from listings/[preset-name] directory.\n * @environment SHOPIFY_FLAG_LISTING\n */\n '--listing '?: string\n\n /**\n * The live reload mode switches the server behavior when a file is modified:\n- hot-reload Hot reloads local changes to CSS and sections (default)\n- full-page Always refreshes the entire page\n- off Deactivate live reload\n * @environment SHOPIFY_FLAG_LIVE_RELOAD\n */\n '--live-reload '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Prevents files from being deleted in the remote theme when a file has been deleted locally. This applies to files that are deleted while the command is running, and files that have been deleted locally before the command is run.\n * @environment SHOPIFY_FLAG_NODELETE\n */\n '-n, --nodelete'?: ''\n\n /**\n * The file path or URL. The file path is to a file that you want updated on idle. The URL path is where you want a webhook posted to report on file changes.\n * @environment SHOPIFY_FLAG_NOTIFY\n */\n '--notify '?: string\n\n /**\n * Hot reload only files that match the specified pattern.\n * @environment SHOPIFY_FLAG_ONLY\n */\n '-o, --only '?: string\n\n /**\n * Automatically launch the theme preview in your default web browser.\n * @environment SHOPIFY_FLAG_OPEN\n */\n '--open'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Local port to serve theme preview from. Must be between 1 and 65535.\n * @environment SHOPIFY_FLAG_PORT\n */\n '--port '?: string\n\n /**\n * Inject the standard events inspector into storefront HTML.\n * @environment SHOPIFY_FLAG_STANDARD_EVENTS_INSPECTOR\n */\n '--standard-events-inspector'?: ''\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * The password for storefronts with password protection.\n * @environment SHOPIFY_FLAG_STORE_PASSWORD\n */\n '--store-password '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Synchronize Theme Editor updates in the local theme files.\n * @environment SHOPIFY_FLAG_THEME_EDITOR_SYNC\n */\n '--theme-editor-sync'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface themedev {\n /**\n * Allow development on a live theme.\n * @environment SHOPIFY_FLAG_ALLOW_LIVE\n */\n '-a, --allow-live'?: ''\n\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Controls the visibility of the error overlay when an theme asset upload fails:\n- silent Prevents the error overlay from appearing.\n- default Displays the error overlay.\n \n * @environment SHOPIFY_FLAG_ERROR_OVERLAY\n */\n '--error-overlay '?: string\n\n /**\n * Set which network interface the web server listens on. The default value is 127.0.0.1.\n * @environment SHOPIFY_FLAG_HOST\n */\n '--host '?: string\n\n /**\n * Skip hot reloading any files that match the specified pattern.\n * @environment SHOPIFY_FLAG_IGNORE\n */\n '-x, --ignore '?: string\n\n /**\n * The listing preset to use for multi-preset themes. Applies preset files from listings/[preset-name] directory.\n * @environment SHOPIFY_FLAG_LISTING\n */\n '--listing '?: string\n\n /**\n * The live reload mode switches the server behavior when a file is modified:\n- hot-reload Hot reloads local changes to CSS and sections (default)\n- full-page Always refreshes the entire page\n- off Deactivate live reload\n * @environment SHOPIFY_FLAG_LIVE_RELOAD\n */\n '--live-reload '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Prevents files from being deleted in the remote theme when a file has been deleted locally. This applies to files that are deleted while the command is running, and files that have been deleted locally before the command is run.\n * @environment SHOPIFY_FLAG_NODELETE\n */\n '-n, --nodelete'?: ''\n\n /**\n * The file path or URL. The file path is to a file that you want updated on idle. The URL path is where you want a webhook posted to report on file changes.\n * @environment SHOPIFY_FLAG_NOTIFY\n */\n '--notify '?: string\n\n /**\n * Hot reload only files that match the specified pattern.\n * @environment SHOPIFY_FLAG_ONLY\n */\n '-o, --only '?: string\n\n /**\n * Automatically launch the theme preview in your default web browser.\n * @environment SHOPIFY_FLAG_OPEN\n */\n '--open'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Local port to serve theme preview from. Must be between 1 and 65535.\n * @environment SHOPIFY_FLAG_PORT\n */\n '--port '?: string\n\n /**\n * Inject the standard events inspector into storefront HTML.\n * @environment SHOPIFY_FLAG_STANDARD_EVENTS_INSPECTOR\n */\n '--standard-events-inspector'?: ''\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * The password for storefronts with password protection.\n * @environment SHOPIFY_FLAG_STORE_PASSWORD\n */\n '--store-password '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Synchronize Theme Editor updates in the local theme files.\n * @environment SHOPIFY_FLAG_THEME_EDITOR_SYNC\n */\n '--theme-editor-sync'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "themeduplicate": { @@ -5187,6 +5484,15 @@ "description": "The following flags are available for the `theme duplicate` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/theme-duplicate.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/theme-duplicate.interface.ts", "syntaxKind": "PropertySignature", @@ -5269,7 +5575,7 @@ "environmentValue": "SHOPIFY_FLAG_THEME_ID" } ], - "value": "export interface themeduplicate {\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Force the duplicate operation to run without prompts or confirmations.\n * @environment SHOPIFY_FLAG_FORCE\n */\n '-f, --force'?: ''\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Name of the newly duplicated theme.\n * @environment SHOPIFY_FLAG_NAME\n */\n '-n, --name '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface themeduplicate {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Force the duplicate operation to run without prompts or confirmations.\n * @environment SHOPIFY_FLAG_FORCE\n */\n '-f, --force'?: ''\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Name of the newly duplicated theme.\n * @environment SHOPIFY_FLAG_NAME\n */\n '-n, --name '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "themeinfo": { @@ -5279,6 +5585,15 @@ "description": "The following flags are available for the `theme info` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/theme-info.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/theme-info.interface.ts", "syntaxKind": "PropertySignature", @@ -5361,7 +5676,7 @@ "environmentValue": "SHOPIFY_FLAG_THEME_ID" } ], - "value": "export interface themeinfo {\n /**\n * Retrieve info from your development theme.\n * @environment SHOPIFY_FLAG_DEVELOPMENT\n */\n '-d, --development'?: ''\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface themeinfo {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * Retrieve info from your development theme.\n * @environment SHOPIFY_FLAG_DEVELOPMENT\n */\n '-d, --development'?: ''\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "themeinit": { @@ -5456,6 +5771,15 @@ "description": "The following flags are available for the `theme list` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/theme-list.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/theme-list.interface.ts", "syntaxKind": "PropertySignature", @@ -5547,7 +5871,7 @@ "environmentValue": "SHOPIFY_FLAG_STORE" } ], - "value": "export interface themelist {\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Only list theme with the given ID.\n * @environment SHOPIFY_FLAG_ID\n */\n '--id '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Only list themes that contain the given name.\n * @environment SHOPIFY_FLAG_NAME\n */\n '--name '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Only list themes with the given role.\n * @environment SHOPIFY_FLAG_ROLE\n */\n '--role '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface themelist {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Only list theme with the given ID.\n * @environment SHOPIFY_FLAG_ID\n */\n '--id '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Only list themes that contain the given name.\n * @environment SHOPIFY_FLAG_NAME\n */\n '--name '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Only list themes with the given role.\n * @environment SHOPIFY_FLAG_ROLE\n */\n '--role '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "thememetafieldspull": { @@ -5557,6 +5881,15 @@ "description": "The following flags are available for the `theme metafields pull` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/theme-metafields-pull.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/theme-metafields-pull.interface.ts", "syntaxKind": "PropertySignature", @@ -5612,7 +5945,7 @@ "environmentValue": "SHOPIFY_FLAG_STORE" } ], - "value": "export interface thememetafieldspull {\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface thememetafieldspull {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "themeopen": { @@ -5622,6 +5955,15 @@ "description": "The following flags are available for the `theme open` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/theme-open.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/theme-open.interface.ts", "syntaxKind": "PropertySignature", @@ -5713,7 +6055,7 @@ "environmentValue": "SHOPIFY_FLAG_THEME_ID" } ], - "value": "export interface themeopen {\n /**\n * Open your development theme.\n * @environment SHOPIFY_FLAG_DEVELOPMENT\n */\n '-d, --development'?: ''\n\n /**\n * Open the theme editor for the specified theme in the browser.\n * @environment SHOPIFY_FLAG_EDITOR\n */\n '-E, --editor'?: ''\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Open your live (published) theme.\n * @environment SHOPIFY_FLAG_LIVE\n */\n '-l, --live'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface themeopen {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * Open your development theme.\n * @environment SHOPIFY_FLAG_DEVELOPMENT\n */\n '-d, --development'?: ''\n\n /**\n * Open the theme editor for the specified theme in the browser.\n * @environment SHOPIFY_FLAG_EDITOR\n */\n '-E, --editor'?: ''\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Open your live (published) theme.\n * @environment SHOPIFY_FLAG_LIVE\n */\n '-l, --live'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "themepackage": { @@ -5761,6 +6103,15 @@ "description": "The following flags are available for the `theme preview` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/theme-preview.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/theme-preview.interface.ts", "syntaxKind": "PropertySignature", @@ -5859,7 +6210,7 @@ "environmentValue": "SHOPIFY_FLAG_THEME_ID" } ], - "value": "export interface themepreview {\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Output the preview URL and identifier as JSON.\n * @environment SHOPIFY_FLAG_JSON\n */\n '--json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Automatically launch the theme preview in your default web browser.\n * @environment SHOPIFY_FLAG_OPEN\n */\n '--open'?: ''\n\n /**\n * Path to a JSON overrides file.\n * @environment SHOPIFY_FLAG_OVERRIDES\n */\n '--overrides ': string\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * An existing preview identifier to update instead of creating a new preview.\n * @environment SHOPIFY_FLAG_PREVIEW_ID\n */\n '--preview-id '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme ': string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface themepreview {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Output the preview URL and identifier as JSON.\n * @environment SHOPIFY_FLAG_JSON\n */\n '--json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Automatically launch the theme preview in your default web browser.\n * @environment SHOPIFY_FLAG_OPEN\n */\n '--open'?: ''\n\n /**\n * Path to a JSON overrides file.\n * @environment SHOPIFY_FLAG_OVERRIDES\n */\n '--overrides ': string\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * An existing preview identifier to update instead of creating a new preview.\n * @environment SHOPIFY_FLAG_PREVIEW_ID\n */\n '--preview-id '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme ': string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "themeprofile": { @@ -5869,6 +6220,15 @@ "description": "The following flags are available for the `theme profile` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/theme-profile.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/theme-profile.interface.ts", "syntaxKind": "PropertySignature", @@ -5960,7 +6320,7 @@ "environmentValue": "SHOPIFY_FLAG_THEME_ID" } ], - "value": "export interface themeprofile {\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * The password for storefronts with password protection.\n * @environment SHOPIFY_FLAG_STORE_PASSWORD\n */\n '--store-password '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * The url to be used as context\n * @environment SHOPIFY_FLAG_URL\n */\n '--url '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface themeprofile {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * The password for storefronts with password protection.\n * @environment SHOPIFY_FLAG_STORE_PASSWORD\n */\n '--store-password '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * The url to be used as context\n * @environment SHOPIFY_FLAG_URL\n */\n '--url '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "themepublish": { @@ -5970,6 +6330,15 @@ "description": "The following flags are available for the `theme publish` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/theme-publish.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/theme-publish.interface.ts", "syntaxKind": "PropertySignature", @@ -6043,7 +6412,7 @@ "environmentValue": "SHOPIFY_FLAG_THEME_ID" } ], - "value": "export interface themepublish {\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Skip confirmation.\n * @environment SHOPIFY_FLAG_FORCE\n */\n '-f, --force'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface themepublish {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Skip confirmation.\n * @environment SHOPIFY_FLAG_FORCE\n */\n '-f, --force'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "themepull": { @@ -6053,6 +6422,15 @@ "description": "The following flags are available for the `theme pull` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/theme-pull.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/theme-pull.interface.ts", "syntaxKind": "PropertySignature", @@ -6162,7 +6540,7 @@ "environmentValue": "SHOPIFY_FLAG_IGNORE" } ], - "value": "export interface themepull {\n /**\n * Pull theme files from your remote development theme.\n * @environment SHOPIFY_FLAG_DEVELOPMENT\n */\n '-d, --development'?: ''\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Skip downloading the specified files (Multiple flags allowed). Wrap the value in double quotes if you're using wildcards.\n * @environment SHOPIFY_FLAG_IGNORE\n */\n '-x, --ignore '?: string\n\n /**\n * Pull theme files from your remote live theme.\n * @environment SHOPIFY_FLAG_LIVE\n */\n '-l, --live'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Prevent deleting local files that don't exist remotely.\n * @environment SHOPIFY_FLAG_NODELETE\n */\n '-n, --nodelete'?: ''\n\n /**\n * Download only the specified files (Multiple flags allowed). Wrap the value in double quotes if you're using wildcards.\n * @environment SHOPIFY_FLAG_ONLY\n */\n '-o, --only '?: string\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface themepull {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * Pull theme files from your remote development theme.\n * @environment SHOPIFY_FLAG_DEVELOPMENT\n */\n '-d, --development'?: ''\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Skip downloading the specified files (Multiple flags allowed). Wrap the value in double quotes if you're using wildcards.\n * @environment SHOPIFY_FLAG_IGNORE\n */\n '-x, --ignore '?: string\n\n /**\n * Pull theme files from your remote live theme.\n * @environment SHOPIFY_FLAG_LIVE\n */\n '-l, --live'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Prevent deleting local files that don't exist remotely.\n * @environment SHOPIFY_FLAG_NODELETE\n */\n '-n, --nodelete'?: ''\n\n /**\n * Download only the specified files (Multiple flags allowed). Wrap the value in double quotes if you're using wildcards.\n * @environment SHOPIFY_FLAG_ONLY\n */\n '-o, --only '?: string\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "themepush": { @@ -6172,6 +6550,15 @@ "description": "The following flags are available for the `theme push` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/theme-push.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/theme-push.interface.ts", "syntaxKind": "PropertySignature", @@ -6344,7 +6731,7 @@ "environmentValue": "SHOPIFY_FLAG_IGNORE" } ], - "value": "export interface themepush {\n /**\n * Allow push to a live theme.\n * @environment SHOPIFY_FLAG_ALLOW_LIVE\n */\n '-a, --allow-live'?: ''\n\n /**\n * Push theme files from your remote development theme.\n * @environment SHOPIFY_FLAG_DEVELOPMENT\n */\n '-d, --development'?: ''\n\n /**\n * Unique identifier for a development theme context (e.g., PR number, branch name). Reuses an existing development theme with this context name, or creates one if none exists.\n * @environment SHOPIFY_FLAG_DEVELOPMENT_CONTEXT\n */\n '-c, --development-context '?: string\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Skip uploading the specified files (Multiple flags allowed). Wrap the value in double quotes if you're using wildcards.\n * @environment SHOPIFY_FLAG_IGNORE\n */\n '-x, --ignore '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * The listing preset to use for multi-preset themes. Applies preset files from listings/[preset-name] directory.\n * @environment SHOPIFY_FLAG_LISTING\n */\n '--listing '?: string\n\n /**\n * Push theme files from your remote live theme.\n * @environment SHOPIFY_FLAG_LIVE\n */\n '-l, --live'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Prevent deleting remote files that don't exist locally.\n * @environment SHOPIFY_FLAG_NODELETE\n */\n '-n, --nodelete'?: ''\n\n /**\n * Upload only the specified files (Multiple flags allowed). Wrap the value in double quotes if you're using wildcards.\n * @environment SHOPIFY_FLAG_ONLY\n */\n '-o, --only '?: string\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Publish as the live theme after uploading.\n * @environment SHOPIFY_FLAG_PUBLISH\n */\n '-p, --publish'?: ''\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Require theme check to pass without errors before pushing. Warnings are allowed.\n * @environment SHOPIFY_FLAG_STRICT_PUSH\n */\n '--strict'?: ''\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Create a new unpublished theme and push to it.\n * @environment SHOPIFY_FLAG_UNPUBLISHED\n */\n '-u, --unpublished'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface themepush {\n /**\n * Allow push to a live theme.\n * @environment SHOPIFY_FLAG_ALLOW_LIVE\n */\n '-a, --allow-live'?: ''\n\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * Push theme files from your remote development theme.\n * @environment SHOPIFY_FLAG_DEVELOPMENT\n */\n '-d, --development'?: ''\n\n /**\n * Unique identifier for a development theme context (e.g., PR number, branch name). Reuses an existing development theme with this context name, or creates one if none exists.\n * @environment SHOPIFY_FLAG_DEVELOPMENT_CONTEXT\n */\n '-c, --development-context '?: string\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Skip uploading the specified files (Multiple flags allowed). Wrap the value in double quotes if you're using wildcards.\n * @environment SHOPIFY_FLAG_IGNORE\n */\n '-x, --ignore '?: string\n\n /**\n * Output the result as JSON. Automatically disables color output.\n * @environment SHOPIFY_FLAG_JSON\n */\n '-j, --json'?: ''\n\n /**\n * The listing preset to use for multi-preset themes. Applies preset files from listings/[preset-name] directory.\n * @environment SHOPIFY_FLAG_LISTING\n */\n '--listing '?: string\n\n /**\n * Push theme files from your remote live theme.\n * @environment SHOPIFY_FLAG_LIVE\n */\n '-l, --live'?: ''\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Prevent deleting remote files that don't exist locally.\n * @environment SHOPIFY_FLAG_NODELETE\n */\n '-n, --nodelete'?: ''\n\n /**\n * Upload only the specified files (Multiple flags allowed). Wrap the value in double quotes if you're using wildcards.\n * @environment SHOPIFY_FLAG_ONLY\n */\n '-o, --only '?: string\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Publish as the live theme after uploading.\n * @environment SHOPIFY_FLAG_PUBLISH\n */\n '-p, --publish'?: ''\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Require theme check to pass without errors before pushing. Warnings are allowed.\n * @environment SHOPIFY_FLAG_STRICT_PUSH\n */\n '--strict'?: ''\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Create a new unpublished theme and push to it.\n * @environment SHOPIFY_FLAG_UNPUBLISHED\n */\n '-u, --unpublished'?: ''\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "themerename": { @@ -6354,6 +6741,15 @@ "description": "The following flags are available for the `theme rename` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/theme-rename.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/theme-rename.interface.ts", "syntaxKind": "PropertySignature", @@ -6445,7 +6841,7 @@ "environmentValue": "SHOPIFY_FLAG_THEME_ID" } ], - "value": "export interface themerename {\n /**\n * Rename your development theme.\n * @environment SHOPIFY_FLAG_DEVELOPMENT\n */\n '-d, --development'?: ''\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Rename your remote live theme.\n * @environment SHOPIFY_FLAG_LIVE\n */\n '-l, --live'?: ''\n\n /**\n * The new name for the theme.\n * @environment SHOPIFY_FLAG_NEW_NAME\n */\n '-n, --name '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface themerename {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * Rename your development theme.\n * @environment SHOPIFY_FLAG_DEVELOPMENT\n */\n '-d, --development'?: ''\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * Rename your remote live theme.\n * @environment SHOPIFY_FLAG_LIVE\n */\n '-l, --live'?: ''\n\n /**\n * The new name for the theme.\n * @environment SHOPIFY_FLAG_NEW_NAME\n */\n '-n, --name '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Theme ID or name of the remote theme.\n * @environment SHOPIFY_FLAG_THEME_ID\n */\n '-t, --theme '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "themeshare": { @@ -6455,6 +6851,15 @@ "description": "The following flags are available for the `theme share` command:", "isPublicDocs": true, "members": [ + { + "filePath": "docs-shopify.dev/commands/interfaces/theme-share.interface.ts", + "syntaxKind": "PropertySignature", + "name": "--auth-alias ", + "value": "string", + "description": "Alias of the Shopify account to use for authentication.", + "isOptional": true, + "environmentValue": "SHOPIFY_FLAG_AUTH_ALIAS" + }, { "filePath": "docs-shopify.dev/commands/interfaces/theme-share.interface.ts", "syntaxKind": "PropertySignature", @@ -6519,7 +6924,7 @@ "environmentValue": "SHOPIFY_FLAG_STORE" } ], - "value": "export interface themeshare {\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * The listing preset to use for multi-preset themes. Applies preset files from listings/[preset-name] directory.\n * @environment SHOPIFY_FLAG_LISTING\n */\n '--listing '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" + "value": "export interface themeshare {\n /**\n * Alias of the Shopify account to use for authentication.\n * @environment SHOPIFY_FLAG_AUTH_ALIAS\n */\n '--auth-alias '?: string\n\n /**\n * The environment to apply to the current command.\n * @environment SHOPIFY_FLAG_ENVIRONMENT\n */\n '-e, --environment '?: string\n\n /**\n * The listing preset to use for multi-preset themes. Applies preset files from listings/[preset-name] directory.\n * @environment SHOPIFY_FLAG_LISTING\n */\n '--listing '?: string\n\n /**\n * Disable color output.\n * @environment SHOPIFY_FLAG_NO_COLOR\n */\n '--no-color'?: ''\n\n /**\n * Password generated from the Theme Access app or an Admin API token.\n * @environment SHOPIFY_CLI_THEME_TOKEN\n */\n '--password '?: string\n\n /**\n * The path where you want to run the command. Defaults to the current working directory.\n * @environment SHOPIFY_FLAG_PATH\n */\n '--path '?: string\n\n /**\n * Store URL. It can be the store prefix (example) or the full myshopify.com URL (example.myshopify.com, https://example.myshopify.com).\n * @environment SHOPIFY_FLAG_STORE\n */\n '-s, --store '?: string\n\n /**\n * Increase the verbosity of the output.\n * @environment SHOPIFY_FLAG_VERBOSE\n */\n '--verbose'?: ''\n}" } }, "upgrade": { diff --git a/packages/app/src/cli/commands/app/app-logs/sources.ts b/packages/app/src/cli/commands/app/app-logs/sources.ts index b76cf9f04e7..5f02f59fc84 100644 --- a/packages/app/src/cli/commands/app/app-logs/sources.ts +++ b/packages/app/src/cli/commands/app/app-logs/sources.ts @@ -24,6 +24,7 @@ export default class Sources extends AppLinkedCommand { clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], }) if (app.errors.isEmpty()) { diff --git a/packages/app/src/cli/commands/app/config/link.ts b/packages/app/src/cli/commands/app/config/link.ts index c108f2c5f9e..b2662e3fe33 100644 --- a/packages/app/src/cli/commands/app/config/link.ts +++ b/packages/app/src/cli/commands/app/config/link.ts @@ -2,6 +2,7 @@ import {appFlags} from '../../../flags.js' import {linkedAppContext} from '../../../services/app-context.js' import link, {LinkOptions} from '../../../services/app/config/link.js' import AppLinkedCommand, {AppLinkedCommandOutput} from '../../../utilities/app-linked-command.js' +import {sessionIdFromAuthAlias} from '../../../utilities/auth-alias.js' import {Flags} from '@oclif/core' import {globalFlags} from '@shopify/cli-kit/node/cli' @@ -27,12 +28,14 @@ export default class ConfigLink extends AppLinkedCommand { public async run(): Promise { const {flags} = await this.parse(ConfigLink) + const authSessionId = await sessionIdFromAuthAlias(flags['auth-alias']) const options: LinkOptions = { directory: flags.path, apiKey: flags['client-id'], organizationId: flags['organization-id'], configName: flags.config, + ...(authSessionId ? {authSessionId} : {}), } const result = await link(options) @@ -42,6 +45,7 @@ export default class ConfigLink extends AppLinkedCommand { clientId: undefined, forceRelink: false, userProvidedConfigName: result.configFileName, + authAlias: flags['auth-alias'], }) return {app} diff --git a/packages/app/src/cli/commands/app/config/pull.ts b/packages/app/src/cli/commands/app/config/pull.ts index a90dd514364..a30494626df 100644 --- a/packages/app/src/cli/commands/app/config/pull.ts +++ b/packages/app/src/cli/commands/app/config/pull.ts @@ -28,6 +28,7 @@ This command reuses the existing linked app and organization and skips all inter clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], }) const {configuration, configPath} = await pull({ diff --git a/packages/app/src/cli/commands/app/config/validate.ts b/packages/app/src/cli/commands/app/config/validate.ts index 4da9ddc48ba..b64212dbaed 100644 --- a/packages/app/src/cli/commands/app/config/validate.ts +++ b/packages/app/src/cli/commands/app/config/validate.ts @@ -91,6 +91,7 @@ export default class Validate extends AppLinkedCommand { clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], unsafeTolerateErrors: true, }) app = context.app diff --git a/packages/app/src/cli/commands/app/demo/watcher.ts b/packages/app/src/cli/commands/app/demo/watcher.ts index 10892e8456a..8ce1f35f5c4 100644 --- a/packages/app/src/cli/commands/app/demo/watcher.ts +++ b/packages/app/src/cli/commands/app/demo/watcher.ts @@ -24,6 +24,7 @@ export default class DemoWatcher extends AppLinkedCommand { clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], }) const watcher = new AppEventWatcher(app) diff --git a/packages/app/src/cli/commands/app/deploy.ts b/packages/app/src/cli/commands/app/deploy.ts index b5b5a437db3..9d25a0e511f 100644 --- a/packages/app/src/cli/commands/app/deploy.ts +++ b/packages/app/src/cli/commands/app/deploy.ts @@ -102,6 +102,7 @@ export default class Deploy extends AppLinkedCommand { clientId, forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], }) const allowUpdates = force || flags['allow-updates'] diff --git a/packages/app/src/cli/commands/app/dev.ts b/packages/app/src/cli/commands/app/dev.ts index 17edc962a05..745bc34160a 100644 --- a/packages/app/src/cli/commands/app/dev.ts +++ b/packages/app/src/cli/commands/app/dev.ts @@ -116,6 +116,7 @@ export default class Dev extends AppLinkedCommand { clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], }) const store = await storeContext({ appContextResult, diff --git a/packages/app/src/cli/commands/app/dev/clean.ts b/packages/app/src/cli/commands/app/dev/clean.ts index 847bf1e5153..37bae7c0e40 100644 --- a/packages/app/src/cli/commands/app/dev/clean.ts +++ b/packages/app/src/cli/commands/app/dev/clean.ts @@ -37,6 +37,7 @@ export default class DevClean extends AppLinkedCommand { clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], }) const store = await storeContext({ diff --git a/packages/app/src/cli/commands/app/env/pull.ts b/packages/app/src/cli/commands/app/env/pull.ts index 2689bd336bd..db0021c956c 100644 --- a/packages/app/src/cli/commands/app/env/pull.ts +++ b/packages/app/src/cli/commands/app/env/pull.ts @@ -35,6 +35,7 @@ export default class EnvPull extends AppLinkedCommand { clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], }) const envFile = resolvePath(app.directory, flags['env-file'] ?? getDotEnvFileName(app.configPath)) outputResult(await pullEnv({app, remoteApp, organization, envFile})) diff --git a/packages/app/src/cli/commands/app/env/show.ts b/packages/app/src/cli/commands/app/env/show.ts index 2c67d50a61b..07052521428 100644 --- a/packages/app/src/cli/commands/app/env/show.ts +++ b/packages/app/src/cli/commands/app/env/show.ts @@ -24,6 +24,7 @@ export default class EnvShow extends AppLinkedCommand { clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], }) outputResult(await showEnv(app, remoteApp, organization)) return {app} diff --git a/packages/app/src/cli/commands/app/function/info.ts b/packages/app/src/cli/commands/app/function/info.ts index 345c0790f26..378a86b860e 100644 --- a/packages/app/src/cli/commands/app/function/info.ts +++ b/packages/app/src/cli/commands/app/function/info.ts @@ -48,6 +48,7 @@ export default class FunctionInfo extends AppUnlinkedCommand { flags['client-id'], flags.reset, flags.config, + flags['auth-alias'], ) const result = functionInfo(ourFunction, { diff --git a/packages/app/src/cli/commands/app/function/replay.ts b/packages/app/src/cli/commands/app/function/replay.ts index 5935991e48a..dfd74b3bca0 100644 --- a/packages/app/src/cli/commands/app/function/replay.ts +++ b/packages/app/src/cli/commands/app/function/replay.ts @@ -42,6 +42,7 @@ export default class FunctionReplay extends AppLinkedCommand { clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], }) const ourFunction = await chooseFunction(app, flags.path) diff --git a/packages/app/src/cli/commands/app/function/run.ts b/packages/app/src/cli/commands/app/function/run.ts index 3f3bb602bb3..c51a74c3eb7 100644 --- a/packages/app/src/cli/commands/app/function/run.ts +++ b/packages/app/src/cli/commands/app/function/run.ts @@ -83,6 +83,7 @@ export default class FunctionRun extends AppUnlinkedCommand { flags['client-id'], flags.reset, flags.config, + flags['auth-alias'], ) await runFunction({ diff --git a/packages/app/src/cli/commands/app/function/schema.ts b/packages/app/src/cli/commands/app/function/schema.ts index d1c5763f303..60da8ab02c7 100644 --- a/packages/app/src/cli/commands/app/function/schema.ts +++ b/packages/app/src/cli/commands/app/function/schema.ts @@ -35,6 +35,7 @@ export default class FetchSchema extends AppLinkedCommand { clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], }) const ourFunction = await chooseFunction(app, flags.path) diff --git a/packages/app/src/cli/commands/app/generate/extension.ts b/packages/app/src/cli/commands/app/generate/extension.ts index b0ea709fb9a..8eb8b8d7c89 100644 --- a/packages/app/src/cli/commands/app/generate/extension.ts +++ b/packages/app/src/cli/commands/app/generate/extension.ts @@ -63,6 +63,7 @@ export default class AppGenerateExtension extends AppLinkedCommand { clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], }) await generate({ diff --git a/packages/app/src/cli/commands/app/import-custom-data-definitions.ts b/packages/app/src/cli/commands/app/import-custom-data-definitions.ts index fcf95a8760f..92e1e055b3f 100644 --- a/packages/app/src/cli/commands/app/import-custom-data-definitions.ts +++ b/packages/app/src/cli/commands/app/import-custom-data-definitions.ts @@ -46,6 +46,7 @@ export default class ImportCustomDataDefinitions extends AppLinkedCommand { clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], }) const store = await storeContext({ appContextResult, diff --git a/packages/app/src/cli/commands/app/import-extensions.ts b/packages/app/src/cli/commands/app/import-extensions.ts index 6eff533f4c3..5f17700a9a4 100644 --- a/packages/app/src/cli/commands/app/import-extensions.ts +++ b/packages/app/src/cli/commands/app/import-extensions.ts @@ -29,6 +29,7 @@ export default class ImportExtensions extends AppLinkedCommand { clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], }) const extensions = await getExtensions({ diff --git a/packages/app/src/cli/commands/app/info.ts b/packages/app/src/cli/commands/app/info.ts index bb9859faa60..3bc007ccbaa 100644 --- a/packages/app/src/cli/commands/app/info.ts +++ b/packages/app/src/cli/commands/app/info.ts @@ -39,6 +39,7 @@ export default class AppInfo extends AppLinkedCommand { clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], unsafeTolerateErrors: true, }) const results = await info(app, remoteApp, organization, project, { diff --git a/packages/app/src/cli/commands/app/init.test.ts b/packages/app/src/cli/commands/app/init.test.ts index 2be8f0daeec..b44e1b5ebaa 100644 --- a/packages/app/src/cli/commands/app/init.test.ts +++ b/packages/app/src/cli/commands/app/init.test.ts @@ -2,6 +2,7 @@ import Init from './init.js' import initPrompt from '../../prompts/init/init.js' import initService from '../../services/init/init.js' import {selectDeveloperPlatformClient} from '../../utilities/developer-platform-client.js' +import {sessionIdFromAuthAlias} from '../../utilities/auth-alias.js' import {selectOrg} from '../../services/context.js' import {fetchOrgFromId, NoOrgError} from '../../services/dev/fetch.js' import {appNamePrompt, createAsNewAppPrompt, selectAppPrompt} from '../../prompts/dev.js' @@ -12,7 +13,7 @@ import { testOrganization, testOrganizationApp, } from '../../models/app/app.test-data.js' -import {describe, expect, test, vi} from 'vitest' +import {beforeEach, describe, expect, test, vi} from 'vitest' import {mockAndCaptureOutput} from '@shopify/cli-kit/node/testing/output' import {generateRandomNameForSubdirectory} from '@shopify/cli-kit/node/fs' import {inferPackageManager} from '@shopify/cli-kit/node/node-package-manager' @@ -20,6 +21,7 @@ import {inferPackageManager} from '@shopify/cli-kit/node/node-package-manager' vi.mock('../../prompts/init/init.js') vi.mock('../../services/init/init.js') vi.mock('../../utilities/developer-platform-client.js') +vi.mock('../../utilities/auth-alias.js') vi.mock('../../services/context.js') vi.mock('../../services/dev/fetch.js', async (importOriginal) => { const actual = await importOriginal() @@ -34,6 +36,10 @@ vi.mock('@shopify/cli-kit/node/fs') vi.mock('@shopify/cli-kit/node/node-package-manager') describe('Init command', () => { + beforeEach(() => { + vi.mocked(sessionIdFromAuthAlias).mockResolvedValue(undefined) + }) + test('runs init command with default flags', async () => { // Given const mockOrganization = testOrganization() @@ -76,6 +82,52 @@ describe('Init command', () => { ) }) + test('uses auth alias when selecting organization and initializing service', async () => { + // Given + const mockOrganization = testOrganization() + const mockDeveloperPlatformClient = testDeveloperPlatformClient() + const mockApp = testAppLinked() + + mockAndCaptureOutput() + vi.mocked(sessionIdFromAuthAlias).mockResolvedValue('session-id-for-work') + vi.mocked(validateTemplateValue).mockReturnValue(undefined) + vi.mocked(validateFlavorValue).mockReturnValue(undefined) + vi.mocked(inferPackageManager).mockReturnValue('npm') + vi.mocked(generateRandomNameForSubdirectory).mockResolvedValue('test-app') + vi.mocked(selectDeveloperPlatformClient).mockReturnValue(mockDeveloperPlatformClient) + vi.mocked(selectOrg).mockResolvedValue(mockOrganization) + vi.mocked(mockDeveloperPlatformClient.orgAndApps).mockResolvedValue({ + organization: mockOrganization, + apps: [], + hasMorePages: false, + }) + vi.mocked(initPrompt).mockResolvedValue({ + template: 'https://github.com/Shopify/shopify-app-template-remix', + templateType: 'remix', + globalCLIResult: {install: false, alreadyInstalled: false}, + }) + vi.mocked(createAsNewAppPrompt).mockResolvedValue(true) + vi.mocked(appNamePrompt).mockResolvedValue('test-app') + vi.mocked(initService).mockResolvedValue({app: mockApp}) + + // When + await Init.run(['--auth-alias', 'work']) + + // Then + expect(sessionIdFromAuthAlias).toHaveBeenCalledWith('work') + expect(selectDeveloperPlatformClient).toHaveBeenCalledWith({authSessionId: 'session-id-for-work'}) + expect(selectOrg).toHaveBeenCalledWith('session-id-for-work') + expect(selectDeveloperPlatformClient).toHaveBeenCalledWith({ + organization: mockOrganization, + authSessionId: 'session-id-for-work', + }) + expect(initService).toHaveBeenCalledWith( + expect.objectContaining({ + authAlias: 'work', + }), + ) + }) + test('runs init command without prompts when organization-id, name, and template flags are provided', async () => { // Given const mockOrganization = testOrganization() diff --git a/packages/app/src/cli/commands/app/init.ts b/packages/app/src/cli/commands/app/init.ts index 09548496475..3214de01525 100644 --- a/packages/app/src/cli/commands/app/init.ts +++ b/packages/app/src/cli/commands/app/init.ts @@ -3,12 +3,14 @@ import initService from '../../services/init/init.js' import {DeveloperPlatformClient, selectDeveloperPlatformClient} from '../../utilities/developer-platform-client.js' import {appFromIdentifiers, selectOrg} from '../../services/context.js' import {fetchOrgFromId} from '../../services/dev/fetch.js' +import {appFlags} from '../../flags.js' import AppLinkedCommand, {AppLinkedCommandOutput} from '../../utilities/app-linked-command.js' import {validateFlavorValue, validateTemplateValue} from '../../services/init/validate.js' import {MinimalOrganizationApp, Organization, OrganizationApp} from '../../models/organization.js' import {appNamePrompt, createAsNewAppPrompt, selectAppPrompt} from '../../prompts/dev.js' import {searchForAppsByNameFactory} from '../../services/dev/prompt-helpers.js' import {isValidName} from '../../models/app/validation/common.js' +import {sessionIdFromAuthAlias} from '../../utilities/auth-alias.js' import {Flags} from '@oclif/core' import {globalFlags} from '@shopify/cli-kit/node/cli' import {resolvePath, cwd} from '@shopify/cli-kit/node/path' @@ -74,6 +76,7 @@ export default class Init extends AppLinkedCommand { env: 'SHOPIFY_FLAG_ORGANIZATION_ID', exclusive: ['client-id'], }), + 'auth-alias': appFlags['auth-alias'], } async run(): Promise { @@ -89,9 +92,10 @@ export default class Init extends AppLinkedCommand { const inferredPackageManager = inferPackageManager(flags['package-manager']) const name = flags.name ?? (await getAppName(flags.path)) + const authSessionId = await sessionIdFromAuthAlias(flags['auth-alias']) // Force user authentication before prompting. - let developerPlatformClient = selectDeveloperPlatformClient() + let developerPlatformClient = selectDeveloperPlatformClient(authSessionId ? {authSessionId} : undefined) await developerPlatformClient.session() const promptAnswers = await initPrompt({ @@ -103,7 +107,10 @@ export default class Init extends AppLinkedCommand { let appName: string if (flags['client-id']) { // If a client-id is provided we don't need to prompt the user and can link directly to that app. - const selectedApp = await appFromIdentifiers({apiKey: flags['client-id']}) + const selectedApp = await appFromIdentifiers({ + apiKey: flags['client-id'], + ...(authSessionId ? {authSessionId} : {}), + }) appName = selectedApp.title developerPlatformClient = selectedApp.developerPlatformClient ?? developerPlatformClient selectAppResult = {result: 'existing', app: selectedApp} @@ -113,9 +120,12 @@ export default class Init extends AppLinkedCommand { // If an organization-id is provided, fetch the organization directly org = await fetchOrgFromId(flags['organization-id'], developerPlatformClient) } else { - org = await selectOrg() + org = await selectOrg(authSessionId) } - developerPlatformClient = selectDeveloperPlatformClient({organization: org}) + developerPlatformClient = selectDeveloperPlatformClient({ + organization: org, + ...(authSessionId ? {authSessionId} : {}), + }) const {organization, apps, hasMorePages} = await developerPlatformClient.orgAndApps(org.id) selectAppResult = await selectAppOrNewAppName( flags.name !== undefined, @@ -146,6 +156,7 @@ export default class Init extends AppLinkedCommand { directory: flags.path, useGlobalCLI: promptAnswers.globalCLIResult.alreadyInstalled || promptAnswers.globalCLIResult.install, developerPlatformClient, + authAlias: flags['auth-alias'], postCloneActions: { removeLockfilesFromGitignore: promptAnswers.templateType !== 'custom', }, diff --git a/packages/app/src/cli/commands/app/logs.ts b/packages/app/src/cli/commands/app/logs.ts index d9f07682e4d..e1892ac9463 100644 --- a/packages/app/src/cli/commands/app/logs.ts +++ b/packages/app/src/cli/commands/app/logs.ts @@ -55,6 +55,7 @@ export default class Logs extends AppLinkedCommand { clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], }) const primaryStore = await storeContext({ diff --git a/packages/app/src/cli/commands/app/release.ts b/packages/app/src/cli/commands/app/release.ts index 79d82322225..3aeb27f8413 100644 --- a/packages/app/src/cli/commands/app/release.ts +++ b/packages/app/src/cli/commands/app/release.ts @@ -64,6 +64,7 @@ export default class Release extends AppLinkedCommand { clientId, forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], }) await release({ diff --git a/packages/app/src/cli/commands/app/versions/list.ts b/packages/app/src/cli/commands/app/versions/list.ts index 07d4b9cc892..820530c50a0 100644 --- a/packages/app/src/cli/commands/app/versions/list.ts +++ b/packages/app/src/cli/commands/app/versions/list.ts @@ -25,6 +25,7 @@ export default class VersionsList extends AppLinkedCommand { clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], }) await versionList({ diff --git a/packages/app/src/cli/commands/app/webhook/trigger.ts b/packages/app/src/cli/commands/app/webhook/trigger.ts index 6d45a721b69..3626ab48e94 100644 --- a/packages/app/src/cli/commands/app/webhook/trigger.ts +++ b/packages/app/src/cli/commands/app/webhook/trigger.ts @@ -81,6 +81,7 @@ export default class WebhookTrigger extends AppLinkedCommand { clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + authAlias: flags['auth-alias'], }) const usedFlags: WebhookTriggerInput = { diff --git a/packages/app/src/cli/flags.ts b/packages/app/src/cli/flags.ts index d9a9776380c..2263333f606 100644 --- a/packages/app/src/cli/flags.ts +++ b/packages/app/src/cli/flags.ts @@ -26,6 +26,10 @@ export const appFlags = { env: 'SHOPIFY_FLAG_CLIENT_ID', exclusive: ['config'], }), + 'auth-alias': Flags.string({ + description: 'Alias of the Shopify account to use for authentication.', + env: 'SHOPIFY_FLAG_AUTH_ALIAS', + }), reset: Flags.boolean({ hidden: false, description: 'Reset all your settings.', diff --git a/packages/app/src/cli/services/app-context.test.ts b/packages/app/src/cli/services/app-context.test.ts index 95fe5c3ea0b..c07db113ee4 100644 --- a/packages/app/src/cli/services/app-context.test.ts +++ b/packages/app/src/cli/services/app-context.test.ts @@ -6,6 +6,7 @@ import {appFromIdentifiers} from './context.js' import * as localStorage from './local-storage.js' import {fetchOrgFromId} from './dev/fetch.js' +import {sessionIdFromAuthAlias} from '../utilities/auth-alias.js' import {testOrganizationApp, testDeveloperPlatformClient, testOrganization} from '../models/app/app.test-data.js' import metadata from '../metadata.js' import * as loader from '../models/app/loader.js' @@ -22,6 +23,7 @@ vi.mock('./context.js') vi.mock('./dev/fetch.js') vi.mock('./app/add-uid-to-extension-toml.js') vi.mock('../models/extensions/load-specifications.js') +vi.mock('../utilities/auth-alias.js') async function writeAppConfig(tmp: string, content: string, configName?: string) { const appConfigPath = joinPath(tmp, configName ?? 'shopify.app.toml') @@ -43,6 +45,7 @@ beforeEach(() => { vi.mocked(fetchSpecifications).mockResolvedValue([]) vi.mocked(appFromIdentifiers).mockResolvedValue(mockRemoteApp) vi.mocked(fetchOrgFromId).mockResolvedValue(mockOrganization) + vi.mocked(sessionIdFromAuthAlias).mockResolvedValue(undefined) }) describe('linkedAppContext', () => { @@ -145,6 +148,34 @@ client_id="test-api-key"` }) }) + test('passes account alias session to remote app lookup', async () => { + await inTemporaryDirectory(async (tmp) => { + // Given + vi.mocked(sessionIdFromAuthAlias).mockResolvedValue('session-id-for-work') + const content = ` +name = "test-app" +client_id="test-api-key"` + await writeAppConfig(tmp, content) + + // When + const result = await linkedAppContext({ + directory: tmp, + forceRelink: false, + userProvidedConfigName: undefined, + clientId: undefined, + authAlias: 'work', + }) + + // Then + expect(sessionIdFromAuthAlias).toHaveBeenCalledWith('work') + expect(appFromIdentifiers).toHaveBeenCalledWith({ + apiKey: 'test-api-key', + authSessionId: 'session-id-for-work', + }) + expect(result.authSessionId).toBe('session-id-for-work') + }) + }) + test('resets app when there is a valid toml but reset option is true', async () => { await inTemporaryDirectory(async (tmp) => { // Given @@ -176,6 +207,44 @@ client_id="test-api-key"` }) }) + test('passes account alias session when relinking', async () => { + await inTemporaryDirectory(async (tmp) => { + // Given + vi.mocked(sessionIdFromAuthAlias).mockResolvedValue('session-id-for-work') + const content = ` +name = "test-app" +client_id="test-api-key"` + await writeAppConfig(tmp, content) + + vi.mocked(link).mockResolvedValue({ + remoteApp: mockRemoteApp, + configFileName: 'shopify.app.toml', + configuration: { + client_id: 'test-api-key', + name: 'test-app', + path: normalizePath(joinPath(tmp, 'shopify.app.toml')), + } as any, + }) + + // When + await linkedAppContext({ + directory: tmp, + forceRelink: true, + userProvidedConfigName: undefined, + clientId: 'test-client-id', + authAlias: 'work', + }) + + // Then + expect(link).toHaveBeenCalledWith({ + directory: tmp, + apiKey: 'test-client-id', + configName: undefined, + authSessionId: 'session-id-for-work', + }) + }) + }) + test('forceRelink skips config selection before link to avoid spurious TOML prompt', async () => { await inTemporaryDirectory(async (tmp) => { // Given — no config file on disk, so getAppConfigurationContext would prompt for TOML selection diff --git a/packages/app/src/cli/services/app-context.ts b/packages/app/src/cli/services/app-context.ts index 4000c37764e..0f3fa61e980 100644 --- a/packages/app/src/cli/services/app-context.ts +++ b/packages/app/src/cli/services/app-context.ts @@ -5,6 +5,7 @@ import link from './app/config/link.js' import {fetchOrgFromId} from './dev/fetch.js' import {addUidToTomlsIfNecessary} from './app/add-uid-to-extension-toml.js' import {loadLocalExtensionsSpecifications} from '../models/extensions/load-specifications.js' +import {sessionIdFromAuthAlias} from '../utilities/auth-alias.js' import {Organization, OrganizationApp, OrganizationSource} from '../models/organization.js' import {DeveloperPlatformClient} from '../utilities/developer-platform-client.js' import { @@ -36,6 +37,7 @@ export interface LoadedAppContextOutput { specifications: RemoteAwareExtensionSpecification[] project: Project activeConfig: ActiveConfig + authSessionId?: string } /** @@ -54,6 +56,7 @@ interface LoadedAppContextOptions { clientId: string | undefined userProvidedConfigName: string | undefined unsafeTolerateErrors?: boolean + authAlias?: string } /** @@ -83,15 +86,18 @@ export async function linkedAppContext({ forceRelink, userProvidedConfigName, unsafeTolerateErrors = false, + authAlias, }: LoadedAppContextOptions): Promise { let project: Project let activeConfig: ActiveConfig let remoteApp: OrganizationApp | undefined + const authSessionId = await sessionIdFromAuthAlias(authAlias) + const authOptions = authSessionId ? {authSessionId} : {} if (forceRelink) { // Skip getAppConfigurationContext() when force-relinking — it may prompt the // user to select a TOML file that will be immediately discarded by link(). - const result = await link({directory, apiKey: clientId}) + const result = await link({directory, apiKey: clientId, configName: undefined, ...authOptions}) remoteApp = result.remoteApp const reloaded = await getAppConfigurationContext(directory, result.configFileName) project = reloaded.project @@ -106,7 +112,12 @@ export async function linkedAppContext({ } if (!activeConfig.isLinked) { - const result = await link({directory, apiKey: clientId, configName: basename(activeConfig.file.path)}) + const result = await link({ + directory, + apiKey: clientId, + configName: basename(activeConfig.file.path), + ...authOptions, + }) remoteApp = result.remoteApp const reloaded = await getAppConfigurationContext(directory, result.configFileName) project = reloaded.project @@ -122,7 +133,7 @@ export async function linkedAppContext({ const effectiveClientId = clientId ?? configClientId // Fetch the remote app, using a different clientID if provided via flag. - remoteApp ??= await appFromIdentifiers({apiKey: effectiveClientId}) + remoteApp ??= await appFromIdentifiers({apiKey: effectiveClientId, ...authOptions}) const developerPlatformClient = remoteApp.developerPlatformClient const organization = await fetchOrgFromId(remoteApp.organizationId, developerPlatformClient) @@ -158,7 +169,16 @@ export async function linkedAppContext({ await addUidToTomlsIfNecessary(localApp.allExtensions, developerPlatformClient) } - return {project, activeConfig, app: localApp, remoteApp, developerPlatformClient, specifications, organization} + const output = { + project, + activeConfig, + app: localApp, + remoteApp, + developerPlatformClient, + specifications, + organization, + } + return authSessionId ? {...output, authSessionId} : output } async function logMetadata(app: {apiKey: string}, organization: Organization, resetUsed: boolean) { diff --git a/packages/app/src/cli/services/app/config/link.ts b/packages/app/src/cli/services/app/config/link.ts index 373664c32e1..c6e73c876f9 100644 --- a/packages/app/src/cli/services/app/config/link.ts +++ b/packages/app/src/cli/services/app/config/link.ts @@ -38,6 +38,7 @@ export interface LinkOptions { configName?: string developerPlatformClient?: DeveloperPlatformClient isNewApp?: boolean + authSessionId?: string } interface LinkOutput { @@ -108,7 +109,10 @@ async function selectOrCreateRemoteAppToLinkTo(options: LinkOptions): Promise<{ if (options.apiKey) { // Remote API Key provided by the caller, so use that app specifically - const remoteApp = await appFromIdentifiers({apiKey: options.apiKey}) + const remoteApp = await appFromIdentifiers({ + apiKey: options.apiKey, + ...(options.authSessionId ? {authSessionId: options.authSessionId} : {}), + }) if (!remoteApp) { const errorMessage = InvalidApiKeyErrorMessage(options.apiKey) throw new AbortError(errorMessage.message, errorMessage.tryMessage) @@ -126,6 +130,7 @@ async function selectOrCreateRemoteAppToLinkTo(options: LinkOptions): Promise<{ ...creationOptions, directory: appDirectory, organizationId: options.organizationId, + ...(options.authSessionId ? {authSessionId: options.authSessionId} : {}), }) const developerPlatformClient = remoteApp.developerPlatformClient diff --git a/packages/app/src/cli/services/context.ts b/packages/app/src/cli/services/context.ts index 41555451f9d..3614299e0bf 100644 --- a/packages/app/src/cli/services/context.ts +++ b/packages/app/src/cli/services/context.ts @@ -67,10 +67,11 @@ const appNotFoundHelpMessage = (accountIdentifier: string, isOrg = false) => [ interface AppFromIdOptions { apiKey: string + authSessionId?: string } export const appFromIdentifiers = async (options: AppFromIdOptions): Promise => { - const allClients = allDeveloperPlatformClients() + const allClients = allDeveloperPlatformClients(options.authSessionId ? {sessionId: options.authSessionId} : undefined) let app: OrganizationApp | undefined for (const client of allClients) { @@ -299,12 +300,18 @@ function includeConfigOnDeployPrompt(configPath: string): Promise { } export async function fetchOrCreateOrganizationApp( - options: CreateAppOptions & {organizationId?: string}, + options: CreateAppOptions & {organizationId?: string; authSessionId?: string}, ): Promise { const org = options.organizationId - ? await fetchOrgFromId(options.organizationId, selectDeveloperPlatformClient()) - : await selectOrg() - const developerPlatformClient = selectDeveloperPlatformClient({organization: org}) + ? await fetchOrgFromId( + options.organizationId, + selectDeveloperPlatformClient(options.authSessionId ? {authSessionId: options.authSessionId} : undefined), + ) + : await selectOrg(options.authSessionId) + const developerPlatformClient = selectDeveloperPlatformClient({ + organization: org, + ...(options.authSessionId ? {authSessionId: options.authSessionId} : {}), + }) const {organization, apps, hasMorePages} = await developerPlatformClient.orgAndApps(org.id) const remoteApp = await selectOrCreateApp(apps, hasMorePages, organization, developerPlatformClient, options) @@ -318,8 +325,8 @@ export async function fetchOrCreateOrganizationApp( * @param developerPlatformClient - The client to access the platform API * @returns The selected organization ID */ -export async function selectOrg(): Promise { - const orgs = await fetchOrganizations() +export async function selectOrg(authSessionId?: string): Promise { + const orgs = await fetchOrganizations(authSessionId) if (orgs.length === 0) { throw new AbortError('No organizations found.', 'Make sure you have access to a Shopify organization.') } diff --git a/packages/app/src/cli/services/dev.ts b/packages/app/src/cli/services/dev.ts index 0d30481a791..f5f664620f5 100644 --- a/packages/app/src/cli/services/dev.ts +++ b/packages/app/src/cli/services/dev.ts @@ -71,6 +71,7 @@ export interface DevOptions { notify?: string graphiqlPort?: number graphiqlKey?: string + authSessionId?: string } export async function dev(commandOptions: DevOptions) { diff --git a/packages/app/src/cli/services/dev/extension/utilities.ts b/packages/app/src/cli/services/dev/extension/utilities.ts index 6288f770faf..98d8a82fb48 100644 --- a/packages/app/src/cli/services/dev/extension/utilities.ts +++ b/packages/app/src/cli/services/dev/extension/utilities.ts @@ -7,11 +7,16 @@ import {fetchProductVariant} from '../../../utilities/extensions/fetch-product-v * @param extensions - The UI Extensions to dev * @param store - The store FQDN */ -export async function buildCartURLIfNeeded(extensions: ExtensionInstance[], store: string, checkoutCartUrl?: string) { +export async function buildCartURLIfNeeded( + extensions: ExtensionInstance[], + store: string, + checkoutCartUrl?: string, + authSessionId?: string, +) { const hasUIExtension = extensions.filter((extension) => extension.shouldFetchCartUrl()).length > 0 if (!hasUIExtension) return undefined if (checkoutCartUrl) return checkoutCartUrl - const variantId = await fetchProductVariant(store) + const variantId = await fetchProductVariant(store, authSessionId) return `/cart/${variantId}:1` } diff --git a/packages/app/src/cli/services/dev/fetch.ts b/packages/app/src/cli/services/dev/fetch.ts index 7248acc98d0..626baf9894a 100644 --- a/packages/app/src/cli/services/dev/fetch.ts +++ b/packages/app/src/cli/services/dev/fetch.ts @@ -76,9 +76,9 @@ export class NoOrgError extends AbortError { * If the user doesn't belong to any org, throw an error * @returns List of organizations */ -export async function fetchOrganizations(): Promise { +export async function fetchOrganizations(authSessionId?: string): Promise { const organizations: Organization[] = [] - for (const client of allDeveloperPlatformClients()) { + for (const client of allDeveloperPlatformClients(authSessionId ? {sessionId: authSessionId} : undefined)) { // We don't want to run this in parallel because there could be port conflicts // eslint-disable-next-line no-await-in-loop const clientOrganizations = await client.organizations() @@ -86,7 +86,7 @@ export async function fetchOrganizations(): Promise { } if (organizations.length === 0) { - const developerPlatformClient = selectDeveloperPlatformClient() + const developerPlatformClient = selectDeveloperPlatformClient(authSessionId ? {authSessionId} : undefined) const session = await developerPlatformClient.session() const accountInfo = await fetchCurrentAccountInformation(developerPlatformClient, session.userId) throw new NoOrgError(accountInfo) diff --git a/packages/app/src/cli/services/dev/processes/previewable-extension.ts b/packages/app/src/cli/services/dev/processes/previewable-extension.ts index c6e064ba1d4..235c1324d22 100644 --- a/packages/app/src/cli/services/dev/processes/previewable-extension.ts +++ b/packages/app/src/cli/services/dev/processes/previewable-extension.ts @@ -24,6 +24,7 @@ interface PreviewableExtensionOptions { grantedScopes: string[] allExtensions: ExtensionInstance[] appWatcher: AppEventWatcher + authSessionId?: string } export interface PreviewableExtensionProcess extends BaseProcess { @@ -75,6 +76,7 @@ export async function setupPreviewableExtensionsProcess({ allExtensions, storeFqdn, checkoutCartUrl, + authSessionId, ...options }: Omit & { allExtensions: ExtensionInstance[] @@ -82,7 +84,7 @@ export async function setupPreviewableExtensionsProcess({ }): Promise { const previewableExtensions = allExtensions.filter((ext) => ext.isPreviewable) - const cartUrl = await buildCartURLIfNeeded(previewableExtensions, storeFqdn, checkoutCartUrl) + const cartUrl = await buildCartURLIfNeeded(previewableExtensions, storeFqdn, checkoutCartUrl, authSessionId) return { prefix: 'extensions', @@ -94,6 +96,7 @@ export async function setupPreviewableExtensionsProcess({ storeFqdn, allExtensions, cartUrl, + ...(authSessionId ? {authSessionId} : {}), ...options, }, } diff --git a/packages/app/src/cli/services/dev/processes/setup-dev-processes.ts b/packages/app/src/cli/services/dev/processes/setup-dev-processes.ts index 9feb2b29f07..51c82ece440 100644 --- a/packages/app/src/cli/services/dev/processes/setup-dev-processes.ts +++ b/packages/app/src/cli/services/dev/processes/setup-dev-processes.ts @@ -170,6 +170,7 @@ export async function setupDevProcesses({ appId: remoteApp.id, appDirectory: reloadedApp.directory, appWatcher, + ...(commandOptions.authSessionId ? {authSessionId: commandOptions.authSessionId} : {}), }), developerPlatformClient.supportsDevSessions ? await setupDevSessionProcess({ @@ -199,6 +200,7 @@ export async function setupDevProcesses({ storeFqdn, theme: commandOptions.theme, themeExtensionPort: commandOptions.themeExtensionPort, + ...(commandOptions.authSessionId ? {authSessionId: commandOptions.authSessionId} : {}), }), setupSendUninstallWebhookProcess({ webs: reloadedApp.webs, diff --git a/packages/app/src/cli/services/dev/processes/theme-app-extension.test.ts b/packages/app/src/cli/services/dev/processes/theme-app-extension.test.ts index a2a93321aab..bba7b36229f 100644 --- a/packages/app/src/cli/services/dev/processes/theme-app-extension.test.ts +++ b/packages/app/src/cli/services/dev/processes/theme-app-extension.test.ts @@ -127,6 +127,28 @@ describe('setupPreviewThemeAppExtensionsProcess', () => { }) }) + test('passes auth session ID to admin authentication when provided', async () => { + // Given + const mockTheme = {id: 123} as Theme + vi.mocked(fetchTheme).mockResolvedValue(mockTheme) + + const storeFqdn = 'test.myshopify.com' + const remoteApp = testOrganizationApp() + const localApp = testApp({allExtensions: [await testThemeExtensions()]}) + + // When + await setupPreviewThemeAppExtensionsProcess({ + localApp, + remoteApp, + storeFqdn, + theme: '123', + authSessionId: 'session-id-for-work', + }) + + // Then + expect(ensureAuthenticatedAdmin).toHaveBeenCalledWith(storeFqdn, [], {sessionId: 'session-id-for-work'}) + }) + test('Returns PreviewThemeAppExtensionsOptions if theme extensions are present - Management API app', async () => { // Given const mockTheme = {id: 123} as Theme diff --git a/packages/app/src/cli/services/dev/processes/theme-app-extension.ts b/packages/app/src/cli/services/dev/processes/theme-app-extension.ts index cda4751c29c..09d4073e0ba 100644 --- a/packages/app/src/cli/services/dev/processes/theme-app-extension.ts +++ b/packages/app/src/cli/services/dev/processes/theme-app-extension.ts @@ -26,6 +26,7 @@ interface HostThemeSetupOptions { storeFqdn: string theme?: string themeExtensionPort?: number + authSessionId?: string } export interface PreviewThemeAppExtensionsProcess extends BaseProcess { @@ -46,10 +47,10 @@ export async function setupPreviewThemeAppExtensionsProcess( const themeExtensionDirectory = themeExtension.directory const themeExtensionPort = options.themeExtensionPort ?? 9293 - const [adminSession, appUrl] = await Promise.all([ - ensureAuthenticatedAdmin(options.storeFqdn), - buildAppUrl(remoteApp), - ]) + const adminSessionPromise = options.authSessionId + ? ensureAuthenticatedAdmin(options.storeFqdn, [], {sessionId: options.authSessionId}) + : ensureAuthenticatedAdmin(options.storeFqdn) + const [adminSession, appUrl] = await Promise.all([adminSessionPromise, buildAppUrl(remoteApp)]) const storeFqdn = adminSession.storeFqdn const storefrontPassword = (await isStorefrontPasswordProtected(adminSession)) diff --git a/packages/app/src/cli/services/function/common.test.ts b/packages/app/src/cli/services/function/common.test.ts index e56e81673a4..d92cdbd9c57 100644 --- a/packages/app/src/cli/services/function/common.test.ts +++ b/packages/app/src/cli/services/function/common.test.ts @@ -65,7 +65,7 @@ describe('getOrGenerateSchemaPath', () => { // When // Pass extension, app.directory, clientId, forceRelink, userProvidedConfigName - const result = await getOrGenerateSchemaPath(extension, app.directory, '123', false, undefined) + const result = await getOrGenerateSchemaPath(extension, app.directory, '123', false, undefined, undefined) // Then expect(result).toBe(expectedPath) @@ -87,7 +87,7 @@ describe('getOrGenerateSchemaPath', () => { // When // Pass extension, app.directory, clientId, forceRelink, userProvidedConfigName - const result = await getOrGenerateSchemaPath(extension, app.directory, '123', false, undefined) + const result = await getOrGenerateSchemaPath(extension, app.directory, '123', false, undefined, undefined) // Then expect(result).toBe(expectedPath) diff --git a/packages/app/src/cli/services/function/common.ts b/packages/app/src/cli/services/function/common.ts index 07137a90988..97a2e55ce61 100644 --- a/packages/app/src/cli/services/function/common.ts +++ b/packages/app/src/cli/services/function/common.ts @@ -47,6 +47,7 @@ export async function getOrGenerateSchemaPath( clientId: string | undefined, forceRelink: boolean, userProvidedConfigName: string | undefined, + authAlias: string | undefined, ): Promise { const path = joinPath(extension.directory, 'schema.graphql') if (await fileExists(path)) { @@ -58,6 +59,7 @@ export async function getOrGenerateSchemaPath( clientId, forceRelink, userProvidedConfigName, + authAlias, }) await generateSchemaService({ diff --git a/packages/app/src/cli/services/init/init.ts b/packages/app/src/cli/services/init/init.ts index de97889c1cb..655d166a1c1 100644 --- a/packages/app/src/cli/services/init/init.ts +++ b/packages/app/src/cli/services/init/init.ts @@ -45,6 +45,7 @@ interface InitOptions { local: boolean useGlobalCLI: boolean developerPlatformClient: DeveloperPlatformClient + authAlias?: string postCloneActions: { removeLockfilesFromGitignore: boolean } @@ -247,6 +248,7 @@ async function init(options: InitOptions) { clientId: undefined, forceRelink: false, userProvidedConfigName: undefined, + authAlias: options.authAlias, }) renderSuccess({ diff --git a/packages/app/src/cli/utilities/auth-alias.test.ts b/packages/app/src/cli/utilities/auth-alias.test.ts new file mode 100644 index 00000000000..dc2f59f7156 --- /dev/null +++ b/packages/app/src/cli/utilities/auth-alias.test.ts @@ -0,0 +1,31 @@ +import {sessionIdFromAuthAlias} from './auth-alias.js' +import {findSessionIdByAlias} from '@shopify/cli-kit/node/session' +import {describe, expect, test, vi, beforeEach} from 'vitest' + +vi.mock('@shopify/cli-kit/node/session') + +describe('sessionIdFromAuthAlias', () => { + beforeEach(() => { + vi.mocked(findSessionIdByAlias).mockResolvedValue(undefined) + }) + + test('returns undefined when no alias is provided', async () => { + const got = await sessionIdFromAuthAlias(undefined) + + expect(got).toBeUndefined() + expect(findSessionIdByAlias).not.toHaveBeenCalled() + }) + + test('returns the session ID for the alias', async () => { + vi.mocked(findSessionIdByAlias).mockResolvedValue('session-id-for-work') + + const got = await sessionIdFromAuthAlias('work') + + expect(got).toBe('session-id-for-work') + expect(findSessionIdByAlias).toHaveBeenCalledWith('work') + }) + + test('throws with login guidance when alias is missing', async () => { + await expect(sessionIdFromAuthAlias('missing')).rejects.toThrow('No authenticated account found for alias') + }) +}) diff --git a/packages/app/src/cli/utilities/auth-alias.ts b/packages/app/src/cli/utilities/auth-alias.ts new file mode 100644 index 00000000000..f115b44d071 --- /dev/null +++ b/packages/app/src/cli/utilities/auth-alias.ts @@ -0,0 +1,17 @@ +import {findSessionIdByAlias} from '@shopify/cli-kit/node/session' +import {AbortError} from '@shopify/cli-kit/node/error' +import {outputContent, outputToken} from '@shopify/cli-kit/node/output' + +export async function sessionIdFromAuthAlias(authAlias?: string): Promise { + if (!authAlias) return undefined + + const sessionId = await findSessionIdByAlias(authAlias) + if (!sessionId) { + throw new AbortError( + outputContent`No authenticated account found for alias ${outputToken.yellow(authAlias)}.`, + outputContent`Run ${outputToken.genericShellCommand(`shopify auth login --alias ${authAlias}`)} first.`, + ) + } + + return sessionId +} diff --git a/packages/app/src/cli/utilities/developer-platform-client.ts b/packages/app/src/cli/utilities/developer-platform-client.ts index b058f1b407f..5e59c651b78 100644 --- a/packages/app/src/cli/utilities/developer-platform-client.ts +++ b/packages/app/src/cli/utilities/developer-platform-client.ts @@ -77,6 +77,11 @@ export type Paginateable = T & { interface SelectDeveloperPlatformClientOptions { organization?: Organization + authSessionId?: string +} + +export interface DeveloperPlatformClientAuthOptions { + sessionId?: string } export interface AppVersionIdentifiers { @@ -84,13 +89,17 @@ export interface AppVersionIdentifiers { versionId: string } -export function allDeveloperPlatformClients(): DeveloperPlatformClient[] { +export function allDeveloperPlatformClients( + authOptions?: DeveloperPlatformClientAuthOptions, +): DeveloperPlatformClient[] { const clients: DeveloperPlatformClient[] = [] - clients.push(AppManagementClient.getInstance()) + clients.push( + authOptions ? AppManagementClient.getInstance(undefined, authOptions) : AppManagementClient.getInstance(), + ) if (!blockPartnersAccess()) { - clients.push(PartnersClient.getInstance()) + clients.push(authOptions ? PartnersClient.getInstance(undefined, authOptions) : PartnersClient.getInstance()) } return clients @@ -98,20 +107,29 @@ export function allDeveloperPlatformClients(): DeveloperPlatformClient[] { export function selectDeveloperPlatformClient({ organization, + authSessionId, }: SelectDeveloperPlatformClientOptions = {}): DeveloperPlatformClient { - if (organization) return selectDeveloperPlatformClientByOrg(organization) - return defaultDeveloperPlatformClient() + const authOptions = authSessionId ? {sessionId: authSessionId} : undefined + if (organization) return selectDeveloperPlatformClientByOrg(organization, authOptions) + return defaultDeveloperPlatformClient(authOptions) } -function selectDeveloperPlatformClientByOrg(organization: Organization): DeveloperPlatformClient { - if (organization.source === OrganizationSource.BusinessPlatform) return AppManagementClient.getInstance() - return PartnersClient.getInstance() +function selectDeveloperPlatformClientByOrg( + organization: Organization, + authOptions?: DeveloperPlatformClientAuthOptions, +): DeveloperPlatformClient { + if (organization.source === OrganizationSource.BusinessPlatform) { + return authOptions ? AppManagementClient.getInstance(undefined, authOptions) : AppManagementClient.getInstance() + } + return authOptions ? PartnersClient.getInstance(undefined, authOptions) : PartnersClient.getInstance() } -function defaultDeveloperPlatformClient(): DeveloperPlatformClient { - if (firstPartyDev() && !blockPartnersAccess()) return PartnersClient.getInstance() +function defaultDeveloperPlatformClient(authOptions?: DeveloperPlatformClientAuthOptions): DeveloperPlatformClient { + if (firstPartyDev() && !blockPartnersAccess()) { + return authOptions ? PartnersClient.getInstance(undefined, authOptions) : PartnersClient.getInstance() + } - return AppManagementClient.getInstance() + return authOptions ? AppManagementClient.getInstance(undefined, authOptions) : AppManagementClient.getInstance() } export interface CreateAppOptions { diff --git a/packages/app/src/cli/utilities/developer-platform-client/app-management-client.test.ts b/packages/app/src/cli/utilities/developer-platform-client/app-management-client.test.ts index ce225c38957..86b04496e66 100644 --- a/packages/app/src/cli/utilities/developer-platform-client/app-management-client.test.ts +++ b/packages/app/src/cli/utilities/developer-platform-client/app-management-client.test.ts @@ -2145,6 +2145,15 @@ describe('singleton pattern', () => { expect(instance1).toBe(instance2) }) + test('getInstance returns fresh instances for explicit sessions', () => { + // Given/When + const instance1 = AppManagementClient.getInstance(undefined, {sessionId: 'session-id-for-work'}) + const instance2 = AppManagementClient.getInstance(undefined, {sessionId: 'session-id-for-work'}) + + // Then + expect(instance1).not.toBe(instance2) + }) + test('resetInstance allows creating a new instance', () => { // Given const instance1 = AppManagementClient.getInstance() diff --git a/packages/app/src/cli/utilities/developer-platform-client/app-management-client.ts b/packages/app/src/cli/utilities/developer-platform-client/app-management-client.ts index 3bb3ee7528c..70b2dcfa8d2 100644 --- a/packages/app/src/cli/utilities/developer-platform-client/app-management-client.ts +++ b/packages/app/src/cli/utilities/developer-platform-client/app-management-client.ts @@ -12,6 +12,7 @@ import {environmentVariableNames} from '../../constants.js' import {RemoteSpecification} from '../../api/graphql/extension_specifications.js' import { DeveloperPlatformClient, + DeveloperPlatformClientAuthOptions, TemplateSpecificationsOptions, Paginateable, AppVersion, @@ -190,7 +191,8 @@ export interface GatedExtensionTemplate extends ExtensionTemplate { export class AppManagementClient implements DeveloperPlatformClient { private static instance: AppManagementClient | undefined - static getInstance(session?: Session): AppManagementClient { + static getInstance(session?: Session, authOptions: DeveloperPlatformClientAuthOptions = {}): AppManagementClient { + if (authOptions.sessionId) return new AppManagementClient(session, authOptions) AppManagementClient.instance ??= new AppManagementClient(session) return AppManagementClient.instance } @@ -208,9 +210,11 @@ export class AppManagementClient implements DeveloperPlatformClient { public readonly bundleFormat = 'br' public readonly supportsDashboardManagedExtensions = false private _session: Session | undefined + private readonly authOptions: DeveloperPlatformClientAuthOptions - private constructor(session?: Session) { + private constructor(session?: Session, authOptions: DeveloperPlatformClientAuthOptions = {}) { this._session = session + this.authOptions = authOptions } async subscribeToAppLogs( @@ -278,7 +282,7 @@ export class AppManagementClient implements DeveloperPlatformClient { throw new Error('AppManagementClient.session() should not be invoked dynamically in a unit test') } - const tokenResult = await ensureAuthenticatedAppManagementAndBusinessPlatform() + const tokenResult = await ensureAuthenticatedAppManagementAndBusinessPlatform(this.authOptions) const {appManagementToken, businessPlatformToken, userId} = tokenResult // This one can't use the shared businessPlatformRequest because the token is not globally available yet. @@ -343,7 +347,11 @@ export class AppManagementClient implements DeveloperPlatformClient { } async unsafeRefreshToken(): Promise { - const result = await ensureAuthenticatedAppManagementAndBusinessPlatform({noPrompt: true, forceRefresh: true}) + const result = await ensureAuthenticatedAppManagementAndBusinessPlatform({ + ...this.authOptions, + noPrompt: true, + forceRefresh: true, + }) const session = await this.session() session.token = result.appManagementToken session.businessPlatformToken = result.businessPlatformToken diff --git a/packages/app/src/cli/utilities/developer-platform-client/partners-client.test.ts b/packages/app/src/cli/utilities/developer-platform-client/partners-client.test.ts index e2cce11bf64..7619adc71f3 100644 --- a/packages/app/src/cli/utilities/developer-platform-client/partners-client.test.ts +++ b/packages/app/src/cli/utilities/developer-platform-client/partners-client.test.ts @@ -225,6 +225,15 @@ describe('singleton pattern', () => { expect(instance1).toBe(instance2) }) + test('getInstance returns fresh instances for explicit sessions', () => { + // Given/When + const instance1 = PartnersClient.getInstance(undefined, {sessionId: 'session-id-for-work'}) + const instance2 = PartnersClient.getInstance(undefined, {sessionId: 'session-id-for-work'}) + + // Then + expect(instance1).not.toBe(instance2) + }) + test('resetInstance allows creating a new instance', () => { // Given const instance1 = PartnersClient.getInstance() diff --git a/packages/app/src/cli/utilities/developer-platform-client/partners-client.ts b/packages/app/src/cli/utilities/developer-platform-client/partners-client.ts index b80967269a5..8c5446dced0 100644 --- a/packages/app/src/cli/utilities/developer-platform-client/partners-client.ts +++ b/packages/app/src/cli/utilities/developer-platform-client/partners-client.ts @@ -13,6 +13,7 @@ import { CreateAppOptions, AppLogsResponse, createUnauthorizedHandler, + DeveloperPlatformClientAuthOptions, } from '../developer-platform-client.js' import {fetchCurrentAccountInformation} from '../../services/context/partner-account-info.js' import { @@ -202,7 +203,8 @@ interface OrgAndAppsResponse { export class PartnersClient implements DeveloperPlatformClient { private static instance: PartnersClient | undefined - static getInstance(session?: Session): PartnersClient { + static getInstance(session?: Session, authOptions: DeveloperPlatformClientAuthOptions = {}): PartnersClient { + if (authOptions.sessionId) return new PartnersClient(session, authOptions) PartnersClient.instance ??= new PartnersClient(session) return PartnersClient.instance } @@ -220,9 +222,11 @@ export class PartnersClient implements DeveloperPlatformClient { public readonly bundleFormat = 'zip' public readonly supportsDashboardManagedExtensions = true private _session: Session | undefined + private readonly authOptions: DeveloperPlatformClientAuthOptions - private constructor(session?: Session) { + private constructor(session?: Session, authOptions: DeveloperPlatformClientAuthOptions = {}) { this._session = session + this.authOptions = authOptions } async session(): Promise { @@ -230,7 +234,7 @@ export class PartnersClient implements DeveloperPlatformClient { if (isUnitTest()) { throw new Error('PartnersClient.session() should not be invoked dynamically in a unit test') } - const {token, userId} = await ensureAuthenticatedPartners() + const {token, userId} = await ensureAuthenticatedPartners([], process.env, this.authOptions) this._session = { token, businessPlatformToken: '', @@ -271,7 +275,11 @@ export class PartnersClient implements DeveloperPlatformClient { } async unsafeRefreshToken(): Promise { - const {token} = await ensureAuthenticatedPartners([], process.env, {noPrompt: true, forceRefresh: true}) + const {token} = await ensureAuthenticatedPartners([], process.env, { + ...this.authOptions, + noPrompt: true, + forceRefresh: true, + }) const session = await this.session() if (token) { session.token = token diff --git a/packages/app/src/cli/utilities/execute-command-helpers.test.ts b/packages/app/src/cli/utilities/execute-command-helpers.test.ts index 9843159bea5..ea69891045f 100644 --- a/packages/app/src/cli/utilities/execute-command-helpers.test.ts +++ b/packages/app/src/cli/utilities/execute-command-helpers.test.ts @@ -83,6 +83,18 @@ describe('prepareAppStoreContext', () => { userProvidedConfigName: undefined, }) }) + + test('passes auth alias to linkedAppContext when provided', async () => { + await prepareAppStoreContext({...mockFlags, 'auth-alias': 'work'}) + + expect(linkedAppContext).toHaveBeenCalledWith({ + directory: mockFlags.path, + clientId: mockFlags['client-id'], + forceRelink: mockFlags.reset, + userProvidedConfigName: mockFlags.config, + authAlias: 'work', + }) + }) }) describe('prepareExecuteContext', () => { diff --git a/packages/app/src/cli/utilities/execute-command-helpers.ts b/packages/app/src/cli/utilities/execute-command-helpers.ts index f84c8310fe1..29e85dde20b 100644 --- a/packages/app/src/cli/utilities/execute-command-helpers.ts +++ b/packages/app/src/cli/utilities/execute-command-helpers.ts @@ -6,6 +6,7 @@ import {resolveBulkOperationQuery} from '@shopify/cli-kit/node/api/bulk-operatio interface AppStoreContextFlags { path: string 'client-id'?: string + 'auth-alias'?: string reset: boolean config?: string store?: string @@ -38,6 +39,7 @@ export async function prepareAppStoreContext(flags: AppStoreContextFlags): Promi clientId: flags['client-id'], forceRelink: flags.reset, userProvidedConfigName: flags.config, + ...(flags['auth-alias'] ? {authAlias: flags['auth-alias']} : {}), }) const store = await storeContext({ diff --git a/packages/app/src/cli/utilities/extensions/fetch-product-variant.test.ts b/packages/app/src/cli/utilities/extensions/fetch-product-variant.test.ts new file mode 100644 index 00000000000..eaa769c5e1a --- /dev/null +++ b/packages/app/src/cli/utilities/extensions/fetch-product-variant.test.ts @@ -0,0 +1,45 @@ +import {fetchProductVariant} from './fetch-product-variant.js' +import {adminRequest} from '@shopify/cli-kit/node/api/admin' +import {ensureAuthenticatedAdmin} from '@shopify/cli-kit/node/session' +import {beforeEach, describe, expect, test, vi} from 'vitest' + +vi.mock('@shopify/cli-kit/node/api/admin') +vi.mock('@shopify/cli-kit/node/session') + +describe('fetchProductVariant', () => { + beforeEach(() => { + vi.mocked(ensureAuthenticatedAdmin).mockResolvedValue({ + token: 'admin-token', + storeFqdn: 'test.myshopify.com', + }) + vi.mocked(adminRequest).mockResolvedValue({ + products: { + edges: [ + { + node: { + variants: { + edges: [{node: {id: 'gid://shopify/ProductVariant/123'}}], + }, + }, + }, + ], + }, + } as any) + }) + + test('authenticates with the default session when no auth session ID is provided', async () => { + const got = await fetchProductVariant('test.myshopify.com') + + expect(got).toBe('123') + expect(ensureAuthenticatedAdmin).toHaveBeenCalledWith('test.myshopify.com') + }) + + test('authenticates with the provided auth session ID', async () => { + const got = await fetchProductVariant('test.myshopify.com', 'session-id-for-work') + + expect(got).toBe('123') + expect(ensureAuthenticatedAdmin).toHaveBeenCalledWith('test.myshopify.com', [], { + sessionId: 'session-id-for-work', + }) + }) +}) diff --git a/packages/app/src/cli/utilities/extensions/fetch-product-variant.ts b/packages/app/src/cli/utilities/extensions/fetch-product-variant.ts index 2308b0e12b4..c72cb774ec9 100644 --- a/packages/app/src/cli/utilities/extensions/fetch-product-variant.ts +++ b/packages/app/src/cli/utilities/extensions/fetch-product-variant.ts @@ -10,8 +10,10 @@ import {outputContent, outputToken} from '@shopify/cli-kit/node/output' * @param store - Store FQDN * @returns variantID if exists */ -export async function fetchProductVariant(store: string) { - const adminSession = await ensureAuthenticatedAdmin(store) +export async function fetchProductVariant(store: string, authSessionId?: string) { + const adminSession = authSessionId + ? await ensureAuthenticatedAdmin(store, [], {sessionId: authSessionId}) + : await ensureAuthenticatedAdmin(store) const result: FindProductVariantSchema = await adminRequest(FindProductVariantQuery, adminSession) const products = result.products.edges if (products.length === 0) { diff --git a/packages/cli-kit/src/private/node/session.test.ts b/packages/cli-kit/src/private/node/session.test.ts index 8d3593fd1be..a7b45f945c5 100644 --- a/packages/cli-kit/src/private/node/session.test.ts +++ b/packages/cli-kit/src/private/node/session.test.ts @@ -19,7 +19,7 @@ import {ApplicationToken, IdentityToken, Sessions} from './session/schema.js' import {validateSession} from './session/validate.js' import {applicationId} from './session/identity.js' import {pollForDeviceAuthorization, requestDeviceAuthorization} from './session/device-authorization.js' -import {getCurrentSessionId} from './conf-store.js' +import {getCurrentSessionId, setCurrentSessionId} from './conf-store.js' import * as fqdnModule from '../../public/node/context/fqdn.js' import {themeToken} from '../../public/node/context/local.js' import {partnersRequest} from '../../public/node/api/partners.js' @@ -313,6 +313,33 @@ describe('when existing session is valid', () => { expect(fetchSessions).toHaveBeenCalledOnce() }) + test('uses an explicitly selected session without reading the current session ID', async () => { + // Given + const selectedUserId = 'selected-user-id' + const sessions: Sessions = { + [fqdn]: { + [userId]: { + identity: validIdentityToken, + applications: {}, + }, + [selectedUserId]: { + identity: {...validIdentityToken, userId: selectedUserId}, + applications: appTokens, + }, + }, + } + vi.mocked(validateSession).mockResolvedValueOnce('ok') + vi.mocked(fetchSessions).mockResolvedValue(sessions) + + // When + const got = await ensureAuthenticated(defaultApplications, process.env, {sessionId: selectedUserId}) + + // Then + expect(getCurrentSessionId).not.toHaveBeenCalled() + expect(validateSession).toHaveBeenCalledWith(expect.any(Array), expect.any(Object), sessions[fqdn]![selectedUserId]) + expect(got).toEqual({...validTokens, userId: selectedUserId}) + }) + test('overwrites partners token if provided with a custom CLI token', async () => { // Given vi.mocked(validateSession).mockResolvedValueOnce('ok') @@ -350,6 +377,31 @@ describe('when existing session is valid', () => { await expect(getLastSeenAuthMethod()).resolves.toEqual('device_auth') expect(fetchSessions).toHaveBeenCalledOnce() }) + + test('refreshes an explicitly selected session without changing the current session ID', async () => { + // Given + const selectedUserId = 'selected-user-id' + const sessions: Sessions = { + [fqdn]: { + [selectedUserId]: { + identity: {...validIdentityToken, userId: selectedUserId}, + applications: appTokens, + }, + }, + } + vi.mocked(validateSession).mockResolvedValueOnce('needs_refresh') + vi.mocked(fetchSessions).mockResolvedValue(sessions) + vi.mocked(refreshAccessToken).mockResolvedValueOnce({...validIdentityToken, userId: selectedUserId}) + + // When + const got = await ensureAuthenticated(defaultApplications, process.env, {sessionId: selectedUserId}) + + // Then + expect(refreshAccessToken).toHaveBeenCalled() + expect(storeSessions).toHaveBeenCalledWith(sessions) + expect(setCurrentSessionId).not.toHaveBeenCalled() + expect(got).toEqual({...validTokens, userId: selectedUserId}) + }) }) describe('when existing session is expired', () => { diff --git a/packages/cli-kit/src/private/node/session.ts b/packages/cli-kit/src/private/node/session.ts index 3b750d1cdcb..589aaec54bb 100644 --- a/packages/cli-kit/src/private/node/session.ts +++ b/packages/cli-kit/src/private/node/session.ts @@ -183,6 +183,7 @@ export interface EnsureAuthenticatedAdditionalOptions { noPrompt?: boolean forceRefresh?: boolean forceNewSession?: boolean + sessionId?: string } /** @@ -196,7 +197,12 @@ export interface EnsureAuthenticatedAdditionalOptions { export async function ensureAuthenticated( applications: OAuthApplications, _env?: NodeJS.ProcessEnv, - {forceRefresh = false, noPrompt = false, forceNewSession = false}: EnsureAuthenticatedAdditionalOptions = {}, + { + forceRefresh = false, + noPrompt = false, + forceNewSession = false, + sessionId, + }: EnsureAuthenticatedAdditionalOptions = {}, ): Promise { const fqdn = await identityFqdn() @@ -210,8 +216,8 @@ export async function ensureAuthenticated( const sessions = (await sessionStore.fetch()) ?? {} - let currentSessionId = getCurrentSessionId() - if (!currentSessionId) { + let currentSessionId = forceNewSession ? undefined : (sessionId ?? getCurrentSessionId()) + if (!currentSessionId && !sessionId) { const userIds = Object.keys(sessions[fqdn] ?? {}) if (userIds.length > 0) currentSessionId = userIds[0] } @@ -260,7 +266,7 @@ ${outputToken.json(applications)} // Save the new session info if it has changed if (!isEmpty(newSession)) { await sessionStore.store(updatedSessions) - setCurrentSessionId(newSessionId) + if (!sessionId) setCurrentSessionId(newSessionId) } const tokens = await tokensFor(applications, completeSession) diff --git a/packages/cli-kit/src/public/node/session.test.ts b/packages/cli-kit/src/public/node/session.test.ts index b54da575406..0d294b78687 100644 --- a/packages/cli-kit/src/public/node/session.test.ts +++ b/packages/cli-kit/src/public/node/session.test.ts @@ -6,6 +6,7 @@ import { ensureAuthenticatedPartners, ensureAuthenticatedStorefront, ensureAuthenticatedThemes, + findSessionIdByAlias, setLastSeenUserId, } from './session.js' @@ -13,6 +14,7 @@ import {nonRandomUUID} from './crypto.js' import {getAppAutomationToken} from './environment.js' import {shopifyFetch} from './http.js' import {ensureAuthenticated, setLastSeenAuthMethod, setLastSeenUserIdAfterAuth} from '../../private/node/session.js' +import * as sessionStore from '../../private/node/session/store.js' import {ApplicationToken} from '../../private/node/session/schema.js' import { exchangeCustomPartnerToken, @@ -32,6 +34,7 @@ const partnersToken: ApplicationToken = { vi.mock('../../private/node/session.js') vi.mock('../../private/node/session/exchange.js') +vi.mock('../../private/node/session/store.js') vi.mock('./environment.js') vi.mock('./http.js') @@ -43,6 +46,20 @@ describe('store command analytics session helpers', () => { }) }) +describe('findSessionIdByAlias', () => { + test('returns the matching session ID without selecting it', async () => { + // Given + vi.mocked(sessionStore.findSessionByAlias).mockResolvedValueOnce('user-id') + + // When + const got = await findSessionIdByAlias('work') + + // Then + expect(got).toEqual('user-id') + expect(sessionStore.findSessionByAlias).toHaveBeenCalledWith('work') + }) +}) + describe('ensureAuthenticatedStorefront', () => { test('returns only storefront token if success', async () => { // Given @@ -173,6 +190,23 @@ describe('ensureAuthenticatedTheme', () => { expect(setLastSeenUserIdAfterAuth).not.toBeCalled() }) + test('passes additional auth options through to the shared authenticator', async () => { + // Given + vi.mocked(ensureAuthenticated).mockResolvedValueOnce({ + admin: {token: 'admin_token', storeFqdn: 'mystore.myshopify.com'}, + userId: '1234-5678', + }) + + // When + const got = await ensureAuthenticatedThemes('mystore', undefined, [], {sessionId: 'user-id'}) + + // Then + expect(got).toEqual({token: 'admin_token', storeFqdn: 'mystore.myshopify.com', sessionId: '1234-5678'}) + expect(ensureAuthenticated).toHaveBeenCalledWith({adminApi: {scopes: [], storeFqdn: 'mystore'}}, process.env, { + sessionId: 'user-id', + }) + }) + test('throws error if there is no token when no password is provided', async () => { // Given vi.mocked(ensureAuthenticated).mockResolvedValueOnce({userId: ''}) diff --git a/packages/cli-kit/src/public/node/session.ts b/packages/cli-kit/src/public/node/session.ts index 309804abf78..b8d97c69116 100644 --- a/packages/cli-kit/src/public/node/session.ts +++ b/packages/cli-kit/src/public/node/session.ts @@ -28,6 +28,7 @@ import {isThemeAccessSession} from '../../private/node/api/rest.js' export interface AdminSession { token: string storeFqdn: string + sessionId?: string } /** @@ -51,6 +52,16 @@ export function setLastSeenUserId(userId: string): void { setLastSeenUserIdAfterAuth(userId) } +/** + * Finds a stored Shopify account session by alias without changing the current session. + * + * @param alias - The account alias to find. + * @returns The matching session ID, or undefined if no session matches. + */ +export async function findSessionIdByAlias(alias: string): Promise { + return sessionStore.findSessionByAlias(alias) +} + interface UserAccountInfo { type: 'UserAccount' email: string @@ -233,7 +244,10 @@ ${outputToken.json(scopes)} if (!tokens.admin) { throw new BugError('No admin token found after ensuring authenticated') } - return tokens.admin + return { + ...tokens.admin, + ...(options.sessionId ? {sessionId: tokens.userId} : {}), + } } /** diff --git a/packages/cli/README.md b/packages/cli/README.md index d7ea5e809c4..a9f72399e29 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -112,11 +112,13 @@ Build the app, including extensions. ``` USAGE - $ shopify app build [--client-id | -c ] [--no-color] [--path ] [--reset | ] - [--skip-dependencies-installation] [--verbose] + $ shopify app build [--auth-alias ] [--client-id | -c ] [--no-color] [--path ] + [--reset | ] [--skip-dependencies-installation] [--verbose] FLAGS -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for + authentication. --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. @@ -143,18 +145,19 @@ Cancel a bulk operation. ``` USAGE - $ shopify app bulk cancel --id [--client-id | -c ] [--no-color] [--path ] [--reset | - ] [-s ] [--verbose] + $ shopify app bulk cancel --id [--auth-alias ] [--client-id | -c ] [--no-color] + [--path ] [--reset | ] [-s ] [--verbose] FLAGS - -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. - -s, --store= [env: SHOPIFY_FLAG_STORE] The store domain. Must be an existing dev store. - --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. - --id= (required) [env: SHOPIFY_FLAG_ID] The bulk operation ID to cancel (numeric ID or full GID). - --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. - --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. - --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. - --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. + -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. + -s, --store= [env: SHOPIFY_FLAG_STORE] The store domain. Must be an existing dev store. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for authentication. + --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. + --id= (required) [env: SHOPIFY_FLAG_ID] The bulk operation ID to cancel (numeric ID or full GID). + --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. + --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. + --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. + --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. DESCRIPTION Cancel a bulk operation. @@ -168,9 +171,9 @@ Execute bulk operations. ``` USAGE - $ shopify app bulk execute [--client-id | -c ] [--no-color] [--output-file --watch] [--path - ] [-q ] [--query-file ] [--reset | ] [-s ] [--variable-file | -v ...] - [--verbose] [--version ] + $ shopify app bulk execute [--auth-alias ] [--client-id | -c ] [--no-color] [--output-file + --watch] [--path ] [-q ] [--query-file ] [--reset | ] [-s ] [--variable-file + | -v ...] [--verbose] [--version ] FLAGS -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. @@ -178,6 +181,7 @@ FLAGS -s, --store= [env: SHOPIFY_FLAG_STORE] The store domain. Must be an existing dev store. -v, --variables=... [env: SHOPIFY_FLAG_VARIABLES] The values for any GraphQL variables in your mutation, in JSON format. Can be specified multiple times. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for authentication. --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. --output-file= [env: SHOPIFY_FLAG_OUTPUT_FILE] The file path where results should be written if --watch @@ -214,19 +218,20 @@ Check the status of bulk operations. ``` USAGE - $ shopify app bulk status [--client-id | -c ] [--id ] [--no-color] [--path ] [--reset - | ] [-s ] [--verbose] + $ shopify app bulk status [--auth-alias ] [--client-id | -c ] [--id ] [--no-color] + [--path ] [--reset | ] [-s ] [--verbose] FLAGS - -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. - -s, --store= [env: SHOPIFY_FLAG_STORE] The store domain. Must be an existing dev store. - --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. - --id= [env: SHOPIFY_FLAG_ID] The bulk operation ID (numeric ID or full GID). If not provided, lists - all bulk operations belonging to this app on this store in the last 7 days. - --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. - --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. - --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. - --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. + -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. + -s, --store= [env: SHOPIFY_FLAG_STORE] The store domain. Must be an existing dev store. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for authentication. + --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. + --id= [env: SHOPIFY_FLAG_ID] The bulk operation ID (numeric ID or full GID). If not provided, + lists all bulk operations belonging to this app on this store in the last 7 days. + --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. + --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. + --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. + --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. DESCRIPTION Check the status of bulk operations. @@ -247,15 +252,17 @@ Fetch your app configuration from the Developer Dashboard. ``` USAGE - $ shopify app config link [--client-id | -c ] [--no-color] [--path ] [--reset | ] [--verbose] + $ shopify app config link [--auth-alias ] [--client-id | -c ] [--no-color] [--path ] + [--reset | ] [--verbose] FLAGS - -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. - --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. - --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. - --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. - --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. - --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. + -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for authentication. + --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. + --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. + --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. + --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. + --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. DESCRIPTION Fetch your app configuration from the Developer Dashboard. @@ -273,15 +280,17 @@ Refresh an already-linked app configuration without prompts. ``` USAGE - $ shopify app config pull [--client-id | -c ] [--no-color] [--path ] [--reset | ] [--verbose] + $ shopify app config pull [--auth-alias ] [--client-id | -c ] [--no-color] [--path ] + [--reset | ] [--verbose] FLAGS - -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. - --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. - --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. - --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. - --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. - --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. + -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for authentication. + --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. + --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. + --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. + --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. + --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. DESCRIPTION Refresh an already-linked app configuration without prompts. @@ -304,11 +313,12 @@ ARGUMENTS [CONFIG] The name of the app configuration. Can be 'shopify.app.staging.toml' or simply 'staging'. FLAGS - --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. - --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. - --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. - --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. - --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for authentication. + --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. + --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. + --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. + --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. + --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. DESCRIPTION Activate an app configuration. @@ -323,17 +333,18 @@ Validate your app configuration and extensions. ``` USAGE - $ shopify app config validate [--client-id | -c ] [-j] [--no-color] [--path ] [--reset | ] - [--verbose] + $ shopify app config validate [--auth-alias ] [--client-id | -c ] [-j] [--no-color] [--path + ] [--reset | ] [--verbose] FLAGS - -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. - -j, --json [env: SHOPIFY_FLAG_JSON] Output the result as JSON. Automatically disables color output. - --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. - --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. - --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. - --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. - --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. + -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. + -j, --json [env: SHOPIFY_FLAG_JSON] Output the result as JSON. Automatically disables color output. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for authentication. + --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. + --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. + --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. + --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. + --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. DESCRIPTION Validate your app configuration and extensions. @@ -348,9 +359,9 @@ Deploy your Shopify app. ``` USAGE - $ shopify app deploy [--client-id | -c ] [--message ] [--no-build] [--no-color] - [--no-release | --allow-updates | --allow-deletes] [--path ] [--reset | ] [--source-control-url ] - [--verbose] [--version ] + $ shopify app deploy [--auth-alias ] [--client-id | -c ] [--message ] + [--no-build] [--no-color] [--no-release | --allow-updates | --allow-deletes] [--path ] [--reset | ] + [--source-control-url ] [--verbose] [--version ] FLAGS -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. @@ -360,6 +371,8 @@ FLAGS --allow-updates [env: SHOPIFY_FLAG_ALLOW_UPDATES] Allows adding and updating extensions and configuration without requiring user confirmation. Recommended option for CI/CD environments. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for + authentication. --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. --message= [env: SHOPIFY_FLAG_MESSAGE] Optional message that will be associated with this version. This is for internal use only and won't be available externally. @@ -396,8 +409,8 @@ Run the app. ``` USAGE - $ shopify app dev [--checkout-cart-url ] [--client-id | -c ] [--localhost-port - ] [--no-color] [--no-update] [--notify ] [--path ] [--reset | ] + $ shopify app dev [--auth-alias ] [--checkout-cart-url ] [--client-id | -c ] + [--localhost-port ] [--no-color] [--no-update] [--notify ] [--path ] [--reset | ] [--skip-dependencies-installation] [-s ] [--subscription-product-url ] [-t ] [--theme-app-extension-port ] [--use-localhost | [--tunnel-url | ]] [--verbose] @@ -407,6 +420,8 @@ FLAGS Shopify Plus sandbox store. -t, --theme= [env: SHOPIFY_FLAG_THEME] Theme ID or name of the theme app extension host theme. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for + authentication. --checkout-cart-url= [env: SHOPIFY_FLAG_CHECKOUT_CART_URL] Resource URL for checkout UI extension. Format: "/cart/{productVariantID}:{productQuantity}" --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. @@ -446,17 +461,18 @@ Cleans up the dev preview from the selected store. ``` USAGE - $ shopify app dev clean [--client-id | -c ] [--no-color] [--path ] [--reset | ] [-s - ] [--verbose] + $ shopify app dev clean [--auth-alias ] [--client-id | -c ] [--no-color] [--path ] + [--reset | ] [-s ] [--verbose] FLAGS - -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. - -s, --store= [env: SHOPIFY_FLAG_STORE] Store URL. Must be an existing development store. - --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. - --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. - --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. - --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. - --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. + -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. + -s, --store= [env: SHOPIFY_FLAG_STORE] Store URL. Must be an existing development store. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for authentication. + --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. + --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. + --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. + --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. + --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. DESCRIPTION Cleans up the dev preview from the selected store. @@ -472,17 +488,18 @@ Pull app and extensions environment variables. ``` USAGE - $ shopify app env pull [--client-id | -c ] [--env-file ] [--no-color] [--path ] - [--reset | ] [--verbose] + $ shopify app env pull [--auth-alias ] [--client-id | -c ] [--env-file ] + [--no-color] [--path ] [--reset | ] [--verbose] FLAGS - -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. - --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. - --env-file= [env: SHOPIFY_FLAG_ENV_FILE] Specify an environment file to update if the update flag is set - --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. - --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. - --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. - --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. + -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for authentication. + --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. + --env-file= [env: SHOPIFY_FLAG_ENV_FILE] Specify an environment file to update if the update flag is set + --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. + --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. + --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. + --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. DESCRIPTION Pull app and extensions environment variables. @@ -499,15 +516,17 @@ Display app and extensions environment variables. ``` USAGE - $ shopify app env show [--client-id | -c ] [--no-color] [--path ] [--reset | ] [--verbose] + $ shopify app env show [--auth-alias ] [--client-id | -c ] [--no-color] [--path ] + [--reset | ] [--verbose] FLAGS - -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. - --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. - --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. - --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. - --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. - --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. + -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for authentication. + --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. + --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. + --path= [env: SHOPIFY_FLAG_PATH] The path to your app directory. + --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. + --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. DESCRIPTION Display app and extensions environment variables. @@ -521,9 +540,9 @@ Execute GraphQL queries and mutations. ``` USAGE - $ shopify app execute [--client-id | -c ] [--no-color] [--output-file ] [--path ] - [-q ] [--query-file ] [--reset | ] [-s ] [--variable-file | -v ] [--verbose] - [--version ] + $ shopify app execute [--auth-alias ] [--client-id | -c ] [--no-color] [--output-file + ] [--path ] [-q ] [--query-file ] [--reset | ] [-s ] [--variable-file | + -v ] [--verbose] [--version ] FLAGS -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. @@ -533,6 +552,7 @@ FLAGS store. -v, --variables= [env: SHOPIFY_FLAG_VARIABLES] The values for any GraphQL variables in your query or mutation, in JSON format. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for authentication. --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. --output-file= [env: SHOPIFY_FLAG_OUTPUT_FILE] The file name where results should be written, instead of @@ -562,15 +582,17 @@ Compile a function to wasm. ``` USAGE - $ shopify app function build [--client-id | -c ] [--no-color] [--path ] [--reset | ] [--verbose] + $ shopify app function build [--auth-alias ] [--client-id | -c ] [--no-color] [--path ] + [--reset | ] [--verbose] FLAGS - -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. - --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. - --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. - --path= [env: SHOPIFY_FLAG_PATH] The path to your function directory. - --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. - --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. + -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for authentication. + --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. + --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. + --path= [env: SHOPIFY_FLAG_PATH] The path to your function directory. + --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. + --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. DESCRIPTION Compile a function to wasm. @@ -584,17 +606,18 @@ Print basic information about your function. ``` USAGE - $ shopify app function info [--client-id | -c ] [-j] [--no-color] [--path ] [--reset | ] - [--verbose] + $ shopify app function info [--auth-alias ] [--client-id | -c ] [-j] [--no-color] [--path + ] [--reset | ] [--verbose] FLAGS - -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. - -j, --json [env: SHOPIFY_FLAG_JSON] Output the result as JSON. Automatically disables color output. - --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. - --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. - --path= [env: SHOPIFY_FLAG_PATH] The path to your function directory. - --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. - --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. + -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. + -j, --json [env: SHOPIFY_FLAG_JSON] Output the result as JSON. Automatically disables color output. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for authentication. + --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. + --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. + --path= [env: SHOPIFY_FLAG_PATH] The path to your function directory. + --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. + --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. DESCRIPTION Print basic information about your function. @@ -616,21 +639,22 @@ Replays a function run from an app log. ``` USAGE - $ shopify app function replay [--client-id | -c ] [-j] [-l ] [--no-color] [--path ] - [--reset | ] [--verbose] [-w] + $ shopify app function replay [--auth-alias ] [--client-id | -c ] [-j] [-l ] [--no-color] + [--path ] [--reset | ] [--verbose] [-w] FLAGS - -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. - -j, --json [env: SHOPIFY_FLAG_JSON] Output the result as JSON. Automatically disables color output. - -l, --log= [env: SHOPIFY_FLAG_LOG] Specifies a log identifier to replay instead of selecting from a - list. The identifier is provided in the output of `shopify app dev` and is the suffix of the - log file name. - -w, --[no-]watch [env: SHOPIFY_FLAG_WATCH] Re-run the function when the source code changes. - --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. - --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. - --path= [env: SHOPIFY_FLAG_PATH] The path to your function directory. - --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. - --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. + -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. + -j, --json [env: SHOPIFY_FLAG_JSON] Output the result as JSON. Automatically disables color output. + -l, --log= [env: SHOPIFY_FLAG_LOG] Specifies a log identifier to replay instead of selecting from a + list. The identifier is provided in the output of `shopify app dev` and is the suffix of the + log file name. + -w, --[no-]watch [env: SHOPIFY_FLAG_WATCH] Re-run the function when the source code changes. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for authentication. + --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. + --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. + --path= [env: SHOPIFY_FLAG_PATH] The path to your function directory. + --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. + --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. DESCRIPTION Replays a function run from an app log. @@ -646,20 +670,21 @@ Run a function locally for testing. ``` USAGE - $ shopify app function run [--client-id | -c ] [-e ] [-i ] [-j] [--no-color] [--path - ] [--reset | ] [--verbose] + $ shopify app function run [--auth-alias ] [--client-id | -c ] [-e ] [-i ] [-j] + [--no-color] [--path ] [--reset | ] [--verbose] FLAGS - -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. - -e, --export= [env: SHOPIFY_FLAG_EXPORT] Name of the WebAssembly export to invoke. - -i, --input= [env: SHOPIFY_FLAG_INPUT] The input JSON to pass to the function. If omitted, standard input - is used. - -j, --json [env: SHOPIFY_FLAG_JSON] Output the result as JSON. Automatically disables color output. - --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. - --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. - --path= [env: SHOPIFY_FLAG_PATH] The path to your function directory. - --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. - --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. + -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. + -e, --export= [env: SHOPIFY_FLAG_EXPORT] Name of the WebAssembly export to invoke. + -i, --input= [env: SHOPIFY_FLAG_INPUT] The input JSON to pass to the function. If omitted, standard input + is used. + -j, --json [env: SHOPIFY_FLAG_JSON] Output the result as JSON. Automatically disables color output. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for authentication. + --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. + --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. + --path= [env: SHOPIFY_FLAG_PATH] The path to your function directory. + --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. + --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. DESCRIPTION Run a function locally for testing. @@ -675,17 +700,18 @@ Fetch the latest GraphQL schema for a function. ``` USAGE - $ shopify app function schema [--client-id | -c ] [--no-color] [--path ] [--reset | ] [--stdout] - [--verbose] + $ shopify app function schema [--auth-alias ] [--client-id | -c ] [--no-color] [--path ] + [--reset | ] [--stdout] [--verbose] FLAGS - -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. - --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. - --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. - --path= [env: SHOPIFY_FLAG_PATH] The path to your function directory. - --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. - --stdout [env: SHOPIFY_FLAG_STDOUT] Output the schema to stdout instead of writing to a file. - --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. + -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for authentication. + --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. + --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. + --path= [env: SHOPIFY_FLAG_PATH] The path to your function directory. + --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. + --stdout [env: SHOPIFY_FLAG_STDOUT] Output the schema to stdout instead of writing to a file. + --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. DESCRIPTION Fetch the latest GraphQL schema for a function. @@ -703,16 +729,17 @@ Generate GraphQL types for a function. ``` USAGE - $ shopify app function typegen [--client-id | -c ] [--no-color] [--path ] [--reset | ] - [--verbose] + $ shopify app function typegen [--auth-alias ] [--client-id | -c ] [--no-color] [--path ] + [--reset | ] [--verbose] FLAGS - -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. - --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. - --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. - --path= [env: SHOPIFY_FLAG_PATH] The path to your function directory. - --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. - --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. + -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. + --auth-alias= [env: SHOPIFY_FLAG_AUTH_ALIAS] Alias of the Shopify account to use for authentication. + --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. + --no-color [env: SHOPIFY_FLAG_NO_COLOR] Disable color output. + --path= [env: SHOPIFY_FLAG_PATH] The path to your function directory. + --reset [env: SHOPIFY_FLAG_RESET] Reset all your settings. + --verbose [env: SHOPIFY_FLAG_VERBOSE] Increase the verbosity of the output. DESCRIPTION Generate GraphQL types for a function. @@ -727,21 +754,22 @@ Generate a new app Extension. ``` USAGE - $ shopify app generate extension [--client-id | -c ] [--flavor + $ shopify app generate extension [--auth-alias ] [--client-id | -c ] [--flavor vanilla-js|react|typescript|typescript-react|wasm|rust] [-n ] [--no-color] [--path ] [--reset | ] [-t ] [--verbose] FLAGS - -c, --config= [env: SHOPIFY_FLAG_APP_CONFIG] The name of the app configuration. - -n, --name= [env: SHOPIFY_FLAG_NAME] name of your Extension - -t, --template= [env: SHOPIFY_FLAG_EXTENSION_TEMPLATE] Extension template - --client-id= [env: SHOPIFY_FLAG_CLIENT_ID] The Client ID of your app. - --flavor=