@shopify/cli 3.59.2 → 3.60.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 (140) hide show
  1. package/dist/assets/cli-ruby/lib/project_types/extension/models/specification_handlers/theme_app_extension.rb +1 -1
  2. package/dist/assets/cli-ruby/lib/shopify_cli/theme/dev_server/proxy.rb +1 -1
  3. package/dist/assets/cli-ruby/lib/shopify_cli/theme/extension/syncer/extension_serve_job.rb +1 -18
  4. package/dist/assets/cli-ruby/lib/shopify_cli/theme/repl/auth_middleware.rb +1 -1
  5. package/dist/assets/cli-ruby/test/shopify-cli/theme/dev_server/proxy_test.rb +21 -8
  6. package/dist/{chokidar-DGBVSVUZ.js → chokidar-DOC6OXDL.js} +3 -3
  7. package/dist/chunk-23EONB5V.js +2488 -0
  8. package/dist/{chunk-XCEBJ6L5.js → chunk-2EVDXDJS.js} +2 -2
  9. package/dist/{chunk-HJFYBTAC.js → chunk-2T7IS53S.js} +4 -4
  10. package/dist/{chunk-AXXAG7WU.js → chunk-3JLUTHGR.js} +1 -1
  11. package/dist/{chunk-7ZP3BQHT.js → chunk-3MBQVTEX.js} +1 -1
  12. package/dist/{chunk-RYC5LFN2.js → chunk-3RAXFENB.js} +3 -3
  13. package/dist/{chunk-3MMF34G4.js → chunk-4AOK4O3R.js} +14196 -14093
  14. package/dist/{chunk-3SWG3WX6.js → chunk-4HU62A6V.js} +4 -4
  15. package/dist/{chunk-Z2X3TPD2.js → chunk-55F2DQCB.js} +9 -2487
  16. package/dist/{chunk-7D6QIBBS.js → chunk-5R5555YE.js} +2 -2
  17. package/dist/{chunk-UNTYMY4S.js → chunk-7ORYLSDK.js} +2 -2
  18. package/dist/{chunk-WBWFZ6IT.js → chunk-7P2SWIQY.js} +1 -1
  19. package/dist/{chunk-563LJHWO.js → chunk-7VU6FOLD.js} +6 -6
  20. package/dist/{chunk-OEX6JDK6.js → chunk-B4622FYO.js} +2 -2
  21. package/dist/{chunk-SMULJJG3.js → chunk-BE73NZXB.js} +1 -1
  22. package/dist/{chunk-X7CGNCLO.js → chunk-BIDUT2RV.js} +3 -3
  23. package/dist/{chunk-RLXHXFCQ.js → chunk-BSOZ6PRB.js} +2 -2
  24. package/dist/{chunk-UBA54P7M.js → chunk-BUQTR47W.js} +5 -5
  25. package/dist/{chunk-NHMTG3XR.js → chunk-DQNIIVBG.js} +3 -3
  26. package/dist/{chunk-3IZNRZAA.js → chunk-EANTE4MT.js} +5 -5
  27. package/dist/{chunk-JCAIZOYO.js → chunk-FBB6KUZG.js} +1 -1
  28. package/dist/{chunk-SA32EMWV.js → chunk-FQIRJADJ.js} +1 -1
  29. package/dist/{chunk-55MPIQCI.js → chunk-FVRSV2AX.js} +2 -2
  30. package/dist/{chunk-YLPWACJJ.js → chunk-FWGRGI4R.js} +1 -1
  31. package/dist/{chunk-C3M3CYNZ.js → chunk-G56QICQP.js} +3 -3
  32. package/dist/{chunk-M336AND6.js → chunk-G6FN5VUE.js} +2 -2
  33. package/dist/{chunk-566AK3QG.js → chunk-GXPKATXW.js} +1 -1
  34. package/dist/{chunk-CXG2USMP.js → chunk-IUHH3PST.js} +1 -1
  35. package/dist/{chunk-55S3HB3L.js → chunk-IZU2AQEQ.js} +2 -2
  36. package/dist/{chunk-Q3AO7F62.js → chunk-KDOLMUJB.js} +1 -1
  37. package/dist/{chunk-LAEBMOYT.js → chunk-KEIEB4WC.js} +4 -4
  38. package/dist/{chunk-7ILHA2ZK.js → chunk-LDKJK42D.js} +14 -11
  39. package/dist/{chunk-6MJ52OLD.js → chunk-LKGDG6WW.js} +1 -1
  40. package/dist/{chunk-BVGYIZ3O.js → chunk-M63RTPGR.js} +0 -7
  41. package/dist/chunk-MSXPXGEQ.js +176 -0
  42. package/dist/{chunk-7NHPEC6Q.js → chunk-NAXATNVY.js} +9 -9
  43. package/dist/{chunk-PKIEJXSZ.js → chunk-NQYIB3IR.js} +3 -3
  44. package/dist/{chunk-QI5VKSMW.js → chunk-OVPEO3GL.js} +2 -2
  45. package/dist/{chunk-DBIH5B5S.js → chunk-PU5KGSLR.js} +3 -3
  46. package/dist/{chunk-WI3E2P3B.js → chunk-QTHWTF4X.js} +2 -2
  47. package/dist/{chunk-5RBKPYJP.js → chunk-RNLLSL24.js} +14 -10
  48. package/dist/{chunk-CYG4QPQ3.js → chunk-RQ24VTW4.js} +1 -1
  49. package/dist/{chunk-K7PV6FRP.js → chunk-RZVQGETB.js} +7 -7
  50. package/dist/{chunk-BQXMYE7I.js → chunk-T3QDR67D.js} +5 -5
  51. package/dist/{chunk-7SNGGY5B.js → chunk-TMGCRPEZ.js} +1 -1
  52. package/dist/{chunk-3CU2FNWB.js → chunk-TZ5DL7CA.js} +3 -3
  53. package/dist/{chunk-7RWKDDVY.js → chunk-U2VYZHIW.js} +5 -5
  54. package/dist/{chunk-G3E6ZMTC.js → chunk-URD52LAO.js} +2 -2
  55. package/dist/{chunk-LOF3ZXQM.js → chunk-VNBOO6TJ.js} +64 -2
  56. package/dist/{chunk-5KLK7XCS.js → chunk-W7VW72CK.js} +4 -4
  57. package/dist/{chunk-P52UWCZD.js → chunk-WCNR75S2.js} +1 -1
  58. package/dist/{chunk-WASVWBNY.js → chunk-Y4AOSTJD.js} +20 -16
  59. package/dist/{chunk-5XSLB6YF.js → chunk-YVHTE4VJ.js} +3 -3
  60. package/dist/{chunk-SWLATKE3.js → chunk-ZCRCEEIR.js} +4 -4
  61. package/dist/{chunk-3GNPZUJY.js → chunk-ZLSD2RNR.js} +14 -13
  62. package/dist/cli/commands/auth/logout.js +28 -28
  63. package/dist/cli/commands/auth/logout.test.js +30 -30
  64. package/dist/cli/commands/debug/command-flags.js +26 -26
  65. package/dist/cli/commands/demo/catalog.js +28 -28
  66. package/dist/cli/commands/demo/generate-file.js +29 -29
  67. package/dist/cli/commands/demo/index.js +27 -27
  68. package/dist/cli/commands/demo/print-ai-prompt.js +29 -29
  69. package/dist/cli/commands/docs/generate.js +26 -26
  70. package/dist/cli/commands/docs/generate.js.map +1 -1
  71. package/dist/cli/commands/docs/generate.test.js +30 -27
  72. package/dist/cli/commands/help.js +26 -26
  73. package/dist/cli/commands/hydrogen/init.js +26 -26
  74. package/dist/cli/commands/kitchen-sink/async.js +27 -27
  75. package/dist/cli/commands/kitchen-sink/async.test.js +28 -28
  76. package/dist/cli/commands/kitchen-sink/index.js +29 -29
  77. package/dist/cli/commands/kitchen-sink/index.test.js +30 -30
  78. package/dist/cli/commands/kitchen-sink/prompts.js +27 -27
  79. package/dist/cli/commands/kitchen-sink/prompts.test.js +28 -28
  80. package/dist/cli/commands/kitchen-sink/static.js +27 -27
  81. package/dist/cli/commands/kitchen-sink/static.test.js +28 -28
  82. package/dist/cli/commands/search.js +27 -27
  83. package/dist/cli/commands/upgrade.js +26 -26
  84. package/dist/cli/commands/upgrade.test.js +4 -4
  85. package/dist/cli/commands/version.js +27 -27
  86. package/dist/cli/commands/version.test.js +28 -28
  87. package/dist/cli/services/commands/search.js +16 -17
  88. package/dist/cli/services/commands/search.test.js +17 -18
  89. package/dist/cli/services/commands/version.js +19 -19
  90. package/dist/cli/services/commands/version.test.js +21 -21
  91. package/dist/cli/services/demo.js +17 -18
  92. package/dist/cli/services/demo.test.js +18 -19
  93. package/dist/cli/services/kitchen-sink/async.js +16 -17
  94. package/dist/cli/services/kitchen-sink/prompts.js +16 -17
  95. package/dist/cli/services/kitchen-sink/static.js +16 -17
  96. package/dist/cli/services/upgrade.js +18 -18
  97. package/dist/cli/services/upgrade.test.js +21 -21
  98. package/dist/{constants-OQPDSWGZ.js → constants-3B4PKIC7.js} +4 -4
  99. package/dist/{custom-oclif-loader-KO5GEFDA.js → custom-oclif-loader-2FLACCMK.js} +15 -16
  100. package/dist/{del-HVOV3MSN.js → del-5I7QSZXM.js} +7 -8
  101. package/dist/{devtools-SPNRC62Y.js → devtools-KQM4GF6J.js} +1 -1
  102. package/dist/error-handler-RU2ELIV6.js +37 -0
  103. package/dist/hooks/init.js +15 -16
  104. package/dist/hooks/postrun.js +23 -23
  105. package/dist/hooks/prerun.js +19 -19
  106. package/dist/{http-proxy-UXKO35LH.js → http-proxy-42DFA6MY.js} +2 -2
  107. package/dist/index.d.ts +1 -0
  108. package/dist/index.js +160611 -159975
  109. package/dist/index.js.map +1 -1
  110. package/dist/{lib-2EBQB76J.js → lib-AAMRQUES.js} +3 -3
  111. package/dist/lib-KV4KCWH7.js +11 -0
  112. package/dist/{local-P227YBVR.js → local-IWFESFES.js} +15 -16
  113. package/dist/{magic-string.es-XWLPTYL2.js → magic-string.es-6WMSFIAX.js} +1 -1
  114. package/dist/{multipart-parser-KUMTOIY4.js → multipart-parser-O2BQODS2.js} +2 -2
  115. package/dist/{node-package-manager-ES5NCVEG.js → node-package-manager-HBYFQNJQ.js} +17 -17
  116. package/dist/npa-VW3Y6UCQ.js +2262 -0
  117. package/dist/{open-4QOBUNAV.js → open-B7XFJJCK.js} +2 -2
  118. package/dist/out-MH5VOFOS.js +6 -0
  119. package/dist/{path-NJJ6ID3F.js → path-HO4HBKK5.js} +3 -3
  120. package/dist/system-KY2XFEXZ.js +28 -0
  121. package/dist/templates/ui-extensions/projects/web_pixel_extension/package.json.liquid +1 -1
  122. package/dist/templates/ui-extensions/projects/web_pixel_extension/src/index.liquid +1 -1
  123. package/dist/tsconfig.tsbuildinfo +1 -1
  124. package/dist/{ui-3V5SZVHP.js → ui-MN3VE2TA.js} +15 -16
  125. package/oclif.manifest.json +115 -30
  126. package/package.json +27 -8
  127. package/dist/assets/cli-ruby/test/shopify-cli/theme/extension/syncer_test.rb +0 -82
  128. package/dist/chunk-F6GZ5SSL.js +0 -69
  129. package/dist/error-handler-QEGFFBIC.js +0 -37
  130. package/dist/favicon-4808307e.ico +0 -0
  131. package/dist/index-878807df.js +0 -5
  132. package/dist/index-a69a7f3d.js +0 -7
  133. package/dist/index-e6f8190d.js +0 -953
  134. package/dist/lib-ZHR6CBL4.js +0 -12
  135. package/dist/out-K5X4ON7U.js +0 -6
  136. package/dist/package-9a1ede4a.json +0 -268
  137. package/dist/shell-FSGSHXVH.js +0 -2517
  138. package/dist/style-49513a24.css +0 -58
  139. package/dist/system-IG66OLS6.js +0 -29
  140. package/dist/yarn-e8df42e5.js +0 -31
