shopify-cli 0.9.2 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +5 -0
 - data/docs/_config.yml +3 -0
 - data/docs/_data/nav.yml +9 -0
 - data/docs/getting-started/index.md +5 -40
 - data/docs/getting-started/install/index.md +39 -0
 - data/docs/getting-started/migrate/index.md +63 -0
 - data/docs/getting-started/uninstall/index.md +37 -0
 - data/docs/getting-started/upgrade/index.md +37 -0
 - data/docs/index.md +5 -6
 - data/lib/project_types/extension/cli.rb +2 -1
 - data/lib/project_types/extension/commands/tunnel.rb +1 -1
 - data/lib/project_types/extension/forms/register.rb +2 -3
 - data/lib/project_types/extension/graphql/get_app_by_api_key.graphql +9 -0
 - data/lib/project_types/extension/tasks/converters/app_converter.rb +27 -0
 - data/lib/project_types/extension/tasks/get_app.rb +22 -0
 - data/lib/project_types/extension/tasks/get_apps.rb +1 -6
 - data/lib/project_types/script/cli.rb +3 -2
 - data/lib/project_types/script/commands/create.rb +5 -4
 - data/lib/project_types/script/errors.rb +1 -0
 - data/lib/project_types/script/forms/create.rb +8 -4
 - data/lib/project_types/script/layers/application/create_script.rb +11 -18
 - data/lib/project_types/script/layers/application/project_dependencies.rb +0 -5
 - data/lib/project_types/script/layers/infrastructure/assemblyscript_project_creator.rb +106 -0
 - data/lib/project_types/script/layers/infrastructure/errors.rb +1 -1
 - data/lib/project_types/script/layers/infrastructure/project_creator.rb +23 -0
 - data/lib/project_types/script/layers/infrastructure/script_repository.rb +0 -33
 - data/lib/project_types/script/messages/messages.rb +5 -6
 - data/lib/project_types/script/templates/ts/as-pect.d.ts +1 -0
 - data/lib/project_types/script/ui/error_handler.rb +5 -0
 - data/lib/shopify-cli/tunnel.rb +33 -1
 - data/lib/shopify-cli/version.rb +1 -1
 - data/vendor/deps/cli-ui/REVISION +1 -1
 - data/vendor/deps/cli-ui/lib/cli/ui.rb +52 -11
 - data/vendor/deps/cli-ui/lib/cli/ui/color.rb +11 -7
 - data/vendor/deps/cli-ui/lib/cli/ui/formatter.rb +34 -21
 - data/vendor/deps/cli-ui/lib/cli/ui/frame.rb +107 -149
 - data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_stack.rb +99 -0
 - data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_style.rb +119 -0
 - data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_style/box.rb +158 -0
 - data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_style/bracket.rb +112 -0
 - data/vendor/deps/cli-ui/lib/cli/ui/glyph.rb +9 -15
 - data/vendor/deps/cli-ui/lib/cli/ui/printer.rb +47 -0
 - data/vendor/deps/cli-ui/lib/cli/ui/progress.rb +9 -7
 - data/vendor/deps/cli-ui/lib/cli/ui/prompt.rb +39 -14
 - data/vendor/deps/cli-ui/lib/cli/ui/prompt/interactive_options.rb +62 -44
 - data/vendor/deps/cli-ui/lib/cli/ui/prompt/options_handler.rb +7 -2
 - data/vendor/deps/cli-ui/lib/cli/ui/spinner.rb +23 -3
 - data/vendor/deps/cli-ui/lib/cli/ui/spinner/spin_group.rb +34 -10
 - data/vendor/deps/cli-ui/lib/cli/ui/stdout_router.rb +12 -7
 - data/vendor/deps/cli-ui/lib/cli/ui/terminal.rb +26 -16
 - data/vendor/deps/cli-ui/lib/cli/ui/truncater.rb +3 -3
 - data/vendor/deps/cli-ui/lib/cli/ui/widgets.rb +75 -0
 - data/vendor/deps/cli-ui/lib/cli/ui/widgets/base.rb +27 -0
 - data/vendor/deps/cli-ui/lib/cli/ui/widgets/status.rb +61 -0
 - metadata +20 -7
 - data/lib/project_types/extension/features/tunnel_url.rb +0 -20
 - data/lib/project_types/script/layers/infrastructure/assemblyscript_dependency_manager.rb +0 -51
 - data/lib/project_types/script/layers/infrastructure/dependency_manager.rb +0 -36
 - data/lib/project_types/script/layers/infrastructure/test_suite_repository.rb +0 -62
 - data/vendor/deps/cli-ui/lib/cli/ui/box.rb +0 -15
 
