@multiplatform.one/router 8.5.0 → 9.0.0

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 (79) hide show
  1. package/README.md +6 -1
  2. package/dist/cjs/router/binding.cjs +35 -0
  3. package/dist/cjs/router/binding.native.js +38 -0
  4. package/dist/cjs/router/binding.native.js.map +1 -0
  5. package/dist/cjs/router/expoRouter.cjs +47 -0
  6. package/dist/cjs/router/expoRouter.native.js +50 -0
  7. package/dist/cjs/router/expoRouter.native.js.map +1 -0
  8. package/dist/cjs/router/expoRouterBinding.cjs +53 -0
  9. package/dist/cjs/router/expoRouterBinding.native.js +64 -0
  10. package/dist/cjs/router/expoRouterBinding.native.js.map +1 -0
  11. package/dist/cjs/router/index.native.js +2 -2
  12. package/dist/cjs/router/index.native.js.map +1 -1
  13. package/dist/cjs/router/{nativeFallback.cjs → nativeRouter.cjs} +28 -9
  14. package/dist/cjs/router/{nativeFallback.native.js → nativeRouter.native.js} +38 -10
  15. package/dist/cjs/router/nativeRouter.native.js.map +1 -0
  16. package/dist/esm/router/binding.mjs +9 -0
  17. package/dist/esm/router/binding.mjs.map +1 -0
  18. package/dist/esm/router/binding.native.js +9 -0
  19. package/dist/esm/router/binding.native.js.map +1 -0
  20. package/dist/esm/router/expoRouter.mjs +19 -0
  21. package/dist/esm/router/expoRouter.mjs.map +1 -0
  22. package/dist/esm/router/expoRouter.native.js +19 -0
  23. package/dist/esm/router/expoRouter.native.js.map +1 -0
  24. package/dist/esm/router/expoRouterBinding.mjs +28 -0
  25. package/dist/esm/router/expoRouterBinding.mjs.map +1 -0
  26. package/dist/esm/router/expoRouterBinding.native.js +36 -0
  27. package/dist/esm/router/expoRouterBinding.native.js.map +1 -0
  28. package/dist/esm/router/index.native.js +2 -2
  29. package/dist/esm/router/index.native.js.map +1 -1
  30. package/dist/esm/router/nativeRouter.mjs +37 -0
  31. package/dist/esm/router/nativeRouter.mjs.map +1 -0
  32. package/dist/esm/router/nativeRouter.native.js +51 -0
  33. package/dist/esm/router/nativeRouter.native.js.map +1 -0
  34. package/dist/jsx/router/binding.mjs +9 -0
  35. package/dist/jsx/router/binding.mjs.map +1 -0
  36. package/dist/jsx/router/binding.native.js +38 -0
  37. package/dist/jsx/router/binding.native.js.map +1 -0
  38. package/dist/jsx/router/expoRouter.mjs +19 -0
  39. package/dist/jsx/router/expoRouter.mjs.map +1 -0
  40. package/dist/jsx/router/expoRouter.native.js +50 -0
  41. package/dist/jsx/router/expoRouter.native.js.map +1 -0
  42. package/dist/jsx/router/expoRouterBinding.mjs +28 -0
  43. package/dist/jsx/router/expoRouterBinding.mjs.map +1 -0
  44. package/dist/jsx/router/expoRouterBinding.native.js +64 -0
  45. package/dist/jsx/router/expoRouterBinding.native.js.map +1 -0
  46. package/dist/jsx/router/index.native.js +2 -2
  47. package/dist/jsx/router/index.native.js.map +1 -1
  48. package/dist/jsx/router/nativeRouter.mjs +37 -0
  49. package/dist/jsx/router/nativeRouter.mjs.map +1 -0
  50. package/dist/jsx/router/{nativeFallback.native.js → nativeRouter.native.js} +38 -10
  51. package/dist/jsx/router/nativeRouter.native.js.map +1 -0
  52. package/package.json +21 -4
  53. package/src/router/binding.ts +25 -0
  54. package/src/router/expoRouter.spec.tsx +170 -0
  55. package/src/router/expoRouter.tsx +38 -0
  56. package/src/router/expoRouterBinding.ts +46 -0
  57. package/src/router/index.native.tsx +5 -4
  58. package/src/router/nativeRouter.tsx +45 -0
  59. package/types/router/binding.d.ts +10 -0
  60. package/types/router/binding.d.ts.map +1 -0
  61. package/types/router/expoRouter.d.ts +6 -0
  62. package/types/router/expoRouter.d.ts.map +1 -0
  63. package/types/router/expoRouterBinding.d.ts +16 -0
  64. package/types/router/expoRouterBinding.d.ts.map +1 -0
  65. package/types/router/index.native.d.ts.map +1 -1
  66. package/types/router/nativeRouter.d.ts +13 -0
  67. package/types/router/nativeRouter.d.ts.map +1 -0
  68. package/dist/cjs/router/nativeFallback.native.js.map +0 -1
  69. package/dist/esm/router/nativeFallback.mjs +0 -19
  70. package/dist/esm/router/nativeFallback.mjs.map +0 -1
  71. package/dist/esm/router/nativeFallback.native.js +0 -24
  72. package/dist/esm/router/nativeFallback.native.js.map +0 -1
  73. package/dist/jsx/router/nativeFallback.mjs +0 -19
  74. package/dist/jsx/router/nativeFallback.mjs.map +0 -1
  75. package/dist/jsx/router/nativeFallback.native.js.map +0 -1
  76. package/src/router/nativeFallback.spec.tsx +0 -46
  77. package/src/router/nativeFallback.tsx +0 -19
  78. package/types/router/nativeFallback.d.ts +0 -10
  79. package/types/router/nativeFallback.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
