shopify-cli 1.6.0 → 1.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (206) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +15 -2
  3. data/CHANGELOG.md +21 -0
  4. data/Gemfile +12 -12
  5. data/Gemfile.lock +14 -14
  6. data/Rakefile +32 -30
  7. data/bin/load_shopify.rb +6 -6
  8. data/bin/shopify +2 -2
  9. data/dev.yml +3 -0
  10. data/ext/shopify-cli/extconf.rb +7 -7
  11. data/lib/docgen/markdown.rb +12 -12
  12. data/lib/graphql/extension_create.graphql +17 -2
  13. data/lib/graphql/fetch_specifications.graphql +14 -0
  14. data/lib/{project_types/extension/graphql → graphql}/get_app_by_api_key.graphql +0 -0
  15. data/lib/project_types/extension/cli.rb +56 -55
  16. data/lib/project_types/extension/commands/build.rb +3 -3
  17. data/lib/project_types/extension/commands/create.rb +17 -10
  18. data/lib/project_types/extension/commands/extension_command.rb +14 -7
  19. data/lib/project_types/extension/commands/push.rb +10 -10
  20. data/lib/project_types/extension/commands/register.rb +22 -32
  21. data/lib/project_types/extension/commands/serve.rb +1 -7
  22. data/lib/project_types/extension/commands/tunnel.rb +12 -12
  23. data/lib/project_types/extension/extension_project.rb +22 -7
  24. data/lib/project_types/extension/extension_project_keys.rb +5 -4
  25. data/lib/project_types/extension/features/argo.rb +26 -42
  26. data/lib/project_types/extension/features/argo_config.rb +5 -5
  27. data/lib/project_types/extension/features/argo_dependencies.rb +5 -5
  28. data/lib/project_types/extension/features/argo_renderer_package.rb +47 -0
  29. data/lib/project_types/extension/features/argo_serve.rb +69 -0
  30. data/lib/project_types/extension/features/argo_setup.rb +3 -3
  31. data/lib/project_types/extension/features/argo_setup_steps.rb +4 -4
  32. data/lib/project_types/extension/forms/create.rb +28 -34
  33. data/lib/project_types/extension/forms/questions/ask_app.rb +53 -0
  34. data/lib/project_types/extension/forms/questions/ask_name.rb +40 -0
  35. data/lib/project_types/extension/forms/questions/ask_type.rb +47 -0
  36. data/lib/project_types/extension/messages/message_loading.rb +3 -1
  37. data/lib/project_types/extension/messages/messages.rb +55 -55
  38. data/lib/project_types/extension/models/lazy_specification_handler.rb +12 -0
  39. data/lib/project_types/extension/models/registration.rb +1 -0
  40. data/lib/project_types/extension/models/specification.rb +6 -2
  41. data/lib/project_types/extension/models/specification_handlers/checkout_post_purchase.rb +1 -1
  42. data/lib/project_types/extension/models/specification_handlers/default.rb +10 -2
  43. data/lib/project_types/extension/models/specifications.rb +14 -3
  44. data/lib/project_types/extension/models/version.rb +1 -1
  45. data/lib/project_types/extension/tasks/configure_features.rb +7 -5
  46. data/lib/project_types/extension/tasks/converters/app_converter.rb +6 -6
  47. data/lib/project_types/extension/tasks/converters/registration_converter.rb +8 -6
  48. data/lib/project_types/extension/tasks/converters/validation_error_converter.rb +4 -4
  49. data/lib/project_types/extension/tasks/converters/version_converter.rb +7 -7
  50. data/lib/project_types/extension/tasks/create_extension.rb +4 -4
  51. data/lib/project_types/extension/tasks/fetch_specifications.rb +8 -28
  52. data/lib/project_types/extension/tasks/get_app.rb +4 -4
  53. data/lib/project_types/extension/tasks/get_apps.rb +3 -3
  54. data/lib/project_types/extension/tasks/update_draft.rb +4 -4
  55. data/lib/project_types/extension/tasks/user_errors.rb +4 -4
  56. data/lib/project_types/node/cli.rb +19 -19
  57. data/lib/project_types/node/commands/connect.rb +3 -3
  58. data/lib/project_types/node/commands/create.rb +40 -38
  59. data/lib/project_types/node/commands/deploy.rb +4 -4
  60. data/lib/project_types/node/commands/deploy/heroku.rb +24 -24
  61. data/lib/project_types/node/commands/generate.rb +2 -24
  62. data/lib/project_types/node/commands/open.rb +2 -2
  63. data/lib/project_types/node/commands/populate.rb +6 -6
  64. data/lib/project_types/node/commands/populate/customer.rb +5 -5
  65. data/lib/project_types/node/commands/populate/draft_order.rb +5 -5
  66. data/lib/project_types/node/commands/populate/product.rb +5 -5
  67. data/lib/project_types/node/commands/serve.rb +9 -9
  68. data/lib/project_types/node/commands/tunnel.rb +7 -7
  69. data/lib/project_types/node/forms/create.rb +17 -8
  70. data/lib/project_types/node/messages/messages.rb +8 -7
  71. data/lib/project_types/rails/cli.rb +21 -21
  72. data/lib/project_types/rails/commands/connect.rb +3 -3
  73. data/lib/project_types/rails/commands/create.rb +51 -48
  74. data/lib/project_types/rails/commands/deploy.rb +4 -4
  75. data/lib/project_types/rails/commands/deploy/heroku.rb +30 -30
  76. data/lib/project_types/rails/commands/generate.rb +7 -7
  77. data/lib/project_types/rails/commands/generate/webhook.rb +6 -6
  78. data/lib/project_types/rails/commands/open.rb +2 -2
  79. data/lib/project_types/rails/commands/populate.rb +6 -6
  80. data/lib/project_types/rails/commands/populate/customer.rb +5 -5
  81. data/lib/project_types/rails/commands/populate/draft_order.rb +5 -5
  82. data/lib/project_types/rails/commands/populate/product.rb +5 -5
  83. data/lib/project_types/rails/commands/serve.rb +11 -11
  84. data/lib/project_types/rails/commands/tunnel.rb +7 -7
  85. data/lib/project_types/rails/forms/create.rb +34 -24
  86. data/lib/project_types/rails/gem.rb +23 -23
  87. data/lib/project_types/rails/messages/messages.rb +9 -8
  88. data/lib/project_types/rails/ruby.rb +2 -2
  89. data/lib/project_types/script/cli.rb +36 -40
  90. data/lib/project_types/script/commands/create.rb +9 -13
  91. data/lib/project_types/script/commands/push.rb +6 -5
  92. data/lib/project_types/script/config/extension_points.yml +25 -10
  93. data/lib/project_types/script/errors.rb +1 -19
  94. data/lib/project_types/script/forms/create.rb +7 -18
  95. data/lib/project_types/script/graphql/app_script_update_or_create.graphql +7 -5
  96. data/lib/project_types/script/graphql/script_service_proxy.graphql +1 -2
  97. data/lib/project_types/script/layers/application/build_script.rb +6 -8
  98. data/lib/project_types/script/layers/application/create_script.rb +34 -24
  99. data/lib/project_types/script/layers/application/extension_points.rb +3 -2
  100. data/lib/project_types/script/layers/application/project_dependencies.rb +4 -4
  101. data/lib/project_types/script/layers/application/push_script.rb +10 -15
  102. data/lib/project_types/script/layers/domain/config_ui.rb +16 -0
  103. data/lib/project_types/script/layers/domain/errors.rb +16 -0
  104. data/lib/project_types/script/layers/domain/extension_point.rb +60 -45
  105. data/lib/project_types/script/layers/domain/metadata.rb +18 -25
  106. data/lib/project_types/script/layers/domain/push_package.rb +9 -5
  107. data/lib/project_types/script/layers/domain/script_project.rb +38 -0
  108. data/lib/project_types/script/layers/infrastructure/assemblyscript_project_creator.rb +39 -10
  109. data/lib/project_types/script/layers/infrastructure/assemblyscript_task_runner.rb +9 -44
  110. data/lib/project_types/script/layers/infrastructure/errors.rb +50 -19
  111. data/lib/project_types/script/layers/infrastructure/extension_point_repository.rb +2 -2
  112. data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +16 -21
  113. data/lib/project_types/script/layers/infrastructure/rust_project_creator.rb +4 -4
  114. data/lib/project_types/script/layers/infrastructure/rust_task_runner.rb +2 -2
  115. data/lib/project_types/script/layers/infrastructure/script_project_repository.rb +179 -0
  116. data/lib/project_types/script/layers/infrastructure/script_service.rb +35 -78
  117. data/lib/project_types/script/messages/messages.rb +33 -57
  118. data/lib/project_types/script/ui/error_handler.rb +116 -88
  119. data/lib/project_types/script/ui/printing_spinner.rb +1 -1
  120. data/lib/project_types/script/ui/strict_spinner.rb +1 -1
  121. data/lib/project_types/theme/cli.rb +19 -19
  122. data/lib/project_types/theme/commands/connect.rb +12 -12
  123. data/lib/project_types/theme/commands/create.rb +11 -11
  124. data/lib/project_types/theme/commands/deploy.rb +8 -8
  125. data/lib/project_types/theme/commands/generate.rb +3 -3
  126. data/lib/project_types/theme/commands/generate/env.rb +15 -15
  127. data/lib/project_types/theme/commands/push.rb +15 -15
  128. data/lib/project_types/theme/commands/serve.rb +5 -5
  129. data/lib/project_types/theme/forms/connect.rb +4 -4
  130. data/lib/project_types/theme/forms/create.rb +5 -5
  131. data/lib/project_types/theme/tasks/ensure_themekit_installed.rb +22 -22
  132. data/lib/project_types/theme/themekit.rb +15 -15
  133. data/lib/rubygems_plugin.rb +3 -3
  134. data/lib/shopify-cli/admin_api.rb +11 -11
  135. data/lib/shopify-cli/admin_api/populate_resource_command.rb +17 -17
  136. data/lib/shopify-cli/admin_api/schema.rb +3 -3
  137. data/lib/shopify-cli/api.rb +10 -10
  138. data/lib/shopify-cli/command.rb +1 -1
  139. data/lib/shopify-cli/commands.rb +9 -9
  140. data/lib/shopify-cli/commands/config.rb +28 -52
  141. data/lib/shopify-cli/commands/connect.rb +10 -10
  142. data/lib/shopify-cli/commands/create.rb +5 -5
  143. data/lib/shopify-cli/commands/help.rb +6 -6
  144. data/lib/shopify-cli/commands/logout.rb +3 -3
  145. data/lib/shopify-cli/commands/system.rb +32 -32
  146. data/lib/shopify-cli/commands/version.rb +2 -2
  147. data/lib/shopify-cli/context.rb +51 -23
  148. data/lib/shopify-cli/core.rb +4 -4
  149. data/lib/shopify-cli/core/entry_point.rb +5 -5
  150. data/lib/shopify-cli/core/executor.rb +1 -1
  151. data/lib/shopify-cli/core/help_resolver.rb +2 -2
  152. data/lib/shopify-cli/core/monorail.rb +16 -16
  153. data/lib/shopify-cli/db.rb +2 -2
  154. data/lib/shopify-cli/feature.rb +1 -1
  155. data/lib/shopify-cli/form.rb +1 -1
  156. data/lib/shopify-cli/git.rb +17 -17
  157. data/lib/shopify-cli/helpers.rb +1 -1
  158. data/lib/shopify-cli/helpers/haikunator.rb +1 -1
  159. data/lib/shopify-cli/heroku.rb +28 -28
  160. data/lib/shopify-cli/http_request.rb +2 -2
  161. data/lib/shopify-cli/js_deps.rb +12 -12
  162. data/lib/shopify-cli/js_system.rb +7 -7
  163. data/lib/shopify-cli/lazy_delegator.rb +55 -0
  164. data/lib/shopify-cli/messages/messages.rb +7 -16
  165. data/lib/shopify-cli/method_object.rb +1 -1
  166. data/lib/shopify-cli/oauth.rb +27 -27
  167. data/lib/shopify-cli/oauth/servlet.rb +9 -9
  168. data/lib/shopify-cli/options.rb +3 -3
  169. data/lib/shopify-cli/packager.rb +25 -25
  170. data/lib/shopify-cli/partners_api.rb +16 -16
  171. data/lib/shopify-cli/partners_api/organizations.rb +10 -10
  172. data/lib/shopify-cli/process_supervision.rb +7 -7
  173. data/lib/shopify-cli/project.rb +16 -16
  174. data/lib/shopify-cli/project_type.rb +3 -3
  175. data/lib/shopify-cli/resolve_constant.rb +1 -1
  176. data/lib/shopify-cli/resources.rb +1 -1
  177. data/lib/shopify-cli/resources/env_file.rb +10 -10
  178. data/lib/shopify-cli/result.rb +11 -11
  179. data/lib/shopify-cli/shopifolk.rb +6 -9
  180. data/lib/shopify-cli/sub_command.rb +1 -1
  181. data/lib/shopify-cli/task.rb +3 -3
  182. data/lib/shopify-cli/tasks.rb +7 -7
  183. data/lib/shopify-cli/tasks/create_api_client.rb +5 -5
  184. data/lib/shopify-cli/tasks/ensure_dev_store.rb +12 -12
  185. data/lib/shopify-cli/tasks/ensure_env.rb +15 -15
  186. data/lib/shopify-cli/tasks/ensure_loopback_url.rb +4 -4
  187. data/lib/shopify-cli/tasks/select_org_and_shop.rb +19 -19
  188. data/lib/shopify-cli/tasks/update_dashboard_urls.rb +10 -10
  189. data/lib/shopify-cli/transform_data_structure.rb +86 -0
  190. data/lib/shopify-cli/tunnel.rb +30 -30
  191. data/lib/shopify-cli/version.rb +1 -1
  192. data/lib/shopify_cli.rb +56 -54
  193. data/shopify-cli.gemspec +6 -6
  194. data/vendor/deps/smart_properties/REVISION +1 -1
  195. data/vendor/deps/smart_properties/lib/smart_properties/property.rb +7 -1
  196. data/vendor/deps/smart_properties/lib/smart_properties/version.rb +1 -1
  197. data/vendor/gen/template/bin/update-deps +9 -9
  198. metadata +15 -11
  199. data/lib/project_types/extension/forms/register.rb +0 -47
  200. data/lib/project_types/script/commands/disable.rb +0 -25
  201. data/lib/project_types/script/commands/enable.rb +0 -78
  202. data/lib/project_types/script/graphql/shop_script_delete.graphql +0 -14
  203. data/lib/project_types/script/graphql/shop_script_update_or_create.graphql +0 -28
  204. data/lib/project_types/script/layers/application/disable_script.rb +0 -21
  205. data/lib/project_types/script/layers/application/enable_script.rb +0 -23
  206. data/lib/project_types/script/script_project.rb +0 -63
