one 1.2.21 → 1.2.22-1765155190908

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/dist/cjs/cli/build.cjs +11 -2
  2. package/dist/cjs/cli/build.js +10 -2
  3. package/dist/cjs/cli/build.js.map +1 -1
  4. package/dist/cjs/cli/build.native.js +44 -19
  5. package/dist/cjs/cli/build.native.js.map +1 -1
  6. package/dist/cjs/cli/buildPage.cjs +20 -4
  7. package/dist/cjs/cli/buildPage.js +21 -7
  8. package/dist/cjs/cli/buildPage.js.map +1 -1
  9. package/dist/cjs/cli/buildPage.native.js +38 -6
  10. package/dist/cjs/cli/buildPage.native.js.map +1 -1
  11. package/dist/cjs/createApp.cjs +23 -16
  12. package/dist/cjs/createApp.js +73 -67
  13. package/dist/cjs/createApp.js.map +2 -2
  14. package/dist/cjs/fork/useLinking.cjs +2 -2
  15. package/dist/cjs/fork/useLinking.js +2 -2
  16. package/dist/cjs/fork/useLinking.js.map +1 -1
  17. package/dist/cjs/index.cjs +2 -0
  18. package/dist/cjs/index.js +2 -1
  19. package/dist/cjs/index.js.map +1 -1
  20. package/dist/cjs/index.native.js +2 -0
  21. package/dist/cjs/index.native.js.map +1 -1
  22. package/dist/cjs/router/router.cjs +14 -11
  23. package/dist/cjs/router/router.js +18 -15
  24. package/dist/cjs/router/router.js.map +1 -1
  25. package/dist/cjs/router/router.native.js +15 -12
  26. package/dist/cjs/router/router.native.js.map +1 -1
  27. package/dist/cjs/router/useViteRoutes.cjs +57 -17
  28. package/dist/cjs/router/useViteRoutes.js +55 -17
  29. package/dist/cjs/router/useViteRoutes.js.map +2 -2
  30. package/dist/cjs/router/useViteRoutes.native.js +76 -0
  31. package/dist/cjs/router/useViteRoutes.native.js.map +1 -1
  32. package/dist/cjs/useLoader.cjs +39 -40
  33. package/dist/cjs/useLoader.js +10 -7
  34. package/dist/cjs/useLoader.js.map +1 -1
  35. package/dist/cjs/useLoader.native.js +54 -54
  36. package/dist/cjs/useLoader.native.js.map +1 -1
  37. package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +12 -1
  38. package/dist/cjs/vite/plugins/virtualEntryPlugin.js +12 -1
  39. package/dist/cjs/vite/plugins/virtualEntryPlugin.js.map +1 -1
  40. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +12 -1
  41. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  42. package/dist/esm/cli/build.js +10 -2
  43. package/dist/esm/cli/build.js.map +1 -1
  44. package/dist/esm/cli/build.mjs +11 -2
  45. package/dist/esm/cli/build.mjs.map +1 -1
  46. package/dist/esm/cli/build.native.js +44 -19
  47. package/dist/esm/cli/build.native.js.map +1 -1
  48. package/dist/esm/cli/buildPage.js +21 -7
  49. package/dist/esm/cli/buildPage.js.map +1 -1
  50. package/dist/esm/cli/buildPage.mjs +20 -4
  51. package/dist/esm/cli/buildPage.mjs.map +1 -1
  52. package/dist/esm/cli/buildPage.native.js +38 -6
  53. package/dist/esm/cli/buildPage.native.js.map +1 -1
  54. package/dist/esm/createApp.js +73 -66
  55. package/dist/esm/createApp.js.map +2 -2
  56. package/dist/esm/createApp.mjs +23 -16
  57. package/dist/esm/createApp.mjs.map +1 -1
  58. package/dist/esm/fork/useLinking.js +2 -2
  59. package/dist/esm/fork/useLinking.js.map +1 -1
  60. package/dist/esm/fork/useLinking.mjs +2 -2
  61. package/dist/esm/fork/useLinking.mjs.map +1 -1
  62. package/dist/esm/index.js +2 -0
  63. package/dist/esm/index.js.map +1 -1
  64. package/dist/esm/index.mjs +2 -1
  65. package/dist/esm/index.mjs.map +1 -1
  66. package/dist/esm/index.native.js +2 -1
  67. package/dist/esm/index.native.js.map +1 -1
  68. package/dist/esm/router/router.js +18 -14
  69. package/dist/esm/router/router.js.map +1 -1
  70. package/dist/esm/router/router.mjs +14 -12
  71. package/dist/esm/router/router.mjs.map +1 -1
  72. package/dist/esm/router/router.native.js +15 -13
  73. package/dist/esm/router/router.native.js.map +1 -1
  74. package/dist/esm/router/useViteRoutes.js +55 -17
  75. package/dist/esm/router/useViteRoutes.js.map +1 -1
  76. package/dist/esm/router/useViteRoutes.mjs +54 -18
  77. package/dist/esm/router/useViteRoutes.mjs.map +1 -1
  78. package/dist/esm/router/useViteRoutes.native.js +73 -1
  79. package/dist/esm/router/useViteRoutes.native.js.map +1 -1
  80. package/dist/esm/useLoader.js +10 -8
  81. package/dist/esm/useLoader.js.map +1 -1
  82. package/dist/esm/useLoader.mjs +40 -41
  83. package/dist/esm/useLoader.mjs.map +1 -1
  84. package/dist/esm/useLoader.native.js +55 -55
  85. package/dist/esm/useLoader.native.js.map +1 -1
  86. package/dist/esm/vite/plugins/virtualEntryPlugin.js +12 -1
  87. package/dist/esm/vite/plugins/virtualEntryPlugin.js.map +1 -1
  88. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +12 -1
  89. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
  90. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +12 -1
  91. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  92. package/package.json +10 -10
  93. package/src/cli/build.ts +26 -1
  94. package/src/cli/buildPage.ts +28 -5
  95. package/src/createApp.tsx +29 -21
  96. package/src/fork/useLinking.ts +10 -1
  97. package/src/index.ts +1 -0
  98. package/src/router/router.ts +33 -20
  99. package/src/router/useViteRoutes.tsx +127 -17
  100. package/src/types.ts +1 -0
  101. package/src/useLoader.ts +20 -12
  102. package/src/vite/plugins/virtualEntryPlugin.ts +12 -1
  103. package/src/vite/types.ts +2 -0
  104. package/types/cli/build.d.ts.map +1 -1
  105. package/types/cli/buildPage.d.ts +1 -1
  106. package/types/cli/buildPage.d.ts.map +1 -1
  107. package/types/createApp.d.ts.map +1 -1
  108. package/types/fork/useLinking.d.ts.map +1 -1
  109. package/types/index.d.ts +1 -0
  110. package/types/index.d.ts.map +1 -1
  111. package/types/router/router.d.ts +3 -2
  112. package/types/router/router.d.ts.map +1 -1
  113. package/types/router/useViteRoutes.d.ts +11 -0
  114. package/types/router/useViteRoutes.d.ts.map +1 -1
  115. package/types/types.d.ts +1 -0
  116. package/types/types.d.ts.map +1 -1
  117. package/types/useLoader.d.ts.map +1 -1
  118. package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
  119. package/types/vite/types.d.ts +1 -0
  120. package/types/vite/types.d.ts.map +1 -1
