@shopify/cli-hydrogen 4.0.0-alpha.1 → 4.0.0-alpha.2

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 (379) hide show
  1. package/dist/templates/demo-store/.cache/content-v2/sha512/00/cf/2691ba3b4253dc803282219fc108c6d7b3fb03e318729ee568216e8a13af36614948c5a215992ba7b5222cc1055cf81b6a752c3597e261a8c8095f55eb9d +1 -0
  2. package/dist/templates/demo-store/.cache/content-v2/sha512/02/76/13bbea15bb42b81a204b0dc5f14726e0bfa8d012a7b284f887cc2e3c92195d6b07a78f199f990b311ca5fafa9079563503cdd81808cd9b7e496d86c72732 +1 -0
  3. package/dist/templates/demo-store/.cache/content-v2/sha512/08/3c/f2108d415b1474e3e7fee6684b9f1c4b99249c5d4178686b1632d19209f6782c86d7b04abe3873d955bb9e353cca92d8ae7324f374eb691bfd8729ce8407 +1 -0
  4. package/dist/templates/demo-store/.cache/content-v2/sha512/0c/da/c6f091fb614d96e6d0a533733b487011ab615ad5983823c7085320ec2ea2ee8e020ae2646f4772d350f253abb4f8a2489c843a8b873a90bfed3c27c5fd0b +1 -0
  5. package/dist/templates/demo-store/.cache/content-v2/sha512/11/0c/195071c290a61e22dd825b300c9f93e5315b2effefc3e5545440ac704d629e177bc877333ce73232ac72703bcc69fb425632d84b3caefe7f5c0fd12537ee +1 -0
  6. package/dist/templates/demo-store/.cache/content-v2/sha512/17/08/03dabbacd40d4a2b132018a520d1dbcf29ffb2c659bbe01cb91f700202d5016ab4104831b95a05b98535549be4a6520ddcd6504ba361692549a5cd0458ee +1 -0
  7. package/dist/templates/demo-store/.cache/content-v2/sha512/25/f3/97b4dddda618ca4621d4a8da779269ba2f2eae1fc35cb0cc394e5fb909bb4825e10ca37a4115d69fdd5551be5d64bdb75e0bf0199794f473c25f4ae7aa1a +1 -0
  8. package/dist/templates/demo-store/.cache/content-v2/sha512/27/a0/d277ff364ced6a2d01639f1e2b8675ef95eff3a4aa4d2fda0990392526e0f18def66116a8623096d1bdafabe1dc8efc56ef0956054b3370dfa9ad6596a29 +1 -0
  9. package/dist/templates/demo-store/.cache/content-v2/sha512/28/53/96d2a5c3d4b08a7191e545d4d961f7690f814a331dc8efcc11e45854fbccd04f825ec8d3a1070b05aca51dd63e06c778316395446055cc3cfc90c8b30615 +1 -0
  10. package/dist/templates/demo-store/.cache/content-v2/sha512/28/7c/c71b0c6367bdf7307a8061fe1c4568c9f1e9603d835b6fc917fe8042535a867c37154e35376a01ad6bdb3c2d6f29b88b41902fd6f20b1227e02081682d01 +1 -0
  11. package/dist/templates/demo-store/.cache/content-v2/sha512/29/2e/db501d168869cc6b7d5e51bfbf399e920773ed905b9e2b782ebfb29c5260f05b67d0b7d4599e8c5666253789d545ecfdfdb9e020da8ac262d99d0e69e5b0 +1 -0
  12. package/dist/templates/demo-store/.cache/content-v2/sha512/2b/71/b06448186eeafe74e7e29de9fb188013acc513af9d0d4eeff66650385fce9f77f5f2ccea51806c8449cf25c7825ee4c3ac428822d4e3b8b3f1b010adb7aa +1 -0
  13. package/dist/templates/demo-store/.cache/content-v2/sha512/2d/e9/141465ed1c16a93073fe5602f300dc3d8a5246fe045abffa4ac277550e4b365c30629224f328540a36d470ef4d69d8f80d6aeadfbd4a07872a66c40143df +1 -0
  14. package/dist/templates/demo-store/.cache/content-v2/sha512/2d/ec/a65ff18546d88746d8d74b60cd34137005996ded9afd4877b74cba36e9a4dd1829992dbb37ec13b296f39cfeef462c6f12a4c6913577504fec6d7d5611aa +1 -0
  15. package/dist/templates/demo-store/.cache/content-v2/sha512/30/9f/f03a3dcdd3a5f1116ab710595deb552c1564bd8295bff71f62b3d95be656a6ef53e8ceaee21cbcb880cc06270c3db2327ab1ddef2fc09d6cba4436f470e7 +1 -0
  16. package/dist/templates/demo-store/.cache/content-v2/sha512/35/3c/f46f8adbcf210210bac8ab00267ab16c16393ab4a95920f69c4452b298a83c9785d3d2c2bb4a63937cb4eed028197a18f0d2929024ebae18b0751f07ebf5 +1 -0
  17. package/dist/templates/demo-store/.cache/content-v2/sha512/36/3e/ece5cc6633a23301aa4f05fc1efddd8876aec2d8bf7afe504526e2866ed67263e99bffbb1e0d99a65622a7246f9d662217032aca47f70b6f0f13b75e7df1 +1 -0
  18. package/dist/templates/demo-store/.cache/content-v2/sha512/37/19/de54f68ea7b2a79f86d12ec1107e99d04217817fb6de9a5ba2dc5cdd16d16e1dda4cc9f7cf2b6ece5a6330f47ca20fa27a08aeffc17eb23fd11399e601fd +1 -0
  19. package/dist/templates/demo-store/.cache/content-v2/sha512/46/04/af285aee74d96b28b24f75d7911de65e6c7bb26475ab5219fe5308028fda55060cf45650dfa09c0731ec73ece453c1e24e0c38715e8d4c5c80fd6365a1f4 +1 -0
  20. package/dist/templates/demo-store/.cache/content-v2/sha512/46/1c/c69c5b9150a9f76dff13c0d6a768540636e6569f4f3f56795d1b4c494045d5908674f292815212ac52e6d8a597b4ad35783506113f195a09f1057f09f00c +1 -0
  21. package/dist/templates/demo-store/.cache/content-v2/sha512/4b/48/ca635670e7d1b1a5550d32f51389a5754234da55c6d7c900f348c8bf1ccc84bdcefc620e08979b7aa1d04a49a1138b46346f126d20c0126eb0c3261deb5b +1 -0
  22. package/dist/templates/demo-store/.cache/content-v2/sha512/50/75/609ace481c5e148698b91afca04bd995ab360802c5f8961228eceb891236836cab54c7fddd97a62e4ca19a03e5863fd0999c68849cf37b30a4fe32e1397f +1 -0
  23. package/dist/templates/demo-store/.cache/content-v2/sha512/50/cd/4f809a5b4a52449879ecf0b061e00f36f5e2df284fddb5c9c75e13ab1db6e85931fb82d211f1699eed3fe308ffd5d2e69dc2d261fdea58f8224acc278143 +1 -0
  24. package/dist/templates/demo-store/.cache/content-v2/sha512/51/ab/e165384df6374c7b2d0ebebc8642ecb0e0c14f7c5b57970ec5d2e17f7d1643e0b01eda69e5ffbefde85ecba6d613bcc5175c5564e36bfb73d966c8ea4153 +1 -0
  25. package/dist/templates/demo-store/.cache/content-v2/sha512/54/86/917224aeb3e04e19a51534244f5ed28f3529d85276452f52af9af3657798246c97a0948bcf62c707394ab80f0062a87e7079bd71c05e0d16f927091617d2 +1 -0
  26. package/dist/templates/demo-store/.cache/content-v2/sha512/6a/9d/a99dc2fae7981ecb35b0dadc0acddd23e65ae6590f70743d824c36697fd10610ffafa9aa63c09a7861a701c1d52400050d9b562dc4f6bdba8e0de362b486 +1 -0
  27. package/dist/templates/demo-store/.cache/content-v2/sha512/6b/6d/71211d4cebfd1e1c86788ede5784a53cf366a85f4e2646a300c820958a5219bfa5492b169d1cca1b431e946b41d15a526ee7f77db65a6e730dead281f777 +1 -0
  28. package/dist/templates/demo-store/.cache/content-v2/sha512/6e/25/d2212e576c7d9684f5237bd1ee363dfe5cf0ad5f9acbeeded47a531c7d3444d2144684e310c8d4d4200ee5b142671bc2be887dc8d3244377d645813e048c +1 -0
  29. package/dist/templates/demo-store/.cache/content-v2/sha512/73/40/c822831f11f08a9ceea944d0145b072ba6164a3e2e75f98fda5437cda6dfddf9ca9450445c1f3236228d6259ac95e4cde9bb6e5996490ed00b7b13b06121 +1 -0
  30. package/dist/templates/demo-store/.cache/content-v2/sha512/73/4c/bf7dfa31c1d17f57e5fdabc0bd79ce133d3ea7562f494615c8bd4369b58c29963090577cd70c6ab2bb8af6ae92915ce20bb0bf1925cccb961aeeed9c8703 +1 -0
  31. package/dist/templates/demo-store/.cache/content-v2/sha512/7b/15/d1749be8fa73f2f123e5e9a0807f343cdfa14fd263f9073fe7cd73352b7318b976a43687096a06acbbed2a2f0f86119d45cdd1e9ad6d09208c06b6232db2 +1 -0
  32. package/dist/templates/demo-store/.cache/content-v2/sha512/88/76/d18fdfbb05293909609d42368642fc6da4bd138c5864ec2f721212b52e595b84ae46f48021ed3e6240edf443f78bdea557d56d700e3da848459ea3077a80 +1 -0
  33. package/dist/templates/demo-store/.cache/content-v2/sha512/8a/d1/ca384452cdc8a2fb92fa1c70a4db303dd5f9887475e0e4ddf4bc711b5ebceb684ba5fd8bf596c3d491ab8598bd52ffe20f98564f8110da0730f46f39e790 +1 -0
  34. package/dist/templates/demo-store/.cache/content-v2/sha512/8b/ae/5793cc875f8fa5fe744c72c07b09ead40386e23a89cb2b77957c61413eb4afc993f70eee071a00aeff74bfe63cfcd91385e45094338c0fc05aedaca91917 +1 -0
  35. package/dist/templates/demo-store/.cache/content-v2/sha512/8c/51/88e1fc4d8365cb6ad1a755e8bca81fbb64abb1c8ef08a8314471952910e0e29eadfa283d482233d500893a57b57470171ab98ebacb4b93780b37e7a87c93 +1 -0
  36. package/dist/templates/demo-store/.cache/content-v2/sha512/8f/81/8e238bb1d4654dcc554d661194c9415fe36dc6f20624dd26e47c0043f06ee69d1abd49947b11954508bfd01823fdf97a3ca9196521f05cb471473095c5c5 +1 -0
  37. package/dist/templates/demo-store/.cache/content-v2/sha512/91/39/2d6842760bb34dde16e9aad46162f546e8cab25d2440a69cb01bf4b2ed8fb3122490666d3eb9b70225259f7ed47e182bc6b83fe455647dde30d61cefa07d +1 -0
  38. package/dist/templates/demo-store/.cache/content-v2/sha512/91/ef/9fc44c6b88d8614b31058550efddfc49a43aeef50cf16d7ade5087e6b13c3f5ca743b1a10c72993a806db4ddf093c2216a853e0dbf6c002c61507e60bfee +1 -0
  39. package/dist/templates/demo-store/.cache/content-v2/sha512/93/6b/e60098157f6bff8ba570cab2ffd97a14983109006f7fa87e4432728366f96dfb19e957d28754daa45f1b6cb2421d26ab59bbd5ce5a448d6102e8e662403d +1 -0
  40. package/dist/templates/demo-store/.cache/content-v2/sha512/94/4a/a539de5a6348e4ecc4e05ea18301c0077a30ed452550660f8b13440a40f7e3858a03ef0aad25b559c49dbbe51455cc5d8e2a7b6c2b0c57e31875b5f8e6be +1 -0
  41. package/dist/templates/demo-store/.cache/content-v2/sha512/94/6b/572828348790e114213fd3502aba2781cdb87da48f9a16bc6c407d5e12ec888c3fd144f699f50c26934255feee621b2e81aa9156d1afd4e838698fd7be94 +1 -0
  42. package/dist/templates/demo-store/.cache/content-v2/sha512/9c/93/917e1b17263467c1baa4f0ef3e5f0a24cf28fc88f290532df19a48d5364d0ca64ef4b5296581cec1e94c5b9a896174e7dd67f42c44ab0482ecbbedf46b3a +1 -0
  43. package/dist/templates/demo-store/.cache/content-v2/sha512/9e/2e/945fdc4a4fb8c2186645c71b48ef341e6f0da2a6b3ddd38761210fcf713c2249160f87387ac66547fa30732269fbf9ad6b24b6c6a50ae914284b96be8571 +1 -0
  44. package/dist/templates/demo-store/.cache/content-v2/sha512/9f/e5/f8840af1702b9e2e9005708f2513779d889a88d8d7379d5d93cf28390fd6c0300ba5cac0fe429d67a22ddeb884f85917c73f4ae286328a5cf437f568b73f +1 -0
  45. package/dist/templates/demo-store/.cache/content-v2/sha512/a0/92/dc5bc315864cebde3ccd84e2a2e4228d8f467aa14efdcc3ef13b8815abbf495afeccb531cc4e049fe4d81d0b3e5afc0139b4450fb2cfca2b2c82cdd450ac +1 -0
  46. package/dist/templates/demo-store/.cache/content-v2/sha512/aa/85/daa1447b7715eafed15469bb5fdce67152d71416d2c40db224480ca151019a7ee86ea5b81ddeb85f7bdae453dab2021886ba63e85b0303ab20bc7b712ea4 +1 -0
  47. package/dist/templates/demo-store/.cache/content-v2/sha512/ad/44/f00b1b89c5d7778be4cd40cff421c77e97a937e945491777256fafa6ac80cc334b7118b4248fd13c3cb7fb37d86e1b54afaf688b295542694f276d359082 +1 -0
  48. package/dist/templates/demo-store/.cache/content-v2/sha512/b0/02/9ef55507e114e4391048df8e43101c006d5b3852e33450030d3ba974d438dd3ac489b084b15445ff5e1747e642eda2d969a13c8ba5a778669f9ab019789a +1 -0
  49. package/dist/templates/demo-store/.cache/content-v2/sha512/ba/08/9238d2f1bec0536eed757ab6583e384da966814a1c83896409f032bb673a056d62bb6f3b8a5bef36d61daf0e15617154b106b3bbc721354690bc930bb649 +1 -0
  50. package/dist/templates/demo-store/.cache/content-v2/sha512/bc/33/6e26ece5ac53d9eac9ac8a192ef39faf2a587a5808253c659fb1d371c477fc8074d428c8d1929b0d85dd1fec66fc79ea6b9fcb01507e2efec75fb7fbc2cc +1 -0
  51. package/dist/templates/demo-store/.cache/content-v2/sha512/be/33/7a64881c125a7ff913866bb1818d3fd54d10d837c5a66b6e8f39b9be9e12d352d060f365a62b070414995afb4e90ce70e3d0d31423e6f6fa4e02141e9e9d +1 -0
  52. package/dist/templates/demo-store/.cache/content-v2/sha512/c5/5a/e35359eb2d580bc01b459208e8911fb606223ae88c095db8174d0400824626bc8cf02c869c11d3b751774fafc52555243ed0ea6d6e3c072ef990a4f41461 +1 -0
  53. package/dist/templates/demo-store/.cache/content-v2/sha512/cd/6c/8525b5108666cbe3305a4ad413c0ea863878337b0621eaff9443c170e2f4afe6a0b0ece9ea5ee6777f37b483dede689e86734350430416bde47553bdaf7c +1 -0
  54. package/dist/templates/demo-store/.cache/content-v2/sha512/d4/79/8b69e57b3c37d1b04f2734fef377858aaa753467733fc2545b45556e0ae2d066c0180fa34c3a93b625db353ee070b82ad24f3b8dd2a2513aac4fcdc55154 +1 -0
  55. package/dist/templates/demo-store/.cache/content-v2/sha512/d5/f6/e56af7190da8a8ba31ae458ad2b1cbfc0cd10a449248348eb92dd8a7de2819c284525513e3082fcd3b1bfdddbe2135bda8bf827cef58bc95abb8a3c83278 +1 -0
  56. package/dist/templates/demo-store/.cache/content-v2/sha512/d7/9e/450b29d4cb47831fc3235642c3f4c461d3fb8f8c0ee567aeed2d51d3c0eb6d2e0cfabcf0dbe709ff99d3ba04ead42c75b06efe396aae4939163884cbfec5 +1 -0
  57. package/dist/templates/demo-store/.cache/content-v2/sha512/da/84/b6d27e02f9b109d7cff3095b08e2e2ed1802c8b6829c98f6e297d1c404059f8bacfdc278afd07e2f81cbc487318396a3775037b678ab6aff9a5231c94c0d +1 -0
  58. package/dist/templates/demo-store/.cache/content-v2/sha512/dc/0a/58f1301ab9de7b2c6b01d5d5b3676416048c9a42e4140ce4149d242da4d1d7b009bd9f911cf5860628ede86c7d30f4e827c502b8b4f365de6d7e7378ca94 +1 -0
  59. package/dist/templates/demo-store/.cache/content-v2/sha512/dd/b0/b95c68e126e3b0ceeb4c28f6d9cfd165597001d03c7287a9d2fe632cd166c442a578b55ddbb757b72202dcdd49586de80d54cb98ec439d0bd99c0023d6f6 +1 -0
  60. package/dist/templates/demo-store/.cache/content-v2/sha512/e2/6e/b769bab909900c19709f3779dde41268bd5bad463f233c1a4934aefc4af01ba532b0ec73776e874427e110710069e5c2c0aeb4debeef9827a21cc8d3364d +1 -0
  61. package/dist/templates/demo-store/.cache/content-v2/sha512/e8/ae/9b467e1d23913d4584d9417875b3cdc25f6dfed8b228f3a0c818129010b778aae1af1eb200b015ab428e79afe0ef1061262392fbdb96ed7da95efbe7f758 +1 -0
  62. package/dist/templates/demo-store/.cache/content-v2/sha512/ec/08/68aa37fb6cee7b8ad4e1c4ee9d352d626db39c1f6b1ed71530e5943d1575127e82f636bdab2fa00b90581c3829db9bf4d3ef4130024ef224c8a48b4d7df2 +1 -0
  63. package/dist/templates/demo-store/.cache/content-v2/sha512/ed/74/dda12abc4e0e3d645725a3b240b3874262c153ae37fe7a2991d5b6aa7564b5adf8080d262c0be4f841747ca359db51d58b004b7eed8330f27a739b9e3a46 +1 -0
  64. package/dist/templates/demo-store/.cache/content-v2/sha512/fd/f3/986b7ee5ea5ad1d89af5c08de69d43c025b54381092e0a19fd7e7a1e0352552aa85c056315ce5e11a46ec75a252b1a44e2083abb73cd6df8407dfdb0ac48 +1 -0
  65. package/dist/templates/demo-store/.cache/index-v5/06/7e/7376a38676aa7f0543ab03fc451602dab8ad66e6ddebc44d94ee6f5c1df2 +2 -0
  66. package/dist/templates/demo-store/.cache/index-v5/06/84/719070270981ac7d003eefa98569d499d2d93dd2f1828da9825b87d03160 +2 -0
  67. package/dist/templates/demo-store/.cache/index-v5/08/b4/0d9cf6db265587df0990c07ef4bc1e61fa9fe85d6cfe4d6cbbf839c2313c +2 -0
  68. package/dist/templates/demo-store/.cache/index-v5/09/f6/fe4b05c4157320b8b59b3f84116195be0437d87357d743d21acd638a4606 +2 -0
  69. package/dist/templates/demo-store/.cache/index-v5/0a/75/d3baf53012b62018cb60557f47601d810ec57c564bdc0b24c4990c73a833 +2 -0
  70. package/dist/templates/demo-store/.cache/index-v5/0c/43/721b2c2b054af973286c2ea3c51c612d347365682b5aae5b9e98554f91e1 +2 -0
  71. package/dist/templates/demo-store/.cache/index-v5/12/83/1a44e36774d9014fe186e18a3691e1ec3f37f2c30c22d38787a3cd157d7f +2 -0
  72. package/dist/templates/demo-store/.cache/index-v5/13/bd/14a326bd4cb6fb280eb85ecca60d6519738bf7e80df5285ec626d129baf3 +2 -0
  73. package/dist/templates/demo-store/.cache/index-v5/19/b1/b0877b4141a2ee6f7c173e2407c0b26958c0919238934a89a03049397aec +2 -0
  74. package/dist/templates/demo-store/.cache/index-v5/1b/6a/418ff1309326b48db3963d5ad40eacb0728d138b7f24896390e484b34c50 +2 -0
  75. package/dist/templates/demo-store/.cache/index-v5/24/d9/e0e8006f3c8deb17314475a674698161e207f116d9056bf0e1aabfa6c430 +2 -0
  76. package/dist/templates/demo-store/.cache/index-v5/28/f4/466108ec4c6619222c94f178cc3962ed49f5f9a1e3783ad55335de0cdad3 +2 -0
  77. package/dist/templates/demo-store/.cache/index-v5/2e/ae/45167cd92f49c852d660e05a29b7484c886b3c0579fb9c148162b1a88fb6 +2 -0
  78. package/dist/templates/demo-store/.cache/index-v5/35/95/be51ab071b6bd2259e4acb91185c5e0affeee223c15a822ba226607d5616 +2 -0
  79. package/dist/templates/demo-store/.cache/index-v5/36/74/12368a4a642be74c83dfdb5eaca244dc624ca78c3528edc49262807f9f96 +2 -0
  80. package/dist/templates/demo-store/.cache/index-v5/37/56/4cbfef349acf26ffb05aa7f17742913d7bd956c920a5bb1941ca0dda3a22 +2 -0
  81. package/dist/templates/demo-store/.cache/index-v5/3b/e5/5841b3445af43a34c7b560d6cf329ade1bfb64584b85fbb10ac4a7313ef4 +2 -0
  82. package/dist/templates/demo-store/.cache/index-v5/40/67/0807c50d176836338cf5fe4864622d377a143dc97f0a86a702bf11dd7d72 +2 -0
  83. package/dist/templates/demo-store/.cache/index-v5/45/4b/1a3af253b3e2ef123d3872ad54d71865cc788ff5373a00414d2ae0243421 +2 -0
  84. package/dist/templates/demo-store/.cache/index-v5/4f/8a/4672c73b9b76b90b7b378fbf9bc1a09426d0b5dbe97404e1f1f5a354013c +2 -0
  85. package/dist/templates/demo-store/.cache/index-v5/51/da/70f3331e7c62bab563cf9f86297b1bda6f6215420807d7710aaee0b8ca5d +2 -0
  86. package/dist/templates/demo-store/.cache/index-v5/55/0e/4666f091383137a5168d8052b246b3a7a28e05215dc7d8ff7f6b921f0142 +2 -0
  87. package/dist/templates/demo-store/.cache/index-v5/58/93/287077465c80a2bfba306f218e51893019895137562df4a116326a0b222a +2 -0
  88. package/dist/templates/demo-store/.cache/index-v5/61/d4/edd3f3713e7e144ff99d6920736fddfa8676eb5ab824f3f97cf65fa250ea +2 -0
  89. package/dist/templates/demo-store/.cache/index-v5/68/63/f781b7764101dfe1c192f68e1083513974e2396c9db609adf220a983bd88 +2 -0
  90. package/dist/templates/demo-store/.cache/index-v5/68/f1/4a98caa6e2ab43e78781b99c7833cab4e722cd716bf9718e001a43efb27b +2 -0
  91. package/dist/templates/demo-store/.cache/index-v5/7d/de/0d76288297eecd2ad4b07dd881631b481b19a83f7c9d36cfa4f967332943 +2 -0
  92. package/dist/templates/demo-store/.cache/index-v5/7e/12/528dc5a6aebfe1fb1d5b4b7d56097f25291dd9454e0ab8faa0a26f296815 +2 -0
  93. package/dist/templates/demo-store/.cache/index-v5/7e/bf/17c5f07b52df7946e14e733afa8f3880a40c1032bd3fb307cae4319e0fa8 +2 -0
  94. package/dist/templates/demo-store/.cache/index-v5/81/59/14da935263d86e18f99d2391d6731d29cd2d5c0d8c81c65293816e6ad32a +2 -0
  95. package/dist/templates/demo-store/.cache/index-v5/85/85/0475166b36ce12e75c5a6352b12ea2fa872f696b8161dd08fdfab09a7273 +2 -0
  96. package/dist/templates/demo-store/.cache/index-v5/88/bd/84904435de02c12b5b01c5aadd782e65a48d44006d98b864e01961a109dc +2 -0
  97. package/dist/templates/demo-store/.cache/index-v5/88/f6/729e4bad26ebd2b792dee6d1f96f87546ff9c4fa95518f603627fdd1126f +2 -0
  98. package/dist/templates/demo-store/.cache/index-v5/8a/7c/f5287da63fd3884889fef7019b2679f9a53ce5a268097295682ddad5131b +2 -0
  99. package/dist/templates/demo-store/.cache/index-v5/95/40/bed10ab9e6081915bc6dc1ffb23a589f407c22ab7d254453f0b3ce53e5f5 +2 -0
  100. package/dist/templates/demo-store/.cache/index-v5/96/b8/090abc56d6e9489d08af9564fb75d34477730aa1ece14ad85ba516549f2b +2 -0
  101. package/dist/templates/demo-store/.cache/index-v5/9b/e4/8aa4e95d52644490afdb862c05cb2dccb9f5c1aa45157f3af5c37aad080a +2 -0
  102. package/dist/templates/demo-store/.cache/index-v5/a1/e7/85ee850c85c329791d2123dd8231464fa27317290756b459012830d0f57e +2 -0
  103. package/dist/templates/demo-store/.cache/index-v5/a2/27/f2e299e50a8a3b2b54a89bb3be85f3118081b3c6cfed704bb7d2802e2a49 +2 -0
  104. package/dist/templates/demo-store/.cache/index-v5/a2/88/971871174c14875c70ca7bc9cea8d6b01465c1716d99440b059fa493947c +2 -0
  105. package/dist/templates/demo-store/.cache/index-v5/aa/57/05b67f08f71909d263fe9c357786097f5683394dbd65b0e4da2f9aa25288 +2 -0
  106. package/dist/templates/demo-store/.cache/index-v5/ac/25/d778b282ab78dbafcc1b4fb19695aed368081c76fa680140b89af08b07b1 +2 -0
  107. package/dist/templates/demo-store/.cache/index-v5/ad/f9/09a060689bb686417e37a22fcf4866b6188f58eff7128f7979a4a68a6b2d +2 -0
  108. package/dist/templates/demo-store/.cache/index-v5/af/79/e80586a8b4bd0086246d97823d95bd64c77ad44b1fae591fdcd3883f776e +2 -0
  109. package/dist/templates/demo-store/.cache/index-v5/b8/22/805af62bf21b63052b47f2f85322cb615ee786c214c0abc63b593a9f80ac +2 -0
  110. package/dist/templates/demo-store/.cache/index-v5/b8/67/17d551f86553b2a3a30c80b1d9797cbfcaa3d00f5239f39c1727c4d4fe8e +2 -0
  111. package/dist/templates/demo-store/.cache/index-v5/bc/52/538f70c9e2857f944f17c9121f6018d5c26ba916801b78d75484b130cd78 +2 -0
  112. package/dist/templates/demo-store/.cache/index-v5/c1/77/182e74b8e456fd321a98e8b23f5616eaf2968ccc0dd0eeff016624a89534 +2 -0
  113. package/dist/templates/demo-store/.cache/index-v5/c2/b6/58c9b05294374187ca9a342d46ed1b1f9e0afaf619acf88014f7f1a5dd8b +2 -0
  114. package/dist/templates/demo-store/.cache/index-v5/c6/72/887059f60c91b6fa41fbdab6bc1e1b6f4e3596cadd7a22457466fc1c2f67 +2 -0
  115. package/dist/templates/demo-store/.cache/index-v5/c8/52/09bfbca72b45aec745fc339c27986edefa85e40bd69113275a6ecd6495e9 +2 -0
  116. package/dist/templates/demo-store/.cache/index-v5/cb/f3/c8983d3f6b148ff6b70a42e0c3ccc4ca2f368df0aca086b8f0279d49f5be +2 -0
  117. package/dist/templates/demo-store/.cache/index-v5/d0/c4/d960260ece228d28f70e317741b3f3f3df05c53956d870235837ae2b73b4 +2 -0
  118. package/dist/templates/demo-store/.cache/index-v5/d2/7b/9476cfbc06c75a311a1951bcdea3b843d3f8763c916468901c3cd85ae7a4 +2 -0
  119. package/dist/templates/demo-store/.cache/index-v5/d7/2f/11fb6fd9a383d1edb40e2a774ca2de45a4f4b2c02e3f10d772427ef813d1 +2 -0
  120. package/dist/templates/demo-store/.cache/index-v5/d7/a8/e21243c97a68bff4874453358b21815d4dc4c804b63fce7cba9cc567c3d6 +2 -0
  121. package/dist/templates/demo-store/.cache/index-v5/db/34/e258d66ddeae0e8df2f3a92f0fc0a0472adc9b48c8d2f38087a828da4bc0 +2 -0
  122. package/dist/templates/demo-store/.cache/index-v5/de/8a/31224d2c63a17ccc13c25e35f4e5882c9a5f5553a3ffeb916c84aa73a15d +2 -0
  123. package/dist/templates/demo-store/.cache/index-v5/e0/9c/a50143959e2a05f23db12f6e7f9982a0889c4105004c9f58115f9fdb19e0 +2 -0
  124. package/dist/templates/demo-store/.cache/index-v5/f3/45/ed5a71628f7babbcd96f9d316ba1a9a7cdea5be1ef54d931ed5d6fcbfc21 +2 -0
  125. package/dist/templates/demo-store/.cache/index-v5/f4/20/fefac33b4499a27824ee7ef5a84779df38eca55b00ec3046fcb028efb593 +2 -0
  126. package/dist/templates/demo-store/.cache/index-v5/f6/1d/25c4d10714262d4559d2c43d3e64ebfc038d37b0edbbf02246bdd6dcdacb +2 -0
  127. package/dist/templates/demo-store/.cache/index-v5/f8/f2/017d33a8105299b5a1d72ea80b7cce0d4bafbcd8409437a212735325631a +2 -0
  128. package/dist/templates/demo-store/.cache/index-v5/fd/f2/f7f55dae9bf6b65ea883eb44dc2fd24a2d2a97c5b68cb559255c6574d239 +2 -0
  129. package/dist/templates/demo-store/.hydrogen/routes/[route-manifest.json].tsx +54 -0
  130. package/dist/templates/demo-store/.hydrogen/routes/admin.tsx +15 -0
  131. package/dist/templates/demo-store/_env +6 -0
  132. package/dist/templates/demo-store/_gitignore +14 -0
  133. package/dist/templates/demo-store/app/styles/app.css +4203 -0
  134. package/dist/templates/demo-store/dist/client/build/_.._/.hydrogen/routes/[route-manifest.json]-BIPZTJVN.js +2 -0
  135. package/dist/templates/demo-store/dist/client/build/_.._/.hydrogen/routes/[route-manifest.json]-BIPZTJVN.js.map +7 -0
  136. package/dist/templates/demo-store/dist/client/build/_.._/.hydrogen/routes/admin-G2IKFE47.js +2 -0
  137. package/dist/templates/demo-store/dist/client/build/_.._/.hydrogen/routes/admin-G2IKFE47.js.map +7 -0
  138. package/dist/templates/demo-store/dist/client/build/_assets/app-QCTC5PWY.css +4203 -0
  139. package/dist/templates/demo-store/dist/client/build/_assets/custom-font-COCMVHUB.css +13 -0
  140. package/dist/templates/demo-store/dist/client/build/_assets/favicon-5FIZBM2K.svg +28 -0
  141. package/dist/templates/demo-store/dist/client/build/_shared/chunk-3CERGUQT.js +2 -0
  142. package/dist/templates/demo-store/dist/client/build/_shared/chunk-3CERGUQT.js.map +7 -0
  143. package/dist/templates/demo-store/dist/client/build/_shared/chunk-3RYZL4SD.js +2 -0
  144. package/dist/templates/demo-store/dist/client/build/_shared/chunk-3RYZL4SD.js.map +7 -0
  145. package/dist/templates/demo-store/dist/client/build/_shared/chunk-4GXS2URF.js +2 -0
  146. package/dist/templates/demo-store/dist/client/build/_shared/chunk-4GXS2URF.js.map +7 -0
  147. package/dist/templates/demo-store/dist/client/build/_shared/chunk-4ROFW2VH.js +2 -0
  148. package/dist/templates/demo-store/dist/client/build/_shared/chunk-4ROFW2VH.js.map +7 -0
  149. package/dist/templates/demo-store/dist/client/build/_shared/chunk-63VE24M5.js +133 -0
  150. package/dist/templates/demo-store/dist/client/build/_shared/chunk-63VE24M5.js.map +7 -0
  151. package/dist/templates/demo-store/dist/client/build/_shared/chunk-6IZ7NY57.js +2 -0
  152. package/dist/templates/demo-store/dist/client/build/_shared/chunk-6IZ7NY57.js.map +7 -0
  153. package/dist/templates/demo-store/dist/client/build/_shared/chunk-6RKYTPO7.js +27 -0
  154. package/dist/templates/demo-store/dist/client/build/_shared/chunk-6RKYTPO7.js.map +7 -0
  155. package/dist/templates/demo-store/dist/client/build/_shared/chunk-ALSZP6XO.js +83 -0
  156. package/dist/templates/demo-store/dist/client/build/_shared/chunk-ALSZP6XO.js.map +7 -0
  157. package/dist/templates/demo-store/dist/client/build/_shared/chunk-AOOMA6GB.js +2 -0
  158. package/dist/templates/demo-store/dist/client/build/_shared/chunk-AOOMA6GB.js.map +7 -0
  159. package/dist/templates/demo-store/dist/client/build/_shared/chunk-AYHDHSL7.js +2 -0
  160. package/dist/templates/demo-store/dist/client/build/_shared/chunk-AYHDHSL7.js.map +7 -0
  161. package/dist/templates/demo-store/dist/client/build/_shared/chunk-BY6S7IS7.js +2 -0
  162. package/dist/templates/demo-store/dist/client/build/_shared/chunk-BY6S7IS7.js.map +7 -0
  163. package/dist/templates/demo-store/dist/client/build/_shared/chunk-C4WAPTNR.js +2 -0
  164. package/dist/templates/demo-store/dist/client/build/_shared/chunk-C4WAPTNR.js.map +7 -0
  165. package/dist/templates/demo-store/dist/client/build/_shared/chunk-GV33UIO4.js +2 -0
  166. package/dist/templates/demo-store/dist/client/build/_shared/chunk-GV33UIO4.js.map +7 -0
  167. package/dist/templates/demo-store/dist/client/build/_shared/chunk-HX34UWFZ.js +7 -0
  168. package/dist/templates/demo-store/dist/client/build/_shared/chunk-HX34UWFZ.js.map +7 -0
  169. package/dist/templates/demo-store/dist/client/build/_shared/chunk-JV4GUPYG.js +2 -0
  170. package/dist/templates/demo-store/dist/client/build/_shared/chunk-JV4GUPYG.js.map +7 -0
  171. package/dist/templates/demo-store/dist/client/build/_shared/chunk-KSKV5IK6.js +20 -0
  172. package/dist/templates/demo-store/dist/client/build/_shared/chunk-KSKV5IK6.js.map +7 -0
  173. package/dist/templates/demo-store/dist/client/build/_shared/chunk-LNLOHMUB.js +32 -0
  174. package/dist/templates/demo-store/dist/client/build/_shared/chunk-LNLOHMUB.js.map +7 -0
  175. package/dist/templates/demo-store/dist/client/build/_shared/chunk-LSI6EG4I.js +2 -0
  176. package/dist/templates/demo-store/dist/client/build/_shared/chunk-LSI6EG4I.js.map +7 -0
  177. package/dist/templates/demo-store/dist/client/build/_shared/chunk-LYYN6DNQ.js +2 -0
  178. package/dist/templates/demo-store/dist/client/build/_shared/chunk-LYYN6DNQ.js.map +7 -0
  179. package/dist/templates/demo-store/dist/client/build/_shared/chunk-MIBUUBFO.js +2 -0
  180. package/dist/templates/demo-store/dist/client/build/_shared/chunk-MIBUUBFO.js.map +7 -0
  181. package/dist/templates/demo-store/dist/client/build/_shared/chunk-NJK6XHPK.js +2 -0
  182. package/dist/templates/demo-store/dist/client/build/_shared/chunk-NJK6XHPK.js.map +7 -0
  183. package/dist/templates/demo-store/dist/client/build/_shared/chunk-OC3377HQ.js +105 -0
  184. package/dist/templates/demo-store/dist/client/build/_shared/chunk-OC3377HQ.js.map +7 -0
  185. package/dist/templates/demo-store/dist/client/build/_shared/chunk-RBLOPOSG.js +2 -0
  186. package/dist/templates/demo-store/dist/client/build/_shared/chunk-RBLOPOSG.js.map +7 -0
  187. package/dist/templates/demo-store/dist/client/build/_shared/chunk-RTZIY6AR.js +68 -0
  188. package/dist/templates/demo-store/dist/client/build/_shared/chunk-RTZIY6AR.js.map +7 -0
  189. package/dist/templates/demo-store/dist/client/build/_shared/chunk-S4E36YX5.js +2 -0
  190. package/dist/templates/demo-store/dist/client/build/_shared/chunk-S4E36YX5.js.map +7 -0
  191. package/dist/templates/demo-store/dist/client/build/_shared/chunk-UCP7TDFX.js +24 -0
  192. package/dist/templates/demo-store/dist/client/build/_shared/chunk-UCP7TDFX.js.map +7 -0
  193. package/dist/templates/demo-store/dist/client/build/_shared/chunk-V5EUNG45.js +25 -0
  194. package/dist/templates/demo-store/dist/client/build/_shared/chunk-V5EUNG45.js.map +7 -0
  195. package/dist/templates/demo-store/dist/client/build/_shared/chunk-WYHUKY3H.js +2 -0
  196. package/dist/templates/demo-store/dist/client/build/_shared/chunk-WYHUKY3H.js.map +7 -0
  197. package/dist/templates/demo-store/dist/client/build/_shared/chunk-X2L7EU2T.js +2 -0
  198. package/dist/templates/demo-store/dist/client/build/_shared/chunk-X2L7EU2T.js.map +7 -0
  199. package/dist/templates/demo-store/dist/client/build/_shared/chunk-X4LCECW4.js +2 -0
  200. package/dist/templates/demo-store/dist/client/build/_shared/chunk-X4LCECW4.js.map +7 -0
  201. package/dist/templates/demo-store/dist/client/build/_shared/chunk-XDBJQDOE.js +2 -0
  202. package/dist/templates/demo-store/dist/client/build/_shared/chunk-XDBJQDOE.js.map +7 -0
  203. package/dist/templates/demo-store/dist/client/build/_shared/chunk-XJLYC4WF.js +54 -0
  204. package/dist/templates/demo-store/dist/client/build/_shared/chunk-XJLYC4WF.js.map +7 -0
  205. package/dist/templates/demo-store/dist/client/build/_shared/chunk-YGLSE5Z5.js +2 -0
  206. package/dist/templates/demo-store/dist/client/build/_shared/chunk-YGLSE5Z5.js.map +7 -0
  207. package/dist/templates/demo-store/dist/client/build/_shared/chunk-ZNLABNO4.js +66 -0
  208. package/dist/templates/demo-store/dist/client/build/_shared/chunk-ZNLABNO4.js.map +7 -0
  209. package/dist/templates/demo-store/dist/client/build/entry.client-UGG4BFNY.js +2 -0
  210. package/dist/templates/demo-store/dist/client/build/entry.client-UGG4BFNY.js.map +7 -0
  211. package/dist/templates/demo-store/dist/client/build/manifest-78BD90E6.js +1 -0
  212. package/dist/templates/demo-store/dist/client/build/root-LDM5SSFY.js +32 -0
  213. package/dist/templates/demo-store/dist/client/build/root-LDM5SSFY.js.map +7 -0
  214. package/dist/templates/demo-store/dist/client/build/routes/$-T6CCBQXB.js +2 -0
  215. package/dist/templates/demo-store/dist/client/build/routes/$-T6CCBQXB.js.map +7 -0
  216. package/dist/templates/demo-store/dist/client/build/routes/$lang/$-RML44FPI.js +2 -0
  217. package/dist/templates/demo-store/dist/client/build/routes/$lang/$-RML44FPI.js.map +7 -0
  218. package/dist/templates/demo-store/dist/client/build/routes/$lang/[robots.txt]-Q6A4ELVO.js +2 -0
  219. package/dist/templates/demo-store/dist/client/build/routes/$lang/[robots.txt]-Q6A4ELVO.js.map +7 -0
  220. package/dist/templates/demo-store/dist/client/build/routes/$lang/[sitemap.xml]-XRXAWWFM.js +2 -0
  221. package/dist/templates/demo-store/dist/client/build/routes/$lang/[sitemap.xml]-XRXAWWFM.js.map +7 -0
  222. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__private/address/$id-3CPMYDWB.js +2 -0
  223. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__private/address/$id-3CPMYDWB.js.map +7 -0
  224. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__private/edit-KUSSPNLG.js +2 -0
  225. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__private/edit-KUSSPNLG.js.map +7 -0
  226. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__private/logout-W2VRZWGS.js +2 -0
  227. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__private/logout-W2VRZWGS.js.map +7 -0
  228. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__private/orders.$id-6XB7QE3Z.js +2 -0
  229. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__private/orders.$id-6XB7QE3Z.js.map +7 -0
  230. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/activate.$id.$activationToken-XURZGKY5.js +2 -0
  231. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/activate.$id.$activationToken-XURZGKY5.js.map +7 -0
  232. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/login-ICCBTETC.js +2 -0
  233. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/login-ICCBTETC.js.map +7 -0
  234. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/recover-NCBS3PRT.js +2 -0
  235. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/recover-NCBS3PRT.js.map +7 -0
  236. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/register-OQDSIXDB.js +2 -0
  237. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/register-OQDSIXDB.js.map +7 -0
  238. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/reset.$id.$resetToken-BC773EWT.js +2 -0
  239. package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/reset.$id.$resetToken-BC773EWT.js.map +7 -0
  240. package/dist/templates/demo-store/dist/client/build/routes/$lang/account-UCAHSQYN.js +2 -0
  241. package/dist/templates/demo-store/dist/client/build/routes/$lang/account-UCAHSQYN.js.map +7 -0
  242. package/dist/templates/demo-store/dist/client/build/routes/$lang/api/countries-D74K7HOY.js +2 -0
  243. package/dist/templates/demo-store/dist/client/build/routes/$lang/api/countries-D74K7HOY.js.map +7 -0
  244. package/dist/templates/demo-store/dist/client/build/routes/$lang/api/products-LVMWKMBH.js +2 -0
  245. package/dist/templates/demo-store/dist/client/build/routes/$lang/api/products-LVMWKMBH.js.map +7 -0
  246. package/dist/templates/demo-store/dist/client/build/routes/$lang/cart-UVXZT4M5.js +2 -0
  247. package/dist/templates/demo-store/dist/client/build/routes/$lang/cart-UVXZT4M5.js.map +7 -0
  248. package/dist/templates/demo-store/dist/client/build/routes/$lang/collections/$collectionHandle-IXHYLA76.js +2 -0
  249. package/dist/templates/demo-store/dist/client/build/routes/$lang/collections/$collectionHandle-IXHYLA76.js.map +7 -0
  250. package/dist/templates/demo-store/dist/client/build/routes/$lang/collections/all-I3ZQ3MBD.js +2 -0
  251. package/dist/templates/demo-store/dist/client/build/routes/$lang/collections/all-I3ZQ3MBD.js.map +7 -0
  252. package/dist/templates/demo-store/dist/client/build/routes/$lang/collections/index-LFW7EEWJ.js +2 -0
  253. package/dist/templates/demo-store/dist/client/build/routes/$lang/collections/index-LFW7EEWJ.js.map +7 -0
  254. package/dist/templates/demo-store/dist/client/build/routes/$lang/featured-products-UU24CXMU.js +2 -0
  255. package/dist/templates/demo-store/dist/client/build/routes/$lang/featured-products-UU24CXMU.js.map +7 -0
  256. package/dist/templates/demo-store/dist/client/build/routes/$lang/index-C53BLYRE.js +2 -0
  257. package/dist/templates/demo-store/dist/client/build/routes/$lang/index-C53BLYRE.js.map +7 -0
  258. package/dist/templates/demo-store/dist/client/build/routes/$lang/journal/$journalHandle-JIHENEIT.js +2 -0
  259. package/dist/templates/demo-store/dist/client/build/routes/$lang/journal/$journalHandle-JIHENEIT.js.map +7 -0
  260. package/dist/templates/demo-store/dist/client/build/routes/$lang/journal/index-Y3BHQBEG.js +2 -0
  261. package/dist/templates/demo-store/dist/client/build/routes/$lang/journal/index-Y3BHQBEG.js.map +7 -0
  262. package/dist/templates/demo-store/dist/client/build/routes/$lang/og-image-JHBOIC2Z.js +2 -0
  263. package/dist/templates/demo-store/dist/client/build/routes/$lang/og-image-JHBOIC2Z.js.map +7 -0
  264. package/dist/templates/demo-store/dist/client/build/routes/$lang/pages/$pageHandle-UAXAZ3DG.js +2 -0
  265. package/dist/templates/demo-store/dist/client/build/routes/$lang/pages/$pageHandle-UAXAZ3DG.js.map +7 -0
  266. package/dist/templates/demo-store/dist/client/build/routes/$lang/policies/$policyHandle-6OJWYHRC.js +2 -0
  267. package/dist/templates/demo-store/dist/client/build/routes/$lang/policies/$policyHandle-6OJWYHRC.js.map +7 -0
  268. package/dist/templates/demo-store/dist/client/build/routes/$lang/policies/index-NSX5XJI5.js +2 -0
  269. package/dist/templates/demo-store/dist/client/build/routes/$lang/policies/index-NSX5XJI5.js.map +7 -0
  270. package/dist/templates/demo-store/dist/client/build/routes/$lang/products/$productHandle-2Y4OD7YF.js +2 -0
  271. package/dist/templates/demo-store/dist/client/build/routes/$lang/products/$productHandle-2Y4OD7YF.js.map +7 -0
  272. package/dist/templates/demo-store/dist/client/build/routes/$lang/products/index-7DNEY6RA.js +2 -0
  273. package/dist/templates/demo-store/dist/client/build/routes/$lang/products/index-7DNEY6RA.js.map +7 -0
  274. package/dist/templates/demo-store/dist/client/build/routes/$lang/search-FFWHIHND.js +2 -0
  275. package/dist/templates/demo-store/dist/client/build/routes/$lang/search-FFWHIHND.js.map +7 -0
  276. package/dist/templates/demo-store/dist/client/build/routes/[robots.txt]-JOBE7OD7.js +2 -0
  277. package/dist/templates/demo-store/dist/client/build/routes/[robots.txt]-JOBE7OD7.js.map +7 -0
  278. package/dist/templates/demo-store/dist/client/build/routes/[sitemap.xml]-UQB7RN5M.js +2 -0
  279. package/dist/templates/demo-store/dist/client/build/routes/[sitemap.xml]-UQB7RN5M.js.map +7 -0
  280. package/dist/templates/demo-store/dist/client/build/routes/account/__private/address/$id-7UWEFJPQ.js +2 -0
  281. package/dist/templates/demo-store/dist/client/build/routes/account/__private/address/$id-7UWEFJPQ.js.map +7 -0
  282. package/dist/templates/demo-store/dist/client/build/routes/account/__private/edit-P6H3SMMC.js +2 -0
  283. package/dist/templates/demo-store/dist/client/build/routes/account/__private/edit-P6H3SMMC.js.map +7 -0
  284. package/dist/templates/demo-store/dist/client/build/routes/account/__private/logout-MRH6DVPZ.js +2 -0
  285. package/dist/templates/demo-store/dist/client/build/routes/account/__private/logout-MRH6DVPZ.js.map +7 -0
  286. package/dist/templates/demo-store/dist/client/build/routes/account/__private/orders.$id-WRZR7KFX.js +2 -0
  287. package/dist/templates/demo-store/dist/client/build/routes/account/__private/orders.$id-WRZR7KFX.js.map +7 -0
  288. package/dist/templates/demo-store/dist/client/build/routes/account/__public/activate.$id.$activationToken-MQJ7UCXL.js +2 -0
  289. package/dist/templates/demo-store/dist/client/build/routes/account/__public/activate.$id.$activationToken-MQJ7UCXL.js.map +7 -0
  290. package/dist/templates/demo-store/dist/client/build/routes/account/__public/login-PV6QK5VR.js +2 -0
  291. package/dist/templates/demo-store/dist/client/build/routes/account/__public/login-PV6QK5VR.js.map +7 -0
  292. package/dist/templates/demo-store/dist/client/build/routes/account/__public/recover-BPPSDCFU.js +2 -0
  293. package/dist/templates/demo-store/dist/client/build/routes/account/__public/recover-BPPSDCFU.js.map +7 -0
  294. package/dist/templates/demo-store/dist/client/build/routes/account/__public/register-FOWQ2VDD.js +2 -0
  295. package/dist/templates/demo-store/dist/client/build/routes/account/__public/register-FOWQ2VDD.js.map +7 -0
  296. package/dist/templates/demo-store/dist/client/build/routes/account/__public/reset.$id.$resetToken-HEH66LNH.js +2 -0
  297. package/dist/templates/demo-store/dist/client/build/routes/account/__public/reset.$id.$resetToken-HEH66LNH.js.map +7 -0
  298. package/dist/templates/demo-store/dist/client/build/routes/account-OVETQ7UE.js +2 -0
  299. package/dist/templates/demo-store/dist/client/build/routes/account-OVETQ7UE.js.map +7 -0
  300. package/dist/templates/demo-store/dist/client/build/routes/api/countries-FOQSZPCF.js +2 -0
  301. package/dist/templates/demo-store/dist/client/build/routes/api/countries-FOQSZPCF.js.map +7 -0
  302. package/dist/templates/demo-store/dist/client/build/routes/api/products-JQONOX4V.js +2 -0
  303. package/dist/templates/demo-store/dist/client/build/routes/api/products-JQONOX4V.js.map +7 -0
  304. package/dist/templates/demo-store/dist/client/build/routes/cart-CX5DA2OD.js +2 -0
  305. package/dist/templates/demo-store/dist/client/build/routes/cart-CX5DA2OD.js.map +7 -0
  306. package/dist/templates/demo-store/dist/client/build/routes/collections/$collectionHandle-S6W3L6G5.js +2 -0
  307. package/dist/templates/demo-store/dist/client/build/routes/collections/$collectionHandle-S6W3L6G5.js.map +7 -0
  308. package/dist/templates/demo-store/dist/client/build/routes/collections/all-EXLOY5Y6.js +2 -0
  309. package/dist/templates/demo-store/dist/client/build/routes/collections/all-EXLOY5Y6.js.map +7 -0
  310. package/dist/templates/demo-store/dist/client/build/routes/collections/index-LE6BMYRV.js +2 -0
  311. package/dist/templates/demo-store/dist/client/build/routes/collections/index-LE6BMYRV.js.map +7 -0
  312. package/dist/templates/demo-store/dist/client/build/routes/discounts.$code-ORRT2Y6X.js +2 -0
  313. package/dist/templates/demo-store/dist/client/build/routes/discounts.$code-ORRT2Y6X.js.map +7 -0
  314. package/dist/templates/demo-store/dist/client/build/routes/featured-products-ECR7IJXB.js +2 -0
  315. package/dist/templates/demo-store/dist/client/build/routes/featured-products-ECR7IJXB.js.map +7 -0
  316. package/dist/templates/demo-store/dist/client/build/routes/index-DPGHJVAI.js +2 -0
  317. package/dist/templates/demo-store/dist/client/build/routes/index-DPGHJVAI.js.map +7 -0
  318. package/dist/templates/demo-store/dist/client/build/routes/journal/$journalHandle-GK4XP5IH.js +2 -0
  319. package/dist/templates/demo-store/dist/client/build/routes/journal/$journalHandle-GK4XP5IH.js.map +7 -0
  320. package/dist/templates/demo-store/dist/client/build/routes/journal/index-DZH346LQ.js +2 -0
  321. package/dist/templates/demo-store/dist/client/build/routes/journal/index-DZH346LQ.js.map +7 -0
  322. package/dist/templates/demo-store/dist/client/build/routes/og-image-DYICG2WR.js +2 -0
  323. package/dist/templates/demo-store/dist/client/build/routes/og-image-DYICG2WR.js.map +7 -0
  324. package/dist/templates/demo-store/dist/client/build/routes/pages/$pageHandle-FSWWJUZK.js +2 -0
  325. package/dist/templates/demo-store/dist/client/build/routes/pages/$pageHandle-FSWWJUZK.js.map +7 -0
  326. package/dist/templates/demo-store/dist/client/build/routes/policies/$policyHandle-U2LKNOPS.js +2 -0
  327. package/dist/templates/demo-store/dist/client/build/routes/policies/$policyHandle-U2LKNOPS.js.map +7 -0
  328. package/dist/templates/demo-store/dist/client/build/routes/policies/index-OHYNKKT6.js +2 -0
  329. package/dist/templates/demo-store/dist/client/build/routes/policies/index-OHYNKKT6.js.map +7 -0
  330. package/dist/templates/demo-store/dist/client/build/routes/products/$productHandle-UNLU3NW6.js +2 -0
  331. package/dist/templates/demo-store/dist/client/build/routes/products/$productHandle-UNLU3NW6.js.map +7 -0
  332. package/dist/templates/demo-store/dist/client/build/routes/products/index-XFDNNZYK.js +2 -0
  333. package/dist/templates/demo-store/dist/client/build/routes/products/index-XFDNNZYK.js.map +7 -0
  334. package/dist/templates/demo-store/dist/client/build/routes/search-KWI45NMS.js +2 -0
  335. package/dist/templates/demo-store/dist/client/build/routes/search-KWI45NMS.js.map +7 -0
  336. package/dist/templates/demo-store/dist/client/favicon.svg +28 -0
  337. package/dist/templates/demo-store/dist/client/fonts/IBMPlexSerif-Text.woff2 +0 -0
  338. package/dist/templates/demo-store/dist/client/fonts/IBMPlexSerif-TextItalic.woff2 +0 -0
  339. package/dist/templates/demo-store/dist/worker/_assets/app-QCTC5PWY.css +4203 -0
  340. package/dist/templates/demo-store/dist/worker/_assets/custom-font-COCMVHUB.css +13 -0
  341. package/dist/templates/demo-store/dist/worker/_assets/favicon-5FIZBM2K.svg +28 -0
  342. package/dist/templates/demo-store/dist/worker/index.js +1572 -0
  343. package/dist/templates/demo-store/dist/worker/index.js.map +7 -0
  344. package/dist/templates/demo-store/package.json +1 -1
  345. package/dist/templates/demo-store/remix.init/index.mjs +25 -0
  346. package/dist/templates/hello-world/.cache/content-v2/sha512/34/81/da34a44efefe809149ec1298fc4031563cb2702c00c70fbd1d0392afa44e5a6bc535cbe5c34a6f379361a5991327c2023fb915b0f94940d21c42cc38a368 +1 -0
  347. package/dist/templates/hello-world/.cache/content-v2/sha512/fa/dd/9bc10a1cb1f145eabd96bdba509178e20484197fefd8469ace9f53bf277e875751db3c4dddf229807c48cbe8db19494fe2a5aab7d2a4b7ae8bebbd67509c +1 -0
  348. package/dist/templates/hello-world/.cache/index-v5/09/f6/fe4b05c4157320b8b59b3f84116195be0437d87357d743d21acd638a4606 +2 -0
  349. package/dist/templates/hello-world/.cache/index-v5/d0/c4/d960260ece228d28f70e317741b3f3f3df05c53956d870235837ae2b73b4 +2 -0
  350. package/dist/templates/hello-world/_env +6 -0
  351. package/dist/templates/hello-world/_gitignore +8 -0
  352. package/dist/templates/hello-world/dist/client/build/_assets/app-2MJQXVFI.css +38 -0
  353. package/dist/templates/hello-world/dist/client/build/_assets/favicon-5FIZBM2K.svg +28 -0
  354. package/dist/templates/hello-world/dist/client/build/_shared/chunk-P5MXKSMH.js +66 -0
  355. package/dist/templates/hello-world/dist/client/build/_shared/chunk-P5MXKSMH.js.map +7 -0
  356. package/dist/templates/hello-world/dist/client/build/_shared/chunk-UFW4O55J.js +20 -0
  357. package/dist/templates/hello-world/dist/client/build/_shared/chunk-UFW4O55J.js.map +7 -0
  358. package/dist/templates/hello-world/dist/client/build/entry.client-AX7FWGNS.js +27 -0
  359. package/dist/templates/hello-world/dist/client/build/entry.client-AX7FWGNS.js.map +7 -0
  360. package/dist/templates/hello-world/dist/client/build/manifest-7F090344.js +1 -0
  361. package/dist/templates/hello-world/dist/client/build/root-IVDOAS2B.js +2 -0
  362. package/dist/templates/hello-world/dist/client/build/root-IVDOAS2B.js.map +7 -0
  363. package/dist/templates/hello-world/dist/client/build/routes/index-TUNWZ4RV.js +2 -0
  364. package/dist/templates/hello-world/dist/client/build/routes/index-TUNWZ4RV.js.map +7 -0
  365. package/dist/templates/hello-world/dist/client/favicon.svg +28 -0
  366. package/dist/templates/hello-world/dist/worker/_assets/app-2MJQXVFI.css +38 -0
  367. package/dist/templates/hello-world/dist/worker/_assets/favicon-5FIZBM2K.svg +28 -0
  368. package/dist/templates/hello-world/dist/worker/index.js +257 -0
  369. package/dist/templates/hello-world/dist/worker/index.js.map +7 -0
  370. package/dist/templates/hello-world/package.json +1 -1
  371. package/dist/templates/hello-world/remix.init/index.mjs +25 -0
  372. package/dist/templates/hello-world/remix.init/package.json +7 -0
  373. package/package.json +1 -1
  374. package/tmp-create-app.mjs +7 -1
  375. package/dist/templates/demo-store/.turbo/turbo-build.log +0 -13
  376. package/dist/templates/demo-store/package-lock.json +0 -25515
  377. package/dist/templates/demo-store/remix.init/index.ts +0 -15
  378. package/dist/templates/hello-world/.turbo/turbo-build.log +0 -9
  379. package/dist/templates/hello-world/package-lock.json +0 -27641
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../node_modules/react/cjs/react.production.min.js", "../../../../node_modules/react/index.js", "../../../../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js", "../../../../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js", "../../../../node_modules/react-dom/server.browser.js", "../../../../node_modules/react/cjs/react-jsx-runtime.production.min.js", "../../../../node_modules/react/jsx-runtime.js", "../../../../node_modules/cookie/index.js", "../../../../node_modules/set-cookie-parser/lib/set-cookie.js", "server-entry-module:@remix-run/dev/server-build", "../../app/entry.server.tsx", "../../../../node_modules/history/index.js", "../../../../node_modules/@remix-run/react/dist/esm/_virtual/_rollupPluginBabelHelpers.js", "../../../../node_modules/@remix-run/react/dist/esm/components.js", "../../../../../packages/react-router/lib/context.ts", "../../../../../packages/react-router/lib/router.ts", "../../../../../packages/react-router/lib/hooks.tsx", "../../../../../packages/react-router/lib/components.tsx", "../../../../../packages/react-router-dom/index.tsx", "../../../../node_modules/@remix-run/deferred/dist/esm/index.js", "../../../../node_modules/@remix-run/react/dist/esm/errorBoundaries.js", "../../../../node_modules/@remix-run/react/dist/esm/invariant.js", "../../../../node_modules/@remix-run/react/dist/esm/routeModules.js", "../../../../node_modules/@remix-run/react/dist/esm/links.js", "../../../../node_modules/@remix-run/react/dist/esm/markup.js", "../../../../node_modules/@remix-run/react/dist/esm/routes.js", "../../../../node_modules/@remix-run/react/dist/esm/data.js", "../../../../node_modules/@remix-run/react/dist/esm/routeMatching.js", "../../../../node_modules/@remix-run/react/dist/esm/transition.js", "../../../../node_modules/@remix-run/react/dist/esm/scroll-restoration.js", "../../../../node_modules/@remix-run/react/dist/esm/server.js", "../../app/root.tsx", "../../../../node_modules/@remix-run/server-runtime/dist/esm/cookies.js", "../../../../node_modules/@remix-run/server-runtime/dist/esm/warnings.js", "../../../../node_modules/@remix-run/server-runtime/dist/esm/responses.js", "../../../../node_modules/@remix-run/server-runtime/dist/esm/data.js", "../../../../node_modules/@remix-run/server-runtime/dist/esm/entry.js", "../../../../node_modules/@remix-run/server-runtime/dist/esm/errors.js", "../../../../node_modules/@remix-run/server-runtime/dist/esm/headers.js", "../../../../node_modules/@remix-run/server-runtime/dist/esm/mode.js", "../../../../node_modules/@remix-run/server-runtime/dist/esm/routeMatching.js", "../../../../node_modules/@remix-run/server-runtime/dist/esm/routes.js", "../../../../node_modules/@remix-run/server-runtime/dist/esm/markup.js", "../../../../node_modules/@remix-run/server-runtime/dist/esm/serverHandoff.js", "../../../../node_modules/@remix-run/server-runtime/dist/esm/server.js", "../../../../node_modules/@remix-run/server-runtime/dist/esm/sessions.js", "../../../../node_modules/@remix-run/server-runtime/dist/esm/sessions/cookieStorage.js", "../../../../node_modules/@remix-run/server-runtime/dist/esm/sessions/memoryStorage.js", "../../app/components/Layout.tsx", "../../app/routes/index.tsx", "server-assets-manifest:@remix-run/dev/assets-manifest", "../../../../node_modules/@shopify/hydrogen-react/src/storefront-api-constants.ts", "../../../../node_modules/@shopify/hydrogen-react/src/storefront-client.ts", "../../../../packages/hydrogen/src/storefront.ts", "../../../../packages/hydrogen/src/utils/hash.ts", "../../../../packages/hydrogen/src/cache/strategies.ts", "../../../../packages/hydrogen/src/cache/api.ts", "../../../../packages/hydrogen/src/cache/sub-request.ts", "../../../../packages/hydrogen/src/cache/fetch.ts", "../../../../packages/hydrogen/src/constants.ts", "../../../../packages/hydrogen/src/utils/uuid.ts", "../../../../packages/hydrogen/src/utils/parse-json.ts", "../../../../packages/hydrogen/src/utils/warning.ts", "../../../../packages/hydrogen/src/cache/in-memory.ts", "../../../../packages/hydrogen/src/routing/types.ts", "../../../../packages/hydrogen/src/routing/redirect.ts", "../../../../packages/hydrogen/src/routing/proxy.ts", "../../server.ts"],
4
+ "sourcesContent": ["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n", "/**\n * @license React\n * react-dom-server-legacy.browser.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var aa=require(\"react\");function l(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar p=Object.prototype.hasOwnProperty,fa=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,ha={},ia={};\nfunction ja(a){if(p.call(ia,a))return!0;if(p.call(ha,a))return!1;if(fa.test(a))return ia[a]=!0;ha[a]=!0;return!1}function r(a,b,c,d,f,e,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=f;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=e;this.removeEmptyString=g}var t={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){t[a]=new r(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];t[b]=new r(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){t[a]=new r(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){t[a]=new r(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){t[a]=new r(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){t[a]=new r(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){t[a]=new r(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){t[a]=new r(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){t[a]=new r(a,5,!1,a.toLowerCase(),null,!1,!1)});var ka=/[\\-:]([a-z])/g;function la(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ka,\nla);t[b]=new r(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ka,la);t[b]=new r(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ka,la);t[b]=new r(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){t[a]=new r(a,1,!1,a.toLowerCase(),null,!1,!1)});\nt.xlinkHref=new r(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){t[a]=new r(a,1,!1,a.toLowerCase(),null,!0,!0)});\nvar u={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,\nfillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ma=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(u).forEach(function(a){ma.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);u[b]=u[a]})});var na=/[\"'&<>]/;\nfunction v(a){if(\"boolean\"===typeof a||\"number\"===typeof a)return\"\"+a;a=\"\"+a;var b=na.exec(a);if(b){var c=\"\",d,f=0;for(d=b.index;d<a.length;d++){switch(a.charCodeAt(d)){case 34:b=\"&quot;\";break;case 38:b=\"&amp;\";break;case 39:b=\"&#x27;\";break;case 60:b=\"&lt;\";break;case 62:b=\"&gt;\";break;default:continue}f!==d&&(c+=a.substring(f,d));f=d+1;c+=b}a=f!==d?c+a.substring(f,d):c}return a}var oa=/([A-Z])/g,pa=/^ms-/,qa=Array.isArray;function w(a,b){return{insertionMode:a,selectedValue:b}}\nfunction ra(a,b,c){switch(b){case \"select\":return w(1,null!=c.value?c.value:c.defaultValue);case \"svg\":return w(2,null);case \"math\":return w(3,null);case \"foreignObject\":return w(1,null);case \"table\":return w(4,null);case \"thead\":case \"tbody\":case \"tfoot\":return w(5,null);case \"colgroup\":return w(7,null);case \"tr\":return w(6,null)}return 4<=a.insertionMode||0===a.insertionMode?w(1,null):a}var sa=new Map;\nfunction ta(a,b,c){if(\"object\"!==typeof c)throw Error(l(62));b=!0;for(var d in c)if(p.call(c,d)){var f=c[d];if(null!=f&&\"boolean\"!==typeof f&&\"\"!==f){if(0===d.indexOf(\"--\")){var e=v(d);f=v((\"\"+f).trim())}else{e=d;var g=sa.get(e);void 0!==g?e=g:(g=v(e.replace(oa,\"-$1\").toLowerCase().replace(pa,\"-ms-\")),sa.set(e,g),e=g);f=\"number\"===typeof f?0===f||p.call(u,d)?\"\"+f:f+\"px\":v((\"\"+f).trim())}b?(b=!1,a.push(' style=\"',e,\":\",f)):a.push(\";\",e,\":\",f)}}b||a.push('\"')}\nfunction x(a,b,c,d){switch(c){case \"style\":ta(a,b,d);return;case \"defaultValue\":case \"defaultChecked\":case \"innerHTML\":case \"suppressContentEditableWarning\":case \"suppressHydrationWarning\":return}if(!(2<c.length)||\"o\"!==c[0]&&\"O\"!==c[0]||\"n\"!==c[1]&&\"N\"!==c[1])if(b=t.hasOwnProperty(c)?t[c]:null,null!==b){switch(typeof d){case \"function\":case \"symbol\":return;case \"boolean\":if(!b.acceptsBooleans)return}c=b.attributeName;switch(b.type){case 3:d&&a.push(\" \",c,'=\"\"');break;case 4:!0===d?a.push(\" \",c,'=\"\"'):\n!1!==d&&a.push(\" \",c,'=\"',v(d),'\"');break;case 5:isNaN(d)||a.push(\" \",c,'=\"',v(d),'\"');break;case 6:!isNaN(d)&&1<=d&&a.push(\" \",c,'=\"',v(d),'\"');break;default:b.sanitizeURL&&(d=\"\"+d),a.push(\" \",c,'=\"',v(d),'\"')}}else if(ja(c)){switch(typeof d){case \"function\":case \"symbol\":return;case \"boolean\":if(b=c.toLowerCase().slice(0,5),\"data-\"!==b&&\"aria-\"!==b)return}a.push(\" \",c,'=\"',v(d),'\"')}}\nfunction y(a,b,c){if(null!=b){if(null!=c)throw Error(l(60));if(\"object\"!==typeof b||!(\"__html\"in b))throw Error(l(61));b=b.__html;null!==b&&void 0!==b&&a.push(\"\"+b)}}function ua(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}\nfunction va(a,b,c,d){a.push(A(c));var f=c=null,e;for(e in b)if(p.call(b,e)){var g=b[e];if(null!=g)switch(e){case \"children\":c=g;break;case \"dangerouslySetInnerHTML\":f=g;break;default:x(a,d,e,g)}}a.push(\">\");y(a,f,c);return\"string\"===typeof c?(a.push(v(c)),null):c}var wa=/^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/,xa=new Map;function A(a){var b=xa.get(a);if(void 0===b){if(!wa.test(a))throw Error(l(65,a));b=\"<\"+a;xa.set(a,b)}return b}\nfunction ya(a,b,c,d,f){switch(b){case \"select\":a.push(A(\"select\"));var e=null,g=null;for(n in c)if(p.call(c,n)){var h=c[n];if(null!=h)switch(n){case \"children\":e=h;break;case \"dangerouslySetInnerHTML\":g=h;break;case \"defaultValue\":case \"value\":break;default:x(a,d,n,h)}}a.push(\">\");y(a,g,e);return e;case \"option\":g=f.selectedValue;a.push(A(\"option\"));var k=h=null,m=null;var n=null;for(e in c)if(p.call(c,e)){var q=c[e];if(null!=q)switch(e){case \"children\":h=q;break;case \"selected\":m=q;break;case \"dangerouslySetInnerHTML\":n=\nq;break;case \"value\":k=q;default:x(a,d,e,q)}}if(null!=g)if(c=null!==k?\"\"+k:ua(h),qa(g))for(d=0;d<g.length;d++){if(\"\"+g[d]===c){a.push(' selected=\"\"');break}}else\"\"+g===c&&a.push(' selected=\"\"');else m&&a.push(' selected=\"\"');a.push(\">\");y(a,n,h);return h;case \"textarea\":a.push(A(\"textarea\"));n=g=e=null;for(h in c)if(p.call(c,h)&&(k=c[h],null!=k))switch(h){case \"children\":n=k;break;case \"value\":e=k;break;case \"defaultValue\":g=k;break;case \"dangerouslySetInnerHTML\":throw Error(l(91));default:x(a,d,\nh,k)}null===e&&null!==g&&(e=g);a.push(\">\");if(null!=n){if(null!=e)throw Error(l(92));if(qa(n)&&1<n.length)throw Error(l(93));e=\"\"+n}\"string\"===typeof e&&\"\\n\"===e[0]&&a.push(\"\\n\");null!==e&&a.push(v(\"\"+e));return null;case \"input\":a.push(A(\"input\"));k=n=h=e=null;for(g in c)if(p.call(c,g)&&(m=c[g],null!=m))switch(g){case \"children\":case \"dangerouslySetInnerHTML\":throw Error(l(399,\"input\"));case \"defaultChecked\":k=m;break;case \"defaultValue\":h=m;break;case \"checked\":n=m;break;case \"value\":e=m;break;\ndefault:x(a,d,g,m)}null!==n?x(a,d,\"checked\",n):null!==k&&x(a,d,\"checked\",k);null!==e?x(a,d,\"value\",e):null!==h&&x(a,d,\"value\",h);a.push(\"/>\");return null;case \"menuitem\":a.push(A(\"menuitem\"));for(var C in c)if(p.call(c,C)&&(e=c[C],null!=e))switch(C){case \"children\":case \"dangerouslySetInnerHTML\":throw Error(l(400));default:x(a,d,C,e)}a.push(\">\");return null;case \"title\":a.push(A(\"title\"));e=null;for(q in c)if(p.call(c,q)&&(g=c[q],null!=g))switch(q){case \"children\":e=g;break;case \"dangerouslySetInnerHTML\":throw Error(l(434));\ndefault:x(a,d,q,g)}a.push(\">\");return e;case \"listing\":case \"pre\":a.push(A(b));g=e=null;for(k in c)if(p.call(c,k)&&(h=c[k],null!=h))switch(k){case \"children\":e=h;break;case \"dangerouslySetInnerHTML\":g=h;break;default:x(a,d,k,h)}a.push(\">\");if(null!=g){if(null!=e)throw Error(l(60));if(\"object\"!==typeof g||!(\"__html\"in g))throw Error(l(61));c=g.__html;null!==c&&void 0!==c&&(\"string\"===typeof c&&0<c.length&&\"\\n\"===c[0]?a.push(\"\\n\",c):a.push(\"\"+c))}\"string\"===typeof e&&\"\\n\"===e[0]&&a.push(\"\\n\");return e;\ncase \"area\":case \"base\":case \"br\":case \"col\":case \"embed\":case \"hr\":case \"img\":case \"keygen\":case \"link\":case \"meta\":case \"param\":case \"source\":case \"track\":case \"wbr\":a.push(A(b));for(var D in c)if(p.call(c,D)&&(e=c[D],null!=e))switch(D){case \"children\":case \"dangerouslySetInnerHTML\":throw Error(l(399,b));default:x(a,d,D,e)}a.push(\"/>\");return null;case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return va(a,\nc,b,d);case \"html\":return 0===f.insertionMode&&a.push(\"<!DOCTYPE html>\"),va(a,c,b,d);default:if(-1===b.indexOf(\"-\")&&\"string\"!==typeof c.is)return va(a,c,b,d);a.push(A(b));g=e=null;for(m in c)if(p.call(c,m)&&(h=c[m],null!=h))switch(m){case \"children\":e=h;break;case \"dangerouslySetInnerHTML\":g=h;break;case \"style\":ta(a,d,h);break;case \"suppressContentEditableWarning\":case \"suppressHydrationWarning\":break;default:ja(m)&&\"function\"!==typeof h&&\"symbol\"!==typeof h&&a.push(\" \",m,'=\"',v(h),'\"')}a.push(\">\");\ny(a,g,e);return e}}function za(a,b,c){a.push('\\x3c!--$?--\\x3e<template id=\"');if(null===c)throw Error(l(395));a.push(c);return a.push('\"></template>')}\nfunction Aa(a,b,c,d){switch(c.insertionMode){case 0:case 1:return a.push('<div hidden id=\"'),a.push(b.segmentPrefix),b=d.toString(16),a.push(b),a.push('\">');case 2:return a.push('<svg aria-hidden=\"true\" style=\"display:none\" id=\"'),a.push(b.segmentPrefix),b=d.toString(16),a.push(b),a.push('\">');case 3:return a.push('<math aria-hidden=\"true\" style=\"display:none\" id=\"'),a.push(b.segmentPrefix),b=d.toString(16),a.push(b),a.push('\">');case 4:return a.push('<table hidden id=\"'),a.push(b.segmentPrefix),\nb=d.toString(16),a.push(b),a.push('\">');case 5:return a.push('<table hidden><tbody id=\"'),a.push(b.segmentPrefix),b=d.toString(16),a.push(b),a.push('\">');case 6:return a.push('<table hidden><tr id=\"'),a.push(b.segmentPrefix),b=d.toString(16),a.push(b),a.push('\">');case 7:return a.push('<table hidden><colgroup id=\"'),a.push(b.segmentPrefix),b=d.toString(16),a.push(b),a.push('\">');default:throw Error(l(397));}}\nfunction Ba(a,b){switch(b.insertionMode){case 0:case 1:return a.push(\"</div>\");case 2:return a.push(\"</svg>\");case 3:return a.push(\"</math>\");case 4:return a.push(\"</table>\");case 5:return a.push(\"</tbody></table>\");case 6:return a.push(\"</tr></table>\");case 7:return a.push(\"</colgroup></table>\");default:throw Error(l(397));}}var Ca=/[<\\u2028\\u2029]/g;\nfunction Da(a){return JSON.stringify(a).replace(Ca,function(a){switch(a){case \"<\":return\"\\\\u003c\";case \"\\u2028\":return\"\\\\u2028\";case \"\\u2029\":return\"\\\\u2029\";default:throw Error(\"escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\");}})}\nfunction Ea(a,b){b=void 0===b?\"\":b;return{bootstrapChunks:[],startInlineScript:\"<script>\",placeholderPrefix:b+\"P:\",segmentPrefix:b+\"S:\",boundaryPrefix:b+\"B:\",idPrefix:b,nextSuspenseID:0,sentCompleteSegmentFunction:!1,sentCompleteBoundaryFunction:!1,sentClientRenderFunction:!1,generateStaticMarkup:a}}function Fa(a,b,c,d){if(c.generateStaticMarkup)return a.push(v(b)),!1;\"\"===b?a=d:(d&&a.push(\"\\x3c!-- --\\x3e\"),a.push(v(b)),a=!0);return a}\nvar B=Object.assign,Ga=Symbol.for(\"react.element\"),Ha=Symbol.for(\"react.portal\"),Ia=Symbol.for(\"react.fragment\"),Ja=Symbol.for(\"react.strict_mode\"),Ka=Symbol.for(\"react.profiler\"),La=Symbol.for(\"react.provider\"),Ma=Symbol.for(\"react.context\"),Na=Symbol.for(\"react.forward_ref\"),Oa=Symbol.for(\"react.suspense\"),Pa=Symbol.for(\"react.suspense_list\"),Qa=Symbol.for(\"react.memo\"),Ra=Symbol.for(\"react.lazy\"),Sa=Symbol.for(\"react.scope\"),Ta=Symbol.for(\"react.debug_trace_mode\"),Ua=Symbol.for(\"react.legacy_hidden\"),\nVa=Symbol.for(\"react.default_value\"),Wa=Symbol.iterator;\nfunction Xa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case Ia:return\"Fragment\";case Ha:return\"Portal\";case Ka:return\"Profiler\";case Ja:return\"StrictMode\";case Oa:return\"Suspense\";case Pa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ma:return(a.displayName||\"Context\")+\".Consumer\";case La:return(a._context.displayName||\"Context\")+\".Provider\";case Na:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Qa:return b=a.displayName||null,null!==b?b:Xa(a.type)||\"Memo\";case Ra:b=a._payload;a=a._init;try{return Xa(a(b))}catch(c){}}return null}var Ya={};function Za(a,b){a=a.contextTypes;if(!a)return Ya;var c={},d;for(d in a)c[d]=b[d];return c}var E=null;\nfunction F(a,b){if(a!==b){a.context._currentValue2=a.parentValue;a=a.parent;var c=b.parent;if(null===a){if(null!==c)throw Error(l(401));}else{if(null===c)throw Error(l(401));F(a,c)}b.context._currentValue2=b.value}}function $a(a){a.context._currentValue2=a.parentValue;a=a.parent;null!==a&&$a(a)}function ab(a){var b=a.parent;null!==b&&ab(b);a.context._currentValue2=a.value}\nfunction bb(a,b){a.context._currentValue2=a.parentValue;a=a.parent;if(null===a)throw Error(l(402));a.depth===b.depth?F(a,b):bb(a,b)}function cb(a,b){var c=b.parent;if(null===c)throw Error(l(402));a.depth===c.depth?F(a,c):cb(a,c);b.context._currentValue2=b.value}function G(a){var b=E;b!==a&&(null===b?ab(a):null===a?$a(b):b.depth===a.depth?F(b,a):b.depth>a.depth?bb(b,a):cb(b,a),E=a)}\nvar db={isMounted:function(){return!1},enqueueSetState:function(a,b){a=a._reactInternals;null!==a.queue&&a.queue.push(b)},enqueueReplaceState:function(a,b){a=a._reactInternals;a.replace=!0;a.queue=[b]},enqueueForceUpdate:function(){}};\nfunction eb(a,b,c,d){var f=void 0!==a.state?a.state:null;a.updater=db;a.props=c;a.state=f;var e={queue:[],replace:!1};a._reactInternals=e;var g=b.contextType;a.context=\"object\"===typeof g&&null!==g?g._currentValue2:d;g=b.getDerivedStateFromProps;\"function\"===typeof g&&(g=g(c,f),f=null===g||void 0===g?f:B({},f,g),a.state=f);if(\"function\"!==typeof b.getDerivedStateFromProps&&\"function\"!==typeof a.getSnapshotBeforeUpdate&&(\"function\"===typeof a.UNSAFE_componentWillMount||\"function\"===typeof a.componentWillMount))if(b=\na.state,\"function\"===typeof a.componentWillMount&&a.componentWillMount(),\"function\"===typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),b!==a.state&&db.enqueueReplaceState(a,a.state,null),null!==e.queue&&0<e.queue.length)if(b=e.queue,g=e.replace,e.queue=null,e.replace=!1,g&&1===b.length)a.state=b[0];else{e=g?b[0]:a.state;f=!0;for(g=g?1:0;g<b.length;g++){var h=b[g];h=\"function\"===typeof h?h.call(a,e,c,d):h;null!=h&&(f?(f=!1,e=B({},e,h)):B(e,h))}a.state=e}else e.queue=null}\nvar fb={id:1,overflow:\"\"};function gb(a,b,c){var d=a.id;a=a.overflow;var f=32-H(d)-1;d&=~(1<<f);c+=1;var e=32-H(b)+f;if(30<e){var g=f-f%5;e=(d&(1<<g)-1).toString(32);d>>=g;f-=g;return{id:1<<32-H(b)+f|c<<f|d,overflow:e+a}}return{id:1<<e|c<<f|d,overflow:a}}var H=Math.clz32?Math.clz32:hb,ib=Math.log,jb=Math.LN2;function hb(a){a>>>=0;return 0===a?32:31-(ib(a)/jb|0)|0}function kb(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}\nvar lb=\"function\"===typeof Object.is?Object.is:kb,I=null,ob=null,J=null,K=null,L=!1,M=!1,N=0,O=null,P=0;function Q(){if(null===I)throw Error(l(321));return I}function pb(){if(0<P)throw Error(l(312));return{memoizedState:null,queue:null,next:null}}function qb(){null===K?null===J?(L=!1,J=K=pb()):(L=!0,K=J):null===K.next?(L=!1,K=K.next=pb()):(L=!0,K=K.next);return K}function rb(){ob=I=null;M=!1;J=null;P=0;K=O=null}function sb(a,b){return\"function\"===typeof b?b(a):b}\nfunction tb(a,b,c){I=Q();K=qb();if(L){var d=K.queue;b=d.dispatch;if(null!==O&&(c=O.get(d),void 0!==c)){O.delete(d);d=K.memoizedState;do d=a(d,c.action),c=c.next;while(null!==c);K.memoizedState=d;return[d,b]}return[K.memoizedState,b]}a=a===sb?\"function\"===typeof b?b():b:void 0!==c?c(b):b;K.memoizedState=a;a=K.queue={last:null,dispatch:null};a=a.dispatch=ub.bind(null,I,a);return[K.memoizedState,a]}\nfunction vb(a,b){I=Q();K=qb();b=void 0===b?null:b;if(null!==K){var c=K.memoizedState;if(null!==c&&null!==b){var d=c[1];a:if(null===d)d=!1;else{for(var f=0;f<d.length&&f<b.length;f++)if(!lb(b[f],d[f])){d=!1;break a}d=!0}if(d)return c[0]}}a=a();K.memoizedState=[a,b];return a}function ub(a,b,c){if(25<=P)throw Error(l(301));if(a===I)if(M=!0,a={action:c,next:null},null===O&&(O=new Map),c=O.get(b),void 0===c)O.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}}function wb(){throw Error(l(394));}\nfunction R(){}\nvar xb={readContext:function(a){return a._currentValue2},useContext:function(a){Q();return a._currentValue2},useMemo:vb,useReducer:tb,useRef:function(a){I=Q();K=qb();var b=K.memoizedState;return null===b?(a={current:a},K.memoizedState=a):b},useState:function(a){return tb(sb,a)},useInsertionEffect:R,useLayoutEffect:function(){},useCallback:function(a,b){return vb(function(){return a},b)},useImperativeHandle:R,useEffect:R,useDebugValue:R,useDeferredValue:function(a){Q();return a},useTransition:function(){Q();return[!1,\nwb]},useId:function(){var a=ob.treeContext;var b=a.overflow;a=a.id;a=(a&~(1<<32-H(a)-1)).toString(32)+b;var c=S;if(null===c)throw Error(l(404));b=N++;a=\":\"+c.idPrefix+\"R\"+a;0<b&&(a+=\"H\"+b.toString(32));return a+\":\"},useMutableSource:function(a,b){Q();return b(a._source)},useSyncExternalStore:function(a,b,c){if(void 0===c)throw Error(l(407));return c()}},S=null,yb=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentDispatcher;function zb(a){console.error(a);return null}\nfunction T(){}\nfunction Ab(a,b,c,d,f,e,g,h,k){var m=[],n=new Set;b={destination:null,responseState:b,progressiveChunkSize:void 0===d?12800:d,status:0,fatalError:null,nextSegmentId:0,allPendingTasks:0,pendingRootTasks:0,completedRootSegment:null,abortableTasks:n,pingedTasks:m,clientRenderedBoundaries:[],completedBoundaries:[],partialBoundaries:[],onError:void 0===f?zb:f,onAllReady:void 0===e?T:e,onShellReady:void 0===g?T:g,onShellError:void 0===h?T:h,onFatalError:void 0===k?T:k};c=U(b,0,null,c,!1,!1);c.parentFlushed=\n!0;a=Bb(b,a,null,c,n,Ya,null,fb);m.push(a);return b}function Bb(a,b,c,d,f,e,g,h){a.allPendingTasks++;null===c?a.pendingRootTasks++:c.pendingTasks++;var k={node:b,ping:function(){var b=a.pingedTasks;b.push(k);1===b.length&&Cb(a)},blockedBoundary:c,blockedSegment:d,abortSet:f,legacyContext:e,context:g,treeContext:h};f.add(k);return k}function U(a,b,c,d,f,e){return{status:0,id:-1,index:b,parentFlushed:!1,chunks:[],children:[],formatContext:d,boundary:c,lastPushedText:f,textEmbedded:e}}\nfunction V(a,b){a=a.onError(b);if(null!=a&&\"string\"!==typeof a)throw Error('onError returned something with a type other than \"string\". onError should return a string and may return null or undefined but must not return anything else. It received something of type \"'+typeof a+'\" instead');return a}function W(a,b){var c=a.onShellError;c(b);c=a.onFatalError;c(b);null!==a.destination?(a.status=2,a.destination.destroy(b)):(a.status=1,a.fatalError=b)}\nfunction Db(a,b,c,d,f){I={};ob=b;N=0;for(a=c(d,f);M;)M=!1,N=0,P+=1,K=null,a=c(d,f);rb();return a}function Eb(a,b,c,d){var f=c.render(),e=d.childContextTypes;if(null!==e&&void 0!==e){var g=b.legacyContext;if(\"function\"!==typeof c.getChildContext)d=g;else{c=c.getChildContext();for(var h in c)if(!(h in e))throw Error(l(108,Xa(d)||\"Unknown\",h));d=B({},g,c)}b.legacyContext=d;X(a,b,f);b.legacyContext=g}else X(a,b,f)}\nfunction Fb(a,b){if(a&&a.defaultProps){b=B({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}\nfunction Gb(a,b,c,d,f){if(\"function\"===typeof c)if(c.prototype&&c.prototype.isReactComponent){f=Za(c,b.legacyContext);var e=c.contextType;e=new c(d,\"object\"===typeof e&&null!==e?e._currentValue2:f);eb(e,c,d,f);Eb(a,b,e,c)}else{e=Za(c,b.legacyContext);f=Db(a,b,c,d,e);var g=0!==N;if(\"object\"===typeof f&&null!==f&&\"function\"===typeof f.render&&void 0===f.$$typeof)eb(f,c,d,e),Eb(a,b,f,c);else if(g){d=b.treeContext;b.treeContext=gb(d,1,0);try{X(a,b,f)}finally{b.treeContext=d}}else X(a,b,f)}else if(\"string\"===\ntypeof c){f=b.blockedSegment;e=ya(f.chunks,c,d,a.responseState,f.formatContext);f.lastPushedText=!1;g=f.formatContext;f.formatContext=ra(g,c,d);Hb(a,b,e);f.formatContext=g;switch(c){case \"area\":case \"base\":case \"br\":case \"col\":case \"embed\":case \"hr\":case \"img\":case \"input\":case \"keygen\":case \"link\":case \"meta\":case \"param\":case \"source\":case \"track\":case \"wbr\":break;default:f.chunks.push(\"</\",c,\">\")}f.lastPushedText=!1}else{switch(c){case Ua:case Ta:case Ja:case Ka:case Ia:X(a,b,d.children);return;\ncase Pa:X(a,b,d.children);return;case Sa:throw Error(l(343));case Oa:a:{c=b.blockedBoundary;f=b.blockedSegment;e=d.fallback;d=d.children;g=new Set;var h={id:null,rootSegmentID:-1,parentFlushed:!1,pendingTasks:0,forceClientRender:!1,completedSegments:[],byteSize:0,fallbackAbortableTasks:g,errorDigest:null},k=U(a,f.chunks.length,h,f.formatContext,!1,!1);f.children.push(k);f.lastPushedText=!1;var m=U(a,0,null,f.formatContext,!1,!1);m.parentFlushed=!0;b.blockedBoundary=h;b.blockedSegment=m;try{if(Hb(a,\nb,d),a.responseState.generateStaticMarkup||m.lastPushedText&&m.textEmbedded&&m.chunks.push(\"\\x3c!-- --\\x3e\"),m.status=1,Y(h,m),0===h.pendingTasks)break a}catch(n){m.status=4,h.forceClientRender=!0,h.errorDigest=V(a,n)}finally{b.blockedBoundary=c,b.blockedSegment=f}b=Bb(a,e,c,k,g,b.legacyContext,b.context,b.treeContext);a.pingedTasks.push(b)}return}if(\"object\"===typeof c&&null!==c)switch(c.$$typeof){case Na:d=Db(a,b,c.render,d,f);if(0!==N){c=b.treeContext;b.treeContext=gb(c,1,0);try{X(a,b,d)}finally{b.treeContext=\nc}}else X(a,b,d);return;case Qa:c=c.type;d=Fb(c,d);Gb(a,b,c,d,f);return;case La:f=d.children;c=c._context;d=d.value;e=c._currentValue2;c._currentValue2=d;g=E;E=d={parent:g,depth:null===g?0:g.depth+1,context:c,parentValue:e,value:d};b.context=d;X(a,b,f);a=E;if(null===a)throw Error(l(403));d=a.parentValue;a.context._currentValue2=d===Va?a.context._defaultValue:d;a=E=a.parent;b.context=a;return;case Ma:d=d.children;d=d(c._currentValue2);X(a,b,d);return;case Ra:f=c._init;c=f(c._payload);d=Fb(c,d);Gb(a,\nb,c,d,void 0);return}throw Error(l(130,null==c?c:typeof c,\"\"));}}\nfunction X(a,b,c){b.node=c;if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case Ga:Gb(a,b,c.type,c.props,c.ref);return;case Ha:throw Error(l(257));case Ra:var d=c._init;c=d(c._payload);X(a,b,c);return}if(qa(c)){Ib(a,b,c);return}null===c||\"object\"!==typeof c?d=null:(d=Wa&&c[Wa]||c[\"@@iterator\"],d=\"function\"===typeof d?d:null);if(d&&(d=d.call(c))){c=d.next();if(!c.done){var f=[];do f.push(c.value),c=d.next();while(!c.done);Ib(a,b,f)}return}a=Object.prototype.toString.call(c);throw Error(l(31,\"[object Object]\"===\na?\"object with keys {\"+Object.keys(c).join(\", \")+\"}\":a));}\"string\"===typeof c?(d=b.blockedSegment,d.lastPushedText=Fa(b.blockedSegment.chunks,c,a.responseState,d.lastPushedText)):\"number\"===typeof c&&(d=b.blockedSegment,d.lastPushedText=Fa(b.blockedSegment.chunks,\"\"+c,a.responseState,d.lastPushedText))}function Ib(a,b,c){for(var d=c.length,f=0;f<d;f++){var e=b.treeContext;b.treeContext=gb(e,d,f);try{Hb(a,b,c[f])}finally{b.treeContext=e}}}\nfunction Hb(a,b,c){var d=b.blockedSegment.formatContext,f=b.legacyContext,e=b.context;try{return X(a,b,c)}catch(k){if(rb(),\"object\"===typeof k&&null!==k&&\"function\"===typeof k.then){c=k;var g=b.blockedSegment,h=U(a,g.chunks.length,null,g.formatContext,g.lastPushedText,!0);g.children.push(h);g.lastPushedText=!1;a=Bb(a,b.node,b.blockedBoundary,h,b.abortSet,b.legacyContext,b.context,b.treeContext).ping;c.then(a,a);b.blockedSegment.formatContext=d;b.legacyContext=f;b.context=e;G(e)}else throw b.blockedSegment.formatContext=\nd,b.legacyContext=f,b.context=e,G(e),k;}}function Jb(a){var b=a.blockedBoundary;a=a.blockedSegment;a.status=3;Kb(this,b,a)}\nfunction Lb(a,b,c){var d=a.blockedBoundary;a.blockedSegment.status=3;null===d?(b.allPendingTasks--,2!==b.status&&(b.status=2,null!==b.destination&&b.destination.push(null))):(d.pendingTasks--,d.forceClientRender||(d.forceClientRender=!0,a=void 0===c?Error(l(432)):c,d.errorDigest=b.onError(a),d.parentFlushed&&b.clientRenderedBoundaries.push(d)),d.fallbackAbortableTasks.forEach(function(a){return Lb(a,b,c)}),d.fallbackAbortableTasks.clear(),b.allPendingTasks--,0===b.allPendingTasks&&(d=b.onAllReady,\nd()))}function Y(a,b){if(0===b.chunks.length&&1===b.children.length&&null===b.children[0].boundary){var c=b.children[0];c.id=b.id;c.parentFlushed=!0;1===c.status&&Y(a,c)}else a.completedSegments.push(b)}\nfunction Kb(a,b,c){if(null===b){if(c.parentFlushed){if(null!==a.completedRootSegment)throw Error(l(389));a.completedRootSegment=c}a.pendingRootTasks--;0===a.pendingRootTasks&&(a.onShellError=T,b=a.onShellReady,b())}else b.pendingTasks--,b.forceClientRender||(0===b.pendingTasks?(c.parentFlushed&&1===c.status&&Y(b,c),b.parentFlushed&&a.completedBoundaries.push(b),b.fallbackAbortableTasks.forEach(Jb,a),b.fallbackAbortableTasks.clear()):c.parentFlushed&&1===c.status&&(Y(b,c),1===b.completedSegments.length&&\nb.parentFlushed&&a.partialBoundaries.push(b)));a.allPendingTasks--;0===a.allPendingTasks&&(a=a.onAllReady,a())}\nfunction Cb(a){if(2!==a.status){var b=E,c=yb.current;yb.current=xb;var d=S;S=a.responseState;try{var f=a.pingedTasks,e;for(e=0;e<f.length;e++){var g=f[e];var h=a,k=g.blockedSegment;if(0===k.status){G(g.context);try{X(h,g,g.node),h.responseState.generateStaticMarkup||k.lastPushedText&&k.textEmbedded&&k.chunks.push(\"\\x3c!-- --\\x3e\"),g.abortSet.delete(g),k.status=1,Kb(h,g.blockedBoundary,k)}catch(z){if(rb(),\"object\"===typeof z&&null!==z&&\"function\"===typeof z.then){var m=g.ping;z.then(m,m)}else{g.abortSet.delete(g);\nk.status=4;var n=g.blockedBoundary,q=z,C=V(h,q);null===n?W(h,q):(n.pendingTasks--,n.forceClientRender||(n.forceClientRender=!0,n.errorDigest=C,n.parentFlushed&&h.clientRenderedBoundaries.push(n)));h.allPendingTasks--;if(0===h.allPendingTasks){var D=h.onAllReady;D()}}}finally{}}}f.splice(0,e);null!==a.destination&&Mb(a,a.destination)}catch(z){V(a,z),W(a,z)}finally{S=d,yb.current=c,c===xb&&G(b)}}}\nfunction Z(a,b,c){c.parentFlushed=!0;switch(c.status){case 0:var d=c.id=a.nextSegmentId++;c.lastPushedText=!1;c.textEmbedded=!1;a=a.responseState;b.push('<template id=\"');b.push(a.placeholderPrefix);a=d.toString(16);b.push(a);return b.push('\"></template>');case 1:c.status=2;var f=!0;d=c.chunks;var e=0;c=c.children;for(var g=0;g<c.length;g++){for(f=c[g];e<f.index;e++)b.push(d[e]);f=Nb(a,b,f)}for(;e<d.length-1;e++)b.push(d[e]);e<d.length&&(f=b.push(d[e]));return f;default:throw Error(l(390));}}\nfunction Nb(a,b,c){var d=c.boundary;if(null===d)return Z(a,b,c);d.parentFlushed=!0;if(d.forceClientRender)return a.responseState.generateStaticMarkup||(d=d.errorDigest,b.push(\"\\x3c!--$!--\\x3e\"),b.push(\"<template\"),d&&(b.push(' data-dgst=\"'),d=v(d),b.push(d),b.push('\"')),b.push(\"></template>\")),Z(a,b,c),a=a.responseState.generateStaticMarkup?!0:b.push(\"\\x3c!--/$--\\x3e\"),a;if(0<d.pendingTasks){d.rootSegmentID=a.nextSegmentId++;0<d.completedSegments.length&&a.partialBoundaries.push(d);var f=a.responseState;\nvar e=f.nextSuspenseID++;f=f.boundaryPrefix+e.toString(16);d=d.id=f;za(b,a.responseState,d);Z(a,b,c);return b.push(\"\\x3c!--/$--\\x3e\")}if(d.byteSize>a.progressiveChunkSize)return d.rootSegmentID=a.nextSegmentId++,a.completedBoundaries.push(d),za(b,a.responseState,d.id),Z(a,b,c),b.push(\"\\x3c!--/$--\\x3e\");a.responseState.generateStaticMarkup||b.push(\"\\x3c!--$--\\x3e\");c=d.completedSegments;if(1!==c.length)throw Error(l(391));Nb(a,b,c[0]);a=a.responseState.generateStaticMarkup?!0:b.push(\"\\x3c!--/$--\\x3e\");\nreturn a}function Ob(a,b,c){Aa(b,a.responseState,c.formatContext,c.id);Nb(a,b,c);return Ba(b,c.formatContext)}\nfunction Pb(a,b,c){for(var d=c.completedSegments,f=0;f<d.length;f++)Qb(a,b,c,d[f]);d.length=0;a=a.responseState;d=c.id;c=c.rootSegmentID;b.push(a.startInlineScript);a.sentCompleteBoundaryFunction?b.push('$RC(\"'):(a.sentCompleteBoundaryFunction=!0,b.push('function $RC(a,b){a=document.getElementById(a);b=document.getElementById(b);b.parentNode.removeChild(b);if(a){a=a.previousSibling;var f=a.parentNode,c=a.nextSibling,e=0;do{if(c&&8===c.nodeType){var d=c.data;if(\"/$\"===d)if(0===e)break;else e--;else\"$\"!==d&&\"$?\"!==d&&\"$!\"!==d||e++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;b.firstChild;)f.insertBefore(b.firstChild,c);a.data=\"$\";a._reactRetry&&a._reactRetry()}};$RC(\"'));if(null===\nd)throw Error(l(395));c=c.toString(16);b.push(d);b.push('\",\"');b.push(a.segmentPrefix);b.push(c);return b.push('\")\\x3c/script>')}\nfunction Qb(a,b,c,d){if(2===d.status)return!0;var f=d.id;if(-1===f){if(-1===(d.id=c.rootSegmentID))throw Error(l(392));return Ob(a,b,d)}Ob(a,b,d);a=a.responseState;b.push(a.startInlineScript);a.sentCompleteSegmentFunction?b.push('$RS(\"'):(a.sentCompleteSegmentFunction=!0,b.push('function $RS(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS(\"'));b.push(a.segmentPrefix);\nf=f.toString(16);b.push(f);b.push('\",\"');b.push(a.placeholderPrefix);b.push(f);return b.push('\")\\x3c/script>')}\nfunction Mb(a,b){try{var c=a.completedRootSegment;if(null!==c&&0===a.pendingRootTasks){Nb(a,b,c);a.completedRootSegment=null;var d=a.responseState.bootstrapChunks;for(c=0;c<d.length-1;c++)b.push(d[c]);c<d.length&&b.push(d[c])}var f=a.clientRenderedBoundaries,e;for(e=0;e<f.length;e++){var g=f[e];d=b;var h=a.responseState,k=g.id,m=g.errorDigest,n=g.errorMessage,q=g.errorComponentStack;d.push(h.startInlineScript);h.sentClientRenderFunction?d.push('$RX(\"'):(h.sentClientRenderFunction=!0,d.push('function $RX(b,c,d,e){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data=\"$!\",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),b._reactRetry&&b._reactRetry())};$RX(\"'));\nif(null===k)throw Error(l(395));d.push(k);d.push('\"');if(m||n||q){d.push(\",\");var C=Da(m||\"\");d.push(C)}if(n||q){d.push(\",\");var D=Da(n||\"\");d.push(D)}if(q){d.push(\",\");var z=Da(q);d.push(z)}if(!d.push(\")\\x3c/script>\")){a.destination=null;e++;f.splice(0,e);return}}f.splice(0,e);var ba=a.completedBoundaries;for(e=0;e<ba.length;e++)if(!Pb(a,b,ba[e])){a.destination=null;e++;ba.splice(0,e);return}ba.splice(0,e);var ca=a.partialBoundaries;for(e=0;e<ca.length;e++){var mb=ca[e];a:{f=a;g=b;var da=mb.completedSegments;\nfor(h=0;h<da.length;h++)if(!Qb(f,g,mb,da[h])){h++;da.splice(0,h);var nb=!1;break a}da.splice(0,h);nb=!0}if(!nb){a.destination=null;e++;ca.splice(0,e);return}}ca.splice(0,e);var ea=a.completedBoundaries;for(e=0;e<ea.length;e++)if(!Pb(a,b,ea[e])){a.destination=null;e++;ea.splice(0,e);return}ea.splice(0,e)}finally{0===a.allPendingTasks&&0===a.pingedTasks.length&&0===a.clientRenderedBoundaries.length&&0===a.completedBoundaries.length&&b.push(null)}}\nfunction Rb(a,b){try{var c=a.abortableTasks;c.forEach(function(c){return Lb(c,a,b)});c.clear();null!==a.destination&&Mb(a,a.destination)}catch(d){V(a,d),W(a,d)}}function Sb(){}\nfunction Tb(a,b,c,d){var f=!1,e=null,g=\"\",h={push:function(a){null!==a&&(g+=a);return!0},destroy:function(a){f=!0;e=a}},k=!1;a=Ab(a,Ea(c,b?b.identifierPrefix:void 0),{insertionMode:1,selectedValue:null},Infinity,Sb,void 0,function(){k=!0},void 0,void 0);Cb(a);Rb(a,d);if(1===a.status)a.status=2,h.destroy(a.fatalError);else if(2!==a.status&&null===a.destination){a.destination=h;try{Mb(a,h)}catch(m){V(a,m),W(a,m)}}if(f)throw e;if(!k)throw Error(l(426));return g}\nexports.renderToNodeStream=function(){throw Error(l(207));};exports.renderToStaticMarkup=function(a,b){return Tb(a,b,!0,'The server used \"renderToStaticMarkup\" which does not support Suspense. If you intended to have the server wait for the suspended component please switch to \"renderToReadableStream\" which supports Suspense on the server')};exports.renderToStaticNodeStream=function(){throw Error(l(208));};exports.renderToString=function(a,b){return Tb(a,b,!1,'The server used \"renderToString\" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to \"renderToReadableStream\" which supports Suspense on the server')};\nexports.version=\"18.2.0\";\n", "/**\n * @license React\n * react-dom-server.browser.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var aa=require(\"react\");function k(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var l=null,n=0;\nfunction p(a,b){if(0!==b.length)if(512<b.length)0<n&&(a.enqueue(new Uint8Array(l.buffer,0,n)),l=new Uint8Array(512),n=0),a.enqueue(b);else{var c=l.length-n;c<b.length&&(0===c?a.enqueue(l):(l.set(b.subarray(0,c),n),a.enqueue(l),b=b.subarray(c)),l=new Uint8Array(512),n=0);l.set(b,n);n+=b.length}}function t(a,b){p(a,b);return!0}function ba(a){l&&0<n&&(a.enqueue(new Uint8Array(l.buffer,0,n)),l=null,n=0)}var ca=new TextEncoder;function u(a){return ca.encode(a)}function w(a){return ca.encode(a)}\nfunction da(a,b){\"function\"===typeof a.error?a.error(b):a.close()}var x=Object.prototype.hasOwnProperty,ea=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,fa={},ha={};\nfunction ia(a){if(x.call(ha,a))return!0;if(x.call(fa,a))return!1;if(ea.test(a))return ha[a]=!0;fa[a]=!0;return!1}function y(a,b,c,d,f,e,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=f;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=e;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new y(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new y(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new y(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new y(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new y(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new y(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new y(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new y(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new y(a,5,!1,a.toLowerCase(),null,!1,!1)});var ja=/[\\-:]([a-z])/g;function ka(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ja,\nka);z[b]=new y(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ja,ka);z[b]=new y(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ja,ka);z[b]=new y(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new y(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new y(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new y(a,1,!1,a.toLowerCase(),null,!0,!0)});\nvar B={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,\nfillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},la=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(B).forEach(function(a){la.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);B[b]=B[a]})});var oa=/[\"'&<>]/;\nfunction C(a){if(\"boolean\"===typeof a||\"number\"===typeof a)return\"\"+a;a=\"\"+a;var b=oa.exec(a);if(b){var c=\"\",d,f=0;for(d=b.index;d<a.length;d++){switch(a.charCodeAt(d)){case 34:b=\"&quot;\";break;case 38:b=\"&amp;\";break;case 39:b=\"&#x27;\";break;case 60:b=\"&lt;\";break;case 62:b=\"&gt;\";break;default:continue}f!==d&&(c+=a.substring(f,d));f=d+1;c+=b}a=f!==d?c+a.substring(f,d):c}return a}\nvar pa=/([A-Z])/g,qa=/^ms-/,ra=Array.isArray,sa=w(\"<script>\"),ta=w(\"\\x3c/script>\"),ua=w('<script src=\"'),va=w('<script type=\"module\" src=\"'),wa=w('\" async=\"\">\\x3c/script>'),xa=/(<\\/|<)(s)(cript)/gi;function ya(a,b,c,d){return\"\"+b+(\"s\"===c?\"\\\\u0073\":\"\\\\u0053\")+d}\nfunction za(a,b,c,d,f){a=void 0===a?\"\":a;b=void 0===b?sa:w('<script nonce=\"'+C(b)+'\">');var e=[];void 0!==c&&e.push(b,u((\"\"+c).replace(xa,ya)),ta);if(void 0!==d)for(c=0;c<d.length;c++)e.push(ua,u(C(d[c])),wa);if(void 0!==f)for(d=0;d<f.length;d++)e.push(va,u(C(f[d])),wa);return{bootstrapChunks:e,startInlineScript:b,placeholderPrefix:w(a+\"P:\"),segmentPrefix:w(a+\"S:\"),boundaryPrefix:a+\"B:\",idPrefix:a,nextSuspenseID:0,sentCompleteSegmentFunction:!1,sentCompleteBoundaryFunction:!1,sentClientRenderFunction:!1}}\nfunction D(a,b){return{insertionMode:a,selectedValue:b}}function Aa(a){return D(\"http://www.w3.org/2000/svg\"===a?2:\"http://www.w3.org/1998/Math/MathML\"===a?3:0,null)}\nfunction Ba(a,b,c){switch(b){case \"select\":return D(1,null!=c.value?c.value:c.defaultValue);case \"svg\":return D(2,null);case \"math\":return D(3,null);case \"foreignObject\":return D(1,null);case \"table\":return D(4,null);case \"thead\":case \"tbody\":case \"tfoot\":return D(5,null);case \"colgroup\":return D(7,null);case \"tr\":return D(6,null)}return 4<=a.insertionMode||0===a.insertionMode?D(1,null):a}var Ca=w(\"\\x3c!-- --\\x3e\");function Da(a,b,c,d){if(\"\"===b)return d;d&&a.push(Ca);a.push(u(C(b)));return!0}\nvar Ea=new Map,Fa=w(' style=\"'),Ga=w(\":\"),Ha=w(\";\");\nfunction Ia(a,b,c){if(\"object\"!==typeof c)throw Error(k(62));b=!0;for(var d in c)if(x.call(c,d)){var f=c[d];if(null!=f&&\"boolean\"!==typeof f&&\"\"!==f){if(0===d.indexOf(\"--\")){var e=u(C(d));f=u(C((\"\"+f).trim()))}else{e=d;var g=Ea.get(e);void 0!==g?e=g:(g=w(C(e.replace(pa,\"-$1\").toLowerCase().replace(qa,\"-ms-\"))),Ea.set(e,g),e=g);f=\"number\"===typeof f?0===f||x.call(B,d)?u(\"\"+f):u(f+\"px\"):u(C((\"\"+f).trim()))}b?(b=!1,a.push(Fa,e,Ga,f)):a.push(Ha,e,Ga,f)}}b||a.push(E)}\nvar H=w(\" \"),I=w('=\"'),E=w('\"'),Ja=w('=\"\"');\nfunction J(a,b,c,d){switch(c){case \"style\":Ia(a,b,d);return;case \"defaultValue\":case \"defaultChecked\":case \"innerHTML\":case \"suppressContentEditableWarning\":case \"suppressHydrationWarning\":return}if(!(2<c.length)||\"o\"!==c[0]&&\"O\"!==c[0]||\"n\"!==c[1]&&\"N\"!==c[1])if(b=z.hasOwnProperty(c)?z[c]:null,null!==b){switch(typeof d){case \"function\":case \"symbol\":return;case \"boolean\":if(!b.acceptsBooleans)return}c=u(b.attributeName);switch(b.type){case 3:d&&a.push(H,c,Ja);break;case 4:!0===d?a.push(H,c,Ja):!1!==\nd&&a.push(H,c,I,u(C(d)),E);break;case 5:isNaN(d)||a.push(H,c,I,u(C(d)),E);break;case 6:!isNaN(d)&&1<=d&&a.push(H,c,I,u(C(d)),E);break;default:b.sanitizeURL&&(d=\"\"+d),a.push(H,c,I,u(C(d)),E)}}else if(ia(c)){switch(typeof d){case \"function\":case \"symbol\":return;case \"boolean\":if(b=c.toLowerCase().slice(0,5),\"data-\"!==b&&\"aria-\"!==b)return}a.push(H,u(c),I,u(C(d)),E)}}var K=w(\">\"),Ka=w(\"/>\");\nfunction L(a,b,c){if(null!=b){if(null!=c)throw Error(k(60));if(\"object\"!==typeof b||!(\"__html\"in b))throw Error(k(61));b=b.__html;null!==b&&void 0!==b&&a.push(u(\"\"+b))}}function La(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}var Ma=w(' selected=\"\"');\nfunction Na(a,b,c,d){a.push(M(c));var f=c=null,e;for(e in b)if(x.call(b,e)){var g=b[e];if(null!=g)switch(e){case \"children\":c=g;break;case \"dangerouslySetInnerHTML\":f=g;break;default:J(a,d,e,g)}}a.push(K);L(a,f,c);return\"string\"===typeof c?(a.push(u(C(c))),null):c}var Oa=w(\"\\n\"),Pa=/^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/,Qa=new Map;function M(a){var b=Qa.get(a);if(void 0===b){if(!Pa.test(a))throw Error(k(65,a));b=w(\"<\"+a);Qa.set(a,b)}return b}var Ra=w(\"<!DOCTYPE html>\");\nfunction Sa(a,b,c,d,f){switch(b){case \"select\":a.push(M(\"select\"));var e=null,g=null;for(r in c)if(x.call(c,r)){var h=c[r];if(null!=h)switch(r){case \"children\":e=h;break;case \"dangerouslySetInnerHTML\":g=h;break;case \"defaultValue\":case \"value\":break;default:J(a,d,r,h)}}a.push(K);L(a,g,e);return e;case \"option\":g=f.selectedValue;a.push(M(\"option\"));var m=h=null,q=null;var r=null;for(e in c)if(x.call(c,e)){var v=c[e];if(null!=v)switch(e){case \"children\":h=v;break;case \"selected\":q=v;break;case \"dangerouslySetInnerHTML\":r=\nv;break;case \"value\":m=v;default:J(a,d,e,v)}}if(null!=g)if(c=null!==m?\"\"+m:La(h),ra(g))for(d=0;d<g.length;d++){if(\"\"+g[d]===c){a.push(Ma);break}}else\"\"+g===c&&a.push(Ma);else q&&a.push(Ma);a.push(K);L(a,r,h);return h;case \"textarea\":a.push(M(\"textarea\"));r=g=e=null;for(h in c)if(x.call(c,h)&&(m=c[h],null!=m))switch(h){case \"children\":r=m;break;case \"value\":e=m;break;case \"defaultValue\":g=m;break;case \"dangerouslySetInnerHTML\":throw Error(k(91));default:J(a,d,h,m)}null===e&&null!==g&&(e=g);a.push(K);\nif(null!=r){if(null!=e)throw Error(k(92));if(ra(r)&&1<r.length)throw Error(k(93));e=\"\"+r}\"string\"===typeof e&&\"\\n\"===e[0]&&a.push(Oa);null!==e&&a.push(u(C(\"\"+e)));return null;case \"input\":a.push(M(\"input\"));m=r=h=e=null;for(g in c)if(x.call(c,g)&&(q=c[g],null!=q))switch(g){case \"children\":case \"dangerouslySetInnerHTML\":throw Error(k(399,\"input\"));case \"defaultChecked\":m=q;break;case \"defaultValue\":h=q;break;case \"checked\":r=q;break;case \"value\":e=q;break;default:J(a,d,g,q)}null!==r?J(a,d,\"checked\",\nr):null!==m&&J(a,d,\"checked\",m);null!==e?J(a,d,\"value\",e):null!==h&&J(a,d,\"value\",h);a.push(Ka);return null;case \"menuitem\":a.push(M(\"menuitem\"));for(var A in c)if(x.call(c,A)&&(e=c[A],null!=e))switch(A){case \"children\":case \"dangerouslySetInnerHTML\":throw Error(k(400));default:J(a,d,A,e)}a.push(K);return null;case \"title\":a.push(M(\"title\"));e=null;for(v in c)if(x.call(c,v)&&(g=c[v],null!=g))switch(v){case \"children\":e=g;break;case \"dangerouslySetInnerHTML\":throw Error(k(434));default:J(a,d,v,g)}a.push(K);\nreturn e;case \"listing\":case \"pre\":a.push(M(b));g=e=null;for(m in c)if(x.call(c,m)&&(h=c[m],null!=h))switch(m){case \"children\":e=h;break;case \"dangerouslySetInnerHTML\":g=h;break;default:J(a,d,m,h)}a.push(K);if(null!=g){if(null!=e)throw Error(k(60));if(\"object\"!==typeof g||!(\"__html\"in g))throw Error(k(61));c=g.__html;null!==c&&void 0!==c&&(\"string\"===typeof c&&0<c.length&&\"\\n\"===c[0]?a.push(Oa,u(c)):a.push(u(\"\"+c)))}\"string\"===typeof e&&\"\\n\"===e[0]&&a.push(Oa);return e;case \"area\":case \"base\":case \"br\":case \"col\":case \"embed\":case \"hr\":case \"img\":case \"keygen\":case \"link\":case \"meta\":case \"param\":case \"source\":case \"track\":case \"wbr\":a.push(M(b));\nfor(var F in c)if(x.call(c,F)&&(e=c[F],null!=e))switch(F){case \"children\":case \"dangerouslySetInnerHTML\":throw Error(k(399,b));default:J(a,d,F,e)}a.push(Ka);return null;case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return Na(a,c,b,d);case \"html\":return 0===f.insertionMode&&a.push(Ra),Na(a,c,b,d);default:if(-1===b.indexOf(\"-\")&&\"string\"!==typeof c.is)return Na(a,c,b,d);a.push(M(b));\ng=e=null;for(q in c)if(x.call(c,q)&&(h=c[q],null!=h))switch(q){case \"children\":e=h;break;case \"dangerouslySetInnerHTML\":g=h;break;case \"style\":Ia(a,d,h);break;case \"suppressContentEditableWarning\":case \"suppressHydrationWarning\":break;default:ia(q)&&\"function\"!==typeof h&&\"symbol\"!==typeof h&&a.push(H,u(q),I,u(C(h)),E)}a.push(K);L(a,g,e);return e}}\nvar Ta=w(\"</\"),Ua=w(\">\"),Va=w('<template id=\"'),Wa=w('\"></template>'),Xa=w(\"\\x3c!--$--\\x3e\"),Ya=w('\\x3c!--$?--\\x3e<template id=\"'),Za=w('\"></template>'),$a=w(\"\\x3c!--$!--\\x3e\"),ab=w(\"\\x3c!--/$--\\x3e\"),bb=w(\"<template\"),cb=w('\"'),db=w(' data-dgst=\"');w(' data-msg=\"');w(' data-stck=\"');var eb=w(\"></template>\");function fb(a,b,c){p(a,Ya);if(null===c)throw Error(k(395));p(a,c);return t(a,Za)}\nvar gb=w('<div hidden id=\"'),hb=w('\">'),ib=w(\"</div>\"),jb=w('<svg aria-hidden=\"true\" style=\"display:none\" id=\"'),kb=w('\">'),lb=w(\"</svg>\"),mb=w('<math aria-hidden=\"true\" style=\"display:none\" id=\"'),nb=w('\">'),ob=w(\"</math>\"),pb=w('<table hidden id=\"'),qb=w('\">'),rb=w(\"</table>\"),sb=w('<table hidden><tbody id=\"'),tb=w('\">'),ub=w(\"</tbody></table>\"),vb=w('<table hidden><tr id=\"'),wb=w('\">'),xb=w(\"</tr></table>\"),yb=w('<table hidden><colgroup id=\"'),zb=w('\">'),Ab=w(\"</colgroup></table>\");\nfunction Bb(a,b,c,d){switch(c.insertionMode){case 0:case 1:return p(a,gb),p(a,b.segmentPrefix),p(a,u(d.toString(16))),t(a,hb);case 2:return p(a,jb),p(a,b.segmentPrefix),p(a,u(d.toString(16))),t(a,kb);case 3:return p(a,mb),p(a,b.segmentPrefix),p(a,u(d.toString(16))),t(a,nb);case 4:return p(a,pb),p(a,b.segmentPrefix),p(a,u(d.toString(16))),t(a,qb);case 5:return p(a,sb),p(a,b.segmentPrefix),p(a,u(d.toString(16))),t(a,tb);case 6:return p(a,vb),p(a,b.segmentPrefix),p(a,u(d.toString(16))),t(a,wb);case 7:return p(a,\nyb),p(a,b.segmentPrefix),p(a,u(d.toString(16))),t(a,zb);default:throw Error(k(397));}}function Cb(a,b){switch(b.insertionMode){case 0:case 1:return t(a,ib);case 2:return t(a,lb);case 3:return t(a,ob);case 4:return t(a,rb);case 5:return t(a,ub);case 6:return t(a,xb);case 7:return t(a,Ab);default:throw Error(k(397));}}\nvar Db=w('function $RS(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS(\"'),Eb=w('$RS(\"'),Gb=w('\",\"'),Hb=w('\")\\x3c/script>'),Ib=w('function $RC(a,b){a=document.getElementById(a);b=document.getElementById(b);b.parentNode.removeChild(b);if(a){a=a.previousSibling;var f=a.parentNode,c=a.nextSibling,e=0;do{if(c&&8===c.nodeType){var d=c.data;if(\"/$\"===d)if(0===e)break;else e--;else\"$\"!==d&&\"$?\"!==d&&\"$!\"!==d||e++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;b.firstChild;)f.insertBefore(b.firstChild,c);a.data=\"$\";a._reactRetry&&a._reactRetry()}};$RC(\"'),\nJb=w('$RC(\"'),Kb=w('\",\"'),Lb=w('\")\\x3c/script>'),Mb=w('function $RX(b,c,d,e){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data=\"$!\",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),b._reactRetry&&b._reactRetry())};$RX(\"'),Nb=w('$RX(\"'),Ob=w('\"'),Pb=w(\")\\x3c/script>\"),Qb=w(\",\"),Rb=/[<\\u2028\\u2029]/g;\nfunction Sb(a){return JSON.stringify(a).replace(Rb,function(a){switch(a){case \"<\":return\"\\\\u003c\";case \"\\u2028\":return\"\\\\u2028\";case \"\\u2029\":return\"\\\\u2029\";default:throw Error(\"escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\");}})}\nvar N=Object.assign,Tb=Symbol.for(\"react.element\"),Ub=Symbol.for(\"react.portal\"),Vb=Symbol.for(\"react.fragment\"),Wb=Symbol.for(\"react.strict_mode\"),Xb=Symbol.for(\"react.profiler\"),Yb=Symbol.for(\"react.provider\"),Zb=Symbol.for(\"react.context\"),$b=Symbol.for(\"react.forward_ref\"),ac=Symbol.for(\"react.suspense\"),bc=Symbol.for(\"react.suspense_list\"),cc=Symbol.for(\"react.memo\"),dc=Symbol.for(\"react.lazy\"),ec=Symbol.for(\"react.scope\"),fc=Symbol.for(\"react.debug_trace_mode\"),gc=Symbol.for(\"react.legacy_hidden\"),\nhc=Symbol.for(\"react.default_value\"),ic=Symbol.iterator;\nfunction jc(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case Vb:return\"Fragment\";case Ub:return\"Portal\";case Xb:return\"Profiler\";case Wb:return\"StrictMode\";case ac:return\"Suspense\";case bc:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Zb:return(a.displayName||\"Context\")+\".Consumer\";case Yb:return(a._context.displayName||\"Context\")+\".Provider\";case $b:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case cc:return b=a.displayName||null,null!==b?b:jc(a.type)||\"Memo\";case dc:b=a._payload;a=a._init;try{return jc(a(b))}catch(c){}}return null}var kc={};function lc(a,b){a=a.contextTypes;if(!a)return kc;var c={},d;for(d in a)c[d]=b[d];return c}var O=null;\nfunction P(a,b){if(a!==b){a.context._currentValue=a.parentValue;a=a.parent;var c=b.parent;if(null===a){if(null!==c)throw Error(k(401));}else{if(null===c)throw Error(k(401));P(a,c)}b.context._currentValue=b.value}}function mc(a){a.context._currentValue=a.parentValue;a=a.parent;null!==a&&mc(a)}function nc(a){var b=a.parent;null!==b&&nc(b);a.context._currentValue=a.value}\nfunction oc(a,b){a.context._currentValue=a.parentValue;a=a.parent;if(null===a)throw Error(k(402));a.depth===b.depth?P(a,b):oc(a,b)}function pc(a,b){var c=b.parent;if(null===c)throw Error(k(402));a.depth===c.depth?P(a,c):pc(a,c);b.context._currentValue=b.value}function Q(a){var b=O;b!==a&&(null===b?nc(a):null===a?mc(b):b.depth===a.depth?P(b,a):b.depth>a.depth?oc(b,a):pc(b,a),O=a)}\nvar qc={isMounted:function(){return!1},enqueueSetState:function(a,b){a=a._reactInternals;null!==a.queue&&a.queue.push(b)},enqueueReplaceState:function(a,b){a=a._reactInternals;a.replace=!0;a.queue=[b]},enqueueForceUpdate:function(){}};\nfunction rc(a,b,c,d){var f=void 0!==a.state?a.state:null;a.updater=qc;a.props=c;a.state=f;var e={queue:[],replace:!1};a._reactInternals=e;var g=b.contextType;a.context=\"object\"===typeof g&&null!==g?g._currentValue:d;g=b.getDerivedStateFromProps;\"function\"===typeof g&&(g=g(c,f),f=null===g||void 0===g?f:N({},f,g),a.state=f);if(\"function\"!==typeof b.getDerivedStateFromProps&&\"function\"!==typeof a.getSnapshotBeforeUpdate&&(\"function\"===typeof a.UNSAFE_componentWillMount||\"function\"===typeof a.componentWillMount))if(b=\na.state,\"function\"===typeof a.componentWillMount&&a.componentWillMount(),\"function\"===typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),b!==a.state&&qc.enqueueReplaceState(a,a.state,null),null!==e.queue&&0<e.queue.length)if(b=e.queue,g=e.replace,e.queue=null,e.replace=!1,g&&1===b.length)a.state=b[0];else{e=g?b[0]:a.state;f=!0;for(g=g?1:0;g<b.length;g++){var h=b[g];h=\"function\"===typeof h?h.call(a,e,c,d):h;null!=h&&(f?(f=!1,e=N({},e,h)):N(e,h))}a.state=e}else e.queue=null}\nvar sc={id:1,overflow:\"\"};function tc(a,b,c){var d=a.id;a=a.overflow;var f=32-uc(d)-1;d&=~(1<<f);c+=1;var e=32-uc(b)+f;if(30<e){var g=f-f%5;e=(d&(1<<g)-1).toString(32);d>>=g;f-=g;return{id:1<<32-uc(b)+f|c<<f|d,overflow:e+a}}return{id:1<<e|c<<f|d,overflow:a}}var uc=Math.clz32?Math.clz32:vc,wc=Math.log,xc=Math.LN2;function vc(a){a>>>=0;return 0===a?32:31-(wc(a)/xc|0)|0}function yc(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}\nvar zc=\"function\"===typeof Object.is?Object.is:yc,R=null,Ac=null,Bc=null,S=null,T=!1,Cc=!1,U=0,V=null,Dc=0;function W(){if(null===R)throw Error(k(321));return R}function Ec(){if(0<Dc)throw Error(k(312));return{memoizedState:null,queue:null,next:null}}function Fc(){null===S?null===Bc?(T=!1,Bc=S=Ec()):(T=!0,S=Bc):null===S.next?(T=!1,S=S.next=Ec()):(T=!0,S=S.next);return S}function Gc(){Ac=R=null;Cc=!1;Bc=null;Dc=0;S=V=null}function Hc(a,b){return\"function\"===typeof b?b(a):b}\nfunction Ic(a,b,c){R=W();S=Fc();if(T){var d=S.queue;b=d.dispatch;if(null!==V&&(c=V.get(d),void 0!==c)){V.delete(d);d=S.memoizedState;do d=a(d,c.action),c=c.next;while(null!==c);S.memoizedState=d;return[d,b]}return[S.memoizedState,b]}a=a===Hc?\"function\"===typeof b?b():b:void 0!==c?c(b):b;S.memoizedState=a;a=S.queue={last:null,dispatch:null};a=a.dispatch=Jc.bind(null,R,a);return[S.memoizedState,a]}\nfunction Kc(a,b){R=W();S=Fc();b=void 0===b?null:b;if(null!==S){var c=S.memoizedState;if(null!==c&&null!==b){var d=c[1];a:if(null===d)d=!1;else{for(var f=0;f<d.length&&f<b.length;f++)if(!zc(b[f],d[f])){d=!1;break a}d=!0}if(d)return c[0]}}a=a();S.memoizedState=[a,b];return a}function Jc(a,b,c){if(25<=Dc)throw Error(k(301));if(a===R)if(Cc=!0,a={action:c,next:null},null===V&&(V=new Map),c=V.get(b),void 0===c)V.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}}\nfunction Lc(){throw Error(k(394));}function Mc(){}\nvar Oc={readContext:function(a){return a._currentValue},useContext:function(a){W();return a._currentValue},useMemo:Kc,useReducer:Ic,useRef:function(a){R=W();S=Fc();var b=S.memoizedState;return null===b?(a={current:a},S.memoizedState=a):b},useState:function(a){return Ic(Hc,a)},useInsertionEffect:Mc,useLayoutEffect:function(){},useCallback:function(a,b){return Kc(function(){return a},b)},useImperativeHandle:Mc,useEffect:Mc,useDebugValue:Mc,useDeferredValue:function(a){W();return a},useTransition:function(){W();\nreturn[!1,Lc]},useId:function(){var a=Ac.treeContext;var b=a.overflow;a=a.id;a=(a&~(1<<32-uc(a)-1)).toString(32)+b;var c=Nc;if(null===c)throw Error(k(404));b=U++;a=\":\"+c.idPrefix+\"R\"+a;0<b&&(a+=\"H\"+b.toString(32));return a+\":\"},useMutableSource:function(a,b){W();return b(a._source)},useSyncExternalStore:function(a,b,c){if(void 0===c)throw Error(k(407));return c()}},Nc=null,Pc=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentDispatcher;function Qc(a){console.error(a);return null}\nfunction X(){}\nfunction Rc(a,b,c,d,f,e,g,h,m){var q=[],r=new Set;b={destination:null,responseState:b,progressiveChunkSize:void 0===d?12800:d,status:0,fatalError:null,nextSegmentId:0,allPendingTasks:0,pendingRootTasks:0,completedRootSegment:null,abortableTasks:r,pingedTasks:q,clientRenderedBoundaries:[],completedBoundaries:[],partialBoundaries:[],onError:void 0===f?Qc:f,onAllReady:void 0===e?X:e,onShellReady:void 0===g?X:g,onShellError:void 0===h?X:h,onFatalError:void 0===m?X:m};c=Sc(b,0,null,c,!1,!1);c.parentFlushed=\n!0;a=Tc(b,a,null,c,r,kc,null,sc);q.push(a);return b}function Tc(a,b,c,d,f,e,g,h){a.allPendingTasks++;null===c?a.pendingRootTasks++:c.pendingTasks++;var m={node:b,ping:function(){var b=a.pingedTasks;b.push(m);1===b.length&&Uc(a)},blockedBoundary:c,blockedSegment:d,abortSet:f,legacyContext:e,context:g,treeContext:h};f.add(m);return m}function Sc(a,b,c,d,f,e){return{status:0,id:-1,index:b,parentFlushed:!1,chunks:[],children:[],formatContext:d,boundary:c,lastPushedText:f,textEmbedded:e}}\nfunction Y(a,b){a=a.onError(b);if(null!=a&&\"string\"!==typeof a)throw Error('onError returned something with a type other than \"string\". onError should return a string and may return null or undefined but must not return anything else. It received something of type \"'+typeof a+'\" instead');return a}function Vc(a,b){var c=a.onShellError;c(b);c=a.onFatalError;c(b);null!==a.destination?(a.status=2,da(a.destination,b)):(a.status=1,a.fatalError=b)}\nfunction Wc(a,b,c,d,f){R={};Ac=b;U=0;for(a=c(d,f);Cc;)Cc=!1,U=0,Dc+=1,S=null,a=c(d,f);Gc();return a}function Xc(a,b,c,d){var f=c.render(),e=d.childContextTypes;if(null!==e&&void 0!==e){var g=b.legacyContext;if(\"function\"!==typeof c.getChildContext)d=g;else{c=c.getChildContext();for(var h in c)if(!(h in e))throw Error(k(108,jc(d)||\"Unknown\",h));d=N({},g,c)}b.legacyContext=d;Z(a,b,f);b.legacyContext=g}else Z(a,b,f)}\nfunction Yc(a,b){if(a&&a.defaultProps){b=N({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}\nfunction Zc(a,b,c,d,f){if(\"function\"===typeof c)if(c.prototype&&c.prototype.isReactComponent){f=lc(c,b.legacyContext);var e=c.contextType;e=new c(d,\"object\"===typeof e&&null!==e?e._currentValue:f);rc(e,c,d,f);Xc(a,b,e,c)}else{e=lc(c,b.legacyContext);f=Wc(a,b,c,d,e);var g=0!==U;if(\"object\"===typeof f&&null!==f&&\"function\"===typeof f.render&&void 0===f.$$typeof)rc(f,c,d,e),Xc(a,b,f,c);else if(g){d=b.treeContext;b.treeContext=tc(d,1,0);try{Z(a,b,f)}finally{b.treeContext=d}}else Z(a,b,f)}else if(\"string\"===\ntypeof c){f=b.blockedSegment;e=Sa(f.chunks,c,d,a.responseState,f.formatContext);f.lastPushedText=!1;g=f.formatContext;f.formatContext=Ba(g,c,d);$c(a,b,e);f.formatContext=g;switch(c){case \"area\":case \"base\":case \"br\":case \"col\":case \"embed\":case \"hr\":case \"img\":case \"input\":case \"keygen\":case \"link\":case \"meta\":case \"param\":case \"source\":case \"track\":case \"wbr\":break;default:f.chunks.push(Ta,u(c),Ua)}f.lastPushedText=!1}else{switch(c){case gc:case fc:case Wb:case Xb:case Vb:Z(a,b,d.children);return;\ncase bc:Z(a,b,d.children);return;case ec:throw Error(k(343));case ac:a:{c=b.blockedBoundary;f=b.blockedSegment;e=d.fallback;d=d.children;g=new Set;var h={id:null,rootSegmentID:-1,parentFlushed:!1,pendingTasks:0,forceClientRender:!1,completedSegments:[],byteSize:0,fallbackAbortableTasks:g,errorDigest:null},m=Sc(a,f.chunks.length,h,f.formatContext,!1,!1);f.children.push(m);f.lastPushedText=!1;var q=Sc(a,0,null,f.formatContext,!1,!1);q.parentFlushed=!0;b.blockedBoundary=h;b.blockedSegment=q;try{if($c(a,\nb,d),q.lastPushedText&&q.textEmbedded&&q.chunks.push(Ca),q.status=1,ad(h,q),0===h.pendingTasks)break a}catch(r){q.status=4,h.forceClientRender=!0,h.errorDigest=Y(a,r)}finally{b.blockedBoundary=c,b.blockedSegment=f}b=Tc(a,e,c,m,g,b.legacyContext,b.context,b.treeContext);a.pingedTasks.push(b)}return}if(\"object\"===typeof c&&null!==c)switch(c.$$typeof){case $b:d=Wc(a,b,c.render,d,f);if(0!==U){c=b.treeContext;b.treeContext=tc(c,1,0);try{Z(a,b,d)}finally{b.treeContext=c}}else Z(a,b,d);return;case cc:c=\nc.type;d=Yc(c,d);Zc(a,b,c,d,f);return;case Yb:f=d.children;c=c._context;d=d.value;e=c._currentValue;c._currentValue=d;g=O;O=d={parent:g,depth:null===g?0:g.depth+1,context:c,parentValue:e,value:d};b.context=d;Z(a,b,f);a=O;if(null===a)throw Error(k(403));d=a.parentValue;a.context._currentValue=d===hc?a.context._defaultValue:d;a=O=a.parent;b.context=a;return;case Zb:d=d.children;d=d(c._currentValue);Z(a,b,d);return;case dc:f=c._init;c=f(c._payload);d=Yc(c,d);Zc(a,b,c,d,void 0);return}throw Error(k(130,\nnull==c?c:typeof c,\"\"));}}\nfunction Z(a,b,c){b.node=c;if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case Tb:Zc(a,b,c.type,c.props,c.ref);return;case Ub:throw Error(k(257));case dc:var d=c._init;c=d(c._payload);Z(a,b,c);return}if(ra(c)){bd(a,b,c);return}null===c||\"object\"!==typeof c?d=null:(d=ic&&c[ic]||c[\"@@iterator\"],d=\"function\"===typeof d?d:null);if(d&&(d=d.call(c))){c=d.next();if(!c.done){var f=[];do f.push(c.value),c=d.next();while(!c.done);bd(a,b,f)}return}a=Object.prototype.toString.call(c);throw Error(k(31,\"[object Object]\"===\na?\"object with keys {\"+Object.keys(c).join(\", \")+\"}\":a));}\"string\"===typeof c?(d=b.blockedSegment,d.lastPushedText=Da(b.blockedSegment.chunks,c,a.responseState,d.lastPushedText)):\"number\"===typeof c&&(d=b.blockedSegment,d.lastPushedText=Da(b.blockedSegment.chunks,\"\"+c,a.responseState,d.lastPushedText))}function bd(a,b,c){for(var d=c.length,f=0;f<d;f++){var e=b.treeContext;b.treeContext=tc(e,d,f);try{$c(a,b,c[f])}finally{b.treeContext=e}}}\nfunction $c(a,b,c){var d=b.blockedSegment.formatContext,f=b.legacyContext,e=b.context;try{return Z(a,b,c)}catch(m){if(Gc(),\"object\"===typeof m&&null!==m&&\"function\"===typeof m.then){c=m;var g=b.blockedSegment,h=Sc(a,g.chunks.length,null,g.formatContext,g.lastPushedText,!0);g.children.push(h);g.lastPushedText=!1;a=Tc(a,b.node,b.blockedBoundary,h,b.abortSet,b.legacyContext,b.context,b.treeContext).ping;c.then(a,a);b.blockedSegment.formatContext=d;b.legacyContext=f;b.context=e;Q(e)}else throw b.blockedSegment.formatContext=\nd,b.legacyContext=f,b.context=e,Q(e),m;}}function cd(a){var b=a.blockedBoundary;a=a.blockedSegment;a.status=3;dd(this,b,a)}\nfunction ed(a,b,c){var d=a.blockedBoundary;a.blockedSegment.status=3;null===d?(b.allPendingTasks--,2!==b.status&&(b.status=2,null!==b.destination&&b.destination.close())):(d.pendingTasks--,d.forceClientRender||(d.forceClientRender=!0,a=void 0===c?Error(k(432)):c,d.errorDigest=b.onError(a),d.parentFlushed&&b.clientRenderedBoundaries.push(d)),d.fallbackAbortableTasks.forEach(function(a){return ed(a,b,c)}),d.fallbackAbortableTasks.clear(),b.allPendingTasks--,0===b.allPendingTasks&&(d=b.onAllReady,d()))}\nfunction ad(a,b){if(0===b.chunks.length&&1===b.children.length&&null===b.children[0].boundary){var c=b.children[0];c.id=b.id;c.parentFlushed=!0;1===c.status&&ad(a,c)}else a.completedSegments.push(b)}\nfunction dd(a,b,c){if(null===b){if(c.parentFlushed){if(null!==a.completedRootSegment)throw Error(k(389));a.completedRootSegment=c}a.pendingRootTasks--;0===a.pendingRootTasks&&(a.onShellError=X,b=a.onShellReady,b())}else b.pendingTasks--,b.forceClientRender||(0===b.pendingTasks?(c.parentFlushed&&1===c.status&&ad(b,c),b.parentFlushed&&a.completedBoundaries.push(b),b.fallbackAbortableTasks.forEach(cd,a),b.fallbackAbortableTasks.clear()):c.parentFlushed&&1===c.status&&(ad(b,c),1===b.completedSegments.length&&\nb.parentFlushed&&a.partialBoundaries.push(b)));a.allPendingTasks--;0===a.allPendingTasks&&(a=a.onAllReady,a())}\nfunction Uc(a){if(2!==a.status){var b=O,c=Pc.current;Pc.current=Oc;var d=Nc;Nc=a.responseState;try{var f=a.pingedTasks,e;for(e=0;e<f.length;e++){var g=f[e];var h=a,m=g.blockedSegment;if(0===m.status){Q(g.context);try{Z(h,g,g.node),m.lastPushedText&&m.textEmbedded&&m.chunks.push(Ca),g.abortSet.delete(g),m.status=1,dd(h,g.blockedBoundary,m)}catch(G){if(Gc(),\"object\"===typeof G&&null!==G&&\"function\"===typeof G.then){var q=g.ping;G.then(q,q)}else{g.abortSet.delete(g);m.status=4;var r=g.blockedBoundary,\nv=G,A=Y(h,v);null===r?Vc(h,v):(r.pendingTasks--,r.forceClientRender||(r.forceClientRender=!0,r.errorDigest=A,r.parentFlushed&&h.clientRenderedBoundaries.push(r)));h.allPendingTasks--;if(0===h.allPendingTasks){var F=h.onAllReady;F()}}}finally{}}}f.splice(0,e);null!==a.destination&&fd(a,a.destination)}catch(G){Y(a,G),Vc(a,G)}finally{Nc=d,Pc.current=c,c===Oc&&Q(b)}}}\nfunction gd(a,b,c){c.parentFlushed=!0;switch(c.status){case 0:var d=c.id=a.nextSegmentId++;c.lastPushedText=!1;c.textEmbedded=!1;a=a.responseState;p(b,Va);p(b,a.placeholderPrefix);a=u(d.toString(16));p(b,a);return t(b,Wa);case 1:c.status=2;var f=!0;d=c.chunks;var e=0;c=c.children;for(var g=0;g<c.length;g++){for(f=c[g];e<f.index;e++)p(b,d[e]);f=hd(a,b,f)}for(;e<d.length-1;e++)p(b,d[e]);e<d.length&&(f=t(b,d[e]));return f;default:throw Error(k(390));}}\nfunction hd(a,b,c){var d=c.boundary;if(null===d)return gd(a,b,c);d.parentFlushed=!0;if(d.forceClientRender)d=d.errorDigest,t(b,$a),p(b,bb),d&&(p(b,db),p(b,u(C(d))),p(b,cb)),t(b,eb),gd(a,b,c);else if(0<d.pendingTasks){d.rootSegmentID=a.nextSegmentId++;0<d.completedSegments.length&&a.partialBoundaries.push(d);var f=a.responseState;var e=f.nextSuspenseID++;f=w(f.boundaryPrefix+e.toString(16));d=d.id=f;fb(b,a.responseState,d);gd(a,b,c)}else if(d.byteSize>a.progressiveChunkSize)d.rootSegmentID=a.nextSegmentId++,\na.completedBoundaries.push(d),fb(b,a.responseState,d.id),gd(a,b,c);else{t(b,Xa);c=d.completedSegments;if(1!==c.length)throw Error(k(391));hd(a,b,c[0])}return t(b,ab)}function id(a,b,c){Bb(b,a.responseState,c.formatContext,c.id);hd(a,b,c);return Cb(b,c.formatContext)}\nfunction jd(a,b,c){for(var d=c.completedSegments,f=0;f<d.length;f++)kd(a,b,c,d[f]);d.length=0;a=a.responseState;d=c.id;c=c.rootSegmentID;p(b,a.startInlineScript);a.sentCompleteBoundaryFunction?p(b,Jb):(a.sentCompleteBoundaryFunction=!0,p(b,Ib));if(null===d)throw Error(k(395));c=u(c.toString(16));p(b,d);p(b,Kb);p(b,a.segmentPrefix);p(b,c);return t(b,Lb)}\nfunction kd(a,b,c,d){if(2===d.status)return!0;var f=d.id;if(-1===f){if(-1===(d.id=c.rootSegmentID))throw Error(k(392));return id(a,b,d)}id(a,b,d);a=a.responseState;p(b,a.startInlineScript);a.sentCompleteSegmentFunction?p(b,Eb):(a.sentCompleteSegmentFunction=!0,p(b,Db));p(b,a.segmentPrefix);f=u(f.toString(16));p(b,f);p(b,Gb);p(b,a.placeholderPrefix);p(b,f);return t(b,Hb)}\nfunction fd(a,b){l=new Uint8Array(512);n=0;try{var c=a.completedRootSegment;if(null!==c&&0===a.pendingRootTasks){hd(a,b,c);a.completedRootSegment=null;var d=a.responseState.bootstrapChunks;for(c=0;c<d.length-1;c++)p(b,d[c]);c<d.length&&t(b,d[c])}var f=a.clientRenderedBoundaries,e;for(e=0;e<f.length;e++){var g=f[e];d=b;var h=a.responseState,m=g.id,q=g.errorDigest,r=g.errorMessage,v=g.errorComponentStack;p(d,h.startInlineScript);h.sentClientRenderFunction?p(d,Nb):(h.sentClientRenderFunction=!0,p(d,\nMb));if(null===m)throw Error(k(395));p(d,m);p(d,Ob);if(q||r||v)p(d,Qb),p(d,u(Sb(q||\"\")));if(r||v)p(d,Qb),p(d,u(Sb(r||\"\")));v&&(p(d,Qb),p(d,u(Sb(v))));if(!t(d,Pb)){a.destination=null;e++;f.splice(0,e);return}}f.splice(0,e);var A=a.completedBoundaries;for(e=0;e<A.length;e++)if(!jd(a,b,A[e])){a.destination=null;e++;A.splice(0,e);return}A.splice(0,e);ba(b);l=new Uint8Array(512);n=0;var F=a.partialBoundaries;for(e=0;e<F.length;e++){var G=F[e];a:{f=a;g=b;var ma=G.completedSegments;for(h=0;h<ma.length;h++)if(!kd(f,\ng,G,ma[h])){h++;ma.splice(0,h);var Fb=!1;break a}ma.splice(0,h);Fb=!0}if(!Fb){a.destination=null;e++;F.splice(0,e);return}}F.splice(0,e);var na=a.completedBoundaries;for(e=0;e<na.length;e++)if(!jd(a,b,na[e])){a.destination=null;e++;na.splice(0,e);return}na.splice(0,e)}finally{ba(b),0===a.allPendingTasks&&0===a.pingedTasks.length&&0===a.clientRenderedBoundaries.length&&0===a.completedBoundaries.length&&b.close()}}\nfunction ld(a,b){try{var c=a.abortableTasks;c.forEach(function(c){return ed(c,a,b)});c.clear();null!==a.destination&&fd(a,a.destination)}catch(d){Y(a,d),Vc(a,d)}}\nexports.renderToReadableStream=function(a,b){return new Promise(function(c,d){var f,e,g=new Promise(function(a,b){e=a;f=b}),h=Rc(a,za(b?b.identifierPrefix:void 0,b?b.nonce:void 0,b?b.bootstrapScriptContent:void 0,b?b.bootstrapScripts:void 0,b?b.bootstrapModules:void 0),Aa(b?b.namespaceURI:void 0),b?b.progressiveChunkSize:void 0,b?b.onError:void 0,e,function(){var a=new ReadableStream({type:\"bytes\",pull:function(a){if(1===h.status)h.status=2,da(a,h.fatalError);else if(2!==h.status&&null===h.destination){h.destination=\na;try{fd(h,a)}catch(A){Y(h,A),Vc(h,A)}}},cancel:function(){ld(h)}},{highWaterMark:0});a.allReady=g;c(a)},function(a){g.catch(function(){});d(a)},f);if(b&&b.signal){var m=b.signal,q=function(){ld(h,m.reason);m.removeEventListener(\"abort\",q)};m.addEventListener(\"abort\",q)}Uc(h)})};exports.version=\"18.2.0\";\n", "'use strict';\n\nvar l, s;\nif (process.env.NODE_ENV === 'production') {\n l = require('./cjs/react-dom-server-legacy.browser.production.min.js');\n s = require('./cjs/react-dom-server.browser.production.min.js');\n} else {\n l = require('./cjs/react-dom-server-legacy.browser.development.js');\n s = require('./cjs/react-dom-server.browser.development.js');\n}\n\nexports.version = l.version;\nexports.renderToString = l.renderToString;\nexports.renderToStaticMarkup = l.renderToStaticMarkup;\nexports.renderToNodeStream = l.renderToNodeStream;\nexports.renderToStaticNodeStream = l.renderToStaticNodeStream;\nexports.renderToReadableStream = s.renderToReadableStream;\n", "/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n", "/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n", "\"use strict\";\n\nvar defaultParseOptions = {\n decodeValues: true,\n map: false,\n silent: false,\n};\n\nfunction isNonEmptyString(str) {\n return typeof str === \"string\" && !!str.trim();\n}\n\nfunction parseString(setCookieValue, options) {\n var parts = setCookieValue.split(\";\").filter(isNonEmptyString);\n\n var nameValuePairStr = parts.shift();\n var parsed = parseNameValuePair(nameValuePairStr);\n var name = parsed.name;\n var value = parsed.value;\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n try {\n value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value\n } catch (e) {\n console.error(\n \"set-cookie-parser encountered an error while decoding a cookie with value '\" +\n value +\n \"'. Set options.decodeValues to false to disable this feature.\",\n e\n );\n }\n\n var cookie = {\n name: name,\n value: value,\n };\n\n parts.forEach(function (part) {\n var sides = part.split(\"=\");\n var key = sides.shift().trimLeft().toLowerCase();\n var value = sides.join(\"=\");\n if (key === \"expires\") {\n cookie.expires = new Date(value);\n } else if (key === \"max-age\") {\n cookie.maxAge = parseInt(value, 10);\n } else if (key === \"secure\") {\n cookie.secure = true;\n } else if (key === \"httponly\") {\n cookie.httpOnly = true;\n } else if (key === \"samesite\") {\n cookie.sameSite = value;\n } else {\n cookie[key] = value;\n }\n });\n\n return cookie;\n}\n\nfunction parseNameValuePair(nameValuePairStr) {\n // Parses name-value-pair according to rfc6265bis draft\n\n var name = \"\";\n var value = \"\";\n var nameValueArr = nameValuePairStr.split(\"=\");\n if (nameValueArr.length > 1) {\n name = nameValueArr.shift();\n value = nameValueArr.join(\"=\"); // everything after the first =, joined by a \"=\" if there was more than one part\n } else {\n value = nameValuePairStr;\n }\n\n return { name: name, value: value };\n}\n\nfunction parse(input, options) {\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!input) {\n if (!options.map) {\n return [];\n } else {\n return {};\n }\n }\n\n if (input.headers && input.headers[\"set-cookie\"]) {\n // fast-path for node.js (which automatically normalizes header names to lower-case\n input = input.headers[\"set-cookie\"];\n } else if (input.headers) {\n // slow-path for other environments - see #25\n var sch =\n input.headers[\n Object.keys(input.headers).find(function (key) {\n return key.toLowerCase() === \"set-cookie\";\n })\n ];\n // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36\n if (!sch && input.headers.cookie && !options.silent) {\n console.warn(\n \"Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning.\"\n );\n }\n input = sch;\n }\n if (!Array.isArray(input)) {\n input = [input];\n }\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!options.map) {\n return input.filter(isNonEmptyString).map(function (str) {\n return parseString(str, options);\n });\n } else {\n var cookies = {};\n return input.filter(isNonEmptyString).reduce(function (cookies, str) {\n var cookie = parseString(str, options);\n cookies[cookie.name] = cookie;\n return cookies;\n }, cookies);\n }\n}\n\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n\n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/\nfunction splitCookiesString(cookiesString) {\n if (Array.isArray(cookiesString)) {\n return cookiesString;\n }\n if (typeof cookiesString !== \"string\") {\n return [];\n }\n\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n\n skipWhitespace();\n nextStart = pos;\n\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n\n return cookiesStrings;\n}\n\nmodule.exports = parse;\nmodule.exports.parse = parse;\nmodule.exports.parseString = parseString;\nmodule.exports.splitCookiesString = splitCookiesString;\n", "\nimport * as entryServer from \"./entry.server.tsx\";\nimport * as route0 from \"./root.tsx\";\nimport * as route1 from \"./routes/index.tsx\";\n export { default as assets } from \"@remix-run/dev/assets-manifest\";\n export const assetsBuildDirectory = \"dist/client/build\";\n export const publicPath = \"/build/\";\n export const entry = { module: entryServer };\n export const routes = {\n \"root\": {\n id: \"root\",\n parentId: undefined,\n path: \"\",\n index: undefined,\n caseSensitive: undefined,\n module: route0\n },\n \"routes/index\": {\n id: \"routes/index\",\n parentId: \"root\",\n path: undefined,\n index: true,\n caseSensitive: undefined,\n module: route1\n }\n };", "import type {EntryContext} from '@shopify/remix-oxygen';\nimport {RemixServer} from '@remix-run/react';\nimport {renderToString} from 'react-dom/server';\n\nexport default function handleRequest(\n request: Request,\n responseStatusCode: number,\n responseHeaders: Headers,\n remixContext: EntryContext,\n) {\n const markup = renderToString(\n <RemixServer context={remixContext} url={request.url} />,\n );\n\n responseHeaders.set('Content-Type', 'text/html');\n\n return new Response('<!DOCTYPE html>' + markup, {\n status: responseStatusCode,\n headers: responseHeaders,\n });\n}\n", "import _extends from '@babel/runtime/helpers/esm/extends';\n\n/**\r\n * Actions represent the type of change to a location value.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#action\r\n */\nvar Action;\n\n(function (Action) {\n /**\r\n * A POP indicates a change to an arbitrary index in the history stack, such\r\n * as a back or forward navigation. It does not describe the direction of the\r\n * navigation, only that the current index changed.\r\n *\r\n * Note: This is the default action for newly created history objects.\r\n */\n Action[\"Pop\"] = \"POP\";\n /**\r\n * A PUSH indicates a new entry being added to the history stack, such as when\r\n * a link is clicked and a new page loads. When this happens, all subsequent\r\n * entries in the stack are lost.\r\n */\n\n Action[\"Push\"] = \"PUSH\";\n /**\r\n * A REPLACE indicates the entry at the current index in the history stack\r\n * being replaced by a new one.\r\n */\n\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\n\nvar readOnly = process.env.NODE_ENV !== \"production\" ? function (obj) {\n return Object.freeze(obj);\n} : function (obj) {\n return obj;\n};\n\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== 'undefined') console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nvar BeforeUnloadEventType = 'beforeunload';\nvar HashChangeEventType = 'hashchange';\nvar PopStateEventType = 'popstate';\n/**\r\n * Browser history stores the location in regular URLs. This is the standard for\r\n * most web apps, but it requires some configuration on the server to ensure you\r\n * serve the same app at multiple URLs.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\r\n */\n\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$window = _options.window,\n window = _options$window === void 0 ? document.defaultView : _options$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation[0],\n nextLocation = _getIndexAndLocation[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n process.env.NODE_ENV !== \"production\" ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better what\n // is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : void 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop);\n var action = Action.Pop;\n\n var _getIndexAndLocation2 = getIndexAndLocation(),\n index = _getIndexAndLocation2[0],\n location = _getIndexAndLocation2[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n } // state defaults to `null` because `window.history.state` does\n\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation3 = getIndexAndLocation();\n\n index = _getIndexAndLocation3[0];\n location = _getIndexAndLocation3[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr[0],\n url = _getHistoryStateAndUr[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr2 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr2[0],\n url = _getHistoryStateAndUr2[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Hash history stores the location in window.location.hash. This makes it ideal\r\n * for situations where you don't want to send the location to the server for\r\n * some reason, either because you do cannot configure it or the URL space is\r\n * reserved for something else.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\r\n */\n\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options2 = options,\n _options2$window = _options2.window,\n window = _options2$window === void 0 ? document.defaultView : _options2$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _parsePath = parsePath(window.location.hash.substr(1)),\n _parsePath$pathname = _parsePath.pathname,\n pathname = _parsePath$pathname === void 0 ? '/' : _parsePath$pathname,\n _parsePath$search = _parsePath.search,\n search = _parsePath$search === void 0 ? '' : _parsePath$search,\n _parsePath$hash = _parsePath.hash,\n hash = _parsePath$hash === void 0 ? '' : _parsePath$hash;\n\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation4 = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation4[0],\n nextLocation = _getIndexAndLocation4[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n process.env.NODE_ENV !== \"production\" ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better\n // what is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : void 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop); // popstate does not fire on hashchange in IE 11 and old (trident) Edge\n // https://developer.mozilla.org/de/docs/Web/API/Window/popstate_event\n\n window.addEventListener(HashChangeEventType, function () {\n var _getIndexAndLocation5 = getIndexAndLocation(),\n nextLocation = _getIndexAndLocation5[1]; // Ignore extraneous hashchange events.\n\n\n if (createPath(nextLocation) !== createPath(location)) {\n handlePop();\n }\n });\n var action = Action.Pop;\n\n var _getIndexAndLocation6 = getIndexAndLocation(),\n index = _getIndexAndLocation6[0],\n location = _getIndexAndLocation6[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function getBaseHref() {\n var base = document.querySelector('base');\n var href = '';\n\n if (base && base.getAttribute('href')) {\n var url = window.location.href;\n var hashIndex = url.indexOf('#');\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href;\n }\n\n function createHref(to) {\n return getBaseHref() + '#' + (typeof to === 'string' ? to : createPath(to));\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation7 = getIndexAndLocation();\n\n index = _getIndexAndLocation7[0];\n location = _getIndexAndLocation7[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr3 = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr3[0],\n url = _getHistoryStateAndUr3[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.replace(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr4 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr4[0],\n url = _getHistoryStateAndUr4[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Memory history stores the current location in memory. It is designed for use\r\n * in stateful non-browser environments like tests and React Native.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#creatememoryhistory\r\n */\n\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options3 = options,\n _options3$initialEntr = _options3.initialEntries,\n initialEntries = _options3$initialEntr === void 0 ? ['/'] : _options3$initialEntr,\n initialIndex = _options3.initialIndex;\n var entries = initialEntries.map(function (entry) {\n var location = readOnly(_extends({\n pathname: '/',\n search: '',\n hash: '',\n state: null,\n key: createKey()\n }, typeof entry === 'string' ? parsePath(entry) : entry));\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in createMemoryHistory({ initialEntries }) (invalid entry: \" + JSON.stringify(entry) + \")\") : void 0;\n return location;\n });\n var index = clamp(initialIndex == null ? entries.length - 1 : initialIndex, 0, entries.length - 1);\n var action = Action.Pop;\n var location = entries[index];\n var listeners = createEvents();\n var blockers = createEvents();\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n search: '',\n hash: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction, nextLocation) {\n action = nextAction;\n location = nextLocation;\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.push(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n applyTx(nextAction, nextLocation);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.replace(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n entries[index] = nextLocation;\n applyTx(nextAction, nextLocation);\n }\n }\n\n function go(delta) {\n var nextIndex = clamp(index + delta, 0, entries.length - 1);\n var nextAction = Action.Pop;\n var nextLocation = entries[nextIndex];\n\n function retry() {\n go(delta);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index = nextIndex;\n applyTx(nextAction, nextLocation);\n }\n }\n\n var history = {\n get index() {\n return index;\n },\n\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n return blockers.push(blocker);\n }\n };\n return history;\n} ////////////////////////////////////////////////////////////////////////////////\n// UTILS\n////////////////////////////////////////////////////////////////////////////////\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n\nfunction promptBeforeUnload(event) {\n // Cancel the event.\n event.preventDefault(); // Chrome (and legacy IE) requires returnValue to be set.\n\n event.returnValue = '';\n}\n\nfunction createEvents() {\n var handlers = [];\n return {\n get length() {\n return handlers.length;\n },\n\n push: function push(fn) {\n handlers.push(fn);\n return function () {\n handlers = handlers.filter(function (handler) {\n return handler !== fn;\n });\n };\n },\n call: function call(arg) {\n handlers.forEach(function (fn) {\n return fn && fn(arg);\n });\n }\n };\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\r\n * Creates a string URL path from the given pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createpath\r\n */\n\n\nfunction createPath(_ref) {\n var _ref$pathname = _ref.pathname,\n pathname = _ref$pathname === void 0 ? '/' : _ref$pathname,\n _ref$search = _ref.search,\n search = _ref$search === void 0 ? '' : _ref$search,\n _ref$hash = _ref.hash,\n hash = _ref$hash === void 0 ? '' : _ref$hash;\n if (search && search !== '?') pathname += search.charAt(0) === '?' ? search : '?' + search;\n if (hash && hash !== '#') pathname += hash.charAt(0) === '#' ? hash : '#' + hash;\n return pathname;\n}\n/**\r\n * Parses a string URL path into its separate pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#parsepath\r\n */\n\nfunction parsePath(path) {\n var parsedPath = {};\n\n if (path) {\n var hashIndex = path.indexOf('#');\n\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n var searchIndex = path.indexOf('?');\n\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport { Action, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, parsePath };\n//# sourceMappingURL=index.js.map\n", "/**\n * @remix-run/react v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nexport { _extends as extends };\n", "/**\n * @remix-run/react v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { extends as _extends } from './_virtual/_rollupPluginBabelHelpers.js';\nimport * as React from 'react';\nimport { useHref, NavLink as NavLink$1, Link as Link$1, useLocation, useResolvedPath, useNavigate, Router, useRoutes } from 'react-router-dom';\nimport { AbortedDeferredError } from '@remix-run/deferred';\nimport { createPath } from 'history';\nimport { RemixErrorBoundary, RemixRootDefaultErrorBoundary, RemixCatchBoundary, RemixRootDefaultCatchBoundary } from './errorBoundaries.js';\nimport invariant from './invariant.js';\nimport { getLinksForMatches, isPageLinkDescriptor, getNewMatchesForLinks, getDataLinkHrefs, getModuleLinkHrefs, getStylesheetPrefetchLinks } from './links.js';\nimport { createHtml, escapeHtml } from './markup.js';\nimport { createClientRoutes } from './routes.js';\nimport { matchClientRoutes } from './routeMatching.js';\nimport { createTransitionManager } from './transition.js';\n\nconst IS_SSR = typeof document === \"undefined\"; ////////////////////////////////////////////////////////////////////////////////\n// RemixEntry\n\nconst RemixEntryContext = /*#__PURE__*/React.createContext(undefined);\n\nfunction useRemixEntryContext() {\n let context = React.useContext(RemixEntryContext);\n invariant(context, \"You must render this element inside a <Remix> element\");\n return context;\n}\n\nfunction RemixEntry({\n context: entryContext,\n action,\n location: historyLocation,\n navigator: _navigator,\n static: staticProp = false\n}) {\n let {\n manifest,\n routeData: documentLoaderData,\n deferredLoaderData: documentDeferredLoaderData,\n actionData: documentActionData,\n routeModules,\n serverHandoffString,\n appState: entryComponentDidCatchEmulator,\n serverAbortDelay: documentServerAbortDelay\n } = entryContext;\n let clientRoutes = React.useMemo(() => createClientRoutes(manifest.routes, routeModules, RemixRoute), [manifest, routeModules]);\n let [clientState, setClientState] = React.useState(entryComponentDidCatchEmulator);\n let [transitionManager] = React.useState(() => {\n return createTransitionManager({\n routes: clientRoutes,\n actionData: documentActionData,\n loaderData: documentLoaderData,\n deferredLoaderData: documentDeferredLoaderData,\n location: historyLocation,\n catch: entryComponentDidCatchEmulator.catch,\n catchBoundaryId: entryComponentDidCatchEmulator.catchBoundaryRouteId,\n onRedirect: _navigator.replace\n });\n });\n React.useEffect(() => {\n let subscriber = state => {\n setClientState({\n catch: state.catch,\n error: state.error,\n catchBoundaryRouteId: state.catchBoundaryId,\n loaderBoundaryRouteId: state.errorBoundaryId,\n renderBoundaryRouteId: null,\n trackBoundaries: false,\n trackCatchBoundaries: false\n });\n };\n\n return transitionManager.subscribe(subscriber);\n }, [transitionManager]); // Ensures pushes interrupting pending navigations use replace\n // TODO: Move this to React Router\n\n let navigator = React.useMemo(() => {\n let push = (to, state) => {\n return transitionManager.getState().transition.state !== \"idle\" ? _navigator.replace(to, state) : _navigator.push(to, state);\n };\n\n return { ..._navigator,\n push\n };\n }, [_navigator, transitionManager]);\n let {\n location,\n matches,\n loaderData,\n actionData\n } = transitionManager.getState(); // Send new location to the transition manager\n\n React.useEffect(() => {\n let {\n location\n } = transitionManager.getState();\n if (historyLocation === location) return;\n transitionManager.send({\n type: \"navigation\",\n location: historyLocation,\n submission: consumeNextNavigationSubmission(),\n action\n });\n }, [transitionManager, historyLocation, action]); // If we tried to render and failed, and the app threw before rendering any\n // routes, get the error and pass it to the ErrorBoundary to emulate\n // `componentDidCatch`\n\n let ssrErrorBeforeRoutesRendered = clientState.error && clientState.renderBoundaryRouteId === null && clientState.loaderBoundaryRouteId === null ? deserializeError(clientState.error) : undefined;\n let ssrCatchBeforeRoutesRendered = clientState.catch && clientState.catchBoundaryRouteId === null ? clientState.catch : undefined;\n return /*#__PURE__*/React.createElement(RemixEntryContext.Provider, {\n value: {\n matches,\n manifest,\n appState: clientState,\n routeModules,\n serverHandoffString,\n clientRoutes,\n routeData: loaderData,\n deferredLoaderData: documentDeferredLoaderData,\n actionData,\n transitionManager,\n serverAbortDelay: documentServerAbortDelay\n }\n }, /*#__PURE__*/React.createElement(RemixErrorBoundary, {\n location: location,\n component: RemixRootDefaultErrorBoundary,\n error: ssrErrorBeforeRoutesRendered\n }, /*#__PURE__*/React.createElement(RemixCatchBoundary, {\n location: location,\n component: RemixRootDefaultCatchBoundary,\n catch: ssrCatchBeforeRoutesRendered\n }, /*#__PURE__*/React.createElement(Router, {\n navigationType: action,\n location: location,\n navigator: navigator,\n static: staticProp\n }, /*#__PURE__*/React.createElement(Routes, null)))));\n}\n\nfunction deserializeError(data) {\n let error = new Error(data.message);\n error.stack = data.stack;\n return error;\n}\n\nfunction Routes() {\n // TODO: Add `renderMatches` function to RR that we can use and then we don't\n // need this component, we can just `renderMatches` from RemixEntry\n let {\n clientRoutes\n } = useRemixEntryContext(); // fallback to the root if we don't have a match\n\n let element = useRoutes(clientRoutes) || clientRoutes[0].element;\n return element;\n} ////////////////////////////////////////////////////////////////////////////////\n// RemixRoute\n\n\nconst RemixRouteContext = /*#__PURE__*/React.createContext(undefined);\n\nfunction useRemixRouteContext() {\n let context = React.useContext(RemixRouteContext);\n invariant(context, \"You must render this element in a remix route element\");\n return context;\n}\n\nfunction DefaultRouteComponent({\n id\n}) {\n throw new Error(`Route \"${id}\" has no component! Please go add a \\`default\\` export in the route module file.\\n` + \"If you were trying to navigate or submit to a resource route, use `<a>` instead of `<Link>` or `<Form reloadDocument>`.\");\n}\n\nfunction RemixRoute({\n id\n}) {\n let location = useLocation();\n let {\n routeData,\n routeModules,\n appState\n } = useRemixEntryContext(); // This checks prevent cryptic error messages such as: 'Cannot read properties of undefined (reading 'root')'\n\n invariant(routeData, \"Cannot initialize 'routeData'. This normally occurs when you have server code in your client modules.\\n\" + \"Check this link for more details:\\nhttps://remix.run/pages/gotchas#server-code-in-client-bundles\");\n invariant(routeModules, \"Cannot initialize 'routeModules'. This normally occurs when you have server code in your client modules.\\n\" + \"Check this link for more details:\\nhttps://remix.run/pages/gotchas#server-code-in-client-bundles\");\n let data = routeData[id];\n let {\n default: Component,\n CatchBoundary,\n ErrorBoundary\n } = routeModules[id];\n let element = Component ? /*#__PURE__*/React.createElement(Component, null) : /*#__PURE__*/React.createElement(DefaultRouteComponent, {\n id: id\n });\n let context = {\n data,\n id\n };\n\n if (CatchBoundary) {\n // If we tried to render and failed, and this route threw the error, find it\n // and pass it to the ErrorBoundary to emulate `componentDidCatch`\n let maybeServerCaught = appState.catch && appState.catchBoundaryRouteId === id ? appState.catch : undefined; // This needs to run after we check for the error from a previous render,\n // otherwise we will incorrectly render this boundary for a loader error\n // deeper in the tree.\n\n if (appState.trackCatchBoundaries) {\n appState.catchBoundaryRouteId = id;\n }\n\n context = maybeServerCaught ? {\n id,\n\n get data() {\n console.error(\"You cannot `useLoaderData` in a catch boundary.\");\n return undefined;\n }\n\n } : {\n id,\n data\n };\n element = /*#__PURE__*/React.createElement(RemixCatchBoundary, {\n location: location,\n component: CatchBoundary,\n catch: maybeServerCaught\n }, element);\n } // Only wrap in error boundary if the route defined one, otherwise let the\n // error bubble to the parent boundary. We could default to using error\n // boundaries around every route, but now if the app doesn't want users\n // seeing the default Remix ErrorBoundary component, they *must* define an\n // error boundary for *every* route and that would be annoying. Might as\n // well make it required at that point.\n //\n // By conditionally wrapping like this, we allow apps to define a top level\n // ErrorBoundary component and be done with it. Then, if they want to, they\n // can add more specific boundaries by exporting ErrorBoundary components\n // for whichever routes they please.\n //\n // NOTE: this kind of logic will move into React Router\n\n\n if (ErrorBoundary) {\n // If we tried to render and failed, and this route threw the error, find it\n // and pass it to the ErrorBoundary to emulate `componentDidCatch`\n let maybeServerRenderError = appState.error && (appState.renderBoundaryRouteId === id || appState.loaderBoundaryRouteId === id) ? deserializeError(appState.error) : undefined; // This needs to run after we check for the error from a previous render,\n // otherwise we will incorrectly render this boundary for a loader error\n // deeper in the tree.\n\n if (appState.trackBoundaries) {\n appState.renderBoundaryRouteId = id;\n }\n\n context = maybeServerRenderError ? {\n id,\n\n get data() {\n console.error(\"You cannot `useLoaderData` in an error boundary.\");\n return undefined;\n }\n\n } : {\n id,\n data\n };\n element = /*#__PURE__*/React.createElement(RemixErrorBoundary, {\n location: location,\n component: ErrorBoundary,\n error: maybeServerRenderError\n }, element);\n } // It's important for the route context to be above the error boundary so that\n // a call to `useLoaderData` doesn't accidentally get the parents route's data.\n\n\n return /*#__PURE__*/React.createElement(RemixRouteContext.Provider, {\n value: context\n }, element);\n} ////////////////////////////////////////////////////////////////////////////////\n// Public API\n\nconst AwaitContext = /*#__PURE__*/React.createContext(null);\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value === null || value === void 0 ? void 0 : value._data;\n}\n\n/**\n * Component to use for rendering Promises (usually on loaderData)\n */\nfunction Await({\n children,\n errorElement,\n resolve\n}) {\n return /*#__PURE__*/React.createElement(AwaitErrorBoundary, {\n resolve: resolve,\n errorElement: errorElement\n }, /*#__PURE__*/React.createElement(ResolveAwait, null, children));\n}\nvar AwaitRenderStatus;\n\n(function (AwaitRenderStatus) {\n AwaitRenderStatus[AwaitRenderStatus[\"pending\"] = 0] = \"pending\";\n AwaitRenderStatus[AwaitRenderStatus[\"success\"] = 1] = \"success\";\n AwaitRenderStatus[AwaitRenderStatus[\"error\"] = 2] = \"error\";\n})(AwaitRenderStatus || (AwaitRenderStatus = {}));\n\nconst neverSettledPromise = new Promise(() => {});\n\nclass AwaitErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n error: null\n };\n }\n\n static getDerivedStateFromError(error) {\n return {\n error\n };\n }\n\n componentDidCatch(error, errorInfo) {\n console.error(\"<Await> caught the following error during render\", error, errorInfo);\n }\n\n render() {\n let {\n children,\n errorElement,\n resolve\n } = this.props;\n let promise = null;\n let status = AwaitRenderStatus.pending;\n\n if (!(resolve instanceof Promise)) {\n // Didn't get a promise - provide as a resolved promise\n status = AwaitRenderStatus.success;\n promise = Promise.resolve();\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n Object.defineProperty(promise, \"_data\", {\n get: () => resolve\n });\n } else if (this.state.error) {\n // Caught a render error, provide it as a rejected promise\n status = AwaitRenderStatus.error;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n Object.defineProperty(promise, \"_error\", {\n get: () => renderError\n });\n } else if (resolve._tracked) {\n // Already tracked promise - check contents\n promise = resolve;\n status = promise._error !== undefined ? AwaitRenderStatus.error : promise._data !== undefined ? AwaitRenderStatus.success : AwaitRenderStatus.pending;\n } else {\n // Raw (untracked) promise - track it\n status = AwaitRenderStatus.pending;\n Object.defineProperty(resolve, \"_tracked\", {\n get: () => true\n });\n promise = resolve.then(data => Object.defineProperty(resolve, \"_data\", {\n get: () => data\n }), error => Object.defineProperty(resolve, \"_error\", {\n get: () => error\n }));\n }\n\n if (status === AwaitRenderStatus.error && promise._error instanceof AbortedDeferredError) {\n // If the promise was aborted, we want to freeze the UI until the next piece of data is ready\n throw neverSettledPromise;\n }\n\n if (status === AwaitRenderStatus.error && !errorElement) {\n // No errorElement, throw to the nearest route-level error boundary\n throw promise._error;\n }\n\n if (status === AwaitRenderStatus.error) {\n let child = errorElement && typeof errorElement === \"object\" && \"type\" in errorElement && typeof errorElement.type === \"function\" ? /*#__PURE__*/React.cloneElement(errorElement, {\n error: promise._error\n }) : errorElement; // Render via our errorElement\n\n return /*#__PURE__*/React.createElement(AwaitContext.Provider, {\n value: promise,\n children: child\n });\n }\n\n if (status === AwaitRenderStatus.success) {\n // Render children with resolved value\n return /*#__PURE__*/React.createElement(AwaitContext.Provider, {\n value: promise,\n children: children\n });\n } // Throw to the suspense boundary\n\n\n throw promise;\n }\n\n}\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on <Await>\n */\n\n\nfunction ResolveAwait({\n children\n}) {\n let data = useAsyncValue();\n\n if (typeof children === \"function\") {\n return /*#__PURE__*/React.createElement(React.Fragment, null, children(data));\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, children);\n}\n/**\n * Defines the prefetching behavior of the link:\n *\n * - \"intent\": Fetched when the user focuses or hovers the link\n * - \"render\": Fetched when the link is rendered\n * - \"none\": Never fetched\n */\n\n\nfunction usePrefetchBehavior(prefetch, theirElementProps) {\n let [maybePrefetch, setMaybePrefetch] = React.useState(false);\n let [shouldPrefetch, setShouldPrefetch] = React.useState(false);\n let {\n onFocus,\n onBlur,\n onMouseEnter,\n onMouseLeave,\n onTouchStart\n } = theirElementProps;\n React.useEffect(() => {\n if (prefetch === \"render\") {\n setShouldPrefetch(true);\n }\n }, [prefetch]);\n\n let setIntent = () => {\n if (prefetch === \"intent\") {\n setMaybePrefetch(true);\n }\n };\n\n let cancelIntent = () => {\n if (prefetch === \"intent\") {\n setMaybePrefetch(false);\n setShouldPrefetch(false);\n }\n };\n\n React.useEffect(() => {\n if (maybePrefetch) {\n let id = setTimeout(() => {\n setShouldPrefetch(true);\n }, 100);\n return () => {\n clearTimeout(id);\n };\n }\n }, [maybePrefetch]);\n return [shouldPrefetch, {\n onFocus: composeEventHandlers(onFocus, setIntent),\n onBlur: composeEventHandlers(onBlur, cancelIntent),\n onMouseEnter: composeEventHandlers(onMouseEnter, setIntent),\n onMouseLeave: composeEventHandlers(onMouseLeave, cancelIntent),\n onTouchStart: composeEventHandlers(onTouchStart, setIntent)\n }];\n}\n/**\n * A special kind of `<Link>` that knows whether or not it is \"active\".\n *\n * @see https://remix.run/api/remix#navlink\n */\n\n\nlet NavLink = /*#__PURE__*/React.forwardRef(({\n to,\n prefetch = \"none\",\n ...props\n}, forwardedRef) => {\n let href = useHref(to);\n let [shouldPrefetch, prefetchHandlers] = usePrefetchBehavior(prefetch, props);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(NavLink$1, _extends({\n ref: forwardedRef,\n to: to\n }, props, typeof prefetchHandlers === \"object\" ? { ...prefetchHandlers\n } : {})), shouldPrefetch ? /*#__PURE__*/React.createElement(PrefetchPageLinks, {\n page: href\n }) : null);\n});\nNavLink.displayName = \"NavLink\";\n/**\n * This component renders an anchor tag and is the primary way the user will\n * navigate around your website.\n *\n * @see https://remix.run/api/remix#link\n */\n\nlet Link = /*#__PURE__*/React.forwardRef(({\n to,\n prefetch = \"none\",\n ...props\n}, forwardedRef) => {\n let href = useHref(to);\n let [shouldPrefetch, prefetchHandlers] = usePrefetchBehavior(prefetch, props);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Link$1, _extends({\n ref: forwardedRef,\n to: to\n }, props, typeof prefetchHandlers === \"object\" ? prefetchHandlers : {})), shouldPrefetch ? /*#__PURE__*/React.createElement(PrefetchPageLinks, {\n page: href\n }) : null);\n});\nLink.displayName = \"Link\";\nfunction composeEventHandlers(theirHandler, ourHandler) {\n return event => {\n theirHandler && theirHandler(event);\n\n if (!event.defaultPrevented) {\n ourHandler(event);\n }\n };\n}\n/**\n * Renders the `<link>` tags for the current routes.\n *\n * @see https://remix.run/api/remix#meta-links-scripts\n */\n\nfunction Links() {\n let {\n matches,\n routeModules,\n manifest\n } = useRemixEntryContext();\n let links = React.useMemo(() => getLinksForMatches(matches, routeModules, manifest), [matches, routeModules, manifest]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, links.map(link => {\n if (isPageLinkDescriptor(link)) {\n return /*#__PURE__*/React.createElement(PrefetchPageLinks, _extends({\n key: link.page\n }, link));\n }\n\n let imageSrcSet = null; // In React 17, <link imageSrcSet> and <link imageSizes> will warn\n // because the DOM attributes aren't recognized, so users need to pass\n // them in all lowercase to forward the attributes to the node without a\n // warning. Normalize so that either property can be used in Remix.\n\n if (\"useId\" in React) {\n if (link.imagesrcset) {\n link.imageSrcSet = imageSrcSet = link.imagesrcset;\n delete link.imagesrcset;\n }\n\n if (link.imagesizes) {\n link.imageSizes = link.imagesizes;\n delete link.imagesizes;\n }\n } else {\n if (link.imageSrcSet) {\n link.imagesrcset = imageSrcSet = link.imageSrcSet;\n delete link.imageSrcSet;\n }\n\n if (link.imageSizes) {\n link.imagesizes = link.imageSizes;\n delete link.imageSizes;\n }\n }\n\n return /*#__PURE__*/React.createElement(\"link\", _extends({\n key: link.rel + (link.href || \"\") + (imageSrcSet || \"\")\n }, link));\n }));\n}\n/**\n * This component renders all of the `<link rel=\"prefetch\">` and\n * `<link rel=\"modulepreload\"/>` tags for all the assets (data, modules, css) of\n * a given page.\n *\n * @param props\n * @param props.page\n * @see https://remix.run/api/remix#prefetchpagelinks-\n */\n\nfunction PrefetchPageLinks({\n page,\n ...dataLinkProps\n}) {\n let {\n clientRoutes\n } = useRemixEntryContext();\n let matches = React.useMemo(() => matchClientRoutes(clientRoutes, page), [clientRoutes, page]);\n\n if (!matches) {\n console.warn(`Tried to prefetch ${page} but no routes matched.`);\n return null;\n }\n\n return /*#__PURE__*/React.createElement(PrefetchPageLinksImpl, _extends({\n page: page,\n matches: matches\n }, dataLinkProps));\n}\n\nfunction usePrefetchedStylesheets(matches) {\n let {\n routeModules\n } = useRemixEntryContext();\n let [styleLinks, setStyleLinks] = React.useState([]);\n React.useEffect(() => {\n let interrupted = false;\n getStylesheetPrefetchLinks(matches, routeModules).then(links => {\n if (!interrupted) setStyleLinks(links);\n });\n return () => {\n interrupted = true;\n };\n }, [matches, routeModules]);\n return styleLinks;\n}\n\nfunction PrefetchPageLinksImpl({\n page,\n matches: nextMatches,\n ...linkProps\n}) {\n let location = useLocation();\n let {\n matches,\n manifest\n } = useRemixEntryContext();\n let newMatchesForData = React.useMemo(() => getNewMatchesForLinks(page, nextMatches, matches, location, \"data\"), [page, nextMatches, matches, location]);\n let newMatchesForAssets = React.useMemo(() => getNewMatchesForLinks(page, nextMatches, matches, location, \"assets\"), [page, nextMatches, matches, location]);\n let dataHrefs = React.useMemo(() => getDataLinkHrefs(page, newMatchesForData, manifest), [newMatchesForData, page, manifest]);\n let moduleHrefs = React.useMemo(() => getModuleLinkHrefs(newMatchesForAssets, manifest), [newMatchesForAssets, manifest]); // needs to be a hook with async behavior because we need the modules, not\n // just the manifest like the other links in here.\n\n let styleLinks = usePrefetchedStylesheets(newMatchesForAssets);\n return /*#__PURE__*/React.createElement(React.Fragment, null, dataHrefs.map(href => /*#__PURE__*/React.createElement(\"link\", _extends({\n key: href,\n rel: \"prefetch\",\n as: \"fetch\",\n href: href\n }, linkProps))), moduleHrefs.map(href => /*#__PURE__*/React.createElement(\"link\", _extends({\n key: href,\n rel: \"modulepreload\",\n href: href\n }, linkProps))), styleLinks.map(link =>\n /*#__PURE__*/\n // these don't spread `linkProps` because they are full link descriptors\n // already with their own props\n React.createElement(\"link\", _extends({\n key: link.href\n }, link))));\n}\n/**\n * Renders the `<title>` and `<meta>` tags for the current routes.\n *\n * @see https://remix.run/api/remix#meta-links-scripts\n */\n\n\nfunction Meta() {\n let {\n matches,\n routeData,\n routeModules\n } = useRemixEntryContext();\n let location = useLocation();\n let meta = {};\n let parentsData = {};\n\n for (let match of matches) {\n let routeId = match.route.id;\n let data = routeData[routeId];\n let params = match.params;\n let routeModule = routeModules[routeId];\n\n if (routeModule.meta) {\n let routeMeta = typeof routeModule.meta === \"function\" ? routeModule.meta({\n data,\n parentsData,\n params,\n location\n }) : routeModule.meta;\n Object.assign(meta, routeMeta);\n }\n\n parentsData[routeId] = data;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, Object.entries(meta).map(([name, value]) => {\n if (!value) {\n return null;\n }\n\n if ([\"charset\", \"charSet\"].includes(name)) {\n return /*#__PURE__*/React.createElement(\"meta\", {\n key: \"charset\",\n charSet: value\n });\n }\n\n if (name === \"title\") {\n return /*#__PURE__*/React.createElement(\"title\", {\n key: \"title\"\n }, String(value));\n } // Open Graph tags use the `property` attribute, while other meta tags\n // use `name`. See https://ogp.me/\n\n\n let isOpenGraphTag = name.startsWith(\"og:\");\n return [value].flat().map(content => {\n if (isOpenGraphTag) {\n return /*#__PURE__*/React.createElement(\"meta\", {\n property: name,\n content: content,\n key: name + content\n });\n }\n\n if (typeof content === \"string\") {\n return /*#__PURE__*/React.createElement(\"meta\", {\n name: name,\n content: content,\n key: name + content\n });\n }\n\n return /*#__PURE__*/React.createElement(\"meta\", _extends({\n key: name + JSON.stringify(content)\n }, content));\n });\n }));\n}\n/**\n * Tracks whether Remix has finished hydrating or not, so scripts can be skipped\n * during client-side updates.\n */\n\nlet isHydrated = false;\nconst js = String.raw;\n/**\n * Renders the `<script>` tags needed for the initial render. Bundles for\n * additional routes are loaded later as needed.\n *\n * @param props Additional properties to add to each script tag that is rendered.\n * In addition to scripts, \\<link rel=\"modulepreload\"> tags receive the crossOrigin\n * property if provided.\n *\n * @see https://remix.run/api/remix#meta-links-scripts\n */\n\nfunction Scripts(props) {\n let {\n manifest,\n matches,\n pendingLocation,\n clientRoutes,\n routeData,\n deferredLoaderData,\n serverHandoffString,\n serverAbortDelay\n } = useRemixEntryContext();\n React.useEffect(() => {\n isHydrated = true;\n }, []);\n let initialScripts = React.useMemo(() => {\n let contextScript = serverHandoffString ? js`window.__remixContext = ${serverHandoffString};` : \"\";\n\n if (serverHandoffString && deferredLoaderData && routeData) {\n contextScript += typeof serverAbortDelay === \"number\" ? js`window.__remixServerAbortDelay = ${serverAbortDelay};` : \"\";\n contextScript += js`window.__remixDeferredResolvers={};`;\n\n for (let [routeId, deferredKeys] of Object.entries(deferredLoaderData)) {\n if (!routeData[routeId] || typeof routeData[routeId] !== \"object\") {\n continue;\n }\n\n contextScript += js`window.__remixDeferredResolvers[${JSON.stringify(routeId)}]={};`;\n\n for (let key of deferredKeys) {\n var _routeData$routeId$ke;\n\n if (!((_routeData$routeId$ke = routeData[routeId][key]) !== null && _routeData$routeId$ke !== void 0 && _routeData$routeId$ke.then)) {\n continue;\n }\n\n contextScript += \"(() => {\";\n contextScript += js`let p,r,e;`;\n contextScript += js`p=new Promise(((j,k)=>{r=j;e=k;}));`;\n contextScript += js`window.__remixDeferredResolvers[${JSON.stringify(routeId)}][${JSON.stringify(key)}]={r,e};`;\n\n if (serverAbortDelay) {\n let racePromise = js`new Promise((_,e2) => setTimeout(() => {e2(new Error(\"The render was aborted by the server without a reason.\"));}, window.__remixServerAbortDelay))`;\n contextScript += js`p=Promise.race([p, ${racePromise}]);`;\n }\n\n contextScript += js`window.__remixContext.routeData[${JSON.stringify(routeId)}][${JSON.stringify(key)}]=p;`;\n contextScript += \"})();\";\n }\n }\n }\n\n let routeModulesScript = `${matches.map((match, index) => `import ${JSON.stringify(manifest.url)};\nimport * as route${index} from ${JSON.stringify(manifest.routes[match.route.id].module)};`).join(\"\\n\")}\nwindow.__remixRouteModules = {${matches.map((match, index) => `${JSON.stringify(match.route.id)}:route${index}`).join(\",\")}};\n\nimport(${JSON.stringify(manifest.entry.module)});`;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"script\", _extends({}, props, {\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: createHtml(contextScript),\n type: undefined\n })), /*#__PURE__*/React.createElement(\"script\", _extends({}, props, {\n dangerouslySetInnerHTML: createHtml(routeModulesScript),\n type: \"module\",\n async: true\n }))); // disabled deps array because we are purposefully only rendering this once\n // for hydration, after that we want to just continue rendering the initial\n // scripts as they were when the page first loaded\n // eslint-disable-next-line\n }, []); // avoid waterfall when importing the next route module\n\n let nextMatches = React.useMemo(() => {\n if (pendingLocation) {\n // FIXME: can probably use transitionManager `nextMatches`\n let matches = matchClientRoutes(clientRoutes, pendingLocation);\n invariant(matches, `No routes match path \"${pendingLocation.pathname}\"`);\n return matches;\n }\n\n return [];\n }, [pendingLocation, clientRoutes]);\n let routePreloads = matches.concat(nextMatches).map(match => {\n let route = manifest.routes[match.route.id];\n return (route.imports || []).concat([route.module]);\n }).flat(1);\n let preloads = manifest.entry.imports.concat(routePreloads);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"link\", {\n rel: \"modulepreload\",\n href: manifest.entry.module,\n crossOrigin: props.crossOrigin\n }), dedupe(preloads).map(path => /*#__PURE__*/React.createElement(\"link\", {\n key: path,\n rel: \"modulepreload\",\n href: path,\n crossOrigin: props.crossOrigin\n })), isHydrated ? null : initialScripts, /*#__PURE__*/React.createElement(DeferredHydrationScripts, null));\n}\n\nfunction DeferredHydrationScripts() {\n let {\n routeData,\n deferredLoaderData\n } = useRemixEntryContext();\n let scripts = React.useMemo(() => {\n if (!deferredLoaderData) {\n return null;\n }\n\n let scripts = [];\n\n for (let [routeId, deferredKeys] of Object.entries(deferredLoaderData || {})) {\n if (!routeData[routeId] || typeof routeData[routeId] !== \"object\") {\n continue;\n }\n\n for (let key of deferredKeys) {\n scripts.push( /*#__PURE__*/React.createElement(React.Suspense, {\n key: `${routeId}[${key}]`\n }, /*#__PURE__*/React.createElement(DeferredHydrationScriptContext.Provider, {\n value: {\n result: undefined,\n routeId,\n key\n }\n }, /*#__PURE__*/React.createElement(DeferredHydrationScript, {\n resolve: routeData[routeId][key]\n }))));\n }\n }\n\n return scripts;\n }, [deferredLoaderData, routeData]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, scripts);\n}\n\nconst DeferredHydrationScriptContext = /*#__PURE__*/React.createContext({\n result: undefined,\n routeId: \"\",\n key: \"\"\n});\n\nfunction DeferredHydrationScript({\n resolve\n}) {\n let ctx = React.useContext(DeferredHydrationScriptContext);\n let promise = null;\n let status = AwaitRenderStatus.pending;\n\n if (!(resolve instanceof Promise)) {\n // Didn't get a promise - return early\n return null;\n } else if (resolve._tracked) {\n // Already tracked promise - check contents\n promise = resolve;\n status = promise._error !== undefined ? AwaitRenderStatus.error : promise._data !== undefined ? AwaitRenderStatus.success : AwaitRenderStatus.pending;\n } else {\n // Raw (untracked) promise - track it\n status = AwaitRenderStatus.pending;\n Object.defineProperty(resolve, \"_tracked\", {\n get: () => true\n });\n promise = resolve.then(data => Object.defineProperty(resolve, \"_data\", {\n get: () => data\n }), error => Object.defineProperty(resolve, \"_error\", {\n get: () => error\n }));\n }\n\n if (status === AwaitRenderStatus.pending) {\n throw promise;\n }\n\n let isError = promise._error !== undefined;\n let error = promise._error;\n let script = \"(() => {\";\n\n if (isError) {\n script += js`let v=new Error(${JSON.stringify(error.message)});`;\n script += js`v.stack=${JSON.stringify(error.stack)};`;\n } else {\n script += js`let v=${escapeHtml(JSON.stringify(promise._data))};`;\n }\n\n if (isError) {\n script += js`window.__remixDeferredResolvers[${JSON.stringify(ctx.routeId)}][${JSON.stringify(ctx.key)}].e(v);`;\n } else {\n script += js`window.__remixDeferredResolvers[${JSON.stringify(ctx.routeId)}][${JSON.stringify(ctx.key)}].r(v);`;\n }\n\n script += \"})();\";\n return /*#__PURE__*/React.createElement(\"script\", {\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: script\n }\n });\n}\n\nfunction dedupe(array) {\n return [...new Set(array)];\n}\n\n/**\n * A Remix-aware `<form>`. It behaves like a normal form except that the\n * interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n *\n * @see https://remix.run/api/remix#form\n */\nlet Form = /*#__PURE__*/React.forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(FormImpl, _extends({}, props, {\n ref: ref\n }));\n});\nForm.displayName = \"Form\";\nlet FormImpl = /*#__PURE__*/React.forwardRef(({\n reloadDocument = false,\n replace = false,\n method = \"get\",\n action,\n encType = \"application/x-www-form-urlencoded\",\n fetchKey,\n onSubmit,\n ...props\n}, forwardedRef) => {\n let submit = useSubmitImpl(fetchKey);\n let formMethod = method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let formAction = useFormAction(action);\n return /*#__PURE__*/React.createElement(\"form\", _extends({\n ref: forwardedRef,\n method: formMethod,\n action: formAction,\n encType: encType,\n onSubmit: reloadDocument ? undefined : event => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n let submitter = event.nativeEvent.submitter;\n submit(submitter || event.currentTarget, {\n method,\n replace\n });\n }\n }, props));\n});\nFormImpl.displayName = \"FormImpl\";\n\n/**\n * Resolves a `<form action>` path relative to the current route.\n *\n * @see https://remix.run/api/remix#useformaction\n */\nfunction useFormAction(action, // TODO: Remove method param in v2 as it's no longer needed and is a breaking change\nmethod = \"get\") {\n let {\n id\n } = useRemixRouteContext();\n let resolvedPath = useResolvedPath(action ?? \".\"); // Previously we set the default action to \".\". The problem with this is that\n // `useResolvedPath(\".\")` excludes search params and the hash of the resolved\n // URL. This is the intended behavior of when \".\" is specifically provided as\n // the form action, but inconsistent w/ browsers when the action is omitted.\n // https://github.com/remix-run/remix/issues/927\n\n let location = useLocation();\n let {\n search,\n hash\n } = resolvedPath;\n let isIndexRoute = id.endsWith(\"/index\");\n\n if (action == null) {\n search = location.search;\n hash = location.hash; // When grabbing search params from the URL, remove the automatically\n // inserted ?index param so we match the useResolvedPath search behavior\n // which would not include ?index\n\n if (isIndexRoute) {\n let params = new URLSearchParams(search);\n params.delete(\"index\");\n search = params.toString() ? `?${params.toString()}` : \"\";\n }\n }\n\n if ((action == null || action === \".\") && isIndexRoute) {\n search = search ? search.replace(/^\\?/, \"?index&\") : \"?index\";\n }\n\n return createPath({\n pathname: resolvedPath.pathname,\n search,\n hash\n });\n}\n\n/**\n * Returns a function that may be used to programmatically submit a form (or\n * some arbitrary data) to the server.\n *\n * @see https://remix.run/api/remix#usesubmit\n */\nfunction useSubmit() {\n return useSubmitImpl();\n}\nlet defaultMethod = \"get\";\nlet defaultEncType = \"application/x-www-form-urlencoded\";\nfunction useSubmitImpl(key) {\n let navigate = useNavigate();\n let defaultAction = useFormAction();\n let {\n transitionManager\n } = useRemixEntryContext();\n return React.useCallback((target, options = {}) => {\n let method;\n let action;\n let encType;\n let formData;\n\n if (isFormElement(target)) {\n let submissionTrigger = options.submissionTrigger;\n method = options.method || target.getAttribute(\"method\") || defaultMethod;\n action = options.action || target.getAttribute(\"action\") || defaultAction;\n encType = options.encType || target.getAttribute(\"enctype\") || defaultEncType;\n formData = new FormData(target);\n\n if (submissionTrigger && submissionTrigger.name) {\n formData.append(submissionTrigger.name, submissionTrigger.value);\n }\n } else if (isButtonElement(target) || isInputElement(target) && (target.type === \"submit\" || target.type === \"image\")) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(`Cannot submit a <button> without a <form>`);\n } // <button>/<input type=\"submit\"> may override attributes of <form>\n\n\n method = options.method || target.getAttribute(\"formmethod\") || form.getAttribute(\"method\") || defaultMethod;\n action = options.action || target.getAttribute(\"formaction\") || form.getAttribute(\"action\") || defaultAction;\n encType = options.encType || target.getAttribute(\"formenctype\") || form.getAttribute(\"enctype\") || defaultEncType;\n formData = new FormData(form); // Include name + value from a <button>\n\n if (target.name) {\n formData.append(target.name, target.value);\n }\n } else {\n if (isHtmlElement(target)) {\n throw new Error(`Cannot submit element that is not <form>, <button>, or ` + `<input type=\"submit|image\">`);\n }\n\n method = options.method || \"get\";\n action = options.action || defaultAction;\n encType = options.encType || \"application/x-www-form-urlencoded\";\n\n if (target instanceof FormData) {\n formData = target;\n } else {\n formData = new FormData();\n\n if (target instanceof URLSearchParams) {\n for (let [name, value] of target) {\n formData.append(name, value);\n }\n } else if (target != null) {\n for (let name of Object.keys(target)) {\n formData.append(name, target[name]);\n }\n }\n }\n }\n\n if (IS_SSR) {\n throw new Error(\"You are calling submit during the server render. \" + \"Try calling submit within a `useEffect` or callback instead.\");\n }\n\n let {\n protocol,\n host\n } = window.location;\n let url = new URL(action, `${protocol}//${host}`);\n\n if (method.toLowerCase() === \"get\") {\n // Start with a fresh set of params and wipe out the old params to\n // match default browser behavior\n let params = new URLSearchParams();\n let hasParams = false;\n\n for (let [name, value] of formData) {\n if (typeof value === \"string\") {\n hasParams = true;\n params.append(name, value);\n } else {\n throw new Error(`Cannot submit binary form data using GET`);\n }\n }\n\n url.search = hasParams ? `?${params.toString()}` : \"\";\n }\n\n let submission = {\n formData,\n action: url.pathname + url.search,\n method: method.toUpperCase(),\n encType,\n key: Math.random().toString(36).substr(2, 8)\n };\n\n if (key) {\n transitionManager.send({\n type: \"fetcher\",\n href: submission.action,\n submission,\n key\n });\n } else {\n setNextNavigationSubmission(submission);\n navigate(url.pathname + url.search, {\n replace: options.replace\n });\n }\n }, [defaultAction, key, navigate, transitionManager]);\n}\nlet nextNavigationSubmission;\n\nfunction setNextNavigationSubmission(submission) {\n nextNavigationSubmission = submission;\n}\n\nfunction consumeNextNavigationSubmission() {\n let submission = nextNavigationSubmission;\n nextNavigationSubmission = undefined;\n return submission;\n}\n\nfunction isHtmlElement(object) {\n return object != null && typeof object.tagName === \"string\";\n}\n\nfunction isButtonElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nfunction isFormElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nfunction isInputElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n/**\n * Setup a callback to be fired on the window's `beforeunload` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes, which automatically happens on the next `<Link>` click when Remix\n * detects a new version of the app is available on the server.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n *\n * @see https://remix.run/api/remix#usebeforeunload\n */\n\n\nfunction useBeforeUnload(callback) {\n React.useEffect(() => {\n window.addEventListener(\"beforeunload\", callback);\n return () => {\n window.removeEventListener(\"beforeunload\", callback);\n };\n }, [callback]);\n}\n\n/**\n * Returns the current route matches on the page. This is useful for creating\n * layout abstractions with your current routes.\n *\n * @see https://remix.run/api/remix#usematches\n */\nfunction useMatches() {\n let {\n matches,\n routeData,\n routeModules\n } = useRemixEntryContext();\n return React.useMemo(() => matches.map(match => {\n var _routeModules$match$r;\n\n let {\n pathname,\n params\n } = match;\n return {\n id: match.route.id,\n pathname,\n params,\n data: routeData[match.route.id],\n // if the module fails to load or an error/response is thrown, the module\n // won't be defined.\n handle: (_routeModules$match$r = routeModules[match.route.id]) === null || _routeModules$match$r === void 0 ? void 0 : _routeModules$match$r.handle\n };\n }), [matches, routeData, routeModules]);\n}\n/**\n * Returns the JSON parsed data from the current route's `loader`.\n *\n * @see https://remix.run/api/remix#useloaderdata\n */\n\nfunction useLoaderData() {\n return useRemixRouteContext().data;\n}\n/**\n * Returns the JSON parsed data from the current route's `action`.\n *\n * @see https://remix.run/api/remix#useactiondata\n */\n\nfunction useActionData() {\n let {\n id: routeId\n } = useRemixRouteContext();\n let {\n transitionManager\n } = useRemixEntryContext();\n let {\n actionData\n } = transitionManager.getState();\n return actionData ? actionData[routeId] : undefined;\n}\n/**\n * Returns everything you need to know about a page transition to build pending\n * navigation indicators and optimistic UI on data mutations.\n *\n * @see https://remix.run/api/remix#usetransition\n */\n\nfunction useTransition() {\n let {\n transitionManager\n } = useRemixEntryContext();\n return transitionManager.getState().transition;\n}\n\nfunction createFetcherForm(fetchKey) {\n let FetcherForm = /*#__PURE__*/React.forwardRef((props, ref) => {\n // TODO: make ANOTHER form w/o a fetchKey prop\n return /*#__PURE__*/React.createElement(FormImpl, _extends({}, props, {\n ref: ref,\n fetchKey: fetchKey\n }));\n });\n FetcherForm.displayName = \"fetcher.Form\";\n return FetcherForm;\n}\n\nlet fetcherId = 0;\n\n/**\n * Interacts with route loaders and actions without causing a navigation. Great\n * for any interaction that stays on the same page.\n *\n * @see https://remix.run/api/remix#usefetcher\n */\nfunction useFetcher() {\n let {\n transitionManager\n } = useRemixEntryContext();\n let [key] = React.useState(() => String(++fetcherId));\n let [Form] = React.useState(() => createFetcherForm(key));\n let [load] = React.useState(() => href => {\n transitionManager.send({\n type: \"fetcher\",\n href,\n key\n });\n });\n let submit = useSubmitImpl(key);\n let fetcher = transitionManager.getFetcher(key);\n let fetcherWithComponents = React.useMemo(() => ({\n Form,\n submit,\n load,\n ...fetcher\n }), [fetcher, Form, submit, load]);\n React.useEffect(() => {\n // Is this busted when the React team gets real weird and calls effects\n // twice on mount? We really just need to garbage collect here when this\n // fetcher is no longer around.\n return () => transitionManager.deleteFetcher(key);\n }, [transitionManager, key]);\n return fetcherWithComponents;\n}\n/**\n * Provides all fetchers currently on the page. Useful for layouts and parent\n * routes that need to provide pending/optimistic UI regarding the fetch.\n *\n * @see https://remix.run/api/remix#usefetchers\n */\n\nfunction useFetchers() {\n let {\n transitionManager\n } = useRemixEntryContext();\n let {\n fetchers\n } = transitionManager.getState();\n return [...fetchers.values()];\n} // Dead Code Elimination magic for production builds.\n// This way devs don't have to worry about doing the NODE_ENV check themselves.\n// If running an un-bundled server outside of `remix dev` you will still need\n// to set the REMIX_DEV_SERVER_WS_PORT manually.\n\nconst LiveReload = process.env.NODE_ENV !== \"development\" ? () => null : function LiveReload({\n port = Number(process.env.REMIX_DEV_SERVER_WS_PORT || 8002),\n nonce = undefined\n}) {\n let js = String.raw;\n return /*#__PURE__*/React.createElement(\"script\", {\n nonce: nonce,\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: js`\n function remixLiveReloadConnect(config) {\n let protocol = location.protocol === \"https:\" ? \"wss:\" : \"ws:\";\n let host = location.hostname;\n let socketPath = protocol + \"//\" + host + \":\" + ${String(port)} + \"/socket\";\n\n let ws = new WebSocket(socketPath);\n ws.onmessage = (message) => {\n let event = JSON.parse(message.data);\n if (event.type === \"LOG\") {\n console.log(event.message);\n }\n if (event.type === \"RELOAD\") {\n console.log(\"\uD83D\uDCBF Reloading window ...\");\n window.location.reload();\n }\n };\n ws.onopen = () => {\n if (config && typeof config.onOpen === \"function\") {\n config.onOpen();\n }\n };\n ws.onclose = (error) => {\n console.log(\"Remix dev asset server web socket closed. Reconnecting...\");\n setTimeout(\n () =>\n remixLiveReloadConnect({\n onOpen: () => window.location.reload(),\n }),\n 1000\n );\n };\n ws.onerror = (error) => {\n console.log(\"Remix dev asset server web socket error:\");\n console.error(error);\n };\n }\n remixLiveReloadConnect();\n `\n }\n });\n};\n\nexport { Await, AwaitContext, Form, FormImpl, Link, Links, LiveReload, Meta, NavLink, PrefetchPageLinks, RemixEntry, RemixEntryContext, RemixRoute, Scripts, composeEventHandlers, useActionData, useAsyncValue, useBeforeUnload, useFetcher, useFetchers, useFormAction, useLoaderData, useMatches, useSubmit, useSubmitImpl, useTransition };\n", "import * as React from \"react\";\nimport type { History, Location } from \"history\";\nimport { Action as NavigationType } from \"history\";\n\nimport type { RouteMatch } from \"./router\";\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level <Router> API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport type Navigator = Pick<History, \"go\" | \"push\" | \"replace\" | \"createHref\">;\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext<NavigationContextObject>(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext<LocationContextObject>(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\ninterface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext<RouteContextObject>({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n", "import type { Location, Path, To } from \"history\";\nimport { parsePath } from \"history\";\n\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n\nexport function warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nconst alreadyWarned: Record<string, boolean> = {};\nexport function warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n\ntype ParamParseFailed = { failed: true };\n\ntype ParamParseSegment<Segment extends string> =\n // Check here if there exists a forward slash in the string.\n Segment extends `${infer LeftSegment}/${infer RightSegment}`\n ? // If there is a forward slash, then attempt to parse each side of the\n // forward slash.\n ParamParseSegment<LeftSegment> extends infer LeftResult\n ? ParamParseSegment<RightSegment> extends infer RightResult\n ? LeftResult extends string\n ? // If the left side is successfully parsed as a param, then check if\n // the right side can be successfully parsed as well. If both sides\n // can be parsed, then the result is a union of the two sides\n // (read: \"foo\" | \"bar\").\n RightResult extends string\n ? LeftResult | RightResult\n : LeftResult\n : // If the left side is not successfully parsed as a param, then check\n // if only the right side can be successfully parse as a param. If it\n // can, then the result is just right, else it's a failure.\n RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If the left side didn't parse into a param, then just check the right\n // side.\n ParamParseSegment<RightSegment> extends infer RightResult\n ? RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If there's no forward slash, then check if this segment starts with a\n // colon. If it does, then this is a dynamic segment, so the result is\n // just the remainder of the string. Otherwise, it's a failure.\n Segment extends `:${infer Remaining}`\n ? Remaining\n : ParamParseFailed;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey<Segment extends string> =\n ParamParseSegment<Segment> extends string\n ? ParamParseSegment<Segment>\n : string;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params<Key extends string = string> = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport interface RouteObject {\n caseSensitive?: boolean;\n children?: RouteObject[];\n element?: React.ReactNode;\n index?: boolean;\n path?: string;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nexport function generatePath(path: string, params: Params = {}): string {\n return path\n .replace(/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/*\\*$/, (_) =>\n params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\")\n );\n}\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface RouteMatch<ParamKey extends string = string> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObject;\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nexport function matchRoutes(\n routes: RouteObject[],\n locationArg: Partial<Location> | string,\n basename = \"/\"\n): RouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], pathname);\n }\n\n return matches;\n}\n\ninterface RouteMeta {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObject;\n}\n\ninterface RouteBranch {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes(\n routes: RouteObject[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<ParamKey extends string = string>(\n branch: RouteBranch,\n pathname: string\n): RouteMatch<ParamKey>[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: RouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern<Path extends string = string> {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch<ParamKey extends string = string> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\nexport function matchPath<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(\n pattern: PathPattern<Path> | Path,\n pathname: string\n): PathMatch<ParamKey> | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce<Mutable<Params>>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end\n ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n // Additionally, allow paths starting with `.`, `-`, `~`, and url-encoded entities,\n // but do not consume the character in the matched path so they can match against\n // nested paths.\n \"(?:(?=[.~-]|%[0-9A-F]{2})|\\\\b|\\\\/|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string\n): Path {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname;\n\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `<Link to>` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n let from: string;\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how <a href> works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original to value had one.\n if (\n toPathname &&\n toPathname !== \"/\" &&\n toPathname.endsWith(\"/\") &&\n !path.pathname.endsWith(\"/\")\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\nconst normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n", "import * as React from \"react\";\nimport type { Location, Path, To } from \"history\";\nimport { Action as NavigationType, parsePath } from \"history\";\n\nimport { LocationContext, NavigationContext, RouteContext } from \"./context\";\nimport type {\n ParamParseKey,\n Params,\n PathMatch,\n PathPattern,\n RouteMatch,\n RouteObject,\n} from \"./router\";\nimport {\n getToPathname,\n invariant,\n joinPaths,\n matchPath,\n matchRoutes,\n resolveTo,\n warning,\n warningOnce,\n} from \"./router\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\nexport function useHref(to: To): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a <Router> component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to);\n\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname =\n pathname === \"/\"\n ? basename + (endsWithSlash ? \"/\" : \"\")\n : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a <Router>.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a <Router> component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * <NavLink>.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\nexport function useMatch<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(pattern: PathPattern<Path> | Path): PathMatch<ParamKey> | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a <Router> component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath<ParamKey, Path>(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by <Link>s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a <Router> component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname\n );\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext<unknown>(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\nexport function useOutletContext<Context = unknown>(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by <Outlet> to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n <OutletContext.Provider value={context}>{outlet}</OutletContext.Provider>\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\nexport function useParams<\n ParamsOrKey extends string | Record<string, string | undefined> = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params<ParamsOrKey> : Partial<ParamsOrKey>\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\nexport function useResolvedPath(to: To): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname),\n [to, routePathnamesJson, locationPathname]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an <Outlet> to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial<Location> | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a <Router> component.`\n );\n\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different <Routes> under a <Route>\n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // <Routes>\n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // <Route path=\"blog\" element={<Blog />} />\n // <Route path=\"blog/feed\" element={<BlogFeed />} />\n // </Routes>\n //\n // function Blog() {\n // return (\n // <Routes>\n // <Route path=\"post/:id\" element={<Post />} />\n // </Routes>\n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant <Routes> (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under <Route path=\"${parentPath}\">) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent <Route path=\"${parentPath}\"> to <Route ` +\n `path=\"${parentPath === \"/\" ? \"*\" : `${parentPath}/*`}\">.`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`<Routes location>\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an <Outlet /> with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n return _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase]),\n })\n ),\n parentMatches\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = []\n): React.ReactElement | null {\n if (matches == null) return null;\n\n return matches.reduceRight((outlet, match, index) => {\n return (\n <RouteContext.Provider\n children={\n match.route.element !== undefined ? match.route.element : outlet\n }\n value={{\n outlet,\n matches: parentMatches.concat(matches.slice(0, index + 1)),\n }}\n />\n );\n }, null as React.ReactElement | null);\n}\n", "import * as React from \"react\";\nimport type { InitialEntry, Location, MemoryHistory, To } from \"history\";\nimport {\n Action as NavigationType,\n createMemoryHistory,\n parsePath,\n} from \"history\";\n\nimport { LocationContext, NavigationContext, Navigator } from \"./context\";\nimport {\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\nimport type { RouteMatch, RouteObject } from \"./router\";\nimport { invariant, normalizePathname, stripBasename, warning } from \"./router\";\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A <Router> that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef<MemoryHistory>();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({ initialEntries, initialIndex });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nexport function Navigate({ to, replace, state }: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n `<Navigate> may be used only in the context of a <Router> component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n `<Navigate> must not be used on the initial render in a <StaticRouter>. ` +\n `This is a no-op, but you should modify your code so the <Navigate> is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let navigate = useNavigate();\n React.useEffect(() => {\n navigate(to, { replace, state });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface RouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: boolean;\n path?: string;\n}\n\nexport interface PathRouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: false;\n path: string;\n}\n\nexport interface LayoutRouteProps {\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n}\n\nexport interface IndexRouteProps {\n element?: React.ReactNode | null;\n index: true;\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nexport function Route(\n _props: PathRouteProps | LayoutRouteProps | IndexRouteProps\n): React.ReactElement | null {\n invariant(\n false,\n `A <Route> is only ever to be used as the child of <Routes> element, ` +\n `never rendered directly. Please wrap your <Route> in a <Routes>.`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial<Location> | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a <Router> directly. Instead, you'll render a\n * router that is more specific to your environment such as a <BrowserRouter>\n * in web browsers or a <StaticRouter> for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a <Router> inside another <Router>.` +\n ` You should never have more than one in your app.`\n );\n\n let basename = normalizePathname(basenameProp);\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n `<Router basename=\"${basename}\"> is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the <Router> won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n <NavigationContext.Provider value={navigationContext}>\n <LocationContext.Provider\n children={children}\n value={{ location, navigationType }}\n />\n </NavigationContext.Provider>\n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial<Location> | string;\n}\n\n/**\n * A container for a nested tree of <Route> elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`\n );\n\n let route: RouteObject = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n", "/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type { BrowserHistory, HashHistory, History } from \"history\";\nimport { createBrowserHistory, createHashHistory } from \"history\";\nimport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nfunction warning(cond: boolean, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n renderMatches,\n resolvePath,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n};\n\nexport { NavigationType } from \"react-router\";\nexport type {\n Hash,\n Location,\n Path,\n To,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n PathMatch,\n RouteMatch,\n RouteObject,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n Pathname,\n Search,\n RoutesProps,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef<BrowserHistory>();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef<HashHistory>();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `<Router>` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nfunction isModifiedEvent(event: React.MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport interface LinkProps\n extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware <a>.\n */\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n function LinkWithRef(\n { onClick, reloadDocument, replace = false, state, target, to, ...rest },\n ref\n ) {\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, { replace, state, target });\n function handleClick(\n event: React.MouseEvent<HTMLAnchorElement, MouseEvent>\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n <a\n {...rest}\n href={href}\n onClick={handleClick}\n ref={ref}\n target={target}\n />\n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit<LinkProps, \"className\" | \"style\" | \"children\"> {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: { isActive: boolean }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: { isActive: boolean }) => React.CSSProperties);\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef<HTMLAnchorElement, NavLinkProps>(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let location = useLocation();\n let path = useResolvedPath(to);\n\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for <NavLink />s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp({ isActive }) : styleProp;\n\n return (\n <Link\n {...rest}\n aria-current={ariaCurrent}\n className={className}\n ref={ref}\n style={style}\n to={to}\n >\n {typeof children === \"function\" ? children({ isActive }) : children}\n </Link>\n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same click behavior we\n * use in our exported `<Link>`.\n */\nexport function useLinkClickHandler<E extends Element = HTMLAnchorElement>(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n } = {}\n): (event: React.MouseEvent<E, MouseEvent>) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n\n return React.useCallback(\n (event: React.MouseEvent<E, MouseEvent>) => {\n if (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular <a> will do a replace instead of\n // a push, so do the same here.\n let replace =\n !!replaceProp || createPath(location) === createPath(path);\n\n navigate(to, { replace, state });\n }\n },\n [location, navigate, path, replaceProp, state, target, to]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(defaultInit?: URLSearchParamsInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (\n nextInit: URLSearchParamsInit,\n navigateOptions?: { replace?: boolean; state?: any }\n ) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams] as const;\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record<string, string | string[]>\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n", "/**\n * @remix-run/deferred v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nconst CONTENT_TYPE = \"text/remix-deferred\";\nconst DEFERRED_VALUE_PLACEHOLDER_PREFIX = \"__deferred_promise:\";\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n pendingKeys = new Set();\n subscribers = new Set();\n\n constructor(data) {\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"DeferredData only accepts plain objects\"); // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n\n this.controller.signal.addEventListener(\"abort\", onAbort);\n let deferredKeys = [];\n this.data = Object.entries(data).reduce((acc, [key, value]) => {\n let trackedValue = this.trackPromise(key, value);\n\n if (isTrackedPromise(trackedValue)) {\n deferredKeys.push(key);\n }\n\n return Object.assign(acc, {\n [key]: trackedValue\n });\n }, {});\n this.deferredKeys = deferredKeys;\n }\n\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.pendingKeys.add(key); // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, null, data), error => this.onSettle(promise, key, error)); // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n\n this.pendingKeys.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n if (error) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n\n for (let subscriber of this.subscribers) {\n subscriber(false, key);\n }\n\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n\n for (let subscriber of this.subscribers) {\n subscriber(false, key);\n }\n\n return data;\n }\n\n subscribe(fn) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeys.forEach((v, k) => this.pendingKeys.delete(k));\n\n for (let subscriber of this.subscribers) {\n subscriber(true);\n }\n }\n\n async resolveData(signal) {\n let aborted = false;\n\n if (!this.done) {\n let onAbort = () => this.cancel();\n\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n\n return aborted;\n }\n\n get done() {\n return this.pendingKeys.size === 0;\n }\n\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, [key, value]) => Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n }), {});\n }\n\n get criticalData() {\n invariant(this.data !== null, \"Can only get critical data on initialized deferreds\");\n return Object.entries(this.data).reduce((acc, [key, value]) => Object.assign(acc, {\n [key]: isTrackedPromise(value) ? DEFERRED_VALUE_PLACEHOLDER_PREFIX + key : value\n }), {});\n }\n\n}\n\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\n\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n\n return value._data;\n}\n\nasync function parseDeferredReadableStream(stream) {\n if (!stream) {\n throw new Error(\"parseDeferredReadableStream requires stream argument\");\n }\n\n let deferredData;\n let deferredResolvers = {};\n\n try {\n let sectionReader = readStreamSections(stream); // Read the first section to get the critical data\n\n let initialSectionResult = await sectionReader.next();\n let initialSection = initialSectionResult.value;\n if (!initialSection) throw new Error(\"no critical data\");\n let criticalData = JSON.parse(initialSection); // Setup deferred data and resolvers for later based on the critical data\n\n if (typeof criticalData === \"object\" && criticalData !== null) {\n for (let [eventKey, value] of Object.entries(criticalData)) {\n if (typeof value !== \"string\" || !value.startsWith(DEFERRED_VALUE_PLACEHOLDER_PREFIX)) {\n continue;\n }\n\n deferredData = deferredData || {};\n deferredData[eventKey] = new Promise((resolve, reject) => {\n deferredResolvers[eventKey] = {\n resolve: value => {\n resolve(value);\n delete deferredResolvers[eventKey];\n },\n reject: error => {\n reject(error);\n delete deferredResolvers[eventKey];\n }\n };\n });\n }\n } // Read the rest of the stream and resolve deferred promises\n\n\n (async () => {\n try {\n for await (let section of sectionReader) {\n // Determine event type and data\n let [event, ...sectionDataStrings] = section.split(\":\");\n let sectionDataString = sectionDataStrings.join(\":\");\n let data = JSON.parse(sectionDataString);\n\n if (event === \"data\") {\n for (let [key, value] of Object.entries(data)) {\n if (deferredResolvers[key]) {\n deferredResolvers[key].resolve(value);\n }\n }\n } else if (event === \"error\") {\n for (let [key, value] of Object.entries(data)) {\n let err = new Error(value.message);\n err.stack = value.stack;\n\n if (deferredResolvers[key]) {\n deferredResolvers[key].reject(err);\n }\n }\n }\n }\n\n for (let [key, resolver] of Object.entries(deferredResolvers)) {\n resolver.reject(new AbortedDeferredError(`Deferred ${key} will never resolved`));\n }\n } catch (error) {\n // Reject any existing deferred promises if something blows up\n for (let resolver of Object.values(deferredResolvers)) {\n resolver.reject(error);\n }\n }\n })();\n\n return new DeferredData({ ...criticalData,\n ...deferredData\n });\n } catch (error) {\n for (let resolver of Object.values(deferredResolvers)) {\n resolver.reject(error);\n }\n\n throw error;\n }\n}\nfunction createDeferredReadableStream(deferredData) {\n let criticalData = deferredData.criticalData;\n let encoder = new TextEncoder();\n let stream = new ReadableStream({\n async start(controller) {\n // Send the critical data\n controller.enqueue(encoder.encode(JSON.stringify(criticalData) + \"\\n\\n\"));\n let unsubscribe = deferredData.subscribe((aborted, settledKey) => {\n if (settledKey) {\n let promise = deferredData.data[settledKey];\n\n if (\"_error\" in promise) {\n controller.enqueue(encoder.encode(\"error:\" + JSON.stringify({\n [settledKey]: serializeError(promise._error)\n }) + \"\\n\\n\"));\n } else {\n controller.enqueue(encoder.encode(\"data:\" + JSON.stringify({\n [settledKey]: promise._data ?? null\n }) + \"\\n\\n\"));\n }\n }\n });\n await deferredData.resolveData(new AbortController().signal);\n unsubscribe();\n controller.close();\n }\n\n });\n return stream;\n} // must be type alias due to inference issues on interfaces\n// https://github.com/microsoft/TypeScript/issues/15300\n\nfunction serializeError(error) {\n return {\n message: error.message,\n stack: error.stack\n };\n}\n\nasync function* readStreamSections(stream) {\n let reader = stream.getReader();\n let buffer = [];\n let sections = [];\n let closed = false;\n let encoder = new TextEncoder();\n let decoder = new TextDecoder();\n\n let readStreamSection = async () => {\n if (sections.length > 0) return sections.shift(); // Read from the stream until we have at least one complete section to process\n\n while (!closed && sections.length === 0) {\n let chunk = await reader.read();\n\n if (chunk.done) {\n closed = true;\n break;\n } // Buffer the raw chunks\n\n\n buffer.push(chunk.value);\n\n try {\n // Attempt to split off a section from the buffer\n let bufferedString = decoder.decode(mergeArrays(...buffer));\n let splitSections = bufferedString.split(\"\\n\\n\");\n\n if (splitSections.length >= 2) {\n // We have a complete section, so add it to the sections array\n sections.push(...splitSections.slice(0, -1)); // Remove the section from the buffer and store the rest for future processing\n\n buffer = [encoder.encode(splitSections.slice(-1).join(\"\\n\\n\"))];\n } // If we successfully parsed at least one section, break out of reading the stream\n // to allow upstream processing of the processable sections\n\n\n if (sections.length > 0) {\n break;\n }\n } catch {\n // If we failed to parse the buffer it was because we failed to decode the stream\n // because we are missing bytes that we haven't yet received, so continue reading\n // from the stream until we have a complete section\n continue;\n }\n } // If we have a complete section, return it\n\n\n if (sections.length > 0) {\n return sections.shift();\n } // If we have no complete section, but we have no more chunks to process,\n // split those sections and clear out the buffer as there is no more data\n // to process. If this errors, let it bubble up as the stream ended\n // without valid data\n\n\n if (buffer.length > 0) {\n let bufferedString = decoder.decode(mergeArrays(...buffer));\n sections = bufferedString.split(\"\\n\\n\").filter(s => s);\n buffer = [];\n } // Return any remaining sections that have been processed\n\n\n return sections.shift();\n };\n\n let section = await readStreamSection();\n\n while (section) {\n yield section;\n section = await readStreamSection();\n }\n}\n\nfunction mergeArrays(...arrays) {\n let out = new Uint8Array(arrays.reduce((total, arr) => total + arr.length, 0));\n let offset = 0;\n\n for (let arr of arrays) {\n out.set(arr, offset);\n offset += arr.length;\n }\n\n return out;\n}\n\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport { AbortedDeferredError, CONTENT_TYPE, DEFERRED_VALUE_PLACEHOLDER_PREFIX, DeferredData, createDeferredReadableStream, parseDeferredReadableStream };\n", "/**\n * @remix-run/react v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport React__default, { useContext } from 'react';\n\n// TODO: We eventually might not want to import anything directly from `history`\nclass RemixErrorBoundary extends React__default.Component {\n constructor(props) {\n super(props);\n this.state = {\n error: props.error || null,\n location: props.location\n };\n }\n\n static getDerivedStateFromError(error) {\n return {\n error\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application (even the HTML!) that will have no effect--the error page\n // continues to display. This gives us a mechanism to recover from the error\n // when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location) {\n return {\n error: props.error || null,\n location: props.location\n };\n } // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n\n\n return {\n error: props.error || state.error,\n location: state.location\n };\n }\n\n render() {\n if (this.state.error) {\n return /*#__PURE__*/React__default.createElement(this.props.component, {\n error: this.state.error\n });\n } else {\n return this.props.children;\n }\n }\n\n}\n/**\n * When app's don't provide a root level ErrorBoundary, we default to this.\n */\n\nfunction RemixRootDefaultErrorBoundary({\n error\n}) {\n console.error(error);\n return /*#__PURE__*/React__default.createElement(\"html\", {\n lang: \"en\"\n }, /*#__PURE__*/React__default.createElement(\"head\", null, /*#__PURE__*/React__default.createElement(\"meta\", {\n charSet: \"utf-8\"\n }), /*#__PURE__*/React__default.createElement(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width,initial-scale=1,viewport-fit=cover\"\n }), /*#__PURE__*/React__default.createElement(\"title\", null, \"Application Error!\")), /*#__PURE__*/React__default.createElement(\"body\", null, /*#__PURE__*/React__default.createElement(\"main\", {\n style: {\n fontFamily: \"system-ui, sans-serif\",\n padding: \"2rem\"\n }\n }, /*#__PURE__*/React__default.createElement(\"h1\", {\n style: {\n fontSize: \"24px\"\n }\n }, \"Application Error\"), /*#__PURE__*/React__default.createElement(\"pre\", {\n style: {\n padding: \"2rem\",\n background: \"hsla(10, 50%, 50%, 0.1)\",\n color: \"red\",\n overflow: \"auto\"\n }\n }, error.stack)), /*#__PURE__*/React__default.createElement(\"script\", {\n dangerouslySetInnerHTML: {\n __html: `\n console.log(\n \"\uD83D\uDCBF Hey developer\uD83D\uDC4B. You can provide a way better UX than this when your app throws errors. Check out https://remix.run/guides/errors for more information.\"\n );\n `\n }\n })));\n}\nlet RemixCatchContext = /*#__PURE__*/React__default.createContext(undefined);\n/**\n * Returns the status code and thrown response data.\n *\n * @see https://remix.run/api/conventions#catchboundary\n */\n\nfunction useCatch() {\n return useContext(RemixCatchContext);\n}\nfunction RemixCatchBoundary({\n catch: catchVal,\n component: Component,\n children\n}) {\n if (catchVal) {\n return /*#__PURE__*/React__default.createElement(RemixCatchContext.Provider, {\n value: catchVal\n }, /*#__PURE__*/React__default.createElement(Component, null));\n }\n\n return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, children);\n}\n/**\n * When app's don't provide a root level CatchBoundary, we default to this.\n */\n\nfunction RemixRootDefaultCatchBoundary() {\n let caught = useCatch();\n return /*#__PURE__*/React__default.createElement(\"html\", {\n lang: \"en\"\n }, /*#__PURE__*/React__default.createElement(\"head\", null, /*#__PURE__*/React__default.createElement(\"meta\", {\n charSet: \"utf-8\"\n }), /*#__PURE__*/React__default.createElement(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width,initial-scale=1,viewport-fit=cover\"\n }), /*#__PURE__*/React__default.createElement(\"title\", null, \"Unhandled Thrown Response!\")), /*#__PURE__*/React__default.createElement(\"body\", null, /*#__PURE__*/React__default.createElement(\"h1\", {\n style: {\n fontFamily: \"system-ui, sans-serif\",\n padding: \"2rem\"\n }\n }, caught.status, \" \", caught.statusText), /*#__PURE__*/React__default.createElement(\"script\", {\n dangerouslySetInnerHTML: {\n __html: `\n console.log(\n \"\uD83D\uDCBF Hey developer\uD83D\uDC4B. You can provide a way better UX than this when your app throws 404s (and other responses). Check out https://remix.run/guides/not-found for more information.\"\n );\n `\n }\n })));\n}\n\nexport { RemixCatchBoundary, RemixErrorBoundary, RemixRootDefaultCatchBoundary, RemixRootDefaultErrorBoundary, useCatch };\n", "/**\n * @remix-run/react v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport { invariant as default };\n", "/**\n * @remix-run/react v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n// TODO: We eventually might not want to import anything directly from `history`\n// and leverage `react-router` here instead\n// TODO: import/export from react-router-dom\n\n/**\n * A React component that is rendered when the server throws a Response.\n *\n * @see https://remix.run/api/conventions#catchboundary\n */\n\n/**\n * A React component that is rendered when there is an error on a route.\n *\n * @see https://remix.run/api/conventions#errorboundary\n */\n\n/**\n * A function that defines `<link>` tags to be inserted into the `<head>` of\n * the document on route transitions.\n *\n * @see https://remix.run/api/remix#meta-links-scripts\n */\n\n/**\n * A function that returns an object of name + content pairs to use for\n * `<meta>` tags for a route. These tags will be merged with (and take\n * precedence over) tags from parent routes.\n *\n * @see https://remix.run/api/remix#meta-links-scripts\n */\n\n/**\n * A name/content pair used to render `<meta>` tags in a meta function for a\n * route. The value can be either a string, which will render a single `<meta>`\n * tag, or an array of strings that will render multiple tags with the same\n * `name` attribute.\n */\n\n/**\n * During client side transitions Remix will optimize reloading of routes that\n * are currently on the page by avoiding loading routes that aren't changing.\n * However, in some cases, like form submissions or search params Remix doesn't\n * know which routes need to be reloaded so it reloads them all to be safe.\n *\n * This function lets apps further optimize by returning `false` when Remix is\n * about to reload the route. A common case is a root loader with nothing but\n * environment variables: after form submissions the root probably doesn't need\n * to be reloaded.\n *\n * @see https://remix.run/api/conventions#unstable_shouldreload\n */\n\n/**\n * A React component that is rendered for a route.\n */\n\n/**\n * An arbitrary object that is associated with a route.\n *\n * @see https://remix.run/api/conventions#handle\n */\nasync function loadRouteModule(route, routeModulesCache) {\n if (route.id in routeModulesCache) {\n return routeModulesCache[route.id];\n }\n\n try {\n let routeModule = await import(\n /* webpackIgnore: true */\n route.module);\n routeModulesCache[route.id] = routeModule;\n return routeModule;\n } catch (error) {\n // User got caught in the middle of a deploy and the CDN no longer has the\n // asset we're trying to import! Reload from the server and the user\n // (should) get the new manifest--unless the developer purged the static\n // assets, the manifest path, but not the documents \uD83D\uDE2C\n window.location.reload();\n return new Promise(() => {// check out of this hook cause the DJs never gonna re[s]olve this\n });\n }\n}\n\nexport { loadRouteModule };\n", "/**\n * @remix-run/react v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { parsePath } from 'history';\nimport { loadRouteModule } from './routeModules.js';\n\n// TODO: We eventually might not want to import anything directly from `history`\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Gets all the links for a set of matches. The modules are assumed to have been\n * loaded already.\n */\nfunction getLinksForMatches(matches, routeModules, manifest) {\n let descriptors = matches.map(match => {\n var _module$links;\n\n let module = routeModules[match.route.id];\n return ((_module$links = module.links) === null || _module$links === void 0 ? void 0 : _module$links.call(module)) || [];\n }).flat(1);\n let preloads = getCurrentPageModulePreloadHrefs(matches, manifest);\n return dedupe(descriptors, preloads);\n}\nasync function prefetchStyleLinks(routeModule) {\n if (!routeModule.links) return;\n let descriptors = routeModule.links();\n if (!descriptors) return;\n let styleLinks = [];\n\n for (let descriptor of descriptors) {\n if (!isPageLinkDescriptor(descriptor) && descriptor.rel === \"stylesheet\") {\n styleLinks.push({ ...descriptor,\n rel: \"preload\",\n as: \"style\"\n });\n }\n } // don't block for non-matching media queries\n\n\n let matchingLinks = styleLinks.filter(link => !link.media || window.matchMedia(link.media).matches);\n await Promise.all(matchingLinks.map(prefetchStyleLink));\n}\n\nasync function prefetchStyleLink(descriptor) {\n return new Promise(resolve => {\n let link = document.createElement(\"link\");\n Object.assign(link, descriptor);\n\n function removeLink() {\n // if a navigation interrupts this prefetch React will update the <head>\n // and remove the link we put in there manually, so we check if it's still\n // there before trying to remove it\n if (document.head.contains(link)) {\n document.head.removeChild(link);\n }\n }\n\n link.onload = () => {\n removeLink();\n resolve();\n };\n\n link.onerror = () => {\n removeLink();\n resolve();\n };\n\n document.head.appendChild(link);\n });\n} ////////////////////////////////////////////////////////////////////////////////\n\n\nfunction isPageLinkDescriptor(object) {\n return object != null && typeof object.page === \"string\";\n}\nfunction isHtmlLinkDescriptor(object) {\n if (object == null) return false; // <link> may not have an href if <link rel=\"preload\"> is used with imagesrcset + imagesizes\n // https://github.com/remix-run/remix/issues/184\n // https://html.spec.whatwg.org/commit-snapshots/cb4f5ff75de5f4cbd7013c4abad02f21c77d4d1c/#attr-link-imagesrcset\n\n if (object.href == null) {\n return object.rel === \"preload\" && (typeof object.imageSrcSet === \"string\" || typeof object.imagesrcset === \"string\") && (typeof object.imageSizes === \"string\" || typeof object.imagesizes === \"string\");\n }\n\n return typeof object.rel === \"string\" && typeof object.href === \"string\";\n}\nasync function getStylesheetPrefetchLinks(matches, routeModules) {\n let links = await Promise.all(matches.map(async match => {\n let mod = await loadRouteModule(match.route, routeModules);\n return mod.links ? mod.links() : [];\n }));\n return links.flat(1).filter(isHtmlLinkDescriptor).filter(link => link.rel === \"stylesheet\" || link.rel === \"preload\").map(link => link.rel === \"preload\" ? { ...link,\n rel: \"prefetch\"\n } : { ...link,\n rel: \"prefetch\",\n as: \"style\"\n });\n} // This is ridiculously identical to transition.ts `filterMatchesToLoad`\n\nfunction getNewMatchesForLinks(page, nextMatches, currentMatches, location, mode) {\n let path = parsePathPatch(page);\n\n let isNew = (match, index) => {\n if (!currentMatches[index]) return true;\n return match.route.id !== currentMatches[index].route.id;\n };\n\n let matchPathChanged = (match, index) => {\n var _currentMatches$index;\n\n return (// param change, /users/123 -> /users/456\n currentMatches[index].pathname !== match.pathname || // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n ((_currentMatches$index = currentMatches[index].route.path) === null || _currentMatches$index === void 0 ? void 0 : _currentMatches$index.endsWith(\"*\")) && currentMatches[index].params[\"*\"] !== match.params[\"*\"]\n );\n }; // NOTE: keep this mostly up-to-date w/ the transition data diff, but this\n // version doesn't care about submissions\n\n\n let newMatches = mode === \"data\" && location.search !== path.search ? // this is really similar to stuff in transition.ts, maybe somebody smarter\n // than me (or in less of a hurry) can share some of it. You're the best.\n nextMatches.filter((match, index) => {\n if (!match.route.hasLoader) {\n return false;\n }\n\n if (isNew(match, index) || matchPathChanged(match, index)) {\n return true;\n }\n\n if (match.route.shouldReload) {\n return match.route.shouldReload({\n params: match.params,\n prevUrl: new URL(location.pathname + location.search + location.hash, window.origin),\n url: new URL(page, window.origin)\n });\n }\n\n return true;\n }) : nextMatches.filter((match, index) => {\n return (mode === \"assets\" || match.route.hasLoader) && (isNew(match, index) || matchPathChanged(match, index));\n });\n return newMatches;\n}\nfunction getDataLinkHrefs(page, matches, manifest) {\n let path = parsePathPatch(page);\n return dedupeHrefs(matches.filter(match => manifest.routes[match.route.id].hasLoader).map(match => {\n let {\n pathname,\n search\n } = path;\n let searchParams = new URLSearchParams(search);\n searchParams.set(\"_data\", match.route.id);\n return `${pathname}?${searchParams}`;\n }));\n}\nfunction getModuleLinkHrefs(matches, manifestPatch) {\n return dedupeHrefs(matches.map(match => {\n let route = manifestPatch.routes[match.route.id];\n let hrefs = [route.module];\n\n if (route.imports) {\n hrefs = hrefs.concat(route.imports);\n }\n\n return hrefs;\n }).flat(1));\n} // The `<Script>` will render rel=modulepreload for the current page, we don't\n// need to include them in a page prefetch, this gives us the list to remove\n// while deduping.\n\nfunction getCurrentPageModulePreloadHrefs(matches, manifest) {\n return dedupeHrefs(matches.map(match => {\n let route = manifest.routes[match.route.id];\n let hrefs = [route.module];\n\n if (route.imports) {\n hrefs = hrefs.concat(route.imports);\n }\n\n return hrefs;\n }).flat(1));\n}\n\nfunction dedupeHrefs(hrefs) {\n return [...new Set(hrefs)];\n}\n\nfunction dedupe(descriptors, preloads) {\n let set = new Set();\n let preloadsSet = new Set(preloads);\n return descriptors.reduce((deduped, descriptor) => {\n let alreadyModulePreload = !isPageLinkDescriptor(descriptor) && descriptor.as === \"script\" && descriptor.href && preloadsSet.has(descriptor.href);\n\n if (alreadyModulePreload) {\n return deduped;\n }\n\n let str = JSON.stringify(descriptor);\n\n if (!set.has(str)) {\n set.add(str);\n deduped.push(descriptor);\n }\n\n return deduped;\n }, []);\n} // https://github.com/remix-run/history/issues/897\n\nfunction parsePathPatch(href) {\n let path = parsePath(href);\n if (path.search === undefined) path.search = \"\";\n return path;\n}\n\nexport { dedupe, getDataLinkHrefs, getLinksForMatches, getModuleLinkHrefs, getNewMatchesForLinks, getStylesheetPrefetchLinks, isHtmlLinkDescriptor, isPageLinkDescriptor, prefetchStyleLinks };\n", "/**\n * @remix-run/react v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction createHtml(html) {\n return {\n __html: html\n };\n} // This escapeHtml utility is based on https://github.com/zertosh/htmlescape\n// License: https://github.com/zertosh/htmlescape/blob/0527ca7156a524d256101bb310a9f970f63078ad/LICENSE\n// We've chosen to inline the utility here to reduce the number of npm dependencies we have,\n// slightly decrease the code size compared the original package and make it esm compatible.\n\nconst ESCAPE_LOOKUP = {\n \"&\": \"\\\\u0026\",\n \">\": \"\\\\u003e\",\n \"<\": \"\\\\u003c\",\n \"\\u2028\": \"\\\\u2028\",\n \"\\u2029\": \"\\\\u2029\"\n};\nconst ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nfunction escapeHtml(html) {\n return html.replace(ESCAPE_REGEX, match => ESCAPE_LOOKUP[match]);\n}\n\nexport { createHtml, escapeHtml };\n", "/**\n * @remix-run/react v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { loadRouteModule } from './routeModules.js';\nimport { fetchData, isCatchResponse, extractData, isRedirectResponse } from './data.js';\nimport { CatchValue, TransitionRedirect } from './transition.js';\nimport { prefetchStyleLinks } from './links.js';\nimport invariant from './invariant.js';\n\nfunction createClientRoute(entryRoute, routeModulesCache, Component) {\n return {\n caseSensitive: !!entryRoute.caseSensitive,\n element: /*#__PURE__*/React.createElement(Component, {\n id: entryRoute.id\n }),\n id: entryRoute.id,\n path: entryRoute.path,\n index: entryRoute.index,\n module: entryRoute.module,\n loader: createLoader(entryRoute, routeModulesCache),\n action: createAction(entryRoute, routeModulesCache),\n shouldReload: createShouldReload(entryRoute, routeModulesCache),\n ErrorBoundary: entryRoute.hasErrorBoundary,\n CatchBoundary: entryRoute.hasCatchBoundary,\n hasLoader: entryRoute.hasLoader\n };\n}\nfunction createClientRoutes(routeManifest, routeModulesCache, Component, parentId) {\n return Object.keys(routeManifest).filter(key => routeManifest[key].parentId === parentId).map(key => {\n let route = createClientRoute(routeManifest[key], routeModulesCache, Component);\n let children = createClientRoutes(routeManifest, routeModulesCache, Component, route.id);\n if (children.length > 0) route.children = children;\n return route;\n });\n}\n\nfunction createShouldReload(route, routeModules) {\n let shouldReload = arg => {\n let module = routeModules[route.id];\n invariant(module, `Expected route module to be loaded for ${route.id}`);\n\n if (module.unstable_shouldReload) {\n return module.unstable_shouldReload(arg);\n }\n\n return true;\n };\n\n return shouldReload;\n}\n\nasync function loadRouteModuleWithBlockingLinks(route, routeModules) {\n let routeModule = await loadRouteModule(route, routeModules);\n await prefetchStyleLinks(routeModule);\n return routeModule;\n}\n\nfunction createLoader(route, routeModules) {\n let loader = async ({\n url,\n signal,\n submission\n }) => {\n if (route.hasLoader) {\n let [result] = await Promise.all([fetchData(url, route.id, signal, submission), loadRouteModuleWithBlockingLinks(route, routeModules)]);\n if (result instanceof Error) throw result;\n let redirect = await checkRedirect(result);\n if (redirect) return redirect;\n\n if (isCatchResponse(result)) {\n throw new CatchValue(result.status, result.statusText, await extractData(result, signal, true));\n }\n\n return extractData(result, signal);\n } else {\n await loadRouteModuleWithBlockingLinks(route, routeModules);\n }\n };\n\n return loader;\n}\n\nfunction createAction(route, routeModules) {\n let action = async ({\n url,\n signal,\n submission\n }) => {\n if (!route.hasAction) {\n console.error(`Route \"${route.id}\" does not have an action, but you are trying ` + `to submit to it. To fix this, please add an \\`action\\` function to the route`);\n }\n\n let result = await fetchData(url, route.id, signal, submission);\n\n if (result instanceof Error) {\n throw result;\n }\n\n let redirect = await checkRedirect(result);\n if (redirect) return redirect;\n await loadRouteModuleWithBlockingLinks(route, routeModules);\n\n if (isCatchResponse(result)) {\n throw new CatchValue(result.status, result.statusText, await extractData(result, signal, true));\n }\n\n return extractData(result, signal);\n };\n\n return action;\n}\n\nasync function checkRedirect(response) {\n if (isRedirectResponse(response)) {\n let url = new URL(response.headers.get(\"X-Remix-Redirect\"), window.location.origin);\n\n if (url.origin !== window.location.origin) {\n await new Promise(() => {\n window.location.replace(url.href);\n });\n } else {\n return new TransitionRedirect(url.pathname + url.search + url.hash, response.headers.get(\"X-Remix-Revalidate\") !== null);\n }\n }\n\n return null;\n}\n\nexport { createClientRoute, createClientRoutes };\n", "/**\n * @remix-run/react v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { parseDeferredReadableStream } from '@remix-run/deferred';\nimport invariant from './invariant.js';\n\nfunction isCatchResponse(response) {\n return response instanceof Response && response.headers.get(\"X-Remix-Catch\") != null;\n}\nfunction isErrorResponse(response) {\n return response instanceof Response && response.headers.get(\"X-Remix-Error\") != null;\n}\nfunction isRedirectResponse(response) {\n return response instanceof Response && response.headers.get(\"X-Remix-Redirect\") != null;\n}\nasync function fetchData(url, routeId, signal, submission) {\n url.searchParams.set(\"_data\", routeId);\n let init = submission ? getActionInit(submission, signal) : {\n credentials: \"same-origin\",\n signal\n };\n let response = await fetch(url.href, init);\n\n if (isErrorResponse(response)) {\n let data = await response.json();\n let error = new Error(data.message);\n error.stack = data.stack;\n return error;\n }\n\n return response;\n}\nasync function extractData(response, signal, resolveDeferred = false) {\n // This same algorithm is used on the server to interpret load\n // results when we render the HTML page.\n let contentType = response.headers.get(\"Content-Type\");\n\n if (response.body && contentType && /\\btext\\/remix-deferred\\b/.test(contentType)) {\n let deferred = await parseDeferredReadableStream(response.body);\n\n if (!resolveDeferred) {\n return deferred;\n }\n\n if (await deferred.resolveData(signal)) {\n return deferred;\n }\n\n return deferred.unwrappedData;\n }\n\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n return response.json();\n }\n\n return response.text();\n}\n\nfunction getActionInit(submission, signal) {\n let {\n encType,\n method,\n formData\n } = submission;\n let headers = undefined;\n let body = formData;\n\n if (encType === \"application/x-www-form-urlencoded\") {\n body = new URLSearchParams();\n\n for (let [key, value] of formData) {\n invariant(typeof value === \"string\", `File inputs are not supported with encType \"application/x-www-form-urlencoded\", please use \"multipart/form-data\" instead.`);\n body.append(key, value);\n }\n\n headers = {\n \"Content-Type\": encType\n };\n }\n\n return {\n method,\n body,\n signal,\n credentials: \"same-origin\",\n headers\n };\n}\n\nexport { extractData, fetchData, isCatchResponse, isErrorResponse, isRedirectResponse };\n", "/**\n * @remix-run/react v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { matchRoutes } from 'react-router-dom';\n\n// TODO: We eventually might not want to import anything directly from `history`\nfunction matchClientRoutes(routes, location) {\n let matches = matchRoutes(routes, location);\n if (!matches) return null;\n return matches.map(match => ({\n params: match.params,\n pathname: match.pathname,\n route: match.route\n }));\n}\n\nexport { matchClientRoutes };\n", "/**\n * @remix-run/react v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { Action } from 'history';\nimport { DeferredData } from '@remix-run/deferred';\nimport { matchClientRoutes } from './routeMatching.js';\nimport invariant from './invariant.js';\n\n// TODO: We eventually might not want to import anything directly from `history`\n//#region Types and Utils\n////////////////////////////////////////////////////////////////////////////////\n\nclass CatchValue {\n constructor(status, statusText, data) {\n this.status = status;\n this.statusText = statusText;\n this.data = data;\n }\n\n}\n\nfunction isActionSubmission(submission) {\n return [\"POST\", \"PUT\", \"PATCH\", \"DELETE\"].includes(submission.method);\n}\n\nfunction isLoaderSubmission(submission) {\n return submission.method === \"GET\";\n}\n\nfunction isRedirectLocation(location) {\n return Boolean(location.state) && location.state.isRedirect;\n}\n\nfunction isLoaderRedirectLocation(location) {\n return isRedirectLocation(location) && location.state.type === \"loader\";\n}\n\nfunction isActionRedirectLocation(location) {\n return isRedirectLocation(location) && location.state.type === \"action\";\n}\n\nfunction isFetchActionRedirect(location) {\n return isRedirectLocation(location) && location.state.type === \"fetchAction\";\n}\n\nfunction isLoaderSubmissionRedirectLocation(location) {\n return isRedirectLocation(location) && location.state.type === \"loaderSubmission\";\n}\n\nclass TransitionRedirect {\n constructor(location, setCookie = false) {\n this.setCookie = setCookie;\n this.location = typeof location === \"string\" ? location : location.pathname + location.search;\n }\n\n}\nconst IDLE_TRANSITION = {\n state: \"idle\",\n submission: undefined,\n location: undefined,\n type: \"idle\"\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n type: \"init\",\n data: undefined,\n submission: undefined\n}; //#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createTransitionManager\n////////////////////////////////////////////////////////////////////////////////\n\nfunction createTransitionManager(init) {\n let {\n routes,\n deferredLoaderData\n } = init;\n let pendingNavigationController; // Map of routeId->AbortController for pending deferred returned from loaders\n\n let pendingNavigationDeferredControllers = new Map(); // Set of routeId's for which we cancelled pending deferred's and need to\n // track until the end of the navigation so we can clear their\n // deferredLoaderData\n\n let cancelledDeferredRouteIds = new Set();\n let fetchControllers = new Map();\n let incrementingLoadId = 0;\n let navigationLoadId = -1;\n let fetchReloadIds = new Map();\n let fetchRedirectIds = new Set();\n let subscribers = new Set();\n let matches = matchClientRoutes(routes, init.location);\n\n if (!matches) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the CatchBoundary to take over\n matches = [{\n params: {},\n pathname: \"\",\n route: routes[0]\n }];\n }\n\n let state = {\n location: init.location,\n loaderData: init.loaderData || {},\n actionData: init.actionData,\n catch: init.catch,\n error: init.error,\n catchBoundaryId: init.catchBoundaryId || null,\n errorBoundaryId: init.errorBoundaryId || null,\n matches,\n nextMatches: undefined,\n transition: IDLE_TRANSITION,\n fetchers: new Map()\n };\n\n function update(updates) {\n let overrides = {};\n\n if (updates.transition) {\n if (updates.transition === IDLE_TRANSITION) {\n pendingNavigationController = undefined; // Preserve deferred data for active routes that were not cancelled, or\n // were cancelled and are again pending (i.e., returned a subsequent\n // defer() after an action)\n\n overrides.loaderData = [...Object.entries(state.loaderData), ...Object.entries(updates.loaderData || {})].filter(([routeId]) => {\n let isActive = (updates.matches || state.matches).some(m => m.route.id === routeId);\n let wasCancelled = cancelledDeferredRouteIds.has(routeId);\n let isPending = pendingNavigationDeferredControllers.has(routeId);\n return isActive && (!wasCancelled || isPending);\n }).reduce((acc, [routeId, data]) => Object.assign(acc, {\n [routeId]: data\n }), updates.loaderData || {});\n cancelledDeferredRouteIds.forEach(id => cancelledDeferredRouteIds.delete(id));\n }\n }\n\n state = Object.assign({}, state, updates, overrides);\n\n for (let subscriber of subscribers.values()) {\n subscriber(state);\n }\n }\n\n function getState() {\n return state;\n }\n\n function getFetcher(key) {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function setFetcher(key, fetcher) {\n state.fetchers.set(key, fetcher);\n }\n\n function deleteFetcher(key) {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n async function send(event) {\n switch (event.type) {\n case \"navigation\":\n {\n let {\n action,\n location,\n submission\n } = event;\n let matches = matchClientRoutes(routes, location);\n\n if (!matches) {\n matches = [{\n params: {},\n pathname: \"\",\n route: routes[0]\n }];\n await handleNotFoundNavigation(location, matches);\n } else if (!submission && isHashChangeOnly(location)) {\n await handleHashChange(location, matches);\n } // back/forward button, treat all as normal navigation\n else if (action === Action.Pop) {\n await handleLoad(location, matches);\n } // <Form method=\"post | put | delete | patch\">\n else if (submission && isActionSubmission(submission)) {\n await handleActionSubmissionNavigation(location, submission, matches);\n } // <Form method=\"get\"/>\n else if (submission && isLoaderSubmission(submission)) {\n await handleLoaderSubmissionNavigation(location, submission, matches);\n } // action=>redirect\n else if (isActionRedirectLocation(location)) {\n await handleActionRedirect(location, matches);\n } // <Form method=\"get\"> --> loader=>redirect\n else if (isLoaderSubmissionRedirectLocation(location)) {\n await handleLoaderSubmissionRedirect(location, matches);\n } // loader=>redirect\n else if (isLoaderRedirectLocation(location)) {\n await handleLoaderRedirect(location, matches);\n } // useSubmission()=>redirect\n else if (isFetchActionRedirect(location)) {\n await handleFetchActionRedirect(location, matches);\n } // <Link>, navigate()\n else {\n await handleLoad(location, matches);\n }\n\n navigationLoadId = -1;\n break;\n }\n\n case \"fetcher\":\n {\n let {\n key,\n submission,\n href\n } = event;\n let matches = matchClientRoutes(routes, href);\n invariant(matches, \"No matches found\");\n if (fetchControllers.has(key)) abortFetcher(key);\n let match = getFetcherRequestMatch(new URL(href, window.location.href), matches);\n\n if (submission && isActionSubmission(submission)) {\n await handleActionFetchSubmission(key, submission, match);\n } else if (submission && isLoaderSubmission(submission)) {\n await handleLoaderFetchSubmission(href, key, submission, match);\n } else {\n await handleLoaderFetch(href, key, match);\n }\n\n break;\n }\n\n default:\n {\n // @ts-ignore\n throw new Error(`Unknown data event type: ${event.type}`);\n }\n }\n }\n\n function dispose() {\n abortNormalNavigation();\n abortPendingDeferredControllers(pendingNavigationDeferredControllers, cancelledDeferredRouteIds);\n\n for (let [, controller] of fetchControllers) {\n controller.abort();\n }\n }\n\n function isIndexRequestUrl(url) {\n for (let param of url.searchParams.getAll(\"index\")) {\n // only use bare `?index` params without a value\n // \u2705 /foo?index\n // \u2705 /foo?index&index=123\n // \u2705 /foo?index=123&index\n // \u274C /foo?index=123\n if (param === \"\") {\n return true;\n }\n }\n\n return false;\n }\n\n function getFetcherRequestMatch(url, matches) {\n let match = matches.slice(-1)[0];\n\n if (!isIndexRequestUrl(url) && match.route.index) {\n return matches.slice(-2)[0];\n }\n\n return match;\n }\n\n async function handleActionFetchSubmission(key, submission, match) {\n abortPendingDeferredControllers(pendingNavigationDeferredControllers, cancelledDeferredRouteIds);\n let currentFetcher = state.fetchers.get(key);\n let fetcher = {\n state: \"submitting\",\n type: \"actionSubmission\",\n submission,\n data: (currentFetcher === null || currentFetcher === void 0 ? void 0 : currentFetcher.data) || undefined\n };\n setFetcher(key, fetcher);\n update({\n fetchers: new Map(state.fetchers)\n });\n let controller = new AbortController();\n fetchControllers.set(key, controller);\n let result = await callAction(submission, match, controller.signal);\n\n if (controller.signal.aborted) {\n return;\n }\n\n if (isRedirectResult(result)) {\n let locationState = {\n isRedirect: true,\n type: \"fetchAction\",\n setCookie: result.value.setCookie\n };\n fetchRedirectIds.add(key);\n init.onRedirect(result.value.location, locationState);\n let loadingFetcher = {\n state: \"loading\",\n type: \"actionRedirect\",\n submission,\n data: undefined\n };\n setFetcher(key, loadingFetcher);\n update({\n fetchers: new Map(state.fetchers)\n });\n return;\n }\n\n if (maybeBailOnError(match, key, result)) {\n return;\n }\n\n if (await maybeBailOnCatch(match, key, result)) {\n return;\n }\n\n let loadFetcher = {\n state: \"loading\",\n type: \"actionReload\",\n data: result.value,\n submission\n };\n setFetcher(key, loadFetcher);\n update({\n fetchers: new Map(state.fetchers)\n });\n let maybeActionErrorResult = isErrorResult(result) ? result : undefined;\n let maybeActionCatchResult = isCatchResult(result) ? result : undefined;\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n let matchesToLoad = state.nextMatches || state.matches;\n let results = await callLoaders(state, state.transition.location || state.location, matchesToLoad, controller.signal, pendingNavigationDeferredControllers, cancelledDeferredRouteIds, maybeActionErrorResult, maybeActionCatchResult, submission, match.route.id, loadFetcher);\n\n if (controller.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n let redirect = findRedirect(results);\n\n if (redirect) {\n let locationState = {\n isRedirect: true,\n type: \"loader\",\n setCookie: redirect.setCookie\n };\n init.onRedirect(redirect.location, locationState);\n return;\n }\n\n let [error, errorBoundaryId] = findErrorAndBoundaryId(results, state.matches, maybeActionErrorResult);\n let [catchVal, catchBoundaryId] = (await findCatchAndBoundaryId(results, state.matches, maybeActionCatchResult)) || [];\n let doneFetcher = {\n state: \"idle\",\n type: \"done\",\n data: result.value,\n submission: undefined\n };\n setFetcher(key, doneFetcher);\n let abortedKeys = abortStaleFetchLoads(loadId);\n\n if (abortedKeys) {\n markFetchersDone(abortedKeys);\n }\n\n let yeetedNavigation = yeetStaleNavigationLoad(loadId);\n let [loaderData, monitorDeferred] = await makeLoaderData(getState, results, state.matches, matchesToLoad, pendingNavigationDeferredControllers, controller.signal);\n\n if (controller.signal.aborted) {\n return;\n } // need to do what we would have done when the navigation load completed\n\n\n if (yeetedNavigation) {\n let {\n transition\n } = state;\n invariant(transition.state === \"loading\", \"Expected loading transition\");\n update({\n location: transition.location,\n matches: state.nextMatches,\n error,\n errorBoundaryId,\n catch: catchVal,\n catchBoundaryId,\n loaderData,\n actionData: transition.type === \"actionReload\" ? state.actionData : undefined,\n transition: IDLE_TRANSITION,\n fetchers: new Map(state.fetchers)\n });\n } // otherwise just update the info for the data\n else {\n update({\n fetchers: new Map(state.fetchers),\n error,\n errorBoundaryId,\n loaderData\n });\n }\n\n monitorDeferred();\n }\n\n function yeetStaleNavigationLoad(landedId) {\n let isLoadingNavigation = state.transition.state === \"loading\";\n\n if (isLoadingNavigation && navigationLoadId < landedId) {\n abortNormalNavigation();\n abortPendingDeferredControllers(pendingNavigationDeferredControllers, cancelledDeferredRouteIds);\n return true;\n }\n\n return false;\n }\n\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = {\n state: \"idle\",\n type: \"done\",\n data: fetcher.data,\n submission: undefined\n };\n setFetcher(key, doneFetcher);\n }\n }\n\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n\n return yeetedKeys.length ? yeetedKeys : false;\n }\n\n async function handleLoaderFetchSubmission(href, key, submission, match) {\n let currentFetcher = state.fetchers.get(key);\n let fetcher = {\n state: \"submitting\",\n type: \"loaderSubmission\",\n submission,\n data: (currentFetcher === null || currentFetcher === void 0 ? void 0 : currentFetcher.data) || undefined\n };\n setFetcher(key, fetcher);\n update({\n fetchers: new Map(state.fetchers)\n });\n let controller = new AbortController();\n fetchControllers.set(key, controller);\n let result = await callLoader(match, createUrl(href), controller.signal);\n result = await resolveDeferredResult(result, controller.signal);\n fetchControllers.delete(key);\n\n if (controller.signal.aborted) {\n return;\n }\n\n if (isRedirectResult(result)) {\n let locationState = {\n isRedirect: true,\n type: \"loader\",\n setCookie: result.value.setCookie\n };\n init.onRedirect(result.value.location, locationState);\n return;\n }\n\n if (maybeBailOnError(match, key, result)) {\n return;\n }\n\n if (await maybeBailOnCatch(match, key, result)) {\n return;\n }\n\n let doneFetcher = {\n state: \"idle\",\n type: \"done\",\n data: result.value,\n submission: undefined\n };\n setFetcher(key, doneFetcher);\n update({\n fetchers: new Map(state.fetchers)\n });\n }\n\n async function handleLoaderFetch(href, key, match) {\n if (typeof AbortController === \"undefined\") {\n throw new Error(\"handleLoaderFetch was called during the server render, but it shouldn't be. \" + \"You are likely calling useFetcher.load() in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n\n let currentFetcher = state.fetchers.get(key);\n let fetcher = {\n state: \"loading\",\n type: \"normalLoad\",\n submission: undefined,\n data: (currentFetcher === null || currentFetcher === void 0 ? void 0 : currentFetcher.data) || undefined\n };\n setFetcher(key, fetcher);\n update({\n fetchers: new Map(state.fetchers)\n });\n let controller = new AbortController();\n fetchControllers.set(key, controller);\n let result = await callLoader(match, createUrl(href), controller.signal);\n result = await resolveDeferredResult(result, controller.signal);\n if (controller.signal.aborted) return;\n fetchControllers.delete(key);\n\n if (isRedirectResult(result)) {\n let locationState = {\n isRedirect: true,\n type: \"loader\",\n setCookie: result.value.setCookie\n };\n init.onRedirect(result.value.location, locationState);\n return;\n }\n\n if (maybeBailOnError(match, key, result)) {\n return;\n }\n\n if (await maybeBailOnCatch(match, key, result)) {\n return;\n }\n\n let doneFetcher = {\n state: \"idle\",\n type: \"done\",\n data: result.value,\n submission: undefined\n };\n setFetcher(key, doneFetcher);\n update({\n fetchers: new Map(state.fetchers)\n });\n }\n\n async function maybeBailOnCatch(match, key, result) {\n // TODO: revisit this if submission is correct after review\n if (isCatchResult(result)) {\n let catchBoundaryId = findNearestCatchBoundary(match, state.matches);\n state.fetchers.delete(key);\n update({\n transition: IDLE_TRANSITION,\n fetchers: new Map(state.fetchers),\n catch: {\n data: result.value.data,\n status: result.value.status,\n statusText: result.value.statusText\n },\n catchBoundaryId\n });\n return true;\n }\n\n return false;\n }\n\n function maybeBailOnError(match, key, result) {\n if (isErrorResult(result)) {\n let errorBoundaryId = findNearestBoundary(match, state.matches);\n state.fetchers.delete(key);\n update({\n fetchers: new Map(state.fetchers),\n error: result.value,\n errorBoundaryId\n });\n return true;\n }\n\n return false;\n }\n\n async function handleNotFoundNavigation(location, matches) {\n abortNormalNavigation();\n abortPendingDeferredControllers(pendingNavigationDeferredControllers, cancelledDeferredRouteIds);\n let transition = {\n state: \"loading\",\n type: \"normalLoad\",\n submission: undefined,\n location\n };\n update({\n transition,\n nextMatches: matches\n }); // Force async so UI code doesn't have to special not found route changes not\n // skipping the pending state (like scroll restoration gets really\n // complicated without the pending state, maybe we can figure something else\n // out later, but this works great.)\n\n await Promise.resolve();\n let catchBoundaryId = findNearestCatchBoundary(matches[0], matches);\n update({\n location,\n matches,\n catch: {\n data: null,\n status: 404,\n statusText: \"Not Found\"\n },\n catchBoundaryId,\n transition: IDLE_TRANSITION\n });\n }\n\n async function handleActionSubmissionNavigation(location, submission, matches) {\n abortNormalNavigation();\n abortPendingDeferredControllers(pendingNavigationDeferredControllers, cancelledDeferredRouteIds);\n let transition = {\n state: \"submitting\",\n type: \"actionSubmission\",\n submission,\n location\n };\n update({\n transition,\n nextMatches: matches\n });\n let controller = new AbortController();\n pendingNavigationController = controller; // Create a local copy we can mutate for proper determination of the acton\n // to run on layout/index routes. We do not want to mutate the eventual\n // matches used for revalidation\n\n let actionMatches = matches;\n\n if (!isIndexRequestUrl(createUrl(submission.action)) && actionMatches[matches.length - 1].route.index) {\n actionMatches = actionMatches.slice(0, -1);\n }\n\n let leafMatch = actionMatches.slice(-1)[0];\n let result = await callAction(submission, leafMatch, controller.signal);\n\n if (controller.signal.aborted) {\n return;\n }\n\n if (isRedirectResult(result)) {\n let locationState = {\n isRedirect: true,\n type: \"action\",\n setCookie: result.value.setCookie\n };\n init.onRedirect(result.value.location, locationState);\n return;\n }\n\n let catchVal, catchBoundaryId;\n\n if (isCatchResult(result)) {\n [catchVal, catchBoundaryId] = (await findCatchAndBoundaryId([result], actionMatches, result)) || [];\n }\n\n let loadTransition = {\n state: \"loading\",\n type: \"actionReload\",\n submission,\n location\n };\n update({\n transition: loadTransition,\n actionData: {\n [leafMatch.route.id]: result.value\n }\n });\n await loadPageData(location, matches, submission, leafMatch.route.id, result, catchVal, catchBoundaryId);\n }\n\n async function handleLoaderSubmissionNavigation(location, submission, matches) {\n abortNormalNavigation();\n let transition = {\n state: \"submitting\",\n type: \"loaderSubmission\",\n submission,\n location\n };\n update({\n transition,\n nextMatches: matches\n });\n await loadPageData(location, matches, submission);\n }\n\n async function handleHashChange(location, matches) {\n abortNormalNavigation();\n let transition = {\n state: \"loading\",\n type: \"normalLoad\",\n submission: undefined,\n location\n };\n update({\n transition,\n nextMatches: matches\n }); // Force async so UI code doesn't have to special case hash changes not\n // skipping the pending state (like scroll restoration gets really\n // complicated without the pending state, maybe we can figure something else\n // out later, but this works great.)\n\n await Promise.resolve();\n update({\n location,\n matches,\n transition: IDLE_TRANSITION\n });\n }\n\n async function handleLoad(location, matches) {\n abortNormalNavigation();\n let transition = {\n state: \"loading\",\n type: \"normalLoad\",\n submission: undefined,\n location\n };\n update({\n transition,\n nextMatches: matches\n });\n await loadPageData(location, matches);\n }\n\n async function handleLoaderRedirect(location, matches) {\n abortNormalNavigation();\n let transition = {\n state: \"loading\",\n type: \"normalRedirect\",\n submission: undefined,\n location\n };\n update({\n transition,\n nextMatches: matches\n });\n await loadPageData(location, matches);\n }\n\n async function handleLoaderSubmissionRedirect(location, matches) {\n abortNormalNavigation();\n invariant(state.transition.type === \"loaderSubmission\", `Unexpected transition: ${JSON.stringify(state.transition)}`);\n let {\n submission\n } = state.transition;\n let transition = {\n state: \"loading\",\n type: \"loaderSubmissionRedirect\",\n submission,\n location: location\n };\n update({\n transition,\n nextMatches: matches\n });\n await loadPageData(location, matches, submission);\n }\n\n async function handleFetchActionRedirect(location, matches) {\n abortNormalNavigation();\n let transition = {\n state: \"loading\",\n type: \"fetchActionRedirect\",\n submission: undefined,\n location\n };\n update({\n transition,\n nextMatches: matches\n });\n await loadPageData(location, matches);\n }\n\n async function handleActionRedirect(location, matches) {\n abortNormalNavigation();\n invariant(state.transition.type === \"actionSubmission\" || // loader redirected during action reload\n state.transition.type === \"actionReload\" || // loader redirected during action redirect\n state.transition.type === \"actionRedirect\", `Unexpected transition: ${JSON.stringify(state.transition)}`);\n let {\n submission\n } = state.transition;\n let transition = {\n state: \"loading\",\n type: \"actionRedirect\",\n submission,\n location\n };\n update({\n transition,\n nextMatches: matches\n });\n await loadPageData(location, matches, submission);\n }\n\n function isHashChangeOnly(location) {\n return createHref(state.location) === createHref(location) && state.location.hash !== location.hash;\n }\n\n async function loadPageData(location, matches, submission, submissionRouteId, actionResult, catchVal, catchBoundaryId) {\n let maybeActionErrorResult = actionResult && isErrorResult(actionResult) ? actionResult : undefined;\n let maybeActionCatchResult = actionResult && isCatchResult(actionResult) ? actionResult : undefined;\n let controller = new AbortController();\n pendingNavigationController = controller;\n navigationLoadId = ++incrementingLoadId;\n let results = await callLoaders(state, location, matches, controller.signal, pendingNavigationDeferredControllers, cancelledDeferredRouteIds, maybeActionErrorResult, maybeActionCatchResult, submission, submissionRouteId, undefined, catchBoundaryId);\n\n if (controller.signal.aborted) {\n return;\n }\n\n let redirect = findRedirect(results);\n\n if (redirect) {\n // loader redirected during an action reload, treat it like an\n // actionRedirect instead so that all the loaders get called again and the\n // submission sticks around for optimistic/pending UI.\n if (state.transition.type === \"actionReload\" || isActionRedirectLocation(location)) {\n let locationState = {\n isRedirect: true,\n type: \"action\",\n setCookie: redirect.setCookie\n };\n init.onRedirect(redirect.location, locationState);\n } else if (state.transition.type === \"loaderSubmission\") {\n let locationState = {\n isRedirect: true,\n type: \"loaderSubmission\",\n setCookie: redirect.setCookie\n };\n init.onRedirect(redirect.location, locationState);\n } else {\n var _location$state;\n\n let locationState = {\n isRedirect: true,\n type: \"loader\",\n // If we're in the middle of a setCookie redirect, we need to preserve\n // the flag so we handle revalidations across multi-redirect scenarios\n setCookie: redirect.setCookie || ((_location$state = location.state) === null || _location$state === void 0 ? void 0 : _location$state.setCookie) === true\n };\n init.onRedirect(redirect.location, locationState);\n }\n\n return;\n }\n\n let [error, errorBoundaryId] = findErrorAndBoundaryId(results, matches, maybeActionErrorResult);\n [catchVal, catchBoundaryId] = (await findCatchAndBoundaryId(results, matches, maybeActionCatchResult)) || [catchVal, catchBoundaryId];\n markFetchRedirectsDone();\n let abortedIds = abortStaleFetchLoads(navigationLoadId);\n\n if (abortedIds) {\n markFetchersDone(abortedIds);\n }\n\n let [loaderData, monitorDeferred] = await makeLoaderData(getState, results, state.matches, matches, pendingNavigationDeferredControllers, controller.signal);\n\n if (controller.signal.aborted) {\n return;\n }\n\n update({\n location,\n matches,\n error,\n errorBoundaryId,\n catch: catchVal,\n catchBoundaryId,\n loaderData,\n actionData: state.transition.type === \"actionReload\" ? state.actionData : undefined,\n transition: IDLE_TRANSITION,\n fetchers: abortedIds ? new Map(state.fetchers) : state.fetchers\n });\n monitorDeferred();\n }\n\n function abortNormalNavigation() {\n if (pendingNavigationController) {\n pendingNavigationController.abort();\n }\n }\n\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchRedirectsDone() {\n let doneKeys = [];\n\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n\n if (fetcher.type === \"actionRedirect\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n }\n }\n\n markFetchersDone(doneKeys);\n }\n\n if (deferredLoaderData && typeof document !== \"undefined\") {\n pendingNavigationController = new AbortController();\n let signal = pendingNavigationController.signal;\n let results = matches.map(match => ({\n match,\n value: deferredLoaderData !== null && deferredLoaderData !== void 0 && deferredLoaderData[match.route.id] ? new DeferredData(init.loaderData[match.route.id]) : init.loaderData[match.route.id]\n }));\n makeLoaderData(getState, results, state.matches, matches, pendingNavigationDeferredControllers, pendingNavigationController.signal, false).then(([loaderData, monitorDeferred]) => {\n if (signal.aborted) {\n return;\n }\n\n update({\n loaderData\n });\n monitorDeferred();\n });\n }\n\n function subscribe(subscriber) {\n subscribers.add(subscriber);\n return () => {\n subscribers.delete(subscriber);\n };\n }\n\n return {\n subscribe,\n send,\n getState,\n getFetcher,\n deleteFetcher,\n dispose,\n\n get _internalFetchControllers() {\n return fetchControllers;\n }\n\n };\n} //#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createTransitionManager sub-functions\n////////////////////////////////////////////////////////////////////////////////\n\nasync function callLoaders(state, location, matches, signal, pendingNavigationDeferredControllers, cancelledDeferredRouteIds, actionErrorResult, actionCatchResult, submission, submissionRouteId, fetcher, catchBoundaryId) {\n let url = createUrl(createHref(location));\n let matchesToLoad = filterMatchesToLoad(state, location, matches, cancelledDeferredRouteIds, actionErrorResult, actionCatchResult, submission, submissionRouteId, fetcher, catchBoundaryId); // We can't abort these up front like we do for normal navigations because\n // they're route-specific so we need to wait until we know matchesToLoad so\n // we can only cancel non-reused routes\n\n abortPendingDeferredControllers(pendingNavigationDeferredControllers, cancelledDeferredRouteIds, matches, matchesToLoad);\n return Promise.all(matchesToLoad.map(match => callLoader(match, url, signal)));\n}\n\nasync function callLoader(match, url, signal) {\n invariant(match.route.loader, `Expected loader for ${match.route.id}`);\n\n try {\n let {\n params\n } = match;\n let value = await match.route.loader({\n params,\n url,\n signal\n });\n return {\n match,\n value\n };\n } catch (error) {\n return {\n match,\n value: error\n };\n }\n}\n\nasync function callAction(submission, match, signal) {\n invariant(match.route.action, `Expected action for ${match.route.id}`);\n\n try {\n let value = await match.route.action({\n url: createUrl(submission.action),\n params: match.params,\n submission,\n signal\n });\n return {\n match,\n value\n };\n } catch (error) {\n return {\n match,\n value: error\n };\n }\n}\n\nfunction isNewRouteInstance(currentMatch, match) {\n var _currentMatch$route$p;\n\n return (// param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname || // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n ((_currentMatch$route$p = currentMatch.route.path) === null || _currentMatch$route$p === void 0 ? void 0 : _currentMatch$route$p.endsWith(\"*\")) && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\n\nfunction filterMatchesToLoad(state, location, matches, cancelledDeferredRouteIds, actionErrorResult, actionCatchResult, submission, submissionRouteId, fetcher, catchBoundaryId) {\n var _location$state2;\n\n // Filter out all routes below the problematic route as they aren't going\n // to render so we don't need to load them.\n if (catchBoundaryId || submissionRouteId && (actionCatchResult || actionErrorResult)) {\n let foundProblematicRoute = false;\n matches = matches.filter(match => {\n if (foundProblematicRoute) {\n return false;\n }\n\n if (match.route.id === submissionRouteId || match.route.id === catchBoundaryId) {\n foundProblematicRoute = true;\n return false;\n }\n\n return true;\n });\n }\n\n let isNew = (match, index) => {\n // [a] -> [a, b]\n if (!state.matches[index]) return true; // [a, b] -> [a, c]\n\n return match.route.id !== state.matches[index].route.id;\n };\n\n let url = createUrl(createHref(location));\n\n let filterByRouteProps = (match, index) => {\n if (!match.route.loader) {\n return false;\n }\n\n if (isNew(match, index) || isNewRouteInstance(state.matches[index], match)) {\n return true;\n } // If a route had a cancelled deferred, it cannot opt out of revalidation\n\n\n if (cancelledDeferredRouteIds.has(match.route.id)) {\n return true;\n }\n\n if (match.route.shouldReload) {\n let prevUrl = createUrl(createHref(state.location));\n return match.route.shouldReload({\n prevUrl,\n url,\n submission,\n params: match.params\n });\n }\n\n return true;\n };\n\n let isInRootCatchBoundary = state.matches.length === 1;\n\n if (isInRootCatchBoundary) {\n return matches.filter(match => !!match.route.loader);\n }\n\n if ((fetcher === null || fetcher === void 0 ? void 0 : fetcher.type) === \"actionReload\") {\n return matches.filter(filterByRouteProps);\n } else if ( // mutation, reload for fresh data\n state.transition.type === \"actionReload\" || state.transition.type === \"actionRedirect\" || state.transition.type === \"fetchActionRedirect\" || // clicked the same link, resubmitted a GET form\n createHref(url) === createHref(state.location) || // search affects all loaders\n url.searchParams.toString() !== state.location.search.substring(1) || // a cookie was set\n (_location$state2 = location.state) !== null && _location$state2 !== void 0 && _location$state2.setCookie) {\n return matches.filter(filterByRouteProps);\n }\n\n return matches.filter((match, index, arr) => {\n var _location$state3;\n\n // don't load errored action route\n if ((actionErrorResult || actionCatchResult) && arr.length - 1 === index) {\n return false;\n }\n\n return match.route.loader && (isNew(match, index) || isNewRouteInstance(state.matches[index], match) || ((_location$state3 = location.state) === null || _location$state3 === void 0 ? void 0 : _location$state3.setCookie));\n });\n}\n\nfunction isRedirectResult(result) {\n return result.value instanceof TransitionRedirect;\n}\n\nfunction createHref(location) {\n return location.pathname + location.search;\n}\n\nfunction findRedirect(results) {\n for (let result of results) {\n if (isRedirectResult(result)) {\n return result.value;\n }\n }\n\n return null;\n}\n\nasync function findCatchAndBoundaryId(results, matches, actionCatchResult) {\n let loaderCatchResult;\n\n for (let result of results) {\n if (isCatchResult(result)) {\n loaderCatchResult = result;\n break;\n }\n }\n\n let extractCatchData = async res => ({\n status: res.status,\n statusText: res.statusText,\n data: res.data\n }); // Weird case where action threw, and then a parent loader ALSO threw, we\n // use the action catch but the loader's nearest boundary (cause we can't\n // render down to the boundary the action would prefer)\n\n\n if (actionCatchResult && loaderCatchResult) {\n let boundaryId = findNearestCatchBoundary(loaderCatchResult.match, matches);\n return [await extractCatchData(actionCatchResult.value), boundaryId];\n }\n\n if (loaderCatchResult) {\n let boundaryId = findNearestCatchBoundary(loaderCatchResult.match, matches);\n return [await extractCatchData(loaderCatchResult.value), boundaryId];\n }\n\n return null;\n}\n\nfunction findErrorAndBoundaryId(results, matches, actionErrorResult) {\n let loaderErrorResult;\n\n for (let result of results) {\n if (isErrorResult(result)) {\n loaderErrorResult = result;\n break;\n }\n } // Weird case where action errored, and then a parent loader ALSO errored, we\n // use the action error but the loader's nearest boundary (cause we can't\n // render down to the boundary the action would prefer)\n\n\n if (actionErrorResult && loaderErrorResult) {\n let boundaryId = findNearestBoundary(loaderErrorResult.match, matches);\n return [actionErrorResult.value, boundaryId];\n }\n\n if (actionErrorResult) {\n let boundaryId = findNearestBoundary(actionErrorResult.match, matches);\n return [actionErrorResult.value, boundaryId];\n }\n\n if (loaderErrorResult) {\n let boundaryId = findNearestBoundary(loaderErrorResult.match, matches);\n return [loaderErrorResult.value, boundaryId];\n }\n\n return [undefined, undefined];\n}\n\nfunction findNearestCatchBoundary(matchWithError, matches) {\n let nearestBoundaryId = null;\n\n for (let match of matches) {\n if (match.route.CatchBoundary) {\n nearestBoundaryId = match.route.id;\n } // only search parents (stop at throwing match)\n\n\n if (match === matchWithError) {\n break;\n }\n }\n\n return nearestBoundaryId;\n}\n\nfunction findNearestBoundary(matchWithError, matches) {\n let nearestBoundaryId = null;\n\n for (let match of matches) {\n if (match.route.ErrorBoundary) {\n nearestBoundaryId = match.route.id;\n } // only search parents (stop at throwing match)\n\n\n if (match === matchWithError) {\n break;\n }\n }\n\n return nearestBoundaryId;\n}\n\nfunction wrapDeferredPromise(promise, signal) {\n let wrapped = promise.then(async data => {\n if (!signal.aborted) {\n Object.defineProperty(wrapped, \"_data\", {\n get: () => data\n });\n }\n\n return data;\n }, error => {\n if (!signal.aborted) {\n Object.defineProperty(wrapped, \"_error\", {\n get: () => error\n });\n }\n\n return Promise.reject(error);\n });\n Object.defineProperty(wrapped, \"_tracked\", {\n get: () => true\n }); // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n\n wrapped.catch(() => {});\n return wrapped;\n}\n\nfunction wrapDeferredData(deferred, signal) {\n let finalData = {};\n\n for (let [key, value] of Object.entries(deferred.data)) {\n finalData[key] = value instanceof Promise ? wrapDeferredPromise(value, signal) : value;\n }\n\n return finalData;\n}\n\nasync function makeLoaderData(getState, results, currentMatches, matches, pendingNavigationDeferredControllers, signal, shouldBuffer = true) {\n let state = getState();\n let newData = {};\n let toMonitor = [];\n\n for (let result of results) {\n let {\n match,\n value\n } = result;\n\n if (isDeferredResult(result)) {\n let deferred = result.value;\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let bufferDeferred = shouldBuffer && !!currentMatch && !isNewRouteInstance(currentMatch, match) && typeof state.loaderData[match.route.id] !== \"undefined\";\n let deferredController = new AbortController();\n pendingNavigationDeferredControllers.set(match.route.id, deferredController);\n\n if (bufferDeferred) {\n await deferred.resolveData(signal);\n } else {\n toMonitor.push({\n routeId: match.route.id,\n deferred,\n signal: deferredController.signal\n });\n }\n\n newData[match.route.id] = wrapDeferredData(deferred, deferredController.signal);\n } else {\n newData[match.route.id] = value;\n }\n }\n\n let loaderData = {};\n state = getState();\n\n for (let {\n route\n } of matches) {\n let value = newData[route.id] !== undefined ? newData[route.id] : state.loaderData[route.id];\n\n if (value !== undefined) {\n loaderData[route.id] = value;\n }\n }\n\n let monitorDeferred = () => {\n for (let {\n deferred,\n routeId,\n signal\n } of toMonitor) {\n let unsubscribe = deferred.subscribe((aborted, settledKey) => {\n if (aborted || deferred.done) {\n unsubscribe();\n\n if (!signal.aborted) {\n pendingNavigationDeferredControllers.delete(routeId);\n }\n }\n });\n }\n };\n\n return [loaderData, monitorDeferred];\n}\n\nfunction abortPendingDeferredControllers(pendingNavigationDeferredControllers, cancelledDeferredRouteIds, matches = [], matchesToLoad = []) {\n for (let [routeId, controller] of pendingNavigationDeferredControllers) {\n // Can cancel if this route is no longer matched\n let isRouteMatched = matches.some(m => m.route.id === routeId); // Or if this route is about to be reloaded\n\n let isRouteLoading = matchesToLoad.some(m => m.route.id === routeId);\n\n if (!isRouteMatched || isRouteLoading) {\n controller.abort();\n pendingNavigationDeferredControllers.delete(routeId);\n cancelledDeferredRouteIds.add(routeId);\n }\n }\n}\n\nasync function resolveDeferredResult(result, signal) {\n if (isDeferredResult(result)) {\n if (await result.value.resolveData(signal)) {\n return result;\n }\n\n return {\n match: result.match,\n value: result.value.unwrappedData\n };\n }\n\n return result;\n}\n\nfunction isDeferredResult(result) {\n return typeof result.value === \"object\" && !!result.value && result.value instanceof DeferredData;\n}\n\nfunction isCatchResult(result) {\n return result.value instanceof CatchValue;\n}\n\nfunction isErrorResult(result) {\n return result.value instanceof Error;\n}\n\nfunction createUrl(href) {\n return new URL(href, window.location.origin);\n} //#endregion\n\nexport { CatchValue, IDLE_FETCHER, IDLE_TRANSITION, TransitionRedirect, createTransitionManager };\n", "/**\n * @remix-run/react v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { useBeforeUnload, useTransition } from './components.js';\n\nlet STORAGE_KEY = \"positions\";\nlet positions = {};\n\nif (typeof document !== \"undefined\") {\n let sessionPositions = sessionStorage.getItem(STORAGE_KEY);\n\n if (sessionPositions) {\n positions = JSON.parse(sessionPositions);\n }\n}\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n *\n * @see https://remix.run/api/remix#scrollrestoration\n */\n\n\nfunction ScrollRestoration({\n nonce = undefined\n}) {\n useScrollRestoration(); // wait for the browser to restore it on its own\n\n React.useEffect(() => {\n window.history.scrollRestoration = \"manual\";\n }, []); // let the browser restore on it's own for refresh\n\n useBeforeUnload(React.useCallback(() => {\n window.history.scrollRestoration = \"auto\";\n }, []));\n\n let restoreScroll = (STORAGE_KEY => {\n if (!window.history.state || !window.history.state.key) {\n let key = Math.random().toString(32).slice(2);\n window.history.replaceState({\n key\n }, \"\");\n }\n\n try {\n let positions = JSON.parse(sessionStorage.getItem(STORAGE_KEY) || \"{}\");\n let storedY = positions[window.history.state.key];\n\n if (typeof storedY === \"number\") {\n window.scrollTo(0, storedY);\n }\n } catch (error) {\n console.error(error);\n sessionStorage.removeItem(STORAGE_KEY);\n }\n }).toString();\n\n return /*#__PURE__*/React.createElement(\"script\", {\n nonce: nonce,\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: `(${restoreScroll})(${JSON.stringify(STORAGE_KEY)})`\n }\n });\n}\nlet hydrated = false;\n\nfunction useScrollRestoration() {\n let location = useLocation();\n let transition = useTransition();\n let wasSubmissionRef = React.useRef(false);\n React.useEffect(() => {\n if (transition.submission) {\n wasSubmissionRef.current = true;\n }\n }, [transition]);\n React.useEffect(() => {\n if (transition.location) {\n positions[location.key] = window.scrollY;\n }\n }, [transition, location]);\n useBeforeUnload(React.useCallback(() => {\n sessionStorage.setItem(STORAGE_KEY, JSON.stringify(positions));\n }, []));\n\n if (typeof document !== \"undefined\") {\n // eslint-disable-next-line\n React.useLayoutEffect(() => {\n // don't do anything on hydration, the component already did this with an\n // inline script.\n if (!hydrated) {\n hydrated = true;\n return;\n }\n\n let y = positions[location.key]; // been here before, scroll to it\n\n if (y != undefined) {\n window.scrollTo(0, y);\n return;\n } // try to scroll to the hash\n\n\n if (location.hash) {\n let el = document.getElementById(location.hash.slice(1));\n\n if (el) {\n el.scrollIntoView();\n return;\n }\n } // don't do anything on submissions\n\n\n if (wasSubmissionRef.current === true) {\n wasSubmissionRef.current = false;\n return;\n } // otherwise go to the top on new locations\n\n\n window.scrollTo(0, 0);\n }, [location]);\n }\n\n React.useEffect(() => {\n if (transition.submission) {\n wasSubmissionRef.current = true;\n }\n }, [transition]);\n}\n\nexport { ScrollRestoration };\n", "/**\n * @remix-run/react v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { Action, createPath } from 'history';\nimport * as React from 'react';\nimport { RemixEntry } from './components.js';\n\n// TODO: We eventually might not want to import anything directly from `history`\n\n/**\n * The entry point for a Remix app when it is rendered on the server (in\n * `app/entry.server.js`). This component is used to generate the HTML in the\n * response from the server.\n */\nfunction RemixServer({\n context,\n serverAbortDelay,\n url\n}) {\n if (typeof serverAbortDelay === \"number\") {\n context.serverAbortDelay = serverAbortDelay;\n }\n\n if (typeof url === \"string\") {\n url = new URL(url);\n }\n\n let location = {\n pathname: url.pathname,\n search: url.search,\n hash: \"\",\n state: null,\n key: \"default\"\n };\n let staticNavigator = {\n createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n },\n\n push(to) {\n throw new Error(`You cannot use navigator.push() on the server because it is a stateless ` + `environment. This error was probably triggered when you did a ` + `\\`navigate(${JSON.stringify(to)})\\` somewhere in your app.`);\n },\n\n replace(to) {\n throw new Error(`You cannot use navigator.replace() on the server because it is a stateless ` + `environment. This error was probably triggered when you did a ` + `\\`navigate(${JSON.stringify(to)}, { replace: true })\\` somewhere ` + `in your app.`);\n },\n\n go(delta) {\n throw new Error(`You cannot use navigator.go() on the server because it is a stateless ` + `environment. This error was probably triggered when you did a ` + `\\`navigate(${delta})\\` somewhere in your app.`);\n },\n\n back() {\n throw new Error(`You cannot use navigator.back() on the server because it is a stateless ` + `environment.`);\n },\n\n forward() {\n throw new Error(`You cannot use navigator.forward() on the server because it is a stateless ` + `environment.`);\n },\n\n block() {\n throw new Error(`You cannot use navigator.block() on the server because it is a stateless ` + `environment.`);\n }\n\n };\n return /*#__PURE__*/React.createElement(RemixEntry, {\n context: context,\n action: Action.Pop,\n location: location,\n navigator: staticNavigator,\n static: true\n });\n}\n\nexport { RemixServer };\n", "import {\n defer,\n type LinksFunction,\n type MetaFunction,\n type LoaderArgs,\n} from '@shopify/remix-oxygen';\nimport {\n Links,\n Meta,\n Outlet,\n Scripts,\n ScrollRestoration,\n useLoaderData,\n} from '@remix-run/react';\nimport {Cart, Shop} from '@shopify/hydrogen-react/storefront-api-types';\nimport {Layout} from '~/components';\nimport styles from './styles/app.css';\nimport favicon from '../public/favicon.svg';\n\nexport const links: LinksFunction = () => {\n return [\n {rel: 'stylesheet', href: styles},\n {\n rel: 'preconnect',\n href: 'https://cdn.shopify.com',\n },\n {\n rel: 'preconnect',\n href: 'https://shop.app',\n },\n {rel: 'icon', type: 'image/svg+xml', href: favicon},\n ];\n};\n\nexport const meta: MetaFunction = (data) => ({\n charset: 'utf-8',\n viewport: 'width=device-width,initial-scale=1',\n});\n\nexport async function loader({context, request}: LoaderArgs) {\n const cartId = await context.session.get('cartId');\n\n const [cart, layout] = await Promise.all([\n cartId\n ? (\n await context.storefront.query<{cart: Cart}>(CART_QUERY, {\n variables: {\n cartId,\n /**\n Country and language properties are automatically injected\n into all queries. Passing them is unnecessary unless you\n want to override them from the following default:\n */\n country: context.storefront.i18n?.country,\n language: context.storefront.i18n?.language,\n },\n cache: context.storefront.CacheNone(),\n })\n ).cart\n : null,\n await context.storefront.query<{shop: Shop}>(LAYOUT_QUERY),\n ]);\n\n return defer({\n cart,\n layout,\n });\n}\n\nexport default function App() {\n const data = useLoaderData<typeof loader>();\n\n const {name, description} = data.layout.shop;\n\n return (\n <html lang=\"en\">\n <head>\n <Meta />\n <Links />\n </head>\n <body>\n <Layout description={description} title={name}>\n <Outlet />\n </Layout>\n <ScrollRestoration />\n <Scripts />\n </body>\n </html>\n );\n}\n\nconst CART_QUERY = `#graphql\n query CartQuery($cartId: ID!) {\n cart(id: $cartId) {\n ...CartFragment\n }\n }\n\n fragment CartFragment on Cart {\n id\n checkoutUrl\n totalQuantity\n buyerIdentity {\n countryCode\n customer {\n id\n email\n firstName\n lastName\n displayName\n }\n email\n phone\n }\n lines(first: 100) {\n edges {\n node {\n id\n quantity\n attributes {\n key\n value\n }\n cost {\n totalAmount {\n amount\n currencyCode\n }\n amountPerQuantity {\n amount\n currencyCode\n }\n compareAtAmountPerQuantity {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n id\n availableForSale\n compareAtPrice {\n ...MoneyFragment\n }\n price {\n ...MoneyFragment\n }\n requiresShipping\n title\n image {\n ...ImageFragment\n }\n product {\n handle\n title\n id\n }\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n }\n cost {\n subtotalAmount {\n ...MoneyFragment\n }\n totalAmount {\n ...MoneyFragment\n }\n totalDutyAmount {\n ...MoneyFragment\n }\n totalTaxAmount {\n ...MoneyFragment\n }\n }\n note\n attributes {\n key\n value\n }\n discountCodes {\n code\n }\n }\n\n fragment MoneyFragment on MoneyV2 {\n currencyCode\n amount\n }\n\n fragment ImageFragment on Image {\n id\n url\n altText\n width\n height\n }\n`;\n\nconst LAYOUT_QUERY = `#graphql\n query layout {\n shop {\n name\n description\n }\n }\n`;\n", "/**\n * @remix-run/server-runtime v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { parse, serialize } from 'cookie';\nimport { warnOnce } from './warnings.js';\n\n/**\n * Creates a logical container for managing a browser cookie from the server.\n *\n * @see https://remix.run/api/remix#createcookie\n */\nconst createCookieFactory = ({\n sign,\n unsign\n}) => (name, cookieOptions = {}) => {\n let {\n secrets,\n ...options\n } = {\n secrets: [],\n path: \"/\",\n sameSite: \"lax\",\n ...cookieOptions\n };\n warnOnceAboutExpiresCookie(name, options.expires);\n return {\n get name() {\n return name;\n },\n\n get isSigned() {\n return secrets.length > 0;\n },\n\n get expires() {\n // Max-Age takes precedence over Expires\n return typeof options.maxAge !== \"undefined\" ? new Date(Date.now() + options.maxAge * 1000) : options.expires;\n },\n\n async parse(cookieHeader, parseOptions) {\n if (!cookieHeader) return null;\n let cookies = parse(cookieHeader, { ...options,\n ...parseOptions\n });\n return name in cookies ? cookies[name] === \"\" ? \"\" : await decodeCookieValue(unsign, cookies[name], secrets) : null;\n },\n\n async serialize(value, serializeOptions) {\n return serialize(name, value === \"\" ? \"\" : await encodeCookieValue(sign, value, secrets), { ...options,\n ...serializeOptions\n });\n }\n\n };\n};\n\n/**\n * Returns true if an object is a Remix cookie container.\n *\n * @see https://remix.run/api/remix#iscookie\n */\nconst isCookie = object => {\n return object != null && typeof object.name === \"string\" && typeof object.isSigned === \"boolean\" && typeof object.parse === \"function\" && typeof object.serialize === \"function\";\n};\n\nasync function encodeCookieValue(sign, value, secrets) {\n let encoded = encodeData(value);\n\n if (secrets.length > 0) {\n encoded = await sign(encoded, secrets[0]);\n }\n\n return encoded;\n}\n\nasync function decodeCookieValue(unsign, value, secrets) {\n if (secrets.length > 0) {\n for (let secret of secrets) {\n let unsignedValue = await unsign(value, secret);\n\n if (unsignedValue !== false) {\n return decodeData(unsignedValue);\n }\n }\n\n return null;\n }\n\n return decodeData(value);\n}\n\nfunction encodeData(value) {\n return btoa(myUnescape(encodeURIComponent(JSON.stringify(value))));\n}\n\nfunction decodeData(value) {\n try {\n return JSON.parse(decodeURIComponent(myEscape(atob(value))));\n } catch (error) {\n return {};\n }\n} // See: https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.escape.js\n\n\nfunction myEscape(value) {\n let str = value.toString();\n let result = \"\";\n let index = 0;\n let chr, code;\n\n while (index < str.length) {\n chr = str.charAt(index++);\n\n if (/[\\w*+\\-./@]/.exec(chr)) {\n result += chr;\n } else {\n code = chr.charCodeAt(0);\n\n if (code < 256) {\n result += \"%\" + hex(code, 2);\n } else {\n result += \"%u\" + hex(code, 4).toUpperCase();\n }\n }\n }\n\n return result;\n}\n\nfunction hex(code, length) {\n let result = code.toString(16);\n\n while (result.length < length) result = \"0\" + result;\n\n return result;\n} // See: https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.unescape.js\n\n\nfunction myUnescape(value) {\n let str = value.toString();\n let result = \"\";\n let index = 0;\n let chr, part;\n\n while (index < str.length) {\n chr = str.charAt(index++);\n\n if (chr === \"%\") {\n if (str.charAt(index) === \"u\") {\n part = str.slice(index + 1, index + 5);\n\n if (/^[\\da-f]{4}$/i.exec(part)) {\n result += String.fromCharCode(parseInt(part, 16));\n index += 5;\n continue;\n }\n } else {\n part = str.slice(index, index + 2);\n\n if (/^[\\da-f]{2}$/i.exec(part)) {\n result += String.fromCharCode(parseInt(part, 16));\n index += 2;\n continue;\n }\n }\n }\n\n result += chr;\n }\n\n return result;\n}\n\nfunction warnOnceAboutExpiresCookie(name, expires) {\n warnOnce(!expires, `The \"${name}\" cookie has an \"expires\" property set. ` + `This will cause the expires value to not be updated when the session is committed. ` + `Instead, you should set the expires value when serializing the cookie. ` + `You can use \\`commitSession(session, { expires })\\` if using a session storage object, ` + `or \\`cookie.serialize(\"value\", { expires })\\` if you're using the cookie directly.`);\n}\n\nexport { createCookieFactory, isCookie };\n", "/**\n * @remix-run/server-runtime v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nconst alreadyWarned = {};\nfunction warnOnce(condition, message) {\n if (!condition && !alreadyWarned[message]) {\n alreadyWarned[message] = true;\n console.warn(message);\n }\n}\n\nexport { warnOnce };\n", "/**\n * @remix-run/server-runtime v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { CONTENT_TYPE, createDeferredReadableStream, DeferredData } from '@remix-run/deferred';\n\n// interfaces must conform to the types they extend\n\n/**\n * This is a shortcut for creating `text/remix-deferred` responses. Converts `data`\n * to JSON for the initial payload, sends down subsequent chunks, and sets the\n * `Content-Type` header.\n *\n * NOTE: Deferred UX goals rely on streaming responses. Some popular hosts do\n * not support streaming responses. In general, any host built around AWS Lambda\n * does not support streaming and any bare metal / VM provider will. Make sure\n * your hosting platform supports before using this API. For more details,\n * checkout https://remix.run/docs/en/v1/guides/streaming.\n *\n * @see https://remix.run/api/remix#deferred\n */\nconst defer = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n\n if (!headers.has(\"Content-Type\")) {\n // We have opted to not use `text/event-stream` because it does not\n // support cache-control headers. Browsers force the cache to be `no-store`\n //\n // spec: https://html.spec.whatwg.org/multipage/server-sent-events.html\n headers.set(\"Content-Type\", `${CONTENT_TYPE}; charset=utf-8`);\n }\n\n return new Response(createDeferredReadableStream(new DeferredData(data)), { ...responseInit,\n headers\n });\n};\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n *\n * @see https://remix.run/api/remix#json\n */\nconst json = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), { ...responseInit,\n headers\n });\n};\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n *\n * @see https://remix.run/api/remix#redirect\n */\nconst redirect = (url, init = 302) => {\n let responseInit = init;\n\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, { ...responseInit,\n headers\n });\n};\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\nfunction isDeferredResponse(response) {\n let contentType = response.headers.get(\"Content-Type\");\n return !!contentType && /\\btext\\/remix-deferred\\b/.test(contentType);\n}\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nfunction isRedirectResponse(response) {\n return redirectStatusCodes.has(response.status);\n}\nfunction isCatchResponse(response) {\n return response.headers.get(\"X-Remix-Catch\") != null;\n}\n\nexport { defer, isCatchResponse, isDeferredResponse, isRedirectResponse, isResponse, json, redirect };\n", "/**\n * @remix-run/server-runtime v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { parseDeferredReadableStream } from '@remix-run/deferred';\nimport { isResponse, isRedirectResponse, json, isDeferredResponse } from './responses.js';\n\n/**\n * An object of unknown type for route loaders and actions provided by the\n * server's `getLoadContext()` function.\n */\n\nasync function callRouteAction({\n loadContext,\n match,\n request\n}) {\n let action = match.route.module.action;\n\n if (!action) {\n let response = new Response(null, {\n status: 405\n });\n response.headers.set(\"X-Remix-Catch\", \"yes\");\n return response;\n }\n\n let result;\n\n try {\n result = await action({\n request: stripDataParam(stripIndexParam(request)),\n context: loadContext,\n params: match.params\n });\n } catch (error) {\n if (!isResponse(error)) {\n throw error;\n }\n\n if (!isRedirectResponse(error)) {\n error.headers.set(\"X-Remix-Catch\", \"yes\");\n }\n\n result = error;\n }\n\n if (result === undefined) {\n throw new Error(`You defined an action for route \"${match.route.id}\" but didn't return ` + `anything from your \\`action\\` function. Please return a value or \\`null\\`.`);\n }\n\n return isResponse(result) ? result : json(result);\n}\nasync function callRouteLoader({\n loadContext,\n match,\n request\n}) {\n let loader = match.route.module.loader;\n\n if (!loader) {\n throw new Error(`You made a ${request.method} request to ${request.url} but did not provide ` + `a default component or \\`loader\\` for route \"${match.route.id}\", ` + `so there is no way to handle the request.`);\n }\n\n let result;\n\n try {\n result = await loader({\n request: stripDataParam(stripIndexParam(request)),\n context: loadContext,\n params: match.params\n });\n } catch (error) {\n if (!isResponse(error)) {\n throw error;\n }\n\n if (!isRedirectResponse(error)) {\n error.headers.set(\"X-Remix-Catch\", \"yes\");\n }\n\n result = error;\n }\n\n if (result === undefined) {\n throw new Error(`You defined a loader for route \"${match.route.id}\" but didn't return ` + `anything from your \\`loader\\` function. Please return a value or \\`null\\`.`);\n }\n\n return isResponse(result) ? result : json(result);\n}\n\nfunction stripIndexParam(request) {\n let url = new URL(request.url);\n let indexValues = url.searchParams.getAll(\"index\");\n url.searchParams.delete(\"index\");\n let indexValuesToKeep = [];\n\n for (let indexValue of indexValues) {\n if (indexValue) {\n indexValuesToKeep.push(indexValue);\n }\n }\n\n for (let toKeep of indexValuesToKeep) {\n url.searchParams.append(\"index\", toKeep);\n }\n\n return new Request(url.href, request);\n}\n\nfunction stripDataParam(request) {\n let url = new URL(request.url);\n url.searchParams.delete(\"_data\");\n return new Request(url.href, request);\n}\n\nasync function extractData(response, signal, resolveDeferred = false) {\n let contentType = response.headers.get(\"Content-Type\");\n\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n return response.json();\n }\n\n if (response.body && isDeferredResponse(response)) {\n let deferred = await parseDeferredReadableStream(response.body);\n\n if (!resolveDeferred) {\n return deferred;\n }\n\n if (await deferred.resolveData(signal)) {\n return deferred;\n }\n\n return deferred.unwrappedData;\n } // What other data types do we need to handle here? What other kinds of\n // responses are people going to be returning from their loaders?\n // - application/x-www-form-urlencoded ?\n // - multipart/form-data ?\n // - binary (audio/video) ?\n\n\n return response.text();\n}\n\nexport { callRouteAction, callRouteLoader, extractData };\n", "/**\n * @remix-run/server-runtime v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction createEntryMatches(matches, routes) {\n return matches.map(match => ({\n params: match.params,\n pathname: match.pathname,\n route: routes[match.route.id]\n }));\n}\nfunction createEntryRouteModules(manifest) {\n return Object.keys(manifest).reduce((memo, routeId) => {\n memo[routeId] = manifest[routeId].module;\n return memo;\n }, {});\n}\n\nexport { createEntryMatches, createEntryRouteModules };\n", "/**\n * @remix-run/server-runtime v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n/**\n * This thing probably warrants some explanation.\n *\n * The whole point here is to emulate componentDidCatch for server rendering and\n * data loading. It can get tricky. React can do this on component boundaries\n * but doesn't support it for server rendering or data loading. We know enough\n * with nested routes to be able to emulate the behavior (because we know them\n * statically before rendering.)\n *\n * Each route can export an `ErrorBoundary`.\n *\n * - When rendering throws an error, the nearest error boundary will render\n * (normal react componentDidCatch). This will be the route's own boundary, but\n * if none is provided, it will bubble up to the parents.\n * - When data loading throws an error, the nearest error boundary will render\n * - When performing an action, the nearest error boundary for the action's\n * route tree will render (no redirect happens)\n *\n * During normal react rendering, we do nothing special, just normal\n * componentDidCatch.\n *\n * For server rendering, we mutate `renderBoundaryRouteId` to know the last\n * layout that has an error boundary that tried to render. This emulates which\n * layout would catch a thrown error. If the rendering fails, we catch the error\n * on the server, and go again a second time with the emulator holding on to the\n * information it needs to render the same error boundary as a dynamically\n * thrown render error.\n *\n * When data loading, server or client side, we use the emulator to likewise\n * hang on to the error and re-render at the appropriate layout (where a thrown\n * error would have been caught by cDC).\n *\n * When actions throw, it all works the same. There's an edge case to be aware\n * of though. Actions normally are required to redirect, but in the case of\n * errors, we render the action's route with the emulator holding on to the\n * error. If during this render a parent route/loader throws we ignore that new\n * error and render the action's original error as deeply as possible. In other\n * words, we simply ignore the new error and use the action's error in place\n * because it came first, and that just wouldn't be fair to let errors cut in\n * line.\n */\n// must be type alias due to inference issues on interfaces\n// https://github.com/microsoft/TypeScript/issues/15300\nasync function serializeError(error) {\n return {\n message: error.message,\n stack: error.stack\n };\n}\n\nexport { serializeError };\n", "/**\n * @remix-run/server-runtime v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { splitCookiesString } from 'set-cookie-parser';\n\nfunction getDocumentHeaders(build, matches, routeLoaderResponses, actionResponse) {\n return matches.reduce((parentHeaders, match, index) => {\n let routeModule = build.routes[match.route.id].module;\n let routeLoaderResponse = routeLoaderResponses[match.route.id];\n let loaderHeaders = routeLoaderResponse ? routeLoaderResponse.headers : new Headers();\n let actionHeaders = actionResponse ? actionResponse.headers : new Headers();\n let headers = new Headers(routeModule.headers ? typeof routeModule.headers === \"function\" ? routeModule.headers({\n loaderHeaders,\n parentHeaders,\n actionHeaders\n }) : routeModule.headers : undefined); // Automatically preserve Set-Cookie headers that were set either by the\n // loader or by a parent route.\n\n prependCookies(actionHeaders, headers);\n prependCookies(loaderHeaders, headers);\n prependCookies(parentHeaders, headers);\n return headers;\n }, new Headers());\n}\n\nfunction prependCookies(parentHeaders, childHeaders) {\n let parentSetCookieString = parentHeaders.get(\"Set-Cookie\");\n\n if (parentSetCookieString) {\n let cookies = splitCookiesString(parentSetCookieString);\n cookies.forEach(cookie => {\n childHeaders.append(\"Set-Cookie\", cookie);\n });\n }\n}\n\nexport { getDocumentHeaders };\n", "/**\n * @remix-run/server-runtime v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n/**\n * The mode to use when running the server.\n */\nlet ServerMode;\n\n(function (ServerMode) {\n ServerMode[\"Development\"] = \"development\";\n ServerMode[\"Production\"] = \"production\";\n ServerMode[\"Test\"] = \"test\";\n})(ServerMode || (ServerMode = {}));\n\nfunction isServerMode(value) {\n return value === ServerMode.Development || value === ServerMode.Production || value === ServerMode.Test;\n}\n\nexport { ServerMode, isServerMode };\n", "/**\n * @remix-run/server-runtime v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { matchRoutes } from 'react-router-dom';\n\n// TODO: export/import from react-router-dom\nfunction matchServerRoutes(routes, pathname) {\n let matches = matchRoutes(routes, pathname);\n if (!matches) return null;\n return matches.map(match => ({\n params: match.params,\n pathname: match.pathname,\n route: match.route\n }));\n}\n\nexport { matchServerRoutes };\n", "/**\n * @remix-run/server-runtime v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n// NOTE: make sure to change the Route in remix-react if you change this\n// NOTE: make sure to change the EntryRoute in remix-react if you change this\nfunction createRoutes(manifest, parentId) {\n return Object.entries(manifest).filter(([, route]) => route.parentId === parentId).map(([id, route]) => ({ ...route,\n children: createRoutes(manifest, id)\n }));\n}\n\nexport { createRoutes };\n", "/**\n * @remix-run/server-runtime v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n// This escapeHtml utility is based on https://github.com/zertosh/htmlescape\n// License: https://github.com/zertosh/htmlescape/blob/0527ca7156a524d256101bb310a9f970f63078ad/LICENSE\n// We've chosen to inline the utility here to reduce the number of npm dependencies we have,\n// slightly decrease the code size compared the original package and make it esm compatible.\nconst ESCAPE_LOOKUP = {\n \"&\": \"\\\\u0026\",\n \">\": \"\\\\u003e\",\n \"<\": \"\\\\u003c\",\n \"\\u2028\": \"\\\\u2028\",\n \"\\u2029\": \"\\\\u2029\"\n};\nconst ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nfunction escapeHtml(html) {\n return html.replace(ESCAPE_REGEX, match => ESCAPE_LOOKUP[match]);\n}\n\nexport { escapeHtml };\n", "/**\n * @remix-run/server-runtime v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { escapeHtml } from './markup.js';\n\nfunction createServerHandoffString(serverHandoff) {\n // Uses faster alternative of jsesc to escape data returned from the loaders.\n // This string is inserted directly into the HTML in the `<Scripts>` element.\n return escapeHtml(JSON.stringify(serverHandoff));\n}\n\nexport { createServerHandoffString };\n", "/**\n * @remix-run/server-runtime v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { DeferredData } from '@remix-run/deferred';\nimport { callRouteAction, callRouteLoader, extractData } from './data.js';\nimport { createEntryRouteModules, createEntryMatches } from './entry.js';\nimport { serializeError } from './errors.js';\nimport { getDocumentHeaders } from './headers.js';\nimport { isServerMode, ServerMode } from './mode.js';\nimport { matchServerRoutes } from './routeMatching.js';\nimport { createRoutes } from './routes.js';\nimport { isRedirectResponse, isCatchResponse, json } from './responses.js';\nimport { createServerHandoffString } from './serverHandoff.js';\n\nconst createRequestHandler = (build, mode) => {\n let routes = createRoutes(build.routes);\n let serverMode = isServerMode(mode) ? mode : ServerMode.Production;\n return async function requestHandler(request, loadContext = {}) {\n let url = new URL(request.url);\n let matches = matchServerRoutes(routes, url.pathname);\n let response;\n\n if (url.searchParams.has(\"_data\")) {\n response = await handleDataRequest({\n request,\n loadContext,\n matches: matches,\n handleDataRequest: build.entry.module.handleDataRequest,\n serverMode\n });\n } else if (matches && !matches[matches.length - 1].route.module.default) {\n response = await handleResourceRequest({\n request,\n loadContext,\n matches,\n serverMode\n });\n } else {\n response = await handleDocumentRequest({\n build,\n loadContext,\n matches,\n request,\n routes,\n serverMode\n });\n }\n\n if (request.method === \"HEAD\") {\n return new Response(null, {\n headers: response.headers,\n status: response.status,\n statusText: response.statusText\n });\n }\n\n return response;\n };\n};\n\nasync function handleDataRequest({\n handleDataRequest,\n loadContext,\n matches,\n request,\n serverMode\n}) {\n if (!isValidRequestMethod(request)) {\n return errorBoundaryError(new Error(`Invalid request method \"${request.method}\"`), 405);\n }\n\n let url = new URL(request.url);\n\n if (!matches) {\n return errorBoundaryError(new Error(`No route matches URL \"${url.pathname}\"`), 404);\n }\n\n let response;\n let match;\n\n try {\n if (isActionRequest(request)) {\n match = getRequestMatch(url, matches);\n response = await callRouteAction({\n loadContext,\n match,\n request: request\n });\n } else {\n let routeId = url.searchParams.get(\"_data\");\n\n if (!routeId) {\n return errorBoundaryError(new Error(`Missing route id in ?_data`), 403);\n }\n\n let tempMatch = matches.find(match => match.route.id === routeId);\n\n if (!tempMatch) {\n return errorBoundaryError(new Error(`Route \"${routeId}\" does not match URL \"${url.pathname}\"`), 403);\n }\n\n match = tempMatch;\n response = await callRouteLoader({\n loadContext,\n match,\n request\n });\n }\n\n if (isRedirectResponse(response)) {\n // We don't have any way to prevent a fetch request from following\n // redirects. So we use the `X-Remix-Redirect` header to indicate the\n // next URL, and then \"follow\" the redirect manually on the client.\n let headers = new Headers(response.headers);\n headers.set(\"X-Remix-Redirect\", headers.get(\"Location\"));\n headers.delete(\"Location\");\n\n if (response.headers.get(\"Set-Cookie\") !== null) {\n headers.set(\"X-Remix-Revalidate\", \"yes\");\n }\n\n return new Response(null, {\n status: 204,\n headers\n });\n }\n\n if (handleDataRequest) {\n response = await handleDataRequest(response, {\n context: loadContext,\n params: match.params,\n request\n });\n }\n\n return response;\n } catch (error) {\n if (serverMode !== ServerMode.Test) {\n console.error(error);\n }\n\n if (serverMode === ServerMode.Development && error instanceof Error) {\n return errorBoundaryError(error, 500);\n }\n\n return errorBoundaryError(new Error(\"Unexpected Server Error\"), 500);\n }\n}\n\nasync function handleDocumentRequest({\n build,\n loadContext,\n matches,\n request,\n routes,\n serverMode\n}) {\n let url = new URL(request.url);\n let appState = {\n trackBoundaries: true,\n trackCatchBoundaries: true,\n catchBoundaryRouteId: null,\n renderBoundaryRouteId: null,\n loaderBoundaryRouteId: null,\n error: undefined,\n catch: undefined\n };\n\n if (!isValidRequestMethod(request)) {\n matches = null;\n appState.trackCatchBoundaries = false;\n appState.catch = {\n data: null,\n status: 405,\n statusText: \"Method Not Allowed\"\n };\n } else if (!matches) {\n appState.trackCatchBoundaries = false;\n appState.catch = {\n data: null,\n status: 404,\n statusText: \"Not Found\"\n };\n }\n\n let actionStatus;\n let actionData;\n let actionMatch;\n let actionResponse;\n\n if (matches && isActionRequest(request)) {\n actionMatch = getRequestMatch(url, matches);\n\n try {\n actionResponse = await callRouteAction({\n loadContext,\n match: actionMatch,\n request: request\n });\n\n if (isRedirectResponse(actionResponse)) {\n return actionResponse;\n }\n\n actionStatus = {\n status: actionResponse.status,\n statusText: actionResponse.statusText\n };\n\n if (isCatchResponse(actionResponse)) {\n appState.catchBoundaryRouteId = getDeepestRouteIdWithBoundary(matches, \"CatchBoundary\");\n appState.trackCatchBoundaries = false;\n appState.catch = { ...actionStatus,\n data: await extractData(actionResponse, request.signal || new AbortController().signal, true)\n };\n } else {\n actionData = {\n [actionMatch.route.id]: await extractData(actionResponse, request.signal || new AbortController().signal, true)\n };\n }\n } catch (error) {\n appState.loaderBoundaryRouteId = getDeepestRouteIdWithBoundary(matches, \"ErrorBoundary\");\n appState.trackBoundaries = false;\n appState.error = await serializeError(error);\n\n if (serverMode !== ServerMode.Test) {\n console.error(`There was an error running the action for route ${actionMatch.route.id}`);\n }\n }\n }\n\n let routeModules = createEntryRouteModules(build.routes);\n let matchesToLoad = matches || []; // get rid of the action, we don't want to call it's loader either\n // because we'll be rendering the error/catch boundary, if you can get\n // access to the loader data in the error/catch boundary then how the heck\n // is it supposed to deal with thrown responses and/or errors in the loader?\n\n if (appState.catch) {\n matchesToLoad = getMatchesUpToDeepestBoundary(matchesToLoad, \"CatchBoundary\").slice(0, -1);\n } else if (appState.error) {\n matchesToLoad = getMatchesUpToDeepestBoundary(matchesToLoad, \"ErrorBoundary\").slice(0, -1);\n }\n\n let loaderRequest = new Request(request.url, {\n body: null,\n headers: request.headers,\n method: request.method,\n redirect: request.redirect,\n signal: request.signal\n });\n let routeLoaderResults = await Promise.allSettled(matchesToLoad.map(match => match.route.module.loader ? callRouteLoader({\n loadContext,\n match,\n request: loaderRequest\n }) : Promise.resolve(undefined))); // Store the state of the action. We will use this to determine later\n // what catch or error boundary should be rendered under cases where\n // actions don't throw but loaders do, actions throw and parent loaders\n // also throw, etc.\n\n let actionCatch = appState.catch;\n let actionError = appState.error;\n let actionCatchBoundaryRouteId = appState.catchBoundaryRouteId;\n let actionLoaderBoundaryRouteId = appState.loaderBoundaryRouteId; // Reset the app error and catch state to propagate the loader states\n // from the results into the app state.\n\n appState.catch = undefined;\n appState.error = undefined;\n let routeLoaderResponses = {};\n let loaderStatusCodes = [];\n let routeData = {};\n\n for (let index = 0; index < matchesToLoad.length; index++) {\n let match = matchesToLoad[index];\n let result = routeLoaderResults[index];\n let error = result.status === \"rejected\" ? result.reason : undefined;\n let response = result.status === \"fulfilled\" ? result.value : undefined;\n let isRedirect = response ? isRedirectResponse(response) : false;\n let isCatch = response ? isCatchResponse(response) : false; // If a parent loader has already caught or error'd, bail because\n // we don't need any more child data.\n\n if (appState.catch || appState.error) {\n break;\n } // If there is a response and it's a redirect, do it unless there\n // is an action error or catch state, those action boundary states\n // take precedence over loader sates, this means if a loader redirects\n // after an action catches or errors we won't follow it, and instead\n // render the boundary caused by the action.\n\n\n if (!actionCatch && !actionError && response && isRedirect) {\n return response;\n } // Track the boundary ID's for the loaders\n\n\n if (match.route.module.CatchBoundary) {\n appState.catchBoundaryRouteId = match.route.id;\n }\n\n if (match.route.module.ErrorBoundary) {\n appState.loaderBoundaryRouteId = match.route.id;\n }\n\n if (error) {\n loaderStatusCodes.push(500);\n appState.trackBoundaries = false;\n appState.error = await serializeError(error);\n\n if (serverMode !== ServerMode.Test) {\n console.error(`There was an error running the data loader for route ${match.route.id}`);\n }\n\n break;\n } else if (response) {\n routeLoaderResponses[match.route.id] = response;\n loaderStatusCodes.push(response.status);\n\n if (isCatch) {\n // If it's a catch response, store it in app state, and bail\n appState.trackCatchBoundaries = false;\n appState.catch = {\n data: await extractData(response, request.signal || new AbortController().signal, true),\n status: response.status,\n statusText: response.statusText\n };\n break;\n } else {\n // Extract and store the loader data\n routeData[match.route.id] = await extractData(response, request.signal || new AbortController().signal);\n }\n }\n } // If there was not a loader catch or error state triggered reset the\n // boundaries as they are probably deeper in the tree if the action\n // initially triggered a boundary as that match would not exist in the\n // matches to load.\n\n\n if (!appState.catch) {\n appState.catchBoundaryRouteId = actionCatchBoundaryRouteId;\n }\n\n if (!appState.error) {\n appState.loaderBoundaryRouteId = actionLoaderBoundaryRouteId;\n } // If there was an action error or catch, we will reset the state to the\n // initial values, otherwise we will use whatever came out of the loaders.\n\n\n appState.catch = actionCatch || appState.catch;\n appState.error = actionError || appState.error;\n let renderableMatches = getRenderableMatches(matches, appState);\n\n if (!renderableMatches) {\n renderableMatches = [];\n let root = routes[0];\n\n if (root !== null && root !== void 0 && root.module.CatchBoundary) {\n appState.catchBoundaryRouteId = \"root\";\n renderableMatches.push({\n params: {},\n pathname: \"\",\n route: routes[0]\n });\n }\n } // Handle responses with a non-200 status code. The first loader with a\n // non-200 status code determines the status code for the whole response.\n\n\n let notOkResponse = actionStatus && actionStatus.status !== 200 ? actionStatus.status : loaderStatusCodes.find(status => status !== 200);\n let responseStatusCode = appState.error ? 500 : typeof notOkResponse === \"number\" ? notOkResponse : appState.catch ? appState.catch.status : 200;\n let responseHeaders = getDocumentHeaders(build, renderableMatches, routeLoaderResponses, actionResponse);\n let entryMatches = createEntryMatches(renderableMatches, build.assets.routes);\n let [serializableRouteData, contextRouteData, deferredLoaderData] = prepareRouteData(routeData);\n let serverHandoff = {\n actionData,\n appState: appState,\n matches: entryMatches,\n routeData: serializableRouteData,\n deferredLoaderData\n };\n let entryContext = { ...serverHandoff,\n routeData: contextRouteData,\n manifest: build.assets,\n routeModules,\n serverHandoffString: createServerHandoffString(serverHandoff)\n };\n let handleDocumentRequest = build.entry.module.default;\n\n try {\n return await handleDocumentRequest(request, responseStatusCode, responseHeaders, entryContext);\n } catch (error) {\n responseStatusCode = 500; // Go again, this time with the componentDidCatch emulation. As it rendered\n // last time we mutated `componentDidCatch.routeId` for the last rendered\n // route, now we know where to render the error boundary (feels a little\n // hacky but that's how hooks work). This tells the emulator to stop\n // tracking the `routeId` as we render because we already have an error to\n // render.\n\n appState.trackBoundaries = false;\n appState.error = await serializeError(error);\n entryContext.serverHandoffString = createServerHandoffString(serverHandoff);\n\n try {\n return await handleDocumentRequest(request, responseStatusCode, responseHeaders, entryContext);\n } catch (error) {\n if (serverMode !== ServerMode.Test) {\n console.error(error);\n }\n\n let message = \"Unexpected Server Error\";\n\n if (serverMode === ServerMode.Development) {\n message += `\\n\\n${String(error)}`;\n } // Good grief folks, get your act together \uD83D\uDE02!\n\n\n return new Response(message, {\n status: 500,\n headers: {\n \"Content-Type\": \"text/plain\"\n }\n });\n }\n }\n}\n\nfunction prepareRouteData(routeData) {\n let serializableData = {};\n let contextData = {};\n let deferredLoaderData;\n\n for (let [routeId, data] of Object.entries(routeData)) {\n if (!data || typeof data !== \"object\" || !(data instanceof DeferredData)) {\n serializableData[routeId] = data;\n contextData[routeId] = data;\n continue;\n }\n\n deferredLoaderData = deferredLoaderData || {};\n deferredLoaderData[routeId] = data.deferredKeys;\n serializableData[routeId] = data.criticalData;\n contextData[routeId] = data.data;\n }\n\n return [serializableData, contextData, deferredLoaderData];\n}\n\nasync function handleResourceRequest({\n loadContext,\n matches,\n request,\n serverMode\n}) {\n let match = matches.slice(-1)[0];\n\n try {\n if (isActionRequest(request)) {\n return await callRouteAction({\n match,\n loadContext,\n request\n });\n } else {\n return await callRouteLoader({\n match,\n loadContext,\n request\n });\n }\n } catch (error) {\n if (serverMode !== ServerMode.Test) {\n console.error(error);\n }\n\n let message = \"Unexpected Server Error\";\n\n if (serverMode === ServerMode.Development) {\n message += `\\n\\n${String(error)}`;\n } // Good grief folks, get your act together \uD83D\uDE02!\n\n\n return new Response(message, {\n status: 500,\n headers: {\n \"Content-Type\": \"text/plain\"\n }\n });\n }\n}\n\nconst validActionMethods = new Set([\"POST\", \"PUT\", \"PATCH\", \"DELETE\"]);\n\nfunction isActionRequest({\n method\n}) {\n return validActionMethods.has(method.toUpperCase());\n}\n\nconst validRequestMethods = new Set([\"GET\", \"HEAD\", ...validActionMethods]);\n\nfunction isValidRequestMethod({\n method\n}) {\n return validRequestMethods.has(method.toUpperCase());\n}\n\nasync function errorBoundaryError(error, status) {\n return json(await serializeError(error), {\n status,\n headers: {\n \"X-Remix-Error\": \"yes\"\n }\n });\n}\n\nfunction isIndexRequestUrl(url) {\n // only use bare `?index` params without a value\n // \u2705 /foo?index\n // \u2705 /foo?index&index=123\n // \u2705 /foo?index=123&index\n // \u274C /foo?index=123\n return url.searchParams.getAll(\"index\").some(param => param === \"\");\n}\n\nfunction getRequestMatch(url, matches) {\n let match = matches.slice(-1)[0];\n\n if (!isIndexRequestUrl(url) && match.route.id.endsWith(\"/index\")) {\n return matches.slice(-2)[0];\n }\n\n return match;\n}\n\nfunction getDeepestRouteIdWithBoundary(matches, key) {\n let matched = getMatchesUpToDeepestBoundary(matches, key).slice(-1)[0];\n return matched ? matched.route.id : null;\n}\n\nfunction getMatchesUpToDeepestBoundary(matches, key) {\n let deepestBoundaryIndex = -1;\n matches.forEach((match, index) => {\n if (match.route.module[key]) {\n deepestBoundaryIndex = index;\n }\n });\n\n if (deepestBoundaryIndex === -1) {\n // no route error boundaries, don't need to call any loaders\n return [];\n }\n\n return matches.slice(0, deepestBoundaryIndex + 1);\n} // This prevents `<Outlet/>` from rendering anything below where the error threw\n// TODO: maybe do this in <RemixErrorBoundary + context>\n\n\nfunction getRenderableMatches(matches, appState) {\n if (!matches) {\n return null;\n } // no error, no worries\n\n\n if (!appState.catch && !appState.error) {\n return matches;\n }\n\n let lastRenderableIndex = -1;\n matches.forEach((match, index) => {\n let id = match.route.id;\n\n if (appState.renderBoundaryRouteId === id || appState.loaderBoundaryRouteId === id || appState.catchBoundaryRouteId === id) {\n lastRenderableIndex = index;\n }\n });\n return matches.slice(0, lastRenderableIndex + 1);\n}\n\nexport { createRequestHandler };\n", "/**\n * @remix-run/server-runtime v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { isCookie } from './cookies.js';\nimport { warnOnce } from './warnings.js';\n\n/**\n * An object of name/value pairs to be used in the session.\n */\n\nfunction flash(name) {\n return `__flash_${name}__`;\n}\n\n/**\n * Creates a new Session object.\n *\n * Note: This function is typically not invoked directly by application code.\n * Instead, use a `SessionStorage` object's `getSession` method.\n *\n * @see https://remix.run/api/remix#createsession\n */\nconst createSession = (initialData = {}, id = \"\") => {\n let map = new Map(Object.entries(initialData));\n return {\n get id() {\n return id;\n },\n\n get data() {\n return Object.fromEntries(map);\n },\n\n has(name) {\n return map.has(name) || map.has(flash(name));\n },\n\n get(name) {\n if (map.has(name)) return map.get(name);\n let flashName = flash(name);\n\n if (map.has(flashName)) {\n let value = map.get(flashName);\n map.delete(flashName);\n return value;\n }\n\n return undefined;\n },\n\n set(name, value) {\n map.set(name, value);\n },\n\n flash(name, value) {\n map.set(flash(name), value);\n },\n\n unset(name) {\n map.delete(name);\n }\n\n };\n};\n\n/**\n * Returns true if an object is a Remix session.\n *\n * @see https://remix.run/api/remix#issession\n */\nconst isSession = object => {\n return object != null && typeof object.id === \"string\" && typeof object.data !== \"undefined\" && typeof object.has === \"function\" && typeof object.get === \"function\" && typeof object.set === \"function\" && typeof object.flash === \"function\" && typeof object.unset === \"function\";\n};\n/**\n * SessionStorage stores session data between HTTP requests and knows how to\n * parse and create cookies.\n *\n * A SessionStorage creates Session objects using a `Cookie` header as input.\n * Then, later it generates the `Set-Cookie` header to be used in the response.\n */\n\n/**\n * Creates a SessionStorage object using a SessionIdStorageStrategy.\n *\n * Note: This is a low-level API that should only be used if none of the\n * existing session storage options meet your requirements.\n *\n * @see https://remix.run/api/remix#createsessionstorage\n */\nconst createSessionStorageFactory = createCookie => ({\n cookie: cookieArg,\n createData,\n readData,\n updateData,\n deleteData\n}) => {\n let cookie = isCookie(cookieArg) ? cookieArg : createCookie((cookieArg === null || cookieArg === void 0 ? void 0 : cookieArg.name) || \"__session\", cookieArg);\n warnOnceAboutSigningSessionCookie(cookie);\n return {\n async getSession(cookieHeader, options) {\n let id = cookieHeader && (await cookie.parse(cookieHeader, options));\n let data = id && (await readData(id));\n return createSession(data || {}, id || \"\");\n },\n\n async commitSession(session, options) {\n let {\n id,\n data\n } = session;\n\n if (id) {\n await updateData(id, data, cookie.expires);\n } else {\n id = await createData(data, cookie.expires);\n }\n\n return cookie.serialize(id, options);\n },\n\n async destroySession(session, options) {\n await deleteData(session.id);\n return cookie.serialize(\"\", { ...options,\n expires: new Date(0)\n });\n }\n\n };\n};\nfunction warnOnceAboutSigningSessionCookie(cookie) {\n warnOnce(cookie.isSigned, `The \"${cookie.name}\" cookie is not signed, but session cookies should be ` + `signed to prevent tampering on the client before they are sent back to the ` + `server. See https://remix.run/api/remix#signing-cookies ` + `for more information.`);\n}\n\nexport { createSession, createSessionStorageFactory, isSession, warnOnceAboutSigningSessionCookie };\n", "/**\n * @remix-run/server-runtime v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { isCookie } from '../cookies.js';\nimport { warnOnceAboutSigningSessionCookie, createSession } from '../sessions.js';\n\n/**\n * Creates and returns a SessionStorage object that stores all session data\n * directly in the session cookie itself.\n *\n * This has the advantage that no database or other backend services are\n * needed, and can help to simplify some load-balanced scenarios. However, it\n * also has the limitation that serialized session data may not exceed the\n * browser's maximum cookie size. Trade-offs!\n *\n * @see https://remix.run/api/remix#createcookiesessionstorage\n */\nconst createCookieSessionStorageFactory = createCookie => ({\n cookie: cookieArg\n} = {}) => {\n let cookie = isCookie(cookieArg) ? cookieArg : createCookie((cookieArg === null || cookieArg === void 0 ? void 0 : cookieArg.name) || \"__session\", cookieArg);\n warnOnceAboutSigningSessionCookie(cookie);\n return {\n async getSession(cookieHeader, options) {\n return createSession(cookieHeader && (await cookie.parse(cookieHeader, options)) || {});\n },\n\n async commitSession(session, options) {\n let serializedCookie = await cookie.serialize(session.data, options);\n\n if (serializedCookie.length > 4096) {\n throw new Error(\"Cookie length will exceed browser maximum. Length: \" + serializedCookie.length);\n }\n\n return serializedCookie;\n },\n\n async destroySession(_session, options) {\n return cookie.serialize(\"\", { ...options,\n expires: new Date(0)\n });\n }\n\n };\n};\n\nexport { createCookieSessionStorageFactory };\n", "/**\n * @remix-run/server-runtime v0.0.0-experimental-e18af792a\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n/**\n * Creates and returns a simple in-memory SessionStorage object, mostly useful\n * for testing and as a reference implementation.\n *\n * Note: This storage does not scale beyond a single process, so it is not\n * suitable for most production scenarios.\n *\n * @see https://remix.run/api/remix#creatememorysessionstorage\n */\nconst createMemorySessionStorageFactory = createSessionStorage => ({\n cookie\n} = {}) => {\n let uniqueId = 0;\n let map = new Map();\n return createSessionStorage({\n cookie,\n\n async createData(data, expires) {\n let id = (++uniqueId).toString();\n map.set(id, {\n data,\n expires\n });\n return id;\n },\n\n async readData(id) {\n if (map.has(id)) {\n let {\n data,\n expires\n } = map.get(id);\n\n if (!expires || expires > new Date()) {\n return data;\n } // Remove expired session data.\n\n\n if (expires) map.delete(id);\n }\n\n return null;\n },\n\n async updateData(id, data, expires) {\n map.set(id, {\n data,\n expires\n });\n },\n\n async deleteData(id) {\n map.delete(id);\n }\n\n });\n};\n\nexport { createMemorySessionStorageFactory };\n", "interface LayoutProps {\n children?: React.ReactNode;\n title?: string;\n description?: string | null;\n}\n\nexport function Layout({children, title, description}: LayoutProps) {\n return (\n <div className=\"Layout\">\n <h1>{title}</h1>\n <h2>{description}</h2>\n {children}\n </div>\n );\n}\n", "export default function Index() {\n return (\n <p>\n Edit this route in <em>app/routes/index.tsx</em>.\n </p>\n );\n}\n", "export default {'version':'7f090344','entry':{'module':'/build/entry.client-AX7FWGNS.js','imports':['/build/_shared/chunk-P5MXKSMH.js','/build/_shared/chunk-UFW4O55J.js']},'routes':{'root':{'id':'root','parentId':undefined,'path':'','index':undefined,'caseSensitive':undefined,'module':'/build/root-IVDOAS2B.js','imports':undefined,'hasAction':false,'hasLoader':true,'hasCatchBoundary':false,'hasErrorBoundary':false},'routes/index':{'id':'routes/index','parentId':'root','path':undefined,'index':true,'caseSensitive':undefined,'module':'/build/routes/index-TUNWZ4RV.js','imports':undefined,'hasAction':false,'hasLoader':false,'hasCatchBoundary':false,'hasErrorBoundary':false}},'url':'/build/manifest-7F090344.js'};", "export const SFAPI_VERSION = '2022-10';\n", "import {SFAPI_VERSION} from './storefront-api-constants.js';\n\n/**\n * The `createStorefrontClient()` function creates helpers that enable you to quickly query the Shopify Storefront API.\n *\n * When used on the server, it is recommended to use the `privateStorefrontToken` prop. When used on the client, it is recommended to use the `publicStorefrontToken` prop.\n */\nexport function createStorefrontClient({\n storeDomain,\n privateStorefrontToken,\n publicStorefrontToken,\n storefrontApiVersion,\n contentType,\n}: StorefrontClientProps): StorefrontClientReturn {\n if (storefrontApiVersion !== SFAPI_VERSION) {\n console.warn(\n `StorefrontClient: The Storefront API version that you're using is different than the version this build of Hydrogen-UI is targeting. You may run into unexpected errors if these versions don't match. Received verion: \"${storefrontApiVersion}\"; expected version \"${SFAPI_VERSION}\"`\n );\n }\n\n // only warn if not in a browser environment\n if (__HYDROGEN_DEV__ && !privateStorefrontToken && !globalThis.document) {\n console.warn(\n `StorefrontClient: Using a private storefront token is recommended for server environments. Refer to the authentication https://shopify.dev/api/storefront#authentication documentation for more details. `\n );\n }\n\n // only warn if in a browser environment and you're using the privateStorefrontToken\n if (__HYDROGEN_DEV__ && privateStorefrontToken && globalThis) {\n console.warn(\n `StorefrontClient: You are attempting to use a private token in an environment where it can be easily accessed by anyone. This is a security risk; please use the public token and the 'publicStorefrontToken' prop`\n );\n }\n\n return {\n getShopifyDomain(overrideProps) {\n return `https://${\n overrideProps?.storeDomain ?? storeDomain\n }.myshopify.com`;\n },\n getStorefrontApiUrl(overrideProps) {\n return `https://${\n overrideProps?.storeDomain ?? storeDomain\n }.myshopify.com/api/${\n overrideProps?.storefrontApiVersion ?? storefrontApiVersion\n }/graphql.json`;\n },\n getPrivateTokenHeaders(overrideProps) {\n if (!privateStorefrontToken && !overrideProps?.privateStorefrontToken) {\n throw new Error(\n `StorefrontClient: You did not pass in a 'privateStorefrontToken' while using 'getPrivateTokenHeaders()'`\n );\n }\n\n if (__HYDROGEN_DEV__ && !overrideProps?.buyerIp) {\n console.warn(\n `StorefrontClient: it is recommended to pass in the 'buyerIp' property which improves analytics and data in the admin.`\n );\n }\n\n const finalContentType = overrideProps?.contentType ?? contentType;\n\n return {\n // default to json\n 'content-type':\n finalContentType === 'graphql'\n ? 'application/graphql'\n : 'application/json',\n 'X-SDK-Variant': 'hydrogen-ui',\n 'X-SDK-Variant-Source': 'react',\n 'X-SDK-Version': storefrontApiVersion,\n 'Shopify-Storefront-Private-Token':\n overrideProps?.privateStorefrontToken ?? privateStorefrontToken ?? '',\n ...(overrideProps?.buyerIp\n ? {'Shopify-Storefront-Buyer-IP': overrideProps.buyerIp}\n : {}),\n };\n },\n getPublicTokenHeaders(overrideProps) {\n if (!publicStorefrontToken && !overrideProps?.publicStorefrontToken) {\n throw new Error(\n `StorefrontClient: You did not pass in a 'publicStorefrontToken' while using 'getPublicTokenHeaders()'`\n );\n }\n\n const finalContentType =\n overrideProps?.contentType ?? contentType ?? 'json';\n\n return getPublicTokenHeadersRaw(\n finalContentType,\n storefrontApiVersion,\n overrideProps?.publicStorefrontToken ?? publicStorefrontToken ?? ''\n );\n },\n };\n}\n\nexport function getPublicTokenHeadersRaw(\n contentType: 'graphql' | 'json',\n storefrontApiVersion: string,\n accessToken: string\n) {\n return {\n // default to json\n 'content-type':\n contentType === 'graphql' ? 'application/graphql' : 'application/json',\n 'X-SDK-Variant': 'hydrogen-ui',\n 'X-SDK-Variant-Source': 'react',\n 'X-SDK-Version': storefrontApiVersion,\n 'X-Shopify-Storefront-Access-Token': accessToken,\n };\n}\n\ntype StorefrontClientProps = {\n /** The host name of the domain (eg: `{shop}.myshopify.com`). */\n storeDomain: string;\n /** The Storefront API delegate access token. Refer to the [authentication](https://shopify.dev/api/storefront#authentication) and [delegate access token](https://shopify.dev/apps/auth/oauth/delegate-access-tokens) documentation for more details. */\n privateStorefrontToken?: string;\n /** The Storefront API access token. Refer to the [authentication](https://shopify.dev/api/storefront#authentication) documentation for more details. */\n publicStorefrontToken?: string;\n /** The Storefront API version. This should almost always be the same as the version Hydrogen-UI was built for. Learn more about Shopify [API versioning](https://shopify.dev/api/usage/versioning) for more details. */\n storefrontApiVersion: string;\n /**\n * Customizes which `\"content-type\"` header is added when using `getPrivateTokenHeaders()` and `getPublicTokenHeaders()`. When fetching with a `JSON.stringify()`-ed `body`, use `\"json\"`. When fetching with a `body` that is a plain string, use `\"graphql\"`. Defaults to `\"json\"`\n *\n * Can also be customized on a call-by-call basis by passing in `'contentType'` to both `getPrivateTokenHeaders({...})` and `getPublicTokenHeaders({...})`, for example: `getPublicTokenHeaders({contentType: 'graphql'})`\n */\n contentType?: 'json' | 'graphql';\n};\n\ntype OverrideTokenHeaderProps = Partial<\n Pick<StorefrontClientProps, 'contentType'>\n>;\n\ntype StorefrontClientReturn = {\n /**\n * Creates the fully-qualified URL to your myshopify.com domain.\n *\n * By default, it will use the config you passed in when calling `createStorefrontClient()`. However, you can override the following settings on each invocation of `getShopifyDomain({...})`:\n *\n * - `storeDomain`\n */\n getShopifyDomain: (\n props?: Partial<Pick<StorefrontClientProps, 'storeDomain'>>\n ) => string;\n /**\n * Creates the fully-qualified URL to your store's GraphQL endpoint.\n *\n * By default, it will use the config you passed in when calling `createStorefrontClient()`. However, you can override the following settings on each invocation of `getStorefrontApiUrl({...})`:\n *\n * - `storeDomain`\n * - `storefrontApiVersion`\n */\n getStorefrontApiUrl: (\n props?: Partial<\n Pick<StorefrontClientProps, 'storeDomain' | 'storefrontApiVersion'>\n >\n ) => string;\n /**\n * Returns an object that contains headers that are needed for each query to Storefront API GraphQL endpoint. This method uses the private Server-to-Server token which reduces the chance of throttling but must not be exposed to clients. Server-side calls should prefer using this over `getPublicTokenHeaders()`.\n *\n * By default, it will use the config you passed in when calling `createStorefrontClient()`. However, you can override the following settings on each invocation of `getPrivateTokenHeaders({...})`:\n *\n * - `contentType`\n * - `privateStorefrontToken`\n * - `buyerIp`\n *\n * Note that `contentType` defaults to what you configured in `createStorefrontClient({...})` and defaults to `'json'`, but a specific call may require using `graphql`. When using `JSON.stringify()` on the `body`, use `'json'`; otherwise, use `'graphql'`.\n */\n getPrivateTokenHeaders: (\n props?: OverrideTokenHeaderProps &\n Pick<StorefrontClientProps, 'privateStorefrontToken'> & {\n /**\n * The client's IP address. Passing this to the Storefront API when using a server-to-server token will help improve your store's analytics data.\n */\n buyerIp?: string;\n }\n ) => Record<string, string>;\n /**\n * Returns an object that contains headers that are needed for each query to Storefront API GraphQL endpoint. This method uses the public token which increases the chance of throttling but also can be exposed to clients. Server-side calls should prefer using `getPublicTokenHeaders()`.\n *\n * By default, it will use the config you passed in when calling `createStorefrontClient()`. However, you can override the following settings on each invocation of `getPublicTokenHeaders({...})`:\n *\n * - `contentType`\n * - `publicStorefrontToken`\n *\n * Note that `contentType` defaults to what you configured in `createStorefrontClient({...})` and defaults to `'json'`, but a specific call may require using `graphql`. When using `JSON.stringify()` on the `body`, use `'json'`; otherwise, use `'graphql'`.\n */\n getPublicTokenHeaders: (\n props?: OverrideTokenHeaderProps &\n Pick<StorefrontClientProps, 'publicStorefrontToken'>\n ) => Record<string, string>;\n};\n", "import {\n createStorefrontClient as createStorefrontUtilities,\n type StorefrontApiResponseOk,\n} from '@shopify/hydrogen-react';\nimport type {ExecutionArgs} from 'graphql';\nimport {fetchWithServerCache, checkGraphQLErrors} from './cache/fetch';\nimport {\n STOREFRONT_API_BUYER_IP_HEADER,\n STOREFRONT_REQUEST_GROUP_ID_HEADER,\n} from './constants';\nimport {\n CacheNone,\n CacheLong,\n CacheShort,\n CacheCustom,\n generateCacheControlHeader,\n type CachingStrategy,\n} from './cache/strategies';\nimport {generateUUID} from './utils/uuid';\nimport {parseJSON} from './utils/parse-json';\nimport {\n CountryCode,\n LanguageCode,\n} from '@shopify/hydrogen-react/storefront-api-types';\nimport {warnOnce} from './utils/warning';\n\ntype StorefrontApiResponse<T> = StorefrontApiResponseOk<T>;\n\nexport type StorefrontClient = ReturnType<typeof createStorefrontClient>;\nexport type Storefront = StorefrontClient['storefront'];\n\nexport type CreateStorefrontClientOptions = Parameters<\n typeof createStorefrontUtilities\n>[0] & {\n cache?: Cache;\n buyerIp?: string;\n requestGroupId?: string;\n waitUntil?: ExecutionContext['waitUntil'];\n i18n?: {\n language: LanguageCode;\n country: CountryCode;\n };\n};\n\ntype StorefrontCommonOptions = {\n variables?: ExecutionArgs['variableValues'] & {\n country?: CountryCode;\n language?: LanguageCode;\n };\n headers?: HeadersInit;\n storefrontApiVersion?: string;\n};\n\nexport type StorefrontQueryOptions = StorefrontCommonOptions & {\n query: string;\n mutation?: never;\n cache?: CachingStrategy;\n};\n\nexport type StorefrontMutationOptions = StorefrontCommonOptions & {\n query?: never;\n mutation: string;\n cache?: never;\n};\n\nconst StorefrontApiError = class extends Error {} as ErrorConstructor;\nexport const isStorefrontApiError = (error: any) =>\n error instanceof StorefrontApiError;\n\nconst isQueryRE = /(^|}\\s)query[\\s({]/im;\nconst isMutationRE = /(^|}\\s)mutation[\\s({]/im;\n\nfunction minifyQuery(string: string) {\n return string\n .replace(/\\s*#.*$/gm, '') // Remove GQL comments\n .replace(/\\s+/gm, ' ') // Minify spaces\n .trim();\n}\n\nexport function createStorefrontClient({\n cache,\n waitUntil,\n buyerIp,\n i18n,\n requestGroupId = generateUUID(),\n ...clientOptions\n}: CreateStorefrontClientOptions) {\n if (!cache) {\n // TODO: should only warn in development\n warnOnce(\n 'Storefront API client created without a cache instance. This may slow down your sub-requests.',\n );\n }\n\n clientOptions.storeDomain = clientOptions.storeDomain.replace(\n '.myshopify.com',\n '',\n );\n\n const {\n getPublicTokenHeaders,\n getPrivateTokenHeaders,\n getStorefrontApiUrl,\n getShopifyDomain,\n } = createStorefrontUtilities(clientOptions);\n\n const getHeaders = clientOptions.privateStorefrontToken\n ? getPrivateTokenHeaders\n : getPublicTokenHeaders;\n\n const defaultHeaders = getHeaders({contentType: 'json'});\n\n defaultHeaders[STOREFRONT_REQUEST_GROUP_ID_HEADER] = requestGroupId;\n if (buyerIp) defaultHeaders[STOREFRONT_API_BUYER_IP_HEADER] = buyerIp;\n\n async function fetchStorefrontApi<T>({\n query,\n mutation,\n variables,\n cache: cacheOptions,\n headers = [],\n storefrontApiVersion,\n }: StorefrontQueryOptions | StorefrontMutationOptions): Promise<T> {\n const userHeaders =\n headers instanceof Headers\n ? Object.fromEntries(headers.entries())\n : Array.isArray(headers)\n ? Object.fromEntries(headers)\n : headers;\n\n query = query ?? mutation;\n\n const queryVariables = {...variables};\n\n if (i18n) {\n if (!variables?.country && /\\$country/.test(query)) {\n queryVariables.country = i18n.country;\n }\n\n if (!variables?.language && /\\$language/.test(query)) {\n queryVariables.language = i18n.language;\n }\n }\n\n const url = getStorefrontApiUrl({storefrontApiVersion});\n const requestInit = {\n method: 'POST',\n headers: {...defaultHeaders, ...userHeaders},\n body: JSON.stringify({\n query,\n variables: queryVariables,\n }),\n };\n\n const [body, response] = await fetchWithServerCache(url, requestInit, {\n cacheInstance: mutation ? undefined : cache,\n cache: cacheOptions || CacheShort(),\n shouldCacheResponse: checkGraphQLErrors,\n waitUntil,\n });\n\n if (!response.ok) {\n /**\n * The Storefront API might return a string error, or a JSON-formatted {error: string}.\n * We try both and conform them to a single {errors} format.\n */\n let errors;\n try {\n errors = parseJSON(body);\n } catch (_e) {\n errors = [{message: body}];\n }\n\n throwError(response, errors);\n }\n\n const {data, errors} = body as StorefrontApiResponse<T>;\n\n if (errors?.length) throwError(response, errors, StorefrontApiError);\n\n return data as T;\n }\n\n return {\n storefront: {\n /**\n * Sends a GraphQL query to the Storefront API.\n *\n * Example:\n *\n * ```js\n * async function loader ({context: {storefront}}) {\n * const data = await storefront.query('query { ... }', {\n * variables: {},\n * cache: storefront.CacheLong()\n * });\n * }\n * ```\n */\n query: <T>(\n query: string,\n payload?: StorefrontCommonOptions & {cache?: CachingStrategy},\n ) => {\n query = minifyQuery(query);\n if (isMutationRE.test(query))\n throw new Error('storefront.query cannot execute mutations');\n\n return fetchStorefrontApi<T>({...payload, query});\n },\n /**\n * Sends a GraphQL mutation to the Storefront API.\n *\n * Example:\n *\n * ```js\n * async function loader ({context: {storefront}}) {\n * await storefront.mutate('mutation { ... }', {\n * variables: {},\n * });\n * }\n * ```\n */\n mutate: <T>(mutation: string, payload?: StorefrontCommonOptions) => {\n mutation = minifyQuery(mutation);\n if (isQueryRE.test(mutation))\n throw new Error('storefront.mutate cannot execute queries');\n\n return fetchStorefrontApi<T>({...payload, mutation});\n },\n cache,\n CacheNone,\n CacheLong,\n CacheShort,\n CacheCustom,\n generateCacheControlHeader,\n getPublicTokenHeaders,\n getPrivateTokenHeaders,\n getShopifyDomain,\n getApiUrl: getStorefrontApiUrl,\n /**\n * Wether it's a GraphQL error returned in the Storefront API response.\n *\n * Example:\n *\n * ```js\n * async function loader ({context: {storefront}}) {\n * try {\n * await storefront.query(...);\n * } catch(error) {\n * if (storefront.isApiError(error)) {\n * // ...\n * }\n *\n * throw error;\n * }\n * }\n * ```\n */\n isApiError: isStorefrontApiError,\n i18n,\n },\n };\n}\n\nfunction throwError<T>(\n response: Response,\n errors: StorefrontApiResponse<T>['errors'],\n ErrorConstructor = Error,\n) {\n const reqId = response.headers.get('x-request-id');\n const reqIdMessage = reqId ? ` - Request ID: ${reqId}` : '';\n\n if (errors) {\n const errorMessages =\n typeof errors === 'string'\n ? errors\n : errors.map((error) => error.message).join('\\n');\n\n throw new ErrorConstructor(errorMessages + reqIdMessage);\n }\n\n throw new ErrorConstructor(\n `API response error: ${response.status}` + reqIdMessage,\n );\n}\n", "type QueryKey = string | readonly unknown[];\n\nexport function hashKey(queryKey: QueryKey): string {\n const rawKeys = Array.isArray(queryKey) ? queryKey : [queryKey];\n let hash = '';\n\n // Keys from `storefront.query` are in the following shape:\n // ['prefix', 'api-endpoint', {body:'query',headers:{}}]\n // Since the API endpoint already contains the shop domain and api version,\n // we can ignore the headers and only use the `body` from the payload.\n for (const key of rawKeys) {\n if (key != null) {\n if (typeof key === 'object') {\n // Queries from useQuery might not have a `body`. In that case,\n // fallback to a safer (but slower) stringify.\n if (!!key.body && typeof key.body === 'string') {\n hash += key.body;\n } else {\n hash += JSON.stringify(key);\n }\n } else {\n hash += key;\n }\n }\n }\n\n return hash;\n}\n", "export interface AllCacheOptions {\n mode?: string;\n maxAge?: number;\n staleWhileRevalidate?: number;\n sMaxAge?: number;\n staleIfError?: number;\n}\n\nexport type CachingStrategy = AllCacheOptions;\n\nexport type NoStoreStrategy = {\n mode: string;\n};\n\nconst PUBLIC = 'public';\nconst PRIVATE = 'private';\nexport const NO_STORE = 'no-store';\n\nconst optionMapping: {\n [key: string]: string;\n} = {\n maxAge: 'max-age',\n staleWhileRevalidate: 'stale-while-revalidate',\n sMaxAge: 's-maxage',\n staleIfError: 'stale-if-error',\n};\n\nexport function generateCacheControlHeader(\n cacheOptions: CachingStrategy,\n): string {\n const cacheControl: string[] = [];\n Object.keys(cacheOptions).forEach((key: string) => {\n if (key === 'mode') {\n cacheControl.push(cacheOptions[key] as string);\n } else if (optionMapping[key]) {\n cacheControl.push(\n `${optionMapping[key]}=${cacheOptions[key as keyof CachingStrategy]}`,\n );\n }\n });\n return cacheControl.join(', ');\n}\n\n/**\n *\n * @public\n */\nexport function CacheNone(): NoStoreStrategy {\n return {\n mode: NO_STORE,\n };\n}\n\nfunction guardExpirableModeType(overrideOptions?: CachingStrategy) {\n if (\n overrideOptions?.mode &&\n overrideOptions?.mode !== PUBLIC &&\n overrideOptions?.mode !== PRIVATE\n ) {\n throw Error(\"'mode' must be either 'public' or 'private'\");\n }\n}\n\n/**\n *\n * @public\n */\nexport function CacheShort(overrideOptions?: CachingStrategy): AllCacheOptions {\n guardExpirableModeType(overrideOptions);\n return {\n mode: PUBLIC,\n maxAge: 1,\n staleWhileRevalidate: 9,\n ...overrideOptions,\n };\n}\n\n/**\n *\n * @public\n */\nexport function CacheLong(overrideOptions?: CachingStrategy): AllCacheOptions {\n guardExpirableModeType(overrideOptions);\n return {\n mode: PUBLIC,\n maxAge: 3600, // 1 hour\n staleWhileRevalidate: 82800, // 23 Hours\n ...overrideOptions,\n };\n}\n\n/**\n *\n * @public\n */\nexport function CacheCustom(overrideOptions: CachingStrategy): AllCacheOptions {\n return overrideOptions as AllCacheOptions;\n}\n", "import type {CachingStrategy} from './strategies';\nimport {CacheShort, generateCacheControlHeader} from './strategies';\n\nfunction logCacheApiStatus(status: string | null, url: string) {\n // // eslint-disable-next-line no-console\n // console.log('\\n' + status, url);\n}\n\nfunction getCacheControlSetting(\n userCacheOptions?: CachingStrategy,\n options?: CachingStrategy,\n): CachingStrategy {\n if (userCacheOptions && options) {\n return {\n ...userCacheOptions,\n ...options,\n };\n } else {\n return userCacheOptions || CacheShort();\n }\n}\n\nfunction generateDefaultCacheControlHeader(\n userCacheOptions?: CachingStrategy,\n): string {\n return generateCacheControlHeader(getCacheControlSetting(userCacheOptions));\n}\n\n/**\n * Get an item from the cache. If a match is found, returns a tuple\n * containing the `JSON.parse` version of the response as well\n * as the response itself so it can be checked for staleness.\n */\nasync function getItem(\n cache: Cache,\n request: Request,\n): Promise<Response | undefined> {\n if (!cache) return;\n\n const response = await cache.match(request);\n if (!response) {\n logCacheApiStatus('MISS', request.url);\n return;\n }\n\n logCacheApiStatus('HIT', request.url);\n\n return response;\n}\n\n/**\n * Put an item into the cache.\n */\nasync function setItem(\n cache: Cache,\n request: Request,\n response: Response,\n userCacheOptions: CachingStrategy,\n) {\n if (!cache) return;\n\n /**\n * We are manually managing staled request by adding this workaround.\n * Why? cache control header support is dependent on hosting platform\n *\n * For example:\n *\n * Cloudflare's Cache API does not support `stale-while-revalidate`.\n * Cloudflare cache control header has a very odd behaviour.\n * Say we have the following cache control header on a request:\n *\n * public, max-age=15, stale-while-revalidate=30\n *\n * When there is a cache.match HIT, the cache control header would become\n *\n * public, max-age=14400, stale-while-revalidate=30\n *\n * == `stale-while-revalidate` workaround ==\n * Update response max-age so that:\n *\n * max-age = max-age + stale-while-revalidate\n *\n * For example:\n *\n * public, max-age=1, stale-while-revalidate=9\n * |\n * V\n * public, max-age=10, stale-while-revalidate=9\n *\n * Store the following information in the response header:\n *\n * cache-put-date - UTC time string of when this request is PUT into cache\n *\n * Note on `cache-put-date`: The `response.headers.get('date')` isn't static. I am\n * not positive what date this is returning but it is never over 500 ms\n * after subtracting from the current timestamp.\n *\n * `isStale` function will use the above information to test for stale-ness of a cached response\n */\n\n const cacheControl = getCacheControlSetting(userCacheOptions);\n\n // The padded cache-control to mimic stale-while-revalidate\n request.headers.set(\n 'cache-control',\n generateDefaultCacheControlHeader(\n getCacheControlSetting(cacheControl, {\n maxAge:\n (cacheControl.maxAge || 0) + (cacheControl.staleWhileRevalidate || 0),\n }),\n ),\n );\n // The cache-control we want to set on response\n const cacheControlString = generateDefaultCacheControlHeader(\n getCacheControlSetting(cacheControl),\n );\n\n // CF will override cache-control, so we need to keep a non-modified real-cache-control\n // cache-control is still necessary for mini-oxygen\n response.headers.set('cache-control', cacheControlString);\n response.headers.set('real-cache-control', cacheControlString);\n response.headers.set('cache-put-date', new Date().toUTCString());\n\n logCacheApiStatus('PUT', request.url);\n await cache.put(request, response);\n}\n\nasync function deleteItem(cache: Cache, request: Request) {\n if (!cache) return;\n\n logCacheApiStatus('DELETE', request.url);\n await cache.delete(request);\n}\n\n/**\n * Manually check the response to see if it's stale.\n */\nfunction isStale(request: Request, response: Response) {\n const responseDate = response.headers.get('cache-put-date');\n const cacheControl = response.headers.get('real-cache-control');\n let responseMaxAge = 0;\n\n if (cacheControl) {\n const maxAgeMatch = cacheControl.match(/max-age=(\\d*)/);\n if (maxAgeMatch && maxAgeMatch.length > 1) {\n responseMaxAge = parseFloat(maxAgeMatch[1]);\n }\n }\n\n if (!responseDate) {\n return false;\n }\n\n const ageInMs =\n new Date().valueOf() - new Date(responseDate as string).valueOf();\n const age = ageInMs / 1000;\n\n const result = age > responseMaxAge;\n\n if (result) {\n logCacheApiStatus('STALE', request.url);\n }\n\n return result;\n}\n\n/**\n *\n * @private\n */\nexport const CacheAPI = {\n get: getItem,\n set: setItem,\n delete: deleteItem,\n generateDefaultCacheControlHeader,\n isStale,\n};\n", "import {CacheAPI} from './api';\nimport {\n CacheShort,\n type CachingStrategy,\n type AllCacheOptions,\n} from './strategies.js';\n\n/**\n * Wrapper Cache functions for sub queries\n */\n\n/**\n * Cache API is weird. We just need a full URL, so we make one up.\n */\nfunction getKeyUrl(key: string) {\n return `https://shopify.dev/?${key}`;\n}\n\nfunction getCacheOption(userCacheOptions?: CachingStrategy): AllCacheOptions {\n return userCacheOptions || CacheShort();\n}\n\nexport function generateSubRequestCacheControlHeader(\n userCacheOptions?: CachingStrategy,\n): string {\n return CacheAPI.generateDefaultCacheControlHeader(\n getCacheOption(userCacheOptions),\n );\n}\n\n/**\n * Get an item from the cache. If a match is found, returns a tuple\n * containing the `JSON.parse` version of the response as well\n * as the response itself so it can be checked for staleness.\n * @private\n */\nexport async function getItemFromCache(\n cache: Cache,\n key: string,\n): Promise<undefined | [any, Response]> {\n if (!cache) return;\n const url = getKeyUrl(key);\n const request = new Request(url);\n\n const response = await CacheAPI.get(cache, request);\n\n if (!response) {\n return;\n }\n\n return [await response.json(), response];\n}\n\n/**\n * Put an item into the cache.\n * @private\n */\nexport async function setItemInCache(\n cache: Cache,\n key: string,\n value: any,\n userCacheOptions?: CachingStrategy,\n) {\n if (!cache) return;\n\n const url = getKeyUrl(key);\n const request = new Request(url);\n const response = new Response(JSON.stringify(value));\n\n await CacheAPI.set(\n cache,\n request,\n response,\n getCacheOption(userCacheOptions),\n );\n}\n\n/**\n *\n * @private\n */\nexport async function deleteItemFromCache(cache: Cache, key: string) {\n if (!cache) return;\n\n const url = getKeyUrl(key);\n const request = new Request(url);\n\n await CacheAPI.delete(cache, request);\n}\n\n/**\n * Manually check the response to see if it's stale.\n * @private\n */\nexport function isStale(key: string, response: Response) {\n return CacheAPI.isStale(new Request(getKeyUrl(key)), response);\n}\n", "import {hashKey} from '../utils/hash.js';\nimport {CacheShort, CachingStrategy} from './strategies';\nimport {getItemFromCache, setItemInCache, isStale} from './sub-request';\n\nexport type FetchCacheOptions = {\n cache?: CachingStrategy;\n cacheInstance?: Cache;\n cacheKey?: string | readonly unknown[];\n shouldCacheResponse?: (body: any, response: Response) => boolean;\n waitUntil?: ExecutionContext['waitUntil'];\n returnType?: 'json' | 'text' | 'arrayBuffer' | 'blob';\n};\n\nfunction serializeResponse(body: any, response: Response) {\n return [\n body,\n {\n status: response.status,\n statusText: response.statusText,\n headers: Array.from(response.headers.entries()),\n },\n ];\n}\n\n// Check if the response body has GraphQL errors\n// https://spec.graphql.org/June2018/#sec-Response-Format\nexport const checkGraphQLErrors = (body: any) => !body?.errors;\n\n// Lock to prevent revalidating the same sub-request\n// in the same isolate. Note that different isolates\n// in the same colo could duplicate the revalidation\n// since this is only an in-memory lock.\n// https://github.com/Shopify/oxygen-platform/issues/625\nconst swrLock = new Set<string>();\n\n/**\n * `fetch` equivalent that stores responses in cache.\n * Useful for calling third-party APIs that need to be cached.\n * @private\n */\nexport async function fetchWithServerCache(\n url: string,\n requestInit: Request | RequestInit,\n {\n cacheInstance,\n cache: cacheOptions,\n cacheKey = [url, requestInit],\n shouldCacheResponse = () => true,\n waitUntil,\n returnType = 'json',\n }: FetchCacheOptions = {},\n): Promise<readonly [any, Response]> {\n if (!cacheOptions && (!requestInit.method || requestInit.method === 'GET')) {\n cacheOptions = CacheShort();\n }\n\n const doFetch = async () => {\n const response = await fetch(url, requestInit);\n let data;\n\n try {\n data = await response[returnType]();\n } catch {\n data = await response.text();\n }\n\n return [data, response] as const;\n };\n\n if (!cacheInstance || !cacheKey || !cacheOptions) return doFetch();\n\n const key = hashKey([\n // '__HYDROGEN_CACHE_ID__', // TODO purgeQueryCacheOnBuild\n ...(typeof cacheKey === 'string' ? [cacheKey] : cacheKey),\n ]);\n\n const cachedItem = await getItemFromCache(cacheInstance, key);\n // console.log('--- Cache', cachedItem ? 'HIT' : 'MISS');\n\n if (cachedItem) {\n const [cachedValue, cacheInfo] = cachedItem;\n\n if (!swrLock.has(key) && isStale(key, cacheInfo)) {\n swrLock.add(key);\n\n // Important: Run revalidation asynchronously.\n const revalidatingPromise = Promise.resolve().then(async () => {\n try {\n const [body, response] = await doFetch();\n\n if (shouldCacheResponse(body, response)) {\n await setItemInCache(\n cacheInstance,\n key,\n serializeResponse(body, response),\n cacheOptions,\n );\n }\n } catch (error: any) {\n if (error.message) {\n error.message = 'SWR in sub-request failed: ' + error.message;\n }\n\n console.error(error);\n } finally {\n swrLock.delete(key);\n }\n });\n\n // Asynchronously wait for it in workers\n waitUntil?.(revalidatingPromise);\n }\n\n const [body, init] = cachedValue;\n return [body, new Response(body, init)];\n }\n\n const [body, response] = await doFetch();\n\n /**\n * Important: Do this async\n */\n if (shouldCacheResponse(body, response)) {\n const setItemInCachePromise = setItemInCache(\n cacheInstance,\n key,\n serializeResponse(body, response),\n cacheOptions,\n );\n\n waitUntil?.(setItemInCachePromise);\n }\n\n return [body, response];\n}\n", "export const STOREFRONT_REQUEST_GROUP_ID_HEADER =\n 'Custom-Storefront-Request-Group-ID';\nexport const STOREFRONT_API_BUYER_IP_HEADER = 'Shopify-Storefront-Buyer-IP';\n", "/*\n * Generate a UUID using crypto and fallback to Math.random if crypto is not available.\n */\nexport function generateUUID() {\n if (typeof crypto !== 'undefined' && !!crypto.randomUUID) {\n return crypto.randomUUID();\n } else {\n return `weak-${Math.random().toString(16).substring(2)}`;\n }\n}\n", "export function parseJSON(json: any) {\n if (String(json).includes('__proto__')) return JSON.parse(json, noproto);\n return JSON.parse(json);\n}\nfunction noproto(k: string, v: string) {\n if (k !== '__proto__') return v;\n}\n", "const warnings = new Set<string>();\nexport const warnOnce = (string: string) => {\n if (!warnings.has(string)) {\n console.warn(string);\n warnings.add(string);\n }\n};\n", "type CacheMatch = {\n body: Uint8Array;\n timestamp: number;\n status: number;\n headers: [string, string][];\n};\n\n/**\n * This is a limited implementation of an in-memory cache.\n * It only supports the `cache-control` header.\n * It does NOT support `age` or `expires` headers.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Cache\n */\nexport class InMemoryCache implements Cache {\n #store: Map<string, CacheMatch>;\n\n constructor() {\n this.#store = new Map();\n }\n\n add(request: RequestInfo): Promise<void> {\n throw new Error('Method not implemented. Use `put` instead.');\n }\n\n addAll(requests: RequestInfo[]): Promise<void> {\n throw new Error('Method not implemented. Use `put` instead.');\n }\n\n matchAll(\n request?: RequestInfo,\n options?: CacheQueryOptions,\n ): Promise<readonly Response[]> {\n throw new Error('Method not implemented. Use `match` instead.');\n }\n\n async put(request: Request, response: Response) {\n if (request.method !== 'GET') {\n throw new TypeError('Cannot cache response to non-GET request.');\n }\n\n if (response.status === 206) {\n throw new TypeError(\n 'Cannot cache response to a range request (206 Partial Content).',\n );\n }\n\n if (response.headers.get('vary')?.includes('*')) {\n throw new TypeError(\"Cannot cache response with 'Vary: *' header.\");\n }\n\n this.#store.set(request.url, {\n body: new Uint8Array(await response.arrayBuffer()),\n status: response.status,\n headers: [...response.headers],\n timestamp: Date.now(),\n });\n }\n\n async match(request: Request) {\n if (request.method !== 'GET') return;\n\n const match = this.#store.get(request.url);\n\n if (!match) {\n return;\n }\n\n const {body, timestamp, ...metadata} = match;\n\n const headers = new Headers(metadata.headers);\n const cacheControl =\n headers.get('cache-control') || headers.get('real-cache-control') || '';\n const maxAge = parseInt(\n cacheControl.match(/max-age=(\\d+)/)?.[1] || '0',\n 10,\n );\n const swr = parseInt(\n cacheControl.match(/stale-while-revalidate=(\\d+)/)?.[1] || '0',\n 10,\n );\n const age = (Date.now() - timestamp) / 1000;\n\n const isMiss = age > maxAge + swr;\n\n if (isMiss) {\n this.#store.delete(request.url);\n return;\n }\n\n const isStale = age > maxAge;\n\n headers.set('cache', isStale ? 'STALE' : 'HIT');\n headers.set('date', new Date(timestamp).toUTCString());\n\n return new Response(body, {\n status: metadata.status ?? 200,\n headers,\n });\n }\n\n async delete(request: Request) {\n if (this.#store.has(request.url)) {\n this.#store.delete(request.url);\n return true;\n }\n return false;\n }\n\n keys(request?: Request) {\n const cacheKeys = [] as Request[];\n\n for (const url of this.#store.keys()) {\n if (!request || request.url === url) {\n cacheKeys.push(new Request(url));\n }\n }\n\n return Promise.resolve(cacheKeys);\n }\n}\n", "export const RESOURCE_TYPES = Object.freeze({\n BLOG: 'BLOG',\n ARTICLE: 'ARTICLE',\n CATALOG: 'CATALOG',\n COLLECTION: 'COLLECTION',\n COLLECTIONS: 'COLLECTIONS',\n FRONT_PAGE: 'FRONT_PAGE',\n PAGE: 'PAGE',\n PRODUCT: 'PRODUCT',\n SEARCH: 'SEARCH',\n POLICIES: 'POLICIES',\n});\n\nexport const REQUIRED_RESOURCES = Object.freeze([\n RESOURCE_TYPES.PRODUCT,\n RESOURCE_TYPES.COLLECTION,\n RESOURCE_TYPES.FRONT_PAGE,\n]);\n", "import {redirect} from '@remix-run/server-runtime';\nimport type {Storefront} from '../storefront';\n\nexport async function notFoundMaybeRedirect(\n request: Request,\n context: {storefront: Storefront},\n): Promise<Response> {\n const {pathname, search} = new URL(request.url);\n const {urlRedirects} = await context.storefront.query<{\n urlRedirects: {\n edges: Array<{node: {target: string}}>;\n };\n }>(REDIRECT_QUERY, {\n variables: {\n url: pathname + search,\n },\n storefrontApiVersion: '2023-01',\n });\n\n if (urlRedirects?.edges?.length) {\n return new Response(null, {\n status: 302,\n headers: {\n location: urlRedirects.edges[0]?.node?.target!,\n },\n });\n } else {\n const redirectPath = new URLSearchParams(search).get('return_to');\n\n if (redirectPath && isLocalPath(redirectPath)) {\n return redirect(redirectPath);\n }\n\n return new Response('Not found', {status: 404});\n }\n}\n\nfunction isLocalPath(url: string) {\n try {\n // We don't want to redirect cross domain,\n // doing so could create fishing vulnerability\n // If `new URL()` succeeds, it's a fully qualified\n // url which is cross domain. If it fails, it's just\n // a path, which will be the current domain.\n new URL(url);\n } catch (e) {\n return true;\n }\n\n return false;\n}\n\nconst REDIRECT_QUERY = `#graphql\n query redirects($url:String) {\n urlRedirects(first:1, query:$url) {\n edges {\n node {\n target\n }\n }\n }\n }\n`;\n", "export async function proxyLiquidRoute(\n request: Request,\n storefrontDomain: string,\n destinationPath: string,\n): Promise<Response> {\n const clientIP = request.headers.get('X-Shopify-Client-IP');\n const clientIPSig = request.headers.get('X-Shopify-Client-IP-Sig');\n\n // @todo - filter out google bot user agents when proxying\n\n const newHost = `${storefrontDomain}.myshopify.com`;\n const host = new URL(request.url).host;\n\n const headers = swapHeaderHostname(request.headers, host, newHost);\n\n if (!clientIP || !clientIPSig) {\n console.warn(\n 'Proxying the online store is only available in Oxygen. This request is likely to be throttled.',\n );\n }\n\n return fetch(\n `https://${newHost}${\n destinationPath.startsWith('/') ? destinationPath : '/' + destinationPath\n }`,\n {headers},\n ).then((resp) => {\n const headers = swapHeaderHostname(resp.headers, newHost, host);\n headers.delete('content-encoding');\n return new Response(resp.body, {headers});\n });\n}\n\nfunction swapHeaderHostname(\n headers: Headers,\n hostname: string,\n newHostname: string,\n) {\n const newHeaders = new Headers();\n\n const headersToFilterOut = ['connection'];\n\n for (const [key, value] of headers.entries()) {\n if (!headersToFilterOut.includes(key)) {\n newHeaders.append(key, value.replaceAll(hostname, newHostname));\n }\n }\n\n return newHeaders;\n}\n", "// Virtual entry point for the app\nimport * as remixBuild from '@remix-run/dev/server-build';\nimport {createStorefrontClient} from '@shopify/hydrogen';\nimport {\n createRequestHandler,\n getBuyerIp,\n createCookieSessionStorage,\n type SessionStorage,\n type Session,\n} from '@shopify/remix-oxygen';\n\n/**\n * A global `process` object is only available during build to access NODE_ENV.\n */\ndeclare const process: {env: {NODE_ENV: string}};\n\n/**\n * Export a fetch handler in module format.\n */\nexport default {\n async fetch(\n request: Request,\n env: Env,\n executionContext: ExecutionContext,\n ): Promise<Response> {\n try {\n /**\n * Open a cache instance in the worker and a custom session instance.\n */\n if (!env?.SESSION_SECRET) {\n throw new Error('SESSION_SECRET environment variable is not set');\n }\n\n const [cache, session] = await Promise.all([\n caches.open('hydrogen'),\n HydrogenSession.init(request, [env.SESSION_SECRET]),\n ]);\n\n /**\n * Create a Remix request handler and pass\n * Hydrogen's Storefront client to the loader context.\n */\n const handleRequest = createRequestHandler({\n build: remixBuild,\n mode: process.env.NODE_ENV,\n getLoadContext() {\n const waitUntil = executionContext.waitUntil.bind(executionContext);\n\n const {storefront} = createStorefrontClient({\n cache,\n waitUntil,\n buyerIp: getBuyerIp(request),\n i18n: {language: 'EN', country: 'US'},\n publicStorefrontToken: env.SHOPIFY_STOREFRONT_API_PUBLIC_TOKEN,\n storeDomain: env.SHOPIFY_STORE_DOMAIN,\n storefrontApiVersion:\n env.SHOPIFY_STOREFRONT_API_VERSION || '2022-10',\n });\n\n return {\n session,\n storefront,\n env,\n };\n },\n });\n\n return await handleRequest(request);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n return new Response('An unexpected error occurred', {status: 500});\n }\n },\n};\n\n/**\n * This is a custom session implementation for your Hydrogen shop.\n * Feel free to customize it to your needs, add helper methods, or\n * swap out the cookie-based implementation with something else!\n */\nclass HydrogenSession {\n constructor(\n private sessionStorage: SessionStorage,\n private session: Session,\n ) {}\n\n static async init(request: Request, secrets: string[]) {\n const storage = createCookieSessionStorage({\n cookie: {\n name: 'session',\n httpOnly: true,\n path: '/',\n sameSite: 'lax',\n secrets,\n },\n });\n\n const session = await storage.getSession(request.headers.get('Cookie'));\n\n return new this(storage, session);\n }\n\n get(key: string) {\n return this.session.get(key);\n }\n\n destroy() {\n return this.sessionStorage.destroySession(this.session);\n }\n\n flash(key: string, value: any) {\n this.session.flash(key, value);\n }\n\n unset(key: string) {\n this.session.unset(key);\n }\n\n set(key: string, value: any) {\n this.session.set(key, value);\n }\n\n commit() {\n return this.sessionStorage.commitSession(this.session);\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["require_react_production_min", "__commonJSMin", "exports", "l", "n", "p", "q", "r", "t", "u", "v", "w", "x", "y", "z", "A", "a", "B", "C", "D", "E", "b", "e", "F", "G", "H", "I", "J", "K", "L", "M", "d", "c", "k", "h", "g", "f", "m", "N", "O", "escape", "P", "Q", "R", "S", "T", "U", "V", "W", "require_react", "__commonJSMin", "exports", "module", "require_react_dom_server_legacy_browser_production_min", "__commonJSMin", "exports", "aa", "l", "a", "b", "c", "p", "fa", "ha", "ia", "ja", "r", "d", "f", "e", "g", "t", "ka", "la", "u", "ma", "na", "v", "oa", "pa", "qa", "w", "ra", "sa", "ta", "x", "y", "ua", "va", "A", "wa", "xa", "ya", "n", "h", "k", "m", "q", "C", "D", "za", "Aa", "Ba", "Ca", "Da", "Ea", "Fa", "B", "Ga", "Ha", "Ia", "Ja", "Ka", "La", "Ma", "Na", "Oa", "Pa", "Qa", "Ra", "Sa", "Ta", "Ua", "Va", "Wa", "Xa", "Ya", "Za", "E", "F", "$a", "ab", "bb", "cb", "G", "db", "eb", "fb", "gb", "H", "hb", "ib", "jb", "kb", "lb", "I", "ob", "J", "K", "L", "M", "N", "O", "P", "Q", "pb", "qb", "rb", "sb", "tb", "ub", "vb", "wb", "R", "xb", "S", "yb", "zb", "T", "Ab", "U", "Bb", "Cb", "V", "W", "Db", "Eb", "X", "Fb", "Gb", "Hb", "Y", "Ib", "Jb", "Kb", "Lb", "z", "Mb", "Z", "Nb", "Ob", "Pb", "Qb", "ba", "ca", "mb", "da", "nb", "ea", "Rb", "Sb", "Tb", "require_react_dom_server_browser_production_min", "__commonJSMin", "exports", "aa", "k", "a", "b", "c", "l", "n", "p", "t", "ba", "ca", "u", "da", "x", "ea", "fa", "ha", "ia", "y", "d", "f", "e", "g", "z", "ja", "ka", "B", "la", "oa", "C", "pa", "qa", "ra", "sa", "ta", "ua", "va", "wa", "xa", "ya", "za", "D", "Aa", "Ba", "Ca", "Da", "Ea", "Fa", "Ga", "Ha", "Ia", "E", "H", "I", "Ja", "J", "K", "Ka", "L", "La", "Ma", "Na", "M", "Oa", "Pa", "Qa", "Ra", "Sa", "r", "h", "m", "q", "v", "A", "F", "Ta", "Ua", "Va", "Wa", "Xa", "Ya", "Za", "$a", "ab", "bb", "cb", "db", "eb", "fb", "gb", "hb", "ib", "jb", "kb", "lb", "mb", "nb", "ob", "pb", "qb", "rb", "sb", "tb", "ub", "vb", "wb", "xb", "yb", "zb", "Ab", "Bb", "Cb", "Db", "Eb", "Gb", "Hb", "Ib", "Jb", "Kb", "Lb", "Mb", "Nb", "Ob", "Pb", "Qb", "Rb", "Sb", "N", "Tb", "Ub", "Vb", "Wb", "Xb", "Yb", "Zb", "$b", "ac", "bc", "cc", "dc", "ec", "fc", "gc", "hc", "ic", "jc", "kc", "lc", "O", "P", "mc", "nc", "oc", "pc", "Q", "qc", "rc", "sc", "tc", "uc", "vc", "wc", "xc", "yc", "zc", "R", "Ac", "Bc", "S", "T", "Cc", "U", "V", "Dc", "W", "Ec", "Fc", "Gc", "Hc", "Ic", "Jc", "Kc", "Lc", "Mc", "Oc", "Nc", "Pc", "Qc", "X", "Rc", "Sc", "Tc", "Uc", "Y", "Vc", "Wc", "Xc", "Z", "Yc", "Zc", "$c", "ad", "bd", "cd", "dd", "ed", "G", "fd", "gd", "hd", "id", "jd", "kd", "ma", "Fb", "na", "ld", "require_server_browser", "__commonJSMin", "exports", "l", "s", "require_react_jsx_runtime_production_min", "__commonJSMin", "exports", "f", "k", "l", "m", "n", "p", "q", "c", "a", "g", "b", "d", "e", "h", "require_jsx_runtime", "__commonJSMin", "exports", "module", "require_cookie", "__commonJSMin", "exports", "parse", "serialize", "decode", "encode", "fieldContentRegExp", "str", "options", "obj", "opt", "pairs", "dec", "pair", "index", "key", "val", "tryDecode", "name", "enc", "value", "maxAge", "sameSite", "require_set_cookie", "__commonJSMin", "exports", "module", "defaultParseOptions", "isNonEmptyString", "str", "parseString", "setCookieValue", "options", "parts", "nameValuePairStr", "parsed", "parseNameValuePair", "name", "value", "e", "cookie", "part", "sides", "key", "nameValueArr", "parse", "input", "sch", "cookies", "splitCookiesString", "cookiesString", "cookiesStrings", "pos", "start", "ch", "lastComma", "nextStart", "cookiesSeparatorFound", "skipWhitespace", "notSpecialChar", "server_build_exports", "__export", "assets_manifest_default", "assetsBuildDirectory", "entry", "publicPath", "routes", "entry_server_exports", "__export", "handleRequest", "Action", "createPath", "_ref", "_ref$pathname", "pathname", "_ref$search", "search", "_ref$hash", "hash", "parsePath", "path", "parsedPath", "hashIndex", "searchIndex", "_extends", "target", "i", "source", "key", "React", "NavigationContext", "React", "LocationContext", "RouteContext", "outlet", "matches", "invariant", "cond", "message", "Error", "matchRoutes", "routes", "locationArg", "basename", "location", "parsePath", "pathname", "stripBasename", "branches", "flattenRoutes", "rankRouteBranches", "matches", "i", "length", "matchRouteBranch", "parentsMeta", "parentPath", "forEach", "route", "index", "meta", "relativePath", "path", "caseSensitive", "childrenIndex", "startsWith", "invariant", "slice", "joinPaths", "routesMeta", "concat", "children", "push", "score", "computeScore", "sort", "a", "b", "compareIndexes", "map", "paramRe", "dynamicSegmentValue", "indexRouteValue", "emptySegmentValue", "staticSegmentValue", "splatPenalty", "isSplat", "s", "segments", "split", "initialScore", "some", "filter", "reduce", "segment", "test", "every", "n", "branch", "matchedParams", "matchedPathname", "end", "remainingPathname", "match", "matchPath", "Object", "assign", "params", "pathnameBase", "normalizePathname", "pattern", "matcher", "paramNames", "compilePath", "replace", "captureGroups", "memo", "paramName", "splatValue", "safelyDecodeURIComponent", "regexpSource", "_", "endsWith", "RegExp", "undefined", "value", "decodeURIComponent", "resolvePath", "to", "fromPathname", "toPathname", "search", "hash", "resolvePathname", "normalizeSearch", "normalizeHash", "relativeSegments", "pop", "join", "resolveTo", "toArg", "routePathnames", "locationPathname", "from", "routePathnameIndex", "toSegments", "shift", "getToPathname", "toLowerCase", "nextChar", "charAt", "paths", "useHref", "useInRouterContext", "navigator", "React", "NavigationContext", "useResolvedPath", "joinedPathname", "endsWithSlash", "createHref", "LocationContext", "useLocation", "useNavigate", "useInRouterContext", "invariant", "basename", "navigator", "React", "NavigationContext", "matches", "RouteContext", "pathname", "locationPathname", "useLocation", "routePathnamesJson", "JSON", "stringify", "map", "match", "pathnameBase", "activeRef", "current", "to", "options", "go", "path", "resolveTo", "parse", "joinPaths", "replace", "push", "state", "OutletContext", "useOutlet", "context", "outlet", "React", "RouteContext", "React.createElement", "OutletContext", "useResolvedPath", "to", "matches", "React", "RouteContext", "pathname", "locationPathname", "useLocation", "routePathnamesJson", "JSON", "stringify", "map", "match", "pathnameBase", "resolveTo", "parse", "useRoutes", "routes", "locationArg", "useInRouterContext", "invariant", "parentMatches", "routeMatch", "length", "parentParams", "params", "parentPathname", "parentPathnameBase", "parentRoute", "route", "locationFromContext", "location", "_parsedLocationArg$pa", "parsedLocationArg", "parsePath", "startsWith", "remainingPathname", "slice", "matchRoutes", "_renderMatches", "Object", "assign", "joinPaths", "reduceRight", "outlet", "index", "React.createElement", "element", "undefined", "concat", "Outlet", "props", "useOutlet", "context", "Router", "_ref3", "basename", "basenameProp", "children", "location", "locationProp", "navigationType", "NavigationType", "Pop", "navigator", "static", "staticProp", "useInRouterContext", "invariant", "normalizePathname", "navigationContext", "React", "parsePath", "pathname", "search", "hash", "state", "key", "trailingPathname", "stripBasename", "React.createElement", "NavigationContext", "LocationContext", "isModifiedEvent", "event", "metaKey", "altKey", "ctrlKey", "shiftKey", "Link", "React", "_ref4", "ref", "onClick", "reloadDocument", "replace", "state", "target", "to", "rest", "_objectWithoutPropertiesLoose", "_excluded", "href", "useHref", "internalOnClick", "useLinkClickHandler", "handleClick", "defaultPrevented", "_extends", "NavLink", "_ref5", "ariaCurrentProp", "caseSensitive", "className", "classNameProp", "end", "style", "styleProp", "children", "_excluded2", "location", "useLocation", "path", "useResolvedPath", "locationPathname", "pathname", "toPathname", "toLowerCase", "isActive", "startsWith", "charAt", "length", "ariaCurrent", "undefined", "filter", "Boolean", "join", "React.createElement", "_temp", "replaceProp", "navigate", "useNavigate", "button", "preventDefault", "createPath", "CONTENT_TYPE", "DEFERRED_VALUE_PLACEHOLDER_PREFIX", "AbortedDeferredError", "DeferredData", "data", "invariant", "reject", "_", "r", "onAbort", "deferredKeys", "acc", "key", "value", "trackedValue", "isTrackedPromise", "promise", "error", "subscriber", "fn", "v", "k", "signal", "aborted", "resolve", "unwrapTrackedPromise", "parseDeferredReadableStream", "stream", "deferredData", "deferredResolvers", "sectionReader", "readStreamSections", "initialSection", "criticalData", "eventKey", "section", "event", "sectionDataStrings", "sectionDataString", "err", "resolver", "createDeferredReadableStream", "encoder", "controller", "unsubscribe", "settledKey", "serializeError", "reader", "buffer", "sections", "closed", "decoder", "readStreamSection", "chunk", "splitSections", "mergeArrays", "s", "arrays", "out", "total", "arr", "offset", "message", "import_react", "RemixErrorBoundary", "React__default", "props", "error", "state", "RemixRootDefaultErrorBoundary", "RemixCatchContext", "useCatch", "RemixCatchBoundary", "catchVal", "Component", "children", "RemixRootDefaultCatchBoundary", "caught", "invariant", "value", "message", "loadRouteModule", "route", "routeModulesCache", "routeModule", "getLinksForMatches", "matches", "routeModules", "manifest", "descriptors", "match", "_module$links", "module", "preloads", "getCurrentPageModulePreloadHrefs", "dedupe", "prefetchStyleLinks", "routeModule", "styleLinks", "descriptor", "isPageLinkDescriptor", "matchingLinks", "link", "prefetchStyleLink", "resolve", "removeLink", "object", "isHtmlLinkDescriptor", "getStylesheetPrefetchLinks", "mod", "loadRouteModule", "getNewMatchesForLinks", "page", "nextMatches", "currentMatches", "location", "mode", "path", "parsePathPatch", "isNew", "index", "matchPathChanged", "_currentMatches$index", "getDataLinkHrefs", "dedupeHrefs", "pathname", "search", "searchParams", "getModuleLinkHrefs", "manifestPatch", "route", "hrefs", "set", "preloadsSet", "deduped", "str", "href", "parsePath", "createHtml", "html", "ESCAPE_LOOKUP", "ESCAPE_REGEX", "escapeHtml", "match", "React", "isCatchResponse", "response", "isErrorResponse", "isRedirectResponse", "fetchData", "url", "routeId", "signal", "submission", "init", "getActionInit", "data", "error", "extractData", "resolveDeferred", "contentType", "deferred", "parseDeferredReadableStream", "encType", "method", "formData", "headers", "body", "key", "value", "invariant", "matchClientRoutes", "routes", "location", "matches", "matchRoutes", "match", "CatchValue", "status", "statusText", "data", "isActionSubmission", "submission", "isLoaderSubmission", "isRedirectLocation", "location", "isLoaderRedirectLocation", "isActionRedirectLocation", "isFetchActionRedirect", "isLoaderSubmissionRedirectLocation", "TransitionRedirect", "setCookie", "IDLE_TRANSITION", "IDLE_FETCHER", "createTransitionManager", "init", "routes", "deferredLoaderData", "pendingNavigationController", "pendingNavigationDeferredControllers", "cancelledDeferredRouteIds", "fetchControllers", "incrementingLoadId", "navigationLoadId", "fetchReloadIds", "fetchRedirectIds", "subscribers", "matches", "matchClientRoutes", "state", "update", "updates", "overrides", "routeId", "isActive", "m", "wasCancelled", "isPending", "acc", "id", "subscriber", "getState", "getFetcher", "key", "setFetcher", "fetcher", "deleteFetcher", "abortFetcher", "send", "event", "action", "isHashChangeOnly", "handleHashChange", "Action", "handleLoad", "handleActionSubmissionNavigation", "handleLoaderSubmissionNavigation", "handleActionRedirect", "handleLoaderSubmissionRedirect", "handleLoaderRedirect", "handleFetchActionRedirect", "handleNotFoundNavigation", "href", "invariant", "match", "getFetcherRequestMatch", "handleActionFetchSubmission", "handleLoaderFetchSubmission", "handleLoaderFetch", "dispose", "abortNormalNavigation", "abortPendingDeferredControllers", "controller", "isIndexRequestUrl", "url", "param", "currentFetcher", "result", "callAction", "isRedirectResult", "locationState", "maybeBailOnError", "maybeBailOnCatch", "loadFetcher", "maybeActionErrorResult", "isErrorResult", "maybeActionCatchResult", "isCatchResult", "loadId", "matchesToLoad", "results", "callLoaders", "redirect", "findRedirect", "error", "errorBoundaryId", "findErrorAndBoundaryId", "catchVal", "catchBoundaryId", "findCatchAndBoundaryId", "doneFetcher", "abortedKeys", "abortStaleFetchLoads", "markFetchersDone", "yeetedNavigation", "yeetStaleNavigationLoad", "loaderData", "monitorDeferred", "makeLoaderData", "transition", "landedId", "keys", "yeetedKeys", "callLoader", "createUrl", "resolveDeferredResult", "findNearestCatchBoundary", "findNearestBoundary", "actionMatches", "leafMatch", "loadPageData", "createHref", "submissionRouteId", "actionResult", "_location$state", "markFetchRedirectsDone", "abortedIds", "doneKeys", "signal", "DeferredData", "subscribe", "actionErrorResult", "actionCatchResult", "filterMatchesToLoad", "params", "value", "isNewRouteInstance", "currentMatch", "_currentMatch$route$p", "_location$state2", "foundProblematicRoute", "isNew", "index", "filterByRouteProps", "prevUrl", "arr", "_location$state3", "loaderCatchResult", "extractCatchData", "res", "boundaryId", "loaderErrorResult", "matchWithError", "nearestBoundaryId", "wrapDeferredPromise", "promise", "wrapped", "wrapDeferredData", "deferred", "finalData", "currentMatches", "shouldBuffer", "newData", "toMonitor", "isDeferredResult", "bufferDeferred", "deferredController", "route", "unsubscribe", "aborted", "settledKey", "isRouteMatched", "isRouteLoading", "createClientRoute", "entryRoute", "routeModulesCache", "Component", "createLoader", "createAction", "createShouldReload", "createClientRoutes", "routeManifest", "parentId", "key", "route", "children", "routeModules", "arg", "module", "invariant", "loadRouteModuleWithBlockingLinks", "routeModule", "loadRouteModule", "prefetchStyleLinks", "url", "signal", "submission", "result", "fetchData", "redirect", "checkRedirect", "isCatchResponse", "CatchValue", "extractData", "response", "isRedirectResponse", "TransitionRedirect", "IS_SSR", "RemixEntryContext", "useRemixEntryContext", "context", "invariant", "RemixEntry", "entryContext", "action", "historyLocation", "_navigator", "staticProp", "manifest", "documentLoaderData", "documentDeferredLoaderData", "documentActionData", "routeModules", "serverHandoffString", "entryComponentDidCatchEmulator", "documentServerAbortDelay", "clientRoutes", "createClientRoutes", "RemixRoute", "clientState", "setClientState", "transitionManager", "createTransitionManager", "subscriber", "state", "navigator", "to", "location", "matches", "loaderData", "actionData", "consumeNextNavigationSubmission", "ssrErrorBeforeRoutesRendered", "deserializeError", "ssrCatchBeforeRoutesRendered", "RemixErrorBoundary", "RemixRootDefaultErrorBoundary", "RemixCatchBoundary", "RemixRootDefaultCatchBoundary", "Router", "Routes", "data", "error", "useRoutes", "RemixRouteContext", "useRemixRouteContext", "DefaultRouteComponent", "id", "useLocation", "routeData", "appState", "Component", "CatchBoundary", "ErrorBoundary", "element", "maybeServerCaught", "maybeServerRenderError", "AwaitRenderStatus", "neverSettledPromise", "usePrefetchBehavior", "prefetch", "theirElementProps", "maybePrefetch", "setMaybePrefetch", "shouldPrefetch", "setShouldPrefetch", "onFocus", "onBlur", "onMouseEnter", "onMouseLeave", "onTouchStart", "setIntent", "cancelIntent", "id", "composeEventHandlers", "NavLink", "to", "props", "forwardedRef", "href", "useHref", "prefetchHandlers", "_extends", "PrefetchPageLinks", "Link", "theirHandler", "ourHandler", "event", "Links", "matches", "routeModules", "manifest", "useRemixEntryContext", "links", "getLinksForMatches", "link", "isPageLinkDescriptor", "imageSrcSet", "React", "page", "dataLinkProps", "clientRoutes", "matchClientRoutes", "PrefetchPageLinksImpl", "usePrefetchedStylesheets", "styleLinks", "setStyleLinks", "interrupted", "getStylesheetPrefetchLinks", "nextMatches", "linkProps", "location", "useLocation", "newMatchesForData", "getNewMatchesForLinks", "newMatchesForAssets", "dataHrefs", "getDataLinkHrefs", "moduleHrefs", "getModuleLinkHrefs", "Meta", "routeData", "meta", "parentsData", "match", "routeId", "data", "params", "routeModule", "routeMeta", "name", "value", "isOpenGraphTag", "content", "isHydrated", "js", "Scripts", "pendingLocation", "deferredLoaderData", "serverHandoffString", "serverAbortDelay", "initialScripts", "contextScript", "deferredKeys", "key", "_routeData$routeId$ke", "racePromise", "routeModulesScript", "index", "createHtml", "invariant", "routePreloads", "route", "preloads", "dedupe", "path", "DeferredHydrationScripts", "scripts", "DeferredHydrationScriptContext", "DeferredHydrationScript", "resolve", "ctx", "promise", "status", "AwaitRenderStatus", "error", "isError", "script", "escapeHtml", "array", "Form", "ref", "FormImpl", "reloadDocument", "replace", "method", "action", "encType", "fetchKey", "onSubmit", "submit", "useSubmitImpl", "formMethod", "formAction", "useFormAction", "submitter", "useRemixRouteContext", "resolvedPath", "useResolvedPath", "search", "hash", "isIndexRoute", "createPath", "defaultMethod", "defaultEncType", "useSubmitImpl", "key", "navigate", "useNavigate", "defaultAction", "useFormAction", "transitionManager", "useRemixEntryContext", "target", "options", "method", "action", "encType", "formData", "isFormElement", "submissionTrigger", "isButtonElement", "isInputElement", "form", "isHtmlElement", "name", "value", "IS_SSR", "protocol", "host", "url", "params", "hasParams", "submission", "setNextNavigationSubmission", "nextNavigationSubmission", "consumeNextNavigationSubmission", "object", "useBeforeUnload", "callback", "useLoaderData", "useRemixRouteContext", "useTransition", "transitionManager", "useRemixEntryContext", "React", "STORAGE_KEY", "positions", "sessionPositions", "ScrollRestoration", "nonce", "useScrollRestoration", "useBeforeUnload", "restoreScroll", "key", "storedY", "error", "hydrated", "location", "useLocation", "transition", "useTransition", "wasSubmissionRef", "y", "el", "React", "RemixServer", "context", "serverAbortDelay", "url", "location", "staticNavigator", "to", "createPath", "delta", "RemixEntry", "Action", "import_server", "import_jsx_runtime", "handleRequest", "request", "responseStatusCode", "responseHeaders", "remixContext", "markup", "RemixServer", "root_exports", "__export", "App", "links", "loader", "meta", "import_cookie", "alreadyWarned", "warnOnce", "condition", "message", "createCookieFactory", "sign", "unsign", "name", "cookieOptions", "secrets", "options", "warnOnceAboutExpiresCookie", "cookieHeader", "parseOptions", "cookies", "decodeCookieValue", "value", "serializeOptions", "encodeCookieValue", "isCookie", "object", "encoded", "encodeData", "secret", "unsignedValue", "decodeData", "myUnescape", "myEscape", "str", "result", "index", "chr", "code", "hex", "length", "part", "expires", "warnOnce", "defer", "data", "init", "responseInit", "headers", "CONTENT_TYPE", "createDeferredReadableStream", "DeferredData", "json", "isResponse", "value", "isDeferredResponse", "response", "contentType", "redirectStatusCodes", "isRedirectResponse", "isCatchResponse", "callRouteAction", "loadContext", "match", "request", "action", "response", "result", "stripDataParam", "stripIndexParam", "error", "isResponse", "isRedirectResponse", "json", "callRouteLoader", "loader", "url", "indexValues", "indexValuesToKeep", "indexValue", "toKeep", "extractData", "signal", "resolveDeferred", "contentType", "isDeferredResponse", "deferred", "parseDeferredReadableStream", "createEntryMatches", "matches", "routes", "match", "createEntryRouteModules", "manifest", "memo", "routeId", "serializeError", "error", "import_set_cookie_parser", "getDocumentHeaders", "build", "matches", "routeLoaderResponses", "actionResponse", "parentHeaders", "match", "index", "routeModule", "routeLoaderResponse", "loaderHeaders", "actionHeaders", "headers", "prependCookies", "childHeaders", "parentSetCookieString", "cookie", "ServerMode", "isServerMode", "value", "matchServerRoutes", "routes", "pathname", "matches", "matchRoutes", "match", "createRoutes", "manifest", "parentId", "route", "id", "ESCAPE_LOOKUP", "ESCAPE_REGEX", "escapeHtml", "html", "match", "createServerHandoffString", "serverHandoff", "escapeHtml", "createRequestHandler", "build", "mode", "routes", "createRoutes", "serverMode", "isServerMode", "ServerMode", "request", "loadContext", "url", "matches", "matchServerRoutes", "response", "handleDataRequest", "handleResourceRequest", "handleDocumentRequest", "isValidRequestMethod", "errorBoundaryError", "match", "isActionRequest", "getRequestMatch", "callRouteAction", "routeId", "tempMatch", "callRouteLoader", "isRedirectResponse", "headers", "error", "appState", "actionStatus", "actionData", "actionMatch", "actionResponse", "isCatchResponse", "getDeepestRouteIdWithBoundary", "extractData", "serializeError", "routeModules", "createEntryRouteModules", "matchesToLoad", "getMatchesUpToDeepestBoundary", "loaderRequest", "routeLoaderResults", "actionCatch", "actionError", "actionCatchBoundaryRouteId", "actionLoaderBoundaryRouteId", "routeLoaderResponses", "loaderStatusCodes", "routeData", "index", "result", "isRedirect", "isCatch", "renderableMatches", "getRenderableMatches", "root", "notOkResponse", "status", "responseStatusCode", "responseHeaders", "getDocumentHeaders", "entryMatches", "createEntryMatches", "serializableRouteData", "contextRouteData", "deferredLoaderData", "prepareRouteData", "serverHandoff", "entryContext", "createServerHandoffString", "message", "serializableData", "contextData", "data", "DeferredData", "validActionMethods", "method", "validRequestMethods", "json", "isIndexRequestUrl", "param", "key", "matched", "deepestBoundaryIndex", "lastRenderableIndex", "id", "flash", "name", "createSession", "initialData", "id", "map", "flashName", "value", "createSessionStorageFactory", "createCookie", "cookieArg", "createData", "readData", "updateData", "deleteData", "cookie", "isCookie", "warnOnceAboutSigningSessionCookie", "cookieHeader", "options", "id", "data", "createSession", "session", "warnOnce", "createCookieSessionStorageFactory", "createCookie", "cookieArg", "cookie", "isCookie", "warnOnceAboutSigningSessionCookie", "cookieHeader", "options", "createSession", "session", "serializedCookie", "_session", "createMemorySessionStorageFactory", "createSessionStorage", "cookie", "uniqueId", "map", "data", "expires", "id", "import_jsx_runtime", "Layout", "children", "title", "description", "import_jsx_runtime", "links", "app_default", "favicon_default", "meta", "data", "loader", "context", "request", "_a", "_b", "cartId", "cart", "layout", "CART_QUERY", "LAYOUT_QUERY", "defer", "App", "useLoaderData", "name", "description", "Meta", "Links", "Layout", "Outlet", "ScrollRestoration", "Scripts", "routes_exports", "__export", "Index", "import_jsx_runtime", "assets_manifest_default", "assetsBuildDirectory", "publicPath", "entry", "entry_server_exports", "routes", "root_exports", "routes_exports", "SFAPI_VERSION", "createStorefrontClient", "storeDomain", "privateStorefrontToken", "publicStorefrontToken", "storefrontApiVersion", "contentType", "SFAPI_VERSION", "overrideProps", "_a", "_b", "_c", "finalContentType", "getPublicTokenHeadersRaw", "_d", "accessToken", "G", "U", "ae", "ie", "k", "S", "b", "F", "l", "L", "_", "E", "D", "ce", "ue", "s", "he", "fe", "c", "h", "w", "H", "le", "Q", "q", "$", "j", "W", "M", "B", "a", "f", "y", "m", "g", "R", "C", "A", "p", "d", "J", "V", "Y", "z", "ge", "K", "X", "te", "de", "me", "ye", "Z", "Ve", "createStorefrontClient", "T", "ne", "oe", "O", "I", "P", "ee", "se", "v", "_e", "_a", "N", "__privateAdd", "__privateSet", "t", "r", "__privateGet", "_b", "n", "o", "i", "u", "x", "Ce", "server_default", "request", "env", "executionContext", "cache", "session", "HydrogenSession", "F", "server_build_exports", "waitUntil", "storefront", "Ve", "H", "error", "sessionStorage", "secrets", "storage", "f", "key", "value"]
7
+ }