shopify-cli 2.12.0 → 2.15.0

Sign up to get free protection for your applications and to get access to all the features.
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