| 
         @@ -1,20 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
            require 'base64'
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            module Extension
         
     | 
| 
       5 
     | 
    
         
            -
              module Features
         
     | 
| 
       6 
     | 
    
         
            -
                module TunnelUrl
         
     | 
| 
       7 
     | 
    
         
            -
                  NGROK_TUNNELS_URI = URI.parse('http://localhost:4040/api/tunnels')
         
     | 
| 
       8 
     | 
    
         
            -
                  TUNNELS_FIELD = 'tunnels'
         
     | 
| 
       9 
     | 
    
         
            -
                  PUBLIC_URL_FIELD = 'public_url'
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                  def self.fetch
         
     | 
| 
       12 
     | 
    
         
            -
                    response = Net::HTTP.get_response(NGROK_TUNNELS_URI)
         
     | 
| 
       13 
     | 
    
         
            -
                    json = JSON.parse(response.body)
         
     | 
| 
       14 
     | 
    
         
            -
                    json.dig(TUNNELS_FIELD, 0, PUBLIC_URL_FIELD)
         
     | 
| 
       15 
     | 
    
         
            -
                  rescue
         
     | 
| 
       16 
     | 
    
         
            -
                    nil
         
     | 
| 
       17 
     | 
    
         
            -
                  end
         
     | 
| 
       18 
     | 
    
         
            -
                end
         
     | 
| 
       19 
     | 
    
         
            -
              end
         
     | 
| 
       20 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,51 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module Script
         
     | 
| 
       4 
     | 
    
         
            -
              module Layers
         
     | 
| 
       5 
     | 
    
         
            -
                module Infrastructure
         
     | 
| 
       6 
     | 
    
         
            -
                  class AssemblyScriptDependencyManager
         
     | 
| 
       7 
     | 
    
         
            -
                    def initialize(ctx, language, extension_point, script_name)
         
     | 
| 
       8 
     | 
    
         
            -
                      @ctx = ctx
         
     | 
| 
       9 
     | 
    
         
            -
                      @language = language
         
     | 
| 
       10 
     | 
    
         
            -
                      @script_name = script_name
         
     | 
| 
       11 
     | 
    
         
            -
                      @extension_point = extension_point
         
     | 
| 
       12 
     | 
    
         
            -
                    end
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
                    def bootstrap
         
     | 
| 
       15 
     | 
    
         
            -
                      write_npmrc
         
     | 
| 
       16 
     | 
    
         
            -
                      write_package_json
         
     | 
| 
       17 
     | 
    
         
            -
                    end
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
                    private
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
                    def write_npmrc
         
     | 
| 
       22 
     | 
    
         
            -
                      @ctx.system(
         
     | 
| 
       23 
     | 
    
         
            -
                        'npm', '--userconfig', './.npmrc', 'config', 'set', '@shopify:registry', 'https://registry.npmjs.com'
         
     | 
| 
       24 
     | 
    
         
            -
                      )
         
     | 
| 
       25 
     | 
    
         
            -
                    end
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
                    def write_package_json
         
     | 
| 
       28 
     | 
    
         
            -
                      package_json = <<~HERE
         
     | 
