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.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +2 -2
  3. data/.github/CONTRIBUTING.md +9 -1
  4. data/.github/PULL_REQUEST_TEMPLATE.md +9 -1
  5. data/.github/workflows/release.yml +61 -0
  6. data/.github/workflows/triage.yml +22 -0
  7. data/.gitignore +0 -1
  8. data/.rubocop.yml +61 -8
  9. data/.rubocop_todo.yml +11 -0
  10. data/CHANGELOG.md +25 -0
  11. data/Gemfile +3 -2
  12. data/Gemfile.lock +39 -37
  13. data/RELEASING.md +19 -29
  14. data/docs/core/index.md +16 -0
  15. data/lib/project_types/extension/cli.rb +7 -2
  16. data/lib/project_types/extension/commands/register.rb +1 -1
  17. data/lib/project_types/extension/features/argo/admin.rb +20 -0
  18. data/lib/project_types/extension/features/argo/base.rb +129 -0
  19. data/lib/project_types/extension/features/argo/checkout.rb +20 -0
  20. data/lib/project_types/extension/messages/messages.rb +8 -2
  21. data/lib/project_types/extension/models/type.rb +4 -0
  22. data/lib/project_types/extension/models/types/checkout_post_purchase.rb +2 -2
  23. data/lib/project_types/extension/models/types/product_subscription.rb +24 -0
  24. data/lib/project_types/node/cli.rb +4 -1
  25. data/lib/project_types/node/commands/connect.rb +15 -0
  26. data/lib/project_types/node/commands/create.rb +8 -4
  27. data/lib/project_types/node/messages/messages.rb +7 -6
  28. data/lib/project_types/rails/cli.rb +4 -1
  29. data/lib/project_types/rails/commands/connect.rb +15 -0
  30. data/lib/project_types/rails/commands/create.rb +8 -4
  31. data/lib/project_types/rails/messages/messages.rb +7 -4
  32. data/lib/project_types/script/cli.rb +2 -1
  33. data/lib/project_types/script/commands/enable.rb +12 -4
  34. data/lib/project_types/script/config/extension_points.yml +13 -12
  35. data/lib/project_types/script/errors.rb +4 -0
  36. data/lib/project_types/script/layers/application/build_script.rb +12 -16
  37. data/lib/project_types/script/layers/domain/errors.rb +3 -0
  38. data/lib/project_types/script/layers/domain/extension_point.rb +0 -1
  39. data/lib/project_types/script/layers/infrastructure/assemblyscript_project_creator.rb +15 -50
  40. data/lib/project_types/script/layers/infrastructure/assemblyscript_task_runner.rb +28 -7
  41. data/lib/project_types/script/layers/infrastructure/errors.rb +16 -0
  42. data/lib/project_types/script/layers/infrastructure/script_repository.rb +0 -12
  43. data/lib/project_types/script/layers/infrastructure/script_service.rb +2 -0
  44. data/lib/project_types/script/messages/messages.rb +23 -5
  45. data/lib/project_types/script/ui/error_handler.rb +31 -6
  46. data/lib/shopify-cli/api.rb +8 -10
  47. data/lib/shopify-cli/commands/config.rb +57 -1
  48. data/lib/shopify-cli/commands/connect.rb +32 -15
  49. data/lib/shopify-cli/commands/system.rb +9 -0
  50. data/lib/shopify-cli/core/entry_point.rb +1 -1
  51. data/lib/shopify-cli/core/monorail.rb +6 -4
  52. data/lib/shopify-cli/http_request.rb +15 -0
  53. data/lib/shopify-cli/js_deps.rb +1 -1
  54. data/lib/shopify-cli/js_system.rb +22 -5
  55. data/lib/shopify-cli/messages/messages.rb +44 -9
  56. data/lib/shopify-cli/partners_api.rb +17 -1
  57. data/lib/shopify-cli/process_supervision.rb +1 -1
  58. data/lib/shopify-cli/project.rb +12 -8
  59. data/lib/shopify-cli/project_type.rb +17 -1
  60. data/lib/shopify-cli/shopifolk.rb +86 -0
  61. data/lib/shopify-cli/task.rb +8 -0
  62. data/lib/shopify-cli/tasks/create_api_client.rb +13 -2
  63. data/lib/shopify-cli/tasks/ensure_env.rb +3 -0
  64. data/lib/shopify-cli/tasks/select_org_and_shop.rb +4 -0
  65. data/lib/shopify-cli/tunnel.rb +1 -1
  66. data/lib/shopify-cli/version.rb +1 -1
  67. data/lib/shopify_cli.rb +1 -0
  68. metadata +13 -5
  69. data/lib/project_types/extension/features/argo.rb +0 -48
  70. data/lib/project_types/extension/models/types/subscription_management.rb +0 -20
  71. 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 ] [ feature_name ] }}
57
+ Usage: {{command:%s config [ feature | analytics ] }}
52
58
  HELP
53
59
  feature: {
54
- enabled: "{{v}} feature {{green:%s}} was enabled",
55
- disabled: "{{v}} feature {{green:%s}} was disabled",
56
- is_enabled: "{{v}} feature {{green:%s}} is enabled",
57
- is_disabled: "{{v}} feature {{green:%s}} is disabled",
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
- # - `**variable`: a hash of variables to be supplied to the query ro mutation
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)
@@ -206,7 +206,7 @@ module ShopifyCli
206
206
  unless ctx.windows?
207
207
  Process.kill('TERM', id)
208
208
  50.times do
209
- sleep 0.1
209
+ sleep(0.1)
210
210
  break unless stat(id)
211
211
  end
212
212
  end
@@ -34,7 +34,8 @@ module ShopifyCli
34
34
  # project = ShopifyCli::Project.current
35
35
  #
36
36
  def current(force_reload: false)
37
- at(Dir.pwd, force_reload: force_reload)
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
- private
101
+ def clear
102
+ @at = nil
103
+ @dir = nil
104
+ end
99
105
 
100
- def directory(dir, force_reload: false)
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, force_reload: false)
108
- @at = nil if force_reload
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 creator(name, command_const)
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
@@ -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
- user_errors = resp["data"]["appCreate"]["userErrors"]
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["data"]["appCreate"]["app"]
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
 
@@ -210,7 +210,7 @@ module ShopifyCli
210
210
  end
211
211
 
212
212
  def parse_account
213
- account, timeout, _ = @log.match(/AccountName:([\w\s\d@._\-]*) SessionDuration:([\d]+) PlanName/)&.captures
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
@@ -1,3 +1,3 @@
1
1
  module ShopifyCli
2
- VERSION = '1.2.0'
2
+ VERSION = '1.5.0'
3
3
  end
@@ -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.2.0
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-09-14 00:00:00.000000000 Z
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/subscription_management.rb
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