@@ -16,7 +16,7 @@ module Extension
16
16
  SUPPORTED_BUCKETS = %w(assets blocks snippets locales)
17
17
  BUNDLE_SIZE_LIMIT = 10 * 1024 * 1024 # 10MB
18
18
  LIQUID_SIZE_LIMIT = 100 * 1024 # 100kb
19
- SUPPORTED_ASSET_EXTS = %w(.jpg .jpeg .js .css .png .svg)
19
+ SUPPORTED_ASSET_EXTS = %w(.jpg .jpeg .js .json .css .png .svg)
20
20
  SUPPORTED_LOCALE_EXTS = %w(.json)
21
21
 
22
22
  def create(directory_name, context, getting_started: false)
@@ -200,7 +200,7 @@ module ShopifyCLI
200
200
  +""
201
201
  end
202
202
 
203
- expected_session_cookie = "#{SESSION_COOKIE_NAME}=#{secure_session_id}"
203
+ expected_session_cookie = "#{SESSION_COOKIE_NAME}=#{secure_session_id};"
204
204
 
205
205
  unless cookie_header.include?(expected_session_cookie)
206
206
  if cookie_header.include?(SESSION_COOKIE_NAME)
@@ -43,24 +43,7 @@ module ShopifyCLI
43
43
 