| 
       29 
     | 
    
         
            -
                        {
         
     | 
| 
       30 
     | 
    
         
            -
                          "name": "#{@script_name}",
         
     | 
| 
       31 
     | 
    
         
            -
                          "version": "1.0.0",
         
     | 
| 
       32 
     | 
    
         
            -
                          "devDependencies": {
         
     | 
| 
       33 
     | 
    
         
            -
                            "@shopify/scripts-sdk-as": "#{@extension_point.sdks[:ts].sdk_version}",
         
     | 
| 
       34 
     | 
    
         
            -
                            "@shopify/scripts-toolchain-as": "#{@extension_point.sdks[:ts].toolchain_version}",
         
     | 
| 
       35 
     | 
    
         
            -
                            "#{@extension_point.sdks[:ts].package}": "#{@extension_point.sdks[:ts].version}",
         
     | 
| 
       36 
     | 
    
         
            -
                            "@as-pect/cli": "4.0.0",
         
     | 
| 
       37 
     | 
    
         
            -
                            "as-wasi": "^0.0.1",
         
     | 
| 
       38 
     | 
    
         
            -
                            "assemblyscript": "^0.12.0"
         
     | 
| 
       39 
     | 
    
         
            -
                          },
         
     | 
| 
       40 
     | 
    
         
            -
                          "scripts": {
         
     | 
| 
       41 
     | 
    
         
            -
                            "test": "asp --config test/as-pect.config.js --summary --verbose"
         
     | 
| 
       42 
     | 
    
         
            -
                          }
         
     | 
| 
       43 
     | 
    
         
            -
                        }
         
     | 
| 
       44 
     | 
    
         
            -
                      HERE
         
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
                      File.write("package.json", package_json)
         
     | 
| 
       47 
     | 
    
         
            -
                    end
         
     | 
| 
       48 
     | 
    
         
            -
                  end
         
     | 
| 
       49 
     | 
    
         
            -
                end
         
     | 
| 
       50 
     | 
    
         
            -
              end
         
     | 
| 
       51 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,36 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module Script
         
     | 
| 
       4 
     | 
    
         
            -
              module Layers
         
     | 
| 
       5 
     | 
    
         
            -
                module Infrastructure
         
     | 
| 
       6 
     | 
    
         
            -
                  class NoopDependencyManager
         
     | 
| 
       7 
     | 
    
         
            -
                    def initialize(_ctx, language, _extension_point, script_name)
         
     | 
| 
       8 
     | 
    
         
            -
                      @language = language
         
     | 
| 
       9 
     | 
    
         
            -
                      @script_name = script_name
         
     | 
| 
       10 
     | 
    
         
            -
                    end
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
                    def bootstrap
         
     | 
| 
       13 
     | 
    
         
            -
                    end
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
                    def installed?
         
     | 
| 
       16 
     | 
    
         
            -
                    end
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
                    def install
         
     | 
| 
       19 
     | 
    
         
            -
                    end
         
     | 
| 
       20 
     | 
    
         
            -
                  end
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
                  class DependencyManager
         
     | 
| 
       23 
     | 
    
         
            -
                    DEP_MANAGER = {
         
     | 
| 
       24 
     | 
    
         
            -
                      "ts" => AssemblyScriptDependencyManager,
         
     | 
| 
       25 
     | 
    
         
            -
                      "js" => NoopDependencyManager,
         
     | 
| 
       26 
     | 
    
         
            -
                      "json" => NoopDependencyManager,
         
     | 
| 
       27 
     | 
    
         
            -
                    }
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
                    def self.for(ctx, language, extension_point, script_name)
         
     | 
| 
       30 
     | 
    
         
            -
                      raise Errors::DependencyError, language unless DEP_MANAGER[language]
         
     | 
| 
       31 
     | 
    
         
            -
                      DEP_MANAGER[language].new(ctx, language, extension_point, script_name)
         
     | 
| 
       32 
     | 
    
         
            -
                    end
         
     | 
| 
       33 
     | 
    
         
            -
                  end
         
     | 
| 
       34 
     | 
    
         
            -
                end
         
     | 
| 
       35 
     | 
    
         
            -
              end
         
     | 
| 
       36 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,62 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            require 'pathname'
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            module Script
         
     | 
| 
       6 
     | 
    
         
            -
              module Layers
         
     | 
| 
       7 
     | 
    
         
            -
                module Infrastructure
         
     | 
