@vasfal/vellum 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +5 -5
- package/.next/build-manifest.json +13 -14
- package/.next/next-minimal-server.js.nft.json +1 -1
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.js +2 -0
- package/.next/required-server-files.json +2 -0
- package/.next/server/app/(app)/page.js +2 -15
- package/.next/server/app/(app)/page.js.nft.json +1 -1
- package/.next/server/app/(app)/page_client-reference-manifest.js +1 -3
- package/.next/server/app/(app)/session/[name]/page.js +2 -15
- package/.next/server/app/(app)/session/[name]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/session/[name]/page_client-reference-manifest.js +1 -3
- package/.next/server/app/(app)/settings/key/page.js +2 -15
- package/.next/server/app/(app)/settings/key/page.js.nft.json +1 -1
- package/.next/server/app/(app)/settings/key/page_client-reference-manifest.js +1 -3
- package/.next/server/app/_global-error/page.js +32 -9
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.meta +2 -1
- package/.next/server/app/_global-error.rsc +7 -7
- package/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/.next/server/app/_global-error.segments/{__PAGE__.segment.rsc → _global-error/__PAGE__.segment.rsc} +2 -2
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +2 -13
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -3
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +14 -12
- package/.next/server/app/_not-found.segments/_full.segment.rsc +14 -12
- package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +4 -2
- package/.next/server/app/api/analyze/route.js +12 -9
- package/.next/server/app/api/analyze/route.js.nft.json +1 -1
- package/.next/server/app/api/analyze/route_client-reference-manifest.js +1 -3
- package/.next/server/app/api/key/route.js +1 -8
- package/.next/server/app/api/key/route.js.nft.json +1 -1
- package/.next/server/app/api/key/route_client-reference-manifest.js +1 -3
- package/.next/server/app/api/key-status/route.js +1 -7
- package/.next/server/app/api/key-status/route.js.nft.json +1 -1
- package/.next/server/app/api/key-status/route_client-reference-manifest.js +1 -3
- package/.next/server/app/api/models/route.js +1 -7
- package/.next/server/app/api/models/route.js.nft.json +1 -1
- package/.next/server/app/api/models/route_client-reference-manifest.js +1 -3
- package/.next/server/app/api/revise/route.js +1 -8
- package/.next/server/app/api/revise/route.js.nft.json +1 -1
- package/.next/server/app/api/revise/route_client-reference-manifest.js +1 -3
- package/.next/server/app/icon.svg/route.js +1 -7
- package/.next/server/app/icon.svg/route.js.nft.json +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +24 -27
- package/.next/server/app/index.segments/!KGFwcCk/__PAGE__.segment.rsc +6 -6
- package/.next/server/app/index.segments/!KGFwcCk.segment.rsc +9 -9
- package/.next/server/app/index.segments/_full.segment.rsc +24 -27
- package/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/server/app/index.segments/_index.segment.rsc +6 -6
- package/.next/server/app/index.segments/_tree.segment.rsc +4 -4
- package/.next/server/app/record-test/page.js +8 -14
- package/.next/server/app/record-test/page.js.nft.json +1 -1
- package/.next/server/app/record-test/page_client-reference-manifest.js +1 -3
- package/.next/server/app/record-test.html +2 -2
- package/.next/server/app/record-test.rsc +16 -16
- package/.next/server/app/record-test.segments/_full.segment.rsc +16 -16
- package/.next/server/app/record-test.segments/_head.segment.rsc +4 -4
- package/.next/server/app/record-test.segments/_index.segment.rsc +6 -6
- package/.next/server/app/record-test.segments/_tree.segment.rsc +4 -4
- package/.next/server/app/record-test.segments/record-test/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/record-test.segments/record-test.segment.rsc +3 -3
- package/.next/server/app/settings/key.html +1 -1
- package/.next/server/app/settings/key.rsc +28 -34
- package/.next/server/app/settings/key.segments/!KGFwcCk/settings/key/__PAGE__.segment.rsc +5 -5
- package/.next/server/app/settings/key.segments/!KGFwcCk/settings/key.segment.rsc +3 -3
- package/.next/server/app/settings/key.segments/!KGFwcCk/settings.segment.rsc +3 -3
- package/.next/server/app/settings/key.segments/!KGFwcCk.segment.rsc +9 -9
- package/.next/server/app/settings/key.segments/_full.segment.rsc +28 -34
- package/.next/server/app/settings/key.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/key.segments/_index.segment.rsc +6 -6
- package/.next/server/app/settings/key.segments/_tree.segment.rsc +4 -4
- package/.next/server/app/styleguide/page.js +2 -15
- package/.next/server/app/styleguide/page.js.nft.json +1 -1
- package/.next/server/app/styleguide/page_client-reference-manifest.js +1 -3
- package/.next/server/app/styleguide.html +1 -1
- package/.next/server/app/styleguide.rsc +68 -71
- package/.next/server/app/styleguide.segments/_full.segment.rsc +68 -71
- package/.next/server/app/styleguide.segments/_head.segment.rsc +4 -4
- package/.next/server/app/styleguide.segments/_index.segment.rsc +6 -6
- package/.next/server/app/styleguide.segments/_tree.segment.rsc +4 -4
- package/.next/server/app/styleguide.segments/styleguide/__PAGE__.segment.rsc +43 -45
- package/.next/server/app/styleguide.segments/styleguide.segment.rsc +3 -3
- package/.next/server/app-paths-manifest.json +5 -5
- package/.next/server/chunks/15.js +1 -0
- package/.next/server/chunks/319.js +45 -0
- package/.next/server/chunks/367.js +122 -0
- package/.next/server/chunks/393.js +4 -0
- package/.next/server/chunks/491.js +2 -0
- package/.next/server/chunks/497.js +1 -0
- package/.next/server/chunks/546.js +1 -0
- package/.next/server/chunks/592.js +44 -0
- package/.next/server/chunks/607.js +4 -0
- package/.next/server/chunks/724.js +1 -0
- package/.next/server/chunks/741.js +18 -0
- package/.next/server/chunks/813.js +1 -0
- package/.next/server/chunks/837.js +75 -0
- package/.next/server/chunks/852.js +14 -0
- package/.next/server/chunks/907.js +62 -0
- package/.next/server/chunks/915.js +8 -0
- package/.next/server/chunks/994.js +8 -0
- package/.next/server/middleware-build-manifest.js +1 -21
- package/.next/server/middleware-manifest.json +2 -2
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +1 -31
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -5
- package/.next/server/webpack-runtime.js +1 -0
- package/.next/static/FExJe2q2O67X3zxf-SYQ_/_buildManifest.js +1 -0
- package/.next/static/chunks/185-9c51ded7cd36ca7e.js +1 -0
- package/.next/static/chunks/20-cca33f633fa125b2.js +1 -0
- package/.next/static/chunks/27-02413cc56fbb4570.js +1 -0
- package/.next/static/chunks/376-6f7bc95550542e0b.js +62 -0
- package/.next/static/chunks/479-ea67f878851afbcd.js +1 -0
- package/.next/static/chunks/493-6bd8c75c972d3abd.js +2 -0
- package/.next/static/chunks/4bd1b696-deb4a0a1da1923b0.js +1 -0
- package/.next/static/chunks/603-6235d4d53b37035c.js +1 -0
- package/.next/static/chunks/743-c183133e0fbf1564.js +44 -0
- package/.next/static/chunks/793-5e37343b804eb1d9.js +1 -0
- package/.next/static/chunks/794-dc751ec6c8c611f8.js +32 -0
- package/.next/static/chunks/924-9226750edc5c2c2f.js +1 -0
- package/.next/static/chunks/95247769-a29d70f7fbba27c6.js +1 -0
- package/.next/static/chunks/app/(app)/layout-aad46049bfd54648.js +1 -0
- package/.next/static/chunks/app/(app)/page-d75e1fccccdbe30e.js +1 -0
- package/.next/static/chunks/app/(app)/session/[name]/page-60529ed1fd7a66a1.js +1 -0
- package/.next/static/chunks/app/(app)/settings/key/page-c2aab9f11db98d4e.js +1 -0
- package/.next/static/chunks/app/_global-error/page-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/app/_not-found/page-6830be21b0ed0c95.js +1 -0
- package/.next/static/chunks/app/api/analyze/route-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/app/api/key/route-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/app/api/key-status/route-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/app/api/models/route-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/app/api/revise/route-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/app/layout-aa71ca14e7f13c0c.js +1 -0
- package/.next/static/chunks/app/record-test/page-efb4287dda79ede4.js +7 -0
- package/.next/static/chunks/app/styleguide/page-f39510e82c1f9f31.js +1 -0
- package/.next/static/chunks/framework-b29f9083d3cda3b2.js +1 -0
- package/.next/static/chunks/main-app-39f57c6e6702740e.js +1 -0
- package/.next/static/chunks/main-fac8900b4f9c4833.js +5 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/global-error-c1d4bb24e31b66a2.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/webpack-ceb933bd5f77076f.js +1 -0
- package/.next/static/css/e2905f0858acd77d.css +3 -0
- package/.next/types/app/(app)/page.ts +87 -0
- package/.next/types/app/(app)/session/[name]/page.ts +87 -0
- package/.next/types/app/(app)/settings/key/page.ts +87 -0
- package/.next/types/app/api/analyze/route.ts +351 -0
- package/.next/types/app/api/key/route.ts +351 -0
- package/.next/types/app/api/key-status/route.ts +351 -0
- package/.next/types/app/api/models/route.ts +351 -0
- package/.next/types/app/api/revise/route.ts +351 -0
- package/.next/types/app/layout.ts +87 -0
- package/.next/types/app/record-test/page.ts +87 -0
- package/.next/types/app/styleguide/page.ts +87 -0
- package/.next/types/package.json +1 -0
- package/README.md +4 -6
- package/next.config.ts +8 -0
- package/package.json +4 -4
- package/.next/build/56416d4ae4ce586f.js +0 -6
- package/.next/build/56416d4ae4ce586f.js.map +0 -5
- package/.next/build/chunks/[root-of-the-server]__0oj80bi._.js +0 -206
- package/.next/build/chunks/[root-of-the-server]__0oj80bi._.js.map +0 -8
- package/.next/build/chunks/[root-of-the-server]__1f933tp._.js +0 -500
- package/.next/build/chunks/[root-of-the-server]__1f933tp._.js.map +0 -11
- package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0b7xl6g._.js +0 -13
- package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0b7xl6g._.js.map +0 -5
- package/.next/build/chunks/[turbopack]_runtime.js +0 -890
- package/.next/build/chunks/[turbopack]_runtime.js.map +0 -11
- package/.next/build/chunks/node_modules_20v-8wl._.js +0 -6832
- package/.next/build/chunks/node_modules_20v-8wl._.js.map +0 -47
- package/.next/build/package.json +0 -1
- package/.next/cache/.previewinfo +0 -1
- package/.next/cache/.rscinfo +0 -1
- package/.next/cache/.tsbuildinfo +0 -1
- package/.next/diagnostics/route-bundle-stats.json +0 -111
- package/.next/fallback-build-manifest.json +0 -13
- package/.next/server/app/(app)/page/app-paths-manifest.json +0 -3
- package/.next/server/app/(app)/page/build-manifest.json +0 -17
- package/.next/server/app/(app)/page/next-font-manifest.json +0 -11
- package/.next/server/app/(app)/page/server-reference-manifest.json +0 -4
- package/.next/server/app/(app)/page.js.map +0 -5
- package/.next/server/app/(app)/session/[name]/page/app-paths-manifest.json +0 -3
- package/.next/server/app/(app)/session/[name]/page/build-manifest.json +0 -17
- package/.next/server/app/(app)/session/[name]/page/next-font-manifest.json +0 -11
- package/.next/server/app/(app)/session/[name]/page/react-loadable-manifest.json +0 -1
- package/.next/server/app/(app)/session/[name]/page/server-reference-manifest.json +0 -4
- package/.next/server/app/(app)/session/[name]/page.js.map +0 -5
- package/.next/server/app/(app)/settings/key/page/app-paths-manifest.json +0 -3
- package/.next/server/app/(app)/settings/key/page/build-manifest.json +0 -17
- package/.next/server/app/(app)/settings/key/page/next-font-manifest.json +0 -11
- package/.next/server/app/(app)/settings/key/page/react-loadable-manifest.json +0 -1
- package/.next/server/app/(app)/settings/key/page/server-reference-manifest.json +0 -4
- package/.next/server/app/(app)/settings/key/page.js.map +0 -5
- package/.next/server/app/_global-error/page/app-paths-manifest.json +0 -3
- package/.next/server/app/_global-error/page/build-manifest.json +0 -17
- package/.next/server/app/_global-error/page/next-font-manifest.json +0 -6
- package/.next/server/app/_global-error/page/react-loadable-manifest.json +0 -1
- package/.next/server/app/_global-error/page/server-reference-manifest.json +0 -4
- package/.next/server/app/_global-error/page.js.map +0 -5
- package/.next/server/app/_not-found/page/app-paths-manifest.json +0 -3
- package/.next/server/app/_not-found/page/build-manifest.json +0 -17
- package/.next/server/app/_not-found/page/next-font-manifest.json +0 -11
- package/.next/server/app/_not-found/page/react-loadable-manifest.json +0 -1
- package/.next/server/app/_not-found/page/server-reference-manifest.json +0 -4
- package/.next/server/app/_not-found/page.js.map +0 -5
- package/.next/server/app/api/analyze/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/analyze/route/build-manifest.json +0 -9
- package/.next/server/app/api/analyze/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/analyze/route.js.map +0 -5
- package/.next/server/app/api/key/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/key/route/build-manifest.json +0 -9
- package/.next/server/app/api/key/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/key/route.js.map +0 -5
- package/.next/server/app/api/key-status/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/key-status/route/build-manifest.json +0 -9
- package/.next/server/app/api/key-status/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/key-status/route.js.map +0 -5
- package/.next/server/app/api/models/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/models/route/build-manifest.json +0 -9
- package/.next/server/app/api/models/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/models/route.js.map +0 -5
- package/.next/server/app/api/revise/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/revise/route/build-manifest.json +0 -9
- package/.next/server/app/api/revise/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/revise/route.js.map +0 -5
- package/.next/server/app/icon.svg/route/app-paths-manifest.json +0 -3
- package/.next/server/app/icon.svg/route/build-manifest.json +0 -9
- package/.next/server/app/icon.svg/route.js.map +0 -5
- package/.next/server/app/record-test/page/app-paths-manifest.json +0 -3
- package/.next/server/app/record-test/page/build-manifest.json +0 -17
- package/.next/server/app/record-test/page/next-font-manifest.json +0 -11
- package/.next/server/app/record-test/page/react-loadable-manifest.json +0 -1
- package/.next/server/app/record-test/page/server-reference-manifest.json +0 -4
- package/.next/server/app/record-test/page.js.map +0 -5
- package/.next/server/app/styleguide/page/app-paths-manifest.json +0 -3
- package/.next/server/app/styleguide/page/build-manifest.json +0 -17
- package/.next/server/app/styleguide/page/next-font-manifest.json +0 -11
- package/.next/server/app/styleguide/page/react-loadable-manifest.json +0 -1
- package/.next/server/app/styleguide/page/server-reference-manifest.json +0 -4
- package/.next/server/app/styleguide/page.js.map +0 -5
- package/.next/server/chunks/[externals]__1l0bqbz._.js +0 -3
- package/.next/server/chunks/[externals]__1l0bqbz._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__00u0a0m._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__00u0a0m._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__02oblj7._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__02oblj7._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__04dzkv1._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__04dzkv1._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__081zp1m._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__081zp1m._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__0dkua3v._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0dkua3v._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__0ezil_h._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0ezil_h._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__0ww_12a._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0ww_12a._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__0x-kpif._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0x-kpif._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__15bjnu5._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__15bjnu5._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__1kmbnvv._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1kmbnvv._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__1kp4vwc._.js +0 -14
- package/.next/server/chunks/[root-of-the-server]__1kp4vwc._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__1lbd3kd._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1lbd3kd._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__1ra6psc._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1ra6psc._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__1zn977r._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1zn977r._.js.map +0 -1
- package/.next/server/chunks/[turbopack]_runtime.js +0 -903
- package/.next/server/chunks/[turbopack]_runtime.js.map +0 -11
- package/.next/server/chunks/_04h1cv_._.js +0 -185
- package/.next/server/chunks/_04h1cv_._.js.map +0 -1
- package/.next/server/chunks/_0pqmhjh._.js +0 -185
- package/.next/server/chunks/_0pqmhjh._.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_api_analyze_route_actions_0lx-23h.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_analyze_route_actions_0lx-23h.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_api_key-status_route_actions_1qgztm2.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_key-status_route_actions_1qgztm2.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_api_key_route_actions_15n2qsb.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_key_route_actions_15n2qsb.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_api_models_route_actions_1h6mkqp.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_models_route_actions_1h6mkqp.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_api_revise_route_actions_19kk3m-.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_revise_route_actions_19kk3m-.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_1r2h_ub.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_1r2h_ub.js.map +0 -1
- package/.next/server/chunks/node_modules_0x51oh_._.js +0 -10
- package/.next/server/chunks/node_modules_0x51oh_._.js.map +0 -1
- package/.next/server/chunks/node_modules_19bvt3l._.js +0 -6
- package/.next/server/chunks/node_modules_19bvt3l._.js.map +0 -1
- package/.next/server/chunks/node_modules_1_-az43._.js +0 -16
- package/.next/server/chunks/node_modules_1_-az43._.js.map +0 -1
- package/.next/server/chunks/node_modules_1t2pqct._.js +0 -10
- package/.next/server/chunks/node_modules_1t2pqct._.js.map +0 -1
- package/.next/server/chunks/node_modules_next_08s853w._.js +0 -13
- package/.next/server/chunks/node_modules_next_08s853w._.js.map +0 -1
- package/.next/server/chunks/node_modules_node-fetch_src_index_1gf-_pn.js +0 -3
- package/.next/server/chunks/node_modules_node-fetch_src_index_1gf-_pn.js.map +0 -1
- package/.next/server/chunks/ssr/[externals]__1l0bqbz._.js +0 -3
- package/.next/server/chunks/ssr/[externals]__1l0bqbz._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__06ync7f._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__06ync7f._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0hml-pd._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0hml-pd._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0ntia6u._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0ntia6u._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0sdpd0o._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0sdpd0o._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0w2pa_y._.js +0 -33
- package/.next/server/chunks/ssr/[root-of-the-server]__0w2pa_y._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__10y0-wv._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__10y0-wv._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__11_7weu._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__11_7weu._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1_stkwn._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1_stkwn._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1dky4g0._.js +0 -33
- package/.next/server/chunks/ssr/[root-of-the-server]__1dky4g0._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1k6ey-q._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1k6ey-q._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1la73u1._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1la73u1._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1nshnxm._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1nshnxm._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1pssg49._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1pssg49._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1q6zd30._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1q6zd30._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1qlmg27._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1qlmg27._.js.map +0 -1
- package/.next/server/chunks/ssr/[turbopack]_runtime.js +0 -903
- package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +0 -11
- package/.next/server/chunks/ssr/_01pksvc._.js +0 -78
- package/.next/server/chunks/ssr/_01pksvc._.js.map +0 -1
- package/.next/server/chunks/ssr/_03lgii8._.js +0 -3
- package/.next/server/chunks/ssr/_03lgii8._.js.map +0 -1
- package/.next/server/chunks/ssr/_05tft_r._.js +0 -3
- package/.next/server/chunks/ssr/_05tft_r._.js.map +0 -1
- package/.next/server/chunks/ssr/_06gt995._.js +0 -3
- package/.next/server/chunks/ssr/_06gt995._.js.map +0 -1
- package/.next/server/chunks/ssr/_0jrh37c._.js +0 -46
- package/.next/server/chunks/ssr/_0jrh37c._.js.map +0 -1
- package/.next/server/chunks/ssr/_0kw6yq_._.js +0 -3
- package/.next/server/chunks/ssr/_0kw6yq_._.js.map +0 -1
- package/.next/server/chunks/ssr/_0l3c05z._.js +0 -3
- package/.next/server/chunks/ssr/_0l3c05z._.js.map +0 -1
- package/.next/server/chunks/ssr/_0n-ojw-._.js +0 -3
- package/.next/server/chunks/ssr/_0n-ojw-._.js.map +0 -1
- package/.next/server/chunks/ssr/_0t6a1ln._.js +0 -6
- package/.next/server/chunks/ssr/_0t6a1ln._.js.map +0 -1
- package/.next/server/chunks/ssr/_0td-xk-._.js +0 -3
- package/.next/server/chunks/ssr/_0td-xk-._.js.map +0 -1
- package/.next/server/chunks/ssr/_0y92f-y._.js +0 -46
- package/.next/server/chunks/ssr/_0y92f-y._.js.map +0 -1
- package/.next/server/chunks/ssr/_1b6au28._.js +0 -3
- package/.next/server/chunks/ssr/_1b6au28._.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_page_actions_1gxdy57.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_page_actions_1gxdy57.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_session_[name]_page_actions_115d_ja.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_session_[name]_page_actions_115d_ja.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_settings_key_page_actions_1jsc3or.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_settings_key_page_actions_1jsc3or.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_record-test_page_actions_0a_yofw.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_record-test_page_actions_0a_yofw.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_styleguide_page_actions_174h7x7.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_styleguide_page_actions_174h7x7.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_0el53_h._.js +0 -10
- package/.next/server/chunks/ssr/node_modules_0el53_h._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_0h91jdk._.js +0 -33
- package/.next/server/chunks/ssr/node_modules_0h91jdk._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_1fxqp22._.js +0 -10
- package/.next/server/chunks/ssr/node_modules_1fxqp22._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_1loo6j7._.js +0 -6
- package/.next/server/chunks/ssr/node_modules_1loo6j7._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_1pvqj0r._.js +0 -3
- package/.next/server/chunks/ssr/node_modules_1pvqj0r._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_0uboya6._.js +0 -6
- package/.next/server/chunks/ssr/node_modules_next_dist_0uboya6._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_172hvm-._.js +0 -19
- package/.next/server/chunks/ssr/node_modules_next_dist_172hvm-._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +0 -3
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js +0 -3
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0-o-goa.js +0 -3
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0-o-goa.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js +0 -3
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0_q50sh.js +0 -4
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0_q50sh.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0_xbpm0.js +0 -4
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0_xbpm0.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_119i6eu.js +0 -4
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_119i6eu.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_14nl2rs.js +0 -4
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_14nl2rs.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18u8k23.js +0 -4
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18u8k23.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z.js +0 -4
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_iwj0a.js +0 -4
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_iwj0a.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_node-fetch_src_index_1e0t9p6.js +0 -3
- package/.next/server/chunks/ssr/node_modules_node-fetch_src_index_1e0t9p6.js.map +0 -1
- package/.next/server/chunks/ssr/src_19oqe9t._.js +0 -3
- package/.next/server/chunks/ssr/src_19oqe9t._.js.map +0 -1
- package/.next/server/chunks/ssr/src_app_record-test_page_tsx_08-2bld._.js +0 -9
- package/.next/server/chunks/ssr/src_app_record-test_page_tsx_08-2bld._.js.map +0 -1
- package/.next/server/chunks/ssr/src_components_app-sidebar_tsx_1xx2k53._.js +0 -3
- package/.next/server/chunks/ssr/src_components_app-sidebar_tsx_1xx2k53._.js.map +0 -1
- package/.next/server/chunks/ssr/src_components_settings_key-setup_tsx_0jxhnpa._.js +0 -3
- package/.next/server/chunks/ssr/src_components_settings_key-setup_tsx_0jxhnpa._.js.map +0 -1
- package/.next/server/chunks/ssr/src_components_ui_0lq7ewx._.js +0 -3
- package/.next/server/chunks/ssr/src_components_ui_0lq7ewx._.js.map +0 -1
- package/.next/static/CIZxngYjzUw1Kb0KrE473/_buildManifest.js +0 -11
- package/.next/static/CIZxngYjzUw1Kb0KrE473/_clientMiddlewareManifest.js +0 -1
- package/.next/static/chunks/05-c3ty_6dwfk.js +0 -1
- package/.next/static/chunks/07-hzktxqjvzd.js +0 -4
- package/.next/static/chunks/09bn0buuu6k2x.js +0 -1
- package/.next/static/chunks/0kkimqpuecvfn.js +0 -1
- package/.next/static/chunks/0mk1g55o6kl1e.js +0 -2
- package/.next/static/chunks/0ul837-9k0zx_.js +0 -63
- package/.next/static/chunks/0wpges32btt_p.js +0 -1
- package/.next/static/chunks/18qo-4_hfuwko.js +0 -1
- package/.next/static/chunks/1_dsevxz78b97.js +0 -1
- package/.next/static/chunks/2-oqhnxovgl_2.js +0 -44
- package/.next/static/chunks/2et_7fxuzt9cq.js +0 -31
- package/.next/static/chunks/2im7c515bo69p.js +0 -1
- package/.next/static/chunks/2merpuxt1zcvf.js +0 -1
- package/.next/static/chunks/2qb8lge1e2sv2.js +0 -1
- package/.next/static/chunks/2sj0gufu0lojq.css +0 -3
- package/.next/static/chunks/2zloaj9ja_vpy.js +0 -1
- package/.next/static/chunks/3rvy2rc9d_hwt.js +0 -1
- package/.next/static/chunks/3uci2qhsbp444.js +0 -50
- package/.next/static/chunks/3yao5u25-bf0g.js +0 -1
- package/.next/static/chunks/41_0qs6kjmoek.js +0 -1
- package/.next/static/chunks/4395sbjm36lbl.js +0 -1
- package/.next/static/chunks/turbopack-2cevjmbuh84ft.js +0 -1
- package/.next/static/media/icon.2_sgat73yt9an.svg +0 -7
- package/.next/trace +0 -1
- package/.next/trace-build +0 -1
- package/.next/turbopack +0 -0
- /package/.next/{server/app/(app)/page/react-loadable-manifest.json → react-loadable-manifest.json} +0 -0
- /package/.next/static/{CIZxngYjzUw1Kb0KrE473 → FExJe2q2O67X3zxf-SYQ_}/_ssgManifest.js +0 -0
- /package/.next/static/chunks/{0cz1d0mv5g_q7.js → polyfills-42372ed130431b0a.js} +0 -0
- /package/.next/static/media/{5ce348bf30bf5439-s.31988l_ccedte.woff2 → 013b72fa676f92e0-s.woff2} +0 -0
- /package/.next/static/media/{5476f68d60460930-s.2uwcyprjm3xu3.woff2 → 19cfc7226ec3afaa-s.woff2} +0 -0
- /package/.next/static/media/{9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2 → 21350d82a1f187e9-s.woff2} +0 -0
- /package/.next/static/media/{bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2 → 2b5b02fc7e511755-s.woff2} +0 -0
- /package/.next/static/media/{6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2 → 65f03d54ccadf4a8-s.woff2} +0 -0
- /package/.next/static/media/{797e433ab948586e-s.p.0r6juujl39pe6.woff2 → 7d4881bb7e1bf84d-s.p.woff2} +0 -0
- /package/.next/static/media/{1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2 → 8e9860b6e62d6359-s.woff2} +0 -0
- /package/.next/static/media/{4fa387ec64143e14-s.2tuy5pz7dlieh.woff2 → b9408752a0c24fb9-s.woff2} +0 -0
- /package/.next/static/media/{2c55a0e60120577a-s.0-dom-5bn10r2.woff2 → ba9851c3c22cd980-s.woff2} +0 -0
- /package/.next/static/media/{ad66f9afd8947f86-s.3lvt2whj97whp.woff2 → c5fe6dc8356a8c31-s.woff2} +0 -0
- /package/.next/static/media/{2bbe8d2671613f1f-s.0k62hbripvv8p.woff2 → df0a9ae256c0569c-s.woff2} +0 -0
- /package/.next/static/media/{7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2 → e038a29029a234f2-s.woff2} +0 -0
- /package/.next/static/media/{83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2 → e4af272ccee01ff0-s.p.woff2} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/node-fetch/src/utils/is.js","../../../../node_modules/node-fetch/src/utils/is-redirect.js","../../../../node_modules/node-fetch/src/request.js","../../../../node_modules/node-fetch/src/utils/referrer.js","../../../../node_modules/node-fetch/src/index.js","../../../../node_modules/node-fetch/src/errors/base.js","../../../../node_modules/node-fetch/src/utils/get-search.js","../../../../node_modules/node-fetch/src/errors/abort-error.js","../../../../node_modules/data-uri-to-buffer/src/index.ts","../../../../node_modules/node-fetch/src/body.js","../../../../node_modules/node-fetch/src/headers.js","../../../../node_modules/node-fetch/src/response.js","../../../../node_modules/node-fetch/src/errors/fetch-error.js"],"sourcesContent":["/**\n * Is.js\n *\n * Object type checks.\n */\n\nconst NAME = Symbol.toStringTag;\n\n/**\n * Check if `obj` is a URLSearchParams object\n * ref: https://github.com/node-fetch/node-fetch/issues/296#issuecomment-307598143\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isURLSearchParameters = object => {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.append === 'function' &&\n\t\ttypeof object.delete === 'function' &&\n\t\ttypeof object.get === 'function' &&\n\t\ttypeof object.getAll === 'function' &&\n\t\ttypeof object.has === 'function' &&\n\t\ttypeof object.set === 'function' &&\n\t\ttypeof object.sort === 'function' &&\n\t\tobject[NAME] === 'URLSearchParams'\n\t);\n};\n\n/**\n * Check if `object` is a W3C `Blob` object (which `File` inherits from)\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isBlob = object => {\n\treturn (\n\t\tobject &&\n\t\ttypeof object === 'object' &&\n\t\ttypeof object.arrayBuffer === 'function' &&\n\t\ttypeof object.type === 'string' &&\n\t\ttypeof object.stream === 'function' &&\n\t\ttypeof object.constructor === 'function' &&\n\t\t/^(Blob|File)$/.test(object[NAME])\n\t);\n};\n\n/**\n * Check if `obj` is an instance of AbortSignal.\n * @param {*} object - Object to check for\n * @return {boolean}\n */\nexport const isAbortSignal = object => {\n\treturn (\n\t\ttypeof object === 'object' && (\n\t\t\tobject[NAME] === 'AbortSignal' ||\n\t\t\tobject[NAME] === 'EventTarget'\n\t\t)\n\t);\n};\n\n/**\n * isDomainOrSubdomain reports whether sub is a subdomain (or exact match) of\n * the parent domain.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isDomainOrSubdomain = (destination, original) => {\n\tconst orig = new URL(original).hostname;\n\tconst dest = new URL(destination).hostname;\n\n\treturn orig === dest || orig.endsWith(`.${dest}`);\n};\n\n/**\n * isSameProtocol reports whether the two provided URLs use the same protocol.\n *\n * Both domains must already be in canonical form.\n * @param {string|URL} original\n * @param {string|URL} destination\n */\nexport const isSameProtocol = (destination, original) => {\n\tconst orig = new URL(original).protocol;\n\tconst dest = new URL(destination).protocol;\n\n\treturn orig === dest;\n};\n","const redirectStatus = new Set([301, 302, 303, 307, 308]);\n\n/**\n * Redirect code matching\n *\n * @param {number} code - Status code\n * @return {boolean}\n */\nexport const isRedirect = code => {\n\treturn redirectStatus.has(code);\n};\n","/**\n * Request.js\n *\n * Request class contains server only options\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport {format as formatUrl} from 'node:url';\nimport {deprecate} from 'node:util';\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType, getTotalBytes} from './body.js';\nimport {isAbortSignal} from './utils/is.js';\nimport {getSearch} from './utils/get-search.js';\nimport {\n\tvalidateReferrerPolicy, determineRequestsReferrer, DEFAULT_REFERRER_POLICY\n} from './utils/referrer.js';\n\nconst INTERNALS = Symbol('Request internals');\n\n/**\n * Check if `obj` is an instance of Request.\n *\n * @param {*} object\n * @return {boolean}\n */\nconst isRequest = object => {\n\treturn (\n\t\ttypeof object === 'object' &&\n\t\ttypeof object[INTERNALS] === 'object'\n\t);\n};\n\nconst doBadDataWarn = deprecate(() => {},\n\t'.data is not a valid RequestInit property, use .body instead',\n\t'https://github.com/node-fetch/node-fetch/issues/1000 (request)');\n\n/**\n * Request class\n *\n * Ref: https://fetch.spec.whatwg.org/#request-class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nexport default class Request extends Body {\n\tconstructor(input, init = {}) {\n\t\tlet parsedURL;\n\n\t\t// Normalize input and force URL to be encoded as UTF-8 (https://github.com/node-fetch/node-fetch/issues/245)\n\t\tif (isRequest(input)) {\n\t\t\tparsedURL = new URL(input.url);\n\t\t} else {\n\t\t\tparsedURL = new URL(input);\n\t\t\tinput = {};\n\t\t}\n\n\t\tif (parsedURL.username !== '' || parsedURL.password !== '') {\n\t\t\tthrow new TypeError(`${parsedURL} is an url with embedded credentials.`);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tif (/^(delete|get|head|options|post|put)$/i.test(method)) {\n\t\t\tmethod = method.toUpperCase();\n\t\t}\n\n\t\tif (!isRequest(init) && 'data' in init) {\n\t\t\tdoBadDataWarn();\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif ((init.body != null || (isRequest(input) && input.body !== null)) &&\n\t\t\t(method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tconst inputBody = init.body ?\n\t\t\tinit.body :\n\t\t\t(isRequest(input) && input.body !== null ?\n\t\t\t\tclone(input) :\n\t\t\t\tnull);\n\n\t\tsuper(inputBody, {\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.set('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ?\n\t\t\tinput.signal :\n\t\t\tnull;\n\t\tif ('signal' in init) {\n\t\t\tsignal = init.signal;\n\t\t}\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal or EventTarget');\n\t\t}\n\n\t\t// §5.4, Request constructor steps, step 15.1\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\tlet referrer = init.referrer == null ? input.referrer : init.referrer;\n\t\tif (referrer === '') {\n\t\t\t// §5.4, Request constructor steps, step 15.2\n\t\t\treferrer = 'no-referrer';\n\t\t} else if (referrer) {\n\t\t\t// §5.4, Request constructor steps, step 15.3.1, 15.3.2\n\t\t\tconst parsedReferrer = new URL(referrer);\n\t\t\t// §5.4, Request constructor steps, step 15.3.3, 15.3.4\n\t\t\treferrer = /^about:(\\/\\/)?client$/.test(parsedReferrer) ? 'client' : parsedReferrer;\n\t\t} else {\n\t\t\treferrer = undefined;\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal,\n\t\t\treferrer\n\t\t};\n\n\t\t// Node-fetch-only options\n\t\tthis.follow = init.follow === undefined ? (input.follow === undefined ? 20 : input.follow) : init.follow;\n\t\tthis.compress = init.compress === undefined ? (input.compress === undefined ? true : input.compress) : init.compress;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t\tthis.highWaterMark = init.highWaterMark || input.highWaterMark || 16384;\n\t\tthis.insecureHTTPParser = init.insecureHTTPParser || input.insecureHTTPParser || false;\n\n\t\t// §5.4, Request constructor steps, step 16.\n\t\t// Default is empty string per https://fetch.spec.whatwg.org/#concept-request-referrer-policy\n\t\tthis.referrerPolicy = init.referrerPolicy || input.referrerPolicy || '';\n\t}\n\n\t/** @returns {string} */\n\tget method() {\n\t\treturn this[INTERNALS].method;\n\t}\n\n\t/** @returns {string} */\n\tget url() {\n\t\treturn formatUrl(this[INTERNALS].parsedURL);\n\t}\n\n\t/** @returns {Headers} */\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS].redirect;\n\t}\n\n\t/** @returns {AbortSignal} */\n\tget signal() {\n\t\treturn this[INTERNALS].signal;\n\t}\n\n\t// https://fetch.spec.whatwg.org/#dom-request-referrer\n\tget referrer() {\n\t\tif (this[INTERNALS].referrer === 'no-referrer') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer === 'client') {\n\t\t\treturn 'about:client';\n\t\t}\n\n\t\tif (this[INTERNALS].referrer) {\n\t\t\treturn this[INTERNALS].referrer.toString();\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget referrerPolicy() {\n\t\treturn this[INTERNALS].referrerPolicy;\n\t}\n\n\tset referrerPolicy(referrerPolicy) {\n\t\tthis[INTERNALS].referrerPolicy = validateReferrerPolicy(referrerPolicy);\n\t}\n\n\t/**\n\t * Clone this request\n\t *\n\t * @return Request\n\t */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Request';\n\t}\n}\n\nObject.defineProperties(Request.prototype, {\n\tmethod: {enumerable: true},\n\turl: {enumerable: true},\n\theaders: {enumerable: true},\n\tredirect: {enumerable: true},\n\tclone: {enumerable: true},\n\tsignal: {enumerable: true},\n\treferrer: {enumerable: true},\n\treferrerPolicy: {enumerable: true}\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param {Request} request - A Request instance\n * @return The options object to be passed to http.request\n */\nexport const getNodeRequestOptions = request => {\n\tconst {parsedURL} = request[INTERNALS];\n\tconst headers = new Headers(request[INTERNALS].headers);\n\n\t// Fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body === null && /^(post|put)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\n\tif (request.body !== null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\t// Set Content-Length if totalBytes is a number (that is not NaN)\n\t\tif (typeof totalBytes === 'number' && !Number.isNaN(totalBytes)) {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// 4.1. Main fetch, step 2.6\n\t// > If request's referrer policy is the empty string, then set request's referrer policy to the\n\t// > default referrer policy.\n\tif (request.referrerPolicy === '') {\n\t\trequest.referrerPolicy = DEFAULT_REFERRER_POLICY;\n\t}\n\n\t// 4.1. Main fetch, step 2.7\n\t// > If request's referrer is not \"no-referrer\", set request's referrer to the result of invoking\n\t// > determine request's referrer.\n\tif (request.referrer && request.referrer !== 'no-referrer') {\n\t\trequest[INTERNALS].referrer = determineRequestsReferrer(request);\n\t} else {\n\t\trequest[INTERNALS].referrer = 'no-referrer';\n\t}\n\n\t// 4.5. HTTP-network-or-cache fetch, step 6.9\n\t// > If httpRequest's referrer is a URL, then append `Referer`/httpRequest's referrer, serialized\n\t// > and isomorphic encoded, to httpRequest's header list.\n\tif (request[INTERNALS].referrer instanceof URL) {\n\t\theaders.set('Referer', request.referrer);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip, deflate, br');\n\t}\n\n\tlet {agent} = request;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\tconst search = getSearch(parsedURL);\n\n\t// Pass the full URL directly to request(), but overwrite the following\n\t// options:\n\tconst options = {\n\t\t// Overwrite search to retain trailing ? (issue #776)\n\t\tpath: parsedURL.pathname + search,\n\t\t// The following options are not expressed in the URL\n\t\tmethod: request.method,\n\t\theaders: headers[Symbol.for('nodejs.util.inspect.custom')](),\n\t\tinsecureHTTPParser: request.insecureHTTPParser,\n\t\tagent\n\t};\n\n\treturn {\n\t\t/** @type {URL} */\n\t\tparsedURL,\n\t\toptions\n\t};\n};\n","import {isIP} from 'node:net';\n\n/**\n * @external URL\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/URL|URL}\n */\n\n/**\n * @module utils/referrer\n * @private\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#strip-url|Referrer Policy §8.4. Strip url for use as a referrer}\n * @param {string} URL\n * @param {boolean} [originOnly=false]\n */\nexport function stripURLForUseAsAReferrer(url, originOnly = false) {\n\t// 1. If url is null, return no referrer.\n\tif (url == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\treturn 'no-referrer';\n\t}\n\n\turl = new URL(url);\n\n\t// 2. If url's scheme is a local scheme, then return no referrer.\n\tif (/^(about|blob|data):$/.test(url.protocol)) {\n\t\treturn 'no-referrer';\n\t}\n\n\t// 3. Set url's username to the empty string.\n\turl.username = '';\n\n\t// 4. Set url's password to null.\n\t// Note: `null` appears to be a mistake as this actually results in the password being `\"null\"`.\n\turl.password = '';\n\n\t// 5. Set url's fragment to null.\n\t// Note: `null` appears to be a mistake as this actually results in the fragment being `\"#null\"`.\n\turl.hash = '';\n\n\t// 6. If the origin-only flag is true, then:\n\tif (originOnly) {\n\t\t// 6.1. Set url's path to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the path being `\"/null\"`.\n\t\turl.pathname = '';\n\n\t\t// 6.2. Set url's query to null.\n\t\t// Note: `null` appears to be a mistake as this actually results in the query being `\"?null\"`.\n\t\turl.search = '';\n\t}\n\n\t// 7. Return url.\n\treturn url;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#enumdef-referrerpolicy|enum ReferrerPolicy}\n */\nexport const ReferrerPolicy = new Set([\n\t'',\n\t'no-referrer',\n\t'no-referrer-when-downgrade',\n\t'same-origin',\n\t'origin',\n\t'strict-origin',\n\t'origin-when-cross-origin',\n\t'strict-origin-when-cross-origin',\n\t'unsafe-url'\n]);\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#default-referrer-policy|default referrer policy}\n */\nexport const DEFAULT_REFERRER_POLICY = 'strict-origin-when-cross-origin';\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#referrer-policies|Referrer Policy §3. Referrer Policies}\n * @param {string} referrerPolicy\n * @returns {string} referrerPolicy\n */\nexport function validateReferrerPolicy(referrerPolicy) {\n\tif (!ReferrerPolicy.has(referrerPolicy)) {\n\t\tthrow new TypeError(`Invalid referrerPolicy: ${referrerPolicy}`);\n\t}\n\n\treturn referrerPolicy;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy|Referrer Policy §3.2. Is origin potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isOriginPotentiallyTrustworthy(url) {\n\t// 1. If origin is an opaque origin, return \"Not Trustworthy\".\n\t// Not applicable\n\n\t// 2. Assert: origin is a tuple origin.\n\t// Not for implementations\n\n\t// 3. If origin's scheme is either \"https\" or \"wss\", return \"Potentially Trustworthy\".\n\tif (/^(http|ws)s:$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 4. If origin's host component matches one of the CIDR notations 127.0.0.0/8 or ::1/128 [RFC4632], return \"Potentially Trustworthy\".\n\tconst hostIp = url.host.replace(/(^\\[)|(]$)/g, '');\n\tconst hostIPVersion = isIP(hostIp);\n\n\tif (hostIPVersion === 4 && /^127\\./.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\tif (hostIPVersion === 6 && /^(((0+:){7})|(::(0+:){0,6}))0*1$/.test(hostIp)) {\n\t\treturn true;\n\t}\n\n\t// 5. If origin's host component is \"localhost\" or falls within \".localhost\", and the user agent conforms to the name resolution rules in [let-localhost-be-localhost], return \"Potentially Trustworthy\".\n\t// We are returning FALSE here because we cannot ensure conformance to\n\t// let-localhost-be-loalhost (https://tools.ietf.org/html/draft-west-let-localhost-be-localhost)\n\tif (url.host === 'localhost' || url.host.endsWith('.localhost')) {\n\t\treturn false;\n\t}\n\n\t// 6. If origin's scheme component is file, return \"Potentially Trustworthy\".\n\tif (url.protocol === 'file:') {\n\t\treturn true;\n\t}\n\n\t// 7. If origin's scheme component is one which the user agent considers to be authenticated, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 8. If origin has been configured as a trustworthy origin, return \"Potentially Trustworthy\".\n\t// Not supported\n\n\t// 9. Return \"Not Trustworthy\".\n\treturn false;\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-secure-contexts/#is-url-trustworthy|Referrer Policy §3.3. Is url potentially trustworthy?}\n * @param {external:URL} url\n * @returns `true`: \"Potentially Trustworthy\", `false`: \"Not Trustworthy\"\n */\nexport function isUrlPotentiallyTrustworthy(url) {\n\t// 1. If url is \"about:blank\" or \"about:srcdoc\", return \"Potentially Trustworthy\".\n\tif (/^about:(blank|srcdoc)$/.test(url)) {\n\t\treturn true;\n\t}\n\n\t// 2. If url's scheme is \"data\", return \"Potentially Trustworthy\".\n\tif (url.protocol === 'data:') {\n\t\treturn true;\n\t}\n\n\t// Note: The origin of blob: and filesystem: URLs is the origin of the context in which they were\n\t// created. Therefore, blobs created in a trustworthy origin will themselves be potentially\n\t// trustworthy.\n\tif (/^(blob|filesystem):$/.test(url.protocol)) {\n\t\treturn true;\n\t}\n\n\t// 3. Return the result of executing §3.2 Is origin potentially trustworthy? on url's origin.\n\treturn isOriginPotentiallyTrustworthy(url);\n}\n\n/**\n * Modifies the referrerURL to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerURLCallback\n * @param {external:URL} referrerURL\n * @returns {external:URL} modified referrerURL\n */\n\n/**\n * Modifies the referrerOrigin to enforce any extra security policy considerations.\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}, step 7\n * @callback module:utils/referrer~referrerOriginCallback\n * @param {external:URL} referrerOrigin\n * @returns {external:URL} modified referrerOrigin\n */\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer|Referrer Policy §8.3. Determine request's Referrer}\n * @param {Request} request\n * @param {object} o\n * @param {module:utils/referrer~referrerURLCallback} o.referrerURLCallback\n * @param {module:utils/referrer~referrerOriginCallback} o.referrerOriginCallback\n * @returns {external:URL} Request's referrer\n */\nexport function determineRequestsReferrer(request, {referrerURLCallback, referrerOriginCallback} = {}) {\n\t// There are 2 notes in the specification about invalid pre-conditions. We return null, here, for\n\t// these cases:\n\t// > Note: If request's referrer is \"no-referrer\", Fetch will not call into this algorithm.\n\t// > Note: If request's referrer policy is the empty string, Fetch will not call into this\n\t// > algorithm.\n\tif (request.referrer === 'no-referrer' || request.referrerPolicy === '') {\n\t\treturn null;\n\t}\n\n\t// 1. Let policy be request's associated referrer policy.\n\tconst policy = request.referrerPolicy;\n\n\t// 2. Let environment be request's client.\n\t// not applicable to node.js\n\n\t// 3. Switch on request's referrer:\n\tif (request.referrer === 'about:client') {\n\t\treturn 'no-referrer';\n\t}\n\n\t// \"a URL\": Let referrerSource be request's referrer.\n\tconst referrerSource = request.referrer;\n\n\t// 4. Let request's referrerURL be the result of stripping referrerSource for use as a referrer.\n\tlet referrerURL = stripURLForUseAsAReferrer(referrerSource);\n\n\t// 5. Let referrerOrigin be the result of stripping referrerSource for use as a referrer, with the\n\t// origin-only flag set to true.\n\tlet referrerOrigin = stripURLForUseAsAReferrer(referrerSource, true);\n\n\t// 6. If the result of serializing referrerURL is a string whose length is greater than 4096, set\n\t// referrerURL to referrerOrigin.\n\tif (referrerURL.toString().length > 4096) {\n\t\treferrerURL = referrerOrigin;\n\t}\n\n\t// 7. The user agent MAY alter referrerURL or referrerOrigin at this point to enforce arbitrary\n\t// policy considerations in the interests of minimizing data leakage. For example, the user\n\t// agent could strip the URL down to an origin, modify its host, replace it with an empty\n\t// string, etc.\n\tif (referrerURLCallback) {\n\t\treferrerURL = referrerURLCallback(referrerURL);\n\t}\n\n\tif (referrerOriginCallback) {\n\t\treferrerOrigin = referrerOriginCallback(referrerOrigin);\n\t}\n\n\t// 8.Execute the statements corresponding to the value of policy:\n\tconst currentURL = new URL(request.url);\n\n\tswitch (policy) {\n\t\tcase 'no-referrer':\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin':\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'unsafe-url':\n\t\t\treturn referrerURL;\n\n\t\tcase 'strict-origin':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerOrigin.\n\t\t\treturn referrerOrigin.toString();\n\n\t\tcase 'strict-origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 3. Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'same-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// 2. Return no referrer.\n\t\t\treturn 'no-referrer';\n\n\t\tcase 'origin-when-cross-origin':\n\t\t\t// 1. If the origin of referrerURL and the origin of request's current URL are the same, then\n\t\t\t// return referrerURL.\n\t\t\tif (referrerURL.origin === currentURL.origin) {\n\t\t\t\treturn referrerURL;\n\t\t\t}\n\n\t\t\t// Return referrerOrigin.\n\t\t\treturn referrerOrigin;\n\n\t\tcase 'no-referrer-when-downgrade':\n\t\t\t// 1. If referrerURL is a potentially trustworthy URL and request's current URL is not a\n\t\t\t// potentially trustworthy URL, then return no referrer.\n\t\t\tif (isUrlPotentiallyTrustworthy(referrerURL) && !isUrlPotentiallyTrustworthy(currentURL)) {\n\t\t\t\treturn 'no-referrer';\n\t\t\t}\n\n\t\t\t// 2. Return referrerURL.\n\t\t\treturn referrerURL;\n\n\t\tdefault:\n\t\t\tthrow new TypeError(`Invalid referrerPolicy: ${policy}`);\n\t}\n}\n\n/**\n * @see {@link https://w3c.github.io/webappsec-referrer-policy/#parse-referrer-policy-from-header|Referrer Policy §8.1. Parse a referrer policy from a Referrer-Policy header}\n * @param {Headers} headers Response headers\n * @returns {string} policy\n */\nexport function parseReferrerPolicyFromHeader(headers) {\n\t// 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy`\n\t// and response’s header list.\n\tconst policyTokens = (headers.get('referrer-policy') || '').split(/[,\\s]+/);\n\n\t// 2. Let policy be the empty string.\n\tlet policy = '';\n\n\t// 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty\n\t// string, then set policy to token.\n\t// Note: This algorithm loops over multiple policy values to allow deployment of new policy\n\t// values with fallbacks for older user agents, as described in § 11.1 Unknown Policy Values.\n\tfor (const token of policyTokens) {\n\t\tif (token && ReferrerPolicy.has(token)) {\n\t\t\tpolicy = token;\n\t\t}\n\t}\n\n\t// 4. Return policy.\n\treturn policy;\n}\n","/**\n * Index.js\n *\n * a request API compatible with window.fetch\n *\n * All spec algorithm step numbers are based on https://fetch.spec.whatwg.org/commit-snapshots/ae716822cb3a61843226cd090eefc6589446c1d2/.\n */\n\nimport http from 'node:http';\nimport https from 'node:https';\nimport zlib from 'node:zlib';\nimport Stream, {PassThrough, pipeline as pump} from 'node:stream';\nimport {Buffer} from 'node:buffer';\n\nimport dataUriToBuffer from 'data-uri-to-buffer';\n\nimport {writeToStream, clone} from './body.js';\nimport Response from './response.js';\nimport Headers, {fromRawHeaders} from './headers.js';\nimport Request, {getNodeRequestOptions} from './request.js';\nimport {FetchError} from './errors/fetch-error.js';\nimport {AbortError} from './errors/abort-error.js';\nimport {isRedirect} from './utils/is-redirect.js';\nimport {FormData} from 'formdata-polyfill/esm.min.js';\nimport {isDomainOrSubdomain, isSameProtocol} from './utils/is.js';\nimport {parseReferrerPolicyFromHeader} from './utils/referrer.js';\nimport {\n\tBlob,\n\tFile,\n\tfileFromSync,\n\tfileFrom,\n\tblobFromSync,\n\tblobFrom\n} from 'fetch-blob/from.js';\n\nexport {FormData, Headers, Request, Response, FetchError, AbortError, isRedirect};\nexport {Blob, File, fileFromSync, fileFrom, blobFromSync, blobFrom};\n\nconst supportedSchemas = new Set(['data:', 'http:', 'https:']);\n\n/**\n * Fetch function\n *\n * @param {string | URL | import('./request').default} url - Absolute url or Request instance\n * @param {*} [options_] - Fetch options\n * @return {Promise<import('./response').default>}\n */\nexport default async function fetch(url, options_) {\n\treturn new Promise((resolve, reject) => {\n\t\t// Build request object\n\t\tconst request = new Request(url, options_);\n\t\tconst {parsedURL, options} = getNodeRequestOptions(request);\n\t\tif (!supportedSchemas.has(parsedURL.protocol)) {\n\t\t\tthrow new TypeError(`node-fetch cannot load ${url}. URL scheme \"${parsedURL.protocol.replace(/:$/, '')}\" is not supported.`);\n\t\t}\n\n\t\tif (parsedURL.protocol === 'data:') {\n\t\t\tconst data = dataUriToBuffer(request.url);\n\t\t\tconst response = new Response(data, {headers: {'Content-Type': data.typeFull}});\n\t\t\tresolve(response);\n\t\t\treturn;\n\t\t}\n\n\t\t// Wrap http.request into fetch\n\t\tconst send = (parsedURL.protocol === 'https:' ? https : http).request;\n\t\tconst {signal} = request;\n\t\tlet response = null;\n\n\t\tconst abort = () => {\n\t\t\tconst error = new AbortError('The operation was aborted.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\n\t\t\tif (!response || !response.body) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = () => {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// Send request\n\t\tconst request_ = send(parsedURL.toString(), options);\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tconst finalize = () => {\n\t\t\trequest_.abort();\n\t\t\tif (signal) {\n\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t}\n\t\t};\n\n\t\trequest_.on('error', error => {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${error.message}`, 'system', error));\n\t\t\tfinalize();\n\t\t});\n\n\t\tfixResponseChunkedTransferBadEnding(request_, error => {\n\t\t\tif (response && response.body) {\n\t\t\t\tresponse.body.destroy(error);\n\t\t\t}\n\t\t});\n\n\t\t/* c8 ignore next 18 */\n\t\tif (process.version < 'v14') {\n\t\t\t// Before Node.js 14, pipeline() does not fully support async iterators and does not always\n\t\t\t// properly handle when the socket close/end events are out of order.\n\t\t\trequest_.on('socket', s => {\n\t\t\t\tlet endedWithEventsCount;\n\t\t\t\ts.prependListener('end', () => {\n\t\t\t\t\tendedWithEventsCount = s._eventsCount;\n\t\t\t\t});\n\t\t\t\ts.prependListener('close', hadError => {\n\t\t\t\t\t// if end happened before close but the socket didn't emit an error, do it now\n\t\t\t\t\tif (response && endedWithEventsCount < s._eventsCount && !hadError) {\n\t\t\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\t\t\tresponse.body.emit('error', error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\trequest_.on('response', response_ => {\n\t\t\trequest_.setTimeout(0);\n\t\t\tconst headers = fromRawHeaders(response_.rawHeaders);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (isRedirect(response_.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tlet locationURL = null;\n\t\t\t\ttry {\n\t\t\t\t\tlocationURL = location === null ? null : new URL(location, request.url);\n\t\t\t\t} catch {\n\t\t\t\t\t// error here can only be invalid URL in Location: header\n\t\t\t\t\t// do not throw when options.redirect == manual\n\t\t\t\t\t// let the user extract the errorneous redirect URL\n\t\t\t\t\tif (request.redirect !== 'manual') {\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// Nothing to do\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow': {\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOptions = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: clone(request),\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\tsize: request.size,\n\t\t\t\t\t\t\treferrer: request.referrer,\n\t\t\t\t\t\t\treferrerPolicy: request.referrerPolicy\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// when forwarding sensitive headers like \"Authorization\",\n\t\t\t\t\t\t// \"WWW-Authenticate\", and \"Cookie\" to untrusted targets,\n\t\t\t\t\t\t// headers will be ignored when following a redirect to a domain\n\t\t\t\t\t\t// that is not a subdomain match or exact match of the initial domain.\n\t\t\t\t\t\t// For example, a redirect from \"foo.com\" to either \"foo.com\" or \"sub.foo.com\"\n\t\t\t\t\t\t// will forward the sensitive headers, but a redirect to \"bar.com\" will not.\n\t\t\t\t\t\t// headers will also be ignored when following a redirect to a domain using\n\t\t\t\t\t\t// a different protocol. For example, a redirect from \"https://foo.com\" to \"http://foo.com\"\n\t\t\t\t\t\t// will not forward the sensitive headers\n\t\t\t\t\t\tif (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {\n\t\t\t\t\t\t\tfor (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {\n\t\t\t\t\t\t\t\trequestOptions.headers.delete(name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (response_.statusCode !== 303 && request.body && options_.body instanceof Stream.Readable) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (response_.statusCode === 303 || ((response_.statusCode === 301 || response_.statusCode === 302) && request.method === 'POST')) {\n\t\t\t\t\t\t\trequestOptions.method = 'GET';\n\t\t\t\t\t\t\trequestOptions.body = undefined;\n\t\t\t\t\t\t\trequestOptions.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 14\n\t\t\t\t\t\tconst responseReferrerPolicy = parseReferrerPolicyFromHeader(headers);\n\t\t\t\t\t\tif (responseReferrerPolicy) {\n\t\t\t\t\t\t\trequestOptions.referrerPolicy = responseReferrerPolicy;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOptions)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn reject(new TypeError(`Redirect option '${request.redirect}' is not a valid value of RequestRedirect`));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Prepare response\n\t\t\tif (signal) {\n\t\t\t\tresponse_.once('end', () => {\n\t\t\t\t\tsignal.removeEventListener('abort', abortAndFinalize);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tlet body = pump(response_, new PassThrough(), error => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t});\n\t\t\t// see https://github.com/nodejs/node/pull/29376\n\t\t\t/* c8 ignore next 3 */\n\t\t\tif (process.version < 'v12.10') {\n\t\t\t\tresponse_.on('aborted', abortAndFinalize);\n\t\t\t}\n\n\t\t\tconst responseOptions = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: response_.statusCode,\n\t\t\t\tstatusText: response_.statusMessage,\n\t\t\t\theaders,\n\t\t\t\tsize: request.size,\n\t\t\t\tcounter: request.counter,\n\t\t\t\thighWaterMark: request.highWaterMark\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || response_.statusCode === 204 || response_.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// For gzip\n\t\t\tif (codings === 'gzip' || codings === 'x-gzip') {\n\t\t\t\tbody = pump(body, zlib.createGunzip(zlibOptions), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For deflate\n\t\t\tif (codings === 'deflate' || codings === 'x-deflate') {\n\t\t\t\t// Handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = pump(response_, new PassThrough(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\traw.once('data', chunk => {\n\t\t\t\t\t// See http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflate(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = pump(body, zlib.createInflateRaw(), error => {\n\t\t\t\t\t\t\tif (error) {\n\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\traw.once('end', () => {\n\t\t\t\t\t// Some old IIS servers return zero-length OK deflate responses, so\n\t\t\t\t\t// 'data' is never emitted. See https://github.com/node-fetch/node-fetch/pull/903\n\t\t\t\t\tif (!response) {\n\t\t\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\t\t\tresolve(response);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For br\n\t\t\tif (codings === 'br') {\n\t\t\t\tbody = pump(body, zlib.createBrotliDecompress(), error => {\n\t\t\t\t\tif (error) {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresponse = new Response(body, responseOptions);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Otherwise, use response as-is\n\t\t\tresponse = new Response(body, responseOptions);\n\t\t\tresolve(response);\n\t\t});\n\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\twriteToStream(request_, request).catch(reject);\n\t});\n}\n\nfunction fixResponseChunkedTransferBadEnding(request, errorCallback) {\n\tconst LAST_CHUNK = Buffer.from('0\\r\\n\\r\\n');\n\n\tlet isChunkedTransfer = false;\n\tlet properLastChunkReceived = false;\n\tlet previousChunk;\n\n\trequest.on('response', response => {\n\t\tconst {headers} = response;\n\t\tisChunkedTransfer = headers['transfer-encoding'] === 'chunked' && !headers['content-length'];\n\t});\n\n\trequest.on('socket', socket => {\n\t\tconst onSocketClose = () => {\n\t\t\tif (isChunkedTransfer && !properLastChunkReceived) {\n\t\t\t\tconst error = new Error('Premature close');\n\t\t\t\terror.code = 'ERR_STREAM_PREMATURE_CLOSE';\n\t\t\t\terrorCallback(error);\n\t\t\t}\n\t\t};\n\n\t\tconst onData = buf => {\n\t\t\tproperLastChunkReceived = Buffer.compare(buf.slice(-5), LAST_CHUNK) === 0;\n\n\t\t\t// Sometimes final 0-length chunk and end of message code are in separate packets\n\t\t\tif (!properLastChunkReceived && previousChunk) {\n\t\t\t\tproperLastChunkReceived = (\n\t\t\t\t\tBuffer.compare(previousChunk.slice(-3), LAST_CHUNK.slice(0, 3)) === 0 &&\n\t\t\t\t\tBuffer.compare(buf.slice(-2), LAST_CHUNK.slice(3)) === 0\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tpreviousChunk = buf;\n\t\t};\n\n\t\tsocket.prependListener('close', onSocketClose);\n\t\tsocket.on('data', onData);\n\n\t\trequest.on('close', () => {\n\t\t\tsocket.removeListener('close', onSocketClose);\n\t\t\tsocket.removeListener('data', onData);\n\t\t});\n\t});\n}\n","export class FetchBaseError extends Error {\n\tconstructor(message, type) {\n\t\tsuper(message);\n\t\t// Hide custom error implementation details from end-users\n\t\tError.captureStackTrace(this, this.constructor);\n\n\t\tthis.type = type;\n\t}\n\n\tget name() {\n\t\treturn this.constructor.name;\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn this.constructor.name;\n\t}\n}\n","export const getSearch = parsedURL => {\n\tif (parsedURL.search) {\n\t\treturn parsedURL.search;\n\t}\n\n\tconst lastOffset = parsedURL.href.length - 1;\n\tconst hash = parsedURL.hash || (parsedURL.href[lastOffset] === '#' ? '#' : '');\n\treturn parsedURL.href[lastOffset - hash.length] === '?' ? '?' : '';\n};\n","import {FetchBaseError} from './base.js';\n\n/**\n * AbortError interface for cancelled requests\n */\nexport class AbortError extends FetchBaseError {\n\tconstructor(message, type = 'aborted') {\n\t\tsuper(message, type);\n\t}\n}\n","export interface MimeBuffer extends Buffer {\n\ttype: string;\n\ttypeFull: string;\n\tcharset: string;\n}\n\n/**\n * Returns a `Buffer` instance from the given data URI `uri`.\n *\n * @param {String} uri Data URI to turn into a Buffer instance\n * @returns {Buffer} Buffer instance from Data URI\n * @api public\n */\nexport function dataUriToBuffer(uri: string): MimeBuffer {\n\tif (!/^data:/i.test(uri)) {\n\t\tthrow new TypeError(\n\t\t\t'`uri` does not appear to be a Data URI (must begin with \"data:\")'\n\t\t);\n\t}\n\n\t// strip newlines\n\turi = uri.replace(/\\r?\\n/g, '');\n\n\t// split the URI up into the \"metadata\" and the \"data\" portions\n\tconst firstComma = uri.indexOf(',');\n\tif (firstComma === -1 || firstComma <= 4) {\n\t\tthrow new TypeError('malformed data: URI');\n\t}\n\n\t// remove the \"data:\" scheme and parse the metadata\n\tconst meta = uri.substring(5, firstComma).split(';');\n\n\tlet charset = '';\n\tlet base64 = false;\n\tconst type = meta[0] || 'text/plain';\n\tlet typeFull = type;\n\tfor (let i = 1; i < meta.length; i++) {\n\t\tif (meta[i] === 'base64') {\n\t\t\tbase64 = true;\n\t\t} else if(meta[i]) {\n\t\t\ttypeFull += `;${ meta[i]}`;\n\t\t\tif (meta[i].indexOf('charset=') === 0) {\n\t\t\t\tcharset = meta[i].substring(8);\n\t\t\t}\n\t\t}\n\t}\n\t// defaults to US-ASCII only if type is not provided\n\tif (!meta[0] && !charset.length) {\n\t\ttypeFull += ';charset=US-ASCII';\n\t\tcharset = 'US-ASCII';\n\t}\n\n\t// get the encoded data portion and decode URI-encoded chars\n\tconst encoding = base64 ? 'base64' : 'ascii';\n\tconst data = unescape(uri.substring(firstComma + 1));\n\tconst buffer = Buffer.from(data, encoding) as MimeBuffer;\n\n\t// set `.type` and `.typeFull` properties to MIME type\n\tbuffer.type = type;\n\tbuffer.typeFull = typeFull;\n\n\t// set the `.charset` property\n\tbuffer.charset = charset;\n\n\treturn buffer;\n}\n\nexport default dataUriToBuffer;\n","\n/**\n * Body.js\n *\n * Body interface provides common methods for Request and Response\n */\n\nimport Stream, {PassThrough} from 'node:stream';\nimport {types, deprecate, promisify} from 'node:util';\nimport {Buffer} from 'node:buffer';\n\nimport Blob from 'fetch-blob';\nimport {FormData, formDataToBlob} from 'formdata-polyfill/esm.min.js';\n\nimport {FetchError} from './errors/fetch-error.js';\nimport {FetchBaseError} from './errors/base.js';\nimport {isBlob, isURLSearchParameters} from './utils/is.js';\n\nconst pipeline = promisify(Stream.pipeline);\nconst INTERNALS = Symbol('Body internals');\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nexport default class Body {\n\tconstructor(body, {\n\t\tsize = 0\n\t} = {}) {\n\t\tlet boundary = null;\n\n\t\tif (body === null) {\n\t\t\t// Body is undefined or null\n\t\t\tbody = null;\n\t\t} else if (isURLSearchParameters(body)) {\n\t\t\t// Body is a URLSearchParams\n\t\t\tbody = Buffer.from(body.toString());\n\t\t} else if (isBlob(body)) {\n\t\t\t// Body is blob\n\t\t} else if (Buffer.isBuffer(body)) {\n\t\t\t// Body is Buffer\n\t\t} else if (types.isAnyArrayBuffer(body)) {\n\t\t\t// Body is ArrayBuffer\n\t\t\tbody = Buffer.from(body);\n\t\t} else if (ArrayBuffer.isView(body)) {\n\t\t\t// Body is ArrayBufferView\n\t\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t\t} else if (body instanceof Stream) {\n\t\t\t// Body is stream\n\t\t} else if (body instanceof FormData) {\n\t\t\t// Body is FormData\n\t\t\tbody = formDataToBlob(body);\n\t\t\tboundary = body.type.split('=')[1];\n\t\t} else {\n\t\t\t// None of the above\n\t\t\t// coerce to string then buffer\n\t\t\tbody = Buffer.from(String(body));\n\t\t}\n\n\t\tlet stream = body;\n\n\t\tif (Buffer.isBuffer(body)) {\n\t\t\tstream = Stream.Readable.from(body);\n\t\t} else if (isBlob(body)) {\n\t\t\tstream = Stream.Readable.from(body.stream());\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\tbody,\n\t\t\tstream,\n\t\t\tboundary,\n\t\t\tdisturbed: false,\n\t\t\terror: null\n\t\t};\n\t\tthis.size = size;\n\n\t\tif (body instanceof Stream) {\n\t\t\tbody.on('error', error_ => {\n\t\t\t\tconst error = error_ instanceof FetchBaseError ?\n\t\t\t\t\terror_ :\n\t\t\t\t\tnew FetchError(`Invalid response body while trying to fetch ${this.url}: ${error_.message}`, 'system', error_);\n\t\t\t\tthis[INTERNALS].error = error;\n\t\t\t});\n\t\t}\n\t}\n\n\tget body() {\n\t\treturn this[INTERNALS].stream;\n\t}\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t}\n\n\t/**\n\t * Decode response as ArrayBuffer\n\t *\n\t * @return Promise\n\t */\n\tasync arrayBuffer() {\n\t\tconst {buffer, byteOffset, byteLength} = await consumeBody(this);\n\t\treturn buffer.slice(byteOffset, byteOffset + byteLength);\n\t}\n\n\tasync formData() {\n\t\tconst ct = this.headers.get('content-type');\n\n\t\tif (ct.startsWith('application/x-www-form-urlencoded')) {\n\t\t\tconst formData = new FormData();\n\t\t\tconst parameters = new URLSearchParams(await this.text());\n\n\t\t\tfor (const [name, value] of parameters) {\n\t\t\t\tformData.append(name, value);\n\t\t\t}\n\n\t\t\treturn formData;\n\t\t}\n\n\t\tconst {toFormData} = await import('./utils/multipart-parser.js');\n\t\treturn toFormData(this.body, ct);\n\t}\n\n\t/**\n\t * Return raw response as Blob\n\t *\n\t * @return Promise\n\t */\n\tasync blob() {\n\t\tconst ct = (this.headers && this.headers.get('content-type')) || (this[INTERNALS].body && this[INTERNALS].body.type) || '';\n\t\tconst buf = await this.arrayBuffer();\n\n\t\treturn new Blob([buf], {\n\t\t\ttype: ct\n\t\t});\n\t}\n\n\t/**\n\t * Decode response as json\n\t *\n\t * @return Promise\n\t */\n\tasync json() {\n\t\tconst text = await this.text();\n\t\treturn JSON.parse(text);\n\t}\n\n\t/**\n\t * Decode response as text\n\t *\n\t * @return Promise\n\t */\n\tasync text() {\n\t\tconst buffer = await consumeBody(this);\n\t\treturn new TextDecoder().decode(buffer);\n\t}\n\n\t/**\n\t * Decode response as buffer (non-spec api)\n\t *\n\t * @return Promise\n\t */\n\tbuffer() {\n\t\treturn consumeBody(this);\n\t}\n}\n\nBody.prototype.buffer = deprecate(Body.prototype.buffer, 'Please use \\'response.arrayBuffer()\\' instead of \\'response.buffer()\\'', 'node-fetch#buffer');\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: {enumerable: true},\n\tbodyUsed: {enumerable: true},\n\tarrayBuffer: {enumerable: true},\n\tblob: {enumerable: true},\n\tjson: {enumerable: true},\n\ttext: {enumerable: true},\n\tdata: {get: deprecate(() => {},\n\t\t'data doesn\\'t exist, use json(), text(), arrayBuffer(), or body instead',\n\t\t'https://github.com/node-fetch/node-fetch/issues/1000 (response)')}\n});\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nasync function consumeBody(data) {\n\tif (data[INTERNALS].disturbed) {\n\t\tthrow new TypeError(`body used already for: ${data.url}`);\n\t}\n\n\tdata[INTERNALS].disturbed = true;\n\n\tif (data[INTERNALS].error) {\n\t\tthrow data[INTERNALS].error;\n\t}\n\n\tconst {body} = data;\n\n\t// Body is null\n\tif (body === null) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t/* c8 ignore next 3 */\n\tif (!(body instanceof Stream)) {\n\t\treturn Buffer.alloc(0);\n\t}\n\n\t// Body is stream\n\t// get ready to actually consume the body\n\tconst accum = [];\n\tlet accumBytes = 0;\n\n\ttry {\n\t\tfor await (const chunk of body) {\n\t\t\tif (data.size > 0 && accumBytes + chunk.length > data.size) {\n\t\t\t\tconst error = new FetchError(`content size at ${data.url} over limit: ${data.size}`, 'max-size');\n\t\t\t\tbody.destroy(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t}\n\t} catch (error) {\n\t\tconst error_ = error instanceof FetchBaseError ? error : new FetchError(`Invalid response body while trying to fetch ${data.url}: ${error.message}`, 'system', error);\n\t\tthrow error_;\n\t}\n\n\tif (body.readableEnded === true || body._readableState.ended === true) {\n\t\ttry {\n\t\t\tif (accum.every(c => typeof c === 'string')) {\n\t\t\t\treturn Buffer.from(accum.join(''));\n\t\t\t}\n\n\t\t\treturn Buffer.concat(accum, accumBytes);\n\t\t} catch (error) {\n\t\t\tthrow new FetchError(`Could not create Buffer from response body for ${data.url}: ${error.message}`, 'system', error);\n\t\t}\n\t} else {\n\t\tthrow new FetchError(`Premature close of server response while trying to fetch ${data.url}`);\n\t}\n}\n\n/**\n * Clone body given Res/Req instance\n *\n * @param Mixed instance Response or Request instance\n * @param String highWaterMark highWaterMark for both PassThrough body streams\n * @return Mixed\n */\nexport const clone = (instance, highWaterMark) => {\n\tlet p1;\n\tlet p2;\n\tlet {body} = instance[INTERNALS];\n\n\t// Don't allow cloning a used body\n\tif (instance.bodyUsed) {\n\t\tthrow new Error('cannot clone body after it is used');\n\t}\n\n\t// Check that body is a stream and not form-data object\n\t// note: we can't clone the form-data object without having it as a dependency\n\tif ((body instanceof Stream) && (typeof body.getBoundary !== 'function')) {\n\t\t// Tee instance body\n\t\tp1 = new PassThrough({highWaterMark});\n\t\tp2 = new PassThrough({highWaterMark});\n\t\tbody.pipe(p1);\n\t\tbody.pipe(p2);\n\t\t// Set instance body to teed body and return the other teed body\n\t\tinstance[INTERNALS].stream = p1;\n\t\tbody = p2;\n\t}\n\n\treturn body;\n};\n\nconst getNonSpecFormDataBoundary = deprecate(\n\tbody => body.getBoundary(),\n\t'form-data doesn\\'t follow the spec and requires special treatment. Use alternative package',\n\t'https://github.com/node-fetch/node-fetch/issues/1167'\n);\n\n/**\n * Performs the operation \"extract a `Content-Type` value from |object|\" as\n * specified in the specification:\n * https://fetch.spec.whatwg.org/#concept-bodyinit-extract\n *\n * This function assumes that instance.body is present.\n *\n * @param {any} body Any options.body input\n * @returns {string | null}\n */\nexport const extractContentType = (body, request) => {\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn null;\n\t}\n\n\t// Body is string\n\tif (typeof body === 'string') {\n\t\treturn 'text/plain;charset=UTF-8';\n\t}\n\n\t// Body is a URLSearchParams\n\tif (isURLSearchParameters(body)) {\n\t\treturn 'application/x-www-form-urlencoded;charset=UTF-8';\n\t}\n\n\t// Body is blob\n\tif (isBlob(body)) {\n\t\treturn body.type || null;\n\t}\n\n\t// Body is a Buffer (Buffer, ArrayBuffer or ArrayBufferView)\n\tif (Buffer.isBuffer(body) || types.isAnyArrayBuffer(body) || ArrayBuffer.isView(body)) {\n\t\treturn null;\n\t}\n\n\tif (body instanceof FormData) {\n\t\treturn `multipart/form-data; boundary=${request[INTERNALS].boundary}`;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getBoundary === 'function') {\n\t\treturn `multipart/form-data;boundary=${getNonSpecFormDataBoundary(body)}`;\n\t}\n\n\t// Body is stream - can't really do much about this\n\tif (body instanceof Stream) {\n\t\treturn null;\n\t}\n\n\t// Body constructor defaults other things to string\n\treturn 'text/plain;charset=UTF-8';\n};\n\n/**\n * The Fetch Standard treats this as if \"total bytes\" is a property on the body.\n * For us, we have to explicitly get it with a function.\n *\n * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes\n *\n * @param {any} obj.body Body object from the Body instance.\n * @returns {number | null}\n */\nexport const getTotalBytes = request => {\n\tconst {body} = request[INTERNALS];\n\n\t// Body is null or undefined\n\tif (body === null) {\n\t\treturn 0;\n\t}\n\n\t// Body is Blob\n\tif (isBlob(body)) {\n\t\treturn body.size;\n\t}\n\n\t// Body is Buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn body.length;\n\t}\n\n\t// Detect form data input from form-data module\n\tif (body && typeof body.getLengthSync === 'function') {\n\t\treturn body.hasKnownLength && body.hasKnownLength() ? body.getLengthSync() : null;\n\t}\n\n\t// Body is stream\n\treturn null;\n};\n\n/**\n * Write a Body to a Node.js WritableStream (e.g. http.Request) object.\n *\n * @param {Stream.Writable} dest The stream to write to.\n * @param obj.body Body object from the Body instance.\n * @returns {Promise<void>}\n */\nexport const writeToStream = async (dest, {body}) => {\n\tif (body === null) {\n\t\t// Body is null\n\t\tdest.end();\n\t} else {\n\t\t// Body is stream\n\t\tawait pipeline(body, dest);\n\t}\n};\n","/**\n * Headers.js\n *\n * Headers class offers convenient helpers\n */\n\nimport {types} from 'node:util';\nimport http from 'node:http';\n\n/* c8 ignore next 9 */\nconst validateHeaderName = typeof http.validateHeaderName === 'function' ?\n\thttp.validateHeaderName :\n\tname => {\n\t\tif (!/^[\\^`\\-\\w!#$%&'*+.|~]+$/.test(name)) {\n\t\t\tconst error = new TypeError(`Header name must be a valid HTTP token [${name}]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_HTTP_TOKEN'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/* c8 ignore next 9 */\nconst validateHeaderValue = typeof http.validateHeaderValue === 'function' ?\n\thttp.validateHeaderValue :\n\t(name, value) => {\n\t\tif (/[^\\t\\u0020-\\u007E\\u0080-\\u00FF]/.test(value)) {\n\t\t\tconst error = new TypeError(`Invalid character in header content [\"${name}\"]`);\n\t\t\tObject.defineProperty(error, 'code', {value: 'ERR_INVALID_CHAR'});\n\t\t\tthrow error;\n\t\t}\n\t};\n\n/**\n * @typedef {Headers | Record<string, string> | Iterable<readonly [string, string]> | Iterable<Iterable<string>>} HeadersInit\n */\n\n/**\n * This Fetch API interface allows you to perform various actions on HTTP request and response headers.\n * These actions include retrieving, setting, adding to, and removing.\n * A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs.\n * You can add to this using methods like append() (see Examples.)\n * In all methods of this interface, header names are matched by case-insensitive byte sequence.\n *\n */\nexport default class Headers extends URLSearchParams {\n\t/**\n\t * Headers class\n\t *\n\t * @constructor\n\t * @param {HeadersInit} [init] - Response headers\n\t */\n\tconstructor(init) {\n\t\t// Validate and normalize init object in [name, value(s)][]\n\t\t/** @type {string[][]} */\n\t\tlet result = [];\n\t\tif (init instanceof Headers) {\n\t\t\tconst raw = init.raw();\n\t\t\tfor (const [name, values] of Object.entries(raw)) {\n\t\t\t\tresult.push(...values.map(value => [name, value]));\n\t\t\t}\n\t\t} else if (init == null) { // eslint-disable-line no-eq-null, eqeqeq\n\t\t\t// No op\n\t\t} else if (typeof init === 'object' && !types.isBoxedPrimitive(init)) {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\t// eslint-disable-next-line no-eq-null, eqeqeq\n\t\t\tif (method == null) {\n\t\t\t\t// Record<ByteString, ByteString>\n\t\t\t\tresult.push(...Object.entries(init));\n\t\t\t} else {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// Sequence<sequence<ByteString>>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tresult = [...init]\n\t\t\t\t\t.map(pair => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttypeof pair !== 'object' || types.isBoxedPrimitive(pair)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be an iterable object');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t}).map(pair => {\n\t\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [...pair];\n\t\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Failed to construct \\'Headers\\': The provided value is not of type \\'(sequence<sequence<ByteString>> or record<ByteString, ByteString>)');\n\t\t}\n\n\t\t// Validate and lowercase\n\t\tresult =\n\t\t\tresult.length > 0 ?\n\t\t\t\tresult.map(([name, value]) => {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn [String(name).toLowerCase(), String(value)];\n\t\t\t\t}) :\n\t\t\t\tundefined;\n\n\t\tsuper(result);\n\n\t\t// Returning a Proxy that will lowercase key names, validate parameters and sort keys\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn new Proxy(this, {\n\t\t\tget(target, p, receiver) {\n\t\t\t\tswitch (p) {\n\t\t\t\t\tcase 'append':\n\t\t\t\t\tcase 'set':\n\t\t\t\t\t\treturn (name, value) => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase(),\n\t\t\t\t\t\t\t\tString(value)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'delete':\n\t\t\t\t\tcase 'has':\n\t\t\t\t\tcase 'getAll':\n\t\t\t\t\t\treturn name => {\n\t\t\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\t\t\treturn URLSearchParams.prototype[p].call(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tString(name).toLowerCase()\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t};\n\n\t\t\t\t\tcase 'keys':\n\t\t\t\t\t\treturn () => {\n\t\t\t\t\t\t\ttarget.sort();\n\t\t\t\t\t\t\treturn new Set(URLSearchParams.prototype.keys.call(target)).keys();\n\t\t\t\t\t\t};\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn Reflect.get(target, p, receiver);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\t/* c8 ignore next */\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn this.constructor.name;\n\t}\n\n\ttoString() {\n\t\treturn Object.prototype.toString.call(this);\n\t}\n\n\tget(name) {\n\t\tconst values = this.getAll(name);\n\t\tif (values.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet value = values.join(', ');\n\t\tif (/^content-encoding$/i.test(name)) {\n\t\t\tvalue = value.toLowerCase();\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tforEach(callback, thisArg = undefined) {\n\t\tfor (const name of this.keys()) {\n\t\t\tReflect.apply(callback, thisArg, [this.get(name), name, this]);\n\t\t}\n\t}\n\n\t* values() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield this.get(name);\n\t\t}\n\t}\n\n\t/**\n\t * @type {() => IterableIterator<[string, string]>}\n\t */\n\t* entries() {\n\t\tfor (const name of this.keys()) {\n\t\t\tyield [name, this.get(name)];\n\t\t}\n\t}\n\n\t[Symbol.iterator]() {\n\t\treturn this.entries();\n\t}\n\n\t/**\n\t * Node-fetch non-spec method\n\t * returning all headers and their values as array\n\t * @returns {Record<string, string[]>}\n\t */\n\traw() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tresult[key] = this.getAll(key);\n\t\t\treturn result;\n\t\t}, {});\n\t}\n\n\t/**\n\t * For better console.log(headers) and also to convert Headers into Node.js Request compatible format\n\t */\n\t[Symbol.for('nodejs.util.inspect.custom')]() {\n\t\treturn [...this.keys()].reduce((result, key) => {\n\t\t\tconst values = this.getAll(key);\n\t\t\t// Http.request() only supports string as Host header.\n\t\t\t// This hack makes specifying custom Host header possible.\n\t\t\tif (key === 'host') {\n\t\t\t\tresult[key] = values[0];\n\t\t\t} else {\n\t\t\t\tresult[key] = values.length > 1 ? values : values[0];\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}, {});\n\t}\n}\n\n/**\n * Re-shaping object for Web IDL tests\n * Only need to do it for overridden methods\n */\nObject.defineProperties(\n\tHeaders.prototype,\n\t['get', 'entries', 'forEach', 'values'].reduce((result, property) => {\n\t\tresult[property] = {enumerable: true};\n\t\treturn result;\n\t}, {})\n);\n\n/**\n * Create a Headers object from an http.IncomingMessage.rawHeaders, ignoring those that do\n * not conform to HTTP grammar productions.\n * @param {import('http').IncomingMessage['rawHeaders']} headers\n */\nexport function fromRawHeaders(headers = []) {\n\treturn new Headers(\n\t\theaders\n\t\t\t// Split into pairs\n\t\t\t.reduce((result, value, index, array) => {\n\t\t\t\tif (index % 2 === 0) {\n\t\t\t\t\tresult.push(array.slice(index, index + 2));\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}, [])\n\t\t\t.filter(([name, value]) => {\n\t\t\t\ttry {\n\t\t\t\t\tvalidateHeaderName(name);\n\t\t\t\t\tvalidateHeaderValue(name, String(value));\n\t\t\t\t\treturn true;\n\t\t\t\t} catch {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t})\n\n\t);\n}\n","/**\n * Response.js\n *\n * Response class provides content decoding\n */\n\nimport Headers from './headers.js';\nimport Body, {clone, extractContentType} from './body.js';\nimport {isRedirect} from './utils/is-redirect.js';\n\nconst INTERNALS = Symbol('Response internals');\n\n/**\n * Response class\n *\n * Ref: https://fetch.spec.whatwg.org/#response-class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nexport default class Response extends Body {\n\tconstructor(body = null, options = {}) {\n\t\tsuper(body, options);\n\n\t\t// eslint-disable-next-line no-eq-null, eqeqeq, no-negated-condition\n\t\tconst status = options.status != null ? options.status : 200;\n\n\t\tconst headers = new Headers(options.headers);\n\n\t\tif (body !== null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body, this);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS] = {\n\t\t\ttype: 'default',\n\t\t\turl: options.url,\n\t\t\tstatus,\n\t\t\tstatusText: options.statusText || '',\n\t\t\theaders,\n\t\t\tcounter: options.counter,\n\t\t\thighWaterMark: options.highWaterMark\n\t\t};\n\t}\n\n\tget type() {\n\t\treturn this[INTERNALS].type;\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS].status;\n\t}\n\n\t/**\n\t * Convenience property representing if the request ended normally\n\t */\n\tget ok() {\n\t\treturn this[INTERNALS].status >= 200 && this[INTERNALS].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS].headers;\n\t}\n\n\tget highWaterMark() {\n\t\treturn this[INTERNALS].highWaterMark;\n\t}\n\n\t/**\n\t * Clone this response\n\t *\n\t * @return Response\n\t */\n\tclone() {\n\t\treturn new Response(clone(this, this.highWaterMark), {\n\t\t\ttype: this.type,\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected,\n\t\t\tsize: this.size,\n\t\t\thighWaterMark: this.highWaterMark\n\t\t});\n\t}\n\n\t/**\n\t * @param {string} url The URL that the new response is to originate from.\n\t * @param {number} status An optional status code for the response (e.g., 302.)\n\t * @returns {Response} A Response object.\n\t */\n\tstatic redirect(url, status = 302) {\n\t\tif (!isRedirect(status)) {\n\t\t\tthrow new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code');\n\t\t}\n\n\t\treturn new Response(null, {\n\t\t\theaders: {\n\t\t\t\tlocation: new URL(url).toString()\n\t\t\t},\n\t\t\tstatus\n\t\t});\n\t}\n\n\tstatic error() {\n\t\tconst response = new Response(null, {status: 0, statusText: ''});\n\t\tresponse[INTERNALS].type = 'error';\n\t\treturn response;\n\t}\n\n\tstatic json(data = undefined, init = {}) {\n\t\tconst body = JSON.stringify(data);\n\n\t\tif (body === undefined) {\n\t\t\tthrow new TypeError('data is not JSON serializable');\n\t\t}\n\n\t\tconst headers = new Headers(init && init.headers);\n\n\t\tif (!headers.has('content-type')) {\n\t\t\theaders.set('content-type', 'application/json');\n\t\t}\n\n\t\treturn new Response(body, {\n\t\t\t...init,\n\t\t\theaders\n\t\t});\n\t}\n\n\tget [Symbol.toStringTag]() {\n\t\treturn 'Response';\n\t}\n}\n\nObject.defineProperties(Response.prototype, {\n\ttype: {enumerable: true},\n\turl: {enumerable: true},\n\tstatus: {enumerable: true},\n\tok: {enumerable: true},\n\tredirected: {enumerable: true},\n\tstatusText: {enumerable: true},\n\theaders: {enumerable: true},\n\tclone: {enumerable: true}\n});\n","\nimport {FetchBaseError} from './base.js';\n\n/**\n * @typedef {{ address?: string, code: string, dest?: string, errno: number, info?: object, message: string, path?: string, port?: number, syscall: string}} SystemError\n*/\n\n/**\n * FetchError interface for operational errors\n */\nexport class FetchError extends FetchBaseError {\n\t/**\n\t * @param {string} message - Error message for human\n\t * @param {string} [type] - Error type for machine\n\t * @param {SystemError} [systemError] - For Node.js system error\n\t */\n\tconstructor(message, type, systemError) {\n\t\tsuper(message, type);\n\t\t// When err.type is `system`, err.erroredSysCall contains system error and err.code contains system error code\n\t\tif (systemError) {\n\t\t\t// eslint-disable-next-line no-multi-assign\n\t\t\tthis.code = this.errno = systemError.code;\n\t\t\tthis.erroredSysCall = systemError.syscall;\n\t\t}\n\t}\n}\n"],"names":["test","uri","dataUriToBuffer","firstComma","indexOf","typeFull","meta","base64","type","i","encoding","buffer","substring","charset","from"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12]}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[20891,a=>{"use strict";a.s(["Sidebar",()=>c,"SidebarContent",()=>d,"SidebarFooter",()=>e,"SidebarGroup",()=>f,"SidebarGroupAction",()=>g,"SidebarGroupContent",()=>h,"SidebarGroupLabel",()=>i,"SidebarHeader",()=>j,"SidebarInput",()=>k,"SidebarInset",()=>l,"SidebarMenu",()=>m,"SidebarMenuAction",()=>n,"SidebarMenuBadge",()=>o,"SidebarMenuButton",()=>p,"SidebarMenuItem",()=>q,"SidebarMenuSkeleton",()=>r,"SidebarMenuSub",()=>s,"SidebarMenuSubButton",()=>t,"SidebarMenuSubItem",()=>u,"SidebarProvider",()=>v,"SidebarRail",()=>w,"SidebarSeparator",()=>x,"SidebarTrigger",()=>y,"useSidebar",()=>z]);var b=a.i(11857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","Sidebar"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarContent() from the server but SidebarContent is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarContent"),e=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarFooter() from the server but SidebarFooter is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarFooter"),f=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarGroup() from the server but SidebarGroup is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarGroup"),g=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarGroupAction() from the server but SidebarGroupAction is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarGroupAction"),h=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarGroupContent() from the server but SidebarGroupContent is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarGroupContent"),i=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarGroupLabel() from the server but SidebarGroupLabel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarGroupLabel"),j=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarHeader() from the server but SidebarHeader is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarHeader"),k=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarInput() from the server but SidebarInput is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarInput"),l=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarInset() from the server but SidebarInset is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarInset"),m=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenu() from the server but SidebarMenu is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarMenu"),n=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuAction() from the server but SidebarMenuAction is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarMenuAction"),o=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuBadge() from the server but SidebarMenuBadge is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarMenuBadge"),p=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuButton() from the server but SidebarMenuButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarMenuButton"),q=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuItem() from the server but SidebarMenuItem is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarMenuItem"),r=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuSkeleton() from the server but SidebarMenuSkeleton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarMenuSkeleton"),s=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuSub() from the server but SidebarMenuSub is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarMenuSub"),t=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuSubButton() from the server but SidebarMenuSubButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarMenuSubButton"),u=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuSubItem() from the server but SidebarMenuSubItem is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarMenuSubItem"),v=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarProvider() from the server but SidebarProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarProvider"),w=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarRail() from the server but SidebarRail is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarRail"),x=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarSeparator() from the server but SidebarSeparator is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarSeparator"),y=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarTrigger() from the server but SidebarTrigger is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","SidebarTrigger"),z=(0,b.registerClientReference)(function(){throw Error("Attempted to call useSidebar() from the server but useSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx <module evaluation>","useSidebar")},90276,a=>{"use strict";a.s(["Sidebar",()=>c,"SidebarContent",()=>d,"SidebarFooter",()=>e,"SidebarGroup",()=>f,"SidebarGroupAction",()=>g,"SidebarGroupContent",()=>h,"SidebarGroupLabel",()=>i,"SidebarHeader",()=>j,"SidebarInput",()=>k,"SidebarInset",()=>l,"SidebarMenu",()=>m,"SidebarMenuAction",()=>n,"SidebarMenuBadge",()=>o,"SidebarMenuButton",()=>p,"SidebarMenuItem",()=>q,"SidebarMenuSkeleton",()=>r,"SidebarMenuSub",()=>s,"SidebarMenuSubButton",()=>t,"SidebarMenuSubItem",()=>u,"SidebarProvider",()=>v,"SidebarRail",()=>w,"SidebarSeparator",()=>x,"SidebarTrigger",()=>y,"useSidebar",()=>z]);var b=a.i(11857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","Sidebar"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarContent() from the server but SidebarContent is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarContent"),e=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarFooter() from the server but SidebarFooter is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarFooter"),f=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarGroup() from the server but SidebarGroup is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarGroup"),g=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarGroupAction() from the server but SidebarGroupAction is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarGroupAction"),h=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarGroupContent() from the server but SidebarGroupContent is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarGroupContent"),i=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarGroupLabel() from the server but SidebarGroupLabel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarGroupLabel"),j=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarHeader() from the server but SidebarHeader is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarHeader"),k=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarInput() from the server but SidebarInput is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarInput"),l=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarInset() from the server but SidebarInset is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarInset"),m=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenu() from the server but SidebarMenu is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarMenu"),n=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuAction() from the server but SidebarMenuAction is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarMenuAction"),o=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuBadge() from the server but SidebarMenuBadge is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarMenuBadge"),p=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuButton() from the server but SidebarMenuButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarMenuButton"),q=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuItem() from the server but SidebarMenuItem is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarMenuItem"),r=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuSkeleton() from the server but SidebarMenuSkeleton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarMenuSkeleton"),s=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuSub() from the server but SidebarMenuSub is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarMenuSub"),t=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuSubButton() from the server but SidebarMenuSubButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarMenuSubButton"),u=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuSubItem() from the server but SidebarMenuSubItem is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarMenuSubItem"),v=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarProvider() from the server but SidebarProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarProvider"),w=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarRail() from the server but SidebarRail is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarRail"),x=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarSeparator() from the server but SidebarSeparator is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarSeparator"),y=(0,b.registerClientReference)(function(){throw Error("Attempted to call SidebarTrigger() from the server but SidebarTrigger is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","SidebarTrigger"),z=(0,b.registerClientReference)(function(){throw Error("Attempted to call useSidebar() from the server but useSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/ui/sidebar.tsx","useSidebar")},74412,a=>{"use strict";a.i(20891);var b=a.i(90276);a.n(b)},93109,a=>{"use strict";a.s(["AnalysisProvider",()=>c,"useAnalysis",()=>d]);var b=a.i(11857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call AnalysisProvider() from the server but AnalysisProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/analysis/analysis-provider.tsx <module evaluation>","AnalysisProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useAnalysis() from the server but useAnalysis is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/analysis/analysis-provider.tsx <module evaluation>","useAnalysis")},48622,a=>{"use strict";a.s(["AnalysisProvider",()=>c,"useAnalysis",()=>d]);var b=a.i(11857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call AnalysisProvider() from the server but AnalysisProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/analysis/analysis-provider.tsx","AnalysisProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useAnalysis() from the server but useAnalysis is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/analysis/analysis-provider.tsx","useAnalysis")},43250,a=>{"use strict";a.i(93109);var b=a.i(48622);a.n(b)},34782,a=>{"use strict";a.s(["AppSidebar",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call AppSidebar() from the server but AppSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/app-sidebar.tsx <module evaluation>","AppSidebar")},4313,a=>{"use strict";a.s(["AppSidebar",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call AppSidebar() from the server but AppSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/app-sidebar.tsx","AppSidebar")},9460,a=>{"use strict";a.i(34782);var b=a.i(4313);a.n(b)},87934,a=>{"use strict";a.s(["SessionActionsProvider",()=>c,"useSessionActions",()=>d]);var b=a.i(11857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call SessionActionsProvider() from the server but SessionActionsProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/recording/session-actions.tsx <module evaluation>","SessionActionsProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useSessionActions() from the server but useSessionActions is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/recording/session-actions.tsx <module evaluation>","useSessionActions")},58581,a=>{"use strict";a.s(["SessionActionsProvider",()=>c,"useSessionActions",()=>d]);var b=a.i(11857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call SessionActionsProvider() from the server but SessionActionsProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/recording/session-actions.tsx","SessionActionsProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useSessionActions() from the server but useSessionActions is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/recording/session-actions.tsx","useSessionActions")},7499,a=>{"use strict";a.i(87934);var b=a.i(58581);a.n(b)},87187,a=>{"use strict";a.s(["WorkspaceProvider",()=>c,"useWorkspace",()=>d]);var b=a.i(11857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call WorkspaceProvider() from the server but WorkspaceProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/workspace/workspace-provider.tsx <module evaluation>","WorkspaceProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useWorkspace() from the server but useWorkspace is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/workspace/workspace-provider.tsx <module evaluation>","useWorkspace")},89298,a=>{"use strict";a.s(["WorkspaceProvider",()=>c,"useWorkspace",()=>d]);var b=a.i(11857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call WorkspaceProvider() from the server but WorkspaceProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/workspace/workspace-provider.tsx","WorkspaceProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useWorkspace() from the server but useWorkspace is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/workspace/workspace-provider.tsx","useWorkspace")},83029,a=>{"use strict";a.i(87187);var b=a.i(89298);a.n(b)},85784,a=>{"use strict";var b=a.i(7997),c=a.i(43250),d=a.i(9460),e=a.i(7499),f=a.i(74412),g=a.i(83029);a.s(["default",0,function({children:a}){return(0,b.jsx)(g.WorkspaceProvider,{children:(0,b.jsx)(f.SidebarProvider,{className:"h-svh",style:{"--sidebar-width":"var(--app-sidebar-width)"},children:(0,b.jsx)(c.AnalysisProvider,{children:(0,b.jsxs)(e.SessionActionsProvider,{children:[(0,b.jsx)(d.AppSidebar,{}),(0,b.jsx)(f.SidebarInset,{className:"m-2! overflow-hidden rounded-xl border border-border shadow-xs!",children:a})]})})})})}])},93240,a=>{a.n(a.i(85784))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_19oqe9t._.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ui/sidebar.tsx/__nextjs-internal-proxy.mjs","../../../../src/components/analysis/analysis-provider.tsx/__nextjs-internal-proxy.mjs","../../../../src/components/app-sidebar.tsx/__nextjs-internal-proxy.mjs","../../../../src/components/recording/session-actions.tsx/__nextjs-internal-proxy.mjs","../../../../src/components/workspace/workspace-provider.tsx/__nextjs-internal-proxy.mjs","../../../../src/app/%28app%29/layout.tsx"],"sourcesContent":["// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const Sidebar = registerClientReference(\n function() { throw new Error(\"Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"Sidebar\",\n);\nexport const SidebarContent = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarContent() from the server but SidebarContent is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarContent\",\n);\nexport const SidebarFooter = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarFooter() from the server but SidebarFooter is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarFooter\",\n);\nexport const SidebarGroup = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarGroup() from the server but SidebarGroup is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarGroup\",\n);\nexport const SidebarGroupAction = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarGroupAction() from the server but SidebarGroupAction is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarGroupAction\",\n);\nexport const SidebarGroupContent = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarGroupContent() from the server but SidebarGroupContent is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarGroupContent\",\n);\nexport const SidebarGroupLabel = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarGroupLabel() from the server but SidebarGroupLabel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarGroupLabel\",\n);\nexport const SidebarHeader = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarHeader() from the server but SidebarHeader is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarHeader\",\n);\nexport const SidebarInput = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarInput() from the server but SidebarInput is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarInput\",\n);\nexport const SidebarInset = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarInset() from the server but SidebarInset is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarInset\",\n);\nexport const SidebarMenu = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarMenu() from the server but SidebarMenu is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarMenu\",\n);\nexport const SidebarMenuAction = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarMenuAction() from the server but SidebarMenuAction is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarMenuAction\",\n);\nexport const SidebarMenuBadge = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarMenuBadge() from the server but SidebarMenuBadge is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarMenuBadge\",\n);\nexport const SidebarMenuButton = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarMenuButton() from the server but SidebarMenuButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarMenuButton\",\n);\nexport const SidebarMenuItem = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarMenuItem() from the server but SidebarMenuItem is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarMenuItem\",\n);\nexport const SidebarMenuSkeleton = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarMenuSkeleton() from the server but SidebarMenuSkeleton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarMenuSkeleton\",\n);\nexport const SidebarMenuSub = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarMenuSub() from the server but SidebarMenuSub is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarMenuSub\",\n);\nexport const SidebarMenuSubButton = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarMenuSubButton() from the server but SidebarMenuSubButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarMenuSubButton\",\n);\nexport const SidebarMenuSubItem = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarMenuSubItem() from the server but SidebarMenuSubItem is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarMenuSubItem\",\n);\nexport const SidebarProvider = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarProvider() from the server but SidebarProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarProvider\",\n);\nexport const SidebarRail = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarRail() from the server but SidebarRail is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarRail\",\n);\nexport const SidebarSeparator = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarSeparator() from the server but SidebarSeparator is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarSeparator\",\n);\nexport const SidebarTrigger = registerClientReference(\n function() { throw new Error(\"Attempted to call SidebarTrigger() from the server but SidebarTrigger is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"SidebarTrigger\",\n);\nexport const useSidebar = registerClientReference(\n function() { throw new Error(\"Attempted to call useSidebar() from the server but useSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/ui/sidebar.tsx\",\n \"useSidebar\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const AnalysisProvider = registerClientReference(\n function() { throw new Error(\"Attempted to call AnalysisProvider() from the server but AnalysisProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/analysis/analysis-provider.tsx\",\n \"AnalysisProvider\",\n);\nexport const useAnalysis = registerClientReference(\n function() { throw new Error(\"Attempted to call useAnalysis() from the server but useAnalysis is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/analysis/analysis-provider.tsx\",\n \"useAnalysis\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const AppSidebar = registerClientReference(\n function() { throw new Error(\"Attempted to call AppSidebar() from the server but AppSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/app-sidebar.tsx\",\n \"AppSidebar\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const SessionActionsProvider = registerClientReference(\n function() { throw new Error(\"Attempted to call SessionActionsProvider() from the server but SessionActionsProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/recording/session-actions.tsx\",\n \"SessionActionsProvider\",\n);\nexport const useSessionActions = registerClientReference(\n function() { throw new Error(\"Attempted to call useSessionActions() from the server but useSessionActions is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/recording/session-actions.tsx\",\n \"useSessionActions\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const WorkspaceProvider = registerClientReference(\n function() { throw new Error(\"Attempted to call WorkspaceProvider() from the server but WorkspaceProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/workspace/workspace-provider.tsx\",\n \"WorkspaceProvider\",\n);\nexport const useWorkspace = registerClientReference(\n function() { throw new Error(\"Attempted to call useWorkspace() from the server but useWorkspace is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/components/workspace/workspace-provider.tsx\",\n \"useWorkspace\",\n);\n","import type { CSSProperties } from \"react\";\n\nimport { AnalysisProvider } from \"@/components/analysis/analysis-provider\";\nimport { AppSidebar } from \"@/components/app-sidebar\";\nimport { SessionActionsProvider } from \"@/components/recording/session-actions\";\nimport { SidebarInset, SidebarProvider } from \"@/components/ui/sidebar\";\nimport { WorkspaceProvider } from \"@/components/workspace/workspace-provider\";\n\n// The base app shell: sidebar + main area, structure only (TASK-2).\n// `--sidebar-width` is driven from globals.css per breakpoint (240px ≥1200,\n// 200px 768–1200) via a var() reference so the responsive cascade wins over\n// the literal the provider would otherwise inline.\nexport default function AppLayout({\n children,\n}: Readonly<{\n children: React.ReactNode;\n}>) {\n return (\n // WorkspaceProvider gates the shell: until a workspace is ready it renders\n // the onboarding / re-grant / unavailable screen instead of the sidebar +\n // content below (TASK-15).\n <WorkspaceProvider>\n <SidebarProvider\n className=\"h-svh\"\n style={{ \"--sidebar-width\": \"var(--app-sidebar-width)\" } as CSSProperties}\n >\n {/* Analysis state lives above the router so a run survives session\n navigation and shows in the sidebar + session view (TASK-42). It sits\n ABOVE SessionActionsProvider so the record flow can auto-start an\n analysis the moment a recording is saved. */}\n <AnalysisProvider>\n {/* Owns the single recorder + import flow, so both the sidebar and the\n empty state trigger the same flows (TASK-40). Inside WorkspaceProvider,\n which only renders here once the workspace is ready — so the recorder\n always has a workspace handle. */}\n <SessionActionsProvider>\n <AppSidebar />\n {/* Floating content panel (Linear \"card on the sidebar background\").\n m-2! overrides the inset variant's ml-0 so it floats on every side\n (incl. a gap from the sidebar and the bottom); a hairline border +\n clipped corners + a lighter shadow than the variant's default. */}\n <SidebarInset className=\"m-2! overflow-hidden rounded-xl border border-border shadow-xs!\">\n {children}\n </SidebarInset>\n </SessionActionsProvider>\n </AnalysisProvider>\n </SidebarProvider>\n </WorkspaceProvider>\n );\n}\n"],"names":["Sidebar","Error","SidebarContent","SidebarFooter","SidebarGroup","SidebarGroupAction","SidebarGroupContent","SidebarGroupLabel","SidebarHeader","SidebarInput","SidebarInset","SidebarMenu","SidebarMenuAction","SidebarMenuBadge","SidebarMenuButton","SidebarMenuItem","SidebarMenuSkeleton","SidebarMenuSub","SidebarMenuSubButton","SidebarMenuSubItem","SidebarProvider","SidebarRail","SidebarSeparator","SidebarTrigger","useSidebar","AnalysisProvider","useAnalysis","AppSidebar","SessionActionsProvider","useSessionActions","WorkspaceProvider","useWorkspace","AppLayout","children","className","style"],"mappings":"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","ignoreList":[0,1,2,3,4]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
module.exports=[18503,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(35112),e=a.i(66548),f=a.i(77445),g=a.i(69712),h=a.i(76013),i=a.i(67534);function j({recState:a,elapsedMs:c}){let d="recording"===a,e="paused"===a,f="inactive"===a?"#666":"#ededed";return(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"12px"},children:[(0,b.jsx)("style",{children:`
|
|
2
|
-
@keyframes vellum-rec-pulse {
|
|
3
|
-
0%, 100% { opacity: 1; transform: scale(1); }
|
|
4
|
-
50% { opacity: 0.35; transform: scale(0.82); }
|
|
5
|
-
}
|
|
6
|
-
.vellum-rec-dot { animation: vellum-rec-pulse 1.6s ease-in-out infinite; }
|
|
7
|
-
`}),(0,b.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:"7px"},children:[(0,b.jsx)("span",{className:d?"vellum-rec-dot":void 0,style:{width:"9px",height:"9px",borderRadius:"50%",background:d?"#ededed":e?"transparent":"#3a3a3a",border:e?"1.5px solid #ededed":"none",boxSizing:"border-box"}}),(0,b.jsx)("span",{style:{fontSize:"11px",fontWeight:600,letterSpacing:"0.08em",color:f,fontFamily:"ui-monospace, 'Geist Mono', monospace"},children:d?"REC":e?"PAUSED":"IDLE"})]}),(0,b.jsx)("span",{style:{fontSize:"22px",fontVariantNumeric:"tabular-nums",fontFamily:"ui-monospace, 'Geist Mono', monospace",letterSpacing:"0.02em",color:f},children:(0,i.formatElapsed)(c)})]})}let k={background:"#ededed",color:"#0a0a0a",border:"none",borderRadius:"6px",padding:"8px 14px",fontSize:"13px",fontWeight:500,cursor:"pointer"},l={...k,background:"#2a2a2a",color:"#666",cursor:"not-allowed"};a.s(["default",0,function(){let[a,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)(!0),[p,q]=(0,c.useState)("inactive"),{elapsedMs:r,setState:s}=(0,i.useRecordingElapsed)(),[t,u]=(0,c.useState)(0),[v,w]=(0,c.useState)(0),[x,y]=(0,c.useState)(null),[z,A]=(0,c.useState)([]),B=(0,c.useRef)(null),C=(0,c.useRef)(null),D=(0,c.useRef)(null),E=(0,c.useRef)(null),F=(0,c.useRef)(null),G=(0,c.useRef)([]),[H,I]=(0,c.useState)(null),[J,K]=(0,c.useState)(null),L=(0,c.useRef)(null),M=(0,c.useRef)(null),N=(0,c.useCallback)(a=>{console.log(`[record-test] ${a}`),A(b=>[...b,a])},[]),O=(0,f.useDocumentPip)({onClose:()=>N("PiP controls closed — recording continues via in-page controls")}),P=(0,c.useCallback)(()=>{F.current&&"inactive"!==F.current.state()&&(F.current.stop(),F.current=null,q("inactive"),s("inactive")),C.current?.getTracks().forEach(a=>a.stop()),D.current?.getTracks().forEach(a=>a.stop()),C.current=null,D.current=null,E.current=null,B.current&&(B.current.srcObject=null),m(!1),O.close(),N("capture stopped — all tracks ended")},[N,s,O]),Q=(0,c.useCallback)(async()=>{try{N("requesting screen via getDisplayMedia (native picker)…");let a=await navigator.mediaDevices.getDisplayMedia({video:{width:{max:2560},height:{max:1440},frameRate:{ideal:30,max:30}},audio:!1});C.current=a;let b=a.getVideoTracks()[0],c=b.getSettings(),d=Math.max(c.width??0,c.height??0),f=Math.min(c.width??0,c.height??0);N(`screen track: ${c.width}\xd7${c.height} @ ${c.frameRate}fps (long ${d}, short ${f}) — cap ≤2560\xd71440: `+(d<=2560&&f<=1440?"OK":"OVER CAP")),N("requesting microphone via getUserMedia (on by default)…");let g=await navigator.mediaDevices.getUserMedia({audio:!0,video:!1});D.current=g;let h=g.getAudioTracks()[0];h.enabled=n,N(`mic track: "${h.label}" enabled=${h.enabled}`);let i=new MediaStream([...a.getVideoTracks(),...g.getAudioTracks()]);E.current=i,N(`combined stream: ${i.getVideoTracks().length} video + ${i.getAudioTracks().length} audio track`),N(`MediaRecorder.isTypeSupported("${e.VELLUM_MIME}") = ${MediaRecorder.isTypeSupported(e.VELLUM_MIME)}`),B.current&&(B.current.srcObject=i),b.addEventListener("ended",()=>{N("screen track ended (native Stop sharing) — cleaning up"),P()}),m(!0)}catch(c){let a=c instanceof Error?c.name:"Unknown",b=c instanceof Error?c.message:String(c);N(`capture failed: ${a} — ${b}`),P()}},[N,n,P]),R=(0,c.useCallback)(()=>{let a=!n,b=D.current?.getAudioTracks()[0];b&&(b.enabled=a),N(`mic ${a?"ON":"OFF"}${b?` (track.enabled=${a})`:" — no active track yet"}`),o(a)},[N,n]),S=(0,c.useCallback)(async()=>{try{let a=await (0,h.pickWorkspaceDirectory)();L.current=a,I(a.name),N(`workspace folder chosen: "${a.name}" (read+write granted)`)}catch(b){let a=b instanceof Error?b.name:"Unknown";if("AbortError"===a)return void N("folder pick cancelled");N(`folder pick failed: ${a}`)}},[N]),T=(0,c.useCallback)(async()=>{let a=E.current;if(!a)return void N("cannot record — no active capture");G.current=[],u(0),w(0),K(null),y(a=>(a&&URL.revokeObjectURL(a),null));let b=L.current;if(b)try{let a=await (0,h.createRecordingSink)(b,new Date);M.current=a,K(a.relativePath),N(`streaming to disk → ${a.relativePath} (committed on Stop)`)}catch(b){let a=b instanceof Error?b.message:String(b);N(`failed to open disk sink: ${a} — recording in-memory only`),M.current=null}else M.current=null,N("no folder chosen — recording in-memory only (Choose folder to stream to disk)");try{let b=(0,e.createRecorder)({stream:a,onChunk:a=>{G.current.push(a),u(a=>a+1),w(b=>b+a.size),M.current&&M.current.write(a).catch(a=>{let b=a instanceof Error?a.message:String(a);N(`disk write failed: ${b}`)}),N(`chunk #${G.current.length}: ${a.size} bytes${M.current?" → disk":""}`)},onError:a=>N(`recorder error: ${a.name} — ${a.message}`)});F.current=b,b.start(),q("recording"),s("recording"),N(`recording started — mime=${e.VELLUM_MIME}, timeslice=${e.VELLUM_TIMESLICE_MS}ms`)}catch(b){let a=b instanceof Error?b.message:String(b);N(`failed to start recorder: ${a}`)}},[N,s]),U=(0,c.useCallback)(()=>{let a=F.current;a&&("recording"===a.state()?(a.pause(),q("paused"),s("paused"),N("recording paused")):"paused"===a.state()&&(a.resume(),q("recording"),s("recording"),N("recording resumed")))},[N,s]),V=(0,c.useCallback)(async()=>{let a=F.current;if(!a)return;await a.stop(),F.current=null,q("inactive"),s("inactive");let b=M.current;if(b){try{await b.close(),N(`disk file committed → ${b.relativePath}`)}catch(b){let a=b instanceof Error?b.message:String(b);N(`failed to commit disk file: ${a}`)}M.current=null}let c=new Blob(G.current,{type:e.VELLUM_MIME});y(URL.createObjectURL(c)),N(`recording stopped — assembled ${G.current.length} chunks → ${c.size} bytes, type="${c.type}"`),O.close()},[N,s,O]),W=(0,c.useCallback)(async()=>{try{await O.open({width:320,height:72}),N("PiP controls opened — floats above all windows, works when tab is unfocused")}catch(b){let a=b instanceof Error?b.message:String(b);N(`failed to open PiP controls: ${a} — use the in-page controls`)}},[N,O]),X=a&&"inactive"===p;return(0,b.jsxs)("main",{style:{minHeight:"100vh",background:"#0a0a0a",color:"#ededed",fontFamily:"ui-sans-serif, system-ui, sans-serif",padding:"32px",display:"flex",flexDirection:"column",gap:"16px",maxWidth:"880px",margin:"0 auto"},children:[(0,b.jsxs)("header",{children:[(0,b.jsx)("h1",{style:{fontSize:"15px",fontWeight:600,margin:0},children:"TASK-10 · TASK-11 · capture + record test"}),(0,b.jsx)("p",{style:{fontSize:"13px",color:"#888",margin:"4px 0 0"},children:"screen + mic → MediaStream → MediaRecorder (VP9/Opus, ~2.5 Mbps, chunked). Not product UI."})]}),(0,b.jsxs)("div",{style:{display:"flex",gap:"8px",alignItems:"center",flexWrap:"wrap"},children:[a?(0,b.jsx)("button",{onClick:P,style:k,children:"Stop capture"}):(0,b.jsx)("button",{onClick:Q,style:k,children:"Start capture"}),(0,b.jsxs)("label",{style:{display:"flex",gap:"6px",alignItems:"center",fontSize:"13px",color:"#bbb"},children:[(0,b.jsx)("input",{type:"checkbox",checked:n,onChange:R}),"Microphone ",n?"on":"off"]}),(0,b.jsx)("span",{style:{width:"1px",height:"20px",background:"#2a2a2a"}}),(0,b.jsx)("button",{onClick:S,style:k,children:"Choose folder"}),(0,b.jsx)("span",{style:{fontSize:"12px",color:"#888",fontFamily:"ui-monospace, monospace"},children:H?`folder: ${H}`:"no folder — in-memory only"}),(0,b.jsx)("span",{style:{width:"1px",height:"20px",background:"#2a2a2a"}}),(0,b.jsx)("button",{onClick:T,disabled:!X,style:X?k:l,children:"● Record"}),(0,b.jsx)("button",{onClick:U,disabled:"inactive"===p,style:"inactive"===p?l:k,children:"paused"===p?"Resume":"Pause"}),(0,b.jsx)("button",{onClick:V,disabled:"inactive"===p,style:"inactive"===p?l:k,children:"Stop recording"}),(0,b.jsxs)("span",{style:{fontSize:"12px",color:"#888",fontFamily:"ui-monospace, monospace"},children:[t," chunks · ",(v/1024).toFixed(0)," KB",J?` \xb7 → ${J}`:""]})]}),(0,b.jsx)("div",{style:{display:"flex",gap:"8px",alignItems:"center"},children:O.isSupported?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{onClick:W,disabled:!a||null!==O.pipWindow,style:a&&null===O.pipWindow?k:l,children:"Pop out controls"}),(0,b.jsx)("span",{style:{fontSize:"12px",color:"#888",fontFamily:"ui-monospace, monospace"},children:O.pipWindow?"controls floating in PiP window":"always-on-top widget — works when this tab is unfocused"})]}):(0,b.jsx)("span",{style:{fontSize:"12px",color:"#888"},children:"Document Picture-in-Picture unavailable in this browser — in-page controls only (Chromium required)."})}),(0,b.jsx)(j,{recState:p,elapsedMs:r}),(0,b.jsx)("video",{ref:B,autoPlay:!0,muted:!0,playsInline:!0,style:{width:"100%",aspectRatio:"16 / 9",background:"#111",borderRadius:"6px",border:"1px solid #222"}}),x&&(0,b.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"8px"},children:[(0,b.jsxs)("p",{style:{fontSize:"12px",color:"#888",margin:0,fontFamily:"ui-monospace, monospace"},children:["recorded playback (",(v/1024).toFixed(0)," KB):"]}),(0,b.jsx)("video",{src:x,controls:!0,playsInline:!0,style:{width:"100%",aspectRatio:"16 / 9",background:"#111",borderRadius:"6px",border:"1px solid #222"}}),(0,b.jsx)("a",{href:x,download:"vellum-record-test.webm",style:{...k,width:"fit-content",textDecoration:"none"},children:"Download .webm"})]}),(0,b.jsx)("pre",{style:{fontFamily:"ui-monospace, 'Geist Mono', monospace",fontSize:"12px",lineHeight:1.6,color:"#9a9a9a",background:"#0f0f0f",border:"1px solid #1d1d1d",borderRadius:"6px",padding:"12px",margin:0,whiteSpace:"pre-wrap",minHeight:"120px"},children:0===z.length?"// console log mirror — press Start capture":z.map((a,b)=>`${b+1} ${a}`).join("\n")}),O.pipWindow&&(0,d.createPortal)((0,b.jsx)(g.PipRecorderControls,{recState:p,elapsedMs:r,micEnabled:n,onPauseResume:U,onStop:V,onToggleMic:R}),O.pipWindow.document.body)]})}])}];
|
|
8
|
-
|
|
9
|
-
//# sourceMappingURL=src_app_record-test_page_tsx_08-2bld._.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/app/record-test/page.tsx"],"sourcesContent":["\"use client\";\n\n// TASK-10 + TASK-11 — minimal capture + record test page (not product UI).\n//\n// TASK-10 proved we can build ONE combined MediaStream of screen video + mic\n// audio, capped at 1440p-class resolution, mic toggleable.\n//\n// TASK-11 wraps that stream in MediaRecorder (lib/recording/recorder.ts):\n// VP9/Opus WebM, ~2.5 Mbps, chunked via timeslice. Chunks arrive through the\n// `onChunk` seam (what TASK-12 will stream to disk); here we collect them only\n// to assemble a Blob, play it back, and download it for ffprobe verification.\n\nimport { useCallback, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport {\n createRecorder,\n VELLUM_MIME,\n VELLUM_TIMESLICE_MS,\n type RecorderHandle,\n type RecorderState,\n} from \"@/lib/recording/recorder\";\nimport { useDocumentPip } from \"@/hooks/useDocumentPip\";\nimport { PipRecorderControls } from \"@/components/recording/pip-recorder-controls\";\nimport {\n createRecordingSink,\n pickWorkspaceDirectory,\n type RecordingSink,\n} from \"@/lib/filesystem/recording-sink\";\nimport { useRecordingElapsed, formatElapsed } from \"@/hooks/useRecordingElapsed\";\n\n// QHD-class cap. ARCHITECTURE §Recording defaults: \"native resolution, capped at\n// 1440p on the long side\". Chrome downscales the display surface to satisfy these\n// max constraints; we verify the real numbers from track.getSettings() at runtime.\nconst MAX_WIDTH = 2560;\nconst MAX_HEIGHT = 1440;\n\nexport default function RecordTestPage() {\n const [isCapturing, setIsCapturing] = useState(false);\n const [micEnabled, setMicEnabled] = useState(true);\n const [recState, setRecState] = useState<RecorderState>(\"inactive\");\n // Active recording time, paused-aware (TASK-13). `markElapsed` is driven off\n // the same state transitions as setRecState below — see each call site.\n const { elapsedMs, setState: markElapsed } = useRecordingElapsed();\n const [chunkCount, setChunkCount] = useState(0);\n const [totalBytes, setTotalBytes] = useState(0);\n const [recordedUrl, setRecordedUrl] = useState<string | null>(null);\n const [logs, setLogs] = useState<string[]>([]);\n\n const videoElRef = useRef<HTMLVideoElement | null>(null);\n const displayStreamRef = useRef<MediaStream | null>(null);\n const micStreamRef = useRef<MediaStream | null>(null);\n const combinedStreamRef = useRef<MediaStream | null>(null);\n\n const recorderRef = useRef<RecorderHandle | null>(null);\n const chunksRef = useRef<Blob[]>([]);\n\n // TASK-12: the chosen workspace folder and the open disk sink for this recording.\n const [workspaceDirName, setWorkspaceDirName] = useState<string | null>(null);\n const [sinkPath, setSinkPath] = useState<string | null>(null);\n const workspaceDirRef = useRef<FileSystemDirectoryHandle | null>(null);\n const sinkRef = useRef<RecordingSink | null>(null);\n\n const log = useCallback((message: string) => {\n // eslint-disable-next-line no-console -- console output is the verification evidence\n console.log(`[record-test] ${message}`);\n setLogs((prev) => [...prev, message]);\n }, []);\n\n // TASK-16 — floating controls in a Document PiP window (ADR-007). Closing the\n // window only tears down the widget; the recorder keeps running (AC#4).\n const pip = useDocumentPip({\n onClose: () => log(\"PiP controls closed — recording continues via in-page controls\"),\n });\n\n const stopCapture = useCallback(() => {\n // Stop the recorder first so its final chunk flushes before tracks die.\n if (recorderRef.current && recorderRef.current.state() !== \"inactive\") {\n void recorderRef.current.stop();\n recorderRef.current = null;\n setRecState(\"inactive\");\n markElapsed(\"inactive\"); // native \"Stop sharing\" mid-record → freeze timer\n }\n displayStreamRef.current?.getTracks().forEach((t) => t.stop());\n micStreamRef.current?.getTracks().forEach((t) => t.stop());\n displayStreamRef.current = null;\n micStreamRef.current = null;\n combinedStreamRef.current = null;\n if (videoElRef.current) videoElRef.current.srcObject = null;\n setIsCapturing(false);\n pip.close(); // no capture → no controls to float\n log(\"capture stopped — all tracks ended\");\n }, [log, markElapsed, pip]);\n\n const startCapture = useCallback(async () => {\n try {\n log(\"requesting screen via getDisplayMedia (native picker)…\");\n // audio:false → no system-audio checkbox; system audio is out of scope (ADR-003).\n const display = await navigator.mediaDevices.getDisplayMedia({\n video: {\n width: { max: MAX_WIDTH },\n height: { max: MAX_HEIGHT },\n frameRate: { ideal: 30, max: 30 },\n },\n audio: false,\n });\n displayStreamRef.current = display;\n\n const videoTrack = display.getVideoTracks()[0];\n const s = videoTrack.getSettings();\n const longSide = Math.max(s.width ?? 0, s.height ?? 0);\n const shortSide = Math.min(s.width ?? 0, s.height ?? 0);\n log(\n `screen track: ${s.width}×${s.height} @ ${s.frameRate}fps ` +\n `(long ${longSide}, short ${shortSide}) — cap ≤${MAX_WIDTH}×${MAX_HEIGHT}: ` +\n (longSide <= MAX_WIDTH && shortSide <= MAX_HEIGHT ? \"OK\" : \"OVER CAP\"),\n );\n\n log(\"requesting microphone via getUserMedia (on by default)…\");\n const mic = await navigator.mediaDevices.getUserMedia({ audio: true, video: false });\n micStreamRef.current = mic;\n const micTrack = mic.getAudioTracks()[0];\n micTrack.enabled = micEnabled; // honor current toggle state\n log(`mic track: \"${micTrack.label}\" enabled=${micTrack.enabled}`);\n\n // The single combined stream that MediaRecorder (TASK-11) consumes.\n const combined = new MediaStream([\n ...display.getVideoTracks(),\n ...mic.getAudioTracks(),\n ]);\n combinedStreamRef.current = combined;\n log(\n `combined stream: ${combined.getVideoTracks().length} video + ` +\n `${combined.getAudioTracks().length} audio track`,\n );\n\n log(`MediaRecorder.isTypeSupported(\"${VELLUM_MIME}\") = ${MediaRecorder.isTypeSupported(VELLUM_MIME)}`);\n\n if (videoElRef.current) {\n videoElRef.current.srcObject = combined;\n }\n\n // User can stop sharing from the browser's native bar → clean up.\n videoTrack.addEventListener(\"ended\", () => {\n log(\"screen track ended (native Stop sharing) — cleaning up\");\n stopCapture();\n });\n\n setIsCapturing(true);\n } catch (err) {\n // NotAllowedError when the user cancels the picker — expected, not fatal.\n const name = err instanceof Error ? err.name : \"Unknown\";\n const msg = err instanceof Error ? err.message : String(err);\n log(`capture failed: ${name} — ${msg}`);\n stopCapture();\n }\n }, [log, micEnabled, stopCapture]);\n\n const toggleMic = useCallback(() => {\n // Keep side effects OUT of the setState updater: React StrictMode double-invokes\n // updaters in dev to surface impurity, which would double-fire the track flip + log.\n const next = !micEnabled;\n const micTrack = micStreamRef.current?.getAudioTracks()[0];\n if (micTrack) micTrack.enabled = next; // flip, don't stop — toggle without re-prompting\n log(`mic ${next ? \"ON\" : \"OFF\"}${micTrack ? ` (track.enabled=${next})` : \" — no active track yet\"}`);\n setMicEnabled(next);\n }, [log, micEnabled]);\n\n const chooseFolder = useCallback(async () => {\n try {\n const dir = await pickWorkspaceDirectory();\n workspaceDirRef.current = dir;\n setWorkspaceDirName(dir.name);\n log(`workspace folder chosen: \"${dir.name}\" (read+write granted)`);\n } catch (err) {\n const name = err instanceof Error ? err.name : \"Unknown\";\n // AbortError = user dismissed the picker; not a failure.\n if (name === \"AbortError\") {\n log(\"folder pick cancelled\");\n return;\n }\n log(`folder pick failed: ${name}`);\n }\n }, [log]);\n\n const startRecording = useCallback(async () => {\n const stream = combinedStreamRef.current;\n if (!stream) {\n log(\"cannot record — no active capture\");\n return;\n }\n\n // Fresh recording: drop any prior chunks and revoke the old playback URL.\n chunksRef.current = [];\n setChunkCount(0);\n setTotalBytes(0);\n setSinkPath(null);\n setRecordedUrl((prev) => {\n if (prev) URL.revokeObjectURL(prev);\n return null;\n });\n\n // Open the disk sink BEFORE start() so the very first chunk can stream out.\n // No folder chosen → fall back to in-memory only (still a valid record test).\n const workspace = workspaceDirRef.current;\n if (workspace) {\n try {\n const sink = await createRecordingSink(workspace, new Date());\n sinkRef.current = sink;\n setSinkPath(sink.relativePath);\n log(`streaming to disk → ${sink.relativePath} (committed on Stop)`);\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n log(`failed to open disk sink: ${msg} — recording in-memory only`);\n sinkRef.current = null;\n }\n } else {\n sinkRef.current = null;\n log(\"no folder chosen — recording in-memory only (Choose folder to stream to disk)\");\n }\n\n try {\n const recorder = createRecorder({\n stream,\n onChunk: (chunk) => {\n chunksRef.current.push(chunk);\n setChunkCount((n) => n + 1);\n setTotalBytes((b) => b + chunk.size);\n // The TASK-12 path: stream each chunk straight to disk as it arrives.\n // Writes are serialized inside the sink; we fire-and-log on failure.\n if (sinkRef.current) {\n void sinkRef.current.write(chunk).catch((err: unknown) => {\n const msg = err instanceof Error ? err.message : String(err);\n log(`disk write failed: ${msg}`);\n });\n }\n log(`chunk #${chunksRef.current.length}: ${chunk.size} bytes${sinkRef.current ? \" → disk\" : \"\"}`);\n },\n onError: (err) => log(`recorder error: ${err.name} — ${err.message}`),\n });\n recorderRef.current = recorder;\n recorder.start();\n setRecState(\"recording\");\n markElapsed(\"recording\"); // fresh recording → timer resets to 0 and runs\n log(`recording started — mime=${VELLUM_MIME}, timeslice=${VELLUM_TIMESLICE_MS}ms`);\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n log(`failed to start recorder: ${msg}`);\n }\n }, [log, markElapsed]);\n\n const pauseResume = useCallback(() => {\n const recorder = recorderRef.current;\n if (!recorder) return;\n if (recorder.state() === \"recording\") {\n recorder.pause();\n setRecState(\"paused\");\n markElapsed(\"paused\"); // capture stops → timer freezes (no time added)\n log(\"recording paused\");\n } else if (recorder.state() === \"paused\") {\n recorder.resume();\n setRecState(\"recording\");\n markElapsed(\"recording\"); // capture resumes → timer continues\n log(\"recording resumed\");\n }\n }, [log, markElapsed]);\n\n const stopRecording = useCallback(async () => {\n const recorder = recorderRef.current;\n if (!recorder) return;\n await recorder.stop();\n recorderRef.current = null;\n setRecState(\"inactive\");\n markElapsed(\"inactive\"); // stop → close segment, freeze final duration on screen\n\n // Commit the streamed file: drain the write queue, then close the writable\n // so Chromium renames the swap file onto recording.webm.\n const sink = sinkRef.current;\n if (sink) {\n try {\n await sink.close();\n log(`disk file committed → ${sink.relativePath}`);\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n log(`failed to commit disk file: ${msg}`);\n }\n sinkRef.current = null;\n }\n\n // All chunks are in by the time stop() resolves — assemble the WebM for\n // in-page playback (test surface only; disk write above is independent).\n const blob = new Blob(chunksRef.current, { type: VELLUM_MIME });\n const url = URL.createObjectURL(blob);\n setRecordedUrl(url);\n log(\n `recording stopped — assembled ${chunksRef.current.length} chunks → ` +\n `${blob.size} bytes, type=\"${blob.type}\"`,\n );\n\n // Stopping the recording closes the floating widget (AC#4).\n pip.close();\n }, [log, markElapsed, pip]);\n\n // Pop the controls out into the always-on-top PiP window. Must run from this\n // click (user gesture). The widget is rendered via a portal below.\n const popOutControls = useCallback(async () => {\n try {\n // A compact single-row pill. Chromium may override this with the window\n // size the user last left, so the widget is built to center gracefully at\n // any height (verified down to ~36px).\n await pip.open({ width: 320, height: 72 });\n log(\"PiP controls opened — floats above all windows, works when tab is unfocused\");\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n log(`failed to open PiP controls: ${msg} — use the in-page controls`);\n }\n }, [log, pip]);\n\n const canRecord = isCapturing && recState === \"inactive\";\n\n return (\n <main\n style={{\n minHeight: \"100vh\",\n background: \"#0a0a0a\",\n color: \"#ededed\",\n fontFamily: \"ui-sans-serif, system-ui, sans-serif\",\n padding: \"32px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"16px\",\n maxWidth: \"880px\",\n margin: \"0 auto\",\n }}\n >\n <header>\n <h1 style={{ fontSize: \"15px\", fontWeight: 600, margin: 0 }}>TASK-10 · TASK-11 · capture + record test</h1>\n <p style={{ fontSize: \"13px\", color: \"#888\", margin: \"4px 0 0\" }}>\n screen + mic → MediaStream → MediaRecorder (VP9/Opus, ~2.5 Mbps, chunked). Not product UI.\n </p>\n </header>\n\n <div style={{ display: \"flex\", gap: \"8px\", alignItems: \"center\", flexWrap: \"wrap\" }}>\n {!isCapturing ? (\n <button onClick={startCapture} style={btnStyle}>\n Start capture\n </button>\n ) : (\n <button onClick={stopCapture} style={btnStyle}>\n Stop capture\n </button>\n )}\n <label style={{ display: \"flex\", gap: \"6px\", alignItems: \"center\", fontSize: \"13px\", color: \"#bbb\" }}>\n <input type=\"checkbox\" checked={micEnabled} onChange={toggleMic} />\n Microphone {micEnabled ? \"on\" : \"off\"}\n </label>\n\n <span style={{ width: \"1px\", height: \"20px\", background: \"#2a2a2a\" }} />\n\n <button onClick={chooseFolder} style={btnStyle}>\n Choose folder\n </button>\n <span style={{ fontSize: \"12px\", color: \"#888\", fontFamily: \"ui-monospace, monospace\" }}>\n {workspaceDirName ? `folder: ${workspaceDirName}` : \"no folder — in-memory only\"}\n </span>\n\n <span style={{ width: \"1px\", height: \"20px\", background: \"#2a2a2a\" }} />\n\n <button onClick={startRecording} disabled={!canRecord} style={canRecord ? btnStyle : btnDisabledStyle}>\n ● Record\n </button>\n <button\n onClick={pauseResume}\n disabled={recState === \"inactive\"}\n style={recState === \"inactive\" ? btnDisabledStyle : btnStyle}\n >\n {recState === \"paused\" ? \"Resume\" : \"Pause\"}\n </button>\n <button\n onClick={stopRecording}\n disabled={recState === \"inactive\"}\n style={recState === \"inactive\" ? btnDisabledStyle : btnStyle}\n >\n Stop recording\n </button>\n\n <span style={{ fontSize: \"12px\", color: \"#888\", fontFamily: \"ui-monospace, monospace\" }}>\n {chunkCount} chunks · {(totalBytes / 1024).toFixed(0)} KB\n {sinkPath ? ` · → ${sinkPath}` : \"\"}\n </span>\n </div>\n\n {/* TASK-16 — pop the controls into an always-on-top PiP window (ADR-007).\n Chromium-only; where unavailable, the in-page controls above still work\n (AC#5). Disabled until there's an active capture to control. */}\n <div style={{ display: \"flex\", gap: \"8px\", alignItems: \"center\" }}>\n {pip.isSupported ? (\n <>\n <button\n onClick={popOutControls}\n disabled={!isCapturing || pip.pipWindow !== null}\n style={!isCapturing || pip.pipWindow !== null ? btnDisabledStyle : btnStyle}\n >\n Pop out controls\n </button>\n <span style={{ fontSize: \"12px\", color: \"#888\", fontFamily: \"ui-monospace, monospace\" }}>\n {pip.pipWindow\n ? \"controls floating in PiP window\"\n : \"always-on-top widget — works when this tab is unfocused\"}\n </span>\n </>\n ) : (\n <span style={{ fontSize: \"12px\", color: \"#888\" }}>\n Document Picture-in-Picture unavailable in this browser — in-page controls only (Chromium required).\n </span>\n )}\n </div>\n\n {/* REC indicator + elapsed timer (TASK-13). Reflects the recorder's real\n state; the timer counts active recording time only (paused freezes). */}\n <RecIndicator recState={recState} elapsedMs={elapsedMs} />\n\n <video\n ref={videoElRef}\n autoPlay\n muted\n playsInline\n style={{ width: \"100%\", aspectRatio: \"16 / 9\", background: \"#111\", borderRadius: \"6px\", border: \"1px solid #222\" }}\n />\n\n {recordedUrl && (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"8px\" }}>\n <p style={{ fontSize: \"12px\", color: \"#888\", margin: 0, fontFamily: \"ui-monospace, monospace\" }}>\n recorded playback ({(totalBytes / 1024).toFixed(0)} KB):\n </p>\n <video\n src={recordedUrl}\n controls\n playsInline\n style={{ width: \"100%\", aspectRatio: \"16 / 9\", background: \"#111\", borderRadius: \"6px\", border: \"1px solid #222\" }}\n />\n <a href={recordedUrl} download=\"vellum-record-test.webm\" style={{ ...btnStyle, width: \"fit-content\", textDecoration: \"none\" }}>\n Download .webm\n </a>\n </div>\n )}\n\n <pre\n style={{\n fontFamily: \"ui-monospace, 'Geist Mono', monospace\",\n fontSize: \"12px\",\n lineHeight: 1.6,\n color: \"#9a9a9a\",\n background: \"#0f0f0f\",\n border: \"1px solid #1d1d1d\",\n borderRadius: \"6px\",\n padding: \"12px\",\n margin: 0,\n whiteSpace: \"pre-wrap\",\n minHeight: \"120px\",\n }}\n >\n {logs.length === 0 ? \"// console log mirror — press Start capture\" : logs.map((l, i) => `${i + 1} ${l}`).join(\"\\n\")}\n </pre>\n\n {/* The floating widget lives in the PiP window's document but stays in\n this React tree — so it reads the same recorder state and drives the\n same handlers as the in-page controls (AC#3, TASK-16). */}\n {pip.pipWindow &&\n createPortal(\n <PipRecorderControls\n recState={recState}\n elapsedMs={elapsedMs}\n micEnabled={micEnabled}\n onPauseResume={pauseResume}\n onStop={stopRecording}\n onToggleMic={toggleMic}\n />,\n pip.pipWindow.document.body,\n )}\n </main>\n );\n}\n\n// Visual recorder-state readout: a state dot + label + the elapsed timer.\n// recording → bright pulsing dot; paused → static hollow ring; inactive → dim.\n// Monochrome per ADR-004; timer in Geist Mono with tabular figures so digits\n// don't jitter. The pulse is a calm ~1.6s breathe (ambient loop, not an enter\n// animation) and animates only opacity+transform, never `all` (ADR-005).\nfunction RecIndicator({ recState, elapsedMs }: { recState: RecorderState; elapsedMs: number }) {\n const isRecording = recState === \"recording\";\n const isPaused = recState === \"paused\";\n\n const dotColor = isRecording ? \"#ededed\" : isPaused ? \"transparent\" : \"#3a3a3a\";\n const dotBorder = isPaused ? \"1.5px solid #ededed\" : \"none\";\n const label = isRecording ? \"REC\" : isPaused ? \"PAUSED\" : \"IDLE\";\n const fg = recState === \"inactive\" ? \"#666\" : \"#ededed\";\n\n return (\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"12px\" }}>\n <style>{`\n @keyframes vellum-rec-pulse {\n 0%, 100% { opacity: 1; transform: scale(1); }\n 50% { opacity: 0.35; transform: scale(0.82); }\n }\n .vellum-rec-dot { animation: vellum-rec-pulse 1.6s ease-in-out infinite; }\n `}</style>\n <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: \"7px\" }}>\n <span\n className={isRecording ? \"vellum-rec-dot\" : undefined}\n style={{\n width: \"9px\",\n height: \"9px\",\n borderRadius: \"50%\",\n background: dotColor,\n border: dotBorder,\n boxSizing: \"border-box\",\n }}\n />\n <span\n style={{\n fontSize: \"11px\",\n fontWeight: 600,\n letterSpacing: \"0.08em\",\n color: fg,\n fontFamily: \"ui-monospace, 'Geist Mono', monospace\",\n }}\n >\n {label}\n </span>\n </span>\n <span\n style={{\n fontSize: \"22px\",\n fontVariantNumeric: \"tabular-nums\",\n fontFamily: \"ui-monospace, 'Geist Mono', monospace\",\n letterSpacing: \"0.02em\",\n color: fg,\n }}\n >\n {formatElapsed(elapsedMs)}\n </span>\n </div>\n );\n}\n\nconst btnStyle: React.CSSProperties = {\n background: \"#ededed\",\n color: \"#0a0a0a\",\n border: \"none\",\n borderRadius: \"6px\",\n padding: \"8px 14px\",\n fontSize: \"13px\",\n fontWeight: 500,\n cursor: \"pointer\",\n};\n\nconst btnDisabledStyle: React.CSSProperties = {\n ...btnStyle,\n background: \"#2a2a2a\",\n color: \"#666\",\n cursor: \"not-allowed\",\n};\n"],"names":["MAX_WIDTH","MAX_HEIGHT","RecordTestPage","isCapturing","setIsCapturing","micEnabled","setMicEnabled","recState","setRecState","elapsedMs","setState","markElapsed","chunkCount","setChunkCount","totalBytes","setTotalBytes","recordedUrl","setRecordedUrl","logs","setLogs","videoElRef","displayStreamRef","micStreamRef","combinedStreamRef","recorderRef","chunksRef","workspaceDirName","setWorkspaceDirName","sinkPath","setSinkPath","workspaceDirRef","sinkRef","log","message","console","prev","pip","onClose","stopCapture","current","state","stop","getTracks","forEach","t","srcObject","close","startCapture","display","navigator","mediaDevices","getDisplayMedia","video","width","max","height","frameRate","ideal","audio","videoTrack","getVideoTracks","s","getSettings","longSide","Math","shortSide","min","mic","getUserMedia","micTrack","getAudioTracks","enabled","label","combined","MediaStream","length","MediaRecorder","isTypeSupported","addEventListener","err","name","Error","msg","String","toggleMic","next","chooseFolder","dir","startRecording","stream","URL","revokeObjectURL","workspace","sink","Date","relativePath","recorder","onChunk","chunk","push","n","b","size","write","catch","onError","start","pauseResume","pause","resume","stopRecording","blob","Blob","type","url","createObjectURL","popOutControls","open","canRecord","style","minHeight","background","color","fontFamily","padding","flexDirection","gap","maxWidth","margin","fontSize","fontWeight","alignItems","flexWrap","onClick","btnStyle","checked","onChange","disabled","btnDisabledStyle","toFixed","isSupported","pipWindow","RecIndicator","ref","autoPlay","muted","playsInline","aspectRatio","borderRadius","border","src","controls","href","download","textDecoration","lineHeight","whiteSpace","map","l","i","join","onPauseResume","onStop","onToggleMic","document","body","isRecording","isPaused","dotColor","dotBorder","fg","className","undefined","boxSizing","letterSpacing","fontVariantNumeric","cursor"],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[81059,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(64831);let e=(0,d.default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);var f=a.i(74215),g=a.i(85602),h=a.i(75160),i=a.i(69387),j=a.i(99570),k=a.i(85259);function l(){let{startImport:a,importing:c}=(0,i.useSessionActions)();return(0,b.jsxs)(k.Tooltip,{children:[(0,b.jsx)(k.TooltipTrigger,{render:(0,b.jsx)(j.Button,{variant:"outline",size:"icon",onClick:a,disabled:c,"aria-label":"Import video",className:"bg-background dark:bg-background"}),children:c?(0,b.jsx)(h.Loader2,{className:"animate-spin",strokeWidth:1.5}):(0,b.jsx)(g.Import,{strokeWidth:1.5})}),(0,b.jsx)(k.TooltipContent,{children:"Import video"})]})}var m=a.i(40990),n=a.i(20917),o=a.i(49140);let p=(0,d.default)("picture-in-picture-2",[["path",{d:"M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4",key:"daa4of"}],["rect",{width:"10",height:"7",x:"12",y:"13",rx:"2",key:"1nb8gs"}]]);var q=a.i(38835),r=a.i(19895),s=a.i(86446),t=a.i(67534),u=a.i(68114);function v(){let{startRecording:a,recordingActive:c,recording:d}=(0,i.useSessionActions)();return c?(0,b.jsx)(w,{phase:d.phase,elapsedMs:d.elapsedMs,micEnabled:d.micEnabled,canPopOut:d.canPopOut,onPauseResume:d.pauseResume,onStop:d.stop,onToggleMic:d.toggleMic,onPopOut:d.popOut}):(0,b.jsxs)(j.Button,{onClick:a,className:"w-full",children:[(0,b.jsx)(s.Video,{strokeWidth:1.5}),"New recording"]})}function w({phase:a,elapsedMs:c,micEnabled:d,canPopOut:e,onPauseResume:f,onStop:g,onToggleMic:h,onPopOut:i}){let k="recording"===a,l="paused"===a;return(0,b.jsxs)("div",{className:"flex flex-col gap-2.5 rounded-lg border border-border bg-card p-2.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(x,{isRecording:k,isPaused:l}),(0,b.jsx)("span",{className:"font-mono text-[11px] font-semibold tracking-wider text-foreground",children:k?"REC":"PAUSED"}),(0,b.jsx)("span",{className:"ml-auto font-mono text-xs tabular-nums text-foreground",children:(0,t.formatElapsed)(c)})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)(j.Button,{variant:"outline",size:"icon-sm",onClick:h,"aria-label":d?"Mute microphone":"Unmute microphone",className:(0,u.cn)(!d&&"text-muted-foreground"),children:d?(0,b.jsx)(m.Mic,{strokeWidth:1.5}):(0,b.jsx)(n.MicOff,{strokeWidth:1.5})}),(0,b.jsx)(j.Button,{variant:"outline",size:"icon-sm",onClick:f,"aria-label":l?"Resume recording":"Pause recording",children:l?(0,b.jsx)(q.Play,{strokeWidth:1.5}):(0,b.jsx)(o.Pause,{strokeWidth:1.5})}),e&&(0,b.jsx)(j.Button,{variant:"outline",size:"icon-sm",onClick:i,"aria-label":"Pop out floating controls",children:(0,b.jsx)(p,{strokeWidth:1.5})}),(0,b.jsxs)(j.Button,{size:"sm",onClick:g,className:"ml-auto",children:[(0,b.jsx)(r.Square,{fill:"currentColor",strokeWidth:2}),"Stop"]})]})]})}function x({isRecording:a,isPaused:c}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("style",{children:"@keyframes vellum-rec-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.82)}}.vellum-rec-dot{animation:vellum-rec-pulse 1.6s ease-in-out infinite}"}),(0,b.jsx)("span",{className:(0,u.cn)("size-2 shrink-0 rounded-full",a&&"vellum-rec-dot bg-foreground",c&&"border-[1.5px] border-foreground")})]})}var y=a.i(40210),z=a.i(38246),A=a.i(50944);let B=(0,d.default)("circle-dashed",[["path",{d:"M10.1 2.182a10 10 0 0 1 3.8 0",key:"5ilxe3"}],["path",{d:"M13.9 21.818a10 10 0 0 1-3.8 0",key:"11zvb9"}],["path",{d:"M17.609 3.721a10 10 0 0 1 2.69 2.7",key:"1iw5b2"}],["path",{d:"M2.182 13.9a10 10 0 0 1 0-3.8",key:"c0bmvh"}],["path",{d:"M20.279 17.609a10 10 0 0 1-2.7 2.69",key:"1ruxm7"}],["path",{d:"M21.818 10.1a10 10 0 0 1 0 3.8",key:"qkgqxc"}],["path",{d:"M3.721 6.391a10 10 0 0 1 2.7-2.69",key:"1mcia2"}],["path",{d:"M6.391 20.279a10 10 0 0 1-2.69-2.7",key:"1fvljs"}]]),C=(0,d.default)("film",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 3v18",key:"bbkbws"}],["path",{d:"M3 7.5h4",key:"zfgn84"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 16.5h4",key:"1230mu"}],["path",{d:"M17 3v18",key:"in4fa5"}],["path",{d:"M17 7.5h4",key:"myr1c1"}],["path",{d:"M17 16.5h4",key:"go4c1d"}]]);var D=a.i(44272),E=a.i(27036),F=a.i(89133),G=a.i(92649),H=a.i(71879),I=a.i(85191);async function J(a){let b=[];for await(let c of a.values()){if("directory"!==c.kind)continue;let a=await K(c);a&&b.push(a)}return b.sort((a,b)=>b.lastModified-a.lastModified),b}async function K(a){let b,c=await N(a,"tasks.json");if(!c)return M(a);try{b=await c.getFile()}catch{return null}let d=b.lastModified,[e,f,g,h]=await Promise.all([(0,G.findRecording)(a),N(a,"report.md"),L(b),(0,H.readOverrideName)(a)]);return{name:a.name,displayName:(0,I.sessionDisplayName)({override:h,suggested:g,folderName:a.name}),lastModified:d,incomplete:!e||!f,unanalyzed:!1}}async function L(a){try{let b=JSON.parse(await a.text());if(b&&"object"==typeof b&&"suggested_name"in b){let a=b.suggested_name;if("string"==typeof a&&a.trim().length>0)return a}return null}catch{return null}}async function M(a){let b,c=await (0,G.findRecording)(a);if(!c)return null;try{b=await c.handle.getFile()}catch{return null}if(0===b.size)return null;let d=await (0,H.readOverrideName)(a);return{name:a.name,displayName:(0,I.sessionDisplayName)({override:d,suggested:null,folderName:a.name}),lastModified:b.lastModified,incomplete:!1,unanalyzed:!0}}async function N(a,b){try{return await a.getFileHandle(b)}catch(a){if(a instanceof DOMException&&"NotFoundError"===a.name)return null;throw a}}var O=a.i(47474),P=a.i(88621);function Q({query:a=""}){let d=function(){let{handle:a,sessionsNonce:b}=(0,F.useWorkspace)(),[d,e]=(0,c.useState)({status:"loading"});return(0,c.useEffect)(()=>{let b=!1;return J(a).then(a=>{b||e({status:"ready",sessions:a})}).catch(()=>{b||e({status:"error"})}),()=>{b=!0}},[a,b]),d}();if("loading"===d.status)return(0,b.jsx)(P.SidebarMenu,{children:[0,1,2].map(a=>(0,b.jsx)(P.SidebarMenuItem,{children:(0,b.jsx)(P.SidebarMenuSkeleton,{showIcon:!0})},a))});if("error"===d.status)return(0,b.jsx)("p",{className:"px-2 py-1.5 text-xs text-muted-foreground",children:"Couldn't read this workspace."});if(0===d.sessions.length)return(0,b.jsx)("p",{className:"px-2 py-1.5 text-xs text-muted-foreground",children:"No sessions yet"});let e=d.sessions.filter(b=>{let c;return!(c=a.trim().toLowerCase())||b.displayName.toLowerCase().includes(c)});return 0===e.length?(0,b.jsx)("p",{className:"px-2 py-1.5 text-xs text-muted-foreground",children:"No matches"}):(0,b.jsx)(P.SidebarMenu,{children:e.map(a=>(0,b.jsx)(R,{session:a},a.name))})}function R({session:a}){let c=(0,A.usePathname)(),d=`/session/${encodeURIComponent(a.name)}`,{analysis:e}=(0,D.useAnalysis)(),f=e?.name===a.name?e:null,g=f?"Analyzing…":a.unanalyzed?"Unanalyzed":a.incomplete?"Incomplete":"Analyzed";return(0,b.jsx)(P.SidebarMenuItem,{children:(0,b.jsxs)(k.Tooltip,{children:[(0,b.jsxs)(k.TooltipTrigger,{render:(0,b.jsx)(P.SidebarMenuButton,{render:(0,b.jsx)(z.default,{href:d}),isActive:c===d,className:"data-active:bg-[var(--gray-5)] data-active:font-normal data-active:hover:bg-[var(--gray-5)]"}),children:[f?(0,b.jsx)(h.Loader2,{className:"animate-spin",strokeWidth:1.5}):a.unanalyzed||a.incomplete?(0,b.jsx)(B,{className:"text-muted-foreground opacity-80",strokeWidth:1.5}):(0,b.jsx)(C,{className:"text-muted-foreground opacity-80",strokeWidth:1.5}),(0,b.jsx)(E.FadeText,{tooltip:!1,className:"min-w-0 flex-1 text-clip!",children:a.displayName})]}),(0,b.jsxs)(k.TooltipContent,{side:"right",className:"flex max-w-64 flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"truncate text-popover-foreground",children:a.displayName}),a.name!==a.displayName&&(0,b.jsx)("span",{className:"truncate font-mono text-[11px] text-muted-foreground",children:a.name}),(0,b.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:[g," · ",(0,O.formatRelativeTime)(a.lastModified)]})]})]})})}var S=a.i(52562);let T=(0,d.default)("circle-alert",[["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"}]]),U=(0,d.default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);var V=a.i(26766),W=a.i(14574),X=a.i(34550);function Y(){let{handle:a,repickWorkspace:c}=(0,F.useWorkspace)(),d=(0,X.useKeyStatus)();return(0,b.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)($,{state:d}),(0,b.jsxs)(k.Tooltip,{children:[(0,b.jsxs)(k.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:c,className:"group flex items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm text-muted-foreground transition-colors hover:bg-sidebar-accent hover:text-foreground"}),children:[(0,b.jsx)(U,{className:"size-4 shrink-0",strokeWidth:1.5}),(0,b.jsx)("span",{className:"flex-1 truncate",children:a.name}),(0,b.jsx)("span",{className:"shrink-0 pr-0.5 text-xs text-muted-foreground transition-colors group-hover:text-foreground",children:"Change"})]}),(0,b.jsx)(k.TooltipContent,{children:"Change workspace folder"})]})]})}let Z="flex items-center gap-2 rounded-md px-2 py-1.5 text-sm";function $({state:a}){return"ready"!==a.status||a.present?"ready"===a.status&&a.present?"file"===a.source?(0,b.jsx)(aa,{}):(0,b.jsx)(ab,{}):"error"===a.status?(0,b.jsx)(_,{}):(0,b.jsxs)("div",{className:`${Z} text-muted-foreground`,children:[(0,b.jsx)(V.KeyRound,{className:"size-4 shrink-0",strokeWidth:1.5}),(0,b.jsx)("span",{className:"truncate",children:"Checking key…"})]}):(0,b.jsxs)(z.default,{href:"/settings/key",className:`${Z} text-foreground transition-colors hover:bg-sidebar-accent`,children:[(0,b.jsx)(V.KeyRound,{className:"size-4 shrink-0 text-muted-foreground",strokeWidth:1.5}),(0,b.jsx)("span",{className:"truncate",children:"No key — set up"})]})}function _(){return(0,b.jsxs)(k.Tooltip,{children:[(0,b.jsxs)(k.TooltipTrigger,{render:(0,b.jsx)("div",{tabIndex:0,className:`${Z} text-muted-foreground outline-none`}),children:[(0,b.jsx)(V.KeyRound,{className:"size-4 shrink-0",strokeWidth:1.5}),(0,b.jsx)("span",{className:"truncate",children:"Key status unavailable"}),(0,b.jsx)(T,{className:"size-4 shrink-0 text-muted-foreground",strokeWidth:1.5,"aria-hidden":!0})]}),(0,b.jsx)(k.TooltipContent,{children:"Couldn't reach the local server to check the key. It may be starting up — this clears once it responds."})]})}function aa(){let[a,d]=(0,c.useState)(!1),[e,f]=(0,c.useState)(!1);async function g(){f(!0);try{let a=await fetch("/api/key",{method:"DELETE"});if(!a.ok)throw Error(`delete ${a.status}`)}catch{f(!1),d(!1);return}(0,X.notifyKeyChanged)()}return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:`${Z} group text-muted-foreground transition-colors hover:bg-sidebar-accent`,children:[(0,b.jsxs)(z.default,{href:"/settings/key",className:"flex min-w-0 items-center gap-2 transition-colors group-hover:text-foreground",children:[(0,b.jsx)(V.KeyRound,{className:"size-4 shrink-0",strokeWidth:1.5}),(0,b.jsx)("span",{className:"truncate",children:"Key configured"}),(0,b.jsx)(S.Check,{className:"size-4 shrink-0 text-green-500",strokeWidth:2.5,"aria-hidden":!0})]}),(0,b.jsx)("button",{type:"button",onClick:()=>d(!0),className:"ml-auto shrink-0 pr-0.5 text-xs text-muted-foreground opacity-0 transition-[color,opacity] duration-150 ease-out group-hover:text-foreground group-hover:opacity-100 focus-visible:opacity-100",children:"Remove"})]}),(0,b.jsx)(W.Dialog,{open:a,onOpenChange:a=>!e&&d(a),children:(0,b.jsxs)(W.DialogContent,{className:"sm:max-w-sm",children:[(0,b.jsxs)(W.DialogHeader,{children:[(0,b.jsx)(W.DialogTitle,{children:"Remove API key?"}),(0,b.jsxs)(W.DialogDescription,{children:["This clears the key saved in ",(0,b.jsx)("code",{children:"~/.vellum/.env"}),". Analysis won't run until you add one again. You can set a new key any time from the sidebar."]})]}),(0,b.jsxs)(W.DialogFooter,{children:[(0,b.jsx)(W.DialogClose,{render:(0,b.jsx)(j.Button,{variant:"outline",disabled:e}),children:"Cancel"}),(0,b.jsx)(j.Button,{onClick:g,disabled:e,children:e?"Removing…":"Remove key"})]})]})})]})}function ab(){return(0,b.jsxs)(k.Tooltip,{children:[(0,b.jsxs)(k.TooltipTrigger,{render:(0,b.jsx)("div",{tabIndex:0,className:`${Z} text-muted-foreground outline-none`}),children:[(0,b.jsx)(V.KeyRound,{className:"size-4 shrink-0",strokeWidth:1.5}),(0,b.jsx)("span",{className:"truncate",children:"Key configured"}),(0,b.jsx)(S.Check,{className:"size-4 shrink-0 text-green-500",strokeWidth:2.5,"aria-hidden":!0})]}),(0,b.jsx)(k.TooltipContent,{children:"Set via an environment variable — remove it where it's defined."})]})}let ac=(0,d.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),ad=(0,d.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);var ae=a.i(13902);let af=[{value:"light",label:"Light",Icon:ad},{value:"dark",label:"Dark",Icon:ac}];function ag(){let{theme:a,setTheme:d}=(0,ae.useTheme)(),[e,f]=(0,c.useState)(!1);return(0,c.useEffect)(()=>f(!0),[]),(0,b.jsx)("div",{className:"flex items-center gap-0.5 rounded-lg border border-border bg-background p-0.5",children:af.map(({value:c,label:f,Icon:g})=>{let h=e&&a===c;return(0,b.jsxs)(k.Tooltip,{children:[(0,b.jsx)(k.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>d(c),"aria-label":f,"aria-pressed":h,className:(0,u.cn)("flex size-6 items-center justify-center rounded-md transition-colors duration-150 ease-out active:opacity-80",h?"bg-secondary text-secondary-foreground":"text-muted-foreground hover:text-foreground")}),children:(0,b.jsx)(g,{className:"size-3.5",strokeWidth:1.5})}),(0,b.jsx)(k.TooltipContent,{side:"top",children:f})]},c)})})}var ah=a.i(66718);a.s(["AppSidebar",0,function(){let[a,d]=(0,c.useState)(""),[g,h]=(0,c.useState)(!1),{recordingActive:j}=(0,i.useSessionActions)();return(0,b.jsxs)(P.Sidebar,{variant:"inset",className:"px-0!",children:[(0,b.jsxs)(P.SidebarHeader,{className:"gap-2 p-0",children:[(0,b.jsxs)("div",{className:"flex h-12 items-center justify-between pl-4 pr-3",children:[(0,b.jsxs)("div",{className:"flex items-end gap-2",children:[(0,b.jsx)(y.Logo,{className:"h-[18px]"}),(0,b.jsx)("span",{className:"relative -top-px font-mono text-[11px] leading-none tabular-nums text-muted-foreground",children:"v1.0"})]}),(0,b.jsx)(ag,{})]}),(0,b.jsx)(P.SidebarMenu,{className:"px-3 pb-1.5",children:(0,b.jsxs)(P.SidebarMenuItem,{className:"flex items-stretch gap-2.5",children:[(0,b.jsx)("div",{className:"min-w-0 flex-1",children:(0,b.jsx)(v,{})}),!j&&(0,b.jsx)(l,{})]})})]}),(0,b.jsx)(P.SidebarContent,{className:"overflow-hidden",children:(0,b.jsxs)(P.SidebarGroup,{className:"min-h-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex shrink-0 items-center justify-between",children:[(0,b.jsx)(P.SidebarGroupLabel,{className:"h-7 text-[0.6875rem] font-medium uppercase tracking-wider text-sidebar-foreground/50",children:"Sessions"}),(0,b.jsxs)(k.Tooltip,{children:[(0,b.jsx)(k.TooltipTrigger,{render:(0,b.jsx)("button",{type:"button",onClick:()=>h(a=>(a&&d(""),!a)),"aria-label":g?"Close search":"Search sessions","aria-expanded":g,className:`mr-1 rounded p-1 transition-colors ${g?"text-foreground":"text-muted-foreground hover:text-foreground"}`}),children:(0,b.jsx)(e,{className:"size-3.5",strokeWidth:1.5})}),(0,b.jsx)(k.TooltipContent,{children:g?"Close search":"Search sessions"})]})]}),g&&(0,b.jsx)("div",{className:"shrink-0 px-1 pb-2",children:(0,b.jsxs)("div",{className:"relative h-8",children:[(0,b.jsx)(e,{className:"pointer-events-none absolute left-2.5 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground",strokeWidth:1.5}),(0,b.jsx)(ah.Input,{type:"text",autoFocus:!0,value:a,onChange:a=>d(a.target.value),placeholder:"Search sessions","aria-label":"Search sessions",className:"h-8 pl-8 pr-8 text-sm"}),a&&(0,b.jsx)("button",{type:"button",onClick:()=>d(""),"aria-label":"Clear search",className:"absolute right-2 top-1/2 flex -translate-y-1/2 items-center rounded p-0.5 text-muted-foreground transition-colors hover:text-foreground",children:(0,b.jsx)(f.X,{className:"size-3.5",strokeWidth:1.5})})]})}),(0,b.jsx)(P.SidebarGroupContent,{className:"min-h-0 flex-1 overflow-y-auto",children:(0,b.jsx)(Q,{query:g?a:""})})]})}),(0,b.jsx)(P.SidebarFooter,{className:"py-0.5",children:(0,b.jsx)(Y,{})})]})}],81059)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_components_app-sidebar_tsx_1xx2k53._.js.map
|