44
44
  job_in_progress!
45
45
 
46
- input = {
47
- api_key: @project.app.api_key,
48
- registration_id: @project.registration_id,
49
- config: JSON.generate(@specification_handler.config(@ctx)),
50
- extension_context: @specification_handler.extension_context(@ctx),
51
- }
52
- response = ShopifyCLI::PartnersAPI.query(@ctx, "extension_update_draft", **input).dig(*RESPONSE_FIELD)
53
- user_errors = response.dig(USER_ERRORS_FIELD)
54
-
55
- if user_errors
56
- @ctx.puts(error_message(@project.title))
57
- error_files = erroneous_files(user_errors)
58
- print_items(error_files)
59
- else
60
- @ctx.puts(success_message(@project.title))
61
- print_items({}.freeze)
62
- ::Extension::Tasks::Converters::VersionConverter.from_hash(@ctx, response.dig(VERSION_FIELD))
63
- end
46
+ print_items({}.freeze)
64
47
 
65
48
  files = @syncer.pending_files.map(&:relative_path)
66
49
  # Notify changes after the sync is complete
@@ -17,7 +17,7 @@ module ShopifyCLI
17
17
  @env = env
18
18
  @env["PATH_INFO"] = PASSWORD_PAGE_PATH if redirect_to_password?(@env)