| 
       8 
     | 
    
         
            -
                  class TestSuiteRepository
         
     | 
| 
       9 
     | 
    
         
            -
                    include SmartProperties
         
     | 
| 
       10 
     | 
    
         
            -
                    property! :ctx, accepts: ShopifyCli::Context
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
                    ASPECT_DTS_FILENAME = "as-pect.d.ts"
         
     | 
| 
       13 
     | 
    
         
            -
                    ASPECT_DTS_FILE_CONTENTS = "/// <reference types=\"@as-pect/assembly/types/as-pect\" />"
         
     | 
| 
       14 
     | 
    
         
            -
                    BOOTSTRAP_TEST = "npx --no-install shopify-scripts-bootstrap test %{test_base}"
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
                    def create_test_suite(script)
         
     | 
| 
       17 
     | 
    
         
            -
                      # Remove this once we have a test suite for js
         
     | 
| 
       18 
     | 
    
         
            -
                      return unless script.language == "ts"
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                      ctx.mkdir_p(test_base)
         
     | 
| 
       21 
     | 
    
         
            -
                      ctx.cp(aspect_config_template(script.language), "#{test_base}/as-pect.config.js")
         
     | 
| 
       22 
     | 
    
         
            -
                      out, status = CLI::Kit::System.capture2e(format(BOOTSTRAP_TEST, test_base: test_base))
         
     | 
| 
       23 
     | 
    
         
            -
                      raise Domain::Errors::ServiceFailureError, out unless status.success?
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
                      write_tsconfig_file
         
     | 
| 
       26 
     | 
    
         
            -
                      write_aspect_type_definitions_file
         
     | 
| 
       27 
     | 
    
         
            -
                    end
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
                    private
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
                    def test_dir
         
     | 
| 
       32 
     | 
    
         
            -
                      "test"
         
     | 
| 
       33 
     | 
    
         
            -
                    end
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
                    def test_base
         
     | 
| 
       36 
     | 
    
         
            -
                      "#{ScriptProject.current.directory}/#{test_dir}"
         
     | 
| 
       37 
     | 
    
         
            -
                    end
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
                    def aspect_config_template(language)
         
     | 
| 
       40 
     | 
    
         
            -
                      Project.project_filepath("templates/#{language}/as-pect.config.js")
         
     | 
| 
       41 
     | 
    
         
            -
                    end
         
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
                    def write_tsconfig_file
         
     | 
| 
       44 
     | 
    
         
            -
                      AssemblyScriptTsConfig
         
     | 
| 
       45 
     | 
    
         
            -
                        .new(dir_to_write_in: test_dir)
         
     | 
| 
       46 
     | 
    
         
            -
                        .with_extends_assemblyscript_config(relative_path_to_node_modules: ".")
         
     | 
| 
       47 
     | 
    
         
            -
                        .with_module_resolution_paths(paths: { "*": ["#{relative_path_to_source_dir}/*.ts"] })
         
     | 
| 
       48 
     | 
    
         
            -
                        .write
         
     | 
| 
       49 
     | 
    
         
            -
                    end
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
                    def relative_path_to_source_dir
         
     | 
| 
       52 
     | 
    
         
            -
                      src_path_from_root = ScriptRepository.new(ctx: ctx).relative_path_to_src
         
     | 
| 
       53 
     | 
    
         
            -
                      Pathname.new(src_path_from_root).relative_path_from(test_dir)
         
     | 
| 
       54 
     | 
    
         
            -
                    end
         
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
       56 
     | 
    
         
            -
                    def write_aspect_type_definitions_file
         
     | 
| 
       57 
     | 
    
         
            -
                      File.write("#{test_base}/#{ASPECT_DTS_FILENAME}", ASPECT_DTS_FILE_CONTENTS)
         
     | 
| 
       58 
     | 
    
         
            -
                    end
         
     | 
| 
       59 
     | 
    
         
            -
                  end
         
     | 
| 
       60 
     | 
    
         
            -
                end
         
     | 
| 
       61 
     | 
    
         
            -
              end
         
     | 
| 
       62 
     | 
    
         
            -
            end
         
     |