shopify-cli 2.12.0 → 2.15.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 (95) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +5 -0
  3. data/.github/CONTRIBUTING.md +1 -1
  4. data/.github/PULL_REQUEST_TEMPLATE.md +1 -1
  5. data/.github/workflows/shopify.yml +2 -1
  6. data/.github/workflows/stale.yml +41 -0
  7. data/.rubocop.yml +1 -1
  8. data/.ruby-version +1 -1
  9. data/CHANGELOG.md +36 -0
  10. data/Gemfile.lock +18 -18
  11. data/Rakefile +16 -0
  12. data/bin/shopify +4 -4
  13. data/dev.yml +1 -1
  14. data/ext/javy/hashes/javy-arm-macos-v0.2.0.gz.sha256 +1 -0
  15. data/ext/javy/hashes/javy-arm-macos-v0.2.1.gz.sha256 +1 -0
  16. data/ext/javy/hashes/javy-x86_64-linux-v0.2.0.gz.sha256 +1 -0
  17. data/ext/javy/hashes/javy-x86_64-linux-v0.2.1.gz.sha256 +1 -0
  18. data/ext/javy/hashes/javy-x86_64-macos-v0.2.0.gz.sha256 +1 -0
  19. data/ext/javy/hashes/javy-x86_64-macos-v0.2.1.gz.sha256 +1 -0
  20. data/ext/javy/hashes/javy-x86_64-windows-v0.2.0.gz.sha256 +1 -0
  21. data/ext/javy/hashes/javy-x86_64-windows-v0.2.1.gz.sha256 +1 -0
  22. data/ext/javy/version +1 -1
  23. data/lib/project_types/extension/features/argo_setup_steps.rb +4 -6
  24. data/lib/project_types/extension/models/npm_package.rb +19 -1
  25. data/lib/project_types/extension/models/server_config/development_renderer.rb +4 -3
  26. data/lib/project_types/extension/models/specification_handlers/checkout_ui_extension.rb +13 -0
  27. data/lib/project_types/extension/tasks/configure_features.rb +15 -2
  28. data/lib/project_types/extension/tasks/convert_server_config.rb +2 -1
  29. data/lib/project_types/script/cli.rb +0 -4
  30. data/lib/project_types/script/commands/create.rb +4 -4
  31. data/lib/project_types/script/config/extension_points.yml +0 -6
  32. data/lib/project_types/script/errors.rb +1 -1
  33. data/lib/project_types/script/forms/create.rb +7 -7
  34. data/lib/project_types/script/layers/application/build_script.rb +9 -26
  35. data/lib/project_types/script/layers/application/create_script.rb +9 -10
  36. data/lib/project_types/script/layers/application/project_dependencies.rb +12 -14
  37. data/lib/project_types/script/layers/application/push_script.rb +14 -10
  38. data/lib/project_types/script/layers/domain/errors.rb +3 -3
  39. data/lib/project_types/script/layers/domain/push_package.rb +6 -0
  40. data/lib/project_types/script/layers/domain/script_config.rb +2 -4
  41. data/lib/project_types/script/layers/domain/script_project.rb +3 -2
  42. data/lib/project_types/script/layers/infrastructure/languages/project_creator.rb +0 -16
  43. data/lib/project_types/script/layers/infrastructure/languages/task_runner.rb +0 -1
  44. data/lib/project_types/script/layers/infrastructure/languages/typescript_project_creator.rb +19 -4
  45. data/lib/project_types/script/layers/infrastructure/languages/typescript_task_runner.rb +2 -10
  46. data/lib/project_types/script/layers/infrastructure/languages/wasm_project_creator.rb +0 -3
  47. data/lib/project_types/script/layers/infrastructure/languages/wasm_task_runner.rb +1 -1
  48. data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +3 -21
  49. data/lib/project_types/script/layers/infrastructure/script_project_repository.rb +14 -26
  50. data/lib/project_types/script/layers/infrastructure/script_service.rb +4 -2
  51. data/lib/project_types/script/messages/messages.rb +9 -9
  52. data/lib/project_types/script/ui/error_handler.rb +4 -4
  53. data/lib/project_types/script/ui/strict_spinner.rb +4 -6
  54. data/lib/project_types/theme/cli.rb +2 -0
  55. data/lib/project_types/theme/commands/common/root_helper.rb +11 -5
  56. data/lib/project_types/theme/commands/list.rb +34 -0
  57. data/lib/project_types/theme/commands/open.rb +65 -0
  58. data/lib/project_types/theme/commands/package.rb +1 -0
  59. data/lib/project_types/theme/commands/pull.rb +4 -4
  60. data/lib/project_types/theme/commands/push.rb +4 -4
  61. data/lib/project_types/theme/conversions/base_glob.rb +20 -5
  62. data/lib/project_types/theme/forms/select.rb +11 -39
  63. data/lib/project_types/theme/messages/messages.rb +33 -2
  64. data/lib/project_types/theme/presenters/theme_presenter.rb +48 -0
  65. data/lib/project_types/theme/presenters/themes_presenter.rb +32 -0
  66. data/lib/shopify_cli/api.rb +1 -1
  67. data/lib/shopify_cli/command.rb +1 -7
  68. data/lib/shopify_cli/commands/app/deploy.rb +0 -1
  69. data/lib/shopify_cli/constants.rb +2 -2
  70. data/lib/shopify_cli/context.rb +13 -15
  71. data/lib/shopify_cli/core/entry_point.rb +1 -1
  72. data/lib/shopify_cli/core/monorail.rb +14 -6
  73. data/lib/shopify_cli/environment.rb +19 -11
  74. data/lib/shopify_cli/exception_reporter.rb +2 -0
  75. data/lib/shopify_cli/messages/messages.rb +5 -5
  76. data/lib/shopify_cli/packager.rb +1 -1
  77. data/lib/shopify_cli/result.rb +14 -0
  78. data/lib/shopify_cli/services/app/create/node_service.rb +2 -14
  79. data/lib/shopify_cli/services/app/create/php_service.rb +1 -6
  80. data/lib/shopify_cli/services/app/create/rails_service.rb +5 -13
  81. data/lib/shopify_cli/theme/dev_server/hot_reload/remote_file_reloader.rb +5 -5
  82. data/lib/shopify_cli/theme/dev_server/watcher.rb +10 -2
  83. data/lib/shopify_cli/theme/development_theme.rb +2 -5
  84. data/lib/shopify_cli/theme/syncer.rb +27 -32
  85. data/lib/shopify_cli/theme/theme.rb +16 -27
  86. data/lib/shopify_cli/theme/theme_admin_api.rb +72 -0
  87. data/lib/shopify_cli/transform_data_structure.rb +3 -2
  88. data/lib/shopify_cli/version.rb +1 -1
  89. data/shipit.yml +3 -0
  90. data/shopify-cli.gemspec +9 -2
  91. data/shopify-dev +9 -11
  92. metadata +21 -9
  93. data/lib/project_types/rails/ruby.rb +0 -17
  94. data/lib/project_types/script/layers/infrastructure/languages/assemblyscript_project_creator.rb +0 -21
  95. data/lib/project_types/script/layers/infrastructure/languages/assemblyscript_task_runner.rb +0 -109
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shopify-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.12.0
4
+ version: 2.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-23 00:00:00.000000000 Z
11
+ date: 2022-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.2.2
19
+ version: 2.3.8
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.2.2
26
+ version: 2.3.8
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -92,14 +92,14 @@ dependencies:
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: 1.9.0
95
+ version: 1.10.1
96
96
  type: :runtime
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: 1.9.0
102
+ version: 1.10.1
103
103
  description: |