@@ -1,3 +1,3 @@
1
1
  module ShopifyCli
2
- VERSION = '1.6.0'
2
+ VERSION = "1.9.1"
3
3
  end
data/lib/shopify_cli.rb CHANGED
@@ -8,7 +8,7 @@ Thread.report_on_exception = false
8
8
  # require_relative 'support/ruby_backports'
9
9
 
10
10
  # See bin/load_shopify.rb
11
- ENV['PATH'] = ENV['PATH'].split(':').select { |p| p.start_with?('/', '~') }.join(':') unless defined?($original_env)
11
+ ENV["PATH"] = ENV["PATH"].split(":").select { |p| p.start_with?("/", "~") }.join(":") unless defined?($original_env)
12
12
 
13
13
  # Load vendor and CLI UI/Kit.
14
14
  # Nothing else should be loaded at this point and nothing else should be added to the load path on boot
@@ -21,10 +21,10 @@ deps.each do |dep|
21
21
  $LOAD_PATH.unshift(vendor_path) unless $LOAD_PATH.include?(vendor_path)
22
22
  end
23
23
 
24
- require 'cli/ui'
25
- require 'cli/kit'
26
- require 'smart_properties'
27
- require_relative 'shopify-cli/version'
24
+ require "cli/ui"
25
+ require "cli/kit"
26
+ require "smart_properties"
27
+ require_relative "shopify-cli/version"
28
28
 