19
19
 
20
- return @app.call(@env) if password_page?(@env) || (storefront_session.nil? || secure_session.nil?)
20
+ return @app.call(@env) if password_page?(@env) || secure_session.nil?
21
21
 
22
22
  authenticate!
23
23
 
@@ -10,7 +10,7 @@ module ShopifyCLI
10
10
  module Theme
11
11
  class DevServer
12
12
  class ProxyTest < Minitest::Test
13
- SECURE_SESSION_ID = "deadbeef"
13
+ SECURE_SESSION_ID = ":deadbeef:"
14
14
 
15
15
  def setup
16
16
  super
@@ -110,7 +110,7 @@ module ShopifyCLI
110
110
  .with(
111
111
  headers: {
112
112
  "Content-Length" => "0",
113
- "Cookie" => "_shopify_essential=deadbeef",
113
+ "Cookie" => "_shopify_essential=#{SECURE_SESSION_ID};",
114
114
  "X-Shopify-Shop" => store,
115
115
  },
116
116
  )
@@ -169,7 +169,7 @@ module ShopifyCLI
169
169
  stub_request(:post, "https://dev-theme-server-store.myshopify.com/account/login?_fd=0&pb=0")
170
170
  .with(
171
171
  headers: {
172
- "Cookie" => "_shopify_essential=#{SECURE_SESSION_ID}",
172
+ "Cookie" => "_shopify_essential=#{SECURE_SESSION_ID};",
173
173
  },
174
174
  )
