@shopify/cli-kit 3.45.0 → 3.46.0-pre.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 (136) hide show
  1. package/assets/cli-ruby/Gemfile +0 -1
  2. package/assets/cli-ruby/Rakefile +0 -76
  3. package/assets/cli-ruby/lib/project_types/extension/cli.rb +5 -86
  4. package/assets/cli-ruby/lib/shopify_cli/admin_api.rb +0 -3
  5. package/assets/cli-ruby/lib/shopify_cli/command/sub_command.rb +1 -2
  6. package/assets/cli-ruby/lib/shopify_cli/command.rb +0 -7
  7. package/assets/cli-ruby/lib/shopify_cli/commands.rb +0 -15
  8. package/assets/cli-ruby/lib/shopify_cli/core.rb +0 -1
  9. package/assets/cli-ruby/lib/shopify_cli/identity_auth.rb +0 -1
  10. package/assets/cli-ruby/lib/shopify_cli/theme/dev_server/proxy.rb +9 -1
  11. package/assets/cli-ruby/lib/shopify_cli.rb +1 -10
  12. package/assets/cli-ruby/test/test_helpers.rb +0 -2
  13. package/dist/public/common/version.d.ts +1 -1
  14. package/dist/public/common/version.js +1 -1
  15. package/dist/public/common/version.js.map +1 -1
  16. package/dist/tsconfig.tsbuildinfo +1 -1
  17. package/package.json +1 -1
  18. package/assets/cli-ruby/lib/project_types/extension/commands/build.rb +0 -51
  19. package/assets/cli-ruby/lib/project_types/extension/commands/check.rb +0 -51
  20. package/assets/cli-ruby/lib/project_types/extension/commands/connect.rb +0 -35
  21. package/assets/cli-ruby/lib/project_types/extension/commands/create.rb +0 -100
  22. package/assets/cli-ruby/lib/project_types/extension/commands/info.rb +0 -86
  23. package/assets/cli-ruby/lib/project_types/extension/commands/push.rb +0 -112
  24. package/assets/cli-ruby/lib/project_types/extension/commands/register.rb +0 -67
  25. package/assets/cli-ruby/lib/project_types/extension/commands/tunnel.rb +0 -73
  26. package/assets/cli-ruby/lib/project_types/extension/forms/connect.rb +0 -42
  27. package/assets/cli-ruby/lib/project_types/extension/forms/create.rb +0 -49
  28. package/assets/cli-ruby/lib/project_types/extension/forms/questions/ask_app.rb +0 -53
  29. package/assets/cli-ruby/lib/project_types/extension/forms/questions/ask_name.rb +0 -48
  30. package/assets/cli-ruby/lib/project_types/extension/forms/questions/ask_registration.rb +0 -55
  31. package/assets/cli-ruby/lib/project_types/extension/forms/questions/ask_template.rb +0 -37
  32. package/assets/cli-ruby/lib/project_types/extension/forms/questions/ask_type.rb +0 -47
  33. package/assets/cli-ruby/lib/project_types/extension/models/development_server.rb +0 -77
  34. package/assets/cli-ruby/lib/project_types/extension/models/development_server_requirements.rb +0 -56
  35. package/assets/cli-ruby/lib/project_types/extension/models/npm_package.rb +0 -44
  36. package/assets/cli-ruby/lib/project_types/extension/models/product.rb +0 -12
  37. package/assets/cli-ruby/lib/project_types/extension/models/registration.rb +0 -20
  38. package/assets/cli-ruby/lib/project_types/extension/models/server_config/app.rb +0 -13
  39. package/assets/cli-ruby/lib/project_types/extension/models/server_config/base.rb +0 -31
  40. package/assets/cli-ruby/lib/project_types/extension/models/server_config/capabilities.rb +0 -11
  41. package/assets/cli-ruby/lib/project_types/extension/models/server_config/development.rb +0 -33
  42. package/assets/cli-ruby/lib/project_types/extension/models/server_config/development_entries.rb +0 -38
  43. package/assets/cli-ruby/lib/project_types/extension/models/server_config/development_renderer.rb +0 -38
  44. package/assets/cli-ruby/lib/project_types/extension/models/server_config/development_resource.rb +0 -13
  45. package/assets/cli-ruby/lib/project_types/extension/models/server_config/extension.rb +0 -46
  46. package/assets/cli-ruby/lib/project_types/extension/models/server_config/root.rb +0 -21
  47. package/assets/cli-ruby/lib/project_types/extension/models/server_config/user.rb +0 -10
  48. package/assets/cli-ruby/lib/project_types/extension/models/specification_handlers/checkout_post_purchase.rb +0 -29
  49. package/assets/cli-ruby/lib/project_types/extension/models/specification_handlers/checkout_ui_extension.rb +0 -170
  50. package/assets/cli-ruby/lib/project_types/extension/models/specification_handlers/web_pixel_extension.rb +0 -58
  51. package/assets/cli-ruby/lib/project_types/extension/models/specification_handlers/web_pixel_extension_utils/script_config.rb +0 -33
  52. package/assets/cli-ruby/lib/project_types/extension/models/specification_handlers/web_pixel_extension_utils/script_config_repository.rb +0 -75
  53. package/assets/cli-ruby/lib/project_types/extension/tasks/choose_next_available_port.rb +0 -36
  54. package/assets/cli-ruby/lib/project_types/extension/tasks/convert_server_config.rb +0 -85
  55. package/assets/cli-ruby/lib/project_types/extension/tasks/converters/app_converter.rb +0 -27
  56. package/assets/cli-ruby/lib/project_types/extension/tasks/converters/product_converter.rb +0 -21
  57. package/assets/cli-ruby/lib/project_types/extension/tasks/converters/registration_converter.rb +0 -28
  58. package/assets/cli-ruby/lib/project_types/extension/tasks/create_extension.rb +0 -31
  59. package/assets/cli-ruby/lib/project_types/extension/tasks/ensure_resource_url.rb +0 -39
  60. package/assets/cli-ruby/lib/project_types/extension/tasks/execute_commands/base.rb +0 -15
  61. package/assets/cli-ruby/lib/project_types/extension/tasks/execute_commands/build.rb +0 -30
  62. package/assets/cli-ruby/lib/project_types/extension/tasks/execute_commands/create.rb +0 -30
  63. package/assets/cli-ruby/lib/project_types/extension/tasks/execute_commands/outdated_extension_detection.rb +0 -57
  64. package/assets/cli-ruby/lib/project_types/extension/tasks/execute_commands/serve.rb +0 -36
  65. package/assets/cli-ruby/lib/project_types/extension/tasks/find_npm_packages.rb +0 -106
  66. package/assets/cli-ruby/lib/project_types/extension/tasks/find_package_from_json.rb +0 -37
  67. package/assets/cli-ruby/lib/project_types/extension/tasks/get_app.rb +0 -22
  68. package/assets/cli-ruby/lib/project_types/extension/tasks/get_apps.rb +0 -26
  69. package/assets/cli-ruby/lib/project_types/extension/tasks/get_extensions.rb +0 -33
  70. package/assets/cli-ruby/lib/project_types/extension/tasks/get_product.rb +0 -22
  71. package/assets/cli-ruby/lib/project_types/extension/tasks/merge_server_config.rb +0 -47
  72. package/assets/cli-ruby/lib/project_types/extension/tasks/update_draft.rb +0 -29
  73. package/assets/cli-ruby/lib/project_types/extension/tasks/user_errors.rb +0 -45
  74. package/assets/cli-ruby/lib/shopify_cli/admin_api/populate_resource_command.rb +0 -166
  75. package/assets/cli-ruby/lib/shopify_cli/admin_api/schema.rb +0 -35
  76. package/assets/cli-ruby/lib/shopify_cli/app_type_detector.rb +0 -36
  77. package/assets/cli-ruby/lib/shopify_cli/assets/post_auth_page/index.html.erb +0 -34
  78. package/assets/cli-ruby/lib/shopify_cli/assets/post_auth_page/style.css +0 -58
  79. package/assets/cli-ruby/lib/shopify_cli/changelog.rb +0 -148
  80. package/assets/cli-ruby/lib/shopify_cli/command/app_sub_command.rb +0 -26
  81. package/assets/cli-ruby/lib/shopify_cli/command_options/command_serve_options.rb +0 -53
  82. package/assets/cli-ruby/lib/shopify_cli/command_options.rb +0 -7
  83. package/assets/cli-ruby/lib/shopify_cli/commands/app/connect.rb +0 -22
  84. package/assets/cli-ruby/lib/shopify_cli/commands/app/create/node.rb +0 -40
  85. package/assets/cli-ruby/lib/shopify_cli/commands/app/create/php.rb +0 -37
  86. package/assets/cli-ruby/lib/shopify_cli/commands/app/create/rails.rb +0 -42
  87. package/assets/cli-ruby/lib/shopify_cli/commands/app/create.rb +0 -28
  88. package/assets/cli-ruby/lib/shopify_cli/commands/app/deploy.rb +0 -51
  89. package/assets/cli-ruby/lib/shopify_cli/commands/app/open.rb +0 -19
  90. package/assets/cli-ruby/lib/shopify_cli/commands/app/serve.rb +0 -51
  91. package/assets/cli-ruby/lib/shopify_cli/commands/app/tunnel.rb +0 -43
  92. package/assets/cli-ruby/lib/shopify_cli/commands/app.rb +0 -29
  93. package/assets/cli-ruby/lib/shopify_cli/commands/config.rb +0 -76
  94. package/assets/cli-ruby/lib/shopify_cli/commands/help.rb +0 -52
  95. package/assets/cli-ruby/lib/shopify_cli/commands/login.rb +0 -98
  96. package/assets/cli-ruby/lib/shopify_cli/commands/logout.rb +0 -50
  97. package/assets/cli-ruby/lib/shopify_cli/commands/populate/customer.rb +0 -25
  98. package/assets/cli-ruby/lib/shopify_cli/commands/populate/draft_order.rb +0 -28
  99. package/assets/cli-ruby/lib/shopify_cli/commands/populate/product.rb +0 -24
  100. package/assets/cli-ruby/lib/shopify_cli/commands/populate.rb +0 -23
  101. package/assets/cli-ruby/lib/shopify_cli/commands/reporting.rb +0 -38
  102. package/assets/cli-ruby/lib/shopify_cli/commands/store.rb +0 -15
  103. package/assets/cli-ruby/lib/shopify_cli/commands/switch.rb +0 -39
  104. package/assets/cli-ruby/lib/shopify_cli/commands/system.rb +0 -165
  105. package/assets/cli-ruby/lib/shopify_cli/commands/version.rb +0 -15
  106. package/assets/cli-ruby/lib/shopify_cli/commands/whoami.rb +0 -28
  107. package/assets/cli-ruby/lib/shopify_cli/connect.rb +0 -32
  108. package/assets/cli-ruby/lib/shopify_cli/core/help_resolver.rb +0 -20
  109. package/assets/cli-ruby/lib/shopify_cli/heroku.rb +0 -140
  110. package/assets/cli-ruby/lib/shopify_cli/identity_auth/servlet.rb +0 -44
  111. package/assets/cli-ruby/lib/shopify_cli/js_deps.rb +0 -110
  112. package/assets/cli-ruby/lib/shopify_cli/packager.rb +0 -108
  113. package/assets/cli-ruby/lib/shopify_cli/php_deps.rb +0 -102
  114. package/assets/cli-ruby/lib/shopify_cli/process_supervision.rb +0 -228
  115. package/assets/cli-ruby/lib/shopify_cli/project_commands.rb +0 -16
  116. package/assets/cli-ruby/lib/shopify_cli/release.rb +0 -197
  117. package/assets/cli-ruby/lib/shopify_cli/sed.rb +0 -19
  118. package/assets/cli-ruby/lib/shopify_cli/services/app/connect_service.rb +0 -25
  119. package/assets/cli-ruby/lib/shopify_cli/services/app/create/node_service.rb +0 -143
  120. package/assets/cli-ruby/lib/shopify_cli/services/app/create/php_service.rb +0 -147
  121. package/assets/cli-ruby/lib/shopify_cli/services/app/create/rails_service.rb +0 -239
  122. package/assets/cli-ruby/lib/shopify_cli/services/app/deploy/heroku/node_service.rb +0 -101
  123. package/assets/cli-ruby/lib/shopify_cli/services/app/deploy/heroku/php_service.rb +0 -135
  124. package/assets/cli-ruby/lib/shopify_cli/services/app/deploy/heroku/rails_service.rb +0 -120
  125. package/assets/cli-ruby/lib/shopify_cli/services/app/open_service.rb +0 -19
  126. package/assets/cli-ruby/lib/shopify_cli/services/app/serve/node_service.rb +0 -19
  127. package/assets/cli-ruby/lib/shopify_cli/services/app/serve/php_service.rb +0 -23
  128. package/assets/cli-ruby/lib/shopify_cli/services/app/serve/rails_service.rb +0 -28
  129. package/assets/cli-ruby/lib/shopify_cli/services/app/serve/serve_service.rb +0 -57
  130. package/assets/cli-ruby/lib/shopify_cli/services/app/tunnel/auth_service.rb +0 -21
  131. package/assets/cli-ruby/lib/shopify_cli/services/app/tunnel/start_service.rb +0 -20
  132. package/assets/cli-ruby/lib/shopify_cli/services/app/tunnel/stop_service.rb +0 -20
  133. package/assets/cli-ruby/lib/shopify_cli/services/base_service.rb +0 -13
  134. package/assets/cli-ruby/lib/shopify_cli/services/reporting_service.rb +0 -16
  135. package/assets/cli-ruby/lib/shopify_cli/services.rb +0 -38
  136. package/assets/cli-ruby/lib/shopify_cli/tunnel.rb +0 -255
