shopify-cli 1.10.0 → 1.14.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/.github/PULL_REQUEST_TEMPLATE.md +1 -0
- data/.github/workflows/release.yml +2 -4
- data/CHANGELOG.md +31 -1
- data/Gemfile.lock +1 -1
- data/lib/project_types/extension/cli.rb +6 -2
- data/lib/project_types/extension/commands/serve.rb +69 -1
- data/lib/project_types/extension/commands/tunnel.rb +3 -1
- data/lib/project_types/extension/extension_project.rb +1 -0
- data/lib/project_types/extension/features/argo.rb +15 -24
- data/lib/project_types/extension/features/argo_runtime.rb +91 -0
- data/lib/project_types/extension/features/argo_serve.rb +35 -27
- data/lib/project_types/extension/features/argo_serve_options.rb +42 -0
- data/lib/project_types/extension/messages/messages.rb +3 -0
- data/lib/project_types/extension/models/npm_package.rb +14 -0
- data/lib/project_types/extension/models/specification.rb +1 -0
- data/lib/project_types/extension/models/specification_handlers/checkout_argo_extension.rb +18 -0
- data/lib/project_types/extension/models/specification_handlers/default.rb +33 -3
- data/lib/project_types/extension/tasks/choose_next_available_port.rb +36 -0
- data/lib/project_types/extension/tasks/configure_features.rb +2 -0
- data/lib/project_types/extension/tasks/find_npm_packages.rb +106 -0
- data/lib/project_types/script/cli.rb +14 -13
- data/lib/project_types/script/commands/push.rb +8 -3
- data/lib/project_types/script/config/extension_points.yml +0 -3
- data/lib/project_types/script/graphql/app_script_update_or_create.graphql +9 -3
- data/lib/project_types/script/layers/application/create_script.rb +6 -5
- data/lib/project_types/script/layers/application/push_script.rb +2 -1
- data/lib/project_types/script/layers/domain/errors.rb +6 -13
- data/lib/project_types/script/layers/domain/push_package.rb +4 -8
- data/lib/project_types/script/layers/domain/script_json.rb +32 -0
- data/lib/project_types/script/layers/domain/script_project.rb +1 -1
- data/lib/project_types/script/layers/infrastructure/command_runner.rb +19 -0
- data/lib/project_types/script/layers/infrastructure/errors.rb +25 -20
- data/lib/project_types/script/layers/infrastructure/languages/assemblyscript_project_creator.rb +105 -0
- data/lib/project_types/script/layers/infrastructure/languages/assemblyscript_task_runner.rb +103 -0
- data/lib/project_types/script/layers/infrastructure/languages/project_creator.rb +26 -0
- data/lib/project_types/script/layers/infrastructure/languages/rust_project_creator.rb +73 -0
- data/lib/project_types/script/layers/infrastructure/languages/rust_task_runner.rb +60 -0
- data/lib/project_types/script/layers/infrastructure/languages/task_runner.rb +21 -0
- data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +6 -8
- data/lib/project_types/script/layers/infrastructure/script_project_repository.rb +44 -59
- data/lib/project_types/script/layers/infrastructure/script_service.rb +21 -15
- data/lib/project_types/script/messages/messages.rb +28 -22
- data/lib/project_types/script/tasks/ensure_env.rb +32 -3
- data/lib/project_types/script/ui/error_handler.rb +37 -36
- data/lib/shopify-cli/admin_api.rb +7 -4
- data/lib/shopify-cli/context.rb +13 -0
- data/lib/shopify-cli/messages/messages.rb +48 -43
- data/lib/shopify-cli/method_object.rb +4 -4
- data/lib/shopify-cli/oauth.rb +7 -1
- data/lib/shopify-cli/partners_api.rb +7 -4
- data/lib/shopify-cli/partners_api/organizations.rb +3 -3
- data/lib/shopify-cli/resources/env_file.rb +1 -1
- data/lib/shopify-cli/shopifolk.rb +1 -1
- data/lib/shopify-cli/tasks/select_org_and_shop.rb +6 -4
- data/lib/shopify-cli/tunnel.rb +22 -1
- data/lib/shopify-cli/version.rb +1 -1
- metadata +17 -11
- data/lib/project_types/extension/features/argo_renderer_package.rb +0 -47
- data/lib/project_types/script/layers/domain/config_ui.rb +0 -16
- data/lib/project_types/script/layers/infrastructure/assemblyscript_project_creator.rb +0 -100
- data/lib/project_types/script/layers/infrastructure/assemblyscript_task_runner.rb +0 -95
- data/lib/project_types/script/layers/infrastructure/project_creator.rb +0 -24
- data/lib/project_types/script/layers/infrastructure/rust_project_creator.rb +0 -72
- data/lib/project_types/script/layers/infrastructure/rust_task_runner.rb +0 -59
- data/lib/project_types/script/layers/infrastructure/task_runner.rb +0 -19
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Script
|
4
|
-
module Layers
|
5
|
-
module Infrastructure
|
6
|
-
class ProjectCreator
|
7
|
-
PROJECT_CREATORS = {
|
8
|
-
"assemblyscript" => Infrastructure::AssemblyScriptProjectCreator,
|
9
|
-
"rust" => Infrastructure::RustProjectCreator,
|
10
|
-
}
|
11
|
-
|
12
|
-
def self.for(ctx, language, extension_point, script_name, path_to_project)
|
13
|
-
raise Errors::ProjectCreatorNotFoundError unless PROJECT_CREATORS[language]
|
14
|
-
PROJECT_CREATORS[language].new(
|
15
|
-
ctx: ctx,
|
16
|
-
extension_point: extension_point,
|
17
|
-
script_name: script_name,
|
18
|
-
path_to_project: path_to_project
|
19
|
-
)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,72 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Script
|
4
|
-
module Layers
|
5
|
-
module Infrastructure
|
6
|
-
class RustProjectCreator
|
7
|
-
include SmartProperties
|
8
|
-
property! :ctx, accepts: ShopifyCli::Context
|
9
|
-
property! :extension_point, accepts: Domain::ExtensionPoint
|
10
|
-
property! :script_name, accepts: String
|
11
|
-
property! :path_to_project, accepts: String
|
12
|
-
|
13
|
-
ORIGIN_BRANCH = "main"
|
14
|
-
SAMPLE_PATH = "default"
|
15
|
-
|
16
|
-
def setup_dependencies
|
17
|
-
git_init
|
18
|
-
setup_remote
|
19
|
-
setup_sparse_checkout
|
20
|
-
pull
|
21
|
-
clean
|
22
|
-
set_script_name
|
23
|
-
end
|
24
|
-
|
25
|
-
def bootstrap
|
26
|
-
end
|
27
|
-
|
28
|
-
private
|
29
|
-
|
30
|
-
def git_init
|
31
|
-
out, status = ctx.capture2e("git init")
|
32
|
-
raise Domain::Errors::ServiceFailureError, out unless status.success?
|
33
|
-
end
|
34
|
-
|
35
|
-
def setup_remote
|
36
|
-
repo = extension_point.sdks.rust.package
|
37
|
-
out, status = ctx.capture2e("git remote add -f origin #{repo}")
|
38
|
-
raise Domain::Errors::ServiceFailureError, out unless status.success?
|
39
|
-
end
|
40
|
-
|
41
|
-
def setup_sparse_checkout
|
42
|
-
type = extension_point.type
|
43
|
-
out, status = ctx.capture2e("git config core.sparsecheckout true")
|
44
|
-
raise Domain::Errors::ServiceFailureError, out unless status.success?
|
45
|
-
out, status = ctx.capture2e("echo #{type}/#{SAMPLE_PATH} >> .git/info/sparse-checkout")
|
46
|
-
raise Domain::Errors::ServiceFailureError, out unless status.success?
|
47
|
-
end
|
48
|
-
|
49
|
-
def pull
|
50
|
-
out, status = ctx.capture2e("git pull origin #{ORIGIN_BRANCH}")
|
51
|
-
raise Domain::Errors::ServiceFailureError, out unless status.success?
|
52
|
-
end
|
53
|
-
|
54
|
-
def clean
|
55
|
-
type = extension_point.type
|
56
|
-
ctx.rm_rf(".git")
|
57
|
-
source = File.join(path_to_project, File.join(type, SAMPLE_PATH))
|
58
|
-
FileUtils.copy_entry(source, path_to_project)
|
59
|
-
ctx.rm_rf(type)
|
60
|
-
end
|
61
|
-
|
62
|
-
def set_script_name
|
63
|
-
config_file = "Cargo.toml"
|
64
|
-
upstream_name = "#{extension_point.type.gsub("_", "-")}-default"
|
65
|
-
contents = File.read(config_file)
|
66
|
-
new_contents = contents.sub(upstream_name, script_name)
|
67
|
-
File.write(config_file, new_contents)
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module Script
|
3
|
-
module Layers
|
4
|
-
module Infrastructure
|
5
|
-
class RustTaskRunner
|
6
|
-
attr_reader :ctx, :script_name
|
7
|
-
|
8
|
-
BUILD_TARGET = "wasm32-unknown-unknown"
|
9
|
-
METADATA_FILE = "build/metadata.json"
|
10
|
-
|
11
|
-
def initialize(ctx, script_name)
|
12
|
-
@ctx = ctx
|
13
|
-
@script_name = script_name
|
14
|
-
end
|
15
|
-
|
16
|
-
def dependencies_installed?
|
17
|
-
true
|
18
|
-
end
|
19
|
-
|
20
|
-
def install_dependencies
|
21
|
-
end
|
22
|
-
|
23
|
-
def build
|
24
|
-
compile
|
25
|
-
bytecode
|
26
|
-
end
|
27
|
-
|
28
|
-
def compiled_type
|
29
|
-
"wasm"
|
30
|
-
end
|
31
|
-
|
32
|
-
def metadata
|
33
|
-
unless @ctx.file_exist?(METADATA_FILE)
|
34
|
-
msg = @ctx.message("script.error.metadata_not_found_cause", METADATA_FILE)
|
35
|
-
raise Domain::Errors::MetadataNotFoundError, msg
|
36
|
-
end
|
37
|
-
|
38
|
-
raw_contents = File.read(METADATA_FILE)
|
39
|
-
Domain::Metadata.create_from_json(@ctx, raw_contents)
|
40
|
-
end
|
41
|
-
|
42
|
-
private
|
43
|
-
|
44
|
-
def compile
|
45
|
-
out, status = ctx.capture2e("cargo build --target=#{BUILD_TARGET} --release")
|
46
|
-
raise Domain::Errors::ServiceFailureError, out unless status.success?
|
47
|
-
end
|
48
|
-
|
49
|
-
def bytecode
|
50
|
-
binary_name = "#{script_name}.wasm"
|
51
|
-
binary_path = "target/#{BUILD_TARGET}/release/#{binary_name}"
|
52
|
-
raise Errors::WebAssemblyBinaryNotFoundError unless ctx.file_exist?(binary_path)
|
53
|
-
|
54
|
-
ctx.binread(binary_path)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Script
|
4
|
-
module Layers
|
5
|
-
module Infrastructure
|
6
|
-
class TaskRunner
|
7
|
-
TASK_RUNNERS = {
|
8
|
-
"assemblyscript" => Infrastructure::AssemblyScriptTaskRunner,
|
9
|
-
"rust" => Infrastructure::RustTaskRunner,
|
10
|
-
}
|
11
|
-
|
12
|
-
def self.for(ctx, language, script_name)
|
13
|
-
raise Errors::TaskRunnerNotFoundError unless TASK_RUNNERS[language]
|
14
|
-
TASK_RUNNERS[language].new(ctx, script_name)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|