29
29
  # Enable stdout routing. At this point all calls to STDOUT (and STDERR) will go through this class.
30
30
  # See https://github.com/Shopify/cli-ui/blob/master/lib/cli/ui/stdout_router.rb for more info
@@ -39,16 +39,16 @@ CLI::UI::StdoutRouter.enable
39
39
  module ShopifyCli
40
40
  extend CLI::Kit::Autocall
41
41
 
42
- TOOL_NAME = 'shopify'
43
- TOOL_FULL_NAME = 'Shopify CLI'
44
- ROOT = File.expand_path('../..', __FILE__)
45
- PROJECT_TYPES_DIR = File.join(ROOT, 'lib', 'project_types')
46
- TEMP_DIR = File.join(ROOT, '.tmp')
42
+ TOOL_NAME = "shopify"
43
+ TOOL_FULL_NAME = "Shopify CLI"
44
+ ROOT = File.expand_path("../..", __FILE__)
45
+ PROJECT_TYPES_DIR = File.join(ROOT, "lib", "project_types")
46
+ TEMP_DIR = File.join(ROOT, ".tmp")
47
47
 
48
48
  # programmer emoji if default install location, else wrench emoji
49
- EMOJI = ROOT == '/opt/shopify' ? "\u{1f469}\u{200d}\u{1f4bb}" : "\u{1f527}"
49
+ EMOJI = ROOT == "/opt/shopify" ? "\u{1f469}\u{200d}\u{1f4bb}" : "\u{1f527}"
50
50
  # shrug or boom emoji