104
104
  Shopify CLI helps you build Shopify apps faster. It quickly scaffolds Node.js
105
105
  and Ruby on Rails embedded apps. It also automates many common tasks in the
@@ -124,6 +124,7 @@ files:
124
124
  - ".github/PULL_REQUEST_TEMPLATE.md"
125
125
  - ".github/probots.yml"
126
126
  - ".github/workflows/shopify.yml"
127
+ - ".github/workflows/stale.yml"
127
128
  - ".github/workflows/triage.yml"
128
129
  - ".gitignore"
129
130
  - ".rubocop.yml"
@@ -154,9 +155,17 @@ files:
154
155
  - docs/users/installation.md
155
156
  - docs/users/migrate-from-themekit.md
156
157
  - ext/javy/hashes/javy-arm-macos-v0.1.0.gz.sha256
158
+ - ext/javy/hashes/javy-arm-macos-v0.2.0.gz.sha256
159
+ - ext/javy/hashes/javy-arm-macos-v0.2.1.gz.sha256
157
160
  - ext/javy/hashes/javy-x86_64-linux-v0.1.0.gz.sha256
161
+ - ext/javy/hashes/javy-x86_64-linux-v0.2.0.gz.sha256
162
+ - ext/javy/hashes/javy-x86_64-linux-v0.2.1.gz.sha256
158
163
  - ext/javy/hashes/javy-x86_64-macos-v0.1.0.gz.sha256
