one 2.8.0 → 2.8.1

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 (94) hide show
  1. package/dist/cjs/cli/build.cjs +1 -1
  2. package/dist/cjs/cli/build.native.cjs +1 -1
  3. package/dist/cjs/cli/build.native.js +1 -1
  4. package/dist/cjs/cli/build.native.js.map +1 -1
  5. package/dist/cjs/cli/buildPage.cjs +1 -1
  6. package/dist/cjs/cli/buildPage.native.cjs +1 -1
  7. package/dist/cjs/cli/buildPage.native.js +1 -1
  8. package/dist/cjs/cli/buildPage.native.js.map +1 -1
  9. package/dist/cjs/constants.cjs +2 -0
  10. package/dist/cjs/constants.native.cjs +2 -0
  11. package/dist/cjs/constants.native.js +2 -0
  12. package/dist/cjs/constants.native.js.map +1 -1
  13. package/dist/cjs/fork/useLinking.cjs +1 -1
  14. package/dist/cjs/layouts/Stack.cjs +2 -2
  15. package/dist/cjs/layouts/Stack.native.cjs +3 -3
  16. package/dist/cjs/layouts/Stack.native.js +3 -3
  17. package/dist/cjs/layouts/Stack.native.js.map +1 -1
  18. package/dist/cjs/layouts/stack-navigator.cjs +5 -2
  19. package/dist/cjs/layouts/stack-navigator.native.cjs +14 -2
  20. package/dist/cjs/layouts/stack-navigator.native.js +14 -2
  21. package/dist/cjs/layouts/stack-navigator.native.js.map +1 -1
  22. package/dist/cjs/router/linkingConfig.cjs +3 -3
  23. package/dist/cjs/router/linkingConfig.native.cjs +3 -3
  24. package/dist/cjs/router/linkingConfig.native.js +3 -3
  25. package/dist/cjs/router/linkingConfig.native.js.map +1 -1
  26. package/dist/cjs/useLoader.cjs +0 -2
  27. package/dist/cjs/useLoader.native.cjs +1 -3
  28. package/dist/cjs/useLoader.native.js +1 -3
  29. package/dist/cjs/useLoader.native.js.map +1 -1
  30. package/dist/cjs/utils/cleanUrl.cjs +8 -3
  31. package/dist/cjs/utils/cleanUrl.native.cjs +8 -3
  32. package/dist/cjs/utils/cleanUrl.native.js +8 -3
  33. package/dist/cjs/utils/cleanUrl.native.js.map +1 -1
  34. package/dist/esm/cli/build.mjs +1 -1
  35. package/dist/esm/cli/build.mjs.map +1 -1
  36. package/dist/esm/cli/build.native.js +1 -1
  37. package/dist/esm/cli/build.native.js.map +1 -1
  38. package/dist/esm/cli/buildPage.mjs +2 -2
  39. package/dist/esm/cli/buildPage.mjs.map +1 -1
  40. package/dist/esm/cli/buildPage.native.js +2 -2
  41. package/dist/esm/cli/buildPage.native.js.map +1 -1
  42. package/dist/esm/constants.mjs +2 -1
  43. package/dist/esm/constants.mjs.map +1 -1
  44. package/dist/esm/constants.native.js +2 -1
  45. package/dist/esm/constants.native.js.map +1 -1
  46. package/dist/esm/fork/useLinking.mjs +1 -1
  47. package/dist/esm/fork/useLinking.mjs.map +1 -1
  48. package/dist/esm/layouts/Stack.mjs +2 -2
  49. package/dist/esm/layouts/Stack.mjs.map +1 -1
  50. package/dist/esm/layouts/Stack.native.js +3 -3
  51. package/dist/esm/layouts/Stack.native.js.map +1 -1
  52. package/dist/esm/layouts/stack-navigator.mjs +5 -2
  53. package/dist/esm/layouts/stack-navigator.mjs.map +1 -1
  54. package/dist/esm/layouts/stack-navigator.native.js +14 -2
  55. package/dist/esm/layouts/stack-navigator.native.js.map +1 -1
  56. package/dist/esm/router/linkingConfig.mjs +3 -3
  57. package/dist/esm/router/linkingConfig.mjs.map +1 -1
  58. package/dist/esm/router/linkingConfig.native.js +3 -3
  59. package/dist/esm/router/linkingConfig.native.js.map +1 -1
  60. package/dist/esm/useLoader.native.js +2 -4
  61. package/dist/esm/useLoader.native.js.map +1 -1
  62. package/dist/esm/utils/cleanUrl.mjs +9 -5
  63. package/dist/esm/utils/cleanUrl.mjs.map +1 -1
  64. package/dist/esm/utils/cleanUrl.native.js +9 -5
  65. package/dist/esm/utils/cleanUrl.native.js.map +1 -1
  66. package/package.json +13 -13
  67. package/src/cli/build.ts +1 -1
  68. package/src/cli/buildPage.ts +5 -4
  69. package/src/constants.ts +2 -0
  70. package/src/fork/useLinking.ts +4 -1
  71. package/src/layouts/Stack.tsx +5 -2
  72. package/src/layouts/stack-navigator.tsx +34 -0
  73. package/src/layouts/stack-navigator.web.ts +5 -2
  74. package/src/router/linkingConfig.test.ts +144 -2
  75. package/src/router/linkingConfig.ts +6 -3
  76. package/src/useLoader.ts +3 -15
  77. package/src/utils/cleanUrl.test.ts +28 -0
  78. package/src/utils/cleanUrl.ts +11 -4
  79. package/src/vite/types.ts +4 -4
  80. package/types/cli/buildPage.d.ts.map +1 -1
  81. package/types/constants.d.ts +1 -0
  82. package/types/constants.d.ts.map +1 -1
  83. package/types/fork/useLinking.d.ts.map +1 -1
  84. package/types/layouts/Stack.d.ts.map +1 -1
  85. package/types/layouts/stack-navigator.d.ts +6 -2
  86. package/types/layouts/stack-navigator.d.ts.map +1 -1
  87. package/types/layouts/stack-navigator.web.d.ts +3 -4
  88. package/types/layouts/stack-navigator.web.d.ts.map +1 -1
  89. package/types/router/linkingConfig.d.ts.map +1 -1
  90. package/types/useLoader.d.ts.map +1 -1
  91. package/types/utils/cleanUrl.d.ts +1 -0
  92. package/types/utils/cleanUrl.d.ts.map +1 -1
  93. package/types/vite/types.d.ts +4 -4
  94. package/src/layouts/stack-navigator.ts +0 -13