51
- FAILMOJI = ROOT == '/opt/shopify' ? "\u{1f937}" : "\u{1f4a5}"
51
+ FAILMOJI = ROOT == "/opt/shopify" ? "\u{1f937}" : "\u{1f4a5}"
52
52
 
53
53
  # Exit management in `shopify-app-cli` follows the management set out by CLI Kit.
54
54
  # https://github.com/Shopify/cli-kit/blob/master/lib/cli/kit.rb
@@ -94,47 +94,49 @@ module ShopifyCli
94
94
  )
95
95
  end
96
96
 
97
- autoload :AdminAPI, 'shopify-cli/admin_api'
98
- autoload :API, 'shopify-cli/api'
99
- autoload :Command, 'shopify-cli/command'
100
- autoload :Commands, 'shopify-cli/commands'
101
- autoload :Context, 'shopify-cli/context'
102
- autoload :Core, 'shopify-cli/core'
103
- autoload :DB, 'shopify-cli/db'
104
- autoload :Feature, 'shopify-cli/feature'
105
- autoload :Form, 'shopify-cli/form'
106
- autoload :Git, 'shopify-cli/git'
107
- autoload :Helpers, 'shopify-cli/helpers'
108
- autoload :Heroku, 'shopify-cli/heroku'
109
- autoload :JsDeps, 'shopify-cli/js_deps'
110
- autoload :JsSystem, 'shopify-cli/js_system'
111
- autoload :MethodObject, 'shopify-cli/method_object'
112
- autoload :Log, 'shopify-cli/log'
113
- autoload :OAuth, 'shopify-cli/oauth'
114
- autoload :Options, 'shopify-cli/options'
115
- autoload :PartnersAPI, 'shopify-cli/partners_api'
116
- autoload :ProcessSupervision, 'shopify-cli/process_supervision'
117
- autoload :Project, 'shopify-cli/project'
118
- autoload :ProjectType, 'shopify-cli/project_type'
119
- autoload :ResolveConstant, 'shopify-cli/resolve_constant'
120
- autoload :Resources, 'shopify-cli/resources'
121
- autoload :Result, 'shopify-cli/result'
122
- autoload :Shopifolk, 'shopify-cli/shopifolk'
123
- autoload :SubCommand, 'shopify-cli/sub_command'
124
- autoload :Task, 'shopify-cli/task'
125
- autoload :Tasks, 'shopify-cli/tasks'
126
- autoload :Tunnel, 'shopify-cli/tunnel'
127
-
128
- require 'shopify-cli/messages/messages'
97
+ autoload :AdminAPI, "shopify-cli/admin_api"
98
+ autoload :API, "shopify-cli/api"
99
+ autoload :Command, "shopify-cli/command"
100
+ autoload :Commands, "shopify-cli/commands"
101
+ autoload :Context, "shopify-cli/context"
102
+ autoload :Core, "shopify-cli/core"
103
+ autoload :DB, "shopify-cli/db"
104
+ autoload :Feature, "shopify-cli/feature"
105
+ autoload :Form, "shopify-cli/form"
106
+ autoload :Git, "shopify-cli/git"
107
+ autoload :Helpers, "shopify-cli/helpers"
108
+ autoload :Heroku, "shopify-cli/heroku"
109
+ autoload :JsDeps, "shopify-cli/js_deps"
110
+ autoload :JsSystem, "shopify-cli/js_system"
111
+ autoload :MethodObject, "shopify-cli/method_object"
112
+ autoload :LazyDelegator, "shopify-cli/lazy_delegator"
113
+ autoload :Log, "shopify-cli/log"
114
+ autoload :OAuth, "shopify-cli/oauth"
115
+ autoload :Options, "shopify-cli/options"
116
+ autoload :PartnersAPI, "shopify-cli/partners_api"
117
+ autoload :ProcessSupervision, "shopify-cli/process_supervision"
118
+ autoload :Project, "shopify-cli/project"
119
+ autoload :ProjectType, "shopify-cli/project_type"
120
+ autoload :ResolveConstant, "shopify-cli/resolve_constant"
121
+ autoload :Resources, "shopify-cli/resources"
122
+ autoload :Result, "shopify-cli/result"
123
+ autoload :Shopifolk, "shopify-cli/shopifolk"
124
+ autoload :SubCommand, "shopify-cli/sub_command"
125
+ autoload :Task, "shopify-cli/task"
126
+ autoload :Tasks, "shopify-cli/tasks"
127
+ autoload :TransformDataStructure, "shopify-cli/transform_data_structure"
128
+ autoload :Tunnel, "shopify-cli/tunnel"
129
+
130
+ require "shopify-cli/messages/messages"
129
131
  Context.load_messages(ShopifyCli::Messages::MESSAGES)
