shopify-cli 2.5.0 → 2.6.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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +11 -0
- data/Dockerfile +0 -2
- data/Gemfile.lock +22 -16
- data/Rakefile +7 -16
- data/bin/console +11 -0
- data/bin/shopify +15 -3
- data/dev.yml +3 -0
- data/ext/shopify-cli/extconf.rb +2 -0
- data/lib/project_types/extension/cli.rb +2 -0
- data/lib/project_types/extension/commands/build.rb +2 -1
- data/lib/project_types/extension/features/argo.rb +1 -1
- data/lib/project_types/extension/features/argo_serve.rb +1 -0
- data/lib/project_types/extension/models/development_server.rb +4 -0
- data/lib/project_types/extension/models/development_server_requirements.rb +1 -2
- data/lib/project_types/extension/models/specification_handlers/default.rb +4 -0
- data/lib/project_types/extension/tasks/converters/server_config_converter.rb +31 -0
- data/lib/project_types/extension/tasks/find_npm_packages.rb +2 -2
- data/lib/project_types/extension/tasks/load_server_config.rb +23 -0
- data/lib/project_types/extension/tasks/run_extension_command.rb +26 -10
- data/lib/project_types/node/commands/serve.rb +9 -1
- data/lib/project_types/node/messages/messages.rb +3 -0
- data/lib/project_types/script/cli.rb +4 -3
- data/lib/project_types/script/commands/create.rb +2 -0
- data/lib/project_types/script/config/extension_points.yml +30 -29
- data/lib/project_types/script/layers/application/create_script.rb +32 -12
- data/lib/project_types/script/layers/application/extension_points.rb +3 -3
- data/lib/project_types/script/layers/domain/extension_point.rb +13 -45
- data/lib/project_types/script/layers/infrastructure/api_clients/partners_proxy_api_client.rb +4 -2
- data/lib/project_types/script/layers/infrastructure/api_clients/script_service_api_client.rb +1 -1
- data/lib/project_types/script/layers/infrastructure/errors.rb +5 -0
- data/lib/project_types/script/layers/infrastructure/languages/assemblyscript_project_creator.rb +10 -90
- data/lib/project_types/script/layers/infrastructure/languages/project_creator.rb +76 -11
- data/lib/project_types/script/layers/infrastructure/languages/task_runner.rb +1 -1
- data/lib/project_types/script/layers/infrastructure/languages/typescript_project_creator.rb +33 -0
- data/lib/project_types/script/layers/infrastructure/languages/typescript_task_runner.rb +105 -0
- data/lib/project_types/script/layers/infrastructure/script_project_repository.rb +1 -1
- data/lib/project_types/script/messages/messages.rb +4 -0
- data/lib/project_types/script/ui/error_handler.rb +8 -0
- data/lib/shopify_cli/command/app_sub_command.rb +16 -0
- data/lib/shopify_cli/constants.rb +33 -5
- data/lib/shopify_cli/core/executor.rb +5 -1
- data/lib/shopify_cli/environment.rb +35 -4
- data/lib/shopify_cli/exception_reporter/permission_controller.rb +54 -0
- data/lib/shopify_cli/exception_reporter.rb +55 -0
- data/lib/shopify_cli/git.rb +30 -0
- data/lib/shopify_cli/messages/messages.rb +27 -1
- data/lib/shopify_cli/method_object.rb +11 -4
- data/lib/shopify_cli/migrator/migration.rb +27 -0
- data/lib/shopify_cli/migrator/migrations/1631709766_noop.rb +13 -0
- data/lib/shopify_cli/migrator.rb +48 -0
- data/lib/shopify_cli/version.rb +1 -1
- data/lib/shopify_cli.rb +11 -3
- data/shopify-cli.gemspec +9 -1
- data/utilities/docker.rb +47 -0
- data/utilities/utilities.rb +5 -0
- metadata +31 -6
- data/lib/project_types/script/layers/infrastructure/languages/rust_project_creator.rb +0 -73
- data/lib/project_types/script/layers/infrastructure/languages/rust_task_runner.rb +0 -60
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c9bf62139d7f6ea0c4e88417521bd981c28c0823950768c3350410f2c8666e35
|
4
|
+
data.tar.gz: a15af494f4dbbcb6e2b8c276e34fb1347e3142f59d5646e80370199ddc6d0bce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4dbceb0f0d41f605bb3be605e54eae58868d83e86fe7cd0476dc0193c7e2cf7369fa86a8d5d2a2070711f54dd03b02b2200bc844f02b42be9297178095f2106
|
7
|
+
data.tar.gz: 2c75055724e3fce904caca22f974f9cbc87bf10bfb9388f5227a227799f8b6c7e33aece62d7301cfde366d69fcc27832256e1da791e2dc4ca7f85d02f7c41191
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,17 @@
|
|
1
1
|
Unreleased
|
2
2
|
------
|
3
3
|
|
4
|
+
Version 2.6.0
|
5
|
+
------
|
6
|
+
|
7
|
+
* [#1574](https://github.com/Shopify/shopify-cli/pull/1574): Hide LoadError for ${RUBY_MAJOR}/ffi_c.
|
8
|
+
* [#1567](https://github.com/Shopify/shopify-cli/pull/1567): Add ability to set custom port for ngrok tunnel in node serve.
|
9
|
+
* [#1584](https://github.com/Shopify/shopify-cli/issues/1584): Fixed extended help message not showing.
|
10
|
+
* [#1566](https://github.com/Shopify/shopify-cli/pull/1566): Fix bug when running `npm | yarn list` for extension package resolution.
|
11
|
+
* [#1524](https://github.com/Shopify/shopify-cli/pull/1524): Add automatic error-reporting.
|
12
|
+
* [#1528](https://github.com/Shopify/shopify-cli/pull/1528): Bump theme-check version to 1.7
|
13
|
+
* [#1566](https://github.com/Shopify/shopify-cli/pull/1566): Fix bug when running `npm | yarn list` for extension package resolution
|
14
|
+
|
4
15
|
Version 2.5.0
|
5
16
|
------
|
6
17
|
|
data/Dockerfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
shopify-cli (2.
|
4
|
+
shopify-cli (2.6.0)
|
5
|
+
bugsnag (~> 6.22)
|
5
6
|
listen (~> 3.7.0)
|
6
|
-
theme-check (~> 1.
|
7
|
+
theme-check (~> 1.7)
|
7
8
|
|
8
9
|
GEM
|
9
10
|
remote: https://rubygems.org/
|
@@ -12,10 +13,14 @@ GEM
|
|
12
13
|
public_suffix (>= 2.0.2, < 5.0)
|
13
14
|
ansi (1.5.0)
|
14
15
|
ast (2.4.2)
|
16
|
+
bugsnag (6.23.0)
|
17
|
+
concurrent-ruby (~> 1.0)
|
15
18
|
builder (3.2.4)
|
16
19
|
byebug (11.1.3)
|
17
20
|
coderay (1.1.3)
|
18
|
-
|
21
|
+
concurrent-ruby (1.1.9)
|
22
|
+
crack (0.4.5)
|
23
|
+
rexml
|
19
24
|
cucumber (7.0.0)
|
20
25
|
builder (~> 3.2, >= 3.2.4)
|
21
26
|
cucumber-core (~> 10.0, >= 10.0.1)
|
@@ -41,17 +46,17 @@ GEM
|
|
41
46
|
cucumber-messages (~> 17.0, >= 17.0.1)
|
42
47
|
cucumber-html-formatter (16.0.1)
|
43
48
|
cucumber-messages (~> 17.0, >= 17.0.1)
|
44
|
-
cucumber-messages (17.1.
|
49
|
+
cucumber-messages (17.1.1)
|
45
50
|
cucumber-tag-expressions (3.0.1)
|
46
51
|
cucumber-wire (6.1.1)
|
47
52
|
cucumber-core (~> 10.0, >= 10.0.1)
|
48
53
|
cucumber-cucumber-expressions (~> 12.1, >= 12.1.2)
|
49
54
|
cucumber-messages (~> 17.0, >= 17.0.1)
|
50
55
|
diff-lcs (1.4.4)
|
51
|
-
fakefs (1.
|
52
|
-
ffi (1.15.
|
56
|
+
fakefs (1.3.2)
|
57
|
+
ffi (1.15.4)
|
53
58
|
hashdiff (1.0.1)
|
54
|
-
liquid (5.0
|
59
|
+
liquid (5.1.0)
|
55
60
|
listen (3.7.0)
|
56
61
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
57
62
|
rb-inotify (~> 0.9, >= 0.9.10)
|
@@ -60,21 +65,21 @@ GEM
|
|
60
65
|
mime-types-data (~> 3.2015)
|
61
66
|
mime-types-data (3.2021.0901)
|
62
67
|
mini_portile2 (2.6.1)
|
63
|
-
minitest (5.14.
|
68
|
+
minitest (5.14.4)
|
64
69
|
minitest-fail-fast (0.1.0)
|
65
70
|
minitest (~> 5)
|
66
|
-
minitest-reporters (1.4.
|
71
|
+
minitest-reporters (1.4.3)
|
67
72
|
ansi
|
68
73
|
builder
|
69
74
|
minitest (>= 5.0)
|
70
75
|
ruby-progressbar
|
71
|
-
mocha (1.
|
76
|
+
mocha (1.13.0)
|
72
77
|
multi_test (0.1.2)
|
73
|
-
nokogiri (1.12.
|
78
|
+
nokogiri (1.12.5)
|
74
79
|
mini_portile2 (~> 2.6.1)
|
75
80
|
racc (~> 1.4)
|
76
|
-
parallel (1.
|
77
|
-
parser (3.0.
|
81
|
+
parallel (1.21.0)
|
82
|
+
parser (3.0.2.0)
|
78
83
|
ast (~> 2.4.1)
|
79
84
|
pry (0.13.1)
|
80
85
|
coderay (~> 1.1)
|
@@ -86,7 +91,7 @@ GEM
|
|
86
91
|
racc (1.5.2)
|
87
92
|
rack (2.2.3)
|
88
93
|
rainbow (3.0.0)
|
89
|
-
rake (13.0.
|
94
|
+
rake (13.0.6)
|
90
95
|
rb-fsevent (0.11.0)
|
91
96
|
rb-inotify (0.10.1)
|
92
97
|
ffi (~> 1.0)
|
@@ -112,9 +117,10 @@ GEM
|
|
112
117
|
ruby-progressbar (1.11.0)
|
113
118
|
sys-uname (1.2.2)
|
114
119
|
ffi (~> 1.1)
|
115
|
-
theme-check (1.
|
116
|
-
liquid (>= 5.0
|
120
|
+
theme-check (1.7.2)
|
121
|
+
liquid (>= 5.1.0)
|
117
122
|
nokogiri (>= 1.12)
|
123
|
+
parser (~> 3)
|
118
124
|
timecop (0.9.2)
|
119
125
|
unicode-display_width (2.0.0)
|
120
126
|
webmock (3.9.3)
|
data/Rakefile
CHANGED
@@ -1,8 +1,13 @@
|
|
1
|
+
ENV["SHOPIFY_CLI_TEST"] = "1"
|
2
|
+
|
1
3
|
require_relative "bin/load_shopify"
|
4
|
+
require_relative "utilities/utilities"
|
2
5
|
require "rake/testtask"
|
3
6
|
require "rubocop/rake_task"
|
4
7
|
require "bundler/gem_tasks"
|
5
8
|
require "shellwords"
|
9
|
+
require "digest"
|
10
|
+
require "open3"
|
6
11
|
|
7
12
|
Rake::TestTask.new do |t|
|
8
13
|
t.libs += %w(test)
|
@@ -15,26 +20,12 @@ desc "A set of tasks that run in Linux environments"
|
|
15
20
|
namespace :linux do
|
16
21
|
desc "Runs the test suite in a Linux Docker environment"
|
17
22
|
task :test do
|
18
|
-
|
19
|
-
system(
|
20
|
-
"docker", "run",
|
21
|
-
"-t", "--rm",
|
22
|
-
"--volume", "#{Shellwords.escape(__dir__)}:/usr/src/app",
|
23
|
-
"shopify-cli",
|
24
|
-
"bundle", "exec", "rake", "test"
|
25
|
-
) || abort
|
23
|
+
Utilities::Docker.run_and_rm_container("bundle", "exec", "rake", "test")
|
26
24
|
end
|
27
25
|
|
28
26
|
desc "Runs the acceptance tests suite in a Linux Docker environment"
|
29
27
|
task :features do
|
30
|
-
|
31
|
-
system(
|
32
|
-
"docker", "run",
|
33
|
-
"-t", "--rm",
|
34
|
-
"--volume", "#{Shellwords.escape(__dir__)}:/usr/src/app",
|
35
|
-
"shopify-cli",
|
36
|
-
"bundle", "exec", "cucumber"
|
37
|
-
) || abort
|
28
|
+
Utilities::Docker.run_and_rm_container("bundle", "exec", "cucumber")
|
38
29
|
end
|
39
30
|
end
|
40
31
|
|
data/bin/console
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require_relative "load_shopify"
|
5
|
+
require "irb"
|
6
|
+
require "irb/completion"
|
7
|
+
require "irb/ext/save-history"
|
8
|
+
|
9
|
+
IRB.conf[:SAVE_HISTORY] = 100
|
10
|
+
IRB.conf[:HISTORY_FILE] = File.expand_path("../../.console_history", __FILE__)
|
11
|
+
IRB.start
|
data/bin/shopify
CHANGED
@@ -12,6 +12,8 @@ module Kernel
|
|
12
12
|
raise if (name == "readline.so") && ShopifyCLI::Context.new.windows?
|
13
13
|
# Special case for psych (yaml), which rescues this itself
|
14
14
|
raise if name == "#{RUBY_VERSION[/\d+\.\d+/]}/psych.so"
|
15
|
+
# Special case for ffi, which rescues this itself
|
16
|
+
raise if name == "#{RUBY_VERSION.split(".")[0, 2].join(".")}/ffi_c"
|
15
17
|
STDERR.puts "[Note] You cannot use gems with Shopify CLI."
|
16
18
|
STDERR.puts "[LoadError] #{e.message}"
|
17
19
|
if ENV["DEBUG"]
|
@@ -29,6 +31,16 @@ end
|
|
29
31
|
|
30
32
|
require_relative "./load_shopify"
|
31
33
|
|
32
|
-
exit(
|
33
|
-
|
34
|
-
|
34
|
+
exit(proc do
|
35
|
+
begin
|
36
|
+
ShopifyCLI::ErrorHandler.call do
|
37
|
+
ShopifyCLI::Core::EntryPoint.call(ARGV.dup)
|
38
|
+
end
|
39
|
+
rescue StandardError => error
|
40
|
+
if ShopifyCLI::Environment.print_stacktrace?
|
41
|
+
raise error
|
42
|
+
else
|
43
|
+
1
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end.call)
|
data/dev.yml
CHANGED
data/ext/shopify-cli/extconf.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "rbconfig"
|
2
2
|
require "fileutils"
|
3
|
+
require "date"
|
3
4
|
|
4
5
|
gem = File.expand_path("../../../", __FILE__)
|
5
6
|
exe = File.join(gem, "bin", "shopify")
|
@@ -56,4 +57,5 @@ else
|
|
56
57
|
MAKEFILE
|
57
58
|
end
|
58
59
|
|
60
|
+
File.write(installation_date_path, Time.now.to_i.to_s)
|
59
61
|
File.write("Makefile", makefile_content)
|
@@ -42,6 +42,7 @@ module Extension
|
|
42
42
|
autoload :GetExtensions, Project.project_filepath("tasks/get_extensions")
|
43
43
|
autoload :GetProduct, Project.project_filepath("tasks/get_product")
|
44
44
|
autoload :RunExtensionCommand, Project.project_filepath("tasks/run_extension_command")
|
45
|
+
autoload :LoadServerConfig, Project.project_filepath("tasks/load_server_config")
|
45
46
|
|
46
47
|
module Converters
|
47
48
|
autoload :RegistrationConverter, Project.project_filepath("tasks/converters/registration_converter")
|
@@ -49,6 +50,7 @@ module Extension
|
|
49
50
|
autoload :ValidationErrorConverter, Project.project_filepath("tasks/converters/validation_error_converter")
|
50
51
|
autoload :AppConverter, Project.project_filepath("tasks/converters/app_converter")
|
51
52
|
autoload :ProductConverter, Project.project_filepath("tasks/converters/product_converter")
|
53
|
+
autoload :ServerConfigConverter, Project.project_filepath("tasks/converters/server_config_converter")
|
52
54
|
end
|
53
55
|
end
|
54
56
|
|
@@ -26,7 +26,8 @@ module Extension
|
|
26
26
|
def run_new_flow(project)
|
27
27
|
Tasks::RunExtensionCommand.new(
|
28
28
|
type: project.specification_identifier.downcase,
|
29
|
-
command: "build"
|
29
|
+
command: "build",
|
30
|
+
config_file_name: specification_handler.server_config_file,
|
30
31
|
).call
|
31
32
|
|
32
33
|
@ctx.puts(@ctx.message("build.build_success_message"))
|
@@ -44,7 +44,7 @@ module Extension
|
|
44
44
|
def renderer_package(context)
|
45
45
|
js_system = ShopifyCLI::JsSystem.new(ctx: context)
|
46
46
|
Tasks::FindNpmPackages
|
47
|
-
.exactly_one_of(renderer_package_name, js_system: js_system)
|
47
|
+
.exactly_one_of(renderer_package_name, js_system: js_system, production_only: true)
|
48
48
|
.unwrap { |err| raise err }
|
49
49
|
rescue Extension::PackageResolutionFailed
|
50
50
|
context.abort(
|
@@ -19,8 +19,7 @@ module Extension
|
|
19
19
|
private
|
20
20
|
|
21
21
|
def binary_installed?
|
22
|
-
|
23
|
-
File.exist?(File.join(extension_dir, UNIX_NAME)) || File.exist?(File.join(extension_dir, WINDOWS_NAME))
|
22
|
+
Models::DevelopmentServer.new.executable_installed?
|
24
23
|
end
|
25
24
|
|
26
25
|
def type_supported?(type)
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "shopify_cli"
|
3
|
+
|
4
|
+
module Extension
|
5
|
+
module Tasks
|
6
|
+
module Converters
|
7
|
+
module ServerConfigConverter
|
8
|
+
def self.from_hash(hash, type)
|
9
|
+
context.abort(context.message("tasks.errors.parse_error")) if hash.nil?
|
10
|
+
|
11
|
+
project = ExtensionProject.current
|
12
|
+
|
13
|
+
extension = Models::ServerConfig::Extension.new(
|
14
|
+
uuid: project.registration_uuid,
|
15
|
+
type: type.upcase,
|
16
|
+
user: Models::ServerConfig::User.new,
|
17
|
+
development: Models::ServerConfig::Development.new(
|
18
|
+
build_dir: hash.dig("development", "build_dir"),
|
19
|
+
renderer: Models::ServerConfig::DevelopmentRenderer.find(type),
|
20
|
+
entries: Models::ServerConfig::DevelopmentEntries.new(
|
21
|
+
main: hash.dig("development", "entries", "main")
|
22
|
+
)
|
23
|
+
)
|
24
|
+
)
|
25
|
+
|
26
|
+
Models::ServerConfig::Root.new(extensions: [extension])
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -84,11 +84,11 @@ module Extension
|
|
84
84
|
end
|
85
85
|
|
86
86
|
def yarn_list
|
87
|
-
production_only? ? %w[list --production] : %w[list]
|
87
|
+
production_only? ? %w[list --production --depth=0] : %w[list]
|
88
88
|
end
|
89
89
|
|
90
90
|
def npm_list
|
91
|
-
production_only? ? %w[list --prod --depth=
|
91
|
+
production_only? ? %w[list --prod --depth=0] : %w[list]
|
92
92
|
end
|
93
93
|
|
94
94
|
def search_packages(packages, package_list)
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "shopify_cli"
|
3
|
+
require "yaml"
|
4
|
+
|
5
|
+
module Extension
|
6
|
+
module Tasks
|
7
|
+
class LoadServerConfig < ShopifyCLI::Task
|
8
|
+
include SmartProperties
|
9
|
+
|
10
|
+
class << self
|
11
|
+
def call(file_name:, type:)
|
12
|
+
config = YAML.load_file(file_name)
|
13
|
+
Tasks::Converters::ServerConfigConverter.from_hash(config, type)
|
14
|
+
rescue Psych::SyntaxError => e
|
15
|
+
raise(
|
16
|
+
ShopifyCLI::Abort,
|
17
|
+
ShopifyCLI::Context.message("core.yaml.error.invalid", file_name, e.message)
|
18
|
+
)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -17,17 +17,17 @@ module Extension
|
|
17
17
|
"serve",
|
18
18
|
]
|
19
19
|
|
20
|
-
property :root_dir, accepts: String
|
21
|
-
property :template, accepts: Models::ServerConfig::Development::VALID_TEMPLATES
|
22
|
-
property! :type, accepts: SUPPORTED_EXTENSION_TYPES
|
23
20
|
property! :command, accepts: SUPPORTED_COMMANDS
|
21
|
+
property! :type, accepts: SUPPORTED_EXTENSION_TYPES
|
24
22
|
property :context, accepts: ShopifyCLI::Context
|
23
|
+
property :config_file_name, accepts: String
|
25
24
|
property :port, accepts: Integer, default: 39351
|
25
|
+
property :root_dir, accepts: String
|
26
|
+
property :template, accepts: Models::ServerConfig::Development::VALID_TEMPLATES
|
26
27
|
|
27
28
|
def call
|
28
|
-
ShopifyCLI::Result
|
29
|
-
.
|
30
|
-
.then(&method(:build_server_config))
|
29
|
+
ShopifyCLI::Result.success(config_file_exists?)
|
30
|
+
.then(&method(:load_or_build_server_config))
|
31
31
|
.then(&method(:run_command))
|
32
32
|
.unwrap do |error|
|
33
33
|
raise error unless error.nil?
|
@@ -36,15 +36,31 @@ module Extension
|
|
36
36
|
|
37
37
|
private
|
38
38
|
|
39
|
-
def
|
40
|
-
|
39
|
+
def config_file_exists?
|
40
|
+
return false if config_file_name.nil?
|
41
|
+
project = ExtensionProject.current
|
42
|
+
File.exist?(File.join(project.directory, config_file_name))
|
43
|
+
end
|
44
|
+
|
45
|
+
def load_or_build_server_config(config_file_exists)
|
46
|
+
return load_server_config if config_file_exists
|
47
|
+
build_server_config
|
48
|
+
end
|
49
|
+
|
50
|
+
def load_server_config
|
51
|
+
Tasks::LoadServerConfig.call(
|
52
|
+
file_name: config_file_name,
|
53
|
+
type: type,
|
54
|
+
)
|
55
|
+
end
|
56
|
+
|
57
|
+
def build_server_config
|
58
|
+
extension = Models::ServerConfig::Extension.build(
|
41
59
|
template: template,
|
42
60
|
type: type,
|
43
61
|
root_dir: root_dir,
|
44
62
|
)
|
45
|
-
end
|
46
63
|
|
47
|
-
def build_server_config(extension)
|
48
64
|
Models::ServerConfig::Root.new(port: port, extensions: [extension])
|
49
65
|
end
|
50
66
|
|
@@ -9,6 +9,7 @@ module Node
|
|
9
9
|
parser.on("--host=HOST") do |h|
|
10
10
|
flags[:host] = h.gsub('"', "")
|
11
11
|
end
|
12
|
+
parser.on("--port=PORT") { |port| flags[:port] = port }
|
12
13
|
end
|
13
14
|
|
14
15
|
def call(*)
|
@@ -29,11 +30,18 @@ module Node
|
|
29
30
|
|
30
31
|
CLI::UI::Frame.open(@ctx.message("node.serve.running_server")) do
|
31
32
|
env = project.env.to_h
|
32
|
-
env["PORT"] =
|
33
|
+
env["PORT"] = port.to_s
|
33
34
|
@ctx.system("npm run dev", env: env)
|
34
35
|
end
|
35
36
|
end
|
36
37
|
|
38
|
+
def port
|
39
|
+
return ShopifyCLI::Tunnel::PORT.to_s unless options.flags.key?(:port)
|
40
|
+
port = options.flags[:port].to_i
|
41
|
+
@ctx.abort(@ctx.message("node.serve.error.invalid_port", options.flags[:port])) unless port > 0
|
42
|
+
port
|
43
|
+
end
|
44
|
+
|
37
45
|
def self.help
|
38
46
|
ShopifyCLI::Context.message("node.serve.help", ShopifyCLI::TOOL_NAME)
|
39
47
|
end
|
@@ -119,10 +119,12 @@ module Node
|
|
119
119
|
extended_help: <<~HELP,
|
120
120
|
{{bold:Options:}}
|
121
121
|
{{cyan:--host=HOST}}: Bypass running tunnel and use custom host. HOST must be HTTPS url.
|
122
|
+
{{cyan:--port=PORT}}: Use custom port.
|
122
123
|
HELP
|
123
124
|
|
124
125
|
error: {
|
125
126
|
host_must_be_https: "HOST must be a HTTPS url.",
|
127
|
+
invalid_port: "%s is not a valid port.",
|
126
128
|
},
|
127
129
|
|
128
130
|
open_info: <<~MESSAGE,
|
@@ -154,6 +156,7 @@ module Node
|
|
154
156
|
error: {
|
155
157
|
token_argument_missing: "{{x}} {{red:auth requires a token argument}}\n\n",
|
156
158
|
},
|
159
|
+
|
157
160
|
},
|
158
161
|
|
159
162
|
forms: {
|
@@ -60,10 +60,11 @@ module Script
|
|
60
60
|
autoload :AssemblyScriptTaskRunner,
|
61
61
|
Project.project_filepath("layers/infrastructure/languages/assemblyscript_task_runner")
|
62
62
|
autoload :ProjectCreator, Project.project_filepath("layers/infrastructure/languages/project_creator")
|
63
|
-
autoload :RustProjectCreator,
|
64
|
-
Project.project_filepath("layers/infrastructure/languages/rust_project_creator.rb")
|
65
|
-
autoload :RustTaskRunner, Project.project_filepath("layers/infrastructure/languages/rust_task_runner")
|
66
63
|
autoload :TaskRunner, Project.project_filepath("layers/infrastructure/languages/task_runner")
|
64
|
+
autoload :TypeScriptProjectCreator,
|
65
|
+
Project.project_filepath("layers/infrastructure/languages/typescript_project_creator.rb")
|
66
|
+
autoload :TypeScriptTaskRunner,
|
67
|
+
Project.project_filepath("layers/infrastructure/languages/typescript_task_runner.rb")
|
67
68
|
end
|
68
69
|
|
69
70
|
module ApiClients
|
@@ -10,6 +10,7 @@ module Script
|
|
10
10
|
parser.on("--extension_point=EP_NAME") { |ep_name| flags[:extension_point] = ep_name }
|
11
11
|
parser.on("--extension-point=EP_NAME") { |ep_name| flags[:extension_point] = ep_name }
|
12
12
|
parser.on("--language=LANGUAGE") { |language| flags[:language] = language }
|
13
|
+
parser.on("--branch=BRANCH") { |branch| flags[:branch] = branch }
|
13
14
|
parser.on("--no-config-ui") { |no_config_ui| flags[:no_config_ui] = no_config_ui }
|
14
15
|
end
|
15
16
|
|
@@ -24,6 +25,7 @@ module Script
|
|
24
25
|
project = Layers::Application::CreateScript.call(
|
25
26
|
ctx: @ctx,
|
26
27
|
language: form.language,
|
28
|
+
sparse_checkout_branch: options.flags[:branch] || "master",
|
27
29
|
script_name: form.name,
|
28
30
|
extension_point_type: form.extension_point,
|
29
31
|
no_config_ui: options.flags.key?(:no_config_ui)
|
@@ -1,43 +1,44 @@
|
|
1
1
|
discount:
|
2
2
|
deprecated: true
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
toolchain-version: "^5.0.0"
|
3
|
+
libraries:
|
4
|
+
assemblyscript:
|
5
|
+
package: "@shopify/extension-point-as-discount"
|
7
6
|
unit_limit_per_order:
|
8
7
|
beta: true
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
toolchain-version: "^5.0.0"
|
8
|
+
libraries:
|
9
|
+
assemblyscript:
|
10
|
+
package: "@shopify/extension-point-as-unit-limit-per-order"
|
13
11
|
payment_filter:
|
14
12
|
deprecated: true
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
toolchain-version: "^5.0.0"
|
19
|
-
rust:
|
20
|
-
beta: true
|
21
|
-
package: "https://github.com/Shopify/scripts-apis-rs"
|
13
|
+
libraries:
|
14
|
+
assemblyscript:
|
15
|
+
package: "@shopify/extension-point-as-payment-filter"
|
22
16
|
shipping_filter:
|
23
17
|
deprecated: true
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
toolchain-version: "^5.0.0"
|
18
|
+
libraries:
|
19
|
+
assemblyscript:
|
20
|
+
package: "@shopify/extension-point-as-shipping-filter"
|
28
21
|
tax_filter:
|
29
22
|
beta: true
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
23
|
+
libraries:
|
24
|
+
assemblyscript:
|
25
|
+
repo: "https://github.com/Shopify/extension-points.git"
|
26
|
+
package: "@shopify/extension-point-as-tax-filter"
|
34
27
|
payment_methods:
|
35
28
|
domain: 'checkout'
|
36
|
-
|
37
|
-
|
38
|
-
|
29
|
+
libraries:
|
30
|
+
assemblyscript:
|
31
|
+
repo: "https://github.com/Shopify/scripts-apis-examples"
|
32
|
+
package: "@shopify/scripts-checkout-apis"
|
33
|
+
typescript:
|
34
|
+
beta: true
|
35
|
+
repo: "https://github.com/Shopify/scripts-apis-examples"
|
39
36
|
shipping_methods:
|
40
37
|
domain: 'checkout'
|
41
|
-
|
42
|
-
|
43
|
-
|
38
|
+
libraries:
|
39
|
+
assemblyscript:
|
40
|
+
repo: "https://github.com/Shopify/scripts-apis-examples"
|
41
|
+
package: "@shopify/scripts-checkout-apis"
|
42
|
+
typescript:
|
43
|
+
beta: true
|
44
|
+
repo: "https://github.com/Shopify/scripts-apis-examples"
|