shopify-cli 1.2.0 → 1.5.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/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
|