175
175
  .to_return(
@@ -184,7 +184,7 @@ module ShopifyCLI
184
184
  stub_request(:get, "https://dev-theme-server-store.myshopify.com/?_fd=0&pb=0")
185
185
  .with(
186
186
  headers: {
187
- "Cookie" => "_shopify_essential=#{new_shopify_essential}",
187
+ "Cookie" => "_shopify_essential=#{new_shopify_essential};",
188
188
  },
189
189
  )
190
190
  .to_return(status: 200)
@@ -323,7 +323,7 @@ module ShopifyCLI
323
323
  stub_request(:get, "https://dev-theme-server-store.myshopify.com/?_fd=0&pb=0")
324
324
  .with(
325
325
  headers: {
326
- "Cookie" => "_shopify_essential=#{SECURE_SESSION_ID}",
326
+ "Cookie" => "_shopify_essential=#{SECURE_SESSION_ID};",
327
327
  },
328
328
  )
329
329
 
@@ -336,7 +336,7 @@ module ShopifyCLI
336
336
  stub_request(:get, "https://dev-theme-server-store.myshopify.com/?_fd=0&pb=0")
337
337
  .with(
338
338
  headers: {
339
- "Cookie" => "cart_currency=CAD; secure_customer_sig=; _shopify_essential=#{SECURE_SESSION_ID}",
339
+ "Cookie" => "cart_currency=CAD; secure_customer_sig=; _shopify_essential=#{SECURE_SESSION_ID};",
340
340
  },
341
341
  )
342
342
 
@@ -345,6 +345,19 @@ module ShopifyCLI
345
345
  "HTTP_COOKIE" => "cart_currency=CAD; secure_customer_sig=")
346
346
  end
347
347
 
348
+ def test_shopify_essential_cookie_in_the_middle_of_the_cookie_string
349
+ stub_request(:get, "https://dev-theme-server-store.myshopify.com/?_fd=0&pb=0")
350
+ .with(
351
+ headers: {
352
+ "Cookie" => "cart_currency=CAD; _shopify_essential=#{SECURE_SESSION_ID}; secure_customer_sig=",
353
+ },
354
+ )
355
+
356
+ stub_session_id_request
357
+ request.get("/",
358
+ "HTTP_COOKIE" => "cart_currency=CAD; _shopify_essential=:expired:; secure_customer_sig=")
359
+ end
360
+
348
361
  def test_pass_pending_templates_to_storefront
349
362
  ShopifyCLI::DB
350
363
  .stubs(:get)
@@ -373,7 +386,7 @@ module ShopifyCLI
373
386
  "Accept-Encoding" => "none",
374
387
  "Authorization" => "Bearer TOKEN",
375
388
  "Content-Type" => "application/x-www-form-urlencoded",
376
- "Cookie" => "_shopify_essential=#{SECURE_SESSION_ID}",
389
+ "Cookie" => "_shopify_essential=#{SECURE_SESSION_ID};",
377
390
  "Host" => "dev-theme-server-store.myshopify.com",
378
391
  "X-Forwarded-For" => "",
379
392
  "User-Agent" => "Shopify CLI",
@@ -597,7 +610,7 @@ module ShopifyCLI
597
610
  def default_proxy_headers(domain = "myshopify.com")
598
611
  {
599
612
  "Accept-Encoding" => "none",
600
- "Cookie" => "_shopify_essential=#{SECURE_SESSION_ID}",
613
+ "Cookie" => "_shopify_essential=#{SECURE_SESSION_ID};",
601
614
  "Host" => "dev-theme-server-store.#{domain}",
602
615
  "X-Forwarded-For" => "",
603
616
  "User-Agent" => "Shopify CLI",
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  require_normalize_path
3
- } from "./chunk-7ZP3BQHT.js";
3
+ } from "./chunk-3MBQVTEX.js";
4
4
  import {
5
5
  require_braces,
6
6
  require_glob_parent,
7
7
  require_is_glob,
8
8
  require_picomatch
9
- } from "./chunk-CYG4QPQ3.js";
9
+ } from "./chunk-RQ24VTW4.js";
10
10
  import {
11
11
  __commonJS,
12
12
  __require,
13
13
  init_cjs_shims
14
- } from "./chunk-BVGYIZ3O.js";
14
+ } from "./chunk-M63RTPGR.js";
15
15
 
16
16
  // ../../node_modules/.pnpm/readdirp@3.6.0/node_modules/readdirp/index.js
17
17
  var require_readdirp = __commonJS({