@@ -1,35 +0,0 @@
1
- require "shopify_cli"
2
-
3
- module ShopifyCLI
4
- class AdminAPI
5
- class Schema < Hash
6
- class << self
7
- def get(ctx)
8
- unless ShopifyCLI::DB.exists?(:shopify_admin_schema)
9
- shop = AdminAPI.get_shop_or_abort(ctx)
10
- schema = AdminAPI.query(ctx, "admin_introspection", shop: shop)
11
- ShopifyCLI::DB.set(shopify_admin_schema: JSON.dump(schema))
12
- end
13
- # This is ruby magic for making a new hash with another hash.
14
- # It wraps the JSON in our Schema Class to have the helper methods
15
- # available
16
- self[JSON.parse(ShopifyCLI::DB.get(:shopify_admin_schema))]
17
- end
18
- end
19
-
20
- def type(name)
21
- data = self["data"]
22
- schema = data["__schema"]
23
- schema["types"].find do |object|
24
- object["name"] == name.to_s
25
- end
26
- end
27
-
28
- def get_names_from_type(name)
29
- type(name)["enumValues"].map do |object|
30
- object["name"]
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,36 +0,0 @@
1
- require "json"
2
-
3
- module ShopifyCLI
4
- class AppTypeDetector
5
- Error = Class.new(StandardError)
6
- MissingShopifyCLIYamlError = Class.new(Error)
7
- TypeNotFoundError = Class.new(Error)
8
- class InvalidTypeError < Error
9
- attr_reader :project_type
10
- def initialize(message, project_type:)
11
- @project_type = project_type
12
- super(message)
13
- end
14
- end
15
-
16
- def self.detect(project_directory:)
17
- require "yaml" # takes 20ms, so deferred as late as possible.
18
-
19
- shopify_cli_yml_path = File.join(project_directory, Constants::Files::SHOPIFY_CLI_YML)
20
- unless File.exist?(shopify_cli_yml_path)
21
- raise MissingShopifyCLIYamlError,
22
- "#{Constants::Files::SHOPIFY_CLI_YML} was not found in directory #{project_directory}"
23
- end
24
- shopify_cli = YAML.load_file(shopify_cli_yml_path)
25
- case shopify_cli["project_type"]&.to_sym
26
- when :node, :rails, :php
27
- shopify_cli["project_type"].to_sym
28
- when nil
29
- raise TypeNotFoundError, "Couldn't detect the project type in directory: #{project_directory}"
30
- else
31
- raise InvalidTypeError.new("The project found '' is not supported",
32
- project_type: shopify_cli["project_type"])
33
- end
34
- end
35
- end
36
- end
@@ -1,34 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
- <title>Shopify CLI</title>
8
- <style><%= locals[:css] %></style>
9
- <link rel="icon" href="data:image/svg+xml;charset=UTF-8,%3c?xml version='1.0' encoding='utf-8'?%3e%3c!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3e%3csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 109.5 124.5' style='enable-background:new 0 0 109.5 124.5;' xml:space='preserve'%3e%3cstyle type='text/css'%3e .st0%7bfill:%2395BF47;%7d .st1%7bfill:%235E8E3E;%7d .st2%7bfill:%23FFFFFF;%7d %3c/style%3e%3cg%3e%3cpath class='st0' d='M95.9,23.9c-0.1-0.6-0.6-1-1.1-1c-0.5,0-9.3-0.2-9.3-0.2s-7.4-7.2-8.1-7.9c-0.7-0.7-2.2-0.5-2.7-0.3 c0,0-1.4,0.4-3.7,1.1c-0.4-1.3-1-2.8-1.8-4.4c-2.6-5-6.5-7.7-11.1-7.7c0,0,0,0,0,0c-0.3,0-0.6,0-1,0.1c-0.1-0.2-0.3-0.3-0.4-0.5 c-2-2.2-4.6-3.2-7.7-3.1c-6,0.2-12,4.5-16.8,12.2c-3.4,5.4-6,12.2-6.8,17.5c-6.9,2.1-11.7,3.6-11.8,3.7c-3.5,1.1-3.6,1.2-4,4.5 c-0.3,2.5-9.5,73-9.5,73l76.4,13.2l33.1-8.2C109.5,115.8,96,24.5,95.9,23.9z M67.2,16.8c-1.8,0.5-3.8,1.2-5.9,1.8 c0-3-0.4-7.3-1.8-10.9C64,8.6,66.2,13.7,67.2,16.8z M57.2,19.9c-4,1.2-8.4,2.6-12.8,3.9c1.2-4.7,3.6-9.4,6.4-12.5 c1.1-1.1,2.6-2.4,4.3-3.2C56.9,11.6,57.3,16.5,57.2,19.9z M49.1,4c1.4,0,2.6,0.3,3.6,0.9C51.1,5.8,49.5,7,48,8.6 c-3.8,4.1-6.7,10.5-7.9,16.6c-3.6,1.1-7.2,2.2-10.5,3.2C31.7,18.8,39.8,4.3,49.1,4z'/%3e%3cg%3e%3cpath class='st1' d='M94.8,22.9c-0.5,0-9.3-0.2-9.3-0.2s-7.4-7.2-8.1-7.9c-0.3-0.3-0.6-0.4-1-0.5l0,109.7l33.1-8.2 c0,0-13.5-91.3-13.6-92C95.8,23.3,95.3,22.9,94.8,22.9z'/%3e%3cpath class='st2' d='M58,39.9l-3.8,14.4c0,0-4.3-2-9.4-1.6c-7.5,0.5-7.5,5.2-7.5,6.4c0.4,6.4,17.3,7.8,18.3,22.9 c0.7,11.9-6.3,20-16.4,20.6c-12.2,0.8-18.9-6.4-18.9-6.4l2.6-11c0,0,6.7,5.1,12.1,4.7c3.5-0.2,4.8-3.1,4.7-5.1 c-0.5-8.4-14.3-7.9-15.2-21.7c-0.7-11.6,6.9-23.4,23.7-24.4C54.7,38.2,58,39.9,58,39.9z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e" sizes="any" type="image/svg+xml">
10
- </head>
11
-
12
- <% if successful %>
13
- <body class="body-success">
14
- <div class="app-success">
15
- <div class="container">
16
- <h1><%= locals[:message] %></h1>
17
- <p>You can close this tab and return to your terminal.</p>
18
- </div>
19
- </div>
20
- </body>
21
- <% else %>
22
- <body class="body-error">
23
- <div class="app-error">
24
- <div class="container">
25
- <h1>Something went wrong!</h1>
26
- <p><%= locals[:message] %></p>
27
- <br>
28
- <br>
29
- <p>Return to your terminal and try running the previous command again.</p>
30
- </div>
31
- </div>
32
- </body>
33
- <% end %>
34
- </html>
@@ -1,58 +0,0 @@
1
- html {
2
- font-family: -apple-system, BlinkMacSystemFont, San Francisco, Segoe UI, Roboto, Helvetica Neue, sans-serif;
3
- text-size-adjust: 100%;
4
- text-rendering: optimizeLegibility;
5
- -webkit-font-smoothing: antialiased;
6
- -moz-osx-font-smoothing: grayscale;
7
- }
8
-
9
- body {
10
- font-size: 26px;
11
- line-height: normal;
12
- margin: 0;
13
- padding: 0;
14
- }
15
-
16
- button, input, optgroup, select, textarea {
17
- font-family: inherit;
18
- }
19
-
20
- h1 {
21
- font-weight: 600;
22
- font-size: 1em;
23
- }
24
-
25
- p {
26
- font-weight: 400;
27
- }
28
-
29
- .body-success {
30
- color: #F6F6F7;
31
- }
32
-
33
- .body-error {
34
- color: #202223;
35
- }
36
-
37
- .app-success {
38
- width: 100vw;
39
- height: 100vh;
40
- background-color: #054A49;
41
- display: flex;
42
- }
43
-
44
- .app-error {
45
- width: 100vw;
46
- height: 100vh;
47
- background-color: #F6F6F7;
48
- display: flex;
49
- }
50
-
51
- .container {
52
- display: flex;
53
- flex-direction: column;
54
- justify-content: center;
55
- width: 100%;
56
- height: 100%;
57
- padding-left: 7.5em;
58
- }
@@ -1,148 +0,0 @@
1
- require "date"
2
- require "shopify_cli/sed"
3
- require "octokit"
4
-
5
- module ShopifyCLI
6
- class Changelog
7
- CHANGELOG_FILE = File.join(ShopifyCLI::ROOT, "CHANGELOG.md")
8
- CHANGE_CATEGORIES = %w(Added Changed Deprecated Removed Fixed Security)
9
-
10
- def initialize
11
- load(File.read(CHANGELOG_FILE))
12
- end
13
-
14
- def update_version!(new_version)
15
- changes[new_version] = changes["Unreleased"]
16
- changes[new_version][:date] = Date.today.iso8601
17
- changes["Unreleased"] = { changes: [], date: nil }
18
- save!
19
- end
20
-
21
- def update!
22
- pr = pr_for_current_branch
23
- category = CLI::UI::Prompt.ask("What type of change?", options: CHANGE_CATEGORIES)
24
- add_change(category, { pr_id: pr.number, desc: pr.title })
25
- save!
26
- end
27
-
28
- def release_notes(version)
29
- changes[version][:changes].map do |change_category, changes|
30
- <<~CHANGES
31
- ### #{change_category}
32
- #{changes.map { |change| entry(**change) }.join("\n")}
33
- CHANGES
34
- end.join("\n")
35
- end
36
-
37
- def add_change(category, change)
38
- changes["Unreleased"][:changes][category] << change
39
- end
40
-
41
- def entry(pr_id:, desc:)
42
- "* [##{pr_id}](https://github.com/Shopify/shopify-cli/pull/#{pr_id}): #{desc}"
43
- end
44
-
45
- def full_contents
46
- sorted_changes = changes.each_key.sort_by do |change|
47
- if change == "Unreleased"
48
- [Float::INFINITY] * 3 # end of the list
49
- else
50
- major, minor, patch = change.split(".").map(&:to_i)
51
- [major, minor, patch]
52
- end
53
- end.reverse
54
- [
55
- heading,
56
- *sorted_changes.each.map { |version| release_notes_with_header(version) }.join,
57
- remainder,
58
- ].map { |section| section.chomp << "\n" }.join
59
- end
60
-
61
- def save!
62
- File.write(CHANGELOG_FILE, full_contents)
63
- end
64
-
65
- private
66
-
67
- attr_reader :heading, :remainder
68
-
69
- def release_notes_with_header(version)
70
- header_line =
71
- if version == "Unreleased"
72
- "[Unreleased]"
73
- else
74
- date = changes[version][:date]
75
- "Version #{version}#{" - #{date}" if date}"
76
- end
77
-
78
- [
79
- "## #{header_line}",
80
- release_notes(version),
81
- ].reject(&:empty?).map { |section| section.chomp << "\n\n" }.join
82
- end
83
-
84
- def changes
85
- @changes ||= Hash.new do |h, k|
86
- h[k] = {
87
- date: nil,
88
- changes: Hash.new do |h2, k2|
89
- h2[k2] = []
90
- end,
91
- }
92
- end
93
- end
94
-
95
- def load(log)
96
- state = :initial
97
- change_category = nil
98
- current_version = nil
99
- @heading = ""
100
- @remainder = ""
101
- log.each_line do |line|
102
- case state
103
- when :initial
104
- if line.chomp == "\#\# [Unreleased]"
105
- state = :unreleased
106
- current_version = "Unreleased"
107
- # Ensure Unreleased changeset exists even if no changes have happened yet
108
- changes["Unreleased"]
109
- else
110
- @heading << line
111
- end
112
- when :unreleased, :prior_versions
113
- if /\A\#\#\# (?<category>\w+)/ =~ line
114
- change_category = category
115
- elsif %r{\A\* \[\#(?<id>\d+)\]\(https://github.com/Shopify/shopify-cli/pull/\k<id>\): (?<desc>.+)\n} =~ line
116
- changes[current_version][:changes][change_category] << { pr_id: id, desc: desc }
117
- elsif /\A\#\# Version (?<version>\d+\.\d+\.\d+)( - (?<date>\d{4}-\d{2}-\d{2}))?/ =~ line
118
- current_version = version
119
- state = :prior_versions
120
- major, minor, _patch = current_version.split(".")
121
- if major.to_i <= 2 && minor.to_i < 7
122
- # Changelog starts to become irregular in 2.6.x
123
- state = :finished
124
- end
125
- changes[current_version][:date] = date unless state == :finished
126
- elsif !line.match?(/\s*\n/)
127
- raise "Unrecognized line: #{line.inspect}"
128
- end
129
- end
130
- @remainder << line if state == :finished
131
- end
132
- end
133
-
134
- def pr_for_current_branch
135
- current_branch = %x(git branch --show-current).chomp
136
- search_term = "repo:Shopify/shopify-cli is:pr is:open head:#{current_branch}"
137
- results = Octokit::Client.new.search_issues(search_term)
138
- case results.total_count
139
- when 0
140
- raise "PR not opened yet!"
141
- when (2..)
142
- raise "Multiple open PRs, not sure which one to use for changelog!"
143
- end
144
-
145
- results.items.first
146
- end
147
- end
148
- end
@@ -1,26 +0,0 @@
1
- module ShopifyCLI
2
- class Command
3
- class AppSubCommand < SubCommand
4
- def detect_app(directory: Dir.pwd)
5
- AppTypeDetector.detect(project_directory: directory)
6
- rescue ShopifyCLI::AppTypeDetector::TypeNotFoundError
7
- raise ShopifyCLI::Abort, @ctx.message("core.app.error.type_not_found", directory)
8
- rescue ShopifyCLI::AppTypeDetector::MissingShopifyCLIYamlError
9
- raise ShopifyCLI::Abort, @ctx.message("core.app.error.missing_shopify_cli_yml", directory)
10
- rescue ShopifyCLI::AppTypeDetector::InvalidTypeError => error
11
- raise ShopifyCLI::Abort, @ctx.message("core.app.error.invalid_project_type", error.project_type)
12
- end
13
-
14
- class << self
15
- def call_help(*)
16
- output = help
17
- if respond_to?(:extended_help)
18
- output += "\n"
19
- output += extended_help
20
- end
21
- @ctx.puts(output)
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,53 +0,0 @@
1
- require "shopify_cli"
2
-
3
- module ShopifyCLI
4
- module CommandOptions
5
- module CommandServeOptions
6
- def self.included(base)
7
- base.extend(ClassMethods)
8
- base.class_eval do
9
- def port
10
- return ShopifyCLI::Tunnel::PORT.to_s unless options.flags.key?(:port)
11
- port = options.flags[:port].to_i
12
- @ctx.abort(@ctx.message("core.app.serve.error.invalid_port", options.flags[:port])) unless port > 0
13
- port
14
- end
15
-
16
- def host
17
- host = options.flags[:host]
18
- unless host.nil?
19
- @ctx.abort(@ctx.message("core.app.serve.error.host_must_be_https")) if host.match(/^https/i).nil?
20
- end
21
- host
22
- end
23
-
24
- def no_update
25
- options.flags[:no_update] || false
26
- end
27
- end
28
- end
29
-
30
- module ClassMethods
31
- def parse_host_option
32
- options do |parser, flags|
33
- parser.on("--host=HOST") do |h|
34
- flags[:host] = h.gsub('"', "")
35
- end
36
- end
37
- end
38
-
39
- def parse_port_option
40
- options do |parser, flags|
41
- parser.on("--port=PORT") { |port| flags[:port] = port }
42
- end
43
- end
44
-
45
- def parse_no_update_option
46
- options do |parser, flags|
47
- parser.on("--no-update") { flags[:no_update] = true }
48
- end
49
- end
50
- end
51
- end
52
- end
53
- end
@@ -1,7 +0,0 @@
1
- require "shopify_cli"
2
-
3
- module ShopifyCLI
4
- module CommandOptions
5
- autoload :CommandServeOptions, "shopify_cli/command_options/command_serve_options"
6
- end
7
- end
@@ -1,22 +0,0 @@
1
- module ShopifyCLI
2
- module Commands
3
- class App
4
- class Connect < ShopifyCLI::Command::AppSubCommand
5
- def call(_args, _command_name, *)
6
- app_type = detect_app(directory: Dir.pwd)
7
- project = ShopifyCLI::Project.current
8
-
9
- Services::App::ConnectService.call(
10
- app_type: app_type,
11
- project: project,
12
- context: @ctx
13
- )
14
- end
15
-
16
- def self.help
17
- ShopifyCLI::Context.message("core.app.connect.help", ShopifyCLI::TOOL_NAME, ShopifyCLI::TOOL_NAME)
18
- end
19
- end
20
- end
21
- end
22
- end
@@ -1,40 +0,0 @@
1
- module ShopifyCLI
2
- module Commands
3
- class App
4
- class Create
5
- class Node < ShopifyCLI::Command::AppSubCommand
6
- prerequisite_task :ensure_authenticated
7
- prerequisite_task :ensure_git_dependency
8
-
9
- recommend_default_node_range
10
- recommend_default_ruby_range
11
-
12
- options do |parser, flags|
13
- parser.on("--name=NAME") { |t| flags[:name] = t }
14
- parser.on("--organization-id=ID") { |id| flags[:organization_id] = id }
15
- parser.on("--store-domain=MYSHOPIFYDOMAIN") { |url| flags[:store_domain] = url }
16
- parser.on("--type=APPTYPE") { |type| flags[:type] = type }
17
- parser.on("--verbose") { flags[:verbose] = true }
18
- end
19
-
20
- def call(*)
21
- Services::App::Create::NodeService.call(
22
- name: options.flags[:name],
23
- organization_id: options.flags[:organization_id],
24
- store_domain: options.flags[:store_domain],
25
- type: options.flags[:type],
26
- verbose: !options.flags[:verbose].nil?,
27
- context: @ctx
28
- )
29
- end
30
-
31
- class << self
32
- def help
33
- ShopifyCLI::Context.message("core.app.create.node.help", ShopifyCLI::TOOL_NAME, ShopifyCLI::TOOL_NAME)
34
- end
35
- end
36
- end
37
- end
38
- end
39
- end
40
- end
@@ -1,37 +0,0 @@
1
- module ShopifyCLI
2
- module Commands
3
- class App
4
- class Create
5
- class PHP < ShopifyCLI::Command::AppSubCommand
6
- prerequisite_task :ensure_authenticated
7
- prerequisite_task :ensure_git_dependency
8
-
9
- options do |parser, flags|
10
- parser.on("--name=NAME") { |name| flags[:name] = name }
11
- parser.on("--organization-id=ID") { |organization_id| flags[:organization_id] = organization_id }
12
- parser.on("--store-domain=MYSHOPIFYDOMAIN") { |url| flags[:store_domain] = url }
13
- parser.on("--type=APPTYPE") { |type| flags[:type] = type }
14
- parser.on("--verbose") { flags[:verbose] = true }
15
- end
16
-
17
- def call(*)
18
- Services::App::Create::PHPService.call(
19
- name: options.flags[:name],
20
- organization_id: options.flags[:organization_id],
21
- store_domain: options.flags[:store_domain],
22
- type: options.flags[:type],
23
- verbose: !options.flags[:verbose].nil?,
24
- context: @ctx
25
- )
26
- end
27
-
28
- class << self
29
- def help
30
- ShopifyCLI::Context.message("core.app.create.php.help", ShopifyCLI::TOOL_NAME, ShopifyCLI::TOOL_NAME)
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,42 +0,0 @@
1
- module ShopifyCLI
2
- module Commands
3
- class App
4
- class Create
5
- class Rails < ShopifyCLI::Command::AppSubCommand
6
- prerequisite_task :ensure_authenticated
7
- prerequisite_task :ensure_git_dependency
8
-
9
- recommend_default_ruby_range
10
- recommend_default_node_range
11
-
12
- options do |parser, flags|
13
- parser.on("--name=NAME") { |t| flags[:name] = t }
14
- parser.on("--organization-id=ID") { |id| flags[:organization_id] = id }
15
- parser.on("--store-domain=MYSHOPIFYDOMAIN") { |url| flags[:store_domain] = url }
16
- parser.on("--type=APPTYPE") { |type| flags[:type] = type }
17
- parser.on("--db=DB") { |db| flags[:db] = db }
18
- parser.on("--rails-opts=RAILSOPTS") { |opts| flags[:rails_opts] = opts }
19
- end
20
-
21
- def call(*)
22
- Services::App::Create::RailsService.call(
23
- name: options.flags[:name],
24
- organization_id: options.flags[:organization_id],
25
- store_domain: options.flags[:store_domain],
26
- type: options.flags[:type],
27
- db: options.flags[:db],
28
- rails_opts: options.flags[:rails_opts],
29
- context: @ctx
30
- )
31
- end
32
-
33
- class << self
34
- def help
35
- ShopifyCLI::Context.message("core.app.create.rails.help", ShopifyCLI::TOOL_NAME, ShopifyCLI::TOOL_NAME)
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
@@ -1,28 +0,0 @@
1
- module ShopifyCLI
2
- module Commands
3
- class App
4
- class Create < ShopifyCLI::Command
5
- subcommand :Rails, "rails", "shopify_cli/commands/app/create/rails"
6
- subcommand :PHP, "php", "shopify_cli/commands/app/create/php"
7
- subcommand :Node, "node", "shopify_cli/commands/app/create/node"
8
-
9
- def call(_args, _command_name)
10
- @ctx.puts(self.class.help)
11
- end
12
-
13
- def self.help
14
- ShopifyCLI::Context.message("core.app.create.help", ShopifyCLI::TOOL_NAME, ShopifyCLI::TOOL_NAME)
15
- end
16
-
17
- def self.call_help(*)
18
- output = help
19
- if respond_to?(:extended_help)
20
- output += "\n"
21
- output += extended_help
22
- end
23
- @ctx.puts(output)
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,51 +0,0 @@
1
- module ShopifyCLI
2
- module Commands
3
- class App
4
- class Deploy < ShopifyCLI::Command::AppSubCommand
5
- prerequisite_task :ensure_git_dependency
6
-
7
- recommend_default_ruby_range
8
-
9
- def call(args, _name)
10
- platform = args.shift
11
- case platform
12
- when "heroku"
13
- case detect_app
14
- when :rails
15
- Services::App::Deploy::Heroku::RailsService.call(
16
- context: @ctx
17
- )
18
- when :php
19
- Services::App::Deploy::Heroku::PHPService.call(
20
- context: @ctx
21
- )
22
- when :node
23
- Services::App::Deploy::Heroku::NodeService.call(
24
- context: @ctx
25
- )
26
- end
27
- when nil
28
- raise ShopifyCLI::Abort, @ctx.message(
29
- "core.app.deploy.error.missing_platform",
30
- ShopifyCLI::TOOL_NAME
31
- )
32
- else
33
- raise ShopifyCLI::Abort, @ctx.message(
34
- "core.app.deploy.error.invalid_platform",
35
- platform,
36
- ShopifyCLI::TOOL_NAME
37
- )
38
- end
39
- end
40
-
41
- def self.help
42
- ShopifyCLI::Context.message("core.app.deploy.help", ShopifyCLI::TOOL_NAME, ShopifyCLI::TOOL_NAME)
43
- end
44
-
45
- def self.extended_help
46
- ShopifyCLI::Context.message("core.app.deploy.extended_help", ShopifyCLI::TOOL_NAME)
47
- end
48
- end
49
- end
50
- end
51
- end
@@ -1,19 +0,0 @@
1
- module ShopifyCLI
2
- module Commands
3
- class App
4
- class Open < ShopifyCLI::Command::AppSubCommand
5
- def call(*)
6
- project = ShopifyCLI::Project.current
7
- Services::App::OpenService.call(
8
- project: project,
9
- context: @ctx
10
- )
11
- end
12
-
13
- def self.help
14
- ShopifyCLI::Context.message("core.app.open.help", ShopifyCLI::TOOL_NAME, ShopifyCLI::TOOL_NAME)
15
- end
16
- end
17
- end
18
- end
19
- end