- import { pickRouter } from "./nativeFallback.native.js";
1
+ import { pickNativeRouter } from "./nativeRouter.native.js";
2
2
  function loadOne() {
3
3
  try {
4
4
  return require("one");
@@ -6,7 +6,7 @@ function loadOne() {
6
6
  return void 0;
7
7
  }
8
8
  }
9
- var router = pickRouter(loadOne());
9
+ var router = pickNativeRouter(loadOne());
10
10
  var Link = router.Link;
11
11
  var useParams = router.useParams;
12
12
  var useRouter = router.useRouter;
@@ -1 +1 @@
1
- {"version":3,"names":["pickRouter","loadOne","require","unused","router","Link","useParams","useRouter","useRouterPathname","usePathname","_useRouterPathname"],"sources":["../../../src/router/index.native.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,QAAkB;AAC3B,SAASC,QAAA,EAAU;EACf,IAAI;IACA,OAAOC,OAAA,CAAQ,KAAK;EACxB,SAASC,MAAA,EAAQ;IACb,OAAO;EACX;AACJ;AACA,IAAIC,MAAA,GAASJ,UAAA,CAAWC,OAAA,CAAQ,CAAC;AAC1B,IAAII,IAAA,GAAOD,MAAA,CAAOC,IAAA;AAClB,IAAIC,SAAA,GAAYF,MAAA,CAAOE,SAAA;AACvB,IAAIC,SAAA,GAAYH,MAAA,CAAOG,SAAA;AAC9B,IAAIC,iBAAA,GAAoBJ,MAAA,CAAOK,WAAA;AAOpB,SAASA,YAAA,EAAc;EAC9B,IAAI;IACA,IAAIC,kBAAA;IACJ,QAAQA,kBAAA,GAAqBF,iBAAA,CAAkB,OAAO,QAAQE,kBAAA,KAAuB,SAASA,kBAAA,GAAqB;EACvH,SAASP,MAAA,EAAQ;IACb,OAAO;EACX;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["pickNativeRouter","loadOne","require","unused","router","Link","useParams","useRouter","useRouterPathname","usePathname","_useRouterPathname"],"sources":["../../../src/router/index.native.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,gBAAA,QAAwB;AACjC,SAASC,QAAA,EAAU;EACf,IAAI;IACA,OAAOC,OAAA,CAAQ,KAAK;EACxB,SAASC,MAAA,EAAQ;IACb,OAAO;EACX;AACJ;AACA,IAAIC,MAAA,GAASJ,gBAAA,CAAiBC,OAAA,CAAQ,CAAC;AAChC,IAAII,IAAA,GAAOD,MAAA,CAAOC,IAAA;AAClB,IAAIC,SAAA,GAAYF,MAAA,CAAOE,SAAA;AACvB,IAAIC,SAAA,GAAYH,MAAA,CAAOG,SAAA;AAC9B,IAAIC,iBAAA,GAAoBJ,MAAA,CAAOK,WAAA;AAOpB,SAASA,YAAA,EAAc;EAC9B,IAAI;IACA,IAAIC,kBAAA;IACJ,QAAQA,kBAAA,GAAqBF,iBAAA,CAAkB,OAAO,QAAQE,kBAAA,KAAuB,SAASA,kBAAA,GAAqB;EACvH,SAASP,MAAA,EAAQ;IACb,OAAO;EACX;AACJ","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ import { boundRouter } from "./binding.mjs";
2
+ import { useParams, usePathname, useRouter } from "./EmptyRouter.mjs";
3
+ import { Fragment, jsx } from "react/jsx-runtime";
4
+ const FallbackLink = ({
5
+ children
6
+ }) => /* @__PURE__ */jsx(Fragment, {
7
+ children
8
+ });
9
+ FallbackLink.resolveHref = href => href.toString();
10
+ const nativeFallback = {
11
+ Link: FallbackLink,
12
+ useParams,
13
+ usePathname,
14
+ useRouter
15
+ };
16
+ function host() {
17
+ return boundRouter() ?? nativeFallback;
18
+ }
19
+ const HostLink = props => {
20
+ const Bound = host().Link;
21
+ return /* @__PURE__ */jsx(Bound, {
22
+ ...props
23
+ });
24
+ };
25
+ HostLink.resolveHref = href => host().Link.resolveHref(href);
26
+ const hostRouter = {
27
+ Link: HostLink,
28
+ useParams: () => host().useParams(),
29
+ usePathname: () => host().usePathname(),
30
+ useRouter: () => host().useRouter()
31
+ };
32
+ function pickNativeRouter(one) {
33
+ if (one?.Link && one.useParams && one.usePathname && one.useRouter) return one;
34
+ return hostRouter;
35
+ }
36
+ export { hostRouter, nativeFallback, pickNativeRouter };
37
+ //# sourceMappingURL=nativeRouter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["boundRouter","useParams","usePathname","useRouter","Fragment","jsx","FallbackLink","children","resolveHref","href","toString","nativeFallback","Link","host","HostLink","props","Bound","hostRouter","pickNativeRouter","one"],"sources":["../../../src/router/nativeRouter.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,WAAA,QAAuC;AAChD,SAASC,SAAA,EAAWC,WAAA,EAAaC,SAAA,QAAiB;AAEI,SAAAC,QAAA,EAAAC,GAAA;AAAtD,MAAMC,YAAA,GAA8BA,CAAC;EAAEC;AAAS,MAAM,eAAAF,GAAA,CAAAD,QAAA;EAAGG;AAAA,CAAS;AAElED,YAAA,CAAaE,WAAA,GAAeC,IAAA,IAASA,IAAA,CAAKC,QAAA,CAAS;AAG5C,MAAMC,cAAA,GAAgC;EAC3CC,IAAA,EAAMN,YAAA;EACNL,SAAA;EACAC,WAAA;EACAC;AACF;AAEA,SAASU,KAAA,EAAsB;EAC7B,OAAOb,WAAA,CAAY,KAAKW,cAAA;AAC1B;AAEA,MAAMG,QAAA,GAA2BC,KAAA,IAAU;EACzC,MAAMC,KAAA,GAAQH,IAAA,CAAK,EAAED,IAAA;EACrB,OAAO,eAAAP,GAAA,CAACW,KAAA;IAAO,GAAGD;EAAA,CAAO;AAC3B;AAEAD,QAAA,CAASN,WAAA,GAAeC,IAAA,IAASI,IAAA,CAAK,EAAED,IAAA,CAAKJ,WAAA,CAAYC,IAAI;AAQtD,MAAMQ,UAAA,GAA4B;EACvCL,IAAA,EAAME,QAAA;EACNb,SAAA,EAAWA,CAAA,KAAMY,IAAA,CAAK,EAAEZ,SAAA,CAAU;EAClCC,WAAA,EAAaA,CAAA,KAAMW,IAAA,CAAK,EAAEX,WAAA,CAAY;EACtCC,SAAA,EAAWA,CAAA,KAAMU,IAAA,CAAK,EAAEV,SAAA,CAAU;AACpC;AAGO,SAASe,iBAAiBC,GAAA,EAAwD;EACvF,IAAIA,GAAA,EAAKP,IAAA,IAAQO,GAAA,CAAIlB,SAAA,IAAakB,GAAA,CAAIjB,WAAA,IAAeiB,GAAA,CAAIhB,SAAA,EAAW,OAAOgB,GAAA;EAC3E,OAAOF,UAAA;AACT","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { boundRouter } from "./binding.native.js";
3
+ import { useParams, usePathname, useRouter } from "./EmptyRouter.native.js";
4
+ var FallbackLink = function FallbackLink2(param) {
5
+ var {
6
+ children
7
+ } = param;
8
+ return /* @__PURE__ */_jsx(_Fragment, {
9
+ children
10
+ });
11
+ };
12
+ FallbackLink.resolveHref = function (href) {
13
+ return href.toString();
14
+ };
15
+ var nativeFallback = {
16
+ Link: FallbackLink,
17
+ useParams,
18
+ usePathname,
19
+ useRouter
20
+ };
21
+ function host() {
22
+ var _boundRouter;
23
+ return (_boundRouter = boundRouter()) !== null && _boundRouter !== void 0 ? _boundRouter : nativeFallback;
24
+ }
25
+ var HostLink = function HostLink2(props) {
26
+ var Bound = host().Link;
27
+ return /* @__PURE__ */_jsx(Bound, {
28
+ ...props
29
+ });
30
+ };
31
+ HostLink.resolveHref = function (href) {
32
+ return host().Link.resolveHref(href);
33
+ };
34
+ var hostRouter = {
35
+ Link: HostLink,
36
+ useParams: function useParams2() {
37
+ return host().useParams();
38
+ },
39
+ usePathname: function usePathname2() {
40
+ return host().usePathname();
41
+ },
42
+ useRouter: function useRouter2() {
43
+ return host().useRouter();
44
+ }
45
+ };
46
+ function pickNativeRouter(one) {
47
+ if ((one === null || one === void 0 ? void 0 : one.Link) && one.useParams && one.usePathname && one.useRouter) return one;
48
+ return hostRouter;
49
+ }
50
+ export { hostRouter, nativeFallback, pickNativeRouter };
51
+ //# sourceMappingURL=nativeRouter.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","Fragment","_Fragment","boundRouter","useParams","usePathname","useRouter","FallbackLink","FallbackLink2","param","children","resolveHref","href","toString","nativeFallback","Link","host","_boundRouter","HostLink","HostLink2","props","Bound"],"sources":["../../../src/router/nativeRouter.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,GAAA,IAAAC,IAAA,EAAAC,QAAuC,IAAAC,SAAA;AAChD,SAASC,WAAW,6BAAa;AAEqB,SAAAC,SAAA,EAAAC,WAAA,EAAAC,SAAA;AAAtD,IAAAC,YAAM,YAAiCC,aAAeA,CAAAC,KAAA;EAEtD;IAAAC;EAAa,IAAAD,KAAA;EAGN,OAAM,eAAgCT,IAAA,CAAAE,SAAA;IAC3CQ;EACA;AAAA;AACAH,YACA,CAAAI,WAAA,aAAAC,IAAA;EACF,OAAAA,IAAA,CAAAC,QAAA;AAEA;AACE,IAAAC,cAAO,GAAY;EACrBC,IAAA,EAAAR,YAAA;EAEAH,SAAM;EACJC,WAAM;EACNC;AACF;AAEA,SAASU,KAAA;EAQF,IAAMC,YAAA;EACX,OAAM,CAAAA,YAAA,GAAAd,WAAA,gBAAAc,YAAA,cAAAA,YAAA,GAAAH,cAAA;AAAA;AAC4B,IAClCI,QAAA,GAAa,SAAMC,SAAOA,CAAAC,KAAA,EAAY;EACtC,IAAAC,KAAA,GAAWL,IAAA,CAAM,EAAAD,IAAK;EACxB,sBAAAf,IAAA,CAAAqB,KAAA;IAGO,GAAAD;EACL;AACA;AACFF,QAAA,CAAAP,WAAA,aAAAC,IAAA","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ const slot = /* @__PURE__ */Symbol.for("@multiplatform.one/router/binding");
2
+ function bindRouter(binding) {
3
+ globalThis[slot] = binding;
4
+ }
5
+ function boundRouter() {
6
+ return globalThis[slot];
7
+ }
8
+ export { bindRouter, boundRouter };
9
+ //# sourceMappingURL=binding.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["slot","Symbol","for","bindRouter","binding","globalThis","boundRouter"],"sources":["../../../src/router/binding.ts"],"sourcesContent":[null],"mappings":"AAcA,MAAMA,IAAA,GAAO,eAAAC,MAAA,CAAOC,GAAA,CAAI,mCAAmC;AAIpD,SAASC,WAAWC,OAAA,EAA8B;EACtDC,UAAA,CAAoBL,IAAI,IAAII,OAAA;AAC/B;AAEO,SAASE,YAAA,EAAyC;EACvD,OAAQD,UAAA,CAAoBL,IAAI;AAClC","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var binding_exports = {};
26
+ __export(binding_exports, {
27
+ bindRouter: () => bindRouter,
28
+ boundRouter: () => boundRouter
29
+ });
30
+ module.exports = __toCommonJS(binding_exports);
31
+ var slot = /* @__PURE__ */Symbol.for("@multiplatform.one/router/binding");
32
+ function bindRouter(binding) {
33
+ globalThis[slot] = binding;
34
+ }
35
+ function boundRouter() {
36
+ return globalThis[slot];
37
+ }
38
+ //# sourceMappingURL=binding.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name"],"sources":["../../../src/router/binding.ts"],"sourcesContent":[null],"mappings":"AAcA,YAAM;;AAIC,IAAAA,SAAS,GAAAC,MAAW,CAAAC,cAA8B;AACvD,IAACC,gBAAwB,GAAIF,MAAA,CAAAG,wBAAA;AAC/B,IAAAC,iBAAA,GAAAJ,MAAA,CAAAK,mBAAA;AAEO,IAAAC,YAAS,GAAAN,MAAyC,CAAAO,SAAA,CAAAC,cAAA;AACvD,IAAAC,QAAQ,GAAAA,CAAAC,MAAoB,EAAIC,GAAA;EAClC,SAAAC,IAAA,IAAAD,GAAA,E","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ import { bindRouter } from "./binding.mjs";
2
+ import { createExpoRouterBinding } from "./expoRouterBinding.mjs";
3
+ function loadExpoRouter() {
4
+ try {
5
+ return require("expo-router");
6
+ } catch (error) {
7
+ throw new Error("[@multiplatform.one/router] @multiplatform.one/router/expo-router binds Expo Router, but expo-router is not installed. Add expo-router to your app's dependencies.", {
8
+ cause: error
9
+ });
10
+ }
11
+ }
12
+ const binding = createExpoRouterBinding(loadExpoRouter());
13
+ const Link = binding.Link;
14
+ const useParams = binding.useParams;
15
+ const usePathname = binding.usePathname;
16
+ const useRouter = binding.useRouter;
17
+ bindRouter(binding);
18
+ export { Link, useParams, usePathname, useRouter };
19
+ //# sourceMappingURL=expoRouter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["bindRouter","createExpoRouterBinding","loadExpoRouter","require","error","Error","cause","binding","Link","useParams","usePathname","useRouter"],"sources":["../../../src/router/expoRouter.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,UAAA,QAAkB;AAC3B,SAASC,uBAAA,QAAsD;AAgB/D,SAASC,eAAA,EAAmC;EAC1C,IAAI;IACF,OAAOC,OAAA,CAAQ,aAAa;EAC9B,SAASC,KAAA,EAAO;IACd,MAAM,IAAIC,KAAA,CACR,sKAEA;MAAEC,KAAA,EAAOF;IAAM,CACjB;EACF;AACF;AAEA,MAAMG,OAAA,GAAUN,uBAAA,CAAwBC,cAAA,CAAe,CAAC;AAEjD,MAAMM,IAAA,GAAsBD,OAAA,CAAQC,IAAA;AACpC,MAAMC,SAAA,GAAuBF,OAAA,CAAQE,SAAA;AACrC,MAAMC,WAAA,GAA2BH,OAAA,CAAQG,WAAA;AACzC,MAAMC,SAAA,GAAuBJ,OAAA,CAAQI,SAAA;AAE5CX,UAAA,CAAWO,OAAO","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var expoRouter_exports = {};
26
+ __export(expoRouter_exports, {
27
+ Link: () => Link,
28
+ useParams: () => useParams,
29
+ usePathname: () => usePathname,
30
+ useRouter: () => useRouter
31
+ });
32
+ module.exports = __toCommonJS(expoRouter_exports);
33
+ var import_binding = require("./binding.native.js");
34
+ var import_expoRouterBinding = require("./expoRouterBinding.native.js");
35
+ function loadExpoRouter() {
36
+ try {
37
+ return require("expo-router");
38
+ } catch (error) {
39
+ throw new Error("[@multiplatform.one/router] @multiplatform.one/router/expo-router binds Expo Router, but expo-router is not installed. Add expo-router to your app's dependencies.", {
40
+ cause: error
41
+ });
42
+ }
43
+ }
44
+ var binding = (0, import_expoRouterBinding.createExpoRouterBinding)(loadExpoRouter());
45
+ var Link = binding.Link;
46
+ var useParams = binding.useParams;
47
+ var usePathname = binding.usePathname;
48
+ var useRouter = binding.useRouter;
49
+ (0, import_binding.bindRouter)(binding);
50
+ //# sourceMappingURL=expoRouter.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value"],"sources":["../../../src/router/expoRouter.tsx"],"sourcesContent":[null],"mappings":"AACA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAA,CAAAC,cAAA;AAgBT,IAAAC,gBAAS,GAAAF,MAAmC,CAAAG,wBAAA;AAC1C,IAAAC,iBAAI,GAAAJ,MAAA,CAAAK,mBAAA;AACF,IAAAC,YAAO,GAAQN,MAAA,CAAAO,SAAa,CAAAC,cAAA;AAAA,IAC9BC,QAAS,GAAAA,CAAAC,MAAO,EAAAC,GAAA;EACd,SAAMC,IAAI,IAAAD,GAAA,EAAAZ,SACR,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAAA;AAEe,IACjBC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EACF,IAAAF,IAAA,WAAAA,IAAA,wBAAAA,IAAA;IACF,SAAAG,GAAA,IAAAhB,iBAAA,CAAAa,IAAA,GAEM,KAAAX,YAAU,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAwBA,GAAA,KAAAF,MAAe,EAE1CnB,SAAsB,CAAAiB,EAAA,EAAQI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EACpC;EACA,OAAME,EAAA;AACN;AAEP,IAAAM,YAAW,GAAOC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ import { useMemo } from "react";
2
+ function createExpoRouterBinding(expo) {
3
+ const Link = expo.Link;
4
+ if (typeof Link.resolveHref !== "function") {
5
+ Link.resolveHref = href => href.toString();
6
+ }
7
+ return {
8
+ Link,
9
+ useParams: () => expo.useLocalSearchParams(),
10
+ usePathname: () => expo.usePathname(),
11
+ useRouter: () => {
12
+ const router = expo.useRouter();
13
+ return useMemo(() => ({
14
+ ...router,
15
+ subscribe: listener => {
16
+ listener("success");
17
+ return () => {};
18
+ },
19
+ onLoadState: listener => {
20
+ listener("loaded");
21
+ return () => {};
22
+ }
23
+ }), [router]);
24
+ }
25
+ };
26
+ }
27
+ export { createExpoRouterBinding };
28
+ //# sourceMappingURL=expoRouterBinding.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","createExpoRouterBinding","expo","Link","resolveHref","href","toString","useParams","useLocalSearchParams","usePathname","useRouter","router","subscribe","listener","onLoadState"],"sources":["../../../src/router/expoRouterBinding.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,QAAe;AAkBjB,SAASC,wBAAwBC,IAAA,EAAuC;EAC7E,MAAMC,IAAA,GAAOD,IAAA,CAAKC,IAAA;EAClB,IAAI,OAAOA,IAAA,CAAKC,WAAA,KAAgB,YAAY;IAC1CD,IAAA,CAAKC,WAAA,GAAeC,IAAA,IAASA,IAAA,CAAKC,QAAA,CAAS;EAC7C;EACA,OAAO;IACLH,IAAA;IACAI,SAAA,EAAWA,CAAA,KAAML,IAAA,CAAKM,oBAAA,CAAqB;IAC3CC,WAAA,EAAaA,CAAA,KAAMP,IAAA,CAAKO,WAAA,CAAY;IACpCC,SAAA,EAAWA,CAAA,KAAM;MACf,MAAMC,MAAA,GAAST,IAAA,CAAKQ,SAAA,CAAU;MAC9B,OAAOV,OAAA,CACL,OAAO;QACL,GAAGW,MAAA;QACHC,SAAA,EAAYC,QAAA,IAAa;UACvBA,QAAA,CAAS,SAAS;UAClB,OAAO,MAAM,CAAC;QAChB;QACAC,WAAA,EAAcD,QAAA,IAAa;UACzBA,QAAA,CAAS,QAAQ;UACjB,OAAO,MAAM,CAAC;QAChB;MACF,IACA,CAACF,MAAM,CACT;IACF;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var expoRouterBinding_exports = {};
26
+ __export(expoRouterBinding_exports, {
27
+ createExpoRouterBinding: () => createExpoRouterBinding
28
+ });
29
+ module.exports = __toCommonJS(expoRouterBinding_exports);
30
+ var import_react = require("react");
31
+ function createExpoRouterBinding(expo) {
32
+ var Link = expo.Link;
33
+ if (typeof Link.resolveHref !== "function") {
34
+ Link.resolveHref = function (href) {
35
+ return href.toString();
36
+ };
37
+ }
38
+ return {
39
+ Link,
40
+ useParams: function useParams() {
41
+ return expo.useLocalSearchParams();
42
+ },
43
+ usePathname: function usePathname() {
44
+ return expo.usePathname();
45
+ },
46
+ useRouter: function useRouter() {
47
+ var router = expo.useRouter();
48
+ return (0, import_react.useMemo)(function () {
49
+ return {
50
+ ...router,
51
+ subscribe: function subscribe(listener) {
52
+ listener("success");
53
+ return function () {};
54
+ },
55
+ onLoadState: function onLoadState(listener) {
56
+ listener("loaded");
57
+ return function () {};
58
+ }
59
+ };
60
+ }, [router]);
61
+ }
62
+ };
63
+ }
64
+ //# sourceMappingURL=expoRouterBinding.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","expoRouterBinding_exports","createExpoRouterBinding","module","exports","import_react","require","expo","Link","resolveHref","href","toString"],"sources":["../../../src/router/expoRouterBinding.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AAkBF,IAAAA,SAAS,GAAAC,MAAA,CAAAC,cAAwB;AACtC,IAAAC,gBAAkB,GAAAF,MAAA,CAAAG,wBAAA;AAClB,IAAAC,iBAAgB,GAAAJ,MAAA,CAAAK,mBAA4B;AAC1C,IAAAC,YAAK,GAAAN,MAAe,CAAAO,SAAS,CAAAC,cAAc;AAAA,IAC7CC,QAAA,GAAAA,CAAAC,MAAA,EAAAC,GAAA;EACA,SAAOC,IAAA,IAAAD,GAAA,EACLZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAAA;AAC2C,IAC3CC,WAAA,GAAaA,CAAAC,EAAA,EAAMC,IAAA,EAAKC,MAAA,EAAAC,IAAY;EAAA,IACpCF,IAAA,WAAiBA,IAAA,wBAAAA,IAAA;IACf,SAAMG,GAAA,IAAAhB,iBAAwB,CAAAa,IAAA,GAC9B,KAAAX,YAAO,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACLnB,SAAO,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EAAA;EACF,OAAAE,EACH;AACE;AACA,IAAAM,YAAA,GAAOC,GAAA,IAAMR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAAA,IAAAE,yBAAC;AAAAhB,QAAA,CAAAgB,yBAChB;EAAAC,uBACc,EAAAA,CAAA,KAAAA;AACZ;AACAC,MAAA,CAAAC,OAAA,GAAAN,YAAa,CAAAG,yBAAA;AAAA,IAAAI,YAAC,GAAAC,OAAA;AAAA,SAAAJ,uBAChBA,CAAAK,IAAA;EAAA,IAAAC,IACF,GAAAD,IAAA,CAAAC,IAAA;EAAA,WACCA,IAAM,CAAAC,WAAA;IAAAD,IACT,CAAAC,WAAA,aAAAC,IAAA;MACF,OAAAA,IAAA,CAAAC,QAAA;IACF;EACF","ignoreList":[]}
@@ -30,7 +30,7 @@ __export(index_native_exports, {
30
30
  useRouter: () => useRouter
31
31
  });
32
32
  module.exports = __toCommonJS(index_native_exports);
33
- var import_nativeFallback = require("./nativeFallback.native.js");
33
+ var import_nativeRouter = require("./nativeRouter.native.js");
34
34
  function loadOne() {
35
35
  try {
36
36
  return require("one");
@@ -38,7 +38,7 @@ function loadOne() {
38
38
  return void 0;
39
39
  }
40
40
  }
41
- var router = (0, import_nativeFallback.pickRouter)(loadOne());
41
+ var router = (0, import_nativeRouter.pickNativeRouter)(loadOne());
42
42
  var Link = router.Link;
43
43
  var useParams = router.useParams;
44
44
  var useRouter = router.useRouter;
@@ -1 +1 @@
1
- {"version":3,"names":["index_native_exports","__export","Link","useParams","usePathname","useRouter","module","exports","__toCommonJS","import_nativeFallback","require","loadOne","unused","router","pickRouter","useRouterPathname","_useRouterPathname"],"sources":["../../../src/router/index.native.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,oBAAA;AAAAC,QAAA,CAAAD,oBAAA;EAAAE,IAAA,EAAAA,CAAA,KAAAA,IAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAA,SAAA;EAAAC,WAAA,EAAAA,CAAA,KAAAA,WAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAC,YAAA,CAAAR,oBAAA;AAAA,IAAAS,qBAAA,GAA2BC,OAAA;AAC3B,SAASC,QAAA,EAAU;EACf,IAAI;IACA,OAAOD,OAAA,CAAQ,KAAK;EACxB,SAASE,MAAA,EAAQ;IACb,OAAO;EACX;AACJ;AACA,IAAIC,MAAA,OAASJ,qBAAA,CAAAK,UAAA,EAAWH,OAAA,CAAQ,CAAC;AAC1B,IAAIT,IAAA,GAAOW,MAAA,CAAOX,IAAA;AAClB,IAAIC,SAAA,GAAYU,MAAA,CAAOV,SAAA;AACvB,IAAIE,SAAA,GAAYQ,MAAA,CAAOR,SAAA;AAC9B,IAAIU,iBAAA,GAAoBF,MAAA,CAAOT,WAAA;AAOpB,SAASA,YAAA,EAAc;EAC9B,IAAI;IACA,IAAIY,kBAAA;IACJ,QAAQA,kBAAA,GAAqBD,iBAAA,CAAkB,OAAO,QAAQC,kBAAA,KAAuB,SAASA,kBAAA,GAAqB;EACvH,SAASJ,MAAA,EAAQ;IACb,OAAO;EACX;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["index_native_exports","__export","Link","useParams","usePathname","useRouter","module","exports","__toCommonJS","import_nativeRouter","require","loadOne","unused","router","pickNativeRouter","useRouterPathname","_useRouterPathname"],"sources":["../../../src/router/index.native.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,oBAAA;AAAAC,QAAA,CAAAD,oBAAA;EAAAE,IAAA,EAAAA,CAAA,KAAAA,IAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAA,SAAA;EAAAC,WAAA,EAAAA,CAAA,KAAAA,WAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAC,YAAA,CAAAR,oBAAA;AAAA,IAAAS,mBAAA,GAAiCC,OAAA;AACjC,SAASC,QAAA,EAAU;EACf,IAAI;IACA,OAAOD,OAAA,CAAQ,KAAK;EACxB,SAASE,MAAA,EAAQ;IACb,OAAO;EACX;AACJ;AACA,IAAIC,MAAA,OAASJ,mBAAA,CAAAK,gBAAA,EAAiBH,OAAA,CAAQ,CAAC;AAChC,IAAIT,IAAA,GAAOW,MAAA,CAAOX,IAAA;AAClB,IAAIC,SAAA,GAAYU,MAAA,CAAOV,SAAA;AACvB,IAAIE,SAAA,GAAYQ,MAAA,CAAOR,SAAA;AAC9B,IAAIU,iBAAA,GAAoBF,MAAA,CAAOT,WAAA;AAOpB,SAASA,YAAA,EAAc;EAC9B,IAAI;IACA,IAAIY,kBAAA;IACJ,QAAQA,kBAAA,GAAqBD,iBAAA,CAAkB,OAAO,QAAQC,kBAAA,KAAuB,SAASA,kBAAA,GAAqB;EACvH,SAASJ,MAAA,EAAQ;IACb,OAAO;EACX;AACJ","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ import { boundRouter } from "./binding.mjs";
2
+ import { useParams, usePathname, useRouter } from "./EmptyRouter.mjs";
3
+ import { Fragment, jsx } from "react/jsx-runtime";
4
+ const FallbackLink = ({
5
+ children
6
+ }) => /* @__PURE__ */jsx(Fragment, {
7
+ children
8
+ });
9
+ FallbackLink.resolveHref = href => href.toString();
10
+ const nativeFallback = {
11
+ Link: FallbackLink,
12
+ useParams,
13
+ usePathname,
14
+ useRouter
15
+ };
16
+ function host() {
17
+ return boundRouter() ?? nativeFallback;
18
+ }
19
+ const HostLink = props => {
20
+ const Bound = host().Link;
21
+ return /* @__PURE__ */jsx(Bound, {
22
+ ...props
23
+ });
24
+ };
25
+ HostLink.resolveHref = href => host().Link.resolveHref(href);
26
+ const hostRouter = {
27
+ Link: HostLink,
28
+ useParams: () => host().useParams(),
29
+ usePathname: () => host().usePathname(),
30
+ useRouter: () => host().useRouter()
31
+ };
32
+ function pickNativeRouter(one) {
33
+ if (one?.Link && one.useParams && one.usePathname && one.useRouter) return one;
34
+ return hostRouter;
35
+ }
36
+ export { hostRouter, nativeFallback, pickNativeRouter };
37
+ //# sourceMappingURL=nativeRouter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["boundRouter","useParams","usePathname","useRouter","Fragment","jsx","FallbackLink","children","resolveHref","href","toString","nativeFallback","Link","host","HostLink","props","Bound","hostRouter","pickNativeRouter","one"],"sources":["../../../src/router/nativeRouter.tsx"],"sourcesContent":[null],"mappings":"AACA,SAASA,WAAA,QAAuC;AAChD,SAASC,SAAA,EAAWC,WAAA,EAAaC,SAAA,QAAiB;AAEI,SAAAC,QAAA,EAAAC,GAAA;AAAtD,MAAMC,YAAA,GAA8BA,CAAC;EAAEC;AAAS,MAAM,eAAAF,GAAA,CAAAD,QAAA;EAAGG;AAAA,CAAS;AAElED,YAAA,CAAaE,WAAA,GAAeC,IAAA,IAASA,IAAA,CAAKC,QAAA,CAAS;AAG5C,MAAMC,cAAA,GAAgC;EAC3CC,IAAA,EAAMN,YAAA;EACNL,SAAA;EACAC,WAAA;EACAC;AACF;AAEA,SAASU,KAAA,EAAsB;EAC7B,OAAOb,WAAA,CAAY,KAAKW,cAAA;AAC1B;AAEA,MAAMG,QAAA,GAA2BC,KAAA,IAAU;EACzC,MAAMC,KAAA,GAAQH,IAAA,CAAK,EAAED,IAAA;EACrB,OAAO,eAAAP,GAAA,CAACW,KAAA;IAAO,GAAGD;EAAA,CAAO;AAC3B;AAEAD,QAAA,CAASN,WAAA,GAAeC,IAAA,IAASI,IAAA,CAAK,EAAED,IAAA,CAAKJ,WAAA,CAAYC,IAAI;AAQtD,MAAMQ,UAAA,GAA4B;EACvCL,IAAA,EAAME,QAAA;EACNb,SAAA,EAAWA,CAAA,KAAMY,IAAA,CAAK,EAAEZ,SAAA,CAAU;EAClCC,WAAA,EAAaA,CAAA,KAAMW,IAAA,CAAK,EAAEX,WAAA,CAAY;EACtCC,SAAA,EAAWA,CAAA,KAAMU,IAAA,CAAK,EAAEV,SAAA,CAAU;AACpC;AAGO,SAASe,iBAAiBC,GAAA,EAAwD;EACvF,IAAIA,GAAA,EAAKP,IAAA,IAAQO,GAAA,CAAIlB,SAAA,IAAakB,GAAA,CAAIjB,WAAA,IAAeiB,GAAA,CAAIhB,SAAA,EAAW,OAAOgB,GAAA;EAC3E,OAAOF,UAAA;AACT","ignoreList":[]}
@@ -22,15 +22,17 @@ var __copyProps = (to, from, except, desc) => {
22
22
  var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
23
  value: true
24
24
  }), mod);
25
- var nativeFallback_exports = {};
26
- __export(nativeFallback_exports, {
25
+ var nativeRouter_exports = {};
26
+ __export(nativeRouter_exports, {
27
+ hostRouter: () => hostRouter,
27
28
  nativeFallback: () => nativeFallback,
28
- pickRouter: () => pickRouter
29
+ pickNativeRouter: () => pickNativeRouter
29
30
  });
30
- module.exports = __toCommonJS(nativeFallback_exports);
31
+ module.exports = __toCommonJS(nativeRouter_exports);
31
32
  var import_jsx_runtime = require("react/jsx-runtime");
33
+ var import_binding = require("./binding.native.js");
32
34
  var import_EmptyRouter = require("./EmptyRouter.native.js");
33
- var Link = function Link2(param) {
35
+ var FallbackLink = function FallbackLink2(param) {
34
36
  var {
35
37
  children
36
38
  } = param;
@@ -38,16 +40,42 @@ var Link = function Link2(param) {
38
40
  children
39
41
  });
40
42
  };
41
- Link.resolveHref = function (href) {
43
+ FallbackLink.resolveHref = function (href) {
42
44
  return href.toString();
43
45
  };
44
46
  var nativeFallback = {
45
- Link,
47
+ Link: FallbackLink,
46
48
  useParams: import_EmptyRouter.useParams,
47
49
  usePathname: import_EmptyRouter.usePathname,
48
50
  useRouter: import_EmptyRouter.useRouter
49
51
  };
50
- function pickRouter(one) {
51
- return one !== null && one !== void 0 ? one : nativeFallback;
52
+ function host() {
53
+ var _boundRouter;
54
+ return (_boundRouter = (0, import_binding.boundRouter)()) !== null && _boundRouter !== void 0 ? _boundRouter : nativeFallback;
52
55
  }
53
- //# sourceMappingURL=nativeFallback.native.js.map
56
+ var HostLink = function HostLink2(props) {
57
+ var Bound = host().Link;
58
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Bound, {
59
+ ...props
60
+ });
61
+ };
62
+ HostLink.resolveHref = function (href) {
63
+ return host().Link.resolveHref(href);
64
+ };
65
+ var hostRouter = {
66
+ Link: HostLink,
67
+ useParams: function useParams2() {
68
+ return host().useParams();
69
+ },
70
+ usePathname: function usePathname2() {
71
+ return host().usePathname();
72
+ },
73
+ useRouter: function useRouter2() {
74
+ return host().useRouter();
75
+ }
76
+ };
77
+ function pickNativeRouter(one) {
78
+ if ((one === null || one === void 0 ? void 0 : one.Link) && one.useParams && one.usePathname && one.useRouter) return one;
79
+ return hostRouter;
80
+ }
81
+ //# sourceMappingURL=nativeRouter.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","nativeRouter_exports","hostRouter","nativeFallback","pickNativeRouter","module","exports","import_jsx_runtime","require","import_binding","import_EmptyRouter","FallbackLink","FallbackLink2","param"],"sources":["../../../src/router/nativeRouter.tsx"],"sourcesContent":[null],"mappings":"AACA,YAAS;;AACT,IAAAA,SAAS,GAAAC,MAAW,CAAAC,cAAa;AAEqB,IAAAC,gBAAA,GAAAF,MAAA,CAAAG,wBAAA;AAAtD,IAAAC,iBAAoC,GAAGJ,MAAA,CAAAK,mBAAe;AAEtD,IAAAC,YAAa,GAAAN,MAAA,CAAAO,SAAe,CAAAC,cAAc;AAGnC,IAAAC,QAAM,GAAAA,CAAAC,MAAA,EAAgCC,GAAA;EAC3C,SAAMC,IAAA,IAAAD,GAAA,EACNZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAAA;AACA,IACAC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EACF,IAAAF,IAAA,WAAAA,IAAA,wBAAAA,IAAA;IAEA,KAAS,IAAAG,GAAsB,IAAAhB,iBAAA,CAAAa,IAAA,GAC7B,IAAO,CAAAX,YAAY,CAAAe,IAAK,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EAC1BnB,SAAA,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EAEA;EACE,OAAME,EAAA;AACN;AACF,IAAAM,YAAA,GAAAC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA;AAEA,IAAAE,oBAAwB;AAQjBhB,QAAM,CAAAgB,oBAA4B;EACvCC,UAAM,EAAAA,CAAA,KAAAA,UAAA;EACNC,cAAW,EAAAA,CAAA,KAAWA,cAAY;EAClCC,gBAAa,EAAAA,CAAA,KAAWA;AAAc,EACtC;AACFC,MAAA,CAAAC,OAAA,GAAAR,YAAA,CAAAG,oBAAA;AAGO,IAAAM,kBAAS,GAAAC,OAAyE;AACvF,IAAAC,cAAS,GAAQD,OAAI,sBAAiB;AACtC,IAAAE,kBAAO,GAAAF,OAAA;AACT,IAAAG,YAAA,YAAAC,cAAAC,KAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplatform.one/router",
3
- "version": "8.5.0",
3
+ "version": "9.0.0",
4
4
  "description": "multiplatform.one router with support for react-router-dom and react-navigation",
5
5
  "keywords": [
6
6
  "react",
@@ -55,22 +55,35 @@
55
55
  "import": "./dist/esm/seam/index.mjs",
56
56
  "require": "./dist/cjs/seam/index.cjs",
57
57
  "default": "./dist/cjs/seam/index.native.js"
58
+ },
59
+ "./expo-router": {
60
+ "react-native": {
61
+ "types": "./types/router/expoRouter.d.ts",
62
+ "import": "./dist/esm/router/expoRouter.native.js",
63
+ "require": "./dist/cjs/router/expoRouter.native.js"
64
+ },
65
+ "source": "./src/router/expoRouter.tsx",
66
+ "types": "./types/router/expoRouter.d.ts",
67
+ "import": "./dist/esm/router/expoRouter.mjs",
68
+ "require": "./dist/cjs/router/expoRouter.cjs",
69
+ "default": "./dist/cjs/router/expoRouter.native.js"
58
70
  }
59
71
  },
60
72
  "publishConfig": {
61
73
  "access": "public"
62
74
  },
63
75
  "dependencies": {
64
- "@multiplatform.one/platform": "^8.5.0",
76
+ "@multiplatform.one/platform": "^9.0.0",
65
77
  "@vxrn/color-scheme": "~1.16.5"
66
78
  },
67
79
  "devDependencies": {
68
- "@multiplatform.one/config": "8.5.0",
69
- "@multiplatform.one/test-utils": "8.5.0",
80
+ "@multiplatform.one/config": "9.0.0",
81
+ "@multiplatform.one/test-utils": "9.0.0",
70
82
  "@react-navigation/native": "^7.2.2",
71
83
  "@tamagui/build": "2.7.6",
72
84
  "@testing-library/react": "^16.3.3",
73
85
  "@vitejs/plugin-react": "^6.1.2",
86
+ "expo-router": "~55.0.13",
74
87
  "one": "^1.16.5",
75
88
  "react": "19.2.5",
76
89
  "react-dom": "19.2.5",
@@ -82,6 +95,7 @@
82
95
  },
83
96
  "peerDependencies": {
84
97
  "@react-navigation/native": "~7.2.2",
98
+ "expo-router": "*",
85
99
  "one": "^1.4.10",
86
100
  "react": "^19.1.0",
87
101
  "react-router-dom": "^7.0.0"
@@ -90,6 +104,9 @@
90
104
  "@react-navigation/native": {
91
105
  "optional": true
92
106
  },
107
+ "expo-router": {
108
+ "optional": true
109
+ },
93
110
  "one": {
94
111
  "optional": true
95
112
  },
@@ -0,0 +1,25 @@
1
+ import type { LinkComponent, UseParams, UsePathname, UseRouter } from "../types";
2
+
3
+ export interface RouterBinding {
4
+ Link: LinkComponent;
5
+ useParams: UseParams;
6
+ usePathname: UsePathname;
7
+ useRouter: UseRouter;
8
+ }
9
+
10
+ /**
11
+ * The host's router, for an app that does not run on One. It is kept on
12
+ * globalThis because a bundle can hold both the ESM and the CommonJS build of
13
+ * this package, and a module-level variable would give each its own copy.
14
+ */
15
+ const slot = Symbol.for("@multiplatform.one/router/binding");
16
+
17
+ type Host = typeof globalThis & { [slot]?: RouterBinding };
18
+
19
+ export function bindRouter(binding: RouterBinding): void {
20
+ (globalThis as Host)[slot] = binding;
21
+ }
22
+
23
+ export function boundRouter(): RouterBinding | undefined {
24
+ return (globalThis as Host)[slot];
25
+ }