shopify-cli 1.2.0 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/CODEOWNERS +2 -2
- data/.github/CONTRIBUTING.md +9 -1
- data/.github/PULL_REQUEST_TEMPLATE.md +9 -1
- data/.github/workflows/release.yml +61 -0
- data/.github/workflows/triage.yml +22 -0
- data/.gitignore +0 -1
- data/.rubocop.yml +61 -8
- data/.rubocop_todo.yml +11 -0
- data/CHANGELOG.md +25 -0
- data/Gemfile +3 -2
- data/Gemfile.lock +39 -37
- data/RELEASING.md +19 -29
- data/docs/core/index.md +16 -0
- data/lib/project_types/extension/cli.rb +7 -2
- data/lib/project_types/extension/commands/register.rb +1 -1
- data/lib/project_types/extension/features/argo/admin.rb +20 -0
- data/lib/project_types/extension/features/argo/base.rb +129 -0
- data/lib/project_types/extension/features/argo/checkout.rb +20 -0
- data/lib/project_types/extension/messages/messages.rb +8 -2
- data/lib/project_types/extension/models/type.rb +4 -0
- data/lib/project_types/extension/models/types/checkout_post_purchase.rb +2 -2
- data/lib/project_types/extension/models/types/product_subscription.rb +24 -0
- data/lib/project_types/node/cli.rb +4 -1
- data/lib/project_types/node/commands/connect.rb +15 -0
- data/lib/project_types/node/commands/create.rb +8 -4
- data/lib/project_types/node/messages/messages.rb +7 -6
- data/lib/project_types/rails/cli.rb +4 -1
- data/lib/project_types/rails/commands/connect.rb +15 -0
- data/lib/project_types/rails/commands/create.rb +8 -4
- data/lib/project_types/rails/messages/messages.rb +7 -4
- data/lib/project_types/script/cli.rb +2 -1
- data/lib/project_types/script/commands/enable.rb +12 -4
- data/lib/project_types/script/config/extension_points.yml +13 -12
- data/lib/project_types/script/errors.rb +4 -0
- data/lib/project_types/script/layers/application/build_script.rb +12 -16
- data/lib/project_types/script/layers/domain/errors.rb +3 -0
- data/lib/project_types/script/layers/domain/extension_point.rb +0 -1
- data/lib/project_types/script/layers/infrastructure/assemblyscript_project_creator.rb +15 -50
- data/lib/project_types/script/layers/infrastructure/assemblyscript_task_runner.rb +28 -7
- data/lib/project_types/script/layers/infrastructure/errors.rb +16 -0
- data/lib/project_types/script/layers/infrastructure/script_repository.rb +0 -12
- data/lib/project_types/script/layers/infrastructure/script_service.rb +2 -0
- data/lib/project_types/script/messages/messages.rb +23 -5
- data/lib/project_types/script/ui/error_handler.rb +31 -6
- data/lib/shopify-cli/api.rb +8 -10
- data/lib/shopify-cli/commands/config.rb +57 -1
- data/lib/shopify-cli/commands/connect.rb +32 -15
- data/lib/shopify-cli/commands/system.rb +9 -0
- data/lib/shopify-cli/core/entry_point.rb +1 -1
- data/lib/shopify-cli/core/monorail.rb +6 -4
- data/lib/shopify-cli/http_request.rb +15 -0
- data/lib/shopify-cli/js_deps.rb +1 -1
- data/lib/shopify-cli/js_system.rb +22 -5
- data/lib/shopify-cli/messages/messages.rb +44 -9
- data/lib/shopify-cli/partners_api.rb +17 -1
- data/lib/shopify-cli/process_supervision.rb +1 -1
- data/lib/shopify-cli/project.rb +12 -8
- data/lib/shopify-cli/project_type.rb +17 -1
- data/lib/shopify-cli/shopifolk.rb +86 -0
- data/lib/shopify-cli/task.rb +8 -0
- data/lib/shopify-cli/tasks/create_api_client.rb +13 -2
- data/lib/shopify-cli/tasks/ensure_env.rb +3 -0
- data/lib/shopify-cli/tasks/select_org_and_shop.rb +4 -0
- data/lib/shopify-cli/tunnel.rb +1 -1
- data/lib/shopify-cli/version.rb +1 -1
- data/lib/shopify_cli.rb +1 -0
- metadata +13 -5
- data/lib/project_types/extension/features/argo.rb +0 -48
- data/lib/project_types/extension/models/types/subscription_management.rb +0 -20
- data/lib/project_types/script/layers/infrastructure/assemblyscript_tsconfig.rb +0 -38
@@ -3,6 +3,16 @@
|
|
3
3
|
module ShopifyCli
|
4
4
|
module Messages
|
5
5
|
MESSAGES = {
|
6
|
+
apps: {
|
7
|
+
create: {
|
8
|
+
info: {
|
9
|
+
created: "{{v}} {{green:%s}} was created in the organization's Partner Dashboard {{underline:%s}}",
|
10
|
+
serve: "{{*}} Change directories to your new project folder {{green:%s}} and run {{command:%s serve}} " \
|
11
|
+
"to start a local server",
|
12
|
+
install: "{{*}} Then, visit {{underline:%s/test}} to install {{green:%s}} on your Dev Store",
|
13
|
+
},
|
14
|
+
},
|
15
|
+
},
|
6
16
|
core: {
|
7
17
|
connect: {
|
8
18
|
help: <<~HELP,
|
@@ -10,11 +20,7 @@ module ShopifyCli
|
|
10
20
|
Usage: {{command:%s connect}}
|
11
21
|
HELP
|
12
22
|
|
13
|
-
production_warning: <<~MESSAGE,
|
14
|
-
{{yellow:! Warning: if you have connected to an {{bold:app in production}}, running {{command:serve}} may update the app URL and cause an outage.
|
15
|
-
MESSAGE
|
16
23
|
already_connected_warning: "{{yellow:! This app appears to be already connected}}",
|
17
|
-
connected: "{{v}} Project now connected to {{green:%s}}",
|
18
24
|
project_type_select: "What type of project would you like to connect?",
|
19
25
|
cli_yml_saved: ".shopify-cli.yml saved to project root",
|
20
26
|
},
|
@@ -48,13 +54,37 @@ module ShopifyCli
|
|
48
54
|
config: {
|
49
55
|
help: <<~HELP,
|
50
56
|
Change configuration of how the CLI operates
|
51
|
-
Usage: {{command:%s config [ feature
|
57
|
+
Usage: {{command:%s config [ feature | analytics ] }}
|
52
58
|
HELP
|
53
59
|
feature: {
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
60
|
+
help: <<~HELP,
|
61
|
+
Change configuration of various features
|
62
|
+
Usage: {{command:%s config [ feature ] [ feature_name ] }}
|
63
|
+
HELP
|
64
|
+
enabled: "{{v}} feature {{green:%s}} has been enabled",
|
65
|
+
disabled: "{{v}} feature {{green:%s}} has been disabled",
|
66
|
+
is_enabled: "{{v}} feature {{green:%s}} is currently enabled",
|
67
|
+
is_disabled: "{{v}} feature {{green:%s}} is currently disabled",
|
68
|
+
},
|
69
|
+
analytics: {
|
70
|
+
help: <<~HELP,
|
71
|
+
Opt in/out of anonymous usage reporting
|
72
|
+
Usage: {{command:%s config [ analytics ] }}
|
73
|
+
HELP
|
74
|
+
enabled: "{{v}} analytics have been enabled",
|
75
|
+
disabled: "{{v}} analytics have been disabled",
|
76
|
+
is_enabled: "{{v}} analytics are currently enabled",
|
77
|
+
is_disabled: "{{v}} analytics are currently disabled",
|
78
|
+
},
|
79
|
+
shopifolk_beta: {
|
80
|
+
help: <<~HELP,
|
81
|
+
Opt in/out of shopifolk beta
|
82
|
+
Usage: {{command:%s config [ analytics ] }}
|
83
|
+
HELP
|
84
|
+
enabled: "{{v}} shopifolk-beta has been enabled",
|
85
|
+
disabled: "{{v}} shopifolk-beta has been disabled",
|
86
|
+
is_enabled: "{{v}} shopifolk-beta is currently enabled",
|
87
|
+
is_disabled: "{{v}} shopifolk-beta is currently disabled",
|
58
88
|
},
|
59
89
|
},
|
60
90
|
|
@@ -163,6 +193,7 @@ module ShopifyCli
|
|
163
193
|
api: {
|
164
194
|
error: {
|
165
195
|
internal_server_error: '{{red:{{x}} An unexpected error occurred on Shopify.}}',
|
196
|
+
internal_server_error_debug: "\n{{red:Response details:}}\n%s\n\n",
|
166
197
|
},
|
167
198
|
},
|
168
199
|
|
@@ -237,6 +268,8 @@ module ShopifyCli
|
|
237
268
|
},
|
238
269
|
environment_header: "{{bold:Environment}}",
|
239
270
|
env: "%-17s = %s",
|
271
|
+
identity_header: "{{bold:Identity}}",
|
272
|
+
identity_is_shopifolk: "{{v}} Checked user settings: you’re Shopify staff!",
|
240
273
|
},
|
241
274
|
|
242
275
|
tasks: {
|
@@ -283,6 +316,8 @@ module ShopifyCli
|
|
283
316
|
organization_not_found: "Cannot find a partner organization with that ID",
|
284
317
|
partners_notice: "Please visit https://partners.shopify.com/ to create a partners account",
|
285
318
|
},
|
319
|
+
first_party: "Are you working on a 1P (1st Party) app?",
|
320
|
+
identified_as_shopify: "We've identified you as a {{green:Shopify}} employee.",
|
286
321
|
organization: "Partner organization {{green:%s (%s)}}",
|
287
322
|
organization_select: "Select partner organization",
|
288
323
|
},
|
@@ -27,7 +27,7 @@ module ShopifyCli
|
|
27
27
|
# #### Parameters
|
28
28
|
# - `ctx`: running context from your command
|
29
29
|
# - `query_name`: name of the query you want to use, loaded from the `lib/graphql` directory.
|
30
|
-
# - `**
|
30
|
+
# - `**variables`: a hash of variables to be supplied to the query or mutation
|
31
31
|
#
|
32
32
|
# #### Raises
|
33
33
|
#
|
@@ -50,6 +50,13 @@ module ShopifyCli
|
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
|
+
def partners_url_for(organization_id, api_client_id, local_debug)
|
54
|
+
if ShopifyCli::Shopifolk.acting_as_shopify_organization?
|
55
|
+
organization_id = 'internal'
|
56
|
+
end
|
57
|
+
"#{partners_endpoint(local_debug)}/#{organization_id}/apps/#{api_client_id}"
|
58
|
+
end
|
59
|
+
|
53
60
|
private
|
54
61
|
|
55
62
|
def authenticated_req(ctx)
|
@@ -105,6 +112,15 @@ module ShopifyCli
|
|
105
112
|
return 'https://partners.shopify.com' if ENV[LOCAL_DEBUG].nil?
|
106
113
|
'https://partners.myshopify.io/'
|
107
114
|
end
|
115
|
+
|
116
|
+
def partners_endpoint(local_debug)
|
117
|
+
domain = if local_debug
|
118
|
+
'partners.myshopify.io'
|
119
|
+
else
|
120
|
+
'partners.shopify.com'
|
121
|
+
end
|
122
|
+
"https://#{domain}"
|
123
|
+
end
|
108
124
|
end
|
109
125
|
|
110
126
|
def auth_headers(token)
|
data/lib/shopify-cli/project.rb
CHANGED
@@ -34,7 +34,8 @@ module ShopifyCli
|
|
34
34
|
# project = ShopifyCli::Project.current
|
35
35
|
#
|
36
36
|
def current(force_reload: false)
|
37
|
-
|
37
|
+
clear if force_reload
|
38
|
+
at(Dir.pwd)
|
38
39
|
end
|
39
40
|
|
40
41
|
##
|
@@ -87,27 +88,30 @@ module ShopifyCli
|
|
87
88
|
content = Hash[{ project_type: project_type, organization_id: organization_id.to_i }
|
88
89
|
.merge(identifiers)
|
89
90
|
.collect { |k, v| [k.to_s, v] }]
|
91
|
+
content['shopify_organization'] = true if Shopifolk.acting_as_shopify_organization?
|
90
92
|
|
91
93
|
ctx.write('.shopify-cli.yml', YAML.dump(content))
|
94
|
+
clear
|
92
95
|
end
|
93
96
|
|
94
97
|
def project_name
|
95
98
|
File.basename(current.directory)
|
96
99
|
end
|
97
100
|
|
98
|
-
|
101
|
+
def clear
|
102
|
+
@at = nil
|
103
|
+
@dir = nil
|
104
|
+
end
|
99
105
|
|
100
|
-
|
101
|
-
@dir = nil if force_reload
|
106
|
+
private
|
102
107
|
|
108
|
+
def directory(dir)
|
103
109
|
@dir ||= Hash.new { |h, k| h[k] = __directory(k) }
|
104
110
|
@dir[dir]
|
105
111
|
end
|
106
112
|
|
107
|
-
def at(dir
|
108
|
-
|
109
|
-
|
110
|
-
proj_dir = directory(dir, force_reload: force_reload)
|
113
|
+
def at(dir)
|
114
|
+
proj_dir = directory(dir)
|
111
115
|
unless proj_dir
|
112
116
|
raise(ShopifyCli::Abort, Context.message('core.project.error.not_in_project'))
|
113
117
|
end
|
@@ -45,8 +45,11 @@ module ShopifyCli
|
|
45
45
|
File.join(ShopifyCli::PROJECT_TYPES_DIR, project_type.to_s, path)
|
46
46
|
end
|
47
47
|
|
48
|
-
def
|
48
|
+
def title(name)
|
49
49
|
@project_name = name
|
50
|
+
end
|
51
|
+
|
52
|
+
def creator(command_const)
|
50
53
|
@project_creator_command_class = command_const
|
51
54
|
ShopifyCli::Commands::Create.subcommand(command_const, @project_type)
|
52
55
|
end
|
@@ -55,6 +58,19 @@ module ShopifyCli
|
|
55
58
|
const_get(@project_creator_command_class)
|
56
59
|
end
|
57
60
|
|
61
|
+
def connector(command_const)
|
62
|
+
@project_connector_command_class = command_const
|
63
|
+
ShopifyCli::Commands::Connect.subcommand(command_const, @project_type)
|
64
|
+
end
|
65
|
+
|
66
|
+
def connect_command
|
67
|
+
if @project_connector_command_class.nil?
|
68
|
+
nil
|
69
|
+
else
|
70
|
+
const_get(@project_connector_command_class)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
58
74
|
def register_command(const, cmd)
|
59
75
|
return if project_load_shallow
|
60
76
|
Context.new.abort(
|
@@ -0,0 +1,86 @@
|
|
1
|
+
module ShopifyCli
|
2
|
+
##
|
3
|
+
# ShopifyCli::Shopifolk contains the logic to determine if the user appears to be a Shopify staff
|
4
|
+
#
|
5
|
+
# The Shopifolk Feature flag will persist between runs so if the flag is enabled or disabled,
|
6
|
+
# it will still be in that same state until the next class invocation.
|
7
|
+
class Shopifolk
|
8
|
+
GCLOUD_CONFIG_FILE = File.expand_path('~/.config/gcloud/configurations/config_default')
|
9
|
+
DEV_PATH = '/opt/dev'
|
10
|
+
SECTION = 'core'
|
11
|
+
FEATURE_NAME = 'shopifolk'
|
12
|
+
|
13
|
+
class << self
|
14
|
+
attr_writer :acting_as_shopify_organization
|
15
|
+
|
16
|
+
##
|
17
|
+
# will return if the user appears to be a Shopify employee, based on several heuristics
|
18
|
+
#
|
19
|
+
# #### Returns
|
20
|
+
#
|
21
|
+
# * `is_shopifolk` - returns true if the user is a Shopify Employee
|
22
|
+
#
|
23
|
+
# #### Example
|
24
|
+
#
|
25
|
+
# ShopifyCli::Shopifolk.check
|
26
|
+
#
|
27
|
+
def check
|
28
|
+
return false unless Feature.enabled?('shopifolk-beta')
|
29
|
+
ShopifyCli::Shopifolk.new.shopifolk?
|
30
|
+
end
|
31
|
+
|
32
|
+
def act_as_shopify_organization
|
33
|
+
@acting_as_shopify_organization = true
|
34
|
+
end
|
35
|
+
|
36
|
+
def acting_as_shopify_organization?
|
37
|
+
!!@acting_as_shopify_organization || (Project.has_current? && Project.current.config['shopify_organization'])
|
38
|
+
end
|
39
|
+
|
40
|
+
def reset
|
41
|
+
@acting_as_shopify_organization = nil
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
##
|
46
|
+
# will return if the user is a Shopify employee
|
47
|
+
#
|
48
|
+
# #### Returns
|
49
|
+
#
|
50
|
+
# * `is_shopifolk` - returns true if the user has `dev` installed and
|
51
|
+
# a valid google cloud config file with email ending in "@shopify.com"
|
52
|
+
#
|
53
|
+
def shopifolk?
|
54
|
+
return false unless Feature.enabled?('shopifolk-beta')
|
55
|
+
return true if Feature.enabled?(FEATURE_NAME)
|
56
|
+
|
57
|
+
if shopifolk_by_gcloud? && shopifolk_by_dev?
|
58
|
+
ShopifyCli::Feature.enable(FEATURE_NAME)
|
59
|
+
true
|
60
|
+
else
|
61
|
+
ShopifyCli::Feature.disable(FEATURE_NAME)
|
62
|
+
false
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
private
|
67
|
+
|
68
|
+
def shopifolk_by_gcloud?
|
69
|
+
ini&.dig("[#{SECTION}]", 'account')&.match?(/@shopify.com\z/)
|
70
|
+
end
|
71
|
+
|
72
|
+
def shopifolk_by_dev?
|
73
|
+
File.exist?("#{DEV_PATH}/bin/dev") && File.exist?("#{DEV_PATH}/.shopify-build")
|
74
|
+
end
|
75
|
+
|
76
|
+
def ini
|
77
|
+
@ini ||= begin
|
78
|
+
if File.exist?(GCLOUD_CONFIG_FILE)
|
79
|
+
CLI::Kit::Ini
|
80
|
+
.new(GCLOUD_CONFIG_FILE, default_section: "[#{SECTION}]", convert_types: false)
|
81
|
+
.tap(&:parse).ini
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
data/lib/shopify-cli/task.rb
CHANGED
@@ -6,5 +6,13 @@ module ShopifyCli
|
|
6
6
|
task = new
|
7
7
|
task.call(*args, **kwargs)
|
8
8
|
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def wants_to_run_against_shopify_org?
|
13
|
+
@ctx.puts(@ctx.message('core.tasks.select_org_and_shop.identified_as_shopify'))
|
14
|
+
message = @ctx.message('core.tasks.select_org_and_shop.first_party')
|
15
|
+
CLI::UI::Prompt.confirm(message, default: false)
|
16
|
+
end
|
9
17
|
end
|
10
18
|
end
|
@@ -17,12 +17,23 @@ module ShopifyCli
|
|
17
17
|
redir: [OAuth::REDIRECT_HOST]
|
18
18
|
)
|
19
19
|
|
20
|
-
|
20
|
+
unless resp
|
21
|
+
ctx.abort("Error - empty response")
|
22
|
+
end
|
23
|
+
|
24
|
+
errors = resp.dig("errors")
|
25
|
+
if !errors.nil? && errors.any?
|
26
|
+
ctx.abort(errors.map { |err| "#{err['field']} #{err['message']}" }.join(", "))
|
27
|
+
end
|
28
|
+
|
29
|
+
user_errors = resp.dig("data", "appCreate", "userErrors")
|
21
30
|
if !user_errors.nil? && user_errors.any?
|
22
31
|
ctx.abort(user_errors.map { |err| "#{err['field']} #{err['message']}" }.join(", "))
|
23
32
|
end
|
24
33
|
|
25
|
-
resp
|
34
|
+
ShopifyCli::Core::Monorail.metadata[:api_key] = resp.dig("data", "appCreate", "app", "apiKey")
|
35
|
+
|
36
|
+
resp.dig("data", "appCreate", "app")
|
26
37
|
end
|
27
38
|
end
|
28
39
|
end
|
@@ -22,6 +22,9 @@ module ShopifyCli
|
|
22
22
|
private
|
23
23
|
|
24
24
|
def fetch_org
|
25
|
+
if Shopifolk.check && wants_to_run_against_shopify_org?
|
26
|
+
Shopifolk.act_as_shopify_organization
|
27
|
+
end
|
25
28
|
orgs = PartnersAPI::Organizations.fetch_with_app(@ctx)
|
26
29
|
org_id = if orgs.count == 1
|
27
30
|
orgs.first["id"]
|
@@ -8,8 +8,12 @@ module ShopifyCli
|
|
8
8
|
def call(ctx, organization_id: nil, shop_domain: nil)
|
9
9
|
@ctx = ctx
|
10
10
|
return response(organization_id.to_i, shop_domain) unless organization_id.nil? || shop_domain.nil?
|
11
|
+
if Shopifolk.check && wants_to_run_against_shopify_org?
|
12
|
+
Shopifolk.act_as_shopify_organization
|
13
|
+
end
|
11
14
|
org = get_organization(organization_id)
|
12
15
|
shop_domain ||= get_shop_domain(org)
|
16
|
+
ShopifyCli::Core::Monorail.metadata[:organization_id] = org["id"].to_i
|
13
17
|
response(org["id"].to_i, shop_domain)
|
14
18
|
end
|
15
19
|
|
data/lib/shopify-cli/tunnel.rb
CHANGED
@@ -210,7 +210,7 @@ module ShopifyCli
|
|
210
210
|
end
|
211
211
|
|
212
212
|
def parse_account
|
213
|
-
account, timeout, _ = @log.match(/AccountName:(
|
213
|
+
account, timeout, _ = @log.match(/AccountName:(.*)\s+SessionDuration:([\d]+) PlanName/)&.captures
|
214
214
|
@account = account&.empty? ? nil : account
|
215
215
|
@timeout = timeout&.empty? ? 0 : timeout.to_i
|
216
216
|
end
|
data/lib/shopify-cli/version.rb
CHANGED
data/lib/shopify_cli.rb
CHANGED
@@ -116,6 +116,7 @@ module ShopifyCli
|
|
116
116
|
autoload :Project, 'shopify-cli/project'
|
117
117
|
autoload :ProjectType, 'shopify-cli/project_type'
|
118
118
|
autoload :Resources, 'shopify-cli/resources'
|
119
|
+
autoload :Shopifolk, 'shopify-cli/shopifolk'
|
119
120
|
autoload :SubCommand, 'shopify-cli/sub_command'
|
120
121
|
autoload :Task, 'shopify-cli/task'
|
121
122
|
autoload :Tasks, 'shopify-cli/tasks'
|
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: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -77,8 +77,11 @@ files:
|
|
77
77
|
- ".github/ISSUE_TEMPLATE.md"
|
78
78
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
79
79
|
- ".github/probots.yml"
|
80
|
+
- ".github/workflows/release.yml"
|
81
|
+
- ".github/workflows/triage.yml"
|
80
82
|
- ".gitignore"
|
81
83
|
- ".rubocop.yml"
|
84
|
+
- ".rubocop_todo.yml"
|
82
85
|
- ".ruby-version"
|
83
86
|
- ".tmp/.gitkeep"
|
84
87
|
- ".tmp/sv/.gitkeep"
|
@@ -147,7 +150,9 @@ files:
|
|
147
150
|
- lib/project_types/extension/commands/tunnel.rb
|
148
151
|
- lib/project_types/extension/extension_project.rb
|
149
152
|
- lib/project_types/extension/extension_project_keys.rb
|
150
|
-
- lib/project_types/extension/features/argo.rb
|
153
|
+
- lib/project_types/extension/features/argo/admin.rb
|
154
|
+
- lib/project_types/extension/features/argo/base.rb
|
155
|
+
- lib/project_types/extension/features/argo/checkout.rb
|
151
156
|
- lib/project_types/extension/features/argo_config.rb
|
152
157
|
- lib/project_types/extension/features/argo_dependencies.rb
|
153
158
|
- lib/project_types/extension/features/argo_setup.rb
|
@@ -162,7 +167,7 @@ files:
|
|
162
167
|
- lib/project_types/extension/models/registration.rb
|
163
168
|
- lib/project_types/extension/models/type.rb
|
164
169
|
- lib/project_types/extension/models/types/checkout_post_purchase.rb
|
165
|
-
- lib/project_types/extension/models/types/
|
170
|
+
- lib/project_types/extension/models/types/product_subscription.rb
|
166
171
|
- lib/project_types/extension/models/validation_error.rb
|
167
172
|
- lib/project_types/extension/models/version.rb
|
168
173
|
- lib/project_types/extension/tasks/converters/app_converter.rb
|
@@ -175,6 +180,7 @@ files:
|
|
175
180
|
- lib/project_types/extension/tasks/update_draft.rb
|
176
181
|
- lib/project_types/extension/tasks/user_errors.rb
|
177
182
|
- lib/project_types/node/cli.rb
|
183
|
+
- lib/project_types/node/commands/connect.rb
|
178
184
|
- lib/project_types/node/commands/create.rb
|
179
185
|
- lib/project_types/node/commands/deploy.rb
|
180
186
|
- lib/project_types/node/commands/deploy/heroku.rb
|
@@ -192,6 +198,7 @@ files:
|
|
192
198
|
- lib/project_types/node/forms/create.rb
|
193
199
|
- lib/project_types/node/messages/messages.rb
|
194
200
|
- lib/project_types/rails/cli.rb
|
201
|
+
- lib/project_types/rails/commands/connect.rb
|
195
202
|
- lib/project_types/rails/commands/create.rb
|
196
203
|
- lib/project_types/rails/commands/deploy.rb
|
197
204
|
- lib/project_types/rails/commands/deploy/heroku.rb
|
@@ -233,7 +240,6 @@ files:
|
|
233
240
|
- lib/project_types/script/layers/domain/script.rb
|
234
241
|
- lib/project_types/script/layers/infrastructure/assemblyscript_project_creator.rb
|
235
242
|
- lib/project_types/script/layers/infrastructure/assemblyscript_task_runner.rb
|
236
|
-
- lib/project_types/script/layers/infrastructure/assemblyscript_tsconfig.rb
|
237
243
|
- lib/project_types/script/layers/infrastructure/errors.rb
|
238
244
|
- lib/project_types/script/layers/infrastructure/extension_point_repository.rb
|
239
245
|
- lib/project_types/script/layers/infrastructure/project_creator.rb
|
@@ -276,6 +282,7 @@ files:
|
|
276
282
|
- lib/shopify-cli/helpers.rb
|
277
283
|
- lib/shopify-cli/helpers/haikunator.rb
|
278
284
|
- lib/shopify-cli/heroku.rb
|
285
|
+
- lib/shopify-cli/http_request.rb
|
279
286
|
- lib/shopify-cli/js_deps.rb
|
280
287
|
- lib/shopify-cli/js_system.rb
|
281
288
|
- lib/shopify-cli/messages/messages.rb
|
@@ -290,6 +297,7 @@ files:
|
|
290
297
|
- lib/shopify-cli/project_type.rb
|
291
298
|
- lib/shopify-cli/resources.rb
|
292
299
|
- lib/shopify-cli/resources/env_file.rb
|
300
|
+
- lib/shopify-cli/shopifolk.rb
|
293
301
|
- lib/shopify-cli/sub_command.rb
|
294
302
|
- lib/shopify-cli/task.rb
|
295
303
|
- lib/shopify-cli/tasks.rb
|