130
132
 
131
133
  def self.cache_dir
132
- cache_dir = if ENV.key?('RUNNING_SHOPIFY_CLI_TESTS')
134
+ cache_dir = if ENV.key?("RUNNING_SHOPIFY_CLI_TESTS")
133
135
  TEMP_DIR
134
- elsif ENV['LOCALAPPDATA'].nil?
135
- File.join(File.expand_path(ENV.fetch('XDG_CACHE_HOME', '~/.cache')), TOOL_NAME)
136
+ elsif ENV["LOCALAPPDATA"].nil?
137
+ File.join(File.expand_path(ENV.fetch("XDG_CACHE_HOME", "~/.cache")), TOOL_NAME)
136
138
  else
137
- File.join(File.expand_path(ENV['LOCALAPPDATA']), TOOL_NAME)
139
+ File.join(File.expand_path(ENV["LOCALAPPDATA"]), TOOL_NAME)
138
140
  end
139
141
 
140
142
  # Make sure the cache dir always exists
@@ -144,20 +146,20 @@ module ShopifyCli
144
146
  end
145
147
 
146
148
  def self.tool_config_path
147
- if ENV.key?('RUNNING_SHOPIFY_CLI_TESTS')
149
+ if ENV.key?("RUNNING_SHOPIFY_CLI_TESTS")
148
150
  TEMP_DIR
149
- elsif ENV['APPDATA'].nil?
150
- File.join(File.expand_path(ENV.fetch('XDG_CONFIG_HOME', '~/.config')), TOOL_NAME)
151
+ elsif ENV["APPDATA"].nil?
152
+ File.join(File.expand_path(ENV.fetch("XDG_CONFIG_HOME", "~/.config")), TOOL_NAME)
151
153
  else
152
- File.join(File.expand_path(ENV['APPDATA']), TOOL_NAME)
154
+ File.join(File.expand_path(ENV["APPDATA"]), TOOL_NAME)
153
155
  end
154
156
  end
155
157
 
156
158
  def self.log_file
157
- File.join(tool_config_path, 'logs', 'log.log')
159
+ File.join(tool_config_path, "logs", "log.log")
158
160
  end