164
+ - ext/javy/hashes/javy-x86_64-macos-v0.2.0.gz.sha256
165
+ - ext/javy/hashes/javy-x86_64-macos-v0.2.1.gz.sha256
159
166
  - ext/javy/hashes/javy-x86_64-windows-v0.1.0.gz.sha256
167
+ - ext/javy/hashes/javy-x86_64-windows-v0.2.0.gz.sha256
168
+ - ext/javy/hashes/javy-x86_64-windows-v0.2.1.gz.sha256
160
169
  - ext/javy/javy.rb
161
170
  - ext/javy/version
162
171
  - ext/shopify-extensions/extconf.rb
@@ -279,7 +288,6 @@ files:
279
288
  - lib/project_types/rails/forms/create.rb
280
289
  - lib/project_types/rails/gem.rb
281
290
  - lib/project_types/rails/messages/messages.rb
282
- - lib/project_types/rails/ruby.rb
283
291
  - lib/project_types/script/cli.rb
284
292
  - lib/project_types/script/commands/connect.rb
285
293
  - lib/project_types/script/commands/create.rb
@@ -313,8 +321,6 @@ files:
313
321
  - lib/project_types/script/layers/infrastructure/command_runner.rb
314
322
  - lib/project_types/script/layers/infrastructure/errors.rb
315
323
  - lib/project_types/script/layers/infrastructure/extension_point_repository.rb
316
- - lib/project_types/script/layers/infrastructure/languages/assemblyscript_project_creator.rb
317
- - lib/project_types/script/layers/infrastructure/languages/assemblyscript_task_runner.rb
318
324
  - lib/project_types/script/layers/infrastructure/languages/project_creator.rb
319
325
  - lib/project_types/script/layers/infrastructure/languages/task_runner.rb
320
326
  - lib/project_types/script/layers/infrastructure/languages/tool_version_checker.rb
@@ -340,6 +346,8 @@ files:
340
346
  - lib/project_types/theme/commands/delete.rb
341
347
  - lib/project_types/theme/commands/init.rb
342
348
  - lib/project_types/theme/commands/language_server.rb
349
+ - lib/project_types/theme/commands/list.rb
350
+ - lib/project_types/theme/commands/open.rb
343
351
  - lib/project_types/theme/commands/package.rb
344
352
  - lib/project_types/theme/commands/publish.rb
345
353
  - lib/project_types/theme/commands/pull.rb
@@ -351,6 +359,8 @@ files:
351
359
  - lib/project_types/theme/forms/confirm_store.rb
352
360
  - lib/project_types/theme/forms/select.rb
353
361
  - lib/project_types/theme/messages/messages.rb
362
+ - lib/project_types/theme/presenters/theme_presenter.rb
363
+ - lib/project_types/theme/presenters/themes_presenter.rb
354
364
  - lib/project_types/theme/ui/sync_progress_bar.rb
355
365
  - lib/rubygems_plugin.rb
356
366
  - lib/shopify_cli.rb
@@ -494,12 +504,14 @@ files:
494
504
  - lib/shopify_cli/theme/syncer/operation.rb
495
505
  - lib/shopify_cli/theme/syncer/standard_reporter.rb
496
506
  - lib/shopify_cli/theme/theme.rb
507
+ - lib/shopify_cli/theme/theme_admin_api.rb
497
508
  - lib/shopify_cli/thread_pool.rb
498
509
  - lib/shopify_cli/thread_pool/job.rb
499
510
  - lib/shopify_cli/transform_data_structure.rb
500
511
  - lib/shopify_cli/tunnel.rb
501
512
  - lib/shopify_cli/utilities.rb
502
513
  - lib/shopify_cli/version.rb
514
+ - shipit.yml
503
515
  - shopify-cli.gemspec
504
516
  - shopify-dev
505
517
  - utilities/constants.rb
