home-atom 1.0.1

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 (169) hide show
  1. package/README.md +25 -0
  2. package/bin/home-atom.js +135 -0
  3. package/dist/client/.vite/manifest.json +184 -0
  4. package/dist/client/_next/static/chunks/app-top-nav-Dh0jEt8u.js +1 -0
  5. package/dist/client/_next/static/chunks/chevron-left-Dn3noAqV.js +1 -0
  6. package/dist/client/_next/static/chunks/framework-BQUlGUOV.js +9 -0
  7. package/dist/client/_next/static/chunks/hls-CgexCc5Z.js +40 -0
  8. package/dist/client/_next/static/chunks/house-DQz6VeTk.js +1 -0
  9. package/dist/client/_next/static/chunks/index-hn3AiVww.js +33 -0
  10. package/dist/client/_next/static/chunks/layout-segment-context-DRM8YCgm.js +1 -0
  11. package/dist/client/_next/static/chunks/manage-profiles-modal-Doi6QM4e.js +1 -0
  12. package/dist/client/_next/static/chunks/navigation-errors-C_V42-00.js +1 -0
  13. package/dist/client/_next/static/chunks/netflix-browser-L_Vb9wXK.js +2 -0
  14. package/dist/client/_next/static/chunks/playback-activity-Dug3BRYr.js +1 -0
  15. package/dist/client/_next/static/chunks/playback-activity-track-switcher-CbO6kl8K.js +1 -0
  16. package/dist/client/_next/static/chunks/rolldown-runtime-QTnfLwEv.js +1 -0
  17. package/dist/client/_next/static/chunks/spotify-app-f93K4FG_.js +1 -0
  18. package/dist/client/_next/static/chunks/step-forward-CV8I5pPb.js +1 -0
  19. package/dist/client/_next/static/chunks/storefront-C_nmcuvH.js +1 -0
  20. package/dist/client/_next/static/chunks/streamed-icons-DwsKSgMb.js +1 -0
  21. package/dist/client/_next/static/css/index.BGXy8e6j.css +1 -0
  22. package/dist/client/_next/static/css/layout.AKSLtSR6.css +1 -0
  23. package/dist/client/_next/static/css/layout.D8T68cCD.css +1 -0
  24. package/dist/client/_next/static/css/manage-profiles-modal.BAVyxRRR.css +1 -0
  25. package/dist/client/_next/static/e1ce9af7-d770-43d6-845a-511443f19971/_buildManifest.js +1 -0
  26. package/dist/client/_next/static/e1ce9af7-d770-43d6-845a-511443f19971/_ssgManifest.js +1 -0
  27. package/dist/client/_next/static/media/roboto-cyrillic-ext-wght-normal.BCp_3N7R.woff2 +0 -0
  28. package/dist/client/_next/static/media/roboto-cyrillic-wght-normal.fOt7epNf.woff2 +0 -0
  29. package/dist/client/_next/static/media/roboto-greek-ext-wght-normal.Bgw4czJT.woff2 +0 -0
  30. package/dist/client/_next/static/media/roboto-greek-wght-normal.DlT9XTxE.woff2 +0 -0
  31. package/dist/client/_next/static/media/roboto-latin-ext-wght-normal.DYIxWhlt.woff2 +0 -0
  32. package/dist/client/_next/static/media/roboto-latin-wght-normal.ccAYIvAh.woff2 +0 -0
  33. package/dist/client/_next/static/media/roboto-math-wght-normal.4a3xuzGk.woff2 +0 -0
  34. package/dist/client/_next/static/media/roboto-symbols-wght-normal.B7iHSfaG.woff2 +0 -0
  35. package/dist/client/_next/static/media/roboto-vietnamese-wght-normal._f1XEJpo.woff2 +0 -0
  36. package/dist/client/icons/home.ico +0 -0
  37. package/dist/client/icons/keyboard.ico +0 -0
  38. package/dist/client/icons/netflix.ico +0 -0
  39. package/dist/client/icons/remote-screen.ico +0 -0
  40. package/dist/client/icons/spotify.ico +0 -0
  41. package/dist/client/vinext-client-entry-manifest.json +3 -0
  42. package/dist/server/BUILD_ID +1 -0
  43. package/dist/server/__vite_rsc_assets_manifest.js +162 -0
  44. package/dist/server/_next/static/app-page-cache-DcrtN14Y.js +1 -0
  45. package/dist/server/_next/static/app-page-cache-render-DoCquoNb.js +1 -0
  46. package/dist/server/_next/static/app-prerender-endpoints-rDLH8gfm.js +1 -0
  47. package/dist/server/_next/static/app-route-handler-dispatch-Be2YIqVp.js +1 -0
  48. package/dist/server/_next/static/app-static-generation-BX8cz43B.js +1 -0
  49. package/dist/server/_next/static/app-top-nav-aGPkB57A.js +1 -0
  50. package/dist/server/_next/static/automation-UGP78ei5.js +172 -0
  51. package/dist/server/_next/static/automation-tAN_1u1H.js +118 -0
  52. package/dist/server/_next/static/base-path-Cmiu3HvG.js +1 -0
  53. package/dist/server/_next/static/cache-headers-BQ-QuzWN.js +1 -0
  54. package/dist/server/_next/static/catalog-BS93IoWO.js +1 -0
  55. package/dist/server/_next/static/css/index.BGXy8e6j.css +1 -0
  56. package/dist/server/_next/static/css/layout.AKSLtSR6.css +1 -0
  57. package/dist/server/_next/static/css/layout.D8T68cCD.css +1 -0
  58. package/dist/server/_next/static/database-BNnYfHmT.js +114 -0
  59. package/dist/server/_next/static/db-BE1J0NNS.js +98 -0
  60. package/dist/server/_next/static/downloader-DgnjNL5T.js +21 -0
  61. package/dist/server/_next/static/framework~index-B2E_Di_-.js +18 -0
  62. package/dist/server/_next/static/framework~index~layout~layout~page~page~page~layout~page~app-page-cache-render~app-page-cac~nvd6h53m-ydvR7YSg.js +1 -0
  63. package/dist/server/_next/static/http-B2HyuWoI.js +1 -0
  64. package/dist/server/_next/static/input-platform-C0756QEt.js +1 -0
  65. package/dist/server/_next/static/instrumentation-BV3gg-L-.js +1 -0
  66. package/dist/server/_next/static/isr-decision-D1zHgPSI.js +1 -0
  67. package/dist/server/_next/static/layout-ClEWbCcj.js +1 -0
  68. package/dist/server/_next/static/layout-Ds3pFa6r.js +1 -0
  69. package/dist/server/_next/static/media/roboto-cyrillic-ext-wght-normal.BCp_3N7R.woff2 +0 -0
  70. package/dist/server/_next/static/media/roboto-cyrillic-wght-normal.fOt7epNf.woff2 +0 -0
  71. package/dist/server/_next/static/media/roboto-greek-ext-wght-normal.Bgw4czJT.woff2 +0 -0
  72. package/dist/server/_next/static/media/roboto-greek-wght-normal.DlT9XTxE.woff2 +0 -0
  73. package/dist/server/_next/static/media/roboto-latin-ext-wght-normal.DYIxWhlt.woff2 +0 -0
  74. package/dist/server/_next/static/media/roboto-latin-wght-normal.ccAYIvAh.woff2 +0 -0
  75. package/dist/server/_next/static/media/roboto-math-wght-normal.4a3xuzGk.woff2 +0 -0
  76. package/dist/server/_next/static/media/roboto-symbols-wght-normal.B7iHSfaG.woff2 +0 -0
  77. package/dist/server/_next/static/media/roboto-vietnamese-wght-normal._f1XEJpo.woff2 +0 -0
  78. package/dist/server/_next/static/netflix-page-BRbORN1F.js +1 -0
  79. package/dist/server/_next/static/page-C457kN_n.js +1 -0
  80. package/dist/server/_next/static/page-Cs-erYTy.js +1 -0
  81. package/dist/server/_next/static/page-DlBGATQp.js +1 -0
  82. package/dist/server/_next/static/page-DlRXyzSQ.js +1 -0
  83. package/dist/server/_next/static/providers-B3YELr_F.js +108 -0
  84. package/dist/server/_next/static/providers-CMBIwNGs.js +1 -0
  85. package/dist/server/_next/static/request-context-C1ZJzkex.js +1 -0
  86. package/dist/server/_next/static/request-profile-B1yGQ0l6.js +1 -0
  87. package/dist/server/_next/static/rolldown-runtime-DaDcL9Zw.js +1 -0
  88. package/dist/server/_next/static/route-96DdgJBs.js +1 -0
  89. package/dist/server/_next/static/route-B0WNLJZp.js +1 -0
  90. package/dist/server/_next/static/route-BBmE0xf12.js +1 -0
  91. package/dist/server/_next/static/route-BPcAdbz_.js +1 -0
  92. package/dist/server/_next/static/route-BWk9YK7r.js +1 -0
  93. package/dist/server/_next/static/route-BdG5ojMj2.js +1 -0
  94. package/dist/server/_next/static/route-BovNctFc.js +1 -0
  95. package/dist/server/_next/static/route-C2LuSjoh.js +1 -0
  96. package/dist/server/_next/static/route-C74RA7va.js +1 -0
  97. package/dist/server/_next/static/route-CCUsQ7AG.js +1 -0
  98. package/dist/server/_next/static/route-CHJzaQu2.js +73 -0
  99. package/dist/server/_next/static/route-CN6VdJwN.js +1 -0
  100. package/dist/server/_next/static/route-CNNiXZoM2.js +1 -0
  101. package/dist/server/_next/static/route-CVPPmUto.js +1 -0
  102. package/dist/server/_next/static/route-CeVsDcbj2.js +1 -0
  103. package/dist/server/_next/static/route-Cim7D4XQ.js +1 -0
  104. package/dist/server/_next/static/route-CjUCKwSj2.js +1 -0
  105. package/dist/server/_next/static/route-CkH7Cg-p.js +1 -0
  106. package/dist/server/_next/static/route-Cn40NftM.js +1 -0
  107. package/dist/server/_next/static/route-DAyF4BHS.js +1 -0
  108. package/dist/server/_next/static/route-DWAMZHLa.js +1 -0
  109. package/dist/server/_next/static/route-DXTJyFWD.js +1 -0
  110. package/dist/server/_next/static/route-D_G2SOlz.js +1 -0
  111. package/dist/server/_next/static/route-Dbs39TkC.js +1 -0
  112. package/dist/server/_next/static/route-DiT9UYUd.js +1 -0
  113. package/dist/server/_next/static/route-DslPFTAK.js +1 -0
  114. package/dist/server/_next/static/route-UWQN8uYr.js +1 -0
  115. package/dist/server/_next/static/route-ipFkK3iA.js +1 -0
  116. package/dist/server/_next/static/route-jMq6H_yh.js +1 -0
  117. package/dist/server/_next/static/route-mzLdjDCs2.js +1 -0
  118. package/dist/server/_next/static/route-vD15s2A8.js +1 -0
  119. package/dist/server/_next/static/route-xtz48fti.js +1 -0
  120. package/dist/server/_next/static/route-zazqen-A2.js +1 -0
  121. package/dist/server/_next/static/seed-cache-oCd9Lfdw.js +1 -0
  122. package/dist/server/_next/static/server-CS40XqUP.js +1 -0
  123. package/dist/server/_next/static/storage-D1zF0J_t.js +288 -0
  124. package/dist/server/_next/static/streamer-B1PRR-dj.js +2 -0
  125. package/dist/server/_next/static/subtitles-DYBlMnha.js +2 -0
  126. package/dist/server/_next/static/title-progress-CQBrSxvN.js +1 -0
  127. package/dist/server/_next/static/unified-request-context-CgIMz2dD.js +1 -0
  128. package/dist/server/index.js +17 -0
  129. package/dist/server/prerendered-routes/404.html +2 -0
  130. package/dist/server/prerendered-routes/index.html +2 -0
  131. package/dist/server/prerendered-routes/index.rsc +13 -0
  132. package/dist/server/ssr/__vite_rsc_assets_manifest.js +162 -0
  133. package/dist/server/ssr/_next/static/app-elements-Psr6bSdJ.js +1 -0
  134. package/dist/server/ssr/_next/static/app-prefetch-fetch-queue-Dm_lGOGz.js +1 -0
  135. package/dist/server/ssr/_next/static/app-router-context-QPmikWPX.js +1 -0
  136. package/dist/server/ssr/_next/static/app-router-scroll-C0MNOLz-.js +1 -0
  137. package/dist/server/ssr/_next/static/app-top-nav-a5vUAoEs.js +1 -0
  138. package/dist/server/ssr/_next/static/base-path-DtcGyvwb.js +1 -0
  139. package/dist/server/ssr/_next/static/chevron-left-CkBJG8E2.js +1 -0
  140. package/dist/server/ssr/_next/static/css/refresh-cw.BAVyxRRR.css +1 -0
  141. package/dist/server/ssr/_next/static/default-global-error-B62cHCkh.js +31 -0
  142. package/dist/server/ssr/_next/static/error-boundary-C28whqLB.js +1 -0
  143. package/dist/server/ssr/_next/static/hls-CgexCc5Z.js +40 -0
  144. package/dist/server/ssr/_next/static/house-l1u9dUbj.js +1 -0
  145. package/dist/server/ssr/_next/static/layout-segment-context-DK0O-NeY.js +1 -0
  146. package/dist/server/ssr/_next/static/minimize-C9JLgte-.js +1 -0
  147. package/dist/server/ssr/_next/static/navigation-BCDRWdBm.js +1 -0
  148. package/dist/server/ssr/_next/static/navigation-context-state-BnWorqxb.js +1 -0
  149. package/dist/server/ssr/_next/static/navigation-errors-BRIEcp79.js +1 -0
  150. package/dist/server/ssr/_next/static/navigation-server-CCLiCOcy.js +1 -0
  151. package/dist/server/ssr/_next/static/netflix-browser-CMAehdwi.js +2 -0
  152. package/dist/server/ssr/_next/static/pin-BQre-tQY.js +1 -0
  153. package/dist/server/ssr/_next/static/playback-activity-D5TYX2Ae.js +1 -0
  154. package/dist/server/ssr/_next/static/refresh-cw-CWdWHjqY.js +1 -0
  155. package/dist/server/ssr/_next/static/rolldown-runtime-DSjMdhoD.js +1 -0
  156. package/dist/server/ssr/_next/static/slot-CE_M6qTT.js +1 -0
  157. package/dist/server/ssr/_next/static/spotify-app-CE-RaTjZ.js +1 -0
  158. package/dist/server/ssr/_next/static/storefront-C5NNzPMa.js +1 -0
  159. package/dist/server/ssr/_next/static/streamed-icons-D2p1hUS_.js +1 -0
  160. package/dist/server/ssr/_next/static/url-safety-CnwxMXYX.js +1 -0
  161. package/dist/server/ssr/index.js +3 -0
  162. package/dist/server/ssr/vinext-client-assets.js +1 -0
  163. package/dist/server/ssr/vinext-server.json +1 -0
  164. package/dist/server/vinext-client-assets.js +1 -0
  165. package/dist/server/vinext-externals.json +5 -0
  166. package/dist/server/vinext-prerender-paths.json +7 -0
  167. package/dist/server/vinext-prerender.json +219 -0
  168. package/dist/server/vinext-server.json +1 -0
  169. package/package.json +66 -0
