@tempoxyz/id 0.0.0-pr-349.sha-e0d3dfc → 0.0.0-pr-357.sha-e757593
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/README.md +0 -3
- package/dist/app/server/assets/Grant-D_tun0mF.js.map +1 -1
- package/dist/app/server/index.js +4 -4
- package/dist/app/server/index.js.map +1 -1
- package/dist/cli/Cli.d.ts +1 -8
- package/dist/cli/Cli.d.ts.map +1 -1
- package/dist/cli/Cli.js +6 -9
- package/dist/cli/Cli.js.map +1 -1
- package/dist/cli/Session.d.ts +1 -1
- package/dist/cli/Session.d.ts.map +1 -1
- package/dist/cli/Session.js +1 -1
- package/dist/cli/Session.js.map +1 -1
- package/dist/cli/bin.js +4 -23
- package/dist/cli/bin.js.map +1 -1
- package/dist/client/Actions.d.ts +1 -2
- package/dist/client/Actions.d.ts.map +1 -1
- package/dist/client/Actions.js +0 -1
- package/dist/client/Actions.js.map +1 -1
- package/dist/client/Auth.d.ts +1 -1
- package/dist/client/Auth.d.ts.map +1 -1
- package/dist/client/Auth.js.map +1 -1
- package/dist/client/Authorization.d.ts +8 -4
- package/dist/client/Authorization.d.ts.map +1 -1
- package/dist/client/Authorization.js +1 -1
- package/dist/client/Authorization.js.map +1 -1
- package/dist/client/actions/email.d.ts +1 -1
- package/dist/client/actions/email.d.ts.map +1 -1
- package/dist/client/actions/passkey.d.ts +1 -1
- package/dist/client/actions/passkey.d.ts.map +1 -1
- package/dist/client/actions/redirect.d.ts +1 -1
- package/dist/client/actions/redirect.d.ts.map +1 -1
- package/dist/client/internal/api.d.ts +1 -1
- package/dist/client/internal/api.d.ts.map +1 -1
- package/dist/client/internal/api.js +1 -1
- package/dist/client/internal/api.js.map +1 -1
- package/dist/client/viem/Actions.d.ts +3 -3
- package/dist/client/viem/Actions.d.ts.map +1 -1
- package/dist/client/viem/Actions.js +4 -4
- package/dist/client/viem/Actions.js.map +1 -1
- package/dist/client/viem/Decorator.d.ts +2 -2
- package/dist/client/viem/internal/client.d.ts +3 -3
- package/dist/client/viem/internal/client.d.ts.map +1 -1
- package/dist/client/viem/internal/client.js +2 -2
- package/dist/client/viem/internal/client.js.map +1 -1
- package/dist/client.d.ts +0 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +0 -1
- package/dist/client.js.map +1 -1
- package/dist/internal/Apps.d.ts +1 -2
- package/dist/internal/Apps.d.ts.map +1 -1
- package/dist/internal/Apps.js +5 -10
- package/dist/internal/Apps.js.map +1 -1
- package/dist/internal/ErrorResponse.d.ts +0 -20
- package/dist/internal/ErrorResponse.d.ts.map +1 -1
- package/dist/internal/ErrorResponse.js +0 -35
- package/dist/internal/ErrorResponse.js.map +1 -1
- package/dist/internal/RequestId.d.ts +1 -7
- package/dist/internal/RequestId.d.ts.map +1 -1
- package/dist/internal/RequestId.js.map +1 -1
- package/dist/internal/Timing.d.ts +1 -4
- package/dist/internal/Timing.d.ts.map +1 -1
- package/dist/internal/Timing.js.map +1 -1
- package/package.json +1 -7
- package/src/cli/Cli.ts +5 -13
- package/src/cli/Session.ts +2 -2
- package/src/cli/bin.ts +4 -26
- package/src/client/Actions.ts +1 -2
- package/src/client/Auth.ts +0 -4
- package/src/client/Authorization.ts +8 -4
- package/src/client/actions/email.ts +1 -1
- package/src/client/actions/passkey.ts +1 -1
- package/src/client/actions/redirect.ts +1 -1
- package/src/client/internal/api.ts +2 -2
- package/src/client/viem/Actions.ts +5 -5
- package/src/client/viem/Decorator.ts +2 -2
- package/src/client/viem/internal/client.ts +5 -5
- package/src/client.ts +0 -1
- package/src/internal/Apps.ts +4 -17
- package/src/internal/ErrorResponse.ts +0 -41
- package/src/internal/OpenApi.ts +7 -57
- package/src/internal/RequestId.ts +2 -8
- package/src/internal/Timing.ts +1 -4
- package/src/types/app.d.ts +0 -14
- package/dist/Admin.d.ts +0 -79
- package/dist/Admin.d.ts.map +0 -1
- package/dist/Admin.js +0 -93
- package/dist/Admin.js.map +0 -1
- package/dist/admin/Env.d.ts +0 -68
- package/dist/admin/Env.d.ts.map +0 -1
- package/dist/admin/Env.js +0 -2
- package/dist/admin/Env.js.map +0 -1
- package/dist/admin/app/client/.assetsignore +0 -2
- package/dist/admin/app/client/assets/Client-BrjXsLWn.js +0 -2
- package/dist/admin/app/client/assets/Client-DdghQm8N.css +0 -1
- package/dist/admin/app/client/assets/GeistMono-Variable-BRXCGrxA.woff2 +0 -0
- package/dist/admin/app/client/assets/Inter-cyrillic-e3OmmzmJ.woff2 +0 -0
- package/dist/admin/app/client/assets/Inter-cyrillic-ext-DOWZeO4Q.woff2 +0 -0
- package/dist/admin/app/client/assets/Inter-greek-BD3ujQlX.woff2 +0 -0
- package/dist/admin/app/client/assets/Inter-greek-ext-CXEwbus4.woff2 +0 -0
- package/dist/admin/app/client/assets/Inter-latin-BDFm4vTb.woff2 +0 -0
- package/dist/admin/app/client/assets/Inter-latin-ext-E7a9JEPe.woff2 +0 -0
- package/dist/admin/app/client/assets/Inter-symbols-DEch7Rxr.woff2 +0 -0
- package/dist/admin/app/client/assets/Inter-vietnamese-Bg9723vR.woff2 +0 -0
- package/dist/admin/app/client/assets/___dev-EY7r7Loc.css +0 -1
- package/dist/admin/app/client/assets/___dev.sign-in-ClQvgAau.js +0 -1
- package/dist/admin/app/client/assets/index-Cbo1RPkb.css +0 -1
- package/dist/admin/app/client/assets/index-DAKRgvN1.js +0 -13
- package/dist/admin/app/client/assets/reset-co-CHrff.css +0 -1
- package/dist/admin/app/client/assets/rolldown-runtime-WkwZ5CU-.js +0 -1
- package/dist/admin/app/client/assets/routes-BEUY7mCO.css +0 -1
- package/dist/admin/app/client/assets/routes-DM0o3oBQ.js +0 -1
- package/dist/admin/app/client/assets/shadowDom-DMRd3g4s.js +0 -1
- package/dist/admin/app/server/.vite/manifest.json +0 -359
- package/dist/admin/app/server/assets/Client-D4wNQeJd.js +0 -3
- package/dist/admin/app/server/assets/Client-D4wNQeJd.js.map +0 -1
- package/dist/admin/app/server/assets/GeistMono-Variable-BRXCGrxA.woff2 +0 -0
- package/dist/admin/app/server/assets/Inter-cyrillic-e3OmmzmJ.woff2 +0 -0
- package/dist/admin/app/server/assets/Inter-cyrillic-ext-DOWZeO4Q.woff2 +0 -0
- package/dist/admin/app/server/assets/Inter-greek-BD3ujQlX.woff2 +0 -0
- package/dist/admin/app/server/assets/Inter-greek-ext-CXEwbus4.woff2 +0 -0
- package/dist/admin/app/server/assets/Inter-latin-BDFm4vTb.woff2 +0 -0
- package/dist/admin/app/server/assets/Inter-latin-ext-E7a9JEPe.woff2 +0 -0
- package/dist/admin/app/server/assets/Inter-symbols-DEch7Rxr.woff2 +0 -0
- package/dist/admin/app/server/assets/Inter-vietnamese-Bg9723vR.woff2 +0 -0
- package/dist/admin/app/server/assets/___dev-EY7r7Loc.css +0 -1
- package/dist/admin/app/server/assets/___dev.sign-in-DUf_NQPU.js +0 -2
- package/dist/admin/app/server/assets/___dev.sign-in-DUf_NQPU.js.map +0 -1
- package/dist/admin/app/server/assets/_tanstack-start-manifest_v-C8ysuxtN.js +0 -1
- package/dist/admin/app/server/assets/arktype-aI7TBD0R-D1R3Byo5.js +0 -2
- package/dist/admin/app/server/assets/arktype-aI7TBD0R-D1R3Byo5.js.map +0 -1
- package/dist/admin/app/server/assets/async-local-storage-DUe1175v.js +0 -2
- package/dist/admin/app/server/assets/async-local-storage-DUe1175v.js.map +0 -1
- package/dist/admin/app/server/assets/convert-BIC8n32x.js +0 -2
- package/dist/admin/app/server/assets/convert-BIC8n32x.js.map +0 -1
- package/dist/admin/app/server/assets/cookie-BOmgOR30.js +0 -2
- package/dist/admin/app/server/assets/cookie-BOmgOR30.js.map +0 -1
- package/dist/admin/app/server/assets/cookie-DdghQm8N.css +0 -1
- package/dist/admin/app/server/assets/default-u_dwuiYb-D6RfpcBr.js +0 -2
- package/dist/admin/app/server/assets/default-u_dwuiYb-D6RfpcBr.js.map +0 -1
- package/dist/admin/app/server/assets/effect-QlVUlMFu-Bs0PyUhN.js +0 -2
- package/dist/admin/app/server/assets/effect-QlVUlMFu-Bs0PyUhN.js.map +0 -1
- package/dist/admin/app/server/assets/empty-plugin-adapters-BaGcmrjC.js +0 -2
- package/dist/admin/app/server/assets/empty-plugin-adapters-BaGcmrjC.js.map +0 -1
- package/dist/admin/app/server/assets/esm-C6SW--yt.js +0 -4
- package/dist/admin/app/server/assets/esm-C6SW--yt.js.map +0 -1
- package/dist/admin/app/server/assets/index-CLddUTqr-ComTZ4bq.js +0 -2
- package/dist/admin/app/server/assets/index-CLddUTqr-ComTZ4bq.js.map +0 -1
- package/dist/admin/app/server/assets/index-DZEfthgZ-BxnrPO8Q.js +0 -2
- package/dist/admin/app/server/assets/index-DZEfthgZ-BxnrPO8Q.js.map +0 -1
- package/dist/admin/app/server/assets/reset-co-CHrff.css +0 -1
- package/dist/admin/app/server/assets/rolldown-runtime-BWaJ3C7D.js +0 -1
- package/dist/admin/app/server/assets/router-Cbo1RPkb.css +0 -1
- package/dist/admin/app/server/assets/router-Dqhrc0PX.js +0 -2
- package/dist/admin/app/server/assets/router-Dqhrc0PX.js.map +0 -1
- package/dist/admin/app/server/assets/routes-BEUY7mCO.css +0 -1
- package/dist/admin/app/server/assets/routes-CxbX5JNu.js +0 -2
- package/dist/admin/app/server/assets/routes-CxbX5JNu.js.map +0 -1
- package/dist/admin/app/server/assets/server-tS2GlQUk.js +0 -77
- package/dist/admin/app/server/assets/server-tS2GlQUk.js.map +0 -1
- package/dist/admin/app/server/assets/shadowDom-CvS1DzWo.js +0 -2
- package/dist/admin/app/server/assets/shadowDom-CvS1DzWo.js.map +0 -1
- package/dist/admin/app/server/assets/standard-json-DY77efq0.js +0 -2
- package/dist/admin/app/server/assets/standard-json-DY77efq0.js.map +0 -1
- package/dist/admin/app/server/assets/standard-json-ig2t0wRt.js +0 -2
- package/dist/admin/app/server/assets/standard-json-ig2t0wRt.js.map +0 -1
- package/dist/admin/app/server/assets/standard-json-t-LNckA6.js +0 -2
- package/dist/admin/app/server/assets/standard-json-t-LNckA6.js.map +0 -1
- package/dist/admin/app/server/assets/standard-openapi-CONmVRl8.js +0 -2
- package/dist/admin/app/server/assets/standard-openapi-CONmVRl8.js.map +0 -1
- package/dist/admin/app/server/assets/start-C63VetBp.js +0 -2
- package/dist/admin/app/server/assets/start-C63VetBp.js.map +0 -1
- package/dist/admin/app/server/assets/sury-CWZTCd75-DP9TvBrs.js +0 -2
- package/dist/admin/app/server/assets/sury-CWZTCd75-DP9TvBrs.js.map +0 -1
- package/dist/admin/app/server/assets/typebox-Dei93FPO-D_lCVdAz.js +0 -2
- package/dist/admin/app/server/assets/typebox-Dei93FPO-D_lCVdAz.js.map +0 -1
- package/dist/admin/app/server/assets/valibot--1zFm7rT-BKGsXNQL.js +0 -2
- package/dist/admin/app/server/assets/valibot--1zFm7rT-BKGsXNQL.js.map +0 -1
- package/dist/admin/app/server/assets/valibot-D_HTw1Gn-BNmO9Liy.js +0 -2
- package/dist/admin/app/server/assets/valibot-D_HTw1Gn-BNmO9Liy.js.map +0 -1
- package/dist/admin/app/server/assets/worker-entry-DcGlpZzO.js +0 -93
- package/dist/admin/app/server/assets/worker-entry-DcGlpZzO.js.map +0 -1
- package/dist/admin/app/server/assets/zod-Bwrt9trS-DuX8BREF.js +0 -2
- package/dist/admin/app/server/assets/zod-Bwrt9trS-DuX8BREF.js.map +0 -1
- package/dist/admin/app/server/assets/zod-DSgpEGAE-BF9ADewr.js +0 -2
- package/dist/admin/app/server/assets/zod-DSgpEGAE-BF9ADewr.js.map +0 -1
- package/dist/admin/app/server/index.js +0 -1
- package/dist/admin/app/server/wrangler.json +0 -1
- package/dist/admin/dev/Session.d.ts +0 -135
- package/dist/admin/dev/Session.d.ts.map +0 -1
- package/dist/admin/dev/Session.js +0 -160
- package/dist/admin/dev/Session.js.map +0 -1
- package/dist/admin/index.d.ts +0 -15
- package/dist/admin/index.d.ts.map +0 -1
- package/dist/admin/index.js +0 -15
- package/dist/admin/index.js.map +0 -1
- package/dist/cli/AdminApi.d.ts +0 -46
- package/dist/cli/AdminApi.d.ts.map +0 -1
- package/dist/cli/AdminApi.js +0 -82
- package/dist/cli/AdminApi.js.map +0 -1
- package/dist/client/Admin.d.ts +0 -71
- package/dist/client/Admin.d.ts.map +0 -1
- package/dist/client/Admin.js +0 -29
- package/dist/client/Admin.js.map +0 -1
- package/dist/client/actions/admin/apps.d.ts +0 -142
- package/dist/client/actions/admin/apps.d.ts.map +0 -1
- package/dist/client/actions/admin/apps.js +0 -133
- package/dist/client/actions/admin/apps.js.map +0 -1
- package/dist/client/actions/admin.d.ts +0 -6
- package/dist/client/actions/admin.d.ts.map +0 -1
- package/dist/client/actions/admin.js +0 -6
- package/dist/client/actions/admin.js.map +0 -1
- package/src/Admin.ts +0 -184
- package/src/admin/Api.ts +0 -253
- package/src/admin/Env.ts +0 -73
- package/src/admin/app/.void/env.d.ts +0 -17
- package/src/admin/app/.void/preview-deploy-config.json +0 -1
- package/src/admin/app/.void/tanstack-start-trigger-wrapper.ts +0 -12
- package/src/admin/app/.void/tsconfig.json +0 -5
- package/src/admin/app/.void-wrangler.jsonc +0 -1
- package/src/admin/app/components/CodeInput.tsx +0 -153
- package/src/admin/app/dist/client/.assetsignore +0 -2
- package/src/admin/app/dist/client/assets/Client-BrjXsLWn.js +0 -2
- package/src/admin/app/dist/client/assets/Client-DdghQm8N.css +0 -1
- package/src/admin/app/dist/client/assets/GeistMono-Variable-BRXCGrxA.woff2 +0 -0
- package/src/admin/app/dist/client/assets/Inter-cyrillic-e3OmmzmJ.woff2 +0 -0
- package/src/admin/app/dist/client/assets/Inter-cyrillic-ext-DOWZeO4Q.woff2 +0 -0
- package/src/admin/app/dist/client/assets/Inter-greek-BD3ujQlX.woff2 +0 -0
- package/src/admin/app/dist/client/assets/Inter-greek-ext-CXEwbus4.woff2 +0 -0
- package/src/admin/app/dist/client/assets/Inter-latin-BDFm4vTb.woff2 +0 -0
- package/src/admin/app/dist/client/assets/Inter-latin-ext-E7a9JEPe.woff2 +0 -0
- package/src/admin/app/dist/client/assets/Inter-symbols-DEch7Rxr.woff2 +0 -0
- package/src/admin/app/dist/client/assets/Inter-vietnamese-Bg9723vR.woff2 +0 -0
- package/src/admin/app/dist/client/assets/___dev-EY7r7Loc.css +0 -1
- package/src/admin/app/dist/client/assets/___dev.sign-in-ClQvgAau.js +0 -1
- package/src/admin/app/dist/client/assets/index-Cbo1RPkb.css +0 -1
- package/src/admin/app/dist/client/assets/index-DAKRgvN1.js +0 -13
- package/src/admin/app/dist/client/assets/reset-co-CHrff.css +0 -1
- package/src/admin/app/dist/client/assets/rolldown-runtime-WkwZ5CU-.js +0 -1
- package/src/admin/app/dist/client/assets/routes-BEUY7mCO.css +0 -1
- package/src/admin/app/dist/client/assets/routes-DM0o3oBQ.js +0 -1
- package/src/admin/app/dist/client/assets/shadowDom-DMRd3g4s.js +0 -1
- package/src/admin/app/dist/server/.vite/manifest.json +0 -359
- package/src/admin/app/dist/server/assets/Client-D4wNQeJd.js +0 -3
- package/src/admin/app/dist/server/assets/Client-D4wNQeJd.js.map +0 -1
- package/src/admin/app/dist/server/assets/GeistMono-Variable-BRXCGrxA.woff2 +0 -0
- package/src/admin/app/dist/server/assets/Inter-cyrillic-e3OmmzmJ.woff2 +0 -0
- package/src/admin/app/dist/server/assets/Inter-cyrillic-ext-DOWZeO4Q.woff2 +0 -0
- package/src/admin/app/dist/server/assets/Inter-greek-BD3ujQlX.woff2 +0 -0
- package/src/admin/app/dist/server/assets/Inter-greek-ext-CXEwbus4.woff2 +0 -0
- package/src/admin/app/dist/server/assets/Inter-latin-BDFm4vTb.woff2 +0 -0
- package/src/admin/app/dist/server/assets/Inter-latin-ext-E7a9JEPe.woff2 +0 -0
- package/src/admin/app/dist/server/assets/Inter-symbols-DEch7Rxr.woff2 +0 -0
- package/src/admin/app/dist/server/assets/Inter-vietnamese-Bg9723vR.woff2 +0 -0
- package/src/admin/app/dist/server/assets/___dev-EY7r7Loc.css +0 -1
- package/src/admin/app/dist/server/assets/___dev.sign-in-DUf_NQPU.js +0 -2
- package/src/admin/app/dist/server/assets/___dev.sign-in-DUf_NQPU.js.map +0 -1
- package/src/admin/app/dist/server/assets/_tanstack-start-manifest_v-C8ysuxtN.js +0 -1
- package/src/admin/app/dist/server/assets/arktype-aI7TBD0R-D1R3Byo5.js +0 -2
- package/src/admin/app/dist/server/assets/arktype-aI7TBD0R-D1R3Byo5.js.map +0 -1
- package/src/admin/app/dist/server/assets/async-local-storage-DUe1175v.js +0 -2
- package/src/admin/app/dist/server/assets/async-local-storage-DUe1175v.js.map +0 -1
- package/src/admin/app/dist/server/assets/convert-BIC8n32x.js +0 -2
- package/src/admin/app/dist/server/assets/convert-BIC8n32x.js.map +0 -1
- package/src/admin/app/dist/server/assets/cookie-BOmgOR30.js +0 -2
- package/src/admin/app/dist/server/assets/cookie-BOmgOR30.js.map +0 -1
- package/src/admin/app/dist/server/assets/cookie-DdghQm8N.css +0 -1
- package/src/admin/app/dist/server/assets/default-u_dwuiYb-D6RfpcBr.js +0 -2
- package/src/admin/app/dist/server/assets/default-u_dwuiYb-D6RfpcBr.js.map +0 -1
- package/src/admin/app/dist/server/assets/effect-QlVUlMFu-Bs0PyUhN.js +0 -2
- package/src/admin/app/dist/server/assets/effect-QlVUlMFu-Bs0PyUhN.js.map +0 -1
- package/src/admin/app/dist/server/assets/empty-plugin-adapters-BaGcmrjC.js +0 -2
- package/src/admin/app/dist/server/assets/empty-plugin-adapters-BaGcmrjC.js.map +0 -1
- package/src/admin/app/dist/server/assets/esm-C6SW--yt.js +0 -4
- package/src/admin/app/dist/server/assets/esm-C6SW--yt.js.map +0 -1
- package/src/admin/app/dist/server/assets/index-CLddUTqr-ComTZ4bq.js +0 -2
- package/src/admin/app/dist/server/assets/index-CLddUTqr-ComTZ4bq.js.map +0 -1
- package/src/admin/app/dist/server/assets/index-DZEfthgZ-BxnrPO8Q.js +0 -2
- package/src/admin/app/dist/server/assets/index-DZEfthgZ-BxnrPO8Q.js.map +0 -1
- package/src/admin/app/dist/server/assets/reset-co-CHrff.css +0 -1
- package/src/admin/app/dist/server/assets/rolldown-runtime-BWaJ3C7D.js +0 -1
- package/src/admin/app/dist/server/assets/router-Cbo1RPkb.css +0 -1
- package/src/admin/app/dist/server/assets/router-Dqhrc0PX.js +0 -2
- package/src/admin/app/dist/server/assets/router-Dqhrc0PX.js.map +0 -1
- package/src/admin/app/dist/server/assets/routes-BEUY7mCO.css +0 -1
- package/src/admin/app/dist/server/assets/routes-CxbX5JNu.js +0 -2
- package/src/admin/app/dist/server/assets/routes-CxbX5JNu.js.map +0 -1
- package/src/admin/app/dist/server/assets/server-tS2GlQUk.js +0 -77
- package/src/admin/app/dist/server/assets/server-tS2GlQUk.js.map +0 -1
- package/src/admin/app/dist/server/assets/shadowDom-CvS1DzWo.js +0 -2
- package/src/admin/app/dist/server/assets/shadowDom-CvS1DzWo.js.map +0 -1
- package/src/admin/app/dist/server/assets/standard-json-DY77efq0.js +0 -2
- package/src/admin/app/dist/server/assets/standard-json-DY77efq0.js.map +0 -1
- package/src/admin/app/dist/server/assets/standard-json-ig2t0wRt.js +0 -2
- package/src/admin/app/dist/server/assets/standard-json-ig2t0wRt.js.map +0 -1
- package/src/admin/app/dist/server/assets/standard-json-t-LNckA6.js +0 -2
- package/src/admin/app/dist/server/assets/standard-json-t-LNckA6.js.map +0 -1
- package/src/admin/app/dist/server/assets/standard-openapi-CONmVRl8.js +0 -2
- package/src/admin/app/dist/server/assets/standard-openapi-CONmVRl8.js.map +0 -1
- package/src/admin/app/dist/server/assets/start-C63VetBp.js +0 -2
- package/src/admin/app/dist/server/assets/start-C63VetBp.js.map +0 -1
- package/src/admin/app/dist/server/assets/sury-CWZTCd75-DP9TvBrs.js +0 -2
- package/src/admin/app/dist/server/assets/sury-CWZTCd75-DP9TvBrs.js.map +0 -1
- package/src/admin/app/dist/server/assets/typebox-Dei93FPO-D_lCVdAz.js +0 -2
- package/src/admin/app/dist/server/assets/typebox-Dei93FPO-D_lCVdAz.js.map +0 -1
- package/src/admin/app/dist/server/assets/valibot--1zFm7rT-BKGsXNQL.js +0 -2
- package/src/admin/app/dist/server/assets/valibot--1zFm7rT-BKGsXNQL.js.map +0 -1
- package/src/admin/app/dist/server/assets/valibot-D_HTw1Gn-BNmO9Liy.js +0 -2
- package/src/admin/app/dist/server/assets/valibot-D_HTw1Gn-BNmO9Liy.js.map +0 -1
- package/src/admin/app/dist/server/assets/worker-entry-DcGlpZzO.js +0 -93
- package/src/admin/app/dist/server/assets/worker-entry-DcGlpZzO.js.map +0 -1
- package/src/admin/app/dist/server/assets/zod-Bwrt9trS-DuX8BREF.js +0 -2
- package/src/admin/app/dist/server/assets/zod-Bwrt9trS-DuX8BREF.js.map +0 -1
- package/src/admin/app/dist/server/assets/zod-DSgpEGAE-BF9ADewr.js +0 -2
- package/src/admin/app/dist/server/assets/zod-DSgpEGAE-BF9ADewr.js.map +0 -1
- package/src/admin/app/dist/server/index.js +0 -1
- package/src/admin/app/dist/server/wrangler.json +0 -1
- package/src/admin/app/env.ts +0 -11
- package/src/admin/app/lib/Client.ts +0 -38
- package/src/admin/app/package.json +0 -8
- package/src/admin/app/routeTree.gen.ts +0 -86
- package/src/admin/app/router.tsx +0 -19
- package/src/admin/app/routes/[_]dev.sign-in.tsx +0 -93
- package/src/admin/app/routes/__root.tsx +0 -97
- package/src/admin/app/routes/index.tsx +0 -20
- package/src/admin/app/screens/Dashboard.tsx +0 -84
- package/src/admin/app/screens/dev/SignIn.tsx +0 -213
- package/src/admin/app/server.ts +0 -129
- package/src/admin/app/tsconfig.json +0 -7
- package/src/admin/app/vite.config.ts +0 -52
- package/src/admin/app/void.config.ts +0 -17
- package/src/admin/app/zyzz.config.ts +0 -25
- package/src/admin/apps.ts +0 -472
- package/src/admin/dev/Session.ts +0 -332
- package/src/admin/dev/signIn.ts +0 -381
- package/src/admin/index.ts +0 -14
- package/src/admin/session.ts +0 -60
- package/src/cli/AdminApi.ts +0 -134
- package/src/client/Admin.ts +0 -76
- package/src/client/actions/admin/apps.ts +0 -257
- package/src/client/actions/admin.ts +0 -5
- package/src/internal/AdminApps.ts +0 -64
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"router-Dqhrc0PX.js","names":["replaceEqualDeep","functionalUpdate","Route","Fragment","Fragment","isServer","getDefaultState","__zyzzSelection.create","Button","ProgressRootDataAttributes.progressing","ProgressRootDataAttributes.complete","ProgressRootDataAttributes.indeterminate","_jsx","BaseUi.Progress.Root","styles","_jsxs","_jsxs","BaseUi.Button","styles","_jsx","_jsx","styles","Route","reset","useState","ds","vars","createFileRoute","parseResponse","Client","Route","component","lazyRouteComponent","$$splitComponentImporter","loader","Promise","Dashboard","Props","session","create","i","$get","links","home","signOut","login","$$splitComponentImporter","Route","Client.create","createFileRoute","Route","component","lazyRouteComponent","$$splitComponentImporter","IndexRouteImport","rootRouteImport","DevSignInRouteImport","__toESM","__exportAll","require_jsx_runtime","require_react","useRouter","useNavigate","create","create$1","clamp","useRenderElement","vars$1","useButton","useRender","parseResponse","visuallyHidden","create$2","redirect","deepEqual","isDangerousProtocol","getUrlScheme","isModuleNotFoundError","trimPathRight","functionalUpdate$1","createNonReactiveReadonlyStore","removeTrailingSlash","useHydrated","getScriptPreloadAttrs","resolveManifestCssLink","createNonReactiveMutableStore","RouterCore","rootRouteId","appendUniqueUserTags","_getAssetMatches","Outlet","dummyMatchContext","reactUse","matchContext","getAssetCrossOrigin","invariant","escapeHtml","trimPathLeft","cleanPath","getSsrBodyScriptParts","assetMatches","matches","routeScripts","manifestScripts","match","script","attrs","routeScriptAttrs","manifest","asset","composeSsrBodyScripts","initialHydrationScripts","BaseRoute","originalIndex","options","isRoot","path","customId","id","fullPath","children","lazyFn","opts","BaseRootRoute","createReactiveSystem","link","prevDep","sub","dep","nextDep","version","prevSub","newLink","unlink","nextSub","unwatched","propagate","next","stack","flags","isValidLink","notify","subSubs","checkDirty","checkDepth","dirty","update","subs","shallowPropagate","firstSub","hasMultipleSubs","checkLink","queuedEffects","atom","effect","purgeDeps","queuedEffectsLength","depsTail","import_react","useMatch","router","nearestRouteId","routeId","matchStore","useLoaderData","useLoaderDeps","rest","select","useParams","params","useSearch","useRouteContext","import_jsx_runtime","resolveExternalLink","scheme","to","protocolAllowlist","resolveIsActive","currentPath","location","basepath","nextPath","activeOptions","isHydrated","useLinkProps","getServerLinkProps","forwardedRef","host","STATIC_EMPTY_OBJECT","STATIC_ACTIVE_OBJECT","ROUTER_OPTION_KEYS","collectElementProps","props","key","applyLinkState","stateProps","isActive","activeProps","inactiveProps","href","linkDisabled","target","stateStyle","style","stateClassName","className","directExternalLink","hrefOption","getHrefOption","disabled","externalLink","Link","linkProps","ref","areLinkPropsEqual","extraKeys","prev","_key","Route$3","createRoute","RootRoute","createRootRoute","createFileRoute","route","lazyRouteComponent","loadPromise","comp","error","load","importer","res","exportName","err","lazyComp","getStoreFactory","fn","createRouter","Router","noopScriptHandler","setScriptAttrs","value","Asset","innerHTML","Script","dataScript","normSrc","el","typeAttr","nonceAttr","sType","sNonce","preventScriptHoist","buildTagsFromMatches","routeMeta","meta","resultMeta","metaByAttribute","title","i","metas","j","m","json","attribute","nonce","constructedLinks","manifestCssTags","resolvedLink","assetCrossOrigin","preloadLinks","preload","styles","headScripts","tags","useTags","HeadContent","tag","Scripts","renderScripts","parts","scriptWithHoist","scripts","QueryClientContext","useQueryClient","client","queryClient","QueryClientProvider","defaultTimeoutProvider","callback","delay","timeoutId","intervalId","timeoutManager","#provider","provider","systemSetTimeoutZero","isServer$1","noop","functionalUpdate","updater","input","isValidTimeout","timeUntilStale","updatedAt","staleTime","resolveQueryValue","query","matchQuery","filters","queryKey","exact","hashQueryKeyByOptions","partialMatchKey","type","stale","fetchStatus","predicate","matchMutation","mutationKey","mutation","hashKey","status","isPlainObject","val","result","a","b","bKeys","hasOwn","replaceEqualDeep","depth","array","isPlainArray","aSize","bItems","bSize","copy","equalItems","aItem","bItem","v","shallowEqualObjects","hasObjectPrototype","o","objectPrototype","ctor","prot","sleep","resolve","timeout","replaceData","prevData","data","addToEnd","newItems","items","item","max","addToStart","skipToken","ensureQueryFn","fetchOptions","shouldThrowError","throwOnError","addConsumeAwareSignal","consumed","signal","object","getSignal","onCancelled","isServerFn","isServer","Subscribable","listener","focusManager","#setup","onFocus","#cleanup","setup","focused","#focused","isFocused","defaultScheduler","createNotifyManager","queue","transactions","notifyFn","batchNotifyFn","scheduleFn","schedule","flush","originalQueue","args","notifyManager","onlineManager","onlineListener","onOnline","offlineListener","#online","online","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","createRetryer","isRetryCancelled","continueFn","promiseResolve","promiseReject","promise","reject","isResolved","cancel","cancelOptions","config","cancelRetry","continueRetry","canContinue","canStart","pause","continueResolve","run","promiseOrValue","initialPromise","retry","retryDelay","shouldRetry","Removable","#gcTimeout","newGcTime","infiniteQueryBehavior","context","direction","oldPages","oldPageParams","currentPage","fetchFn","cancelled","addSignalProperty","queryFn","fetchPage","param","queryFnContext","previous","page","addTo","maxPages","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pages","lastIndex","pageParams","Query","#abortSignalConsumed","#defaultOptions","#client","#cache","#initialState","getDefaultState$1","#queryType","#retryer","defaultState","successState","newData","#dispatch","observer","x","index","abortController","#revertState","retryer","reducer","action","state","fetchState","newState","dataUpdatedAt","hasData","initialDataUpdatedAt","Mutation","#mutationCache","#observers","getDefaultState","onContinue","mutationFnContext","variables","restored","isPaused","MutationCache","#mutations","#scopes","#mutationId","scope","scopeFor","scopedMutations","firstPendingMutation","defaultedFilters","event","pausedMutations","QueryCache","#queries","queryHash","queries","QueryClient","#queryCache","#queryDefaults","#mutationDefaults","#mountCount","#unsubscribeFocus","#unsubscribeOnline","defaultedOptions","cachedData","queryCache","matched","queriesToRefetch","defaultedCancelOptions","promises","queryData","defaults","queryDefault","Button$1","elementProps","componentProps","nativeButton","buttonRef","getButtonProps","stringifyLocale","locale","cache","getFormatter","optionsString","cachedFormatter","formatter","formatNumber","valueToPercent","min","ProgressRootContext","complete","indeterminate","progressing","progressStateAttributesMapping","ProgressRoot","labelId","setLabelId","percentageValue","clampedValue","formattedValue","defaultAriaValueText","rawPercentage","format","defaultProps","getAriaValueText","contextValue","element","Spinner","attributes","styles$3","external","vars","inline","\"size\"","Button","styles$2","loading","\"shape\"","\"variant\"","\"loading\"","Empty","Actions","styles$1","Description","Icon","Root","Title","reset_default","Route$2","NotFound","Document","Route$1","Route","rootRouteChildren","routeTree","router_exports","getRouter"],"sources":["../../../../../../node_modules/.pnpm/@tanstack+router-core@1.171.34/node_modules/@tanstack/router-core/dist/esm/link.js","../../../../../../node_modules/.pnpm/@tanstack+router-core@1.171.34/node_modules/@tanstack/router-core/dist/esm/ssr/bodyScripts.js","../../../../../../node_modules/.pnpm/@tanstack+router-core@1.171.34/node_modules/@tanstack/router-core/dist/esm/route.js","../../../../../../node_modules/.pnpm/@tanstack+store@0.11.2/node_modules/@tanstack/store/dist/alien.js","../../../../../../node_modules/.pnpm/@tanstack+store@0.11.2/node_modules/@tanstack/store/dist/atom.js","../../../../../../node_modules/.pnpm/@tanstack+react-router@1.170.41_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@tanstack/react-router/dist/esm/useMatch.js","../../../../../../node_modules/.pnpm/@tanstack+react-router@1.170.41_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@tanstack/react-router/dist/esm/useLoaderData.js","../../../../../../node_modules/.pnpm/@tanstack+react-router@1.170.41_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@tanstack/react-router/dist/esm/useLoaderDeps.js","../../../../../../node_modules/.pnpm/@tanstack+react-router@1.170.41_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@tanstack/react-router/dist/esm/useParams.js","../../../../../../node_modules/.pnpm/@tanstack+react-router@1.170.41_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@tanstack/react-router/dist/esm/useSearch.js","../../../../../../node_modules/.pnpm/@tanstack+react-router@1.170.41_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@tanstack/react-router/dist/esm/useRouteContext.js","../../../../../../node_modules/.pnpm/@tanstack+react-router@1.170.41_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@tanstack/react-router/dist/esm/link.js","../../../../../../node_modules/.pnpm/@tanstack+react-router@1.170.41_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@tanstack/react-router/dist/esm/route.js","../../../../../../node_modules/.pnpm/@tanstack+react-router@1.170.41_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@tanstack/react-router/dist/esm/fileRoute.js","../../../../../../node_modules/.pnpm/@tanstack+react-router@1.170.41_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@tanstack/react-router/dist/esm/lazyRouteComponent.js","../../../../../../node_modules/.pnpm/@tanstack+react-router@1.170.41_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@tanstack/react-router/dist/esm/routerStores.js","../../../../../../node_modules/.pnpm/@tanstack+react-router@1.170.41_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@tanstack/react-router/dist/esm/router.js","../../../../../../node_modules/.pnpm/@tanstack+react-router@1.170.41_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@tanstack/react-router/dist/esm/Asset.js","../../../../../../node_modules/.pnpm/@tanstack+react-router@1.170.41_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@tanstack/react-router/dist/esm/headContentUtils.js","../../../../../../node_modules/.pnpm/@tanstack+react-router@1.170.41_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@tanstack/react-router/dist/esm/HeadContent.js","../../../../../../node_modules/.pnpm/@tanstack+react-router@1.170.41_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@tanstack/react-router/dist/esm/Scripts.js","../../../../../../node_modules/.pnpm/@tanstack+react-query@5.104.1_react@19.3.0/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","../../../../../../node_modules/.pnpm/@tanstack+query-core@5.104.1/node_modules/@tanstack/query-core/build/modern/timeoutManager.js","../../../../../../node_modules/.pnpm/@tanstack+query-core@5.104.1/node_modules/@tanstack/query-core/build/modern/utils.js","../../../../../../node_modules/.pnpm/@tanstack+query-core@5.104.1/node_modules/@tanstack/query-core/build/modern/environmentManager.js","../../../../../../node_modules/.pnpm/@tanstack+query-core@5.104.1/node_modules/@tanstack/query-core/build/modern/subscribable.js","../../../../../../node_modules/.pnpm/@tanstack+query-core@5.104.1/node_modules/@tanstack/query-core/build/modern/focusManager.js","../../../../../../node_modules/.pnpm/@tanstack+query-core@5.104.1/node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../../../../../node_modules/.pnpm/@tanstack+query-core@5.104.1/node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../../../../../node_modules/.pnpm/@tanstack+query-core@5.104.1/node_modules/@tanstack/query-core/build/modern/retryer.js","../../../../../../node_modules/.pnpm/@tanstack+query-core@5.104.1/node_modules/@tanstack/query-core/build/modern/removable.js","../../../../../../node_modules/.pnpm/@tanstack+query-core@5.104.1/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../../../../../node_modules/.pnpm/@tanstack+query-core@5.104.1/node_modules/@tanstack/query-core/build/modern/query.js","../../../../../../node_modules/.pnpm/@tanstack+query-core@5.104.1/node_modules/@tanstack/query-core/build/modern/mutation.js","../../../../../../node_modules/.pnpm/@tanstack+query-core@5.104.1/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../../../../../node_modules/.pnpm/@tanstack+query-core@5.104.1/node_modules/@tanstack/query-core/build/modern/queryCache.js","../../../../../../node_modules/.pnpm/@tanstack+query-core@5.104.1/node_modules/@tanstack/query-core/build/modern/queryClient.js","../../../../../../node_modules/.pnpm/@tempoxyz+ds@0.2.6_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react-native@0.86_f564df10a26f3190a3aaf6288ad1f3d1/node_modules/@tempoxyz/ds/dist/web/zyzz.config.js","../../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/button/Button.mjs","../../../../../../node_modules/.pnpm/@base-ui+utils@0.5.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/utils/stringifyLocale.mjs","../../../../../../node_modules/.pnpm/@base-ui+utils@0.5.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/utils/formatNumber.mjs","../../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/utils/valueToPercent.mjs","../../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/progress/root/ProgressRootContext.mjs","../../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/progress/root/ProgressRootDataAttributes.mjs","../../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/progress/root/stateAttributesMapping.mjs","../../../../../../node_modules/.pnpm/@base-ui+react@1.9.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/progress/root/ProgressRoot.mjs","../../../../../../node_modules/.pnpm/@tempoxyz+ds@0.2.6_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react-native@0.86_f564df10a26f3190a3aaf6288ad1f3d1/node_modules/@tempoxyz/ds/dist/web/components/Spinner.js","../../../../../../node_modules/.pnpm/@tempoxyz+ds@0.2.6_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react-native@0.86_f564df10a26f3190a3aaf6288ad1f3d1/node_modules/@tempoxyz/ds/dist/web/components/Button.js","../../../../../../node_modules/.pnpm/@tempoxyz+ds@0.2.6_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react-native@0.86_f564df10a26f3190a3aaf6288ad1f3d1/node_modules/@tempoxyz/ds/dist/web/components/Empty.js","../../../../../../node_modules/.pnpm/zyzz@0.0.38_@babel+core@7.29.7_supports-color@10.2.2__@base-ui+react@1.9.0_@types+react_deffccfdcbf372c8aa35362dae549ba9/node_modules/zyzz/dist/reset.css?url","../../../routes/__root.tsx","../../../routes/index.tsx","../../../routes/[_]dev.sign-in.tsx","../../../routeTree.gen.ts","../../../router.tsx"],"sourcesContent":["//#region src/link.ts\nconst preloadWarning = \"Error preloading route! ☝️\";\n//#endregion\nexport { preloadWarning };\n\n//# sourceMappingURL=link.js.map","import { _getAssetMatches } from \"../load-client.js\";\n//#region src/ssr/bodyScripts.ts\nfunction getSsrBodyScriptParts(matches, manifest, nonce, routeScriptAttrs) {\n\tconst assetMatches = _getAssetMatches(matches);\n\tconst routeScripts = [];\n\tconst manifestScripts = [];\n\tfor (const match of assetMatches) for (const script of Array.isArray(match.scripts) ? match.scripts : []) {\n\t\tif (!script) continue;\n\t\tconst { children, ...attrs } = script;\n\t\trouteScripts.push({\n\t\t\ttag: \"script\",\n\t\t\tattrs: {\n\t\t\t\t...attrs,\n\t\t\t\t...routeScriptAttrs,\n\t\t\t\tnonce\n\t\t\t},\n\t\t\tchildren\n\t\t});\n\t}\n\tif (manifest) for (const match of assetMatches) for (const asset of manifest.routes[match.routeId]?.scripts ?? []) manifestScripts.push({\n\t\ttag: \"script\",\n\t\tattrs: {\n\t\t\t...asset.attrs,\n\t\t\tnonce\n\t\t},\n\t\tchildren: asset.children\n\t});\n\treturn [routeScripts, manifestScripts];\n}\nfunction composeSsrBodyScripts([routeScripts, manifestScripts], initialHydrationScripts) {\n\tif (!initialHydrationScripts) return [...routeScripts, ...manifestScripts];\n\treturn [\n\t\t...initialHydrationScripts.before,\n\t\t...routeScripts,\n\t\t...manifestScripts,\n\t\tinitialHydrationScripts.boundary\n\t];\n}\n//#endregion\nexport { composeSsrBodyScripts, getSsrBodyScriptParts };\n\n//# sourceMappingURL=bodyScripts.js.map","import { invariant } from \"./invariant.js\";\nimport { cleanPath, trimPathLeft, trimPathRight } from \"./path.js\";\nimport { notFound } from \"./not-found.js\";\nimport { rootRouteId } from \"./root.js\";\nimport { redirect } from \"./redirect.js\";\n//#region src/route.ts\nvar BaseRoute = class {\n\tget to() {\n\t\treturn this._to;\n\t}\n\tget id() {\n\t\treturn this._id;\n\t}\n\tget path() {\n\t\treturn this._path;\n\t}\n\tget fullPath() {\n\t\treturn this._fullPath;\n\t}\n\tconstructor(options) {\n\t\tthis.init = (originalIndex) => {\n\t\t\tthis.originalIndex = originalIndex;\n\t\t\tthis._branch = void 0;\n\t\t\tconst options = this.options;\n\t\t\tconst isRoot = !options?.path && !options?.id;\n\t\t\tthis.parentRoute = this.options.getParentRoute?.();\n\t\t\tif (isRoot) this._path = rootRouteId;\n\t\t\telse if (!this.parentRoute) {\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") throw new Error(`Invariant failed: Child Route instances must pass a 'getParentRoute: () => ParentRoute' option that returns a Route instance.`);\n\t\t\t\tinvariant();\n\t\t\t}\n\t\t\tlet path = isRoot ? rootRouteId : options?.path;\n\t\t\tif (path && path !== \"/\") path = trimPathLeft(path);\n\t\t\tconst customId = options?.id || path;\n\t\t\tconst id = isRoot ? rootRouteId : cleanPath((this.parentRoute.id === \"__root__\" ? \"\" : this.parentRoute.id) + \"/\" + (customId ?? \"\"));\n\t\t\tif (path === \"__root__\") path = \"/\";\n\t\t\tconst fullPath = id === \"__root__\" ? \"/\" : path === void 0 ? this.parentRoute.fullPath : cleanPath(this.parentRoute.fullPath + \"/\" + path);\n\t\t\tthis._path = path;\n\t\t\tthis._id = id;\n\t\t\tthis._fullPath = fullPath;\n\t\t\tthis._to = trimPathRight(fullPath);\n\t\t};\n\t\tthis.addChildren = (children) => {\n\t\t\treturn this._addFileChildren(children);\n\t\t};\n\t\tthis._addFileChildren = (children) => {\n\t\t\tif (Array.isArray(children)) this.children = children;\n\t\t\tif (typeof children === \"object\" && children !== null) this.children = Object.values(children);\n\t\t\treturn this;\n\t\t};\n\t\tthis._addFileTypes = () => {\n\t\t\treturn this;\n\t\t};\n\t\tthis.updateLoader = (options) => {\n\t\t\tObject.assign(this.options, options);\n\t\t\treturn this;\n\t\t};\n\t\tthis.update = (options) => {\n\t\t\tObject.assign(this.options, options);\n\t\t\treturn this;\n\t\t};\n\t\tthis.lazy = (lazyFn) => {\n\t\t\tthis.lazyFn = lazyFn;\n\t\t\treturn this;\n\t\t};\n\t\tthis.redirect = (opts) => redirect({\n\t\t\tfrom: this.fullPath,\n\t\t\t...opts\n\t\t});\n\t\tthis.options = options || {};\n\t\tthis.isRoot = !options?.getParentRoute;\n\t\tif (options?.id && options?.path) throw new Error(`Route cannot have both an 'id' and a 'path' option.`);\n\t}\n};\nvar BaseRouteApi = class {\n\tconstructor({ id }) {\n\t\tthis.notFound = (opts) => {\n\t\t\treturn notFound({\n\t\t\t\trouteId: this.id,\n\t\t\t\t...opts\n\t\t\t});\n\t\t};\n\t\tthis.redirect = (opts) => redirect({\n\t\t\tfrom: this.id,\n\t\t\t...opts\n\t\t});\n\t\tthis.id = id;\n\t}\n};\nvar BaseRootRoute = class extends BaseRoute {\n\tconstructor(options) {\n\t\tsuper(options);\n\t}\n};\n//#endregion\nexport { BaseRootRoute, BaseRoute, BaseRouteApi };\n\n//# sourceMappingURL=route.js.map","//#region src/alien.ts\nconst NONE = 0;\nconst MUTABLE = 1;\nconst WATCHING = 2;\nconst RECURSED_CHECK = 4;\nconst RECURSED = 8;\nconst DIRTY = 16;\nconst PENDING = 32;\n/* @__NO_SIDE_EFFECTS__ */\nfunction createReactiveSystem({ update, notify, unwatched }) {\n\treturn {\n\t\tlink,\n\t\tunlink,\n\t\tpropagate,\n\t\tcheckDirty,\n\t\tshallowPropagate\n\t};\n\tfunction link(dep, sub, version) {\n\t\tconst prevDep = sub.depsTail;\n\t\tif (prevDep !== void 0 && prevDep.dep === dep) return;\n\t\tconst nextDep = prevDep !== void 0 ? prevDep.nextDep : sub.deps;\n\t\tif (nextDep !== void 0 && nextDep.dep === dep) {\n\t\t\tnextDep.version = version;\n\t\t\tsub.depsTail = nextDep;\n\t\t\treturn;\n\t\t}\n\t\tconst prevSub = dep.subsTail;\n\t\tif (prevSub !== void 0 && prevSub.version === version && prevSub.sub === sub) return;\n\t\tconst newLink = sub.depsTail = dep.subsTail = {\n\t\t\tversion,\n\t\t\tdep,\n\t\t\tsub,\n\t\t\tprevDep,\n\t\t\tnextDep,\n\t\t\tprevSub,\n\t\t\tnextSub: void 0\n\t\t};\n\t\tif (nextDep !== void 0) nextDep.prevDep = newLink;\n\t\tif (prevDep !== void 0) prevDep.nextDep = newLink;\n\t\telse sub.deps = newLink;\n\t\tif (prevSub !== void 0) prevSub.nextSub = newLink;\n\t\telse dep.subs = newLink;\n\t}\n\tfunction unlink(link, sub = link.sub) {\n\t\tconst dep = link.dep;\n\t\tconst prevDep = link.prevDep;\n\t\tconst nextDep = link.nextDep;\n\t\tconst nextSub = link.nextSub;\n\t\tconst prevSub = link.prevSub;\n\t\tif (nextDep !== void 0) nextDep.prevDep = prevDep;\n\t\telse sub.depsTail = prevDep;\n\t\tif (prevDep !== void 0) prevDep.nextDep = nextDep;\n\t\telse sub.deps = nextDep;\n\t\tif (nextSub !== void 0) nextSub.prevSub = prevSub;\n\t\telse dep.subsTail = prevSub;\n\t\tif (prevSub !== void 0) prevSub.nextSub = nextSub;\n\t\telse if ((dep.subs = nextSub) === void 0) unwatched(dep);\n\t\treturn nextDep;\n\t}\n\tfunction propagate(link) {\n\t\tlet next = link.nextSub;\n\t\tlet stack;\n\t\ttop: do {\n\t\t\tconst sub = link.sub;\n\t\t\tlet flags = sub.flags;\n\t\t\tif (!(flags & 60)) sub.flags = flags | 32;\n\t\t\telse if (!(flags & (4 | 8))) flags = 0;\n\t\t\telse if (!(flags & 4)) sub.flags = flags & ~8 | 32;\n\t\t\telse if (!(flags & (16 | 32)) && isValidLink(link, sub)) {\n\t\t\t\tsub.flags = flags | (8 | 32);\n\t\t\t\tflags &= 1;\n\t\t\t} else flags = 0;\n\t\t\tif (flags & 2) notify(sub);\n\t\t\tif (flags & 1) {\n\t\t\t\tconst subSubs = sub.subs;\n\t\t\t\tif (subSubs !== void 0) {\n\t\t\t\t\tconst nextSub = (link = subSubs).nextSub;\n\t\t\t\t\tif (nextSub !== void 0) {\n\t\t\t\t\t\tstack = {\n\t\t\t\t\t\t\tvalue: next,\n\t\t\t\t\t\t\tprev: stack\n\t\t\t\t\t\t};\n\t\t\t\t\t\tnext = nextSub;\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ((link = next) !== void 0) {\n\t\t\t\tnext = link.nextSub;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\twhile (stack !== void 0) {\n\t\t\t\tlink = stack.value;\n\t\t\t\tstack = stack.prev;\n\t\t\t\tif (link !== void 0) {\n\t\t\t\t\tnext = link.nextSub;\n\t\t\t\t\tcontinue top;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\t} while (true);\n\t}\n\tfunction checkDirty(link, sub) {\n\t\tlet stack;\n\t\tlet checkDepth = 0;\n\t\tlet dirty = false;\n\t\ttop: do {\n\t\t\tconst dep = link.dep;\n\t\t\tconst flags = dep.flags;\n\t\t\tif (sub.flags & 16) dirty = true;\n\t\t\telse if ((flags & (1 | 16)) === (1 | 16)) {\n\t\t\t\tif (update(dep)) {\n\t\t\t\t\tconst subs = dep.subs;\n\t\t\t\t\tif (subs.nextSub !== void 0) shallowPropagate(subs);\n\t\t\t\t\tdirty = true;\n\t\t\t\t}\n\t\t\t} else if ((flags & (1 | 32)) === (1 | 32)) {\n\t\t\t\tif (link.nextSub !== void 0 || link.prevSub !== void 0) stack = {\n\t\t\t\t\tvalue: link,\n\t\t\t\t\tprev: stack\n\t\t\t\t};\n\t\t\t\tlink = dep.deps;\n\t\t\t\tsub = dep;\n\t\t\t\t++checkDepth;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!dirty) {\n\t\t\t\tconst nextDep = link.nextDep;\n\t\t\t\tif (nextDep !== void 0) {\n\t\t\t\t\tlink = nextDep;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\twhile (checkDepth--) {\n\t\t\t\tconst firstSub = sub.subs;\n\t\t\t\tconst hasMultipleSubs = firstSub.nextSub !== void 0;\n\t\t\t\tif (hasMultipleSubs) {\n\t\t\t\t\tlink = stack.value;\n\t\t\t\t\tstack = stack.prev;\n\t\t\t\t} else link = firstSub;\n\t\t\t\tif (dirty) {\n\t\t\t\t\tif (update(sub)) {\n\t\t\t\t\t\tif (hasMultipleSubs) shallowPropagate(firstSub);\n\t\t\t\t\t\tsub = link.sub;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tdirty = false;\n\t\t\t\t} else sub.flags &= ~32;\n\t\t\t\tsub = link.sub;\n\t\t\t\tconst nextDep = link.nextDep;\n\t\t\t\tif (nextDep !== void 0) {\n\t\t\t\t\tlink = nextDep;\n\t\t\t\t\tcontinue top;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn dirty;\n\t\t} while (true);\n\t}\n\tfunction shallowPropagate(link) {\n\t\tdo {\n\t\t\tconst sub = link.sub;\n\t\t\tconst flags = sub.flags;\n\t\t\tif ((flags & (32 | 16)) === 32) {\n\t\t\t\tsub.flags = flags | 16;\n\t\t\t\tif ((flags & (2 | 4)) === 2) notify(sub);\n\t\t\t}\n\t\t} while ((link = link.nextSub) !== void 0);\n\t}\n\tfunction isValidLink(checkLink, sub) {\n\t\tlet link = sub.depsTail;\n\t\twhile (link !== void 0) {\n\t\t\tif (link === checkLink) return true;\n\t\t\tlink = link.prevDep;\n\t\t}\n\t\treturn false;\n\t}\n}\n\n//#endregion\nexport { createReactiveSystem };\n//# sourceMappingURL=alien.js.map","import { createReactiveSystem } from \"./alien.js\";\n\n//#region src/atom.ts\nfunction toObserver(nextHandler, errorHandler, completionHandler) {\n\tconst isObserver = typeof nextHandler === \"object\";\n\tconst self = isObserver ? nextHandler : void 0;\n\treturn {\n\t\tnext: (isObserver ? nextHandler.next : nextHandler)?.bind(self),\n\t\terror: (isObserver ? nextHandler.error : errorHandler)?.bind(self),\n\t\tcomplete: (isObserver ? nextHandler.complete : completionHandler)?.bind(self)\n\t};\n}\nconst queuedEffects = [];\nlet cycle = 0;\nconst { link, unlink, propagate, checkDirty, shallowPropagate } = /* @__PURE__ */ createReactiveSystem({\n\tupdate(atom) {\n\t\treturn atom._update();\n\t},\n\tnotify(effect) {\n\t\tqueuedEffects[queuedEffectsLength++] = effect;\n\t\teffect.flags &= ~2;\n\t},\n\tunwatched(atom) {\n\t\tif (atom.depsTail !== void 0) {\n\t\t\tatom.depsTail = void 0;\n\t\t\tatom.flags = 1 | 16;\n\t\t\tpurgeDeps(atom);\n\t\t}\n\t}\n});\nlet notifyIndex = 0;\nlet queuedEffectsLength = 0;\nlet activeSub;\nlet batchDepth = 0;\nfunction batch(fn) {\n\ttry {\n\t\t++batchDepth;\n\t\tfn();\n\t} finally {\n\t\tif (!--batchDepth) flush();\n\t}\n}\nfunction purgeDeps(sub) {\n\tconst depsTail = sub.depsTail;\n\tlet dep = depsTail !== void 0 ? depsTail.nextDep : sub.deps;\n\twhile (dep !== void 0) dep = unlink(dep, sub);\n}\nfunction flush() {\n\tif (batchDepth > 0) return;\n\twhile (notifyIndex < queuedEffectsLength) {\n\t\tconst effect = queuedEffects[notifyIndex];\n\t\tqueuedEffects[notifyIndex++] = void 0;\n\t\teffect.notify();\n\t}\n\tnotifyIndex = 0;\n\tqueuedEffectsLength = 0;\n}\nfunction createAsyncAtom(getValue, options) {\n\tconst ref = {};\n\tconst atom = createAtom(() => {\n\t\tgetValue().then((data) => {\n\t\t\tconst internalAtom = ref.current;\n\t\t\tif (internalAtom._update({\n\t\t\t\tstatus: \"done\",\n\t\t\t\tdata\n\t\t\t})) {\n\t\t\t\tconst subs = internalAtom.subs;\n\t\t\t\tif (subs !== void 0) {\n\t\t\t\t\tpropagate(subs);\n\t\t\t\t\tshallowPropagate(subs);\n\t\t\t\t\tflush();\n\t\t\t\t}\n\t\t\t}\n\t\t}, (error) => {\n\t\t\tconst internalAtom = ref.current;\n\t\t\tif (internalAtom._update({\n\t\t\t\tstatus: \"error\",\n\t\t\t\terror\n\t\t\t})) {\n\t\t\t\tconst subs = internalAtom.subs;\n\t\t\t\tif (subs !== void 0) {\n\t\t\t\t\tpropagate(subs);\n\t\t\t\t\tshallowPropagate(subs);\n\t\t\t\t\tflush();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn { status: \"pending\" };\n\t}, options);\n\tref.current = atom;\n\treturn atom;\n}\nfunction createAtom(valueOrFn, options) {\n\tconst isComputed = typeof valueOrFn === \"function\";\n\tconst getter = valueOrFn;\n\tconst atom = {\n\t\t_snapshot: isComputed ? void 0 : valueOrFn,\n\t\tsubs: void 0,\n\t\tsubsTail: void 0,\n\t\tdeps: void 0,\n\t\tdepsTail: void 0,\n\t\tflags: isComputed ? 0 : 1,\n\t\tget() {\n\t\t\tif (activeSub !== void 0) link(atom, activeSub, cycle);\n\t\t\treturn atom._snapshot;\n\t\t},\n\t\tsubscribe(observerOrFn) {\n\t\t\tconst obs = toObserver(observerOrFn);\n\t\t\tconst observed = { current: false };\n\t\t\tconst e = effect(() => {\n\t\t\t\tatom.get();\n\t\t\t\tif (!observed.current) observed.current = true;\n\t\t\t\telse {\n\t\t\t\t\tactiveSub = void 0;\n\t\t\t\t\tobs.next?.(atom._snapshot);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn { unsubscribe: () => {\n\t\t\t\te.stop();\n\t\t\t} };\n\t\t},\n\t\t_update(getValue) {\n\t\t\tconst prevSub = activeSub;\n\t\t\tconst compare = options?.compare ?? Object.is;\n\t\t\tif (isComputed) {\n\t\t\t\tactiveSub = atom;\n\t\t\t\t++cycle;\n\t\t\t\tatom.depsTail = void 0;\n\t\t\t} else if (getValue === void 0) return false;\n\t\t\tif (isComputed) atom.flags = 1 | 4;\n\t\t\ttry {\n\t\t\t\tconst oldValue = atom._snapshot;\n\t\t\t\tconst newValue = typeof getValue === \"function\" ? getValue(oldValue) : getValue === void 0 && isComputed ? getter(oldValue) : getValue;\n\t\t\t\tif (oldValue === void 0 || !compare(oldValue, newValue)) {\n\t\t\t\t\tatom._snapshot = newValue;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t} finally {\n\t\t\t\tactiveSub = prevSub;\n\t\t\t\tif (isComputed) atom.flags &= ~4;\n\t\t\t\tpurgeDeps(atom);\n\t\t\t}\n\t\t}\n\t};\n\tif (isComputed) {\n\t\tatom.flags = 1 | 16;\n\t\tatom.get = function() {\n\t\t\tconst flags = atom.flags;\n\t\t\tif (flags & 16 || flags & 32 && checkDirty(atom.deps, atom)) {\n\t\t\t\tif (atom._update()) {\n\t\t\t\t\tconst subs = atom.subs;\n\t\t\t\t\tif (subs !== void 0) shallowPropagate(subs);\n\t\t\t\t}\n\t\t\t} else if (flags & 32) atom.flags = flags & ~32;\n\t\t\tif (activeSub !== void 0) link(atom, activeSub, cycle);\n\t\t\treturn atom._snapshot;\n\t\t};\n\t} else atom.set = function(valueOrFn) {\n\t\tif (atom._update(valueOrFn)) {\n\t\t\tconst subs = atom.subs;\n\t\t\tif (subs !== void 0) {\n\t\t\t\tpropagate(subs);\n\t\t\t\tshallowPropagate(subs);\n\t\t\t\tflush();\n\t\t\t}\n\t\t}\n\t};\n\treturn atom;\n}\nfunction effect(fn) {\n\tconst run = () => {\n\t\tconst prevSub = activeSub;\n\t\tactiveSub = effectObj;\n\t\t++cycle;\n\t\teffectObj.depsTail = void 0;\n\t\teffectObj.flags = 2 | 4;\n\t\ttry {\n\t\t\treturn fn();\n\t\t} finally {\n\t\t\tactiveSub = prevSub;\n\t\t\teffectObj.flags &= ~4;\n\t\t\tpurgeDeps(effectObj);\n\t\t}\n\t};\n\tconst effectObj = {\n\t\tdeps: void 0,\n\t\tdepsTail: void 0,\n\t\tsubs: void 0,\n\t\tsubsTail: void 0,\n\t\tflags: 2 | 4,\n\t\tnotify() {\n\t\t\tconst flags = this.flags;\n\t\t\tif (flags & 16 || flags & 32 && checkDirty(this.deps, this)) run();\n\t\t\telse this.flags = 2;\n\t\t},\n\t\tstop() {\n\t\t\tthis.flags = 0;\n\t\t\tthis.depsTail = void 0;\n\t\t\tpurgeDeps(this);\n\t\t}\n\t};\n\trun();\n\treturn effectObj;\n}\n\n//#endregion\nexport { batch, createAsyncAtom, createAtom, flush, toObserver };\n//# sourceMappingURL=atom.js.map","\"use client\";\nimport { dummyMatchContext, matchContext } from \"./matchContext.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { invariant, replaceEqualDeep } from \"@tanstack/router-core\";\nimport * as React$1 from \"react\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { useSelector } from \"@tanstack/react-store\";\n//#region src/useMatch.tsx\nvar dummyMatch = {};\nfunction useStructuralSharing(opts, router) {\n\tconst previousResult = React$1.useRef();\n\treturn (slice) => {\n\t\tconst selected = opts?.select ? opts.select(slice) : slice;\n\t\tif (opts?.structuralSharing ?? router.options.defaultStructuralSharing) return previousResult.current = replaceEqualDeep(previousResult.current, selected);\n\t\treturn selected;\n\t};\n}\n/**\n* Read and select the nearest or targeted route match.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useMatchHook\n*/\nfunction useMatch(opts) {\n\tconst router = useRouter();\n\tconst nearestRouteId = React$1.useContext(opts.from ? dummyMatchContext : matchContext);\n\tconst routeId = opts.from ?? nearestRouteId;\n\tconst matchStore = router.stores.getMatchStore(routeId);\n\tif (isServer ?? router.isServer) {\n\t\tconst match = matchStore.get();\n\t\tif (!match) {\n\t\t\tif (opts.shouldThrow ?? true) {\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") throw new Error(`Invariant failed: Could not find ${opts.from ? `an active match from \"${opts.from}\"` : \"a nearest match!\"}`);\n\t\t\t\tinvariant();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\treturn opts.select ? opts.select(match) : match;\n\t}\n\tconst selector = useStructuralSharing(opts, router);\n\tconst matchSelection = useSelector(matchStore, (match) => match ? selector(match) : dummyMatch);\n\tif (matchSelection !== dummyMatch) return matchSelection;\n\tif (opts.shouldThrow ?? true) {\n\t\tif (process.env.NODE_ENV !== \"production\") throw new Error(`Invariant failed: Could not find ${opts.from ? `an active match from \"${opts.from}\"` : \"a nearest match!\"}`);\n\t\tinvariant();\n\t}\n}\n//#endregion\nexport { useMatch, useStructuralSharing };\n\n//# sourceMappingURL=useMatch.js.map","import { useMatch } from \"./useMatch.js\";\n//#region src/useLoaderData.tsx\n/**\n* Read and select the current route's loader data with type‑safety.\n*\n* Options:\n* - `from`/`strict`: Choose which route's data to read and strictness\n* - `select`: Map the loader data to a derived value\n* - `structuralSharing`: Enable structural sharing for stable references\n*\n* @returns The loader data (or selected value) for the matched route.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useLoaderDataHook\n*/\nfunction useLoaderData(opts) {\n\treturn useMatch({\n\t\tfrom: opts.from,\n\t\tstrict: opts.strict,\n\t\tstructuralSharing: opts.structuralSharing,\n\t\tselect: (match) => {\n\t\t\treturn opts.select ? opts.select(match.loaderData) : match.loaderData;\n\t\t}\n\t});\n}\n//#endregion\nexport { useLoaderData };\n\n//# sourceMappingURL=useLoaderData.js.map","import { useMatch } from \"./useMatch.js\";\n//#region src/useLoaderDeps.tsx\n/**\n* Read and select the current route's loader dependencies object.\n*\n* Options:\n* - `from`: Choose which route's loader deps to read\n* - `select`: Map the deps to a derived value\n* - `structuralSharing`: Enable structural sharing for stable references\n*\n* @returns The loader deps (or selected value) for the matched route.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useLoaderDepsHook\n*/\nfunction useLoaderDeps(opts) {\n\tconst { select, ...rest } = opts;\n\treturn useMatch({\n\t\t...rest,\n\t\tselect: (match) => {\n\t\t\treturn select ? select(match.loaderDeps) : match.loaderDeps;\n\t\t}\n\t});\n}\n//#endregion\nexport { useLoaderDeps };\n\n//# sourceMappingURL=useLoaderDeps.js.map","import { useMatch } from \"./useMatch.js\";\n//#region src/useParams.tsx\n/**\n* Access the current route's path parameters with type-safety.\n*\n* Options:\n* - `from`/`strict`: Specify the matched route and whether to enforce strict typing\n* - `select`: Project the params object to a derived value for memoized renders\n* - `structuralSharing`: Enable structural sharing for stable references\n* - `shouldThrow`: Throw if the route is not found in strict contexts\n*\n* @returns The params object (or selected value) for the matched route.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useParamsHook\n*/\nfunction useParams(opts) {\n\treturn useMatch({\n\t\tfrom: opts.from,\n\t\tshouldThrow: opts.shouldThrow,\n\t\tstructuralSharing: opts.structuralSharing,\n\t\tstrict: opts.strict,\n\t\tselect: (match) => {\n\t\t\tconst params = opts.strict === false ? match.params : match._strictParams;\n\t\t\treturn opts.select ? opts.select(params) : params;\n\t\t}\n\t});\n}\n//#endregion\nexport { useParams };\n\n//# sourceMappingURL=useParams.js.map","import { useMatch } from \"./useMatch.js\";\n//#region src/useSearch.tsx\n/**\n* Read and select the current route's search parameters with type-safety.\n*\n* Options:\n* - `from`/`strict`: Control which route's search is read and how strictly it's typed\n* - `select`: Map the search object to a derived value for render optimization\n* - `structuralSharing`: Enable structural sharing for stable references\n* - `shouldThrow`: Throw when the route is not found (strict contexts)\n*\n* @returns The search object (or selected value) for the matched route.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/useSearchHook\n*/\nfunction useSearch(opts) {\n\treturn useMatch({\n\t\tfrom: opts.from,\n\t\tstrict: opts.strict,\n\t\tshouldThrow: opts.shouldThrow,\n\t\tstructuralSharing: opts.structuralSharing,\n\t\tselect: (match) => {\n\t\t\treturn opts.select ? opts.select(match.search) : match.search;\n\t\t}\n\t});\n}\n//#endregion\nexport { useSearch };\n\n//# sourceMappingURL=useSearch.js.map","import { useMatch } from \"./useMatch.js\";\n//#region src/useRouteContext.ts\nfunction useRouteContext(opts) {\n\treturn useMatch({\n\t\t...opts,\n\t\tselect: (match) => opts.select ? opts.select(match.context) : match.context\n\t});\n}\n//#endregion\nexport { useRouteContext };\n\n//# sourceMappingURL=useRouteContext.js.map","\"use client\";\nimport { useHydrated } from \"./ClientOnly.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { deepEqual, functionalUpdate, getUrlScheme, isDangerousProtocol, preloadWarning, removeTrailingSlash } from \"@tanstack/router-core\";\nimport * as React$1 from \"react\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { jsx } from \"react/jsx-runtime\";\nimport { useSelector } from \"@tanstack/react-store\";\n//#region src/link.tsx\nfunction useStableValues(...values) {\n\tconst ref = React$1.useRef(values);\n\tconst stable = ref.current;\n\tvalues.forEach((value, index) => {\n\t\tif (!deepEqual(stable[index], value, false, true)) stable[index] = value;\n\t});\n\treturn ref.current;\n}\nfunction preloadLink(router, options) {\n\trouter.preloadRoute(options).catch((err) => {\n\t\tconsole.warn(err);\n\t\tconsole.warn(preloadWarning);\n\t});\n}\nvar LINK_SELECTOR_OPTIONS = { compare: (a, b) => a[0] === b[0] && a[1] === b[1] };\nfunction resolveExternalLink(to, protocolAllowlist) {\n\tconst scheme = typeof to === \"string\" && getUrlScheme(to);\n\tif (!scheme) return;\n\tif (!protocolAllowlist.has(scheme)) {\n\t\tif (process.env.NODE_ENV !== \"production\") console.warn(`Blocked Link with dangerous protocol: ${to}`);\n\t\treturn null;\n\t}\n\treturn to;\n}\nfunction resolveIsActive(location, next, activeOptions, basepath, isHydrated) {\n\tconst currentPath = removeTrailingSlash(location.pathname, basepath);\n\tconst nextPath = removeTrailingSlash(next.pathname, basepath);\n\tif (activeOptions?.exact ? currentPath !== nextPath : !(currentPath.startsWith(nextPath) && (currentPath.length === nextPath.length || currentPath[nextPath.length] === \"/\"))) return false;\n\tif (activeOptions?.includeSearch ?? true) {\n\t\tif (!deepEqual(location.search, next.search, !activeOptions?.exact, activeOptions?.explicitUndefined)) return false;\n\t}\n\tif (activeOptions?.includeHash) return isHydrated && location.hash === next.hash;\n\treturn true;\n}\nfunction useLinkProps(options, forwardedRef, host) {\n\tconst router = useRouter();\n\tif (isServer ?? router.isServer) return getServerLinkProps(router, options, forwardedRef, host);\n\tconst innerRef = React$1.useRef(null);\n\tconst mergedRef = React$1.useCallback((element) => {\n\t\tinnerRef.current = element;\n\t\tif (typeof forwardedRef === \"function\") return forwardedRef(element);\n\t\tif (forwardedRef) forwardedRef.current = element;\n\t}, [forwardedRef]);\n\tconst { activeOptions, to, preload: userPreload, preloadDelay: userPreloadDelay, hashScrollIntoView, replace, startTransition, resetScroll, viewTransition, ignoreBlocker, disabled, target, onClick, onBlur, onFocus, onMouseEnter, onMouseLeave, onTouchStart } = options;\n\tconst isHydrated = useHydrated(!!activeOptions?.includeHash);\n\tconst [stableSearch, stableParams, stableActiveOptions] = useStableValues(options.search, options.params, activeOptions);\n\tconst [_options, dest] = React$1.useMemo(() => [options, { ...options }], [\n\t\trouter,\n\t\toptions.from,\n\t\toptions._fromLocation,\n\t\toptions.hash,\n\t\toptions.to,\n\t\tstableSearch,\n\t\tstableParams,\n\t\toptions.state,\n\t\toptions.mask,\n\t\toptions.unsafeRelative\n\t]);\n\tconst selectLinkState = React$1.useMemo(() => {\n\t\tconst directExternalLink = resolveExternalLink(to, router.protocolAllowlist);\n\t\tif (directExternalLink !== void 0) {\n\t\t\tconst state = [directExternalLink ?? void 0];\n\t\t\treturn () => state;\n\t\t}\n\t\tlet inactive;\n\t\tlet active;\n\t\treturn (location) => {\n\t\t\tif (!_options._fromLocation) dest._fromLocation = location;\n\t\t\tconst next = router.buildLocation(dest);\n\t\t\tconst href = getHrefOption(next, router, disabled);\n\t\t\tif (!inactive || inactive[0] !== href) {\n\t\t\t\tinactive = [href, !(disabled || href && !getUrlScheme(href)) && void 0];\n\t\t\t\tactive = [href, true];\n\t\t\t}\n\t\t\treturn inactive[1] !== void 0 && resolveIsActive(location, next, stableActiveOptions, router.basepath, isHydrated) ? active : inactive;\n\t\t};\n\t}, [\n\t\tstableActiveOptions,\n\t\tdisabled,\n\t\tisHydrated,\n\t\t_options,\n\t\tdest,\n\t\trouter,\n\t\tto\n\t]);\n\tconst [href, isActive] = useSelector(router.stores.location, selectLinkState, LINK_SELECTOR_OPTIONS);\n\tconst externalLink = isActive === void 0 && href;\n\tconst linkDisabled = disabled || href === void 0;\n\tconst hasRenderFetched = React$1.useRef(false);\n\tconst preload = options.reloadDocument || externalLink || linkDisabled ? false : userPreload ?? router.options.defaultPreload;\n\tconst preloadDelay = userPreloadDelay ?? router.options.defaultPreloadDelay ?? 0;\n\tconst enqueuePreload = React$1.useCallback((e) => {\n\t\tconst isIntersecting = e?.isIntersecting;\n\t\tif (!(isIntersecting ?? preload === \"intent\")) {\n\t\t\tif (isIntersecting === false) cancelPreload(innerRef);\n\t\t\treturn;\n\t\t}\n\t\tif (!preloadDelay) {\n\t\t\tpreloadLink(router, _options);\n\t\t\treturn;\n\t\t}\n\t\tif (timeoutMap.has(innerRef)) return;\n\t\ttimeoutMap.set(innerRef, setTimeout(() => {\n\t\t\ttimeoutMap.delete(innerRef);\n\t\t\tpreloadLink(router, _options);\n\t\t}, preloadDelay));\n\t}, [\n\t\trouter,\n\t\t_options,\n\t\tinnerRef,\n\t\tpreload,\n\t\tpreloadDelay\n\t]);\n\tReact$1.useEffect(() => {\n\t\tif (!preload) return;\n\t\tif (preload === \"render\" && !hasRenderFetched.current) {\n\t\t\thasRenderFetched.current = true;\n\t\t\tpreloadLink(router, _options);\n\t\t}\n\t\tlet active = true;\n\t\tlet observer;\n\t\tif (preload === \"viewport\" && innerRef.current && typeof IntersectionObserver === \"function\") {\n\t\t\tobserver = new IntersectionObserver((entries) => {\n\t\t\t\tif (active) enqueuePreload(entries.pop());\n\t\t\t}, { rootMargin: \"100px\" });\n\t\t\tobserver.observe(innerRef.current);\n\t\t}\n\t\treturn () => {\n\t\t\tactive = false;\n\t\t\tobserver?.disconnect();\n\t\t\tcancelPreload(innerRef);\n\t\t};\n\t}, [\n\t\trouter,\n\t\t_options,\n\t\tpreload,\n\t\tenqueuePreload,\n\t\tinnerRef\n\t]);\n\tconst props = collectElementProps(options, host);\n\tprops.ref = forwardedRef ? mergedRef : innerRef;\n\tif (externalLink) {\n\t\tprops.href = externalLink;\n\t\treturn props;\n\t}\n\tconst handleClick = (e) => {\n\t\tconst effectiveTarget = target ?? e.currentTarget.getAttribute(\"target\");\n\t\tif (!linkDisabled && !(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) && !e.defaultPrevented && (!effectiveTarget || effectiveTarget === \"_self\") && e.button === 0) {\n\t\t\te.preventDefault();\n\t\t\trouter.navigate({\n\t\t\t\t..._options,\n\t\t\t\treplace,\n\t\t\t\tresetScroll,\n\t\t\t\thashScrollIntoView,\n\t\t\t\tstartTransition,\n\t\t\t\tviewTransition,\n\t\t\t\tignoreBlocker\n\t\t\t});\n\t\t}\n\t};\n\tconst handleTouchStart = () => {\n\t\tif (preload === \"intent\") preloadLink(router, _options);\n\t};\n\tconst handleLeave = () => {\n\t\tif (preload === \"intent\") cancelPreload(innerRef);\n\t};\n\tprops.onClick = composeHandlers(onClick, handleClick);\n\tprops.onBlur = composeHandlers(onBlur, handleLeave);\n\tprops.onFocus = composeHandlers(onFocus, enqueuePreload);\n\tprops.onMouseEnter = composeHandlers(onMouseEnter, enqueuePreload);\n\tprops.onMouseLeave = composeHandlers(onMouseLeave, handleLeave);\n\tprops.onTouchStart = composeHandlers(onTouchStart, handleTouchStart);\n\treturn applyLinkState(props, options, isActive, href, linkDisabled, host);\n}\nvar STATIC_EMPTY_OBJECT = {};\nvar STATIC_ACTIVE_OBJECT = { className: \"active\" };\nvar ROUTER_OPTION_KEYS = /* @__PURE__ */ new Set([\n\t\"to\",\n\t\"params\",\n\t\"search\",\n\t\"hash\",\n\t\"state\",\n\t\"mask\",\n\t\"from\",\n\t\"unsafeRelative\",\n\t\"_fromLocation\",\n\t\"reloadDocument\",\n\t\"preload\",\n\t\"preloadDelay\",\n\t\"preloadIntentProximity\",\n\t\"hashScrollIntoView\",\n\t\"replace\",\n\t\"startTransition\",\n\t\"resetScroll\",\n\t\"viewTransition\",\n\t\"ignoreBlocker\",\n\t\"activeProps\",\n\t\"inactiveProps\",\n\t\"activeOptions\",\n\t\"_asChild\"\n]);\nfunction collectElementProps(options, host) {\n\tconst props = {};\n\tfor (const key in options) {\n\t\tif (ROUTER_OPTION_KEYS.has(key) || key === \"type\" && host !== void 0 || key === \"disabled\" && host === \"a\") continue;\n\t\tprops[key] = options[key];\n\t}\n\treturn props;\n}\nfunction applyLinkState(props, options, isActive, href, linkDisabled, host) {\n\tconst { activeProps, inactiveProps, className, style, target } = options;\n\tconst stateProps = functionalUpdate(isActive ? activeProps : inactiveProps, {}) ?? (isActive ? STATIC_ACTIVE_OBJECT : STATIC_EMPTY_OBJECT);\n\tObject.assign(props, stateProps);\n\tprops.href = href;\n\tif (host !== \"a\") props.disabled = linkDisabled;\n\tprops.target = target;\n\tconst stateStyle = stateProps.style;\n\tif (style || stateStyle) props.style = style && stateStyle ? {\n\t\t...style,\n\t\t...stateStyle\n\t} : style || stateStyle;\n\tconst stateClassName = stateProps.className;\n\tif (className || stateClassName) props.className = className ? stateClassName ? `${className} ${stateClassName}` : className : stateClassName;\n\tif (linkDisabled) {\n\t\tprops.role = \"link\";\n\t\tprops[\"aria-disabled\"] = true;\n\t}\n\tif (isActive) {\n\t\tprops[\"data-status\"] = \"active\";\n\t\tprops[\"aria-current\"] = \"page\";\n\t}\n\treturn props;\n}\nfunction getServerLinkProps(router, options, forwardedRef, host) {\n\tconst { to, disabled, activeOptions } = options;\n\tconst directExternalLink = resolveExternalLink(to, router.protocolAllowlist);\n\tconst next = directExternalLink === void 0 ? router.buildLocation(options) : void 0;\n\tconst hrefOption = next ? getHrefOption(next, router, disabled) : directExternalLink ?? void 0;\n\tconst linkDisabled = disabled || !hrefOption;\n\tconst externalLink = directExternalLink ?? (hrefOption && getUrlScheme(hrefOption) ? hrefOption : void 0);\n\tconst props = collectElementProps(options, host);\n\tprops.ref = forwardedRef;\n\tif (externalLink) {\n\t\tprops.href = externalLink;\n\t\treturn props;\n\t}\n\treturn applyLinkState(props, options, !!next && !(!disabled && !hrefOption) && resolveIsActive(router.stores.location.get(), next, activeOptions, router.basepath, false), hrefOption, linkDisabled, host);\n}\nvar timeoutMap = /* @__PURE__ */ new WeakMap();\nvar cancelPreload = (eventTarget) => {\n\tclearTimeout(timeoutMap.get(eventTarget));\n\ttimeoutMap.delete(eventTarget);\n};\nvar composeHandlers = (first, second) => {\n\tif (!first) return second;\n\treturn (event) => event.defaultPrevented || (first(event), event.defaultPrevented || second(event));\n};\nfunction getHrefOption(next, router, disabled) {\n\tif (disabled) return;\n\tconst location = next.maskedLocation ?? next;\n\tconst href = location.external ? location.publicHref : router.history.createHref(location.publicHref) || \"/\";\n\tif ((location.external || href !== location.publicHref) && isDangerousProtocol(href, router.protocolAllowlist)) {\n\t\tif (process.env.NODE_ENV !== \"production\") console.warn(`Blocked Link with dangerous protocol: ${href}`);\n\t\treturn;\n\t}\n\treturn href;\n}\n/**\n* Creates a typed Link-like component that preserves TanStack Router's\n* navigation semantics and type-safety while delegating rendering to the\n* provided host component.\n*\n* Useful for integrating design system anchors/buttons while keeping\n* router-aware props (eg. `to`, `params`, `search`, `preload`).\n*\n* @param Comp The host component to render (eg. a design-system Link/Button)\n* @returns A router-aware component with the same API as `Link`.\n* @link https://tanstack.com/router/latest/docs/framework/react/guide/custom-link\n*/\nfunction createLink(Comp) {\n\treturn React$1.forwardRef(function CreatedLink(props, ref) {\n\t\treturn /* @__PURE__ */ jsx(Link, {\n\t\t\t...props,\n\t\t\t_asChild: Comp,\n\t\t\tref\n\t\t});\n\t});\n}\n/**\n* A strongly-typed anchor component for declarative navigation.\n* Handles path, search, hash and state updates with optional route preloading\n* and active-state styling.\n*\n* Props:\n* - `preload`: Controls route preloading (eg. 'intent', 'render', 'viewport', true/false)\n* - `preloadDelay`: Delay in ms before preloading on focus, hover, or viewport entry\n* - `activeProps`/`inactiveProps`: Additional props merged when link is active/inactive\n* - `resetScroll`/`hashScrollIntoView`: Control scroll behavior on navigation\n* - `viewTransition`/`startTransition`: Use View Transitions/React transitions for navigation\n* - `ignoreBlocker`: Bypass registered blockers\n*\n* @returns An anchor-like element that navigates without full page reloads.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/linkComponent\n*/\nvar Link = React$1.memo(React$1.forwardRef((props, ref) => {\n\tconst host = props._asChild || \"a\";\n\tconst linkProps = useLinkProps(props, ref, host);\n\tconst children = typeof props.children === \"function\" ? props.children({ isActive: linkProps[\"data-status\"] === \"active\" }) : props.children;\n\treturn React$1.createElement(host, linkProps, children);\n}), areLinkPropsEqual);\nfunction areLinkPropsEqual(prev, next) {\n\tlet extraKeys = 0;\n\tfor (const key in next) {\n\t\textraKeys++;\n\t\tif (prev[key] === next[key]) continue;\n\t\tif (!ROUTER_OPTION_KEYS.has(key) || !deepEqual(prev[key], next[key], false, true)) return false;\n\t}\n\tfor (const _key in prev) extraKeys--;\n\treturn extraKeys === 0;\n}\n/**\n* Validate and reuse navigation options for `Link`, `navigate` or `redirect`.\n* Accepts a literal options object and returns it typed for later spreading.\n* @example\n* const opts = linkOptions({ to: '/dashboard', search: { tab: 'home' } })\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/linkOptions\n*/\nvar linkOptions = (options) => {\n\treturn options;\n};\n/**\n* Type-check a literal object for use with `Link`, `navigate` or `redirect`.\n* Use to validate and reuse navigation options across your app.\n* @example\n* const opts = linkOptions({ to: '/dashboard', search: { tab: 'home' } })\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/linkOptions\n*/\n//#endregion\nexport { Link, createLink, linkOptions, useLinkProps };\n\n//# sourceMappingURL=link.js.map","import { useRouter } from \"./useRouter.js\";\nimport { useMatch } from \"./useMatch.js\";\nimport { useLoaderData } from \"./useLoaderData.js\";\nimport { useLoaderDeps } from \"./useLoaderDeps.js\";\nimport { useParams } from \"./useParams.js\";\nimport { useSearch } from \"./useSearch.js\";\nimport { useNavigate } from \"./useNavigate.js\";\nimport { useRouteContext } from \"./useRouteContext.js\";\nimport { Link } from \"./link.js\";\nimport { BaseRootRoute, BaseRoute, BaseRouteApi, notFound } from \"@tanstack/router-core\";\nimport React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\n//#region src/route.tsx\n/**\n* Returns a route-specific API that exposes type-safe hooks pre-bound\n* to a single route ID. Useful for consuming a route's APIs from files\n* where the route object isn't directly imported (e.g. code-split files).\n*\n* @param id Route ID string literal for the target route.\n* @returns A `RouteApi` instance bound to the given route ID.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/getRouteApiFunction\n*/\nfunction getRouteApi(id) {\n\treturn new RouteApi({ id });\n}\nvar RouteApi = class extends BaseRouteApi {\n\t/**\n\t* @deprecated Use the `getRouteApi` function instead.\n\t*/\n\tconstructor({ id }) {\n\t\tsuper({ id });\n\t\tthis.useMatch = (opts) => {\n\t\t\treturn useMatch({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useRouteContext = (opts) => {\n\t\t\treturn useRouteContext({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useSearch = (opts) => {\n\t\t\treturn useSearch({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useParams = (opts) => {\n\t\t\treturn useParams({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useLoaderDeps = (opts) => {\n\t\t\treturn useLoaderDeps({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id,\n\t\t\t\tstrict: false\n\t\t\t});\n\t\t};\n\t\tthis.useLoaderData = (opts) => {\n\t\t\treturn useLoaderData({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id,\n\t\t\t\tstrict: false\n\t\t\t});\n\t\t};\n\t\tthis.useNavigate = () => {\n\t\t\treturn useNavigate({ from: useRouter().routesById[this.id].fullPath });\n\t\t};\n\t\tthis.notFound = (opts) => {\n\t\t\treturn notFound({\n\t\t\t\trouteId: this.id,\n\t\t\t\t...opts\n\t\t\t});\n\t\t};\n\t\tthis.Link = React.forwardRef((props, ref) => {\n\t\t\tconst fullPath = useRouter().routesById[this.id].fullPath;\n\t\t\treturn /* @__PURE__ */ jsx(Link, {\n\t\t\t\tref,\n\t\t\t\tfrom: fullPath,\n\t\t\t\t...props\n\t\t\t});\n\t\t});\n\t}\n};\nvar Route = class extends BaseRoute {\n\t/**\n\t* @deprecated Use the `createRoute` function instead.\n\t*/\n\tconstructor(options) {\n\t\tsuper(options);\n\t\tthis.useMatch = (opts) => {\n\t\t\treturn useMatch({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useRouteContext = (opts) => {\n\t\t\treturn useRouteContext({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useSearch = (opts) => {\n\t\t\treturn useSearch({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useParams = (opts) => {\n\t\t\treturn useParams({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useLoaderDeps = (opts) => {\n\t\t\treturn useLoaderDeps({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useLoaderData = (opts) => {\n\t\t\treturn useLoaderData({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useNavigate = () => {\n\t\t\treturn useNavigate({ from: this.fullPath });\n\t\t};\n\t\tthis.Link = React.forwardRef((props, ref) => {\n\t\t\treturn /* @__PURE__ */ jsx(Link, {\n\t\t\t\tref,\n\t\t\t\tfrom: this.fullPath,\n\t\t\t\t...props\n\t\t\t});\n\t\t});\n\t}\n};\n/**\n* Creates a non-root Route instance for code-based routing.\n*\n* Use this to define a route that will be composed into a route tree\n* (typically via a parent route's `addChildren`). If you're using file-based\n* routing, prefer `createFileRoute`.\n*\n* @param options Route options (path, component, loader, context, etc.).\n* @returns A Route instance to be attached to the route tree.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/createRouteFunction\n*/\nfunction createRoute(options) {\n\treturn new Route(options);\n}\n/**\n* Creates a root route factory that requires a router context type.\n*\n* Use when your root route expects `context` to be provided to `createRouter`.\n* The returned function behaves like `createRootRoute` but enforces a context type.\n*\n* @returns A factory function to configure and return a root route.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/createRootRouteWithContextFunction\n*/\nfunction createRootRouteWithContext() {\n\treturn (options) => {\n\t\treturn createRootRoute(options);\n\t};\n}\n/**\n* @deprecated Use the `createRootRouteWithContext` function instead.\n*/\nvar rootRouteWithContext = createRootRouteWithContext;\nvar RootRoute = class extends BaseRootRoute {\n\t/**\n\t* @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.\n\t*/\n\tconstructor(options) {\n\t\tsuper(options);\n\t\tthis.useMatch = (opts) => {\n\t\t\treturn useMatch({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useRouteContext = (opts) => {\n\t\t\treturn useRouteContext({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useSearch = (opts) => {\n\t\t\treturn useSearch({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useParams = (opts) => {\n\t\t\treturn useParams({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useLoaderDeps = (opts) => {\n\t\t\treturn useLoaderDeps({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useLoaderData = (opts) => {\n\t\t\treturn useLoaderData({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.id\n\t\t\t});\n\t\t};\n\t\tthis.useNavigate = () => {\n\t\t\treturn useNavigate({ from: this.fullPath });\n\t\t};\n\t\tthis.Link = React.forwardRef((props, ref) => {\n\t\t\treturn /* @__PURE__ */ jsx(Link, {\n\t\t\t\tref,\n\t\t\t\tfrom: this.fullPath,\n\t\t\t\t...props\n\t\t\t});\n\t\t});\n\t}\n};\n/**\n* Creates a root Route instance used to build your route tree.\n*\n* Typically paired with `createRouter({ routeTree })`. If you need to require\n* a typed router context, use `createRootRouteWithContext` instead.\n*\n* @param options Root route options (component, error, pending, etc.).\n* @returns A root route instance.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/createRootRouteFunction\n*/\nfunction createRootRoute(options) {\n\treturn new RootRoute(options);\n}\nfunction createRouteMask(opts) {\n\treturn opts;\n}\nvar NotFoundRoute = class extends Route {\n\tconstructor(options) {\n\t\tsuper({\n\t\t\t...options,\n\t\t\tid: \"404\"\n\t\t});\n\t}\n};\n//#endregion\nexport { NotFoundRoute, RootRoute, Route, RouteApi, createRootRoute, createRootRouteWithContext, createRoute, createRouteMask, getRouteApi, rootRouteWithContext };\n\n//# sourceMappingURL=route.js.map","import { useRouter } from \"./useRouter.js\";\nimport { useMatch } from \"./useMatch.js\";\nimport { useLoaderData } from \"./useLoaderData.js\";\nimport { useLoaderDeps } from \"./useLoaderDeps.js\";\nimport { useParams } from \"./useParams.js\";\nimport { useSearch } from \"./useSearch.js\";\nimport { useNavigate } from \"./useNavigate.js\";\nimport { useRouteContext } from \"./useRouteContext.js\";\nimport { createRoute } from \"./route.js\";\n//#region src/fileRoute.ts\n/**\n* Creates a file-based Route factory for a given path.\n*\n* Used by TanStack Router's file-based routing to associate a file with a\n* route. The returned function accepts standard route options. In normal usage\n* the `path` string is inserted and maintained by the `tsr` generator.\n*\n* @param path File path literal for the route (usually auto-generated).\n* @returns A function that accepts Route options and returns a Route instance.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/createFileRouteFunction\n*/\nfunction createFileRoute(path) {\n\treturn (options) => {\n\t\tconst route = createRoute(options);\n\t\troute.isRoot = false;\n\t\treturn route;\n\t};\n}\n/** \n@deprecated It's no longer recommended to use the `FileRoute` class directly.\nInstead, use `createFileRoute('/path/to/file')(options)` to create a file route.\n*/\nvar FileRoute = class {\n\tconstructor(path, _opts) {\n\t\tthis.path = path;\n\t\tthis.createRoute = (options) => {\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (!this.silent) console.warn(\"Warning: FileRoute is deprecated and will be removed in the next major version. Use the createFileRoute(path)(options) function instead.\");\n\t\t\t}\n\t\t\tconst route = createRoute(options);\n\t\t\troute.isRoot = false;\n\t\t\treturn route;\n\t\t};\n\t\tthis.silent = _opts?.silent;\n\t}\n};\n/**\n@deprecated It's recommended not to split loaders into separate files.\nInstead, place the loader function in the main route file via `createFileRoute`.\n*/\nfunction FileRouteLoader(_path) {\n\tif (process.env.NODE_ENV !== \"production\") console.warn(`Warning: FileRouteLoader is deprecated and will be removed in the next major version. Please place the loader function in the main route file, inside the \\`createFileRoute('/path/to/file')(options)\\` options`);\n\treturn (loaderFn) => loaderFn;\n}\nvar LazyRoute = class {\n\tconstructor(opts) {\n\t\tthis.useMatch = (opts) => {\n\t\t\treturn useMatch({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.options.id\n\t\t\t});\n\t\t};\n\t\tthis.useRouteContext = (opts) => {\n\t\t\treturn useRouteContext({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.options.id\n\t\t\t});\n\t\t};\n\t\tthis.useSearch = (opts) => {\n\t\t\treturn useSearch({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.options.id\n\t\t\t});\n\t\t};\n\t\tthis.useParams = (opts) => {\n\t\t\treturn useParams({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.options.id\n\t\t\t});\n\t\t};\n\t\tthis.useLoaderDeps = (opts) => {\n\t\t\treturn useLoaderDeps({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.options.id\n\t\t\t});\n\t\t};\n\t\tthis.useLoaderData = (opts) => {\n\t\t\treturn useLoaderData({\n\t\t\t\t...opts,\n\t\t\t\tfrom: this.options.id\n\t\t\t});\n\t\t};\n\t\tthis.useNavigate = () => {\n\t\t\treturn useNavigate({ from: useRouter().routesById[this.options.id].fullPath });\n\t\t};\n\t\tthis.options = opts;\n\t}\n};\n/**\n* Creates a lazily-configurable code-based route stub by ID.\n*\n* Use this for code-splitting with code-based routes. The returned function\n* accepts only non-critical route options like `component`, `pendingComponent`,\n* `errorComponent`, and `notFoundComponent` which are applied when the route\n* is matched.\n*\n* @param id Route ID string literal to associate with the lazy route.\n* @returns A function that accepts lazy route options and returns a `LazyRoute`.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/createLazyRouteFunction\n*/\nfunction createLazyRoute(id) {\n\treturn (opts) => {\n\t\treturn new LazyRoute({\n\t\t\tid,\n\t\t\t...opts\n\t\t});\n\t};\n}\n/**\n* Creates a lazily-configurable file-based route stub by file path.\n*\n* Use this for code-splitting with file-based routes (eg. `.lazy.tsx` files).\n* The returned function accepts only non-critical route options like\n* `component`, `pendingComponent`, `errorComponent`, and `notFoundComponent`.\n*\n* @param id File path literal for the route file.\n* @returns A function that accepts lazy route options and returns a `LazyRoute`.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/createLazyFileRouteFunction\n*/\nfunction createLazyFileRoute(id) {\n\tif (typeof id === \"object\") return new LazyRoute(id);\n\treturn (opts) => new LazyRoute({\n\t\tid,\n\t\t...opts\n\t});\n}\n//#endregion\nexport { FileRoute, FileRouteLoader, LazyRoute, createFileRoute, createLazyFileRoute, createLazyRoute };\n\n//# sourceMappingURL=fileRoute.js.map","import { reactUse } from \"./utils.js\";\nimport { isModuleNotFoundError } from \"@tanstack/router-core\";\nimport * as React$1 from \"react\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\n//#region src/lazyRouteComponent.tsx\n/**\n* Wrap a dynamic import to create a route component that supports\n* `.preload()` and friendly reload-on-module-missing behavior.\n*\n* @param importer Function returning a module promise\n* @param exportName Named export to use (default: `default`)\n* @returns A lazy route component compatible with TanStack Router\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/lazyRouteComponentFunction\n*/\nfunction lazyRouteComponent(importer, exportName) {\n\tlet loadPromise;\n\tlet comp;\n\tlet error;\n\tconst load = () => {\n\t\tif (!loadPromise) {\n\t\t\terror = void 0;\n\t\t\tloadPromise = importer().then((res) => {\n\t\t\t\tif (!(isServer ?? typeof window === \"undefined\")) {\n\t\t\t\t\tloadPromise = void 0;\n\t\t\t\t\tlazyComp.preload = void 0;\n\t\t\t\t}\n\t\t\t\tcomp = res[exportName ?? \"default\"];\n\t\t\t}).catch((err) => {\n\t\t\t\tloadPromise = void 0;\n\t\t\t\terror = err;\n\t\t\t});\n\t\t}\n\t\treturn loadPromise;\n\t};\n\tconst lazyComp = function Lazy(props) {\n\t\tif (error) {\n\t\t\tif (isModuleNotFoundError(error) && !(isServer ?? typeof window === \"undefined\") && typeof sessionStorage !== \"undefined\") {\n\t\t\t\tconst storageKey = `tanstack_router_reload:${error.message}`;\n\t\t\t\tif (!sessionStorage.getItem(storageKey)) {\n\t\t\t\t\tsessionStorage.setItem(storageKey, \"1\");\n\t\t\t\t\twindow.location.reload();\n\t\t\t\t\tthrow new Promise(() => {});\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t\tif (!comp) if (reactUse) reactUse(load());\n\t\telse throw load();\n\t\treturn React$1.createElement(comp, props);\n\t};\n\tlazyComp.preload = load;\n\treturn lazyComp;\n}\n//#endregion\nexport { lazyRouteComponent };\n\n//# sourceMappingURL=lazyRouteComponent.js.map","import { createNonReactiveMutableStore, createNonReactiveReadonlyStore } from \"@tanstack/router-core\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { batch, createAtom } from \"@tanstack/react-store\";\n//#region src/routerStores.ts\nvar getStoreFactory = (opts) => {\n\tif (isServer ?? opts.isServer) return {\n\t\tcreateMutableStore: createNonReactiveMutableStore,\n\t\tcreateReadonlyStore: createNonReactiveReadonlyStore,\n\t\tbatch: (fn) => fn()\n\t};\n\treturn {\n\t\tcreateMutableStore: createAtom,\n\t\tcreateReadonlyStore: createAtom,\n\t\tbatch\n\t};\n};\n//#endregion\nexport { getStoreFactory };\n\n//# sourceMappingURL=routerStores.js.map","import { getStoreFactory } from \"./routerStores.js\";\nimport { RouterCore } from \"@tanstack/router-core\";\n//#region src/router.ts\n/**\n* Creates a new Router instance for React.\n*\n* Pass the returned router to `RouterProvider` to enable routing.\n* Notable options: `routeTree` (your route definitions) and `context`\n* (required if the root route was created with `createRootRouteWithContext`).\n*\n* @param options Router options used to configure the router.\n* @returns A Router instance to be provided to `RouterProvider`.\n* @link https://tanstack.com/router/latest/docs/framework/react/api/router/createRouterFunction\n*/\nvar createRouter = (options) => {\n\treturn new Router(options);\n};\nvar Router = class extends RouterCore {\n\tconstructor(options) {\n\t\tsuper(options, getStoreFactory);\n\t}\n};\n//#endregion\nexport { Router, createRouter };\n\n//# sourceMappingURL=router.js.map","\"use client\";\nimport { useHydrated } from \"./ClientOnly.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport * as React$1 from \"react\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { jsx } from \"react/jsx-runtime\";\n//#region src/Asset.tsx\nvar INLINE_CSS_HYDRATION_ATTR = \"data-tsr-inline-css\";\nvar noopScriptHandler = () => {};\nfunction setScriptAttrs(script, attrs) {\n\tif (!attrs) return;\n\tfor (const [key, value] of Object.entries(attrs)) if (key !== \"suppressHydrationWarning\" && value !== void 0 && value !== false) script.setAttribute(key, typeof value === \"boolean\" ? \"\" : String(value));\n}\nfunction Asset(asset) {\n\tconst { attrs, children, nonce, preventScriptHoist } = asset;\n\tconst innerHTML = React$1.useMemo(() => children === void 0 ? void 0 : { __html: children }, [children]);\n\tswitch (asset.tag) {\n\t\tcase \"title\": return /* @__PURE__ */ jsx(\"title\", {\n\t\t\t...attrs,\n\t\t\tsuppressHydrationWarning: true,\n\t\t\tchildren\n\t\t});\n\t\tcase \"meta\": return /* @__PURE__ */ jsx(\"meta\", {\n\t\t\t...attrs,\n\t\t\tsuppressHydrationWarning: true\n\t\t});\n\t\tcase \"link\": return /* @__PURE__ */ jsx(\"link\", {\n\t\t\t...attrs,\n\t\t\tprecedence: attrs?.precedence ?? (attrs?.rel === \"stylesheet\" ? \"default\" : void 0),\n\t\t\tnonce,\n\t\t\tsuppressHydrationWarning: true\n\t\t});\n\t\tcase \"style\":\n\t\t\tif (asset.inlineCss && (process.env.TSS_INLINE_CSS_ENABLED === \"true\" || process.env.TSS_INLINE_CSS_ENABLED === void 0 && isServer)) return /* @__PURE__ */ jsx(InlineCssStyle, {\n\t\t\t\tattrs,\n\t\t\t\tnonce,\n\t\t\t\tchildren\n\t\t\t});\n\t\t\treturn /* @__PURE__ */ jsx(\"style\", {\n\t\t\t\t...attrs,\n\t\t\t\tdangerouslySetInnerHTML: innerHTML,\n\t\t\t\tnonce\n\t\t\t});\n\t\tcase \"script\": return /* @__PURE__ */ jsx(Script, {\n\t\t\tattrs,\n\t\t\tpreventScriptHoist,\n\t\t\tchildren\n\t\t});\n\t\tdefault: return null;\n\t}\n}\nfunction InlineCssStyle({ attrs, children, nonce }) {\n\tconst isInlineCssPlaceholder = children === void 0;\n\tconst [hydratedInlineCss] = React$1.useState(() => {\n\t\tif (!isInlineCssPlaceholder || typeof document === \"undefined\") return;\n\t\treturn document.querySelector(`style[${INLINE_CSS_HYDRATION_ATTR}]`)?.textContent ?? void 0;\n\t});\n\tconst html = isInlineCssPlaceholder ? hydratedInlineCss ?? \"\" : children ?? \"\";\n\tconst innerHTML = React$1.useMemo(() => ({ __html: html }), [html]);\n\treturn /* @__PURE__ */ jsx(\"style\", {\n\t\t...attrs,\n\t\t[INLINE_CSS_HYDRATION_ATTR]: \"\",\n\t\tdangerouslySetInnerHTML: innerHTML,\n\t\tnonce,\n\t\tsuppressHydrationWarning: true\n\t});\n}\nfunction Script({ attrs, children, preventScriptHoist }) {\n\tconst router = useRouter();\n\tconst hydrated = useHydrated();\n\tconst innerHTML = React$1.useMemo(() => children === void 0 ? void 0 : { __html: children }, [children]);\n\tconst dataScript = typeof attrs?.type === \"string\" && attrs.type !== \"\" && attrs.type !== \"text/javascript\" && attrs.type !== \"module\";\n\tif (process.env.NODE_ENV !== \"production\" && attrs?.src && typeof children === \"string\" && children.trim().length) console.warn(\"[TanStack Router] <Script> received both `src` and `children`. The `children` content will be ignored. Remove `children` or remove `src`.\");\n\tReact$1.useEffect(() => {\n\t\tif (dataScript) return;\n\t\tif (attrs?.src) {\n\t\t\tconst link = document.createElement(\"a\");\n\t\t\tlink.href = attrs.src;\n\t\t\tconst normSrc = link.href;\n\t\t\tfor (const el of document.scripts) if (el.src === normSrc) return;\n\t\t\tconst script = document.createElement(\"script\");\n\t\t\tsetScriptAttrs(script, attrs);\n\t\t\tdocument.head.appendChild(script);\n\t\t\treturn () => script.remove();\n\t\t}\n\t\tif (typeof children === \"string\") {\n\t\t\tconst typeAttr = typeof attrs?.type === \"string\" ? attrs.type : \"text/javascript\";\n\t\t\tconst nonceAttr = typeof attrs?.nonce === \"string\" ? attrs.nonce : void 0;\n\t\t\tfor (const el of document.scripts) {\n\t\t\t\tif (el.hasAttribute(\"src\")) continue;\n\t\t\t\tconst sType = el.getAttribute(\"type\") ?? \"text/javascript\";\n\t\t\t\tconst sNonce = el.getAttribute(\"nonce\") ?? void 0;\n\t\t\t\tif (el.textContent === children && sType === typeAttr && sNonce === nonceAttr) return;\n\t\t\t}\n\t\t\tconst script = document.createElement(\"script\");\n\t\t\tscript.textContent = children;\n\t\t\tsetScriptAttrs(script, attrs);\n\t\t\tdocument.head.appendChild(script);\n\t\t\treturn () => script.remove();\n\t\t}\n\t}, [\n\t\tattrs,\n\t\tchildren,\n\t\tdataScript\n\t]);\n\tif (isServer ?? router.isServer) {\n\t\tif (attrs?.src) {\n\t\t\tif (!preventScriptHoist) return /* @__PURE__ */ jsx(\"script\", {\n\t\t\t\t...attrs,\n\t\t\t\tsuppressHydrationWarning: true\n\t\t\t});\n\t\t\treturn /* @__PURE__ */ jsx(\"script\", {\n\t\t\t\t...attrs,\n\t\t\t\tonLoad: noopScriptHandler,\n\t\t\t\tsuppressHydrationWarning: true\n\t\t\t});\n\t\t}\n\t\tif (typeof children === \"string\") return /* @__PURE__ */ jsx(\"script\", {\n\t\t\t...attrs,\n\t\t\tdangerouslySetInnerHTML: innerHTML,\n\t\t\tsuppressHydrationWarning: true\n\t\t});\n\t\treturn null;\n\t}\n\tif (dataScript && typeof children === \"string\") return /* @__PURE__ */ jsx(\"script\", {\n\t\t...attrs,\n\t\tsuppressHydrationWarning: true,\n\t\tdangerouslySetInnerHTML: innerHTML\n\t});\n\tif (!hydrated) {\n\t\tif (attrs?.src) return /* @__PURE__ */ jsx(\"script\", {\n\t\t\t...attrs,\n\t\t\tsuppressHydrationWarning: true\n\t\t});\n\t\tif (typeof children === \"string\") return /* @__PURE__ */ jsx(\"script\", {\n\t\t\t...attrs,\n\t\t\tdangerouslySetInnerHTML: innerHTML,\n\t\t\tsuppressHydrationWarning: true\n\t\t});\n\t}\n\treturn null;\n}\n//#endregion\nexport { Asset };\n\n//# sourceMappingURL=Asset.js.map","import { useRouter } from \"./useRouter.js\";\nimport { _getAssetMatches, appendUniqueUserTags, deepEqual, escapeHtml, getAssetCrossOrigin, getScriptPreloadAttrs, resolveManifestCssLink } from \"@tanstack/router-core\";\nimport * as React$1 from \"react\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { useSelector } from \"@tanstack/react-store\";\n//#region src/headContentUtils.tsx\nfunction buildTagsFromMatches(router, nonce, matches, assetCrossOrigin) {\n\tmatches = _getAssetMatches(matches);\n\tconst routeMeta = matches.map((match) => match.meta).filter((meta) => meta !== void 0);\n\tconst resultMeta = [];\n\tconst metaByAttribute = {};\n\tlet title;\n\tfor (let i = routeMeta.length - 1; i >= 0; i--) {\n\t\tconst metas = routeMeta[i];\n\t\tfor (let j = metas.length - 1; j >= 0; j--) {\n\t\t\tconst m = metas[j];\n\t\t\tif (!m) continue;\n\t\t\tif (m.title) {\n\t\t\t\tif (!title) title = {\n\t\t\t\t\ttag: \"title\",\n\t\t\t\t\tchildren: m.title\n\t\t\t\t};\n\t\t\t} else if (\"script:ld+json\" in m) try {\n\t\t\t\tconst json = JSON.stringify(m[\"script:ld+json\"]);\n\t\t\t\tresultMeta.push({\n\t\t\t\t\ttag: \"script\",\n\t\t\t\t\tattrs: { type: \"application/ld+json\" },\n\t\t\t\t\tchildren: escapeHtml(json)\n\t\t\t\t});\n\t\t\t} catch {}\n\t\t\telse {\n\t\t\t\tconst attribute = m.name ?? m.property;\n\t\t\t\tif (attribute) if (metaByAttribute[attribute]) continue;\n\t\t\t\telse metaByAttribute[attribute] = true;\n\t\t\t\tresultMeta.push({\n\t\t\t\t\ttag: \"meta\",\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\t...m,\n\t\t\t\t\t\tnonce\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tif (title) resultMeta.push(title);\n\tif (nonce) resultMeta.push({\n\t\ttag: \"meta\",\n\t\tattrs: {\n\t\t\tproperty: \"csp-nonce\",\n\t\t\tcontent: nonce\n\t\t}\n\t});\n\tresultMeta.reverse();\n\tconst constructedLinks = matches.flatMap((match) => match.links ?? []).filter((link) => link !== void 0).map((link) => ({\n\t\ttag: \"link\",\n\t\tattrs: {\n\t\t\t...link,\n\t\t\tnonce\n\t\t}\n\t}));\n\tconst manifest = router.ssr?.manifest;\n\tconst manifestCssTags = [];\n\tif (manifest) {\n\t\tmatches.forEach((match) => {\n\t\t\t(manifest.routes[match.routeId]?.css)?.forEach((link) => {\n\t\t\t\tconst resolvedLink = resolveManifestCssLink(link);\n\t\t\t\tmanifestCssTags.push({\n\t\t\t\t\ttag: \"link\",\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\trel: \"stylesheet\",\n\t\t\t\t\t\t...resolvedLink,\n\t\t\t\t\t\tcrossOrigin: getAssetCrossOrigin(assetCrossOrigin, \"stylesheet\") ?? resolvedLink.crossOrigin,\n\t\t\t\t\t\tsuppressHydrationWarning: true,\n\t\t\t\t\t\tnonce\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t\tif (manifest.inlineStyle) manifestCssTags.push({\n\t\t\ttag: \"style\",\n\t\t\tattrs: {\n\t\t\t\t...manifest.inlineStyle.attrs,\n\t\t\t\tnonce\n\t\t\t},\n\t\t\tchildren: manifest.inlineStyle.children,\n\t\t\tinlineCss: true\n\t\t});\n\t}\n\tconst preloadLinks = [];\n\tif (manifest) matches.forEach((match) => {\n\t\tmanifest.routes[match.routeId]?.preloads?.forEach((preload) => {\n\t\t\tpreloadLinks.push({\n\t\t\t\ttag: \"link\",\n\t\t\t\tattrs: {\n\t\t\t\t\t...getScriptPreloadAttrs(manifest, preload, assetCrossOrigin),\n\t\t\t\t\tnonce\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t});\n\tconst styles = matches.flatMap((match) => match.styles ?? []).filter((style) => style !== void 0).map(({ children, ...attrs }) => ({\n\t\ttag: \"style\",\n\t\tattrs: {\n\t\t\t...attrs,\n\t\t\tnonce\n\t\t},\n\t\tchildren\n\t}));\n\tconst headScripts = matches.flatMap((match) => match.headScripts ?? []).filter((script) => script !== void 0).map(({ children, ...script }) => ({\n\t\ttag: \"script\",\n\t\tattrs: {\n\t\t\t...script,\n\t\t\tnonce\n\t\t},\n\t\tchildren\n\t}));\n\tconst tags = [];\n\tappendUniqueUserTags(tags, resultMeta);\n\ttags.push(...preloadLinks);\n\tappendUniqueUserTags(tags, constructedLinks);\n\ttags.push(...manifestCssTags);\n\tappendUniqueUserTags(tags, styles);\n\tappendUniqueUserTags(tags, headScripts);\n\treturn tags;\n}\n/**\n* Build the head/link/meta/script tags from the renderable presented prefix.\n* Used internally by `HeadContent`.\n*/\nvar useTags = (assetCrossOrigin) => {\n\tconst router = useRouter();\n\tconst nonce = router.options.ssr?.nonce;\n\tif (isServer ?? router.isServer) return buildTagsFromMatches(router, nonce, router.stores.matches.get(), assetCrossOrigin);\n\tconst selectTags = React$1.useCallback((matches) => buildTagsFromMatches(router, nonce, matches, assetCrossOrigin), [\n\t\tassetCrossOrigin,\n\t\tnonce,\n\t\trouter\n\t]);\n\treturn useSelector(router.stores.matches, selectTags, { compare: deepEqual });\n};\n//#endregion\nexport { useTags };\n\n//# sourceMappingURL=headContentUtils.js.map","\"use client\";\nimport { useRouter } from \"./useRouter.js\";\nimport { Asset } from \"./Asset.js\";\nimport { useTags } from \"./headContentUtils.js\";\nimport { createElement } from \"react\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\n//#region src/HeadContent.tsx\n/**\n* Render route-managed head tags (title, meta, links, styles, head scripts).\n* Place inside the document head of your app shell.\n* @link https://tanstack.com/router/latest/docs/framework/react/guide/document-head-management\n*/\nfunction HeadContent(props) {\n\tconst tags = useTags(props.assetCrossOrigin);\n\tconst nonce = useRouter().options.ssr?.nonce;\n\treturn /* @__PURE__ */ jsx(Fragment, { children: tags.map((tag) => /* @__PURE__ */ createElement(Asset, {\n\t\t...tag,\n\t\tkey: `tsr-meta-${JSON.stringify(tag)}`,\n\t\tnonce\n\t})) });\n}\n//#endregion\nexport { HeadContent };\n\n//# sourceMappingURL=HeadContent.js.map","import { useRouter } from \"./useRouter.js\";\nimport { Asset } from \"./Asset.js\";\nimport { composeSsrBodyScripts, deepEqual, getSsrBodyScriptParts } from \"@tanstack/router-core\";\nimport { createElement } from \"react\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nimport { useSelector } from \"@tanstack/react-store\";\n//#region src/Scripts.tsx\nvar routeScriptAttrs = { suppressHydrationWarning: true };\n/**\n* Render body script tags collected from route matches and SSR manifests.\n* During streaming SSR, `<Scripts>` marks where late hydration scripts may\n* begin to be inserted.\n*/\nvar Scripts = () => {\n\tconst router = useRouter();\n\tconst nonce = router.options.ssr?.nonce;\n\tconst getParts = (matches) => {\n\t\tconst parts = getSsrBodyScriptParts(matches, router.ssr?.manifest, nonce, routeScriptAttrs);\n\t\tfor (const script of parts[1]) if (typeof script.attrs?.src === \"string\") {\n\t\t\tconst scriptWithHoist = script;\n\t\t\tscriptWithHoist.preventScriptHoist = true;\n\t\t}\n\t\treturn parts;\n\t};\n\tconst getScripts = (matches) => {\n\t\treturn composeSsrBodyScripts(getParts(matches));\n\t};\n\tif (isServer ?? router.isServer) return renderScripts(composeSsrBodyScripts(getParts(router.stores.matches.get()), router.serverSsr?.takeInitialHydrationScriptTags()));\n\treturn renderScripts(useSelector(router.stores.matches, getScripts, { compare: deepEqual }));\n};\nfunction renderScripts(scripts) {\n\treturn /* @__PURE__ */ jsx(Fragment, { children: scripts.map((asset, i) => /* @__PURE__ */ createElement(Asset, {\n\t\t...asset,\n\t\tkey: `tsr-scripts-${asset.tag}-${i}`\n\t})) });\n}\n//#endregion\nexport { Scripts };\n\n//# sourceMappingURL=Scripts.js.map","\"use client\";\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\n//#region src/QueryClientProvider.tsx\n/**\n* The context that `useQueryClient` reads from. `QueryClientProvider` is the normal way to set it.\n*/\nconst QueryClientContext = React.createContext(void 0);\n/**\n* The `useQueryClient` hook returns the current `QueryClient` instance.\n*\n* @param queryClient - Use this to use a custom `QueryClient`. Otherwise, the one from the nearest context will\n* be used.\n* @returns The current `QueryClient` instance.\n* @throws If no `queryClient` argument is passed and no `QueryClientProvider` is found in the component tree.\n*/\nconst useQueryClient = (queryClient) => {\n\tconst client = React.useContext(QueryClientContext);\n\tif (queryClient) return queryClient;\n\tif (!client) throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n\treturn client;\n};\n/**\n* Use the `QueryClientProvider` component to connect and provide a `QueryClient` to your application. Also\n* calls `client.mount()`/`client.unmount()` as this component mounts/unmounts, which subscribes the client to\n* focus/online events (resuming any paused mutations and refetching as needed when the app regains focus or\n* comes back online).\n*\n* @returns The provided `children`, wrapped so they can read the `QueryClient` via `useQueryClient`.\n*\n* @example\n* ```tsx\n* import { QueryClient, QueryClientProvider } from '@tanstack/react-query'\n*\n* const queryClient = new QueryClient()\n*\n* function App() {\n* return <QueryClientProvider client={queryClient}>...</QueryClientProvider>\n* }\n* ```\n*/\nconst QueryClientProvider = ({ client, children }) => {\n\tReact.useEffect(() => {\n\t\tclient.mount();\n\t\treturn () => {\n\t\t\tclient.unmount();\n\t\t};\n\t}, [client]);\n\treturn /* @__PURE__ */ jsx(QueryClientContext.Provider, {\n\t\tvalue: client,\n\t\tchildren\n\t});\n};\n//#endregion\nexport { QueryClientContext, QueryClientProvider, useQueryClient };\n\n//# sourceMappingURL=QueryClientProvider.js.map","//#region src/timeoutManager.ts\nconst defaultTimeoutProvider = {\n\tsetTimeout: (callback, delay) => setTimeout(callback, delay),\n\tclearTimeout: (timeoutId) => clearTimeout(timeoutId),\n\tsetInterval: (callback, delay) => setInterval(callback, delay),\n\tclearInterval: (intervalId) => clearInterval(intervalId)\n};\n/**\n* Allows customization of how timeouts are created.\n*\n* @tanstack/query-core makes liberal use of timeouts to implement `staleTime`\n* and `gcTime`. The default TimeoutManager provider uses the platform's global\n* `setTimeout` implementation, which is known to have scalability issues with\n* thousands of timeouts on the event loop.\n*\n* If you hit this limitation, consider providing a custom TimeoutProvider that\n* coalesces timeouts.\n*/\nvar TimeoutManager = class {\n\t#provider = defaultTimeoutProvider;\n\t#providerCalled = false;\n\t/**\n\t* `setTimeoutProvider` can be used to set a custom implementation of the\n\t* `setTimeout`, `clearTimeout`, `setInterval`, `clearInterval` functions,\n\t* called a `TimeoutProvider`.\n\t*\n\t* This may be useful if you notice event loop performance issues with\n\t* thousands of queries. A custom TimeoutProvider could also support timer\n\t* delays longer than the global `setTimeout` maximum delay value of about\n\t* 24 days.\n\t*\n\t* It is important to call `setTimeoutProvider` before creating a\n\t* QueryClient or queries, so that the same provider is used consistently\n\t* for all timers in the application, since different TimeoutProviders\n\t* cannot cancel each others' timers.\n\t*\n\t* @example\n\t* ```ts\n\t* import { timeoutManager, QueryClient } from '@tanstack/query-core'\n\t* import { CustomTimeoutProvider } from './CustomTimeoutProvider'\n\t*\n\t* timeoutManager.setTimeoutProvider(new CustomTimeoutProvider())\n\t*\n\t* export const queryClient = new QueryClient()\n\t* ```\n\t*/\n\tsetTimeoutProvider(provider) {\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (this.#providerCalled && provider !== this.#provider) console.error(`[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`, {\n\t\t\t\tprevious: this.#provider,\n\t\t\t\tprovider\n\t\t\t});\n\t\t}\n\t\tthis.#provider = provider;\n\t\tif (process.env.NODE_ENV !== \"production\") this.#providerCalled = false;\n\t}\n\t/**\n\t* `setTimeout` schedules a callback to run after approximately `delay`\n\t* milliseconds, like the global `setTimeout` function. The callback can be\n\t* canceled with `clearTimeout`.\n\t*\n\t* It returns a timer ID, which may be a number or an object that can be\n\t* coerced to a number via `Symbol.toPrimitive`.\n\t*\n\t* @example\n\t* ```ts\n\t* import { timeoutManager } from '@tanstack/query-core'\n\t*\n\t* const timeoutId = timeoutManager.setTimeout(\n\t* () => console.log('ran at:', new Date()),\n\t* 1000,\n\t* )\n\t*\n\t* const timeoutIdNumber: number = Number(timeoutId)\n\t* ```\n\t*/\n\tsetTimeout(callback, delay) {\n\t\tif (process.env.NODE_ENV !== \"production\") this.#providerCalled = true;\n\t\treturn this.#provider.setTimeout(callback, delay);\n\t}\n\t/**\n\t* `clearTimeout` cancels a timeout callback scheduled with `setTimeout`,\n\t* like the global `clearTimeout` function. It should be called with a\n\t* timer ID returned by `setTimeout`.\n\t*\n\t* @example\n\t* ```ts\n\t* import { timeoutManager } from '@tanstack/query-core'\n\t*\n\t* const timeoutId = timeoutManager.setTimeout(\n\t* () => console.log('ran at:', new Date()),\n\t* 1000,\n\t* )\n\t*\n\t* timeoutManager.clearTimeout(timeoutId)\n\t* ```\n\t*/\n\tclearTimeout(timeoutId) {\n\t\tthis.#provider.clearTimeout(timeoutId);\n\t}\n\t/**\n\t* `setInterval` schedules a callback to be called approximately every\n\t* `delay` milliseconds, like the global `setInterval` function.\n\t*\n\t* Like `setTimeout`, it returns a timer ID, which may be a number or an\n\t* object that can be coerced to a number via `Symbol.toPrimitive`.\n\t*\n\t* @example\n\t* ```ts\n\t* import { timeoutManager } from '@tanstack/query-core'\n\t*\n\t* const intervalId = timeoutManager.setInterval(\n\t* () => console.log('ran at:', new Date()),\n\t* 1000,\n\t* )\n\t* ```\n\t*/\n\tsetInterval(callback, delay) {\n\t\tif (process.env.NODE_ENV !== \"production\") this.#providerCalled = true;\n\t\treturn this.#provider.setInterval(callback, delay);\n\t}\n\t/**\n\t* `clearInterval` can be used to cancel an interval, like the global\n\t* `clearInterval` function. It should be called with an interval ID\n\t* returned by `setInterval`.\n\t*\n\t* @example\n\t* ```ts\n\t* import { timeoutManager } from '@tanstack/query-core'\n\t*\n\t* const intervalId = timeoutManager.setInterval(\n\t* () => console.log('ran at:', new Date()),\n\t* 1000,\n\t* )\n\t*\n\t* timeoutManager.clearInterval(intervalId)\n\t* ```\n\t*/\n\tclearInterval(intervalId) {\n\t\tthis.#provider.clearInterval(intervalId);\n\t}\n};\n/**\n* Singleton instance of {@link TimeoutManager}, used throughout TanStack Query to schedule and cancel timers.\n*/\nconst timeoutManager = new TimeoutManager();\n/**\n* In many cases code wants to delay to the next event loop tick; this is not\n* mediated by {@link timeoutManager}.\n*\n* This function is provided to make auditing the `tanstack/query-core` for\n* incorrect use of system `setTimeout` easier.\n*/\nfunction systemSetTimeoutZero(callback) {\n\tsetTimeout(callback, 0);\n}\n//#endregion\nexport { TimeoutManager, defaultTimeoutProvider, systemSetTimeoutZero, timeoutManager };\n\n//# sourceMappingURL=timeoutManager.js.map","import { timeoutManager } from \"./timeoutManager.js\";\n//#region src/utils.ts\n/** @deprecated\n* use `environmentManager.isServer()` instead.\n*/\nconst isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {}\nfunction functionalUpdate(updater, input) {\n\treturn typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n\treturn typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n\treturn Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveQueryValue(value, query) {\n\treturn typeof value === \"function\" ? value(query) : value;\n}\n/**\n* Checks whether a query matches the given {@link QueryFilters}.\n* Every filter that is specified must match; filters that are left unspecified are ignored.\n*\n* @example\n* ```ts\n* const queryCache = queryClient.getQueryCache()\n*\n* const matchingQueries = queryCache\n* .getAll()\n* .filter((query) => matchQuery({ queryKey: ['posts'] }, query))\n* ```\n*/\nfunction matchQuery(filters, query) {\n\tconst { type = \"all\", exact, fetchStatus, predicate, queryKey, stale } = filters;\n\tif (queryKey) {\n\t\tif (exact) {\n\t\t\tif (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) return false;\n\t\t} else if (!partialMatchKey(query.queryKey, queryKey)) return false;\n\t}\n\tif (type !== \"all\") {\n\t\tconst isActive = query.isActive();\n\t\tif (type === \"active\" && !isActive) return false;\n\t\tif (type === \"inactive\" && isActive) return false;\n\t}\n\tif (typeof stale === \"boolean\" && query.isStale() !== stale) return false;\n\tif (fetchStatus && fetchStatus !== query.state.fetchStatus) return false;\n\tif (predicate && !predicate(query)) return false;\n\treturn true;\n}\n/**\n* Checks whether a mutation matches the given {@link MutationFilters}.\n* Every filter that is specified must match; filters that are left unspecified are ignored.\n* If a `mutationKey` filter is provided but the mutation has no `mutationKey` of its own, it does not match.\n*\n* @example\n* ```ts\n* const mutationCache = queryClient.getMutationCache()\n*\n* const matchingMutations = mutationCache\n* .getAll()\n* .filter((mutation) => matchMutation({ mutationKey: ['addPost'] }, mutation))\n* ```\n*/\nfunction matchMutation(filters, mutation) {\n\tconst { exact, status, predicate, mutationKey } = filters;\n\tif (mutationKey) {\n\t\tif (!mutation.options.mutationKey) return false;\n\t\tif (exact) {\n\t\t\tif (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) return false;\n\t\t} else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) return false;\n\t}\n\tif (status && mutation.state.status !== status) return false;\n\tif (predicate && !predicate(mutation)) return false;\n\treturn true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n\treturn (options?.queryKeyHashFn || hashKey)(queryKey);\n}\n/**\n* Default query & mutation keys hash function.\n* Hashes the value into a stable hash.\n*\n* @example\n* ```ts\n* // Object keys are sorted, so key order doesn't affect the hash:\n* hashKey(['todos', { page: 1, filter: 'done' }]) // === '[\"todos\",{\"filter\":\"done\",\"page\":1}]'\n* ```\n*/\nfunction hashKey(queryKey) {\n\treturn JSON.stringify(queryKey, (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n\t\tresult[key] = val[key];\n\t\treturn result;\n\t}, {}) : val);\n}\nfunction partialMatchKey(a, b) {\n\tif (a === b) return true;\n\tif (typeof a !== typeof b) return false;\n\tif (a && b && typeof a === \"object\" && typeof b === \"object\") {\n\t\tif (Array.isArray(a) && Array.isArray(b)) {\n\t\t\tif (b.length > a.length) return false;\n\t\t\tfor (let i = 0; i < b.length; i++) if (!partialMatchKey(a[i], b[i])) return false;\n\t\t\treturn true;\n\t\t}\n\t\tconst bKeys = Object.keys(b);\n\t\tfor (const key of bKeys) if (!partialMatchKey(a[key], b[key])) return false;\n\t\treturn true;\n\t}\n\treturn false;\n}\nconst hasOwn = Object.prototype.hasOwnProperty;\nfunction replaceEqualDeep(a, b, depth = 0) {\n\tif (a === b) return a;\n\tif (depth > 500) return b;\n\tconst array = isPlainArray(a) && isPlainArray(b);\n\tif (!array && !(isPlainObject(a) && isPlainObject(b))) return b;\n\tconst aSize = (array ? a : Object.keys(a)).length;\n\tconst bItems = array ? b : Object.keys(b);\n\tconst bSize = bItems.length;\n\tconst copy = array ? new Array(bSize) : {};\n\tlet equalItems = 0;\n\tfor (let i = 0; i < bSize; i++) {\n\t\tconst key = array ? i : bItems[i];\n\t\tconst aItem = a[key];\n\t\tconst bItem = b[key];\n\t\tif (aItem === bItem) {\n\t\t\tcopy[key] = aItem;\n\t\t\tif (array ? i < aSize : hasOwn.call(a, key)) equalItems++;\n\t\t\tcontinue;\n\t\t}\n\t\tif (aItem === null || bItem === null || typeof aItem !== \"object\" || typeof bItem !== \"object\") {\n\t\t\tcopy[key] = bItem;\n\t\t\tcontinue;\n\t\t}\n\t\tconst v = replaceEqualDeep(aItem, bItem, depth + 1);\n\t\tcopy[key] = v;\n\t\tif (v === aItem) equalItems++;\n\t}\n\treturn aSize === bSize && equalItems === aSize ? a : copy;\n}\n/**\n* Shallow compare objects.\n*/\nfunction shallowEqualObjects(a, b) {\n\tif (!b || Object.keys(a).length !== Object.keys(b).length) return false;\n\tfor (const key in a) if (a[key] !== b[key]) return false;\n\treturn true;\n}\nfunction isPlainArray(value) {\n\treturn Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n\tif (!hasObjectPrototype(o)) return false;\n\tconst objectPrototype = Object.getPrototypeOf(o);\n\tconst ctor = objectPrototype?.constructor;\n\tif (ctor === void 0) return true;\n\tif (typeof ctor !== \"function\") return false;\n\tconst prot = ctor.prototype;\n\tif (!hasObjectPrototype(prot)) return false;\n\tif (!prot.hasOwnProperty(\"isPrototypeOf\")) return false;\n\tif (objectPrototype !== Object.prototype) return false;\n\treturn true;\n}\nfunction hasObjectPrototype(o) {\n\treturn Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n\treturn new Promise((resolve) => {\n\t\ttimeoutManager.setTimeout(resolve, timeout);\n\t});\n}\nfunction replaceData(prevData, data, options) {\n\tif (typeof options.structuralSharing === \"function\") return options.structuralSharing(prevData, data);\n\telse if (options.structuralSharing !== false) {\n\t\tif (process.env.NODE_ENV !== \"production\") try {\n\t\t\treturn replaceEqualDeep(prevData, data);\n\t\t} catch (error) {\n\t\t\tconsole.error(`Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`);\n\t\t\tthrow error;\n\t\t}\n\t\treturn replaceEqualDeep(prevData, data);\n\t}\n\treturn data;\n}\n/**\n* Intended to be passed as a query's `placeholderData` option, for example\n* `placeholderData: keepPreviousData`. Instead of resetting the query's data to `undefined` while a new\n* query key is fetching, it keeps displaying the previously fetched data until the new data arrives.\n*\n* @example\n* ```ts\n* new QueryObserver(queryClient, {\n* queryKey: ['posts', page],\n* queryFn: () => fetchPosts(page),\n* placeholderData: keepPreviousData,\n* })\n* ```\n*/\nfunction keepPreviousData(previousData) {\n\treturn previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n\tconst newItems = [...items, item];\n\treturn max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n\tconst newItems = [item, ...items];\n\treturn max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\n/**\n* Sentinel value that can be passed as a query's `queryFn` to conditionally disable the query (equivalent\n* to `enabled: false`) while preserving full type inference for the query's data. Unlike `enabled: false`,\n* a query disabled via `skipToken` cannot be triggered with `refetch`.\n*\n* @example\n* ```ts\n* new QueryObserver(queryClient, {\n* queryKey: ['post', postId],\n* queryFn: postId != null ? () => fetchPost(postId) : skipToken,\n* })\n* ```\n*/\nconst skipToken = Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tif (options.queryFn === skipToken) console.error(`Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`);\n\t}\n\tif (!options.queryFn && fetchOptions?.initialPromise) return () => fetchOptions.initialPromise;\n\tif (!options.queryFn || options.queryFn === skipToken) return () => Promise.reject(/* @__PURE__ */ new Error(`Missing queryFn: '${options.queryHash}'`));\n\treturn options.queryFn;\n}\n/**\n* Resolves a `throwOnError` option to a boolean.\n* If `throwOnError` is a function, it is called with `params` (e.g. the error and, depending on the caller,\n* additional context such as the query or mutation) and its result is returned, allowing the throwing\n* behavior to be decided per error. Otherwise, `throwOnError` itself is coerced to a boolean (`undefined`\n* resolves to `false`).\n*\n* @example\n* ```ts\n* const throwOnError =\n* query.state.error && typeof options.throwOnError === 'function'\n* ? shouldThrowError(options.throwOnError, [query.state.error, query])\n* : options.throwOnError\n* ```\n*/\nfunction shouldThrowError(throwOnError, params) {\n\tif (typeof throwOnError === \"function\") return throwOnError(...params);\n\treturn !!throwOnError;\n}\nfunction addConsumeAwareSignal(object, getSignal, onCancelled) {\n\tlet consumed = false;\n\tlet signal;\n\tObject.defineProperty(object, \"signal\", {\n\t\tenumerable: true,\n\t\tget: () => {\n\t\t\tsignal ??= getSignal();\n\t\t\tif (consumed) return signal;\n\t\t\tconsumed = true;\n\t\t\tif (signal.aborted) onCancelled();\n\t\t\telse signal.addEventListener(\"abort\", onCancelled, { once: true });\n\t\t\treturn signal;\n\t\t}\n\t});\n\treturn object;\n}\n//#endregion\nexport { addConsumeAwareSignal, addToEnd, addToStart, ensureQueryFn, functionalUpdate, hashKey, hashQueryKeyByOptions, isPlainArray, isPlainObject, isServer, isValidTimeout, keepPreviousData, matchMutation, matchQuery, noop, partialMatchKey, replaceData, replaceEqualDeep, resolveQueryValue, shallowEqualObjects, shouldThrowError, skipToken, sleep, timeUntilStale };\n\n//# sourceMappingURL=utils.js.map","import { isServer as isServer$1 } from \"./utils.js\";\n//#region src/environmentManager.ts\nlet isServerFn = () => isServer$1;\n/**\n* Returns whether the current runtime should be treated as a server environment.\n*/\nconst isServer = () => isServerFn();\n/**\n* Manages how TanStack Query detects whether the current runtime should be treated as\n* server-side, which disables scheduling refetch timers and changes the default `retry` count\n* and `gcTime`. By default, the detection treats a missing `window` (or the presence of a\n* `Deno` global) as server.\n*\n* Override this for runtimes where that default detection would give the wrong answer — for\n* example, a Service Worker, where `window` is undefined even though the environment should\n* behave like a client.\n*\n* @example\n* ```ts\n* import { environmentManager } from '@tanstack/query-core'\n*\n* environmentManager.setIsServer(() => false)\n* ```\n*/\nconst environmentManager = {\n\tisServer,\n\t/**\n\t* Overrides the server check globally.\n\t*/\n\tsetIsServer(isServerValue) {\n\t\tisServerFn = isServerValue;\n\t}\n};\n//#endregion\nexport { environmentManager, isServer };\n\n//# sourceMappingURL=environmentManager.js.map","//#region src/subscribable.ts\n/**\n* The base class behind everything in Query that you can subscribe to: `QueryCache`, `MutationCache`,\n* the observers, and the `FocusManager`/`OnlineManager` behind `focusManager` and `onlineManager`.\n* Subclasses decide what a listener receives and when it is called.\n*/\nvar Subscribable = class {\n\tconstructor() {\n\t\tthis.listeners = /* @__PURE__ */ new Set();\n\t\tthis.subscribe = this.subscribe.bind(this);\n\t}\n\t/**\n\t* Registers a listener to be called on every update this object notifies about. Returns a function\n\t* that removes the listener again — call it to stop listening. The base class never drops a listener\n\t* on its own, though some subclasses clear all of theirs in `destroy()`.\n\t* @param listener - Called on each update, with whatever the subclass passes to its subscribers.\n\t* @example\n\t* ```ts\n\t* const unsubscribe = subscribable.subscribe(() => {\n\t* // react to the update\n\t* })\n\t*\n\t* unsubscribe()\n\t* ```\n\t*/\n\tsubscribe(listener) {\n\t\tthis.listeners.add(listener);\n\t\tthis.onSubscribe();\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t\tthis.onUnsubscribe();\n\t\t};\n\t}\n\t/**\n\t* Returns `true` while at least one listener is registered, `false` once they have all unsubscribed.\n\t*/\n\thasListeners() {\n\t\treturn this.listeners.size > 0;\n\t}\n\tonSubscribe() {}\n\tonUnsubscribe() {}\n};\n//#endregion\nexport { Subscribable };\n\n//# sourceMappingURL=subscribable.js.map","import { Subscribable } from \"./subscribable.js\";\n//#region src/focusManager.ts\n/**\n* The `FocusManager` manages the focus state within TanStack Query.\n*\n* It can be used to change the default event listeners or to manually change the focus state.\n*/\nvar FocusManager = class extends Subscribable {\n\t#focused;\n\t#cleanup;\n\t#setup;\n\tconstructor() {\n\t\tsuper();\n\t\tthis.#setup = (onFocus) => {\n\t\t\tif (typeof window !== \"undefined\" && window.addEventListener) {\n\t\t\t\tconst listener = () => onFocus();\n\t\t\t\twindow.addEventListener(\"visibilitychange\", listener, false);\n\t\t\t\treturn () => {\n\t\t\t\t\twindow.removeEventListener(\"visibilitychange\", listener);\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tonSubscribe() {\n\t\tif (!this.#cleanup) this.setEventListener(this.#setup);\n\t}\n\tonUnsubscribe() {\n\t\tif (!this.hasListeners()) {\n\t\t\tthis.#cleanup?.();\n\t\t\tthis.#cleanup = void 0;\n\t\t}\n\t}\n\t/**\n\t* `setEventListener` can be used to set a custom event listener that will\n\t* be used to determine the focus state. The provided `setup` function\n\t* receives a `setFocused` callback: call it with a `boolean` to manually\n\t* set the focus state, or with no arguments to re-evaluate the current\n\t* focus state and notify subscribers.\n\t*\n\t* @example\n\t* ```ts\n\t* import { focusManager } from '@tanstack/query-core'\n\t*\n\t* focusManager.setEventListener((handleFocus) => {\n\t* const listener = () => handleFocus()\n\t* // Listen to visibilitychange\n\t* if (typeof window !== 'undefined' && window.addEventListener) {\n\t* window.addEventListener('visibilitychange', listener, false)\n\t* }\n\t*\n\t* return () => {\n\t* // Be sure to unsubscribe if a new handler is set\n\t* window.removeEventListener('visibilitychange', listener)\n\t* }\n\t* })\n\t* ```\n\t*/\n\tsetEventListener(setup) {\n\t\tthis.#setup = setup;\n\t\tthis.#cleanup?.();\n\t\tthis.#cleanup = setup((focused) => {\n\t\t\tif (typeof focused === \"boolean\") this.setFocused(focused);\n\t\t\telse this.onFocus();\n\t\t});\n\t}\n\t/**\n\t* `setFocused` can be used to manually set the focus state. Set `undefined`\n\t* to fall back to the default focus check.\n\t*\n\t* @example\n\t* ```ts\n\t* import { focusManager } from '@tanstack/query-core'\n\t*\n\t* // Set focused\n\t* focusManager.setFocused(true)\n\t*\n\t* // Set unfocused\n\t* focusManager.setFocused(false)\n\t*\n\t* // Fallback to the default focus check\n\t* focusManager.setFocused(undefined)\n\t* ```\n\t*/\n\tsetFocused(focused) {\n\t\tif (this.#focused !== focused) {\n\t\t\tthis.#focused = focused;\n\t\t\tthis.onFocus();\n\t\t}\n\t}\n\t/**\n\t* `onFocus` notifies all subscribed listeners with the current focus state.\n\t*/\n\tonFocus() {\n\t\tconst isFocused = this.isFocused();\n\t\tthis.listeners.forEach((listener) => {\n\t\t\tlistener(isFocused);\n\t\t});\n\t}\n\t/**\n\t* `isFocused` can be used to get the current focus state.\n\t*/\n\tisFocused() {\n\t\tif (typeof this.#focused === \"boolean\") return this.#focused;\n\t\treturn globalThis.document?.visibilityState !== \"hidden\";\n\t}\n};\n/**\n* Singleton instance of {@link FocusManager}, used to manage and observe the focus state within TanStack Query.\n*/\nconst focusManager = new FocusManager();\n//#endregion\nexport { FocusManager, focusManager };\n\n//# sourceMappingURL=focusManager.js.map","import { systemSetTimeoutZero } from \"./timeoutManager.js\";\n//#region src/notifyManager.ts\n/**\n* Default scheduling function used by the notify manager.\n* Schedules the callback with the system's `setTimeout(callback, 0)`.\n*/\nconst defaultScheduler = systemSetTimeoutZero;\nfunction createNotifyManager() {\n\tlet queue = [];\n\tlet transactions = 0;\n\tlet notifyFn = (callback) => {\n\t\tcallback();\n\t};\n\tlet batchNotifyFn = (callback) => {\n\t\tcallback();\n\t};\n\tlet scheduleFn = defaultScheduler;\n\tconst schedule = (callback) => {\n\t\tif (transactions) queue.push(callback);\n\t\telse scheduleFn(() => {\n\t\t\tnotifyFn(callback);\n\t\t});\n\t};\n\tconst flush = () => {\n\t\tconst originalQueue = queue;\n\t\tqueue = [];\n\t\tif (originalQueue.length) scheduleFn(() => {\n\t\t\tbatchNotifyFn(() => {\n\t\t\t\toriginalQueue.forEach((callback) => {\n\t\t\t\t\tnotifyFn(callback);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t};\n\treturn {\n\t\t/**\n\t\t* Batches all updates scheduled inside the passed callback.\n\t\t* This is mainly used internally to optimize query client updating.\n\t\t* Batches can be nested; the queue is only flushed once the outermost `batch` call finishes.\n\t\t* The return value of `callback` is passed through.\n\t\t*/\n\t\tbatch: (callback) => {\n\t\t\tlet result;\n\t\t\ttransactions++;\n\t\t\ttry {\n\t\t\t\tresult = callback();\n\t\t\t} finally {\n\t\t\t\ttransactions--;\n\t\t\t\tif (!transactions) flush();\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\t/**\n\t\t* All calls to the wrapped function will be batched.\n\t\t*/\n\t\tbatchCalls: (callback) => {\n\t\t\treturn (...args) => {\n\t\t\t\tschedule(() => {\n\t\t\t\t\tcallback(...args);\n\t\t\t\t});\n\t\t\t};\n\t\t},\n\t\t/**\n\t\t* Schedules a function to be run on the next batch.\n\t\t* By default, the batch is run with a `setTimeout`, but this can be configured via `setScheduler`.\n\t\t*/\n\t\tschedule,\n\t\t/**\n\t\t* Use this method to set a custom notify function.\n\t\t* This can be used to for example wrap notifications with `React.act` while running tests.\n\t\t*/\n\t\tsetNotifyFunction: (fn) => {\n\t\t\tnotifyFn = fn;\n\t\t},\n\t\t/**\n\t\t* Use this method to set a custom function to batch notifications together into a single tick.\n\t\t* Framework adapters use this to plug in their own batching primitive, so that a single query\n\t\t* update only triggers one re-render instead of one per subscriber.\n\t\t*\n\t\t* @example\n\t\t* ```ts\n\t\t* import { notifyManager } from '@tanstack/query-core'\n\t\t* import { batch } from 'solid-js'\n\t\t*\n\t\t* notifyManager.setBatchNotifyFunction(batch)\n\t\t* ```\n\t\t*/\n\t\tsetBatchNotifyFunction: (fn) => {\n\t\t\tbatchNotifyFn = fn;\n\t\t},\n\t\t/**\n\t\t* Configures a custom callback that schedules when the next batch runs.\n\t\t* The default behavior is `setTimeout(callback, 0)`.\n\t\t*\n\t\t* @example\n\t\t* ```ts\n\t\t* import { notifyManager } from '@tanstack/query-core'\n\t\t*\n\t\t* // Schedule batches in the next microtask\n\t\t* notifyManager.setScheduler(queueMicrotask)\n\t\t*\n\t\t* // Schedule batches before the next frame is rendered\n\t\t* notifyManager.setScheduler(requestAnimationFrame)\n\t\t*\n\t\t* // Schedule batches some time in the future\n\t\t* notifyManager.setScheduler((cb) => setTimeout(cb, 10))\n\t\t* ```\n\t\t*/\n\t\tsetScheduler: (fn) => {\n\t\t\tscheduleFn = fn;\n\t\t}\n\t};\n}\n/**\n* Handles scheduling and batching callbacks in TanStack Query.\n*/\nconst notifyManager = createNotifyManager();\n//#endregion\nexport { createNotifyManager, defaultScheduler, notifyManager };\n\n//# sourceMappingURL=notifyManager.js.map","import { Subscribable } from \"./subscribable.js\";\n//#region src/onlineManager.ts\n/**\n* The `OnlineManager` manages the online state within TanStack Query. It can\n* be used to change the default event listeners or to manually change the\n* online state.\n*\n* By default, the `onlineManager` assumes an active network connection, and\n* listens to the `online` and `offline` events on the `window` object to\n* detect changes.\n*/\nvar OnlineManager = class extends Subscribable {\n\t#online = true;\n\t#cleanup;\n\t#setup;\n\tconstructor() {\n\t\tsuper();\n\t\tthis.#setup = (onOnline) => {\n\t\t\tif (typeof window !== \"undefined\" && window.addEventListener) {\n\t\t\t\tconst onlineListener = () => onOnline(true);\n\t\t\t\tconst offlineListener = () => onOnline(false);\n\t\t\t\twindow.addEventListener(\"online\", onlineListener, false);\n\t\t\t\twindow.addEventListener(\"offline\", offlineListener, false);\n\t\t\t\treturn () => {\n\t\t\t\t\twindow.removeEventListener(\"online\", onlineListener);\n\t\t\t\t\twindow.removeEventListener(\"offline\", offlineListener);\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tonSubscribe() {\n\t\tif (!this.#cleanup) this.setEventListener(this.#setup);\n\t}\n\tonUnsubscribe() {\n\t\tif (!this.hasListeners()) {\n\t\t\tthis.#cleanup?.();\n\t\t\tthis.#cleanup = void 0;\n\t\t}\n\t}\n\t/**\n\t* `setEventListener` can be used to set a custom event listener that will\n\t* be used to determine the online state. The provided `setup` function\n\t* receives a `setOnline` callback that should be called with a `boolean`\n\t* whenever the online state changes.\n\t*\n\t* @example\n\t* ```ts\n\t* import NetInfo from '@react-native-community/netinfo'\n\t* import { onlineManager } from '@tanstack/query-core'\n\t*\n\t* onlineManager.setEventListener((setOnline) => {\n\t* return NetInfo.addEventListener((state) => {\n\t* setOnline(!!state.isConnected)\n\t* })\n\t* })\n\t* ```\n\t*/\n\tsetEventListener(setup) {\n\t\tthis.#setup = setup;\n\t\tthis.#cleanup?.();\n\t\tthis.#cleanup = setup(this.setOnline.bind(this));\n\t}\n\t/**\n\t* `setOnline` can be used to manually set the online state.\n\t*\n\t* @example\n\t* ```ts\n\t* import { onlineManager } from '@tanstack/query-core'\n\t*\n\t* // Set to online\n\t* onlineManager.setOnline(true)\n\t*\n\t* // Set to offline\n\t* onlineManager.setOnline(false)\n\t* ```\n\t*/\n\tsetOnline(online) {\n\t\tif (this.#online !== online) {\n\t\t\tthis.#online = online;\n\t\t\tthis.listeners.forEach((listener) => {\n\t\t\t\tlistener(online);\n\t\t\t});\n\t\t}\n\t}\n\t/**\n\t* `isOnline` can be used to get the current online state.\n\t*/\n\tisOnline() {\n\t\treturn this.#online;\n\t}\n};\n/**\n* Singleton instance of {@link OnlineManager}, used to manage and observe the online state within TanStack Query.\n*/\nconst onlineManager = new OnlineManager();\n//#endregion\nexport { OnlineManager, onlineManager };\n\n//# sourceMappingURL=onlineManager.js.map","import { noop, sleep } from \"./utils.js\";\nimport { isServer } from \"./environmentManager.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\n//#region src/retryer.ts\nfunction defaultRetryDelay(failureCount) {\n\treturn Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n\treturn (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\n/**\n* The error thrown by a `Retryer` (and surfaced to `query.promise`/`mutation`) when a fetch is cancelled, e.g. via\n* `query.cancel()`. `revert`, if `true`, tells the caller to restore the state the query was in before the fetch\n* started instead of surfacing the error. `silent`, if `true`, tells the caller to suppress this error and instead\n* resolve with the promise of the fetch that triggered the cancellation.\n* @example\n* ```ts\n* query.cancel()\n*\n* try {\n* await query.promise\n* } catch (error) {\n* if (error instanceof CancelledError) {\n* // the fetch was cancelled, e.g. via `query.cancel()`\n* }\n* }\n* ```\n*/\nvar CancelledError = class extends Error {\n\tconstructor(options) {\n\t\tsuper(\"CancelledError\");\n\t\tthis.revert = options?.revert;\n\t\tthis.silent = options?.silent;\n\t}\n};\n/**\n* @deprecated Use instanceof `CancelledError` instead.\n*/\nfunction isCancelledError(value) {\n\treturn value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n\tlet isRetryCancelled = false;\n\tlet failureCount = 0;\n\tlet continueFn;\n\tlet status = \"pending\";\n\tlet promiseResolve;\n\tlet promiseReject;\n\tconst promise = new Promise((resolve, reject) => {\n\t\tpromiseResolve = resolve;\n\t\tpromiseReject = reject;\n\t});\n\tpromise.catch(noop);\n\tconst isResolved = () => status !== \"pending\";\n\tconst cancel = (cancelOptions) => {\n\t\tif (!isResolved()) {\n\t\t\tconst error = new CancelledError(cancelOptions);\n\t\t\treject(error);\n\t\t\tconfig.onCancel?.(error);\n\t\t}\n\t};\n\tconst cancelRetry = () => {\n\t\tisRetryCancelled = true;\n\t};\n\tconst continueRetry = () => {\n\t\tisRetryCancelled = false;\n\t};\n\tconst canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n\tconst canStart = () => canFetch(config.networkMode) && config.canRun();\n\tconst resolve = (value) => {\n\t\tif (!isResolved()) {\n\t\t\tcontinueFn?.();\n\t\t\tstatus = \"resolved\";\n\t\t\tpromiseResolve(value);\n\t\t}\n\t};\n\tconst reject = (value) => {\n\t\tif (!isResolved()) {\n\t\t\tcontinueFn?.();\n\t\t\tstatus = \"rejected\";\n\t\t\tpromiseReject(value);\n\t\t}\n\t};\n\tconst pause = () => {\n\t\treturn new Promise((continueResolve) => {\n\t\t\tcontinueFn = (value) => {\n\t\t\t\tif (isResolved() || canContinue()) continueResolve(value);\n\t\t\t};\n\t\t\tconfig.onPause?.();\n\t\t}).then(() => {\n\t\t\tcontinueFn = void 0;\n\t\t\tif (!isResolved()) config.onContinue?.();\n\t\t});\n\t};\n\tconst run = () => {\n\t\tif (isResolved()) return;\n\t\tlet promiseOrValue;\n\t\tconst initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n\t\ttry {\n\t\t\tpromiseOrValue = initialPromise ?? config.fn();\n\t\t} catch (error) {\n\t\t\tpromiseOrValue = Promise.reject(error);\n\t\t}\n\t\tPromise.resolve(promiseOrValue).then(resolve).catch((error) => {\n\t\t\tif (isResolved()) return;\n\t\t\tconst retry = config.retry ?? (isServer() ? 0 : 3);\n\t\t\tconst retryDelay = config.retryDelay ?? defaultRetryDelay;\n\t\t\tconst delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n\t\t\tconst shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n\t\t\tif (isRetryCancelled || !shouldRetry) {\n\t\t\t\treject(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tfailureCount++;\n\t\t\tconfig.onFail?.(failureCount, error);\n\t\t\tsleep(delay).then(() => {\n\t\t\t\treturn canContinue() ? void 0 : pause();\n\t\t\t}).then(() => {\n\t\t\t\tif (isRetryCancelled) reject(error);\n\t\t\t\telse run();\n\t\t\t});\n\t\t});\n\t};\n\treturn {\n\t\tpromise,\n\t\tstatus: () => status,\n\t\tcancel,\n\t\tcontinue: () => {\n\t\t\tcontinueFn?.();\n\t\t\treturn promise;\n\t\t},\n\t\tcancelRetry,\n\t\tcontinueRetry,\n\t\tcanStart,\n\t\tstart: () => {\n\t\t\tif (canStart()) run();\n\t\t\telse pause().then(run);\n\t\t\treturn promise;\n\t\t}\n\t};\n}\n//#endregion\nexport { CancelledError, canFetch, createRetryer, isCancelledError };\n\n//# sourceMappingURL=retryer.js.map","import { timeoutManager } from \"./timeoutManager.js\";\nimport { isValidTimeout } from \"./utils.js\";\nimport { isServer } from \"./environmentManager.js\";\n//#region src/removable.ts\n/**\n* The base class for cache entries that are garbage collected once nothing is using them —\n* `Query` and `Mutation` both extend it. `gcTime` controls how long an unused entry is kept.\n*/\nvar Removable = class {\n\t#gcTimeout;\n\t/**\n\t* Clears the pending garbage collection timeout, so the entry is no longer scheduled for removal.\n\t* A subclass may override this to release what it holds on to as well — `Query` also cancels any\n\t* in-flight fetch.\n\t*/\n\tdestroy() {\n\t\tthis.clearGcTimeout();\n\t}\n\tscheduleGc() {\n\t\tthis.clearGcTimeout();\n\t\tif (isValidTimeout(this.gcTime)) this.#gcTimeout = timeoutManager.setTimeout(() => {\n\t\t\tthis.optionalRemove();\n\t\t}, this.gcTime);\n\t}\n\tupdateGcTime(newGcTime) {\n\t\tthis.gcTime = Math.max(this.gcTime || 0, newGcTime ?? (isServer() ? Infinity : 3e5));\n\t}\n\tclearGcTimeout() {\n\t\tif (this.#gcTimeout !== void 0) {\n\t\t\ttimeoutManager.clearTimeout(this.#gcTimeout);\n\t\t\tthis.#gcTimeout = void 0;\n\t\t}\n\t}\n};\n//#endregion\nexport { Removable };\n\n//# sourceMappingURL=removable.js.map","import { addConsumeAwareSignal, addToEnd, addToStart, ensureQueryFn } from \"./utils.js\";\n//#region src/infiniteQueryBehavior.ts\nfunction infiniteQueryBehavior(pages) {\n\treturn { onFetch: (context, query) => {\n\t\tconst options = context.options;\n\t\tconst direction = context.fetchOptions?.meta?.fetchMore?.direction;\n\t\tconst oldPages = context.state.data?.pages || [];\n\t\tconst oldPageParams = context.state.data?.pageParams || [];\n\t\tlet result = {\n\t\t\tpages: [],\n\t\t\tpageParams: []\n\t\t};\n\t\tlet currentPage = 0;\n\t\tconst fetchFn = async () => {\n\t\t\tlet cancelled = false;\n\t\t\tconst addSignalProperty = (object) => {\n\t\t\t\taddConsumeAwareSignal(object, () => context.signal, () => cancelled = true);\n\t\t\t};\n\t\t\tconst queryFn = ensureQueryFn(context.options, context.fetchOptions);\n\t\t\tconst fetchPage = async (data, param, previous) => {\n\t\t\t\tif (cancelled) return Promise.reject(context.signal.reason);\n\t\t\t\tif (param == null && data.pages.length) return Promise.resolve(data);\n\t\t\t\tconst createQueryFnContext = () => {\n\t\t\t\t\tconst queryFnContext = {\n\t\t\t\t\t\tclient: context.client,\n\t\t\t\t\t\tqueryKey: context.queryKey,\n\t\t\t\t\t\tpageParam: param,\n\t\t\t\t\t\tdirection: previous ? \"backward\" : \"forward\",\n\t\t\t\t\t\tmeta: context.options.meta\n\t\t\t\t\t};\n\t\t\t\t\taddSignalProperty(queryFnContext);\n\t\t\t\t\treturn queryFnContext;\n\t\t\t\t};\n\t\t\t\tconst queryFnContext = createQueryFnContext();\n\t\t\t\tconst page = await queryFn(queryFnContext);\n\t\t\t\tconst { maxPages } = context.options;\n\t\t\t\tconst addTo = previous ? addToStart : addToEnd;\n\t\t\t\treturn {\n\t\t\t\t\tpages: addTo(data.pages, page, maxPages),\n\t\t\t\t\tpageParams: addTo(data.pageParams, param, maxPages)\n\t\t\t\t};\n\t\t\t};\n\t\t\tif (direction && oldPages.length) {\n\t\t\t\tconst previous = direction === \"backward\";\n\t\t\t\tconst pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n\t\t\t\tconst oldData = {\n\t\t\t\t\tpages: oldPages,\n\t\t\t\t\tpageParams: oldPageParams\n\t\t\t\t};\n\t\t\t\tresult = await fetchPage(oldData, pageParamFn(options, oldData), previous);\n\t\t\t} else {\n\t\t\t\tconst remainingPages = pages ?? oldPages.length;\n\t\t\t\tdo {\n\t\t\t\t\tconst param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n\t\t\t\t\tif (currentPage > 0 && param == null) break;\n\t\t\t\t\tresult = await fetchPage(result, param);\n\t\t\t\t\tcurrentPage++;\n\t\t\t\t} while (currentPage < remainingPages);\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t\tif (context.options.persister) context.fetchFn = () => {\n\t\t\treturn context.options.persister?.(fetchFn, {\n\t\t\t\tclient: context.client,\n\t\t\t\tqueryKey: context.queryKey,\n\t\t\t\tmeta: context.options.meta,\n\t\t\t\tsignal: context.signal\n\t\t\t}, query);\n\t\t};\n\t\telse context.fetchFn = fetchFn;\n\t} };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n\tconst lastIndex = pages.length - 1;\n\treturn pages.length > 0 ? options.getNextPageParam(pages[lastIndex], pages, pageParams[lastIndex], pageParams) : void 0;\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n\treturn pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n}\n/**\n* Checks if there is a next page.\n*/\nfunction hasNextPage(options, data) {\n\tif (!data) return false;\n\treturn getNextPageParam(options, data) != null;\n}\n/**\n* Checks if there is a previous page.\n*/\nfunction hasPreviousPage(options, data) {\n\tif (!data || !options.getPreviousPageParam) return false;\n\treturn getPreviousPageParam(options, data) != null;\n}\n//#endregion\nexport { hasNextPage, hasPreviousPage, infiniteQueryBehavior };\n\n//# sourceMappingURL=infiniteQueryBehavior.js.map","import { ensureQueryFn, noop, replaceData, resolveQueryValue, skipToken, timeUntilStale } from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { CancelledError, canFetch, createRetryer } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\n//#region src/query.ts\n/**\n* Represents a single cached query. A `Query` holds the query's key, options,\n* state (data/error/status), and the observers currently subscribed to it.\n*\n* Instances are created and managed internally by `QueryCache`; application\n* code typically interacts with queries indirectly through `QueryClient` or\n* a framework hook like `useQuery`. Direct access to a `Query` instance is\n* possible via `queryCache.find()`/`findAll()` for inspecting cache state.\n*\n* @example\n* ```ts\n* const queryCache = queryClient.getQueryCache()\n* const query = queryCache.find({ queryKey: ['posts'] })\n*\n* if (query) {\n* console.log(query.state.dataUpdatedAt)\n* }\n* ```\n*/\nvar Query = class extends Removable {\n\t#queryType;\n\t#initialState;\n\t#revertState;\n\t#cache;\n\t#client;\n\t#retryer;\n\t#defaultOptions;\n\t#abortSignalConsumed;\n\tconstructor(config) {\n\t\tsuper();\n\t\tthis.#abortSignalConsumed = false;\n\t\tthis.#defaultOptions = config.defaultOptions;\n\t\tthis.setOptions(config.options);\n\t\tthis.observers = [];\n\t\tthis.#client = config.client;\n\t\tthis.#cache = this.#client.getQueryCache();\n\t\tthis.queryKey = config.queryKey;\n\t\tthis.queryHash = config.queryHash;\n\t\tthis.#initialState = getDefaultState(this.options);\n\t\tthis.state = config.state ?? this.#initialState;\n\t\tthis.scheduleGc();\n\t}\n\t/**\n\t* The `meta` object passed in the query's options, if any.\n\t*/\n\tget meta() {\n\t\treturn this.options.meta;\n\t}\n\t/** @internal */\n\tget queryType() {\n\t\treturn this.#queryType;\n\t}\n\t/**\n\t* The promise for the currently in-flight fetch, if the query is fetching.\n\t* `undefined` when the query is not fetching.\n\t*/\n\tget promise() {\n\t\treturn this.#retryer?.promise;\n\t}\n\t/** @internal */\n\tsetOptions(options) {\n\t\tthis.options = {\n\t\t\t...this.#defaultOptions,\n\t\t\t...options\n\t\t};\n\t\tif (options?._type) this.#queryType = options._type;\n\t\tthis.updateGcTime(this.options.gcTime);\n\t\tif (this.state && this.state.data === void 0) {\n\t\t\tconst defaultState = getDefaultState(this.options);\n\t\t\tif (defaultState.data !== void 0) {\n\t\t\t\tthis.setState(successState(defaultState.data, defaultState.dataUpdatedAt));\n\t\t\t\tthis.#initialState = defaultState;\n\t\t\t}\n\t\t}\n\t}\n\toptionalRemove() {\n\t\tif (!this.observers.length && this.state.fetchStatus === \"idle\") this.#cache.remove(this);\n\t}\n\t/** @internal */\n\tsetData(newData, options) {\n\t\tconst data = replaceData(this.state.data, newData, this.options);\n\t\tthis.#dispatch({\n\t\t\tdata,\n\t\t\ttype: \"success\",\n\t\t\tdataUpdatedAt: options?.updatedAt,\n\t\t\tmanual: options?.manual\n\t\t});\n\t\treturn data;\n\t}\n\t/**\n\t* Merges the given partial state directly into this query's state, notifying observers. Used\n\t* by persistence and broadcast plugins to restore a state snapshot, and by devtools to let a\n\t* user manually trigger a loading/error state or edit the cached data.\n\t*/\n\tsetState(state) {\n\t\tthis.#dispatch({\n\t\t\ttype: \"setState\",\n\t\t\tstate\n\t\t});\n\t}\n\t/**\n\t* Cancels the query's currently in-flight fetch, if any.\n\t* - Returns a promise that resolves once the cancellation has settled.\n\t* - If no fetch is in progress, resolves immediately.\n\t*\n\t* @example\n\t* ```ts\n\t* await query.cancel()\n\t* ```\n\t*/\n\tcancel(options) {\n\t\tconst promise = this.#retryer?.promise;\n\t\tthis.#retryer?.cancel(options);\n\t\treturn promise ? promise.then(noop).catch(noop) : Promise.resolve();\n\t}\n\t/**\n\t* Clears the query's garbage collection timeout and silently cancels any\n\t* in-flight fetch. Called by `QueryCache` when the query is removed from\n\t* the cache.\n\t*\n\t* @see {@link Query#cancel}\n\t*/\n\tdestroy() {\n\t\tsuper.destroy();\n\t\tthis.cancel({ silent: true });\n\t}\n\t/** @internal */\n\tget resetState() {\n\t\treturn this.#initialState;\n\t}\n\t/**\n\t* Resets the query back to its initial state (the state it had when it was\n\t* first created, e.g. any `initialData`), destroying it first to cancel any\n\t* in-flight fetch.\n\t*/\n\treset() {\n\t\tthis.destroy();\n\t\tthis.setState(this.resetState);\n\t}\n\t/**\n\t* Returns `true` if the query has at least one observer for which `enabled`\n\t* does not resolve to `false`.\n\t*/\n\tisActive() {\n\t\treturn this.observers.some((observer) => resolveQueryValue(observer.options.enabled, this) !== false);\n\t}\n\t/**\n\t* Returns `true` if the query is disabled, meaning it will not fetch\n\t* automatically.\n\t* - If the query has observers, it is disabled when none of them are active\n\t* (see `isActive`).\n\t* - If the query has no observers, it is disabled when its `queryFn` is\n\t* `skipToken` or it has never been fetched.\n\t*/\n\tisDisabled() {\n\t\tif (this.getObserversCount() > 0) return !this.isActive();\n\t\treturn this.options.queryFn === skipToken || !this.isFetched();\n\t}\n\t/**\n\t* Returns `true` if the query has been fetched, i.e. it has resolved with\n\t* either data or an error at least once.\n\t*/\n\tisFetched() {\n\t\treturn this.state.dataUpdateCount + this.state.errorUpdateCount > 0;\n\t}\n\t/**\n\t* Returns `true` if the query has at least one observer configured with\n\t* `staleTime: 'static'`, meaning it is treated as never stale.\n\t*/\n\tisStatic() {\n\t\tif (this.getObserversCount() > 0) return this.observers.some((observer) => resolveQueryValue(observer.options.staleTime, this) === \"static\");\n\t\treturn false;\n\t}\n\t/**\n\t* Returns `true` if the query is stale.\n\t* - If the query has observers, defers to whether any observer's current\n\t* result reports `isStale` (which accounts for each observer's own\n\t* `staleTime` and `enabled` state).\n\t* - If the query has no observers, it is considered stale when it has no\n\t* data or has been invalidated.\n\t*\n\t* @see {@link Query#isStaleByTime}\n\t* @example\n\t* ```ts\n\t* if (query.isStale()) {\n\t* // refetch or otherwise treat the cached data as outdated\n\t* }\n\t* ```\n\t*/\n\tisStale() {\n\t\tif (this.getObserversCount() > 0) return this.observers.some((observer) => observer.getCurrentResult().isStale);\n\t\treturn this.state.data === void 0 || this.state.isInvalidated;\n\t}\n\t/**\n\t* Returns `true` if the query's data is stale relative to the given\n\t* `staleTime` (defaults to `0`).\n\t* - A query with no data is always stale.\n\t* - `staleTime: 'static'` is never stale.\n\t* - An invalidated query is always stale.\n\t* - Otherwise, staleness is based on elapsed time since `dataUpdatedAt`.\n\t*\n\t* @see {@link Query#isStale}\n\t* @example\n\t* ```ts\n\t* const isStale = query.isStaleByTime(1000 * 60)\n\t* ```\n\t*/\n\tisStaleByTime(staleTime = 0) {\n\t\tif (this.state.data === void 0) return true;\n\t\tif (staleTime === \"static\") return false;\n\t\tif (this.state.isInvalidated) return true;\n\t\treturn !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n\t}\n\t/** @internal */\n\tonFocus() {\n\t\tthis.observers.find((x) => x.shouldFetchOnWindowFocus())?.refetch({ cancelRefetch: false });\n\t\tthis.#retryer?.continue();\n\t}\n\t/** @internal */\n\tonOnline() {\n\t\tthis.observers.find((x) => x.shouldFetchOnReconnect())?.refetch({ cancelRefetch: false });\n\t\tthis.#retryer?.continue();\n\t}\n\t/** @internal */\n\taddObserver(observer) {\n\t\tif (!this.observers.includes(observer)) {\n\t\t\tthis.observers.push(observer);\n\t\t\tthis.clearGcTimeout();\n\t\t\tthis.#cache.notify({\n\t\t\t\ttype: \"observerAdded\",\n\t\t\t\tquery: this,\n\t\t\t\tobserver\n\t\t\t});\n\t\t}\n\t}\n\t/** @internal */\n\tremoveObserver(observer) {\n\t\tconst index = this.observers.indexOf(observer);\n\t\tif (index !== -1) {\n\t\t\tthis.observers.splice(index, 1);\n\t\t\tif (!this.observers.length) {\n\t\t\t\tif (this.#retryer) {\n\t\t\t\t\tif (this.#abortSignalConsumed || this.state.fetchStatus === \"paused\" && this.state.status === \"pending\") this.#retryer.cancel({ revert: true });\n\t\t\t\t\telse this.#retryer.cancelRetry();\n\t\t\t\t}\n\t\t\t\tthis.scheduleGc();\n\t\t\t}\n\t\t\tthis.#cache.notify({\n\t\t\t\ttype: \"observerRemoved\",\n\t\t\t\tquery: this,\n\t\t\t\tobserver\n\t\t\t});\n\t\t}\n\t}\n\t/**\n\t* Returns the number of observers currently subscribed to this query.\n\t*\n\t* @example\n\t* ```ts\n\t* if (query.getObserversCount() === 0) {\n\t* // no component is currently watching this query\n\t* }\n\t* ```\n\t*/\n\tgetObserversCount() {\n\t\treturn this.observers.length;\n\t}\n\t/**\n\t* Marks the query as invalidated, unless it is already invalidated. This\n\t* updates `state.isInvalidated` and notifies observers, but does not by\n\t* itself trigger a refetch.\n\t*\n\t* @example\n\t* ```ts\n\t* query.invalidate()\n\t* ```\n\t*/\n\tinvalidate() {\n\t\tif (!this.state.isInvalidated) this.#dispatch({ type: \"invalidate\" });\n\t}\n\t/**\n\t* Fetches the query, i.e. runs its `queryFn` (through any configured\n\t* retryer/behavior) and updates the query's state with the result.\n\t* - If a fetch is already in flight, returns its promise instead of\n\t* starting a new one, unless `fetchOptions.cancelRefetch` is set and the\n\t* query already has data, in which case the current fetch is silently\n\t* cancelled first.\n\t* - If `options` is passed, it replaces the query's current options\n\t* before fetching.\n\t*/\n\tasync fetch(options, fetchOptions) {\n\t\tif (this.state.fetchStatus !== \"idle\" && this.#retryer?.status() !== \"rejected\") {\n\t\t\tif (this.state.data !== void 0 && fetchOptions?.cancelRefetch) this.cancel({ silent: true });\n\t\t\telse if (this.#retryer) {\n\t\t\t\tthis.#retryer.continueRetry();\n\t\t\t\treturn this.#retryer.promise;\n\t\t\t}\n\t\t}\n\t\tif (options) this.setOptions(options);\n\t\tif (!this.options.queryFn) {\n\t\t\tconst observer = this.observers.find((x) => x.options.queryFn);\n\t\t\tif (observer) this.setOptions(observer.options);\n\t\t}\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (!Array.isArray(this.options.queryKey)) console.error(`As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`);\n\t\t}\n\t\tconst abortController = new AbortController();\n\t\tconst addSignalProperty = (object) => {\n\t\t\tObject.defineProperty(object, \"signal\", {\n\t\t\t\tenumerable: true,\n\t\t\t\tget: () => {\n\t\t\t\t\tthis.#abortSignalConsumed = true;\n\t\t\t\t\treturn abortController.signal;\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t\tconst fetchFn = () => {\n\t\t\tconst queryFn = ensureQueryFn(this.options, fetchOptions);\n\t\t\tconst createQueryFnContext = () => {\n\t\t\t\tconst queryFnContext = {\n\t\t\t\t\tclient: this.#client,\n\t\t\t\t\tqueryKey: this.queryKey,\n\t\t\t\t\tmeta: this.meta\n\t\t\t\t};\n\t\t\t\taddSignalProperty(queryFnContext);\n\t\t\t\treturn queryFnContext;\n\t\t\t};\n\t\t\tconst queryFnContext = createQueryFnContext();\n\t\t\tthis.#abortSignalConsumed = false;\n\t\t\tif (this.options.persister) return this.options.persister(queryFn, queryFnContext, this);\n\t\t\treturn queryFn(queryFnContext);\n\t\t};\n\t\tconst createFetchContext = () => {\n\t\t\tconst context = {\n\t\t\t\tfetchOptions,\n\t\t\t\toptions: this.options,\n\t\t\t\tqueryKey: this.queryKey,\n\t\t\t\tclient: this.#client,\n\t\t\t\tstate: this.state,\n\t\t\t\tfetchFn\n\t\t\t};\n\t\t\taddSignalProperty(context);\n\t\t\treturn context;\n\t\t};\n\t\tconst context = createFetchContext();\n\t\t(this.#queryType === \"infinite\" ? infiniteQueryBehavior(this.options.pages) : this.options.behavior)?.onFetch(context, this);\n\t\tthis.#revertState = this.state;\n\t\tif (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) this.#dispatch({\n\t\t\ttype: \"fetch\",\n\t\t\tmeta: context.fetchOptions?.meta\n\t\t});\n\t\tconst retryer = this.#retryer = createRetryer({\n\t\t\tinitialPromise: fetchOptions?.initialPromise,\n\t\t\tfn: context.fetchFn,\n\t\t\tonCancel: (error) => {\n\t\t\t\tif (error instanceof CancelledError && error.revert) this.setState({\n\t\t\t\t\t...this.#revertState,\n\t\t\t\t\tfetchStatus: \"idle\"\n\t\t\t\t});\n\t\t\t\tabortController.abort();\n\t\t\t},\n\t\t\tonFail: (failureCount, error) => {\n\t\t\t\tthis.#dispatch({\n\t\t\t\t\ttype: \"failed\",\n\t\t\t\t\tfailureCount,\n\t\t\t\t\terror\n\t\t\t\t});\n\t\t\t},\n\t\t\tonPause: () => {\n\t\t\t\tthis.#dispatch({ type: \"pause\" });\n\t\t\t},\n\t\t\tonContinue: () => {\n\t\t\t\tthis.#dispatch({ type: \"continue\" });\n\t\t\t},\n\t\t\tretry: context.options.retry,\n\t\t\tretryDelay: context.options.retryDelay,\n\t\t\tnetworkMode: context.options.networkMode,\n\t\t\tcanRun: () => true\n\t\t});\n\t\ttry {\n\t\t\tconst data = await retryer.start();\n\t\t\tif (data === void 0) {\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") console.error(`Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`);\n\t\t\t\tthrow new Error(`${this.queryHash} data is undefined`);\n\t\t\t}\n\t\t\tthis.setData(data);\n\t\t\tthis.#cache.config.onSuccess?.(data, this);\n\t\t\tthis.#cache.config.onSettled?.(data, this.state.error, this);\n\t\t\treturn data;\n\t\t} catch (error) {\n\t\t\tif (error instanceof CancelledError) {\n\t\t\t\tif (error.silent) return this.#retryer.promise;\n\t\t\t\telse if (error.revert) {\n\t\t\t\t\tif (this.state.data === void 0) throw error;\n\t\t\t\t\treturn this.state.data;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.#dispatch({\n\t\t\t\ttype: \"error\",\n\t\t\t\terror\n\t\t\t});\n\t\t\tthis.#cache.config.onError?.(error, this);\n\t\t\tthis.#cache.config.onSettled?.(this.state.data, error, this);\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (this.#retryer === retryer) this.#retryer = void 0;\n\t\t\tthis.scheduleGc();\n\t\t}\n\t}\n\t#dispatch(action) {\n\t\tconst reducer = (state) => {\n\t\t\tswitch (action.type) {\n\t\t\t\tcase \"failed\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tfetchFailureCount: action.failureCount,\n\t\t\t\t\tfetchFailureReason: action.error\n\t\t\t\t};\n\t\t\t\tcase \"pause\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tfetchStatus: \"paused\"\n\t\t\t\t};\n\t\t\t\tcase \"continue\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tfetchStatus: \"fetching\"\n\t\t\t\t};\n\t\t\t\tcase \"fetch\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\t...fetchState(state.data, this.options),\n\t\t\t\t\tfetchMeta: action.meta ?? null\n\t\t\t\t};\n\t\t\t\tcase \"success\":\n\t\t\t\t\tconst newState = {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\t...successState(action.data, action.dataUpdatedAt),\n\t\t\t\t\t\tdataUpdateCount: state.dataUpdateCount + 1,\n\t\t\t\t\t\t...!action.manual && {\n\t\t\t\t\t\t\tfetchStatus: \"idle\",\n\t\t\t\t\t\t\tfetchFailureCount: 0,\n\t\t\t\t\t\t\tfetchFailureReason: null\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\tthis.#revertState = action.manual ? newState : void 0;\n\t\t\t\t\treturn newState;\n\t\t\t\tcase \"error\":\n\t\t\t\t\tconst error = action.error;\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\terrorUpdateCount: state.errorUpdateCount + 1,\n\t\t\t\t\t\terrorUpdatedAt: Date.now(),\n\t\t\t\t\t\tfetchFailureCount: state.fetchFailureCount + 1,\n\t\t\t\t\t\tfetchFailureReason: error,\n\t\t\t\t\t\tfetchStatus: \"idle\",\n\t\t\t\t\t\tstatus: \"error\",\n\t\t\t\t\t\tisInvalidated: true\n\t\t\t\t\t};\n\t\t\t\tcase \"invalidate\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tisInvalidated: true\n\t\t\t\t};\n\t\t\t\tcase \"setState\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\t...action.state\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t\tthis.state = reducer(this.state);\n\t\tnotifyManager.batch(() => {\n\t\t\tthis.observers.slice().forEach((observer) => {\n\t\t\t\tobserver.onQueryUpdate();\n\t\t\t});\n\t\t\tthis.#cache.notify({\n\t\t\t\tquery: this,\n\t\t\t\ttype: \"updated\",\n\t\t\t\taction\n\t\t\t});\n\t\t});\n\t}\n};\nfunction fetchState(data, options) {\n\treturn {\n\t\tfetchFailureCount: 0,\n\t\tfetchFailureReason: null,\n\t\tfetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n\t\t...data === void 0 && {\n\t\t\terror: null,\n\t\t\tstatus: \"pending\"\n\t\t}\n\t};\n}\nfunction successState(data, dataUpdatedAt) {\n\treturn {\n\t\tdata,\n\t\tdataUpdatedAt: dataUpdatedAt ?? Date.now(),\n\t\terror: null,\n\t\tisInvalidated: false,\n\t\tstatus: \"success\"\n\t};\n}\nfunction getDefaultState(options) {\n\tconst data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n\tconst hasData = data !== void 0;\n\tconst initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n\treturn {\n\t\tdata,\n\t\tdataUpdateCount: 0,\n\t\tdataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n\t\terror: null,\n\t\terrorUpdateCount: 0,\n\t\terrorUpdatedAt: 0,\n\t\tfetchFailureCount: 0,\n\t\tfetchFailureReason: null,\n\t\tfetchMeta: null,\n\t\tisInvalidated: false,\n\t\tstatus: hasData ? \"success\" : \"pending\",\n\t\tfetchStatus: \"idle\"\n\t};\n}\n//#endregion\nexport { Query, fetchState };\n\n//# sourceMappingURL=query.js.map","import { notifyManager } from \"./notifyManager.js\";\nimport { createRetryer } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\n//#region src/mutation.ts\n/**\n* Represents a single mutation attempt. A `Mutation` holds the mutation's\n* options, state (data/error/status), and the `MutationObserver`s currently\n* subscribed to it.\n*\n* Instances are created and managed internally by `MutationCache`; application\n* code typically interacts with mutations indirectly through `QueryClient` or\n* a framework hook like `useMutation`. Direct access to a `Mutation` instance\n* is possible via `mutationCache.find()`/`getAll()` for inspecting cache state.\n*\n* @example\n* ```ts\n* const mutationCache = queryClient.getMutationCache()\n*\n* const mutation = mutationCache.find({ mutationKey: ['addPost'] })\n* ```\n*/\nvar Mutation = class extends Removable {\n\t#client;\n\t#observers;\n\t#mutationCache;\n\t#retryer;\n\tconstructor(config) {\n\t\tsuper();\n\t\tthis.#client = config.client;\n\t\tthis.mutationId = config.mutationId;\n\t\tthis.#mutationCache = config.mutationCache;\n\t\tthis.#observers = [];\n\t\tthis.state = config.state || getDefaultState();\n\t\tthis.setOptions(config.options);\n\t\tthis.scheduleGc();\n\t}\n\t/** @internal */\n\tsetOptions(options) {\n\t\tthis.options = options;\n\t\tthis.updateGcTime(this.options.gcTime);\n\t}\n\t/**\n\t* The `meta` object passed in the mutation's options, if any.\n\t*/\n\tget meta() {\n\t\treturn this.options.meta;\n\t}\n\t/** @internal */\n\taddObserver(observer) {\n\t\tif (!this.#observers.includes(observer)) {\n\t\t\tthis.#observers.push(observer);\n\t\t\tthis.clearGcTimeout();\n\t\t\tthis.#mutationCache.notify({\n\t\t\t\ttype: \"observerAdded\",\n\t\t\t\tmutation: this,\n\t\t\t\tobserver\n\t\t\t});\n\t\t}\n\t}\n\t/** @internal */\n\tremoveObserver(observer) {\n\t\tthis.#observers = this.#observers.filter((x) => x !== observer);\n\t\tthis.scheduleGc();\n\t\tthis.#mutationCache.notify({\n\t\t\ttype: \"observerRemoved\",\n\t\t\tmutation: this,\n\t\t\tobserver\n\t\t});\n\t}\n\toptionalRemove() {\n\t\tif (!this.#observers.length) {\n\t\t\tif (this.state.status === \"pending\") this.scheduleGc();\n\t\t\telse this.#mutationCache.remove(this);\n\t\t}\n\t}\n\t/**\n\t* Resumes a mutation that is currently paused or was restored from a\n\t* dehydrated, still-`pending` state.\n\t*\n\t* - If this mutation has an active retryer (it paused mid-attempt, e.g. due\n\t* to the network mode or scope-based queuing), its retryer is resumed.\n\t* - Otherwise, if the mutation's status is still `pending` (e.g. it was\n\t* dehydrated while an attempt was in flight and never got a retryer in\n\t* this instance), `execute` is called again with the last known variables.\n\t* - Otherwise the mutation has already settled and this resolves immediately\n\t* without running anything again.\n\t*\n\t* @example\n\t* ```ts\n\t* // typically driven by reconnect handling, e.g. queryClient.resumePausedMutations()\n\t* const mutation = mutationCache.find({ mutationKey: ['addPost'] })\n\t* await mutation?.continue()\n\t* ```\n\t*\n\t* @see {@link Mutation#execute}\n\t*/\n\tcontinue() {\n\t\treturn this.#retryer?.continue() ?? (this.state.status === \"pending\" ? this.execute(this.state.variables) : Promise.resolve());\n\t}\n\t/**\n\t* Runs the mutation function for the given variables through a retryer, and\n\t* drives the mutation's state and lifecycle callbacks through to settlement.\n\t*\n\t* If this mutation's state is already `pending` when `execute` is called\n\t* (i.e. it was restored, still in-flight, from a dehydrated state), the\n\t* `onMutate` step is skipped and a `continue` action is dispatched to\n\t* unpause it; otherwise a `pending` action is dispatched first, then the\n\t* mutation cache's `onMutate` and the mutation's own `onMutate` option are\n\t* awaited in that order, and the resulting context is stored.\n\t*\n\t* The mutation function is then run (subject to `retry`/`retryDelay`/\n\t* `networkMode`, and to the mutation cache's scope-based serialization).\n\t* On success, the cache's `onSuccess`/`onSettled` callbacks run before the\n\t* mutation's own `onSuccess`/`onSettled` options, a `success` action is\n\t* dispatched, and the resolved data is returned. On failure, the same\n\t* cache-then-option ordering is used for `onError`/`onSettled`, but each of\n\t* those four callbacks is individually caught so that a throwing callback\n\t* cannot mask the original error; an `error` action is then dispatched and\n\t* the original error is re-thrown.\n\t*\n\t* @example\n\t* ```ts\n\t* // Called internally by `MutationObserver.mutate` and `Mutation.continue` —\n\t* // applications normally trigger mutations through those, not this method.\n\t* const data = await mutation.execute(variables)\n\t* ```\n\t*\n\t* @see {@link Mutation#continue}\n\t*/\n\tasync execute(variables) {\n\t\tconst onContinue = () => {\n\t\t\tthis.#dispatch({ type: \"continue\" });\n\t\t};\n\t\tconst mutationFnContext = {\n\t\t\tclient: this.#client,\n\t\t\tmeta: this.options.meta,\n\t\t\tmutationKey: this.options.mutationKey\n\t\t};\n\t\tconst retryer = this.#retryer = createRetryer({\n\t\t\tfn: () => {\n\t\t\t\tif (!this.options.mutationFn) return Promise.reject(/* @__PURE__ */ new Error(\"No mutationFn found\"));\n\t\t\t\treturn this.options.mutationFn(variables, mutationFnContext);\n\t\t\t},\n\t\t\tonFail: (failureCount, error) => {\n\t\t\t\tthis.#dispatch({\n\t\t\t\t\ttype: \"failed\",\n\t\t\t\t\tfailureCount,\n\t\t\t\t\terror\n\t\t\t\t});\n\t\t\t},\n\t\t\tonPause: () => {\n\t\t\t\tthis.#dispatch({ type: \"pause\" });\n\t\t\t},\n\t\t\tonContinue,\n\t\t\tretry: this.options.retry ?? 0,\n\t\t\tretryDelay: this.options.retryDelay,\n\t\t\tnetworkMode: this.options.networkMode,\n\t\t\tcanRun: () => this.#mutationCache.canRun(this)\n\t\t});\n\t\tconst restored = this.state.status === \"pending\";\n\t\tconst isPaused = !retryer.canStart();\n\t\ttry {\n\t\t\tif (restored) onContinue();\n\t\t\telse {\n\t\t\t\tthis.#dispatch({\n\t\t\t\t\ttype: \"pending\",\n\t\t\t\t\tvariables,\n\t\t\t\t\tisPaused\n\t\t\t\t});\n\t\t\t\tif (this.#mutationCache.config.onMutate) await this.#mutationCache.config.onMutate(variables, this, mutationFnContext);\n\t\t\t\tconst context = await this.options.onMutate?.(variables, mutationFnContext);\n\t\t\t\tif (context !== this.state.context) this.#dispatch({\n\t\t\t\t\ttype: \"pending\",\n\t\t\t\t\tcontext,\n\t\t\t\t\tvariables,\n\t\t\t\t\tisPaused\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst data = await retryer.start();\n\t\t\tawait this.#mutationCache.config.onSuccess?.(data, variables, this.state.context, this, mutationFnContext);\n\t\t\tawait this.options.onSuccess?.(data, variables, this.state.context, mutationFnContext);\n\t\t\tawait this.#mutationCache.config.onSettled?.(data, null, this.state.variables, this.state.context, this, mutationFnContext);\n\t\t\tawait this.options.onSettled?.(data, null, variables, this.state.context, mutationFnContext);\n\t\t\tthis.#dispatch({\n\t\t\t\ttype: \"success\",\n\t\t\t\tdata\n\t\t\t});\n\t\t\treturn data;\n\t\t} catch (error) {\n\t\t\ttry {\n\t\t\t\tawait this.#mutationCache.config.onError?.(error, variables, this.state.context, this, mutationFnContext);\n\t\t\t} catch (e) {\n\t\t\t\tPromise.reject(e);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait this.options.onError?.(error, variables, this.state.context, mutationFnContext);\n\t\t\t} catch (e) {\n\t\t\t\tPromise.reject(e);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait this.#mutationCache.config.onSettled?.(void 0, error, this.state.variables, this.state.context, this, mutationFnContext);\n\t\t\t} catch (e) {\n\t\t\t\tPromise.reject(e);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait this.options.onSettled?.(void 0, error, variables, this.state.context, mutationFnContext);\n\t\t\t} catch (e) {\n\t\t\t\tPromise.reject(e);\n\t\t\t}\n\t\t\tthis.#dispatch({\n\t\t\t\ttype: \"error\",\n\t\t\t\terror\n\t\t\t});\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tif (this.#retryer === retryer) this.#retryer = void 0;\n\t\t\tthis.#mutationCache.runNext(this);\n\t\t}\n\t}\n\t#dispatch(action) {\n\t\tconst reducer = (state) => {\n\t\t\tswitch (action.type) {\n\t\t\t\tcase \"failed\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tfailureCount: action.failureCount,\n\t\t\t\t\tfailureReason: action.error\n\t\t\t\t};\n\t\t\t\tcase \"pause\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tisPaused: true\n\t\t\t\t};\n\t\t\t\tcase \"continue\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tisPaused: false\n\t\t\t\t};\n\t\t\t\tcase \"pending\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tcontext: action.context,\n\t\t\t\t\tdata: void 0,\n\t\t\t\t\tfailureCount: 0,\n\t\t\t\t\tfailureReason: null,\n\t\t\t\t\terror: null,\n\t\t\t\t\tisPaused: action.isPaused,\n\t\t\t\t\tstatus: \"pending\",\n\t\t\t\t\tvariables: action.variables,\n\t\t\t\t\tsubmittedAt: Date.now()\n\t\t\t\t};\n\t\t\t\tcase \"success\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tdata: action.data,\n\t\t\t\t\tfailureCount: 0,\n\t\t\t\t\tfailureReason: null,\n\t\t\t\t\terror: null,\n\t\t\t\t\tstatus: \"success\",\n\t\t\t\t\tisPaused: false\n\t\t\t\t};\n\t\t\t\tcase \"error\": return {\n\t\t\t\t\t...state,\n\t\t\t\t\tdata: void 0,\n\t\t\t\t\terror: action.error,\n\t\t\t\t\tfailureCount: state.failureCount + 1,\n\t\t\t\t\tfailureReason: action.error,\n\t\t\t\t\tisPaused: false,\n\t\t\t\t\tstatus: \"error\"\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t\tthis.state = reducer(this.state);\n\t\tnotifyManager.batch(() => {\n\t\t\tthis.#observers.forEach((observer) => {\n\t\t\t\tobserver.onMutationUpdate(action);\n\t\t\t});\n\t\t\tthis.#mutationCache.notify({\n\t\t\t\tmutation: this,\n\t\t\t\ttype: \"updated\",\n\t\t\t\taction\n\t\t\t});\n\t\t});\n\t}\n};\nfunction getDefaultState() {\n\treturn {\n\t\tcontext: void 0,\n\t\tdata: void 0,\n\t\terror: null,\n\t\tfailureCount: 0,\n\t\tfailureReason: null,\n\t\tisPaused: false,\n\t\tstatus: \"idle\",\n\t\tvariables: void 0,\n\t\tsubmittedAt: 0\n\t};\n}\n//#endregion\nexport { Mutation, getDefaultState };\n\n//# sourceMappingURL=mutation.js.map","import { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\n//#region src/mutationCache.ts\n/**\n* The `MutationCache` is the storage for mutations.\n*\n* Normally, you will not interact with the `MutationCache` directly and instead use a\n* `QueryClient`. You can subscribe to it (inherited from `Subscribable`) to be informed of\n* safe/known updates to the cache, such as mutations being added, removed, or updated.\n*\n* @example\n* ```ts\n* const unsubscribe = mutationCache.subscribe((event) => {\n* console.log(event.type, event.mutation)\n* })\n* ```\n*/\nvar MutationCache = class extends Subscribable {\n\t#mutations;\n\t#scopes;\n\t#mutationId;\n\tconstructor(config = {}) {\n\t\tsuper();\n\t\tthis.config = config;\n\t\tthis.#mutations = /* @__PURE__ */ new Set();\n\t\tthis.#scopes = /* @__PURE__ */ new Map();\n\t\tthis.#mutationId = 0;\n\t}\n\t/** @internal */\n\tbuild(client, options, state) {\n\t\tconst mutation = new Mutation({\n\t\t\tclient,\n\t\t\tmutationCache: this,\n\t\t\tmutationId: ++this.#mutationId,\n\t\t\toptions: client.defaultMutationOptions(options),\n\t\t\tstate\n\t\t});\n\t\tthis.add(mutation);\n\t\treturn mutation;\n\t}\n\t/** @internal */\n\tadd(mutation) {\n\t\tthis.#mutations.add(mutation);\n\t\tconst scope = scopeFor(mutation);\n\t\tif (typeof scope === \"string\") {\n\t\t\tconst scopedMutations = this.#scopes.get(scope);\n\t\t\tif (scopedMutations) scopedMutations.push(mutation);\n\t\t\telse this.#scopes.set(scope, [mutation]);\n\t\t}\n\t\tthis.notify({\n\t\t\ttype: \"added\",\n\t\t\tmutation\n\t\t});\n\t}\n\t/** @internal */\n\tremove(mutation) {\n\t\tif (this.#mutations.delete(mutation)) {\n\t\t\tconst scope = scopeFor(mutation);\n\t\t\tif (typeof scope === \"string\") {\n\t\t\t\tconst scopedMutations = this.#scopes.get(scope);\n\t\t\t\tif (scopedMutations) {\n\t\t\t\t\tif (scopedMutations.length > 1) {\n\t\t\t\t\t\tconst index = scopedMutations.indexOf(mutation);\n\t\t\t\t\t\tif (index !== -1) scopedMutations.splice(index, 1);\n\t\t\t\t\t} else if (scopedMutations[0] === mutation) this.#scopes.delete(scope);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.notify({\n\t\t\ttype: \"removed\",\n\t\t\tmutation\n\t\t});\n\t}\n\t/** @internal */\n\tcanRun(mutation) {\n\t\tconst scope = scopeFor(mutation);\n\t\tif (typeof scope === \"string\") {\n\t\t\tconst firstPendingMutation = this.#scopes.get(scope)?.find((m) => m.state.status === \"pending\");\n\t\t\treturn !firstPendingMutation || firstPendingMutation === mutation;\n\t\t} else return true;\n\t}\n\t/** @internal */\n\trunNext(mutation) {\n\t\tconst scope = scopeFor(mutation);\n\t\tif (typeof scope === \"string\") return (this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused))?.continue() ?? Promise.resolve();\n\t\telse return Promise.resolve();\n\t}\n\t/**\n\t* Removes all mutations from the cache.\n\t*\n\t* @example\n\t* ```ts\n\t* const mutationCache = queryClient.getMutationCache()\n\t*\n\t* mutationCache.clear()\n\t* ```\n\t*/\n\tclear() {\n\t\tnotifyManager.batch(() => {\n\t\t\tthis.#mutations.forEach((mutation) => {\n\t\t\t\tthis.notify({\n\t\t\t\t\ttype: \"removed\",\n\t\t\t\t\tmutation\n\t\t\t\t});\n\t\t\t});\n\t\t\tthis.#mutations.clear();\n\t\t\tthis.#scopes.clear();\n\t\t});\n\t}\n\t/**\n\t* Returns all mutations within the cache.\n\t*\n\t* This is not typically needed for most applications, but can come in handy when needing more\n\t* information about a mutation in rare scenarios.\n\t*\n\t* @example\n\t* ```ts\n\t* const mutationCache = queryClient.getMutationCache()\n\t*\n\t* const mutations = mutationCache.getAll()\n\t* ```\n\t*/\n\tgetAll() {\n\t\treturn Array.from(this.#mutations);\n\t}\n\t/**\n\t* A slightly more advanced method that can be used to get an existing mutation instance from\n\t* the cache. If the mutation does not exist, `undefined` is returned.\n\t*\n\t* This is not typically needed for most applications, but can come in handy when needing more\n\t* information about a mutation in rare scenarios.\n\t*\n\t* @see {@link MutationCache#findAll}\n\t* @example\n\t* ```ts\n\t* const mutationCache = queryClient.getMutationCache()\n\t*\n\t* const mutation = mutationCache.find({ mutationKey: ['addPost'] })\n\t* ```\n\t*/\n\tfind(filters) {\n\t\tconst defaultedFilters = {\n\t\t\texact: true,\n\t\t\t...filters\n\t\t};\n\t\treturn this.getAll().find((mutation) => matchMutation(defaultedFilters, mutation));\n\t}\n\t/**\n\t* An even more advanced method that can be used to get existing mutation instances from the\n\t* cache that match the given filters. If no mutations match, an empty array is returned.\n\t*\n\t* This is not typically needed for most applications, but can come in handy when needing more\n\t* information about mutations in rare scenarios.\n\t*\n\t* @see {@link MutationCache#find}\n\t* @example\n\t* ```ts\n\t* const mutationCache = queryClient.getMutationCache()\n\t*\n\t* const mutations = mutationCache.findAll({ mutationKey: ['addPost'] })\n\t* ```\n\t*/\n\tfindAll(filters = {}) {\n\t\treturn this.getAll().filter((mutation) => matchMutation(filters, mutation));\n\t}\n\t/** @internal */\n\tnotify(event) {\n\t\tnotifyManager.batch(() => {\n\t\t\tthis.listeners.forEach((listener) => {\n\t\t\t\tlistener(event);\n\t\t\t});\n\t\t});\n\t}\n\t/** @internal */\n\tresumePausedMutations() {\n\t\tconst pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n\t\treturn notifyManager.batch(() => Promise.all(pausedMutations.map((mutation) => mutation.continue().catch(noop))));\n\t}\n};\nfunction scopeFor(mutation) {\n\treturn mutation.options.scope?.id;\n}\n//#endregion\nexport { MutationCache };\n\n//# sourceMappingURL=mutationCache.js.map","import { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Query } from \"./query.js\";\n//#region src/queryCache.ts\n/**\n* The `QueryCache` is the storage mechanism for TanStack Query. It stores all the data, meta\n* information, and state of the queries it contains.\n*\n* Normally, you will not interact with the `QueryCache` directly and instead use a `QueryClient`\n* for a specific cache. You can subscribe to it (inherited from `Subscribable`) to be informed of\n* safe/known updates to the cache, such as queries being added, removed, or updated — updates made\n* outside of the cache's own tracked mechanisms (e.g. mutating a query's state object directly) do\n* not notify subscribers.\n*\n* @example\n* ```ts\n* const unsubscribe = queryCache.subscribe((event) => {\n* console.log(event.type, event.query)\n* })\n* ```\n*/\nvar QueryCache = class extends Subscribable {\n\t#queries;\n\tconstructor(config = {}) {\n\t\tsuper();\n\t\tthis.config = config;\n\t\tthis.#queries = /* @__PURE__ */ new Map();\n\t}\n\t/**\n\t* Returns the existing `Query` instance for the given options' `queryKey`/`queryHash`, or\n\t* builds and adds a new one to the cache if none exists yet. Used by framework adapters and\n\t* plugins (e.g. broadcast/persistence) that need to get-or-create a `Query` directly, bypassing\n\t* the reactive `QueryObserver` machinery.\n\t*\n\t* @example\n\t* ```ts\n\t* const queryCache = queryClient.getQueryCache()\n\t*\n\t* const query = queryCache.build(queryClient, {\n\t* queryKey: ['posts'],\n\t* queryFn: fetchPosts,\n\t* })\n\t* ```\n\t*/\n\tbuild(client, options, state) {\n\t\tconst queryKey = options.queryKey;\n\t\tconst queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n\t\tlet query = this.get(queryHash);\n\t\tif (!query) {\n\t\t\tquery = new Query({\n\t\t\t\tclient,\n\t\t\t\tqueryKey,\n\t\t\t\tqueryHash,\n\t\t\t\toptions: client.defaultQueryOptions(options),\n\t\t\t\tstate,\n\t\t\t\tdefaultOptions: client.getQueryDefaults(queryKey)\n\t\t\t});\n\t\t\tthis.add(query);\n\t\t}\n\t\treturn query;\n\t}\n\t/** @internal */\n\tadd(query) {\n\t\tif (!this.#queries.has(query.queryHash)) {\n\t\t\tthis.#queries.set(query.queryHash, query);\n\t\t\tthis.notify({\n\t\t\t\ttype: \"added\",\n\t\t\t\tquery\n\t\t\t});\n\t\t}\n\t}\n\t/**\n\t* Destroys the given `Query` and removes it from the cache, notifying subscribers with a\n\t* `'removed'` event. A no-op if the query is no longer the one currently stored under its hash\n\t* (e.g. it was already replaced). Used by plugins (e.g. the broadcast client) that mirror\n\t* removals across `QueryCache` instances.\n\t*\n\t* @example\n\t* ```ts\n\t* const queryCache = queryClient.getQueryCache()\n\t* const query = queryCache.find({ queryKey: ['posts'] })\n\t*\n\t* if (query) {\n\t* queryCache.remove(query)\n\t* }\n\t* ```\n\t*/\n\tremove(query) {\n\t\tif (this.#queries.get(query.queryHash) === query) {\n\t\t\tquery.destroy();\n\t\t\tthis.#queries.delete(query.queryHash);\n\t\t\tthis.notify({\n\t\t\t\ttype: \"removed\",\n\t\t\t\tquery\n\t\t\t});\n\t\t}\n\t}\n\t/**\n\t* Removes all queries from the cache.\n\t*\n\t* @example\n\t* ```ts\n\t* const queryCache = queryClient.getQueryCache()\n\t*\n\t* queryCache.clear()\n\t* ```\n\t*/\n\tclear() {\n\t\tnotifyManager.batch(() => {\n\t\t\tthis.getAll().forEach((query) => {\n\t\t\t\tthis.remove(query);\n\t\t\t});\n\t\t});\n\t}\n\t/**\n\t* Returns the `Query` instance stored under the given `queryHash`, or `undefined` if none\n\t* exists. Unlike {@link QueryCache#find}, this looks up by the already-computed hash rather\n\t* than by `QueryFilters`. Used by plugins (e.g. broadcast/hydration) that already have a hash\n\t* to look up directly.\n\t*\n\t* @example\n\t* ```ts\n\t* const queryCache = queryClient.getQueryCache()\n\t* const queryHash = hashKey(['posts'])\n\t*\n\t* const query = queryCache.get(queryHash)\n\t* ```\n\t*/\n\tget(queryHash) {\n\t\treturn this.#queries.get(queryHash);\n\t}\n\t/**\n\t* Returns all queries within the cache.\n\t*\n\t* @example\n\t* ```ts\n\t* const queryCache = queryClient.getQueryCache()\n\t*\n\t* const queries = queryCache.getAll()\n\t* ```\n\t*/\n\tgetAll() {\n\t\treturn [...this.#queries.values()];\n\t}\n\t/**\n\t* A slightly more advanced method that can be used to get an existing query instance from the\n\t* cache. This instance not only contains all the state for the query, but all of the instances,\n\t* and underlying guts of the query as well. If the query does not exist, `undefined` is\n\t* returned.\n\t*\n\t* This is not typically needed for most applications, but can come in handy when needing more\n\t* information about a query in rare scenarios (e.g. looking at `query.state.dataUpdatedAt` to\n\t* decide whether a query is fresh enough to be used as an initial value).\n\t*\n\t* @see {@link QueryCache#findAll}\n\t* @example\n\t* ```ts\n\t* const queryCache = queryClient.getQueryCache()\n\t*\n\t* const query = queryCache.find({ queryKey: ['posts'] })\n\t* ```\n\t*/\n\tfind(filters) {\n\t\tconst defaultedFilters = {\n\t\t\texact: true,\n\t\t\t...filters\n\t\t};\n\t\treturn this.getAll().find((query) => matchQuery(defaultedFilters, query));\n\t}\n\t/**\n\t* An even more advanced method that can be used to get existing query instances from the cache\n\t* that partially match a query key. If no queries match, an empty array is returned.\n\t*\n\t* This is not typically needed for most applications, but can come in handy when needing more\n\t* information about queries in rare scenarios.\n\t*\n\t* @see {@link QueryCache#find}\n\t* @example\n\t* ```ts\n\t* const queryCache = queryClient.getQueryCache()\n\t*\n\t* const queries = queryCache.findAll({ queryKey: ['posts'] })\n\t* ```\n\t*/\n\tfindAll(filters = {}) {\n\t\tconst queries = this.getAll();\n\t\treturn Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n\t}\n\t/** @internal */\n\tnotify(event) {\n\t\tnotifyManager.batch(() => {\n\t\t\tthis.listeners.forEach((listener) => {\n\t\t\t\tlistener(event);\n\t\t\t});\n\t\t});\n\t}\n\t/** @internal */\n\tonFocus() {\n\t\tnotifyManager.batch(() => {\n\t\t\tthis.getAll().forEach((query) => {\n\t\t\t\tquery.onFocus();\n\t\t\t});\n\t\t});\n\t}\n\t/** @internal */\n\tonOnline() {\n\t\tnotifyManager.batch(() => {\n\t\t\tthis.getAll().forEach((query) => {\n\t\t\t\tquery.onOnline();\n\t\t\t});\n\t\t});\n\t}\n};\n//#endregion\nexport { QueryCache };\n\n//# sourceMappingURL=queryCache.js.map","import { functionalUpdate, hashKey, hashQueryKeyByOptions, noop, partialMatchKey, resolveQueryValue, skipToken } from \"./utils.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { QueryCache } from \"./queryCache.js\";\n//#region src/queryClient.ts\n/**\n* `QueryClient` is used to interact with a cache of queries and mutations. It owns a\n* `QueryCache` and a `MutationCache` (creating default ones if none are passed in) and holds\n* the default options that are applied to queries and mutations created through it.\n*\n* @example\n* ```ts\n* const queryClient = new QueryClient({\n* defaultOptions: {\n* queries: {\n* staleTime: Infinity,\n* },\n* },\n* })\n*\n* await queryClient.query({ queryKey: ['posts'], queryFn: fetchPosts })\n* ```\n*/\nvar QueryClient = class {\n\t#queryCache;\n\t#mutationCache;\n\t#defaultOptions;\n\t#queryDefaults;\n\t#mutationDefaults;\n\t#mountCount;\n\t#unsubscribeFocus;\n\t#unsubscribeOnline;\n\tconstructor(config = {}) {\n\t\tthis.#queryCache = config.queryCache || new QueryCache();\n\t\tthis.#mutationCache = config.mutationCache || new MutationCache();\n\t\tthis.#defaultOptions = config.defaultOptions || {};\n\t\tthis.#queryDefaults = /* @__PURE__ */ new Map();\n\t\tthis.#mutationDefaults = /* @__PURE__ */ new Map();\n\t\tthis.#mountCount = 0;\n\t}\n\t/**\n\t* Called by a framework adapter's `QueryClientProvider`-equivalent when it mounts, to start\n\t* listening for focus/online events and resume paused mutations. Ref-counted via an internal\n\t* mount count, so nested or multiple providers sharing the same `QueryClient` don't tear down\n\t* the shared listeners until the last one unmounts.\n\t*/\n\tmount() {\n\t\tthis.#mountCount++;\n\t\tif (this.#mountCount !== 1) return;\n\t\tthis.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n\t\t\tif (focused) {\n\t\t\t\tawait this.resumePausedMutations();\n\t\t\t\tthis.#queryCache.onFocus();\n\t\t\t}\n\t\t});\n\t\tthis.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n\t\t\tif (online) {\n\t\t\t\tawait this.resumePausedMutations();\n\t\t\t\tthis.#queryCache.onOnline();\n\t\t\t}\n\t\t});\n\t}\n\t/**\n\t* The inverse of {@link QueryClient#mount} — called by a framework adapter's\n\t* `QueryClientProvider`-equivalent when it unmounts. Only tears down the focus/online\n\t* listeners once the mount count returns to `0`.\n\t*/\n\tunmount() {\n\t\tthis.#mountCount--;\n\t\tif (this.#mountCount !== 0) return;\n\t\tthis.#unsubscribeFocus?.();\n\t\tthis.#unsubscribeFocus = void 0;\n\t\tthis.#unsubscribeOnline?.();\n\t\tthis.#unsubscribeOnline = void 0;\n\t}\n\t/**\n\t* Returns the number of queries in the cache that are currently fetching, optionally\n\t* matching a set of filters. This includes background-fetching, loading new pages, and\n\t* loading more infinite query results.\n\t*\n\t* @example\n\t* ```ts\n\t* if (queryClient.isFetching()) {\n\t* console.log('At least one query is fetching!')\n\t* }\n\t* ```\n\t*/\n\tisFetching(filters) {\n\t\treturn this.#queryCache.findAll({\n\t\t\t...filters,\n\t\t\tfetchStatus: \"fetching\"\n\t\t}).length;\n\t}\n\t/**\n\t* Returns the number of mutations in the cache that are currently pending, optionally\n\t* matching a set of filters.\n\t*\n\t* @example\n\t* ```ts\n\t* if (queryClient.isMutating()) {\n\t* console.log('At least one mutation is pending!')\n\t* }\n\t* ```\n\t*/\n\tisMutating(filters) {\n\t\treturn this.#mutationCache.findAll({\n\t\t\t...filters,\n\t\t\tstatus: \"pending\"\n\t\t}).length;\n\t}\n\t/**\n\t* Imperative (non-reactive) way to retrieve data for a QueryKey.\n\t* Should only be used in callbacks or functions where reading the latest data is necessary, e.g. for optimistic updates.\n\t*\n\t* Hint: Do not use this function inside a component, because it won't receive updates.\n\t* Use `useQuery` to create a `QueryObserver` that subscribes to changes.\n\t*\n\t* @returns The cached data for the query, or `undefined` if no query with this key has been observed yet.\n\t* @see {@link QueryClient#getQueriesData}\n\t*/\n\tgetQueryData(queryKey) {\n\t\tconst options = this.defaultQueryOptions({ queryKey });\n\t\treturn this.#queryCache.get(options.queryHash)?.state.data;\n\t}\n\t/**\n\t* @deprecated Use queryClient.query({ ...options, staleTime: 'static' }) instead. This method will be removed in the next major version.\n\t*/\n\tensureQueryData(options) {\n\t\tconst defaultedOptions = this.defaultQueryOptions(options);\n\t\tconst query = this.#queryCache.build(this, defaultedOptions);\n\t\tconst cachedData = query.state.data;\n\t\tif (cachedData === void 0) return this.fetchQuery(options);\n\t\tif (options.revalidateIfStale && query.isStaleByTime(resolveQueryValue(defaultedOptions.staleTime, query))) this.prefetchQuery(defaultedOptions);\n\t\treturn Promise.resolve(cachedData);\n\t}\n\t/**\n\t* Imperative (non-reactive) way to retrieve the cached data of multiple queries at once.\n\t* Only queries matching the given filters are returned; if none match, an empty array is\n\t* returned.\n\t*\n\t* Because the matched queries can hold data of different shapes (e.g. a broad filter can match\n\t* queries with unrelated data types), the `TQueryFnData` generic defaults to `unknown` rather\n\t* than being inferred. Passing a more specific type is a convenience for call sites that know\n\t* every matched query holds the same shape — it is not checked against the actual cache\n\t* contents.\n\t*\n\t* @returns An array of query key and data pairs. The data is `undefined` for a query with no cached data.\n\t* @see {@link QueryClient#getQueryData}\n\t* @example\n\t* ```ts\n\t* const data = queryClient.getQueriesData({ queryKey: ['posts'] })\n\t* ```\n\t*/\n\tgetQueriesData(filters) {\n\t\treturn this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n\t\t\treturn [queryKey, state.data];\n\t\t});\n\t}\n\t/**\n\t* Synchronous way to immediately update a query's cached data. If the updater (or the value\n\t* passed) resolves to `undefined`, the cache is left untouched and no query is created;\n\t* otherwise, if the query does not exist yet, it will be created. To update multiple queries\n\t* at once by partially matching query keys, use {@link QueryClient#setQueriesData} instead.\n\t*\n\t* Updates must be performed immutably: do not mutate `oldData`, or data previously retrieved\n\t* via {@link QueryClient#getQueryData}, in place.\n\t*\n\t* @param queryKey - The query key to set data for.\n\t* @param updater - Either the new data, or a function that receives the current data (which\n\t* may be `undefined`) and returns the new data.\n\t* @param options - Set `updatedAt` to override the timestamp the written data is recorded with.\n\t* @returns The data that was written, or `undefined` if the updater returned `undefined` — in that case\n\t* the write is skipped and the cache is left unchanged.\n\t*\n\t* @example\n\t* ```ts\n\t* queryClient.setQueryData(['posts'], newPosts)\n\t*\n\t* // Or, using an updater function that receives the current data:\n\t* queryClient.setQueryData(['posts'], (oldPosts) => [...oldPosts, newPost])\n\t* ```\n\t*/\n\tsetQueryData(queryKey, updater, options) {\n\t\tconst defaultedOptions = this.defaultQueryOptions({ queryKey });\n\t\tconst prevData = this.#queryCache.get(defaultedOptions.queryHash)?.state.data;\n\t\tconst data = functionalUpdate(updater, prevData);\n\t\tif (data === void 0) return;\n\t\treturn this.#queryCache.build(this, defaultedOptions).setData(data, {\n\t\t\t...options,\n\t\t\tmanual: true\n\t\t});\n\t}\n\t/**\n\t* Synchronous way to immediately update the cached data of multiple queries at once, using\n\t* filters or partial query key matching. Only queries that already exist and match the given\n\t* filters are updated; no new cache entries are created. Internally this calls\n\t* {@link QueryClient#setQueryData} for each matching query.\n\t*\n\t* @returns One `[queryKey, data]` tuple per matched query, in the same shape and with the same\n\t* `undefined` case as {@link QueryClient#setQueryData}.\n\t* @example\n\t* ```ts\n\t* queryClient.setQueriesData({ queryKey: ['posts'] }, (oldPosts) =>\n\t* oldPosts ? oldPosts.filter((post) => post.id !== deletedId) : oldPosts,\n\t* )\n\t* ```\n\t*/\n\tsetQueriesData(filters, updater, options) {\n\t\treturn notifyManager.batch(() => this.#queryCache.findAll(filters).map(({ queryKey }) => [queryKey, this.setQueryData(queryKey, updater, options)]));\n\t}\n\t/**\n\t* Imperative (non-reactive) way to retrieve an existing query's state. If the query does not\n\t* exist, `undefined` is returned.\n\t*\n\t* @example\n\t* ```ts\n\t* const state = queryClient.getQueryState(['posts'])\n\t* console.log(state?.dataUpdatedAt)\n\t* ```\n\t*/\n\tgetQueryState(queryKey) {\n\t\tconst options = this.defaultQueryOptions({ queryKey });\n\t\treturn this.#queryCache.get(options.queryHash)?.state;\n\t}\n\t/**\n\t* Removes queries from the cache that match the given filters. Unlike\n\t* {@link QueryClient#invalidateQueries} or {@link QueryClient#refetchQueries}, this removes\n\t* matching queries from the cache instead of refetching them. Without filters, every query in\n\t* the cache is removed.\n\t*\n\t* @example\n\t* ```ts\n\t* queryClient.removeQueries({ queryKey: ['posts'], exact: true })\n\t* ```\n\t*/\n\tremoveQueries(filters) {\n\t\tconst queryCache = this.#queryCache;\n\t\tnotifyManager.batch(() => {\n\t\t\tqueryCache.findAll(filters).forEach((query) => {\n\t\t\t\tqueryCache.remove(query);\n\t\t\t});\n\t\t});\n\t}\n\t/**\n\t* Resets queries matching the given filters back to their initial state (e.g. any\n\t* `initialData`), notifying subscribers rather than removing them. Active queries among the\n\t* matched set are then refetched, and the returned promise resolves once that refetch settles.\n\t*\n\t* @example\n\t* ```ts\n\t* await queryClient.resetQueries({ queryKey: ['posts'], exact: true })\n\t* ```\n\t*/\n\tresetQueries(filters, options) {\n\t\tconst queryCache = this.#queryCache;\n\t\treturn notifyManager.batch(() => {\n\t\t\tconst matched = queryCache.findAll(filters);\n\t\t\tconst queriesToRefetch = new Set(matched);\n\t\t\tmatched.forEach((query) => {\n\t\t\t\tquery.reset();\n\t\t\t});\n\t\t\treturn this.refetchQueries({\n\t\t\t\ttype: \"active\",\n\t\t\t\tpredicate: (query) => queriesToRefetch.has(query)\n\t\t\t}, options);\n\t\t});\n\t}\n\t/**\n\t* Cancels outgoing fetches for queries matching the given filters. Most useful when performing\n\t* optimistic updates, since any outgoing refetch that resolves afterwards would otherwise\n\t* overwrite the optimistic update. By default (`revert: true`), a cancelled query's data is\n\t* reverted to its state before the outgoing fetch started.\n\t*\n\t* The returned promise never rejects, even if individual cancellations fail.\n\t*\n\t* @example\n\t* ```ts\n\t* await queryClient.cancelQueries({ queryKey: ['posts'], exact: true })\n\t* ```\n\t*/\n\tcancelQueries(filters, cancelOptions = {}) {\n\t\tconst defaultedCancelOptions = {\n\t\t\trevert: true,\n\t\t\t...cancelOptions\n\t\t};\n\t\tconst promises = notifyManager.batch(() => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions)));\n\t\treturn Promise.all(promises).then(noop).catch(noop);\n\t}\n\t/**\n\t* Marks queries matching the given filters as invalidated. Unlike\n\t* {@link QueryClient#removeQueries}, invalidated queries stay in the cache.\n\t*\n\t* Unless `filters.refetchType` is `'none'`, matching queries are then refetched via\n\t* {@link QueryClient#refetchQueries}, using `filters.refetchType` if set, otherwise\n\t* `filters.type`, otherwise `'active'`.\n\t*\n\t* @example\n\t* ```ts\n\t* await queryClient.invalidateQueries({ queryKey: ['posts'], refetchType: 'active' })\n\t* ```\n\t*/\n\tinvalidateQueries(filters, options = {}) {\n\t\treturn notifyManager.batch(() => {\n\t\t\tthis.#queryCache.findAll(filters).forEach((query) => {\n\t\t\t\tquery.invalidate();\n\t\t\t});\n\t\t\tif (filters?.refetchType === \"none\") return Promise.resolve();\n\t\t\treturn this.refetchQueries({\n\t\t\t\t...filters,\n\t\t\t\ttype: filters?.refetchType ?? filters?.type ?? \"active\"\n\t\t\t}, options);\n\t\t});\n\t}\n\t/**\n\t* Refetches queries matching the given filters, regardless of whether they are stale. Without\n\t* filters, every query in the cache is refetched. Queries that are disabled, or static (only\n\t* have observers with a static `staleTime`), are never refetched.\n\t*\n\t* By default (`cancelRefetch: true`), a currently running fetch is cancelled before the new\n\t* one starts. The returned promise resolves once all matching queries have settled; it does\n\t* not reject on individual query failures unless `throwOnError` is set.\n\t*\n\t* @example\n\t* ```ts\n\t* // refetch all active queries partially matching a query key:\n\t* await queryClient.refetchQueries({ queryKey: ['posts'], type: 'active' })\n\t* ```\n\t*/\n\trefetchQueries(filters, options = {}) {\n\t\tconst fetchOptions = {\n\t\t\t...options,\n\t\t\tcancelRefetch: options.cancelRefetch ?? true\n\t\t};\n\t\tconst promises = notifyManager.batch(() => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled() && !query.isStatic()).map((query) => {\n\t\t\tlet promise = query.fetch(void 0, fetchOptions);\n\t\t\tif (!fetchOptions.throwOnError) promise = promise.catch(noop);\n\t\t\treturn query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n\t\t}));\n\t\treturn Promise.all(promises).then(noop);\n\t}\n\t/**\n\t* Asynchronous method to fetch and cache a query, resolving with the data or throwing with\n\t* the error.\n\t*\n\t* If the query already exists in the cache and its data is not stale (per the given\n\t* `staleTime`), the cached data is returned without fetching. Otherwise, the query is fetched\n\t* and the promise resolves once the fetch settles. If a `select` function is provided, it is\n\t* applied to the data in both cases (cached or freshly fetched) before it is returned.\n\t*\n\t* Unlike a reactive observer, retries are disabled by default here (`retry: false`) unless\n\t* explicitly configured, since there is no component to catch a thrown error and retry through\n\t* re-render.\n\t*\n\t* The accepted options are `QueryObserverOptions` minus the fields that only make sense for a\n\t* reactive observer — `enabled`, `refetchInterval`, `refetchIntervalInBackground`,\n\t* `refetchOnWindowFocus`, `refetchOnReconnect`, `refetchOnMount`, `retryOnMount`,\n\t* `notifyOnChangeProps`, `throwOnError`, `suspense`, and `placeholderData` are not part of this\n\t* method's options.\n\t*\n\t* This method replaces the deprecated `fetchQuery`, and — combined with\n\t* `{ staleTime: 'static' }` — the deprecated `ensureQueryData`.\n\t*\n\t* @example\n\t* ```ts\n\t* try {\n\t* const data = await queryClient.query({ queryKey, queryFn, staleTime: 10000 })\n\t* } catch (error) {\n\t* console.log(error)\n\t* }\n\t* ```\n\t*/\n\tasync query(options) {\n\t\tconst defaultedOptions = this.defaultQueryOptions(options);\n\t\tif (defaultedOptions.retry === void 0) defaultedOptions.retry = false;\n\t\tconst query = this.#queryCache.build(this, defaultedOptions);\n\t\tconst queryData = query.isStaleByTime(resolveQueryValue(defaultedOptions.staleTime, query)) ? await query.fetch(defaultedOptions) : query.state.data;\n\t\tconst select = defaultedOptions.select;\n\t\tif (select) return select(queryData);\n\t\treturn queryData;\n\t}\n\t/**\n\t* @deprecated Use queryClient.query(options) instead. This method will be removed in the next major version.\n\t*/\n\tfetchQuery(options) {\n\t\tconst defaultedOptions = this.defaultQueryOptions(options);\n\t\tif (defaultedOptions.retry === void 0) defaultedOptions.retry = false;\n\t\tconst query = this.#queryCache.build(this, defaultedOptions);\n\t\treturn query.isStaleByTime(resolveQueryValue(defaultedOptions.staleTime, query)) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n\t}\n\t/**\n\t* @deprecated Use queryClient.query(options) instead. You can swallow errors with `.catch(noop)`. This method will be removed in the next major version.\n\t*/\n\tprefetchQuery(options) {\n\t\treturn this.fetchQuery(options).then(noop).catch(noop);\n\t}\n\t/**\n\t* Asynchronous method to fetch and cache an infinite query, resolving with an\n\t* {@link InfiniteData} object or throwing with the error.\n\t*\n\t* Behaves like {@link QueryClient#query}, accepting the same options (minus\n\t* `initialPageParam`), plus the required `initialPageParam`, and an optional `pages` /\n\t* `getNextPageParam` pair used to refetch a fixed number of pages from the start.\n\t*\n\t* This method replaces the deprecated `fetchInfiniteQuery`, and — combined with\n\t* `{ staleTime: 'static' }` — the deprecated `ensureInfiniteQueryData`.\n\t*\n\t* @example\n\t* ```ts\n\t* try {\n\t* const data = await queryClient.infiniteQuery({ queryKey, queryFn, initialPageParam: 0 })\n\t* console.log(data.pages)\n\t* } catch (error) {\n\t* console.log(error)\n\t* }\n\t* ```\n\t*/\n\tinfiniteQuery(options) {\n\t\toptions._type = \"infinite\";\n\t\treturn this.query(options);\n\t}\n\t/**\n\t* @deprecated Use queryClient.infiniteQuery(options) instead. This method will be removed in the next major version.\n\t*/\n\tfetchInfiniteQuery(options) {\n\t\toptions._type = \"infinite\";\n\t\treturn this.fetchQuery(options);\n\t}\n\t/**\n\t* @deprecated Use queryClient.infiniteQuery(options) instead. You can swallow errors with `.catch(noop)`. This method will be removed in the next major version.\n\t*/\n\tprefetchInfiniteQuery(options) {\n\t\treturn this.fetchInfiniteQuery(options).then(noop).catch(noop);\n\t}\n\t/**\n\t* @deprecated Use queryClient.infiniteQuery({ ...options, staleTime: 'static' }) instead. This method will be removed in the next major version.\n\t*/\n\tensureInfiniteQueryData(options) {\n\t\toptions._type = \"infinite\";\n\t\treturn this.ensureQueryData(options);\n\t}\n\t/**\n\t* Resumes mutations that were paused because there was no network connection. Does nothing\n\t* (resolving immediately) if the client is currently offline.\n\t*\n\t* @example\n\t* ```ts\n\t* import { QueryClient } from '@tanstack/query-core'\n\t*\n\t* const queryClient = new QueryClient()\n\t* await queryClient.resumePausedMutations()\n\t* ```\n\t*/\n\tresumePausedMutations() {\n\t\tif (onlineManager.isOnline()) return this.#mutationCache.resumePausedMutations();\n\t\treturn Promise.resolve();\n\t}\n\t/**\n\t* Returns the query cache this client is connected to.\n\t*\n\t* @example\n\t* ```ts\n\t* import { QueryClient } from '@tanstack/query-core'\n\t*\n\t* const queryClient = new QueryClient()\n\t* const queryCache = queryClient.getQueryCache()\n\t* const queries = queryCache.findAll({ queryKey: ['posts'] })\n\t* ```\n\t*/\n\tgetQueryCache() {\n\t\treturn this.#queryCache;\n\t}\n\t/**\n\t* Returns the mutation cache this client is connected to.\n\t*\n\t* @example\n\t* ```ts\n\t* import { QueryClient } from '@tanstack/query-core'\n\t*\n\t* const queryClient = new QueryClient()\n\t* const mutationCache = queryClient.getMutationCache()\n\t* const mutations = mutationCache.findAll({ status: 'pending' })\n\t* ```\n\t*/\n\tgetMutationCache() {\n\t\treturn this.#mutationCache;\n\t}\n\t/**\n\t* Returns the default options that were set when creating the client, or via\n\t* {@link QueryClient#setDefaultOptions}.\n\t*\n\t* @example\n\t* ```ts\n\t* import { QueryClient } from '@tanstack/query-core'\n\t*\n\t* const queryClient = new QueryClient()\n\t* const defaultOptions = queryClient.getDefaultOptions()\n\t* ```\n\t*/\n\tgetDefaultOptions() {\n\t\treturn this.#defaultOptions;\n\t}\n\t/**\n\t* Dynamically sets the default options for this client, overwriting any previously defined\n\t* default options.\n\t*\n\t* @see {@link QueryClient#getDefaultOptions}\n\t* @example\n\t* ```ts\n\t* import { QueryClient } from '@tanstack/query-core'\n\t*\n\t* const queryClient = new QueryClient()\n\t* queryClient.setDefaultOptions({\n\t* queries: {\n\t* staleTime: Infinity,\n\t* },\n\t* })\n\t* ```\n\t*/\n\tsetDefaultOptions(options) {\n\t\tthis.#defaultOptions = options;\n\t}\n\t/**\n\t* Sets default options for queries whose query key partially matches the given `queryKey`.\n\t*\n\t* If several registered query defaults match a given query key, they are merged together in\n\t* registration order by {@link QueryClient#getQueryDefaults}, so register defaults from the\n\t* most generic key to the least generic one — more specific defaults should be registered\n\t* after more generic ones so they take precedence.\n\t*\n\t* @example\n\t* ```ts\n\t* queryClient.setQueryDefaults(['posts'], { queryFn: fetchPosts })\n\t*\n\t* await queryClient.query({ queryKey: ['posts'] })\n\t* ```\n\t*/\n\tsetQueryDefaults(queryKey, options) {\n\t\tthis.#queryDefaults.set(hashKey(queryKey), {\n\t\t\tqueryKey,\n\t\t\tdefaultOptions: options\n\t\t});\n\t}\n\t/**\n\t* Returns the default options registered for queries whose query key partially matches the\n\t* given `queryKey`, via {@link QueryClient#setQueryDefaults}. If multiple registered defaults\n\t* match, they are merged together in registration order.\n\t*\n\t* @example\n\t* ```ts\n\t* const defaultOptions = queryClient.getQueryDefaults(['posts'])\n\t* ```\n\t*/\n\tgetQueryDefaults(queryKey) {\n\t\tconst defaults = [...this.#queryDefaults.values()];\n\t\tconst result = {};\n\t\tdefaults.forEach((queryDefault) => {\n\t\t\tif (partialMatchKey(queryKey, queryDefault.queryKey)) Object.assign(result, queryDefault.defaultOptions);\n\t\t});\n\t\treturn result;\n\t}\n\t/**\n\t* Sets default options for mutations whose mutation key partially matches the given\n\t* `mutationKey`. As with {@link QueryClient#setQueryDefaults}, the order of registration\n\t* matters when several registered defaults match the same mutation key.\n\t*\n\t* @see {@link QueryClient#getMutationDefaults}\n\t* @example\n\t* ```ts\n\t* queryClient.setMutationDefaults(['addPost'], { mutationFn: addPost })\n\t* ```\n\t*/\n\tsetMutationDefaults(mutationKey, options) {\n\t\tthis.#mutationDefaults.set(hashKey(mutationKey), {\n\t\t\tmutationKey,\n\t\t\tdefaultOptions: options\n\t\t});\n\t}\n\t/**\n\t* Returns the default options registered for mutations whose mutation key partially matches\n\t* the given `mutationKey`, via {@link QueryClient#setMutationDefaults}. If multiple registered\n\t* defaults match, they are merged together in registration order.\n\t*\n\t* @example\n\t* ```ts\n\t* const defaultOptions = queryClient.getMutationDefaults(['addPost'])\n\t* ```\n\t*/\n\tgetMutationDefaults(mutationKey) {\n\t\tconst defaults = [...this.#mutationDefaults.values()];\n\t\tconst result = {};\n\t\tdefaults.forEach((queryDefault) => {\n\t\t\tif (partialMatchKey(mutationKey, queryDefault.mutationKey)) Object.assign(result, queryDefault.defaultOptions);\n\t\t});\n\t\treturn result;\n\t}\n\t/**\n\t* Called by framework adapters (e.g. inside `useQuery`) to resolve the options passed by the\n\t* caller into their final, defaulted form: merging `queryClient.setQueryDefaults` for the\n\t* given `queryKey`, then the client's own `defaultOptions.queries`, then the caller's options\n\t* on top. A no-op if the options are already defaulted (`_defaulted: true`).\n\t*/\n\tdefaultQueryOptions(options) {\n\t\tif (options._defaulted) return options;\n\t\tconst defaultedOptions = {\n\t\t\t...this.#defaultOptions.queries,\n\t\t\t...this.getQueryDefaults(options.queryKey),\n\t\t\t...options,\n\t\t\t_defaulted: true\n\t\t};\n\t\tif (!defaultedOptions.queryHash) defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n\t\tif (defaultedOptions.refetchOnReconnect === void 0) defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n\t\tif (defaultedOptions.throwOnError === void 0) defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n\t\tif (!defaultedOptions.networkMode && defaultedOptions.persister) defaultedOptions.networkMode = \"offlineFirst\";\n\t\tif (defaultedOptions.queryFn === skipToken) defaultedOptions.enabled = false;\n\t\treturn defaultedOptions;\n\t}\n\t/**\n\t* The mutation counterpart of {@link QueryClient#defaultQueryOptions}. Called by framework\n\t* adapters (e.g. inside `useMutation`) to merge `queryClient.setMutationDefaults` for the\n\t* given `mutationKey`, then the client's `defaultOptions.mutations`, then the caller's options\n\t* on top. A no-op if the options are already defaulted (`_defaulted: true`).\n\t*/\n\tdefaultMutationOptions(options) {\n\t\tif (options?._defaulted) return options;\n\t\treturn {\n\t\t\t...this.#defaultOptions.mutations,\n\t\t\t...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n\t\t\t...options,\n\t\t\t_defaulted: true\n\t\t};\n\t}\n\t/**\n\t* Clears both the query cache and the mutation cache this client is connected to.\n\t*\n\t* @example\n\t* ```ts\n\t* import { QueryClient } from '@tanstack/query-core'\n\t*\n\t* const queryClient = new QueryClient()\n\t* queryClient.clear()\n\t* ```\n\t*/\n\tclear() {\n\t\tthis.#queryCache.clear();\n\t\tthis.#mutationCache.clear();\n\t}\n};\n//#endregion\nexport { QueryClient };\n\n//# sourceMappingURL=queryClient.js.map","\nimport { Selection as __zyzzSelection } from 'zyzz/runtime';\n\n\nimport { variables } from './vars.js';\n/**\n * Zyzz authoring helpers bound to the Web variables, so token strings such as `foreground`,\n * `'6'` and `copy.14` type-check and compile ahead of time.\n *\n * - `style(definition)` returns a callable that produces `className` and `style` props.\n * - `variants({ base, variants, defaultVariants })` returns a callable that takes the variant\n * selection.\n * - `vars` holds references such as `vars.ease.snappy`. Call `vars({ colorScheme })` for props\n * that apply the variables, and optionally a color scheme, to a scope.\n *\n * @example\n * namespace styles {\n * export const panel = style({ backgroundColor: 'background.surface', padding: '24' })\n * }\n *\n * <section {...styles.panel()} />\n */\nexport const { style, variants, vars } = ({vars:__zyzzSelection.create([[\"default\",\"z-theme-tds_2f_web-theme\"]],false,'set',\"default\")});\n// Inter's subsets, written by `scripts/subset-fonts.ts`. A browser downloads only the subsets whose\n// `unicodeRange` the page's text uses, and a face declared later takes precedence where ranges\n// overlap, so the order is intentional: `symbols` first and `latin` last, as Google Fonts orders them.\nvoid 0;\nvoid 0;\nvoid 0;\nvoid 0;\nvoid 0;\nvoid 0;\nvoid 0;\nvoid 0;\nvoid 0;\nvoid 0;\n//# sourceMappingURL=zyzz.config.js.map","'use client';\n\nimport * as React from 'react';\nimport { useButton } from \"../internals/use-button/useButton.mjs\";\nimport { useRenderElement } from \"../internals/useRenderElement.mjs\";\n/**\n * A button component that can be used to trigger actions.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Button](https://base-ui.com/react/components/button)\n */\nexport const Button = /*#__PURE__*/React.forwardRef(function Button(componentProps, forwardedRef) {\n const {\n render,\n className,\n disabled = false,\n focusableWhenDisabled = false,\n nativeButton = true,\n style,\n ...elementProps\n } = componentProps;\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n focusableWhenDisabled,\n native: nativeButton\n });\n const state = {\n disabled\n };\n return useRenderElement('button', componentProps, {\n state,\n ref: [forwardedRef, buttonRef],\n props: [elementProps, getButtonProps]\n });\n});\nif (process.env.NODE_ENV !== \"production\") Button.displayName = \"Button\";","export function stringifyLocale(locale) {\n if (Array.isArray(locale)) {\n return locale.map(value => stringifyLocale(value)).join(',');\n }\n if (locale == null) {\n return '';\n }\n return String(locale);\n}","import { stringifyLocale } from \"./stringifyLocale.mjs\";\nconst cache = new Map();\nexport function getFormatter(locale, options) {\n const optionsString = JSON.stringify({\n locale: stringifyLocale(locale),\n options\n });\n const cachedFormatter = cache.get(optionsString);\n if (cachedFormatter) {\n return cachedFormatter;\n }\n const formatter = new Intl.NumberFormat(locale, options);\n cache.set(optionsString, formatter);\n return formatter;\n}\nexport function formatNumber(value, locale, options) {\n if (value == null) {\n return '';\n }\n return getFormatter(locale, options).format(value);\n}","export function valueToPercent(value, min, max) {\n return (value - min) * 100 / (max - min);\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\n/**\n * @internal\n */\nexport const ProgressRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ProgressRootContext.displayName = \"ProgressRootContext\";\nexport function useProgressRootContext() {\n const context = React.useContext(ProgressRootContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ProgressRootContext is missing. Progress parts must be placed within <Progress.Root>.' : _formatErrorMessage(51));\n }\n return context;\n}","/**\n * Present when the progress has completed.\n */\nexport const complete = 'data-complete';\n/**\n * Present when the progress is in indeterminate state.\n */\nexport const indeterminate = 'data-indeterminate';\n/**\n * Present while the progress is progressing.\n */\nexport const progressing = 'data-progressing';","import * as ProgressRootDataAttributes from \"./ProgressRootDataAttributes.mjs\";\nexport const progressStateAttributesMapping = {\n status(value) {\n if (value === 'progressing') {\n return {\n [ProgressRootDataAttributes.progressing]: ''\n };\n }\n if (value === 'complete') {\n return {\n [ProgressRootDataAttributes.complete]: ''\n };\n }\n if (value === 'indeterminate') {\n return {\n [ProgressRootDataAttributes.indeterminate]: ''\n };\n }\n return null;\n }\n};","'use client';\n\nimport * as React from 'react';\nimport { visuallyHidden } from '@base-ui/utils/visuallyHidden';\nimport { formatNumber } from '@base-ui/utils/formatNumber';\nimport { clamp } from '@base-ui/utils/clamp';\nimport { valueToPercent } from \"../../utils/valueToPercent.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { ProgressRootContext } from \"./ProgressRootContext.mjs\";\nimport { progressStateAttributesMapping } from \"./stateAttributesMapping.mjs\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Groups all parts of the progress bar and provides the task completion status to screen readers.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Progress](https://base-ui.com/react/components/progress)\n */\nexport const ProgressRoot = /*#__PURE__*/React.forwardRef(function ProgressRoot(componentProps, forwardedRef) {\n const {\n format,\n getAriaValueText,\n locale,\n max = 100,\n min = 0,\n value,\n render,\n className,\n children,\n style,\n ...elementProps\n } = componentProps;\n const [labelId, setLabelId] = React.useState();\n\n // `value === null` (or any non-finite value) keeps Progress indeterminate. Otherwise compute a\n // single clamped value and normalized percentage so completion status, `aria-valuenow`, the\n // formatted text, the default `aria-valuetext`, and the indicator width all stay in sync for any\n // `min`/`max` (not just the default 0–100).\n let status = 'indeterminate';\n let percentageValue = null;\n let clampedValue = null;\n let formattedValue = '';\n // Derived alongside `status` so the indeterminate condition is not restated anywhere else.\n let defaultAriaValueText = 'indeterminate progress';\n if (value != null && Number.isFinite(value)) {\n const rawPercentage = valueToPercent(value, min, max);\n percentageValue = clamp(Number.isNaN(rawPercentage) ? 0 : rawPercentage, 0, 100);\n clampedValue = clamp(value, min, max);\n status = clampedValue === max ? 'complete' : 'progressing';\n // Format the clamped value so visible and accessible text stay in sync with `aria-valuenow` and\n // the indicator fill. The raw value remains available as the second `getAriaValueText` argument.\n formattedValue = format ? formatNumber(clampedValue, locale, format) : formatNumber(percentageValue / 100, locale, {\n style: 'percent'\n });\n defaultAriaValueText = formattedValue;\n }\n const state = React.useMemo(() => ({\n status\n }), [status]);\n const defaultProps = {\n 'aria-labelledby': labelId,\n 'aria-valuemax': max,\n 'aria-valuemin': min,\n 'aria-valuenow': clampedValue ?? undefined,\n 'aria-valuetext': getAriaValueText ? getAriaValueText(formattedValue, value) : defaultAriaValueText,\n role: 'progressbar',\n children: /*#__PURE__*/_jsxs(React.Fragment, {\n children: [children, /*#__PURE__*/_jsx(\"span\", {\n role: \"presentation\",\n style: visuallyHidden,\n children: \"x\"\n })]\n })\n };\n const contextValue = React.useMemo(() => ({\n formattedValue,\n percentageValue,\n setLabelId,\n state,\n value\n }), [formattedValue, percentageValue, setLabelId, state, value]);\n const element = useRenderElement('div', componentProps, {\n state,\n ref: forwardedRef,\n props: [defaultProps, elementProps],\n stateAttributesMapping: progressStateAttributesMapping\n });\n return /*#__PURE__*/_jsx(ProgressRootContext.Provider, {\n value: contextValue,\n children: element\n });\n});\nif (process.env.NODE_ENV !== \"production\") ProgressRoot.displayName = \"ProgressRoot\";","\nimport { Props as __zyzzProps } from 'zyzz/runtime';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as BaseUi from '@base-ui/react/progress';\n\nimport { style, variants } from '../zyzz.config.js';\n/**\n * An indeterminate loading indicator. Renders a Base UI `Progress.Root` with\n * `role=\"progressbar\"`, no `aria-valuenow`, and the name `Loading`. The ring draws in\n * `currentColor` and stops rotating under `prefers-reduced-motion: reduce`.\n *\n * - Pass `aria-label` to say what is loading, such as `Loading transactions`.\n * - Show it only after a short delay, so fast responses do not flash an indicator.\n * - Prefer `Skeleton` when the shape of the loading content is known.\n *\n * @example\n * <Spinner aria-label=\"Loading transactions\" size=\"small\" />\n *\n * @see {@link https://base-ui.com/react/components/progress | Base UI Progress}\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/progressbar_role | MDN progressbar role}\n * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html | WCAG 2.2 Status Messages}\n * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/pause-stop-hide.html | WCAG 2.2 Pause, Stop, Hide}\n */\nexport function Spinner(props) {\n const { className, size, vars, ...attributes } = props;\n return (_jsx(BaseUi.Progress.Root, { \"aria-label\": \"Loading\", ...attributes, ...styles.spinner({ className, size, style: props.style, vars }), value: null, children: _jsxs(\"svg\", { \"aria-hidden\": \"true\", ...styles.glyph(), fill: \"none\", viewBox: \"0 0 16 16\", children: [_jsx(\"circle\", { cx: \"8\", cy: \"8\", r: \"6\", stroke: \"currentColor\", strokeOpacity: \"0.16\", strokeWidth: \"2\" }), _jsx(\"path\", { d: \"M14 8a6 6 0 0 0-6-6\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeWidth: \"2\" })] }) }));\n}\nconst rotation = \"z-kid-tds_2f_web_2f_spinner_2f_rotation\";\nvar styles;\n(function (styles) {\n styles.glyph = /*#__PURE__*/__zyzzProps.create({className:\"z_tds_2f_web-rvpwDc0 z_tds_2f_web-rvpwDc1 z_tds_2f_web-rvpwDc2 z_tds_2f_web-rvpwDc3\"});\n styles.spinner = ((input={})=>{const external=input.className,style=input.style,vars=input.vars,inline=vars?{...vars,...style}:style,className=external?\"z_tds_2f_web-rvpwDc4 z_tds_2f_web-rvpwDc5 z_tds_2f_web-rvpwDc6 z_tds_2f_web-rvpwDc7 z_tds_2f_web-rvpwDc8 z_tds_2f_web-rvpwDc9 z_tds_2f_web-rvpwDca z_tds_2f_web-rvpwDcb z_tds_2f_web-rvpwDcc\"+\" \"+external:\"z_tds_2f_web-rvpwDc4 z_tds_2f_web-rvpwDc5 z_tds_2f_web-rvpwDc6 z_tds_2f_web-rvpwDc7 z_tds_2f_web-rvpwDc8 z_tds_2f_web-rvpwDc9 z_tds_2f_web-rvpwDca z_tds_2f_web-rvpwDcb z_tds_2f_web-rvpwDcc\",result=inline?{className,style:inline}:{className};let value;value=Object.hasOwn(input,\"size\")?input[\"size\"]:void 0;if(value===void 0)value=\"medium\";if(value!==null&&value!==void 0)result[\"data-size\"]=String(value);return result});\n})(styles || (styles = {}));\n//# sourceMappingURL=Spinner.js.map\nimport './Spinner.css';\n","\nimport { Props as __zyzzProps } from 'zyzz/runtime';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as BaseUi from '@base-ui/react/button';\nimport { useRender } from '@base-ui/react/use-render';\nimport { style, variants } from '../zyzz.config.js';\nimport { Spinner } from './Spinner.js';\n/**\n * A native `<button>` for actions, built on Base UI Button. It scales slightly while pressed and\n * shows a blue outline on keyboard focus.\n *\n * - Use `Button` for actions and `Button.Link` for navigation.\n * - Label with a specific verb, such as Send payment. Give `shape=\"icon\"` buttons, which render as circles, an `aria-label`.\n * - Keep one `primary` button per view or section. Reserve `negative` for destructive actions.\n * - Set `focusableWhenDisabled` when a disabled button needs to stay reachable while nearby text\n * explains why it is unavailable.\n *\n * @example\n * <Button loading={pending} onClick={send}>\n * Send payment\n * </Button>\n *\n * @see {@link https://base-ui.com/react/components/button | Base UI Button}\n * @see {@link https://www.w3.org/WAI/ARIA/apg/patterns/button/ | WAI-ARIA APG Button pattern}\n * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/name-role-value.html | WCAG 2.2 Name, Role, Value}\n * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/focus-visible.html | WCAG 2.2 Focus Visible}\n * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum.html | WCAG 2.2 Target Size (Minimum)}\n */\nexport function Button(props) {\n const { children, className, disabled, loading = false, shape, size, variant, vars, ...attributes } = props;\n return (_jsxs(BaseUi.Button, { ...attributes, ...styles.button({ className, shape, size, style: props.style, variant, vars }), \"aria-busy\": loading || undefined, \"data-loading\": loading || undefined, disabled: disabled || loading, children: [_jsx(\"span\", { ...styles.content({ loading }), children: children }), loading && _jsx(Spinner, { \"aria-label\": \"Loading\", ...styles.spinner() })] }));\n}\n(function (Button) {\n /**\n * A link drawn as a button. It keeps the link's role, which a button rendered as a link gives up.\n * `render` takes a router's link, such as `<Link to=\"/\" />`.\n */\n function Link(props) {\n const { children, className, ref, render, shape, size, variant, vars, ...attributes } = props;\n return useRender({\n defaultTagName: 'a',\n props: {\n ...attributes,\n ...styles.button({ className, shape, size, style: props.style, variant, vars }),\n children: _jsx(\"span\", { ...styles.content({ loading: false }), children: children }),\n },\n ref,\n render,\n });\n }\n Button.Link = Link;\n})(Button || (Button = {}));\nvar styles;\n(function (styles) {\n styles.button = ((input={})=>{const external=input.className,style=input.style,vars=input.vars,inline=vars?{...vars,...style}:style,className=external?\"z_tds_2f_web-SIsIj70 z_tds_2f_web-SIsIj71 z_tds_2f_web-SIsIj72 z_tds_2f_web-SIsIj73 z_tds_2f_web-SIsIj74 z_tds_2f_web-SIsIj75 z_tds_2f_web-SIsIj76 z_tds_2f_web-SIsIj77 z_tds_2f_web-SIsIj78 z_tds_2f_web-SIsIj79 z_tds_2f_web-SIsIj7a z_tds_2f_web-SIsIj7b z_tds_2f_web-SIsIj7c z_tds_2f_web-SIsIj7d z_tds_2f_web-SIsIj7e z_tds_2f_web-SIsIj7f z_tds_2f_web-SIsIj7g z_tds_2f_web-SIsIj7h z_tds_2f_web-SIsIj7i z_tds_2f_web-SIsIj7j z_tds_2f_web-SIsIj7k z_tds_2f_web-SIsIj7l z_tds_2f_web-SIsIj7m z_tds_2f_web-SIsIj7n z_tds_2f_web-SIsIj7o z_tds_2f_web-SIsIj7p z_tds_2f_web-SIsIj7q z_tds_2f_web-SIsIj7r z_tds_2f_web-SIsIj7s z_tds_2f_web-SIsIj7t z_tds_2f_web-SIsIj7u z_tds_2f_web-SIsIj7v z_tds_2f_web-SIsIj7w z_tds_2f_web-SIsIj7x z_tds_2f_web-SIsIj7y z_tds_2f_web-SIsIj7z z_tds_2f_web-SIsIj710 z_tds_2f_web-SIsIj711 z_tds_2f_web-SIsIj712 z_tds_2f_web-SIsIj713 z_tds_2f_web-SIsIj714 z_tds_2f_web-SIsIj715 z_tds_2f_web-SIsIj716 z_tds_2f_web-SIsIj717 z_tds_2f_web-SIsIj718 z_tds_2f_web-SIsIj719 z_tds_2f_web-SIsIj71a z_tds_2f_web-SIsIj71b z_tds_2f_web-SIsIj71c z_tds_2f_web-SIsIj71d z_tds_2f_web-SIsIj71e z_tds_2f_web-SIsIj71f z_tds_2f_web-SIsIj71g z_tds_2f_web-SIsIj71h z_tds_2f_web-SIsIj71i z_tds_2f_web-SIsIj71j z_tds_2f_web-SIsIj71k z_tds_2f_web-SIsIj71l z_tds_2f_web-SIsIj71m z_tds_2f_web-SIsIj71n z_tds_2f_web-SIsIj71o z_tds_2f_web-SIsIj71p z_tds_2f_web-SIsIj71q z_tds_2f_web-SIsIj71r z_tds_2f_web-SIsIj71s z_tds_2f_web-SIsIj71t z_tds_2f_web-SIsIj71u z_tds_2f_web-SIsIj71v z_tds_2f_web-SIsIj71w z_tds_2f_web-SIsIj71x\"+\" \"+external:\"z_tds_2f_web-SIsIj70 z_tds_2f_web-SIsIj71 z_tds_2f_web-SIsIj72 z_tds_2f_web-SIsIj73 z_tds_2f_web-SIsIj74 z_tds_2f_web-SIsIj75 z_tds_2f_web-SIsIj76 z_tds_2f_web-SIsIj77 z_tds_2f_web-SIsIj78 z_tds_2f_web-SIsIj79 z_tds_2f_web-SIsIj7a z_tds_2f_web-SIsIj7b z_tds_2f_web-SIsIj7c z_tds_2f_web-SIsIj7d z_tds_2f_web-SIsIj7e z_tds_2f_web-SIsIj7f z_tds_2f_web-SIsIj7g z_tds_2f_web-SIsIj7h z_tds_2f_web-SIsIj7i z_tds_2f_web-SIsIj7j z_tds_2f_web-SIsIj7k z_tds_2f_web-SIsIj7l z_tds_2f_web-SIsIj7m z_tds_2f_web-SIsIj7n z_tds_2f_web-SIsIj7o z_tds_2f_web-SIsIj7p z_tds_2f_web-SIsIj7q z_tds_2f_web-SIsIj7r z_tds_2f_web-SIsIj7s z_tds_2f_web-SIsIj7t z_tds_2f_web-SIsIj7u z_tds_2f_web-SIsIj7v z_tds_2f_web-SIsIj7w z_tds_2f_web-SIsIj7x z_tds_2f_web-SIsIj7y z_tds_2f_web-SIsIj7z z_tds_2f_web-SIsIj710 z_tds_2f_web-SIsIj711 z_tds_2f_web-SIsIj712 z_tds_2f_web-SIsIj713 z_tds_2f_web-SIsIj714 z_tds_2f_web-SIsIj715 z_tds_2f_web-SIsIj716 z_tds_2f_web-SIsIj717 z_tds_2f_web-SIsIj718 z_tds_2f_web-SIsIj719 z_tds_2f_web-SIsIj71a z_tds_2f_web-SIsIj71b z_tds_2f_web-SIsIj71c z_tds_2f_web-SIsIj71d z_tds_2f_web-SIsIj71e z_tds_2f_web-SIsIj71f z_tds_2f_web-SIsIj71g z_tds_2f_web-SIsIj71h z_tds_2f_web-SIsIj71i z_tds_2f_web-SIsIj71j z_tds_2f_web-SIsIj71k z_tds_2f_web-SIsIj71l z_tds_2f_web-SIsIj71m z_tds_2f_web-SIsIj71n z_tds_2f_web-SIsIj71o z_tds_2f_web-SIsIj71p z_tds_2f_web-SIsIj71q z_tds_2f_web-SIsIj71r z_tds_2f_web-SIsIj71s z_tds_2f_web-SIsIj71t z_tds_2f_web-SIsIj71u z_tds_2f_web-SIsIj71v z_tds_2f_web-SIsIj71w z_tds_2f_web-SIsIj71x\",result=inline?{className,style:inline}:{className};let value;value=Object.hasOwn(input,\"shape\")?input[\"shape\"]:void 0;if(value===void 0)value=\"default\";if(value!==null&&value!==void 0)result[\"data-shape\"]=String(value);value=Object.hasOwn(input,\"size\")?input[\"size\"]:void 0;if(value===void 0)value=\"medium\";if(value!==null&&value!==void 0)result[\"data-size\"]=String(value);value=Object.hasOwn(input,\"variant\")?input[\"variant\"]:void 0;if(value===void 0)value=\"primary\";if(value!==null&&value!==void 0)result[\"data-variant\"]=String(value);return result});\n styles.content = ((input={})=>{const external=input.className,style=input.style,vars=input.vars,inline=vars?{...vars,...style}:style,className=external?\"z_tds_2f_web-SIsIj71y z_tds_2f_web-SIsIj71z z_tds_2f_web-SIsIj75 z_tds_2f_web-SIsIj720 z_tds_2f_web-SIsIj721 z_tds_2f_web-SIsIj7f z_tds_2f_web-SIsIj722 z_tds_2f_web-SIsIj723\"+\" \"+external:\"z_tds_2f_web-SIsIj71y z_tds_2f_web-SIsIj71z z_tds_2f_web-SIsIj75 z_tds_2f_web-SIsIj720 z_tds_2f_web-SIsIj721 z_tds_2f_web-SIsIj7f z_tds_2f_web-SIsIj722 z_tds_2f_web-SIsIj723\",result=inline?{className,style:inline}:{className};let value;value=Object.hasOwn(input,\"loading\")?input[\"loading\"]:void 0;if(value===void 0)value=\"false\";if(value!==null&&value!==void 0)result[\"data-loading\"]=String(value);return result});\n styles.spinner = /*#__PURE__*/__zyzzProps.create({className:\"z_tds_2f_web-SIsIj724 z_tds_2f_web-SIsIj725 z_tds_2f_web-SIsIj726 z_tds_2f_web-SIsIj727\"});\n})(styles || (styles = {}));\n//# sourceMappingURL=Button.js.map\nimport './Button.css';\n","\nimport { Props as __zyzzProps } from 'zyzz/runtime';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { style } from '../zyzz.config.js';\n/**\n * A centered placeholder for a region with nothing to show yet, such as an empty list or search.\n * The parts render plain elements with no ARIA wiring, in the order you compose them.\n *\n * - Explain why the area is empty and what to do next.\n * - Offer one primary action that resolves the empty state.\n * - `Empty.Title` renders an `h3`, so place the state under an `h2` section heading.\n *\n * @example\n * <Empty.Root>\n * <Empty.Icon>\n * <Clipboard />\n * </Empty.Icon>\n * <Empty.Title>No activity yet</Empty.Title>\n * <Empty.Description>Transactions appear here once you send or receive.</Empty.Description>\n * <Empty.Actions>\n * <Button size=\"small\">Add funds</Button>\n * </Empty.Actions>\n * </Empty.Root>\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements | MDN heading elements}\n * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/info-and-relationships.html | WCAG 2.2 Info and Relationships}\n * @see {@link https://www.w3.org/WAI/WCAG22/Understanding/headings-and-labels.html | WCAG 2.2 Headings and Labels}\n */\nexport var Empty;\n(function (Empty) {\n /** A centered, wrapping row of buttons below the description. */\n function Actions(props) {\n const { className, vars, ...attributes } = props;\n return _jsx(\"div\", { ...attributes, ...styles.actions({ className, style: props.style, vars }) });\n }\n Empty.Actions = Actions;\n function Description(props) {\n const { className, vars, ...attributes } = props;\n return _jsx(\"p\", { ...attributes, ...styles.description({ className, style: props.style, vars }) });\n }\n Empty.Description = Description;\n /** A round badge for a decorative icon. It sets `aria-hidden`, so never put meaning only here. */\n function Icon(props) {\n const { className, vars, ...attributes } = props;\n return (_jsx(\"div\", { \"aria-hidden\": \"true\", ...attributes, ...styles.icon({ className, style: props.style, vars }) }));\n }\n Empty.Icon = Icon;\n function Root(props) {\n const { className, vars, ...attributes } = props;\n return _jsx(\"div\", { ...attributes, ...styles.root({ className, style: props.style, vars }) });\n }\n Empty.Root = Root;\n /** Renders an `h3`. */\n function Title(props) {\n const { className, vars, ...attributes } = props;\n return _jsx(\"h3\", { ...attributes, ...styles.title({ className, style: props.style, vars }) });\n }\n Empty.Title = Title;\n})(Empty || (Empty = {}));\nvar styles;\n(function (styles) {\n styles.actions = /*#__PURE__*/__zyzzProps.create({className:\"z_tds_2f_web-agS1R40 z_tds_2f_web-agS1R41 z_tds_2f_web-agS1R42 z_tds_2f_web-agS1R43 z_tds_2f_web-agS1R44 z_tds_2f_web-agS1R45\"});\n styles.description = /*#__PURE__*/__zyzzProps.create({className:\"z_tds_2f_web-agS1R46 z_tds_2f_web-agS1R47 z_tds_2f_web-agS1R48 z_tds_2f_web-agS1R49 z_tds_2f_web-agS1R4a z_tds_2f_web-agS1R4b z_tds_2f_web-agS1R4c z_tds_2f_web-agS1R4d\"});\n styles.icon = /*#__PURE__*/__zyzzProps.create({className:\"z_tds_2f_web-agS1R40 z_tds_2f_web-agS1R4e z_tds_2f_web-agS1R4f z_tds_2f_web-agS1R46 z_tds_2f_web-agS1R42 z_tds_2f_web-agS1R4g z_tds_2f_web-agS1R4h z_tds_2f_web-agS1R44 z_tds_2f_web-agS1R4i z_tds_2f_web-agS1R4j\"});\n styles.root = /*#__PURE__*/__zyzzProps.create({className:\"z_tds_2f_web-agS1R40 z_tds_2f_web-agS1R4k z_tds_2f_web-agS1R42 z_tds_2f_web-agS1R4l z_tds_2f_web-agS1R4m z_tds_2f_web-agS1R4n z_tds_2f_web-agS1R4o z_tds_2f_web-agS1R4p\"});\n styles.title = /*#__PURE__*/__zyzzProps.create({className:\"z_tds_2f_web-agS1R4q z_tds_2f_web-agS1R4r z_tds_2f_web-agS1R4s z_tds_2f_web-agS1R4t z_tds_2f_web-agS1R4u z_tds_2f_web-agS1R4v z_tds_2f_web-agS1R4w\"});\n})(styles || (styles = {}));\n//# sourceMappingURL=Empty.js.map\nimport './Empty.css';\n","import \"/home/runner/work/id/id/node_modules/.pnpm/zyzz@0.0.38_@babel+core@7.29.7_supports-color@10.2.2__@base-ui+react@1.9.0_@types+react_deffccfdcbf372c8aa35362dae549ba9/node_modules/zyzz/dist/reset.css?transform-only\";export default \"__VITE_CSS_URL__2f686f6d652f72756e6e65722f776f726b2f69642f69642f6e6f64655f6d6f64756c65732f2e706e706d2f7a797a7a40302e302e33385f40626162656c2b636f726540372e32392e375f737570706f7274732d636f6c6f724031302e322e325f5f40626173652d75692b726561637440312e392e305f4074797065732b72656163745f64656666636366646362663337326338616133353336326461653534396261392f6e6f64655f6d6f64756c65732f7a797a7a2f646973742f72657365742e6373733f7472616e73666f726d2d6f6e6c79__\"","/** The document of every admin page. @module */\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query'\nimport {\n createRootRoute,\n HeadContent,\n Link,\n Outlet,\n Scripts,\n} from '@tanstack/react-router'\nimport { Button, Empty, vars as ds } from '@tempoxyz/ds'\nimport { type ReactNode, useState } from 'react'\nimport reset from 'zyzz/reset.css?url'\nimport { style, vars } from '../zyzz.config.js'\n\nexport const Route = createRootRoute({\n component: Root,\n head: () => ({\n links: [\n { href: reset, rel: 'stylesheet' },\n // The pages have no icon, so an empty one keeps the browser from requesting `/favicon.ico`.\n { href: 'data:,', rel: 'icon' },\n ],\n meta: [\n { charSet: 'utf-8' },\n { content: 'width=device-width, initial-scale=1', name: 'viewport' },\n { content: 'noindex', name: 'robots' },\n { title: 'Tempo ID Admin' },\n ],\n }),\n notFoundComponent: NotFound,\n shellComponent: Document,\n})\n\n/** Renders the page with the query client, which the sign-in page's mutations use. */\nfunction Root() {\n // One for the document's lifetime, so it holds no state of another visitor.\n const [queryClient] = useState(() => new QueryClient())\n\n return (\n <QueryClientProvider client={queryClient}>\n <Outlet />\n </QueryClientProvider>\n )\n}\n\n/** Renders the not-found page, with a link to the dashboard. */\nfunction NotFound() {\n return (\n <main {...styles.page()}>\n <Empty.Root>\n <Empty.Title>Page not found</Empty.Title>\n <Empty.Description>\n The admin app has no page at this address. Check the address, or go to\n the dashboard.\n </Empty.Description>\n <Empty.Actions>\n <Button.Link render={<Link to=\"/\" />}>\n Go to the dashboard\n </Button.Link>\n </Empty.Actions>\n </Empty.Root>\n </main>\n )\n}\n\n/** Renders the HTML document around the page. */\nfunction Document(props: Document.Props) {\n return (\n <html className={`${ds().className} ${vars().className}`} lang=\"en\">\n <head>\n <HeadContent />\n </head>\n <body>\n {props.children}\n <Scripts />\n </body>\n </html>\n )\n}\n\ndeclare namespace Document {\n type Props = {\n /** The page. */\n children: ReactNode\n }\n}\n\nnamespace styles {\n export const page = style({\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n minHeight: '100dvh !custom',\n paddingBlock: '64',\n paddingInline: '16',\n })\n}\n","/** The dashboard: a placeholder, with the sign-out of the host's sign-in. @module */\nimport { createFileRoute } from '@tanstack/react-router'\nimport { parseResponse } from 'hono/client'\nimport * as Client from '../lib/Client.js'\nimport { Dashboard } from '../screens/Dashboard.js'\n\nexport const Route = createFileRoute('/')({\n component: () => <Dashboard {...Route.useLoaderData()} />,\n /** Returns the sidebar's links, with the sign-out of the deployment's sign-in. */\n loader: async (): Promise<Dashboard.Props> => {\n const session = await parseResponse(Client.create().i.session.$get())\n return {\n links: {\n home: '/',\n // A preview signs in with an emailed code, and the admin host through Cloudflare Access.\n signOut: session.login ? '/_dev/logout' : '/cdn-cgi/access/logout',\n },\n }\n },\n})\n","/**\n * The sign-in page of a preview's admin app, at `/_dev/sign-in`: an emailed code through the `/_dev`\n * routes, then the dashboard. Only a deployment with `Admin.create`'s `login` serves it. @module\n */\nimport { useMutation } from '@tanstack/react-query'\nimport { createFileRoute, useNavigate } from '@tanstack/react-router'\nimport { parseResponse } from 'hono/client'\nimport { type FormEvent, useEffect } from 'react'\nimport * as Client from '../lib/Client.js'\nimport { SignIn } from '../screens/dev/SignIn.js'\n\nexport const Route = createFileRoute('/_dev/sign-in')({\n component: Page,\n})\n\n/** Milliseconds that the resend button shows its confirmation. */\nconst sentDelay = 5000\n\n/** The page, which owns the sign-in's requests. */\nfunction Page() {\n const navigate = useNavigate()\n const resend = useMutation({ mutationFn: sendCode })\n const send = useMutation({ mutationFn: sendCode })\n const verify = useMutation({\n mutationFn: (variables: { code: string; email: string }) =>\n parseResponse(Client.create()._dev.verify.$post({ json: variables })),\n // The dashboard's loader reads the session with the new cookie.\n onSuccess: () => navigate({ to: '/' }),\n })\n const email = send.isSuccess ? send.variables.email : undefined\n\n // The confirmation of a resent code clears after a short time, so the button offers a resend again.\n useEffect(() => {\n if (!resend.isSuccess) return\n const timer = window.setTimeout(() => resend.reset(), sentDelay)\n return () => window.clearTimeout(timer)\n }, [resend.isSuccess, resend.reset])\n\n const error = (() => {\n const failed = email ? (verify.error ?? resend.error) : send.error\n return failed ? Client.message(failed) : undefined\n })()\n\n function sendCode(variables: { email: string }) {\n return parseResponse(Client.create()._dev.code.$post({ json: variables }))\n }\n\n function submitEmail(event: FormEvent<HTMLFormElement>) {\n event.preventDefault()\n if (send.isPending) return\n send.mutate({\n email: String(new FormData(event.currentTarget).get('email')),\n })\n }\n\n function submitCode(event: FormEvent<HTMLFormElement>) {\n event.preventDefault()\n // A complete code submits the form, and Enter can submit it again before the first returns.\n if (!email || verify.isPending || verify.isSuccess) return\n resend.reset()\n verify.mutate({\n code: String(new FormData(event.currentTarget).get('code')),\n email,\n })\n }\n\n return (\n <SignIn\n email={email}\n error={error}\n invalid={Boolean(email ? verify.error : send.error)}\n onChangeEmail={() => {\n send.reset()\n resend.reset()\n verify.reset()\n }}\n onResend={() => {\n if (!email) return\n verify.reset()\n resend.mutate({ email })\n }}\n onSubmitCode={submitCode}\n onSubmitEmail={submitEmail}\n resend={(() => {\n if (resend.isPending) return 'pending'\n if (resend.isSuccess) return 'sent'\n return 'idle'\n })()}\n sending={send.isPending}\n verifying={verify.isPending || verify.isSuccess}\n />\n )\n}\n","/* eslint-disable */\n\n// @ts-nocheck\n\n// noinspection JSUnusedGlobalSymbols\n\n// This file was automatically generated by TanStack Router.\n// You should NOT make any changes in this file as it will be overwritten.\n// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.\n\nimport { Route as rootRouteImport } from './routes/__root'\nimport { Route as IndexRouteImport } from './routes/index'\nimport { Route as DevSignInRouteImport } from './routes/[_]dev.sign-in'\n\nconst IndexRoute = IndexRouteImport.update({\n id: '/',\n path: '/',\n getParentRoute: () => rootRouteImport,\n} as any)\nconst DevSignInRoute = DevSignInRouteImport.update({\n id: '/_dev/sign-in',\n path: '/_dev/sign-in',\n getParentRoute: () => rootRouteImport,\n} as any)\n\nexport interface FileRoutesByFullPath {\n '/': typeof IndexRoute\n '/_dev/sign-in': typeof DevSignInRoute\n}\nexport interface FileRoutesByTo {\n '/': typeof IndexRoute\n '/_dev/sign-in': typeof DevSignInRoute\n}\nexport interface FileRoutesById {\n __root__: typeof rootRouteImport\n '/': typeof IndexRoute\n '/_dev/sign-in': typeof DevSignInRoute\n}\nexport interface FileRouteTypes {\n fileRoutesByFullPath: FileRoutesByFullPath\n fullPaths: '/' | '/_dev/sign-in'\n fileRoutesByTo: FileRoutesByTo\n to: '/' | '/_dev/sign-in'\n id: '__root__' | '/' | '/_dev/sign-in'\n fileRoutesById: FileRoutesById\n}\nexport interface RootRouteChildren {\n IndexRoute: typeof IndexRoute\n DevSignInRoute: typeof DevSignInRoute\n}\n\ndeclare module '@tanstack/react-router' {\n interface FileRoutesByPath {\n '/': {\n id: '/'\n path: '/'\n fullPath: '/'\n preLoaderRoute: typeof IndexRouteImport\n parentRoute: typeof rootRouteImport\n }\n '/_dev/sign-in': {\n id: '/_dev/sign-in'\n path: '/_dev/sign-in'\n fullPath: '/_dev/sign-in'\n preLoaderRoute: typeof DevSignInRouteImport\n parentRoute: typeof rootRouteImport\n }\n }\n}\n\nconst rootRouteChildren: RootRouteChildren = {\n IndexRoute: IndexRoute,\n DevSignInRoute: DevSignInRoute,\n}\nexport const routeTree = rootRouteImport\n ._addFileChildren(rootRouteChildren)\n ._addFileTypes<FileRouteTypes>()\n\nimport type { getRouter } from './router.tsx'\nimport type { createStart } from '@tanstack/react-start'\ndeclare module '@tanstack/react-start' {\n interface Register {\n ssr: true\n router: Awaited<ReturnType<typeof getRouter>>\n }\n}\n","/** Creates the admin app's router. @module */\nimport { createRouter } from '@tanstack/react-router'\nimport { routeTree } from './routeTree.gen.js'\n\n/** Returns a router, once per server request and once in the browser. */\nexport function getRouter() {\n return createRouter({\n // Each loader reads the deployment's current apps, so its data is never reused.\n defaultPreloadStaleTime: 0,\n routeTree,\n scrollRestoration: true,\n })\n}\n\ndeclare module '@tanstack/react-router' {\n interface Register {\n router: ReturnType<typeof getRouter>\n }\n}\n"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49],"mappings":"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"}
|