159
161
 
160
162
  def self.debug_log_file
161
- File.join(tool_config_path, 'logs', 'debug.log')
163
+ File.join(tool_config_path, "logs", "debug.log")
162
164
  end
163
165
  end
data/shopify-cli.gemspec CHANGED
@@ -1,11 +1,11 @@
1
- require_relative 'lib/shopify-cli/version'
1
+ require_relative "lib/shopify-cli/version"
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "shopify-cli"
5
5
  spec.version = ShopifyCli::VERSION
6
6
  spec.authors = ["Shopify"]
7
7
  spec.email = ["dev-tools-education@shopify.com"]
8
- spec.license = 'MIT'
8
+ spec.license = "MIT"
9
9
 
10
10
  spec.summary = "Shopify CLI helps you build Shopify apps faster."
11
11
  spec.description = <<~HERE
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
 
26
26
  # Specify which files should be added to the gem when it is released.
27
27
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
28
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
28
+ spec.files = Dir.chdir(File.expand_path("..", __FILE__)) do
29
29
  %x(git ls-files -z).split("\x0").reject do |f|
30
30
  f.match(%r{^(test|spec|features|packaging)/}) ||
31
31
  f.match(%r{^bin/(update-deps|shopify.bat)$})
@@ -35,7 +35,7 @@ Gem::Specification.new do |spec|
35
35
  spec.require_paths = ["lib", "vendor"]
36
36
  spec.extensions = ["ext/shopify-cli/extconf.rb"]
37
37
 
38
- spec.add_development_dependency('bundler', '~> 1.17')
39
- spec.add_development_dependency('rake', '~> 12.3', '>= 12.3.3')
40
- spec.add_development_dependency('minitest', '~> 5.0')
38
+ spec.add_development_dependency("bundler", "~> 1.17")
39
+ spec.add_development_dependency("rake", "~> 12.3", ">= 12.3.3")
40
+ spec.add_development_dependency("minitest", "~> 5.0")
41
41
  end
@@ -1 +1 @@
1
- 691028e47d022a29405b7f0ccc8683c9d062c502
1
+ cfe83ef361e68ba7c471af75144f2b85cf1e1ec6
@@ -1,6 +1,7 @@
1
1
  module SmartProperties
2
2
  class Property
3
3
  MODULE_REFERENCE = :"@_smart_properties_method_scope"
4
+ ALLOWED_DEFAULT_CLASSES = [Proc, Numeric, String, Range, TrueClass, FalseClass, NilClass, Symbol, Module].freeze
4
5
 
5
6
  attr_reader :name
6
7
  attr_reader :converter
@@ -27,6 +28,11 @@ module SmartProperties
27
28
 
28
29
  @instance_variable_name = :"@#{name}"
29
30
 
31
+ unless ALLOWED_DEFAULT_CLASSES.any? { |cls| @default.is_a?(cls) }
32
+ raise ConfigurationError, "Default attribute value #{@default.inspect} cannot be specified as literal, "\
33
+ "use the syntax `default: -> { ... }` instead."
34
+ end
35
+
30
36
  unless attrs.empty?
31
37
  raise ConfigurationError, "SmartProperties do not support the following configuration options: #{attrs.keys.map { |m| m.to_s }.sort.join(', ')}."
32
38
  end
@@ -66,7 +72,7 @@ module SmartProperties
66
72
  end
67
73
 
68
74
  def default(scope)
69
- @default.kind_of?(Proc) ? scope.instance_exec(&@default) : @default
75
+ @default.kind_of?(Proc) ? scope.instance_exec(&@default) : @default.dup
70
76
  end
71
77
 
72
78
  def accepts?(value, scope)
@@ -1,3 +1,3 @@
1
1
  module SmartProperties
2
- VERSION = "1.14.0"
2
+ VERSION = "1.15.0"
3
3
  end
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  $LOAD_PATH.unshift(File.expand_path("../../vendor/deps/cli-ui/lib", __FILE__))
4
- require 'open3'
5
- require 'fileutils'
4
+ require "open3"
5
+ require "fileutils"
6
6
 
7
7
  def fmt(tag, msg)
8
8
  # Not really CLI::UI.fmt compatible: no nesting support, for example.
@@ -27,7 +27,7 @@ def warn(msg)
27
27
  end
28
28
 
29
29
  def source_path
30
- File.expand_path(ENV.fetch('SOURCE_ROOT', File.expand_path('../../..', __FILE__)))
30
+ File.expand_path(ENV.fetch("SOURCE_ROOT", File.expand_path("../../..", __FILE__)))
31
31
  end
32
32
 
33
33
  deps = %w(cli-ui cli-kit)
@@ -50,18 +50,18 @@ deps.each do |dep|
50
50
  dirty = false
51
51
 
52
52
  Dir.chdir(path) do
53
- _, _, stat = Open3.capture3('git fetch origin master')
53
+ _, _, stat = Open3.capture3("git fetch origin master")
54
54
  bail("couldn't git fetch in dependency: {{yellow:#{dep}}}") unless stat.success?