@@ -2,6 +2,54 @@ let lastVersion = 0, context;
2
2
  function useViteRoutes(routes, routerRoot, options, version) {
3
3
  return version && version > lastVersion && (context = null, lastVersion = version), context || loadRoutes(routes, routerRoot, options), context;
4
4
  }
5
+ let preloadedModules = {};
6
+ function registerPreloadedRoute(key, module) {
7
+ preloadedModules[key] = module;
8
+ }
9
+ function getPreloadedModule(key) {
10
+ return preloadedModules[key];
11
+ }
12
+ function getPreloadedModuleKeys() {
13
+ return Object.keys(preloadedModules);
14
+ }
15
+ function matchDynamicRoute(routePattern, actualPath) {
16
+ const routeSegments = routePattern.split("/"), pathSegments = actualPath.split("/");
17
+ if (routeSegments.some((s) => s.startsWith("[..."))) {
18
+ const catchAllIdx = routeSegments.findIndex((s) => s.startsWith("[..."));
19
+ for (let i = 0; i < catchAllIdx; i++)
20
+ if (routeSegments[i] && !routeSegments[i].startsWith("[") && routeSegments[i] !== pathSegments[i])
21
+ return !1;
22
+ return pathSegments.length >= catchAllIdx;
23
+ }
24
+ if (routeSegments.length !== pathSegments.length) return !1;
25
+ for (let i = 0; i < routeSegments.length; i++) {
26
+ const routeSeg = routeSegments[i], pathSeg = pathSegments[i];
27
+ if (!(routeSeg.startsWith("[") && routeSeg.endsWith("]")) && routeSeg !== pathSeg)
28
+ return !1;
29
+ }
30
+ return !0;
31
+ }
32
+ async function preloadRouteModules(href) {
33
+ const globbed = globalThis.__importMetaGlobbed;
34
+ if (!globbed) return;
35
+ const normalizedHref = href === "/" ? "" : href.replace(/^\//, "").replace(/\/$/, ""), promises = [];
36
+ for (const key of Object.keys(globbed)) {
37
+ let routePath = key.replace(/^\/[^/]+\//, "");
38
+ routePath = routePath.replace(/\([^)]+\)\//g, ""), routePath = routePath.replace(/\/_layout\.tsx$/, "").replace(/\/index(\+[a-z]+)?\.tsx$/, "").replace(/(\+[a-z]+)?\.tsx$/, ""), routePath = routePath.replace(/^\//, "");
39
+ const isStaticMatch = routePath === normalizedHref || // exact match
40
+ routePath.startsWith(normalizedHref + "/") || // child route
41
+ normalizedHref.startsWith(routePath + "/") || // parent layout
42
+ routePath === "" || // root layout
43
+ normalizedHref !== "" && routePath === normalizedHref.split("/")[0], isDynamicMatch = routePath.includes("[") && matchDynamicRoute(routePath, normalizedHref);
44
+ (isStaticMatch || isDynamicMatch) && typeof globbed[key] == "function" && promises.push(
45
+ globbed[key]().then((mod) => {
46
+ preloadedModules[key] = mod;
47
+ }).catch(() => {
48
+ })
49
+ );
50
+ }
51
+ await Promise.all(promises);
52
+ }
5
53
  function loadRoutes(paths, routerRoot, options) {
6
54
  return context || (globalThis.__importMetaGlobbed = paths, context = globbedRoutesToRouteContext(paths, routerRoot, options), context);
7
55
  }
@@ -19,6 +67,9 @@ function globbedRoutesToRouteContext(paths, routerRoot, options) {
19
67
  function resolve(id) {
20
68
  if (clearTimeout(clears[id]), loadedRoutes[id])
21
69
  return loadedRoutes[id];
70
+ const preloadKey = id.replace("./", `/${routerRoot}/`), preloaded = getPreloadedModule(preloadKey);
71
+ if (preloaded)
72
+ return loadedRoutes[id] = preloaded, preloaded;
22
73
  if (typeof routesSync[id] != "function")
23
74
  return routesSync[id];
24
75
  throw promises[id] || (promises[id] = routesSync[id]().then((val) => (loadedRoutes[id] = val, delete promises[id], clears[id] = setTimeout(() => {
@@ -26,31 +77,18 @@ function globbedRoutesToRouteContext(paths, routerRoot, options) {
26
77
  }, 500), val)).catch((err) => {
27
78
  console.error("Error loading route", id, err, new Error().stack), loadedRoutes[id] = {
28
79
  default: () => null
29
- // <View
30
- // style={{
31
- // position: 'absolute',
32
- // top: 0,
33
- // left: 0,
34
- // right: 0,
35
- // bottom: 0,
36
- // alignItems: 'center',
37
- // justifyContent: 'center',
38
- // backgroundColor: '#000',
39
- // gap: 20,
40
- // }}
41
- // >
42
- // <Text style={{ fontSize: 24, color: '#fff' }}>Error loading route</Text>
43
- // <Text style={{ fontSize: 16, color: '#fff' }}>{id}</Text>
44
- // <Text style={{ fontSize: 18, color: '#fff', maxWidth: 800 }}>{`${err}`}</Text>
45
- // </View>
46
80
  }, delete promises[id];
47
81
  }), process.env.NODE_ENV === "development" && (promises[id].stack = new Error().stack)), promises[id];
48
82
  }
49
83
  return resolve.keys = () => moduleKeys, resolve.id = "", resolve.resolve = (id) => id, resolve;
50
84
  }
51
85
  export {
86
+ getPreloadedModule,
87
+ getPreloadedModuleKeys,
52
88
  globbedRoutesToRouteContext,
53
89
  loadRoutes,
90
+ preloadRouteModules,
91
+ registerPreloadedRoute,
54
92
  useViteRoutes
55
93
  };
56
94
  //# sourceMappingURL=useViteRoutes.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/router/useViteRoutes.tsx"],
4
- "mappings": "AAKA,IAAI,cAAc,GACd;AAGG,SAAS,cACd,QACA,YACA,SACA,SACA;AACA,SAAI,WAAW,UAAU,gBAEvB,UAAU,MACV,cAAc,UAGX,WACH,WAAW,QAAQ,YAAY,OAAO,GAGjC;AACT;AAEO,SAAS,WACd,OACA,YACA,SACA;AACA,SAAI,YACJ,WAAW,sBAAyB,OACpC,UAAU,4BAA4B,OAAO,YAAY,OAAO,GACzD;AACT;AAEO,SAAS,4BACd,OACA,YACA,SACkB;AAElB,QAAM,aAAa,CAAC,GACd,WAAW,CAAC,GACZ,eAAe,CAAC,GAChB,SAAS,CAAC;AAEhB,SAAO,KAAK,KAAK,EAAE,QAAQ,CAAC,SAAS;AACnC,QAAI,CAAC,MAAM,IAAI,GAAG;AAChB,cAAQ,MAAM,gCAAgC,IAAI,EAAE;AACpD;AAAA,IACF;AACA,UAAM,oBAAoB,MAAM,IAAI,GAC9B,sBAAsB,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,GAE1D,eAAe,oBAAoB,MAAM,CAAC,EAAE,QAAQ,cAAc,EAAE;AAC1E,IAAI,SAAS,aAAa,YAAY,MAAM,SAC1C,QAAQ,KAAK,aAAa,YAAY,EAAE,GAExC,aAAa,mBAAmB,IAAI,MAC3B,QAGT,WAAW,mBAAmB,IAAI;AAAA,EAEtC,CAAC;AAED,QAAM,aAAa,OAAO,KAAK,UAAU;AAEzC,WAAS,QAAQ,IAAY;AAG3B,QAFA,aAAa,OAAO,EAAE,CAAC,GAEnB,aAAa,EAAE;AACjB,aAAO,aAAa,EAAE;AAGxB,QAAI,OAAO,WAAW,EAAE,KAAM;AAC5B,aAAO,WAAW,EAAE;AAGtB,UAAK,SAAS,EAAE,MACd,SAAS,EAAE,IAAI,WAAW,EAAE,EAAE,EAC3B,KAAK,CAAC,SACL,aAAa,EAAE,IAAI,KACnB,OAAO,SAAS,EAAE,GAGlB,OAAO,EAAE,IAAI,WAAW,MAAM;AAC5B,aAAO,aAAa,EAAE;AAAA,IACxB,GAAG,GAAG,GAEC,IACR,EACA,MAAM,CAAC,QAAQ;AACd,cAAQ,MAAM,uBAAuB,IAAI,KAAK,IAAI,MAAM,EAAE,KAAK,GAC/D,aAAa,EAAE,IAAI;AAAA,QACjB,SAAS,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAkBjB,GACA,OAAO,SAAS,EAAE;AAAA,IACpB,CAAC,GAEC,QAAQ,IAAI,aAAa,kBAC3B,SAAS,EAAE,EAAE,QAAQ,IAAI,MAAM,EAAE,SAO/B,SAAS,EAAE;AAAA,EACnB;AAEA,iBAAQ,OAAO,MAAM,YACrB,QAAQ,KAAK,IACb,QAAQ,UAAU,CAAC,OAAe,IAE3B;AACT;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -3,6 +3,56 @@ let lastVersion = 0,
3
3
  function useViteRoutes(routes, routerRoot, options, version) {
4
4
  return version && version > lastVersion && (context = null, lastVersion = version), context || loadRoutes(routes, routerRoot, options), context;
5
5
  }
6
+ let preloadedModules = {};
7
+ function registerPreloadedRoute(key, module) {
8
+ preloadedModules[key] = module;
9
+ }
10
+ function getPreloadedModule(key) {
11
+ return preloadedModules[key];
12
+ }
13
+ function getPreloadedModuleKeys() {
14
+ return Object.keys(preloadedModules);
15
+ }
16
+ function matchDynamicRoute(routePattern, actualPath) {
17
+ const routeSegments = routePattern.split("/"),
18
+ pathSegments = actualPath.split("/");
19
+ if (routeSegments.some(s => s.startsWith("[..."))) {
20
+ const catchAllIdx = routeSegments.findIndex(s => s.startsWith("[..."));
21
+ for (let i = 0; i < catchAllIdx; i++) if (routeSegments[i] && !routeSegments[i].startsWith("[") && routeSegments[i] !== pathSegments[i]) return !1;
22
+ return pathSegments.length >= catchAllIdx;
23
+ }
24
+ if (routeSegments.length !== pathSegments.length) return !1;
25
+ for (let i = 0; i < routeSegments.length; i++) {
26
+ const routeSeg = routeSegments[i],
27
+ pathSeg = pathSegments[i];
28
+ if (!(routeSeg.startsWith("[") && routeSeg.endsWith("]")) && routeSeg !== pathSeg) return !1;
29
+ }
30
+ return !0;
31
+ }
32
+ async function preloadRouteModules(href) {
33
+ const globbed = globalThis.__importMetaGlobbed;
34
+ if (!globbed) return;
35
+ const normalizedHref = href === "/" ? "" : href.replace(/^\//, "").replace(/\/$/, ""),
36
+ promises = [];
37
+ for (const key of Object.keys(globbed)) {
38
+ let routePath = key.replace(/^\/[^/]+\//, "");
39
+ routePath = routePath.replace(/\([^)]+\)\//g, ""), routePath = routePath.replace(/\/_layout\.tsx$/, "").replace(/\/index(\+[a-z]+)?\.tsx$/, "").replace(/(\+[a-z]+)?\.tsx$/, ""), routePath = routePath.replace(/^\//, "");
40
+ const isStaticMatch = routePath === normalizedHref ||
41
+ // exact match
42
+ routePath.startsWith(normalizedHref + "/") ||
43
+ // child route
44
+ normalizedHref.startsWith(routePath + "/") ||
45
+ // parent layout
46
+ routePath === "" ||
47
+ // root layout
48
+ normalizedHref !== "" && routePath === normalizedHref.split("/")[0],
49
+ isDynamicMatch = routePath.includes("[") && matchDynamicRoute(routePath, normalizedHref);
50
+ (isStaticMatch || isDynamicMatch) && typeof globbed[key] == "function" && promises.push(globbed[key]().then(mod => {
51
+ preloadedModules[key] = mod;
52
+ }).catch(() => {}));
53
+ }
54
+ await Promise.all(promises);
55
+ }
6
56
  function loadRoutes(paths, routerRoot, options) {
7
57
  return context || (globalThis.__importMetaGlobbed = paths, context = globbedRoutesToRouteContext(paths, routerRoot, options), context);
8
58
  }
@@ -24,33 +74,19 @@ function globbedRoutesToRouteContext(paths, routerRoot, options) {
24
74
  const moduleKeys = Object.keys(routesSync);
25
75
  function resolve(id) {
26
76
  if (clearTimeout(clears[id]), loadedRoutes[id]) return loadedRoutes[id];
77
+ const preloadKey = id.replace("./", `/${routerRoot}/`),
78
+ preloaded = getPreloadedModule(preloadKey);
79
+ if (preloaded) return loadedRoutes[id] = preloaded, preloaded;
27
80
  if (typeof routesSync[id] != "function") return routesSync[id];
28
81
  throw promises[id] || (promises[id] = routesSync[id]().then(val => (loadedRoutes[id] = val, delete promises[id], clears[id] = setTimeout(() => {
29
82
  delete loadedRoutes[id];
30
83
  }, 500), val)).catch(err => {
31
84
  console.error("Error loading route", id, err, new Error().stack), loadedRoutes[id] = {
32
85
  default: () => null
33
- // <View
34
- // style={{
35
- // position: 'absolute',
36
- // top: 0,
37
- // left: 0,
38
- // right: 0,
39
- // bottom: 0,
40
- // alignItems: 'center',
41
- // justifyContent: 'center',
42
- // backgroundColor: '#000',
43
- // gap: 20,
44
- // }}
45
- // >
46
- // <Text style={{ fontSize: 24, color: '#fff' }}>Error loading route</Text>
47
- // <Text style={{ fontSize: 16, color: '#fff' }}>{id}</Text>
48
- // <Text style={{ fontSize: 18, color: '#fff', maxWidth: 800 }}>{`${err}`}</Text>
49
- // </View>
50
86
  }, delete promises[id];
51
87
  }), process.env.NODE_ENV === "development" && (promises[id].stack = new Error().stack)), promises[id];
52
88
  }
53
89
  return resolve.keys = () => moduleKeys, resolve.id = "", resolve.resolve = id => id, resolve;
54
90
  }
55
- export { globbedRoutesToRouteContext, loadRoutes, useViteRoutes };
91
+ export { getPreloadedModule, getPreloadedModuleKeys, globbedRoutesToRouteContext, loadRoutes, preloadRouteModules, registerPreloadedRoute, useViteRoutes };
56
92
  //# sourceMappingURL=useViteRoutes.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["lastVersion","context","useViteRoutes","routes","routerRoot","options","version","loadRoutes","paths","globalThis","__importMetaGlobbed","globbedRoutesToRouteContext","routesSync","promises","loadedRoutes","clears","Object","keys","forEach","path","console","error","loadRouteFunction","pathWithoutRelative","replace","originalPath","slice","routeModes","info","moduleKeys","resolve","id","clearTimeout","then","val","setTimeout","catch","err","Error","stack","default","process","env","NODE_ENV"],"sources":["../../../src/router/useViteRoutes.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["lastVersion","context","useViteRoutes","routes","routerRoot","options","version","loadRoutes","preloadedModules","registerPreloadedRoute","key","module","getPreloadedModule","getPreloadedModuleKeys","Object","keys","matchDynamicRoute","routePattern","actualPath","routeSegments","split","pathSegments","some","s","startsWith","catchAllIdx","findIndex","i","length","routeSeg","pathSeg","endsWith","preloadRouteModules","href","globbed","globalThis","__importMetaGlobbed","normalizedHref","replace","promises","routePath","isStaticMatch","isDynamicMatch","includes","push","then","mod","catch","Promise","all","paths","globbedRoutesToRouteContext","routesSync","loadedRoutes","clears","forEach","path","console","error","loadRouteFunction","pathWithoutRelative","originalPath","slice","routeModes","info","moduleKeys","resolve","id","clearTimeout","preloadKey","preloaded","val","setTimeout","err","Error","stack","default","process","env","NODE_ENV"],"sources":["../../../src/router/useViteRoutes.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -3,6 +3,75 @@ var lastVersion = 0,
3
3
  function useViteRoutes(routes, routerRoot, options, version) {
4
4
  return version && version > lastVersion && (context = null, lastVersion = version), context || loadRoutes(routes, routerRoot, options), context;
5
5
  }
6
+ var preloadedModules = {};
7
+ function registerPreloadedRoute(key, module) {
8
+ preloadedModules[key] = module;
9
+ }
10
+ function getPreloadedModule(key) {
11
+ return preloadedModules[key];
12
+ }
13
+ function getPreloadedModuleKeys() {
14
+ return Object.keys(preloadedModules);
15
+ }
16
+ function matchDynamicRoute(routePattern, actualPath) {
17
+ var routeSegments = routePattern.split("/"),
18
+ pathSegments = actualPath.split("/"),
19
+ hasCatchAll = routeSegments.some(function (s) {
20
+ return s.startsWith("[...");
21
+ });
22
+ if (hasCatchAll) {
23
+ for (var catchAllIdx = routeSegments.findIndex(function (s) {
24
+ return s.startsWith("[...");
25
+ }), i = 0; i < catchAllIdx; i++) if (routeSegments[i] && !routeSegments[i].startsWith("[") && routeSegments[i] !== pathSegments[i]) return !1;
26
+ return pathSegments.length >= catchAllIdx;
27
+ }
28
+ if (routeSegments.length !== pathSegments.length) return !1;
29
+ for (var i1 = 0; i1 < routeSegments.length; i1++) {
30
+ var routeSeg = routeSegments[i1],
31
+ pathSeg = pathSegments[i1];
32
+ if (!(routeSeg.startsWith("[") && routeSeg.endsWith("]")) && routeSeg !== pathSeg) return !1;
33
+ }
34
+ return !0;
35
+ }
36
+ async function preloadRouteModules(href) {
37
+ var globbed = globalThis.__importMetaGlobbed;
38
+ if (globbed) {
39
+ var normalizedHref = href === "/" ? "" : href.replace(/^\//, "").replace(/\/$/, ""),
40
+ promises = [],
41
+ _iteratorNormalCompletion = !0,
42
+ _didIteratorError = !1,
43
+ _iteratorError = void 0;
44
+ try {
45
+ for (var _loop = function () {
46
+ var key = _step.value,
47
+ routePath = key.replace(/^\/[^/]+\//, "");
48
+ routePath = routePath.replace(/\([^)]+\)\//g, ""), routePath = routePath.replace(/\/_layout\.tsx$/, "").replace(/\/index(\+[a-z]+)?\.tsx$/, "").replace(/(\+[a-z]+)?\.tsx$/, ""), routePath = routePath.replace(/^\//, "");
49
+ var isStaticMatch = routePath === normalizedHref ||
50
+ // exact match
51
+ routePath.startsWith(normalizedHref + "/") ||
52
+ // child route
53
+ normalizedHref.startsWith(routePath + "/") ||
54
+ // parent layout
55
+ routePath === "" ||
56
+ // root layout
57
+ normalizedHref !== "" && routePath === normalizedHref.split("/")[0],
58
+ isDynamicMatch = routePath.includes("[") && matchDynamicRoute(routePath, normalizedHref);
59
+ (isStaticMatch || isDynamicMatch) && typeof globbed[key] == "function" && promises.push(globbed[key]().then(function (mod) {
60
+ preloadedModules[key] = mod;
61
+ }).catch(function () {}));
62
+ }, _iterator = Object.keys(globbed)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) _loop();
63
+ } catch (err) {
64
+ _didIteratorError = !0, _iteratorError = err;
65
+ } finally {
66
+ try {
67
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
68
+ } finally {
69
+ if (_didIteratorError) throw _iteratorError;
70
+ }
71
+ }
72
+ await Promise.all(promises);
73
+ }
74
+ }
6
75
  function loadRoutes(paths, routerRoot, options) {
7
76
  return context || (globalThis.__importMetaGlobbed = paths, context = globbedRoutesToRouteContext(paths, routerRoot, options), context);
8
77
  }
@@ -27,6 +96,9 @@ function globbedRoutesToRouteContext(paths, routerRoot, options) {
27
96
  var moduleKeys = Object.keys(routesSync);
28
97
  function resolve(id) {
29
98
  if (clearTimeout(clears[id]), loadedRoutes[id]) return loadedRoutes[id];
99
+ var preloadKey = id.replace("./", `/${routerRoot}/`),
100
+ preloaded = getPreloadedModule(preloadKey);
101
+ if (preloaded) return loadedRoutes[id] = preloaded, preloaded;
30
102
  if (typeof routesSync[id] != "function") return routesSync[id];
31
103
  throw promises[id] || (promises[id] = routesSync[id]().then(function (val) {
32
104
  return loadedRoutes[id] = val, delete promises[id], clears[id] = setTimeout(function () {
@@ -46,5 +118,5 @@ function globbedRoutesToRouteContext(paths, routerRoot, options) {
46
118
  return id;
47
119
  }, resolve;
48
120
  }
49
- export { globbedRoutesToRouteContext, loadRoutes, useViteRoutes };
121
+ export { getPreloadedModule, getPreloadedModuleKeys, globbedRoutesToRouteContext, loadRoutes, preloadRouteModules, registerPreloadedRoute, useViteRoutes };
50
122
  //# sourceMappingURL=useViteRoutes.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["lastVersion","context","useViteRoutes","routes","routerRoot","options","version","loadRoutes","paths","globalThis","__importMetaGlobbed","globbedRoutesToRouteContext","routesSync","promises","loadedRoutes","clears","Object","keys","forEach","path","_options_routeModes","console","error","loadRouteFunction","pathWithoutRelative","replace","originalPath","slice","routeModes","info","moduleKeys","resolve","id","clearTimeout","then","val","setTimeout","catch","err","Error","stack","default","process","env","NODE_ENV"],"sources":["../../../src/router/useViteRoutes.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["lastVersion","context","useViteRoutes","routes","routerRoot","options","version","loadRoutes","preloadedModules","registerPreloadedRoute","key","module","getPreloadedModule","getPreloadedModuleKeys","Object","keys","matchDynamicRoute","routePattern","actualPath","routeSegments","split","pathSegments","hasCatchAll","some","s","startsWith","catchAllIdx","findIndex","i","length","i1","routeSeg","pathSeg","endsWith","preloadRouteModules","href","globbed","globalThis","__importMetaGlobbed","normalizedHref","replace","promises","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_loop","_step","value","routePath","isStaticMatch","isDynamicMatch","includes","push","then","mod","catch","_iterator","Symbol","iterator","next","done","err","return","Promise","all","paths","globbedRoutesToRouteContext","routesSync","loadedRoutes","clears","forEach","path","_options_routeModes","console","error","loadRouteFunction","pathWithoutRelative","originalPath","slice","routeModes","info","moduleKeys","resolve","id","clearTimeout"],"sources":["../../../src/router/useViteRoutes.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,6 @@
1
1
  import { useCallback, useSyncExternalStore } from "react";
2
2
  import { useParams, usePathname } from "./hooks";
3
- import { resolveHref } from "./link/href";
4
- import { preloadingLoader } from "./router/router";
3
+ import { preloadedLoaderData, preloadingLoader } from "./router/router";
5
4
  import { getLoaderPath } from "./utils/cleanUrl";
6
5
  import { dynamicImport } from "./utils/dynamicImport";
7
6
  import { weakKey } from "./utils/weakKey";
@@ -45,7 +44,7 @@ async function refetchLoader(pathname2) {
45
44
  }
46
45
  }
47
46
  function useLoaderState(loader) {
48
- const { loaderProps: loaderPropsFromServerContext, loaderData: loaderDataFromServerContext } = useServerContext() || {}, params = useParams(), pathname = usePathname(), currentPath = resolveHref({ pathname, params }).replace(/index$/, "");
47
+ const { loaderProps: loaderPropsFromServerContext, loaderData: loaderDataFromServerContext } = useServerContext() || {}, params = useParams(), pathname = usePathname(), currentPath = pathname.replace(/\/index$/, "").replace(/\/$/, "") || "/";
49
48
  if (typeof window > "u" && loader)
50
49
  return { data: useAsyncFn(
51
50
  loader,
@@ -55,7 +54,7 @@ function useLoaderState(loader) {
55
54
  }
56
55
  ), refetch: async () => {
57
56
  }, state: "idle" };
58
- const preloadedData = loaderPropsFromServerContext?.path === currentPath ? loaderDataFromServerContext : void 0, loaderStateEntry = useSyncExternalStore(
57
+ const serverContextPath = loaderPropsFromServerContext?.path, preloadedData = serverContextPath === currentPath ? loaderDataFromServerContext : void 0, loaderStateEntry = useSyncExternalStore(
59
58
  subscribe,
60
59
  () => getLoaderState(currentPath, preloadedData),
61
60
  () => getLoaderState(currentPath, preloadedData)
@@ -65,11 +64,13 @@ function useLoaderState(loader) {
65
64
  refetch,
66
65
  state: loaderStateEntry.state
67
66
  };
68
- if (!loaderStateEntry.data && !loaderStateEntry.promise && !loaderStateEntry.hasLoadedOnce && loader)
69
- if (preloadingLoader[currentPath]) {
70
- typeof preloadingLoader[currentPath] == "function" && (preloadingLoader[currentPath] = preloadingLoader[currentPath]());
67
+ if (!loaderStateEntry.data && !loaderStateEntry.promise && !loaderStateEntry.hasLoadedOnce && loader) {
68
+ const resolvedPreloadData = preloadedLoaderData[currentPath];
69
+ if (resolvedPreloadData !== void 0)
70
+ delete preloadedLoaderData[currentPath], delete preloadingLoader[currentPath], loaderStateEntry.data = resolvedPreloadData, loaderStateEntry.hasLoadedOnce = !0;
71
+ else if (preloadingLoader[currentPath]) {
71
72
  const promise2 = preloadingLoader[currentPath].then((val) => {
72
- delete preloadingLoader[currentPath], updateState(currentPath, {
73
+ delete preloadingLoader[currentPath], delete preloadedLoaderData[currentPath], updateState(currentPath, {
73
74
  data: val,
74
75
  hasLoadedOnce: !0,
75
76
  promise: void 0
@@ -99,6 +100,7 @@ function useLoaderState(loader) {
99
100
  }, promise = loadData();
100
101
  loaderStateEntry.promise = promise;
101
102
  }
103
+ }
102
104
  if (loader) {
103
105
  if (loaderStateEntry.error && !loaderStateEntry.hasLoadedOnce)
104
106
  throw loaderStateEntry.error;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/useLoader.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["preloadedData", "pathname", "loaderJSUrl", "result", "promise", "loader", "data"]
6
6
  }
@@ -1,7 +1,6 @@
1
1
  import { useCallback, useSyncExternalStore } from "react";
2
2
  import { useParams, usePathname } from "./hooks.mjs";
3
- import { resolveHref } from "./link/href.mjs";
4
- import { preloadingLoader } from "./router/router.mjs";
3
+ import { preloadedLoaderData, preloadingLoader } from "./router/router.mjs";
5
4
  import { getLoaderPath } from "./utils/cleanUrl.mjs";
6
5
  import { dynamicImport } from "./utils/dynamicImport.mjs";
7
6
  import { weakKey } from "./utils/weakKey.mjs";
@@ -57,10 +56,7 @@ function useLoaderState(loader) {
57
56
  } = useServerContext() || {},
58
57
  params = useParams(),
59
58
  pathname = usePathname(),
60
- currentPath = resolveHref({
61
- pathname,
62
- params
63
- }).replace(/index$/, "");
59
+ currentPath = pathname.replace(/\/index$/, "").replace(/\/$/, "") || "/";
64
60
  if (typeof window > "u" && loader) return {
65
61
  data: useAsyncFn(loader, loaderPropsFromServerContext || {
66
62
  path: pathname,
@@ -69,48 +65,51 @@ function useLoaderState(loader) {
69
65
  refetch: async () => {},
70
66
  state: "idle"
71
67
  };
72
- const preloadedData = loaderPropsFromServerContext?.path === currentPath ? loaderDataFromServerContext : void 0,
68
+ const serverContextPath = loaderPropsFromServerContext?.path,
69
+ preloadedData = serverContextPath === currentPath ? loaderDataFromServerContext : void 0,
73
70
  loaderStateEntry = useSyncExternalStore(subscribe, () => getLoaderState(currentPath, preloadedData), () => getLoaderState(currentPath, preloadedData)),
74
71
  refetch = useCallback(() => refetchLoader(currentPath), [currentPath]);
75
72
  if (!loader) return {
76
73
  refetch,
77
74
  state: loaderStateEntry.state
78
75
  };
79
- if (!loaderStateEntry.data && !loaderStateEntry.promise && !loaderStateEntry.hasLoadedOnce && loader) if (preloadingLoader[currentPath]) {
80
- typeof preloadingLoader[currentPath] == "function" && (preloadingLoader[currentPath] = preloadingLoader[currentPath]());
81
- const promise2 = preloadingLoader[currentPath].then(val => {
82
- delete preloadingLoader[currentPath], updateState(currentPath, {
83
- data: val,
84
- hasLoadedOnce: !0,
85
- promise: void 0
86
- });
87
- }).catch(err => {
88
- console.error("Error running loader()", err), delete preloadingLoader[currentPath], updateState(currentPath, {
89
- error: err,
90
- promise: void 0
76
+ if (!loaderStateEntry.data && !loaderStateEntry.promise && !loaderStateEntry.hasLoadedOnce && loader) {
77
+ const resolvedPreloadData = preloadedLoaderData[currentPath];
78
+ if (resolvedPreloadData !== void 0) delete preloadedLoaderData[currentPath], delete preloadingLoader[currentPath], loaderStateEntry.data = resolvedPreloadData, loaderStateEntry.hasLoadedOnce = !0;else if (preloadingLoader[currentPath]) {
79
+ const promise2 = preloadingLoader[currentPath].then(val => {
80
+ delete preloadingLoader[currentPath], delete preloadedLoaderData[currentPath], updateState(currentPath, {
81
+ data: val,
82
+ hasLoadedOnce: !0,
83
+ promise: void 0
84
+ });
85
+ }).catch(err => {
86
+ console.error("Error running loader()", err), delete preloadingLoader[currentPath], updateState(currentPath, {
87
+ error: err,
88
+ promise: void 0
89
+ });
91
90
  });
92
- });
93
- loaderStateEntry.promise = promise2;
94
- } else {
95
- const loadData = async () => {
96
- try {
97
- const loaderJSUrl = getLoaderPath(currentPath, !0),
98
- module = await dynamicImport(loaderJSUrl),
99
- result = await module.loader();
100
- updateState(currentPath, {
101
- data: result,
102
- hasLoadedOnce: !0,
103
- promise: void 0
104
- });
105
- } catch (err) {
106
- updateState(currentPath, {
107
- error: err,
108
- promise: void 0
109
- });
110
- }
111
- },
112
- promise = loadData();
113
- loaderStateEntry.promise = promise;
91
+ loaderStateEntry.promise = promise2;
92
+ } else {
93
+ const loadData = async () => {
94
+ try {
95
+ const loaderJSUrl = getLoaderPath(currentPath, !0),
96
+ module = await dynamicImport(loaderJSUrl),
97
+ result = await module.loader();
98
+ updateState(currentPath, {
99
+ data: result,
100
+ hasLoadedOnce: !0,
101
+ promise: void 0
102
+ });
103
+ } catch (err) {
104
+ updateState(currentPath, {
105
+ error: err,
106
+ promise: void 0
107
+ });
108
+ }
109
+ },
110
+ promise = loadData();
111
+ loaderStateEntry.promise = promise;
112
+ }
114
113
  }
115
114
  if (loader) {
116
115
  if (loaderStateEntry.error && !loaderStateEntry.hasLoadedOnce) throw loaderStateEntry.error;
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useSyncExternalStore","useParams","usePathname","resolveHref","preloadingLoader","getLoaderPath","dynamicImport","weakKey","useServerContext","loaderState","subscribers","Set","updateState","path","updates","forEach","callback","subscribe","add","delete","getLoaderState","preloadedData2","data","error","promise","state","hasLoadedOnce","refetchLoader","pathname2","cacheBust","Date","now","loaderJSUrl2","result2","loader","timestamp","err","useLoaderState","loaderProps","loaderPropsFromServerContext","loaderData","loaderDataFromServerContext","params","pathname","currentPath","replace","window","useAsyncFn","refetch","preloadedData","loaderStateEntry","promise2","then","val","catch","console","loadData","loaderJSUrl","module","result","useLoader","loader2","data2","results","Map","started","props","key","JSON","stringify","get","set","next","Promise","final","current"],"sources":["../../src/useLoader.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useSyncExternalStore","useParams","usePathname","preloadedLoaderData","preloadingLoader","getLoaderPath","dynamicImport","weakKey","useServerContext","loaderState","subscribers","Set","updateState","path","updates","forEach","callback","subscribe","add","delete","getLoaderState","preloadedData2","data","error","promise","state","hasLoadedOnce","refetchLoader","pathname2","cacheBust","Date","now","loaderJSUrl2","result2","loader","timestamp","err","useLoaderState","loaderProps","loaderPropsFromServerContext","loaderData","loaderDataFromServerContext","params","pathname","currentPath","replace","window","useAsyncFn","refetch","serverContextPath","preloadedData","loaderStateEntry","resolvedPreloadData","promise2","then","val","catch","console","loadData","loaderJSUrl","module","result","useLoader","loader2","data2","results","Map","started","props","key","JSON","stringify","get","set","next","Promise","final","current"],"sources":["../../src/useLoader.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAA,EAAaC,oBAAA,QAA4B;AAClD,SAASC,SAAA,EAAWC,WAAA,QAAmB;AACvC,SAASC,mBAAA,EAAqBC,gBAAA,QAAwB;AACtD,SAASC,aAAA,QAAqB;AAC9B,SAASC,aAAA,QAAqB;AAC9B,SAASC,OAAA,QAAe;AACxB,SAASC,gBAAA,QAAwB;AAWjC,MAAMC,WAAA,GAAgD,CAAC;EACjDC,WAAA,GAAc,mBAAIC,GAAA,CAAgB;AAExC,SAASC,YAAYC,IAAA,EAAcC,OAAA,EAAoC;EACrEL,WAAA,CAAYI,IAAI,IAAI;IAAE,GAAGJ,WAAA,CAAYI,IAAI;IAAG,GAAGC;EAAQ,GACvDJ,WAAA,CAAYK,OAAA,CAASC,QAAA,IAAa;IAChCA,QAAA,CAAS;EACX,CAAC;AACH;AAEA,SAASC,UAAUD,QAAA,EAAsB;EACvC,OAAAN,WAAA,CAAYQ,GAAA,CAAIF,QAAQ,GACjB,MAAMN,WAAA,CAAYS,MAAA,CAAOH,QAAQ;AAC1C;AAEA,SAASI,eAAeP,IAAA,EAAcQ,cAAA,EAAuC;EAC3E,OAAKZ,WAAA,CAAYI,IAAI,MACnBJ,WAAA,CAAYI,IAAI,IAAI;IAClBS,IAAA,EAAMD,cAAA;IACNE,KAAA,EAAO;IACPC,OAAA,EAAS;IACTC,KAAA,EAAO;IACPC,aAAA,EAAe,CAAC,CAACL;EACnB,IAEKZ,WAAA,CAAYI,IAAI;AACzB;AAEA,eAAsBc,cAAcC,SAAA,EAAiC;EACnEhB,WAAA,CAAYgB,SAAA,EAAU;IACpBH,KAAA,EAAO;IACPF,KAAA,EAAO;EACT,CAAC;EAED,IAAI;IACF,MAAMM,SAAA,GAAY,GAAGC,IAAA,CAAKC,GAAA,CAAI,CAAC;MACzBC,YAAA,GAAc3B,aAAA,CAAcuB,SAAA,EAAU,IAAMC,SAAS;MAGrDI,OAAA,GAAS,OADA,MAAM3B,aAAA,CAAc0B,YAAW,GAClBE,MAAA,CAAO;IAEnCtB,WAAA,CAAYgB,SAAA,EAAU;MACpBN,IAAA,EAAMW,OAAA;MACNR,KAAA,EAAO;MACPU,SAAA,EAAWL,IAAA,CAAKC,GAAA,CAAI;MACpBL,aAAA,EAAe;IACjB,CAAC;EACH,SAASU,GAAA,EAAK;IACZ,MAAAxB,WAAA,CAAYgB,SAAA,EAAU;MACpBL,KAAA,EAAOa,GAAA;MACPX,KAAA,EAAO;IACT,CAAC,GACKW,GAAA;EACR;AACF;AAEO,SAASC,eAIdH,MAAA,EAOI;EACJ,MAAM;MAAEI,WAAA,EAAaC,4BAAA;MAA8BC,UAAA,EAAYC;IAA4B,IACzFjC,gBAAA,CAAiB,KAAK,CAAC;IAEnBkC,MAAA,GAASzC,SAAA,CAAU;IACnB0C,QAAA,GAAWzC,WAAA,CAAY;IAGvB0C,WAAA,GAAcD,QAAA,CAASE,OAAA,CAAQ,YAAY,EAAE,EAAEA,OAAA,CAAQ,OAAO,EAAE,KAAK;EAG3E,IAAI,OAAOC,MAAA,GAAW,OAAeZ,MAAA,EAQnC,OAAO;IAAEZ,IAAA,EAPUyB,UAAA,CACjBb,MAAA,EACAK,4BAAA,IAAgC;MAC9B1B,IAAA,EAAM8B,QAAA;MACND;IACF,CACF;IAC2BM,OAAA,EAAS,MAAAA,CAAA,KAAY,CAAC;IAAGvB,KAAA,EAAO;EAAO;EAIpE,MAAMwB,iBAAA,GAAoBV,4BAAA,EAA8B1B,IAAA;IAClDqC,aAAA,GAAgBD,iBAAA,KAAsBL,WAAA,GAAcH,2BAAA,GAA8B;IAElFU,gBAAA,GAAmBnD,oBAAA,CACvBiB,SAAA,EACA,MAAMG,cAAA,CAAewB,WAAA,EAAaM,aAAa,GAC/C,MAAM9B,cAAA,CAAewB,WAAA,EAAaM,aAAa,CACjD;IAEMF,OAAA,GAAUjD,WAAA,CAAY,MAAM4B,aAAA,CAAciB,WAAW,GAAG,CAACA,WAAW,CAAC;EAG3E,IAAI,CAACV,MAAA,EACH,OAAO;IACLc,OAAA;IACAvB,KAAA,EAAO0B,gBAAA,CAAiB1B;EAC1B;EAIF,IACE,CAAC0B,gBAAA,CAAiB7B,IAAA,IAClB,CAAC6B,gBAAA,CAAiB3B,OAAA,IAClB,CAAC2B,gBAAA,CAAiBzB,aAAA,IAClBQ,MAAA,EACA;IAEA,MAAMkB,mBAAA,GAAsBjD,mBAAA,CAAoByC,WAAW;IAC3D,IAAIQ,mBAAA,KAAwB,QAE1B,OAAOjD,mBAAA,CAAoByC,WAAW,GACtC,OAAOxC,gBAAA,CAAiBwC,WAAW,GACnCO,gBAAA,CAAiB7B,IAAA,GAAO8B,mBAAA,EACxBD,gBAAA,CAAiBzB,aAAA,GAAgB,YACxBtB,gBAAA,CAAiBwC,WAAW,GAAG;MAGxC,MAAMS,QAAA,GADiBjD,gBAAA,CAAiBwC,WAAW,EAEhDU,IAAA,CAAMC,GAAA,IAAa;QAClB,OAAOnD,gBAAA,CAAiBwC,WAAW,GACnC,OAAOzC,mBAAA,CAAoByC,WAAW,GACtChC,WAAA,CAAYgC,WAAA,EAAa;UACvBtB,IAAA,EAAMiC,GAAA;UACN7B,aAAA,EAAe;UACfF,OAAA,EAAS;QACX,CAAC;MACH,CAAC,EACAgC,KAAA,CAAOpB,GAAA,IAAa;QACnBqB,OAAA,CAAQlC,KAAA,CAAM,0BAA0Ba,GAAG,GAC3C,OAAOhC,gBAAA,CAAiBwC,WAAW,GACnChC,WAAA,CAAYgC,WAAA,EAAa;UACvBrB,KAAA,EAAOa,GAAA;UACPZ,OAAA,EAAS;QACX,CAAC;MACH,CAAC;MAEH2B,gBAAA,CAAiB3B,OAAA,GAAU6B,QAAA;IAC7B,OAAO;MAEL,MAAMK,QAAA,GAAW,MAAAA,CAAA,KAAY;UAC3B,IAAI;YAmCF,MAAMC,WAAA,GAActD,aAAA,CAAcuC,WAAA,EAAa,EAAI;cAC7CgB,MAAA,GAAS,MAAMtD,aAAA,CAAcqD,WAAW;cACxCE,MAAA,GAAS,MAAMD,MAAA,CAAO1B,MAAA,CAAO;YACnCtB,WAAA,CAAYgC,WAAA,EAAa;cACvBtB,IAAA,EAAMuC,MAAA;cACNnC,aAAA,EAAe;cACfF,OAAA,EAAS;YACX,CAAC;UACH,SAASY,GAAA,EAAK;YACZxB,WAAA,CAAYgC,WAAA,EAAa;cACvBrB,KAAA,EAAOa,GAAA;cACPZ,OAAA,EAAS;YACX,CAAC;UACH;QACF;QAEMA,OAAA,GAAUkC,QAAA,CAAS;MACzBP,gBAAA,CAAiB3B,OAAA,GAAUA,OAAA;IAC7B;EACF;EAGA,IAAIU,MAAA,EAAQ;IAEV,IAAIiB,gBAAA,CAAiB5B,KAAA,IAAS,CAAC4B,gBAAA,CAAiBzB,aAAA,EAC9C,MAAMyB,gBAAA,CAAiB5B,KAAA;IAIzB,IACE4B,gBAAA,CAAiB7B,IAAA,KAAS,UAC1B6B,gBAAA,CAAiB3B,OAAA,IACjB,CAAC2B,gBAAA,CAAiBzB,aAAA,EAElB,MAAMyB,gBAAA,CAAiB3B,OAAA;IAGzB,OAAO;MACLF,IAAA,EAAM6B,gBAAA,CAAiB7B,IAAA;MACvB0B,OAAA;MACAvB,KAAA,EAAO0B,gBAAA,CAAiB1B;IAC1B;EACF,OACE,OAAO;IACLuB,OAAA;IACAvB,KAAA,EAAO0B,gBAAA,CAAiB1B;EAC1B;AAEJ;AAEO,SAASqC,UAGdC,OAAA,EAA8E;EAC9E,MAAM;IAAEzC,IAAA,EAAA0C;EAAK,IAAI3B,cAAA,CAAe0B,OAAM;EACtC,OAAOC,KAAA;AACT;AAEA,MAAMC,OAAA,GAAU,mBAAIC,GAAA,CAAI;EAClBC,OAAA,GAAU,mBAAID,GAAA,CAAI;AAExB,SAASnB,WAAWQ,GAAA,EAAUa,KAAA,EAAa;EACzC,MAAMC,GAAA,IAAOd,GAAA,GAAMhD,OAAA,CAAQgD,GAAG,IAAI,MAAMe,IAAA,CAAKC,SAAA,CAAUH,KAAK;EAE5D,IAAIb,GAAA,IACE,CAACY,OAAA,CAAQK,GAAA,CAAIH,GAAG,GAAG;IACrBF,OAAA,CAAQM,GAAA,CAAIJ,GAAA,EAAK,EAAI;IAErB,IAAIK,IAAA,GAAOnB,GAAA,CAAIa,KAAK;IAChBM,IAAA,YAAgBC,OAAA,KAClBD,IAAA,GAAOA,IAAA,CACJpB,IAAA,CAAMsB,KAAA,IAAU;MACfX,OAAA,CAAQQ,GAAA,CAAIJ,GAAA,EAAKO,KAAK;IACxB,CAAC,EACApB,KAAA,CAAOpB,GAAA,IAAQ;MACdqB,OAAA,CAAQlC,KAAA,CAAM,0BAA0Ba,GAAG,GAC3C6B,OAAA,CAAQQ,GAAA,CAAIJ,GAAA,EAAK,MAAS;IAC5B,CAAC,IAELJ,OAAA,CAAQQ,GAAA,CAAIJ,GAAA,EAAKK,IAAI;EACvB;EAGF,MAAMG,OAAA,GAAUZ,OAAA,CAAQO,GAAA,CAAIH,GAAG;EAE/B,IAAIQ,OAAA,YAAmBF,OAAA,EACrB,MAAME,OAAA;EAGR,OAAOA,OAAA;AACT","ignoreList":[]}