shopify-cli 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (273) hide show
  1. checksums.yaml +7 -0
  2. data/.github/CODEOWNERS +1 -0
  3. data/.github/CODE_OF_CONDUCT.md +73 -0
  4. data/.github/CONTRIBUTING.md +51 -0
  5. data/.github/DESIGN.md +153 -0
  6. data/.github/ISSUE_TEMPLATE.md +38 -0
  7. data/.github/PULL_REQUEST_TEMPLATE.md +22 -0
  8. data/.github/probots.yml +3 -0
  9. data/.gitignore +19 -0
  10. data/.rubocop.yml +47 -0
  11. data/.ruby-version +1 -0
  12. data/.travis.yml +12 -0
  13. data/Gemfile +22 -0
  14. data/Gemfile.lock +77 -0
  15. data/LICENSE.md +7 -0
  16. data/README.md +13 -0
  17. data/Rakefile +101 -0
  18. data/SECURITY.md +59 -0
  19. data/Vagrantfile +17 -0
  20. data/bin/load_shopify.rb +20 -0
  21. data/bin/shopify +32 -0
  22. data/dev.yml +17 -0
  23. data/docs/Gemfile +5 -0
  24. data/docs/Gemfile.lock +248 -0
  25. data/docs/_config.yml +16 -0
  26. data/docs/_data/nav.yml +26 -0
  27. data/docs/_includes/footer.html +15 -0
  28. data/docs/_includes/head.html +19 -0
  29. data/docs/_includes/sidebar_nav.html +22 -0
  30. data/docs/_includes/toc.html +112 -0
  31. data/docs/_layouts/default.html +79 -0
  32. data/docs/app/node/commands/index.md +82 -0
  33. data/docs/app/node/index.md +35 -0
  34. data/docs/app/rails/commands/index.md +80 -0
  35. data/docs/app/rails/index.md +36 -0
  36. data/docs/core/index.md +70 -0
  37. data/docs/css/docs.css +157 -0
  38. data/docs/getting-started/index.md +61 -0
  39. data/docs/help/start-app/index.md +6 -0
  40. data/docs/images/header.png +0 -0
  41. data/docs/index.md +27 -0
  42. data/docs/installing-ruby.md +28 -0
  43. data/ext/shopify-cli/extconf.rb +27 -0
  44. data/install.sh +7 -0
  45. data/lib/docgen/class_template.md.erb +81 -0
  46. data/lib/docgen/index_template.md.erb +5 -0
  47. data/lib/docgen/markdown.rb +101 -0
  48. data/lib/graphql/admin_introspection.graphql +87 -0
  49. data/lib/graphql/all_organizations.graphql +19 -0
  50. data/lib/graphql/all_orgs_with_apps.graphql +30 -0
  51. data/lib/graphql/api_versions.graphql +6 -0
  52. data/lib/graphql/convert_dev_to_test_store.graphql +10 -0
  53. data/lib/graphql/create_app.graphql +20 -0
  54. data/lib/graphql/create_customer.graphql +9 -0
  55. data/lib/graphql/create_draft_order.graphql +8 -0
  56. data/lib/graphql/create_product.graphql +9 -0
  57. data/lib/graphql/extension_create.graphql +21 -0
  58. data/lib/graphql/extension_update_draft.graphql +18 -0
  59. data/lib/graphql/find_organization.graphql +17 -0
  60. data/lib/graphql/get_app_urls.graphql +6 -0
  61. data/lib/graphql/update_dashboard_urls.graphql +8 -0
  62. data/lib/project_types/extension/cli.rb +71 -0
  63. data/lib/project_types/extension/commands/build.rb +29 -0
  64. data/lib/project_types/extension/commands/create.rb +49 -0
  65. data/lib/project_types/extension/commands/extension_command.rb +22 -0
  66. data/lib/project_types/extension/commands/push.rb +69 -0
  67. data/lib/project_types/extension/commands/register.rb +78 -0
  68. data/lib/project_types/extension/commands/serve.rb +24 -0
  69. data/lib/project_types/extension/commands/tunnel.rb +69 -0
  70. data/lib/project_types/extension/extension_project.rb +85 -0
  71. data/lib/project_types/extension/extension_project_keys.rb +10 -0
  72. data/lib/project_types/extension/features/argo.rb +48 -0
  73. data/lib/project_types/extension/features/argo_dependencies.rb +28 -0
  74. data/lib/project_types/extension/features/argo_setup.rb +54 -0
  75. data/lib/project_types/extension/features/argo_setup_step.rb +31 -0
  76. data/lib/project_types/extension/features/argo_setup_steps.rb +53 -0
  77. data/lib/project_types/extension/features/tunnel_url.rb +20 -0
  78. data/lib/project_types/extension/forms/create.rb +52 -0
  79. data/lib/project_types/extension/forms/register.rb +48 -0
  80. data/lib/project_types/extension/messages/message_loading.rb +37 -0
  81. data/lib/project_types/extension/messages/messages.rb +126 -0
  82. data/lib/project_types/extension/models/app.rb +14 -0
  83. data/lib/project_types/extension/models/registration.rb +19 -0
  84. data/lib/project_types/extension/models/type.rb +76 -0
  85. data/lib/project_types/extension/models/types/checkout_post_purchase.rb +20 -0
  86. data/lib/project_types/extension/models/types/subscription_management.rb +20 -0
  87. data/lib/project_types/extension/models/validation_error.rb +17 -0
  88. data/lib/project_types/extension/models/version.rb +15 -0
  89. data/lib/project_types/extension/tasks/converters/registration_converter.rb +26 -0
  90. data/lib/project_types/extension/tasks/converters/validation_error_converter.rb +25 -0
  91. data/lib/project_types/extension/tasks/converters/version_converter.rb +28 -0
  92. data/lib/project_types/extension/tasks/create_extension.rb +31 -0
  93. data/lib/project_types/extension/tasks/get_apps.rb +34 -0
  94. data/lib/project_types/extension/tasks/update_draft.rb +29 -0
  95. data/lib/project_types/extension/tasks/user_errors.rb +45 -0
  96. data/lib/project_types/node/cli.rb +37 -0
  97. data/lib/project_types/node/commands/create.rb +117 -0
  98. data/lib/project_types/node/commands/deploy.rb +22 -0
  99. data/lib/project_types/node/commands/deploy/heroku.rb +91 -0
  100. data/lib/project_types/node/commands/generate.rb +51 -0
  101. data/lib/project_types/node/commands/generate/billing.rb +37 -0
  102. data/lib/project_types/node/commands/generate/page.rb +55 -0
  103. data/lib/project_types/node/commands/generate/webhook.rb +33 -0
  104. data/lib/project_types/node/commands/open.rb +16 -0
  105. data/lib/project_types/node/commands/populate.rb +23 -0
  106. data/lib/project_types/node/commands/populate/customer.rb +31 -0
  107. data/lib/project_types/node/commands/populate/draft_order.rb +28 -0
  108. data/lib/project_types/node/commands/populate/product.rb +30 -0
  109. data/lib/project_types/node/commands/serve.rb +45 -0
  110. data/lib/project_types/node/commands/tunnel.rb +39 -0
  111. data/lib/project_types/node/forms/create.rb +87 -0
  112. data/lib/project_types/node/messages/messages.rb +260 -0
  113. data/lib/project_types/rails/cli.rb +41 -0
  114. data/lib/project_types/rails/commands/create.rb +126 -0
  115. data/lib/project_types/rails/commands/deploy.rb +22 -0
  116. data/lib/project_types/rails/commands/deploy/heroku.rb +113 -0
  117. data/lib/project_types/rails/commands/generate.rb +49 -0
  118. data/lib/project_types/rails/commands/generate/webhook.rb +39 -0
  119. data/lib/project_types/rails/commands/open.rb +16 -0
  120. data/lib/project_types/rails/commands/populate.rb +23 -0
  121. data/lib/project_types/rails/commands/populate/customer.rb +31 -0
  122. data/lib/project_types/rails/commands/populate/draft_order.rb +28 -0
  123. data/lib/project_types/rails/commands/populate/product.rb +30 -0
  124. data/lib/project_types/rails/commands/serve.rb +47 -0
  125. data/lib/project_types/rails/commands/tunnel.rb +39 -0
  126. data/lib/project_types/rails/forms/create.rb +116 -0
  127. data/lib/project_types/rails/gem.rb +56 -0
  128. data/lib/project_types/rails/messages/messages.rb +283 -0
  129. data/lib/project_types/rails/ruby.rb +17 -0
  130. data/lib/project_types/script/cli.rb +76 -0
  131. data/lib/project_types/script/commands/create.rb +45 -0
  132. data/lib/project_types/script/commands/disable.rb +36 -0
  133. data/lib/project_types/script/commands/enable.rb +46 -0
  134. data/lib/project_types/script/commands/push.rb +39 -0
  135. data/lib/project_types/script/config/extension_points.yml +18 -0
  136. data/lib/project_types/script/errors.rb +16 -0
  137. data/lib/project_types/script/forms/create.rb +29 -0
  138. data/lib/project_types/script/forms/enable.rb +24 -0
  139. data/lib/project_types/script/forms/push.rb +19 -0
  140. data/lib/project_types/script/forms/script_form.rb +66 -0
  141. data/lib/project_types/script/graphql/app_script_update_or_create.graphql +27 -0
  142. data/lib/project_types/script/graphql/script_service_proxy.graphql +8 -0
  143. data/lib/project_types/script/graphql/shop_script_delete.graphql +14 -0
  144. data/lib/project_types/script/graphql/shop_script_update_or_create.graphql +28 -0
  145. data/lib/project_types/script/layers/application/build_script.rb +43 -0
  146. data/lib/project_types/script/layers/application/create_script.rb +47 -0
  147. data/lib/project_types/script/layers/application/disable_script.rb +19 -0
  148. data/lib/project_types/script/layers/application/enable_script.rb +21 -0
  149. data/lib/project_types/script/layers/application/extension_points.rb +17 -0
  150. data/lib/project_types/script/layers/application/project_dependencies.rb +34 -0
  151. data/lib/project_types/script/layers/application/push_script.rb +30 -0
  152. data/lib/project_types/script/layers/domain/errors.rb +25 -0
  153. data/lib/project_types/script/layers/domain/extension_point.rb +29 -0
  154. data/lib/project_types/script/layers/domain/push_package.rb +29 -0
  155. data/lib/project_types/script/layers/domain/script.rb +18 -0
  156. data/lib/project_types/script/layers/infrastructure/assemblyscript_dependency_manager.rb +73 -0
  157. data/lib/project_types/script/layers/infrastructure/assemblyscript_tsconfig.rb +38 -0
  158. data/lib/project_types/script/layers/infrastructure/assemblyscript_wasm_builder.rb +39 -0
  159. data/lib/project_types/script/layers/infrastructure/dependency_manager.rb +36 -0
  160. data/lib/project_types/script/layers/infrastructure/errors.rb +38 -0
  161. data/lib/project_types/script/layers/infrastructure/extension_point_repository.rb +31 -0
  162. data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +47 -0
  163. data/lib/project_types/script/layers/infrastructure/script_builder.rb +34 -0
  164. data/lib/project_types/script/layers/infrastructure/script_repository.rb +89 -0
  165. data/lib/project_types/script/layers/infrastructure/script_service.rb +165 -0
  166. data/lib/project_types/script/layers/infrastructure/test_suite_repository.rb +59 -0
  167. data/lib/project_types/script/messages/messages.rb +204 -0
  168. data/lib/project_types/script/script_project.rb +37 -0
  169. data/lib/project_types/script/templates/ts/as-pect.config.js +21 -0
  170. data/lib/project_types/script/ui/error_handler.rb +136 -0
  171. data/lib/project_types/script/ui/strict_spinner.rb +22 -0
  172. data/lib/rubygems_plugin.rb +18 -0
  173. data/lib/shopify-cli/admin_api.rb +99 -0
  174. data/lib/shopify-cli/admin_api/populate_resource_command.rb +165 -0
  175. data/lib/shopify-cli/admin_api/schema.rb +32 -0
  176. data/lib/shopify-cli/api.rb +104 -0
  177. data/lib/shopify-cli/command.rb +67 -0
  178. data/lib/shopify-cli/commands.rb +28 -0
  179. data/lib/shopify-cli/commands/connect.rb +108 -0
  180. data/lib/shopify-cli/commands/create.rb +50 -0
  181. data/lib/shopify-cli/commands/help.rb +79 -0
  182. data/lib/shopify-cli/commands/logout.rb +23 -0
  183. data/lib/shopify-cli/commands/system.rb +135 -0
  184. data/lib/shopify-cli/commands/version.rb +15 -0
  185. data/lib/shopify-cli/context.rb +372 -0
  186. data/lib/shopify-cli/core.rb +9 -0
  187. data/lib/shopify-cli/core/entry_point.rb +40 -0
  188. data/lib/shopify-cli/core/executor.rb +21 -0
  189. data/lib/shopify-cli/core/help_resolver.rb +20 -0
  190. data/lib/shopify-cli/core/monorail.rb +118 -0
  191. data/lib/shopify-cli/db.rb +114 -0
  192. data/lib/shopify-cli/form.rb +40 -0
  193. data/lib/shopify-cli/git.rb +141 -0
  194. data/lib/shopify-cli/helpers.rb +5 -0
  195. data/lib/shopify-cli/helpers/haikunator.rb +92 -0
  196. data/lib/shopify-cli/heroku.rb +97 -0
  197. data/lib/shopify-cli/js_deps.rb +110 -0
  198. data/lib/shopify-cli/js_system.rb +98 -0
  199. data/lib/shopify-cli/messages/messages.rb +287 -0
  200. data/lib/shopify-cli/oauth.rb +192 -0
  201. data/lib/shopify-cli/oauth/servlet.rb +61 -0
  202. data/lib/shopify-cli/options.rb +40 -0
  203. data/lib/shopify-cli/packager.rb +116 -0
  204. data/lib/shopify-cli/partners_api.rb +114 -0
  205. data/lib/shopify-cli/partners_api/organizations.rb +32 -0
  206. data/lib/shopify-cli/process_supervision.rb +187 -0
  207. data/lib/shopify-cli/project.rb +191 -0
  208. data/lib/shopify-cli/project_type.rb +83 -0
  209. data/lib/shopify-cli/resources.rb +5 -0
  210. data/lib/shopify-cli/resources/env_file.rb +96 -0
  211. data/lib/shopify-cli/sub_command.rb +15 -0
  212. data/lib/shopify-cli/task.rb +10 -0
  213. data/lib/shopify-cli/tasks.rb +32 -0
  214. data/lib/shopify-cli/tasks/create_api_client.rb +29 -0
  215. data/lib/shopify-cli/tasks/ensure_dev_store.rb +41 -0
  216. data/lib/shopify-cli/tasks/ensure_env.rb +31 -0
  217. data/lib/shopify-cli/tasks/ensure_loopback_url.rb +20 -0
  218. data/lib/shopify-cli/tasks/update_dashboard_urls.rb +44 -0
  219. data/lib/shopify-cli/tunnel.rb +154 -0
  220. data/lib/shopify-cli/version.rb +3 -0
  221. data/lib/shopify_cli.rb +132 -0
  222. data/shopify-cli.gemspec +40 -0
  223. data/shopify.fish +12 -0
  224. data/shopify.sh +11 -0
  225. data/vendor/deps/cli-kit/REVISION +1 -0
  226. data/vendor/deps/cli-kit/lib/cli/kit.rb +60 -0
  227. data/vendor/deps/cli-kit/lib/cli/kit/autocall.rb +21 -0
  228. data/vendor/deps/cli-kit/lib/cli/kit/base_command.rb +49 -0
  229. data/vendor/deps/cli-kit/lib/cli/kit/command_registry.rb +94 -0
  230. data/vendor/deps/cli-kit/lib/cli/kit/config.rb +133 -0
  231. data/vendor/deps/cli-kit/lib/cli/kit/error_handler.rb +115 -0
  232. data/vendor/deps/cli-kit/lib/cli/kit/executor.rb +81 -0
  233. data/vendor/deps/cli-kit/lib/cli/kit/ini.rb +102 -0
  234. data/vendor/deps/cli-kit/lib/cli/kit/levenshtein.rb +82 -0
  235. data/vendor/deps/cli-kit/lib/cli/kit/logger.rb +76 -0
  236. data/vendor/deps/cli-kit/lib/cli/kit/resolver.rb +60 -0
  237. data/vendor/deps/cli-kit/lib/cli/kit/ruby_backports/enumerable.rb +6 -0
  238. data/vendor/deps/cli-kit/lib/cli/kit/support.rb +9 -0
  239. data/vendor/deps/cli-kit/lib/cli/kit/support/test_helper.rb +244 -0
  240. data/vendor/deps/cli-kit/lib/cli/kit/system.rb +207 -0
  241. data/vendor/deps/cli-kit/lib/cli/kit/util.rb +189 -0
  242. data/vendor/deps/cli-kit/lib/cli/kit/version.rb +5 -0
  243. data/vendor/deps/cli-ui/REVISION +1 -0
  244. data/vendor/deps/cli-ui/lib/cli/ui.rb +187 -0
  245. data/vendor/deps/cli-ui/lib/cli/ui/ansi.rb +153 -0
  246. data/vendor/deps/cli-ui/lib/cli/ui/box.rb +15 -0
  247. data/vendor/deps/cli-ui/lib/cli/ui/color.rb +79 -0
  248. data/vendor/deps/cli-ui/lib/cli/ui/formatter.rb +179 -0
  249. data/vendor/deps/cli-ui/lib/cli/ui/frame.rb +310 -0
  250. data/vendor/deps/cli-ui/lib/cli/ui/glyph.rb +78 -0
  251. data/vendor/deps/cli-ui/lib/cli/ui/progress.rb +88 -0
  252. data/vendor/deps/cli-ui/lib/cli/ui/prompt.rb +248 -0
  253. data/vendor/deps/cli-ui/lib/cli/ui/prompt/interactive_options.rb +472 -0
  254. data/vendor/deps/cli-ui/lib/cli/ui/prompt/options_handler.rb +24 -0
  255. data/vendor/deps/cli-ui/lib/cli/ui/spinner.rb +48 -0
  256. data/vendor/deps/cli-ui/lib/cli/ui/spinner/async.rb +40 -0
  257. data/vendor/deps/cli-ui/lib/cli/ui/spinner/spin_group.rb +241 -0
  258. data/vendor/deps/cli-ui/lib/cli/ui/stdout_router.rb +227 -0
  259. data/vendor/deps/cli-ui/lib/cli/ui/terminal.rb +36 -0
  260. data/vendor/deps/cli-ui/lib/cli/ui/truncater.rb +102 -0
  261. data/vendor/deps/cli-ui/lib/cli/ui/version.rb +5 -0
  262. data/vendor/deps/smart_properties/REVISION +1 -0
  263. data/vendor/deps/smart_properties/lib/smart_properties.rb +174 -0
  264. data/vendor/deps/smart_properties/lib/smart_properties/errors.rb +114 -0
  265. data/vendor/deps/smart_properties/lib/smart_properties/property.rb +162 -0
  266. data/vendor/deps/smart_properties/lib/smart_properties/property_collection.rb +83 -0
  267. data/vendor/deps/smart_properties/lib/smart_properties/validations.rb +8 -0
  268. data/vendor/deps/smart_properties/lib/smart_properties/validations/ancestor.rb +27 -0
  269. data/vendor/deps/smart_properties/lib/smart_properties/version.rb +3 -0
  270. data/vendor/lib/semantic/LICENSE +20 -0
  271. data/vendor/lib/semantic/semantic.rb +4 -0
  272. data/vendor/lib/semantic/version.rb +180 -0
  273. metadata +374 -0