@@ -0,0 +1,172 @@
1
+ import{n as e,t}from"./input-platform-C0756QEt.js";import{spawn as n}from"node:child_process";import{createInterface as r}from"node:readline";var i=[`ObjC.import("Foundation");`,`ObjC.import("AppKit");`,`ObjC.import("CoreGraphics");`,`function __sendTrackpadResult(result) {`,`const message = $(result ? "true\\n" : "false\\n").dataUsingEncoding($.NSUTF8StringEncoding);`,`$.NSFileHandle.fileHandleWithStandardOutput.writeData(message);`,`}`,`let __trackpadLeftDown = false;`,`function __runTrackpadAction(action, dx, dy) {`,`try {`,`if (action === "warmup") return true;`,`if (action === "scroll") {`,`const event = $.CGEventCreateScrollWheelEvent(null, $.kCGScrollEventUnitPixel, 2, Math.round(-dy), Math.round(dx));`,`$.CGEventPost($.kCGHIDEventTap, event);`,`return true;`,`}`,`const currentEvent = $.CGEventCreate(null);`,`const currentPoint = $.CGEventGetLocation(currentEvent);`,`const point = { x: Number(currentPoint.x), y: Number(currentPoint.y) };`,`if (action === "move" || action === "moveTo") {`,`if (action === "moveTo") {`,`point.x = dx;`,`point.y = dy;`,`} else {`,`point.x += dx;`,`point.y += dy;`,`}`,`const moveType = __trackpadLeftDown ? $.kCGEventLeftMouseDragged : $.kCGEventMouseMoved;`,`const event = $.CGEventCreateMouseEvent(null, moveType, point, $.kCGMouseButtonLeft);`,`$.CGEventPost($.kCGHIDEventTap, event);`,`return true;`,`}`,`if (action === "mouseDown" || action === "mouseUp") {`,`const isDown = action === "mouseDown";`,`const eventType = isDown ? $.kCGEventLeftMouseDown : $.kCGEventLeftMouseUp;`,`const event = $.CGEventCreateMouseEvent(null, eventType, point, $.kCGMouseButtonLeft);`,`$.CGEventPost($.kCGHIDEventTap, event);`,`__trackpadLeftDown = isDown;`,`return true;`,`}`,`if (action === "click" || action === "rightClick") {`,`const right = action === "rightClick";`,`const button = right ? $.kCGMouseButtonRight : $.kCGMouseButtonLeft;`,`const downType = right ? $.kCGEventRightMouseDown : $.kCGEventLeftMouseDown;`,`const upType = right ? $.kCGEventRightMouseUp : $.kCGEventLeftMouseUp;`,`const down = $.CGEventCreateMouseEvent(null, downType, point, button);`,`const up = $.CGEventCreateMouseEvent(null, upType, point, button);`,`$.CGEventPost($.kCGHIDEventTap, down);`,`delay(0.01);`,`$.CGEventPost($.kCGHIDEventTap, up);`,`return true;`,`}`,`if (action === "doubleClick") {`,`const down1 = $.CGEventCreateMouseEvent(null, $.kCGEventLeftMouseDown, point, $.kCGMouseButtonLeft);`,`const up1 = $.CGEventCreateMouseEvent(null, $.kCGEventLeftMouseUp, point, $.kCGMouseButtonLeft);`,`const down2 = $.CGEventCreateMouseEvent(null, $.kCGEventLeftMouseDown, point, $.kCGMouseButtonLeft);`,`const up2 = $.CGEventCreateMouseEvent(null, $.kCGEventLeftMouseUp, point, $.kCGMouseButtonLeft);`,`$.CGEventSetIntegerValueField(down1, $.kCGMouseEventClickState, 1);`,`$.CGEventSetIntegerValueField(up1, $.kCGMouseEventClickState, 1);`,`$.CGEventSetIntegerValueField(down2, $.kCGMouseEventClickState, 2);`,`$.CGEventSetIntegerValueField(up2, $.kCGMouseEventClickState, 2);`,`$.CGEventPost($.kCGHIDEventTap, down1);`,`$.CGEventPost($.kCGHIDEventTap, up1);`,`delay(0.05);`,`$.CGEventPost($.kCGHIDEventTap, down2);`,`$.CGEventPost($.kCGHIDEventTap, up2);`,`return true;`,`}`,`return false;`,`} catch (error) {`,`return false;`,`}`,`}`,`let __trackpadBuffer = "";`,`const __trackpadInput = $.NSFileHandle.fileHandleWithStandardInput;`,`__trackpadWorker: while (true) {`,`const data = __trackpadInput.availableData;`,`if (data.length === 0) break;`,`__trackpadBuffer += ObjC.unwrap($.NSString.alloc.initWithDataEncoding(data, $.NSUTF8StringEncoding));`,`const lines = __trackpadBuffer.split("\\n");`,`__trackpadBuffer = lines.pop();`,`for (let index = 0; index < lines.length; index += 1) {`,`const line = lines[index];`,`if (!line) continue;`,`if (line === "__EXIT__") break __trackpadWorker;`,`try {`,`const command = JSON.parse(line);`,`__sendTrackpadResult(__runTrackpadAction(command[0], command[1], command[2]));`,`} catch (error) {`,`__sendTrackpadResult(false);`,`}`,`}`,`}`].join(` `),a=String.raw`
2
+ $source = @'
3
+ using System;
4
+ using System.Runtime.InteropServices;
5
+ using System.Threading;
6
+
7
+ public static class HomeAtomPointerInput
8
+ {
9
+ [StructLayout(LayoutKind.Sequential)]
10
+ private struct Point
11
+ {
12
+ public int X;
13
+ public int Y;
14
+ }
15
+
16
+ private const uint MOUSEEVENTF_LEFTDOWN = 0x0002;
17
+ private const uint MOUSEEVENTF_LEFTUP = 0x0004;
18
+ private const uint MOUSEEVENTF_RIGHTDOWN = 0x0008;
19
+ private const uint MOUSEEVENTF_RIGHTUP = 0x0010;
20
+ private const uint MOUSEEVENTF_WHEEL = 0x0800;
21
+ private const uint MOUSEEVENTF_HWHEEL = 0x1000;
22
+
23
+ [DllImport("user32.dll")]
24
+ private static extern bool GetCursorPos(out Point point);
25
+
26
+ [DllImport("user32.dll")]
27
+ private static extern bool SetCursorPos(int x, int y);
28
+
29
+ [DllImport("user32.dll")]
30
+ private static extern bool SetProcessDpiAwarenessContext(IntPtr value);
31
+
32
+ [DllImport("user32.dll")]
33
+ private static extern void mouse_event(
34
+ uint flags,
35
+ uint dx,
36
+ uint dy,
37
+ int data,
38
+ UIntPtr extraInfo
39
+ );
40
+
41
+ public static bool Move(int deltaX, int deltaY)
42
+ {
43
+ Point point;
44
+ if (!GetCursorPos(out point)) return false;
45
+ return SetCursorPos(point.X + deltaX, point.Y + deltaY);
46
+ }
47
+
48
+ public static bool MoveTo(int x, int y)
49
+ {
50
+ return SetCursorPos(x, y);
51
+ }
52
+
53
+ public static void SetLeftButton(bool pressed)
54
+ {
55
+ mouse_event(
56
+ pressed ? MOUSEEVENTF_LEFTDOWN : MOUSEEVENTF_LEFTUP,
57
+ 0,
58
+ 0,
59
+ 0,
60
+ UIntPtr.Zero
61
+ );
62
+ }
63
+
64
+ public static void EnablePerMonitorDpiAwareness()
65
+ {
66
+ try {
67
+ SetProcessDpiAwarenessContext(new IntPtr(-4));
68
+ } catch {
69
+ // Older Windows versions do not expose this API.
70
+ }
71
+ }
72
+
73
+ public static void Click(bool right)
74
+ {
75
+ uint down = right ? MOUSEEVENTF_RIGHTDOWN : MOUSEEVENTF_LEFTDOWN;
76
+ uint up = right ? MOUSEEVENTF_RIGHTUP : MOUSEEVENTF_LEFTUP;
77
+ mouse_event(down, 0, 0, 0, UIntPtr.Zero);
78
+ Thread.Sleep(10);
79
+ mouse_event(up, 0, 0, 0, UIntPtr.Zero);
80
+ }
81
+
82
+ public static void DoubleClick()
83
+ {
84
+ Click(false);
85
+ Thread.Sleep(50);
86
+ Click(false);
87
+ }
88
+
89
+ public static void Scroll(int horizontal, int vertical)
90
+ {
91
+ if (vertical != 0) {
92
+ mouse_event(MOUSEEVENTF_WHEEL, 0, 0, vertical, UIntPtr.Zero);
93
+ }
94
+ if (horizontal != 0) {
95
+ mouse_event(MOUSEEVENTF_HWHEEL, 0, 0, horizontal, UIntPtr.Zero);
96
+ }
97
+ }
98
+ }
99
+ '@
100
+
101
+ Add-Type -TypeDefinition $source
102
+ [HomeAtomPointerInput]::EnablePerMonitorDpiAwareness()
103
+ [Console]::OutputEncoding = [System.Text.UTF8Encoding]::new($false)
104
+
105
+ while (($line = [Console]::ReadLine()) -ne $null) {
106
+ try {
107
+ $command = ConvertFrom-Json -InputObject $line
108
+ $action = [string]$command[0]
109
+ $deltaX = [double]$command[1]
110
+ $deltaY = [double]$command[2]
111
+ $result = $true
112
+
113
+ switch ($action) {
114
+ "warmup" {
115
+ $result = $true
116
+ break
117
+ }
118
+ "move" {
119
+ $result = [HomeAtomPointerInput]::Move(
120
+ [int][Math]::Round($deltaX),
121
+ [int][Math]::Round($deltaY)
122
+ )
123
+ break
124
+ }
125
+ "moveTo" {
126
+ $result = [HomeAtomPointerInput]::MoveTo(
127
+ [int][Math]::Round($deltaX),
128
+ [int][Math]::Round($deltaY)
129
+ )
130
+ break
131
+ }
132
+ "mouseDown" {
133
+ [HomeAtomPointerInput]::SetLeftButton($true)
134
+ break
135
+ }
136
+ "mouseUp" {
137
+ [HomeAtomPointerInput]::SetLeftButton($false)
138
+ break
139
+ }
140
+ "click" {
141
+ [HomeAtomPointerInput]::Click($false)
142
+ break
143
+ }
144
+ "rightClick" {
145
+ [HomeAtomPointerInput]::Click($true)
146
+ break
147
+ }
148
+ "doubleClick" {
149
+ [HomeAtomPointerInput]::DoubleClick()
150
+ break
151
+ }
152
+ "scroll" {
153
+ [HomeAtomPointerInput]::Scroll(
154
+ [int][Math]::Round($deltaX * 12),
155
+ [int][Math]::Round($deltaY * -12)
156
+ )
157
+ break
158
+ }
159
+ default {
160
+ $result = $false
161
+ break
162
+ }
163
+ }
164
+
165
+ [Console]::Out.WriteLine($result.ToString().ToLowerInvariant())
166
+ }
167
+ catch {
168
+ [Console]::Error.WriteLine($_.Exception.Message)
169
+ [Console]::Out.WriteLine("false")
170
+ }
171
+ }
172
+ `,o=3,s=class{constructor(e,t){this.platform=e,this.workerScript=t,this.child=null,this.reader=null,this.readyPromise=null,this.rejectReady=null,this.lastError=``,this.pending=[]}async run(t,n=0,r=0){if(this.platform===`unsupported`)return{ok:!1,platform:this.platform,error:`Trackpad automation is not supported on ${e(this.platform)}`};try{await this.ensureStarted()}catch(e){return{ok:!1,platform:this.platform,error:e instanceof Error?e.message:`Unable to start trackpad automation`}}let i=this.child;return!i||i.killed||!i.stdin.writable?{ok:!1,platform:this.platform,error:`Trackpad automation is unavailable`}:new Promise(e=>{let a=setTimeout(()=>{this.stopWithError(Error(`Trackpad automation timed out`))},5e3);this.pending.push({resolve:e,timer:a});let o=`${JSON.stringify([t,n,r])}\n`;i.stdin.write(o,e=>{e&&this.stopWithError(e)})})}shutdown(){this.stopWithError(Error(`Trackpad automation restarted`))}ensureStarted(){if(this.readyPromise)return this.readyPromise;let[e,t]=this.platform===`windows`?[`powershell.exe`,[`-NoLogo`,`-NoProfile`,`-NonInteractive`,`-Command`,this.workerScript]]:[`osascript`,[`-l`,`JavaScript`,`-e`,this.workerScript]],i=n(e,t,{stdio:[`pipe`,`pipe`,`pipe`],windowsHide:this.platform===`windows`});return this.child=i,this.lastError=``,this.readyPromise=new Promise((e,t)=>{this.rejectReady=t,i.once(`spawn`,e)}),this.reader=r({input:i.stdout}),this.reader.on(`line`,e=>this.handleOutput(e)),i.stderr.setEncoding(`utf8`),i.stderr.on(`data`,e=>{this.lastError=e.trim()}),i.once(`error`,e=>{this.child===i&&this.stopWithError(e)}),i.once(`exit`,(e,t)=>{this.child===i&&this.stopWithError(Error(this.lastError||`Trackpad automation exited (${t??e??`unknown`})`))}),this.readyPromise}handleOutput(e){let t=e.trim();if(t!==`true`&&t!==`false`)return;let n=this.pending.shift();n&&(clearTimeout(n.timer),t===`true`?n.resolve({ok:!0,platform:this.platform}):n.resolve({ok:!1,platform:this.platform,error:`Trackpad action was rejected`}))}stopWithError(e){let t=this.child;this.child=null,this.reader?.close(),this.reader=null,this.readyPromise=null,this.rejectReady?.(e),this.rejectReady=null;for(let t of this.pending.splice(0))clearTimeout(t.timer),t.resolve({ok:!1,platform:this.platform,error:e.message});t&&!t.killed&&t.kill()}},c=globalThis,l=t(),u=l===`macos`?i:l===`windows`?a:``,d=c.trackpadAutomationWorkerState;(!d||d.source!==u||d.platform!==l||d.managerVersion!==o)&&(d?.automation.shutdown(),d={source:u,platform:l,managerVersion:o,automation:new s(l,u)},c.trackpadAutomationWorkerState=d);var f=d.automation;function p(){return{platform:l,platformLabel:e(l),supported:l!==`unsupported`}}function m(e,t=0,n=0){return f.run(e,t,n)}export{m as n,p as t};
@@ -0,0 +1,118 @@
1
+ import{n as e,t}from"./input-platform-C0756QEt.js";import{hostname as n}from"node:os";import{execFile as r}from"node:child_process";var i=12e3,a=64*1024*1024,o=3e3,s=[`ObjC.import("AppKit");`,`ObjC.import("CoreGraphics");`,`ObjC.import("ApplicationServices");`,`ObjC.bindFunction("CGPreflightScreenCaptureAccess", ["bool", []]);`,`ObjC.bindFunction("AXIsProcessTrusted", ["bool", []]);`,`const screens = $.NSScreen.screens;`,`const displays = [];`,`for (let index = 0; index < Number(screens.count); index += 1) {`,`const screen = screens.objectAtIndex(index);`,`const nativeId = Number(ObjC.unwrap(screen.deviceDescription.objectForKey("NSScreenNumber")));`,`const bounds = $.CGDisplayBounds(nativeId);`,`let label = "Display " + (index + 1);`,`try { label = ObjC.unwrap(screen.localizedName); } catch (error) {}`,`const scale = Number(screen.backingScaleFactor) || 1;`,`displays.push({`,`id: "display-" + (index + 1),`,`label: label,`,`primary: nativeId === Number($.CGMainDisplayID()),`,`width: Math.round(Number(bounds.size.width)),`,`height: Math.round(Number(bounds.size.height)),`,`pixelWidth: Math.round(Number(bounds.size.width) * scale),`,`pixelHeight: Math.round(Number(bounds.size.height) * scale),`,`x: Math.round(Number(bounds.origin.x)),`,`y: Math.round(Number(bounds.origin.y)),`,`nativeId: nativeId,`,`captureIndex: index + 1`,`});`,`}`,`JSON.stringify({`,`displays: displays,`,`screenRecording: Boolean($.CGPreflightScreenCaptureAccess()),`,`accessibility: Boolean($.AXIsProcessTrusted())`,`});`].join(` `),c=String.raw`
2
+ Add-Type -AssemblyName System.Windows.Forms
3
+
4
+ $dpiSource = @'
5
+ using System;
6
+ using System.Runtime.InteropServices;
7
+
8
+ public static class HomeAtomScreenDpi
9
+ {
10
+ [DllImport("user32.dll")]
11
+ private static extern bool SetProcessDpiAwarenessContext(IntPtr value);
12
+
13
+ public static void Enable()
14
+ {
15
+ try { SetProcessDpiAwarenessContext(new IntPtr(-4)); } catch { }
16
+ }
17
+ }
18
+ '@
19
+
20
+ Add-Type -TypeDefinition $dpiSource
21
+ [HomeAtomScreenDpi]::Enable()
22
+
23
+ $items = [System.Collections.ArrayList]::new()
24
+ $screens = [System.Windows.Forms.Screen]::AllScreens
25
+
26
+ for ($index = 0; $index -lt $screens.Count; $index += 1) {
27
+ $screen = $screens[$index]
28
+ $bounds = $screen.Bounds
29
+ [void]$items.Add([ordered]@{
30
+ id = "display-$($index + 1)"
31
+ label = if ($screen.Primary) { "Primary display" } else { "Display $($index + 1)" }
32
+ primary = $screen.Primary
33
+ width = $bounds.Width
34
+ height = $bounds.Height
35
+ pixelWidth = $bounds.Width
36
+ pixelHeight = $bounds.Height
37
+ x = $bounds.X
38
+ y = $bounds.Y
39
+ nativeId = $index
40
+ captureIndex = $index
41
+ })
42
+ }
43
+
44
+ [ordered]@{
45
+ displays = @($items)
46
+ screenRecording = $true
47
+ accessibility = $true
48
+ } | ConvertTo-Json -Compress -Depth 4
49
+ `,l=String.raw`
50
+ using System;
51
+ using System.Runtime.InteropServices;
52
+
53
+ public static class HomeAtomCaptureDpi
54
+ {
55
+ [DllImport("user32.dll")]
56
+ private static extern bool SetProcessDpiAwarenessContext(IntPtr value);
57
+
58
+ public static void Enable()
59
+ {
60
+ try { SetProcessDpiAwarenessContext(new IntPtr(-4)); } catch { }
61
+ }
62
+ }
63
+ `;function u(e,t){return new Promise((n,o)=>{r(e,t,{encoding:`utf8`,maxBuffer:a,timeout:i,windowsHide:!0},(e,t,r)=>{if(e){let t=r.trim()||e.message;o(Error(t));return}n({stdout:t,stderr:r})})})}function d(e,t){return new Promise((n,o)=>{r(e,t,{encoding:`buffer`,maxBuffer:a,timeout:i,windowsHide:!0},(e,t,r)=>{if(e){let t=Buffer.isBuffer(r)?r.toString(`utf8`).trim():String(r).trim();o(Error(t||e.message));return}n(Buffer.isBuffer(t)?t:Buffer.from(t))})})}function f(e,t){let n=e instanceof Error?e.message:String(e);return/permission|not authorized|not permitted|could not create image/i.test(n)?t===`capture`?`Screen Recording permission is required. Allow Terminal or the Home Atom host in macOS System Settings, then reconnect.`:`Screen access permission is not available.`:/constrained language|add-type|assembly/i.test(n)?`Windows screen capture is blocked by the current PowerShell policy.`:t===`capture`?`The local display could not be captured. Keep the Home Atom server in the signed-in desktop session and try again.`:`Local displays could not be inspected.`}function p(e){return Array.isArray(e)?e.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;if(typeof t.id!=`string`||typeof t.label!=`string`||[`width`,`height`,`pixelWidth`,`pixelHeight`,`x`,`y`,`nativeId`,`captureIndex`].some(e=>!Number.isFinite(t[e])))return[];let n=Math.max(1,Math.round(Number(t.width))),r=Math.max(1,Math.round(Number(t.height)));return[{id:t.id,label:t.label,primary:!!t.primary,width:n,height:r,pixelWidth:Math.max(n,Math.round(Number(t.pixelWidth))),pixelHeight:Math.max(r,Math.round(Number(t.pixelHeight))),x:Math.round(Number(t.x)),y:Math.round(Number(t.y)),nativeId:Math.round(Number(t.nativeId)),captureIndex:Math.round(Number(t.captureIndex))}]}):[]}async function m(){let r=t(),i={platform:r,platformLabel:e(r),hostName:n()};if(r===`unsupported`)return{...i,supported:!1,displays:[],permissions:{screenRecording:`unknown`,accessibility:`unknown`},error:`Remote Screen is not supported on ${i.platformLabel}.`};try{let{stdout:e}=r===`macos`?await u(`osascript`,[`-l`,`JavaScript`,`-e`,s]):await u(`powershell.exe`,[`-NoLogo`,`-NoProfile`,`-NonInteractive`,`-Command`,c]),t=JSON.parse(e.trim()),n=p(t.displays);return{...i,supported:n.length>0,displays:n,permissions:{screenRecording:t.screenRecording===!0?`granted`:t.screenRecording===!1?`denied`:r===`windows`?`not-required`:`unknown`,accessibility:t.accessibility===!0?`granted`:t.accessibility===!1?`denied`:r===`windows`?`not-required`:`unknown`},...n.length===0?{error:`No interactive local display was found.`}:{}}}catch(e){return{...i,supported:!1,displays:[],permissions:{screenRecording:r===`windows`?`not-required`:`unknown`,accessibility:r===`windows`?`not-required`:`unknown`},error:f(e,`inspect`)}}}var h=globalThis,g=h.remoteScreenAutomationState??{expiresAt:0,captureTail:Promise.resolve()};h.remoteScreenAutomationState=g;async function _(e){if(!e?.fresh&&g.capabilities&&g.expiresAt>Date.now())return g.capabilities;let t=await m();return g.capabilities=t,g.expiresAt=Date.now()+o,t}async function v(e){return(await _()).displays.find(t=>t.id===e)}function y(e,t,n){let r=t===`high`?e.pixelWidth:e.width,i=t===`high`?e.pixelHeight:e.height,a=n===`high`?.9:.62;return[`ObjC.import("AppKit");`,`ObjC.import("CoreGraphics");`,`let image = $.CGDisplayCreateImage(${e.nativeId});`,`if (!image) { throw new Error("Screen Recording permission is unavailable"); }`,`const sourceWidth = Number($.CGImageGetWidth(image));`,`const sourceHeight = Number($.CGImageGetHeight(image));`,`const targetWidth = ${r};`,`const targetHeight = ${i};`,`if (sourceWidth !== targetWidth || sourceHeight !== targetHeight) {`,`const colorSpace = $.CGColorSpaceCreateDeviceRGB();`,`const context = $.CGBitmapContextCreate(null, targetWidth, targetHeight, 8, targetWidth * 4, colorSpace, $.kCGImageAlphaPremultipliedLast);`,`if (!context) { throw new Error("Unable to prepare the local frame"); }`,`$.CGContextSetInterpolationQuality(context, $.kCGInterpolationHigh);`,`$.CGContextDrawImage(context, { origin: { x: 0, y: 0 }, size: { width: targetWidth, height: targetHeight } }, image);`,`image = $.CGBitmapContextCreateImage(context);`,`}`,`const bitmap = $.NSBitmapImageRep.alloc.initWithCGImage(image);`,`const properties = $.NSMutableDictionary.dictionary;`,`properties.setObjectForKey($(${a}), $.NSImageCompressionFactor);`,`const data = bitmap.representationUsingTypeProperties($.NSBitmapImageFileTypeJPEG, properties);`,`if (!data) { throw new Error("Unable to encode the local frame"); }`,`JSON.stringify({`,`width: Number(bitmap.pixelsWide),`,`height: Number(bitmap.pixelsHigh),`,`base64: ObjC.unwrap(data.base64EncodedStringWithOptions(0))`,`});`].join(` `)}async function b(e,t,n){let{stdout:r}=await u(`osascript`,[`-l`,`JavaScript`,`-e`,y(e,t,n)]),i=JSON.parse(r.trim());if(!Number.isFinite(i.width)||!Number.isFinite(i.height)||typeof i.base64!=`string`||i.base64.length===0)throw Error(`The local frame encoder returned invalid data.`);return{buffer:Buffer.from(i.base64,`base64`),contentType:`image/jpeg`,width:Math.round(Number(i.width)),height:Math.round(Number(i.height))}}function x(e,t){let n=t===`high`?90:64;return String.raw`
64
+ Add-Type -AssemblyName System.Windows.Forms
65
+ Add-Type -AssemblyName System.Drawing
66
+ Add-Type -TypeDefinition @'
67
+ ${l}
68
+ '@
69
+ [HomeAtomCaptureDpi]::Enable()
70
+
71
+ $screens = [System.Windows.Forms.Screen]::AllScreens
72
+ $index = ${e.captureIndex}
73
+ if ($index -lt 0 -or $index -ge $screens.Count) {
74
+ throw "The selected display is no longer connected."
75
+ }
76
+
77
+ $bounds = $screens[$index].Bounds
78
+ $bitmap = $null
79
+ $graphics = $null
80
+ $stream = $null
81
+ $parameters = $null
82
+
83
+ try {
84
+ $bitmap = [System.Drawing.Bitmap]::new(
85
+ $bounds.Width,
86
+ $bounds.Height,
87
+ [System.Drawing.Imaging.PixelFormat]::Format24bppRgb
88
+ )
89
+ $graphics = [System.Drawing.Graphics]::FromImage($bitmap)
90
+ $graphics.CopyFromScreen(
91
+ $bounds.X,
92
+ $bounds.Y,
93
+ 0,
94
+ 0,
95
+ $bounds.Size,
96
+ [System.Drawing.CopyPixelOperation]::SourceCopy
97
+ )
98
+
99
+ $stream = [System.IO.MemoryStream]::new()
100
+ $codec = [System.Drawing.Imaging.ImageCodecInfo]::GetImageEncoders() |
101
+ Where-Object { $_.MimeType -eq "image/jpeg" } |
102
+ Select-Object -First 1
103
+ $parameters = [System.Drawing.Imaging.EncoderParameters]::new(1)
104
+ $parameters.Param[0] = [System.Drawing.Imaging.EncoderParameter]::new(
105
+ [System.Drawing.Imaging.Encoder]::Quality,
106
+ [long]${n}
107
+ )
108
+ $bitmap.Save($stream, $codec, $parameters)
109
+ $bytes = $stream.ToArray()
110
+ [Console]::OpenStandardOutput().Write($bytes, 0, $bytes.Length)
111
+ }
112
+ finally {
113
+ if ($parameters) { $parameters.Dispose() }
114
+ if ($stream) { $stream.Dispose() }
115
+ if ($graphics) { $graphics.Dispose() }
116
+ if ($bitmap) { $bitmap.Dispose() }
117
+ }
118
+ `}async function S(e,t){let n=await d(`powershell.exe`,[`-NoLogo`,`-NoProfile`,`-NonInteractive`,`-Command`,x(e,t)]);if(n.length===0)throw Error(`The local frame encoder returned no data.`);return{buffer:n,contentType:`image/jpeg`,width:e.width,height:e.height}}async function C(e,t){let n=async()=>{let n=await _(),r=n.displays.find(t=>t.id===e);if(!n.supported||!r)throw Error(`The selected local display is unavailable.`);try{return n.platform===`macos`?await b(r,t.density,t.quality):await S(r,t.quality)}catch(e){throw Error(f(e,`capture`))}},r=g.captureTail.then(n,n);return g.captureTail=r.then(()=>void 0,()=>void 0),r}function w(e){return{id:e.id,label:e.label,primary:e.primary,width:e.width,height:e.height,pixelWidth:e.pixelWidth,pixelHeight:e.pixelHeight}}export{w as i,v as n,_ as r,C as t};
@@ -0,0 +1 @@
1
+ function e(e,t){return t?e===t||e.startsWith(t+`/`):!1}function t(t,n){return e(t,n)?t.slice(n.length)||`/`:t}function n(t,n){return!n||e(t,n)?t:t===`/`?n:`${n}${t}`}function r(e){if(e===`/`)return`/`;let t=e.length;for(;t>0&&e.charCodeAt(t-1)===47;)t--;return t===0?`/`:e.slice(0,t)}export{t as i,e as n,r,n as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-DaDcL9Zw.js";import{n as t,t as n}from"./framework~index~layout~layout~page~page~page~layout~page~app-page-cache-render~app-page-cac~nvd6h53m-ydvR7YSg.js";import{a as r,c as i,i as a,s as o}from"./unified-request-context-CgIMz2dD.js";import{D as s,f as c,g as l,h as u,l as d,m as f,p,r as ee,t as te,u as ne,x as re,y as ie}from"./request-context-C1ZJzkex.js";function m(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var ae=e(t(),1);function oe(e,t){let n=e?.[t];return m(n)?n:void 0}function se(e,t){let n=oe(e,`cacheControl`)?.[t]??e?.[t];return typeof n==`number`?n:void 0}function ce(e){let t=oe(e,`cacheControl`)?.revalidate??e?.revalidate;return typeof t==`number`||t===!1?t:void 0}var le=50*1024*1024,ue=1e4;function de(e){if(!e)return 0;let t=0;for(let[n,r]of Object.entries(e))if(t+=n.length,Array.isArray(r))for(let e of r)t+=e.length;else t+=r.length;return t}function fe(e){if(e===null)return 25;switch(e.kind){case`FETCH`:return JSON.stringify(e.data??``).length;case`PAGES`:return e.html.length+JSON.stringify(e.pageData??{}).length+de(e.headers);case`APP_PAGE`:return e.html.length+(e.rscData?.byteLength??0)+(e.postponed?.length??0)+de(e.headers);case`APP_ROUTE`:return e.body.byteLength+de(e.headers);case`REDIRECT`:return JSON.stringify(e.props??{}).length;case`IMAGE`:return e.buffer.byteLength+e.extension.length+e.etag.length;default:return JSON.stringify(e).length}}function pe(e){return typeof e==`number`?e:typeof e?.cacheMaxMemorySize==`number`?e.cacheMaxMemorySize:typeof e?.maxMemoryCacheSize==`number`?e.maxMemoryCacheSize:le}function me(e,t){let n=e?.[t];return Array.isArray(n)?n.filter(e=>typeof e==`string`):[]}function he(e,t){let n=e?.[t];return typeof n==`number`&&n>0?n:void 0}var ge=class{store=new Map;tagRevalidatedAt=new Map;maxMemoryCacheSize;currentMemoryCacheSize=0;constructor(e){this.maxMemoryCacheSize=pe(e)}estimateEntrySize(e){return fe(e.value)+e.tags.reduce((e,t)=>e+t.length,0)+64}deleteEntry(e){let t=this.store.get(e);t&&(this.currentMemoryCacheSize-=this.estimateEntrySize(t),this.store.delete(e))}touchEntry(e,t){this.store.delete(e),this.store.set(e,t)}evictLeastRecentlyUsed(){for(;this.maxMemoryCacheSize>0&&this.currentMemoryCacheSize>this.maxMemoryCacheSize;){let e=this.store.keys().next().value;if(e===void 0)return;this.deleteEntry(e)}}async get(e,t){let n=this.store.get(e);if(!n)return null;for(let t of n.tags){let r=this.tagRevalidatedAt.get(t);if(r&&r>=n.lastModified)return this.deleteEntry(e),null}for(let e of me(t,`softTags`)){let t=this.tagRevalidatedAt.get(e);if(t&&t>=n.lastModified)return null}this.touchEntry(e,n);let r=Date.now();if(n.expireAt!==null&&r>n.expireAt)return{lastModified:n.lastModified,value:n.value,cacheState:`expired`,cacheControl:n.cacheControl};let i=he(t,`revalidate`),a=i===void 0?null:n.lastModified+i*1e3;return n.revalidateAt!==null&&r>n.revalidateAt||a!==null&&r>a?{lastModified:n.lastModified,value:n.value,cacheState:`stale`,cacheControl:n.cacheControl}:{lastModified:n.lastModified,value:n.value,cacheControl:n.cacheControl}}async set(e,t,n){let r=new Set;if(t&&`tags`in t&&Array.isArray(t.tags))for(let e of t.tags)r.add(e);for(let e of me(n,`tags`))r.add(e);let i=[...r],a=ce(n),o=se(n,`expire`);if(t&&`revalidate`in t&&typeof t.revalidate==`number`?a=t.revalidate:t&&`revalidate`in t&&t.revalidate===!1&&(a??=!1),a===0)return;let s=Date.now(),c=typeof a==`number`&&a>0?s+a*1e3:null,l=typeof o==`number`&&o>0?s+o*1e3:null,u=typeof a==`number`||a===!1?o===void 0?{revalidate:a}:{revalidate:a,expire:o}:void 0;if(this.maxMemoryCacheSize===0)return;let d={value:t,tags:i,lastModified:s,revalidateAt:c,expireAt:l,cacheControl:u},f=this.estimateEntrySize(d);if(f>this.maxMemoryCacheSize){this.deleteEntry(e);return}this.deleteEntry(e),this.store.set(e,d),this.currentMemoryCacheSize+=f,this.evictLeastRecentlyUsed()}async revalidateTag(e){let t=Array.isArray(e)?e:[e],n=Date.now();for(let e of t)for(this.tagRevalidatedAt.set(e,n);this.tagRevalidatedAt.size>ue;){let e=this.tagRevalidatedAt.keys().next().value;if(e===void 0)break;this.tagRevalidatedAt.delete(e)}}resetRequestCache(){}},h=Symbol.for(`vinext.cacheHandler`),g=globalThis;function _e(){return g[h]??(g[h]=new ge)}function ve(e){let t=g[h];t&&!(t instanceof ge)||(g[h]=new ge(e))}function _(){return _e()}var ye=class extends Error{constructor(e,t){super(`Route ${e} used ${t} during prerendering but the render was aborted. This is expected when prerendering is cut short (e.g. due to a dynamic access).`),this.name=`HangingPromiseRejectionError`}},be=new WeakMap;function xe(){}function Se(e,t,n){if(e.aborted){let e=Promise.reject(new ye(t,n));return e.catch(xe),e}let r=new Promise((r,i)=>{let a=i.bind(null,new ye(t,n)),o=be.get(e);if(o)o.push(a);else{let t=[a];be.set(e,t),e.addEventListener(`abort`,()=>{for(let e=0;e<t.length;e++)t[e]();t.length=0},{once:!0})}});return r.catch(xe),r}var Ce=i(`vinext.pprFallbackShell.als`),we=i(`vinext.pprFallbackShell.cacheTaskStack.als`);function Te(){}function Ee(e){let t=setTimeout(()=>{t=null,n=setTimeout(()=>{n=null,e()},0)},0),n=null;return()=>{t!==null&&(clearTimeout(t),t=null),n!==null&&(clearTimeout(n),n=null)}}function De(e){if(e.pendingCacheTasks!==0)return;let t=e.cacheReadyResolvers.splice(0);for(let e of t)e()}function Oe(e){e.pendingCacheTasks!==0||e.pendingCacheReadyCleanup!==null||(e.pendingCacheReadyCleanup=Ee(()=>{e.pendingCacheReadyCleanup=null,De(e),e.phase===`final`&&ke(e)}))}function ke(e){e.phase!==`final`||!e.isFinalRenderStarted||!e.hasDynamicBoundary||e.pendingCacheTasks>0||e.pendingCacheReadyCleanup!==null||e.isAbortScheduled||(e.isAbortScheduled=!0,e.pendingAbortCleanup=Ee(()=>{e.pendingAbortCleanup=null,e.isAbortScheduled=!1,e.phase===`final`&&e.hasDynamicBoundary&&e.pendingCacheTasks===0&&e.pendingCacheReadyCleanup===null&&!e.reactAbortController.signal.aborted&&(e.reactAbortController.abort(),e.abortController.abort())}))}function Ae(e,t){t.isPending&&(t.isPending=!1,t.epoch===e.cacheEpoch&&(e.pendingCacheTasks--,Oe(e)))}function je(e,t){!t.isPending||t.isIgnored||(t.isIgnored=!0,Ae(e,t))}function Me(){return Ce.getStore()??null}function Ne(e,t){Pe(e),e.phase===`final`&&ke(e);let n=Se(e.abortController.signal,e.routePattern,t);return n.catch(Te),n}function Pe(e){e.hasDynamicBoundary=!0;for(let t of we.getStore()??[])je(e,t);Oe(e)}var Fe=Symbol.for(`vinext.nextHeadersShim.fallback`),Ie=globalThis,Le=i(`vinext.nextHeadersShim.als`),Re=Ie[Fe]??={headersContext:null,dynamicUsageDetected:!1,renderRequestApiUsage:new Set,connectionProbe:null,invalidDynamicUsageError:null,pendingSetCookies:[],draftModeCookieHeader:null,phase:`render`};function v(){return r()?a():Le.getStore()??Re}function ze(){let e=v();e.headersContext?.forceStatic||(e.dynamicUsageDetected=!0,Be(e,e=>{e.dynamicUsageDetected=!0}))}function Be(e,t){let n=e.connectionProbe?.dynamicUsageTarget??null,r=new Set([e]);for(;n&&!r.has(n);)r.add(n),t(n),n=n.connectionProbe?.dynamicUsageTarget??null}function Ve(e,t){Be(e,e=>{e.invalidDynamicUsageError??=t})}async function He(e){let t=async t=>({result:await e(),dynamicDetected:t.dynamicUsageDetected});if(r()){let e=null;return await o(t=>{t.dynamicUsageDetected=!1,e=t},()=>{if(!e)throw Error(`Dynamic usage scope was not initialized`);return t(e)})}let n={...v(),dynamicUsageDetected:!1};return await Le.run(n,()=>t(n))}function Ue(e){v().renderRequestApiUsage.add(e)}function We(){let e=v().headersContext?.accessError;if(e)throw e}async function Ge(e){let t=v(),n=t.invalidDynamicUsageError,i=()=>{},a=new Promise(e=>{i=()=>e({completed:!1})}),s={active:!0,dynamicUsageTarget:t,interrupted:!1,interrupt(){s.interrupted||(s.interrupted=!0,i())},pending:new Promise(()=>{})},c=async r=>{try{let t=Promise.resolve().then(e).then(e=>({completed:!0,result:e}));return await Promise.race([t,a])}finally{s.active=!1,r.connectionProbe=t.connectionProbe??s,r.dynamicUsageDetected&&(t.dynamicUsageDetected=!0),r.invalidDynamicUsageError!==n&&t.invalidDynamicUsageError===n&&(t.invalidDynamicUsageError=r.invalidDynamicUsageError)}};if(r()){let e=null;return await o(t=>{t.connectionProbe=s,e=t},()=>{if(!e)throw Error(`Connection probe scope was not initialized`);return c(e)})}let l={...t,connectionProbe:s};return await Le.run(l,()=>c(l))}function Ke(){return[...v().renderRequestApiUsage].sort()}function qe(){let e=v(),t=[...e.renderRequestApiUsage].sort();return e.renderRequestApiUsage=new Set,t}var Je=Symbol.for(`vinext.cacheRuntime.contextAls`),Ye=Symbol.for(`vinext.unstableCache.als`);function Xe(e){let t=Reflect.get(globalThis,e);if(!t||typeof t!=`object`)return null;let n=Reflect.get(t,`getStore`);return typeof n==`function`?{getStore:()=>n.call(t)}:null}function Ze(){let e=Xe(Je)?.getStore();return!e||typeof e!=`object`?null:e}function Qe(){let e=Ze();return e!==null&&e.variant!==`private`}function $e(){return Xe(Ye)?.getStore()===!0}function et(e){if(Qe()){let t=Error(`\`${e}\` cannot be called inside "use cache". If you need this data inside a cached function, call \`${e}\` outside and pass the required data as an argument.`);try{let e=Ze();e&&(e.invalidDynamicUsageError=t);let n=a();n&&(n.invalidDynamicUsageError=t),Ve(v(),t)}catch{}throw t}if($e()){let t=Error(`\`${e}\` cannot be called inside a function cached with \`unstable_cache()\`. If you need this data inside a cached function, call \`${e}\` outside and pass the required data as an argument.`);try{let e=a();e&&(e.invalidDynamicUsageError=t),Ve(v(),t)}catch{}throw t}}function tt(){let e=v(),t=e.invalidDynamicUsageError;return e.invalidDynamicUsageError=null,t}function nt(){let e=v(),t=e.dynamicUsageDetected;return e.dynamicUsageDetected=!1,t}function rt(){return v().dynamicUsageDetected}function it(e,t){let n=e.phase;return n===`action`&&t===`render`&&e.headersContext?.mutableCookies?.[_t](),e.phase=t,n}function at(e){return it(v(),e)}function ot(){return v().phase}function st(){return v().headersContext}function ct(e){let t=v();e===null?(t.headersContext=null,t.phase=`render`):(t.headersContext=e,t.dynamicUsageDetected=!1,t.renderRequestApiUsage=new Set,t.pendingSetCookies=[],t.draftModeCookieHeader=null,t.phase=`render`)}var lt=new Set([`set`,`delete`,`append`]);function ut(e,t){let n=null,r=new Proxy(e.headers,{get(e,t){let r=n??e;if(typeof t==`string`&&lt.has(t))return(...r)=>(n||=new Headers(e),n[t](...r));let i=Reflect.get(r,t,r);return typeof i==`function`?i.bind(r):i}}),i=null;function a(){return i||(i=ee(r.get(`cookie`)||``),i)}return{headers:r,get cookies(){return a()},draftModeSecret:t?.draftModeSecret}}function dt(){let e=v(),t=e.pendingSetCookies;return e.pendingSetCookies=[],t}var ft=`__prerender_bypass`;function pt(){let e=v(),t=e.draftModeCookieHeader;return e.draftModeCookieHeader=null,t}function mt(e){if(e.length===0)throw Error(`[vinext] draft mode secret must be a non-empty string.`);return e}function ht(e,t){let n=e.headers.get(`cookie`);return n?ee(n).get(ft)===mt(t):!1}function gt(){let e=v().headersContext;if(!e)return null;if(e.draftModeEnabled!==void 0)return e.draftModeEnabled;let t=e.draftModeSecret;return t!==void 0&&e.cookies.get(ft)===mt(t)}var _t=Symbol(`vinext.synchronize-request-cookies`),y=n(),vt=`no-store, must-revalidate`,yt=class{ownsBackgroundRevalidation=!0;async get(e,t){return _().get(e,t)}async set(e,t,n){await _().set(e,t,n)}buildResponseHeaders(e){return e.pendingDynamicCheck?{"Cache-Control":vt}:{"Cache-Control":e.cacheControl}}async revalidateTag(e,t){}},bt=Symbol.for(`vinext.cdnCacheAdapter`),xt=globalThis,St=null;function Ct(){return xt[bt]||(St??=new yt)}function b(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=t*16777619>>>0;let n=84696351;for(let t=0;t<e.length;t++)n^=e.charCodeAt(t),n=n*16777619>>>0;return t.toString(16).padStart(8,`0`)+n.toString(16).padStart(8,`0`)}function wt(e){return e.startsWith(`/`)&&!e.startsWith(`//`)&&!e.includes(`?`)&&!e.includes(`#`)&&!e.includes(`\0`)}function Tt(e){if(e===`/`||e.length>1&&e[0]===`/`&&!e.includes(`//`)&&!e.includes(`/./`)&&!e.includes(`/../`)&&!e.endsWith(`/.`)&&!e.endsWith(`/..`))return e;let t=e.split(`/`),n=[];for(let e of t)e===``||e===`.`||(e===`..`?n.pop():n.push(e));return`/`+n.join(`/`)}var Et=(e,t)=>e<t?-1:+(e>t),Dt=[`schemaVersion`,`graphVersion`,`deploymentVersion`,`appElementsSchemaVersion`,`rscPayloadSchemaVersion`,`rootBoundaryId`,`renderEpoch`];function x(e={}){return{schemaVersion:1,graphVersion:e.graphVersion??null,deploymentVersion:e.deploymentVersion??null,appElementsSchemaVersion:1,rscPayloadSchemaVersion:1,rootBoundaryId:e.rootBoundaryId??null,renderEpoch:e.renderEpoch??null}}function Ot(e){return`app-route-graph:${b(JSON.stringify([e.routePattern,e.rootBoundaryId]))}`}function S(e){return typeof e==`string`||e===null}function kt(e){return e.schemaVersion===1&&e.appElementsSchemaVersion===1&&e.rscPayloadSchemaVersion===1}function At(e){return!m(e)||!kt(e)||!S(e.graphVersion)||!S(e.deploymentVersion)||!S(e.rootBoundaryId)||!S(e.renderEpoch)?null:{schemaVersion:1,graphVersion:e.graphVersion,deploymentVersion:e.deploymentVersion,appElementsSchemaVersion:1,rscPayloadSchemaVersion:1,rootBoundaryId:e.rootBoundaryId,renderEpoch:e.renderEpoch}}function C(e){return{kind:`incompatible`,fallback:`renderFresh`,reason:e}}function jt(e){return{kind:`unknown`,fallback:`renderFresh`,reason:e}}function w(e,t,n,r,i,a){return e===null||t===null?jt(n):e===t?null:a===void 0?C(r):Mt(e,t,a)?null:C(i)}function Mt(e,t,n){return n.some(n=>n.includes(e)&&n.includes(t))}function Nt(e,t,n={}){return e.schemaVersion===t.schemaVersion?e.appElementsSchemaVersion===t.appElementsSchemaVersion?e.rscPayloadSchemaVersion===t.rscPayloadSchemaVersion?w(e.graphVersion,t.graphVersion,`graphVersionUnknown`,`graphVersionMismatch`,`graphVersionNotDeclaredCompatible`,n.compatibilityMap?.graphVersions)||w(e.deploymentVersion,t.deploymentVersion,`deploymentVersionUnknown`,`deploymentVersionMismatch`,`deploymentVersionNotDeclaredCompatible`,n.compatibilityMap?.deploymentVersions)||w(e.rootBoundaryId,t.rootBoundaryId,`rootBoundaryIdUnknown`,`rootBoundaryIdMismatch`,`rootBoundaryIdNotDeclaredCompatible`,n.compatibilityMap?.rootBoundaryIds)||w(e.renderEpoch,t.renderEpoch,`renderEpochUnknown`,`renderEpochMismatch`,`renderEpochNotDeclaredCompatible`,n.compatibilityMap?.renderEpochs)||{kind:`compatible`}:C(`rscPayloadSchemaVersionMismatch`):C(`appElementsSchemaVersionMismatch`):C(`schemaVersionMismatch`)}var Pt=new WeakMap;function Ft(e,t){t.size!==0&&Pt.set(e,t)}function It(e,t){Pt.get(e)?.get(t)?.release()}function Lt(){let e=!1,t;return{promise:new Promise(e=>{t=e}),release(){e||(e=!0,t())}}}function Rt(e,t){if(t.length===0)return e;async function n(){return await Promise.all(t.map(e=>e.promise)),e}return(0,y.jsx)(n,{})}function zt(e,t){function n(){return t.release(),null}return(0,y.jsxs)(y.Fragment,{children:[e,(0,y.jsx)(n,{})]})}var Bt=`\0`,T=`__artifactCompatibility`,Vt=`__cacheEntryReuseProof`,E=`__dynamicStaleTime`,Ht=`__interception`,Ut=`__interceptionContext`,D=`__layoutIds`,O=`__layoutFlags`,Wt=`__renderObservation`,k=`__route`,A=`__rootLayout`,j=`__skippedLayoutIds`,Gt=`__sourcePage`,M=`__slotBindings`,Kt=`__staticSiblings`,qt=`__VINEXT_UNMATCHED_SLOT__`,Jt=Symbol.for(`vinext.unmatchedSlot`),Yt=new Set;function Xt(e){return new Set(e)}var Zt=Xt(`CP_CACHE_ENTRY_PROOF_MISSING.CP_MODEL_DISABLED.CP_ARTIFACT_COMPATIBILITY_INCOMPATIBLE.CP_ARTIFACT_COMPATIBILITY_UNKNOWN.CP_DIMENSION_COUNT_EXCEEDED.CP_DIMENSION_NAME_MISSING.CP_DIMENSION_NAME_TOO_LONG.CP_DIMENSION_VALUE_COUNT_EXCEEDED.CP_DIMENSION_VALUE_TOO_LONG.CP_DIMENSION_VALUES_MISSING.CP_ENCODED_VARIANT_TOO_LONG.CP_INVALID_VARIANT_BUDGET.CP_ROUTE_VARIANT_BUDGET_ROUTE_MISMATCH.CP_ROUTE_VARIANT_CEILING_EXCEEDED.CP_UNSAFE_PUBLIC_DIMENSION.CP_BOUNDARY_OUTCOME_MISMATCH.CP_BOUNDARY_OUTCOME_UNKNOWN.CP_PRIVATE_DYNAMIC_DOWNGRADE.CP_STATIC_LAYOUT_CANDIDATE_OUTPUT_KIND.CP_STATIC_LAYOUT_CURRENT_OUTPUT_KIND.CP_STATIC_LAYOUT_ID_MISMATCH.CP_STATIC_LAYOUT_OBSERVATION_OUTPUT_KIND.CP_STATIC_LAYOUT_OBSERVATION_OUTPUT_MISMATCH.CP_STATIC_LAYOUT_PRIVATE_DYNAMIC_DOWNGRADE.CP_STATIC_LAYOUT_REQUEST_API_OBSERVED.CP_STATIC_LAYOUT_REQUEST_API_UNKNOWN.CP_STATIC_LAYOUT_ROOT_BOUNDARY_MISMATCH.CP_STATIC_LAYOUT_ROOT_BOUNDARY_UNKNOWN.CP_STATIC_LAYOUT_VARIANT_DIMENSION_UNPROVEN`.split(`.`)),Qt=Et;function $t(e,t){return Qt(e.slotId,t.slotId)}function N(e,t={}){let n=t.layoutIds?new Set(t.layoutIds):null,r=new Set,i=[];for(let t of e){if(r.has(t.slotId))throw Error(`[vinext] Invalid __slotBindings in App Router payload: duplicate slot id`);if(r.add(t.slotId),n&&t.ownerLayoutId!==null&&!n.has(t.ownerLayoutId))throw Error(`[vinext] Invalid __slotBindings in App Router payload: owner layout id missing from __layoutIds`);i.push({...t})}return i.sort($t)}function P(e,t){return t===null?e:`${e}${Bt}${t}`}function en(e,t){return P(`route:${e}`,t)}function tn(e,t){return P(`page:${e}`,t)}function nn(e){return`layout:${e}`}function rn(e){return`template:${e}`}function an(e,t){return`slot:${e}:${t}`}function on(e,t){return P(e,t)}function sn(e){let t=e.indexOf(Bt),n=t===-1?e:e.slice(0,t);return n.startsWith(`/`)?{interceptionContext:t===-1?null:e.slice(t+1),path:n}:null}function cn(e){return e.startsWith(`/`)?e:null}function F(e){if(e.startsWith(`route:`)){let t=sn(e.slice(6));return t?{interceptionContext:t.interceptionContext,kind:`route`,path:t.path}:null}if(e.startsWith(`page:`)){let t=sn(e.slice(5));return t?{interceptionContext:t.interceptionContext,kind:`page`,path:t.path}:null}if(e.startsWith(`layout:`)){let t=cn(e.slice(7));return t?{kind:`layout`,treePath:t}:null}if(e.startsWith(`template:`)){let t=cn(e.slice(9));return t?{kind:`template`,treePath:t}:null}if(e.startsWith(`slot:`)){let t=e.slice(5),n=t.indexOf(`:`);if(n<=0)return null;let r=t.slice(0,n),i=cn(t.slice(n+1));return i?{kind:`slot`,name:r,treePath:i}:null}return null}function ln(e){if(!e.startsWith(`slot:`))return!1;let t=e.slice(5),n=t.indexOf(`:`);return n>0&&t.charCodeAt(n+1)===47}function un(e){let t=[...e.layoutIds??[]],n={[k]:e.routeId,[Ut]:e.interceptionContext,[D]:t,[A]:e.rootLayoutTreePath,...e.dynamicStaleTimeSeconds===void 0?{}:{[E]:e.dynamicStaleTimeSeconds},...e.sourcePage===null||e.sourcePage===void 0?{}:{[Gt]:e.sourcePage}},r=e.interception?{...n,[Ht]:e.interception}:n;return e.slotBindings&&e.slotBindings.length>0?{...r,[M]:N(e.slotBindings,{layoutIds:t})}:r}function dn(e){let t=!1;for(let[n,r]of Object.entries(e))if(ln(n)&&r===`__VINEXT_UNMATCHED_SLOT__`){t=!0;break}if(!t)return e;let n={};for(let[t,r]of Object.entries(e))n[t]=ln(t)&&r===`__VINEXT_UNMATCHED_SLOT__`?Jt:r;return n}function fn(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;for(let t of Object.values(e))if(t!==`s`&&t!==`d`)return!1;return!0}function pn(e){return fn(e)?e:{}}function mn(e,t){if(e===void 0)return[];if(!Array.isArray(e))throw Error(`[vinext] Invalid ${t} in App Router payload: expected layout id string[]`);let n=[];for(let r of e){if(typeof r!=`string`)throw Error(`[vinext] Invalid ${t} in App Router payload: expected layout id string[]`);if(F(r)?.kind!==`layout`)throw Error(`[vinext] Invalid ${t} in App Router payload: expected layout ids`);n.push(r)}return n}function hn(e){return mn(e,D)}function gn(e){return mn(e,j)}function _n(e){return e===`active`||e==="default"||e===`unmatched`}function vn(e,t={}){if(e===void 0)return[];if(!Array.isArray(e))throw Error(`[vinext] Invalid __slotBindings in App Router payload: expected array`);let n=[];for(let t of e){if(!m(t))throw Error(`[vinext] Invalid __slotBindings in App Router payload: expected objects`);let e=t.slotId;if(typeof e!=`string`||F(e)?.kind!==`slot`)throw Error(`[vinext] Invalid __slotBindings in App Router payload: expected slot ids`);let r=t.ownerLayoutId;if(r!==null&&(typeof r!=`string`||F(r)?.kind!==`layout`))throw Error(`[vinext] Invalid __slotBindings in App Router payload: expected owner layout ids`);let i=t.state;if(!_n(i))throw Error(`[vinext] Invalid __slotBindings in App Router payload: expected state`);let a=t.activeRouteId;if(a!=null&&(typeof a!=`string`||F(a)?.kind!==`route`))throw Error(`[vinext] Invalid __slotBindings in App Router payload: expected route ids`);n.push({...a===void 0?{}:{activeRouteId:a},ownerLayoutId:r,slotId:e,state:i})}return N(n,t)}function I(e,t){let n=e[t];if(typeof n!=`string`)throw Error(`[vinext] Invalid __interception in App Router payload: expected strings`);return n}function yn(e){if(!wt(e))throw Error(`[vinext] Invalid __interception in App Router payload: expected path URLs`);return e}function bn(e,t){let n=F(e);if(n?.kind!==`route`||n.path!==t||n.interceptionContext!==null)throw Error(`[vinext] Invalid __interception in App Router payload: expected route ids`);return e}function xn(e){if(F(e)?.kind!==`slot`)throw Error(`[vinext] Invalid __interception in App Router payload: expected slot id`);return e}function Sn(e){if(e==null)return null;if(!m(e))throw Error(`[vinext] Invalid __interception in App Router payload: expected object`);let t=yn(I(e,`sourceMatchedUrl`)),n=yn(I(e,`targetMatchedUrl`));return{sourceMatchedUrl:t,sourceRouteId:bn(I(e,`sourceRouteId`),t),slotId:xn(I(e,`slotId`)),targetMatchedUrl:n,targetRouteId:bn(I(e,`targetRouteId`),n)}}function Cn(e){return!(typeof e!=`object`||!e||Array.isArray(e)||(0,ae.isValidElement)(e))}function wn(e,t){return{...e,[O]:t}}function Tn(e){if(!Cn(e.element))return e.element;let t=En(e.skipDisposition),n={};for(let[r,i]of Object.entries(e.element)){if(t.has(r)){It(e.element,r);continue}n[r]=i===Jt?qt:i}return n[O]=e.layoutFlags,t.size>0&&(n[j]=[...t]),n[T]=e.artifactCompatibility??x(),e.cacheEntryReuseProof&&(n[Vt]=e.cacheEntryReuseProof),e.dynamicStaleTimeSeconds!==void 0&&(n[E]=e.dynamicStaleTimeSeconds),e.renderObservation&&(n[Wt]=e.renderObservation),n}function En(e){if(e?.enabled!==!0)return Yt;let t=new Set;for(let n of e.skippedEntryIds)F(n)?.kind===`layout`&&t.add(n);return t}function Dn(e){return e===void 0?x():At(e)??x()}function On(e){return e==null||typeof e!=`string`||!e.startsWith(`/`)?null:e}function kn(){return{kind:`runtime-cache-entry`,decision:null}}function An(e){return typeof e==`string`&&Zt.has(e)}function jn(e){return e===`renderFresh`||e===`privateUncacheable`}function Mn(e){return e===`affectedOutput`||e===`route`}function Nn(e){if(e===void 0)return null;if(!m(e)||e.kind!==`runtime-cache-entry`)return kn();let t=e.decision;return t===null||!m(t)?kn():t.kind===`reuse`&&t.canReuse===!0&&t.code===`CP_STATIC_LAYOUT_REUSE_PROVEN`&&t.reuseClass===`static-layout`?{kind:`runtime-cache-entry`,decision:{canReuse:!0,code:t.code,kind:`reuse`,reuseClass:t.reuseClass}}:t.kind===`reject`&&t.canReuse===!1&&An(t.code)&&jn(t.mode)&&Mn(t.scope)?{kind:`runtime-cache-entry`,decision:{canReuse:!1,code:t.code,kind:`reject`,mode:t.mode,scope:t.scope}}:kn()}function Pn(e){let t=e[k];if(typeof t!=`string`)throw Error(`[vinext] Missing __route string in App Router payload`);let n=e[Ut];if(n!=null&&typeof n!=`string`)throw Error(`[vinext] Invalid __interceptionContext in App Router payload`);let r=e[A];if(r===void 0)throw Error(`[vinext] Missing __rootLayout key in App Router payload`);if(r!==null&&typeof r!=`string`)throw Error(`[vinext] Invalid __rootLayout in App Router payload: expected string or null`);let i=pn(e[O]),a=hn(e[D]),o=gn(e[j]),s=vn(e[M],{layoutIds:a}),c=Sn(e[Ht]),l=Dn(e[T]),u=Nn(e[Vt]),d=e[E],f=typeof d==`number`&&Number.isFinite(d)&&d>=0?d:void 0,p=On(e[Gt]);return{artifactCompatibility:l,...u?{cacheEntryReuseProof:u}:{},...f===void 0?{}:{dynamicStaleTimeSeconds:f},interception:c,interceptionContext:n??null,layoutIds:a,layoutFlags:i,routeId:t,rootLayoutTreePath:r,skippedLayoutIds:o,slotBindings:s,sourcePage:p}}var Fn={keys:{artifactCompatibility:T,cacheEntryReuseProof:Vt,dynamicStaleTime:E,interception:Ht,interceptionContext:Ut,layoutIds:D,layoutFlags:O,renderObservation:Wt,rootLayout:A,route:k,skippedLayoutIds:j,slotBindings:M,sourcePage:Gt},unmatchedSlotValue:qt,createMetadataEntries:un,decode:dn,encodeCacheKey:on,encodeLayoutId:nn,encodeOutgoingPayload:Tn,encodePageId:tn,encodeRouteId:en,encodeSlotId:an,encodeTemplateId:rn,isSlotId:ln,parseElementKey:F,readMetadata:Pn,withLayoutFlags:wn},In=4096,Ln=256,Rn=16;function zn(e){return e.length===0||e.length>Ln?!1:Fn.isSlotId(e)}function Bn(e){if(!e||e.length>In)return null;let t=e.split(/\s+/).filter(e=>e&&zn(e));return t.length===0?null:Array.from(new Set(t)).sort().slice(0,Rn).join(` `)||null}var Vn=`navigation`,Hn=`prefetch-empty`,L=`prefetch-dynamic-shell`,R=`prefetch-loading-shell`;function Un(e){return e===`prefetch-empty`?`prefetch-empty`:e===`prefetch-dynamic-shell`?`prefetch-dynamic-shell`:e===`prefetch-loading-shell`?`prefetch-loading-shell`:null}function Wn(e){switch(e){case Hn:return Hn;case L:return L;case R:return R;default:return Vn}}var Gn=`__prefetchLoadingShell`,Kn=/[^\t\x20-\x7e]/,qn=/[^\t\x20-\x7e]+/g;function Jn(e){return Kn.test(e)?e.replace(qn,e=>encodeURIComponent(e)):e}function Yn(e){return e.map(Jn)}var Xn=Symbol.for(`vinext.cache.fallback`),Zn=globalThis,Qn=i(`vinext.cache.als`),$n=Zn[Xn]??={actionRevalidationKind:0,pendingRevalidatedTags:new Set,pendingRevalidations:new Set,requestScopedCacheLife:null,unstableCacheObservations:new Map,unstableCacheRevalidation:`foreground`};function z(){return r()?a():Qn.getStore()??$n}function er(){if(r()||Qn.getStore()!==void 0)return!0;let e=ot();return e===`action`||e===`route-handler`}function tr(e){if(!er())return!1;let t=z().pendingRevalidatedTags;return e.some(e=>t.has(e))}async function nr(){let e=z(),t=!1,n;for(;e.pendingRevalidations.size>0;){let r=[...e.pendingRevalidations];e.pendingRevalidations.clear();let i=await Promise.allSettled(r);for(let e of i)e.status===`rejected`&&!t&&(t=!0,n=e.reason)}if(t)throw n}function rr(e){let t=z();if(t.requestScopedCacheLife===null){t.requestScopedCacheLife={...e};return}e.stale!==void 0&&(t.requestScopedCacheLife.stale=t.requestScopedCacheLife.stale===void 0?e.stale:Math.min(t.requestScopedCacheLife.stale,e.stale)),e.revalidate!==void 0&&(t.requestScopedCacheLife.revalidate=t.requestScopedCacheLife.revalidate===void 0?e.revalidate:Math.min(t.requestScopedCacheLife.revalidate,e.revalidate)),e.expire!==void 0&&(t.requestScopedCacheLife.expire=t.requestScopedCacheLife.expire===void 0?e.expire:Math.min(t.requestScopedCacheLife.expire,e.expire))}function ir(){let e=z().requestScopedCacheLife;return e===null?null:{...e}}function ar(){let e=z(),t=e.requestScopedCacheLife;return e.requestScopedCacheLife=null,t}function or(){return[...z().unstableCacheObservations.values()].sort((e,t)=>e.keyHash.localeCompare(t.keyHash))}var sr=[`traceparent`,`tracestate`],cr=`v3`,B=1024*1024,V=31536e3,H=class extends Error{constructor(){super(`Fetch body too large for cache key generation`)}},U=class extends Error{constructor(){super(`Fetch body could not be serialized for cache key generation`)}};function lr(e,t){let n={};e instanceof Request&&e.headers&&e.headers.forEach((e,t)=>{n[t]=e}),t?.headers&&(t.headers instanceof Headers?t.headers:new Headers(t.headers)).forEach((e,t)=>{n[t]=e});for(let e of sr)delete n[e];return n}var ur=[`authorization`,`cookie`,`x-api-key`];function dr(e,t){let n=lr(e,t);return ur.some(e=>e in n)}async function fr(e,t,n){for(let[r,i]of e.entries()){if(typeof i==`string`){t(JSON.stringify([r,{kind:`string`,value:i}]));continue}if(i.size>B||n()+i.size>B)throw new H;t(JSON.stringify([r,{kind:`file`,name:i.name,type:i.type,value:await i.text()}]))}}function pr(e){let t=e?.split(`;`)[0]?.trim().toLowerCase();if(t===`multipart/form-data`||t===`application/x-www-form-urlencoded`)return t}function mr(e){let[t,...n]=e.split(`;`),r=n.map(e=>e.trim()).filter(Boolean).filter(e=>!/^boundary\s*=/i.test(e)),i=t.trim().toLowerCase();return r.length>0?`${i}; ${r.join(`; `)}`:i}async function hr(e){let t=e.headers.get(`content-length`);if(t){let e=Number(t);if(Number.isFinite(e)&&e>B)throw new H}let n=e.clone(),r=n.headers.get(`content-type`)??void 0,i=n.body?.getReader();if(!i)return{chunks:[],contentType:r};let a=[],o=0;try{for(;;){let{done:e,value:t}=await i.read();if(e)break;if(o+=t.byteLength,o>B)throw new H;a.push(t)}}catch(e){throw i.cancel().catch(()=>{}),e}return{chunks:a,contentType:r}}async function gr(e,t){if(!t?.body&&!(e instanceof Request&&e.body))return{bodyChunks:[]};let n=[],r=new TextEncoder,i=new TextDecoder,a=0,o,s=e=>{if(a+=r.encode(e).byteLength,a>B)throw new H;n.push(e)},c=()=>a;if(t?.body instanceof Uint8Array){if(t.body.byteLength>B)throw new H;s(i.decode(t.body)),t._ogBody=t.body}else if(t?.body&&typeof t.body.getReader==`function`){let[e,r]=t.body.tee();t._ogBody=r;let o=e.getReader();try{for(;;){let{done:e,value:t}=await o.read();if(e)break;if(typeof t==`string`)s(t);else{if(a+=t.byteLength,a>B)throw new H;n.push(i.decode(t,{stream:!0}))}}let e=i.decode();e&&s(e)}catch(e){throw await o.cancel(),e instanceof H?e:new U}}else if(t?.body instanceof URLSearchParams)t._ogBody=t.body,s(t.body.toString());else if(t?.body&&typeof t.body.keys==`function`){let e=t.body;t._ogBody=t.body,await fr(e,s,c)}else if(t?.body&&typeof t.body.arrayBuffer==`function`){let e=t.body;if(e.size>B)throw new H;s(await e.text());let n=await e.arrayBuffer();t._ogBody=new Blob([n],{type:e.type})}else if(typeof t?.body==`string`){if(t.body.length>B)throw new H;s(t.body),t._ogBody=t.body}else if(e instanceof Request&&e.body){let t,r;try{({chunks:t,contentType:r}=await hr(e))}catch(e){throw e instanceof H?e:new U}let a=pr(r);if(a)try{return await fr(await new Request(e.url,{method:e.method,headers:r?{"content-type":r}:void 0,body:new Blob(t)}).formData(),s,c),o=a===`multipart/form-data`&&r?mr(r):void 0,{bodyChunks:n,canonicalizedContentType:o}}catch(e){throw e instanceof H?e:new U}for(let e of t)s(i.decode(e,{stream:!0}));let l=i.decode();l&&s(l)}return{bodyChunks:n,canonicalizedContentType:o}}async function _r(e,t){let n,r=`GET`;typeof e==`string`?n=e:e instanceof URL?n=e.toString():(n=e.url,r=e.method||`GET`),t?.method&&(r=t.method);let i=lr(e,t),{bodyChunks:a,canonicalizedContentType:o}=await gr(e,t);o&&(i[`content-type`]=o);let s=JSON.stringify([cr,n,r,i,t?.mode,t?.redirect,t?.credentials,t?.referrer,t?.referrerPolicy,t?.integrity,t?.cache,a]),c=new TextEncoder().encode(s),l=await crypto.subtle.digest(`SHA-256`,c);return Array.prototype.map.call(new Uint8Array(l),e=>e.toString(16).padStart(2,`0`)).join(``)}var vr=Symbol.for(`vinext.fetchCache.pendingRefetches`),yr=globalThis,W=yr[vr]??=new Map,br=6e4,xr=Symbol.for(`vinext.fetchCache.originalFetch`),Sr=globalThis,G=Sr[xr]??=globalThis.fetch,Cr=Symbol.for(`vinext.fetchCache.fallback`),wr=globalThis,Tr=i(`vinext.fetchCache.als`),Er=()=>{},K;globalThis.FinalizationRegistry&&(K=new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&t.cancel(`Response object has been garbage collected`).then(Er,Er)}));var Dr=wr[Cr]??={cacheableFetchUrls:new Set,currentRequestTags:[],currentFetchSoftTags:[],currentFetchCacheMode:null,currentForceDynamicFetchDefault:!1,dynamicFetchUrls:new Set,refreshStaleFetchesInForeground:!1,isFetchDedupeActive:!1,currentFetchDedupeEntries:new Map};function q(){return r()?a():Tr.getStore()??Dr}function Or(e){return typeof e==`string`?e:e instanceof URL?e.toString():e.url}function J(e){q().dynamicFetchUrls.add(Or(e))}function kr(e){J(e),ze()}function Ar(e){q().cacheableFetchUrls.add(Or(e))}function jr(e){Number.isFinite(e)&&e>0&&rr({revalidate:e})}function Mr(){return q().refreshStaleFetchesInForeground}async function Nr(e,t,n,r){if(e.status!==200)return null;let i=r?.cloneForReturn===!1?e:e.clone(),a=await i.text(),o={};return i.headers.forEach((e,t)=>{t.toLowerCase()!==`set-cookie`&&(o[t]=e)}),{kind:`FETCH`,data:{headers:o,body:a,url:e.url,status:i.status},tags:t,revalidate:n}}async function Pr(e,t,n,r,i,a){let o=await Nr(n,r,i,a);o&&await e.set(t,o,{fetchCache:!0,tags:r,revalidate:i})}async function Fr(e,t,n,r,i){if(!Number.isFinite(i)||i<=0||typeof n.revalidate!=`number`||n.revalidate<=i)return;let a=Array.from(new Set([...n.tags??[],...r])),o={...n,tags:a,revalidate:i};await e.set(t,o,{fetchCache:!0,tags:a,revalidate:i})}function Ir(){return[...q().cacheableFetchUrls].sort()}function Lr(){return[...q().dynamicFetchUrls].sort()}function Rr(){let e=q(),t=[...e.dynamicFetchUrls].sort();return e.dynamicFetchUrls=new Set,t}function zr(){return[...q().currentRequestTags]}function Br(e){q().currentFetchSoftTags=[...e]}function Vr(e){q().currentFetchCacheMode=e}function Hr(e){q().currentForceDynamicFetchDefault=e}function Ur(e){q().refreshStaleFetchesInForeground=e}function Wr(e,t){return e===`no-store`||e===`no-cache`||t?.revalidate===0}function Gr(e,t){return e===`force-cache`||t?.revalidate===!1||typeof t?.revalidate==`number`&&t.revalidate>0}function Kr(e){return e?.revalidate!==void 0}function qr(e){return!e?.revalidate}function Jr(e,t,n,r){if(r&&(!n||n===`auto`)&&(e===void 0||e==="default")&&qr(t))return`no-store`;if(!n||n===`auto`)return e;switch(n){case`force-cache`:return`force-cache`;case`force-no-store`:return`no-store`;case`only-cache`:if(Wr(e,t))throw Error('Route segment config `fetchCache = "only-cache"` conflicts with no-store fetch.');return e??`force-cache`;case`only-no-store`:if(Gr(e,t))throw Error('Route segment config `fetchCache = "only-no-store"` conflicts with cacheable fetch.');return e??`no-store`;case`default-cache`:return e??(Kr(t)?void 0:`force-cache`);case`default-no-store`:return e??(Kr(t)?void 0:`no-store`)}return e}function Yr(e,t){if(t?.cache!==void 0)return t.cache;if(!(!(e instanceof Request)||e.cache==="default"))return e.cache}function Xr(e){let t=Array.from(e.headers.entries()).filter(([e])=>!sr.includes(e.toLowerCase()));return JSON.stringify([e.method,t,e.mode,e.redirect,e.credentials,e.referrer,e.referrerPolicy,e.integrity])}function Zr(e,t){if(t?.signal)return null;let n=t?.method?.toUpperCase();if(n&&n!==`GET`&&n!==`HEAD`||t?.keepalive)return null;let r=typeof e==`string`||e instanceof URL?new Request(e,t):e;return r.method!==`GET`&&r.method!==`HEAD`||r.keepalive?null:{url:r.url,key:Xr(r)}}function Y(e,t){let n=new Response(e,{status:t.status,statusText:t.statusText,headers:new Headers(t.headers)});return Object.defineProperty(n,"url",{value:t.url,configurable:!0,enumerable:!0,writable:!1}),K&&n.body&&K.register(n,new WeakRef(n.body)),n}function Qr(e){if(!e.body)return[Y(null,e),Y(null,e)];let[t,n]=e.body.tee();return[Y(t,e),Y(n,e)]}function $r(e,t){let n=new Response(e.body,{status:e.status??200,headers:e.headers});return Object.defineProperty(n,"url",{value:e.url??Or(t),configurable:!0,enumerable:!0,writable:!1}),K&&n.body&&K.register(n,new WeakRef(n.body)),n}function X(e,t){let n=q();if(!n.isFetchDedupeActive)return G(e,t);let r=Zr(e,t);if(!r)return G(e,t);let i=n.currentFetchDedupeEntries,a=i.get(r.url);a||(a=[],i.set(r.url,a));for(let e of a)if(e.key===r.key)return e.promise.then(()=>{if(!e.response)throw Error(`[vinext] Missing deduped fetch response`);let[t,n]=Qr(e.response);return e.response=n,t});let o=G(e,t),s={key:r.key,promise:o,response:null};return a.push(s),o.then(e=>{let[t,n]=Qr(e);return s.response=n,t},e=>{let t=a.indexOf(s);throw t!==-1&&a.splice(t,1),e})}function ei(){return async function(e,t){let n=t?.next,r=Jr(Yr(e,t),n,q().currentFetchCacheMode,q().currentForceDynamicFetchDefault);if(!n&&!r)return J(e),X(e,t);if(r===`no-store`||r===`no-cache`||n?.revalidate===0){let n=Z(t,r);return kr(e),X(e,n)}if(!(r===`force-cache`||n?.revalidate===!1||typeof n?.revalidate==`number`&&n.revalidate>0)&&dr(e,t)){let n=Z(t,r);return J(e),X(e,n)}let i;if(r===`force-cache`)i=n?.revalidate&&typeof n.revalidate==`number`?n.revalidate:V;else if(n?.revalidate===!1)i=V;else if(typeof n?.revalidate==`number`&&n.revalidate>0)i=n.revalidate;else if(n?.tags&&n.tags.length>0)i=V;else{let n=Z(t,r);return J(e),X(e,n)}Ar(e),jr(i);let a=q().currentRequestTags,o=Yn(n?.tags??[]);if(o.length>0)for(let e of o)a.includes(e)||a.push(e);let s=q().currentFetchSoftTags,c=Z(t,r),l;try{l=await _r(e,c),c=Z(c,r)}catch(t){if(t instanceof H||t instanceof U)return c=Z(c,r),J(e),X(e,c);throw t}let u=_(),d=tr([...o,...s]);try{let t=d?null:await u.get(l,{kind:`FETCH`,tags:o,softTags:s,revalidate:i});if(t?.value?.kind===`FETCH`&&tr([...t.value.tags??[],...o,...s])&&(d=!0,t=null),t?.value&&t.value.kind===`FETCH`&&t.cacheState!==`stale`){await Fr(u,l,t.value,o,i);let n=t.value.data;return $r(n,e)}if(t?.value&&t.value.kind===`FETCH`&&t.cacheState===`stale`){if(Mr()){let t=await X(e,c);return await Pr(u,l,t,o,i),t}let n=t.value.data;if(!W.has(l)){let t=G(e,c).then(async e=>{await Pr(u,l,e,o,i,{cloneForReturn:!1})}).catch(t=>{let n=typeof e==`string`?e:e instanceof URL?e.toString():e.url;console.error(`[vinext] fetch cache background revalidation failed for ${n} (key=${l.slice(0,12)}...):`,t)}).finally(()=>{W.get(l)===t&&W.delete(l),clearTimeout(n)});W.set(l,t);let n=setTimeout(()=>{W.get(l)===t&&W.delete(l)},br);te()?.waitUntil(t)}return $r(n,e)}}catch(e){console.error(`[vinext] fetch cache read error:`,e)}let f=await(d?G(e,c):X(e,c)),p=await Nr(f,o,i);return p&&u.set(l,p,{fetchCache:!0,tags:o,revalidate:i}).catch(e=>{console.error(`[vinext] fetch cache write error:`,e)}),f}}function Z(e,t){if(!e)return t===void 0?void 0:{cache:t};let{next:n,_ogBody:r,...i}=e;return t!==void 0&&(i.cache=t),r!==void 0&&(i.body=r),Object.keys(i).length>0?i:void 0}var ti=Symbol.for(`vinext.fetchCache.patchInstalled`);function ni(){wr[ti]||(wr[ti]=!0,globalThis.fetch=ei())}function ri(e){ni();let t=q();return t.isFetchDedupeActive?e():r()?o(e=>{e.isFetchDedupeActive=!0,e.currentFetchDedupeEntries=new Map},e):Tr.run({...t,isFetchDedupeActive:!0,currentFetchDedupeEntries:new Map},e)}function ii(){ni()}function ai(){}var Q=`_rsc`,oi=`X-Vinext-RSC-Compatibility-Id`,si=`text/x-component`,ci=[`RSC`,f,c,p,u,ie,re,s].join(`, `),li=12,ui=new TextEncoder;function di(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replaceAll(`+`,`-`).replaceAll(`/`,`_`).replace(/=+$/,``)}function fi(e){return e??`0`}function pi(e){return e&&e.length>0?e:null}function mi(){return pi(`0f01a76b-2e9c-4417-887f-ef74be791cea`)}function hi(e,t=mi()){let n=pi(t);n?e.set(oi,n):e.delete(oi)}function gi(e){e.delete(ne)}function _i(e){let t=Wn(e);return t===`navigation`?null:t}function $(e,t={}){let n=[e.get(c),e.get(p),e.get(f),e.get(u),e.get(ie),e.get(re),...t.includeRenderModeHeader===!1?[]:[_i(e.get(s))]];return n.every(e=>e===null)?null:n.map(fi).join(`,`)}async function vi(e){let t=await globalThis.crypto.subtle.digest(`SHA-256`,ui.encode(e));return di(new Uint8Array(t).subarray(0,li))}function yi(e){let t=$(e);return t===null?``:b(t)}async function bi(e){let t=$(e,{includeRenderModeHeader:!1});return t===null?null:vi(t)}function xi(e){let t=$(e,{includeRenderModeHeader:!1});return t===null?null:b(t)}function Si(e){return(e.search.startsWith(`?`)?e.search.slice(1):e.search).split(`&`).filter(e=>e.length>0&&!Ci(e))}function Ci(e){let t=e.indexOf(`=`),n=t===-1?e:e.slice(0,t);try{return decodeURIComponent(n.replaceAll(`+`,` `))===Q}catch{return n===Q}}function wi(e){return(e.search.startsWith(`?`)?e.search.slice(1):e.search).split(`&`).some(e=>e.length>0&&Ci(e))}async function Ti(e){let t=$(e);return t===null?``:vi(t)}function Ei(e,t){let n=Si(e);n.push(t.length>0?`${Q}=${t}`:Q),e.search=`?${n.join(`&`)}`}function Di(e){let t=Si(e);e.search=t.length>0?`?${t.join(`&`)}`:``}function Oi(e){return e.endsWith(`.rsc`)?e.slice(0,-4):e}function ki(e){let t=e.indexOf(`#`);return t===-1?e:e.slice(0,t)}async function Ai(e,t){let n=new URL(ki(e),`http://vinext.local`);return Ei(n,await Ti(t)),`${n.pathname}${n.search}`}async function ji(e,t){let n=new URL(t.url),r=new URL(e,n);if(r.origin!==n.origin)return r.toString();let i=await Ai(`${r.pathname}${r.search}`,t.headers);return`${r.origin}${i}`}async function Mi(e){if(!e.isRscRequest||e.request.method!==`GET`&&e.request.method!==`HEAD`)return null;let t=new URL(e.request.url),n=t.searchParams.get(Q),r=await Ti(e.request.headers);if(n===null&&r===``&&t.pathname.endsWith(`.rsc`))return null;let i=new Set([r]);if(n!==null&&n!==r&&(i.add(yi(e.request.headers)),_i(e.request.headers.get(`X-Vinext-Rsc-Render-Mode`))===null)){let t=await bi(e.request.headers),n=xi(e.request.headers);t!==null&&i.add(t),n!==null&&i.add(n)}return n!==null&&i.has(n)?null:(Ei(t,r),new Response(null,{status:307,headers:{Location:`${t.pathname}${t.search}`}}))}var Ni=new Set([`set-cookie`,`vary`]);function Pi(e,t){let n=e.get(`Vary`),r=(n?`${n}, ${t}`:t).split(`,`).map(e=>e.trim()).filter(e=>e.length>0);if(r.some(e=>e===`*`)){e.set(`Vary`,`*`);return}let i=new Set,a=[];for(let e of r){let t=e.toLowerCase();i.has(t)||(i.add(t),a.push(e))}e.set(`Vary`,a.join(`, `))}function Fi(e,t){if(t)for(let[n,r]of t){if(n.toLowerCase()===`vary`){Pi(e,r);continue}if(Ni.has(n.toLowerCase())){e.append(n,r);continue}e.set(n,r)}}var Ii=`private, no-cache, no-store, max-age=0, must-revalidate`,Li=`public, max-age=0, must-revalidate`,Ri=`s-maxage=31536000, stale-while-revalidate`,zi=`s-maxage=0, stale-while-revalidate`,Bi=`no-store, must-revalidate`,Vi=/(?:^|,)\s*s-maxage\s*=/i;function Hi(){return process.env.VINEXT_NEXT_DEPLOY_CACHE_CONTROL===`1`}function Ui(e){return Vi.test(e)}function Wi(e,t){if(e.delete(`Cache-Control`),Hi()&&Ui(t.cacheControl)){e.set(`Cache-Control`,Li);return}let n=Ct().buildResponseHeaders(t);for(let[t,r]of Object.entries(n)){if(r===null){e.delete(t);continue}r!==``&&e.set(t,r)}}function Gi(e,t){return e===!1?Ri:t===void 0?`s-maxage=${e}, stale-while-revalidate`:e>=t?`s-maxage=${e}`:`s-maxage=${e}, stale-while-revalidate=${t-e}`}function Ki(e,t,n){return t===!1||t===1/0?Ri:e===`STALE`&&n===void 0?zi:Gi(t,n)}function qi(e){return e===`STATIC`?`HIT`:e}function Ji(e,t){e.set(l,t),e.set(d,qi(t))}export{zt as $,Ur as A,ve as At,R as B,zr as C,He as Ct,Vr as D,We as Dt,ri as E,et as Et,Jn as F,A as G,Wn as H,Gn as I,Cn as J,Kt as K,Vn as L,nr as M,ir as N,Br as O,Ne as Ot,or as P,Rt as Q,L as R,ii as S,Ge as St,Lr as T,ct as Tt,Bn as U,Un as V,D as W,Lt as X,N as Y,Ft as Z,Mi as _,ht as _t,Wi as a,wt as at,ai as b,rt as bt,Fi as c,Ct as ct,si as d,qe as dt,Dt as et,ci as f,gt as ft,wi as g,ut as gt,ji as h,st as ht,Ri as i,At as it,ar as j,m as jt,Hr as k,Me as kt,Pi as l,nt as lt,gi as m,pt as mt,Ii as n,Ot as nt,Ki as o,Tt as ot,hi as p,dt as pt,Fn as q,Bi as r,Nt as rt,Gi as s,b as st,Ji as t,x as tt,Q as u,tt as ut,Di as v,ze as vt,Ir as w,at as wt,Rr as x,Ke as xt,Oi as y,Ue as yt,Hn as z};
@@ -0,0 +1 @@
1
+ var e=e=>`https://image.tmdb.org/t/p/w500${e}`,t=e=>`https://image.tmdb.org/t/p/w1280${e}`,n={"stranger-things":{id:`stranger-things`,title:`Stranger Things`,tagline:`Every ending has a beginning.`,synopsis:`When a young boy vanishes, a small town uncovers a mystery involving secret experiments, terrifying supernatural forces and one strange little girl.`,year:2022,maturityRating:`TV-14`,duration:`4 Seasons`,match:98,genres:[`Sci-Fi`,`Horror`,`Teen TV`],cast:[`Winona Ryder`,`David Harbour`,`Millie Bobby Brown`],creators:[`The Duffer Brothers`],mediaType:`series`,seasons:4,rank:1,isOriginal:!0,isHD:!0,hasAudioDescription:!0,posterImage:e(`/49WJfeN0moxb9IPfGn8AIqMGskD.jpg`),backdropImage:t(`/56v2KjBlU4XaOv9rVYEQypROD7P.jpg`),accentColor:`#163c58`},wednesday:{id:`wednesday`,title:`Wednesday`,tagline:`Smart, sarcastic and a little dead inside.`,synopsis:`Wednesday Addams investigates a murder spree while making new friends — and foes — at Nevermore Academy.`,year:2022,maturityRating:`TV-14`,duration:`1 Season`,match:97,genres:[`Mystery`,`Fantasy`,`Comedy`],cast:[`Jenna Ortega`,`Gwendoline Christie`,`Riki Lindhome`],creators:[`Alfred Gough`,`Miles Millar`],mediaType:`series`,seasons:1,rank:2,isOriginal:!0,isHD:!0,hasAudioDescription:!0,posterImage:e(`/9PFonBhy4cQy7Jz20NpMygczOkv.jpg`),backdropImage:t(`/iHSwvRVsRyxpX7FE7GbviaDvgGZ.jpg`),accentColor:`#324651`},arcane:{id:`arcane`,title:`Arcane`,tagline:`Every legend has a beginning.`,synopsis:`Amid the stark discord of twin cities Piltover and Zaun, two sisters fight on rival sides of a war between magic technologies and clashing convictions.`,year:2021,maturityRating:`TV-14`,duration:`1 Season`,match:96,genres:[`Animation`,`Action`,`Fantasy`],cast:[`Hailee Steinfeld`,`Ella Purnell`,`Kevin Alejandro`],creators:[`Christian Linke`,`Alex Yee`],mediaType:`series`,seasons:1,rank:3,isOriginal:!0,isHD:!0,hasAudioDescription:!0,posterImage:e(`/fqldf2t8ztc9aiwn3k6mlX3tvRT.jpg`),backdropImage:t(`/rkB4LyZHo1NHXFEDHl9vSD9r1lI.jpg`),accentColor:`#274f68`},"money-heist":{id:`money-heist`,title:`Money Heist`,tagline:`The perfect robbery becomes a fight for survival.`,synopsis:`Eight thieves take hostages and lock themselves inside the Royal Mint of Spain as a criminal mastermind manipulates the police from afar.`,year:2021,maturityRating:`TV-MA`,duration:`5 Parts`,match:95,genres:[`Crime`,`Thriller`,`Drama`],cast:[`Úrsula Corberó`,`Álvaro Morte`,`Itziar Ituño`],creators:[`Álex Pina`],mediaType:`series`,seasons:5,rank:4,isOriginal:!0,isHD:!0,posterImage:e(`/reEMJA1uzscCbkpeRJeTT2bjqUp.jpg`),backdropImage:t(`/gFZriCkpJYsApPZEF3jhxL4yLzG.jpg`),accentColor:`#731f21`},"squid-game":{id:`squid-game`,title:`Squid Game`,tagline:`45.6 billion won is child's play.`,synopsis:`Hundreds of cash-strapped players accept a strange invitation to compete in children's games for a tempting prize — and deadly high stakes.`,year:2021,maturityRating:`TV-MA`,duration:`1 Season`,match:94,genres:[`Thriller`,`Drama`,`Survival`],cast:[`Lee Jung-jae`,`Park Hae-soo`,`Wi Ha-jun`],creators:[`Hwang Dong-hyuk`],mediaType:`series`,seasons:1,rank:5,isOriginal:!0,isHD:!0,hasAudioDescription:!0,posterImage:e(`/dDlEmu3EZ0Pgg93K2SVNLCjCSvE.jpg`),backdropImage:t(`/qw3J9cNeLioOLoR68WX7z79aCdK.jpg`),accentColor:`#8b3158`},dark:{id:`dark`,title:`Dark`,tagline:`Everything is connected.`,synopsis:`A missing child sets four families on a frantic hunt for answers as they unearth a mind-bending mystery that spans three generations.`,year:2020,maturityRating:`TV-MA`,duration:`3 Seasons`,match:96,genres:[`Sci-Fi`,`Mystery`,`Thriller`],cast:[`Louis Hofmann`,`Oliver Masucci`,`Jördis Triebel`],creators:[`Baran bo Odar`,`Jantje Friese`],mediaType:`series`,seasons:3,rank:6,isOriginal:!0,isHD:!0,posterImage:e(`/apbrbWs8M9lyOpJYU5WXrpFbk1Z.jpg`),backdropImage:t(`/75HgaphatW0PDI3XIHQWZUpbhn6.jpg`),accentColor:`#33464a`},ozark:{id:`ozark`,title:`Ozark`,synopsis:`A financial adviser drags his family to the Missouri Ozarks, where he must launder money to appease a drug boss.`,year:2022,maturityRating:`TV-MA`,duration:`4 Seasons`,match:93,genres:[`Crime`,`Thriller`,`Drama`],cast:[`Jason Bateman`,`Laura Linney`,`Sofia Hublitz`],creators:[`Bill Dubuque`,`Mark Williams`],mediaType:`series`,seasons:4,episode:{season:3,episode:6,title:`Su Casa Es Mi Casa`,duration:`59m`},isOriginal:!0,isHD:!0,posterImage:e(`/pCGyPVrI9Fzw6rE1Pvi4BIXF6ET.jpg`),backdropImage:t(`/aatG9iVAUL7U7OyFEmupESpOrD2.jpg`),accentColor:`#234862`},"peaky-blinders":{id:`peaky-blinders`,title:`Peaky Blinders`,synopsis:`A notorious gang in 1919 Birmingham is led by the fierce Tommy Shelby, a crime boss set on moving up in the world no matter the cost.`,year:2022,maturityRating:`TV-MA`,duration:`6 Seasons`,match:95,genres:[`Crime`,`Period Piece`,`Drama`],cast:[`Cillian Murphy`,`Paul Anderson`,`Sophie Rundle`],creators:[`Steven Knight`],mediaType:`series`,seasons:6,episode:{season:5,episode:2,title:`Black Cats`,duration:`58m`},isHD:!0,posterImage:e(`/vUUqzWa2LnHIVqkaKVlVGkVcZIW.jpg`),backdropImage:t(`/wiE9doxiLwq3WCGamDIOb2PqBqc.jpg`),accentColor:`#413a35`},"cobra-kai":{id:`cobra-kai`,title:`Cobra Kai`,synopsis:`Decades after the tournament that changed their lives, the rivalry between Johnny and Daniel reignites in this sequel to the Karate Kid films.`,year:2022,maturityRating:`TV-14`,duration:`5 Seasons`,match:91,genres:[`Martial Arts`,`Comedy`,`Drama`],cast:[`Ralph Macchio`,`William Zabka`,`Xolo Maridueña`],creators:[`Josh Heald`,`Jon Hurwitz`,`Hayden Schlossberg`],mediaType:`series`,seasons:5,episode:{season:4,episode:8,title:`Party Time`,duration:`33m`},isOriginal:!0,isHD:!0,posterImage:e(`/6POBWybSBDBKjSs1VAQcnQC1qyt.jpg`),backdropImage:t(`/mQJVtl7SYjNLwjsUZZsITmAxtdU.jpg`),accentColor:`#8b2624`},"one-piece":{id:`one-piece`,title:`ONE PIECE`,synopsis:`With his straw hat and ragtag crew, young pirate Monkey D. Luffy goes on an epic voyage for treasure in this live-action adaptation.`,year:2023,maturityRating:`TV-14`,duration:`1 Season`,match:94,genres:[`Adventure`,`Fantasy`,`Action`],cast:[`Iñaki Godoy`,`Emily Rudd`,`Mackenyu`],creators:[`Matt Owens`,`Steven Maeda`],mediaType:`series`,seasons:1,episode:{season:1,episode:5,title:`Eat at Baratie!`,duration:`51m`},isNew:!0,isOriginal:!0,isHD:!0,hasAudioDescription:!0,posterImage:e(`/cMD9Ygz11zjJzAovURpO75Qg7rT.jpg`),backdropImage:t(`/2rmK7mnchw9Xr3XdiTFSxTTLXqv.jpg`),accentColor:`#235b72`},"love-death-robots":{id:`love-death-robots`,title:`Love, Death & Robots`,synopsis:`Terrifying creatures, wicked surprises and dark comedy converge in an animated anthology presented by Tim Miller and David Fincher.`,year:2022,maturityRating:`TV-MA`,duration:`3 Volumes`,match:92,genres:[`Animation`,`Sci-Fi`,`Anthology`],cast:[`Joe Manganiello`,`Rosario Dawson`,`Mary Elizabeth Winstead`],creators:[`Tim Miller`],mediaType:`series`,seasons:3,episode:{season:3,episode:2,title:`Bad Travelling`,duration:`22m`},isOriginal:!0,isHD:!0,posterImage:e(`/asDqvkE66EegtKJJXIRhBJPxscr.jpg`),backdropImage:(e=>`https://images.unsplash.com/${e}?auto=format&fit=crop&w=1600&q=85`)(`photo-1518770660439-4636190af475`),accentColor:`#854330`},"the-witcher":{id:`the-witcher`,title:`The Witcher`,tagline:`Destiny is a beast.`,synopsis:`Geralt of Rivia, a mutated monster hunter for hire, journeys toward his destiny in a turbulent world where people often prove more wicked than beasts.`,year:2023,maturityRating:`TV-MA`,duration:`3 Seasons`,match:93,genres:[`Fantasy`,`Action`,`Adventure`],cast:[`Henry Cavill`,`Anya Chalotra`,`Freya Allan`],creators:[`Lauren Schmidt Hissrich`],mediaType:`series`,seasons:3,rank:7,isNew:!0,isOriginal:!0,isHD:!0,hasAudioDescription:!0,posterImage:e(`/cZ0d3rtvXPVvuiX22sP79K3Hmjz.jpg`),backdropImage:t(`/foGkPxpw9h8zln81j63mix5B7m8.jpg`),accentColor:`#344b4d`},"queens-gambit":{id:`queens-gambit`,title:`The Queen's Gambit`,synopsis:`In a 1950s orphanage, a young girl reveals an astonishing talent for chess and begins an unlikely journey to stardom while grappling with addiction.`,year:2020,maturityRating:`TV-MA`,duration:`Limited Series`,match:98,genres:[`Period Piece`,`Drama`,`Coming-of-Age`],cast:[`Anya Taylor-Joy`,`Bill Camp`,`Marielle Heller`],creators:[`Scott Frank`,`Allan Scott`],mediaType:`limited-series`,seasons:1,rank:8,isOriginal:!0,isHD:!0,hasAudioDescription:!0,posterImage:e(`/zU0htwkhNvBQdVSIKB9s6hgVeFK.jpg`),backdropImage:t(`/34OGjFEbHj0E3lE2w0iTUVq0CBz.jpg`),accentColor:`#684536`},bridgerton:{id:`bridgerton`,title:`Bridgerton`,synopsis:`The eight close-knit siblings of the Bridgerton family look for love and happiness in London high society.`,year:2022,maturityRating:`TV-MA`,duration:`2 Seasons`,match:91,genres:[`Romance`,`Period Piece`,`Drama`],cast:[`Adjoa Andoh`,`Julie Andrews`,`Lorraine Ashbourne`],creators:[`Chris Van Dusen`],mediaType:`series`,seasons:2,rank:9,isOriginal:!0,isHD:!0,hasAudioDescription:!0,posterImage:e(`/luoKpgVwi1E5nQsi7W0UuKHu2Rq.jpg`),backdropImage:t(`/jmtmDc9GrrbuIUc6QjmEM1Yr8gH.jpg`),accentColor:`#76546f`},narcos:{id:`narcos`,title:`Narcos`,synopsis:`The true story of Colombia's infamously violent and powerful drug cartels fuels this gritty gangster drama.`,year:2017,maturityRating:`TV-MA`,duration:`3 Seasons`,match:94,genres:[`Crime`,`Drama`,`Based on Real Life`],cast:[`Wagner Moura`,`Pedro Pascal`,`Boyd Holbrook`],creators:[`Chris Brancato`,`Carlo Bernard`,`Doug Miro`],mediaType:`series`,seasons:3,rank:10,isOriginal:!0,isHD:!0,posterImage:e(`/rTmal9fDbwh5F0waol2hq35U4ah.jpg`),backdropImage:t(`/bT7pArYmcE91iCTec5H7pjrVbSu.jpg`),accentColor:`#68593e`},"extraction-2":{id:`extraction-2`,title:`Extraction 2`,synopsis:`Back from the brink of death, highly skilled commando Tyler Rake takes on another dangerous mission: saving the imprisoned family of a ruthless gangster.`,year:2023,maturityRating:`R`,duration:`2h 3m`,match:92,genres:[`Action`,`Thriller`,`Adventure`],cast:[`Chris Hemsworth`,`Golshifteh Farahani`,`Tornike Gogrichiani`],director:`Sam Hargrave`,mediaType:`movie`,isNew:!0,isOriginal:!0,isHD:!0,hasAudioDescription:!0,posterImage:e(`/7gKI9hpEMcZUQpNgKrkDzJpbnNS.jpg`),backdropImage:t(`/9n2tJBplPbgR2ca05hS5CKXwP2c.jpg`),accentColor:`#515c5b`},"the-gray-man":{id:`the-gray-man`,title:`The Gray Man`,synopsis:`When a shadowy CIA agent uncovers damning agency secrets, he's hunted across the globe by a sociopathic rogue operative who's put a bounty on his head.`,year:2022,maturityRating:`PG-13`,duration:`2h 9m`,match:89,genres:[`Action`,`Spy`,`Thriller`],cast:[`Ryan Gosling`,`Chris Evans`,`Ana de Armas`],director:`Anthony Russo, Joe Russo`,mediaType:`movie`,isOriginal:!0,isHD:!0,posterImage:e(`/5Eom3JsXgQlCj6QIsGCwXkX7wyH.jpg`),backdropImage:t(`/27Mj3rFYP3xqFy7lnz17vEd8Ms.jpg`),accentColor:`#5f5243`},"red-notice":{id:`red-notice`,title:`Red Notice`,synopsis:`An FBI profiler pursuing the world's most wanted art thief becomes his reluctant partner in crime to catch an elusive crook who's always one step ahead.`,year:2021,maturityRating:`PG-13`,duration:`1h 58m`,match:88,genres:[`Action`,`Comedy`,`Heist`],cast:[`Dwayne Johnson`,`Ryan Reynolds`,`Gal Gadot`],director:`Rawson Marshall Thurber`,mediaType:`movie`,isOriginal:!0,isHD:!0,hasAudioDescription:!0,posterImage:e(`/lAXONuqg41NwUMuzMiFvicDET9Y.jpg`),backdropImage:t(`/dK12GIdhGP6NPGFssK2Fh265jyr.jpg`),accentColor:`#51292a`},"glass-onion":{id:`glass-onion`,title:`Glass Onion`,tagline:`A Knives Out mystery.`,synopsis:`World-famous detective Benoit Blanc heads to Greece to peel back the layers of a mystery surrounding a tech billionaire and his eclectic crew of friends.`,year:2022,maturityRating:`PG-13`,duration:`2h 21m`,match:94,genres:[`Mystery`,`Comedy`,`Crime`],cast:[`Daniel Craig`,`Edward Norton`,`Janelle Monáe`],director:`Rian Johnson`,mediaType:`movie`,isOriginal:!0,isHD:!0,hasAudioDescription:!0,posterImage:e(`/vDGr1YdrlfbU9wxTOdpf3zChmv9.jpg`),backdropImage:t(`/dKqa850uvbNSCaQCV4Im1XlzEtQ.jpg`),accentColor:`#776846`},"bird-box":{id:`bird-box`,title:`Bird Box`,synopsis:`Five years after an ominous unseen presence drives most of society to suicide, a survivor and her two children make a desperate bid to reach safety.`,year:2018,maturityRating:`R`,duration:`2h 4m`,match:87,genres:[`Thriller`,`Horror`,`Drama`],cast:[`Sandra Bullock`,`Trevante Rhodes`,`John Malkovich`],director:`Susanne Bier`,mediaType:`movie`,isOriginal:!0,isHD:!0,hasAudioDescription:!0,posterImage:e(`/rGfGfgL2pEPCfhIvqHXieXFn7gp.jpg`),backdropImage:t(`/pDKFL1zcHzEpmz4MJA5JJnRbJeD.jpg`),accentColor:`#46453f`},"the-adam-project":{id:`the-adam-project`,title:`The Adam Project`,synopsis:`After accidentally crash-landing in 2022, time-traveling fighter pilot Adam Reed teams up with his 12-year-old self on a mission to save the future.`,year:2022,maturityRating:`PG-13`,duration:`1h 46m`,match:90,genres:[`Sci-Fi`,`Family`,`Comedy`],cast:[`Ryan Reynolds`,`Walker Scobell`,`Mark Ruffalo`],director:`Shawn Levy`,mediaType:`movie`,isOriginal:!0,isHD:!0,hasAudioDescription:!0,posterImage:e(`/wFjboE0aFZNbVOF05fzrka9Fqyx.jpg`),backdropImage:t(`/ewUqXnwiRLhgmGhuksOdLgh49Ch.jpg`),accentColor:`#315d70`},"dont-look-up":{id:`dont-look-up`,title:`Don't Look Up`,synopsis:`Two astronomers go on a media tour to warn humankind of a planet-killing comet hurtling toward Earth, but the distracted world would rather look away.`,year:2021,maturityRating:`R`,duration:`2h 18m`,match:91,genres:[`Satire`,`Comedy`,`Drama`],cast:[`Leonardo DiCaprio`,`Jennifer Lawrence`,`Meryl Streep`],director:`Adam McKay`,mediaType:`movie`,isOriginal:!0,isHD:!0,hasAudioDescription:!0,posterImage:e(`/th4E1yqsE8DGpAseLiUrI60Hf8V.jpg`),backdropImage:t(`/nvxrQQspxmSblCYDtvDAbVFX8Jt.jpg`),accentColor:`#5a6780`},"the-irishman":{id:`the-irishman`,title:`The Irishman`,synopsis:`Hit man Frank Sheeran looks back at the secrets he kept as a loyal member of the Bufalino crime family.`,year:2019,maturityRating:`R`,duration:`3h 29m`,match:95,genres:[`Crime`,`Drama`,`Gangster`],cast:[`Robert De Niro`,`Al Pacino`,`Joe Pesci`],director:`Martin Scorsese`,mediaType:`movie`,isOriginal:!0,isHD:!0,hasAudioDescription:!0,posterImage:e(`/mbm8k3GFhXS0ROd9AD1gqYbIFbM.jpg`),backdropImage:t(`/1R6cvRtZgsYCkh8UFuWFN33xBP4.jpg`),accentColor:`#4d4a43`},"all-quiet":{id:`all-quiet`,title:`All Quiet on the Western Front`,synopsis:`When 17-year-old Paul joins the Western Front in World War I, his initial excitement is shattered by the grim reality of life in the trenches.`,year:2022,maturityRating:`R`,duration:`2h 28m`,match:96,genres:[`War`,`Drama`,`Based on a Book`],cast:[`Felix Kammerer`,`Albrecht Schuch`,`Aaron Hilmer`],director:`Edward Berger`,mediaType:`movie`,isOriginal:!0,isHD:!0,hasAudioDescription:!0,posterImage:e(`/hYqOjJ7Gh1fbqXrxlIao1g8ZehF.jpg`),backdropImage:t(`/zbOlpFM306PHE7EP1OELCH5qSmS.jpg`),accentColor:`#474941`},"society-of-the-snow":{id:`society-of-the-snow`,title:`Society of the Snow`,synopsis:`Following a plane crash in the remote heart of the Andes, survivors join forces and become each other's best hope as they navigate their way home.`,year:2023,maturityRating:`R`,duration:`2h 25m`,match:95,genres:[`Survival`,`Drama`,`Based on Real Life`],cast:[`Enzo Vogrincic`,`Agustín Pardella`,`Matías Recalt`],director:`J. A. Bayona`,mediaType:`movie`,isNew:!0,isOriginal:!0,isHD:!0,hasAudioDescription:!0,posterImage:e(`/2e853FDVSIso600RqAMunPxiZjq.jpg`),backdropImage:t(`/vdpE5pjJVql5aD6pnzRqlFmgxXf.jpg`),accentColor:`#80919a`}},r=n[`stranger-things`],i=[{id:`trending-now`,title:`Trending Now`,kind:`standard`,items:[n[`stranger-things`],n.wednesday,n.arcane,n[`money-heist`],n[`squid-game`],n.dark]},{id:`netflix-originals`,title:`Only on Netflix`,kind:`originals`,items:[n[`the-witcher`],n[`queens-gambit`],n.bridgerton,n.narcos,n[`money-heist`],n.arcane]},{id:`top-10`,title:`Top 10 in the U.S. Today`,kind:`ranked`,items:[n[`stranger-things`],n.wednesday,n.arcane,n[`money-heist`],n[`squid-game`],n.dark,n[`the-witcher`],n[`queens-gambit`],n.bridgerton,n.narcos]},{id:`movie-night`,title:`Blockbuster Movie Night`,kind:`standard`,items:[n[`extraction-2`],n[`the-gray-man`],n[`red-notice`],n[`glass-onion`],n[`bird-box`],n[`the-adam-project`],n[`dont-look-up`]]},{id:`critically-acclaimed`,title:`Critically Acclaimed`,kind:`standard`,items:[n[`the-irishman`],n[`all-quiet`],n[`society-of-the-snow`],n[`queens-gambit`],n.dark,n.arcane]}],a=Object.values(n);function o(e){return a.find(t=>t.id===e)}export{o as i,i as n,r,a as t};