shopify-cli 0.9.0

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 (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: []