@hot-updater/console 1.0.0-rc.20 → 1.0.0-rc.21
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/.output/nitro.json +1 -1
- package/.output/public/assets/{ConsoleFeatureUnavailable-B9VYGA3N.js → ConsoleFeatureUnavailable-D0LPL1Gy.js} +1 -1
- package/.output/public/assets/{HashValueDisplay-D880zntR.js → HashValueDisplay-BmuB4FW-.js} +1 -1
- package/.output/public/assets/InsightsInfo--v4SC07c.js +1 -0
- package/.output/public/assets/InsightsPageHeader-dU83CAQY.js +1 -0
- package/.output/public/assets/{NotFoundPage-Dys8C0cW.js → NotFoundPage-B5mhGG2a.js} +1 -1
- package/.output/public/assets/api-D-vOVlQ4.js +1 -0
- package/.output/public/assets/api-keys-Csh8ARKU.js +1 -0
- package/.output/public/assets/api-keys-OMPUoA_A.js +1 -0
- package/.output/public/assets/arrow-left-Bwq9X1eS.js +1 -0
- package/.output/public/assets/arrow-up-right-BkOVn4if.js +1 -0
- package/.output/public/assets/{card-DzCPSRsh.js → card-C_7d6O9a.js} +1 -1
- package/.output/public/assets/console-features-api-C1jRZTGw.js +1 -0
- package/.output/public/assets/dialog-DE8wFN_P.js +1 -0
- package/.output/public/assets/{dist-Clb6cQ9l.js → dist-C7ENGzpS.js} +1 -1
- package/.output/public/assets/empty-CVd5NlQD.js +1 -0
- package/.output/public/assets/{field-Bou7shoO.js → field-C06q1iC9.js} +1 -1
- package/.output/public/assets/index-BeWlQtO6.js +11 -0
- package/.output/public/assets/{input-group-DVtWFUUF.js → input-group-Bi61biIA.js} +1 -1
- package/.output/public/assets/insights-BjnAtC0f.js +2 -0
- package/.output/public/assets/insights-D86m11yH.js +42 -0
- package/.output/public/assets/insights-DpYstMoY.js +1 -0
- package/.output/public/assets/{insights-recovery-rpc-wvdyM4LD.js → insights-recovery-rpc-BIm5_ALc.js} +1 -1
- package/.output/public/assets/{insights-usage-rpc-qUkNtrWr.js → insights-usage-rpc-VHj8vyBt.js} +1 -1
- package/.output/public/assets/insights_.distribution-ADcrX48c.js +2 -0
- package/.output/public/assets/insights_.distribution-CuuJUN6Y.js +1 -0
- package/.output/public/assets/{insights_.distribution-CItZw3-8.js → insights_.distribution-DJRjuXsO.js} +1 -1
- package/.output/public/assets/installations-BSBBzqWs.js +2 -0
- package/.output/public/assets/installations-DqIE6WcO.js +1 -0
- package/.output/public/assets/installations-UsELbDvw.js +1 -0
- package/.output/public/assets/{loader-circle-Ca7C9YY1.js → loader-circle-CnCBxzHp.js} +1 -1
- package/.output/public/assets/mutation-Csp7xUNh.js +1 -0
- package/.output/public/assets/preload-helper-B-cOmpLH.js +1 -0
- package/.output/public/assets/{refresh-cw-CVGqvy8Z.js → refresh-cw-FF1NtzlQ.js} +1 -1
- package/.output/public/assets/{routes-veKtDW39.js → routes-CoN9XHP_.js} +2 -2
- package/.output/public/assets/routes-DT1jB0Zi.js +1 -0
- package/.output/public/assets/sidebar-D8mJRF15.js +3 -0
- package/.output/public/assets/styles-Bwt7v6U5.css +2 -0
- package/.output/public/assets/table-WBgfvgXg.js +1 -0
- package/.output/public/assets/{useCompositeListItem-CF7vsfcA.js → useCompositeListItem-CloBmDwn.js} +1 -1
- package/.output/public/assets/useMutation-DO8cvsTx.js +1 -0
- package/.output/public/assets/{useOpenInteractionType-AnAMWYIY.js → useOpenInteractionType-ReGr9GzJ.js} +1 -1
- package/.output/public/assets/valueToPercent-BvPAi4bP.js +1 -0
- package/.output/server/{__23tanstack-start-server-fn-resolver-CUQLz7hs.mjs → __23tanstack-start-server-fn-resolver-DMRD4e4f.mjs} +34 -42
- package/.output/server/_libs/@tanstack/react-router+[...].mjs +3756 -4022
- package/.output/server/_libs/@tanstack/react-router-ssr-query+[...].mjs +138 -95
- package/.output/server/_libs/tanstack__history.mjs +68 -41
- package/.output/server/_libs/tanstack__query-core.mjs +1618 -309
- package/.output/server/_libs/tanstack__react-query.mjs +255 -20
- package/.output/server/_ssr/{ConsoleFeatureUnavailable-DoxET2AT.mjs → ConsoleFeatureUnavailable-Du7jNPNS.mjs} +7 -7
- package/.output/server/_ssr/{HashValueDisplay-BplboHEb.mjs → HashValueDisplay-GQvFkXoi.mjs} +2 -2
- package/.output/server/_ssr/{InsightsInfo-o2YPd5Qc.mjs → InsightsInfo-Do7QSaFR.mjs} +2 -2
- package/.output/server/_ssr/{InsightsPageHeader-NExCJL1I.mjs → InsightsPageHeader-DSUWUWRc.mjs} +6 -6
- package/.output/server/_ssr/{NotFoundPage-Cd-A8ock.mjs → NotFoundPage-DsF4Vrhg.mjs} +2 -2
- package/.output/server/_ssr/{api-B1Ro0uys.mjs → api-BEiVs0H7.mjs} +9 -8
- package/.output/server/_ssr/{api-keys-Dvvy1sem.mjs → api-keys-BrvBWGRf.mjs} +2 -2
- package/.output/server/_ssr/{api-keys-CT3HG7KT.mjs → api-keys-K5v32nf7.mjs} +8 -8
- package/.output/server/_ssr/{api-keys-rpc-b1qTTFfG.mjs → api-keys-rpc-B96bBllm.mjs} +5 -5
- package/.output/server/_ssr/{api-rpc-Cbns2MGx.mjs → api-rpc-DcUe280B.mjs} +13 -55
- package/.output/server/_ssr/{auth-rpc-DChS7m9y.mjs → auth-rpc-C68W56DP.mjs} +6 -6
- package/.output/server/_ssr/{api-C0G9MTMI.mjs → auth.server-DM1J6NwR.mjs} +2815 -1308
- package/.output/server/_ssr/{bundleActivity-D17Pb_h5.mjs → bundleActivity-CpuY9CTP.mjs} +1 -1
- package/.output/server/_ssr/{card-DMbcvlPz.mjs → card-CPAEKx0w.mjs} +1 -1
- package/.output/server/_ssr/config-nsIcsHh8.mjs +15 -0
- package/.output/server/_ssr/config.server-DDCZk3Sq.mjs +36 -0
- package/.output/server/_ssr/{console-access-KpPv5lin.mjs → console-access-Da-2Qd7q.mjs} +3 -3
- package/.output/server/_ssr/{console-features-CsbyHYfK.mjs → console-features-Dzu2iUGD.mjs} +6 -6
- package/.output/server/_ssr/{console-features-api-B-KVuo4p.mjs → console-features-api-xAsSgFa_.mjs} +6 -6
- package/.output/server/_ssr/{console-features-rpc-Djyo5740.mjs → console-features-rpc-qARGpB24.mjs} +5 -5
- package/.output/server/_ssr/{createMiddleware-B_I3Ll4M.mjs → createMiddleware-BdBf_ezN.mjs} +41 -56
- package/.output/server/_ssr/{createServerRpc-DuNm5mmo.mjs → createServerRpc-B_y2lrwA.mjs} +2 -2
- package/.output/server/_ssr/databaseJsonValue-Bhxciy7Z.mjs +68 -0
- package/.output/server/_ssr/databaseRows-DwMAjaF8.mjs +74 -0
- package/.output/server/_ssr/{dialog-cOmLTUV2.mjs → dialog-q__BJ7mQ.mjs} +1 -1
- package/.output/server/_ssr/{dist-B-r4u3Lg.mjs → dist-Cxo9ghYv.mjs} +114 -3
- package/.output/server/_ssr/{downloadBundle-CexOFoZ4.mjs → downloadBundle-BW9I-pMQ.mjs} +6 -5
- package/.output/server/_ssr/{empty-BHoY_5jt.mjs → empty-DcBTAooP.mjs} +2 -2
- package/.output/server/_ssr/{empty-plugin-adapters-B5QvGpEl.mjs → empty-plugin-adapters-CYdinE-i.mjs} +1 -1
- package/.output/server/_ssr/{field-mjhcNEXD.mjs → field-QCDBVpXA.mjs} +2 -2
- package/.output/server/_ssr/{getBundleChildren-DbDXe9wB.mjs → getBundleChildren-DIAGCF4a.mjs} +2 -2
- package/.output/server/_ssr/{input-group-96H30HWC.mjs → input-group-hCk2nUoU.mjs} +1 -1
- package/.output/server/_ssr/{insights-DgFv1NsO.mjs → insights-BfBO0RFr.mjs} +18 -18
- package/.output/server/_ssr/{insights-D359GJFL.mjs → insights-DsAU3-TB.mjs} +5 -5
- package/.output/server/_ssr/{insights-D25VDVaz.mjs → insights-RIfg447W.mjs} +2 -2
- package/.output/server/_ssr/{insights-api-ChAKrbhG.mjs → insights-api-CDn-QQHU.mjs} +5 -5
- package/.output/server/_ssr/{insights-failures-WQ-ttjOx.mjs → insights-failures-BBGMhuUr.mjs} +2 -2
- package/.output/server/_ssr/{insights-failures-rpc-BFsqlltN.mjs → insights-failures-rpc-rA2dctK2.mjs} +8 -8
- package/.output/server/_ssr/{insights-recovery-DkL6bxMW.mjs → insights-recovery-Dpk6Mfb9.mjs} +1 -1
- package/.output/server/_ssr/{insights-recovery-rpc-2P5m8F62.mjs → insights-recovery-rpc-BCaF-xSd.mjs} +11 -11
- package/.output/server/_ssr/{insights-recovery-rpc-Tj8vNC19.mjs → insights-recovery-rpc-CcgYyUHk.mjs} +5 -5
- package/.output/server/_ssr/{insights-rpc-DrkVmV9o.mjs → insights-rpc-keycmwzw.mjs} +5 -5
- package/.output/server/_ssr/{insights-search-BsalnNw-.mjs → insights-search-BRg5VsNe.mjs} +1 -1
- package/.output/server/_ssr/{insights-usage-1nVTQrLy.mjs → insights-usage-cbw9n2Fq.mjs} +1 -1
- package/.output/server/_ssr/{insights-usage-rpc-Ct_4xHhZ.mjs → insights-usage-rpc-BKgV1QDf.mjs} +8 -8
- package/.output/server/_ssr/{insights-usage-rpc-DaYIRtFK.mjs → insights-usage-rpc-D-JYachy.mjs} +5 -5
- package/.output/server/_ssr/{insightsRecovery-CpGucWN1.mjs → insightsRecovery-B7oMc8d8.mjs} +2 -2
- package/.output/server/_ssr/{insightsUsage-JYpKZAF7.mjs → insightsUsage-Oa7kk5ek.mjs} +3 -3
- package/.output/server/_ssr/{insights_.distribution-jQZEF07J.mjs → insights_.distribution-BIqOqRW0.mjs} +13 -13
- package/.output/server/_ssr/{insights_.distribution-Bcu6uYs_.mjs → insights_.distribution-CuUrDa7P.mjs} +2 -2
- package/.output/server/_ssr/{insights_.distribution-D3Csuyjw.mjs → insights_.distribution-RT_6x_ud.mjs} +5 -5
- package/.output/server/_ssr/{installations-Cxikllmx.mjs → installations-BO5CjX2z.mjs} +11 -11
- package/.output/server/_ssr/{installations-BI5kelHv.mjs → installations-BjaHiIfh.mjs} +2 -2
- package/.output/server/_ssr/{installations-B8Vh54lH.mjs → installations-Dt5luA-N.mjs} +4 -4
- package/.output/server/_ssr/{listReleases-DqU9t1l3.mjs → listReleases-BitHzOYB.mjs} +1 -1
- package/.output/server/_ssr/{router-CRkm-wHD.mjs → router-DfVAixxe.mjs} +42 -39
- package/.output/server/_ssr/{routes-CNAi0Mmv.mjs → routes-C6LstNp8.mjs} +14 -14
- package/.output/server/_ssr/{routes-B3IJo_jL.mjs → routes-Q3Uhmwwz.mjs} +11 -11
- package/.output/server/_ssr/{runtime.server-NucbYjc7.mjs → runtime.server-fL0o6I2b.mjs} +500 -413
- package/.output/server/_ssr/schema-BKY9SqaY.mjs +25 -0
- package/.output/server/_ssr/{select-BkPAJFL7.mjs → select-CUlInmjk.mjs} +1 -1
- package/.output/server/_ssr/server-C43wq9ft.mjs +8330 -0
- package/.output/server/_ssr/{sidebar-Cw1VuC7d.mjs → sidebar-DKbx2ach.mjs} +3 -3
- package/.output/server/_ssr/ssr.mjs +1 -1
- package/.output/server/_ssr/start-BXUOv_n8.mjs +4 -0
- package/.output/server/_ssr/{table-q0P9wz7x.mjs → table-NGWV8B-S.mjs} +1 -1
- package/.output/server/_ssr/{updateFailures-DMU9f0pK.mjs → updateFailures-Jwe2Baab.mjs} +3 -3
- package/.output/server/_ssr/{uuidv7-BzSO-fr-.mjs → uuidv7-C8bwiZr8.mjs} +2 -2
- package/.output/server/_tanstack-start-manifest_v-WQ5qGn8n.mjs +124 -0
- package/.output/server/index.mjs +218 -218
- package/LICENSE +13 -14
- package/README.md +16 -12
- package/lib/index.d.mts +18 -8
- package/lib/vite-internal.mjs +15 -8
- package/lib/vite.d.mts +2 -0
- package/package.json +14 -14
- package/src/components/AppSidebar.tsx +9 -0
- package/src/components/ConsoleFeatureUnavailable.tsx +1 -3
- package/src/components/features/bundles/BundleMetadata.tsx +1 -1
- package/src/components/features/bundles/RolloutCohortsDialog.tsx +1 -1
- package/src/components/features/releases/ReleaseEditorSheet.tsx +6 -6
- package/src/index.ts +27 -15
- package/src/lib/api-rpc.ts +1 -54
- package/src/lib/api.ts +8 -89
- package/src/lib/console-features.ts +5 -5
- package/src/lib/scroll-restoration.ts +1 -1
- package/src/lib/server/config.server.ts +15 -52
- package/src/lib/server/console-runtime.server.ts +84 -6
- package/src/lib/server/downloadBundle.ts +10 -6
- package/src/lib/server/releaseReachability.ts +4 -4
- package/src/lib/server/runtime.server.ts +34 -46
- package/src/routeTree.gen.ts +31 -31
- package/src/routes/api/bundles/$bundleId/download.ts +2 -2
- package/src/vite-internal.ts +17 -8
- package/src/vite.ts +2 -0
- package/.output/public/assets/InsightsInfo-By_sPjTE.js +0 -1
- package/.output/public/assets/InsightsPageHeader-9_kx_LL7.js +0 -1
- package/.output/public/assets/api-CtarlV0l.js +0 -1
- package/.output/public/assets/api-keys-DFF_QqtN.js +0 -1
- package/.output/public/assets/api-keys-evfsQ4sN.js +0 -1
- package/.output/public/assets/arrow-left-BP9D-ta_.js +0 -1
- package/.output/public/assets/arrow-up-right-CDP9Tevw.js +0 -1
- package/.output/public/assets/console-features-api-yv7rm3DX.js +0 -1
- package/.output/public/assets/dialog-BDvCy_QO.js +0 -1
- package/.output/public/assets/empty-C5x9mn_s.js +0 -1
- package/.output/public/assets/index-0eg3l8aC.js +0 -10
- package/.output/public/assets/insights-2MbdiSNv.js +0 -1
- package/.output/public/assets/insights-C6tmCZHk.js +0 -2
- package/.output/public/assets/insights-CadS_aIA.js +0 -42
- package/.output/public/assets/insights_.distribution-BhBs6PNA.js +0 -1
- package/.output/public/assets/insights_.distribution-CJUH_wAS.js +0 -2
- package/.output/public/assets/installations-CH2H7JQt.js +0 -2
- package/.output/public/assets/installations-DMeMuwsW.js +0 -1
- package/.output/public/assets/installations-DnvxI9Dt.js +0 -1
- package/.output/public/assets/mutation-x9L28_CD.js +0 -1
- package/.output/public/assets/preload-helper-BN-UkjOE.js +0 -1
- package/.output/public/assets/routes-BhK8DuZA.js +0 -1
- package/.output/public/assets/sidebar-B45aMqRm.js +0 -3
- package/.output/public/assets/styles-Dn0pK1EX.css +0 -2
- package/.output/public/assets/table-CwLnN6KX.js +0 -1
- package/.output/public/assets/useMutation-CN1ygYEr.js +0 -1
- package/.output/public/assets/valueToPercent-C-t8FT0y.js +0 -1
- package/.output/server/_ssr/auth.server-Ccqz2iVv.mjs +0 -37
- package/.output/server/_ssr/config-DMEJdhoW.mjs +0 -13
- package/.output/server/_ssr/config.server-DyypN6cQ.mjs +0 -60
- package/.output/server/_ssr/databaseRows-CXxf_VIB.mjs +0 -132
- package/.output/server/_ssr/deleteBundle-Dcc21Lbd.mjs +0 -56
- package/.output/server/_ssr/server-DKJYsaCP.mjs +0 -7442
- package/.output/server/_ssr/start-DpViQGnt.mjs +0 -4
- package/.output/server/_tanstack-start-manifest_v-Bb0gKDbb.mjs +0 -124
- package/src/lib/server/deleteBundle.ts +0 -136
|
@@ -1,121 +1,164 @@
|
|
|
1
1
|
import { i as __toESM } from "../../_runtime.mjs";
|
|
2
2
|
import { mt as require_react, pt as require_jsx_runtime } from "../@base-ui/react+[...].mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { g as isRedirect } from "./react-router+[...].mjs";
|
|
4
4
|
import { i as QueryClientProvider } from "../tanstack__react-query.mjs";
|
|
5
|
-
import "
|
|
6
|
-
//#region ../../node_modules/.pnpm/@tanstack+router-ssr-query-core@1.169.
|
|
5
|
+
import { a as dehydrateQuery, o as hydrate } from "../tanstack__query-core.mjs";
|
|
6
|
+
//#region ../../node_modules/.pnpm/@tanstack+router-ssr-query-core@1.169.3_@tanstack+query-core@5.104.0_@tanstack+router-core@1.171.34/node_modules/@tanstack/router-ssr-query-core/dist/esm/index.js
|
|
7
7
|
var import_react = /* @__PURE__ */ __toESM(require_react(), 1);
|
|
8
|
+
var shouldDehydrateAllQueries = () => true;
|
|
8
9
|
function setupCoreRouterSsrQueryIntegration({ router, queryClient, dehydrateOptions, hydrateOptions, handleRedirects = true }) {
|
|
9
|
-
router.options.hydrate;
|
|
10
|
-
const ogDehydrate = router.options.dehydrate;
|
|
11
10
|
{
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
let
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (
|
|
19
|
-
|
|
20
|
-
try {
|
|
21
|
-
unsubscribe?.();
|
|
22
|
-
} catch {}
|
|
23
|
-
unsubscribe = void 0;
|
|
24
|
-
try {
|
|
25
|
-
if (!queryStream.isClosed()) queryStream.close();
|
|
26
|
-
} catch {}
|
|
11
|
+
const originalDehydrate = router.options.dehydrate;
|
|
12
|
+
let streamState;
|
|
13
|
+
let cleanedUp = false;
|
|
14
|
+
const finalizeQueryStream = (failure) => {
|
|
15
|
+
const state = streamState;
|
|
16
|
+
streamState = void 0;
|
|
17
|
+
if (!state) return;
|
|
18
|
+
state.unsubscribe();
|
|
27
19
|
try {
|
|
28
|
-
|
|
20
|
+
if (failure) state.controller.error(failure.error);
|
|
21
|
+
else state.controller.close();
|
|
29
22
|
} catch {}
|
|
30
|
-
try {
|
|
31
|
-
queryClient.clear();
|
|
32
|
-
} catch {}
|
|
33
|
-
sentQueries.clear();
|
|
34
23
|
};
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
cleanupRegistered = true;
|
|
24
|
+
const teardown = () => {
|
|
25
|
+
cleanedUp = true;
|
|
26
|
+
finalizeQueryStream();
|
|
27
|
+
queryClient.clear();
|
|
40
28
|
};
|
|
41
29
|
router.serverSsrLifecycle = {
|
|
42
30
|
...router.serverSsrLifecycle,
|
|
43
|
-
onServerSsrAttach: [...router.serverSsrLifecycle?.onServerSsrAttach ?? [],
|
|
31
|
+
onServerSsrAttach: [...router.serverSsrLifecycle?.onServerSsrAttach ?? [], (serverSsr) => serverSsr.onCleanup(teardown)]
|
|
44
32
|
};
|
|
45
33
|
router.options.dehydrate = async () => {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const dehydratedRouter = {
|
|
52
|
-
...await ogDehydrate?.(),
|
|
53
|
-
queryStream: queryStream.stream
|
|
54
|
-
};
|
|
55
|
-
const dehydratedQueryClient = dehydrate(queryClient, dehydrateOptions);
|
|
56
|
-
if (dehydratedQueryClient.queries.length > 0) {
|
|
57
|
-
dehydratedQueryClient.queries.forEach((query) => {
|
|
58
|
-
sentQueries.add(query.queryHash);
|
|
59
|
-
});
|
|
60
|
-
dehydratedRouter.dehydratedQueryClient = dehydratedQueryClient;
|
|
61
|
-
}
|
|
62
|
-
return dehydratedRouter;
|
|
63
|
-
};
|
|
64
|
-
const ogClientOptions = queryClient.getDefaultOptions();
|
|
65
|
-
queryClient.setDefaultOptions({
|
|
66
|
-
...ogClientOptions,
|
|
67
|
-
dehydrate: {
|
|
68
|
-
shouldDehydrateQuery: () => true,
|
|
69
|
-
...ogClientOptions.dehydrate
|
|
34
|
+
let originalDehydrated;
|
|
35
|
+
try {
|
|
36
|
+
originalDehydrated = await originalDehydrate?.();
|
|
37
|
+
} finally {
|
|
38
|
+
if (cleanedUp) queryClient.clear();
|
|
70
39
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
40
|
+
if (cleanedUp) return;
|
|
41
|
+
const currentDehydrateOptions = queryClient.getDefaultOptions().dehydrate;
|
|
42
|
+
const shouldDehydrateQuery = dehydrateOptions?.shouldDehydrateQuery ?? currentDehydrateOptions?.shouldDehydrateQuery ?? shouldDehydrateAllQueries;
|
|
43
|
+
const serializeData = dehydrateOptions?.serializeData ?? currentDehydrateOptions?.serializeData;
|
|
44
|
+
const shouldRedactErrors = dehydrateOptions?.shouldRedactErrors ?? currentDehydrateOptions?.shouldRedactErrors;
|
|
45
|
+
const initialQueries = new Array();
|
|
46
|
+
const sentQueries = /* @__PURE__ */ new Set();
|
|
47
|
+
for (const query of queryClient.getQueryCache().getAll()) if (shouldDehydrateQuery(query)) {
|
|
48
|
+
initialQueries.push(dehydrateQuery(query, serializeData, shouldRedactErrors));
|
|
49
|
+
sentQueries.add(query.queryHash);
|
|
79
50
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
51
|
+
let controller;
|
|
52
|
+
const stream = new ReadableStream({ start(value) {
|
|
53
|
+
controller = value;
|
|
54
|
+
} });
|
|
55
|
+
const flushPendingQueries = () => {
|
|
56
|
+
const state = streamState;
|
|
57
|
+
const queries = state?.pendingQueries;
|
|
58
|
+
if (!state || !queries) return;
|
|
59
|
+
state.pendingQueries = void 0;
|
|
60
|
+
const dehydratedQueries = new Array();
|
|
61
|
+
for (const query of queries.values()) {
|
|
62
|
+
if (state.sentQueries.has(query.queryHash) || !shouldDehydrateQuery(query)) continue;
|
|
63
|
+
dehydratedQueries.push(dehydrateQuery(query, serializeData, shouldRedactErrors));
|
|
64
|
+
state.sentQueries.add(query.queryHash);
|
|
65
|
+
}
|
|
66
|
+
if (dehydratedQueries.length > 0) state.controller.enqueue(dehydratedQueries);
|
|
67
|
+
};
|
|
68
|
+
const unsubscribe = queryClient.getQueryCache().subscribe((event) => {
|
|
69
|
+
const state = streamState;
|
|
70
|
+
if (!state) return;
|
|
71
|
+
if (state.sentQueries.has(event.query.queryHash) || !event.query.promise) return;
|
|
72
|
+
if (!state.pendingQueries) {
|
|
73
|
+
state.pendingQueries = /* @__PURE__ */ new Map();
|
|
74
|
+
queueMicrotask(() => {
|
|
75
|
+
try {
|
|
76
|
+
flushPendingQueries();
|
|
77
|
+
} catch (error) {
|
|
78
|
+
finalizeQueryStream({ error });
|
|
79
|
+
}
|
|
80
|
+
});
|
|
85
81
|
}
|
|
82
|
+
state.pendingQueries.set(event.query.queryHash, event.query);
|
|
86
83
|
});
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
84
|
+
streamState = {
|
|
85
|
+
controller,
|
|
86
|
+
sentQueries,
|
|
87
|
+
unsubscribe
|
|
88
|
+
};
|
|
89
|
+
const finishRendering = () => {
|
|
90
|
+
try {
|
|
91
|
+
flushPendingQueries();
|
|
92
|
+
} catch (error) {
|
|
93
|
+
finalizeQueryStream({ error });
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
finalizeQueryStream();
|
|
97
|
+
};
|
|
98
|
+
router.serverSsr.onRenderFinished(finishRendering);
|
|
99
|
+
return {
|
|
100
|
+
...originalDehydrated,
|
|
101
|
+
query: {
|
|
102
|
+
...initialQueries.length > 0 && { initial: initialQueries },
|
|
103
|
+
stream
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
return;
|
|
91
108
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
enqueue: (chunk) => {
|
|
102
|
-
if (!_isClosed) controllerRef.enqueue(chunk);
|
|
103
|
-
},
|
|
104
|
-
close: () => {
|
|
105
|
-
if (_isClosed) return;
|
|
106
|
-
controllerRef.close();
|
|
107
|
-
_isClosed = true;
|
|
108
|
-
},
|
|
109
|
-
isClosed: () => _isClosed,
|
|
110
|
-
error: (err) => {
|
|
111
|
-
if (_isClosed) return;
|
|
112
|
-
_isClosed = true;
|
|
113
|
-
controllerRef.error(err);
|
|
109
|
+
const originalHydrate = router.options.hydrate;
|
|
110
|
+
router.options.hydrate = async (dehydrated) => {
|
|
111
|
+
const query = dehydrated.query;
|
|
112
|
+
try {
|
|
113
|
+
await originalHydrate?.(dehydrated);
|
|
114
|
+
if (query.initial) hydrate(queryClient, { queries: query.initial }, hydrateOptions);
|
|
115
|
+
} catch (error) {
|
|
116
|
+
query.stream.cancel(error).catch(() => {});
|
|
117
|
+
throw error;
|
|
114
118
|
}
|
|
119
|
+
const reader = query.stream.getReader();
|
|
120
|
+
(async () => {
|
|
121
|
+
try {
|
|
122
|
+
for (;;) {
|
|
123
|
+
const { done, value } = await reader.read();
|
|
124
|
+
if (done) return;
|
|
125
|
+
hydrate(queryClient, { queries: value }, hydrateOptions);
|
|
126
|
+
}
|
|
127
|
+
} catch (error) {
|
|
128
|
+
console.error("Error reading query stream:", error);
|
|
129
|
+
reader.cancel(error).catch(() => {});
|
|
130
|
+
} finally {
|
|
131
|
+
reader.releaseLock();
|
|
132
|
+
}
|
|
133
|
+
})();
|
|
115
134
|
};
|
|
135
|
+
if (handleRedirects) {
|
|
136
|
+
const originalMutationCacheConfig = queryClient.getMutationCache().config;
|
|
137
|
+
queryClient.getMutationCache().config = {
|
|
138
|
+
...originalMutationCacheConfig,
|
|
139
|
+
onError: (error, ...rest) => {
|
|
140
|
+
if (isRedirect(error)) {
|
|
141
|
+
error.options._fromLocation = router.stores.location.get();
|
|
142
|
+
return router.navigate(router.resolveRedirect(error).options);
|
|
143
|
+
}
|
|
144
|
+
return originalMutationCacheConfig.onError?.(error, ...rest);
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
const originalQueryCacheConfig = queryClient.getQueryCache().config;
|
|
148
|
+
queryClient.getQueryCache().config = {
|
|
149
|
+
...originalQueryCacheConfig,
|
|
150
|
+
onError: (error, ...rest) => {
|
|
151
|
+
if (isRedirect(error)) {
|
|
152
|
+
error.options._fromLocation = router.stores.location.get();
|
|
153
|
+
return router.navigate(router.resolveRedirect(error).options);
|
|
154
|
+
}
|
|
155
|
+
return originalQueryCacheConfig.onError?.(error, ...rest);
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
}
|
|
116
159
|
}
|
|
117
160
|
//#endregion
|
|
118
|
-
//#region ../../node_modules/.pnpm/@tanstack+react-router-ssr-query@1.167.
|
|
161
|
+
//#region ../../node_modules/.pnpm/@tanstack+react-router-ssr-query@1.167.3_@tanstack+query-core@5.104.0_@tanstack+react-q_1bead130580f43d4c91409744e4c5a0e/node_modules/@tanstack/react-router-ssr-query/dist/esm/index.js
|
|
119
162
|
var import_jsx_runtime = require_jsx_runtime();
|
|
120
163
|
function setupRouterSsrQueryIntegration(opts) {
|
|
121
164
|
setupCoreRouterSsrQueryIntegration(opts);
|
|
@@ -1,7 +1,25 @@
|
|
|
1
|
-
//#region ../../node_modules/.pnpm/@tanstack+history@1.162.
|
|
1
|
+
//#region ../../node_modules/.pnpm/@tanstack+history@1.162.4/node_modules/@tanstack/history/dist/esm/index.js
|
|
2
2
|
var stateIndexKey = "__TSR_index";
|
|
3
3
|
var popStateEvent = "popstate";
|
|
4
4
|
var beforeUnloadEvent = "beforeunload";
|
|
5
|
+
/**
|
|
6
|
+
* Turn protocol-relative inputs such as "//evil.example" into paths
|
|
7
|
+
* such as "/evil.example", keeping navigation on the current origin.
|
|
8
|
+
*
|
|
9
|
+
* For HTTP(S) URLs, WHATWG parsing ignores leading C0 controls and spaces,
|
|
10
|
+
* removes tabs/newlines, and treats backslashes as slashes, so inputs like
|
|
11
|
+
* "/\evil.example" also need normalization. This only allocates when those
|
|
12
|
+
* rules would make the input protocol-relative.
|
|
13
|
+
*/
|
|
14
|
+
var protocolRelativePrefix = /^[\x00-\x20]*(?:[\\/][\t\n\r]*){2,}/;
|
|
15
|
+
function normalizeProtocolRelative(url) {
|
|
16
|
+
const match = protocolRelativePrefix.exec(url);
|
|
17
|
+
return match ? "/" + url.slice(match[0].length) : url;
|
|
18
|
+
}
|
|
19
|
+
function normalizeHref(href) {
|
|
20
|
+
if (/[\x00-\x1f\x7f]/.test(href)) href = href.replace(/[\x00-\x1f\x7f]/g, (character) => " \n\r".includes(character) ? "" : encodeURIComponent(character));
|
|
21
|
+
return normalizeProtocolRelative(href);
|
|
22
|
+
}
|
|
5
23
|
function createHistory(opts) {
|
|
6
24
|
let location = opts.getLocation();
|
|
7
25
|
const subscribers = /* @__PURE__ */ new Set();
|
|
@@ -81,7 +99,7 @@ function createHistory(opts) {
|
|
|
81
99
|
go: (index, navigateOpts) => {
|
|
82
100
|
tryNavigation({
|
|
83
101
|
task: () => {
|
|
84
|
-
opts.go(index);
|
|
102
|
+
opts.go(index, navigateOpts?.ignoreBlocker ?? false);
|
|
85
103
|
handleIndexChange({
|
|
86
104
|
type: "GO",
|
|
87
105
|
index
|
|
@@ -124,11 +142,11 @@ function createHistory(opts) {
|
|
|
124
142
|
},
|
|
125
143
|
flush: () => opts.flush?.(),
|
|
126
144
|
destroy: () => opts.destroy?.(),
|
|
127
|
-
notify
|
|
145
|
+
notify,
|
|
146
|
+
_getBlockers: () => opts.getBlockers?.() ?? []
|
|
128
147
|
};
|
|
129
148
|
}
|
|
130
149
|
function assignKeyAndIndex(index, state) {
|
|
131
|
-
if (!state) state = {};
|
|
132
150
|
const key = createRandomKey();
|
|
133
151
|
return {
|
|
134
152
|
...state,
|
|
@@ -160,7 +178,7 @@ function createBrowserHistory(opts) {
|
|
|
160
178
|
let blockers = [];
|
|
161
179
|
const _getBlockers = () => blockers;
|
|
162
180
|
const _setBlockers = (newBlockers) => blockers = newBlockers;
|
|
163
|
-
const createHref = opts?.createHref
|
|
181
|
+
const createHref = (path) => normalizeHref(opts?.createHref ? opts.createHref(path) : path);
|
|
164
182
|
const parseLocation = opts?.parseLocation ?? (() => parseHref(`${win.location.pathname}${win.location.search}${win.location.hash}`, win.history.state));
|
|
165
183
|
if (!win.history.state?.__TSR_key && !win.history.state?.key) {
|
|
166
184
|
const addedKey = createRandomKey();
|
|
@@ -178,32 +196,32 @@ function createBrowserHistory(opts) {
|
|
|
178
196
|
let ignoreNextBeforeUnload = false;
|
|
179
197
|
const getLocation = () => currentLocation;
|
|
180
198
|
let next;
|
|
181
|
-
let scheduled;
|
|
182
199
|
const flush = () => {
|
|
183
200
|
if (!next) return;
|
|
184
201
|
history._ignoreSubscribers = true;
|
|
185
|
-
(next
|
|
202
|
+
(next[2] ? win.history.pushState : win.history.replaceState)(next[1], "", next[0]);
|
|
186
203
|
history._ignoreSubscribers = false;
|
|
187
204
|
next = void 0;
|
|
188
|
-
scheduled = void 0;
|
|
189
205
|
rollbackLocation = void 0;
|
|
190
206
|
};
|
|
191
|
-
const queueHistoryAction = (
|
|
192
|
-
const href = createHref(destHref);
|
|
193
|
-
|
|
207
|
+
const queueHistoryAction = (isPush, destHref, state) => {
|
|
208
|
+
const href = opts?.createHref ? createHref(destHref) : void 0;
|
|
209
|
+
const hasPendingAction = !!next;
|
|
210
|
+
if (!hasPendingAction) rollbackLocation = currentLocation;
|
|
194
211
|
currentLocation = parseHref(destHref, state);
|
|
195
|
-
next =
|
|
196
|
-
href,
|
|
212
|
+
next = [
|
|
213
|
+
href ?? currentLocation.href,
|
|
197
214
|
state,
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
if (!
|
|
215
|
+
next?.[2] || isPush
|
|
216
|
+
];
|
|
217
|
+
if (!hasPendingAction) queueMicrotask(() => flush());
|
|
201
218
|
};
|
|
202
219
|
const onPushPop = (type) => {
|
|
203
220
|
currentLocation = parseLocation();
|
|
204
221
|
history.notify({ type });
|
|
205
222
|
};
|
|
206
223
|
const onPushPopEvent = async () => {
|
|
224
|
+
ignoreNextBeforeUnload = false;
|
|
207
225
|
if (ignoreNextPop) {
|
|
208
226
|
ignoreNextPop = false;
|
|
209
227
|
return;
|
|
@@ -229,7 +247,7 @@ function createBrowserHistory(opts) {
|
|
|
229
247
|
action
|
|
230
248
|
})) {
|
|
231
249
|
ignoreNextPop = true;
|
|
232
|
-
win.history.go(
|
|
250
|
+
win.history.go(-delta);
|
|
233
251
|
history.notify(notify);
|
|
234
252
|
return;
|
|
235
253
|
}
|
|
@@ -264,20 +282,28 @@ function createBrowserHistory(opts) {
|
|
|
264
282
|
const history = createHistory({
|
|
265
283
|
getLocation,
|
|
266
284
|
getLength: () => win.history.length,
|
|
267
|
-
pushState: (href, state) => queueHistoryAction(
|
|
268
|
-
replaceState: (href, state) => queueHistoryAction(
|
|
285
|
+
pushState: (href, state) => queueHistoryAction(true, href, state),
|
|
286
|
+
replaceState: (href, state) => queueHistoryAction(false, href, state),
|
|
269
287
|
back: (ignoreBlocker) => {
|
|
270
|
-
if (ignoreBlocker)
|
|
271
|
-
|
|
288
|
+
if (ignoreBlocker) {
|
|
289
|
+
skipBlockerNextPop = true;
|
|
290
|
+
ignoreNextBeforeUnload = true;
|
|
291
|
+
}
|
|
272
292
|
return win.history.back();
|
|
273
293
|
},
|
|
274
294
|
forward: (ignoreBlocker) => {
|
|
275
|
-
if (ignoreBlocker)
|
|
276
|
-
|
|
295
|
+
if (ignoreBlocker) {
|
|
296
|
+
skipBlockerNextPop = true;
|
|
297
|
+
ignoreNextBeforeUnload = true;
|
|
298
|
+
}
|
|
277
299
|
win.history.forward();
|
|
278
300
|
},
|
|
279
|
-
go: (n) => {
|
|
301
|
+
go: (n, ignoreBlocker) => {
|
|
280
302
|
nextPopIsGo = true;
|
|
303
|
+
if (ignoreBlocker) {
|
|
304
|
+
skipBlockerNextPop = true;
|
|
305
|
+
ignoreNextBeforeUnload = true;
|
|
306
|
+
}
|
|
281
307
|
win.history.go(n);
|
|
282
308
|
},
|
|
283
309
|
createHref: (href) => createHref(href),
|
|
@@ -295,6 +321,13 @@ function createBrowserHistory(opts) {
|
|
|
295
321
|
setBlockers: _setBlockers,
|
|
296
322
|
notifyOnIndexChange: false
|
|
297
323
|
});
|
|
324
|
+
history._ignoreNextBeforeUnload = (href) => {
|
|
325
|
+
ignoreNextBeforeUnload = false;
|
|
326
|
+
try {
|
|
327
|
+
href = new URL(href, win.document.baseURI).href;
|
|
328
|
+
ignoreNextBeforeUnload = /^https?:/.test(href) && (!href.includes("#") || href.split("#")[0] !== win.location.href.split("#")[0]);
|
|
329
|
+
} catch {}
|
|
330
|
+
};
|
|
298
331
|
win.addEventListener(beforeUnloadEvent, onBeforeUnload, { capture: true });
|
|
299
332
|
win.addEventListener(popStateEvent, onPushPopEvent);
|
|
300
333
|
win.history.pushState = function(...args) {
|
|
@@ -309,34 +342,28 @@ function createBrowserHistory(opts) {
|
|
|
309
342
|
};
|
|
310
343
|
return history;
|
|
311
344
|
}
|
|
312
|
-
/**
|
|
313
|
-
* Sanitize a path to prevent open redirect vulnerabilities.
|
|
314
|
-
* Removes control characters and collapses leading double slashes.
|
|
315
|
-
*/
|
|
316
|
-
function sanitizePath(path) {
|
|
317
|
-
let sanitized = path.replace(/[\x00-\x1f\x7f]/g, "");
|
|
318
|
-
if (sanitized.startsWith("//")) sanitized = "/" + sanitized.replace(/^\/+/, "");
|
|
319
|
-
return sanitized;
|
|
320
|
-
}
|
|
321
345
|
function parseHref(href, state) {
|
|
322
|
-
const sanitizedHref =
|
|
346
|
+
const sanitizedHref = normalizeHref(href);
|
|
323
347
|
const hashIndex = sanitizedHref.indexOf("#");
|
|
324
348
|
const searchIndex = sanitizedHref.indexOf("?");
|
|
325
|
-
|
|
349
|
+
if (!state) {
|
|
350
|
+
const key = createRandomKey();
|
|
351
|
+
state = {
|
|
352
|
+
[stateIndexKey]: 0,
|
|
353
|
+
key,
|
|
354
|
+
__TSR_key: key
|
|
355
|
+
};
|
|
356
|
+
}
|
|
326
357
|
return {
|
|
327
358
|
href: sanitizedHref,
|
|
328
359
|
pathname: sanitizedHref.substring(0, hashIndex > 0 ? searchIndex > 0 ? Math.min(hashIndex, searchIndex) : hashIndex : searchIndex > 0 ? searchIndex : sanitizedHref.length),
|
|
329
360
|
hash: hashIndex > -1 ? sanitizedHref.substring(hashIndex) : "",
|
|
330
361
|
search: searchIndex > -1 ? sanitizedHref.slice(searchIndex, hashIndex === -1 ? void 0 : hashIndex) : "",
|
|
331
|
-
state
|
|
332
|
-
[stateIndexKey]: 0,
|
|
333
|
-
key: addedKey,
|
|
334
|
-
__TSR_key: addedKey
|
|
335
|
-
}
|
|
362
|
+
state
|
|
336
363
|
};
|
|
337
364
|
}
|
|
338
365
|
function createRandomKey() {
|
|
339
366
|
return (Math.random() + 1).toString(36).substring(7);
|
|
340
367
|
}
|
|
341
368
|
//#endregion
|
|
342
|
-
export {
|
|
369
|
+
export { normalizeProtocolRelative as n, parseHref as r, createBrowserHistory as t };
|