@@ -0,0 +1,83 @@
1
+ module SmartProperties
2
+ class PropertyCollection
3
+ include Enumerable
4
+
5
+ attr_reader :parent
6
+
7
+ def self.for(scope)
8
+ parent = scope.ancestors[1..-1].find do |ancestor|
9
+ ancestor.ancestors.include?(SmartProperties) &&
10
+ ancestor != scope &&
11
+ ancestor != SmartProperties
12
+ end
13
+
14
+ if parent.nil?
15
+ new
16
+ else
17
+ parent.properties.register(collection = new)
18
+ collection
19
+ end
20
+ end
21
+
22
+ def initialize
23
+ @collection = {}
24
+ @collection_with_parent_collection = {}
25
+ @children = []
26
+ end
27
+
28
+ def []=(name, value)
29
+ name = name.to_s
30
+ collection[name] = value
31
+ collection_with_parent_collection[name] = value
32
+ notify_children
33
+ value
34
+ end
35
+
36
+ def [](name)
37
+ collection_with_parent_collection[name.to_s]
38
+ end
39
+
40
+ def key?(name)
41
+ collection_with_parent_collection.key?(name.to_s)
42
+ end
43
+
44
+ def keys
45
+ collection_with_parent_collection.keys.map(&:to_sym)
46
+ end
47
+
48
+ def values
49
+ collection_with_parent_collection.values
50
+ end
51
+
52
+ def each(&block)
53
+ return to_enum(:each) if block.nil?
54
+ collection_with_parent_collection.each { |name, value| block.call([name.to_sym, value]) }
55
+ end
56
+
57
+ def to_hash
58
+ Hash[each.to_a]
59
+ end
60
+
61
+ def register(child)
62
+ children.push(child)
63
+ child.refresh(collection_with_parent_collection)
64
+ nil
65
+ end
66
+
67
+ protected
68
+
69
+ attr_accessor :children
70
+ attr_accessor :collection
71
+ attr_accessor :collection_with_parent_collection
72
+
73
+ def notify_children
74
+ @children.each { |child| child.refresh(collection_with_parent_collection) }
75
+ end
76
+
77
+ def refresh(parent_collection)
78
+ @collection_with_parent_collection = parent_collection.merge(collection)
79
+ notify_children
80
+ nil
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SmartProperties
4
+ module Validations
5
+ end
6
+ end
7
+
8
+ require_relative 'validations/ancestor'
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+ module SmartProperties
3
+ module Validations
4
+ class Ancestor
5
+ include SmartProperties
6
+
7
+ property! :type, accepts: ->(type) { type.is_a?(Class) }
8
+
9
+ def validate(klass)
10
+ klass.is_a?(Class) && klass < type
11
+ end
12
+
13
+ def to_proc
14
+ validator = self
15
+ ->(klass) { validator.validate(klass) }
16
+ end
17
+
18
+ def to_s
19
+ "subclasses of #{type.to_s}"
20
+ end
21
+
22
+ class << self
23
+ alias_method :must_be, :new
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,3 @@
1
+ module SmartProperties
2
+ VERSION = "1.14.0"
3
+ end
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2012 Josh Lindsey
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,4 @@
1
+ module Semantic
2
+ GEM_VERSION = '1.6.1'
3
+ autoload :Version, 'semantic/version'
4
+ end
@@ -0,0 +1,180 @@
1
+ # See: http://semver.org
2
+ module Semantic
3
+ class Version
4
+ include Comparable
5
+
6
+ SemVerRegexp = /\A(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][a-zA-Z0-9-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][a-zA-Z0-9-]*))*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?\Z/
7
+
8
+
9
+ attr_accessor :major, :minor, :patch, :pre
10
+ attr_reader :build
11
+
12
+ def initialize version_str
13
+ v = version_str.match(SemVerRegexp)
14
+
15
+ raise ArgumentError.new("#{version_str} is not a valid SemVer Version (http://semver.org)") if v.nil?
16
+ @major = v[1].to_i
17
+ @minor = v[2].to_i
18
+ @patch = v[3].to_i
19
+ @pre = v[4]
20
+ @build = v[5]
21
+ @version = version_str
22
+ end
23
+
24
+
25
+ def build=(b)
26
+ @build = (!b.nil? && b.empty?) ? nil : b
27
+ end
28
+
29
+ def identifiers(pre)
30
+ array = pre.split(/[\.\-]/)
31
+ array.each_with_index {|e,i| array[i] = Integer(e) if /\A\d+\z/.match(e)}
32
+ return array
33
+ end
34
+
35
+ def compare_pre(prea, preb)
36
+ if prea.nil? || preb.nil?
37
+ return 0 if prea.nil? && preb.nil?
38
+ return 1 if prea.nil?
39
+ return -1 if preb.nil?
40
+ end
41
+ a = identifiers(prea)
42
+ b = identifiers(preb)
43
+ smallest = a.size < b.size ? a : b
44
+ smallest.each_with_index do |e, i|
45
+ c = a[i] <=> b[i]
46
+ if c.nil?
47
+ return a[i].is_a?(Integer) ? -1 : 1
48
+ elsif c != 0
49
+ return c
50
+ end
51
+ end
52
+ return a.size <=> b.size
53
+ end
54
+
55
+ def to_a
56
+ [@major, @minor, @patch, @pre, @build]
57
+ end
58
+
59
+ def to_s
60
+ str = [@major, @minor, @patch].join '.'
61
+ str << '-' << @pre unless @pre.nil?
62
+ str << '+' << @build unless @build.nil?
63
+ str
64
+ end
65
+
66
+ def to_h
67
+ keys = [:major, :minor, :patch, :pre, :build]
68
+ Hash[keys.zip(self.to_a)]
69
+ end
70
+
71
+ alias to_hash to_h
72
+ alias to_array to_a
73
+ alias to_string to_s
74
+
75
+ def hash
76
+ to_a.hash
77
+ end
78
+
79
+ def eql? other_version
80
+ self.hash == other_version.hash
81
+ end
82
+
83
+ def <=> other_version
84
+ other_version = Version.new(other_version) if other_version.is_a? String
85
+ [:major, :minor, :patch].each do |part|
86
+ c = (self.send(part) <=> other_version.send(part))
87
+ if c != 0
88
+ return c
89
+ end
90
+ end
91
+ return compare_pre(self.pre, other_version.pre)
92
+ end
93
+
94
+ def satisfies? other_version
95
+ return true if other_version.strip == '*'
96
+ parts = other_version.split(/(\d(.+)?)/, 2)
97
+ comparator, other_version_string = parts[0].strip, parts[1].strip
98
+
99
+ begin
100
+ Version.new other_version_string
101
+ comparator.empty? && comparator = '=='
102
+ satisfies_comparator? comparator, other_version_string
103
+ rescue ArgumentError
104
+ if ['<', '>', '<=', '>='].include?(comparator)
105
+ satisfies_comparator? comparator, pad_version_string(other_version_string)
106
+ elsif comparator == '~>'
107
+ pessimistic_match? other_version_string
108
+ else
109
+ tilde_matches? other_version_string
110
+ end
111
+ end
112
+ end
113
+
114
+ def satisfied_by? versions
115
+ raise ArgumentError.new("Versions #{versions} should be an array of versions") unless versions.is_a? Array
116
+ versions.all? { |version| satisfies?(version) }
117
+ end
118
+
119
+ [:major, :minor, :patch].each do |term|
120
+ define_method("#{term}!") { increment!(term) }
121
+ end
122
+
123
+ def increment!(term)
124
+ term = term.to_sym
125
+ new_version = clone
126
+ new_value = send(term) + 1
127
+
128
+ new_version.send("#{term}=", new_value)
129
+ new_version.minor = 0 if term == :major
130
+ new_version.patch = 0 if term == :major || term == :minor
131
+ new_version.build = new_version.pre = nil
132
+
133
+ new_version
134
+ end
135
+
136
+ private
137
+
138
+ def pad_version_string version_string
139
+ parts = version_string.split('.').reject {|x| x == '*'}
140
+ while parts.length < 3
141
+ parts << '0'
142
+ end
143
+ parts.join '.'
144
+ end
145
+
146
+ def tilde_matches? other_version_string
147
+ this_parts = to_a.collect(&:to_s)
148
+ other_parts = other_version_string.split('.').reject {|x| x == '*'}
149
+ other_parts == this_parts[0..other_parts.length-1]
150
+ end
151
+
152
+ def pessimistic_match? other_version_string
153
+ other_parts = other_version_string.split('.')
154
+ unless other_parts.size == 2 || other_parts.size == 3
155
+ raise ArgumentError.new("Version #{other_version_string} should not be applied with a pessimistic operator")
156
+ end
157
+ other_parts.pop
158
+ other_parts << (other_parts.pop.to_i + 1).to_s
159
+ satisfies_comparator?('>=', semverified(other_version_string)) && satisfies_comparator?('<', semverified(other_parts.join('.')))
160
+ end
161
+
162
+ def satisfies_comparator? comparator, other_version_string
163
+ if comparator == '~'
164
+ tilde_matches? other_version_string
165
+ elsif comparator == '~>'
166
+ pessimistic_match? other_version_string
167
+ else
168
+ self.send comparator, other_version_string
169
+ end
170
+ end
171
+
172
+ def semverified version_string
173
+ parts = version_string.split('.')
174
+ raise ArgumentError.new("Version #{version_string} not supported by semverified") if parts.size > 3
175
+ (3 - parts.size).times { parts << '0' }
176
+ parts.join('.')
177
+ end
178
+
179
+ end
180
+ end
metadata ADDED
@@ -0,0 +1,374 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: shopify-cli
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.0
5
+ platform: ruby
6
+ authors:
7
+ - Shopify
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-06-23 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.17'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.17'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '12.3'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 12.3.3
37
+ type: :development
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '12.3'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 12.3.3
47
+ - !ruby/object:Gem::Dependency
48
+ name: minitest
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '5.0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '5.0'
61
+ description: |
62
+ Shopify CLI helps you build Shopify apps faster. It quickly scaffolds Node.js
63
+ and Ruby on Rails embedded apps. It also automates many common tasks in the
64
+ development process and lets you quickly add popular features, such as billing
65
+ and webhooks.
66
+ email:
67
+ - developers@jadedpixel.com
68
+ executables: []
69
+ extensions:
70
+ - ext/shopify-cli/extconf.rb
71
+ extra_rdoc_files: []
72
+ files:
73
+ - ".github/CODEOWNERS"
74
+ - ".github/CODE_OF_CONDUCT.md"
75
+ - ".github/CONTRIBUTING.md"
76
+ - ".github/DESIGN.md"
77
+ - ".github/ISSUE_TEMPLATE.md"
78
+ - ".github/PULL_REQUEST_TEMPLATE.md"
79
+ - ".github/probots.yml"
80
+ - ".gitignore"
81
+ - ".rubocop.yml"
82
+ - ".ruby-version"
83
+ - ".tmp/.gitkeep"
84
+ - ".tmp/sv/.gitkeep"
85
+ - ".travis.yml"
86
+ - Gemfile
87
+ - Gemfile.lock
88
+ - LICENSE.md
89
+ - README.md
90
+ - Rakefile
91
+ - SECURITY.md
92
+ - Vagrantfile
93
+ - bin/load_shopify.rb
94
+ - bin/shopify
95
+ - dev.yml
96
+ - docs/Gemfile
97
+ - docs/Gemfile.lock
98
+ - docs/_config.yml
99
+ - docs/_data/nav.yml
100
+ - docs/_includes/footer.html
101
+ - docs/_includes/head.html
102
+ - docs/_includes/sidebar_nav.html
103
+ - docs/_includes/toc.html
104
+ - docs/_layouts/default.html
105
+ - docs/app/node/commands/index.md
106
+ - docs/app/node/index.md
107
+ - docs/app/rails/commands/index.md
108
+ - docs/app/rails/index.md
109
+ - docs/core/index.md
110
+ - docs/css/docs.css
111
+ - docs/getting-started/index.md
112
+ - docs/help/start-app/index.md
113
+ - docs/images/header.png
114
+ - docs/index.md
115
+ - docs/installing-ruby.md
116
+ - ext/shopify-cli/extconf.rb
117
+ - install.sh
118
+ - lib/docgen/class_template.md.erb
119
+ - lib/docgen/index_template.md.erb
120
+ - lib/docgen/markdown.rb
121
+ - lib/graphql/admin_introspection.graphql
122
+ - lib/graphql/all_organizations.graphql
123
+ - lib/graphql/all_orgs_with_apps.graphql
124
+ - lib/graphql/api_versions.graphql
125
+ - lib/graphql/convert_dev_to_test_store.graphql
126
+ - lib/graphql/create_app.graphql
127
+ - lib/graphql/create_customer.graphql
128
+ - lib/graphql/create_draft_order.graphql
129
+ - lib/graphql/create_product.graphql
130
+ - lib/graphql/extension_create.graphql
131
+ - lib/graphql/extension_update_draft.graphql
132
+ - lib/graphql/find_organization.graphql
133
+ - lib/graphql/get_app_urls.graphql
134
+ - lib/graphql/update_dashboard_urls.graphql
135
+ - lib/project_types/extension/cli.rb
136
+ - lib/project_types/extension/commands/build.rb
137
+ - lib/project_types/extension/commands/create.rb
138
+ - lib/project_types/extension/commands/extension_command.rb
139
+ - lib/project_types/extension/commands/push.rb
140
+ - lib/project_types/extension/commands/register.rb
141
+ - lib/project_types/extension/commands/serve.rb
142
+ - lib/project_types/extension/commands/tunnel.rb
143
+ - lib/project_types/extension/extension_project.rb
144
+ - lib/project_types/extension/extension_project_keys.rb
145
+ - lib/project_types/extension/features/argo.rb
146
+ - lib/project_types/extension/features/argo_dependencies.rb
147
+ - lib/project_types/extension/features/argo_setup.rb
148
+ - lib/project_types/extension/features/argo_setup_step.rb
149
+ - lib/project_types/extension/features/argo_setup_steps.rb
150
+ - lib/project_types/extension/features/tunnel_url.rb
151
+ - lib/project_types/extension/forms/create.rb
152
+ - lib/project_types/extension/forms/register.rb
153
+ - lib/project_types/extension/messages/message_loading.rb
154
+ - lib/project_types/extension/messages/messages.rb
155
+ - lib/project_types/extension/models/app.rb
156
+ - lib/project_types/extension/models/registration.rb
157
+ - lib/project_types/extension/models/type.rb
158
+ - lib/project_types/extension/models/types/checkout_post_purchase.rb
159
+ - lib/project_types/extension/models/types/subscription_management.rb
160
+ - lib/project_types/extension/models/validation_error.rb
161
+ - lib/project_types/extension/models/version.rb
162
+ - lib/project_types/extension/tasks/converters/registration_converter.rb
163
+ - lib/project_types/extension/tasks/converters/validation_error_converter.rb
164
+ - lib/project_types/extension/tasks/converters/version_converter.rb
165
+ - lib/project_types/extension/tasks/create_extension.rb
166
+ - lib/project_types/extension/tasks/get_apps.rb
167
+ - lib/project_types/extension/tasks/update_draft.rb
168
+ - lib/project_types/extension/tasks/user_errors.rb
169
+ - lib/project_types/node/cli.rb
170
+ - lib/project_types/node/commands/create.rb
171
+ - lib/project_types/node/commands/deploy.rb
172
+ - lib/project_types/node/commands/deploy/heroku.rb
173
+ - lib/project_types/node/commands/generate.rb
174
+ - lib/project_types/node/commands/generate/billing.rb
175
+ - lib/project_types/node/commands/generate/page.rb
176
+ - lib/project_types/node/commands/generate/webhook.rb
177
+ - lib/project_types/node/commands/open.rb
178
+ - lib/project_types/node/commands/populate.rb
179
+ - lib/project_types/node/commands/populate/customer.rb
180
+ - lib/project_types/node/commands/populate/draft_order.rb
181
+ - lib/project_types/node/commands/populate/product.rb
182
+ - lib/project_types/node/commands/serve.rb
183
+ - lib/project_types/node/commands/tunnel.rb
184
+ - lib/project_types/node/forms/create.rb
185
+ - lib/project_types/node/messages/messages.rb
186
+ - lib/project_types/rails/cli.rb
187
+ - lib/project_types/rails/commands/create.rb
188
+ - lib/project_types/rails/commands/deploy.rb
189
+ - lib/project_types/rails/commands/deploy/heroku.rb
190
+ - lib/project_types/rails/commands/generate.rb
191
+ - lib/project_types/rails/commands/generate/webhook.rb
192
+ - lib/project_types/rails/commands/open.rb
193
+ - lib/project_types/rails/commands/populate.rb
194
+ - lib/project_types/rails/commands/populate/customer.rb
195
+ - lib/project_types/rails/commands/populate/draft_order.rb
196
+ - lib/project_types/rails/commands/populate/product.rb
197
+ - lib/project_types/rails/commands/serve.rb
198
+ - lib/project_types/rails/commands/tunnel.rb
199
+ - lib/project_types/rails/forms/create.rb
200
+ - lib/project_types/rails/gem.rb
201
+ - lib/project_types/rails/messages/messages.rb
202
+ - lib/project_types/rails/ruby.rb
203
+ - lib/project_types/script/cli.rb
204
+ - lib/project_types/script/commands/create.rb
205
+ - lib/project_types/script/commands/disable.rb
206
+ - lib/project_types/script/commands/enable.rb
207
+ - lib/project_types/script/commands/push.rb
208
+ - lib/project_types/script/config/extension_points.yml
209
+ - lib/project_types/script/errors.rb
210
+ - lib/project_types/script/forms/create.rb
211
+ - lib/project_types/script/forms/enable.rb
212
+ - lib/project_types/script/forms/push.rb
213
+ - lib/project_types/script/forms/script_form.rb
214
+ - lib/project_types/script/graphql/app_script_update_or_create.graphql
215
+ - lib/project_types/script/graphql/script_service_proxy.graphql
216
+ - lib/project_types/script/graphql/shop_script_delete.graphql
217
+ - lib/project_types/script/graphql/shop_script_update_or_create.graphql
218
+ - lib/project_types/script/layers/application/build_script.rb
219
+ - lib/project_types/script/layers/application/create_script.rb
220
+ - lib/project_types/script/layers/application/disable_script.rb
221
+ - lib/project_types/script/layers/application/enable_script.rb
222
+ - lib/project_types/script/layers/application/extension_points.rb
223
+ - lib/project_types/script/layers/application/project_dependencies.rb
224
+ - lib/project_types/script/layers/application/push_script.rb
225
+ - lib/project_types/script/layers/domain/errors.rb
226
+ - lib/project_types/script/layers/domain/extension_point.rb
227
+ - lib/project_types/script/layers/domain/push_package.rb
228
+ - lib/project_types/script/layers/domain/script.rb
229
+ - lib/project_types/script/layers/infrastructure/assemblyscript_dependency_manager.rb
230
+ - lib/project_types/script/layers/infrastructure/assemblyscript_tsconfig.rb
231
+ - lib/project_types/script/layers/infrastructure/assemblyscript_wasm_builder.rb
232
+ - lib/project_types/script/layers/infrastructure/dependency_manager.rb
233
+ - lib/project_types/script/layers/infrastructure/errors.rb
234
+ - lib/project_types/script/layers/infrastructure/extension_point_repository.rb
235
+ - lib/project_types/script/layers/infrastructure/push_package_repository.rb
236
+ - lib/project_types/script/layers/infrastructure/script_builder.rb
237
+ - lib/project_types/script/layers/infrastructure/script_repository.rb
238
+ - lib/project_types/script/layers/infrastructure/script_service.rb
239
+ - lib/project_types/script/layers/infrastructure/test_suite_repository.rb
240
+ - lib/project_types/script/messages/messages.rb
241
+ - lib/project_types/script/script_project.rb
242
+ - lib/project_types/script/templates/ts/as-pect.config.js
243
+ - lib/project_types/script/ui/error_handler.rb
244
+ - lib/project_types/script/ui/strict_spinner.rb
245
+ - lib/rubygems_plugin.rb
246
+ - lib/shopify-cli/admin_api.rb
247
+ - lib/shopify-cli/admin_api/populate_resource_command.rb
248
+ - lib/shopify-cli/admin_api/schema.rb
249
+ - lib/shopify-cli/api.rb
250
+ - lib/shopify-cli/command.rb
251
+ - lib/shopify-cli/commands.rb
252
+ - lib/shopify-cli/commands/connect.rb
253
+ - lib/shopify-cli/commands/create.rb
254
+ - lib/shopify-cli/commands/help.rb
255
+ - lib/shopify-cli/commands/logout.rb
256
+ - lib/shopify-cli/commands/system.rb
257
+ - lib/shopify-cli/commands/version.rb
258
+ - lib/shopify-cli/context.rb
259
+ - lib/shopify-cli/core.rb
260
+ - lib/shopify-cli/core/entry_point.rb
261
+ - lib/shopify-cli/core/executor.rb
262
+ - lib/shopify-cli/core/help_resolver.rb
263
+ - lib/shopify-cli/core/monorail.rb
264
+ - lib/shopify-cli/db.rb
265
+ - lib/shopify-cli/form.rb
266
+ - lib/shopify-cli/git.rb
267
+ - lib/shopify-cli/helpers.rb
268
+ - lib/shopify-cli/helpers/haikunator.rb
269
+ - lib/shopify-cli/heroku.rb
270
+ - lib/shopify-cli/js_deps.rb
271
+ - lib/shopify-cli/js_system.rb
272
+ - lib/shopify-cli/messages/messages.rb
273
+ - lib/shopify-cli/oauth.rb
274
+ - lib/shopify-cli/oauth/servlet.rb
275
+ - lib/shopify-cli/options.rb
276
+ - lib/shopify-cli/packager.rb
277
+ - lib/shopify-cli/partners_api.rb
278
+ - lib/shopify-cli/partners_api/organizations.rb
279
+ - lib/shopify-cli/process_supervision.rb
280
+ - lib/shopify-cli/project.rb
281
+ - lib/shopify-cli/project_type.rb
282
+ - lib/shopify-cli/resources.rb
283
+ - lib/shopify-cli/resources/env_file.rb
284
+ - lib/shopify-cli/sub_command.rb
285
+ - lib/shopify-cli/task.rb
286
+ - lib/shopify-cli/tasks.rb
287
+ - lib/shopify-cli/tasks/create_api_client.rb
288
+ - lib/shopify-cli/tasks/ensure_dev_store.rb
289
+ - lib/shopify-cli/tasks/ensure_env.rb
290
+ - lib/shopify-cli/tasks/ensure_loopback_url.rb
291
+ - lib/shopify-cli/tasks/update_dashboard_urls.rb
292
+ - lib/shopify-cli/tunnel.rb
293
+ - lib/shopify-cli/version.rb
294
+ - lib/shopify_cli.rb
295
+ - shopify-cli.gemspec
296
+ - shopify.fish
297
+ - shopify.sh
298
+ - vendor/deps/cli-kit/REVISION
299
+ - vendor/deps/cli-kit/lib/cli/kit.rb
300
+ - vendor/deps/cli-kit/lib/cli/kit/autocall.rb
301
+ - vendor/deps/cli-kit/lib/cli/kit/base_command.rb
302
+ - vendor/deps/cli-kit/lib/cli/kit/command_registry.rb
303
+ - vendor/deps/cli-kit/lib/cli/kit/config.rb
304
+ - vendor/deps/cli-kit/lib/cli/kit/error_handler.rb
305
+ - vendor/deps/cli-kit/lib/cli/kit/executor.rb
306
+ - vendor/deps/cli-kit/lib/cli/kit/ini.rb
307
+ - vendor/deps/cli-kit/lib/cli/kit/levenshtein.rb
308
+ - vendor/deps/cli-kit/lib/cli/kit/logger.rb
309
+ - vendor/deps/cli-kit/lib/cli/kit/resolver.rb
310
+ - vendor/deps/cli-kit/lib/cli/kit/ruby_backports/enumerable.rb
311
+ - vendor/deps/cli-kit/lib/cli/kit/support.rb
312
+ - vendor/deps/cli-kit/lib/cli/kit/support/test_helper.rb
313
+ - vendor/deps/cli-kit/lib/cli/kit/system.rb
314
+ - vendor/deps/cli-kit/lib/cli/kit/util.rb
315
+ - vendor/deps/cli-kit/lib/cli/kit/version.rb
316
+ - vendor/deps/cli-ui/REVISION
317
+ - vendor/deps/cli-ui/lib/cli/ui.rb
318
+ - vendor/deps/cli-ui/lib/cli/ui/ansi.rb
319
+ - vendor/deps/cli-ui/lib/cli/ui/box.rb
320
+ - vendor/deps/cli-ui/lib/cli/ui/color.rb
321
+ - vendor/deps/cli-ui/lib/cli/ui/formatter.rb
322
+ - vendor/deps/cli-ui/lib/cli/ui/frame.rb
323
+ - vendor/deps/cli-ui/lib/cli/ui/glyph.rb
324
+ - vendor/deps/cli-ui/lib/cli/ui/progress.rb
325
+ - vendor/deps/cli-ui/lib/cli/ui/prompt.rb
326
+ - vendor/deps/cli-ui/lib/cli/ui/prompt/interactive_options.rb
327
+ - vendor/deps/cli-ui/lib/cli/ui/prompt/options_handler.rb
328
+ - vendor/deps/cli-ui/lib/cli/ui/spinner.rb
329
+ - vendor/deps/cli-ui/lib/cli/ui/spinner/async.rb
330
+ - vendor/deps/cli-ui/lib/cli/ui/spinner/spin_group.rb
331
+ - vendor/deps/cli-ui/lib/cli/ui/stdout_router.rb
332
+ - vendor/deps/cli-ui/lib/cli/ui/terminal.rb
333
+ - vendor/deps/cli-ui/lib/cli/ui/truncater.rb
334
+ - vendor/deps/cli-ui/lib/cli/ui/version.rb
335
+ - vendor/deps/smart_properties/REVISION
336
+ - vendor/deps/smart_properties/lib/smart_properties.rb
337
+ - vendor/deps/smart_properties/lib/smart_properties/errors.rb
338
+ - vendor/deps/smart_properties/lib/smart_properties/property.rb
339
+ - vendor/deps/smart_properties/lib/smart_properties/property_collection.rb
340
+ - vendor/deps/smart_properties/lib/smart_properties/validations.rb
341
+ - vendor/deps/smart_properties/lib/smart_properties/validations/ancestor.rb
342
+ - vendor/deps/smart_properties/lib/smart_properties/version.rb
343
+ - vendor/lib/semantic/LICENSE
344
+ - vendor/lib/semantic/semantic.rb
345
+ - vendor/lib/semantic/version.rb
346
+ homepage: https://shopify.github.io/shopify-app-cli/
347
+ licenses:
348
+ - Nonstandard
349
+ metadata:
350
+ allowed_push_host: https://rubygems.org
351
+ homepage_uri: https://shopify.github.io/shopify-app-cli/
352
+ source_code_uri: https://github.com/Shopify/shopify-app-cli
353
+ changelog_uri: https://github.com/Shopify/shopify-app-cli/blob/master/CHANGELOG.md
354
+ post_install_message:
355
+ rdoc_options: []
356
+ require_paths:
357
+ - lib
358
+ - vendor
359
+ required_ruby_version: !ruby/object:Gem::Requirement
360
+ requirements:
361
+ - - ">="
362
+ - !ruby/object:Gem::Version
363
+ version: 2.3.0
364
+ required_rubygems_version: !ruby/object:Gem::Requirement
365
+ requirements:
366
+ - - ">="
367
+ - !ruby/object:Gem::Version
368
+ version: '0'
369
+ requirements: []
370
+ rubygems_version: 3.0.3
371
+ signing_key:
372
+ specification_version: 4
373
+ summary: Shopify CLI helps you build Shopify apps faster.
374
+ test_files: []