55
55
 
56
- head_sha, stat = Open3.capture2('git rev-parse HEAD')
56
+ head_sha, stat = Open3.capture2("git rev-parse HEAD")
57
57
  bail("couldn't determine HEAD: {{yellow:#{dep}}}") unless stat.success?
58
58
  head_sha.chomp!
59
59
 
60
- fetch_head_sha, stat = Open3.capture2('git rev-parse FETCH_HEAD')
60
+ fetch_head_sha, stat = Open3.capture2("git rev-parse FETCH_HEAD")
61
61
  bail("couldn't determine FETCH_HEAD: {{yellow:#{dep}}}") unless stat.success?
62
62
  fetch_head_sha.chomp!
63
63
 
64
- git_status, stat = Open3.capture2('git status --porcelain')
64
+ git_status, stat = Open3.capture2("git status --porcelain")
65
65
  bail("couldn't determine git status: {{yellow:#{dep}}}") unless stat.success?
66
66
 
67
67
  if head_sha != fetch_head_sha
@@ -84,8 +84,8 @@ deps.each do |dep|
84
84
  depdir = File.expand_path("../../vendor/deps/#{dep}", __FILE__)
85
85
  FileUtils.rm_rf(depdir)
86
86
  FileUtils.mkdir_p(depdir)
87
- dstlib = File.expand_path('lib', depdir)
88
- srclib = File.expand_path('lib', path)
87
+ dstlib = File.expand_path("lib", depdir)
88
+ srclib = File.expand_path("lib", path)
89
89
 
90
90
  FileUtils.cp_r(srclib, dstlib)
91
91
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shopify-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-26 00:00:00.000000000 Z
11
+ date: 2021-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -126,7 +126,9 @@ files:
126
126
  - lib/graphql/create_product.graphql
127
127
  - lib/graphql/extension_create.graphql
128
128
  - lib/graphql/extension_update_draft.graphql
129
+ - lib/graphql/fetch_specifications.graphql
129
130
  - lib/graphql/find_organization.graphql
131
+ - lib/graphql/get_app_by_api_key.graphql
130
132
  - lib/graphql/get_app_urls.graphql
131
133
  - lib/graphql/update_dashboard_urls.graphql
132
134
  - lib/project_types/extension/cli.rb
@@ -142,15 +144,19 @@ files:
142
144
  - lib/project_types/extension/features/argo.rb
143
145
  - lib/project_types/extension/features/argo_config.rb
144
146
  - lib/project_types/extension/features/argo_dependencies.rb
147
+ - lib/project_types/extension/features/argo_renderer_package.rb
148
+ - lib/project_types/extension/features/argo_serve.rb
145
149
  - lib/project_types/extension/features/argo_setup.rb
146
150
  - lib/project_types/extension/features/argo_setup_step.rb
147
151
  - lib/project_types/extension/features/argo_setup_steps.rb
148
152
  - lib/project_types/extension/forms/create.rb
149
- - lib/project_types/extension/forms/register.rb
150
- - lib/project_types/extension/graphql/get_app_by_api_key.graphql
153
+ - lib/project_types/extension/forms/questions/ask_app.rb
154
+ - lib/project_types/extension/forms/questions/ask_name.rb
155
+ - lib/project_types/extension/forms/questions/ask_type.rb
151
156
  - lib/project_types/extension/messages/message_loading.rb
152
157
  - lib/project_types/extension/messages/messages.rb
153
158
  - lib/project_types/extension/models/app.rb
159
+ - lib/project_types/extension/models/lazy_specification_handler.rb
154
160
  - lib/project_types/extension/models/registration.rb
155
161
  - lib/project_types/extension/models/specification.rb
156
162
  - lib/project_types/extension/models/specification_handlers/checkout_post_purchase.rb
@@ -204,27 +210,23 @@ files:
204
210
  - lib/project_types/rails/ruby.rb
205
211
  - lib/project_types/script/cli.rb
206
212
  - lib/project_types/script/commands/create.rb
207
- - lib/project_types/script/commands/disable.rb
208
- - lib/project_types/script/commands/enable.rb
209
213
  - lib/project_types/script/commands/push.rb
210
214
  - lib/project_types/script/config/extension_points.yml
211
215
  - lib/project_types/script/errors.rb
212
216
  - lib/project_types/script/forms/create.rb
213
217
  - lib/project_types/script/graphql/app_script_update_or_create.graphql
214
218
  - lib/project_types/script/graphql/script_service_proxy.graphql
215
- - lib/project_types/script/graphql/shop_script_delete.graphql
216
- - lib/project_types/script/graphql/shop_script_update_or_create.graphql
217
219
  - lib/project_types/script/layers/application/build_script.rb
218
220
  - lib/project_types/script/layers/application/create_script.rb
219
- - lib/project_types/script/layers/application/disable_script.rb
220
- - lib/project_types/script/layers/application/enable_script.rb
221
221
  - lib/project_types/script/layers/application/extension_points.rb