@@ -1,17 +0,0 @@
1
- module Rails
2
- class Ruby
3
- include SmartProperties
4
-
5
- VERSION_STRING = /ruby ([\d\.]+)/
6
-
7
- property :ctx, accepts: ShopifyCLI::Context, required: true
8
-
9
- class << self
10
- def version(ctx)
11
- require "semantic/semantic"
12
- out, _ = ctx.capture2("ruby", "-v")
13
- Semantic::Version.new(VERSION_STRING.match(out)[1])
14
- end
15
- end
16
- end
17
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Script
4
- module Layers
5
- module Infrastructure
6
- module Languages
7
- class AssemblyScriptProjectCreator < ProjectCreator
8
- def self.config_file
9
- "package.json"
10
- end
11
-
12
- def setup_dependencies
13
- task_runner = Infrastructure::Languages::AssemblyScriptTaskRunner.new(ctx)
14
- task_runner.set_npm_config
15
- super
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,109 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Script
4
- module Layers
5
- module Infrastructure
6
- module Languages
7
- class AssemblyScriptTaskRunner < TaskRunner
8
- NODE_MIN_VERSION = "14.15.0"
9
- NPM_MIN_VERSION = "5.2.0"
10
-
11
- BYTECODE_FILE = "build/script.wasm"
12
- METADATA_FILE = "build/metadata.json"
13
- SCRIPT_SDK_BUILD = "npm run build"
14
- NPM_SET_REGISTRY_COMMAND = "npm --userconfig ./.npmrc config set @shopify:registry https://registry.npmjs.com"
15
- NPM_SET_ENGINE_STRICT_COMMAND = "npm --userconfig ./.npmrc config set engine-strict true"
16
- NPM_INSTALL_COMMAND = "npm install --no-audit --no-optional --legacy-peer-deps --loglevel error"
17
-
18
- def build
19
- compile
20
- bytecode
21
- end
22
-
23
- def install_dependencies
24
- run_cmd_with_env_check(NPM_INSTALL_COMMAND)
25
-
26
- rescue Errors::SystemCallFailureError => e
27
- raise Errors::DependencyInstallError, e.out
28
- end
29
-
30
- def dependencies_installed?
31
- # Assuming if node_modules folder exist at root of script folder, all deps are installed
32
- ctx.dir_exist?("node_modules")
33
- end
34
-
35
- def metadata_file_location
36
- METADATA_FILE
37
- end
38
-
39
- def library_version(library_name)
40
- output = JSON.parse(run_cmd_with_env_check("npm -s list --json"))
41
- library_version_from_npm_list(output, library_name)
42
- rescue Errors::SystemCallFailureError => error
43
- library_version_from_npm_list_error_output(error, library_name)
44
- end
45
-
46
- def set_npm_config
47
- run_cmd_with_env_check(NPM_SET_REGISTRY_COMMAND)
48
- run_cmd_with_env_check(NPM_SET_ENGINE_STRICT_COMMAND)
49
- end
50
-
51
- private
52
-
53
- def ensure_environment
54
- return if defined?(@environment_checked)
55
- @environment_checked = true
56
-
57
- ToolVersionChecker.check_node(minimum_version: NODE_MIN_VERSION)
58
- ToolVersionChecker.check_npm(minimum_version: NPM_MIN_VERSION)
59
- end
60
-
61
- def run_cmd_with_env_check(cmd)
62
- ensure_environment
63
- CommandRunner.new(ctx: ctx).call(cmd)
64
- end
65
-
66
- def library_version_from_npm_list_error_output(error, library_name)
67
- # npm list can return a failure status code, even when returning the correct data.
68
- # This causes the CommandRunner to throw a SystemCallFailure error that contains the data.
69
- # In here, we check that the output contains `npm list`'s structure and extract the version.
70
- output = JSON.parse(error.out)
71
- raise error unless output.key?("dependencies")
72
-
73
- library_version_from_npm_list(output, library_name)
74
- rescue JSON::ParserError
75
- raise error
76
- end
77
-
78
- def library_version_from_npm_list(output, library_name)
79
- output.dig("dependencies", library_name, "version").tap do |version|
80
- raise Errors::APILibraryNotFoundError, library_name unless version
81
- end
82
- end
83
-
84
- def compile
85
- check_compilation_dependencies!
86
- run_cmd_with_env_check(SCRIPT_SDK_BUILD)
87
- end
88
-
89
- def check_compilation_dependencies!
90
- pkg = JSON.parse(File.read("package.json"))
91
- build_script = pkg.dig("scripts", "build")
92
-
93
- raise Errors::BuildScriptNotFoundError,
94
- "Build script not found" if build_script.nil?
95
- end
96
-
97
- def bytecode
98
- raise Errors::WebAssemblyBinaryNotFoundError unless ctx.file_exist?(BYTECODE_FILE)
99
-
100
- contents = ctx.binread(BYTECODE_FILE)
101
- ctx.rm(BYTECODE_FILE)
102
-
103
- contents
104
- end
105
- end
106
- end
107
- end
108
- end
109
- end