shopify-cli 1.5.0 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/PULL_REQUEST_TEMPLATE.md +1 -0
- data/.rubocop_todo.yml +15 -2
- data/.travis.yml +1 -0
- data/CHANGELOG.md +26 -0
- data/Gemfile +12 -12
- data/Gemfile.lock +14 -14
- data/README.md +39 -7
- data/Rakefile +32 -28
- data/bin/load_shopify.rb +6 -6
- data/bin/shopify +2 -2
- data/dev.yml +5 -2
- data/docs/_config.yml +1 -18
- data/docs/app/node/commands/index.md +2 -80
- data/docs/app/node/index.md +2 -33
- data/docs/app/rails/commands/index.md +2 -78
- data/docs/app/rails/index.md +2 -34
- data/docs/core/index.md +2 -84
- data/docs/getting-started/index.md +2 -25
- data/docs/getting-started/install/index.md +1 -118
- data/docs/getting-started/migrate/index.md +2 -94
- data/docs/getting-started/uninstall/index.md +2 -35
- data/docs/getting-started/upgrade/index.md +2 -39
- data/docs/help/start-app/index.md +2 -4
- data/docs/index.md +2 -24
- data/ext/shopify-cli/extconf.rb +7 -7
- data/install.sh +1 -1
- data/lib/docgen/markdown.rb +12 -12
- data/lib/graphql/extension_create.graphql +17 -2
- data/lib/graphql/fetch_specifications.graphql +14 -0
- data/lib/{project_types/extension/graphql → graphql}/get_app_by_api_key.graphql +0 -0
- data/lib/project_types/extension/cli.rb +56 -48
- data/lib/project_types/extension/commands/build.rb +3 -3
- data/lib/project_types/extension/commands/create.rb +17 -10
- data/lib/project_types/extension/commands/extension_command.rb +14 -7
- data/lib/project_types/extension/commands/push.rb +10 -10
- data/lib/project_types/extension/commands/register.rb +22 -32
- data/lib/project_types/extension/commands/serve.rb +1 -7
- data/lib/project_types/extension/commands/tunnel.rb +12 -12
- data/lib/project_types/extension/extension_project.rb +22 -7
- data/lib/project_types/extension/extension_project_keys.rb +5 -4
- data/lib/project_types/extension/features/argo.rb +123 -0
- data/lib/project_types/extension/features/argo_config.rb +5 -5
- data/lib/project_types/extension/features/argo_dependencies.rb +5 -5
- data/lib/project_types/extension/features/argo_renderer_package.rb +32 -0
- data/lib/project_types/extension/features/argo_serve.rb +69 -0
- data/lib/project_types/extension/features/argo_setup.rb +2 -2
- data/lib/project_types/extension/features/argo_setup_steps.rb +4 -4
- data/lib/project_types/extension/forms/create.rb +28 -34
- data/lib/project_types/extension/forms/questions/ask_app.rb +53 -0
- data/lib/project_types/extension/forms/questions/ask_name.rb +40 -0
- data/lib/project_types/extension/forms/questions/ask_type.rb +47 -0
- data/lib/project_types/extension/messages/message_loading.rb +3 -1
- data/lib/project_types/extension/messages/messages.rb +55 -52
- data/lib/project_types/extension/models/lazy_specification_handler.rb +12 -0
- data/lib/project_types/extension/models/registration.rb +1 -0
- data/lib/project_types/extension/models/specification.rb +39 -0
- data/lib/project_types/extension/models/specification_handlers/checkout_post_purchase.rb +19 -0
- data/lib/project_types/extension/models/specification_handlers/default.rb +75 -0
- data/lib/project_types/extension/models/specifications.rb +88 -0
- data/lib/project_types/extension/tasks/configure_features.rb +54 -0
- data/lib/project_types/extension/tasks/converters/app_converter.rb +6 -6
- data/lib/project_types/extension/tasks/converters/registration_converter.rb +8 -6
- data/lib/project_types/extension/tasks/converters/validation_error_converter.rb +4 -4
- data/lib/project_types/extension/tasks/converters/version_converter.rb +7 -7
- data/lib/project_types/extension/tasks/create_extension.rb +4 -4
- data/lib/project_types/extension/tasks/fetch_specifications.rb +18 -0
- data/lib/project_types/extension/tasks/get_app.rb +4 -4
- data/lib/project_types/extension/tasks/get_apps.rb +3 -3
- data/lib/project_types/extension/tasks/update_draft.rb +4 -4
- data/lib/project_types/extension/tasks/user_errors.rb +4 -4
- data/lib/project_types/node/cli.rb +19 -19
- data/lib/project_types/node/commands/connect.rb +3 -3
- data/lib/project_types/node/commands/create.rb +42 -38
- data/lib/project_types/node/commands/deploy.rb +4 -4
- data/lib/project_types/node/commands/deploy/heroku.rb +24 -24
- data/lib/project_types/node/commands/generate.rb +3 -34
- data/lib/project_types/node/commands/open.rb +2 -2
- data/lib/project_types/node/commands/populate.rb +6 -6
- data/lib/project_types/node/commands/populate/customer.rb +5 -5
- data/lib/project_types/node/commands/populate/draft_order.rb +5 -5
- data/lib/project_types/node/commands/populate/product.rb +5 -5
- data/lib/project_types/node/commands/serve.rb +9 -9
- data/lib/project_types/node/commands/tunnel.rb +7 -7
- data/lib/project_types/node/forms/create.rb +17 -8
- data/lib/project_types/node/messages/messages.rb +13 -47
- data/lib/project_types/rails/cli.rb +21 -21
- data/lib/project_types/rails/commands/connect.rb +3 -3
- data/lib/project_types/rails/commands/create.rb +56 -54
- data/lib/project_types/rails/commands/deploy.rb +4 -4
- data/lib/project_types/rails/commands/deploy/heroku.rb +30 -30
- data/lib/project_types/rails/commands/generate.rb +7 -7
- data/lib/project_types/rails/commands/generate/webhook.rb +6 -6
- data/lib/project_types/rails/commands/open.rb +2 -2
- data/lib/project_types/rails/commands/populate.rb +6 -6
- data/lib/project_types/rails/commands/populate/customer.rb +5 -5
- data/lib/project_types/rails/commands/populate/draft_order.rb +5 -5
- data/lib/project_types/rails/commands/populate/product.rb +5 -5
- data/lib/project_types/rails/commands/serve.rb +11 -11
- data/lib/project_types/rails/commands/tunnel.rb +7 -7
- data/lib/project_types/rails/forms/create.rb +35 -25
- data/lib/project_types/rails/gem.rb +24 -24
- data/lib/project_types/rails/messages/messages.rb +6 -5
- data/lib/project_types/rails/ruby.rb +2 -2
- data/lib/project_types/script/cli.rb +38 -39
- data/lib/project_types/script/commands/create.rb +12 -14
- data/lib/project_types/script/commands/push.rb +10 -17
- data/lib/project_types/script/config/extension_points.yml +29 -10
- data/lib/project_types/script/errors.rb +1 -2
- data/lib/project_types/script/forms/create.rb +18 -5
- data/lib/project_types/script/graphql/app_script_update_or_create.graphql +9 -1
- data/lib/project_types/script/graphql/script_service_proxy.graphql +1 -2
- data/lib/project_types/script/layers/application/build_script.rb +10 -7
- data/lib/project_types/script/layers/application/create_script.rb +37 -25
- data/lib/project_types/script/layers/application/extension_points.rb +25 -0
- data/lib/project_types/script/layers/application/project_dependencies.rb +4 -4
- data/lib/project_types/script/layers/application/push_script.rb +13 -18
- data/lib/project_types/script/layers/domain/config_ui.rb +16 -0
- data/lib/project_types/script/layers/domain/errors.rb +20 -0
- data/lib/project_types/script/layers/domain/extension_point.rb +82 -11
- data/lib/project_types/script/layers/domain/metadata.rb +48 -0
- data/lib/project_types/script/layers/domain/push_package.rb +25 -6
- data/lib/project_types/script/layers/domain/script_project.rb +34 -0
- data/lib/project_types/script/layers/infrastructure/assemblyscript_project_creator.rb +42 -13
- data/lib/project_types/script/layers/infrastructure/assemblyscript_task_runner.rb +24 -49
- data/lib/project_types/script/layers/infrastructure/errors.rb +32 -19
- data/lib/project_types/script/layers/infrastructure/extension_point_repository.rb +12 -6
- data/lib/project_types/script/layers/infrastructure/project_creator.rb +2 -1
- data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +22 -17
- data/lib/project_types/script/layers/infrastructure/rust_project_creator.rb +72 -0
- data/lib/project_types/script/layers/infrastructure/rust_task_runner.rb +59 -0
- data/lib/project_types/script/layers/infrastructure/script_project_repository.rb +145 -0
- data/lib/project_types/script/layers/infrastructure/script_service.rb +32 -75
- data/lib/project_types/script/layers/infrastructure/task_runner.rb +4 -3
- data/lib/project_types/script/messages/messages.rb +58 -59
- data/lib/project_types/script/ui/error_handler.rb +115 -72
- data/lib/project_types/script/ui/printing_spinner.rb +1 -1
- data/lib/project_types/script/ui/strict_spinner.rb +1 -1
- data/lib/project_types/theme/cli.rb +40 -0
- data/lib/project_types/theme/commands/connect.rb +54 -0
- data/lib/project_types/theme/commands/create.rb +48 -0
- data/lib/project_types/theme/commands/deploy.rb +38 -0
- data/lib/project_types/theme/commands/generate.rb +20 -0
- data/lib/project_types/theme/commands/generate/env.rb +79 -0
- data/lib/project_types/theme/commands/push.rb +55 -0
- data/lib/project_types/theme/commands/serve.rb +31 -0
- data/lib/project_types/theme/forms/connect.rb +34 -0
- data/lib/project_types/theme/forms/create.rb +22 -0
- data/lib/project_types/theme/messages/messages.rb +147 -0
- data/lib/project_types/theme/tasks/ensure_themekit_installed.rb +78 -0
- data/lib/project_types/theme/themekit.rb +113 -0
- data/lib/rubygems_plugin.rb +3 -3
- data/lib/shopify-cli/admin_api.rb +52 -12
- data/lib/shopify-cli/admin_api/populate_resource_command.rb +17 -17
- data/lib/shopify-cli/admin_api/schema.rb +3 -3
- data/lib/shopify-cli/api.rb +34 -31
- data/lib/shopify-cli/command.rb +1 -1
- data/lib/shopify-cli/commands.rb +9 -9
- data/lib/shopify-cli/commands/config.rb +28 -52
- data/lib/shopify-cli/commands/connect.rb +10 -10
- data/lib/shopify-cli/commands/create.rb +5 -5
- data/lib/shopify-cli/commands/help.rb +6 -6
- data/lib/shopify-cli/commands/logout.rb +3 -3
- data/lib/shopify-cli/commands/system.rb +33 -33
- data/lib/shopify-cli/commands/version.rb +2 -2
- data/lib/shopify-cli/context.rb +71 -22
- data/lib/shopify-cli/core.rb +4 -4
- data/lib/shopify-cli/core/entry_point.rb +5 -5
- data/lib/shopify-cli/core/executor.rb +1 -1
- data/lib/shopify-cli/core/help_resolver.rb +2 -2
- data/lib/shopify-cli/core/monorail.rb +16 -16
- data/lib/shopify-cli/db.rb +2 -2
- data/lib/shopify-cli/feature.rb +1 -3
- data/lib/shopify-cli/form.rb +1 -1
- data/lib/shopify-cli/git.rb +17 -17
- data/lib/shopify-cli/helpers.rb +1 -1
- data/lib/shopify-cli/helpers/haikunator.rb +1 -1
- data/lib/shopify-cli/heroku.rb +28 -28
- data/lib/shopify-cli/http_request.rb +21 -9
- data/lib/shopify-cli/js_deps.rb +12 -12
- data/lib/shopify-cli/js_system.rb +5 -5
- data/lib/shopify-cli/lazy_delegator.rb +55 -0
- data/lib/shopify-cli/messages/messages.rb +9 -16
- data/lib/shopify-cli/method_object.rb +104 -0
- data/lib/shopify-cli/oauth.rb +25 -25
- data/lib/shopify-cli/oauth/servlet.rb +9 -9
- data/lib/shopify-cli/options.rb +3 -3
- data/lib/shopify-cli/packager.rb +24 -24
- data/lib/shopify-cli/partners_api.rb +24 -18
- data/lib/shopify-cli/partners_api/organizations.rb +10 -10
- data/lib/shopify-cli/process_supervision.rb +7 -7
- data/lib/shopify-cli/project.rb +16 -16
- data/lib/shopify-cli/project_type.rb +4 -4
- data/lib/shopify-cli/resolve_constant.rb +25 -0
- data/lib/shopify-cli/resources.rb +1 -1
- data/lib/shopify-cli/resources/env_file.rb +9 -9
- data/lib/shopify-cli/result.rb +432 -0
- data/lib/shopify-cli/shopifolk.rb +6 -8
- data/lib/shopify-cli/sub_command.rb +1 -1
- data/lib/shopify-cli/task.rb +3 -3
- data/lib/shopify-cli/tasks.rb +7 -7
- data/lib/shopify-cli/tasks/create_api_client.rb +5 -5
- data/lib/shopify-cli/tasks/ensure_dev_store.rb +12 -12
- data/lib/shopify-cli/tasks/ensure_env.rb +15 -15
- data/lib/shopify-cli/tasks/ensure_loopback_url.rb +4 -4
- data/lib/shopify-cli/tasks/select_org_and_shop.rb +25 -24
- data/lib/shopify-cli/tasks/update_dashboard_urls.rb +10 -10
- data/lib/shopify-cli/transform_data_structure.rb +86 -0
- data/lib/shopify-cli/tunnel.rb +36 -30
- data/lib/shopify-cli/version.rb +1 -1
- data/lib/shopify_cli.rb +57 -52
- data/shopify-cli.gemspec +6 -6
- data/shopify.fish +1 -1
- data/shopify.sh +1 -1
- data/vendor/deps/cli-kit/REVISION +1 -1
- data/vendor/deps/cli-kit/lib/cli/kit/logger.rb +2 -2
- data/vendor/deps/cli-kit/lib/cli/kit/system.rb +3 -3
- data/vendor/deps/cli-ui/REVISION +1 -1
- data/vendor/deps/cli-ui/lib/cli/ui.rb +26 -22
- data/vendor/deps/cli-ui/lib/cli/ui/ansi.rb +4 -6
- data/vendor/deps/cli-ui/lib/cli/ui/frame.rb +3 -3
- data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_stack.rb +8 -9
- data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_style.rb +1 -1
- data/vendor/deps/cli-ui/lib/cli/ui/glyph.rb +1 -0
- data/vendor/deps/cli-ui/lib/cli/ui/printer.rb +15 -3
- data/vendor/deps/cli-ui/lib/cli/ui/prompt/interactive_options.rb +4 -11
- data/vendor/deps/cli-ui/lib/cli/ui/spinner.rb +3 -5
- data/vendor/deps/cli-ui/lib/cli/ui/terminal.rb +10 -10
- data/vendor/deps/cli-ui/lib/cli/ui/version.rb +1 -1
- data/vendor/deps/cli-ui/lib/cli/ui/wrap.rb +56 -0
- data/vendor/deps/webrick/.gitignore +9 -0
- data/vendor/deps/webrick/Gemfile +3 -0
- data/vendor/deps/webrick/LICENSE.txt +22 -0
- data/vendor/deps/webrick/README.md +61 -0
- data/vendor/deps/webrick/Rakefile +10 -0
- data/vendor/deps/webrick/lib/webrick.rb +232 -0
- data/vendor/deps/webrick/lib/webrick/accesslog.rb +157 -0
- data/vendor/deps/webrick/lib/webrick/cgi.rb +313 -0
- data/vendor/deps/webrick/lib/webrick/compat.rb +36 -0
- data/vendor/deps/webrick/lib/webrick/config.rb +158 -0
- data/vendor/deps/webrick/lib/webrick/cookie.rb +172 -0
- data/vendor/deps/webrick/lib/webrick/htmlutils.rb +30 -0
- data/vendor/deps/webrick/lib/webrick/httpauth.rb +96 -0
- data/vendor/deps/webrick/lib/webrick/httpauth/authenticator.rb +117 -0
- data/vendor/deps/webrick/lib/webrick/httpauth/basicauth.rb +116 -0
- data/vendor/deps/webrick/lib/webrick/httpauth/digestauth.rb +395 -0
- data/vendor/deps/webrick/lib/webrick/httpauth/htdigest.rb +132 -0
- data/vendor/deps/webrick/lib/webrick/httpauth/htgroup.rb +97 -0
- data/vendor/deps/webrick/lib/webrick/httpauth/htpasswd.rb +158 -0
- data/vendor/deps/webrick/lib/webrick/httpauth/userdb.rb +53 -0
- data/vendor/deps/webrick/lib/webrick/httpproxy.rb +354 -0
- data/vendor/deps/webrick/lib/webrick/httprequest.rb +636 -0
- data/vendor/deps/webrick/lib/webrick/httpresponse.rb +564 -0
- data/vendor/deps/webrick/lib/webrick/https.rb +152 -0
- data/vendor/deps/webrick/lib/webrick/httpserver.rb +294 -0
- data/vendor/deps/webrick/lib/webrick/httpservlet.rb +23 -0
- data/vendor/deps/webrick/lib/webrick/httpservlet/abstract.rb +152 -0
- data/vendor/deps/webrick/lib/webrick/httpservlet/cgi_runner.rb +47 -0
- data/vendor/deps/webrick/lib/webrick/httpservlet/cgihandler.rb +126 -0
- data/vendor/deps/webrick/lib/webrick/httpservlet/erbhandler.rb +88 -0
- data/vendor/deps/webrick/lib/webrick/httpservlet/filehandler.rb +552 -0
- data/vendor/deps/webrick/lib/webrick/httpservlet/prochandler.rb +47 -0
- data/vendor/deps/webrick/lib/webrick/httpstatus.rb +194 -0
- data/vendor/deps/webrick/lib/webrick/httputils.rb +512 -0
- data/vendor/deps/webrick/lib/webrick/httpversion.rb +76 -0
- data/vendor/deps/webrick/lib/webrick/log.rb +156 -0
- data/vendor/deps/webrick/lib/webrick/server.rb +381 -0
- data/vendor/deps/webrick/lib/webrick/ssl.rb +215 -0
- data/vendor/deps/webrick/lib/webrick/utils.rb +265 -0
- data/vendor/deps/webrick/lib/webrick/version.rb +18 -0
- data/vendor/deps/webrick/webrick.gemspec +74 -0
- data/vendor/gen/template/bin/update-deps +9 -9
- metadata +83 -35
- data/docs/Gemfile +0 -5
- data/docs/Gemfile.lock +0 -258
- data/docs/_data/nav.yml +0 -35
- data/docs/_includes/footer.html +0 -15
- data/docs/_includes/head.html +0 -19
- data/docs/_includes/sidebar_nav.html +0 -22
- data/docs/_includes/toc.html +0 -112
- data/docs/_layouts/default.html +0 -79
- data/docs/css/docs.css +0 -157
- data/docs/images/header.png +0 -0
- data/docs/installing-ruby.md +0 -28
- data/lib/project_types/extension/features/argo/admin.rb +0 -20
- data/lib/project_types/extension/features/argo/base.rb +0 -129
- data/lib/project_types/extension/features/argo/checkout.rb +0 -20
- data/lib/project_types/extension/forms/register.rb +0 -47
- data/lib/project_types/extension/models/type.rb +0 -81
- data/lib/project_types/extension/models/types/checkout_post_purchase.rb +0 -23
- data/lib/project_types/extension/models/types/product_subscription.rb +0 -24
- data/lib/project_types/node/commands/generate/billing.rb +0 -39
- data/lib/project_types/node/commands/generate/page.rb +0 -59
- data/lib/project_types/node/commands/generate/webhook.rb +0 -37
- data/lib/project_types/script/commands/disable.rb +0 -25
- data/lib/project_types/script/commands/enable.rb +0 -78
- data/lib/project_types/script/graphql/shop_script_delete.graphql +0 -14
- data/lib/project_types/script/graphql/shop_script_update_or_create.graphql +0 -28
- data/lib/project_types/script/layers/application/disable_script.rb +0 -21
- data/lib/project_types/script/layers/application/enable_script.rb +0 -23
- data/lib/project_types/script/layers/domain/script.rb +0 -18
- data/lib/project_types/script/layers/infrastructure/script_repository.rb +0 -47
- data/lib/project_types/script/script_project.rb +0 -54
- data/lib/project_types/script/templates/ts/as-pect.config.js +0 -27
- data/lib/project_types/script/templates/ts/as-pect.d.ts +0 -1
@@ -1,37 +0,0 @@
|
|
1
|
-
require 'shopify_cli'
|
2
|
-
require 'json'
|
3
|
-
module Node
|
4
|
-
module Commands
|
5
|
-
class Generate
|
6
|
-
class Webhook < ShopifyCli::SubCommand
|
7
|
-
def call(args, _name)
|
8
|
-
selected_type = args.first
|
9
|
-
schema = ShopifyCli::AdminAPI::Schema.get(@ctx)
|
10
|
-
webhooks = schema.get_names_from_type('WebhookSubscriptionTopic')
|
11
|
-
unless selected_type && webhooks.include?(selected_type)
|
12
|
-
selected_type = CLI::UI::Prompt.ask(@ctx.message('node.generate.webhook.type_select')) do |handler|
|
13
|
-
webhooks.each do |type|
|
14
|
-
handler.option(type) { type }
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
generate_path = File.join(ShopifyCli::Project.current.directory, "node_modules/.bin/generate-node-app")
|
20
|
-
generate_path = "\"#{generate_path}\""
|
21
|
-
|
22
|
-
spin_group = CLI::UI::SpinGroup.new
|
23
|
-
spin_group.add(@ctx.message('node.generate.webhook.generating', selected_type)) do |spinner|
|
24
|
-
Node::Commands::Generate.run_generate("#{generate_path} webhook #{selected_type}",
|
25
|
-
selected_type, @ctx)
|
26
|
-
spinner.update_title(@ctx.message('node.generate.webhook.generated', selected_type))
|
27
|
-
end
|
28
|
-
spin_group.wait
|
29
|
-
end
|
30
|
-
|
31
|
-
def self.help
|
32
|
-
ShopifyCli::Context.message('node.generate.webhook.help', ShopifyCli::TOOL_NAME)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Script
|
4
|
-
module Commands
|
5
|
-
class Disable < ShopifyCli::Command
|
6
|
-
def call(_args, _name)
|
7
|
-
ShopifyCli::Tasks::EnsureEnv.call(@ctx, required: [:api_key, :secret, :shop])
|
8
|
-
project = ScriptProject.current
|
9
|
-
Layers::Application::DisableScript.call(
|
10
|
-
ctx: @ctx,
|
11
|
-
api_key: project.env[:api_key],
|
12
|
-
shop_domain: project.env[:shop],
|
13
|
-
extension_point_type: project.extension_point_type
|
14
|
-
)
|
15
|
-
@ctx.puts(@ctx.message('script.disable.script_disabled'))
|
16
|
-
rescue StandardError => e
|
17
|
-
UI::ErrorHandler.pretty_print_and_raise(e, failed_op: @ctx.message('script.disable.error.operation_failed'))
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.help
|
21
|
-
ShopifyCli::Context.message('script.disable.help', ShopifyCli::TOOL_NAME)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,78 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Script
|
4
|
-
module Commands
|
5
|
-
class Enable < ShopifyCli::Command
|
6
|
-
options do |parser, flags|
|
7
|
-
parser.on('--config_props=KEYVALUEPAIRS', Array) { |t| flags[:config_props] = t }
|
8
|
-
parser.on('--config_file=CONFIGFILEPATH') { |t| flags[:config_file] = t }
|
9
|
-
end
|
10
|
-
|
11
|
-
def call(_args, _name)
|
12
|
-
ShopifyCli::Tasks::EnsureEnv.call(@ctx, required: [:api_key, :secret, :shop])
|
13
|
-
project = ScriptProject.current
|
14
|
-
api_key = project.env[:api_key]
|
15
|
-
shop_domain = project.env[:shop]
|
16
|
-
|
17
|
-
Layers::Application::EnableScript.call(
|
18
|
-
ctx: @ctx,
|
19
|
-
api_key: api_key,
|
20
|
-
shop_domain: shop_domain,
|
21
|
-
configuration: acquire_configuration(**slice(options.flags, :config_file, :config_props)),
|
22
|
-
extension_point_type: project.extension_point_type,
|
23
|
-
title: project.script_name
|
24
|
-
)
|
25
|
-
@ctx.puts(@ctx.message(
|
26
|
-
'script.enable.script_enabled',
|
27
|
-
api_key: api_key,
|
28
|
-
shop_domain: shop_domain,
|
29
|
-
type: project.extension_point_type.capitalize,
|
30
|
-
title: project.script_name
|
31
|
-
))
|
32
|
-
@ctx.puts(@ctx.message('script.enable.info'))
|
33
|
-
rescue Errors::InvalidConfigYAMLError => e
|
34
|
-
UI::ErrorHandler.pretty_print_and_raise(e)
|
35
|
-
rescue StandardError => e
|
36
|
-
UI::ErrorHandler.pretty_print_and_raise(e, failed_op: @ctx.message('script.enable.error.operation_failed'))
|
37
|
-
end
|
38
|
-
|
39
|
-
def self.help
|
40
|
-
ShopifyCli::Context.message('script.enable.help', ShopifyCli::TOOL_NAME)
|
41
|
-
end
|
42
|
-
|
43
|
-
private
|
44
|
-
|
45
|
-
def acquire_configuration(config_file: nil, config_props: nil)
|
46
|
-
properties = {}
|
47
|
-
properties = YAML.load(File.read(config_file)) unless config_file.nil?
|
48
|
-
properties = properties.merge(parse_config_props(config_props)) unless config_props.nil?
|
49
|
-
|
50
|
-
configuration = { entries: [] }
|
51
|
-
properties.each do |key, value|
|
52
|
-
configuration[:entries].push({
|
53
|
-
key: key,
|
54
|
-
value: value,
|
55
|
-
})
|
56
|
-
end
|
57
|
-
configuration
|
58
|
-
rescue Errno::ENOENT, Psych::SyntaxError
|
59
|
-
raise Errors::InvalidConfigYAMLError, options.flags[:config_file]
|
60
|
-
end
|
61
|
-
|
62
|
-
def parse_config_props(config_props)
|
63
|
-
Hash[
|
64
|
-
config_props.map do |s|
|
65
|
-
args = s.split(':').map(&:strip)
|
66
|
-
raise Errors::InvalidConfigProps unless args.size == 2
|
67
|
-
args
|
68
|
-
end
|
69
|
-
]
|
70
|
-
end
|
71
|
-
|
72
|
-
# No slice pre Ruby 2.5 so roll our own
|
73
|
-
def slice(hash, *keys)
|
74
|
-
Hash[hash.to_a - hash.select { |key, _value| !keys.include?(key) }.to_a]
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
mutation ShopScriptUpdateOrCreate(
|
2
|
-
$extensionPointName: ExtensionPointName!,
|
3
|
-
$configuration: ConfigurationInput,
|
4
|
-
$title: String
|
5
|
-
) {
|
6
|
-
shopScriptUpdateOrCreate(
|
7
|
-
extensionPointName: $extensionPointName,
|
8
|
-
configuration: $configuration,
|
9
|
-
title: $title
|
10
|
-
) {
|
11
|
-
userErrors {
|
12
|
-
field
|
13
|
-
message
|
14
|
-
tag
|
15
|
-
}
|
16
|
-
shopScript {
|
17
|
-
extensionPointName
|
18
|
-
shopId
|
19
|
-
title
|
20
|
-
configuration {
|
21
|
-
entries {
|
22
|
-
key,
|
23
|
-
value
|
24
|
-
}
|
25
|
-
}
|
26
|
-
}
|
27
|
-
}
|
28
|
-
}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Script
|
4
|
-
module Layers
|
5
|
-
module Application
|
6
|
-
class DisableScript
|
7
|
-
def self.call(ctx:, api_key:, shop_domain:, extension_point_type:)
|
8
|
-
UI::PrintingSpinner.spin(ctx, ctx.message('script.application.disabling')) do |p_ctx, spinner|
|
9
|
-
script_service = Infrastructure::ScriptService.new(ctx: p_ctx)
|
10
|
-
script_service.disable(
|
11
|
-
api_key: api_key,
|
12
|
-
shop_domain: shop_domain,
|
13
|
-
extension_point_type: extension_point_type,
|
14
|
-
)
|
15
|
-
spinner.update_title(p_ctx.message('script.application.disabled'))
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Script
|
4
|
-
module Layers
|
5
|
-
module Application
|
6
|
-
class EnableScript
|
7
|
-
def self.call(ctx:, api_key:, shop_domain:, configuration:, extension_point_type:, title:)
|
8
|
-
UI::PrintingSpinner.spin(ctx, ctx.message('script.application.enabling')) do |p_ctx, spinner|
|
9
|
-
script_service = Infrastructure::ScriptService.new(ctx: p_ctx)
|
10
|
-
script_service.enable(
|
11
|
-
api_key: api_key,
|
12
|
-
shop_domain: shop_domain,
|
13
|
-
configuration: configuration,
|
14
|
-
extension_point_type: extension_point_type,
|
15
|
-
title: title
|
16
|
-
)
|
17
|
-
spinner.update_title(p_ctx.message('script.application.enabled'))
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Script
|
4
|
-
module Layers
|
5
|
-
module Domain
|
6
|
-
class Script
|
7
|
-
attr_reader :id, :name, :extension_point_type, :language
|
8
|
-
|
9
|
-
def initialize(id, name, extension_point_type, language)
|
10
|
-
@id = id
|
11
|
-
@name = name
|
12
|
-
@extension_point_type = extension_point_type
|
13
|
-
@language = language
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Script
|
4
|
-
module Layers
|
5
|
-
module Infrastructure
|
6
|
-
class ScriptRepository
|
7
|
-
include SmartProperties
|
8
|
-
property! :ctx, accepts: ShopifyCli::Context
|
9
|
-
|
10
|
-
def get_script(language, extension_point_type, script_name)
|
11
|
-
source_file_path = src_code_file(language)
|
12
|
-
unless ctx.file_exist?(source_file_path)
|
13
|
-
raise Domain::Errors::ScriptNotFoundError.new(extension_point_type, source_file_path)
|
14
|
-
end
|
15
|
-
|
16
|
-
Domain::Script.new(script_id(language), script_name, extension_point_type, language)
|
17
|
-
end
|
18
|
-
|
19
|
-
def relative_path_to_src
|
20
|
-
"src"
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
def project_base
|
26
|
-
ScriptProject.current.directory
|
27
|
-
end
|
28
|
-
|
29
|
-
def src_base
|
30
|
-
"#{project_base}/#{relative_path_to_src}"
|
31
|
-
end
|
32
|
-
|
33
|
-
def script_id(language)
|
34
|
-
"#{relative_path_to_src}/#{file_name(language)}"
|
35
|
-
end
|
36
|
-
|
37
|
-
def src_code_file(language)
|
38
|
-
"#{src_base}/#{file_name(language)}"
|
39
|
-
end
|
40
|
-
|
41
|
-
def file_name(language)
|
42
|
-
"script.#{language}"
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Script
|
4
|
-
class ScriptProject < ShopifyCli::Project
|
5
|
-
SUPPORTED_LANGUAGES = %w(ts)
|
6
|
-
SOURCE_DIR = "src"
|
7
|
-
|
8
|
-
attr_reader :extension_point_type, :script_name, :language
|
9
|
-
|
10
|
-
def initialize(*args)
|
11
|
-
super
|
12
|
-
@extension_point_type = lookup_config('extension_point_type')
|
13
|
-
@script_name = lookup_config('script_name')
|
14
|
-
@language = 'ts'
|
15
|
-
ShopifyCli::Core::Monorail.metadata = {
|
16
|
-
"script_name" => @script_name,
|
17
|
-
"extension_point_type" => @extension_point_type,
|
18
|
-
"language" => @language,
|
19
|
-
}
|
20
|
-
end
|
21
|
-
|
22
|
-
def file_name
|
23
|
-
"script.#{language}"
|
24
|
-
end
|
25
|
-
|
26
|
-
def source_file
|
27
|
-
"#{SOURCE_DIR}/#{file_name}"
|
28
|
-
end
|
29
|
-
|
30
|
-
def source_path
|
31
|
-
"#{script_name}/#{source_file}"
|
32
|
-
end
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
def lookup_config(key)
|
37
|
-
raise Errors::InvalidContextError, key unless config.key?(key)
|
38
|
-
config[key]
|
39
|
-
end
|
40
|
-
|
41
|
-
class << self
|
42
|
-
def create(ctx, dir)
|
43
|
-
raise Errors::ScriptProjectAlreadyExistsError, dir if ctx.dir_exist?(dir)
|
44
|
-
ctx.mkdir_p(dir)
|
45
|
-
ctx.chdir(dir)
|
46
|
-
end
|
47
|
-
|
48
|
-
def cleanup(ctx:, script_name:, root_dir:)
|
49
|
-
ctx.chdir(root_dir)
|
50
|
-
ctx.rm_r("#{root_dir}/#{script_name}") if ctx.dir_exist?("#{root_dir}/#{script_name}")
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module.exports = {
|
2
|
-
include: ["**/*.spec.ts"],
|
3
|
-
add: ["**/*.include.ts"],
|
4
|
-
flags: {
|
5
|
-
"--runtime": ["stub"],
|
6
|
-
"--lib": ["node_modules","src"]
|
7
|
-
},
|
8
|
-
disclude: [/node_modules/],
|
9
|
-
imports: {},
|
10
|
-
performance: {
|
11
|
-
enabled: false,
|
12
|
-
maxSamples: 10000,
|
13
|
-
maxTestRunTime: 5000,
|
14
|
-
reportMedian: true,
|
15
|
-
reportAverage: true,
|
16
|
-
reportStandardDeviation: false,
|
17
|
-
reportMax: false,
|
18
|
-
reportMin: false,
|
19
|
-
},
|
20
|
-
wasi: {
|
21
|
-
args: [],
|
22
|
-
env: process.env,
|
23
|
-
preopens: {},
|
24
|
-
returnOnExit: false,
|
25
|
-
},
|
26
|
-
outputBinary: false,
|
27
|
-
};
|
@@ -1 +0,0 @@
|
|
1
|
-
/// <reference types="@as-pect/assembly/types/as-pect" />
|