#compdef shopify # Completion for the Shopify CLI. https://shopify.dev/docs/api/shopify-cli # # Targets Shopify CLI 4.x. The CLI has no `completion`/`autocomplete` command, # so this is generated from `shopify commands --json` and kept here. Nothing # runs the CLI at completion time unless theme completion is enabled below. # Environment names from the project's TOML config. Offline, always enabled. _shopify_environments() { setopt localoptions extendedglob local -a envs local file line # (#b) backreferences set $match, which would otherwise be left global. local MATCH MBEGIN MEND local -a match mbegin mend for file in shopify.theme.toml shopify.app.toml; do [[ -r "$file" ]] || continue for line in ${(f)"$(< $file)"}; do [[ $line == (#b)[[:space:]]#\[environments\.([^]]##)\]* ]] && envs+=("$match[1]") done done (( $#envs )) || return 1 _describe -t environments 'environment' envs } # Theme IDs, described by name and role. Off by default: needs auth and makes a # network call on TAB. Enable with: # zstyle ':omz:plugins:shopify' dynamic-theme-completion yes _shopify_themes() { zstyle -t ':omz:plugins:shopify' dynamic-theme-completion || return 1 local key="${${PWD:A}//\//-}" local cache_file="$ZSH_CACHE_DIR/shopify-themes${key: -100}" local -a themes fresh local json split entry id name role # $match and friends are set by =~ and would otherwise be left global. local MATCH MBEGIN MEND local -a match mbegin mend local nl=$'\n' # Reuse the cached list for five minutes. fresh=(${cache_file}(Nms-300)) if (( $#fresh )); then themes=("${(@f)$(< "$cache_file")}") else json="$(shopify theme list --json 2>/dev/null)" || return 1 split="${json//\{/$nl}" for entry in ${(f)split}; do id="" name="" role="" [[ $entry =~ '"id":[[:space:]]*([0-9]+)' ]] && id=$match[1] [[ $entry =~ '"name":[[:space:]]*"([^"]*)"' ]] && name=$match[1] [[ $entry =~ '"role":[[:space:]]*"([^"]*)"' ]] && role=$match[1] [[ -n $id ]] || continue themes+=("${id}:${name}${role:+ (${role})}") done (( $#themes )) || return 1 print -rl -- $themes > "$cache_file" fi _describe -t shopify-themes 'theme' themes } _shopify__app__build() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--skip-dependencies-installation[Skips the installation of dependencies]' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__bulk__cancel() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--id=[The bulk operation ID to cancel (numeric ID or full GID)]:id:' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '(-s --store)'{-s,--store}'=[The store domain]:store:' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__bulk__execute() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--no-color[Disable color output]' \ '--output-file=[The file path where results should be written if --watch is specified]:output-file:' \ '--path=[The path to your app directory]:path:_files -/' \ '(-q --query)'{-q,--query}'=[The GraphQL query or mutation to run as a bulk operation]:query:' \ '--query-file=[Path to a file containing the GraphQL query or mutation]:query-file:' \ '(--reset -c --config)--reset[Reset all your settings]' \ '(-s --store)'{-s,--store}'=[The store domain]:store:' \ '(--variable-file -v --variables)--variable-file=[Path to a file containing GraphQL variables in JSONL format (one JSON...]:variable-file:' \ *''{-v,--variables}'=[The values for any GraphQL variables in your mutation, in JSON format]:variables:' \ '--verbose[Increase the verbosity of the output]' \ '--version=[The API version to use for the bulk operation]:version:' \ '--watch[Wait for bulk operation results before exiting]' } _shopify__app__bulk__status() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--id=[The bulk operation ID (numeric ID or full GID)]:id:' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '(-s --store)'{-s,--store}'=[The store domain]:store:' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__bulk() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'cancel:Cancel a bulk operation' 'execute:Execute bulk operations' 'status:Check the status of bulk operations' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'app bulk command' commands && ret=0 ;; args) case $words[1] in cancel) _shopify__app__bulk__cancel && ret=0 ;; execute) _shopify__app__bulk__execute && ret=0 ;; status) _shopify__app__bulk__status && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__app__config__link() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '(--file-name -c --config)--file-name=[The name of the app configuration file to create or overwrite]:file-name:' \ '--force[Overwrite an existing configuration file without prompting]' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__config__pull() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__config__use() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '--client-id=[The Client ID of your app]:client-id:' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '--reset[Reset all your settings]' \ '--verbose[Increase the verbosity of the output]' \ '*:file:_files' } _shopify__app__config__validate() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__config() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'link:Fetch your app configuration from the Developer Dashboard' 'pull:Refresh an already-linked app configuration without prompts' 'use:Activate an app configuration' 'validate:Validate your app configuration and extensions' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'app config command' commands && ret=0 ;; args) case $words[1] in link) _shopify__app__config__link && ret=0 ;; pull) _shopify__app__config__pull && ret=0 ;; use) _shopify__app__config__use && ret=0 ;; validate) _shopify__app__config__validate && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__app__deploy() { _arguments -s -S \ '--allow-deletes[Allows removing extensions and configuration without requiring user...]' \ '--allow-updates[Allows adding and updating extensions and configuration without requiring...]' \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--message=[Optional message that will be associated with this version]:message:' \ '--no-build[Use with caution\: Skips building any elements of the app that require...]' \ '--no-color[Disable color output]' \ '(--no-release --allow-updates --allow-deletes)--no-release[Creates a version but doesn'\''t release it - it'\''s not made available to...]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--source-control-url=[URL associated with the new app version]:source-control-url:' \ '--verbose[Increase the verbosity of the output]' \ '--version=[Optional version tag that will be associated with this app version]:version:' } _shopify__app__dev__clean() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__dev() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'clean:Cleans up the dev preview from the selected store' ) _arguments -s -C \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '--checkout-cart-url=[Resource URL for checkout UI extension]:checkout-cart-url:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--install-mkcert[Install and use mkcert to generate localhost certificates when...]' \ '--localhost-port=[Port to use for localhost]:localhost-port:' \ '--no-color[Disable color output]' \ '--no-update[Uses the app URL from the toml file instead an autogenerated URL for dev]' \ '--notify=[The file path or URL]:notify:_files' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--skip-dependencies-installation[Skips the installation of dependencies]' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ '--store-password=[The password for storefronts with password protection]:store-password:' \ '--subscription-product-url=[Resource URL for subscription UI extension]:subscription-product-url:' \ '(-t --theme)'{-t,--theme}'=[Theme ID or name of the theme app extension host theme]:theme:' \ '--theme-app-extension-port=[Local port of the theme app extension development server]:theme-app-extension-port:' \ '--tunnel-url=[Use a custom tunnel, it must be running before executing dev]:tunnel-url:' \ '(--use-localhost --tunnel-url)--use-localhost[Service entry point will listen to localhost]' \ '--verbose[Increase the verbosity of the output]' \ '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'app dev command' commands && ret=0 ;; args) case $words[1] in clean) _shopify__app__dev__clean && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__app__env__pull() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--env-file=[Specify an environment file to update if the update flag is set]:env-file:' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__env__show() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__env() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'pull:Pull app and extensions environment variables' 'show:Display app and extensions environment variables' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'app env command' commands && ret=0 ;; args) case $words[1] in pull) _shopify__app__env__pull && ret=0 ;; show) _shopify__app__env__show && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__app__execute() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--no-color[Disable color output]' \ '--output-file=[The file name where results should be written, instead of STDOUT]:output-file:' \ '--path=[The path to your app directory]:path:_files -/' \ '(-q --query)'{-q,--query}'=[The GraphQL query or mutation, as a string]:query:' \ '--query-file=[Path to a file containing the GraphQL query or mutation]:query-file:' \ '(--reset -c --config)--reset[Reset all your settings]' \ '(-s --store)'{-s,--store}'=[The myshopify.com domain of the store to execute against]:store:' \ '(--variable-file -v --variables)--variable-file=[Path to a file containing GraphQL variables in JSON format]:variable-file:' \ '(-v --variables --variable-file)'{-v,--variables}'=[The values for any GraphQL variables in your query or mutation, in JSON...]:variables:' \ '--verbose[Increase the verbosity of the output]' \ '--version=[The API version to use for the query or mutation]:version:' } _shopify__app__function__build() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--no-color[Disable color output]' \ '--path=[The path to your function directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__function__info() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '--no-color[Disable color output]' \ '--path=[The path to your function directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__function__replay() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '(-l --log)'{-l,--log}'=[Specifies a log identifier to replay instead of selecting from a list]:log:' \ '--no-color[Disable color output]' \ '--path=[The path to your function directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--verbose[Increase the verbosity of the output]' \ '(-w --watch)'{-w,--watch}'[Re-run the function when the source code changes]' } _shopify__app__function__run() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '(-e --export)'{-e,--export}'=[Name of the WebAssembly export to invoke]:export:' \ '(-i --input)'{-i,--input}'=[The input JSON to pass to the function]:input:' \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '--no-color[Disable color output]' \ '--path=[The path to your function directory]:path:_files -/' \ '--profile[Generate a WebAssembly performance profile for the function run]' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__function__schema() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--no-color[Disable color output]' \ '--path=[The path to your function directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--stdout[Output the schema to stdout instead of writing to a file]' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__function__typegen() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--no-color[Disable color output]' \ '--path=[The path to your function directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__function() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'build:Compile a function to wasm' 'info:Print basic information about your function' 'replay:Replays a function run from an app log' 'run:Run a function locally for testing' 'schema:Fetch the latest GraphQL schema for a function' 'typegen:Generate GraphQL types for a function' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'app function command' commands && ret=0 ;; args) case $words[1] in build) _shopify__app__function__build && ret=0 ;; info) _shopify__app__function__info && ret=0 ;; replay) _shopify__app__function__replay && ret=0 ;; run) _shopify__app__function__run && ret=0 ;; schema) _shopify__app__function__schema && ret=0 ;; typegen) _shopify__app__function__typegen && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__app__generate__extension() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--flavor=[Choose a starting template for your extension, where applicable]:flavor:(vanilla-js react typescript typescript-react wasm rust)' \ '(-n --name)'{-n,--name}'=[name of your Extension]:name:' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '(-t --template)'{-t,--template}'=[Extension template]:template:' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__generate() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'extension:Generate a new app Extension' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'app generate command' commands && ret=0 ;; args) case $words[1] in extension) _shopify__app__generate__extension && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__app__graphiql() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '--port=[Local port for the GraphiQL server]:port:' \ '(--reset -c --config)--reset[Reset all your settings]' \ '(-s --store)'{-s,--store}'=[The myshopify.com domain of the store to open GraphiQL against]:store:' \ '(-v --variables)'{-v,--variables}'=[The values for any GraphQL variables in your query or mutation, in JSON...]:variables:' \ '--verbose[Increase the verbosity of the output]' \ '--version=[The API version to use in GraphiQL]:version:' } _shopify__app__import_custom_data_definitions() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--include-existing[Include existing declared definitions in the output]' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__import_extensions() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__info() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--verbose[Increase the verbosity of the output]' \ '--web-env[Outputs environment variables necessary for running and deploying web/]' } _shopify__app__init() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '--client-id=[The Client ID of your app]:client-id:' \ '--flavor=[Which flavor of the given template to use]:flavor:' \ '(-n --name)'{-n,--name}'=[The name for the new app]:name:' \ '--no-color[Disable color output]' \ '(--organization-id --client-id)--organization-id=[The organization ID]:organization-id:' \ '(-d --package-manager)'{-d,--package-manager}'=[]:package-manager:(npm yarn pnpm bun)' \ '(-p --path)'{-p,--path}'=[]:path:_files -/' \ '--template=[The app template]:template:' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__logs__sources() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__logs() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'sources:Print out a list of sources that may be used with the logs command' ) _arguments -s -C \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ *'--source=[Filters output to the specified log source]:source:' \ '--status=[Filters output to the specified status (success or failure)]:status:(success failure)' \ *''{-s,--store}'=[Store URL]:store:' \ '--verbose[Increase the verbosity of the output]' \ '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'app logs command' commands && ret=0 ;; args) case $words[1] in sources) _shopify__app__logs__sources && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__app__release() { _arguments -s -S \ '--allow-deletes[Allows removing extensions and configuration without requiring user...]' \ '--allow-updates[Allows adding and updating extensions and configuration without requiring...]' \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--verbose[Increase the verbosity of the output]' \ '--version=[The name of the app version to release]:version:' } _shopify__app__versions__list() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '--no-color[Disable color output]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--verbose[Increase the verbosity of the output]' } _shopify__app__versions() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'list:List deployed versions of your app' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'app versions command' commands && ret=0 ;; args) case $words[1] in list) _shopify__app__versions__list && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__app__webhook__trigger() { _arguments -s -S \ '--address=[The URL where the webhook payload should be sent]:address:' \ '--api-version=[The API Version of the webhook topic]:api-version:' \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(--client-id -c --config)--client-id=[The Client ID of your app]:client-id:' \ '--client-secret=[Your app'\''s client secret]:client-secret:' \ '(-c --config)'{-c,--config}'=[The name of the app configuration]:config:' \ '--delivery-method=[Method chosen to deliver the topic payload]:delivery-method:(http google-pub-sub event-bridge)' \ '--help[This help]' \ '--path=[The path to your app directory]:path:_files -/' \ '(--reset -c --config)--reset[Reset all your settings]' \ '--topic=[The requested webhook topic]:topic:' } _shopify__app__webhook() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'trigger:Trigger delivery of a sample webhook topic payload to a designated address' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'app webhook command' commands && ret=0 ;; args) case $words[1] in trigger) _shopify__app__webhook__trigger && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__app() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'build:Build the app, including extensions' 'bulk:Run bulk operations' 'config:Manage app configuration files' 'deploy:Deploy your Shopify app' 'dev:Run the app' 'env:Manage app environment variables' 'execute:Execute GraphQL queries and mutations' 'function:Work with Shopify Functions' 'generate:Scaffold app extensions' 'graphiql:Open a local GraphiQL UI for your app and store' 'import-custom-data-definitions:Import metafield and metaobject definitions' 'import-extensions:Import dashboard-managed extensions into your app' 'info:Print basic information about your app and extensions' 'init:Create a new app project' 'logs:Stream detailed logs for your Shopify app' 'release:Release an app version' 'versions:Work with deployed app versions' 'webhook:Trigger sample webhooks' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'app command' commands && ret=0 ;; args) case $words[1] in build) _shopify__app__build && ret=0 ;; bulk) _shopify__app__bulk && ret=0 ;; config) _shopify__app__config && ret=0 ;; deploy) _shopify__app__deploy && ret=0 ;; dev) _shopify__app__dev && ret=0 ;; env) _shopify__app__env && ret=0 ;; execute) _shopify__app__execute && ret=0 ;; function) _shopify__app__function && ret=0 ;; generate) _shopify__app__generate && ret=0 ;; graphiql) _shopify__app__graphiql && ret=0 ;; import-custom-data-definitions) _shopify__app__import_custom_data_definitions && ret=0 ;; import-extensions) _shopify__app__import_extensions && ret=0 ;; info) _shopify__app__info && ret=0 ;; init) _shopify__app__init && ret=0 ;; logs) _shopify__app__logs && ret=0 ;; release) _shopify__app__release && ret=0 ;; versions) _shopify__app__versions && ret=0 ;; webhook) _shopify__app__webhook && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__auth__login() { _arguments -s -S \ '--alias=[Alias of an existing session you want to use]:alias:' } _shopify__auth__logout() { _arguments -s -S '*:file:_files' } _shopify__auth() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'login:Logs you in to your Shopify account' 'logout:Logs you out of the Shopify account or Partner account and store' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'auth command' commands && ret=0 ;; args) case $words[1] in login) _shopify__auth__login && ret=0 ;; logout) _shopify__auth__logout && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__commands() { _arguments -s -S \ *''{-c,--columns}'=[Only show provided columns (comma-separated)]:columns:(id plugin summary type)' \ '--deprecated[Show deprecated commands]' \ '(-x --extended --tree)'{-x,--extended}'[Show extra columns]' \ '--hidden[Show hidden commands]' \ '--json[Format output as json]' \ '(--no-truncate --tree)--no-truncate[Do not truncate output]' \ '(--sort --tree)--sort=[Property to sort by]:sort:(id plugin summary type)' \ '--tree[Show tree of commands]' } _shopify__config__autocorrect__off() { _arguments -s -S '*:file:_files' } _shopify__config__autocorrect__on() { _arguments -s -S '*:file:_files' } _shopify__config__autocorrect__status() { _arguments -s -S '*:file:_files' } _shopify__config__autocorrect() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'off:Disable autocorrect' 'on:Enable autocorrect' 'status:Check whether autocorrect is enabled or disabled' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'config autocorrect command' commands && ret=0 ;; args) case $words[1] in off) _shopify__config__autocorrect__off && ret=0 ;; on) _shopify__config__autocorrect__on && ret=0 ;; status) _shopify__config__autocorrect__status && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__config__autoupgrade__off() { _arguments -s -S '*:file:_files' } _shopify__config__autoupgrade__on() { _arguments -s -S '*:file:_files' } _shopify__config__autoupgrade__status() { _arguments -s -S '*:file:_files' } _shopify__config__autoupgrade() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'off:Disable automatic upgrades for Shopify CLI' 'on:Enable automatic upgrades for Shopify CLI' 'status:Check whether auto-upgrade is enabled, disabled, or not yet configured' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'config autoupgrade command' commands && ret=0 ;; args) case $words[1] in off) _shopify__config__autoupgrade__off && ret=0 ;; on) _shopify__config__autoupgrade__on && ret=0 ;; status) _shopify__config__autoupgrade__status && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__config() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'autocorrect:Enable or disable command autocorrect' 'autoupgrade:Enable or disable automatic upgrades' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'config command' commands && ret=0 ;; args) case $words[1] in autocorrect) _shopify__config__autocorrect && ret=0 ;; autoupgrade) _shopify__config__autoupgrade && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__doc__fetch() { _arguments -s -S \ '--no-color[Disable color output]' \ '--output=[Write the document to this file path instead of printing it to stdout]:output:' \ '--url=[The shopify.dev URL to fetch]:url:' \ '--verbose[Increase the verbosity of the output]' } _shopify__doc__search() { _arguments -s -S \ '--api-name=[Limit results to a specific API (for example\: admin, storefront, hydrogen,...]:api-name:' \ '--api-version=[Limit results to a specific API version (for example\: 2025-10, latest,...]:api-version:' \ '--no-color[Disable color output]' \ '--query=[The search query]:query:' \ '--verbose[Increase the verbosity of the output]' } _shopify__doc() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'fetch:Download a complete document from shopify.dev' 'search:Query the shopify.dev vector store and print the most relevant...' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'doc command' commands && ret=0 ;; args) case $words[1] in fetch) _shopify__doc__fetch && ret=0 ;; search) _shopify__doc__search && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__help() { _arguments -s -S \ '(-n --nested-commands)'{-n,--nested-commands}'[Include all nested commands in the output]' \ '*:file:_files' } _shopify__hydrogen__build() { _arguments -s -S \ '--bundle-stats[Show a bundle size summary after building]' \ '--codegen[Automatically generates GraphQL types for your project’s Storefront API...]' \ '--codegen-config-path=[Specifies a path to a codegen configuration file]:codegen-config-path:' \ '--disable-route-warning[Disables any warnings about missing standard routes]' \ '--entry=[Entry file for the worker]:entry:_files' \ '--force-client-sourcemap[Client sourcemapping is avoided by default because it makes backend code...]' \ '--lockfile-check[Checks that there is exactly one valid lockfile in the project]' \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' \ '--sourcemap[Controls whether server sourcemaps are generated]' \ '--watch[Watches for changes and rebuilds the project writing output to disk]' } _shopify__hydrogen__check() { _arguments -s -S \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' \ '*:file:_files' } _shopify__hydrogen__codegen() { _arguments -s -S \ '--codegen-config-path=[Specify a path to a codegen configuration file]:codegen-config-path:' \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' \ '--watch[Watch the project for changes to update types on file save]' } _shopify__hydrogen__customer_account_push() { _arguments -s -S \ '--dev-origin=[The development domain of your application]:dev-origin:' \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' \ '--relative-logout-uri=[The relative url of allowed url that will be redirected to post-logout for...]:relative-logout-uri:' \ '--relative-redirect-uri=[The relative url of allowed callback url for Customer Account API OAuth flow]:relative-redirect-uri:' \ '--storefront-id=[The id of the storefront the configuration should be pushed to]:storefront-id:' } _shopify__hydrogen__debug__cpu() { _arguments -s -S \ '--entry=[Entry file for the worker]:entry:_files' \ '--output=[Specify a path to generate the profile file]:output:' \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' } _shopify__hydrogen__debug() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'cpu:Builds and profiles the server startup time the app' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'hydrogen debug command' commands && ret=0 ;; args) case $words[1] in cpu) _shopify__hydrogen__debug__cpu && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__hydrogen__deploy() { _arguments -s -S \ '--assets-dir=[Directory containing the client assets to deploy, relative to the project...]:assets-dir:' \ '--auth-bypass-token[Generate an authentication bypass token, which can be used to perform...]' \ '--auth-bypass-token-duration=[Specify the duration (in hours) up to 12 hours for the authentication...]:auth-bypass-token-duration:' \ '--build-command=[Specify a build command to run before deploying]:build-command:' \ '--entry=[Entry file for the worker]:entry:_files' \ '(--env --env-branch)--env=[Specifies the environment to perform the operation using its handle]:env:' \ '--env-branch=[Specifies the environment to perform the operation using its Git branch name]:env-branch:' \ '--env-file=[Path to an environment file to override existing environment variables for...]:env-file:' \ '(-f --force)'{-f,--force}'[Forces a deployment to proceed if there are uncommitted changes in its Git...]' \ '--force-client-sourcemap[Client sourcemapping is avoided by default because it makes backend code...]' \ '--json-output[Create a JSON file containing the deployment details in CI environments]' \ '--lockfile-check[Checks that there is exactly one valid lockfile in the project]' \ '--metadata-description=[Description of the changes in the deployment]:metadata-description:' \ '--metadata-user=[User that initiated the deployment]:metadata-user:' \ '--no-verify[Skip the routability verification step after deployment]' \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' \ '--preview[Deploys to the Preview environment]' \ '(-s --shop)'{-s,--shop}'=[Shop URL]:shop:' \ '(-t --token)'{-t,--token}'=[Oxygen deployment token]:token:' \ '--worker-dir=[Directory containing the Oxygen worker entry point (`index.js` or...]:worker-dir:' } _shopify__hydrogen__dev() { _arguments -s -S \ '--codegen[Automatically generates GraphQL types for your project’s Storefront API...]' \ '--codegen-config-path=[Specifies a path to a codegen configuration file]:codegen-config-path:' \ '--customer-account-push[Use tunneling for local development and push the tunneling domain to admin]' \ '--debug[Enables inspector connections to the server with a debugger such as Visual...]' \ '--disable-deps-optimizer[Disable adding dependencies to Vite'\''s `ssr.optimizeDeps.include`...]' \ '--disable-version-check[Skip the version check when running `hydrogen dev`]' \ '--disable-virtual-routes[Disable rendering fallback routes when a route file doesn'\''t exist]' \ '--entry=[Entry file for the worker]:entry:_files' \ '(--env --env-branch)--env=[Specifies the environment to perform the operation using its handle]:env:' \ '--env-branch=[Specifies the environment to perform the operation using its Git branch name]:env-branch:' \ '--env-file=[Path to an environment file to override existing environment variables]:env-file:' \ '--host[Expose the server to the local network]' \ '--inspector-port=[The port where the inspector is available]:inspector-port:' \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' \ '--port=[The port to run the server on]:port:' \ '--verbose[Outputs more information about the command'\''s execution]' } _shopify__hydrogen__env__list() { _arguments -s -S \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' } _shopify__hydrogen__env__pull() { _arguments -s -S \ '(--env --env-branch)--env=[Specifies the environment to perform the operation using its handle]:env:' \ '--env-branch=[Specifies the environment to perform the operation using its Git branch name]:env-branch:' \ '--env-file=[Path to an environment file to override existing environment variables]:env-file:' \ '(-f --force)'{-f,--force}'[Overwrites the destination directory and files if they already exist]' \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' } _shopify__hydrogen__env__push() { _arguments -s -S \ '(--dry-run -f --force)--dry-run[Preview environment variable changes without pushing them]' \ '--env=[Specifies the environment to perform the operation using its handle]:env:' \ '--env-file=[Path to an environment file to override existing environment variables]:env-file:' \ '(-f --force)'{-f,--force}'[Push environment variable changes without confirmation]' \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' } _shopify__hydrogen__env() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'list:List the environments on your linked Hydrogen storefront' 'pull:Populate your .env with variables from your Hydrogen storefront' 'push:Push environment variables from the local .env file to your linked Hydrogen...' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'hydrogen env command' commands && ret=0 ;; args) case $words[1] in list) _shopify__hydrogen__env__list && ret=0 ;; pull) _shopify__hydrogen__env__pull && ret=0 ;; push) _shopify__hydrogen__env__push && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__hydrogen__generate__route() { _arguments -s -S \ '--adapter=[React Router adapter used in the route]:adapter:' \ '(-f --force)'{-f,--force}'[Overwrites the destination directory and files if they already exist]' \ '--locale-param=[The param name in Remix routes for the i18n locale, if any]:locale-param:' \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' \ '--typescript[Generate TypeScript files]' \ '*:file:_files' } _shopify__hydrogen__generate__routes() { _arguments -s -S \ '--adapter=[React Router adapter used in the route]:adapter:' \ '(-f --force)'{-f,--force}'[Overwrites the destination directory and files if they already exist]' \ '--locale-param=[The param name in Remix routes for the i18n locale, if any]:locale-param:' \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' \ '--typescript[Generate TypeScript files]' } _shopify__hydrogen__generate() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'route:Generates a standard Shopify route' 'routes:Generates all supported standard shopify routes' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'hydrogen generate command' commands && ret=0 ;; args) case $words[1] in route) _shopify__hydrogen__generate__route && ret=0 ;; routes) _shopify__hydrogen__generate__routes && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__hydrogen__init() { _arguments -s -S \ '(-f --force)'{-f,--force}'[Overwrites the destination directory and files if they already exist]' \ '--git[Init Git and create initial commits]' \ '--install-deps[Auto installs dependencies using the active package manager]' \ '--language=[Sets the template language to use]:language:' \ '--markets=[Sets the URL structure to support multiple markets]:markets:' \ '--mock-shop[Use mock.shop as the data source for the storefront]' \ '--path=[The path to the directory of the new Hydrogen storefront]:path:_files -/' \ '--quickstart[Scaffolds a new Hydrogen project with a set of sensible defaults]' \ '--shortcut[Creates a global h2 shortcut for Shopify CLI using shell aliases]' \ '--styling=[Sets the styling strategy to use]:styling:' \ '--template=[Scaffolds project based on an existing template or example from the...]:template:' } _shopify__hydrogen__link() { _arguments -s -S \ '(--create-storefront --storefront)--create-storefront[Create a new Hydrogen storefront]' \ '(-f --force)'{-f,--force}'[Overwrites the destination directory and files if they already exist]' \ '(--name --storefront)--name=[The name to use when creating a new Hydrogen storefront]:name:' \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' \ '(-s --shop)'{-s,--shop}'=[Shop URL]:shop:' \ '(--storefront --create-storefront --name)--storefront=[The name of a Hydrogen Storefront (e.g]:storefront:' } _shopify__hydrogen__list() { _arguments -s -S \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' } _shopify__hydrogen__login() { _arguments -s -S \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' \ '(-s --shop)'{-s,--shop}'=[Shop URL]:shop:' } _shopify__hydrogen__logout() { _arguments -s -S \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' } _shopify__hydrogen__preview() { _arguments -s -S \ '--build[Builds the app before starting the preview server]' \ '--codegen[Automatically generates GraphQL types for your project’s Storefront API...]' \ '--codegen-config-path=[Specifies a path to a codegen configuration file]:codegen-config-path:' \ '--debug[Enables inspector connections to the server with a debugger such as Visual...]' \ '--entry=[Entry file for the worker]:entry:_files' \ '(--env --env-branch)--env=[Specifies the environment to perform the operation using its handle]:env:' \ '--env-branch=[Specifies the environment to perform the operation using its Git branch name]:env-branch:' \ '--env-file=[Path to an environment file to override existing environment variables]:env-file:' \ '--inspector-port=[The port where the inspector is available]:inspector-port:' \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' \ '--port=[The port to run the server on]:port:' \ '--verbose[Outputs more information about the command'\''s execution]' \ '--watch[Watches for changes and rebuilds the project]' } _shopify__hydrogen__setup__css() { _arguments -s -S \ '(-f --force)'{-f,--force}'[Overwrites the destination directory and files if they already exist]' \ '--install-deps[Auto installs dependencies using the active package manager]' \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' \ '*:file:_files' } _shopify__hydrogen__setup__markets() { _arguments -s -S \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' \ '*:file:_files' } _shopify__hydrogen__setup__vite() { _arguments -s -S \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' } _shopify__hydrogen__setup() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'css:Setup CSS strategies for your project' 'markets:Setup support for multiple markets in your project' 'vite:EXPERIMENTAL\: Upgrades the project to use Vite' ) _arguments -s -C \ '(-f --force)'{-f,--force}'[Overwrites the destination directory and files if they already exist]' \ '--install-deps[Auto installs dependencies using the active package manager]' \ '--markets=[Sets the URL structure to support multiple markets]:markets:' \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' \ '--shortcut[Creates a global h2 shortcut for Shopify CLI using shell aliases]' \ '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'hydrogen setup command' commands && ret=0 ;; args) case $words[1] in css) _shopify__hydrogen__setup__css && ret=0 ;; markets) _shopify__hydrogen__setup__markets && ret=0 ;; vite) _shopify__hydrogen__setup__vite && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__hydrogen__shortcut() { _arguments -s -S '*:file:_files' } _shopify__hydrogen__unlink() { _arguments -s -S \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' } _shopify__hydrogen__upgrade() { _arguments -s -S \ '(-f --force)'{-f,--force}'[Ignore warnings and force the upgrade to the target version]' \ '--path=[The path to the directory of the Hydrogen storefront]:path:_files -/' \ '(-v --version)'{-v,--version}'=[A target hydrogen version to update to]:version:' } _shopify__hydrogen() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'build:Builds a Hydrogen storefront for production' 'check:Returns diagnostic information about a Hydrogen storefront' 'codegen:Generate types for the Storefront API queries found in your project' 'customer-account-push:Push project configuration to admin' 'debug:Profile the storefront' 'deploy:Builds and deploys a Hydrogen storefront to Oxygen' 'dev:Runs Hydrogen storefront in an Oxygen worker for development' 'env:Manage storefront environment variables' 'generate:Generate standard Shopify routes' 'init:Creates a new Hydrogen storefront' 'link:Link a local project to one of your shop'\''s Hydrogen storefronts' 'list:Returns a list of Hydrogen storefronts available on a given shop' 'login:Login to your Shopify account' 'logout:Logout of your local session' 'preview:Runs a Hydrogen storefront in an Oxygen worker for production' 'setup:Scaffold routes and core functionality' 'shortcut:Creates a global `h2` shortcut for the Hydrogen CLI' 'unlink:Unlink a local project from a Hydrogen storefront' 'upgrade:Upgrade Remix and Hydrogen npm dependencies' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'hydrogen command' commands && ret=0 ;; args) case $words[1] in build) _shopify__hydrogen__build && ret=0 ;; check) _shopify__hydrogen__check && ret=0 ;; codegen) _shopify__hydrogen__codegen && ret=0 ;; customer-account-push) _shopify__hydrogen__customer_account_push && ret=0 ;; debug) _shopify__hydrogen__debug && ret=0 ;; deploy) _shopify__hydrogen__deploy && ret=0 ;; dev) _shopify__hydrogen__dev && ret=0 ;; env) _shopify__hydrogen__env && ret=0 ;; generate) _shopify__hydrogen__generate && ret=0 ;; init) _shopify__hydrogen__init && ret=0 ;; link) _shopify__hydrogen__link && ret=0 ;; list) _shopify__hydrogen__list && ret=0 ;; login) _shopify__hydrogen__login && ret=0 ;; logout) _shopify__hydrogen__logout && ret=0 ;; preview) _shopify__hydrogen__preview && ret=0 ;; setup) _shopify__hydrogen__setup && ret=0 ;; shortcut) _shopify__hydrogen__shortcut && ret=0 ;; unlink) _shopify__hydrogen__unlink && ret=0 ;; upgrade) _shopify__hydrogen__upgrade && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__organization__list() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '--no-color[Disable color output]' \ '--verbose[Increase the verbosity of the output]' } _shopify__organization() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'list:List Shopify organizations you have access to' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'organization command' commands && ret=0 ;; args) case $words[1] in list) _shopify__organization__list && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__search() { _arguments -s -S \ '--no-color[Disable color output]' \ '--verbose[Increase the verbosity of the output]' \ '*:file:_files' } _shopify__store__auth__list() { _arguments -s -S \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '--no-color[Disable color output]' \ '--verbose[Increase the verbosity of the output]' } _shopify__store__auth() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'list:List stores authenticated directly with store auth' ) _arguments -s -C \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '--no-color[Disable color output]' \ '--scopes=[Comma-separated Admin API scopes to request for the app]:scopes:' \ '(-s --store)'{-s,--store}'=[The myshopify.com domain of the store]:store:' \ '--verbose[Increase the verbosity of the output]' \ '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'store auth command' commands && ret=0 ;; args) case $words[1] in list) _shopify__store__auth__list && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__store__bulk__cancel() { _arguments -s -S \ '--id=[The bulk operation ID to cancel (numeric ID or full GID)]:id:' \ '--no-color[Disable color output]' \ '(-s --store)'{-s,--store}'=[The myshopify.com domain of the store]:store:' \ '--verbose[Increase the verbosity of the output]' } _shopify__store__bulk__execute() { _arguments -s -S \ '--allow-mutations[Allow GraphQL mutations to run against the target store]' \ '--no-color[Disable color output]' \ '--output-file=[The file path where results should be written if --watch is specified]:output-file:' \ '(-q --query)'{-q,--query}'=[The GraphQL query or mutation to run as a bulk operation]:query:' \ '--query-file=[Path to a file containing the GraphQL query or mutation]:query-file:' \ '(-s --store)'{-s,--store}'=[The myshopify.com domain of the store]:store:' \ '(--variable-file -v --variables)--variable-file=[Path to a file containing GraphQL variables in JSONL format (one JSON...]:variable-file:' \ *''{-v,--variables}'=[The values for any GraphQL variables in your mutation, in JSON format]:variables:' \ '--verbose[Increase the verbosity of the output]' \ '--version=[The API version to use for the bulk operation]:version:' \ '--watch[Wait for bulk operation results before exiting]' } _shopify__store__bulk__status() { _arguments -s -S \ '--id=[The bulk operation ID (numeric ID or full GID)]:id:' \ '--no-color[Disable color output]' \ '(-s --store)'{-s,--store}'=[The myshopify.com domain of the store]:store:' \ '--verbose[Increase the verbosity of the output]' } _shopify__store__bulk() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'cancel:Cancel a bulk operation on a store' 'execute:Execute bulk operations on a store' 'status:Check the status of bulk operations on a store' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'store bulk command' commands && ret=0 ;; args) case $words[1] in cancel) _shopify__store__bulk__cancel && ret=0 ;; execute) _shopify__store__bulk__execute && ret=0 ;; status) _shopify__store__bulk__status && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__store__create__preview() { _arguments -s -S \ '--country=[Two-letter country code for the store, such as US, CA, or GB]:country:' \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '--name=[The name of the store]:name:' \ '--no-color[Disable color output]' \ '--verbose[Increase the verbosity of the output]' } _shopify__store__create() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'preview:Create a preview Shopify store' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'store create command' commands && ret=0 ;; args) case $words[1] in preview) _shopify__store__create__preview && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__store__execute() { _arguments -s -S \ '--allow-mutations[Allow GraphQL mutations to run against the target store]' \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '--no-color[Disable color output]' \ '--output-file=[The file name where results should be written, instead of STDOUT]:output-file:' \ '(-q --query)'{-q,--query}'=[The GraphQL query or mutation, as a string]:query:' \ '--query-file=[Path to a file containing the GraphQL query or mutation]:query-file:' \ '(-s --store)'{-s,--store}'=[The myshopify.com domain of the store]:store:' \ '(--variable-file -v --variables)--variable-file=[Path to a file containing GraphQL variables in JSON format]:variable-file:' \ '(-v --variables --variable-file)'{-v,--variables}'=[The values for any GraphQL variables in your query or mutation, in JSON...]:variables:' \ '--verbose[Increase the verbosity of the output]' \ '--version=[The API version to use for the query or mutation]:version:' } _shopify__store__graphiql() { _arguments -s -S \ '--allow-mutations[Allow GraphQL mutations to run against the target store]' \ '--no-color[Disable color output]' \ '--port=[Local port for the GraphiQL server]:port:' \ '(-s --store)'{-s,--store}'=[The myshopify.com domain of the store]:store:' \ '(-v --variables)'{-v,--variables}'=[The values for any GraphQL variables in your query or mutation, in JSON...]:variables:' \ '--verbose[Increase the verbosity of the output]' \ '--version=[The API version to use in GraphiQL]:version:' } _shopify__store__info() { _arguments -s -S \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '--no-color[Disable color output]' \ '(-s --store)'{-s,--store}'=[The myshopify.com domain of the store]:store:' \ '--verbose[Increase the verbosity of the output]' } _shopify__store__list() { _arguments -s -S \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '--no-color[Disable color output]' \ '--organization-id=[The numeric organization ID]:organization-id:' \ '--verbose[Increase the verbosity of the output]' } _shopify__store__open() { _arguments -s -S \ '--no-color[Disable color output]' \ '(-s --store)'{-s,--store}'=[The myshopify.com domain of the store]:store:' \ '--verbose[Increase the verbosity of the output]' } _shopify__store() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'auth:Authenticate an app against a store for store commands' 'bulk:Run bulk store operations' 'create:Create a store' 'execute:Execute GraphQL queries and mutations on a store' 'graphiql:Open a local GraphiQL UI for a store' 'info:Surface metadata about a Shopify store' 'list:List stores in a Shopify organization' 'open:Open your Shopify store in the default web browser' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'store command' commands && ret=0 ;; args) case $words[1] in auth) _shopify__store__auth && ret=0 ;; bulk) _shopify__store__bulk && ret=0 ;; create) _shopify__store__create && ret=0 ;; execute) _shopify__store__execute && ret=0 ;; graphiql) _shopify__store__graphiql && ret=0 ;; info) _shopify__store__info && ret=0 ;; list) _shopify__store__list && ret=0 ;; open) _shopify__store__open && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__theme__check() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(-a --auto-correct)'{-a,--auto-correct}'[Automatically fix offenses]' \ '(-C --config)'{-C,--config}'=[Use the config provided, overriding .theme-check.yml if present]:config:' \ *''{-e,--environment}'=[The environment to apply to the current command]:environment:_shopify_environments' \ '--fail-level=[Minimum severity for exit with error code]:fail-level:(crash error suggestion style warning info)' \ '--init[Generate a .theme-check.yml file]' \ '--list[List enabled checks]' \ '--no-color[Disable color output]' \ '(-o --output)'{-o,--output}'=[The output format to use]:output:(text json)' \ '--path=[The path where you want to run the command]:path:_files -/' \ '--print[Output active config to STDOUT]' \ '--verbose[Increase the verbosity of the output]' \ '(-v --version)'{-v,--version}'[Print Theme Check version]' } _shopify__theme__console() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ *''{-e,--environment}'=[The environment to apply to the current command]:environment:_shopify_environments' \ '--no-color[Disable color output]' \ '--password=[Password generated from the Theme Access app or an Admin API token]:password:' \ '--path=[The path where you want to run the command]:path:_files -/' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ '--store-password=[The password for storefronts with password protection]:store-password:' \ '--url=[The url to be used as context]:url:' \ '--verbose[Increase the verbosity of the output]' } _shopify__theme__delete() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(-d --development)'{-d,--development}'[Delete your development theme]' \ *''{-e,--environment}'=[The environment to apply to the current command]:environment:_shopify_environments' \ '(-f --force)'{-f,--force}'[Skip confirmation]' \ '--no-color[Disable color output]' \ '--password=[Password generated from the Theme Access app or an Admin API token]:password:' \ '--path=[The path where you want to run the command]:path:_files -/' \ '(-a --show-all)'{-a,--show-all}'[Include other development themes in the theme list]' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ *''{-t,--theme}'=[Theme ID or name of the remote theme]:theme:_shopify_themes' \ '--verbose[Increase the verbosity of the output]' } _shopify__theme__dev() { _arguments -s -S \ '(-a --allow-live)'{-a,--allow-live}'[Allow development on a live theme]' \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ *''{-e,--environment}'=[The environment to apply to the current command]:environment:_shopify_environments' \ '--error-overlay=[Controls the visibility of the error overlay when an theme asset upload...]:error-overlay:(silent default)' \ '--host=[Set which network interface the web server listens on]:host:_hosts' \ *''{-x,--ignore}'=[Skip hot reloading any files that match the specified pattern]:ignore:_files' \ '--listing=[The listing preset to use for multi-preset themes]:listing:' \ '--live-reload=[The live reload mode switches the server behavior when a file is modified\:]:live-reload:(hot-reload full-page off)' \ '--no-color[Disable color output]' \ '(-n --nodelete)'{-n,--nodelete}'[Prevents files from being deleted in the remote theme when a file has been...]' \ '--notify=[The file path or URL]:notify:_files' \ *''{-o,--only}'=[Hot reload only files that match the specified pattern]:only:_files' \ '--open[Automatically launch the theme preview in your default web browser]' \ '--password=[Password generated from the Theme Access app or an Admin API token]:password:' \ '--path=[The path where you want to run the command]:path:_files -/' \ '--port=[Local port to serve theme preview from]:port:' \ '--reconciliation-strategy=[How to resolve JSON conflicts when --theme-editor-sync is enabled]:reconciliation-strategy:(keep-local keep-remote abort)' \ '--standard-events-inspector[Inject the standard events inspector into storefront HTML]' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ '--store-password=[The password for storefronts with password protection]:store-password:' \ '(-t --theme)'{-t,--theme}'=[Theme ID or name of the remote theme]:theme:_shopify_themes' \ '--theme-editor-sync[Synchronize Theme Editor updates in the local theme files]' \ '--verbose[Increase the verbosity of the output]' } _shopify__theme__duplicate() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ *''{-e,--environment}'=[The environment to apply to the current command]:environment:_shopify_environments' \ '(-f --force)'{-f,--force}'[Force the duplicate operation to run without prompts or confirmations]' \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '(-n --name)'{-n,--name}'=[Name of the newly duplicated theme]:name:' \ '--no-color[Disable color output]' \ '--password=[Password generated from the Theme Access app or an Admin API token]:password:' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ '(-t --theme)'{-t,--theme}'=[Theme ID or name of the remote theme]:theme:_shopify_themes' \ '--verbose[Increase the verbosity of the output]' } _shopify__theme__info() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(-d --development)'{-d,--development}'[Retrieve info from your development theme]' \ *''{-e,--environment}'=[The environment to apply to the current command]:environment:_shopify_environments' \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '--no-color[Disable color output]' \ '--password=[Password generated from the Theme Access app or an Admin API token]:password:' \ '--path=[The path where you want to run the command]:path:_files -/' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ '(-t --theme)'{-t,--theme}'=[Theme ID or name of the remote theme]:theme:_shopify_themes' \ '--verbose[Increase the verbosity of the output]' } _shopify__theme__init() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(-u --clone-url)'{-u,--clone-url}'=[The Git URL to clone from]:clone-url:' \ '(-l --latest)'{-l,--latest}'[Downloads the latest release of the `clone-url`]' \ '--no-color[Disable color output]' \ '--path=[The path where you want to run the command]:path:_files -/' \ '--verbose[Increase the verbosity of the output]' \ '*:file:_files' } _shopify__theme__language_server() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '--no-color[Disable color output]' \ '--verbose[Increase the verbosity of the output]' } _shopify__theme__list() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ *''{-e,--environment}'=[The environment to apply to the current command]:environment:_shopify_environments' \ '--id=[Only list theme with the given ID]:id:' \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '--name=[Only list themes that contain the given name]:name:' \ '--no-color[Disable color output]' \ '--password=[Password generated from the Theme Access app or an Admin API token]:password:' \ '--path=[The path where you want to run the command]:path:_files -/' \ '--role=[Only list themes with the given role]:role:(live unpublished development)' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ '--verbose[Increase the verbosity of the output]' } _shopify__theme__metafields__pull() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ *''{-e,--environment}'=[The environment to apply to the current command]:environment:_shopify_environments' \ '--no-color[Disable color output]' \ '--password=[Password generated from the Theme Access app or an Admin API token]:password:' \ '--path=[The path where you want to run the command]:path:_files -/' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ '--verbose[Increase the verbosity of the output]' } _shopify__theme__metafields() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'pull:Download metafields definitions from your shop into a local file' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'theme metafields command' commands && ret=0 ;; args) case $words[1] in pull) _shopify__theme__metafields__pull && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__theme__open() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(-d --development)'{-d,--development}'[Open your development theme]' \ '(-E --editor)'{-E,--editor}'[Open the theme editor for the specified theme in the browser]' \ *''{-e,--environment}'=[The environment to apply to the current command]:environment:_shopify_environments' \ '(-l --live)'{-l,--live}'[Open your live (published) theme]' \ '--no-color[Disable color output]' \ '--password=[Password generated from the Theme Access app or an Admin API token]:password:' \ '--path=[The path where you want to run the command]:path:_files -/' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ '(-t --theme)'{-t,--theme}'=[Theme ID or name of the remote theme]:theme:_shopify_themes' \ '--verbose[Increase the verbosity of the output]' } _shopify__theme__package() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '--no-color[Disable color output]' \ '--path=[The path where you want to run the command]:path:_files -/' \ '--verbose[Increase the verbosity of the output]' } _shopify__theme__preview() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ *''{-e,--environment}'=[The environment to apply to the current command]:environment:_shopify_environments' \ '--json[Output the preview URL and identifier as JSON]' \ '--no-color[Disable color output]' \ '--open[Automatically launch the theme preview in your default web browser]' \ '--overrides=[Path to a JSON overrides file]:overrides:' \ '--password=[Password generated from the Theme Access app or an Admin API token]:password:' \ '--path=[The path where you want to run the command]:path:_files -/' \ '--preview-id=[An existing preview identifier to update instead of creating a new preview]:preview-id:' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ '(-t --theme)'{-t,--theme}'=[Theme ID or name of the remote theme]:theme:_shopify_themes' \ '--verbose[Increase the verbosity of the output]' } _shopify__theme__profile() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ *''{-e,--environment}'=[The environment to apply to the current command]:environment:_shopify_environments' \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '--no-color[Disable color output]' \ '--password=[Password generated from the Theme Access app or an Admin API token]:password:' \ '--path=[The path where you want to run the command]:path:_files -/' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ '--store-password=[The password for storefronts with password protection]:store-password:' \ '(-t --theme)'{-t,--theme}'=[Theme ID or name of the remote theme]:theme:_shopify_themes' \ '--url=[The url to be used as context]:url:' \ '--verbose[Increase the verbosity of the output]' } _shopify__theme__publish() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ *''{-e,--environment}'=[The environment to apply to the current command]:environment:_shopify_environments' \ '(-f --force)'{-f,--force}'[Skip confirmation]' \ '--no-color[Disable color output]' \ '--password=[Password generated from the Theme Access app or an Admin API token]:password:' \ '--path=[The path where you want to run the command]:path:_files -/' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ '(-t --theme)'{-t,--theme}'=[Theme ID or name of the remote theme]:theme:_shopify_themes' \ '--verbose[Increase the verbosity of the output]' } _shopify__theme__pull() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(-d --development)'{-d,--development}'[Pull theme files from your remote development theme]' \ *''{-e,--environment}'=[The environment to apply to the current command]:environment:_shopify_environments' \ *''{-x,--ignore}'=[Skip downloading the specified files (Multiple flags allowed)]:ignore:_files' \ '(-l --live)'{-l,--live}'[Pull theme files from your remote live theme]' \ '--no-color[Disable color output]' \ '(-n --nodelete)'{-n,--nodelete}'[Prevent deleting local files that don'\''t exist remotely]' \ *''{-o,--only}'=[Download only the specified files (Multiple flags allowed)]:only:_files' \ '--password=[Password generated from the Theme Access app or an Admin API token]:password:' \ '--path=[The path where you want to run the command]:path:_files -/' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ '(-t --theme)'{-t,--theme}'=[Theme ID or name of the remote theme]:theme:_shopify_themes' \ '--verbose[Increase the verbosity of the output]' } _shopify__theme__push() { _arguments -s -S \ '(-a --allow-live)'{-a,--allow-live}'[Allow push to a live theme]' \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(-d --development)'{-d,--development}'[Push theme files from your remote development theme]' \ '(-c --development-context -t --theme)'{-c,--development-context}'=[Unique identifier for a development theme context (e.g., PR number, branch...]:development-context:' \ *''{-e,--environment}'=[The environment to apply to the current command]:environment:_shopify_environments' \ *''{-x,--ignore}'=[Skip uploading the specified files (Multiple flags allowed)]:ignore:_files' \ '(-j --json)'{-j,--json}'[Output the result as JSON]' \ '--listing=[The listing preset to use for multi-preset themes]:listing:' \ '(-l --live)'{-l,--live}'[Push theme files from your remote live theme]' \ '--no-color[Disable color output]' \ '(-n --nodelete)'{-n,--nodelete}'[Prevent deleting remote files that don'\''t exist locally]' \ *''{-o,--only}'=[Upload only the specified files (Multiple flags allowed)]:only:_files' \ '--password=[Password generated from the Theme Access app or an Admin API token]:password:' \ '--path=[The path where you want to run the command]:path:_files -/' \ '(-p --publish)'{-p,--publish}'[Publish as the live theme after uploading]' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ '--strict[Require theme check to pass without errors before pushing]' \ '(-t --theme)'{-t,--theme}'=[Theme ID or name of the remote theme]:theme:_shopify_themes' \ '(-u --unpublished)'{-u,--unpublished}'[Create a new unpublished theme and push to it]' \ '--verbose[Increase the verbosity of the output]' } _shopify__theme__rename() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ '(-d --development)'{-d,--development}'[Rename your development theme]' \ *''{-e,--environment}'=[The environment to apply to the current command]:environment:_shopify_environments' \ '(-l --live)'{-l,--live}'[Rename your remote live theme]' \ '(-n --name)'{-n,--name}'=[The new name for the theme]:name:' \ '--no-color[Disable color output]' \ '--password=[Password generated from the Theme Access app or an Admin API token]:password:' \ '--path=[The path where you want to run the command]:path:_files -/' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ '(-t --theme)'{-t,--theme}'=[Theme ID or name of the remote theme]:theme:_shopify_themes' \ '--verbose[Increase the verbosity of the output]' } _shopify__theme__share() { _arguments -s -S \ '--auth-alias=[Alias of the Shopify account to use for authentication]:auth-alias:' \ *''{-e,--environment}'=[The environment to apply to the current command]:environment:_shopify_environments' \ '--listing=[The listing preset to use for multi-preset themes]:listing:' \ '--no-color[Disable color output]' \ '--password=[Password generated from the Theme Access app or an Admin API token]:password:' \ '--path=[The path where you want to run the command]:path:_files -/' \ '(-s --store)'{-s,--store}'=[Store URL]:store:' \ '--verbose[Increase the verbosity of the output]' } _shopify__theme() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'check:Validate the theme' 'console:Shopify Liquid REPL (read-eval-print loop) tool' 'delete:Delete remote themes from the connected store' 'dev:Uploads the current theme as a development theme to the connected store,...' 'duplicate:Duplicates a theme from your theme library' 'info:Displays information about your theme environment, including your current...' 'init:Clones a Git repository to use as a starting point for building a new theme' 'language-server:Start a Language Server Protocol server' 'list:Lists the themes in your store, along with their IDs and statuses' 'metafields:Theme metafield operations' 'open:Opens the preview of your remote theme' 'package:Package your theme into a .zip file, ready to upload to the Online Store' 'preview:Applies JSON overrides to a theme and returns a preview URL' 'profile:Profile the Liquid rendering of a theme page' 'publish:Set a remote theme as the live theme' 'pull:Download your remote theme files locally' 'push:Uploads your local theme files to the connected store, overwriting the...' 'rename:Renames an existing theme' 'share:Creates a shareable, unpublished, and new theme on your theme library with...' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'theme command' commands && ret=0 ;; args) case $words[1] in check) _shopify__theme__check && ret=0 ;; console) _shopify__theme__console && ret=0 ;; delete) _shopify__theme__delete && ret=0 ;; dev) _shopify__theme__dev && ret=0 ;; duplicate) _shopify__theme__duplicate && ret=0 ;; info) _shopify__theme__info && ret=0 ;; init) _shopify__theme__init && ret=0 ;; language-server) _shopify__theme__language_server && ret=0 ;; list) _shopify__theme__list && ret=0 ;; metafields) _shopify__theme__metafields && ret=0 ;; open) _shopify__theme__open && ret=0 ;; package) _shopify__theme__package && ret=0 ;; preview) _shopify__theme__preview && ret=0 ;; profile) _shopify__theme__profile && ret=0 ;; publish) _shopify__theme__publish && ret=0 ;; pull) _shopify__theme__pull && ret=0 ;; push) _shopify__theme__push && ret=0 ;; rename) _shopify__theme__rename && ret=0 ;; share) _shopify__theme__share && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify__upgrade() { _arguments -s -S '*:file:_files' } _shopify__version() { _arguments -s -S '*:file:_files' } _shopify() { local curcontext="$curcontext" state line ret=1 local -a commands commands=( 'app:Build Shopify apps' 'auth:Authentication operations' 'commands:List all shopify commands' 'config:CLI configuration options' 'doc:Search the Shopify documentation' 'help:Display help for Shopify CLI' 'hydrogen:Build Hydrogen storefronts' 'organization:Work with your organizations' 'search:Search shopify.dev for the most relevant content matching a query' 'store:Work with a store' 'theme:Build Liquid themes' 'upgrade:Upgrades Shopify CLI' 'version:Shopify CLI version currently installed' ) _arguments -C '1: :->cmd' '*:: :->args' && ret=0 case $state in cmd) _describe -t commands 'shopify command' commands && ret=0 ;; args) case $words[1] in app) _shopify__app && ret=0 ;; auth) _shopify__auth && ret=0 ;; commands) _shopify__commands && ret=0 ;; config) _shopify__config && ret=0 ;; doc) _shopify__doc && ret=0 ;; help) _shopify__help && ret=0 ;; hydrogen) _shopify__hydrogen && ret=0 ;; organization) _shopify__organization && ret=0 ;; search) _shopify__search && ret=0 ;; store) _shopify__store && ret=0 ;; theme) _shopify__theme && ret=0 ;; upgrade) _shopify__upgrade && ret=0 ;; version) _shopify__version && ret=0 ;; *) _files && ret=0 ;; esac ;; esac return ret } _shopify "$@"