222
222
  - lib/project_types/script/layers/application/project_dependencies.rb
223
223
  - lib/project_types/script/layers/application/push_script.rb
224
+ - lib/project_types/script/layers/domain/config_ui.rb
224
225
  - lib/project_types/script/layers/domain/errors.rb
225
226
  - lib/project_types/script/layers/domain/extension_point.rb
226
227
  - lib/project_types/script/layers/domain/metadata.rb
227
228
  - lib/project_types/script/layers/domain/push_package.rb
229
+ - lib/project_types/script/layers/domain/script_project.rb
228
230
  - lib/project_types/script/layers/infrastructure/assemblyscript_project_creator.rb
229
231
  - lib/project_types/script/layers/infrastructure/assemblyscript_task_runner.rb
230
232
  - lib/project_types/script/layers/infrastructure/errors.rb
@@ -233,10 +235,10 @@ files:
233
235
  - lib/project_types/script/layers/infrastructure/push_package_repository.rb
234
236
  - lib/project_types/script/layers/infrastructure/rust_project_creator.rb
235
237
  - lib/project_types/script/layers/infrastructure/rust_task_runner.rb
238
+ - lib/project_types/script/layers/infrastructure/script_project_repository.rb
236
239
  - lib/project_types/script/layers/infrastructure/script_service.rb
237
240
  - lib/project_types/script/layers/infrastructure/task_runner.rb
238
241
  - lib/project_types/script/messages/messages.rb
239
- - lib/project_types/script/script_project.rb
240
242
  - lib/project_types/script/ui/error_handler.rb
241
243
  - lib/project_types/script/ui/printing_spinner.rb
242
244
  - lib/project_types/script/ui/strict_spinner.rb
@@ -284,6 +286,7 @@ files:
284
286
  - lib/shopify-cli/http_request.rb
285
287
  - lib/shopify-cli/js_deps.rb
286
288
  - lib/shopify-cli/js_system.rb
289
+ - lib/shopify-cli/lazy_delegator.rb
287
290
  - lib/shopify-cli/messages/messages.rb
288
291
  - lib/shopify-cli/method_object.rb
289
292
  - lib/shopify-cli/oauth.rb
@@ -309,6 +312,7 @@ files:
309
312
  - lib/shopify-cli/tasks/ensure_loopback_url.rb
310
313
  - lib/shopify-cli/tasks/select_org_and_shop.rb
311
314
  - lib/shopify-cli/tasks/update_dashboard_urls.rb
315
+ - lib/shopify-cli/transform_data_structure.rb
312
316
  - lib/shopify-cli/tunnel.rb
313
317
  - lib/shopify-cli/version.rb
314
318
  - lib/shopify_cli.rb
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Extension
4
- module Forms
5
- class Register < ShopifyCli::Form
6
- flag_arguments :api_key
7
-
8
- attr_reader :app
9
-
10
- def ask
11
- self.app = ask_app
12
- end
13
-
14
- private
15
-
16
- attr_writer :app
17
-
18
- def ask_app
19
- if !api_key.nil?
20
- found_app = Tasks::GetApp.call(context: ctx, api_key: api_key)
21
- ctx.abort(ctx.message('register.invalid_api_key', api_key)) if found_app.nil?
22
- found_app
23
- else
24
- apps = load_apps
25
- CLI::UI::Prompt.ask(ctx.message('register.ask_app')) do |handler|
26
- apps.each do |app|
27
- handler.option("#{app.title} by #{app.business_name}") { app }
28
- end
29
- end
30
- end
31
- end
32
-
33
- def load_apps
34
- ctx.puts(@ctx.message('register.loading_apps'))
35
- apps = Tasks::GetApps.call(context: ctx)
36
-
37
- apps.empty? ? abort_no_apps : apps
38
- end
39
-
40
- def abort_no_apps
41
- ctx.puts(@ctx.message('register.no_apps'))
42
- ctx.puts(@ctx.message('register.learn_about_apps'))
43
- raise ShopifyCli::AbortSilent
44
- end
45
- end
46
- end
47
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Script
4
- module Commands
5
- class Disable < ShopifyCli::Command
6
- def call(_args, _name)
7
- ShopifyCli::Tasks::EnsureEnv.call(@ctx, required: [:api_key, :secret, :shop])
8
- project = ScriptProject.current
9
- Layers::Application::DisableScript.call(
10
- ctx: @ctx,
11
- api_key: project.env[:api_key],
12
- shop_domain: project.env[:shop],
13
- extension_point_type: project.extension_point_type
14
- )
15
- @ctx.puts(@ctx.message('script.disable.script_disabled'))
16
- rescue StandardError => e
17
- UI::ErrorHandler.pretty_print_and_raise(e, failed_op: @ctx.message('script.disable.error.operation_failed'))
18
- end
19
-
20
- def self.help
21
- ShopifyCli::Context.message('script.disable.help', ShopifyCli::TOOL_NAME)
22
- end
23
- end
24
- end
25
- end