shopify-cli 1.6.0 → 1.9.1

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.
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