onvif-dashboard 0.1.1 → 0.1.3

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 (26) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  4. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  5. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  6. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  8. package/.next/standalone/.next/server/app/api/discover/route.js.nft.json +1 -1
  9. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/chunks/[root-of-the-server]__195bljr._.js +1 -1
  12. package/.next/standalone/.next/server/chunks/ssr/src_app_08xvpjs._.js +1 -1
  13. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  14. package/.next/standalone/.next/server/pages/500.html +1 -1
  15. package/.next/{static/chunks/32zls3n3ypa-e.js → standalone/.next/static/chunks/2-wfd5oby9n7m.js} +1 -1
  16. package/.next/standalone/package.json +1 -1
  17. package/.next/{standalone/.next/static/chunks/32zls3n3ypa-e.js → static/chunks/2-wfd5oby9n7m.js} +1 -1
  18. package/cli/onvif-dashboard.mjs +12 -3
  19. package/dist/lib/first-run.js +37 -11
  20. package/package.json +1 -1
  21. /package/.next/standalone/.next/static/{5Dud7duCTA7gTx1uiJlzx → LN9KqkM1xFvoN0zr9EgU1}/_buildManifest.js +0 -0
  22. /package/.next/standalone/.next/static/{5Dud7duCTA7gTx1uiJlzx → LN9KqkM1xFvoN0zr9EgU1}/_clientMiddlewareManifest.js +0 -0
  23. /package/.next/standalone/.next/static/{5Dud7duCTA7gTx1uiJlzx → LN9KqkM1xFvoN0zr9EgU1}/_ssgManifest.js +0 -0
  24. /package/.next/static/{5Dud7duCTA7gTx1uiJlzx → LN9KqkM1xFvoN0zr9EgU1}/_buildManifest.js +0 -0
  25. /package/.next/static/{5Dud7duCTA7gTx1uiJlzx → LN9KqkM1xFvoN0zr9EgU1}/_clientMiddlewareManifest.js +0 -0
  26. /package/.next/static/{5Dud7duCTA7gTx1uiJlzx → LN9KqkM1xFvoN0zr9EgU1}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- 5Dud7duCTA7gTx1uiJlzx
1
+ LN9KqkM1xFvoN0zr9EgU1
@@ -7,9 +7,9 @@
7
7
  "static/chunks/0cz1d0mv5g_q7.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/5Dud7duCTA7gTx1uiJlzx/_buildManifest.js",
11
- "static/5Dud7duCTA7gTx1uiJlzx/_ssgManifest.js",
12
- "static/5Dud7duCTA7gTx1uiJlzx/_clientMiddlewareManifest.js"
10
+ "static/LN9KqkM1xFvoN0zr9EgU1/_buildManifest.js",
11
+ "static/LN9KqkM1xFvoN0zr9EgU1/_ssgManifest.js",
12
+ "static/LN9KqkM1xFvoN0zr9EgU1/_clientMiddlewareManifest.js"
13
13
  ],
14
14
  "rootMainFiles": [
15
15
  "static/chunks/310vm2bl3xxpt.js",
@@ -1 +1 @@
1
- <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/310vm2bl3xxpt.js"/><script src="/_next/static/chunks/2mmpezlrfmbu5.js" async=""></script><script src="/_next/static/chunks/27t_qfc-3_lzs.js" async=""></script><script src="/_next/static/chunks/04l2v6p7fakl9.js" async=""></script><script src="/_next/static/chunks/11be91k_gj8bl.js" async=""></script><script src="/_next/static/chunks/turbopack-1gvya9vclt5yj.js" async=""></script><script src="/_next/static/chunks/3fntmmi971322.js" async=""></script><link rel="icon" href="/favicon.ico?favicon.2vob68tjqpejf.ico" sizes="256x256" type="image/x-icon"/><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/310vm2bl3xxpt.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\",1]\n7:X\n0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"5Dud7duCTA7gTx1uiJlzx\"}\n7:C\n9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\nd:I[27201,[\"/_next/static/chunks/3fntmmi971322.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.2vob68tjqpejf.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Ld\",\"1\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/310vm2bl3xxpt.js"/><script src="/_next/static/chunks/2mmpezlrfmbu5.js" async=""></script><script src="/_next/static/chunks/27t_qfc-3_lzs.js" async=""></script><script src="/_next/static/chunks/04l2v6p7fakl9.js" async=""></script><script src="/_next/static/chunks/11be91k_gj8bl.js" async=""></script><script src="/_next/static/chunks/turbopack-1gvya9vclt5yj.js" async=""></script><script src="/_next/static/chunks/3fntmmi971322.js" async=""></script><link rel="icon" href="/favicon.ico?favicon.2vob68tjqpejf.ico" sizes="256x256" type="image/x-icon"/><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/310vm2bl3xxpt.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\",1]\n7:X\n0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"LN9KqkM1xFvoN0zr9EgU1\"}\n7:C\n9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\nd:I[27201,[\"/_next/static/chunks/3fntmmi971322.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.2vob68tjqpejf.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Ld\",\"1\",{}]]\n"])</script></body></html>
@@ -7,7 +7,7 @@
7
7
  a:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"MetadataBoundary"]
8
8
  c:I[68027,["/_next/static/chunks/3fntmmi971322.js"],"default",1]
9
9
  7:X
10
- 0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{},"$undefined","$undefined",4624]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"5Dud7duCTA7gTx1uiJlzx"}
10
+ 0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{},"$undefined","$undefined",4624]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"LN9KqkM1xFvoN0zr9EgU1"}
11
11
  7:C
12
12
  9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
13
13
  d:I[27201,["/_next/static/chunks/3fntmmi971322.js"],"IconMark"]
@@ -9,7 +9,7 @@ c:I[37457,["/_next/static/chunks/3fntmmi971322.js"],"default"]
9
9
  6:X
10
10
  e:X
11
11
  e:C