@@ -1 +1 @@
1
- {"version":3,"file":"linkingConfig.js","names":["createLinkingConfig"],"sources":["esm/router/linkingConfig.js"],"sourcesContent":["import { isWebClient } from \"../constants\";\nimport { evictOldest } from \"../utils/evictOldest\";\nimport {\n clearStateCache,\n getLinkingConfig as createLinkingConfig\n} from \"./getLinkingConfig\";\nlet linkingConfig;\nlet cachedBaseLinkingConfig;\nlet cachedRouteNodeForLinking = null;\nlet cachedLinkingConfigKey = \"\";\nconst ssrStateCache = /* @__PURE__ */ new Map();\nfunction getResolvedLinking() {\n return linkingConfig;\n}\nfunction setLinking(_) {\n linkingConfig = _;\n}\nfunction resetLinking() {\n linkingConfig = void 0;\n}\nfunction ensureBaseLinkingConfig(routeNode, linking) {\n const linkingConfigKey = getLinkingConfigKey(linking);\n if (routeNode && (routeNode !== cachedRouteNodeForLinking || linkingConfigKey !== cachedLinkingConfigKey || !cachedBaseLinkingConfig)) {\n clearStateCache();\n ssrStateCache.clear();\n cachedBaseLinkingConfig = createLinkingConfig(routeNode, true, linking);\n cachedRouteNodeForLinking = routeNode;\n cachedLinkingConfigKey = linkingConfigKey;\n }\n}\nfunction getSSRInitialState(routeNode, initialLocation, linking) {\n if (!routeNode) return void 0;\n ensureBaseLinkingConfig(routeNode, linking);\n if (!cachedBaseLinkingConfig) return void 0;\n const path = initialLocation.pathname + (initialLocation.search || \"\");\n if (ssrStateCache.has(path)) return ssrStateCache.get(path);\n const state = cachedBaseLinkingConfig.getStateFromPath?.(\n path,\n cachedBaseLinkingConfig.config\n );\n evictOldest(ssrStateCache, 5e3, 1e3);\n ssrStateCache.set(path, state);\n return state;\n}\nfunction setupLinking(routeNode, initialLocation, linking) {\n let initialState;\n if (routeNode) {\n ensureBaseLinkingConfig(routeNode, linking);\n linkingConfig = { ...cachedBaseLinkingConfig };\n if (initialLocation) {\n linkingConfig.getInitialURL = () => initialLocation.toString();\n let path = initialLocation.pathname + (initialLocation.search || \"\");\n if (isWebClient) {\n const historyState = window.history.state;\n if (historyState?.__tempLocation?.pathname && !historyState.__tempKey) {\n path = historyState.__tempLocation.pathname + (historyState.__tempLocation.search || \"\");\n }\n }\n initialState = linkingConfig.getStateFromPath?.(path, linkingConfig.config);\n }\n }\n return initialState;\n}\nconst filterIds = /* @__PURE__ */ new WeakMap();\nlet filterIdCounter = 0;\nfunction getFilterId(filter) {\n if (!filter) return 0;\n let id = filterIds.get(filter);\n if (id === void 0) {\n id = ++filterIdCounter;\n filterIds.set(filter, id);\n }\n return id;\n}\nfunction getLinkingConfigKey(linking) {\n const schemes = Array.isArray(linking?.scheme) ? [...linking.scheme].sort() : linking?.scheme ?? null;\n const prefixes = linking?.prefixes ? [...linking.prefixes].sort() : null;\n return JSON.stringify({\n scheme: schemes,\n prefixes,\n filterId: getFilterId(linking?.filter)\n });\n}\nexport {\n ensureBaseLinkingConfig,\n getResolvedLinking,\n getSSRInitialState,\n resetLinking,\n setLinking,\n setupLinking\n};\n//# sourceMappingURL=linkingConfig.js.map\n"],"mappings":";;;;;AAMA,IAAI;AACJ,IAAI;AACJ,IAAI,4BAA4B;AAChC,IAAI,yBAAyB;AAC7B,MAAM,gCAAgC,IAAI,IAAI;AAC9C,SAAS,qBAAqB;CAC5B,OAAO;AACT;AACA,SAAS,WAAW,GAAG;CACrB,gBAAgB;AAClB;AACA,SAAS,eAAe;CACtB,gBAAgB,KAAK;AACvB;AACA,SAAS,wBAAwB,WAAW,SAAS;CACnD,MAAM,mBAAmB,oBAAoB,OAAO;CACpD,IAAI,cAAc,cAAc,6BAA6B,qBAAqB,0BAA0B,CAAC,0BAA0B;EACrI,gBAAgB;EAChB,cAAc,MAAM;EACpB,0BAA0BA,iBAAoB,WAAW,MAAM,OAAO;EACtE,4BAA4B;EAC5B,yBAAyB;CAC3B;AACF;AACA,SAAS,mBAAmB,WAAW,iBAAiB,SAAS;CAC/D,IAAI,CAAC,WAAW,OAAO,KAAK;CAC5B,wBAAwB,WAAW,OAAO;CAC1C,IAAI,CAAC,yBAAyB,OAAO,KAAK;CAC1C,MAAM,OAAO,gBAAgB,YAAY,gBAAgB,UAAU;CACnE,IAAI,cAAc,IAAI,IAAI,GAAG,OAAO,cAAc,IAAI,IAAI;CAC1D,MAAM,QAAQ,wBAAwB,mBACpC,MACA,wBAAwB,MAC1B;CACA,YAAY,eAAe,KAAK,GAAG;CACnC,cAAc,IAAI,MAAM,KAAK;CAC7B,OAAO;AACT;AACA,SAAS,aAAa,WAAW,iBAAiB,SAAS;CACzD,IAAI;CACJ,IAAI,WAAW;EACb,wBAAwB,WAAW,OAAO;EAC1C,gBAAgB,EAAE,GAAG,wBAAwB;EAC7C,IAAI,iBAAiB;GACnB,cAAc,sBAAsB,gBAAgB,SAAS;GAC7D,IAAI,OAAO,gBAAgB,YAAY,gBAAgB,UAAU;GACjE,IAAI,aAAa;IACf,MAAM,eAAe,OAAO,QAAQ;IACpC,IAAI,cAAc,gBAAgB,YAAY,CAAC,aAAa,WAAW;KACrE,OAAO,aAAa,eAAe,YAAY,aAAa,eAAe,UAAU;IACvF;GACF;GACA,eAAe,cAAc,mBAAmB,MAAM,cAAc,MAAM;EAC5E;CACF;CACA,OAAO;AACT;AACA,MAAM,4BAA4B,IAAI,QAAQ;AAC9C,IAAI,kBAAkB;AACtB,SAAS,YAAY,QAAQ;CAC3B,IAAI,CAAC,QAAQ,OAAO;CACpB,IAAI,KAAK,UAAU,IAAI,MAAM;CAC7B,IAAI,OAAO,KAAK,GAAG;EACjB,KAAK,EAAE;EACP,UAAU,IAAI,QAAQ,EAAE;CAC1B;CACA,OAAO;AACT;AACA,SAAS,oBAAoB,SAAS;CACpC,MAAM,UAAU,MAAM,QAAQ,SAAS,MAAM,IAAI,CAAC,GAAG,QAAQ,MAAM,CAAC,CAAC,KAAK,IAAI,SAAS,UAAU;CACjG,MAAM,WAAW,SAAS,WAAW,CAAC,GAAG,QAAQ,QAAQ,CAAC,CAAC,KAAK,IAAI;CACpE,OAAO,KAAK,UAAU;EACpB,QAAQ;EACR;EACA,UAAU,YAAY,SAAS,MAAM;CACvC,CAAC;AACH"}
1
+ {"version":3,"file":"linkingConfig.js","names":["createLinkingConfig"],"sources":["esm/router/linkingConfig.js"],"sourcesContent":["import { isWebClient } from \"../constants\";\nimport { evictOldest } from \"../utils/evictOldest\";\nimport {\n clearStateCache,\n getLinkingConfig as createLinkingConfig\n} from \"./getLinkingConfig\";\nlet linkingConfig;\nlet cachedBaseLinkingConfig;\nlet cachedRouteNodeForLinking = null;\nlet cachedLinkingConfigKey = \"\";\nconst ssrStateCache = /* @__PURE__ */ new Map();\nfunction getResolvedLinking() {\n return linkingConfig;\n}\nfunction setLinking(_) {\n linkingConfig = _;\n}\nfunction resetLinking() {\n linkingConfig = void 0;\n}\nfunction ensureBaseLinkingConfig(routeNode, linking) {\n const linkingConfigKey = getLinkingConfigKey(linking);\n if (routeNode && (routeNode !== cachedRouteNodeForLinking || linkingConfigKey !== cachedLinkingConfigKey || !cachedBaseLinkingConfig)) {\n clearStateCache();\n ssrStateCache.clear();\n cachedBaseLinkingConfig = createLinkingConfig(routeNode, true, linking);\n cachedRouteNodeForLinking = routeNode;\n cachedLinkingConfigKey = linkingConfigKey;\n }\n}\nfunction getSSRInitialState(routeNode, initialLocation, linking) {\n if (!routeNode) return void 0;\n ensureBaseLinkingConfig(routeNode, linking);\n if (!cachedBaseLinkingConfig) return void 0;\n const path = initialLocation.pathname + (initialLocation.search || \"\") + initialLocation.hash;\n if (ssrStateCache.has(path)) return ssrStateCache.get(path);\n const state = cachedBaseLinkingConfig.getStateFromPath?.(\n path,\n cachedBaseLinkingConfig.config\n );\n evictOldest(ssrStateCache, 5e3, 1e3);\n ssrStateCache.set(path, state);\n return state;\n}\nfunction setupLinking(routeNode, initialLocation, linking) {\n let initialState;\n if (routeNode) {\n ensureBaseLinkingConfig(routeNode, linking);\n linkingConfig = { ...cachedBaseLinkingConfig };\n if (initialLocation) {\n linkingConfig.getInitialURL = () => initialLocation.toString();\n let path = initialLocation.pathname + (initialLocation.search || \"\") + initialLocation.hash;\n if (isWebClient) {\n const historyState = window.history.state;\n if (historyState?.__tempLocation?.pathname && !historyState.__tempKey) {\n path = historyState.__tempLocation.pathname + (historyState.__tempLocation.search || \"\") + (historyState.__tempLocation.hash || \"\");\n }\n }\n initialState = linkingConfig.getStateFromPath?.(path, linkingConfig.config);\n }\n }\n return initialState;\n}\nconst filterIds = /* @__PURE__ */ new WeakMap();\nlet filterIdCounter = 0;\nfunction getFilterId(filter) {\n if (!filter) return 0;\n let id = filterIds.get(filter);\n if (id === void 0) {\n id = ++filterIdCounter;\n filterIds.set(filter, id);\n }\n return id;\n}\nfunction getLinkingConfigKey(linking) {\n const schemes = Array.isArray(linking?.scheme) ? [...linking.scheme].sort() : linking?.scheme ?? null;\n const prefixes = linking?.prefixes ? [...linking.prefixes].sort() : null;\n return JSON.stringify({\n scheme: schemes,\n prefixes,\n filterId: getFilterId(linking?.filter)\n });\n}\nexport {\n ensureBaseLinkingConfig,\n getResolvedLinking,\n getSSRInitialState,\n resetLinking,\n setLinking,\n setupLinking\n};\n//# sourceMappingURL=linkingConfig.js.map\n"],"mappings":";;;;;AAMA,IAAI;AACJ,IAAI;AACJ,IAAI,4BAA4B;AAChC,IAAI,yBAAyB;AAC7B,MAAM,gCAAgC,IAAI,IAAI;AAC9C,SAAS,qBAAqB;CAC5B,OAAO;AACT;AACA,SAAS,WAAW,GAAG;CACrB,gBAAgB;AAClB;AACA,SAAS,eAAe;CACtB,gBAAgB,KAAK;AACvB;AACA,SAAS,wBAAwB,WAAW,SAAS;CACnD,MAAM,mBAAmB,oBAAoB,OAAO;CACpD,IAAI,cAAc,cAAc,6BAA6B,qBAAqB,0BAA0B,CAAC,0BAA0B;EACrI,gBAAgB;EAChB,cAAc,MAAM;EACpB,0BAA0BA,iBAAoB,WAAW,MAAM,OAAO;EACtE,4BAA4B;EAC5B,yBAAyB;CAC3B;AACF;AACA,SAAS,mBAAmB,WAAW,iBAAiB,SAAS;CAC/D,IAAI,CAAC,WAAW,OAAO,KAAK;CAC5B,wBAAwB,WAAW,OAAO;CAC1C,IAAI,CAAC,yBAAyB,OAAO,KAAK;CAC1C,MAAM,OAAO,gBAAgB,YAAY,gBAAgB,UAAU,MAAM,gBAAgB;CACzF,IAAI,cAAc,IAAI,IAAI,GAAG,OAAO,cAAc,IAAI,IAAI;CAC1D,MAAM,QAAQ,wBAAwB,mBACpC,MACA,wBAAwB,MAC1B;CACA,YAAY,eAAe,KAAK,GAAG;CACnC,cAAc,IAAI,MAAM,KAAK;CAC7B,OAAO;AACT;AACA,SAAS,aAAa,WAAW,iBAAiB,SAAS;CACzD,IAAI;CACJ,IAAI,WAAW;EACb,wBAAwB,WAAW,OAAO;EAC1C,gBAAgB,EAAE,GAAG,wBAAwB;EAC7C,IAAI,iBAAiB;GACnB,cAAc,sBAAsB,gBAAgB,SAAS;GAC7D,IAAI,OAAO,gBAAgB,YAAY,gBAAgB,UAAU,MAAM,gBAAgB;GACvF,IAAI,aAAa;IACf,MAAM,eAAe,OAAO,QAAQ;IACpC,IAAI,cAAc,gBAAgB,YAAY,CAAC,aAAa,WAAW;KACrE,OAAO,aAAa,eAAe,YAAY,aAAa,eAAe,UAAU,OAAO,aAAa,eAAe,QAAQ;IAClI;GACF;GACA,eAAe,cAAc,mBAAmB,MAAM,cAAc,MAAM;EAC5E;CACF;CACA,OAAO;AACT;AACA,MAAM,4BAA4B,IAAI,QAAQ;AAC9C,IAAI,kBAAkB;AACtB,SAAS,YAAY,QAAQ;CAC3B,IAAI,CAAC,QAAQ,OAAO;CACpB,IAAI,KAAK,UAAU,IAAI,MAAM;CAC7B,IAAI,OAAO,KAAK,GAAG;EACjB,KAAK,EAAE;EACP,UAAU,IAAI,QAAQ,EAAE;CAC1B;CACA,OAAO;AACT;AACA,SAAS,oBAAoB,SAAS;CACpC,MAAM,UAAU,MAAM,QAAQ,SAAS,MAAM,IAAI,CAAC,GAAG,QAAQ,MAAM,CAAC,CAAC,KAAK,IAAI,SAAS,UAAU;CACjG,MAAM,WAAW,SAAS,WAAW,CAAC,GAAG,QAAQ,QAAQ,CAAC,CAAC,KAAK,IAAI;CACpE,OAAO,KAAK,UAAU;EACpB,QAAQ;EACR;EACA,UAAU,YAAY,SAAS,MAAM;CACvC,CAAC;AACH"}
@@ -31,7 +31,7 @@ function getSSRInitialState(routeNode, initialLocation, linking) {
31
31
  if (!routeNode) return void 0;
32
32
  ensureBaseLinkingConfig(routeNode, linking);
33
33
  if (!cachedBaseLinkingConfig) return void 0;
34
- var path = initialLocation.pathname + (initialLocation.search || "");
34
+ var path = initialLocation.pathname + (initialLocation.search || "") + initialLocation.hash;
35
35
  if (ssrStateCache.has(path)) return ssrStateCache.get(path);
36
36
  var state = (_cachedBaseLinkingConfig_getStateFromPath = cachedBaseLinkingConfig.getStateFromPath) === null || _cachedBaseLinkingConfig_getStateFromPath === void 0 ? void 0 : _cachedBaseLinkingConfig_getStateFromPath.call(cachedBaseLinkingConfig, path, cachedBaseLinkingConfig.config);
37
37
  evictOldest(ssrStateCache, 5e3, 1e3);
@@ -48,12 +48,12 @@ function setupLinking(routeNode, initialLocation, linking) {
48
48
  linkingConfig.getInitialURL = function() {
49
49
  return initialLocation.toString();
50
50
  };
51
- var path = initialLocation.pathname + (initialLocation.search || "");
51
+ var path = initialLocation.pathname + (initialLocation.search || "") + initialLocation.hash;
52
52
  if (isWebClient) {
53
53
  var _historyState___tempLocation;
54
54
  var historyState = window.history.state;
55
55
  if ((historyState === null || historyState === void 0 ? void 0 : (_historyState___tempLocation = historyState.__tempLocation) === null || _historyState___tempLocation === void 0 ? void 0 : _historyState___tempLocation.pathname) && !historyState.__tempKey) {
56
- path = historyState.__tempLocation.pathname + (historyState.__tempLocation.search || "");
56
+ path = historyState.__tempLocation.pathname + (historyState.__tempLocation.search || "") + (historyState.__tempLocation.hash || "");
57
57
  }
58
58
  }
59
59
  initialState = (_linkingConfig_getStateFromPath = linkingConfig.getStateFromPath) === null || _linkingConfig_getStateFromPath === void 0 ? void 0 : _linkingConfig_getStateFromPath.call(linkingConfig, path, linkingConfig.config);
@@ -1 +1 @@
1
- {"version":3,"file":"linkingConfig.native.js","names":["createLinkingConfig"],"sources":["esm/router/linkingConfig.native.js"],"sourcesContent":["import { isWebClient } from \"../constants\";\nimport { evictOldest } from \"../utils/evictOldest\";\nimport { clearStateCache, getLinkingConfig as createLinkingConfig } from \"./getLinkingConfig\";\nvar linkingConfig;\nvar cachedBaseLinkingConfig;\nvar cachedRouteNodeForLinking = null;\nvar cachedLinkingConfigKey = \"\";\nvar ssrStateCache = /* @__PURE__ */ new Map();\nfunction getResolvedLinking() {\n return linkingConfig;\n}\nfunction setLinking(_) {\n linkingConfig = _;\n}\nfunction resetLinking() {\n linkingConfig = void 0;\n}\nfunction ensureBaseLinkingConfig(routeNode, linking) {\n var linkingConfigKey = getLinkingConfigKey(linking);\n if (routeNode && (routeNode !== cachedRouteNodeForLinking || linkingConfigKey !== cachedLinkingConfigKey || !cachedBaseLinkingConfig)) {\n clearStateCache();\n ssrStateCache.clear();\n cachedBaseLinkingConfig = createLinkingConfig(routeNode, true, linking);\n cachedRouteNodeForLinking = routeNode;\n cachedLinkingConfigKey = linkingConfigKey;\n }\n}\nfunction getSSRInitialState(routeNode, initialLocation, linking) {\n var _cachedBaseLinkingConfig_getStateFromPath;\n if (!routeNode) return void 0;\n ensureBaseLinkingConfig(routeNode, linking);\n if (!cachedBaseLinkingConfig) return void 0;\n var path = initialLocation.pathname + (initialLocation.search || \"\");\n if (ssrStateCache.has(path)) return ssrStateCache.get(path);\n var state = (_cachedBaseLinkingConfig_getStateFromPath = cachedBaseLinkingConfig.getStateFromPath) === null || _cachedBaseLinkingConfig_getStateFromPath === void 0 ? void 0 : _cachedBaseLinkingConfig_getStateFromPath.call(cachedBaseLinkingConfig, path, cachedBaseLinkingConfig.config);\n evictOldest(ssrStateCache, 5e3, 1e3);\n ssrStateCache.set(path, state);\n return state;\n}\nfunction setupLinking(routeNode, initialLocation, linking) {\n var initialState;\n if (routeNode) {\n ensureBaseLinkingConfig(routeNode, linking);\n linkingConfig = {\n ...cachedBaseLinkingConfig\n };\n if (initialLocation) {\n var _linkingConfig_getStateFromPath;\n linkingConfig.getInitialURL = function() {\n return initialLocation.toString();\n };\n var path = initialLocation.pathname + (initialLocation.search || \"\");\n if (isWebClient) {\n var _historyState___tempLocation;\n var historyState = window.history.state;\n if ((historyState === null || historyState === void 0 ? void 0 : (_historyState___tempLocation = historyState.__tempLocation) === null || _historyState___tempLocation === void 0 ? void 0 : _historyState___tempLocation.pathname) && !historyState.__tempKey) {\n path = historyState.__tempLocation.pathname + (historyState.__tempLocation.search || \"\");\n }\n }\n initialState = (_linkingConfig_getStateFromPath = linkingConfig.getStateFromPath) === null || _linkingConfig_getStateFromPath === void 0 ? void 0 : _linkingConfig_getStateFromPath.call(linkingConfig, path, linkingConfig.config);\n }\n }\n return initialState;\n}\nvar filterIds = /* @__PURE__ */ new WeakMap();\nvar filterIdCounter = 0;\nfunction getFilterId(filter) {\n if (!filter) return 0;\n var id = filterIds.get(filter);\n if (id === void 0) {\n id = ++filterIdCounter;\n filterIds.set(filter, id);\n }\n return id;\n}\nfunction getLinkingConfigKey(linking) {\n var _ref;\n var schemes = Array.isArray(linking === null || linking === void 0 ? void 0 : linking.scheme) ? [\n ...linking.scheme\n ].sort() : (_ref = linking === null || linking === void 0 ? void 0 : linking.scheme) !== null && _ref !== void 0 ? _ref : null;\n var prefixes = (linking === null || linking === void 0 ? void 0 : linking.prefixes) ? [\n ...linking.prefixes\n ].sort() : null;\n return JSON.stringify({\n scheme: schemes,\n prefixes,\n filterId: getFilterId(linking === null || linking === void 0 ? void 0 : linking.filter)\n });\n}\nexport {\n ensureBaseLinkingConfig,\n getResolvedLinking,\n getSSRInitialState,\n resetLinking,\n setLinking,\n setupLinking\n};\n//# sourceMappingURL=linkingConfig.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"linkingConfig.native.js","names":["createLinkingConfig"],"sources":["esm/router/linkingConfig.native.js"],"sourcesContent":["import { isWebClient } from \"../constants\";\nimport { evictOldest } from \"../utils/evictOldest\";\nimport { clearStateCache, getLinkingConfig as createLinkingConfig } from \"./getLinkingConfig\";\nvar linkingConfig;\nvar cachedBaseLinkingConfig;\nvar cachedRouteNodeForLinking = null;\nvar cachedLinkingConfigKey = \"\";\nvar ssrStateCache = /* @__PURE__ */ new Map();\nfunction getResolvedLinking() {\n return linkingConfig;\n}\nfunction setLinking(_) {\n linkingConfig = _;\n}\nfunction resetLinking() {\n linkingConfig = void 0;\n}\nfunction ensureBaseLinkingConfig(routeNode, linking) {\n var linkingConfigKey = getLinkingConfigKey(linking);\n if (routeNode && (routeNode !== cachedRouteNodeForLinking || linkingConfigKey !== cachedLinkingConfigKey || !cachedBaseLinkingConfig)) {\n clearStateCache();\n ssrStateCache.clear();\n cachedBaseLinkingConfig = createLinkingConfig(routeNode, true, linking);\n cachedRouteNodeForLinking = routeNode;\n cachedLinkingConfigKey = linkingConfigKey;\n }\n}\nfunction getSSRInitialState(routeNode, initialLocation, linking) {\n var _cachedBaseLinkingConfig_getStateFromPath;\n if (!routeNode) return void 0;\n ensureBaseLinkingConfig(routeNode, linking);\n if (!cachedBaseLinkingConfig) return void 0;\n var path = initialLocation.pathname + (initialLocation.search || \"\") + initialLocation.hash;\n if (ssrStateCache.has(path)) return ssrStateCache.get(path);\n var state = (_cachedBaseLinkingConfig_getStateFromPath = cachedBaseLinkingConfig.getStateFromPath) === null || _cachedBaseLinkingConfig_getStateFromPath === void 0 ? void 0 : _cachedBaseLinkingConfig_getStateFromPath.call(cachedBaseLinkingConfig, path, cachedBaseLinkingConfig.config);\n evictOldest(ssrStateCache, 5e3, 1e3);\n ssrStateCache.set(path, state);\n return state;\n}\nfunction setupLinking(routeNode, initialLocation, linking) {\n var initialState;\n if (routeNode) {\n ensureBaseLinkingConfig(routeNode, linking);\n linkingConfig = {\n ...cachedBaseLinkingConfig\n };\n if (initialLocation) {\n var _linkingConfig_getStateFromPath;\n linkingConfig.getInitialURL = function() {\n return initialLocation.toString();\n };\n var path = initialLocation.pathname + (initialLocation.search || \"\") + initialLocation.hash;\n if (isWebClient) {\n var _historyState___tempLocation;\n var historyState = window.history.state;\n if ((historyState === null || historyState === void 0 ? void 0 : (_historyState___tempLocation = historyState.__tempLocation) === null || _historyState___tempLocation === void 0 ? void 0 : _historyState___tempLocation.pathname) && !historyState.__tempKey) {\n path = historyState.__tempLocation.pathname + (historyState.__tempLocation.search || \"\") + (historyState.__tempLocation.hash || \"\");\n }\n }\n initialState = (_linkingConfig_getStateFromPath = linkingConfig.getStateFromPath) === null || _linkingConfig_getStateFromPath === void 0 ? void 0 : _linkingConfig_getStateFromPath.call(linkingConfig, path, linkingConfig.config);\n }\n }\n return initialState;\n}\nvar filterIds = /* @__PURE__ */ new WeakMap();\nvar filterIdCounter = 0;\nfunction getFilterId(filter) {\n if (!filter) return 0;\n var id = filterIds.get(filter);\n if (id === void 0) {\n id = ++filterIdCounter;\n filterIds.set(filter, id);\n }\n return id;\n}\nfunction getLinkingConfigKey(linking) {\n var _ref;\n var schemes = Array.isArray(linking === null || linking === void 0 ? void 0 : linking.scheme) ? [\n ...linking.scheme\n ].sort() : (_ref = linking === null || linking === void 0 ? void 0 : linking.scheme) !== null && _ref !== void 0 ? _ref : null;\n var prefixes = (linking === null || linking === void 0 ? void 0 : linking.prefixes) ? [\n ...linking.prefixes\n ].sort() : null;\n return JSON.stringify({\n scheme: schemes,\n prefixes,\n filterId: getFilterId(linking === null || linking === void 0 ? void 0 : linking.filter)\n });\n}\nexport {\n ensureBaseLinkingConfig,\n getResolvedLinking,\n getSSRInitialState,\n resetLinking,\n setLinking,\n setupLinking\n};\n//# sourceMappingURL=linkingConfig.js.map\n"],"mappings":"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"}
@@ -8,9 +8,7 @@ import { router } from "./router/imperative-api.native.js";
8
8
  import { preloadedLoaderData, preloadingLoader, routeNode } from "./router/router.native.js";
9
9
  import { setSSRLoaderData, ssrLoaderData } from "./server/ssrLoaderData.native.js";
10
10
  import { getClientMatchesSnapshot, subscribeToClientMatches, updateMatchLoaderData } from "./useMatches.native.js";
11
- import { getLoaderPath } from "./utils/cleanUrl.native.js";
12
- import { getURL } from "./getURL.native.js";
13
- import { LOADER_JS_POSTFIX_UNCACHED } from "./constants.native.js";
11
+ import { getLoaderPath, getNativeLoaderPath } from "./utils/cleanUrl.native.js";
14
12
  import { dynamicImport } from "./utils/dynamicImport.native.js";
15
13
  import { weakKey } from "./utils/weakKey.native.js";
16
14
  import { useServerContext } from "./vite/one-server-only.native.js";
@@ -276,7 +274,7 @@ function useLoaderState(loader) {
276
274
  try {
277
275
  var nativeLoaderJSUrl;
278
276
  if (process.env.NODE_ENV === "development") nativeLoaderJSUrl = `${getLoaderPath(currentPath, true)}?platform=native`;
279
- else nativeLoaderJSUrl = `${getURL()}/assets/${currentPath.slice(1).replace(/\/$/, "").replaceAll("_", "__").replaceAll("/", "_")}${LOADER_JS_POSTFIX_UNCACHED.replace(".js", ".native.js")}`;
277
+ else nativeLoaderJSUrl = getNativeLoaderPath(currentPath);
280
278
  try {
281
279
  var moduleLoadStart = performance.now();
282
280
  var controller = new AbortController();
@@ -1 +1 @@
1
- {"version":3,"file":"useLoader.native.js","names":[],"sources":["esm/useLoader.native.js"],"sourcesContent":["import { useCallback, useSyncExternalStore } from \"react\";\nimport { registerDevtoolsFunction } from \"./devtools/registry\";\nimport { useParams, usePathname } from \"./hooks\";\nimport { findNearestNotFoundRoute, setNotFoundState } from \"./notFoundState\";\nimport { useContextKey } from \"./router/Route\";\nimport { getContextKey } from \"./router/matchers\";\nimport { router } from \"./router/imperative-api\";\nimport { preloadedLoaderData, preloadingLoader, routeNode } from \"./router/router\";\nimport { setSSRLoaderData, ssrLoaderData } from \"./server/ssrLoaderData\";\nimport { getClientMatchesSnapshot, subscribeToClientMatches, updateMatchLoaderData } from \"./useMatches\";\nimport { getLoaderPath } from \"./utils/cleanUrl\";\nimport { getURL } from \"./getURL\";\nimport { LOADER_JS_POSTFIX_UNCACHED } from \"./constants\";\nimport { dynamicImport } from \"./utils/dynamicImport\";\nimport { weakKey } from \"./utils/weakKey\";\nimport { useServerContext } from \"./vite/one-server-only\";\n\nvar LOADER_TIMEOUT = process.env.ONE_LOADER_TIMEOUT_MS ? +process.env.ONE_LOADER_TIMEOUT_MS : 6e4;\nvar loaderTimingHistory = [];\nvar MAX_TIMING_HISTORY = 50;\nvar recordLoaderTiming = process.env.NODE_ENV === \"development\" ? function(entry) {\n\tloaderTimingHistory.unshift(entry);\n\tif (loaderTimingHistory.length > MAX_TIMING_HISTORY) loaderTimingHistory.pop();\n} : void 0;\nfunction getLoaderTimingHistory() {\n\treturn loaderTimingHistory;\n}\nregisterDevtoolsFunction(\"getLoaderTimingHistory\", getLoaderTimingHistory);\nregisterDevtoolsFunction(\"recordLoaderTiming\", recordLoaderTiming);\nvar loaderState = {};\nvar subscribers = /* @__PURE__ */ new Set();\nvar LOADER_STATE_MAX = 200;\nvar loaderStateKeys = [];\nfunction setBoundedLoaderState(path, entry) {\n\tif (!(path in loaderState)) {\n\t\tloaderStateKeys.push(path);\n\t\tif (loaderStateKeys.length > LOADER_STATE_MAX) {\n\t\t\tvar oldest = loaderStateKeys.shift();\n\t\t\tdelete loaderState[oldest];\n\t\t}\n\t}\n\tloaderState[path] = entry;\n}\nfunction updateState(path, updates) {\n\tsetBoundedLoaderState(path, {\n\t\t...loaderState[path],\n\t\t...updates\n\t});\n\tsubscribers.forEach(function(callback) {\n\t\tcallback();\n\t});\n}\nfunction subscribe(callback) {\n\tsubscribers.add(callback);\n\treturn function() {\n\t\treturn subscribers.delete(callback);\n\t};\n}\nfunction getLoaderState(path, preloadedData) {\n\tif (!(path in loaderState)) setBoundedLoaderState(path, {\n\t\tdata: preloadedData,\n\t\terror: void 0,\n\t\tpromise: void 0,\n\t\tstate: \"idle\",\n\t\thasLoadedOnce: !!preloadedData\n\t});\n\treturn loaderState[path];\n}\nasync function refetchLoader(pathname) {\n\tvar startTime = performance.now();\n\tupdateState(pathname, {\n\t\tstate: \"loading\",\n\t\terror: null\n\t});\n\ttry {\n\t\tvar _dynamicImport;\n\t\tvar loaderJSUrl = getLoaderPath(pathname, true, `${Date.now()}`);\n\t\tvar moduleLoadStart = performance.now();\n\t\tvar module = await ((_dynamicImport = dynamicImport(loaderJSUrl)) === null || _dynamicImport === void 0 ? void 0 : _dynamicImport.catch(function() {\n\t\t\treturn null;\n\t\t}));\n\t\tvar moduleLoadTime = performance.now() - moduleLoadStart;\n\t\tif (!(module === null || module === void 0 ? void 0 : module.loader)) {\n\t\t\tupdateState(pathname, {\n\t\t\t\tdata: void 0,\n\t\t\t\tstate: \"idle\",\n\t\t\t\thasLoadedOnce: true\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tvar executionStart = performance.now();\n\t\tvar result = await module.loader();\n\t\tvar executionTime = performance.now() - executionStart;\n\t\tvar totalTime = performance.now() - startTime;\n\t\tif (result === null || result === void 0 ? void 0 : result.__oneRedirect) {\n\t\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\t\tpath: pathname,\n\t\t\t\tstartTime,\n\t\t\t\tmoduleLoadTime,\n\t\t\t\texecutionTime,\n\t\t\t\ttotalTime,\n\t\t\t\tsource: \"refetch\"\n\t\t\t});\n\t\t\tupdateState(pathname, {\n\t\t\t\tdata: void 0,\n\t\t\t\tstate: \"idle\",\n\t\t\t\thasLoadedOnce: true\n\t\t\t});\n\t\t\trouter.replace(result.__oneRedirect);\n\t\t\treturn;\n\t\t}\n\t\tif ((result === null || result === void 0 ? void 0 : result.__oneError) === 404) {\n\t\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\t\tpath: pathname,\n\t\t\t\tstartTime,\n\t\t\t\tmoduleLoadTime,\n\t\t\t\texecutionTime,\n\t\t\t\ttotalTime,\n\t\t\t\tsource: \"refetch\"\n\t\t\t});\n\t\t\tvar notFoundRoute = findNearestNotFoundRoute(pathname, routeNode);\n\t\t\tsetNotFoundState({\n\t\t\t\tnotFoundPath: result.__oneNotFoundPath || \"/+not-found\",\n\t\t\t\tnotFoundRouteNode: notFoundRoute || void 0,\n\t\t\t\toriginalPath: pathname\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tupdateState(pathname, {\n\t\t\tdata: result,\n\t\t\tstate: \"idle\",\n\t\t\ttimestamp: Date.now(),\n\t\t\thasLoadedOnce: true\n\t\t});\n\t\tvar currentMatches = getClientMatchesSnapshot();\n\t\tvar pageMatch = currentMatches[currentMatches.length - 1];\n\t\tvar normalizedPathname = pathname.replace(/\\/$/, \"\") || \"/\";\n\t\tvar normalizedMatchPathname = ((pageMatch === null || pageMatch === void 0 ? void 0 : pageMatch.pathname) || \"\").replace(/\\/$/, \"\") || \"/\";\n\t\tif (pageMatch && normalizedMatchPathname === normalizedPathname) updateMatchLoaderData(pageMatch.routeId, result);\n\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\tpath: pathname,\n\t\t\tstartTime,\n\t\t\tmoduleLoadTime,\n\t\t\texecutionTime,\n\t\t\ttotalTime,\n\t\t\tsource: \"refetch\"\n\t\t});\n\t} catch (err) {\n\t\tvar totalTime1 = performance.now() - startTime;\n\t\tupdateState(pathname, {\n\t\t\terror: err,\n\t\t\tstate: \"idle\"\n\t\t});\n\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\tpath: pathname,\n\t\t\tstartTime,\n\t\t\ttotalTime: totalTime1,\n\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\tsource: \"refetch\"\n\t\t});\n\t\tthrow err;\n\t}\n}\nif (process.env.NODE_ENV === \"development\" && typeof window !== \"undefined\") window.__oneRefetchLoader = refetchLoader;\nasync function refetchMatchLoader(routeId, currentPath) {\n\tvar _dynamicImport;\n\tvar module = await ((_dynamicImport = dynamicImport(getLoaderPath(currentPath, true, `${Date.now()}`))) === null || _dynamicImport === void 0 ? void 0 : _dynamicImport.catch(function() {\n\t\treturn null;\n\t}));\n\tif (!(module === null || module === void 0 ? void 0 : module.loader)) return;\n\tvar result = await module.loader();\n\tif ((result === null || result === void 0 ? void 0 : result.__oneRedirect) || (result === null || result === void 0 ? void 0 : result.__oneError)) return;\n\tupdateMatchLoaderData(routeId, result);\n}\nfunction useLoaderState(loader) {\n\tvar { loaderProps: loaderPropsFromServerContext, loaderData: loaderDataFromServerContext } = useServerContext() || {};\n\tvar params = useParams();\n\tvar pathname = usePathname();\n\tvar currentPath = pathname.replace(/\\/index$/, \"\").replace(/\\/$/, \"\") || \"/\";\n\tif (typeof window === \"undefined\") {\n\t\tif (loader) {\n\t\t\tif (ssrLoaderData.has(loader)) return {\n\t\t\t\tdata: ssrLoaderData.get(loader),\n\t\t\t\trefetch: async function refetch2() {},\n\t\t\t\tstate: \"idle\"\n\t\t\t};\n\t\t\tvar serverContext = useServerContext();\n\t\t\tif (serverContext === null || serverContext === void 0 ? void 0 : serverContext.matches) {\n\t\t\t\tvar contextKey = useContextKey();\n\t\t\t\tvar match = serverContext.matches.find(function(m) {\n\t\t\t\t\treturn getContextKey(m.routeId) === contextKey;\n\t\t\t\t});\n\t\t\t\tif (match && match.loaderData !== void 0) return {\n\t\t\t\t\tdata: match.loaderData,\n\t\t\t\t\trefetch: async function refetch2() {},\n\t\t\t\t\tstate: \"idle\"\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tdata: useAsyncFn(loader, loaderPropsFromServerContext || {\n\t\t\t\t\tpath: pathname,\n\t\t\t\t\tparams\n\t\t\t\t}),\n\t\t\t\trefetch: async function refetch2() {},\n\t\t\t\tstate: \"idle\"\n\t\t\t};\n\t\t}\n\t\tif (loaderDataFromServerContext !== void 0) return {\n\t\t\tdata: loaderDataFromServerContext,\n\t\t\trefetch: async function refetch2() {},\n\t\t\tstate: \"idle\"\n\t\t};\n\t}\n\tvar matchRouteId = loader ? (function() {\n\t\tvar result = loader();\n\t\treturn typeof result === \"string\" && result.startsWith(\"./\") ? result : null;\n\t})() : null;\n\tvar clientMatches = useSyncExternalStore(subscribeToClientMatches, getClientMatchesSnapshot, getClientMatchesSnapshot);\n\tvar preloadedData = (loaderPropsFromServerContext === null || loaderPropsFromServerContext === void 0 ? void 0 : loaderPropsFromServerContext.path) === currentPath ? loaderDataFromServerContext : void 0;\n\tvar loaderStateEntry = useSyncExternalStore(subscribe, function() {\n\t\treturn getLoaderState(currentPath, preloadedData);\n\t}, function() {\n\t\treturn getLoaderState(currentPath, preloadedData);\n\t});\n\tvar refetch = useCallback(function() {\n\t\treturn refetchLoader(currentPath);\n\t}, [currentPath]);\n\tif (matchRouteId) {\n\t\tvar _clientMatches_;\n\t\tvar match1 = clientMatches.find(function(m) {\n\t\t\treturn m.routeId === matchRouteId;\n\t\t});\n\t\tvar isPageMatch = clientMatches.length > 0 && ((_clientMatches_ = clientMatches[clientMatches.length - 1]) === null || _clientMatches_ === void 0 ? void 0 : _clientMatches_.routeId) === matchRouteId;\n\t\tvar matchPathNormalized = ((match1 === null || match1 === void 0 ? void 0 : match1.pathname) || \"\").replace(/\\/$/, \"\") || \"/\";\n\t\tvar matchPathFresh = !isPageMatch || matchPathNormalized === currentPath;\n\t\tif (match1 && match1.loaderData != null && matchPathFresh) return {\n\t\t\tdata: match1.loaderData,\n\t\t\trefetch: async function refetch2() {\n\t\t\t\tawait refetchLoader(currentPath);\n\t\t\t\tvar fresh = loaderState[currentPath];\n\t\t\t\tif ((fresh === null || fresh === void 0 ? void 0 : fresh.data) != null) updateMatchLoaderData(matchRouteId, fresh.data);\n\t\t\t},\n\t\t\tstate: loaderStateEntry.state\n\t\t};\n\t}\n\tif (!loader) return {\n\t\trefetch,\n\t\tstate: loaderStateEntry.state\n\t};\n\tif (!loaderStateEntry.data && !loaderStateEntry.promise && !loaderStateEntry.hasLoadedOnce) {\n\t\tvar resolvedPreloadData = preloadedLoaderData[currentPath];\n\t\tif (resolvedPreloadData != null) {\n\t\t\tdelete preloadedLoaderData[currentPath];\n\t\t\tdelete preloadingLoader[currentPath];\n\t\t\tloaderStateEntry.data = resolvedPreloadData;\n\t\t\tloaderStateEntry.hasLoadedOnce = true;\n\t\t} else if (preloadingLoader[currentPath]) loaderStateEntry.promise = preloadingLoader[currentPath].then(function(val) {\n\t\t\tdelete preloadingLoader[currentPath];\n\t\t\tdelete preloadedLoaderData[currentPath];\n\t\t\tif (val != null) updateState(currentPath, {\n\t\t\t\tdata: val,\n\t\t\t\thasLoadedOnce: true,\n\t\t\t\tpromise: void 0\n\t\t\t});\n\t\t\telse updateState(currentPath, { promise: void 0 });\n\t\t}).catch(function(err) {\n\t\t\tconsole.error(`Error running loader()`, err);\n\t\t\tdelete preloadingLoader[currentPath];\n\t\t\tupdateState(currentPath, {\n\t\t\t\terror: err,\n\t\t\t\tpromise: void 0\n\t\t\t});\n\t\t});\n\t\telse loaderStateEntry.promise = async function loadData2() {\n\t\t\tvar startTime = performance.now();\n\t\t\ttry {\n\t\t\t\tvar nativeLoaderJSUrl;\n\t\t\t\tif (process.env.NODE_ENV === \"development\") nativeLoaderJSUrl = `${getLoaderPath(currentPath, true)}?platform=native`;\n\t\t\t\telse nativeLoaderJSUrl = `${getURL()}/assets/${currentPath.slice(1).replace(/\\/$/, \"\").replaceAll(\"_\", \"__\").replaceAll(\"/\", \"_\")}${LOADER_JS_POSTFIX_UNCACHED.replace(\".js\", \".native.js\")}`;\n\t\t\t\ttry {\n\t\t\t\t\tvar moduleLoadStart = performance.now();\n\t\t\t\t\tvar controller = new AbortController();\n\t\t\t\t\tvar timeoutId = setTimeout(function() {\n\t\t\t\t\t\treturn controller.abort();\n\t\t\t\t\t}, LOADER_TIMEOUT);\n\t\t\t\t\tvar loaderJsCode;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar loaderJsCodeResp = await fetch(nativeLoaderJSUrl, { signal: controller.signal });\n\t\t\t\t\t\tif (!loaderJsCodeResp.ok) throw new Error(`Response not ok: ${loaderJsCodeResp.status}`);\n\t\t\t\t\t\tloaderJsCode = await loaderJsCodeResp.text();\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t}\n\t\t\t\t\tvar result = {};\n\t\t\t\t\tnew Function(\"exports\", loaderJsCode)(result);\n\t\t\t\t\tvar moduleLoadTime = performance.now() - moduleLoadStart;\n\t\t\t\t\tif (typeof result.loader !== \"function\") throw new Error(\"Loader code isn't exporting a `loader` function\");\n\t\t\t\t\tvar executionStart = performance.now();\n\t\t\t\t\tvar data = await result.loader();\n\t\t\t\t\tvar executionTime = performance.now() - executionStart;\n\t\t\t\t\tvar totalTime = performance.now() - startTime;\n\t\t\t\t\tif (data === null || data === void 0 ? void 0 : data.__oneRedirect) {\n\t\t\t\t\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\t\t\t\t\tpath: currentPath,\n\t\t\t\t\t\t\tstartTime,\n\t\t\t\t\t\t\tmoduleLoadTime,\n\t\t\t\t\t\t\texecutionTime,\n\t\t\t\t\t\t\ttotalTime,\n\t\t\t\t\t\t\tsource: \"initial\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\tupdateState(currentPath, {\n\t\t\t\t\t\t\tdata: void 0,\n\t\t\t\t\t\t\thasLoadedOnce: true,\n\t\t\t\t\t\t\tpromise: void 0\n\t\t\t\t\t\t});\n\t\t\t\t\t\trouter.replace(data.__oneRedirect);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif ((data === null || data === void 0 ? void 0 : data.__oneError) === 404) {\n\t\t\t\t\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\t\t\t\t\tpath: currentPath,\n\t\t\t\t\t\t\tstartTime,\n\t\t\t\t\t\t\tmoduleLoadTime,\n\t\t\t\t\t\t\texecutionTime,\n\t\t\t\t\t\t\ttotalTime,\n\t\t\t\t\t\t\tsource: \"initial\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\tvar notFoundRoute = findNearestNotFoundRoute(currentPath, routeNode);\n\t\t\t\t\t\tsetNotFoundState({\n\t\t\t\t\t\t\tnotFoundPath: data.__oneNotFoundPath || \"/+not-found\",\n\t\t\t\t\t\t\tnotFoundRouteNode: notFoundRoute || void 0,\n\t\t\t\t\t\t\toriginalPath: currentPath\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tupdateState(currentPath, {\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\thasLoadedOnce: true,\n\t\t\t\t\t\tpromise: void 0\n\t\t\t\t\t});\n\t\t\t\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\t\t\t\tpath: currentPath,\n\t\t\t\t\t\tstartTime,\n\t\t\t\t\t\tmoduleLoadTime,\n\t\t\t\t\t\texecutionTime,\n\t\t\t\t\t\ttotalTime,\n\t\t\t\t\t\tsource: \"initial\"\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconsole.error(`[one] native loader error for ${currentPath}:`, e instanceof Error ? e.message : e, `url: ${nativeLoaderJSUrl}`);\n\t\t\t\t\tvar totalTime1 = performance.now() - startTime;\n\t\t\t\t\tupdateState(currentPath, {\n\t\t\t\t\t\tdata: {},\n\t\t\t\t\t\tpromise: void 0\n\t\t\t\t\t});\n\t\t\t\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\t\t\t\tpath: currentPath,\n\t\t\t\t\t\tstartTime,\n\t\t\t\t\t\ttotalTime: totalTime1,\n\t\t\t\t\t\terror: e instanceof Error ? e.message : String(e),\n\t\t\t\t\t\tsource: \"initial\"\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tvar totalTime3 = performance.now() - startTime;\n\t\t\t\tupdateState(currentPath, {\n\t\t\t\t\terror: err,\n\t\t\t\t\tpromise: void 0\n\t\t\t\t});\n\t\t\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\t\t\tpath: currentPath,\n\t\t\t\t\tstartTime,\n\t\t\t\t\ttotalTime: totalTime3,\n\t\t\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\t\t\tsource: \"initial\"\n\t\t\t\t});\n\t\t\t}\n\t\t}();\n\t}\n\tif (loaderStateEntry.error && !loaderStateEntry.hasLoadedOnce) throw loaderStateEntry.error;\n\tif (loaderStateEntry.data === void 0 && loaderStateEntry.promise && !loaderStateEntry.hasLoadedOnce) throw loaderStateEntry.promise;\n\treturn {\n\t\tdata: loaderStateEntry.data,\n\t\trefetch,\n\t\tstate: loaderStateEntry.state\n\t};\n}\nfunction useLoader(loader) {\n\tvar { data } = useLoaderState(loader);\n\treturn data;\n}\nvar results = /* @__PURE__ */ new Map();\nvar started = /* @__PURE__ */ new Map();\nvar USE_ASYNC_FN_CACHE_MAX = 100;\nfunction setBoundedResults(key, value) {\n\tif (results.size >= USE_ASYNC_FN_CACHE_MAX && !results.has(key)) {\n\t\tvar firstKey = results.keys().next().value;\n\t\tif (firstKey !== void 0) {\n\t\t\tresults.delete(firstKey);\n\t\t\tstarted.delete(firstKey);\n\t\t}\n\t}\n\tresults.set(key, value);\n}\nfunction resetLoaderState() {\n\tresults.clear();\n\tstarted.clear();\n}\nfunction useAsyncFn(val, props) {\n\tvar key = (val ? weakKey(val) : \"\") + JSON.stringify(props);\n\tif (val) {\n\t\tif (!started.get(key)) {\n\t\t\tstarted.set(key, true);\n\t\t\tvar next = val(props);\n\t\t\tif (next instanceof Promise) next = next.then(function(final) {\n\t\t\t\tsetBoundedResults(key, final);\n\t\t\t}).catch(function(err) {\n\t\t\t\tconsole.error(`Error running loader()`, err);\n\t\t\t\tsetBoundedResults(key, void 0);\n\t\t\t});\n\t\t\tsetBoundedResults(key, next);\n\t\t}\n\t}\n\tvar current = results.get(key);\n\tif (current instanceof Promise) throw current;\n\treturn current;\n}\n\nexport { getLoaderTimingHistory, refetchLoader, refetchMatchLoader, resetLoaderState, setSSRLoaderData, useLoader, useLoaderState };"],"mappings":"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"}
1
+ {"version":3,"file":"useLoader.native.js","names":[],"sources":["esm/useLoader.native.js"],"sourcesContent":["import { useCallback, useSyncExternalStore } from \"react\";\nimport { registerDevtoolsFunction } from \"./devtools/registry\";\nimport { useParams, usePathname } from \"./hooks\";\nimport { findNearestNotFoundRoute, setNotFoundState } from \"./notFoundState\";\nimport { useContextKey } from \"./router/Route\";\nimport { getContextKey } from \"./router/matchers\";\nimport { router } from \"./router/imperative-api\";\nimport { preloadedLoaderData, preloadingLoader, routeNode } from \"./router/router\";\nimport { setSSRLoaderData, ssrLoaderData } from \"./server/ssrLoaderData\";\nimport { getClientMatchesSnapshot, subscribeToClientMatches, updateMatchLoaderData } from \"./useMatches\";\nimport { getLoaderPath, getNativeLoaderPath } from \"./utils/cleanUrl\";\nimport { dynamicImport } from \"./utils/dynamicImport\";\nimport { weakKey } from \"./utils/weakKey\";\nimport { useServerContext } from \"./vite/one-server-only\";\n\nvar LOADER_TIMEOUT = process.env.ONE_LOADER_TIMEOUT_MS ? +process.env.ONE_LOADER_TIMEOUT_MS : 6e4;\nvar loaderTimingHistory = [];\nvar MAX_TIMING_HISTORY = 50;\nvar recordLoaderTiming = process.env.NODE_ENV === \"development\" ? function(entry) {\n\tloaderTimingHistory.unshift(entry);\n\tif (loaderTimingHistory.length > MAX_TIMING_HISTORY) loaderTimingHistory.pop();\n} : void 0;\nfunction getLoaderTimingHistory() {\n\treturn loaderTimingHistory;\n}\nregisterDevtoolsFunction(\"getLoaderTimingHistory\", getLoaderTimingHistory);\nregisterDevtoolsFunction(\"recordLoaderTiming\", recordLoaderTiming);\nvar loaderState = {};\nvar subscribers = /* @__PURE__ */ new Set();\nvar LOADER_STATE_MAX = 200;\nvar loaderStateKeys = [];\nfunction setBoundedLoaderState(path, entry) {\n\tif (!(path in loaderState)) {\n\t\tloaderStateKeys.push(path);\n\t\tif (loaderStateKeys.length > LOADER_STATE_MAX) {\n\t\t\tvar oldest = loaderStateKeys.shift();\n\t\t\tdelete loaderState[oldest];\n\t\t}\n\t}\n\tloaderState[path] = entry;\n}\nfunction updateState(path, updates) {\n\tsetBoundedLoaderState(path, {\n\t\t...loaderState[path],\n\t\t...updates\n\t});\n\tsubscribers.forEach(function(callback) {\n\t\tcallback();\n\t});\n}\nfunction subscribe(callback) {\n\tsubscribers.add(callback);\n\treturn function() {\n\t\treturn subscribers.delete(callback);\n\t};\n}\nfunction getLoaderState(path, preloadedData) {\n\tif (!(path in loaderState)) setBoundedLoaderState(path, {\n\t\tdata: preloadedData,\n\t\terror: void 0,\n\t\tpromise: void 0,\n\t\tstate: \"idle\",\n\t\thasLoadedOnce: !!preloadedData\n\t});\n\treturn loaderState[path];\n}\nasync function refetchLoader(pathname) {\n\tvar startTime = performance.now();\n\tupdateState(pathname, {\n\t\tstate: \"loading\",\n\t\terror: null\n\t});\n\ttry {\n\t\tvar _dynamicImport;\n\t\tvar loaderJSUrl = getLoaderPath(pathname, true, `${Date.now()}`);\n\t\tvar moduleLoadStart = performance.now();\n\t\tvar module = await ((_dynamicImport = dynamicImport(loaderJSUrl)) === null || _dynamicImport === void 0 ? void 0 : _dynamicImport.catch(function() {\n\t\t\treturn null;\n\t\t}));\n\t\tvar moduleLoadTime = performance.now() - moduleLoadStart;\n\t\tif (!(module === null || module === void 0 ? void 0 : module.loader)) {\n\t\t\tupdateState(pathname, {\n\t\t\t\tdata: void 0,\n\t\t\t\tstate: \"idle\",\n\t\t\t\thasLoadedOnce: true\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tvar executionStart = performance.now();\n\t\tvar result = await module.loader();\n\t\tvar executionTime = performance.now() - executionStart;\n\t\tvar totalTime = performance.now() - startTime;\n\t\tif (result === null || result === void 0 ? void 0 : result.__oneRedirect) {\n\t\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\t\tpath: pathname,\n\t\t\t\tstartTime,\n\t\t\t\tmoduleLoadTime,\n\t\t\t\texecutionTime,\n\t\t\t\ttotalTime,\n\t\t\t\tsource: \"refetch\"\n\t\t\t});\n\t\t\tupdateState(pathname, {\n\t\t\t\tdata: void 0,\n\t\t\t\tstate: \"idle\",\n\t\t\t\thasLoadedOnce: true\n\t\t\t});\n\t\t\trouter.replace(result.__oneRedirect);\n\t\t\treturn;\n\t\t}\n\t\tif ((result === null || result === void 0 ? void 0 : result.__oneError) === 404) {\n\t\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\t\tpath: pathname,\n\t\t\t\tstartTime,\n\t\t\t\tmoduleLoadTime,\n\t\t\t\texecutionTime,\n\t\t\t\ttotalTime,\n\t\t\t\tsource: \"refetch\"\n\t\t\t});\n\t\t\tvar notFoundRoute = findNearestNotFoundRoute(pathname, routeNode);\n\t\t\tsetNotFoundState({\n\t\t\t\tnotFoundPath: result.__oneNotFoundPath || \"/+not-found\",\n\t\t\t\tnotFoundRouteNode: notFoundRoute || void 0,\n\t\t\t\toriginalPath: pathname\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tupdateState(pathname, {\n\t\t\tdata: result,\n\t\t\tstate: \"idle\",\n\t\t\ttimestamp: Date.now(),\n\t\t\thasLoadedOnce: true\n\t\t});\n\t\tvar currentMatches = getClientMatchesSnapshot();\n\t\tvar pageMatch = currentMatches[currentMatches.length - 1];\n\t\tvar normalizedPathname = pathname.replace(/\\/$/, \"\") || \"/\";\n\t\tvar normalizedMatchPathname = ((pageMatch === null || pageMatch === void 0 ? void 0 : pageMatch.pathname) || \"\").replace(/\\/$/, \"\") || \"/\";\n\t\tif (pageMatch && normalizedMatchPathname === normalizedPathname) updateMatchLoaderData(pageMatch.routeId, result);\n\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\tpath: pathname,\n\t\t\tstartTime,\n\t\t\tmoduleLoadTime,\n\t\t\texecutionTime,\n\t\t\ttotalTime,\n\t\t\tsource: \"refetch\"\n\t\t});\n\t} catch (err) {\n\t\tvar totalTime1 = performance.now() - startTime;\n\t\tupdateState(pathname, {\n\t\t\terror: err,\n\t\t\tstate: \"idle\"\n\t\t});\n\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\tpath: pathname,\n\t\t\tstartTime,\n\t\t\ttotalTime: totalTime1,\n\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\tsource: \"refetch\"\n\t\t});\n\t\tthrow err;\n\t}\n}\nif (process.env.NODE_ENV === \"development\" && typeof window !== \"undefined\") window.__oneRefetchLoader = refetchLoader;\nasync function refetchMatchLoader(routeId, currentPath) {\n\tvar _dynamicImport;\n\tvar module = await ((_dynamicImport = dynamicImport(getLoaderPath(currentPath, true, `${Date.now()}`))) === null || _dynamicImport === void 0 ? void 0 : _dynamicImport.catch(function() {\n\t\treturn null;\n\t}));\n\tif (!(module === null || module === void 0 ? void 0 : module.loader)) return;\n\tvar result = await module.loader();\n\tif ((result === null || result === void 0 ? void 0 : result.__oneRedirect) || (result === null || result === void 0 ? void 0 : result.__oneError)) return;\n\tupdateMatchLoaderData(routeId, result);\n}\nfunction useLoaderState(loader) {\n\tvar { loaderProps: loaderPropsFromServerContext, loaderData: loaderDataFromServerContext } = useServerContext() || {};\n\tvar params = useParams();\n\tvar pathname = usePathname();\n\tvar currentPath = pathname.replace(/\\/index$/, \"\").replace(/\\/$/, \"\") || \"/\";\n\tif (typeof window === \"undefined\") {\n\t\tif (loader) {\n\t\t\tif (ssrLoaderData.has(loader)) return {\n\t\t\t\tdata: ssrLoaderData.get(loader),\n\t\t\t\trefetch: async function refetch2() {},\n\t\t\t\tstate: \"idle\"\n\t\t\t};\n\t\t\tvar serverContext = useServerContext();\n\t\t\tif (serverContext === null || serverContext === void 0 ? void 0 : serverContext.matches) {\n\t\t\t\tvar contextKey = useContextKey();\n\t\t\t\tvar match = serverContext.matches.find(function(m) {\n\t\t\t\t\treturn getContextKey(m.routeId) === contextKey;\n\t\t\t\t});\n\t\t\t\tif (match && match.loaderData !== void 0) return {\n\t\t\t\t\tdata: match.loaderData,\n\t\t\t\t\trefetch: async function refetch2() {},\n\t\t\t\t\tstate: \"idle\"\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tdata: useAsyncFn(loader, loaderPropsFromServerContext || {\n\t\t\t\t\tpath: pathname,\n\t\t\t\t\tparams\n\t\t\t\t}),\n\t\t\t\trefetch: async function refetch2() {},\n\t\t\t\tstate: \"idle\"\n\t\t\t};\n\t\t}\n\t\tif (loaderDataFromServerContext !== void 0) return {\n\t\t\tdata: loaderDataFromServerContext,\n\t\t\trefetch: async function refetch2() {},\n\t\t\tstate: \"idle\"\n\t\t};\n\t}\n\tvar matchRouteId = loader ? (function() {\n\t\tvar result = loader();\n\t\treturn typeof result === \"string\" && result.startsWith(\"./\") ? result : null;\n\t})() : null;\n\tvar clientMatches = useSyncExternalStore(subscribeToClientMatches, getClientMatchesSnapshot, getClientMatchesSnapshot);\n\tvar preloadedData = (loaderPropsFromServerContext === null || loaderPropsFromServerContext === void 0 ? void 0 : loaderPropsFromServerContext.path) === currentPath ? loaderDataFromServerContext : void 0;\n\tvar loaderStateEntry = useSyncExternalStore(subscribe, function() {\n\t\treturn getLoaderState(currentPath, preloadedData);\n\t}, function() {\n\t\treturn getLoaderState(currentPath, preloadedData);\n\t});\n\tvar refetch = useCallback(function() {\n\t\treturn refetchLoader(currentPath);\n\t}, [currentPath]);\n\tif (matchRouteId) {\n\t\tvar _clientMatches_;\n\t\tvar match1 = clientMatches.find(function(m) {\n\t\t\treturn m.routeId === matchRouteId;\n\t\t});\n\t\tvar isPageMatch = clientMatches.length > 0 && ((_clientMatches_ = clientMatches[clientMatches.length - 1]) === null || _clientMatches_ === void 0 ? void 0 : _clientMatches_.routeId) === matchRouteId;\n\t\tvar matchPathNormalized = ((match1 === null || match1 === void 0 ? void 0 : match1.pathname) || \"\").replace(/\\/$/, \"\") || \"/\";\n\t\tvar matchPathFresh = !isPageMatch || matchPathNormalized === currentPath;\n\t\tif (match1 && match1.loaderData != null && matchPathFresh) return {\n\t\t\tdata: match1.loaderData,\n\t\t\trefetch: async function refetch2() {\n\t\t\t\tawait refetchLoader(currentPath);\n\t\t\t\tvar fresh = loaderState[currentPath];\n\t\t\t\tif ((fresh === null || fresh === void 0 ? void 0 : fresh.data) != null) updateMatchLoaderData(matchRouteId, fresh.data);\n\t\t\t},\n\t\t\tstate: loaderStateEntry.state\n\t\t};\n\t}\n\tif (!loader) return {\n\t\trefetch,\n\t\tstate: loaderStateEntry.state\n\t};\n\tif (!loaderStateEntry.data && !loaderStateEntry.promise && !loaderStateEntry.hasLoadedOnce) {\n\t\tvar resolvedPreloadData = preloadedLoaderData[currentPath];\n\t\tif (resolvedPreloadData != null) {\n\t\t\tdelete preloadedLoaderData[currentPath];\n\t\t\tdelete preloadingLoader[currentPath];\n\t\t\tloaderStateEntry.data = resolvedPreloadData;\n\t\t\tloaderStateEntry.hasLoadedOnce = true;\n\t\t} else if (preloadingLoader[currentPath]) loaderStateEntry.promise = preloadingLoader[currentPath].then(function(val) {\n\t\t\tdelete preloadingLoader[currentPath];\n\t\t\tdelete preloadedLoaderData[currentPath];\n\t\t\tif (val != null) updateState(currentPath, {\n\t\t\t\tdata: val,\n\t\t\t\thasLoadedOnce: true,\n\t\t\t\tpromise: void 0\n\t\t\t});\n\t\t\telse updateState(currentPath, { promise: void 0 });\n\t\t}).catch(function(err) {\n\t\t\tconsole.error(`Error running loader()`, err);\n\t\t\tdelete preloadingLoader[currentPath];\n\t\t\tupdateState(currentPath, {\n\t\t\t\terror: err,\n\t\t\t\tpromise: void 0\n\t\t\t});\n\t\t});\n\t\telse loaderStateEntry.promise = async function loadData2() {\n\t\t\tvar startTime = performance.now();\n\t\t\ttry {\n\t\t\t\tvar nativeLoaderJSUrl;\n\t\t\t\tif (process.env.NODE_ENV === \"development\") nativeLoaderJSUrl = `${getLoaderPath(currentPath, true)}?platform=native`;\n\t\t\t\telse nativeLoaderJSUrl = getNativeLoaderPath(currentPath);\n\t\t\t\ttry {\n\t\t\t\t\tvar moduleLoadStart = performance.now();\n\t\t\t\t\tvar controller = new AbortController();\n\t\t\t\t\tvar timeoutId = setTimeout(function() {\n\t\t\t\t\t\treturn controller.abort();\n\t\t\t\t\t}, LOADER_TIMEOUT);\n\t\t\t\t\tvar loaderJsCode;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar loaderJsCodeResp = await fetch(nativeLoaderJSUrl, { signal: controller.signal });\n\t\t\t\t\t\tif (!loaderJsCodeResp.ok) throw new Error(`Response not ok: ${loaderJsCodeResp.status}`);\n\t\t\t\t\t\tloaderJsCode = await loaderJsCodeResp.text();\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t}\n\t\t\t\t\tvar result = {};\n\t\t\t\t\tnew Function(\"exports\", loaderJsCode)(result);\n\t\t\t\t\tvar moduleLoadTime = performance.now() - moduleLoadStart;\n\t\t\t\t\tif (typeof result.loader !== \"function\") throw new Error(\"Loader code isn't exporting a `loader` function\");\n\t\t\t\t\tvar executionStart = performance.now();\n\t\t\t\t\tvar data = await result.loader();\n\t\t\t\t\tvar executionTime = performance.now() - executionStart;\n\t\t\t\t\tvar totalTime = performance.now() - startTime;\n\t\t\t\t\tif (data === null || data === void 0 ? void 0 : data.__oneRedirect) {\n\t\t\t\t\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\t\t\t\t\tpath: currentPath,\n\t\t\t\t\t\t\tstartTime,\n\t\t\t\t\t\t\tmoduleLoadTime,\n\t\t\t\t\t\t\texecutionTime,\n\t\t\t\t\t\t\ttotalTime,\n\t\t\t\t\t\t\tsource: \"initial\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\tupdateState(currentPath, {\n\t\t\t\t\t\t\tdata: void 0,\n\t\t\t\t\t\t\thasLoadedOnce: true,\n\t\t\t\t\t\t\tpromise: void 0\n\t\t\t\t\t\t});\n\t\t\t\t\t\trouter.replace(data.__oneRedirect);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif ((data === null || data === void 0 ? void 0 : data.__oneError) === 404) {\n\t\t\t\t\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\t\t\t\t\tpath: currentPath,\n\t\t\t\t\t\t\tstartTime,\n\t\t\t\t\t\t\tmoduleLoadTime,\n\t\t\t\t\t\t\texecutionTime,\n\t\t\t\t\t\t\ttotalTime,\n\t\t\t\t\t\t\tsource: \"initial\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\tvar notFoundRoute = findNearestNotFoundRoute(currentPath, routeNode);\n\t\t\t\t\t\tsetNotFoundState({\n\t\t\t\t\t\t\tnotFoundPath: data.__oneNotFoundPath || \"/+not-found\",\n\t\t\t\t\t\t\tnotFoundRouteNode: notFoundRoute || void 0,\n\t\t\t\t\t\t\toriginalPath: currentPath\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tupdateState(currentPath, {\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\thasLoadedOnce: true,\n\t\t\t\t\t\tpromise: void 0\n\t\t\t\t\t});\n\t\t\t\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\t\t\t\tpath: currentPath,\n\t\t\t\t\t\tstartTime,\n\t\t\t\t\t\tmoduleLoadTime,\n\t\t\t\t\t\texecutionTime,\n\t\t\t\t\t\ttotalTime,\n\t\t\t\t\t\tsource: \"initial\"\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconsole.error(`[one] native loader error for ${currentPath}:`, e instanceof Error ? e.message : e, `url: ${nativeLoaderJSUrl}`);\n\t\t\t\t\tvar totalTime1 = performance.now() - startTime;\n\t\t\t\t\tupdateState(currentPath, {\n\t\t\t\t\t\tdata: {},\n\t\t\t\t\t\tpromise: void 0\n\t\t\t\t\t});\n\t\t\t\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\t\t\t\tpath: currentPath,\n\t\t\t\t\t\tstartTime,\n\t\t\t\t\t\ttotalTime: totalTime1,\n\t\t\t\t\t\terror: e instanceof Error ? e.message : String(e),\n\t\t\t\t\t\tsource: \"initial\"\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tvar totalTime3 = performance.now() - startTime;\n\t\t\t\tupdateState(currentPath, {\n\t\t\t\t\terror: err,\n\t\t\t\t\tpromise: void 0\n\t\t\t\t});\n\t\t\t\trecordLoaderTiming === null || recordLoaderTiming === void 0 || recordLoaderTiming({\n\t\t\t\t\tpath: currentPath,\n\t\t\t\t\tstartTime,\n\t\t\t\t\ttotalTime: totalTime3,\n\t\t\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\t\t\tsource: \"initial\"\n\t\t\t\t});\n\t\t\t}\n\t\t}();\n\t}\n\tif (loaderStateEntry.error && !loaderStateEntry.hasLoadedOnce) throw loaderStateEntry.error;\n\tif (loaderStateEntry.data === void 0 && loaderStateEntry.promise && !loaderStateEntry.hasLoadedOnce) throw loaderStateEntry.promise;\n\treturn {\n\t\tdata: loaderStateEntry.data,\n\t\trefetch,\n\t\tstate: loaderStateEntry.state\n\t};\n}\nfunction useLoader(loader) {\n\tvar { data } = useLoaderState(loader);\n\treturn data;\n}\nvar results = /* @__PURE__ */ new Map();\nvar started = /* @__PURE__ */ new Map();\nvar USE_ASYNC_FN_CACHE_MAX = 100;\nfunction setBoundedResults(key, value) {\n\tif (results.size >= USE_ASYNC_FN_CACHE_MAX && !results.has(key)) {\n\t\tvar firstKey = results.keys().next().value;\n\t\tif (firstKey !== void 0) {\n\t\t\tresults.delete(firstKey);\n\t\t\tstarted.delete(firstKey);\n\t\t}\n\t}\n\tresults.set(key, value);\n}\nfunction resetLoaderState() {\n\tresults.clear();\n\tstarted.clear();\n}\nfunction useAsyncFn(val, props) {\n\tvar key = (val ? weakKey(val) : \"\") + JSON.stringify(props);\n\tif (val) {\n\t\tif (!started.get(key)) {\n\t\t\tstarted.set(key, true);\n\t\t\tvar next = val(props);\n\t\t\tif (next instanceof Promise) next = next.then(function(final) {\n\t\t\t\tsetBoundedResults(key, final);\n\t\t\t}).catch(function(err) {\n\t\t\t\tconsole.error(`Error running loader()`, err);\n\t\t\t\tsetBoundedResults(key, void 0);\n\t\t\t});\n\t\t\tsetBoundedResults(key, next);\n\t\t}\n\t}\n\tvar current = results.get(key);\n\tif (current instanceof Promise) throw current;\n\treturn current;\n}\n\nexport { getLoaderTimingHistory, refetchLoader, refetchMatchLoader, resetLoaderState, setSSRLoaderData, useLoader, useLoaderState };"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { CSS_PRELOAD_JS_POSTFIX, LOADER_JS_POSTFIX, LOADER_JS_POSTFIX_REGEX, PRELOAD_JS_POSTFIX, isNative } from "../constants.mjs";
1
+ import { CSS_PRELOAD_JS_POSTFIX, LOADER_JS_POSTFIX, LOADER_JS_POSTFIX_REGEX, NATIVE_LOADER_JS_POSTFIX_UNCACHED, PRELOAD_JS_POSTFIX, isNative } from "../constants.mjs";
2
2
  import { getURL } from "../getURL.mjs";
3
3
  import { removeSearch } from "./removeSearch.mjs";
4
4
 
@@ -22,14 +22,18 @@ function getPreloadCSSPath(currentPath) {
22
22
  function getLoaderPath(currentPath, includeUrl = isNative, cacheBust) {
23
23
  const baseURL = includeUrl ? getURL() : "";
24
24
  const devPath = process.env.NODE_ENV === "development" ? "/_one" : "";
25
- const currentPathUrl = new URL(currentPath, "http://example.com");
26
- const cleanedUrl = cleanUrl(currentPathUrl.pathname.slice(1));
27
25
  const cacheBustSegment = cacheBust ? `_refetch_${cacheBust}_` : "";
28
- return `${baseURL}${devPath}/assets/${cleanedUrl}${cacheBustSegment}${LOADER_JS_POSTFIX}`;
26
+ return `${baseURL}${devPath}/assets/${getLoaderFileStem(currentPath)}${cacheBustSegment}${LOADER_JS_POSTFIX}`;
27
+ }
28
+ function getNativeLoaderPath(currentPath) {
29
+ return `${getURL()}/assets/${getLoaderFileStem(currentPath)}${NATIVE_LOADER_JS_POSTFIX_UNCACHED}`;
30
+ }
31
+ function getLoaderFileStem(currentPath) {
32
+ return cleanUrl(new URL(currentPath, "http://example.com").pathname.slice(1));
29
33
  }
30
34
  function getPathFromLoaderPath(loaderPath) {
31
35
  return decodeReservedFilenameChars(loaderPath.replace(LOADER_JS_POSTFIX_REGEX, "").replace(/^(\/_one)?\/assets/, "").replace(/_refetch_\d+_?/, "").replace(/__|_/g, (match) => match === "__" ? "_" : "/"));
32
36
  }
33
37
 
34
- export { decodeReservedFilenameChars, encodeReservedFilenameChars, getLoaderPath, getPathFromLoaderPath, getPreloadCSSPath, getPreloadPath };
38
+ export { decodeReservedFilenameChars, encodeReservedFilenameChars, getLoaderPath, getNativeLoaderPath, getPathFromLoaderPath, getPreloadCSSPath, getPreloadPath };
35
39
  //# sourceMappingURL=cleanUrl.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cleanUrl.js","names":[],"sources":["esm/utils/cleanUrl.js"],"sourcesContent":["import {\n CSS_PRELOAD_JS_POSTFIX,\n isNative,\n LOADER_JS_POSTFIX,\n LOADER_JS_POSTFIX_REGEX,\n PRELOAD_JS_POSTFIX\n} from \"../constants\";\nimport { getURL } from \"../getURL\";\nimport { removeSearch } from \"./removeSearch\";\nfunction encodeReservedFilenameChars(path) {\n return path.replaceAll(\"=\", \"=3d\").replace(\n /[<>:\"|?*]/g,\n (char) => `=${char.charCodeAt(0).toString(16).padStart(2, \"0\")}`\n );\n}\nfunction decodeReservedFilenameChars(path) {\n return path.replace(\n /=([0-9a-f]{2})/g,\n (_match, hexCode) => String.fromCharCode(Number.parseInt(hexCode, 16))\n );\n}\nfunction cleanUrl(path) {\n return encodeReservedFilenameChars(\n removeSearch(path).replace(/\\/$/, \"\")\n // remove trailing slash before encoding\n ).replaceAll(\"_\", \"__\").replaceAll(\"/\", \"_\");\n}\nconst isClient = typeof window !== \"undefined\";\nconst clientSideURL = isClient ? getURL() : \"\";\nfunction getPreloadPath(currentPath) {\n return `${clientSideURL}/assets/${cleanUrl(currentPath.slice(1))}${PRELOAD_JS_POSTFIX}`;\n}\nfunction getPreloadCSSPath(currentPath) {\n return `${clientSideURL}/assets/${cleanUrl(currentPath.slice(1))}${CSS_PRELOAD_JS_POSTFIX}`;\n}\nfunction getLoaderPath(currentPath, includeUrl = isNative, cacheBust) {\n const baseURL = includeUrl ? getURL() : \"\";\n const devPath = process.env.NODE_ENV === \"development\" ? \"/_one\" : \"\";\n const currentPathUrl = new URL(currentPath, \"http://example.com\");\n const cleanedUrl = cleanUrl(currentPathUrl.pathname.slice(1));\n const cacheBustSegment = cacheBust ? `_refetch_${cacheBust}_` : \"\";\n return `${baseURL}${devPath}/assets/${cleanedUrl}${cacheBustSegment}${LOADER_JS_POSTFIX}`;\n}\nfunction getPathFromLoaderPath(loaderPath) {\n return decodeReservedFilenameChars(\n loaderPath.replace(LOADER_JS_POSTFIX_REGEX, \"\").replace(/^(\\/_one)?\\/assets/, \"\").replace(/_refetch_\\d+_?/, \"\").replace(/__|_/g, (match) => match === \"__\" ? \"_\" : \"/\")\n );\n}\nexport {\n decodeReservedFilenameChars,\n encodeReservedFilenameChars,\n getLoaderPath,\n getPathFromLoaderPath,\n getPreloadCSSPath,\n getPreloadPath\n};\n//# sourceMappingURL=cleanUrl.js.map\n"],"mappings":";;;;;AASA,SAAS,4BAA4B,MAAM;CACzC,OAAO,KAAK,WAAW,KAAK,KAAK,CAAC,CAAC,QACjC,eACC,SAAS,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG,GAC/D;AACF;AACA,SAAS,4BAA4B,MAAM;CACzC,OAAO,KAAK,QACV,oBACC,QAAQ,YAAY,OAAO,aAAa,OAAO,SAAS,SAAS,EAAE,CAAC,CACvE;AACF;AACA,SAAS,SAAS,MAAM;CACtB,OAAO,4BACL,aAAa,IAAI,CAAC,CAAC,QAAQ,OAAO,EAAE,CAEtC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,WAAW,KAAK,GAAG;AAC7C;AACA,MAAM,WAAW,OAAO,WAAW;AACnC,MAAM,gBAAgB,WAAW,OAAO,IAAI;AAC5C,SAAS,eAAe,aAAa;CACnC,OAAO,GAAG,cAAc,UAAU,SAAS,YAAY,MAAM,CAAC,CAAC,IAAI;AACrE;AACA,SAAS,kBAAkB,aAAa;CACtC,OAAO,GAAG,cAAc,UAAU,SAAS,YAAY,MAAM,CAAC,CAAC,IAAI;AACrE;AACA,SAAS,cAAc,aAAa,aAAa,UAAU,WAAW;CACpE,MAAM,UAAU,aAAa,OAAO,IAAI;CACxC,MAAM,UAAU,QAAQ,IAAI,aAAa,gBAAgB,UAAU;CACnE,MAAM,iBAAiB,IAAI,IAAI,aAAa,oBAAoB;CAChE,MAAM,aAAa,SAAS,eAAe,SAAS,MAAM,CAAC,CAAC;CAC5D,MAAM,mBAAmB,YAAY,YAAY,UAAU,KAAK;CAChE,OAAO,GAAG,UAAU,QAAQ,UAAU,aAAa,mBAAmB;AACxE;AACA,SAAS,sBAAsB,YAAY;CACzC,OAAO,4BACL,WAAW,QAAQ,yBAAyB,EAAE,CAAC,CAAC,QAAQ,sBAAsB,EAAE,CAAC,CAAC,QAAQ,kBAAkB,EAAE,CAAC,CAAC,QAAQ,UAAU,UAAU,UAAU,OAAO,MAAM,GAAG,CACxK;AACF"}
1
+ {"version":3,"file":"cleanUrl.js","names":[],"sources":["esm/utils/cleanUrl.js"],"sourcesContent":["import {\n CSS_PRELOAD_JS_POSTFIX,\n isNative,\n LOADER_JS_POSTFIX,\n LOADER_JS_POSTFIX_REGEX,\n NATIVE_LOADER_JS_POSTFIX_UNCACHED,\n PRELOAD_JS_POSTFIX\n} from \"../constants\";\nimport { getURL } from \"../getURL\";\nimport { removeSearch } from \"./removeSearch\";\nfunction encodeReservedFilenameChars(path) {\n return path.replaceAll(\"=\", \"=3d\").replace(\n /[<>:\"|?*]/g,\n (char) => `=${char.charCodeAt(0).toString(16).padStart(2, \"0\")}`\n );\n}\nfunction decodeReservedFilenameChars(path) {\n return path.replace(\n /=([0-9a-f]{2})/g,\n (_match, hexCode) => String.fromCharCode(Number.parseInt(hexCode, 16))\n );\n}\nfunction cleanUrl(path) {\n return encodeReservedFilenameChars(\n removeSearch(path).replace(/\\/$/, \"\")\n // remove trailing slash before encoding\n ).replaceAll(\"_\", \"__\").replaceAll(\"/\", \"_\");\n}\nconst isClient = typeof window !== \"undefined\";\nconst clientSideURL = isClient ? getURL() : \"\";\nfunction getPreloadPath(currentPath) {\n return `${clientSideURL}/assets/${cleanUrl(currentPath.slice(1))}${PRELOAD_JS_POSTFIX}`;\n}\nfunction getPreloadCSSPath(currentPath) {\n return `${clientSideURL}/assets/${cleanUrl(currentPath.slice(1))}${CSS_PRELOAD_JS_POSTFIX}`;\n}\nfunction getLoaderPath(currentPath, includeUrl = isNative, cacheBust) {\n const baseURL = includeUrl ? getURL() : \"\";\n const devPath = process.env.NODE_ENV === \"development\" ? \"/_one\" : \"\";\n const cacheBustSegment = cacheBust ? `_refetch_${cacheBust}_` : \"\";\n return `${baseURL}${devPath}/assets/${getLoaderFileStem(currentPath)}${cacheBustSegment}${LOADER_JS_POSTFIX}`;\n}\nfunction getNativeLoaderPath(currentPath) {\n return `${getURL()}/assets/${getLoaderFileStem(currentPath)}${NATIVE_LOADER_JS_POSTFIX_UNCACHED}`;\n}\nfunction getLoaderFileStem(currentPath) {\n return cleanUrl(new URL(currentPath, \"http://example.com\").pathname.slice(1));\n}\nfunction getPathFromLoaderPath(loaderPath) {\n return decodeReservedFilenameChars(\n loaderPath.replace(LOADER_JS_POSTFIX_REGEX, \"\").replace(/^(\\/_one)?\\/assets/, \"\").replace(/_refetch_\\d+_?/, \"\").replace(/__|_/g, (match) => match === \"__\" ? \"_\" : \"/\")\n );\n}\nexport {\n decodeReservedFilenameChars,\n encodeReservedFilenameChars,\n getLoaderPath,\n getNativeLoaderPath,\n getPathFromLoaderPath,\n getPreloadCSSPath,\n getPreloadPath\n};\n//# sourceMappingURL=cleanUrl.js.map\n"],"mappings":";;;;;AAUA,SAAS,4BAA4B,MAAM;CACzC,OAAO,KAAK,WAAW,KAAK,KAAK,CAAC,CAAC,QACjC,eACC,SAAS,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG,GAC/D;AACF;AACA,SAAS,4BAA4B,MAAM;CACzC,OAAO,KAAK,QACV,oBACC,QAAQ,YAAY,OAAO,aAAa,OAAO,SAAS,SAAS,EAAE,CAAC,CACvE;AACF;AACA,SAAS,SAAS,MAAM;CACtB,OAAO,4BACL,aAAa,IAAI,CAAC,CAAC,QAAQ,OAAO,EAAE,CAEtC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,WAAW,KAAK,GAAG;AAC7C;AACA,MAAM,WAAW,OAAO,WAAW;AACnC,MAAM,gBAAgB,WAAW,OAAO,IAAI;AAC5C,SAAS,eAAe,aAAa;CACnC,OAAO,GAAG,cAAc,UAAU,SAAS,YAAY,MAAM,CAAC,CAAC,IAAI;AACrE;AACA,SAAS,kBAAkB,aAAa;CACtC,OAAO,GAAG,cAAc,UAAU,SAAS,YAAY,MAAM,CAAC,CAAC,IAAI;AACrE;AACA,SAAS,cAAc,aAAa,aAAa,UAAU,WAAW;CACpE,MAAM,UAAU,aAAa,OAAO,IAAI;CACxC,MAAM,UAAU,QAAQ,IAAI,aAAa,gBAAgB,UAAU;CACnE,MAAM,mBAAmB,YAAY,YAAY,UAAU,KAAK;CAChE,OAAO,GAAG,UAAU,QAAQ,UAAU,kBAAkB,WAAW,IAAI,mBAAmB;AAC5F;AACA,SAAS,oBAAoB,aAAa;CACxC,OAAO,GAAG,OAAO,EAAE,UAAU,kBAAkB,WAAW,IAAI;AAChE;AACA,SAAS,kBAAkB,aAAa;CACtC,OAAO,SAAS,IAAI,IAAI,aAAa,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC;AAC9E;AACA,SAAS,sBAAsB,YAAY;CACzC,OAAO,4BACL,WAAW,QAAQ,yBAAyB,EAAE,CAAC,CAAC,QAAQ,sBAAsB,EAAE,CAAC,CAAC,QAAQ,kBAAkB,EAAE,CAAC,CAAC,QAAQ,UAAU,UAAU,UAAU,OAAO,MAAM,GAAG,CACxK;AACF"}
@@ -1,4 +1,4 @@
1
- import { CSS_PRELOAD_JS_POSTFIX, LOADER_JS_POSTFIX, LOADER_JS_POSTFIX_REGEX, PRELOAD_JS_POSTFIX, isNative } from "../constants.native.js";
1
+ import { CSS_PRELOAD_JS_POSTFIX, LOADER_JS_POSTFIX, LOADER_JS_POSTFIX_REGEX, NATIVE_LOADER_JS_POSTFIX_UNCACHED, PRELOAD_JS_POSTFIX, isNative } from "../constants.native.js";
2
2
  import { getURL } from "../getURL.native.js";
3
3
  import { removeSearch } from "./removeSearch.native.js";
4
4
 
@@ -27,10 +27,14 @@ function getLoaderPath(currentPath) {
27
27
  var includeUrl = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : isNative, cacheBust = arguments.length > 2 ? arguments[2] : void 0;
28
28
  var baseURL = includeUrl ? getURL() : "";
29
29
  var devPath = process.env.NODE_ENV === "development" ? "/_one" : "";
30
- var currentPathUrl = new URL(currentPath, "http://example.com");
31
- var cleanedUrl = cleanUrl(currentPathUrl.pathname.slice(1));
32
30
  var cacheBustSegment = cacheBust ? `_refetch_${cacheBust}_` : "";
33
- return `${baseURL}${devPath}/assets/${cleanedUrl}${cacheBustSegment}${LOADER_JS_POSTFIX}`;
31
+ return `${baseURL}${devPath}/assets/${getLoaderFileStem(currentPath)}${cacheBustSegment}${LOADER_JS_POSTFIX}`;
32
+ }
33
+ function getNativeLoaderPath(currentPath) {
34
+ return `${getURL()}/assets/${getLoaderFileStem(currentPath)}${NATIVE_LOADER_JS_POSTFIX_UNCACHED}`;
35
+ }
36
+ function getLoaderFileStem(currentPath) {
37
+ return cleanUrl(new URL(currentPath, "http://example.com").pathname.slice(1));
34
38
  }
35
39
  function getPathFromLoaderPath(loaderPath) {
36
40
  return decodeReservedFilenameChars(loaderPath.replace(LOADER_JS_POSTFIX_REGEX, "").replace(/^(\/_one)?\/assets/, "").replace(/_refetch_\d+_?/, "").replace(/__|_/g, function(match) {
@@ -38,5 +42,5 @@ function getPathFromLoaderPath(loaderPath) {
38
42
  }));
39
43
  }
40
44
 
41
- export { decodeReservedFilenameChars, encodeReservedFilenameChars, getLoaderPath, getPathFromLoaderPath, getPreloadCSSPath, getPreloadPath };
45
+ export { decodeReservedFilenameChars, encodeReservedFilenameChars, getLoaderPath, getNativeLoaderPath, getPathFromLoaderPath, getPreloadCSSPath, getPreloadPath };
42
46
  //# sourceMappingURL=cleanUrl.native.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cleanUrl.native.js","names":[],"sources":["esm/utils/cleanUrl.native.js"],"sourcesContent":["import { CSS_PRELOAD_JS_POSTFIX, isNative, LOADER_JS_POSTFIX, LOADER_JS_POSTFIX_REGEX, PRELOAD_JS_POSTFIX } from \"../constants\";\nimport { getURL } from \"../getURL\";\nimport { removeSearch } from \"./removeSearch\";\nfunction encodeReservedFilenameChars(path) {\n return path.replaceAll(\"=\", \"=3d\").replace(/[<>:\"|?*]/g, function(char) {\n return `=${char.charCodeAt(0).toString(16).padStart(2, \"0\")}`;\n });\n}\nfunction decodeReservedFilenameChars(path) {\n return path.replace(/=([0-9a-f]{2})/g, function(_match, hexCode) {\n return String.fromCharCode(Number.parseInt(hexCode, 16));\n });\n}\nfunction cleanUrl(path) {\n return encodeReservedFilenameChars(removeSearch(path).replace(/\\/$/, \"\")).replaceAll(\"_\", \"__\").replaceAll(\"/\", \"_\");\n}\nvar isClient = typeof window !== \"undefined\";\nvar clientSideURL = isClient ? getURL() : \"\";\nfunction getPreloadPath(currentPath) {\n return `${clientSideURL}/assets/${cleanUrl(currentPath.slice(1))}${PRELOAD_JS_POSTFIX}`;\n}\nfunction getPreloadCSSPath(currentPath) {\n return `${clientSideURL}/assets/${cleanUrl(currentPath.slice(1))}${CSS_PRELOAD_JS_POSTFIX}`;\n}\nfunction getLoaderPath(currentPath) {\n var includeUrl = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : isNative, cacheBust = arguments.length > 2 ? arguments[2] : void 0;\n var baseURL = includeUrl ? getURL() : \"\";\n var devPath = process.env.NODE_ENV === \"development\" ? \"/_one\" : \"\";\n var currentPathUrl = new URL(currentPath, \"http://example.com\");\n var cleanedUrl = cleanUrl(currentPathUrl.pathname.slice(1));\n var cacheBustSegment = cacheBust ? `_refetch_${cacheBust}_` : \"\";\n return `${baseURL}${devPath}/assets/${cleanedUrl}${cacheBustSegment}${LOADER_JS_POSTFIX}`;\n}\nfunction getPathFromLoaderPath(loaderPath) {\n return decodeReservedFilenameChars(loaderPath.replace(LOADER_JS_POSTFIX_REGEX, \"\").replace(/^(\\/_one)?\\/assets/, \"\").replace(/_refetch_\\d+_?/, \"\").replace(/__|_/g, function(match) {\n return match === \"__\" ? \"_\" : \"/\";\n }));\n}\nexport {\n decodeReservedFilenameChars,\n encodeReservedFilenameChars,\n getLoaderPath,\n getPathFromLoaderPath,\n getPreloadCSSPath,\n getPreloadPath\n};\n//# sourceMappingURL=cleanUrl.js.map\n"],"mappings":";;;;;AAGA,SAAS,4BAA4B,MAAM;CACzC,OAAO,KAAK,WAAW,KAAK,KAAK,CAAC,CAAC,QAAQ,cAAc,SAAS,MAAM;EACtE,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG;CAC5D,CAAC;AACH;AACA,SAAS,4BAA4B,MAAM;CACzC,OAAO,KAAK,QAAQ,mBAAmB,SAAS,QAAQ,SAAS;EAC/D,OAAO,OAAO,aAAa,OAAO,SAAS,SAAS,EAAE,CAAC;CACzD,CAAC;AACH;AACA,SAAS,SAAS,MAAM;CACtB,OAAO,4BAA4B,aAAa,IAAI,CAAC,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,WAAW,KAAK,GAAG;AACrH;AACA,IAAI,WAAW,OAAO,WAAW;AACjC,IAAI,gBAAgB,WAAW,OAAO,IAAI;AAC1C,SAAS,eAAe,aAAa;CACnC,OAAO,GAAG,cAAc,UAAU,SAAS,YAAY,MAAM,CAAC,CAAC,IAAI;AACrE;AACA,SAAS,kBAAkB,aAAa;CACtC,OAAO,GAAG,cAAc,UAAU,SAAS,YAAY,MAAM,CAAC,CAAC,IAAI;AACrE;AACA,SAAS,cAAc,aAAa;CAClC,IAAI,aAAa,UAAU,SAAS,KAAK,UAAU,OAAO,KAAK,IAAI,UAAU,KAAK,UAAU,YAAY,UAAU,SAAS,IAAI,UAAU,KAAK,KAAK;CACnJ,IAAI,UAAU,aAAa,OAAO,IAAI;CACtC,IAAI,UAAU,QAAQ,IAAI,aAAa,gBAAgB,UAAU;CACjE,IAAI,iBAAiB,IAAI,IAAI,aAAa,oBAAoB;CAC9D,IAAI,aAAa,SAAS,eAAe,SAAS,MAAM,CAAC,CAAC;CAC1D,IAAI,mBAAmB,YAAY,YAAY,UAAU,KAAK;CAC9D,OAAO,GAAG,UAAU,QAAQ,UAAU,aAAa,mBAAmB;AACxE;AACA,SAAS,sBAAsB,YAAY;CACzC,OAAO,4BAA4B,WAAW,QAAQ,yBAAyB,EAAE,CAAC,CAAC,QAAQ,sBAAsB,EAAE,CAAC,CAAC,QAAQ,kBAAkB,EAAE,CAAC,CAAC,QAAQ,SAAS,SAAS,OAAO;EAClL,OAAO,UAAU,OAAO,MAAM;CAChC,CAAC,CAAC;AACJ"}
1
+ {"version":3,"file":"cleanUrl.native.js","names":[],"sources":["esm/utils/cleanUrl.native.js"],"sourcesContent":["import { CSS_PRELOAD_JS_POSTFIX, isNative, LOADER_JS_POSTFIX, LOADER_JS_POSTFIX_REGEX, NATIVE_LOADER_JS_POSTFIX_UNCACHED, PRELOAD_JS_POSTFIX } from \"../constants\";\nimport { getURL } from \"../getURL\";\nimport { removeSearch } from \"./removeSearch\";\nfunction encodeReservedFilenameChars(path) {\n return path.replaceAll(\"=\", \"=3d\").replace(/[<>:\"|?*]/g, function(char) {\n return `=${char.charCodeAt(0).toString(16).padStart(2, \"0\")}`;\n });\n}\nfunction decodeReservedFilenameChars(path) {\n return path.replace(/=([0-9a-f]{2})/g, function(_match, hexCode) {\n return String.fromCharCode(Number.parseInt(hexCode, 16));\n });\n}\nfunction cleanUrl(path) {\n return encodeReservedFilenameChars(removeSearch(path).replace(/\\/$/, \"\")).replaceAll(\"_\", \"__\").replaceAll(\"/\", \"_\");\n}\nvar isClient = typeof window !== \"undefined\";\nvar clientSideURL = isClient ? getURL() : \"\";\nfunction getPreloadPath(currentPath) {\n return `${clientSideURL}/assets/${cleanUrl(currentPath.slice(1))}${PRELOAD_JS_POSTFIX}`;\n}\nfunction getPreloadCSSPath(currentPath) {\n return `${clientSideURL}/assets/${cleanUrl(currentPath.slice(1))}${CSS_PRELOAD_JS_POSTFIX}`;\n}\nfunction getLoaderPath(currentPath) {\n var includeUrl = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : isNative, cacheBust = arguments.length > 2 ? arguments[2] : void 0;\n var baseURL = includeUrl ? getURL() : \"\";\n var devPath = process.env.NODE_ENV === \"development\" ? \"/_one\" : \"\";\n var cacheBustSegment = cacheBust ? `_refetch_${cacheBust}_` : \"\";\n return `${baseURL}${devPath}/assets/${getLoaderFileStem(currentPath)}${cacheBustSegment}${LOADER_JS_POSTFIX}`;\n}\nfunction getNativeLoaderPath(currentPath) {\n return `${getURL()}/assets/${getLoaderFileStem(currentPath)}${NATIVE_LOADER_JS_POSTFIX_UNCACHED}`;\n}\nfunction getLoaderFileStem(currentPath) {\n return cleanUrl(new URL(currentPath, \"http://example.com\").pathname.slice(1));\n}\nfunction getPathFromLoaderPath(loaderPath) {\n return decodeReservedFilenameChars(loaderPath.replace(LOADER_JS_POSTFIX_REGEX, \"\").replace(/^(\\/_one)?\\/assets/, \"\").replace(/_refetch_\\d+_?/, \"\").replace(/__|_/g, function(match) {\n return match === \"__\" ? \"_\" : \"/\";\n }));\n}\nexport {\n decodeReservedFilenameChars,\n encodeReservedFilenameChars,\n getLoaderPath,\n getNativeLoaderPath,\n getPathFromLoaderPath,\n getPreloadCSSPath,\n getPreloadPath\n};\n//# sourceMappingURL=cleanUrl.js.map\n"],"mappings":";;;;;AAGA,SAAS,4BAA4B,MAAM;CACzC,OAAO,KAAK,WAAW,KAAK,KAAK,CAAC,CAAC,QAAQ,cAAc,SAAS,MAAM;EACtE,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG;CAC5D,CAAC;AACH;AACA,SAAS,4BAA4B,MAAM;CACzC,OAAO,KAAK,QAAQ,mBAAmB,SAAS,QAAQ,SAAS;EAC/D,OAAO,OAAO,aAAa,OAAO,SAAS,SAAS,EAAE,CAAC;CACzD,CAAC;AACH;AACA,SAAS,SAAS,MAAM;CACtB,OAAO,4BAA4B,aAAa,IAAI,CAAC,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,WAAW,KAAK,GAAG;AACrH;AACA,IAAI,WAAW,OAAO,WAAW;AACjC,IAAI,gBAAgB,WAAW,OAAO,IAAI;AAC1C,SAAS,eAAe,aAAa;CACnC,OAAO,GAAG,cAAc,UAAU,SAAS,YAAY,MAAM,CAAC,CAAC,IAAI;AACrE;AACA,SAAS,kBAAkB,aAAa;CACtC,OAAO,GAAG,cAAc,UAAU,SAAS,YAAY,MAAM,CAAC,CAAC,IAAI;AACrE;AACA,SAAS,cAAc,aAAa;CAClC,IAAI,aAAa,UAAU,SAAS,KAAK,UAAU,OAAO,KAAK,IAAI,UAAU,KAAK,UAAU,YAAY,UAAU,SAAS,IAAI,UAAU,KAAK,KAAK;CACnJ,IAAI,UAAU,aAAa,OAAO,IAAI;CACtC,IAAI,UAAU,QAAQ,IAAI,aAAa,gBAAgB,UAAU;CACjE,IAAI,mBAAmB,YAAY,YAAY,UAAU,KAAK;CAC9D,OAAO,GAAG,UAAU,QAAQ,UAAU,kBAAkB,WAAW,IAAI,mBAAmB;AAC5F;AACA,SAAS,oBAAoB,aAAa;CACxC,OAAO,GAAG,OAAO,EAAE,UAAU,kBAAkB,WAAW,IAAI;AAChE;AACA,SAAS,kBAAkB,aAAa;CACtC,OAAO,SAAS,IAAI,IAAI,aAAa,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC;AAC9E;AACA,SAAS,sBAAsB,YAAY;CACzC,OAAO,4BAA4B,WAAW,QAAQ,yBAAyB,EAAE,CAAC,CAAC,QAAQ,sBAAsB,EAAE,CAAC,CAAC,QAAQ,kBAAkB,EAAE,CAAC,CAAC,QAAQ,SAAS,SAAS,OAAO;EAClL,OAAO,UAAU,OAAO,MAAM;CAChC,CAAC,CAAC;AACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "one",
3
- "version": "2.8.0",
3
+ "version": "2.8.1",
4
4
  "description": "One is a React framework for web, iOS, and Android apps.",
5
5
  "license": "BSD-3-Clause",
6
6
  "sideEffects": [
@@ -231,15 +231,15 @@
231
231
  "@react-navigation/native-stack": "8.0.0-alpha.59",
232
232
  "@react-navigation/routers": "8.0.0-alpha.21",
233
233
  "@ungap/structured-clone": "^1.2.0",
234
- "@vxrn/color-scheme": "2.8.0",
235
- "@vxrn/compiler": "2.8.0",
236
- "@vxrn/resolve": "2.8.0",
237
- "@vxrn/tslib-lite": "2.8.0",
238
- "@vxrn/use-isomorphic-layout-effect": "2.8.0",
239
- "@vxrn/utils": "2.8.0",
234
+ "@vxrn/color-scheme": "2.8.1",
235
+ "@vxrn/compiler": "2.8.1",
236
+ "@vxrn/resolve": "2.8.1",
237
+ "@vxrn/tslib-lite": "2.8.1",
238
+ "@vxrn/use-isomorphic-layout-effect": "2.8.1",
239
+ "@vxrn/utils": "2.8.1",
240
240
  "citty": "^0.1.6",
241
241
  "core-js": "^3.38.1",
242
- "create-vxrn": "2.8.0",
242
+ "create-vxrn": "2.8.1",
243
243
  "escape-string-regexp": "^5.0.0",
244
244
  "fast-deep-equal": "^3.1.3",
245
245
  "fast-glob": "^3.3.3",
@@ -261,7 +261,7 @@
261
261
  "tsconfig-paths": "^4",
262
262
  "use-latest-callback": "^0.3.5",
263
263
  "vite": "^8.2.2",
264
- "vxrn": "2.8.0",
264
+ "vxrn": "2.8.1",
265
265
  "web-streams-polyfill": "^4.3.0",
266
266
  "ws": "^8.21.0",
267
267
  "xxhashjs": "^0.2.2"
@@ -291,7 +291,7 @@
291
291
  "@babel/types": "^7.28.5",
292
292
  "babel-dead-code-elimination": "1.0.10",
293
293
  "babel-plugin-module-resolver": "^5.0.2",
294
- "@vxrn/vite-plugin-metro": "2.8.0"
294
+ "@vxrn/vite-plugin-metro": "2.8.1"
295
295
  },
296
296
  "peerDependenciesMeta": {
297
297
  "@react-native/babel-preset": {
@@ -365,7 +365,7 @@
365
365
  "@types/react-dom": "^19.3.0",
366
366
  "@types/react-test-renderer": "^19.1.0",
367
367
  "@types/xxhashjs": "^0.2.4",
368
- "@vxrn/emitter": "2.8.0",
368
+ "@vxrn/emitter": "2.8.1",
369
369
  "depcheck": "^1.4.7",
370
370
  "esbuild": "^0.25.12",
371
371
  "immer": "^10.1.1",
@@ -393,7 +393,7 @@
393
393
  "@babel/types": "^7.28.5",
394
394
  "babel-dead-code-elimination": "1.0.10",
395
395
  "babel-plugin-module-resolver": "^5.0.2",
396
- "@vxrn/vite-plugin-metro": "2.8.0"
396
+ "@vxrn/vite-plugin-metro": "2.8.1"
397
397
  },
398
398
  "publishConfig": {
399
399
  "access": "public"
@@ -550,7 +550,7 @@
550
550
  }
551
551
  }
552
552
  },
553
- "releaseSourceCommit": "9435b113ae773ceebeef9e0a7144d5401b2c986f",
553
+ "releaseSourceCommit": "9c7de1d429903229d3a6ef9a741c5ec57102ba6b",
554
554
  "repository": {
555
555
  "type": "git",
556
556
  "url": "git+https://github.com/onejs/one.git",
package/src/cli/build.ts CHANGED
@@ -212,7 +212,7 @@ export async function build(args: {
212
212
  process.env.ONE_BUILD_CONCURRENCY ?? oneOptions.build?.concurrency
213
213
  const buildConcurrency =
214
214
  configuredBuildConcurrency === undefined
215
- ? Math.max(1, Math.min(cpus().length, 8))
215
+ ? Math.max(1, Math.min(cpus().length, 2))
216
216
  : Number(configuredBuildConcurrency)
217
217
  if (!Number.isInteger(buildConcurrency) || buildConcurrency < 1) {
218
218
  throw new Error(
@@ -2,7 +2,7 @@ import { join } from 'node:path'
2
2
  import FSExtra from 'fs-extra'
3
3
  import { normalizePath } from 'vite'
4
4
  import * as constants from '../constants'
5
- import { LOADER_JS_POSTFIX_UNCACHED } from '../constants'
5
+ import { NATIVE_LOADER_JS_POSTFIX_UNCACHED } from '../constants'
6
6
  import type { LoaderProps } from '../types'
7
7
  import {
8
8
  encodeReservedFilenameChars,
@@ -270,9 +270,10 @@ prefetchCSS()
270
270
  const loaderPartialPath = join(clientDir, urlPathToFilePath(getLoaderPath(path)))
271
271
 
272
272
  // uncached native loader path for native prod (metro can't inline cache keys)
273
- const uncachedNativePath = loaderPartialPath
274
- .replace(constants.LOADER_JS_POSTFIX, LOADER_JS_POSTFIX_UNCACHED)
275
- .replace(/\.js$/, '.native.js')
273
+ const uncachedNativePath = loaderPartialPath.replace(
274
+ constants.LOADER_JS_POSTFIX,
275
+ NATIVE_LOADER_JS_POSTFIX_UNCACHED
276
+ )
276
277
 
277
278
  if (loaderRedirectInfo) {
278
279
  // generate a static redirect loader — the client detects __oneRedirect
package/src/constants.ts CHANGED
@@ -37,6 +37,8 @@ export const hasWebHistory =
37
37
  export let CACHE_KEY = `${process.env.ONE_CACHE_KEY ?? Math.round(Math.random() * 100_000_000)}`
38
38
 
39
39
  export const LOADER_JS_POSTFIX_UNCACHED = `_vxrn_loader.js`
40
+ // native prod reads this copy since metro can't inline the cache key
41
+ export const NATIVE_LOADER_JS_POSTFIX_UNCACHED = `_vxrn_loader.native.js`
40
42
  export const LOADER_JS_POSTFIX_REGEX_STRING = `_\\d+${LOADER_JS_POSTFIX_UNCACHED}$`
41
43
  export const LOADER_JS_POSTFIX_REGEX = new RegExp(LOADER_JS_POSTFIX_REGEX_STRING)
42
44
  export let LOADER_JS_POSTFIX = `_${CACHE_KEY}${LOADER_JS_POSTFIX_UNCACHED}`
@@ -309,7 +309,10 @@ export function useLinking(
309
309
  if (historyState) {
310
310
  const { __tempLocation, __tempKey } = historyState
311
311
  if (__tempLocation?.pathname && !__tempKey) {
312
- path = __tempLocation.pathname + (__tempLocation.search || '')
312
+ path =
313
+ __tempLocation.pathname +
314
+ (__tempLocation.search || '') +
315
+ (__tempLocation.hash || '')
313
316
  restoringFromTempLocationRef.current = true
314
317
  }
315
318
  }
@@ -87,7 +87,7 @@ function mapChildren(children: React.ReactNode): React.ReactNode {
87
87
  */
88
88
  const StackWithComposition = React.forwardRef<unknown, ComponentProps<typeof RNStack>>(
89
89
  (props, ref) => {
90
- const { children, screenOptions, ...rest } = props
90
+ const { children, screenOptions, screenLayout, ...rest } = props
91
91
  // extract Stack.Header / Stack.Toolbar from children for screenOptions
92
92
  const screenOptionsWithHeader = useMemo(() => {
93
93
  const stackHeader = Children.toArray(children).find((child) =>
@@ -132,7 +132,10 @@ const StackWithComposition = React.forwardRef<unknown, ComponentProps<typeof RNS
132
132
 
133
133
  // pre-process children to convert StackScreen to Screen
134
134
  const processedChildren = useMemo(() => mapChildren(children), [children])
135
- const navigatorProps = useMemo(() => getStackNavigatorProps(children), [children])
135
+ const navigatorProps = useMemo(
136
+ () => getStackNavigatorProps(children, screenLayout),
137
+ [children, screenLayout]
138
+ )
136
139
 
137
140
  return (
138
141
  <RNStack
@@ -0,0 +1,34 @@
1
+ import { createNativeStackNavigator } from '@react-navigation/native-stack'
2
+ import { useIsFocused } from '@react-navigation/native'
3
+ import type { ReactElement, ReactNode } from 'react'
4
+ import { SharedTransitionBoundary } from 'react-native-reanimated'
5
+
6
+ /**
7
+ * Returns a Stack navigator factory. On native this is the stock
8
+ * `@react-navigation/native-stack`; on web this is replaced via the
9
+ * `.web.ts` sibling with the headless navigator.
10
+ */
11
+ export const createStackNavigator = createNativeStackNavigator
12
+
13
+ // reanimated matches sharedTransitionTag views only inside an active boundary,
14
+ // so the focused screen's boundary is the one a push or pop morphs into
15
+ function SharedTransitionScreen({ children }: { children: ReactNode }) {
16
+ return (
17
+ <SharedTransitionBoundary isActive={useIsFocused()}>
18
+ {children}
19
+ </SharedTransitionBoundary>
20
+ )
21
+ }
22
+
23
+ export function getStackNavigatorProps<Args extends { children: ReactElement }>(
24
+ _children: ReactNode,
25
+ screenLayout?: (props: Args) => ReactElement
26
+ ) {
27
+ return {
28
+ screenLayout: (props: Args) => (
29
+ <SharedTransitionScreen>
30
+ {screenLayout ? screenLayout(props) : props.children}
31
+ </SharedTransitionScreen>
32
+ ),
33
+ }
34
+ }
@@ -5,7 +5,10 @@ import { createWebStackNavigator } from '../router/web/WebStackNavigator'
5
5
 
6
6
  export const createStackNavigator = createWebStackNavigator
7
7
 
8
- export function getStackNavigatorProps(children: ReactNode) {
8
+ export function getStackNavigatorProps(children: ReactNode, screenLayout?: unknown) {
9
9
  const headlessChildren = getCustomNavigatorChildren(children)
10
- return headlessChildren.length ? { headlessChildren } : {}
10
+ return {
11
+ ...(screenLayout ? { screenLayout } : null),
12
+ ...(headlessChildren.length ? { headlessChildren } : null),
13
+ }
11
14
  }