12
- 0:{"buildId":"5Dud7duCTA7gTx1uiJlzx","data":[{"rsc":["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":"$@5","staleTime":"$6","varyParams":null},{"rsc":["$","$1","h",{"children":[null,["$","$L7",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L8",null,{"children":["$","$3",null,{"name":"Next.Metadata","children":[["$","link","0",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L9","1",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":"$@a","staleTime":"$6","varyParams":null},{"rsc":["$","$1","c",{"children":[null,["$","$Lb",null,{"parallelRouterKey":"children","template":["$","$Lc",null,{}]}]]}],"isPartial":"$@d","staleTime":"$6","varyParams":"$e"}],"isUpgradeableISRFallback":false,"a":"$@f","rootVaryParams":null,"needsRuntimeRequest":"$@10"}
12
+ 0:{"buildId":"LN9KqkM1xFvoN0zr9EgU1","data":[{"rsc":["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":"$@5","staleTime":"$6","varyParams":null},{"rsc":["$","$1","h",{"children":[null,["$","$L7",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L8",null,{"children":["$","$3",null,{"name":"Next.Metadata","children":[["$","link","0",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L9","1",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":"$@a","staleTime":"$6","varyParams":null},{"rsc":["$","$1","c",{"children":[null,["$","$Lb",null,{"parallelRouterKey":"children","template":["$","$Lc",null,{}]}]]}],"isPartial":"$@d","staleTime":"$6","varyParams":"$e"}],"isUpgradeableISRFallback":false,"a":"$@f","rootVaryParams":null,"needsRuntimeRequest":"$@10"}
13
13
  4:null
14
14
  6:300
15
15
  10:true
@@ -7,7 +7,7 @@
7
7
  a:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"MetadataBoundary"]
8
8
  c:I[68027,["/_next/static/chunks/3fntmmi971322.js"],"default",1]
9
9
  7:X
10
- 0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{},"$undefined","$undefined",4624]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"5Dud7duCTA7gTx1uiJlzx"}
10
+ 0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{},"$undefined","$undefined",4624]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"LN9KqkM1xFvoN0zr9EgU1"}
11
11
  7:C
12
12
  9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
13
13
  d:I[27201,["/_next/static/chunks/3fntmmi971322.js"],"IconMark"]
@@ -1 +1 @@
1
- 0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4272,"slots":null}}},"staleTime":300,"buildId":"5Dud7duCTA7gTx1uiJlzx"}
1
+ 0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4272,"slots":null}}},"staleTime":300,"buildId":"LN9KqkM1xFvoN0zr9EgU1"}
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../node_modules/@swc/helpers/esm/_interop_require_default.js","../../../../../node_modules/@swc/helpers/package.json","../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../node_modules/next/dist/client/lib/console.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js","../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/blocking-route-messages.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../node_modules/next/dist/server/app-render/sync-io-messages.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../node_modules/next/dist/server/node-environment.js","../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../node_modules/next/dist/server/require-hook.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/instant-messages.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../node_modules/react/cjs/react.development.js","../../../../../node_modules/react/cjs/react.production.js","../../../../../node_modules/react/index.js","../../../../../node_modules/react/package.json","../../../../../src/app/api/recordings/clip/route.test.ts","../../../../../src/app/api/recordings/clip/route.ts","../../../../../src/app/api/recordings/route.test.ts","../../../../../src/app/api/recordings/route.ts","../../../../../src/app/recordings/clip-list.test.tsx","../../../../../src/app/recordings/clip-list.tsx","../../../../../src/app/recordings/page.test.tsx","../../../../../src/app/recordings/page.tsx","../../../chunks/[root-of-the-server]__00_hq9v._.js","../../../chunks/[root-of-the-server]__195bljr._.js","../../../chunks/[root-of-the-server]__1y1qpr6._.js","../../../chunks/[turbopack]_runtime.js","../../../chunks/_1p694qt._.js","../../../chunks/_next-internal_server_app_api_discover_route_actions_0iz9n0w.js","../../../chunks/node_modules_13lvumq._.js","../../../chunks/node_modules_next_1zdbrne._.js","./route_client-reference-manifest.js"],"fileHashes":["ef6ac6914a3f24c9f4a98105a3bdd310","bcdfbca94848d30153fa83f8421423d7","50bb01754878225cf6730e02b44f84d6","a5446fb306fcfec27c39f81de38ec842","9c53694dd40423680deefb5a1e3c25af","57ca86e5858543e1466b92725355539a","11eb668649d2434d25d26977b8e01e49","02186196a2cc227a67f668f00873f72a","fa8a4dd27dcbde144881044b2fa74f64","cd28bbc5151decba058dfd44bd7f47ef","a8da0851d005c95af6d4ff8b8db146ce","6c697268f6b81fcfdb5d412d5c82b308","bbebd49a713726ec0fa1a097033ea3bb","61445cc4a73d56b154f397d2e4213b60","4e6491a35b1970e74a940d26e575216a","0bcd39f6f5be09dab16374e3bf84459e","ce87d6acf7ef1610862d34a9c59528ea","d1e9d6e75ad3a9d63cc0825ec4ebe282","b81183ad70cf2df4130a6f7853eff593","edcceea1e2a5c13a14d12f4d422f733a","92d7eec9f49250bf6325e1b4186fb521","0b3ab74e31e82ffa9b20013ed883782e","15ad04875f6d43fc8bd602b20d828566","5fe712e91d39531cd872b189115c7a25","c07db8edca1ca7e626b14dbf4e3584a8","0aa24beea9e1b8ae34954feb1be5caa6","f9295c2e844d919b0be75fffe2e10989","9b1c71085acfacbddbca5126bca3f550","6505c89743b18298e0e22489f1d956ed","8f2d8843ff7d322ecc237601ab58e1d7","d90d4f1de46d810d671d85f21ec5d352","2eecc48be406b9c64276e31215c29e95","981807b2548ffbff8d9ad94a758813fb","9f6a333435676ba7b0045e6b0d2d9b98","2701737ab664a8fe7700053638aa0db8","33916079c6a49d35edf38970b6afa990","046a57d6280182df9f32d77ba452677f","94e9332b8f4251c1b03791e57aad9399","6978bf3fb2c443a8c9022d43a243c56a","8fb4ea2a1e97dc7ad2cbbf5641b1aa23","7175e4648ef6975b79e76f0f46dc69df","7a4c4e16ecb22ffb0ba224fa37e94a70","848334e0b7acedfd5656296df4adae7c","0a201256d245b3a0e27ed288b6ba68ae","498fc15d07579c19b3cc959a96eb5bb8","40c6916156cc44db5f0c8e266c9f1e60","1acc3875adfbadf8dd6721e71e776ecd","1eb18df669f40e7a0c8e077b365c907d","08cab8a9c8062eac4f6b9cbcc303417a","bef9750470e394d3052dfe5a7847e9a0","4d1a01dfd6b6423b2d0ff0467f613bd8","7cfcc764f9b49f84e568c2a8b481ef89","ecbf1e0ab3ad74e5979ab5771d710880","59f473418a3a0c96c8ec855aa72bd02a","d3c2a37fdf66b455a0ed47d33fc12229","215309237f9a05ec8f52edadcd0565bf","5f3e641690915ca863053b107ae0493a","44cca5b4413d63e3179289d31fe1bcf1","ce930365528e6b0f94d346e8a3a6c976","85ef440bb2c4d6dcc19f40e9d77059e3","b73d42aa8f40f578ac38efd8516ad8a3","fc4f7117734aa11e26028c3a1f0e9934","4b5216f48144eab06a89f40a112df0f9","7f7c41d2d2c4e4ea0359ce7e30c4676d","a52c1bfa60cdd122eb82001cf748b39b","4daf2c54f6e769ac3f1c55e2d2356e62","67530655ee6d2037c694d851f60a4d3a","72e15054e5bb83aa2714e9aa0f2a8aaa","72944fa2cce5836dad49dfd7147626d0","3c5c716d6aebf4093db91e57fe322e0c","64c0567172a45f553110cf14514d76dc","f5232a6a89b9b1646513f6f36cfd6edc","ed734e4322f6faf639acccc2130bd1f9","3a55a78645b57706246de6914d4ce134","438a096196cbf3f40712fc244347eced","59be47cbf4cb15affb56354159123835","e124239b7fff31a73bfc3e95cfc593d3","38636bd694da4120897a2a695111039c","03f54ee64db45e6ac7025c881590f862","48538028ed97d91e767563f56035e684","217152373b3f900ae15ce0920bb06da9","6dadc2917fc514e7e4c6f4cabe7d69a6","a81a01b4510a203a8811e202d3537fe8","37ac4cbd6b18d52a47105218c3573c36","5ab4d38c634c37598fc59a79eeef302f","e2a4479a35cb46058fa5fa4148e39287","a5ceecfe744045263b3b4c06e4d48cce","5654b3d7d7805129b98db879f3bbd2af","deef54fb4c402325da2038fd78856071","00751d727948063c93926f0fd2130b84","dfea88cc5423da5be7ec5d44ddcaaedd","220a1d153fd4a6d65e4ef3ab23305e12","bd95af69943c6b10d72a1520da203070","2e2b6ee2ccf6a93255a41d6364a2937b","5cabaf4f9116cc7599ed026810c77333","e9e4ab7dc571392cb5d53734fc083267","cf04136680f3f6bf234e90c074e0fa2f","1fcf06f87c17968455df586b971057d4","39c877e3960b873157ea290189eaba99","efef377aefa45bdeb9b5a0d1072ea38e","21ddea3f032aa9630808f053cb8cc9ec","bf3cff2c65a80aa0ffc0ce8cd417c6db","45b754d20e83781f563336d6b4e5821d","7120829e1ea7c7348f8e30428c47d8d6","98cc7548d2b1736c085d01793d4be4d2","9aaaa4f59fa0fcca3134ae0f5f0aec4d","75aed76c7937273ea1134eb639bb0465","d0cebcb351d10c156d31b61b473aa297","3b3520c08297f2b0c63b435cf839d11e","210923be80bd9baede87e11f168f2ef4","598229e414329e3a2496937e91110065"],"entryHash":"23ec4f59f17073e09c3bf5497a229060"}
1
+ {"version":1,"files":["../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../node_modules/@swc/helpers/esm/_interop_require_default.js","../../../../../node_modules/@swc/helpers/package.json","../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../node_modules/next/dist/client/lib/console.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js","../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/blocking-route-messages.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../node_modules/next/dist/server/app-render/sync-io-messages.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../node_modules/next/dist/server/node-environment.js","../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../node_modules/next/dist/server/require-hook.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/instant-messages.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../node_modules/react/cjs/react.development.js","../../../../../node_modules/react/cjs/react.production.js","../../../../../node_modules/react/index.js","../../../../../node_modules/react/package.json","../../../../../src/app/api/recordings/clip/route.test.ts","../../../../../src/app/api/recordings/clip/route.ts","../../../../../src/app/api/recordings/route.test.ts","../../../../../src/app/api/recordings/route.ts","../../../../../src/app/recordings/clip-list.test.tsx","../../../../../src/app/recordings/clip-list.tsx","../../../../../src/app/recordings/page.test.tsx","../../../../../src/app/recordings/page.tsx","../../../chunks/[root-of-the-server]__00_hq9v._.js","../../../chunks/[root-of-the-server]__195bljr._.js","../../../chunks/[root-of-the-server]__1y1qpr6._.js","../../../chunks/[turbopack]_runtime.js","../../../chunks/_1p694qt._.js","../../../chunks/_next-internal_server_app_api_discover_route_actions_0iz9n0w.js","../../../chunks/node_modules_13lvumq._.js","../../../chunks/node_modules_next_1zdbrne._.js","./route_client-reference-manifest.js"],"fileHashes":["ef6ac6914a3f24c9f4a98105a3bdd310","bcdfbca94848d30153fa83f8421423d7","50bb01754878225cf6730e02b44f84d6","a5446fb306fcfec27c39f81de38ec842","9c53694dd40423680deefb5a1e3c25af","57ca86e5858543e1466b92725355539a","11eb668649d2434d25d26977b8e01e49","02186196a2cc227a67f668f00873f72a","fa8a4dd27dcbde144881044b2fa74f64","cd28bbc5151decba058dfd44bd7f47ef","a8da0851d005c95af6d4ff8b8db146ce","6c697268f6b81fcfdb5d412d5c82b308","bbebd49a713726ec0fa1a097033ea3bb","61445cc4a73d56b154f397d2e4213b60","4e6491a35b1970e74a940d26e575216a","0bcd39f6f5be09dab16374e3bf84459e","ce87d6acf7ef1610862d34a9c59528ea","d1e9d6e75ad3a9d63cc0825ec4ebe282","b81183ad70cf2df4130a6f7853eff593","edcceea1e2a5c13a14d12f4d422f733a","92d7eec9f49250bf6325e1b4186fb521","0b3ab74e31e82ffa9b20013ed883782e","15ad04875f6d43fc8bd602b20d828566","5fe712e91d39531cd872b189115c7a25","c07db8edca1ca7e626b14dbf4e3584a8","0aa24beea9e1b8ae34954feb1be5caa6","f9295c2e844d919b0be75fffe2e10989","9b1c71085acfacbddbca5126bca3f550","6505c89743b18298e0e22489f1d956ed","8f2d8843ff7d322ecc237601ab58e1d7","d90d4f1de46d810d671d85f21ec5d352","2eecc48be406b9c64276e31215c29e95","981807b2548ffbff8d9ad94a758813fb","9f6a333435676ba7b0045e6b0d2d9b98","2701737ab664a8fe7700053638aa0db8","33916079c6a49d35edf38970b6afa990","046a57d6280182df9f32d77ba452677f","94e9332b8f4251c1b03791e57aad9399","6978bf3fb2c443a8c9022d43a243c56a","8fb4ea2a1e97dc7ad2cbbf5641b1aa23","7175e4648ef6975b79e76f0f46dc69df","7a4c4e16ecb22ffb0ba224fa37e94a70","848334e0b7acedfd5656296df4adae7c","0a201256d245b3a0e27ed288b6ba68ae","498fc15d07579c19b3cc959a96eb5bb8","40c6916156cc44db5f0c8e266c9f1e60","1acc3875adfbadf8dd6721e71e776ecd","1eb18df669f40e7a0c8e077b365c907d","08cab8a9c8062eac4f6b9cbcc303417a","bef9750470e394d3052dfe5a7847e9a0","4d1a01dfd6b6423b2d0ff0467f613bd8","7cfcc764f9b49f84e568c2a8b481ef89","ecbf1e0ab3ad74e5979ab5771d710880","59f473418a3a0c96c8ec855aa72bd02a","d3c2a37fdf66b455a0ed47d33fc12229","215309237f9a05ec8f52edadcd0565bf","5f3e641690915ca863053b107ae0493a","44cca5b4413d63e3179289d31fe1bcf1","ce930365528e6b0f94d346e8a3a6c976","85ef440bb2c4d6dcc19f40e9d77059e3","b73d42aa8f40f578ac38efd8516ad8a3","fc4f7117734aa11e26028c3a1f0e9934","4b5216f48144eab06a89f40a112df0f9","7f7c41d2d2c4e4ea0359ce7e30c4676d","a52c1bfa60cdd122eb82001cf748b39b","4daf2c54f6e769ac3f1c55e2d2356e62","67530655ee6d2037c694d851f60a4d3a","72e15054e5bb83aa2714e9aa0f2a8aaa","72944fa2cce5836dad49dfd7147626d0","3c5c716d6aebf4093db91e57fe322e0c","64c0567172a45f553110cf14514d76dc","f5232a6a89b9b1646513f6f36cfd6edc","ed734e4322f6faf639acccc2130bd1f9","3a55a78645b57706246de6914d4ce134","438a096196cbf3f40712fc244347eced","59be47cbf4cb15affb56354159123835","e124239b7fff31a73bfc3e95cfc593d3","38636bd694da4120897a2a695111039c","03f54ee64db45e6ac7025c881590f862","48538028ed97d91e767563f56035e684","217152373b3f900ae15ce0920bb06da9","6dadc2917fc514e7e4c6f4cabe7d69a6","a81a01b4510a203a8811e202d3537fe8","37ac4cbd6b18d52a47105218c3573c36","5ab4d38c634c37598fc59a79eeef302f","e2a4479a35cb46058fa5fa4148e39287","a5ceecfe744045263b3b4c06e4d48cce","5654b3d7d7805129b98db879f3bbd2af","deef54fb4c402325da2038fd78856071","00751d727948063c93926f0fd2130b84","dfea88cc5423da5be7ec5d44ddcaaedd","220a1d153fd4a6d65e4ef3ab23305e12","bd95af69943c6b10d72a1520da203070","2e2b6ee2ccf6a93255a41d6364a2937b","5cabaf4f9116cc7599ed026810c77333","e9e4ab7dc571392cb5d53734fc083267","cf04136680f3f6bf234e90c074e0fa2f","1fcf06f87c17968455df586b971057d4","39c877e3960b873157ea290189eaba99","efef377aefa45bdeb9b5a0d1072ea38e","21ddea3f032aa9630808f053cb8cc9ec","bf3cff2c65a80aa0ffc0ce8cd417c6db","45b754d20e83781f563336d6b4e5821d","657fbf0ed3b5640b318c8f22eaf88dc6","98cc7548d2b1736c085d01793d4be4d2","9aaaa4f59fa0fcca3134ae0f5f0aec4d","75aed76c7937273ea1134eb639bb0465","d0cebcb351d10c156d31b61b473aa297","3b3520c08297f2b0c63b435cf839d11e","210923be80bd9baede87e11f168f2ef4","598229e414329e3a2496937e91110065"],"entryHash":"23ec4f59f17073e09c3bf5497a229060"}
@@ -1 +1 @@
1
- {"version":1,"files":["../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../node_modules/@swc/helpers/esm/_interop_require_default.js","../../../node_modules/@swc/helpers/package.json","../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../node_modules/next/dist/client/lib/console.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../node_modules/next/dist/compiled/source-map/package.json","../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../node_modules/next/dist/compiled/ws/index.js","../../../node_modules/next/dist/compiled/ws/package.json","../../../node_modules/next/dist/lib/client-and-server-references.js","../../../node_modules/next/dist/lib/constants.js","../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../node_modules/next/dist/lib/interop-default.js","../../../node_modules/next/dist/lib/is-error.js","../../../node_modules/next/dist/lib/picocolors.js","../../../node_modules/next/dist/lib/scheduler.js","../../../node_modules/next/dist/lib/semver-noop.js","../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../node_modules/next/dist/server/app-render/blocking-route-messages.js","../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js","../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../node_modules/next/dist/server/app-render/sync-io-messages.js","../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../node_modules/next/dist/server/lib/lru-cache.js","../../../node_modules/next/dist/server/lib/parse-stack.js","../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../node_modules/next/dist/server/lib/source-maps.js","../../../node_modules/next/dist/server/lib/trace/constants.js","../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../node_modules/next/dist/server/load-manifest.external.js","../../../node_modules/next/dist/server/node-environment-baseline.js","../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../node_modules/next/dist/server/node-environment.js","../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../node_modules/next/dist/server/patch-error-inspect.js","../../../node_modules/next/dist/server/require-hook.js","../../../node_modules/next/dist/server/response-cache/types.js","../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../node_modules/next/dist/shared/lib/instant-messages.js","../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../node_modules/next/package.json","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react.production.js","../../../node_modules/react/index.js","../../../node_modules/react/package.json","../../../src/app/api/recordings/clip/route.test.ts","../../../src/app/api/recordings/clip/route.ts","../../../src/app/api/recordings/route.test.ts","../../../src/app/api/recordings/route.ts","../../../src/app/recordings/clip-list.test.tsx","../../../src/app/recordings/clip-list.tsx","../../../src/app/recordings/page.test.tsx","../../../src/app/recordings/page.tsx","../chunks/ssr/[root-of-the-server]__00j0r--._.js","../chunks/ssr/[root-of-the-server]__0jv6c_f._.js","../chunks/ssr/[root-of-the-server]__17v-f6m._.js","../chunks/ssr/[root-of-the-server]__1iduzaf._.js","../chunks/ssr/[root-of-the-server]__1xlcb3w._.js","../chunks/ssr/[turbopack]_runtime.js","../chunks/ssr/_0tfm89e._.js","../chunks/ssr/_172_a6w._.js","../chunks/ssr/_next-internal_server_app_page_actions_0ucar5e.js","../chunks/ssr/node_modules_05issat._.js","../chunks/ssr/node_modules_15lq9aw._.js","../chunks/ssr/node_modules_1wax83z._.js","../chunks/ssr/node_modules_@tanstack_0udur9-._.js","../chunks/ssr/node_modules_next_0x3i8za._.js","../chunks/ssr/node_modules_next_dist_0ufhxsd._.js","../chunks/ssr/node_modules_next_dist_1bunoni._.js","../chunks/ssr/node_modules_next_dist_1n3w9lb._.js","../chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js","../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js","../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892.js","../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js","../chunks/ssr/src_app_08xvpjs._.js","../chunks/ssr/src_app_0efwjni._.js","../chunks/ssr/src_app_providers_tsx_0c_dde7._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"],"fileHashes":["ef6ac6914a3f24c9f4a98105a3bdd310","bcdfbca94848d30153fa83f8421423d7","50bb01754878225cf6730e02b44f84d6","a5446fb306fcfec27c39f81de38ec842","9c53694dd40423680deefb5a1e3c25af","57ca86e5858543e1466b92725355539a","11eb668649d2434d25d26977b8e01e49","02186196a2cc227a67f668f00873f72a","fa8a4dd27dcbde144881044b2fa74f64","cd28bbc5151decba058dfd44bd7f47ef","a8da0851d005c95af6d4ff8b8db146ce","6c697268f6b81fcfdb5d412d5c82b308","61445cc4a73d56b154f397d2e4213b60","4e6491a35b1970e74a940d26e575216a","0bcd39f6f5be09dab16374e3bf84459e","ce87d6acf7ef1610862d34a9c59528ea","d1e9d6e75ad3a9d63cc0825ec4ebe282","b81183ad70cf2df4130a6f7853eff593","edcceea1e2a5c13a14d12f4d422f733a","92d7eec9f49250bf6325e1b4186fb521","0b3ab74e31e82ffa9b20013ed883782e","15ad04875f6d43fc8bd602b20d828566","5fe712e91d39531cd872b189115c7a25","c07db8edca1ca7e626b14dbf4e3584a8","0aa24beea9e1b8ae34954feb1be5caa6","f9295c2e844d919b0be75fffe2e10989","9b1c71085acfacbddbca5126bca3f550","6505c89743b18298e0e22489f1d956ed","8f2d8843ff7d322ecc237601ab58e1d7","d90d4f1de46d810d671d85f21ec5d352","2eecc48be406b9c64276e31215c29e95","981807b2548ffbff8d9ad94a758813fb","9f6a333435676ba7b0045e6b0d2d9b98","2701737ab664a8fe7700053638aa0db8","33916079c6a49d35edf38970b6afa990","046a57d6280182df9f32d77ba452677f","94e9332b8f4251c1b03791e57aad9399","6978bf3fb2c443a8c9022d43a243c56a","8fb4ea2a1e97dc7ad2cbbf5641b1aa23","7175e4648ef6975b79e76f0f46dc69df","7a4c4e16ecb22ffb0ba224fa37e94a70","848334e0b7acedfd5656296df4adae7c","0a201256d245b3a0e27ed288b6ba68ae","498fc15d07579c19b3cc959a96eb5bb8","40c6916156cc44db5f0c8e266c9f1e60","1acc3875adfbadf8dd6721e71e776ecd","1eb18df669f40e7a0c8e077b365c907d","08cab8a9c8062eac4f6b9cbcc303417a","bef9750470e394d3052dfe5a7847e9a0","4d1a01dfd6b6423b2d0ff0467f613bd8","7cfcc764f9b49f84e568c2a8b481ef89","ecbf1e0ab3ad74e5979ab5771d710880","59f473418a3a0c96c8ec855aa72bd02a","d3c2a37fdf66b455a0ed47d33fc12229","215309237f9a05ec8f52edadcd0565bf","5f3e641690915ca863053b107ae0493a","44cca5b4413d63e3179289d31fe1bcf1","ce930365528e6b0f94d346e8a3a6c976","85ef440bb2c4d6dcc19f40e9d77059e3","b73d42aa8f40f578ac38efd8516ad8a3","fc4f7117734aa11e26028c3a1f0e9934","4b5216f48144eab06a89f40a112df0f9","7f7c41d2d2c4e4ea0359ce7e30c4676d","a52c1bfa60cdd122eb82001cf748b39b","4daf2c54f6e769ac3f1c55e2d2356e62","67530655ee6d2037c694d851f60a4d3a","72e15054e5bb83aa2714e9aa0f2a8aaa","72944fa2cce5836dad49dfd7147626d0","3c5c716d6aebf4093db91e57fe322e0c","64c0567172a45f553110cf14514d76dc","f5232a6a89b9b1646513f6f36cfd6edc","ed734e4322f6faf639acccc2130bd1f9","3a55a78645b57706246de6914d4ce134","438a096196cbf3f40712fc244347eced","59be47cbf4cb15affb56354159123835","e124239b7fff31a73bfc3e95cfc593d3","38636bd694da4120897a2a695111039c","03f54ee64db45e6ac7025c881590f862","48538028ed97d91e767563f56035e684","217152373b3f900ae15ce0920bb06da9","6dadc2917fc514e7e4c6f4cabe7d69a6","a81a01b4510a203a8811e202d3537fe8","37ac4cbd6b18d52a47105218c3573c36","5ab4d38c634c37598fc59a79eeef302f","e2a4479a35cb46058fa5fa4148e39287","a5ceecfe744045263b3b4c06e4d48cce","5654b3d7d7805129b98db879f3bbd2af","deef54fb4c402325da2038fd78856071","00751d727948063c93926f0fd2130b84","dfea88cc5423da5be7ec5d44ddcaaedd","220a1d153fd4a6d65e4ef3ab23305e12","bd95af69943c6b10d72a1520da203070","2e2b6ee2ccf6a93255a41d6364a2937b","5cabaf4f9116cc7599ed026810c77333","e9e4ab7dc571392cb5d53734fc083267","cf04136680f3f6bf234e90c074e0fa2f","1fcf06f87c17968455df586b971057d4","39c877e3960b873157ea290189eaba99","efef377aefa45bdeb9b5a0d1072ea38e","21ddea3f032aa9630808f053cb8cc9ec","bf3cff2c65a80aa0ffc0ce8cd417c6db","6cc65c89ef05cc59524f39e2c63a481e","35907db3199eef469a81b07518e07751","e458cd608937d720777d92f4f0d7e4e8","14906e869c4cf7ce31818b49376c11bb","77f6fab6c9b3c4696b33b86e36dae4de","0b2250eb6c263d49271dd230dd6cb198","d8f6086f45585af82158f23d4fa1ffa9","db2ab3ad246184450be9cb88728284d7","7a09ce80e7f3d3554f1456906336fb09","38c7b6ea515390948cc462baf8d970e2","3792fc3e3dd633db45296c9ea04cc118","2c574e310b9355cd7fc61e341450902f","9ebccd7ca6d581521f85604dea8fee78","b6243f3fdab24b7bc94f8e96d863da0f","304e67b240f76ff9abbc830044f72487","7d38bc7a4025692e688fdc17d41ef2c6","f1f9866f1230a22d5a4d536b35df27ff","c8782a613f579f085ea13d4d80e80b86","f72b6e4ab06ddd4f1d11cf7e15e754f8","7b9cdc171d5254d6cfd481a1d688d849","cedd0e303a2a58a21e0ed99701073ecb","a17c3f4802689dfd5ff3f9b4ccaa936f","ded6c7db54842c8f6d4958c62a1faf15","0f520f9c48888f261e13c61683897db1","16e46fdae0f9e53f20442b629714017f","53d59e688ca10cf00249717989886dc4"],"entryHash":"d6e0193216b74ef199f24a6def94950a"}
1
+ {"version":1,"files":["../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../node_modules/@swc/helpers/esm/_interop_require_default.js","../../../node_modules/@swc/helpers/package.json","../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../node_modules/next/dist/client/lib/console.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../node_modules/next/dist/compiled/source-map/package.json","../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../node_modules/next/dist/compiled/ws/index.js","../../../node_modules/next/dist/compiled/ws/package.json","../../../node_modules/next/dist/lib/client-and-server-references.js","../../../node_modules/next/dist/lib/constants.js","../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../node_modules/next/dist/lib/interop-default.js","../../../node_modules/next/dist/lib/is-error.js","../../../node_modules/next/dist/lib/picocolors.js","../../../node_modules/next/dist/lib/scheduler.js","../../../node_modules/next/dist/lib/semver-noop.js","../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../node_modules/next/dist/server/app-render/blocking-route-messages.js","../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js","../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../node_modules/next/dist/server/app-render/sync-io-messages.js","../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../node_modules/next/dist/server/lib/lru-cache.js","../../../node_modules/next/dist/server/lib/parse-stack.js","../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../node_modules/next/dist/server/lib/source-maps.js","../../../node_modules/next/dist/server/lib/trace/constants.js","../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../node_modules/next/dist/server/load-manifest.external.js","../../../node_modules/next/dist/server/node-environment-baseline.js","../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../node_modules/next/dist/server/node-environment.js","../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../node_modules/next/dist/server/patch-error-inspect.js","../../../node_modules/next/dist/server/require-hook.js","../../../node_modules/next/dist/server/response-cache/types.js","../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../node_modules/next/dist/shared/lib/instant-messages.js","../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../node_modules/next/package.json","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/cjs/react.production.js","../../../node_modules/react/index.js","../../../node_modules/react/package.json","../../../src/app/api/recordings/clip/route.test.ts","../../../src/app/api/recordings/clip/route.ts","../../../src/app/api/recordings/route.test.ts","../../../src/app/api/recordings/route.ts","../../../src/app/recordings/clip-list.test.tsx","../../../src/app/recordings/clip-list.tsx","../../../src/app/recordings/page.test.tsx","../../../src/app/recordings/page.tsx","../chunks/ssr/[root-of-the-server]__00j0r--._.js","../chunks/ssr/[root-of-the-server]__0jv6c_f._.js","../chunks/ssr/[root-of-the-server]__17v-f6m._.js","../chunks/ssr/[root-of-the-server]__1iduzaf._.js","../chunks/ssr/[root-of-the-server]__1xlcb3w._.js","../chunks/ssr/[turbopack]_runtime.js","../chunks/ssr/_0tfm89e._.js","../chunks/ssr/_172_a6w._.js","../chunks/ssr/_next-internal_server_app_page_actions_0ucar5e.js","../chunks/ssr/node_modules_05issat._.js","../chunks/ssr/node_modules_15lq9aw._.js","../chunks/ssr/node_modules_1wax83z._.js","../chunks/ssr/node_modules_@tanstack_0udur9-._.js","../chunks/ssr/node_modules_next_0x3i8za._.js","../chunks/ssr/node_modules_next_dist_0ufhxsd._.js","../chunks/ssr/node_modules_next_dist_1bunoni._.js","../chunks/ssr/node_modules_next_dist_1n3w9lb._.js","../chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js","../chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js","../chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892.js","../chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js","../chunks/ssr/src_app_08xvpjs._.js","../chunks/ssr/src_app_0efwjni._.js","../chunks/ssr/src_app_providers_tsx_0c_dde7._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"],"fileHashes":["ef6ac6914a3f24c9f4a98105a3bdd310","bcdfbca94848d30153fa83f8421423d7","50bb01754878225cf6730e02b44f84d6","a5446fb306fcfec27c39f81de38ec842","9c53694dd40423680deefb5a1e3c25af","57ca86e5858543e1466b92725355539a","11eb668649d2434d25d26977b8e01e49","02186196a2cc227a67f668f00873f72a","fa8a4dd27dcbde144881044b2fa74f64","cd28bbc5151decba058dfd44bd7f47ef","a8da0851d005c95af6d4ff8b8db146ce","6c697268f6b81fcfdb5d412d5c82b308","61445cc4a73d56b154f397d2e4213b60","4e6491a35b1970e74a940d26e575216a","0bcd39f6f5be09dab16374e3bf84459e","ce87d6acf7ef1610862d34a9c59528ea","d1e9d6e75ad3a9d63cc0825ec4ebe282","b81183ad70cf2df4130a6f7853eff593","edcceea1e2a5c13a14d12f4d422f733a","92d7eec9f49250bf6325e1b4186fb521","0b3ab74e31e82ffa9b20013ed883782e","15ad04875f6d43fc8bd602b20d828566","5fe712e91d39531cd872b189115c7a25","c07db8edca1ca7e626b14dbf4e3584a8","0aa24beea9e1b8ae34954feb1be5caa6","f9295c2e844d919b0be75fffe2e10989","9b1c71085acfacbddbca5126bca3f550","6505c89743b18298e0e22489f1d956ed","8f2d8843ff7d322ecc237601ab58e1d7","d90d4f1de46d810d671d85f21ec5d352","2eecc48be406b9c64276e31215c29e95","981807b2548ffbff8d9ad94a758813fb","9f6a333435676ba7b0045e6b0d2d9b98","2701737ab664a8fe7700053638aa0db8","33916079c6a49d35edf38970b6afa990","046a57d6280182df9f32d77ba452677f","94e9332b8f4251c1b03791e57aad9399","6978bf3fb2c443a8c9022d43a243c56a","8fb4ea2a1e97dc7ad2cbbf5641b1aa23","7175e4648ef6975b79e76f0f46dc69df","7a4c4e16ecb22ffb0ba224fa37e94a70","848334e0b7acedfd5656296df4adae7c","0a201256d245b3a0e27ed288b6ba68ae","498fc15d07579c19b3cc959a96eb5bb8","40c6916156cc44db5f0c8e266c9f1e60","1acc3875adfbadf8dd6721e71e776ecd","1eb18df669f40e7a0c8e077b365c907d","08cab8a9c8062eac4f6b9cbcc303417a","bef9750470e394d3052dfe5a7847e9a0","4d1a01dfd6b6423b2d0ff0467f613bd8","7cfcc764f9b49f84e568c2a8b481ef89","ecbf1e0ab3ad74e5979ab5771d710880","59f473418a3a0c96c8ec855aa72bd02a","d3c2a37fdf66b455a0ed47d33fc12229","215309237f9a05ec8f52edadcd0565bf","5f3e641690915ca863053b107ae0493a","44cca5b4413d63e3179289d31fe1bcf1","ce930365528e6b0f94d346e8a3a6c976","85ef440bb2c4d6dcc19f40e9d77059e3","b73d42aa8f40f578ac38efd8516ad8a3","fc4f7117734aa11e26028c3a1f0e9934","4b5216f48144eab06a89f40a112df0f9","7f7c41d2d2c4e4ea0359ce7e30c4676d","a52c1bfa60cdd122eb82001cf748b39b","4daf2c54f6e769ac3f1c55e2d2356e62","67530655ee6d2037c694d851f60a4d3a","72e15054e5bb83aa2714e9aa0f2a8aaa","72944fa2cce5836dad49dfd7147626d0","3c5c716d6aebf4093db91e57fe322e0c","64c0567172a45f553110cf14514d76dc","f5232a6a89b9b1646513f6f36cfd6edc","ed734e4322f6faf639acccc2130bd1f9","3a55a78645b57706246de6914d4ce134","438a096196cbf3f40712fc244347eced","59be47cbf4cb15affb56354159123835","e124239b7fff31a73bfc3e95cfc593d3","38636bd694da4120897a2a695111039c","03f54ee64db45e6ac7025c881590f862","48538028ed97d91e767563f56035e684","217152373b3f900ae15ce0920bb06da9","6dadc2917fc514e7e4c6f4cabe7d69a6","a81a01b4510a203a8811e202d3537fe8","37ac4cbd6b18d52a47105218c3573c36","5ab4d38c634c37598fc59a79eeef302f","e2a4479a35cb46058fa5fa4148e39287","a5ceecfe744045263b3b4c06e4d48cce","5654b3d7d7805129b98db879f3bbd2af","deef54fb4c402325da2038fd78856071","00751d727948063c93926f0fd2130b84","dfea88cc5423da5be7ec5d44ddcaaedd","220a1d153fd4a6d65e4ef3ab23305e12","bd95af69943c6b10d72a1520da203070","2e2b6ee2ccf6a93255a41d6364a2937b","5cabaf4f9116cc7599ed026810c77333","e9e4ab7dc571392cb5d53734fc083267","cf04136680f3f6bf234e90c074e0fa2f","1fcf06f87c17968455df586b971057d4","39c877e3960b873157ea290189eaba99","efef377aefa45bdeb9b5a0d1072ea38e","21ddea3f032aa9630808f053cb8cc9ec","bf3cff2c65a80aa0ffc0ce8cd417c6db","6cc65c89ef05cc59524f39e2c63a481e","35907db3199eef469a81b07518e07751","e458cd608937d720777d92f4f0d7e4e8","14906e869c4cf7ce31818b49376c11bb","77f6fab6c9b3c4696b33b86e36dae4de","0b2250eb6c263d49271dd230dd6cb198","d8f6086f45585af82158f23d4fa1ffa9","db2ab3ad246184450be9cb88728284d7","7a09ce80e7f3d3554f1456906336fb09","38c7b6ea515390948cc462baf8d970e2","3792fc3e3dd633db45296c9ea04cc118","2c574e310b9355cd7fc61e341450902f","9ebccd7ca6d581521f85604dea8fee78","b6243f3fdab24b7bc94f8e96d863da0f","304e67b240f76ff9abbc830044f72487","7d38bc7a4025692e688fdc17d41ef2c6","f1f9866f1230a22d5a4d536b35df27ff","c8782a613f579f085ea13d4d80e80b86","f72b6e4ab06ddd4f1d11cf7e15e754f8","7b9cdc171d5254d6cfd481a1d688d849","cedd0e303a2a58a21e0ed99701073ecb","c7a2c700392cc139a492be0ceacb89b7","ded6c7db54842c8f6d4958c62a1faf15","0f520f9c48888f261e13c61683897db1","16e46fdae0f9e53f20442b629714017f","58787b091e16e60177980e4083df34ab"],"entryHash":"d6e0193216b74ef199f24a6def94950a"}
@@ -1,3 +1,3 @@
1
1
  globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
2
- globalThis.__RSC_MANIFEST["/page"] = {"moduleLoading":{"prefix":""},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/src/app/providers.tsx":{"id":44636,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/lucide-react/dist/esm/Icon.mjs":{"id":5014,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/next/dist/client/app-dir/link.js":{"id":22016,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/src/app/camera-card.tsx":{"id":12604,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js","/_next/static/chunks/32zls3n3ypa-e.js","/_next/static/chunks/3jl0ivt7_0tuf.js"],"async":false},"[project]/src/app/camera-scanner.tsx":{"id":78040,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js","/_next/static/chunks/32zls3n3ypa-e.js","/_next/static/chunks/3jl0ivt7_0tuf.js"],"async":false},"[project]/src/app/refresh-rate-select.tsx":{"id":3428,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js","/_next/static/chunks/32zls3n3ypa-e.js","/_next/static/chunks/3jl0ivt7_0tuf.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"44636":{"*":{"id":43518,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"5014":{"*":{"id":90864,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"22016":{"*":{"id":38246,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js","server/chunks/ssr/node_modules_1wax83z._.js"],"async":false}},"12604":{"*":{"id":75275,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js","server/chunks/ssr/node_modules_05issat._.js","server/chunks/ssr/src_app_08xvpjs._.js","server/chunks/ssr/node_modules_next_0x3i8za._.js","server/chunks/ssr/src_app_0efwjni._.js"],"async":false}},"78040":{"*":{"id":34359,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js","server/chunks/ssr/node_modules_05issat._.js","server/chunks/ssr/src_app_08xvpjs._.js","server/chunks/ssr/node_modules_next_0x3i8za._.js","server/chunks/ssr/src_app_0efwjni._.js"],"async":false}},"3428":{"*":{"id":19633,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js","server/chunks/ssr/node_modules_05issat._.js","server/chunks/ssr/src_app_08xvpjs._.js","server/chunks/ssr/node_modules_next_0x3i8za._.js","server/chunks/ssr/src_app_0efwjni._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"44636":{"*":{"id":36459,"name":"*","chunks":[],"async":false}},"5014":{"*":{"id":90697,"name":"*","chunks":[],"async":false}},"22016":{"*":{"id":84707,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}},"12604":{"*":{"id":3549,"name":"*","chunks":[],"async":false}},"78040":{"*":{"id":47359,"name":"*","chunks":[],"async":false}},"3428":{"*":{"id":4066,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/1ng-ttmhg6s6h.css","inlined":false}],"[project]/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/1ng-ttmhg6s6h.css","inlined":false}],"[project]/src/app/page":[{"path":"static/chunks/1ng-ttmhg6s6h.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/2in4angy4ta5n.js","static/chunks/0-4hhghprzhtw.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/2in4angy4ta5n.js","static/chunks/0-4hhghprzhtw.js"],"[project]/src/app/page":["static/chunks/2in4angy4ta5n.js","static/chunks/0-4hhghprzhtw.js","static/chunks/32zls3n3ypa-e.js","static/chunks/3jl0ivt7_0tuf.js"]}};
2
+ globalThis.__RSC_MANIFEST["/page"] = {"moduleLoading":{"prefix":""},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/src/app/providers.tsx":{"id":44636,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/lucide-react/dist/esm/Icon.mjs":{"id":5014,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/next/dist/client/app-dir/link.js":{"id":22016,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/node_modules/next/dist/client/components/builtin/global-error.js":{"id":68027,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js"],"async":false},"[project]/src/app/camera-card.tsx":{"id":12604,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js","/_next/static/chunks/2-wfd5oby9n7m.js","/_next/static/chunks/3jl0ivt7_0tuf.js"],"async":false},"[project]/src/app/camera-scanner.tsx":{"id":78040,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js","/_next/static/chunks/2-wfd5oby9n7m.js","/_next/static/chunks/3jl0ivt7_0tuf.js"],"async":false},"[project]/src/app/refresh-rate-select.tsx":{"id":3428,"name":"*","chunks":["/_next/static/chunks/2in4angy4ta5n.js","/_next/static/chunks/0-4hhghprzhtw.js","/_next/static/chunks/2-wfd5oby9n7m.js","/_next/static/chunks/3jl0ivt7_0tuf.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"44636":{"*":{"id":43518,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"5014":{"*":{"id":90864,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"22016":{"*":{"id":38246,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js"],"async":false}},"68027":{"*":{"id":40622,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js","server/chunks/ssr/node_modules_1wax83z._.js"],"async":false}},"12604":{"*":{"id":75275,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js","server/chunks/ssr/node_modules_05issat._.js","server/chunks/ssr/src_app_08xvpjs._.js","server/chunks/ssr/node_modules_next_0x3i8za._.js","server/chunks/ssr/src_app_0efwjni._.js"],"async":false}},"78040":{"*":{"id":34359,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js","server/chunks/ssr/node_modules_05issat._.js","server/chunks/ssr/src_app_08xvpjs._.js","server/chunks/ssr/node_modules_next_0x3i8za._.js","server/chunks/ssr/src_app_0efwjni._.js"],"async":false}},"3428":{"*":{"id":19633,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__00j0r--._.js","server/chunks/ssr/src_app_providers_tsx_0c_dde7._.js","server/chunks/ssr/node_modules_15lq9aw._.js","server/chunks/ssr/node_modules_next_dist_0ufhxsd._.js","server/chunks/ssr/node_modules_@tanstack_0udur9-._.js","server/chunks/ssr/node_modules_next_dist_1bunoni._.js","server/chunks/ssr/node_modules_05issat._.js","server/chunks/ssr/src_app_08xvpjs._.js","server/chunks/ssr/node_modules_next_0x3i8za._.js","server/chunks/ssr/src_app_0efwjni._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"44636":{"*":{"id":36459,"name":"*","chunks":[],"async":false}},"5014":{"*":{"id":90697,"name":"*","chunks":[],"async":false}},"22016":{"*":{"id":84707,"name":"*","chunks":[],"async":false}},"68027":{"*":{"id":82509,"name":"*","chunks":[],"async":false}},"12604":{"*":{"id":3549,"name":"*","chunks":[],"async":false}},"78040":{"*":{"id":47359,"name":"*","chunks":[],"async":false}},"3428":{"*":{"id":4066,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/1ng-ttmhg6s6h.css","inlined":false}],"[project]/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/1ng-ttmhg6s6h.css","inlined":false}],"[project]/src/app/page":[{"path":"static/chunks/1ng-ttmhg6s6h.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/2in4angy4ta5n.js","static/chunks/0-4hhghprzhtw.js"],"[project]/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/2in4angy4ta5n.js","static/chunks/0-4hhghprzhtw.js"],"[project]/src/app/page":["static/chunks/2in4angy4ta5n.js","static/chunks/0-4hhghprzhtw.js","static/chunks/2-wfd5oby9n7m.js","static/chunks/3jl0ivt7_0tuf.js"]}};
3
3
 
@@ -1,3 +1,3 @@
1
- module.exports=[59461,(e,t,r)=>{t.exports=e.x("node:dgram",()=>require("node:dgram"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},10661,e=>{"use strict";var t=e.i(6599),r=e.i(69261),n=e.i(59461),a=e.i(60526),o=e.i(63243),s=e.i(69719),i=e.i(5733);let l=s.z.object({timeout:s.z.number().int().min(1e3).max(3e4).default(5e3),unicastSweep:s.z.boolean().default(!0)}),u={shouldContinue:!0,prefix:0},d=!1;function c(e,t){let r=`onvif://www.onvif.org/${t}/`,n=e.find(e=>e.startsWith(r));return n?decodeURIComponent(n.slice(r.length)):void 0}function p(e,t){let n=e?.probeMatches?.probeMatch;if(!n?.XAddrs)return null;let a=n.XAddrs.split(/\s+/).filter(Boolean),o=new URL(a.find(e=>!e.includes("["))??a[0]),s=("string"==typeof n.scopes?n.scopes:n.scopes?._??"").split(/\s+/).filter(Boolean),i=n.endpointReference?.address??a[0];return{id:(0,r.cameraIdFromUrn)(i),urn:i,hostname:o.hostname,port:Number(o.port)||80,xaddrs:a,name:c(s,"name"),hardware:c(s,"hardware"),location:c(s,"location"),scopes:s,foundBy:[t]}}async function f({timeoutMs:e=5e3,unicastSweep:t=!0}={}){let r,s=await Promise.all([(!d&&(o.Discovery.on("error",e=>{console.warn("[onvif] discovery error:",e)}),d=!0),new Promise((t,r)=>{o.Discovery.probe({timeout:e,resolve:!1},(e,n)=>{if(e&&!Array.isArray(e))return r(e);t((n??[]).map(e=>p(e,"multicast")).filter(e=>null!==e))})})),t?0===(r=function(){let e=new Set;for(let t of Object.values(a.default.networkInterfaces()))for(let r of t??[]){let t=function(e){if("IPv4"!==e.family||e.internal||!e.cidr||e.address.startsWith("169.254."))return u;let t=Number(e.cidr.split("/")[1]);return t<20||t>30?(console.warn(`[onvif] skipping unicast sweep of ${e.cidr}`),u):{shouldContinue:!1,prefix:t}}(r);if(t.shouldContinue)continue;let n=0xffffffff<<32-t.prefix>>>0,a=(r.address.split(".").reduce((e,t)=>(e<<8)+Number(t),0)>>>0&n)>>>0,o=(a|~n)>>>0;for(let t=a+1;t<o;t++){let n=function(e){return[24,16,8,0].map(t=>e>>>t&255).join(".")}(t);n!==r.address&&e.add(n)}}return[...e]}()).length?Promise.resolve([]):new Promise((t,a)=>{var o;let s=new Map,l=(o=`urn:uuid:${(0,i.guid)()}`,Buffer.from(`<?xml version="1.0" encoding="UTF-8"?><s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:d="http://schemas.xmlsoap.org/ws/2005/04/discovery" xmlns:dn="http://www.onvif.org/ver10/network/wsdl"><s:Header><a:MessageID>${o}</a:MessageID><a:To>urn:schemas-xmlsoap-org:ws:2005:04:discovery</a:To><a:Action>http://schemas.xmlsoap.org/ws/2005/04/discovery/Probe</a:Action></s:Header><s:Body><d:Probe><d:Types>dn:NetworkVideoTransmitter</d:Types></d:Probe></s:Body></s:Envelope>`)),u=n.default.createSocket("udp4"),d=!1;u.on("message",e=>{(0,i.parseSOAPString)(e.toString(),(e,t)=>{if(e||!t)return;let r=p((0,i.linerase)(t),"unicast");r&&!s.has(r.urn)&&s.set(r.urn,r)})}),u.on("error",e=>{d||(d=!0,u.close(),a(e))}),u.bind(0,async()=>{for(let e=0;e<r.length&&!d;e+=64){for(let t of r.slice(e,e+64))u.send(l,3702,t,()=>{});await new Promise(e=>setTimeout(e,15))}}),setTimeout(()=>{d||(d=!0,u.close(),t([...s.values()]))},e)}):Promise.resolve([])]),l=new Map;for(let e of s.flat()){let t=l.get(e.urn);t?t.foundBy=[...new Set([...t.foundBy,...e.foundBy])]:l.set(e.urn,{...e})}return[...l.values()]}async function h(e){let n=await (0,t.apiAccessDenied)();if(n)return n;let a=await e.json().catch(()=>({})),o=l.safeParse(a??{});if(!o.success)return Response.json({error:"Invalid scan options"},{status:400});let{timeout:s,unicastSweep:i}=o.data;try{let e=await f({timeoutMs:s,unicastSweep:i});return await (0,r.recordDiscovered)(e),Response.json({cameras:e})}catch(e){return console.error("Network scan failed",e),Response.json({error:"Network scan failed"},{status:500})}}e.s(["POST",0,h],10661)},83220,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),o=e.i(61916),s=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(26937),m=e.i(10372),v=e.i(93695);e.i(52474);var w=e.i(220);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/discover/route",pathname:"/api/discover",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/discover/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(10661),...{}}),{workAsyncStorage:g,workUnitAsyncStorage:x,serverHooks:y}=R;async function C(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),R.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/discover/route";g=g.replace(/\/index$/,"")||"/";let x=await R.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!x)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:y,deploymentId:C,params:E,nextConfig:A,parsedUrl:P,isDraftMode:T,prerenderManifest:b,routerServerContext:S,isOnDemandRevalidate:N,revalidateOnlyGenerated:I,resolvedPathname:O,clientReferenceManifest:M,serverActionsManifest:_}=x,q=(0,i.normalizeAppPath)(g),H=!!(b.dynamicRoutes[q]||b.routes[O]),k=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,P,!1):t.end("This page could not be found"),null);if(H&&!T){let e=!!b.routes[O],t=b.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await k();throw new v.NoFallbackError}}let D=null;!H||R.isDev||T||(D="/index"===(D=O)?"/":D);let U=!0===R.isDev||!H,B=H&&!U;_&&M&&(0,s.setManifestsSingleton)({page:g,clientReferenceManifest:M,serverActionsManifest:_});let j=e.method||"GET",$=(0,o.getTracer)(),F=$.getActiveScopeSpan(),K=!!(null==S?void 0:S.isWrappedByNextServer),L=!!(0,a.getRequestMeta)(e,"minimalMode"),G=(0,a.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,A,b,L);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let X={params:E,previewProps:b.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,supportsDynamicResponse:U,incrementalCache:G,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>R.onRequestError(e,t,n,a,S)},sharedContext:{buildId:y,deploymentId:C}},z=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(z,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:r})=>{try{if(!L&&N&&I&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await R.handle(W,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let o=X.renderOpts.pendingWaitUntil;o&&n.waitUntil&&(n.waitUntil(o),o=void 0);let s=X.renderOpts.collectedTags;if(!H)return await (0,p.sendResponse)(z,V,a,o),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);s&&(t[m.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,n=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==r&&r>0?A.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:N})},!1,S),t}},J=async(a,s)=>{try{var i,l;let a=await R.handleResponse({req:e,nextConfig:A,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:I,responseGenerator:Z,waitUntil:n.waitUntil,isMinimalMode:L});if(!H)return;if((null==a||null==(i=a.value)?void 0:i.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==a||null==(l=a.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",N?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,f.fromNodeOutgoingHttpHeaders)(a.value.headers);L&&H||o.delete(m.NEXT_CACHE_TAGS_HEADER),!a.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,h.getCacheControlHeader)(a.cacheControl)),await (0,p.sendResponse)(z,V,new Response(a.value.body,{headers:o,status:a.value.status||200}));return}catch(t){if(t instanceof v.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:N})},!1,S),H)throw t;await (0,p.sendResponse)(z,V,new Response(null,{status:500}));return}finally{(()=>{if(!a)return;let e=t.statusCode;a.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(a.setStatus({code:o.SpanStatusCode.ERROR}),a.setAttribute("error.type",e.toString()));let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route")||q,i=`${j} ${n}`;a.setAttributes({"next.route":n,"http.route":n,"next.span_name":i}),a.updateName(i),s&&s!==a&&(s.setAttribute("http.route",n),s.updateName(i))})()}};if(K&&F)await J(F,void 0);else{let t=$.getActiveScopeSpan();await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${j} ${g}`,kind:o.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},e=>J(e,t)),void 0,!K)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:g,workUnitAsyncStorage:x})},"routeModule",0,R,"serverHooks",0,y,"workAsyncStorage",0,g,"workUnitAsyncStorage",0,x])}];
1
+ module.exports=[59461,(e,t,r)=>{t.exports=e.x("node:dgram",()=>require("node:dgram"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},10661,e=>{"use strict";var t=e.i(6599),r=e.i(69261),n=e.i(59461),a=e.i(60526),o=e.i(63243),s=e.i(69719),i=e.i(5733);let l=s.z.object({timeout:s.z.number().int().min(1e3).max(3e4).default(5e3),unicastSweep:s.z.boolean().default(!0)}),u={shouldContinue:!0,prefix:0},d=!1;function c(e,t){let r=`onvif://www.onvif.org/${t}/`,n=e.find(e=>e.startsWith(r));return n?decodeURIComponent(n.slice(r.length)):void 0}function p(e,t){let n=e?.probeMatches?.probeMatch;if(!n?.XAddrs)return null;let a=n.XAddrs.split(/\s+/).filter(Boolean),o=new URL(a.find(e=>!e.includes("["))??a[0]),s=("string"==typeof n.scopes?n.scopes:n.scopes?._??"").split(/\s+/).filter(Boolean),i=n.endpointReference?.address??a[0];return{id:(0,r.cameraIdFromUrn)(i),urn:i,hostname:o.hostname,port:Number(o.port)||80,xaddrs:a,name:c(s,"name"),hardware:c(s,"hardware"),location:c(s,"location"),scopes:s,foundBy:[t]}}function f(){let e=new Set;for(let t of Object.values(a.default.networkInterfaces()))for(let r of t??[]){let t=function(e){if("IPv4"!==e.family||e.internal||!e.cidr||e.address.startsWith("169.254."))return u;let t=Number(e.cidr.split("/")[1]);return t<20||t>30?(console.warn(`[onvif] skipping unicast sweep of ${e.cidr}`),u):{shouldContinue:!1,prefix:t}}(r);if(t.shouldContinue)continue;let n=0xffffffff<<32-t.prefix>>>0,a=(r.address.split(".").reduce((e,t)=>(e<<8)+Number(t),0)>>>0&n)>>>0,o=(a|~n)>>>0;for(let t=a+1;t<o;t++){let n=function(e){return[24,16,8,0].map(t=>e>>>t&255).join(".")}(t);n!==r.address&&e.add(n)}}return[...e]}async function h({timeoutMs:e=5e3,unicastSweep:t=!0}={},r=Date.now){let a,s=r(),l=t?f().length:0,u=await Promise.all([(!d&&(o.Discovery.on("error",e=>{console.warn("[onvif] discovery error:",e)}),d=!0),new Promise((t,r)=>{o.Discovery.probe({timeout:e,resolve:!1},(e,n)=>{if(e&&!Array.isArray(e))return r(e);t((n??[]).map(e=>p(e,"multicast")).filter(e=>null!==e))})})),t?0===(a=f()).length?Promise.resolve([]):new Promise((t,r)=>{var o;let s=new Map,l=(o=`urn:uuid:${(0,i.guid)()}`,Buffer.from(`<?xml version="1.0" encoding="UTF-8"?><s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:d="http://schemas.xmlsoap.org/ws/2005/04/discovery" xmlns:dn="http://www.onvif.org/ver10/network/wsdl"><s:Header><a:MessageID>${o}</a:MessageID><a:To>urn:schemas-xmlsoap-org:ws:2005:04:discovery</a:To><a:Action>http://schemas.xmlsoap.org/ws/2005/04/discovery/Probe</a:Action></s:Header><s:Body><d:Probe><d:Types>dn:NetworkVideoTransmitter</d:Types></d:Probe></s:Body></s:Envelope>`)),u=n.default.createSocket("udp4"),d=!1;u.on("message",e=>{(0,i.parseSOAPString)(e.toString(),(e,t)=>{if(e||!t)return;let r=p((0,i.linerase)(t),"unicast");r&&!s.has(r.urn)&&s.set(r.urn,r)})}),u.on("error",e=>{d||(d=!0,u.close(),r(e))}),u.bind(0,async()=>{for(let e=0;e<a.length&&!d;e+=64){for(let t of a.slice(e,e+64))u.send(l,3702,t,()=>{});await new Promise(e=>setTimeout(e,15))}}),setTimeout(()=>{d||(d=!0,u.close(),t([...s.values()]))},e)}):Promise.resolve([])]),c=new Map;for(let e of u.flat()){let t=c.get(e.urn);t?t.foundBy=[...new Set([...t.foundBy,...e.foundBy])]:c.set(e.urn,{...e})}return{cameras:[...c.values()],addressesProbed:l,durationMs:r()-s}}async function m(e){let n=await (0,t.apiAccessDenied)();if(n)return n;let a=await e.json().catch(()=>({})),o=l.safeParse(a??{});if(!o.success)return Response.json({error:"Invalid scan options"},{status:400});let{timeout:s,unicastSweep:i}=o.data;try{let e=await h({timeoutMs:s,unicastSweep:i});return await (0,r.recordDiscovered)(e.cameras),Response.json(e)}catch(e){return console.error("Network scan failed",e),Response.json({error:"Network scan failed"},{status:500})}}e.s(["POST",0,m],10661)},83220,e=>{"use strict";var t=e.i(47909),r=e.i(74017),n=e.i(96250),a=e.i(59756),o=e.i(61916),s=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),c=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(26937),m=e.i(10372),v=e.i(93695);e.i(52474);var w=e.i(220);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/discover/route",pathname:"/api/discover",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/discover/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(10661),...{}}),{workAsyncStorage:g,workUnitAsyncStorage:x,serverHooks:y}=R;async function C(e,t,n){n.requestMeta&&(0,a.setRequestMeta)(e,n.requestMeta),R.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/discover/route";g=g.replace(/\/index$/,"")||"/";let x=await R.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!x)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:y,deploymentId:C,params:E,nextConfig:A,parsedUrl:P,isDraftMode:T,prerenderManifest:b,routerServerContext:S,isOnDemandRevalidate:N,revalidateOnlyGenerated:I,resolvedPathname:M,clientReferenceManifest:O,serverActionsManifest:_}=x,q=(0,i.normalizeAppPath)(g),H=!!(b.dynamicRoutes[q]||b.routes[M]),k=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,P,!1):t.end("This page could not be found"),null);if(H&&!T){let e=!!b.routes[M],t=b.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await k();throw new v.NoFallbackError}}let D=null;!H||R.isDev||T||(D="/index"===(D=M)?"/":D);let U=!0===R.isDev||!H,B=H&&!U;_&&O&&(0,s.setManifestsSingleton)({page:g,clientReferenceManifest:O,serverActionsManifest:_});let j=e.method||"GET",$=(0,o.getTracer)(),F=$.getActiveScopeSpan(),K=!!(null==S?void 0:S.isWrappedByNextServer),L=!!(0,a.getRequestMeta)(e,"minimalMode"),G=(0,a.getRequestMeta)(e,"incrementalCache")||await R.getIncrementalCache(e,A,b,L);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let X={params:E,previewProps:b.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts,useCacheTimeout:A.experimental.useCacheTimeout},cacheComponents:!!A.cacheComponents,validationLevel:A.experimental.instantInsights.validationLevel,supportsDynamicResponse:U,incrementalCache:G,hmrRefreshHash:(0,a.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:A.cacheLife,staticPageGenerationTimeout:A.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>R.onRequestError(e,t,n,a,S)},sharedContext:{buildId:y,deploymentId:C}},z=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(z,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:r})=>{try{if(!L&&N&&I&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await R.handle(W,X);e.fetchMetrics=X.renderOpts.fetchMetrics;let o=X.renderOpts.pendingWaitUntil;o&&n.waitUntil&&(n.waitUntil(o),o=void 0);let s=X.renderOpts.collectedTags;if(!H)return await (0,p.sendResponse)(z,V,a,o),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);s&&(t[m.NEXT_CACHE_TAGS_HEADER]=s),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,n=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=m.INFINITE_CACHE?!1!==r&&r>0?A.expireTime:void 0:X.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:N})},!1,S),t}},J=async(a,s)=>{try{var i,l;let a=await R.handleResponse({req:e,nextConfig:A,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:I,responseGenerator:Z,waitUntil:n.waitUntil,isMinimalMode:L});if(!H)return;if((null==a||null==(i=a.value)?void 0:i.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==a||null==(l=a.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",N?"REVALIDATED":a.isMiss?"MISS":a.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let o=(0,f.fromNodeOutgoingHttpHeaders)(a.value.headers);L&&H||o.delete(m.NEXT_CACHE_TAGS_HEADER),!a.cacheControl||t.getHeader("Cache-Control")||o.get("Cache-Control")||o.set("Cache-Control",(0,h.getCacheControlHeader)(a.cacheControl)),await (0,p.sendResponse)(z,V,new Response(a.value.body,{headers:o,status:a.value.status||200}));return}catch(t){if(t instanceof v.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:B,isOnDemandRevalidate:N})},!1,S),H)throw t;await (0,p.sendResponse)(z,V,new Response(null,{status:500}));return}finally{(()=>{if(!a)return;let e=t.statusCode;a.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(a.setStatus({code:o.SpanStatusCode.ERROR}),a.setAttribute("error.type",e.toString()));let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route")||q,i=`${j} ${n}`;a.setAttributes({"next.route":n,"http.route":n,"next.span_name":i}),a.updateName(i),s&&s!==a&&(s.setAttribute("http.route",n),s.updateName(i))})()}};if(K&&F)await J(F,void 0);else{let t=$.getActiveScopeSpan();await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${j} ${g}`,kind:o.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},e=>J(e,t)),void 0,!K)}}e.s(["handler",0,C,"patchFetch",0,function(){return(0,n.patchFetch)({workAsyncStorage:g,workUnitAsyncStorage:x})},"routeModule",0,R,"serverHooks",0,y,"workAsyncStorage",0,g,"workUnitAsyncStorage",0,x])}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__195bljr._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[75275,a=>{"use strict";var b=a.i(87924),c=a.i(64831);let d={name:"app-window",size:24,node:[["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}],["path",{d:"M10 4v4",key:"pp8u80"}],["path",{d:"M2 8h20",key:"d11cs7"}],["path",{d:"M6 4v4",key:"1svtjw"}]]};d.node;let e=(0,c.default)(d);var f=a.i(93817);let g={name:"external-link",size:24,node:[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]};g.node;let h=(0,c.default)(g),i={name:"key-round",size:24,node:[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]};i.node;let j=(0,c.default)(i);var k=a.i(58983);let l={name:"lock",size:24,node:[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]};l.node;let m=(0,c.default)(l);var n=a.i(74896),o=a.i(19783),p=a.i(51675),q=a.i(26268),r=a.i(38246),s=a.i(72131),t=a.i(83274);let u={name:"cctv",size:24,node:[["path",{d:"M16.75 12h3.632a1 1 0 0 1 .894 1.447l-2.034 4.069a1 1 0 0 1-1.708.134l-2.124-2.97",key:"ir91b5"}],["path",{d:"M17.106 9.053a1 1 0 0 1 .447 1.341l-3.106 6.211a1 1 0 0 1-1.342.447L3.61 12.3a2.92 2.92 0 0 1-1.3-3.91L3.69 5.6a2.92 2.92 0 0 1 3.92-1.3z",key:"jlp8i1"}],["path",{d:"M2 19h3.76a2 2 0 0 0 1.8-1.1L9 15",key:"19bib8"}],["path",{d:"M2 21v-4",key:"l40lih"}],["path",{d:"M7 9h.01",key:"19b3jx"}]]};u.node;let v=(0,c.default)(u),w={name:"shield-alert",size:24,node:[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]};w.node;let x=(0,c.default)(w),y={name:"wifi-off",size:24,node:[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]};y.node;let z=(0,c.default)(y),A={live:{label:"Live",Icon:v,tone:"bg-emerald-100 text-emerald-800 dark:bg-emerald-950 dark:text-emerald-300"},connecting:{label:"Connecting",Icon:k.LoaderCircle,tone:"bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300",spin:!0},auth:{label:"Needs login",Icon:j,tone:"bg-amber-100 text-amber-900 dark:bg-amber-950 dark:text-amber-300"},inactive:{label:"Not activated",Icon:x,tone:"bg-amber-100 text-amber-900 dark:bg-amber-950 dark:text-amber-300"},error:{label:"Offline",Icon:z,tone:"bg-red-100 text-red-800 dark:bg-red-950 dark:text-red-300"},"signed-out":{label:"Session ended",Icon:n.LogIn,tone:"bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300"}};function B({status:a}){let{label:c,Icon:d,tone:e,spin:f}=A[a];return(0,b.jsxs)("span",{"data-status":a,className:`inline-flex shrink-0 items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium ${e}`,children:[(0,b.jsx)(d,{"aria-hidden":!0,className:`size-3.5 ${f?"animate-spin motion-reduce:animate-none":""}`}),c]})}let C={H264:"H.264",H265:"H.265"};var D=a.i(42587),E=a.i(45934);let F="camera";function G({cam:a,children:c}){return(0,b.jsxs)("a",{href:`http://${a.host}${80===a.port?"":`:${a.port}`}/`,target:"_blank",rel:"noopener noreferrer",className:"underline",children:[c,(0,b.jsx)(h,{"aria-hidden":!0,className:"ml-0.5 inline size-3 align-[-0.1em]"})]})}function H({cam:a,onCheckAgain:c}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2 rounded border border-amber-400/60 p-3 text-sm",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 font-medium",children:[(0,b.jsx)(q.TriangleAlert,{"aria-hidden":!0,className:"size-4 shrink-0 text-amber-600 dark:text-amber-400"}),"Setup required: camera not activated"]}),(0,b.jsxs)("ol",{className:"list-decimal space-y-1 pl-5 text-zinc-700 dark:text-zinc-300",children:[(0,b.jsxs)("li",{children:[(0,b.jsx)(G,{cam:a,children:"Open the camera's web page"})," and activate it by choosing an admin password. Save it in your password manager; this app never stores it."]}),(0,b.jsx)("li",{children:"Enable ONVIF (usually Configuration → Network → Advanced Settings → Integration Protocol)."}),(0,b.jsxs)("li",{children:["On the same page, add an ONVIF user named ",(0,b.jsx)("code",{children:F})," with the"," ",(0,b.jsx)("strong",{children:"Operator"})," level."]}),(0,b.jsx)("li",{children:"Come back here and click Check again, then enter that user's login."})]}),(0,b.jsx)("div",{children:(0,b.jsxs)("button",{onClick:c,className:"inline-flex items-center gap-1.5 rounded bg-black px-3 py-1 text-white dark:bg-white dark:text-black",children:[(0,b.jsx)(o.RefreshCw,{"aria-hidden":!0,className:"size-4"}),"Check again"]})})]})}function I({cam:a,frame:c,paused:d,poppedOut:f}){return(0,b.jsxs)("div",{className:"relative aspect-video overflow-hidden rounded bg-zinc-100 dark:bg-zinc-900",children:[c&&(0,b.jsx)(D.default,{frame:c,alt:a.name??a.host,className:`h-full w-full object-contain ${d||f?"opacity-40":""}`}),f?(0,b.jsxs)("div",{className:"absolute inset-0 flex items-center justify-center gap-1.5 text-sm font-medium",children:[(0,b.jsx)(e,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Showing in pop-out"]}):!c&&!d&&(0,b.jsx)("div",{className:"absolute inset-0 flex items-center justify-center text-sm text-zinc-500",children:"Loading…"})]})}function J({cam:a,intervalMs:c,aspect:d}){return(0,b.jsxs)("a",{href:(0,E.popoutUrl)(a.id,c),target:(0,E.popoutWindowName)(a.id),onClick:b=>{(0,E.openPopout)(a.id,c,d)&&b.preventDefault()},className:"inline-flex items-center gap-1 underline",children:[(0,b.jsx)(e,{"aria-hidden":!0,className:"size-3.5"}),"Pop out"]})}function K({cam:a,reason:c,onSaved:d,onCancel:e}){let g=(0,t.useCredentialStatus)(a.id),h=(0,t.useSaveCredentials)(a.id),i=(0,t.useClearCredentials)(a.id),[l,n]=(0,s.useState)(null),[o,q]=(0,s.useState)(""),r=l??g.data?.username??F,u=h.error??i.error,v=h.isPending||i.isPending;return(0,b.jsxs)("form",{onSubmit:function(a){a.preventDefault(),h.mutate({username:r,password:o},{onSuccess:()=>{q(""),d()}})},className:"flex flex-col gap-2 rounded border border-amber-400/60 p-3 text-sm",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 font-medium",children:[(0,b.jsx)(j,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Camera login"]}),c&&(0,b.jsx)("div",{className:"text-xs text-zinc-500",children:c}),(0,b.jsxs)("div",{className:"text-xs text-zinc-500",children:["Use the ONVIF user you created on the camera (",(0,b.jsx)(G,{cam:a,children:"camera web page"}),")."]}),(0,b.jsx)("input",{value:r,onChange:a=>n(a.target.value),placeholder:"Username",autoComplete:"off",required:!0,className:"rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),(0,b.jsx)("input",{type:"password",value:o,onChange:a=>q(a.target.value),placeholder:"Password",autoComplete:"new-password",className:"rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),u&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-red-600",children:[(0,b.jsx)(f.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),u===h.error&&"auth"===u.kind?"Camera rejected that login.":u.message]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)("button",{type:"submit",disabled:v,className:"inline-flex items-center gap-1.5 rounded bg-black px-3 py-1 text-white disabled:opacity-50 dark:bg-white dark:text-black",children:[h.isPending?(0,b.jsx)(k.LoaderCircle,{"aria-hidden":!0,className:"size-4 animate-spin motion-reduce:animate-none"}):(0,b.jsx)(m,{"aria-hidden":!0,className:"size-4"}),h.isPending?"Checking…":"Save"]}),g.data?.source==="stored"&&(0,b.jsxs)("button",{type:"button",disabled:v,onClick:()=>i.mutate(void 0,{onSuccess:d}),className:"inline-flex items-center gap-1.5 rounded px-3 py-1 underline disabled:opacity-50",children:[(0,b.jsx)(p.Trash2,{"aria-hidden":!0,className:"size-4"}),"Forget saved login"]}),e&&(0,b.jsx)("button",{type:"button",onClick:e,className:"rounded px-3 py-1 underline",children:"Cancel"})]})]})}a.s(["default",0,function({cam:a,intervalMs:c}){var d,e,g;let h,i,k=(0,t.useCameraInfo)(a.id),l=function(a){let[b,c]=(0,s.useState)(!1);return(0,s.useEffect)(()=>(0,E.watchPopout)(a,c),[a]),b}(a.id),m=(0,t.useCameraSnapshot)(a.id,c,k.isSuccess&&!l),p=(0,t.useResetCamera)(a.id),[q,u]=(0,s.useState)(!1),v=k.error??m.error;function w(){u(!1),p()}let x=k.data&&[[(e=(d=k.data).manufacturer,(i=e?.trim())&&"ONVIF"!==i.toUpperCase()?i:void 0),d.model].filter(Boolean).join(" ")||void 0,d.firmwareVersion?`fw ${d.firmwareVersion}`:void 0].filter(Boolean).join(" · ")||null,y=k.data?(h=function(a){let b;for(let c of a){let a=(c.width??0)*(c.height??0);(!b||a>(b.width??0)*(b.height??0))&&(b=c)}return b}(k.data.profiles))?[h.width&&h.height?`Main ${h.width}\xd7${h.height}`:"Main",h.encoding?C[(g=h.encoding).toUpperCase()]??g:void 0,h.fps?`${h.fps} fps`:void 0].filter(Boolean).join(" · "):null:null,z=k.data?.profiles[0],A=z?.width&&z.height?z.width/z.height:void 0,D=v?.kind==="inactive",F=!D&&(v?.kind==="auth"||q);return(0,b.jsxs)("li",{className:"flex flex-col gap-3 rounded-lg border border-zinc-200 p-4 dark:border-zinc-800",children:[(0,b.jsx)(I,{cam:a,frame:m.data,paused:null!==v||!k.isSuccess,poppedOut:l}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)(r.default,{href:`/cameras/${a.id}`,className:"font-medium hover:underline",children:a.name??k.data?.model??"Unnamed camera"}),(0,b.jsx)(B,{status:function({problem:a,hasFrame:b}){return a||(b?"live":"connecting")}({problem:v?.kind??null,hasFrame:void 0!==m.data})})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("span",{className:"font-mono text-sm",children:[a.host,":",a.port]}),(0,b.jsxs)("span",{className:"flex gap-3 text-xs",children:[(0,b.jsx)(J,{cam:a,intervalMs:c,aspect:A}),(0,b.jsx)(G,{cam:a,children:"Web page"}),!F&&!D&&(0,b.jsxs)("button",{onClick:()=>u(!0),className:"inline-flex items-center gap-1 underline",children:[(0,b.jsx)(j,{"aria-hidden":!0,className:"size-3.5"}),"Change login"]})]})]}),x&&(0,b.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:x}),y&&(0,b.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:y}),a.location&&(0,b.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:a.location})]}),D&&(0,b.jsx)(H,{cam:a,onCheckAgain:w}),F&&(0,b.jsx)(K,{cam:a,reason:v?.kind==="auth"?v.message:void 0,onSaved:()=>u(!1),onCancel:v?.kind==="auth"?void 0:()=>u(!1)}),v?.kind==="signed-out"&&(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 text-sm text-red-600",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)(f.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Your session has ended."]}),(0,b.jsxs)("a",{href:"/login",className:"inline-flex items-center gap-1 underline",children:[(0,b.jsx)(n.LogIn,{"aria-hidden":!0,className:"size-4"}),"Sign in again"]})]}),v?.kind==="error"&&(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 text-sm text-red-600",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)(f.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Stopped: ",v.message]}),(0,b.jsxs)("button",{onClick:w,className:"inline-flex items-center gap-1 underline",children:[(0,b.jsx)(o.RefreshCw,{"aria-hidden":!0,className:"size-4"}),"Retry"]})]}),k.data&&k.data.profiles.length>0&&(0,b.jsxs)("table",{className:"text-xs",children:[(0,b.jsx)("thead",{className:"text-left text-zinc-500",children:(0,b.jsxs)("tr",{children:[(0,b.jsx)("th",{className:"font-normal",children:"Profile"}),(0,b.jsx)("th",{className:"font-normal",children:"Codec"}),(0,b.jsx)("th",{className:"font-normal",children:"Resolution"}),(0,b.jsx)("th",{className:"font-normal",children:"FPS"})]})}),(0,b.jsx)("tbody",{className:"font-mono",children:k.data.profiles.map(a=>(0,b.jsxs)("tr",{children:[(0,b.jsx)("td",{children:a.name??a.token}),(0,b.jsx)("td",{children:a.encoding??"?"}),(0,b.jsx)("td",{children:a.width&&a.height?`${a.width}\xd7${a.height}`:"?"}),(0,b.jsx)("td",{children:a.fps??"?"})]},a.token))})]})]})}],75275)},34359,a=>{"use strict";var b=a.i(87924),c=a.i(93817),d=a.i(58983),e=a.i(64831);let f={name:"radar",size:24,node:[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]]};f.node;let g=(0,e.default)(f);var h=a.i(50944),i=a.i(72131),j=a.i(83274);a.s(["default",0,function(){let a=(0,h.useRouter)(),e=(0,j.useScanNetwork)(),[f,k]=(0,i.useState)(5),[l,m]=(0,i.useState)(!0),n=e.data?.cameras.length;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("button",{onClick:()=>e.mutate({timeoutSecs:f,unicastSweep:l},{onSuccess:()=>a.refresh()}),disabled:e.isPending,className:"inline-flex items-center gap-2 rounded-md bg-black px-4 py-2 text-sm font-medium text-white disabled:opacity-50 dark:bg-white dark:text-black",children:[e.isPending?(0,b.jsx)(d.LoaderCircle,{"aria-hidden":!0,className:"size-4 animate-spin motion-reduce:animate-none"}):(0,b.jsx)(g,{"aria-hidden":!0,className:"size-4"}),e.isPending?"Scanning…":"Scan network"]}),(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:["Timeout",(0,b.jsx)("input",{type:"number",min:1,max:30,value:f,onChange:a=>k(Number(a.target.value)),className:"w-16 rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),"s"]}),(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",checked:l,onChange:a=>m(a.target.checked)}),"Unicast sweep of local subnet"]}),void 0!==n&&(0,b.jsxs)("p",{className:"w-full text-sm text-zinc-600 dark:text-zinc-400",children:["Scan found ",n," camera",1===n?"":"s"]}),e.isError&&(0,b.jsxs)("p",{className:"flex w-full items-center gap-1.5 text-sm text-red-600",children:[(0,b.jsx)(c.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Error: ",e.error.message]})]})}],34359)}];
1
+ module.exports=[75275,a=>{"use strict";var b=a.i(87924),c=a.i(64831);let d={name:"app-window",size:24,node:[["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}],["path",{d:"M10 4v4",key:"pp8u80"}],["path",{d:"M2 8h20",key:"d11cs7"}],["path",{d:"M6 4v4",key:"1svtjw"}]]};d.node;let e=(0,c.default)(d);var f=a.i(93817);let g={name:"external-link",size:24,node:[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]};g.node;let h=(0,c.default)(g),i={name:"key-round",size:24,node:[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]};i.node;let j=(0,c.default)(i);var k=a.i(58983);let l={name:"lock",size:24,node:[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]};l.node;let m=(0,c.default)(l);var n=a.i(74896),o=a.i(19783),p=a.i(51675),q=a.i(26268),r=a.i(38246),s=a.i(72131),t=a.i(83274);let u={name:"cctv",size:24,node:[["path",{d:"M16.75 12h3.632a1 1 0 0 1 .894 1.447l-2.034 4.069a1 1 0 0 1-1.708.134l-2.124-2.97",key:"ir91b5"}],["path",{d:"M17.106 9.053a1 1 0 0 1 .447 1.341l-3.106 6.211a1 1 0 0 1-1.342.447L3.61 12.3a2.92 2.92 0 0 1-1.3-3.91L3.69 5.6a2.92 2.92 0 0 1 3.92-1.3z",key:"jlp8i1"}],["path",{d:"M2 19h3.76a2 2 0 0 0 1.8-1.1L9 15",key:"19bib8"}],["path",{d:"M2 21v-4",key:"l40lih"}],["path",{d:"M7 9h.01",key:"19b3jx"}]]};u.node;let v=(0,c.default)(u),w={name:"shield-alert",size:24,node:[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]};w.node;let x=(0,c.default)(w),y={name:"wifi-off",size:24,node:[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]};y.node;let z=(0,c.default)(y),A={live:{label:"Live",Icon:v,tone:"bg-emerald-100 text-emerald-800 dark:bg-emerald-950 dark:text-emerald-300"},connecting:{label:"Connecting",Icon:k.LoaderCircle,tone:"bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300",spin:!0},auth:{label:"Needs login",Icon:j,tone:"bg-amber-100 text-amber-900 dark:bg-amber-950 dark:text-amber-300"},inactive:{label:"Not activated",Icon:x,tone:"bg-amber-100 text-amber-900 dark:bg-amber-950 dark:text-amber-300"},error:{label:"Offline",Icon:z,tone:"bg-red-100 text-red-800 dark:bg-red-950 dark:text-red-300"},"signed-out":{label:"Session ended",Icon:n.LogIn,tone:"bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300"}};function B({status:a}){let{label:c,Icon:d,tone:e,spin:f}=A[a];return(0,b.jsxs)("span",{"data-status":a,className:`inline-flex shrink-0 items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium ${e}`,children:[(0,b.jsx)(d,{"aria-hidden":!0,className:`size-3.5 ${f?"animate-spin motion-reduce:animate-none":""}`}),c]})}let C={H264:"H.264",H265:"H.265"};var D=a.i(42587),E=a.i(45934);let F="camera";function G({cam:a,children:c}){return(0,b.jsxs)("a",{href:`http://${a.host}${80===a.port?"":`:${a.port}`}/`,target:"_blank",rel:"noopener noreferrer",className:"underline",children:[c,(0,b.jsx)(h,{"aria-hidden":!0,className:"ml-0.5 inline size-3 align-[-0.1em]"})]})}function H({cam:a,onCheckAgain:c}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2 rounded border border-amber-400/60 p-3 text-sm",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 font-medium",children:[(0,b.jsx)(q.TriangleAlert,{"aria-hidden":!0,className:"size-4 shrink-0 text-amber-600 dark:text-amber-400"}),"Setup required: camera not activated"]}),(0,b.jsxs)("ol",{className:"list-decimal space-y-1 pl-5 text-zinc-700 dark:text-zinc-300",children:[(0,b.jsxs)("li",{children:[(0,b.jsx)(G,{cam:a,children:"Open the camera's web page"})," and activate it by choosing an admin password. Save it in your password manager; this app never stores it."]}),(0,b.jsx)("li",{children:"Enable ONVIF (usually Configuration → Network → Advanced Settings → Integration Protocol)."}),(0,b.jsxs)("li",{children:["On the same page, add an ONVIF user named ",(0,b.jsx)("code",{children:F})," with the"," ",(0,b.jsx)("strong",{children:"Operator"})," level."]}),(0,b.jsx)("li",{children:"Come back here and click Check again, then enter that user's login."})]}),(0,b.jsx)("div",{children:(0,b.jsxs)("button",{onClick:c,className:"inline-flex items-center gap-1.5 rounded bg-black px-3 py-1 text-white dark:bg-white dark:text-black",children:[(0,b.jsx)(o.RefreshCw,{"aria-hidden":!0,className:"size-4"}),"Check again"]})})]})}function I({cam:a,frame:c,paused:d,poppedOut:f}){return(0,b.jsxs)("div",{className:"relative aspect-video overflow-hidden rounded bg-zinc-100 dark:bg-zinc-900",children:[c&&(0,b.jsx)(D.default,{frame:c,alt:a.name??a.host,className:`h-full w-full object-contain ${d||f?"opacity-40":""}`}),f?(0,b.jsxs)("div",{className:"absolute inset-0 flex items-center justify-center gap-1.5 text-sm font-medium",children:[(0,b.jsx)(e,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Showing in pop-out"]}):!c&&!d&&(0,b.jsx)("div",{className:"absolute inset-0 flex items-center justify-center text-sm text-zinc-500",children:"Loading…"})]})}function J({cam:a,intervalMs:c,aspect:d}){return(0,b.jsxs)("a",{href:(0,E.popoutUrl)(a.id,c),target:(0,E.popoutWindowName)(a.id),onClick:b=>{(0,E.openPopout)(a.id,c,d)&&b.preventDefault()},className:"inline-flex items-center gap-1 underline",children:[(0,b.jsx)(e,{"aria-hidden":!0,className:"size-3.5"}),"Pop out"]})}function K({cam:a,reason:c,onSaved:d,onCancel:e}){let g=(0,t.useCredentialStatus)(a.id),h=(0,t.useSaveCredentials)(a.id),i=(0,t.useClearCredentials)(a.id),[l,n]=(0,s.useState)(null),[o,q]=(0,s.useState)(""),r=l??g.data?.username??F,u=h.error??i.error,v=h.isPending||i.isPending;return(0,b.jsxs)("form",{onSubmit:function(a){a.preventDefault(),h.mutate({username:r,password:o},{onSuccess:()=>{q(""),d()}})},className:"flex flex-col gap-2 rounded border border-amber-400/60 p-3 text-sm",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 font-medium",children:[(0,b.jsx)(j,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Camera login"]}),c&&(0,b.jsx)("div",{className:"text-xs text-zinc-500",children:c}),(0,b.jsxs)("div",{className:"text-xs text-zinc-500",children:["Use the ONVIF user you created on the camera (",(0,b.jsx)(G,{cam:a,children:"camera web page"}),")."]}),(0,b.jsx)("input",{value:r,onChange:a=>n(a.target.value),placeholder:"Username",autoComplete:"off",required:!0,className:"rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),(0,b.jsx)("input",{type:"password",value:o,onChange:a=>q(a.target.value),placeholder:"Password",autoComplete:"new-password",className:"rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),u&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-red-600",children:[(0,b.jsx)(f.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),u===h.error&&"auth"===u.kind?"Camera rejected that login.":u.message]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)("button",{type:"submit",disabled:v,className:"inline-flex items-center gap-1.5 rounded bg-black px-3 py-1 text-white disabled:opacity-50 dark:bg-white dark:text-black",children:[h.isPending?(0,b.jsx)(k.LoaderCircle,{"aria-hidden":!0,className:"size-4 animate-spin motion-reduce:animate-none"}):(0,b.jsx)(m,{"aria-hidden":!0,className:"size-4"}),h.isPending?"Checking…":"Save"]}),g.data?.source==="stored"&&(0,b.jsxs)("button",{type:"button",disabled:v,onClick:()=>i.mutate(void 0,{onSuccess:d}),className:"inline-flex items-center gap-1.5 rounded px-3 py-1 underline disabled:opacity-50",children:[(0,b.jsx)(p.Trash2,{"aria-hidden":!0,className:"size-4"}),"Forget saved login"]}),e&&(0,b.jsx)("button",{type:"button",onClick:e,className:"rounded px-3 py-1 underline",children:"Cancel"})]})]})}a.s(["default",0,function({cam:a,intervalMs:c}){var d,e,g;let h,i,k=(0,t.useCameraInfo)(a.id),l=function(a){let[b,c]=(0,s.useState)(!1);return(0,s.useEffect)(()=>(0,E.watchPopout)(a,c),[a]),b}(a.id),m=(0,t.useCameraSnapshot)(a.id,c,k.isSuccess&&!l),p=(0,t.useResetCamera)(a.id),[q,u]=(0,s.useState)(!1),v=k.error??m.error;function w(){u(!1),p()}let x=k.data&&[[(e=(d=k.data).manufacturer,(i=e?.trim())&&"ONVIF"!==i.toUpperCase()?i:void 0),d.model].filter(Boolean).join(" ")||void 0,d.firmwareVersion?`fw ${d.firmwareVersion}`:void 0].filter(Boolean).join(" · ")||null,y=k.data?(h=function(a){let b;for(let c of a){let a=(c.width??0)*(c.height??0);(!b||a>(b.width??0)*(b.height??0))&&(b=c)}return b}(k.data.profiles))?[h.width&&h.height?`Main ${h.width}\xd7${h.height}`:"Main",h.encoding?C[(g=h.encoding).toUpperCase()]??g:void 0,h.fps?`${h.fps} fps`:void 0].filter(Boolean).join(" · "):null:null,z=k.data?.profiles[0],A=z?.width&&z.height?z.width/z.height:void 0,D=v?.kind==="inactive",F=!D&&(v?.kind==="auth"||q);return(0,b.jsxs)("li",{className:"flex flex-col gap-3 rounded-lg border border-zinc-200 p-4 dark:border-zinc-800",children:[(0,b.jsx)(I,{cam:a,frame:m.data,paused:null!==v||!k.isSuccess,poppedOut:l}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)(r.default,{href:`/cameras/${a.id}`,className:"font-medium hover:underline",children:a.name??k.data?.model??"Unnamed camera"}),(0,b.jsx)(B,{status:function({problem:a,hasFrame:b}){return a||(b?"live":"connecting")}({problem:v?.kind??null,hasFrame:void 0!==m.data})})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("span",{className:"font-mono text-sm",children:[a.host,":",a.port]}),(0,b.jsxs)("span",{className:"flex gap-3 text-xs",children:[(0,b.jsx)(J,{cam:a,intervalMs:c,aspect:A}),(0,b.jsx)(G,{cam:a,children:"Web page"}),!F&&!D&&(0,b.jsxs)("button",{onClick:()=>u(!0),className:"inline-flex items-center gap-1 underline",children:[(0,b.jsx)(j,{"aria-hidden":!0,className:"size-3.5"}),"Change login"]})]})]}),x&&(0,b.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:x}),y&&(0,b.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:y}),a.location&&(0,b.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:a.location})]}),D&&(0,b.jsx)(H,{cam:a,onCheckAgain:w}),F&&(0,b.jsx)(K,{cam:a,reason:v?.kind==="auth"?v.message:void 0,onSaved:()=>u(!1),onCancel:v?.kind==="auth"?void 0:()=>u(!1)}),v?.kind==="signed-out"&&(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 text-sm text-red-600",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)(f.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Your session has ended."]}),(0,b.jsxs)("a",{href:"/login",className:"inline-flex items-center gap-1 underline",children:[(0,b.jsx)(n.LogIn,{"aria-hidden":!0,className:"size-4"}),"Sign in again"]})]}),v?.kind==="error"&&(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 text-sm text-red-600",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,b.jsx)(f.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Stopped: ",v.message]}),(0,b.jsxs)("button",{onClick:w,className:"inline-flex items-center gap-1 underline",children:[(0,b.jsx)(o.RefreshCw,{"aria-hidden":!0,className:"size-4"}),"Retry"]})]}),k.data&&k.data.profiles.length>0&&(0,b.jsxs)("table",{className:"text-xs",children:[(0,b.jsx)("thead",{className:"text-left text-zinc-500",children:(0,b.jsxs)("tr",{children:[(0,b.jsx)("th",{className:"font-normal",children:"Profile"}),(0,b.jsx)("th",{className:"font-normal",children:"Codec"}),(0,b.jsx)("th",{className:"font-normal",children:"Resolution"}),(0,b.jsx)("th",{className:"font-normal",children:"FPS"})]})}),(0,b.jsx)("tbody",{className:"font-mono",children:k.data.profiles.map(a=>(0,b.jsxs)("tr",{children:[(0,b.jsx)("td",{children:a.name??a.token}),(0,b.jsx)("td",{children:a.encoding??"?"}),(0,b.jsx)("td",{children:a.width&&a.height?`${a.width}\xd7${a.height}`:"?"}),(0,b.jsx)("td",{children:a.fps??"?"})]},a.token))})]})]})}],75275)},34359,a=>{"use strict";var b=a.i(87924),c=a.i(93817),d=a.i(58983),e=a.i(64831);let f={name:"radar",size:24,node:[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]]};f.node;let g=(0,e.default)(f);var h=a.i(50944),i=a.i(72131),j=a.i(83274);a.s(["default",0,function(){var a;let e,f,k,l=(0,h.useRouter)(),m=(0,j.useScanNetwork)(),[n,o]=(0,i.useState)(5),[p,q]=(0,i.useState)(!0),[r,s]=(0,i.useTransition)(),{seconds:t,start:u}=function(a){let[b,c]=(0,i.useState)(0),d=(0,i.useRef)(0);return(0,i.useEffect)(()=>{if(!a)return;let b=setInterval(()=>c(Math.round((Date.now()-d.current)/1e3)),500);return()=>clearInterval(b)},[a]),{seconds:a?b:0,start:()=>{d.current=Date.now(),c(0)}}}(m.isPending),v=m.isPending||r;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("button",{onClick:()=>{u(),m.mutate({timeoutSecs:n,unicastSweep:p},{onSuccess:()=>s(()=>l.refresh())})},disabled:v,className:"inline-flex items-center gap-2 rounded-md bg-black px-4 py-2 text-sm font-medium text-white disabled:opacity-50 dark:bg-white dark:text-black",children:[v?(0,b.jsx)(d.LoaderCircle,{"aria-hidden":!0,className:"size-4 animate-spin motion-reduce:animate-none"}):(0,b.jsx)(g,{"aria-hidden":!0,className:"size-4"}),m.isPending?`Scanning… ${t}s of ${n}s`:r?"Updating the list…":"Scan network"]}),(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:["Timeout",(0,b.jsx)("input",{type:"number",min:1,max:30,value:n,onChange:a=>o(Number(a.target.value)),disabled:v,className:"w-16 rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),"s"]}),(0,b.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)("input",{type:"checkbox",checked:p,onChange:a=>q(a.target.checked),disabled:v}),"Unicast sweep of local subnet"]}),m.isPending&&(0,b.jsxs)("p",{role:"status",className:"w-full text-sm text-zinc-600 dark:text-zinc-400",children:["Listening for cameras that announce themselves",p?", and asking every address on this network in turn":"",". Cameras answer at their own pace, so this runs for the full ",n," seconds."]}),r&&(0,b.jsx)("p",{role:"status",className:"w-full text-sm text-zinc-600 dark:text-zinc-400",children:"Updating the list; each camera is then asked for its details and a first picture."}),!v&&m.data&&(0,b.jsx)("p",{className:"w-full text-sm text-zinc-600 dark:text-zinc-400",children:(a=m.data,e=`${a.cameras.length} camera${1===a.cameras.length?"":"s"}`,f=Math.max(1,Math.round(a.durationMs/1e3)),k=a.addressesProbed?` after checking ${a.addressesProbed.toLocaleString("en-US")} addresses`:"",`Found ${e} in ${f}s${k}.`)}),m.isError&&(0,b.jsxs)("p",{className:"flex w-full items-center gap-1.5 text-sm text-red-600",children:[(0,b.jsx)(c.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Error: ",m.error.message]})]})}],34359)}];
2
2
 
3
3
  //# sourceMappingURL=src_app_08xvpjs._.js.map
@@ -7,9 +7,9 @@ globalThis.__BUILD_MANIFEST = {
7
7
  "static/chunks/0cz1d0mv5g_q7.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/5Dud7duCTA7gTx1uiJlzx/_buildManifest.js",
11
- "static/5Dud7duCTA7gTx1uiJlzx/_ssgManifest.js",
12
- "static/5Dud7duCTA7gTx1uiJlzx/_clientMiddlewareManifest.js"
10
+ "static/LN9KqkM1xFvoN0zr9EgU1/_buildManifest.js",
11
+ "static/LN9KqkM1xFvoN0zr9EgU1/_ssgManifest.js",
12
+ "static/LN9KqkM1xFvoN0zr9EgU1/_clientMiddlewareManifest.js"
13
13
  ],
14
14
  "rootMainFiles": [
15
15
  "static/chunks/310vm2bl3xxpt.js",
@@ -1 +1 @@
1
- <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/310vm2bl3xxpt.js"/><script src="/_next/static/chunks/2mmpezlrfmbu5.js" async=""></script><script src="/_next/static/chunks/27t_qfc-3_lzs.js" async=""></script><script src="/_next/static/chunks/04l2v6p7fakl9.js" async=""></script><script src="/_next/static/chunks/11be91k_gj8bl.js" async=""></script><script src="/_next/static/chunks/turbopack-1gvya9vclt5yj.js" async=""></script><script src="/_next/static/chunks/3fntmmi971322.js" async=""></script><link rel="icon" href="/favicon.ico?favicon.2vob68tjqpejf.ico" sizes="256x256" type="image/x-icon"/><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/310vm2bl3xxpt.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\",1]\n7:X\n0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"5Dud7duCTA7gTx1uiJlzx\"}\n7:C\n9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\nd:I[27201,[\"/_next/static/chunks/3fntmmi971322.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.2vob68tjqpejf.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Ld\",\"1\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/310vm2bl3xxpt.js"/><script src="/_next/static/chunks/2mmpezlrfmbu5.js" async=""></script><script src="/_next/static/chunks/27t_qfc-3_lzs.js" async=""></script><script src="/_next/static/chunks/04l2v6p7fakl9.js" async=""></script><script src="/_next/static/chunks/11be91k_gj8bl.js" async=""></script><script src="/_next/static/chunks/turbopack-1gvya9vclt5yj.js" async=""></script><script src="/_next/static/chunks/3fntmmi971322.js" async=""></script><link rel="icon" href="/favicon.ico?favicon.2vob68tjqpejf.ico" sizes="256x256" type="image/x-icon"/><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/310vm2bl3xxpt.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/3fntmmi971322.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/3fntmmi971322.js\"],\"default\",1]\n7:X\n0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"LN9KqkM1xFvoN0zr9EgU1\"}\n7:C\n9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\nd:I[27201,[\"/_next/static/chunks/3fntmmi971322.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.2vob68tjqpejf.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Ld\",\"1\",{}]]\n"])</script></body></html>
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,56420,e=>{"use strict";var a=e.i(71645),t=e.i(5014);e.s(["default",0,function(e,n=[],i=[]){let s,r="string"==typeof e?function(e,a,t=[]){if(null==a)throw Error("[lucide]: iconNode is required when icon name is used");return{name:e?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:a,...t.length>0?{aliases:t}:{}}}(e,n,i):e,d=(0,a.forwardRef)(({className:e,...n},i)=>(0,a.createElement)(t.default,{ref:i,icon:r,className:e,...n}));return r.name&&(d.displayName=(s=(e=>{let a="",t=!1;for(let n of e){if("-"===n||"_"===n||n<=" "){t=a.length>0;continue}0===a.length?a+=n.toLowerCase():a+=t?n.toUpperCase():n,t=!1}return a})(r.name)).charAt(0).toUpperCase()+s.slice(1)),d}],56420)},22768,e=>{"use strict";var a=e.i(56420);let t={name:"circle-alert",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],aliases:["alert-circle"]};t.node;let n=(0,a.default)(t);e.s(["CircleAlert",0,n],22768)},11568,e=>{"use strict";var a=e.i(56420);let t={name:"loader-circle",size:24,node:[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],aliases:["loader-2"]};t.node;let n=(0,a.default)(t);e.s(["LoaderCircle",0,n],11568)},97923,e=>{"use strict";var a=e.i(56420);let t={name:"log-in",size:24,node:[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]]};t.node;let n=(0,a.default)(t);e.s(["LogIn",0,n],97923)},41120,e=>{"use strict";var a=e.i(56420);let t={name:"refresh-cw",size:24,node:[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]};t.node;let n=(0,a.default)(t);e.s(["RefreshCw",0,n],41120)},59659,e=>{"use strict";var a=e.i(56420);let t={name:"trash",size:24,node:[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],aliases:["trash-2"]};t.node;let n=(0,a.default)(t);e.s(["Trash2",0,n],59659)},66787,e=>{"use strict";var a=e.i(56420);let t={name:"triangle-alert",size:24,node:[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],aliases:["alert-triangle"]};t.node;let n=(0,a.default)(t);e.s(["TriangleAlert",0,n],66787)},18566,(e,a,t)=>{a.exports=e.r(76562)},12604,e=>{"use strict";var a=e.i(43476),t=e.i(56420);let n={name:"app-window",size:24,node:[["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}],["path",{d:"M10 4v4",key:"pp8u80"}],["path",{d:"M2 8h20",key:"d11cs7"}],["path",{d:"M6 4v4",key:"1svtjw"}]]};n.node;let i=(0,t.default)(n);var s=e.i(22768);let r={name:"external-link",size:24,node:[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]};r.node;let d=(0,t.default)(r),l={name:"key-round",size:24,node:[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]};l.node;let c=(0,t.default)(l);var o=e.i(11568);let h={name:"lock",size:24,node:[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]};h.node;let m=(0,t.default)(h);var u=e.i(97923),x=e.i(41120),p=e.i(59659),f=e.i(66787),g=e.i(22016),k=e.i(71645),j=e.i(57234);let b={name:"cctv",size:24,node:[["path",{d:"M16.75 12h3.632a1 1 0 0 1 .894 1.447l-2.034 4.069a1 1 0 0 1-1.708.134l-2.124-2.97",key:"ir91b5"}],["path",{d:"M17.106 9.053a1 1 0 0 1 .447 1.341l-3.106 6.211a1 1 0 0 1-1.342.447L3.61 12.3a2.92 2.92 0 0 1-1.3-3.91L3.69 5.6a2.92 2.92 0 0 1 3.92-1.3z",key:"jlp8i1"}],["path",{d:"M2 19h3.76a2 2 0 0 0 1.8-1.1L9 15",key:"19bib8"}],["path",{d:"M2 21v-4",key:"l40lih"}],["path",{d:"M7 9h.01",key:"19b3jx"}]]};b.node;let y=(0,t.default)(b),v={name:"shield-alert",size:24,node:[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]};v.node;let N=(0,t.default)(v),z={name:"wifi-off",size:24,node:[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]};z.node;let w=(0,t.default)(z),C={live:{label:"Live",Icon:y,tone:"bg-emerald-100 text-emerald-800 dark:bg-emerald-950 dark:text-emerald-300"},connecting:{label:"Connecting",Icon:o.LoaderCircle,tone:"bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300",spin:!0},auth:{label:"Needs login",Icon:c,tone:"bg-amber-100 text-amber-900 dark:bg-amber-950 dark:text-amber-300"},inactive:{label:"Not activated",Icon:N,tone:"bg-amber-100 text-amber-900 dark:bg-amber-950 dark:text-amber-300"},error:{label:"Offline",Icon:w,tone:"bg-red-100 text-red-800 dark:bg-red-950 dark:text-red-300"},"signed-out":{label:"Session ended",Icon:u.LogIn,tone:"bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300"}};function M({status:e}){let{label:t,Icon:n,tone:i,spin:s}=C[e];return(0,a.jsxs)("span",{"data-status":e,className:`inline-flex shrink-0 items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium ${i}`,children:[(0,a.jsx)(n,{"aria-hidden":!0,className:`size-3.5 ${s?"animate-spin motion-reduce:animate-none":""}`}),t]})}let S={H264:"H.264",H265:"H.265"};var A=e.i(45840),L=e.i(79575);let P="camera";function I({cam:e,children:t}){return(0,a.jsxs)("a",{href:`http://${e.host}${80===e.port?"":`:${e.port}`}/`,target:"_blank",rel:"noopener noreferrer",className:"underline",children:[t,(0,a.jsx)(d,{"aria-hidden":!0,className:"ml-0.5 inline size-3 align-[-0.1em]"})]})}function $({cam:e,onCheckAgain:t}){return(0,a.jsxs)("div",{className:"flex flex-col gap-2 rounded border border-amber-400/60 p-3 text-sm",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 font-medium",children:[(0,a.jsx)(f.TriangleAlert,{"aria-hidden":!0,className:"size-4 shrink-0 text-amber-600 dark:text-amber-400"}),"Setup required: camera not activated"]}),(0,a.jsxs)("ol",{className:"list-decimal space-y-1 pl-5 text-zinc-700 dark:text-zinc-300",children:[(0,a.jsxs)("li",{children:[(0,a.jsx)(I,{cam:e,children:"Open the camera's web page"})," and activate it by choosing an admin password. Save it in your password manager; this app never stores it."]}),(0,a.jsx)("li",{children:"Enable ONVIF (usually Configuration → Network → Advanced Settings → Integration Protocol)."}),(0,a.jsxs)("li",{children:["On the same page, add an ONVIF user named ",(0,a.jsx)("code",{children:P})," with the"," ",(0,a.jsx)("strong",{children:"Operator"})," level."]}),(0,a.jsx)("li",{children:"Come back here and click Check again, then enter that user's login."})]}),(0,a.jsx)("div",{children:(0,a.jsxs)("button",{onClick:t,className:"inline-flex items-center gap-1.5 rounded bg-black px-3 py-1 text-white dark:bg-white dark:text-black",children:[(0,a.jsx)(x.RefreshCw,{"aria-hidden":!0,className:"size-4"}),"Check again"]})})]})}function V({cam:e,frame:t,paused:n,poppedOut:s}){return(0,a.jsxs)("div",{className:"relative aspect-video overflow-hidden rounded bg-zinc-100 dark:bg-zinc-900",children:[t&&(0,a.jsx)(A.default,{frame:t,alt:e.name??e.host,className:`h-full w-full object-contain ${n||s?"opacity-40":""}`}),s?(0,a.jsxs)("div",{className:"absolute inset-0 flex items-center justify-center gap-1.5 text-sm font-medium",children:[(0,a.jsx)(i,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Showing in pop-out"]}):!t&&!n&&(0,a.jsx)("div",{className:"absolute inset-0 flex items-center justify-center text-sm text-zinc-500",children:"Loading…"})]})}function q({cam:e,intervalMs:t,aspect:n}){return(0,a.jsxs)("a",{href:(0,L.popoutUrl)(e.id,t),target:(0,L.popoutWindowName)(e.id),onClick:a=>{(0,L.openPopout)(e.id,t,n)&&a.preventDefault()},className:"inline-flex items-center gap-1 underline",children:[(0,a.jsx)(i,{"aria-hidden":!0,className:"size-3.5"}),"Pop out"]})}function O({cam:e,reason:t,onSaved:n,onCancel:i}){let r=(0,j.useCredentialStatus)(e.id),d=(0,j.useSaveCredentials)(e.id),l=(0,j.useClearCredentials)(e.id),[h,u]=(0,k.useState)(null),[x,f]=(0,k.useState)(""),g=h??r.data?.username??P,b=d.error??l.error,y=d.isPending||l.isPending;return(0,a.jsxs)("form",{onSubmit:function(e){e.preventDefault(),d.mutate({username:g,password:x},{onSuccess:()=>{f(""),n()}})},className:"flex flex-col gap-2 rounded border border-amber-400/60 p-3 text-sm",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 font-medium",children:[(0,a.jsx)(c,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Camera login"]}),t&&(0,a.jsx)("div",{className:"text-xs text-zinc-500",children:t}),(0,a.jsxs)("div",{className:"text-xs text-zinc-500",children:["Use the ONVIF user you created on the camera (",(0,a.jsx)(I,{cam:e,children:"camera web page"}),")."]}),(0,a.jsx)("input",{value:g,onChange:e=>u(e.target.value),placeholder:"Username",autoComplete:"off",required:!0,className:"rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),(0,a.jsx)("input",{type:"password",value:x,onChange:e=>f(e.target.value),placeholder:"Password",autoComplete:"new-password",className:"rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),b&&(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-red-600",children:[(0,a.jsx)(s.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),b===d.error&&"auth"===b.kind?"Camera rejected that login.":b.message]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)("button",{type:"submit",disabled:y,className:"inline-flex items-center gap-1.5 rounded bg-black px-3 py-1 text-white disabled:opacity-50 dark:bg-white dark:text-black",children:[d.isPending?(0,a.jsx)(o.LoaderCircle,{"aria-hidden":!0,className:"size-4 animate-spin motion-reduce:animate-none"}):(0,a.jsx)(m,{"aria-hidden":!0,className:"size-4"}),d.isPending?"Checking…":"Save"]}),r.data?.source==="stored"&&(0,a.jsxs)("button",{type:"button",disabled:y,onClick:()=>l.mutate(void 0,{onSuccess:n}),className:"inline-flex items-center gap-1.5 rounded px-3 py-1 underline disabled:opacity-50",children:[(0,a.jsx)(p.Trash2,{"aria-hidden":!0,className:"size-4"}),"Forget saved login"]}),i&&(0,a.jsx)("button",{type:"button",onClick:i,className:"rounded px-3 py-1 underline",children:"Cancel"})]})]})}e.s(["default",0,function({cam:e,intervalMs:t}){var n,i,r;let d,l,o=(0,j.useCameraInfo)(e.id),h=function(e){let[a,t]=(0,k.useState)(!1);return(0,k.useEffect)(()=>(0,L.watchPopout)(e,t),[e]),a}(e.id),m=(0,j.useCameraSnapshot)(e.id,t,o.isSuccess&&!h),p=(0,j.useResetCamera)(e.id),[f,b]=(0,k.useState)(!1),y=o.error??m.error;function v(){b(!1),p()}let N=o.data&&[[(i=(n=o.data).manufacturer,(l=i?.trim())&&"ONVIF"!==l.toUpperCase()?l:void 0),n.model].filter(Boolean).join(" ")||void 0,n.firmwareVersion?`fw ${n.firmwareVersion}`:void 0].filter(Boolean).join(" · ")||null,z=o.data?(d=function(e){let a;for(let t of e){let e=(t.width??0)*(t.height??0);(!a||e>(a.width??0)*(a.height??0))&&(a=t)}return a}(o.data.profiles))?[d.width&&d.height?`Main ${d.width}\xd7${d.height}`:"Main",d.encoding?S[(r=d.encoding).toUpperCase()]??r:void 0,d.fps?`${d.fps} fps`:void 0].filter(Boolean).join(" · "):null:null,w=o.data?.profiles[0],C=w?.width&&w.height?w.width/w.height:void 0,A=y?.kind==="inactive",P=!A&&(y?.kind==="auth"||f);return(0,a.jsxs)("li",{className:"flex flex-col gap-3 rounded-lg border border-zinc-200 p-4 dark:border-zinc-800",children:[(0,a.jsx)(V,{cam:e,frame:m.data,paused:null!==y||!o.isSuccess,poppedOut:h}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)(g.default,{href:`/cameras/${e.id}`,className:"font-medium hover:underline",children:e.name??o.data?.model??"Unnamed camera"}),(0,a.jsx)(M,{status:function({problem:e,hasFrame:a}){return e||(a?"live":"connecting")}({problem:y?.kind??null,hasFrame:void 0!==m.data})})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsxs)("span",{className:"font-mono text-sm",children:[e.host,":",e.port]}),(0,a.jsxs)("span",{className:"flex gap-3 text-xs",children:[(0,a.jsx)(q,{cam:e,intervalMs:t,aspect:C}),(0,a.jsx)(I,{cam:e,children:"Web page"}),!P&&!A&&(0,a.jsxs)("button",{onClick:()=>b(!0),className:"inline-flex items-center gap-1 underline",children:[(0,a.jsx)(c,{"aria-hidden":!0,className:"size-3.5"}),"Change login"]})]})]}),N&&(0,a.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:N}),z&&(0,a.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:z}),e.location&&(0,a.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:e.location})]}),A&&(0,a.jsx)($,{cam:e,onCheckAgain:v}),P&&(0,a.jsx)(O,{cam:e,reason:y?.kind==="auth"?y.message:void 0,onSaved:()=>b(!1),onCancel:y?.kind==="auth"?void 0:()=>b(!1)}),y?.kind==="signed-out"&&(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2 text-sm text-red-600",children:[(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)(s.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Your session has ended."]}),(0,a.jsxs)("a",{href:"/login",className:"inline-flex items-center gap-1 underline",children:[(0,a.jsx)(u.LogIn,{"aria-hidden":!0,className:"size-4"}),"Sign in again"]})]}),y?.kind==="error"&&(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2 text-sm text-red-600",children:[(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)(s.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Stopped: ",y.message]}),(0,a.jsxs)("button",{onClick:v,className:"inline-flex items-center gap-1 underline",children:[(0,a.jsx)(x.RefreshCw,{"aria-hidden":!0,className:"size-4"}),"Retry"]})]}),o.data&&o.data.profiles.length>0&&(0,a.jsxs)("table",{className:"text-xs",children:[(0,a.jsx)("thead",{className:"text-left text-zinc-500",children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{className:"font-normal",children:"Profile"}),(0,a.jsx)("th",{className:"font-normal",children:"Codec"}),(0,a.jsx)("th",{className:"font-normal",children:"Resolution"}),(0,a.jsx)("th",{className:"font-normal",children:"FPS"})]})}),(0,a.jsx)("tbody",{className:"font-mono",children:o.data.profiles.map(e=>(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{children:e.name??e.token}),(0,a.jsx)("td",{children:e.encoding??"?"}),(0,a.jsx)("td",{children:e.width&&e.height?`${e.width}\xd7${e.height}`:"?"}),(0,a.jsx)("td",{children:e.fps??"?"})]},e.token))})]})]})}],12604)},78040,e=>{"use strict";var a=e.i(43476),t=e.i(22768),n=e.i(11568),i=e.i(56420);let s={name:"radar",size:24,node:[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]]};s.node;let r=(0,i.default)(s);var d=e.i(18566),l=e.i(71645),c=e.i(57234);e.s(["default",0,function(){let e=(0,d.useRouter)(),i=(0,c.useScanNetwork)(),[s,o]=(0,l.useState)(5),[h,m]=(0,l.useState)(!0),u=i.data?.cameras.length;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("button",{onClick:()=>i.mutate({timeoutSecs:s,unicastSweep:h},{onSuccess:()=>e.refresh()}),disabled:i.isPending,className:"inline-flex items-center gap-2 rounded-md bg-black px-4 py-2 text-sm font-medium text-white disabled:opacity-50 dark:bg-white dark:text-black",children:[i.isPending?(0,a.jsx)(n.LoaderCircle,{"aria-hidden":!0,className:"size-4 animate-spin motion-reduce:animate-none"}):(0,a.jsx)(r,{"aria-hidden":!0,className:"size-4"}),i.isPending?"Scanning…":"Scan network"]}),(0,a.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:["Timeout",(0,a.jsx)("input",{type:"number",min:1,max:30,value:s,onChange:e=>o(Number(e.target.value)),className:"w-16 rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),"s"]}),(0,a.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,a.jsx)("input",{type:"checkbox",checked:h,onChange:e=>m(e.target.checked)}),"Unicast sweep of local subnet"]}),void 0!==u&&(0,a.jsxs)("p",{className:"w-full text-sm text-zinc-600 dark:text-zinc-400",children:["Scan found ",u," camera",1===u?"":"s"]}),i.isError&&(0,a.jsxs)("p",{className:"flex w-full items-center gap-1.5 text-sm text-red-600",children:[(0,a.jsx)(t.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Error: ",i.error.message]})]})}],78040)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,56420,e=>{"use strict";var a=e.i(71645),t=e.i(5014);e.s(["default",0,function(e,s=[],n=[]){let i,r="string"==typeof e?function(e,a,t=[]){if(null==a)throw Error("[lucide]: iconNode is required when icon name is used");return{name:e?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:a,...t.length>0?{aliases:t}:{}}}(e,s,n):e,d=(0,a.forwardRef)(({className:e,...s},n)=>(0,a.createElement)(t.default,{ref:n,icon:r,className:e,...s}));return r.name&&(d.displayName=(i=(e=>{let a="",t=!1;for(let s of e){if("-"===s||"_"===s||s<=" "){t=a.length>0;continue}0===a.length?a+=s.toLowerCase():a+=t?s.toUpperCase():s,t=!1}return a})(r.name)).charAt(0).toUpperCase()+i.slice(1)),d}],56420)},22768,e=>{"use strict";var a=e.i(56420);let t={name:"circle-alert",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],aliases:["alert-circle"]};t.node;let s=(0,a.default)(t);e.s(["CircleAlert",0,s],22768)},11568,e=>{"use strict";var a=e.i(56420);let t={name:"loader-circle",size:24,node:[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],aliases:["loader-2"]};t.node;let s=(0,a.default)(t);e.s(["LoaderCircle",0,s],11568)},97923,e=>{"use strict";var a=e.i(56420);let t={name:"log-in",size:24,node:[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]]};t.node;let s=(0,a.default)(t);e.s(["LogIn",0,s],97923)},41120,e=>{"use strict";var a=e.i(56420);let t={name:"refresh-cw",size:24,node:[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]};t.node;let s=(0,a.default)(t);e.s(["RefreshCw",0,s],41120)},59659,e=>{"use strict";var a=e.i(56420);let t={name:"trash",size:24,node:[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],aliases:["trash-2"]};t.node;let s=(0,a.default)(t);e.s(["Trash2",0,s],59659)},66787,e=>{"use strict";var a=e.i(56420);let t={name:"triangle-alert",size:24,node:[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],aliases:["alert-triangle"]};t.node;let s=(0,a.default)(t);e.s(["TriangleAlert",0,s],66787)},18566,(e,a,t)=>{a.exports=e.r(76562)},12604,e=>{"use strict";var a=e.i(43476),t=e.i(56420);let s={name:"app-window",size:24,node:[["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}],["path",{d:"M10 4v4",key:"pp8u80"}],["path",{d:"M2 8h20",key:"d11cs7"}],["path",{d:"M6 4v4",key:"1svtjw"}]]};s.node;let n=(0,t.default)(s);var i=e.i(22768);let r={name:"external-link",size:24,node:[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]};r.node;let d=(0,t.default)(r),l={name:"key-round",size:24,node:[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]};l.node;let c=(0,t.default)(l);var o=e.i(11568);let h={name:"lock",size:24,node:[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]};h.node;let m=(0,t.default)(h);var u=e.i(97923),x=e.i(41120),p=e.i(59659),f=e.i(66787),g=e.i(22016),k=e.i(71645),b=e.i(57234);let j={name:"cctv",size:24,node:[["path",{d:"M16.75 12h3.632a1 1 0 0 1 .894 1.447l-2.034 4.069a1 1 0 0 1-1.708.134l-2.124-2.97",key:"ir91b5"}],["path",{d:"M17.106 9.053a1 1 0 0 1 .447 1.341l-3.106 6.211a1 1 0 0 1-1.342.447L3.61 12.3a2.92 2.92 0 0 1-1.3-3.91L3.69 5.6a2.92 2.92 0 0 1 3.92-1.3z",key:"jlp8i1"}],["path",{d:"M2 19h3.76a2 2 0 0 0 1.8-1.1L9 15",key:"19bib8"}],["path",{d:"M2 21v-4",key:"l40lih"}],["path",{d:"M7 9h.01",key:"19b3jx"}]]};j.node;let y=(0,t.default)(j),v={name:"shield-alert",size:24,node:[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]};v.node;let z=(0,t.default)(v),N={name:"wifi-off",size:24,node:[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]};N.node;let w=(0,t.default)(N),C={live:{label:"Live",Icon:y,tone:"bg-emerald-100 text-emerald-800 dark:bg-emerald-950 dark:text-emerald-300"},connecting:{label:"Connecting",Icon:o.LoaderCircle,tone:"bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300",spin:!0},auth:{label:"Needs login",Icon:c,tone:"bg-amber-100 text-amber-900 dark:bg-amber-950 dark:text-amber-300"},inactive:{label:"Not activated",Icon:z,tone:"bg-amber-100 text-amber-900 dark:bg-amber-950 dark:text-amber-300"},error:{label:"Offline",Icon:w,tone:"bg-red-100 text-red-800 dark:bg-red-950 dark:text-red-300"},"signed-out":{label:"Session ended",Icon:u.LogIn,tone:"bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300"}};function M({status:e}){let{label:t,Icon:s,tone:n,spin:i}=C[e];return(0,a.jsxs)("span",{"data-status":e,className:`inline-flex shrink-0 items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium ${n}`,children:[(0,a.jsx)(s,{"aria-hidden":!0,className:`size-3.5 ${i?"animate-spin motion-reduce:animate-none":""}`}),t]})}let S={H264:"H.264",H265:"H.265"};var $=e.i(45840),A=e.i(79575);let P="camera";function L({cam:e,children:t}){return(0,a.jsxs)("a",{href:`http://${e.host}${80===e.port?"":`:${e.port}`}/`,target:"_blank",rel:"noopener noreferrer",className:"underline",children:[t,(0,a.jsx)(d,{"aria-hidden":!0,className:"ml-0.5 inline size-3 align-[-0.1em]"})]})}function I({cam:e,onCheckAgain:t}){return(0,a.jsxs)("div",{className:"flex flex-col gap-2 rounded border border-amber-400/60 p-3 text-sm",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 font-medium",children:[(0,a.jsx)(f.TriangleAlert,{"aria-hidden":!0,className:"size-4 shrink-0 text-amber-600 dark:text-amber-400"}),"Setup required: camera not activated"]}),(0,a.jsxs)("ol",{className:"list-decimal space-y-1 pl-5 text-zinc-700 dark:text-zinc-300",children:[(0,a.jsxs)("li",{children:[(0,a.jsx)(L,{cam:e,children:"Open the camera's web page"})," and activate it by choosing an admin password. Save it in your password manager; this app never stores it."]}),(0,a.jsx)("li",{children:"Enable ONVIF (usually Configuration → Network → Advanced Settings → Integration Protocol)."}),(0,a.jsxs)("li",{children:["On the same page, add an ONVIF user named ",(0,a.jsx)("code",{children:P})," with the"," ",(0,a.jsx)("strong",{children:"Operator"})," level."]}),(0,a.jsx)("li",{children:"Come back here and click Check again, then enter that user's login."})]}),(0,a.jsx)("div",{children:(0,a.jsxs)("button",{onClick:t,className:"inline-flex items-center gap-1.5 rounded bg-black px-3 py-1 text-white dark:bg-white dark:text-black",children:[(0,a.jsx)(x.RefreshCw,{"aria-hidden":!0,className:"size-4"}),"Check again"]})})]})}function U({cam:e,frame:t,paused:s,poppedOut:i}){return(0,a.jsxs)("div",{className:"relative aspect-video overflow-hidden rounded bg-zinc-100 dark:bg-zinc-900",children:[t&&(0,a.jsx)($.default,{frame:t,alt:e.name??e.host,className:`h-full w-full object-contain ${s||i?"opacity-40":""}`}),i?(0,a.jsxs)("div",{className:"absolute inset-0 flex items-center justify-center gap-1.5 text-sm font-medium",children:[(0,a.jsx)(n,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Showing in pop-out"]}):!t&&!s&&(0,a.jsx)("div",{className:"absolute inset-0 flex items-center justify-center text-sm text-zinc-500",children:"Loading…"})]})}function V({cam:e,intervalMs:t,aspect:s}){return(0,a.jsxs)("a",{href:(0,A.popoutUrl)(e.id,t),target:(0,A.popoutWindowName)(e.id),onClick:a=>{(0,A.openPopout)(e.id,t,s)&&a.preventDefault()},className:"inline-flex items-center gap-1 underline",children:[(0,a.jsx)(n,{"aria-hidden":!0,className:"size-3.5"}),"Pop out"]})}function q({cam:e,reason:t,onSaved:s,onCancel:n}){let r=(0,b.useCredentialStatus)(e.id),d=(0,b.useSaveCredentials)(e.id),l=(0,b.useClearCredentials)(e.id),[h,u]=(0,k.useState)(null),[x,f]=(0,k.useState)(""),g=h??r.data?.username??P,j=d.error??l.error,y=d.isPending||l.isPending;return(0,a.jsxs)("form",{onSubmit:function(e){e.preventDefault(),d.mutate({username:g,password:x},{onSuccess:()=>{f(""),s()}})},className:"flex flex-col gap-2 rounded border border-amber-400/60 p-3 text-sm",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 font-medium",children:[(0,a.jsx)(c,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Camera login"]}),t&&(0,a.jsx)("div",{className:"text-xs text-zinc-500",children:t}),(0,a.jsxs)("div",{className:"text-xs text-zinc-500",children:["Use the ONVIF user you created on the camera (",(0,a.jsx)(L,{cam:e,children:"camera web page"}),")."]}),(0,a.jsx)("input",{value:g,onChange:e=>u(e.target.value),placeholder:"Username",autoComplete:"off",required:!0,className:"rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),(0,a.jsx)("input",{type:"password",value:x,onChange:e=>f(e.target.value),placeholder:"Password",autoComplete:"new-password",className:"rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),j&&(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-red-600",children:[(0,a.jsx)(i.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),j===d.error&&"auth"===j.kind?"Camera rejected that login.":j.message]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)("button",{type:"submit",disabled:y,className:"inline-flex items-center gap-1.5 rounded bg-black px-3 py-1 text-white disabled:opacity-50 dark:bg-white dark:text-black",children:[d.isPending?(0,a.jsx)(o.LoaderCircle,{"aria-hidden":!0,className:"size-4 animate-spin motion-reduce:animate-none"}):(0,a.jsx)(m,{"aria-hidden":!0,className:"size-4"}),d.isPending?"Checking…":"Save"]}),r.data?.source==="stored"&&(0,a.jsxs)("button",{type:"button",disabled:y,onClick:()=>l.mutate(void 0,{onSuccess:s}),className:"inline-flex items-center gap-1.5 rounded px-3 py-1 underline disabled:opacity-50",children:[(0,a.jsx)(p.Trash2,{"aria-hidden":!0,className:"size-4"}),"Forget saved login"]}),n&&(0,a.jsx)("button",{type:"button",onClick:n,className:"rounded px-3 py-1 underline",children:"Cancel"})]})]})}e.s(["default",0,function({cam:e,intervalMs:t}){var s,n,r;let d,l,o=(0,b.useCameraInfo)(e.id),h=function(e){let[a,t]=(0,k.useState)(!1);return(0,k.useEffect)(()=>(0,A.watchPopout)(e,t),[e]),a}(e.id),m=(0,b.useCameraSnapshot)(e.id,t,o.isSuccess&&!h),p=(0,b.useResetCamera)(e.id),[f,j]=(0,k.useState)(!1),y=o.error??m.error;function v(){j(!1),p()}let z=o.data&&[[(n=(s=o.data).manufacturer,(l=n?.trim())&&"ONVIF"!==l.toUpperCase()?l:void 0),s.model].filter(Boolean).join(" ")||void 0,s.firmwareVersion?`fw ${s.firmwareVersion}`:void 0].filter(Boolean).join(" · ")||null,N=o.data?(d=function(e){let a;for(let t of e){let e=(t.width??0)*(t.height??0);(!a||e>(a.width??0)*(a.height??0))&&(a=t)}return a}(o.data.profiles))?[d.width&&d.height?`Main ${d.width}\xd7${d.height}`:"Main",d.encoding?S[(r=d.encoding).toUpperCase()]??r:void 0,d.fps?`${d.fps} fps`:void 0].filter(Boolean).join(" · "):null:null,w=o.data?.profiles[0],C=w?.width&&w.height?w.width/w.height:void 0,$=y?.kind==="inactive",P=!$&&(y?.kind==="auth"||f);return(0,a.jsxs)("li",{className:"flex flex-col gap-3 rounded-lg border border-zinc-200 p-4 dark:border-zinc-800",children:[(0,a.jsx)(U,{cam:e,frame:m.data,paused:null!==y||!o.isSuccess,poppedOut:h}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)(g.default,{href:`/cameras/${e.id}`,className:"font-medium hover:underline",children:e.name??o.data?.model??"Unnamed camera"}),(0,a.jsx)(M,{status:function({problem:e,hasFrame:a}){return e||(a?"live":"connecting")}({problem:y?.kind??null,hasFrame:void 0!==m.data})})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsxs)("span",{className:"font-mono text-sm",children:[e.host,":",e.port]}),(0,a.jsxs)("span",{className:"flex gap-3 text-xs",children:[(0,a.jsx)(V,{cam:e,intervalMs:t,aspect:C}),(0,a.jsx)(L,{cam:e,children:"Web page"}),!P&&!$&&(0,a.jsxs)("button",{onClick:()=>j(!0),className:"inline-flex items-center gap-1 underline",children:[(0,a.jsx)(c,{"aria-hidden":!0,className:"size-3.5"}),"Change login"]})]})]}),z&&(0,a.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:z}),N&&(0,a.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:N}),e.location&&(0,a.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:e.location})]}),$&&(0,a.jsx)(I,{cam:e,onCheckAgain:v}),P&&(0,a.jsx)(q,{cam:e,reason:y?.kind==="auth"?y.message:void 0,onSaved:()=>j(!1),onCancel:y?.kind==="auth"?void 0:()=>j(!1)}),y?.kind==="signed-out"&&(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2 text-sm text-red-600",children:[(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)(i.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Your session has ended."]}),(0,a.jsxs)("a",{href:"/login",className:"inline-flex items-center gap-1 underline",children:[(0,a.jsx)(u.LogIn,{"aria-hidden":!0,className:"size-4"}),"Sign in again"]})]}),y?.kind==="error"&&(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2 text-sm text-red-600",children:[(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)(i.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Stopped: ",y.message]}),(0,a.jsxs)("button",{onClick:v,className:"inline-flex items-center gap-1 underline",children:[(0,a.jsx)(x.RefreshCw,{"aria-hidden":!0,className:"size-4"}),"Retry"]})]}),o.data&&o.data.profiles.length>0&&(0,a.jsxs)("table",{className:"text-xs",children:[(0,a.jsx)("thead",{className:"text-left text-zinc-500",children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{className:"font-normal",children:"Profile"}),(0,a.jsx)("th",{className:"font-normal",children:"Codec"}),(0,a.jsx)("th",{className:"font-normal",children:"Resolution"}),(0,a.jsx)("th",{className:"font-normal",children:"FPS"})]})}),(0,a.jsx)("tbody",{className:"font-mono",children:o.data.profiles.map(e=>(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{children:e.name??e.token}),(0,a.jsx)("td",{children:e.encoding??"?"}),(0,a.jsx)("td",{children:e.width&&e.height?`${e.width}\xd7${e.height}`:"?"}),(0,a.jsx)("td",{children:e.fps??"?"})]},e.token))})]})]})}],12604)},78040,e=>{"use strict";var a=e.i(43476),t=e.i(22768),s=e.i(11568),n=e.i(56420);let i={name:"radar",size:24,node:[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]]};i.node;let r=(0,n.default)(i);var d=e.i(18566),l=e.i(71645),c=e.i(57234);e.s(["default",0,function(){var e;let n,i,o,h=(0,d.useRouter)(),m=(0,c.useScanNetwork)(),[u,x]=(0,l.useState)(5),[p,f]=(0,l.useState)(!0),[g,k]=(0,l.useTransition)(),{seconds:b,start:j}=function(e){let[a,t]=(0,l.useState)(0),s=(0,l.useRef)(0);return(0,l.useEffect)(()=>{if(!e)return;let a=setInterval(()=>t(Math.round((Date.now()-s.current)/1e3)),500);return()=>clearInterval(a)},[e]),{seconds:e?a:0,start:()=>{s.current=Date.now(),t(0)}}}(m.isPending),y=m.isPending||g;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("button",{onClick:()=>{j(),m.mutate({timeoutSecs:u,unicastSweep:p},{onSuccess:()=>k(()=>h.refresh())})},disabled:y,className:"inline-flex items-center gap-2 rounded-md bg-black px-4 py-2 text-sm font-medium text-white disabled:opacity-50 dark:bg-white dark:text-black",children:[y?(0,a.jsx)(s.LoaderCircle,{"aria-hidden":!0,className:"size-4 animate-spin motion-reduce:animate-none"}):(0,a.jsx)(r,{"aria-hidden":!0,className:"size-4"}),m.isPending?`Scanning… ${b}s of ${u}s`:g?"Updating the list…":"Scan network"]}),(0,a.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:["Timeout",(0,a.jsx)("input",{type:"number",min:1,max:30,value:u,onChange:e=>x(Number(e.target.value)),disabled:y,className:"w-16 rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),"s"]}),(0,a.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,a.jsx)("input",{type:"checkbox",checked:p,onChange:e=>f(e.target.checked),disabled:y}),"Unicast sweep of local subnet"]}),m.isPending&&(0,a.jsxs)("p",{role:"status",className:"w-full text-sm text-zinc-600 dark:text-zinc-400",children:["Listening for cameras that announce themselves",p?", and asking every address on this network in turn":"",". Cameras answer at their own pace, so this runs for the full ",u," seconds."]}),g&&(0,a.jsx)("p",{role:"status",className:"w-full text-sm text-zinc-600 dark:text-zinc-400",children:"Updating the list; each camera is then asked for its details and a first picture."}),!y&&m.data&&(0,a.jsx)("p",{className:"w-full text-sm text-zinc-600 dark:text-zinc-400",children:(e=m.data,n=`${e.cameras.length} camera${1===e.cameras.length?"":"s"}`,i=Math.max(1,Math.round(e.durationMs/1e3)),o=e.addressesProbed?` after checking ${e.addressesProbed.toLocaleString("en-US")} addresses`:"",`Found ${n} in ${i}s${o}.`)}),m.isError&&(0,a.jsxs)("p",{className:"flex w-full items-center gap-1.5 text-sm text-red-600",children:[(0,a.jsx)(t.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Error: ",m.error.message]})]})}],78040)}]);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "onvif-dashboard",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Web dashboard for ONVIF cameras (Hikvision, Annke): discovery, live video over WebRTC, motion recording and settings, all on your own network.",
5
5
  "keywords": [
6
6
  "onvif",
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,56420,e=>{"use strict";var a=e.i(71645),t=e.i(5014);e.s(["default",0,function(e,n=[],i=[]){let s,r="string"==typeof e?function(e,a,t=[]){if(null==a)throw Error("[lucide]: iconNode is required when icon name is used");return{name:e?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:a,...t.length>0?{aliases:t}:{}}}(e,n,i):e,d=(0,a.forwardRef)(({className:e,...n},i)=>(0,a.createElement)(t.default,{ref:i,icon:r,className:e,...n}));return r.name&&(d.displayName=(s=(e=>{let a="",t=!1;for(let n of e){if("-"===n||"_"===n||n<=" "){t=a.length>0;continue}0===a.length?a+=n.toLowerCase():a+=t?n.toUpperCase():n,t=!1}return a})(r.name)).charAt(0).toUpperCase()+s.slice(1)),d}],56420)},22768,e=>{"use strict";var a=e.i(56420);let t={name:"circle-alert",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],aliases:["alert-circle"]};t.node;let n=(0,a.default)(t);e.s(["CircleAlert",0,n],22768)},11568,e=>{"use strict";var a=e.i(56420);let t={name:"loader-circle",size:24,node:[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],aliases:["loader-2"]};t.node;let n=(0,a.default)(t);e.s(["LoaderCircle",0,n],11568)},97923,e=>{"use strict";var a=e.i(56420);let t={name:"log-in",size:24,node:[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]]};t.node;let n=(0,a.default)(t);e.s(["LogIn",0,n],97923)},41120,e=>{"use strict";var a=e.i(56420);let t={name:"refresh-cw",size:24,node:[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]};t.node;let n=(0,a.default)(t);e.s(["RefreshCw",0,n],41120)},59659,e=>{"use strict";var a=e.i(56420);let t={name:"trash",size:24,node:[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],aliases:["trash-2"]};t.node;let n=(0,a.default)(t);e.s(["Trash2",0,n],59659)},66787,e=>{"use strict";var a=e.i(56420);let t={name:"triangle-alert",size:24,node:[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],aliases:["alert-triangle"]};t.node;let n=(0,a.default)(t);e.s(["TriangleAlert",0,n],66787)},18566,(e,a,t)=>{a.exports=e.r(76562)},12604,e=>{"use strict";var a=e.i(43476),t=e.i(56420);let n={name:"app-window",size:24,node:[["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}],["path",{d:"M10 4v4",key:"pp8u80"}],["path",{d:"M2 8h20",key:"d11cs7"}],["path",{d:"M6 4v4",key:"1svtjw"}]]};n.node;let i=(0,t.default)(n);var s=e.i(22768);let r={name:"external-link",size:24,node:[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]};r.node;let d=(0,t.default)(r),l={name:"key-round",size:24,node:[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]};l.node;let c=(0,t.default)(l);var o=e.i(11568);let h={name:"lock",size:24,node:[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]};h.node;let m=(0,t.default)(h);var u=e.i(97923),x=e.i(41120),p=e.i(59659),f=e.i(66787),g=e.i(22016),k=e.i(71645),j=e.i(57234);let b={name:"cctv",size:24,node:[["path",{d:"M16.75 12h3.632a1 1 0 0 1 .894 1.447l-2.034 4.069a1 1 0 0 1-1.708.134l-2.124-2.97",key:"ir91b5"}],["path",{d:"M17.106 9.053a1 1 0 0 1 .447 1.341l-3.106 6.211a1 1 0 0 1-1.342.447L3.61 12.3a2.92 2.92 0 0 1-1.3-3.91L3.69 5.6a2.92 2.92 0 0 1 3.92-1.3z",key:"jlp8i1"}],["path",{d:"M2 19h3.76a2 2 0 0 0 1.8-1.1L9 15",key:"19bib8"}],["path",{d:"M2 21v-4",key:"l40lih"}],["path",{d:"M7 9h.01",key:"19b3jx"}]]};b.node;let y=(0,t.default)(b),v={name:"shield-alert",size:24,node:[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]};v.node;let N=(0,t.default)(v),z={name:"wifi-off",size:24,node:[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]};z.node;let w=(0,t.default)(z),C={live:{label:"Live",Icon:y,tone:"bg-emerald-100 text-emerald-800 dark:bg-emerald-950 dark:text-emerald-300"},connecting:{label:"Connecting",Icon:o.LoaderCircle,tone:"bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300",spin:!0},auth:{label:"Needs login",Icon:c,tone:"bg-amber-100 text-amber-900 dark:bg-amber-950 dark:text-amber-300"},inactive:{label:"Not activated",Icon:N,tone:"bg-amber-100 text-amber-900 dark:bg-amber-950 dark:text-amber-300"},error:{label:"Offline",Icon:w,tone:"bg-red-100 text-red-800 dark:bg-red-950 dark:text-red-300"},"signed-out":{label:"Session ended",Icon:u.LogIn,tone:"bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300"}};function M({status:e}){let{label:t,Icon:n,tone:i,spin:s}=C[e];return(0,a.jsxs)("span",{"data-status":e,className:`inline-flex shrink-0 items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium ${i}`,children:[(0,a.jsx)(n,{"aria-hidden":!0,className:`size-3.5 ${s?"animate-spin motion-reduce:animate-none":""}`}),t]})}let S={H264:"H.264",H265:"H.265"};var A=e.i(45840),L=e.i(79575);let P="camera";function I({cam:e,children:t}){return(0,a.jsxs)("a",{href:`http://${e.host}${80===e.port?"":`:${e.port}`}/`,target:"_blank",rel:"noopener noreferrer",className:"underline",children:[t,(0,a.jsx)(d,{"aria-hidden":!0,className:"ml-0.5 inline size-3 align-[-0.1em]"})]})}function $({cam:e,onCheckAgain:t}){return(0,a.jsxs)("div",{className:"flex flex-col gap-2 rounded border border-amber-400/60 p-3 text-sm",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 font-medium",children:[(0,a.jsx)(f.TriangleAlert,{"aria-hidden":!0,className:"size-4 shrink-0 text-amber-600 dark:text-amber-400"}),"Setup required: camera not activated"]}),(0,a.jsxs)("ol",{className:"list-decimal space-y-1 pl-5 text-zinc-700 dark:text-zinc-300",children:[(0,a.jsxs)("li",{children:[(0,a.jsx)(I,{cam:e,children:"Open the camera's web page"})," and activate it by choosing an admin password. Save it in your password manager; this app never stores it."]}),(0,a.jsx)("li",{children:"Enable ONVIF (usually Configuration → Network → Advanced Settings → Integration Protocol)."}),(0,a.jsxs)("li",{children:["On the same page, add an ONVIF user named ",(0,a.jsx)("code",{children:P})," with the"," ",(0,a.jsx)("strong",{children:"Operator"})," level."]}),(0,a.jsx)("li",{children:"Come back here and click Check again, then enter that user's login."})]}),(0,a.jsx)("div",{children:(0,a.jsxs)("button",{onClick:t,className:"inline-flex items-center gap-1.5 rounded bg-black px-3 py-1 text-white dark:bg-white dark:text-black",children:[(0,a.jsx)(x.RefreshCw,{"aria-hidden":!0,className:"size-4"}),"Check again"]})})]})}function V({cam:e,frame:t,paused:n,poppedOut:s}){return(0,a.jsxs)("div",{className:"relative aspect-video overflow-hidden rounded bg-zinc-100 dark:bg-zinc-900",children:[t&&(0,a.jsx)(A.default,{frame:t,alt:e.name??e.host,className:`h-full w-full object-contain ${n||s?"opacity-40":""}`}),s?(0,a.jsxs)("div",{className:"absolute inset-0 flex items-center justify-center gap-1.5 text-sm font-medium",children:[(0,a.jsx)(i,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Showing in pop-out"]}):!t&&!n&&(0,a.jsx)("div",{className:"absolute inset-0 flex items-center justify-center text-sm text-zinc-500",children:"Loading…"})]})}function q({cam:e,intervalMs:t,aspect:n}){return(0,a.jsxs)("a",{href:(0,L.popoutUrl)(e.id,t),target:(0,L.popoutWindowName)(e.id),onClick:a=>{(0,L.openPopout)(e.id,t,n)&&a.preventDefault()},className:"inline-flex items-center gap-1 underline",children:[(0,a.jsx)(i,{"aria-hidden":!0,className:"size-3.5"}),"Pop out"]})}function O({cam:e,reason:t,onSaved:n,onCancel:i}){let r=(0,j.useCredentialStatus)(e.id),d=(0,j.useSaveCredentials)(e.id),l=(0,j.useClearCredentials)(e.id),[h,u]=(0,k.useState)(null),[x,f]=(0,k.useState)(""),g=h??r.data?.username??P,b=d.error??l.error,y=d.isPending||l.isPending;return(0,a.jsxs)("form",{onSubmit:function(e){e.preventDefault(),d.mutate({username:g,password:x},{onSuccess:()=>{f(""),n()}})},className:"flex flex-col gap-2 rounded border border-amber-400/60 p-3 text-sm",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 font-medium",children:[(0,a.jsx)(c,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Camera login"]}),t&&(0,a.jsx)("div",{className:"text-xs text-zinc-500",children:t}),(0,a.jsxs)("div",{className:"text-xs text-zinc-500",children:["Use the ONVIF user you created on the camera (",(0,a.jsx)(I,{cam:e,children:"camera web page"}),")."]}),(0,a.jsx)("input",{value:g,onChange:e=>u(e.target.value),placeholder:"Username",autoComplete:"off",required:!0,className:"rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),(0,a.jsx)("input",{type:"password",value:x,onChange:e=>f(e.target.value),placeholder:"Password",autoComplete:"new-password",className:"rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),b&&(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-red-600",children:[(0,a.jsx)(s.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),b===d.error&&"auth"===b.kind?"Camera rejected that login.":b.message]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)("button",{type:"submit",disabled:y,className:"inline-flex items-center gap-1.5 rounded bg-black px-3 py-1 text-white disabled:opacity-50 dark:bg-white dark:text-black",children:[d.isPending?(0,a.jsx)(o.LoaderCircle,{"aria-hidden":!0,className:"size-4 animate-spin motion-reduce:animate-none"}):(0,a.jsx)(m,{"aria-hidden":!0,className:"size-4"}),d.isPending?"Checking…":"Save"]}),r.data?.source==="stored"&&(0,a.jsxs)("button",{type:"button",disabled:y,onClick:()=>l.mutate(void 0,{onSuccess:n}),className:"inline-flex items-center gap-1.5 rounded px-3 py-1 underline disabled:opacity-50",children:[(0,a.jsx)(p.Trash2,{"aria-hidden":!0,className:"size-4"}),"Forget saved login"]}),i&&(0,a.jsx)("button",{type:"button",onClick:i,className:"rounded px-3 py-1 underline",children:"Cancel"})]})]})}e.s(["default",0,function({cam:e,intervalMs:t}){var n,i,r;let d,l,o=(0,j.useCameraInfo)(e.id),h=function(e){let[a,t]=(0,k.useState)(!1);return(0,k.useEffect)(()=>(0,L.watchPopout)(e,t),[e]),a}(e.id),m=(0,j.useCameraSnapshot)(e.id,t,o.isSuccess&&!h),p=(0,j.useResetCamera)(e.id),[f,b]=(0,k.useState)(!1),y=o.error??m.error;function v(){b(!1),p()}let N=o.data&&[[(i=(n=o.data).manufacturer,(l=i?.trim())&&"ONVIF"!==l.toUpperCase()?l:void 0),n.model].filter(Boolean).join(" ")||void 0,n.firmwareVersion?`fw ${n.firmwareVersion}`:void 0].filter(Boolean).join(" · ")||null,z=o.data?(d=function(e){let a;for(let t of e){let e=(t.width??0)*(t.height??0);(!a||e>(a.width??0)*(a.height??0))&&(a=t)}return a}(o.data.profiles))?[d.width&&d.height?`Main ${d.width}\xd7${d.height}`:"Main",d.encoding?S[(r=d.encoding).toUpperCase()]??r:void 0,d.fps?`${d.fps} fps`:void 0].filter(Boolean).join(" · "):null:null,w=o.data?.profiles[0],C=w?.width&&w.height?w.width/w.height:void 0,A=y?.kind==="inactive",P=!A&&(y?.kind==="auth"||f);return(0,a.jsxs)("li",{className:"flex flex-col gap-3 rounded-lg border border-zinc-200 p-4 dark:border-zinc-800",children:[(0,a.jsx)(V,{cam:e,frame:m.data,paused:null!==y||!o.isSuccess,poppedOut:h}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)(g.default,{href:`/cameras/${e.id}`,className:"font-medium hover:underline",children:e.name??o.data?.model??"Unnamed camera"}),(0,a.jsx)(M,{status:function({problem:e,hasFrame:a}){return e||(a?"live":"connecting")}({problem:y?.kind??null,hasFrame:void 0!==m.data})})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsxs)("span",{className:"font-mono text-sm",children:[e.host,":",e.port]}),(0,a.jsxs)("span",{className:"flex gap-3 text-xs",children:[(0,a.jsx)(q,{cam:e,intervalMs:t,aspect:C}),(0,a.jsx)(I,{cam:e,children:"Web page"}),!P&&!A&&(0,a.jsxs)("button",{onClick:()=>b(!0),className:"inline-flex items-center gap-1 underline",children:[(0,a.jsx)(c,{"aria-hidden":!0,className:"size-3.5"}),"Change login"]})]})]}),N&&(0,a.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:N}),z&&(0,a.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:z}),e.location&&(0,a.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:e.location})]}),A&&(0,a.jsx)($,{cam:e,onCheckAgain:v}),P&&(0,a.jsx)(O,{cam:e,reason:y?.kind==="auth"?y.message:void 0,onSaved:()=>b(!1),onCancel:y?.kind==="auth"?void 0:()=>b(!1)}),y?.kind==="signed-out"&&(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2 text-sm text-red-600",children:[(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)(s.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Your session has ended."]}),(0,a.jsxs)("a",{href:"/login",className:"inline-flex items-center gap-1 underline",children:[(0,a.jsx)(u.LogIn,{"aria-hidden":!0,className:"size-4"}),"Sign in again"]})]}),y?.kind==="error"&&(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2 text-sm text-red-600",children:[(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)(s.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Stopped: ",y.message]}),(0,a.jsxs)("button",{onClick:v,className:"inline-flex items-center gap-1 underline",children:[(0,a.jsx)(x.RefreshCw,{"aria-hidden":!0,className:"size-4"}),"Retry"]})]}),o.data&&o.data.profiles.length>0&&(0,a.jsxs)("table",{className:"text-xs",children:[(0,a.jsx)("thead",{className:"text-left text-zinc-500",children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{className:"font-normal",children:"Profile"}),(0,a.jsx)("th",{className:"font-normal",children:"Codec"}),(0,a.jsx)("th",{className:"font-normal",children:"Resolution"}),(0,a.jsx)("th",{className:"font-normal",children:"FPS"})]})}),(0,a.jsx)("tbody",{className:"font-mono",children:o.data.profiles.map(e=>(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{children:e.name??e.token}),(0,a.jsx)("td",{children:e.encoding??"?"}),(0,a.jsx)("td",{children:e.width&&e.height?`${e.width}\xd7${e.height}`:"?"}),(0,a.jsx)("td",{children:e.fps??"?"})]},e.token))})]})]})}],12604)},78040,e=>{"use strict";var a=e.i(43476),t=e.i(22768),n=e.i(11568),i=e.i(56420);let s={name:"radar",size:24,node:[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]]};s.node;let r=(0,i.default)(s);var d=e.i(18566),l=e.i(71645),c=e.i(57234);e.s(["default",0,function(){let e=(0,d.useRouter)(),i=(0,c.useScanNetwork)(),[s,o]=(0,l.useState)(5),[h,m]=(0,l.useState)(!0),u=i.data?.cameras.length;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("button",{onClick:()=>i.mutate({timeoutSecs:s,unicastSweep:h},{onSuccess:()=>e.refresh()}),disabled:i.isPending,className:"inline-flex items-center gap-2 rounded-md bg-black px-4 py-2 text-sm font-medium text-white disabled:opacity-50 dark:bg-white dark:text-black",children:[i.isPending?(0,a.jsx)(n.LoaderCircle,{"aria-hidden":!0,className:"size-4 animate-spin motion-reduce:animate-none"}):(0,a.jsx)(r,{"aria-hidden":!0,className:"size-4"}),i.isPending?"Scanning…":"Scan network"]}),(0,a.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:["Timeout",(0,a.jsx)("input",{type:"number",min:1,max:30,value:s,onChange:e=>o(Number(e.target.value)),className:"w-16 rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),"s"]}),(0,a.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,a.jsx)("input",{type:"checkbox",checked:h,onChange:e=>m(e.target.checked)}),"Unicast sweep of local subnet"]}),void 0!==u&&(0,a.jsxs)("p",{className:"w-full text-sm text-zinc-600 dark:text-zinc-400",children:["Scan found ",u," camera",1===u?"":"s"]}),i.isError&&(0,a.jsxs)("p",{className:"flex w-full items-center gap-1.5 text-sm text-red-600",children:[(0,a.jsx)(t.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Error: ",i.error.message]})]})}],78040)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,56420,e=>{"use strict";var a=e.i(71645),t=e.i(5014);e.s(["default",0,function(e,s=[],n=[]){let i,r="string"==typeof e?function(e,a,t=[]){if(null==a)throw Error("[lucide]: iconNode is required when icon name is used");return{name:e?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:a,...t.length>0?{aliases:t}:{}}}(e,s,n):e,d=(0,a.forwardRef)(({className:e,...s},n)=>(0,a.createElement)(t.default,{ref:n,icon:r,className:e,...s}));return r.name&&(d.displayName=(i=(e=>{let a="",t=!1;for(let s of e){if("-"===s||"_"===s||s<=" "){t=a.length>0;continue}0===a.length?a+=s.toLowerCase():a+=t?s.toUpperCase():s,t=!1}return a})(r.name)).charAt(0).toUpperCase()+i.slice(1)),d}],56420)},22768,e=>{"use strict";var a=e.i(56420);let t={name:"circle-alert",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],aliases:["alert-circle"]};t.node;let s=(0,a.default)(t);e.s(["CircleAlert",0,s],22768)},11568,e=>{"use strict";var a=e.i(56420);let t={name:"loader-circle",size:24,node:[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],aliases:["loader-2"]};t.node;let s=(0,a.default)(t);e.s(["LoaderCircle",0,s],11568)},97923,e=>{"use strict";var a=e.i(56420);let t={name:"log-in",size:24,node:[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]]};t.node;let s=(0,a.default)(t);e.s(["LogIn",0,s],97923)},41120,e=>{"use strict";var a=e.i(56420);let t={name:"refresh-cw",size:24,node:[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]};t.node;let s=(0,a.default)(t);e.s(["RefreshCw",0,s],41120)},59659,e=>{"use strict";var a=e.i(56420);let t={name:"trash",size:24,node:[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],aliases:["trash-2"]};t.node;let s=(0,a.default)(t);e.s(["Trash2",0,s],59659)},66787,e=>{"use strict";var a=e.i(56420);let t={name:"triangle-alert",size:24,node:[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],aliases:["alert-triangle"]};t.node;let s=(0,a.default)(t);e.s(["TriangleAlert",0,s],66787)},18566,(e,a,t)=>{a.exports=e.r(76562)},12604,e=>{"use strict";var a=e.i(43476),t=e.i(56420);let s={name:"app-window",size:24,node:[["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}],["path",{d:"M10 4v4",key:"pp8u80"}],["path",{d:"M2 8h20",key:"d11cs7"}],["path",{d:"M6 4v4",key:"1svtjw"}]]};s.node;let n=(0,t.default)(s);var i=e.i(22768);let r={name:"external-link",size:24,node:[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]};r.node;let d=(0,t.default)(r),l={name:"key-round",size:24,node:[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]};l.node;let c=(0,t.default)(l);var o=e.i(11568);let h={name:"lock",size:24,node:[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]};h.node;let m=(0,t.default)(h);var u=e.i(97923),x=e.i(41120),p=e.i(59659),f=e.i(66787),g=e.i(22016),k=e.i(71645),b=e.i(57234);let j={name:"cctv",size:24,node:[["path",{d:"M16.75 12h3.632a1 1 0 0 1 .894 1.447l-2.034 4.069a1 1 0 0 1-1.708.134l-2.124-2.97",key:"ir91b5"}],["path",{d:"M17.106 9.053a1 1 0 0 1 .447 1.341l-3.106 6.211a1 1 0 0 1-1.342.447L3.61 12.3a2.92 2.92 0 0 1-1.3-3.91L3.69 5.6a2.92 2.92 0 0 1 3.92-1.3z",key:"jlp8i1"}],["path",{d:"M2 19h3.76a2 2 0 0 0 1.8-1.1L9 15",key:"19bib8"}],["path",{d:"M2 21v-4",key:"l40lih"}],["path",{d:"M7 9h.01",key:"19b3jx"}]]};j.node;let y=(0,t.default)(j),v={name:"shield-alert",size:24,node:[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]};v.node;let z=(0,t.default)(v),N={name:"wifi-off",size:24,node:[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]};N.node;let w=(0,t.default)(N),C={live:{label:"Live",Icon:y,tone:"bg-emerald-100 text-emerald-800 dark:bg-emerald-950 dark:text-emerald-300"},connecting:{label:"Connecting",Icon:o.LoaderCircle,tone:"bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300",spin:!0},auth:{label:"Needs login",Icon:c,tone:"bg-amber-100 text-amber-900 dark:bg-amber-950 dark:text-amber-300"},inactive:{label:"Not activated",Icon:z,tone:"bg-amber-100 text-amber-900 dark:bg-amber-950 dark:text-amber-300"},error:{label:"Offline",Icon:w,tone:"bg-red-100 text-red-800 dark:bg-red-950 dark:text-red-300"},"signed-out":{label:"Session ended",Icon:u.LogIn,tone:"bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300"}};function M({status:e}){let{label:t,Icon:s,tone:n,spin:i}=C[e];return(0,a.jsxs)("span",{"data-status":e,className:`inline-flex shrink-0 items-center gap-1 rounded-full px-2 py-0.5 text-xs font-medium ${n}`,children:[(0,a.jsx)(s,{"aria-hidden":!0,className:`size-3.5 ${i?"animate-spin motion-reduce:animate-none":""}`}),t]})}let S={H264:"H.264",H265:"H.265"};var $=e.i(45840),A=e.i(79575);let P="camera";function L({cam:e,children:t}){return(0,a.jsxs)("a",{href:`http://${e.host}${80===e.port?"":`:${e.port}`}/`,target:"_blank",rel:"noopener noreferrer",className:"underline",children:[t,(0,a.jsx)(d,{"aria-hidden":!0,className:"ml-0.5 inline size-3 align-[-0.1em]"})]})}function I({cam:e,onCheckAgain:t}){return(0,a.jsxs)("div",{className:"flex flex-col gap-2 rounded border border-amber-400/60 p-3 text-sm",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 font-medium",children:[(0,a.jsx)(f.TriangleAlert,{"aria-hidden":!0,className:"size-4 shrink-0 text-amber-600 dark:text-amber-400"}),"Setup required: camera not activated"]}),(0,a.jsxs)("ol",{className:"list-decimal space-y-1 pl-5 text-zinc-700 dark:text-zinc-300",children:[(0,a.jsxs)("li",{children:[(0,a.jsx)(L,{cam:e,children:"Open the camera's web page"})," and activate it by choosing an admin password. Save it in your password manager; this app never stores it."]}),(0,a.jsx)("li",{children:"Enable ONVIF (usually Configuration → Network → Advanced Settings → Integration Protocol)."}),(0,a.jsxs)("li",{children:["On the same page, add an ONVIF user named ",(0,a.jsx)("code",{children:P})," with the"," ",(0,a.jsx)("strong",{children:"Operator"})," level."]}),(0,a.jsx)("li",{children:"Come back here and click Check again, then enter that user's login."})]}),(0,a.jsx)("div",{children:(0,a.jsxs)("button",{onClick:t,className:"inline-flex items-center gap-1.5 rounded bg-black px-3 py-1 text-white dark:bg-white dark:text-black",children:[(0,a.jsx)(x.RefreshCw,{"aria-hidden":!0,className:"size-4"}),"Check again"]})})]})}function U({cam:e,frame:t,paused:s,poppedOut:i}){return(0,a.jsxs)("div",{className:"relative aspect-video overflow-hidden rounded bg-zinc-100 dark:bg-zinc-900",children:[t&&(0,a.jsx)($.default,{frame:t,alt:e.name??e.host,className:`h-full w-full object-contain ${s||i?"opacity-40":""}`}),i?(0,a.jsxs)("div",{className:"absolute inset-0 flex items-center justify-center gap-1.5 text-sm font-medium",children:[(0,a.jsx)(n,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Showing in pop-out"]}):!t&&!s&&(0,a.jsx)("div",{className:"absolute inset-0 flex items-center justify-center text-sm text-zinc-500",children:"Loading…"})]})}function V({cam:e,intervalMs:t,aspect:s}){return(0,a.jsxs)("a",{href:(0,A.popoutUrl)(e.id,t),target:(0,A.popoutWindowName)(e.id),onClick:a=>{(0,A.openPopout)(e.id,t,s)&&a.preventDefault()},className:"inline-flex items-center gap-1 underline",children:[(0,a.jsx)(n,{"aria-hidden":!0,className:"size-3.5"}),"Pop out"]})}function q({cam:e,reason:t,onSaved:s,onCancel:n}){let r=(0,b.useCredentialStatus)(e.id),d=(0,b.useSaveCredentials)(e.id),l=(0,b.useClearCredentials)(e.id),[h,u]=(0,k.useState)(null),[x,f]=(0,k.useState)(""),g=h??r.data?.username??P,j=d.error??l.error,y=d.isPending||l.isPending;return(0,a.jsxs)("form",{onSubmit:function(e){e.preventDefault(),d.mutate({username:g,password:x},{onSuccess:()=>{f(""),s()}})},className:"flex flex-col gap-2 rounded border border-amber-400/60 p-3 text-sm",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1.5 font-medium",children:[(0,a.jsx)(c,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Camera login"]}),t&&(0,a.jsx)("div",{className:"text-xs text-zinc-500",children:t}),(0,a.jsxs)("div",{className:"text-xs text-zinc-500",children:["Use the ONVIF user you created on the camera (",(0,a.jsx)(L,{cam:e,children:"camera web page"}),")."]}),(0,a.jsx)("input",{value:g,onChange:e=>u(e.target.value),placeholder:"Username",autoComplete:"off",required:!0,className:"rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),(0,a.jsx)("input",{type:"password",value:x,onChange:e=>f(e.target.value),placeholder:"Password",autoComplete:"new-password",className:"rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),j&&(0,a.jsxs)("div",{className:"flex items-center gap-1.5 text-red-600",children:[(0,a.jsx)(i.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),j===d.error&&"auth"===j.kind?"Camera rejected that login.":j.message]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)("button",{type:"submit",disabled:y,className:"inline-flex items-center gap-1.5 rounded bg-black px-3 py-1 text-white disabled:opacity-50 dark:bg-white dark:text-black",children:[d.isPending?(0,a.jsx)(o.LoaderCircle,{"aria-hidden":!0,className:"size-4 animate-spin motion-reduce:animate-none"}):(0,a.jsx)(m,{"aria-hidden":!0,className:"size-4"}),d.isPending?"Checking…":"Save"]}),r.data?.source==="stored"&&(0,a.jsxs)("button",{type:"button",disabled:y,onClick:()=>l.mutate(void 0,{onSuccess:s}),className:"inline-flex items-center gap-1.5 rounded px-3 py-1 underline disabled:opacity-50",children:[(0,a.jsx)(p.Trash2,{"aria-hidden":!0,className:"size-4"}),"Forget saved login"]}),n&&(0,a.jsx)("button",{type:"button",onClick:n,className:"rounded px-3 py-1 underline",children:"Cancel"})]})]})}e.s(["default",0,function({cam:e,intervalMs:t}){var s,n,r;let d,l,o=(0,b.useCameraInfo)(e.id),h=function(e){let[a,t]=(0,k.useState)(!1);return(0,k.useEffect)(()=>(0,A.watchPopout)(e,t),[e]),a}(e.id),m=(0,b.useCameraSnapshot)(e.id,t,o.isSuccess&&!h),p=(0,b.useResetCamera)(e.id),[f,j]=(0,k.useState)(!1),y=o.error??m.error;function v(){j(!1),p()}let z=o.data&&[[(n=(s=o.data).manufacturer,(l=n?.trim())&&"ONVIF"!==l.toUpperCase()?l:void 0),s.model].filter(Boolean).join(" ")||void 0,s.firmwareVersion?`fw ${s.firmwareVersion}`:void 0].filter(Boolean).join(" · ")||null,N=o.data?(d=function(e){let a;for(let t of e){let e=(t.width??0)*(t.height??0);(!a||e>(a.width??0)*(a.height??0))&&(a=t)}return a}(o.data.profiles))?[d.width&&d.height?`Main ${d.width}\xd7${d.height}`:"Main",d.encoding?S[(r=d.encoding).toUpperCase()]??r:void 0,d.fps?`${d.fps} fps`:void 0].filter(Boolean).join(" · "):null:null,w=o.data?.profiles[0],C=w?.width&&w.height?w.width/w.height:void 0,$=y?.kind==="inactive",P=!$&&(y?.kind==="auth"||f);return(0,a.jsxs)("li",{className:"flex flex-col gap-3 rounded-lg border border-zinc-200 p-4 dark:border-zinc-800",children:[(0,a.jsx)(U,{cam:e,frame:m.data,paused:null!==y||!o.isSuccess,poppedOut:h}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)(g.default,{href:`/cameras/${e.id}`,className:"font-medium hover:underline",children:e.name??o.data?.model??"Unnamed camera"}),(0,a.jsx)(M,{status:function({problem:e,hasFrame:a}){return e||(a?"live":"connecting")}({problem:y?.kind??null,hasFrame:void 0!==m.data})})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsxs)("span",{className:"font-mono text-sm",children:[e.host,":",e.port]}),(0,a.jsxs)("span",{className:"flex gap-3 text-xs",children:[(0,a.jsx)(V,{cam:e,intervalMs:t,aspect:C}),(0,a.jsx)(L,{cam:e,children:"Web page"}),!P&&!$&&(0,a.jsxs)("button",{onClick:()=>j(!0),className:"inline-flex items-center gap-1 underline",children:[(0,a.jsx)(c,{"aria-hidden":!0,className:"size-3.5"}),"Change login"]})]})]}),z&&(0,a.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:z}),N&&(0,a.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:N}),e.location&&(0,a.jsx)("div",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:e.location})]}),$&&(0,a.jsx)(I,{cam:e,onCheckAgain:v}),P&&(0,a.jsx)(q,{cam:e,reason:y?.kind==="auth"?y.message:void 0,onSaved:()=>j(!1),onCancel:y?.kind==="auth"?void 0:()=>j(!1)}),y?.kind==="signed-out"&&(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2 text-sm text-red-600",children:[(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)(i.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Your session has ended."]}),(0,a.jsxs)("a",{href:"/login",className:"inline-flex items-center gap-1 underline",children:[(0,a.jsx)(u.LogIn,{"aria-hidden":!0,className:"size-4"}),"Sign in again"]})]}),y?.kind==="error"&&(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2 text-sm text-red-600",children:[(0,a.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)(i.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Stopped: ",y.message]}),(0,a.jsxs)("button",{onClick:v,className:"inline-flex items-center gap-1 underline",children:[(0,a.jsx)(x.RefreshCw,{"aria-hidden":!0,className:"size-4"}),"Retry"]})]}),o.data&&o.data.profiles.length>0&&(0,a.jsxs)("table",{className:"text-xs",children:[(0,a.jsx)("thead",{className:"text-left text-zinc-500",children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{className:"font-normal",children:"Profile"}),(0,a.jsx)("th",{className:"font-normal",children:"Codec"}),(0,a.jsx)("th",{className:"font-normal",children:"Resolution"}),(0,a.jsx)("th",{className:"font-normal",children:"FPS"})]})}),(0,a.jsx)("tbody",{className:"font-mono",children:o.data.profiles.map(e=>(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{children:e.name??e.token}),(0,a.jsx)("td",{children:e.encoding??"?"}),(0,a.jsx)("td",{children:e.width&&e.height?`${e.width}\xd7${e.height}`:"?"}),(0,a.jsx)("td",{children:e.fps??"?"})]},e.token))})]})]})}],12604)},78040,e=>{"use strict";var a=e.i(43476),t=e.i(22768),s=e.i(11568),n=e.i(56420);let i={name:"radar",size:24,node:[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]]};i.node;let r=(0,n.default)(i);var d=e.i(18566),l=e.i(71645),c=e.i(57234);e.s(["default",0,function(){var e;let n,i,o,h=(0,d.useRouter)(),m=(0,c.useScanNetwork)(),[u,x]=(0,l.useState)(5),[p,f]=(0,l.useState)(!0),[g,k]=(0,l.useTransition)(),{seconds:b,start:j}=function(e){let[a,t]=(0,l.useState)(0),s=(0,l.useRef)(0);return(0,l.useEffect)(()=>{if(!e)return;let a=setInterval(()=>t(Math.round((Date.now()-s.current)/1e3)),500);return()=>clearInterval(a)},[e]),{seconds:e?a:0,start:()=>{s.current=Date.now(),t(0)}}}(m.isPending),y=m.isPending||g;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("button",{onClick:()=>{j(),m.mutate({timeoutSecs:u,unicastSweep:p},{onSuccess:()=>k(()=>h.refresh())})},disabled:y,className:"inline-flex items-center gap-2 rounded-md bg-black px-4 py-2 text-sm font-medium text-white disabled:opacity-50 dark:bg-white dark:text-black",children:[y?(0,a.jsx)(s.LoaderCircle,{"aria-hidden":!0,className:"size-4 animate-spin motion-reduce:animate-none"}):(0,a.jsx)(r,{"aria-hidden":!0,className:"size-4"}),m.isPending?`Scanning… ${b}s of ${u}s`:g?"Updating the list…":"Scan network"]}),(0,a.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:["Timeout",(0,a.jsx)("input",{type:"number",min:1,max:30,value:u,onChange:e=>x(Number(e.target.value)),disabled:y,className:"w-16 rounded border border-zinc-300 bg-transparent px-2 py-1 dark:border-zinc-700"}),"s"]}),(0,a.jsxs)("label",{className:"flex items-center gap-2 text-sm",children:[(0,a.jsx)("input",{type:"checkbox",checked:p,onChange:e=>f(e.target.checked),disabled:y}),"Unicast sweep of local subnet"]}),m.isPending&&(0,a.jsxs)("p",{role:"status",className:"w-full text-sm text-zinc-600 dark:text-zinc-400",children:["Listening for cameras that announce themselves",p?", and asking every address on this network in turn":"",". Cameras answer at their own pace, so this runs for the full ",u," seconds."]}),g&&(0,a.jsx)("p",{role:"status",className:"w-full text-sm text-zinc-600 dark:text-zinc-400",children:"Updating the list; each camera is then asked for its details and a first picture."}),!y&&m.data&&(0,a.jsx)("p",{className:"w-full text-sm text-zinc-600 dark:text-zinc-400",children:(e=m.data,n=`${e.cameras.length} camera${1===e.cameras.length?"":"s"}`,i=Math.max(1,Math.round(e.durationMs/1e3)),o=e.addressesProbed?` after checking ${e.addressesProbed.toLocaleString("en-US")} addresses`:"",`Found ${n} in ${i}s${o}.`)}),m.isError&&(0,a.jsxs)("p",{className:"flex w-full items-center gap-1.5 text-sm text-red-600",children:[(0,a.jsx)(t.CircleAlert,{"aria-hidden":!0,className:"size-4 shrink-0"}),"Error: ",m.error.message]})]})}],78040)}]);
@@ -6,7 +6,13 @@ import { access } from "node:fs/promises";
6
6
  import { createInterface } from "node:readline/promises";
7
7
  import { parseArgs } from "node:util";
8
8
  import path from "node:path";
9
- import { applyEnvironment, firstRun, SECRETS_FILE } from "../dist/lib/first-run.js";
9
+ import {
10
+ applyEnvironment,
11
+ firstRun,
12
+ rememberBinDir,
13
+ SECRETS_FILE,
14
+ serverEnvironment,
15
+ } from "../dist/lib/first-run.js";
10
16
  import { installMediamtx } from "../dist/lib/mediamtx-install.js";
11
17
  import { adminFilePath, readAdminFile } from "../dist/lib/admin-file.js";
12
18
 
@@ -70,8 +76,9 @@ async function start() {
70
76
  if (!process.env.CAMERA_CREDENTIALS_KEY) {
71
77
  // Never started before: take the defaults quietly rather than refuse to run.
72
78
  await firstRun();
73
- await applyEnvironment();
74
79
  }
80
+ // Settle every path now: the server runs from inside the package, not from here.
81
+ await serverEnvironment();
75
82
 
76
83
  const server = path.join(import.meta.dirname, "..", ".next", "standalone", "server.js");
77
84
  if (!(await access(server).then(() => true, () => false))) {
@@ -100,7 +107,9 @@ async function admin(args) {
100
107
  }
101
108
 
102
109
  async function installVideo() {
103
- const result = await installMediamtx();
110
+ // Remember where it goes, so starting from another directory still finds it.
111
+ const binDir = await rememberBinDir();
112
+ const result = await installMediamtx({ binDir });
104
113
  console.log(
105
114
  result.status === "installed"
106
115
  ? `Installed MediaMTX ${result.version} at ${result.binary} (checksum verified).`
@@ -14,7 +14,7 @@ import { randomBytes } from "node:crypto";
14
14
  import { chmod, mkdir, readFile, writeFile } from "node:fs/promises";
15
15
  import os from "node:os";
16
16
  import path from "node:path";
17
- import { dataDir as defaultDataDir, mediamtxBinary } from "./paths.js";
17
+ import { binDir as defaultBinDir, dataDir as defaultDataDir, mediamtxBinary } from "./paths.js";
18
18
  export const CONFIG_NAME = "onvif-dashboard";
19
19
  export const SECRETS_FILE = "secrets.env";
20
20
  /** Where the pointer to the data folder lives: $XDG_CONFIG_HOME or ~/.config. */
@@ -24,17 +24,22 @@ export function configFile(env = process.env, home = os.homedir()) {
24
24
  export async function readConfig(env = process.env, home = os.homedir()) {
25
25
  try {
26
26
  const parsed = JSON.parse(await readFile(configFile(env, home), "utf8"));
27
- const dir = parsed.dataDir;
28
- return typeof dir === "string" && dir ? { dataDir: dir } : {};
27
+ const { dataDir, binDir } = parsed;
28
+ return {
29
+ ...(typeof dataDir === "string" && dataDir ? { dataDir } : {}),
30
+ ...(typeof binDir === "string" && binDir ? { binDir } : {}),
31
+ };
29
32
  }
30
33
  catch {
31
34
  return {};
32
35
  }
33
36
  }
34
- export async function writeConfig(dir, env = process.env, home = os.homedir()) {
37
+ /** Merges into what is already remembered, so one command can't forget another's answer. */
38
+ export async function writeConfig(paths, env = process.env, home = os.homedir()) {
35
39
  const file = configFile(env, home);
40
+ const merged = { ...(await readConfig(env, home)), ...paths };
36
41
  await mkdir(path.dirname(file), { recursive: true });
37
- await writeFile(file, `${JSON.stringify({ dataDir: dir }, null, 2)}\n`);
42
+ await writeFile(file, `${JSON.stringify(merged, null, 2)}\n`);
38
43
  }
39
44
  /** KEY=value lines, as written by setup and read at startup. */
40
45
  export function parseEnvFile(text) {
@@ -100,7 +105,7 @@ export async function firstRun(options = {}) {
100
105
  source = "default";
101
106
  log(`[setup] No terminal to ask; keeping data in ${dataDir}. Set CAMERAS_DATA_DIR to change it.`);
102
107
  }
103
- await writeConfig(dataDir, env, home);
108
+ await writeConfig({ dataDir }, env, home);
104
109
  }
105
110
  await mkdir(dataDir, { recursive: true, mode: 0o700 });
106
111
  const { created } = await ensureSecrets(dataDir);
@@ -113,13 +118,34 @@ export async function firstRun(options = {}) {
113
118
  }
114
119
  /** Puts the remembered folder and the stored key into the environment for this run. */
115
120
  export async function applyEnvironment(env = process.env, home = os.homedir()) {
116
- if (!env.CAMERAS_DATA_DIR) {
117
- const remembered = await readConfig(env, home);
118
- if (remembered.dataDir)
119
- env.CAMERAS_DATA_DIR = remembered.dataDir;
120
- }
121
+ const remembered = await readConfig(env, home);
122
+ if (!env.CAMERAS_DATA_DIR && remembered.dataDir)
123
+ env.CAMERAS_DATA_DIR = remembered.dataDir;
124
+ if (!env.CAMERAS_BIN_DIR && remembered.binDir)
125
+ env.CAMERAS_BIN_DIR = remembered.binDir;
121
126
  const dir = env.CAMERAS_DATA_DIR ?? defaultDataDir(env);
122
127
  const stored = parseEnvFile(await readFile(path.join(dir, SECRETS_FILE), "utf8").catch(() => ""));
123
128
  for (const [key, value] of Object.entries(stored))
124
129
  env[key] ??= value;
125
130
  }
131
+ /**
132
+ * The environment the server is started with. The server runs from inside the package, so
133
+ * anything resolved from the working directory has to be settled here, while we are still
134
+ * in the directory the user typed the command in (vrek iss-9zcawn7).
135
+ */
136
+ export async function serverEnvironment(env = process.env, home = os.homedir()) {
137
+ await applyEnvironment(env, home);
138
+ env.CAMERAS_DATA_DIR ??= defaultDataDir(env);
139
+ env.CAMERAS_BIN_DIR ??= defaultBinDir(env);
140
+ return env;
141
+ }
142
+ /**
143
+ * Remembers where helper binaries were installed, so a later start from another directory
144
+ * still finds them (vrek iss-n8yz5cy).
145
+ */
146
+ export async function rememberBinDir(env = process.env, home = os.homedir()) {
147
+ const dir = env.CAMERAS_BIN_DIR || (await readConfig(env, home)).binDir || defaultBinDir(env);
148
+ await writeConfig({ binDir: dir }, env, home);
149
+ env.CAMERAS_BIN_DIR = dir;
150
+ return dir;
151
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "onvif-dashboard",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Web dashboard for ONVIF cameras (Hikvision, Annke): discovery, live video over WebRTC, motion recording and settings, all on your own network.",
5
5
  "keywords": [
6
6
  "onvif",