one 1.23.0 → 1.24.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 (164) hide show
  1. package/dist/cjs/headless/__tests__/useStack.test.cjs +79 -0
  2. package/dist/cjs/headless/__tests__/useStack.test.native.js +85 -0
  3. package/dist/cjs/headless/__tests__/useStack.test.native.js.map +1 -0
  4. package/dist/cjs/headless/useStack.cjs +2 -1
  5. package/dist/cjs/headless/useStack.native.js +2 -1
  6. package/dist/cjs/headless/useStack.native.js.map +1 -1
  7. package/dist/cjs/index.native.js.map +1 -1
  8. package/dist/cjs/layouts/Stack.cjs +12 -9
  9. package/dist/cjs/layouts/Stack.native.js +13 -10
  10. package/dist/cjs/layouts/Stack.native.js.map +1 -1
  11. package/dist/cjs/layouts/stack-utils/StackScreen.cjs +6 -3
  12. package/dist/cjs/layouts/stack-utils/StackScreen.native.js +7 -4
  13. package/dist/cjs/layouts/stack-utils/StackScreen.native.js.map +1 -1
  14. package/dist/cjs/layouts/stack-utils/StackToolbar.cjs +124 -0
  15. package/dist/cjs/layouts/stack-utils/StackToolbar.native.js +129 -0
  16. package/dist/cjs/layouts/stack-utils/StackToolbar.native.js.map +1 -0
  17. package/dist/cjs/layouts/stack-utils/StackToolbar.shared.cjs +57 -0
  18. package/dist/cjs/layouts/stack-utils/StackToolbar.shared.native.js +61 -0
  19. package/dist/cjs/layouts/stack-utils/StackToolbar.shared.native.js.map +1 -0
  20. package/dist/cjs/layouts/stack-utils/StackToolbar.types.cjs +18 -0
  21. package/dist/cjs/layouts/stack-utils/StackToolbar.types.native.js +21 -0
  22. package/dist/cjs/layouts/stack-utils/StackToolbar.types.native.js.map +1 -0
  23. package/dist/cjs/layouts/stack-utils/StackToolbarImplementation.cjs +39 -0
  24. package/dist/cjs/layouts/stack-utils/StackToolbarImplementation.native.js +41 -0
  25. package/dist/cjs/layouts/stack-utils/StackToolbarImplementation.native.js.map +1 -0
  26. package/dist/cjs/layouts/stack-utils/__tests__/StackToolbar.test.cjs +66 -0
  27. package/dist/cjs/layouts/stack-utils/__tests__/StackToolbar.test.native.js +99 -0
  28. package/dist/cjs/layouts/stack-utils/__tests__/StackToolbar.test.native.js.map +1 -0
  29. package/dist/cjs/layouts/stack-utils/index.cjs +2 -0
  30. package/dist/cjs/layouts/stack-utils/index.native.js +2 -0
  31. package/dist/cjs/layouts/stack-utils/index.native.js.map +1 -1
  32. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.cjs +9 -3
  33. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.native.js +9 -4
  34. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.native.js.map +1 -1
  35. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.test.cjs +84 -0
  36. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.test.native.js +91 -0
  37. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.test.native.js.map +1 -0
  38. package/dist/cjs/router/router.native.js.map +1 -1
  39. package/dist/cjs/router/useInitializeOneRouter.cjs +2 -2
  40. package/dist/cjs/router/useInitializeOneRouter.native.js +2 -2
  41. package/dist/cjs/router/useInitializeOneRouter.native.js.map +1 -1
  42. package/dist/cjs/router/useInitializeOneRouter.preview-lifecycle.test.cjs +1 -1
  43. package/dist/cjs/router/useInitializeOneRouter.preview-lifecycle.test.native.js +1 -1
  44. package/dist/cjs/router/useInitializeOneRouter.preview-lifecycle.test.native.js.map +1 -1
  45. package/dist/cjs/stack-toolbar-implementation.cjs +30 -0
  46. package/dist/cjs/stack-toolbar-implementation.native.js +33 -0
  47. package/dist/cjs/stack-toolbar-implementation.native.js.map +1 -0
  48. package/dist/esm/headless/__tests__/useStack.test.mjs +56 -0
  49. package/dist/esm/headless/__tests__/useStack.test.mjs.map +1 -0
  50. package/dist/esm/headless/__tests__/useStack.test.native.js +59 -0
  51. package/dist/esm/headless/__tests__/useStack.test.native.js.map +1 -0
  52. package/dist/esm/headless/useStack.mjs +2 -1
  53. package/dist/esm/headless/useStack.mjs.map +1 -1
  54. package/dist/esm/headless/useStack.native.js +2 -1
  55. package/dist/esm/headless/useStack.native.js.map +1 -1
  56. package/dist/esm/index.js.map +1 -1
  57. package/dist/esm/index.mjs.map +1 -1
  58. package/dist/esm/index.native.js.map +1 -1
  59. package/dist/esm/layouts/Stack.mjs +13 -10
  60. package/dist/esm/layouts/Stack.mjs.map +1 -1
  61. package/dist/esm/layouts/Stack.native.js +14 -11
  62. package/dist/esm/layouts/Stack.native.js.map +1 -1
  63. package/dist/esm/layouts/stack-utils/StackScreen.mjs +6 -3
  64. package/dist/esm/layouts/stack-utils/StackScreen.mjs.map +1 -1
  65. package/dist/esm/layouts/stack-utils/StackScreen.native.js +7 -4
  66. package/dist/esm/layouts/stack-utils/StackScreen.native.js.map +1 -1
  67. package/dist/esm/layouts/stack-utils/StackToolbar.mjs +89 -0
  68. package/dist/esm/layouts/stack-utils/StackToolbar.mjs.map +1 -0
  69. package/dist/esm/layouts/stack-utils/StackToolbar.native.js +92 -0
  70. package/dist/esm/layouts/stack-utils/StackToolbar.native.js.map +1 -0
  71. package/dist/esm/layouts/stack-utils/StackToolbar.shared.mjs +31 -0
  72. package/dist/esm/layouts/stack-utils/StackToolbar.shared.mjs.map +1 -0
  73. package/dist/esm/layouts/stack-utils/StackToolbar.shared.native.js +32 -0
  74. package/dist/esm/layouts/stack-utils/StackToolbar.shared.native.js.map +1 -0
  75. package/dist/esm/layouts/stack-utils/StackToolbar.types.mjs +2 -0
  76. package/dist/esm/layouts/stack-utils/StackToolbar.types.mjs.map +1 -0
  77. package/dist/esm/layouts/stack-utils/StackToolbar.types.native.js +2 -0
  78. package/dist/esm/layouts/stack-utils/StackToolbar.types.native.js.map +1 -0
  79. package/dist/esm/layouts/stack-utils/StackToolbarImplementation.mjs +12 -0
  80. package/dist/esm/layouts/stack-utils/StackToolbarImplementation.mjs.map +1 -0
  81. package/dist/esm/layouts/stack-utils/StackToolbarImplementation.native.js +12 -0
  82. package/dist/esm/layouts/stack-utils/StackToolbarImplementation.native.js.map +1 -0
  83. package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.test.mjs +67 -0
  84. package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.test.mjs.map +1 -0
  85. package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.test.native.js +73 -0
  86. package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.test.native.js.map +1 -0
  87. package/dist/esm/layouts/stack-utils/index.mjs +2 -1
  88. package/dist/esm/layouts/stack-utils/index.mjs.map +1 -1
  89. package/dist/esm/layouts/stack-utils/index.native.js +2 -1
  90. package/dist/esm/layouts/stack-utils/index.native.js.map +1 -1
  91. package/dist/esm/metro-config/buildOneMetroResolverOverrides.mjs +9 -3
  92. package/dist/esm/metro-config/buildOneMetroResolverOverrides.mjs.map +1 -1
  93. package/dist/esm/metro-config/buildOneMetroResolverOverrides.native.js +9 -4
  94. package/dist/esm/metro-config/buildOneMetroResolverOverrides.native.js.map +1 -1
  95. package/dist/esm/metro-config/buildOneMetroResolverOverrides.test.mjs +61 -0
  96. package/dist/esm/metro-config/buildOneMetroResolverOverrides.test.mjs.map +1 -0
  97. package/dist/esm/metro-config/buildOneMetroResolverOverrides.test.native.js +65 -0
  98. package/dist/esm/metro-config/buildOneMetroResolverOverrides.test.native.js.map +1 -0
  99. package/dist/esm/router/useInitializeOneRouter.mjs +1 -1
  100. package/dist/esm/router/useInitializeOneRouter.mjs.map +1 -1
  101. package/dist/esm/router/useInitializeOneRouter.native.js +1 -1
  102. package/dist/esm/router/useInitializeOneRouter.preview-lifecycle.test.mjs +1 -1
  103. package/dist/esm/router/useInitializeOneRouter.preview-lifecycle.test.mjs.map +1 -1
  104. package/dist/esm/router/useInitializeOneRouter.preview-lifecycle.test.native.js +1 -1
  105. package/dist/esm/router/useInitializeOneRouter.preview-lifecycle.test.native.js.map +1 -1
  106. package/dist/esm/stack-toolbar-implementation.mjs +3 -0
  107. package/dist/esm/stack-toolbar-implementation.mjs.map +1 -0
  108. package/dist/esm/stack-toolbar-implementation.native.js +3 -0
  109. package/dist/esm/stack-toolbar-implementation.native.js.map +1 -0
  110. package/package.json +26 -20
  111. package/src/headless/__tests__/useStack.test.tsx +54 -0
  112. package/src/headless/types.ts +2 -1
  113. package/src/headless/useStack.ts +2 -1
  114. package/src/index.ts +12 -0
  115. package/src/layouts/Stack.tsx +33 -8
  116. package/src/layouts/stack-utils/README.md +1 -0
  117. package/src/layouts/stack-utils/StackScreen.tsx +26 -5
  118. package/src/layouts/stack-utils/StackToolbar.shared.ts +44 -0
  119. package/src/layouts/stack-utils/StackToolbar.tsx +134 -0
  120. package/src/layouts/stack-utils/StackToolbar.types.ts +100 -0
  121. package/src/layouts/stack-utils/StackToolbarImplementation.tsx +39 -0
  122. package/src/layouts/stack-utils/__tests__/StackToolbar.test.tsx +70 -0
  123. package/src/layouts/stack-utils/index.tsx +17 -0
  124. package/src/metro-config/buildOneMetroResolverOverrides.test.ts +88 -0
  125. package/src/metro-config/buildOneMetroResolverOverrides.ts +20 -8
  126. package/src/router/router.ts +5 -5
  127. package/src/router/useInitializeOneRouter.preview-lifecycle.test.ts +1 -1
  128. package/src/router/useInitializeOneRouter.ts +2 -2
  129. package/src/stack-toolbar-implementation.ts +8 -0
  130. package/types/fork/useLinking.native.d.ts +4 -4
  131. package/types/headless/types.d.ts +4 -1
  132. package/types/headless/types.d.ts.map +1 -1
  133. package/types/headless/useStack.d.ts.map +1 -1
  134. package/types/index.d.ts +1 -1
  135. package/types/index.d.ts.map +1 -1
  136. package/types/layouts/Drawer.d.ts +54 -54
  137. package/types/layouts/Stack.d.ts +58 -46
  138. package/types/layouts/Stack.d.ts.map +1 -1
  139. package/types/layouts/Tabs.d.ts +46 -46
  140. package/types/layouts/stack-utils/StackScreen.d.ts +2 -1
  141. package/types/layouts/stack-utils/StackScreen.d.ts.map +1 -1
  142. package/types/layouts/stack-utils/StackToolbar.d.ts +28 -0
  143. package/types/layouts/stack-utils/StackToolbar.d.ts.map +1 -0
  144. package/types/layouts/stack-utils/StackToolbar.shared.d.ts +5 -0
  145. package/types/layouts/stack-utils/StackToolbar.shared.d.ts.map +1 -0
  146. package/types/layouts/stack-utils/StackToolbar.types.d.ts +83 -0
  147. package/types/layouts/stack-utils/StackToolbar.types.d.ts.map +1 -0
  148. package/types/layouts/stack-utils/StackToolbarImplementation.d.ts +12 -0
  149. package/types/layouts/stack-utils/StackToolbarImplementation.d.ts.map +1 -0
  150. package/types/layouts/stack-utils/index.d.ts +3 -1
  151. package/types/layouts/stack-utils/index.d.ts.map +1 -1
  152. package/types/metro-config/buildOneMetroResolverOverrides.d.ts +2 -1
  153. package/types/metro-config/buildOneMetroResolverOverrides.d.ts.map +1 -1
  154. package/types/metro-config/buildOneMetroResolverOverrides.test.d.ts +2 -0
  155. package/types/metro-config/buildOneMetroResolverOverrides.test.d.ts.map +1 -0
  156. package/types/router/router.d.ts +1 -1
  157. package/types/router/router.d.ts.map +1 -1
  158. package/types/stack-toolbar-implementation.d.ts +3 -0
  159. package/types/stack-toolbar-implementation.d.ts.map +1 -0
  160. package/types/ui/TabContext.d.ts +15 -23
  161. package/types/ui/TabContext.d.ts.map +1 -1
  162. package/types/ui/TabRouter.d.ts +5 -5
  163. package/types/ui/Tabs.shared.d.ts +22 -22
  164. package/types/ui/Tabs.shared.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["StackHeaderBackButton","StackHeaderComponent","StackHeaderLeft","StackHeaderRight","StackHeaderSearchBar","StackHeaderTitle","NAVIGATOR_CONFIG","StackScreen","appendScreenStackPropsToOptions","validateStackPresentation","StackHeader","Object","assign","Left","Right","BackButton","Title","SearchBar"],"sources":["../../../../src/layouts/stack-utils/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SACEA,qBAAA,QAEK;AACP,SAASC,oBAAA,QAAmD;AAC5D,SAASC,eAAA,QAAkD;AAC3D,SAASC,gBAAA,QAAoD;AAC7D,SACEC,oBAAA,QAEK;AACP,SAASC,gBAAA,QAAoD;AAC7D,SAASC,gBAAA,QAAwB;AA8BjC,SACEC,WAAA,EACAC,+BAAA,EACAC,yBAAA,QAGK;AA9BA,MAAMC,WAAA,GAAcC,MAAA,CAAOC,MAAA,CAAOX,oBAAA,EAAsB;EAC7D,CAACK,gBAAgB,GAAG;EACpBO,IAAA,EAAMX,eAAA;EACNY,KAAA,EAAOX,gBAAA;EACPY,UAAA,EAAYf,qBAAA;EACZgB,KAAA,EAAOX,gBAAA;EACPY,SAAA,EAAWb;AACb,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["StackHeaderBackButton","StackHeaderComponent","StackHeaderLeft","StackHeaderRight","StackHeaderSearchBar","StackHeaderTitle","StackToolbar","NAVIGATOR_CONFIG","StackScreen","appendScreenStackPropsToOptions","validateStackPresentation","StackHeader","Object","assign","Left","Right","BackButton","Title","SearchBar"],"sources":["../../../../src/layouts/stack-utils/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SACEA,qBAAA,QAEK;AACP,SAASC,oBAAA,QAAmD;AAC5D,SAASC,eAAA,QAAkD;AAC3D,SAASC,gBAAA,QAAoD;AAC7D,SACEC,oBAAA,QAEK;AACP,SAASC,gBAAA,QAAoD;AAC7D,SAASC,YAAA,QAAoB;AAC7B,SAASC,gBAAA,QAAwB;AA8CjC,SACEC,WAAA,EACAC,+BAAA,EACAC,yBAAA,QAGK;AA9CA,MAAMC,WAAA,GAAcC,MAAA,CAAOC,MAAA,CAAOZ,oBAAA,EAAsB;EAC7D,CAACM,gBAAgB,GAAG;EACpBO,IAAA,EAAMZ,eAAA;EACNa,KAAA,EAAOZ,gBAAA;EACPa,UAAA,EAAYhB,qBAAA;EACZiB,KAAA,EAAOZ,gBAAA;EACPa,SAAA,EAAWd;AACb,CAAC","ignoreList":[]}
@@ -4,6 +4,7 @@ import { StackHeaderLeft } from "./StackHeaderLeft.native.js";
4
4
  import { StackHeaderRight } from "./StackHeaderRight.native.js";
5
5
  import { StackHeaderSearchBar } from "./StackHeaderSearchBar.native.js";
6
6
  import { StackHeaderTitle } from "./StackHeaderTitle.native.js";
7
+ import { StackToolbar } from "./StackToolbar.native.js";
7
8
  import { NAVIGATOR_CONFIG } from "../../headless/children.native.js";
8
9
  import { StackScreen, appendScreenStackPropsToOptions, validateStackPresentation } from "./StackScreen.native.js";
9
10
  var StackHeader = Object.assign(StackHeaderComponent, {
@@ -14,5 +15,5 @@ var StackHeader = Object.assign(StackHeaderComponent, {
14
15
  Title: StackHeaderTitle,
15
16
  SearchBar: StackHeaderSearchBar
16
17
  });
17
- export { StackHeader, StackHeaderBackButton, StackHeaderComponent, StackHeaderLeft, StackHeaderRight, StackHeaderSearchBar, StackHeaderTitle, StackScreen, appendScreenStackPropsToOptions, validateStackPresentation };
18
+ export { StackHeader, StackHeaderBackButton, StackHeaderComponent, StackHeaderLeft, StackHeaderRight, StackHeaderSearchBar, StackHeaderTitle, StackScreen, StackToolbar, appendScreenStackPropsToOptions, validateStackPresentation };
18
19
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["StackHeaderBackButton","StackHeaderComponent","StackHeaderLeft","StackHeaderRight","StackHeaderSearchBar","StackHeaderTitle","NAVIGATOR_CONFIG","StackScreen","appendScreenStackPropsToOptions","validateStackPresentation","StackHeader","Object","assign","Left","Right","BackButton","Title","SearchBar"],"sources":["../../../../src/layouts/stack-utils/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAAAA,qBAAA;AAAA,SACEC,oBAAA;AAAA,SAEKC,eAAA;AACP,SAASC,gBAAA,sCAAmD;AAC5D,SAASC,oBAAA,QAAkD;AAC3D,SAASC,gBAAA,QAAoD;AAC7D,SAAAC,gBAAA;AAAA,SACEC,WAAA,EAAAC,+BAAA,EAAAC,yBAAA;AAAA,IAAAC,WAEK,GAAAC,MAAA,CAAAC,MAAA,CAAAX,oBAAA;EACP,CAAAK,gBAAS;EACTO,IAAA,EAAAX,eAAS;EA8BTY,KAAA,EAAAX,gBAAA;EACEY,UAAA,EAAAf,qBAAA;EACAgB,KAAA,EAAAX,gBAAA;EACAY,SAAA,EAAAb;AAAA;AA3BK,SACLM,WAAC,EACDV,qBAAM,EACNC,oBAAO,EACPC,eAAY,EACZC,gBAAO,EACPC,oBAAW,EACZC,gBAAA,E","ignoreList":[]}
1
+ {"version":3,"names":["StackHeaderBackButton","StackHeaderComponent","StackHeaderLeft","StackHeaderRight","StackHeaderSearchBar","StackHeaderTitle","StackToolbar","NAVIGATOR_CONFIG","StackScreen","appendScreenStackPropsToOptions","validateStackPresentation","StackHeader","Object","assign","Left","Right","BackButton","Title","SearchBar"],"sources":["../../../../src/layouts/stack-utils/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAAAA,qBAAA;AAAA,SACEC,oBAAA;AAAA,SAEKC,eAAA;AACP,SAASC,gBAAA,sCAAmD;AAC5D,SAASC,oBAAA,QAAkD;AAC3D,SAASC,gBAAA,QAAoD;AAC7D,SAAAC,YAAA;AAAA,SACEC,gBAAA;AAAA,SAEKC,WAAA,EAAAC,+BAAA,EAAAC,yBAAA;AACP,IAAAC,WAAS,GAAAC,MAAA,CAAAC,MAAA,CAAAZ,oBAAoD;EAC7D,CAAAM,gBAAS;EACTO,IAAA,EAAAZ,eAAS;EA8CTa,KAAA,EAAAZ,gBAAA;EACEa,UAAA,EAAAhB,qBAAA;EACAiB,KAAA,EAAAZ,gBAAA;EACAa,SAAA,EAAAd;AAAA;AA3CK,SACLO,WAAC,EACDX,qBAAM,EACNC,oBAAO,EACPC,eAAY,EACZC,gBAAO,EACPC,oBAAW,EACZC,gBAAA,E","ignoreList":[]}
@@ -7,6 +7,7 @@ function buildOneMetroResolverOverrides({
7
7
  const emptyPath = require2.resolve("@vxrn/vite-plugin-metro/empty", {
8
8
  paths: [projectRoot]
9
9
  });
10
+ const projectPackagePath = path.join(projectRoot, "package.json");
10
11
  return defaultConfig => {
11
12
  const resolver = {
12
13
  ...defaultConfig?.resolver,
@@ -15,6 +16,13 @@ function buildOneMetroResolverOverrides({
15
16
  },
16
17
  nodeModulesPaths: defaultConfig?.resolver?.nodeModulesPaths,
17
18
  resolveRequest: (context, moduleName, platform) => {
19
+ const defaultResolveRequest = defaultConfig?.resolver?.resolveRequest || context.resolveRequest;
20
+ if (moduleName === "react-native-worklets" || moduleName.startsWith("react-native-worklets/")) {
21
+ return defaultResolveRequest({
22
+ ...context,
23
+ originModulePath: projectPackagePath
24
+ }, moduleName, platform);
25
+ }
18
26
  if (moduleName.endsWith(".css")) {
19
27
  return {
20
28
  type: "sourceFile",
@@ -34,8 +42,7 @@ function buildOneMetroResolverOverrides({
34
42
  };
35
43
  }
36
44
  if (moduleName === "react-native-svg") {
37
- const defaultResolveRequest2 = defaultConfig?.resolver?.resolveRequest || context.resolveRequest;
38
- const res2 = defaultResolveRequest2(context, moduleName, platform);
45
+ const res2 = defaultResolveRequest(context, moduleName, platform);
39
46
  const svgSrcSuffix = `${path.sep}src${path.sep}index.ts`;
40
47
  if (res2 && "filePath" in res2 && res2.filePath.includes(svgSrcSuffix)) {
41
48
  return {
@@ -45,7 +52,6 @@ function buildOneMetroResolverOverrides({
45
52
  }
46
53
  return res2;
47
54
  }
48
- const defaultResolveRequest = defaultConfig?.resolver?.resolveRequest || context.resolveRequest;
49
55
  const res = defaultResolveRequest(context, moduleName, platform);
50
56
  if (res && "filePath" in res && /\.server\.[jt]sx?$/.test(res.filePath)) {
51
57
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["module","path","buildOneMetroResolverOverrides","projectRoot","require","createRequire","emptyPath","resolve","paths","defaultConfig","resolver","extraNodeModules","nodeModulesPaths","resolveRequest","context","moduleName","platform","endsWith","type","filePath","test","defaultResolveRequest","res","defaultResolveRequest2","svgSrcSuffix","sep","res2","includes","replace"],"sources":["../../../src/metro-config/buildOneMetroResolverOverrides.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,MAAA,MAAY;AACnB,OAAOC,IAAA,MAAU;AAoBV,SAASC,+BAA+B;EAC7CC;AACF,GAEO;EACL,MAAMC,QAAA,GAAUJ,MAAA,CAAOK,aAAA,CAAcF,WAAA,GAAc,GAAG;EACtD,MAAMG,SAAA,GAAYF,QAAA,CAAQG,OAAA,CAAQ,iCAAiC;IACjEC,KAAA,EAAO,CAACL,WAAW;EACrB,CAAC;EAED,OAAmCM,aAAA,IAAwB;IACzD,MAAMC,QAAA,GAAgC;MACpC,GAAGD,aAAA,EAAeC,QAAA;MAClBC,gBAAA,EAAkB;QAChB,GAAGF,aAAA,EAAeC,QAAA,EAAUC;MAC9B;MACAC,gBAAA,EAAkBH,aAAA,EAAeC,QAAA,EAAUE,gBAAA;MAC3CC,cAAA,EAAgBA,CAACC,OAAA,EAAcC,UAAA,EAAoBC,QAAA,KAAqB;QACtE,IAAID,UAAA,CAAWE,QAAA,CAAS,MAAM,GAAG;UAC/B,OAAO;YACLC,IAAA,EAAM;YACNC,QAAA,EAAUb;UACZ;QACF;QAGA,IAAI,oBAAoBc,IAAA,CAAKL,UAAU,GAAG;UACxC,OAAO;YACLG,IAAA,EAAM;YACNC,QAAA,EAAUb;UACZ;QACF;QAMA,IAAI,wBAAwBc,IAAA,CAAKL,UAAU,GAAG;UAC5C,OAAO;YACLG,IAAA,EAAM;YACNC,QAAA,EAAUb;UACZ;QACF;QAKA,IAAIS,UAAA,KAAe,oBAAoB;UACrC,MAAMM,sBAAA,GACJZ,aAAA,EAAeC,QAAA,EAAUG,cAAA,IAAkBC,OAAA,CAAQD,cAAA;UACrD,MAAMS,IAAA,GAAMC,sBAAA,CAAsBT,OAAA,EAASC,UAAA,EAAYC,QAAQ;UAC/D,MAAMQ,YAAA,GAAe,GAAGvB,IAAA,CAAKwB,GAAG,MAAMxB,IAAA,CAAKwB,GAAG;UAC9C,IAAIH,IAAA,IAAO,cAAcI,IAAA,IAAOA,IAAA,CAAIP,QAAA,CAASQ,QAAA,CAASH,YAAY,GAAG;YACnE,OAAO;cACL,GAAGF,IAAA;cACHH,QAAA,EAAUG,IAAA,CAAIH,QAAA,CAASS,OAAA,CACrBJ,YAAA,EACA,GAAGvB,IAAA,CAAKwB,GAAG,MAAMxB,IAAA,CAAKwB,GAAG,WAAWxB,IAAA,CAAKwB,GAAG,UAC9C;YACF;UACF;UACA,OAAOH,IAAA;QACT;QAEA,MAAMD,qBAAA,GACJZ,aAAA,EAAeC,QAAA,EAAUG,cAAA,IAAkBC,OAAA,CAAQD,cAAA;QACrD,MAAMS,GAAA,GAAMD,qBAAA,CAAsBP,OAAA,EAASC,UAAA,EAAYC,QAAQ;QAG/D,IAAIM,GAAA,IAAO,cAAcA,GAAA,IAAO,qBAAqBF,IAAA,CAAKE,GAAA,CAAIH,QAAQ,GAAG;UACvE,OAAO;YAAED,IAAA,EAAM;YAAcC,QAAA,EAAUb;UAAU;QACnD;QAEA,OAAOgB,GAAA;MACT;IACF;IAEA,OAAO;MACL,GAAIb,aAAA;MACJC;IACF;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["module","path","buildOneMetroResolverOverrides","projectRoot","require","createRequire","emptyPath","resolve","paths","projectPackagePath","join","defaultConfig","resolver","extraNodeModules","nodeModulesPaths","resolveRequest","context","moduleName","platform","defaultResolveRequest","startsWith","originModulePath","endsWith","type","filePath","test","res","svgSrcSuffix","sep","res2","includes","replace"],"sources":["../../../src/metro-config/buildOneMetroResolverOverrides.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,MAAA,MAAY;AACnB,OAAOC,IAAA,MAAU;AAqBV,SAASC,+BAA+B;EAC7CC;AACF,GAEO;EACL,MAAMC,QAAA,GAAUJ,MAAA,CAAOK,aAAA,CAAcF,WAAA,GAAc,GAAG;EACtD,MAAMG,SAAA,GAAYF,QAAA,CAAQG,OAAA,CAAQ,iCAAiC;IACjEC,KAAA,EAAO,CAACL,WAAW;EACrB,CAAC;EACD,MAAMM,kBAAA,GAAqBR,IAAA,CAAKS,IAAA,CAAKP,WAAA,EAAa,cAAc;EAEhE,OAAmCQ,aAAA,IAAwB;IACzD,MAAMC,QAAA,GAAgC;MACpC,GAAGD,aAAA,EAAeC,QAAA;MAClBC,gBAAA,EAAkB;QAChB,GAAGF,aAAA,EAAeC,QAAA,EAAUC;MAC9B;MACAC,gBAAA,EAAkBH,aAAA,EAAeC,QAAA,EAAUE,gBAAA;MAC3CC,cAAA,EAAgBA,CAACC,OAAA,EAAcC,UAAA,EAAoBC,QAAA,KAAqB;QACtE,MAAMC,qBAAA,GACJR,aAAA,EAAeC,QAAA,EAAUG,cAAA,IAAkBC,OAAA,CAAQD,cAAA;QAGrD,IACEE,UAAA,KAAe,2BACfA,UAAA,CAAWG,UAAA,CAAW,wBAAwB,GAC9C;UACA,OAAOD,qBAAA,CACL;YAAE,GAAGH,OAAA;YAASK,gBAAA,EAAkBZ;UAAmB,GACnDQ,UAAA,EACAC,QACF;QACF;QAEA,IAAID,UAAA,CAAWK,QAAA,CAAS,MAAM,GAAG;UAC/B,OAAO;YACLC,IAAA,EAAM;YACNC,QAAA,EAAUlB;UACZ;QACF;QAGA,IAAI,oBAAoBmB,IAAA,CAAKR,UAAU,GAAG;UACxC,OAAO;YACLM,IAAA,EAAM;YACNC,QAAA,EAAUlB;UACZ;QACF;QAMA,IAAI,wBAAwBmB,IAAA,CAAKR,UAAU,GAAG;UAC5C,OAAO;YACLM,IAAA,EAAM;YACNC,QAAA,EAAUlB;UACZ;QACF;QAIA,IAAIW,UAAA,KAAe,oBAAoB;UACrC,MAAMS,IAAA,GAAMP,qBAAA,CAAsBH,OAAA,EAASC,UAAA,EAAYC,QAAQ;UAC/D,MAAMS,YAAA,GAAe,GAAG1B,IAAA,CAAK2B,GAAG,MAAM3B,IAAA,CAAK2B,GAAG;UAC9C,IAAIF,IAAA,IAAO,cAAcG,IAAA,IAAOA,IAAA,CAAIL,QAAA,CAASM,QAAA,CAASH,YAAY,GAAG;YACnE,OAAO;cACL,GAAGD,IAAA;cACHF,QAAA,EAAUE,IAAA,CAAIF,QAAA,CAASO,OAAA,CACrBJ,YAAA,EACA,GAAG1B,IAAA,CAAK2B,GAAG,MAAM3B,IAAA,CAAK2B,GAAG,WAAW3B,IAAA,CAAK2B,GAAG,UAC9C;YACF;UACF;UACA,OAAOF,IAAA;QACT;QAEA,MAAMA,GAAA,GAAMP,qBAAA,CAAsBH,OAAA,EAASC,UAAA,EAAYC,QAAQ;QAG/D,IAAIQ,GAAA,IAAO,cAAcA,GAAA,IAAO,qBAAqBD,IAAA,CAAKC,GAAA,CAAIF,QAAQ,GAAG;UACvE,OAAO;YAAED,IAAA,EAAM;YAAcC,QAAA,EAAUlB;UAAU;QACnD;QAEA,OAAOoB,GAAA;MACT;IACF;IAEA,OAAO;MACL,GAAIf,aAAA;MACJC;IACF;EACF;AACF","ignoreList":[]}
@@ -8,6 +8,7 @@ function buildOneMetroResolverOverrides(param) {
8
8
  var emptyPath = require2.resolve("@vxrn/vite-plugin-metro/empty", {
9
9
  paths: [projectRoot]
10
10
  });
11
+ var projectPackagePath = path.join(projectRoot, "package.json");
11
12
  return function (defaultConfig) {
12
13
  var _defaultConfig_resolver, _defaultConfig_resolver1;
13
14
  var resolver = {
@@ -18,6 +19,13 @@ function buildOneMetroResolverOverrides(param) {
18
19
  nodeModulesPaths: defaultConfig === null || defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver1 = defaultConfig.resolver) === null || _defaultConfig_resolver1 === void 0 ? void 0 : _defaultConfig_resolver1.nodeModulesPaths,
19
20
  resolveRequest: function (context, moduleName, platform) {
20
21
  var _defaultConfig_resolver2;
22
+ var defaultResolveRequest = (defaultConfig === null || defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver2 = defaultConfig.resolver) === null || _defaultConfig_resolver2 === void 0 ? void 0 : _defaultConfig_resolver2.resolveRequest) || context.resolveRequest;
23
+ if (moduleName === "react-native-worklets" || moduleName.startsWith("react-native-worklets/")) {
24
+ return defaultResolveRequest({
25
+ ...context,
26
+ originModulePath: projectPackagePath
27
+ }, moduleName, platform);
28
+ }
21
29
  if (moduleName.endsWith(".css")) {
22
30
  return {
23
31
  type: "sourceFile",
@@ -37,8 +45,6 @@ function buildOneMetroResolverOverrides(param) {
37
45
  };
38
46
  }
39
47
  if (moduleName === "react-native-svg") {
40
- var _defaultConfig_resolver12;
41
- var defaultResolveRequest = (defaultConfig === null || defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver12 = defaultConfig.resolver) === null || _defaultConfig_resolver12 === void 0 ? void 0 : _defaultConfig_resolver12.resolveRequest) || context.resolveRequest;
42
48
  var res = defaultResolveRequest(context, moduleName, platform);
43
49
  var svgSrcSuffix = `${path.sep}src${path.sep}index.ts`;
44
50
  if (res && "filePath" in res && res.filePath.includes(svgSrcSuffix)) {
@@ -49,8 +55,7 @@ function buildOneMetroResolverOverrides(param) {
49
55
  }
50
56
  return res;
51
57
  }
52
- var defaultResolveRequest1 = (defaultConfig === null || defaultConfig === void 0 ? void 0 : (_defaultConfig_resolver2 = defaultConfig.resolver) === null || _defaultConfig_resolver2 === void 0 ? void 0 : _defaultConfig_resolver2.resolveRequest) || context.resolveRequest;
53
- var res1 = defaultResolveRequest1(context, moduleName, platform);
58
+ var res1 = defaultResolveRequest(context, moduleName, platform);
54
59
  if (res1 && "filePath" in res1 && /\.server\.[jt]sx?$/.test(res1.filePath)) {
55
60
  return {
56
61
  type: "sourceFile",
@@ -1 +1 @@
1
- {"version":3,"names":["module","path","buildOneMetroResolverOverrides","param","projectRoot","require2","createRequire","emptyPath","resolve","paths","defaultConfig","_defaultConfig_resolver","_defaultConfig_resolver1","resolver","extraNodeModules","nodeModulesPaths","resolveRequest","context","moduleName","platform","_defaultConfig_resolver2","endsWith","type","filePath","test","res","defaultResolveRequest","_defaultConfig_resolver12","svgSrcSuffix","sep","includes","replace","defaultResolveRequest1","res1"],"sources":["../../../src/metro-config/buildOneMetroResolverOverrides.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,MAAA,MAAY;AACnB,OAAOC,IAAA,MAAU;AAoBV,SAASC,+BAA+BC,KAAA;EAC7C;IAAAC;EAAA,IAAAD,KAAA;EACF,IAEOE,QAAA,GAAAL,MAAA,CAAAM,aAAA,CAAAF,WAAA;EACL,IAAAG,SAAM,GAAAF,QAAiB,CAAAG,OAAA,gCAA+B;IACtDC,KAAM,GACJL,WAAQ;EAGV;EACE,iBAAMM,aAAgC;IAAA,IACpCC,uBAAkB,EAAAC,wBAAA;IAAA,IAClBC,QAAA;MAAkB,IAChBH,aAAG,KAAe,QAAAA,aAAU,uBAAAA,aAAA,CAAAG,QAAA;MAC9BC,gBAAA;QACA,IAAAJ,aAAkB,aAAAA,aAAyB,wBAAAC,uBAAA,GAAAD,aAAA,CAAAG,QAAA,cAAAF,uBAAA,uBAAAA,uBAAA,CAAAG,gBAAA;MAC3C;MACEC,gBAAI,EAAWL,aAAS,KAAS,QAAAA,aAAA,wBAAAE,wBAAA,GAAAF,aAAA,CAAAG,QAAA,cAAAD,wBAAA,uBAAAA,wBAAA,CAAAG,gBAAA;MAC/BC,cAAO,WAAAA,CAAAC,OAAA,EAAAC,UAAA,EAAAC,QAAA;QAAA,IACLC,wBAAM;QAAA,IACNF,UAAU,CAAAG,QAAA;UACZ;YACFC,IAAA;YAGIC,QAAA,EAAAhB;UACF;QAAO;QACC,IACN,mBAAU,CAAAiB,IAAA,CAAAN,UAAA;UACZ;YACFI,IAAA;YAMIC,QAAA,EAAAhB;UACF;QAAO;QACC,IACN,uBAAU,CAAAiB,IAAA,CAAAN,UAAA;UACZ;YACFI,IAAA;YAKIC,QAAA,EAAAhB;UACF;QAEA;QACA,IAAAW,UAAM,uBAA0B;UAChC,IAAIO,yBAAqB;UACvB,IAAAC,qBAAO,IAAAhB,aAAA,aAAAA,aAAA,wBAAAiB,yBAAA,GAAAjB,aAAA,CAAAG,QAAA,cAAAc,yBAAA,uBAAAA,yBAAA,CAAAX,cAAA,KAAAC,OAAA,CAAAD,cAAA;UAAA,IACLS,GAAG,GAAAC,qBAAA,CAAAT,OAAA,EAAAC,UAAA,EAAAC,QAAA;UAAA,IACHS,YAAU,GAAI,GAAA3B,IAAA,CAAA4B,GAAS,MAAA5B,IAAA,CAAA4B,GAAA;UAAA,IAAAJ,GACrB,kBAAAA,GAAA,IAAAA,GAAA,CAAAF,QAAA,CAAAO,QAAA,CAAAF,YAAA;YAAA,OACG;cACL,GAAAH,GAAA;cACFF,QAAA,EAAAE,GAAA,CAAAF,QAAA,CAAAQ,OAAA,CAAAH,YAAA,KAAA3B,IAAA,CAAA4B,GAAA,MAAA5B,IAAA,CAAA4B,GAAA,WAAA5B,IAAA,CAAA4B,GAAA;YACF;UACA;UACF,OAAAJ,GAAA;QAEA;QAEA,IAAAO,sBAAY,IAAAtB,aAA+B,aAAYA,aAAQ,wBAAAU,wBAAA,GAAAV,aAAA,CAAAG,QAAA,cAAAO,wBAAA,uBAAAA,wBAAA,CAAAJ,cAAA,KAAAC,OAAA,CAAAD,cAAA;QAG/D,IAAIiB,IAAA,GAAOD,sBAAqB,CAAAf,OAAA,EAAAC,UAAqB,EAAAC,QAAS;QAC5D,IAAAc,IAAA,IAAS,UAAM,IAAAA,IAAA,IAAc,oBAAoB,CAAAT,IAAA,CAAAS,IAAA,CAAAV,QAAA;UACnD;YAEAD,IAAO;YACTC,QAAA,EAAAhB;UACF;QAEA;QACE,OAAI0B,IAAA;MACJ;IACF;IACF;MACF,GAAAvB,aAAA","ignoreList":[]}
1
+ {"version":3,"names":["module","path","buildOneMetroResolverOverrides","param","projectRoot","require2","createRequire","emptyPath","resolve","paths","projectPackagePath","join","defaultConfig","_defaultConfig_resolver","_defaultConfig_resolver1","resolver","extraNodeModules","nodeModulesPaths","resolveRequest","context","moduleName","platform","_defaultConfig_resolver2","defaultResolveRequest","startsWith","originModulePath","endsWith","type","filePath","test","res","svgSrcSuffix","sep","includes","replace","res1"],"sources":["../../../src/metro-config/buildOneMetroResolverOverrides.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,MAAA,MAAY;AACnB,OAAOC,IAAA,MAAU;AAqBV,SAASC,+BAA+BC,KAAA;EAC7C;IAAAC;EAAA,IAAAD,KAAA;EACF,IAEOE,QAAA,GAAAL,MAAA,CAAAM,aAAA,CAAAF,WAAA;EACL,IAAAG,SAAM,GAAAF,QAAiB,CAAAG,OAAA,gCAA+B;IACtDC,KAAM,GACJL,WAAQ;EAEV;EAEA,IAAAM,kBAAmC,GAAAT,IAAwB,CAAAU,IAAA,CAAAP,WAAA;EACzD,iBAAMQ,aAAgC;IAAA,IACpCC,uBAAkB,EAAAC,wBAAA;IAAA,IAClBC,QAAA;MAAkB,IAChBH,aAAG,KAAe,QAAAA,aAAU,uBAAAA,aAAA,CAAAG,QAAA;MAC9BC,gBAAA;QACA,IAAAJ,aAAkB,aAAAA,aAAyB,wBAAAC,uBAAA,GAAAD,aAAA,CAAAG,QAAA,cAAAF,uBAAA,uBAAAA,uBAAA,CAAAG,gBAAA;MAC3C;MACEC,gBAAM,EAAAL,aAAA,KACJ,QAAAA,aAAyB,mBAAkB,KAAAE,wBAAQ,GAAAF,aAAA,CAAAG,QAAA,cAAAD,wBAAA,uBAAAA,wBAAA,CAAAG,gBAAA;MAGrDC,cACE,WAAAA,CAAeC,OAAA,EAAAC,UAAA,EAAAC,QACf;QAEA,IAAAC,wBAAO;QAAA,IACLC,qBAAc,IAAAX,aAAkB,aAAmBA,aAAA,wBAAAU,wBAAA,GAAAV,aAAA,CAAAG,QAAA,cAAAO,wBAAA,uBAAAA,wBAAA,CAAAJ,cAAA,KAAAC,OAAA,CAAAD,cAAA;QAAA,IACnDE,UAAA,gCAAAA,UAAA,CAAAI,UAAA;UAAA,OACAD,qBAAA;YACF,GAAAJ,OAAA;YACFM,gBAAA,EAAAf;UAEA,GAAIU,UAAW,EAAAC,QAAS;QACtB;QAAO,IACLD,UAAM,CAAAM,QAAA;UAAA,OACN;YACFC,IAAA;YACFC,QAAA,EAAArB;UAGA;QACE;QAAO,IACL,mBAAM,CAAAsB,IAAA,CAAAT,UAAA;UAAA,OACN;YACFO,IAAA;YACFC,QAAA,EAAArB;UAMA;QACE;QAAO,IACL,uBAAM,CAAAsB,IAAA,CAAAT,UAAA;UAAA,OACN;YACFO,IAAA;YACFC,QAAA,EAAArB;UAIA;QACE;QACA,IAAAa,UAAM,uBAA0B;UAChC,IAAIU,GAAA,GAAAP,qBAAqB,CAAAJ,OAAW,EAAAC,UAAS,EAAAC,QAAS;UACpD,IAAAU,YAAO,MAAA9B,IAAA,CAAA+B,GAAA,MAAA/B,IAAA,CAAA+B,GAAA;UAAA,IACLF,GAAG,kBAAAA,GAAA,IAAAA,GAAA,CAAAF,QAAA,CAAAK,QAAA,CAAAF,YAAA;YAAA,OACH;cAAuB,GACrBD,GAAA;cAAAF,QACG,EAAKE,GAAG,CAAAF,QAAM,CAAAM,OAAQ,CAAAH,YAAgB,KAAG9B,IAAA,CAAA+B,GAAA,MAAA/B,IAAA,CAAA+B,GAAA,WAAA/B,IAAA,CAAA+B,GAAA;YAAA;UAC9C;UAEJ,OAAAF,GAAA;QACA;QACF,IAAAK,IAAA,GAAAZ,qBAAA,CAAAJ,OAAA,EAAAC,UAAA,EAAAC,QAAA;QAEA,IAAAc,IAAM,IAAM,cAAAA,IAAA,IAAsB,oBAAS,CAAYN,IAAA,CAAAM,IAAQ,CAAAP,QAAA;UAG/D,OAAI;YACFD,IAAA,EAAO,YAAQ;YACjBC,QAAA,EAAArB;UAEA;QACF;QACF,OAAA4B,IAAA;MAEA;IAAO;IACD,OACJ;MACF,GAAAvB,aAAA;MACFG;IACF","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ import path from "node:path";
2
+ import { describe, expect, it } from "vitest";
3
+ import { buildOneMetroResolverOverrides } from "./buildOneMetroResolverOverrides.mjs";
4
+ describe("buildOneMetroResolverOverrides", () => {
5
+ it("resolves every react-native-worklets import from the app root", () => {
6
+ const projectRoot = path.resolve(__dirname, "../../");
7
+ const nestedOrigin = path.join(projectRoot, "node_modules/react-native-reanimated/src/index.ts");
8
+ const resolvedOrigins = [];
9
+ const config = buildOneMetroResolverOverrides({
10
+ projectRoot
11
+ })({
12
+ resolver: {
13
+ resolveRequest: (context, moduleName, _platform) => {
14
+ resolvedOrigins.push(`${moduleName}:${context.originModulePath}`);
15
+ return {
16
+ type: "sourceFile",
17
+ filePath: moduleName
18
+ };
19
+ }
20
+ }
21
+ });
22
+ const resolveRequest = config.resolver?.resolveRequest;
23
+ if (!resolveRequest) {
24
+ throw new Error("expected a Metro resolver override");
25
+ }
26
+ resolveRequest({
27
+ originModulePath: nestedOrigin
28
+ }, "react-native-worklets", "ios");
29
+ resolveRequest({
30
+ originModulePath: nestedOrigin
31
+ }, "react-native-worklets/package.json", "ios");
32
+ resolveRequest({
33
+ originModulePath: nestedOrigin
34
+ }, "react-native-safe-area-context", "ios");
35
+ expect(resolvedOrigins).toEqual([`react-native-worklets:${path.join(projectRoot, "package.json")}`, `react-native-worklets/package.json:${path.join(projectRoot, "package.json")}`, `react-native-safe-area-context:${nestedOrigin}`]);
36
+ });
37
+ it("keeps the compiled react-native-svg native entry point", () => {
38
+ const projectRoot = path.resolve(__dirname, "../../");
39
+ const config = buildOneMetroResolverOverrides({
40
+ projectRoot
41
+ })({
42
+ resolver: {
43
+ resolveRequest: (_context, moduleName, _platform) => ({
44
+ type: "sourceFile",
45
+ filePath: path.join(projectRoot, "node_modules", moduleName, "src", "index.ts")
46
+ })
47
+ }
48
+ });
49
+ const resolveRequest = config.resolver?.resolveRequest;
50
+ if (!resolveRequest) {
51
+ throw new Error("expected a Metro resolver override");
52
+ }
53
+ expect(resolveRequest({
54
+ originModulePath: path.join(projectRoot, "app.tsx")
55
+ }, "react-native-svg", "ios")).toEqual({
56
+ type: "sourceFile",
57
+ filePath: path.join(projectRoot, "node_modules", "react-native-svg", "lib", "commonjs", "index.js")
58
+ });
59
+ });
60
+ });
61
+ //# sourceMappingURL=buildOneMetroResolverOverrides.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["path","describe","expect","it","buildOneMetroResolverOverrides","projectRoot","resolve","__dirname","nestedOrigin","join","resolvedOrigins","config","resolver","resolveRequest","context","moduleName","_platform","push","originModulePath","type","filePath","Error","toEqual","_context"],"sources":["../../../src/metro-config/buildOneMetroResolverOverrides.test.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,IAAA,MAAU;AACjB,SAASC,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,8BAAA,QAAsC;AAE/CH,QAAA,CAAS,kCAAkC,MAAM;EAC/CE,EAAA,CAAG,iEAAiE,MAAM;IACxE,MAAME,WAAA,GAAcL,IAAA,CAAKM,OAAA,CAAQC,SAAA,EAAW,QAAQ;IACpD,MAAMC,YAAA,GAAeR,IAAA,CAAKS,IAAA,CACxBJ,WAAA,EACA,mDACF;IACA,MAAMK,eAAA,GAA4B,EAAC;IACnC,MAAMC,MAAA,GAASP,8BAAA,CAA+B;MAAEC;IAAY,CAAC,EAAE;MAC7DO,QAAA,EAAU;QACRC,cAAA,EAAgBA,CACdC,OAAA,EACAC,UAAA,EACAC,SAAA,KACG;UACHN,eAAA,CAAgBO,IAAA,CAAK,GAAGF,UAAU,IAAID,OAAA,CAAQI,gBAAgB,EAAE;UAChE,OAAO;YAAEC,IAAA,EAAM;YAAcC,QAAA,EAAUL;UAAW;QACpD;MACF;IACF,CAAC;IACD,MAAMF,cAAA,GAAiBF,MAAA,CAAOC,QAAA,EAAUC,cAAA;IAExC,IAAI,CAACA,cAAA,EAAgB;MACnB,MAAM,IAAIQ,KAAA,CAAM,oCAAoC;IACtD;IAEAR,cAAA,CAAe;MAAEK,gBAAA,EAAkBV;IAAa,GAAG,yBAAyB,KAAK;IACjFK,cAAA,CACE;MAAEK,gBAAA,EAAkBV;IAAa,GACjC,sCACA,KACF;IACAK,cAAA,CACE;MAAEK,gBAAA,EAAkBV;IAAa,GACjC,kCACA,KACF;IAEAN,MAAA,CAAOQ,eAAe,EAAEY,OAAA,CAAQ,CAC9B,yBAAyBtB,IAAA,CAAKS,IAAA,CAAKJ,WAAA,EAAa,cAAc,CAAC,IAC/D,sCAAsCL,IAAA,CAAKS,IAAA,CAAKJ,WAAA,EAAa,cAAc,CAAC,IAC5E,kCAAkCG,YAAY,GAC/C;EACH,CAAC;EAEDL,EAAA,CAAG,0DAA0D,MAAM;IACjE,MAAME,WAAA,GAAcL,IAAA,CAAKM,OAAA,CAAQC,SAAA,EAAW,QAAQ;IACpD,MAAMI,MAAA,GAASP,8BAAA,CAA+B;MAAEC;IAAY,CAAC,EAAE;MAC7DO,QAAA,EAAU;QACRC,cAAA,EAAgBA,CACdU,QAAA,EACAR,UAAA,EACAC,SAAA,MACI;UACJG,IAAA,EAAM;UACNC,QAAA,EAAUpB,IAAA,CAAKS,IAAA,CAAKJ,WAAA,EAAa,gBAAgBU,UAAA,EAAY,OAAO,UAAU;QAChF;MACF;IACF,CAAC;IACD,MAAMF,cAAA,GAAiBF,MAAA,CAAOC,QAAA,EAAUC,cAAA;IAExC,IAAI,CAACA,cAAA,EAAgB;MACnB,MAAM,IAAIQ,KAAA,CAAM,oCAAoC;IACtD;IAEAnB,MAAA,CACEW,cAAA,CACE;MAAEK,gBAAA,EAAkBlB,IAAA,CAAKS,IAAA,CAAKJ,WAAA,EAAa,SAAS;IAAE,GACtD,oBACA,KACF,CACF,EAAEiB,OAAA,CAAQ;MACRH,IAAA,EAAM;MACNC,QAAA,EAAUpB,IAAA,CAAKS,IAAA,CACbJ,WAAA,EACA,gBACA,oBACA,OACA,YACA,UACF;IACF,CAAC;EACH,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,65 @@
1
+ import path from "path";
2
+ import { describe, expect, it } from "vitest";
3
+ import { buildOneMetroResolverOverrides } from "./buildOneMetroResolverOverrides.native.js";
4
+ describe("buildOneMetroResolverOverrides", function () {
5
+ it("resolves every react-native-worklets import from the app root", function () {
6
+ var _config_resolver;
7
+ var projectRoot = path.resolve(__dirname, "../../");
8
+ var nestedOrigin = path.join(projectRoot, "node_modules/react-native-reanimated/src/index.ts");
9
+ var resolvedOrigins = [];
10
+ var config = buildOneMetroResolverOverrides({
11
+ projectRoot
12
+ })({
13
+ resolver: {
14
+ resolveRequest: function (context, moduleName, _platform) {
15
+ resolvedOrigins.push(`${moduleName}:${context.originModulePath}`);
16
+ return {
17
+ type: "sourceFile",
18
+ filePath: moduleName
19
+ };
20
+ }
21
+ }
22
+ });
23
+ var resolveRequest = (_config_resolver = config.resolver) === null || _config_resolver === void 0 ? void 0 : _config_resolver.resolveRequest;
24
+ if (!resolveRequest) {
25
+ throw new Error("expected a Metro resolver override");
26
+ }
27
+ resolveRequest({
28
+ originModulePath: nestedOrigin
29
+ }, "react-native-worklets", "ios");
30
+ resolveRequest({
31
+ originModulePath: nestedOrigin
32
+ }, "react-native-worklets/package.json", "ios");
33
+ resolveRequest({
34
+ originModulePath: nestedOrigin
35
+ }, "react-native-safe-area-context", "ios");
36
+ expect(resolvedOrigins).toEqual([`react-native-worklets:${path.join(projectRoot, "package.json")}`, `react-native-worklets/package.json:${path.join(projectRoot, "package.json")}`, `react-native-safe-area-context:${nestedOrigin}`]);
37
+ });
38
+ it("keeps the compiled react-native-svg native entry point", function () {
39
+ var _config_resolver;
40
+ var projectRoot = path.resolve(__dirname, "../../");
41
+ var config = buildOneMetroResolverOverrides({
42
+ projectRoot
43
+ })({
44
+ resolver: {
45
+ resolveRequest: function (_context, moduleName, _platform) {
46
+ return {
47
+ type: "sourceFile",
48
+ filePath: path.join(projectRoot, "node_modules", moduleName, "src", "index.ts")
49
+ };
50
+ }
51
+ }
52
+ });
53
+ var resolveRequest = (_config_resolver = config.resolver) === null || _config_resolver === void 0 ? void 0 : _config_resolver.resolveRequest;
54
+ if (!resolveRequest) {
55
+ throw new Error("expected a Metro resolver override");
56
+ }
57
+ expect(resolveRequest({
58
+ originModulePath: path.join(projectRoot, "app.tsx")
59
+ }, "react-native-svg", "ios")).toEqual({
60
+ type: "sourceFile",
61
+ filePath: path.join(projectRoot, "node_modules", "react-native-svg", "lib", "commonjs", "index.js")
62
+ });
63
+ });
64
+ });
65
+ //# sourceMappingURL=buildOneMetroResolverOverrides.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["path","describe","expect","it","buildOneMetroResolverOverrides","_config_resolver","projectRoot","resolve","__dirname","nestedOrigin","join","resolvedOrigins","config","resolver","resolveRequest","context","moduleName","_platform","push","originModulePath","type","filePath","Error","toEqual","_context"],"sources":["../../../src/metro-config/buildOneMetroResolverOverrides.test.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,IAAA,MAAU;AACjB,SAASC,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,8BAAA,QAAsC;AAE/CH,QAAA,CAAS,kCAAkC,YAAM;EAC/CE,EAAA,CAAG,iEAAiE,YAAM;IACxE,IAAAE,gBAAoB;IACpB,IAAAC,WAAM,GAAAN,IAAe,CAAAO,OAAK,CAAAC,SAAA;IAAA,IACxBC,YAAA,GAAAT,IAAA,CAAAU,IAAA,CAAAJ,WAAA;IAAA,IACAK,eAAA;IACF,IAAAC,MAAA,GAAAR,8BAAA;MACAE;IACA;MACEO,QAAA,EAAU;QACRC,cAAA,EAAgB,SAAAA,CACdC,OACA,EAAAC,UACA,EAAAC,SACG;UACHN,eAAA,CAAgBO,IAAA,CAAK,GAAGF,UAAU,IAAID,OAAA,CAAQI,gBAAgB,EAAE;UAChE,OAAO;YACTC,IAAA;YACFC,QAAA,EAAAL;UACD;QACD;MAEA;IACE;IACF,IAAAF,cAAA,IAAAT,gBAAA,GAAAO,MAAA,CAAAC,QAAA,cAAAR,gBAAA,uBAAAA,gBAAA,CAAAS,cAAA;IAEA,KAAAA,cAAiB;MACjB,UAAAQ,KAAA;IAAA;IACmCR,cACjC;MACAK,gBAAA,EAAAV;IACF;IACAK,cAAA;MACEK,gBAAE,EAAAV;IAA+B,GACjC;IAAAK,cACA;MACFK,gBAAA,EAAAV;IAEA,mCAAgC;IAAAP,MAC9B,CAAAS,eAAA,EAAAY,OAAyB,CAAK,CAC9B,yBAAAvB,IAAA,CAAAU,IAAA,CAAAJ,WAA2C,EAAK,cAAa,KAC7D,sCAAkCN,IAAA,CAAAU,IAAY,CAAAJ,WAAA,qBAC/C,kCAAAG,YAAA,GACF;EAED;EACEN,EAAA,yDAAoD;IACpD,IAAAE,gBAAe;IAAgD,IAC7DC,WAAU,GAAAN,IAAA,CAAAO,OAAA,CAAAC,SAAA;IAAA,IACRI,MAAA,GAAAR,8BAGE;MACIE;IACE;MACwEO,QAChF;QACFC,cAAA,WAAAA,CAAAU,QAAA,EAAAR,UAAA,EAAAC,SAAA;UACD;YACKG,IAAA,cAAiB;YAElBC,QAAA,EAAArB,IAAgB,CAAAU,IAAA,CAAAJ,WAAA,kBAAAU,UAAA;UACnB;QACF;MAEA;IAAA,EACE;IAAA,IACEF,cAAE,IAAAT,gBAA4B,GAAAO,MAAa,CAAAC,QAAS,MAAE,QAAAR,gBAAA,uBAAAA,gBAAA,CAAAS,cAAA;IAAA,IACtD,CAAAA,cAAA;MAAA,MACA,IAAAQ,KAAA;IAAA;IAEJpB,MAAE,CAAAY,cAAQ;MACRK,gBAAM,EAAAnB,IAAA,CAAAU,IAAA,CAAAJ,WAAA;IAAA,GACN,kBAAe,UAAAiB,OAAA;MAAAH,IACb;MAAAC,QACA,EAAArB,IAAA,CAAAU,IAAA,CAAAJ,WAAA;IAAA;EACA;AACA","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { useNavigationContainerRef } from "@react-navigation/native";
1
+ import { useNavigationContainerRef } from "@react-navigation/core";
2
2
  import { resetLoaderState } from "../useLoader.mjs";
3
3
  import * as routerStore from "./router.mjs";
4
4
  import { initialize } from "./router.mjs";
@@ -1 +1 @@
1
- {"version":3,"names":["useNavigationContainerRef","resetLoaderState","routerStore","initialize","getSSRInitialState","ensureBaseLinkingConfig","initVersion","lastInitVersion","ssrRouteTreeContext","useInitializeOneRouter","context","initialLocation","linking","navigationRef","window","routeNode","initialState","rootComponent","contexts","globalThis","Map","prepareForSSRRender","resetState"],"sources":["../../../src/router/useInitializeOneRouter.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,yBAAA,QAAiC;AAC1C,SAASC,gBAAA,QAAwB;AAGjC,YAAYC,WAAA,MAAiB;AAC7B,SAASC,UAAA,QAAkB;AAC3B,SAASC,kBAAA,EAAoBC,uBAAA,QAA+B;AAI5D,IAAIC,WAAA,GAAc;AAClB,IAAIC,eAAA,GAAkB;AAMtB,IAAIC,mBAAA,GAA+C;AAE5C,SAASC,uBACdC,OAAA,EACAC,eAAA,EACAC,OAAA,EACA;EACA,MAAMC,aAAA,GAAgBb,yBAAA,CAA0B;EAGhD,IAAI,OAAOc,MAAA,KAAW,aAAa;IACjC,IAAIN,mBAAA,KAAwBE,OAAA,EAAS;MAEnCP,UAAA,CAAWO,OAAA,EAASG,aAAA,EAAeF,eAAA,EAAiBC,OAAO;MAC3DJ,mBAAA,GAAsBE,OAAA;MAEtBL,uBAAA,CAAwBH,WAAA,CAAYa,SAAA,EAAWH,OAAO;IACxD;IAGA,MAAMI,YAAA,GAAeL,eAAA,GACjBP,kBAAA,CAAmBF,WAAA,CAAYa,SAAA,EAAWJ,eAAA,EAAiBC,OAAO,IAClEV,WAAA,CAAYc,YAAA;IAGhB,OAAO;MACLC,aAAA,EAAef,WAAA,CAAYe,aAAA;MAC3BJ,aAAA;MACAG;IACF;EACF;EAGA,IAAIT,eAAA,KAAoBD,WAAA,IAAeJ,WAAA,CAAYW,aAAA,KAAkBA,aAAA,EAAe;IAElF,MAAMK,QAAA,GAAW;IACjBC,UAAA,CAAWD,QAAQ,IAAI,mBAAIE,GAAA,CAAgC;IAE3DjB,UAAA,CAAWO,OAAA,EAASG,aAAA,EAAeF,eAAA,EAAiBC,OAAO;IAC3DL,eAAA,GAAkBD,WAAA;EACpB;EAEA,OAAOJ,WAAA;AACT;AAGO,SAASmB,oBAAA,EAAsB;EACpCf,WAAA;AACF;AAKO,SAASgB,WAAA,EAAa;EAC3BD,mBAAA,CAAoB;EACpBpB,gBAAA,CAAiB;AACnB;AAEAkB,UAAA,CAAW,kBAAkB,IAAIG,UAAA","ignoreList":[]}
1
+ {"version":3,"names":["useNavigationContainerRef","resetLoaderState","routerStore","initialize","getSSRInitialState","ensureBaseLinkingConfig","initVersion","lastInitVersion","ssrRouteTreeContext","useInitializeOneRouter","context","initialLocation","linking","navigationRef","window","routeNode","initialState","rootComponent","contexts","globalThis","Map","prepareForSSRRender","resetState"],"sources":["../../../src/router/useInitializeOneRouter.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,yBAAA,QAAiC;AAC1C,SAASC,gBAAA,QAAwB;AAGjC,YAAYC,WAAA,MAAiB;AAC7B,SAASC,UAAA,QAAkB;AAC3B,SAASC,kBAAA,EAAoBC,uBAAA,QAA+B;AAI5D,IAAIC,WAAA,GAAc;AAClB,IAAIC,eAAA,GAAkB;AAMtB,IAAIC,mBAAA,GAA+C;AAE5C,SAASC,uBACdC,OAAA,EACAC,eAAA,EACAC,OAAA,EACA;EACA,MAAMC,aAAA,GAAgBb,yBAAA,CAAyD;EAG/E,IAAI,OAAOc,MAAA,KAAW,aAAa;IACjC,IAAIN,mBAAA,KAAwBE,OAAA,EAAS;MAEnCP,UAAA,CAAWO,OAAA,EAASG,aAAA,EAAeF,eAAA,EAAiBC,OAAO;MAC3DJ,mBAAA,GAAsBE,OAAA;MAEtBL,uBAAA,CAAwBH,WAAA,CAAYa,SAAA,EAAWH,OAAO;IACxD;IAGA,MAAMI,YAAA,GAAeL,eAAA,GACjBP,kBAAA,CAAmBF,WAAA,CAAYa,SAAA,EAAWJ,eAAA,EAAiBC,OAAO,IAClEV,WAAA,CAAYc,YAAA;IAGhB,OAAO;MACLC,aAAA,EAAef,WAAA,CAAYe,aAAA;MAC3BJ,aAAA;MACAG;IACF;EACF;EAGA,IAAIT,eAAA,KAAoBD,WAAA,IAAeJ,WAAA,CAAYW,aAAA,KAAkBA,aAAA,EAAe;IAElF,MAAMK,QAAA,GAAW;IACjBC,UAAA,CAAWD,QAAQ,IAAI,mBAAIE,GAAA,CAAgC;IAE3DjB,UAAA,CAAWO,OAAA,EAASG,aAAA,EAAeF,eAAA,EAAiBC,OAAO;IAC3DL,eAAA,GAAkBD,WAAA;EACpB;EAEA,OAAOJ,WAAA;AACT;AAGO,SAASmB,oBAAA,EAAsB;EACpCf,WAAA;AACF;AAKO,SAASgB,WAAA,EAAa;EAC3BD,mBAAA,CAAoB;EACpBpB,gBAAA,CAAiB;AACnB;AAEAkB,UAAA,CAAW,kBAAkB,IAAIG,UAAA","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { useNavigationContainerRef } from "@react-navigation/native";
1
+ import { useNavigationContainerRef } from "@react-navigation/core";
2
2
  import { resetLoaderState } from "../useLoader.native.js";
3
3
  import * as routerStore from "./router.native.js";
4
4
  import { initialize } from "./router.native.js";
@@ -15,7 +15,7 @@ vi.hoisted(() => {
15
15
  value: {}
16
16
  });
17
17
  });
18
- vi.mock("@react-navigation/native", () => ({
18
+ vi.mock("@react-navigation/core", () => ({
19
19
  useNavigationContainerRef: () => probe.navigationRef
20
20
  }));
21
21
  vi.mock("../useLoader", () => ({
@@ -1 +1 @@
1
- {"version":3,"names":["beforeEach","expect","test","vi","useInitializeOneRouter","probe","hoisted","navigationRef","current","routerNavigationRef","initialize","fn","_context","Object","defineProperty","globalThis","configurable","value","mock","useNavigationContainerRef","resetLoaderState","routeNode","rootComponent","initialState","ensureBaseLinkingConfig","getSSRInitialState","mockClear","context","assign","routeContext","_id","Error","keys","resolve","id","firstRef","URL","nextRef","nextLocation","toHaveBeenLastCalledWith"],"sources":["../../../src/router/useInitializeOneRouter.preview-lifecycle.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,MAAA,EAAQC,IAAA,EAAMC,EAAA,QAAU;AAwC7C,SAASC,sBAAA,QAA8B;AArCvC,MAAMC,KAAA,GAAQF,EAAA,CAAGG,OAAA,CAId,OAAO;EACRC,aAAA,EAAe;IAAEC,OAAA,EAAS;EAAK;EAC/BC,mBAAA,EAAqB;EACrBC,UAAA,EAAYP,EAAA,CAAGQ,EAAA,CAAG,CAACC,QAAA,EAAmBL,aAAA,KAAqC;IACzEF,KAAA,CAAMI,mBAAA,GAAsBF,aAAA;EAC9B,CAAC;AACH,EAAE;AAEFJ,EAAA,CAAGG,OAAA,CAAQ,MAAM;EACfO,MAAA,CAAOC,cAAA,CAAeC,UAAA,EAAY,UAAU;IAAEC,YAAA,EAAc;IAAMC,KAAA,EAAO,CAAC;EAAE,CAAC;AAC/E,CAAC;AAEDd,EAAA,CAAGe,IAAA,CAAK,4BAA4B,OAAO;EACzCC,yBAAA,EAA2BA,CAAA,KAAMd,KAAA,CAAME;AACzC,EAAE;AAEFJ,EAAA,CAAGe,IAAA,CAAK,gBAAgB,OAAO;EAAEE,gBAAA,EAAkBjB,EAAA,CAAGQ,EAAA,CAAG;AAAE,EAAE;AAE7DR,EAAA,CAAGe,IAAA,CAAK,YAAY,OAAO;EACzBR,UAAA,EAAYL,KAAA,CAAMK,UAAA;EAClB,IAAIH,cAAA,EAAgB;IAClB,OAAOF,KAAA,CAAMI,mBAAA;EACf;EACAY,SAAA,EAAW;EACXC,aAAA,EAAe;EACfC,YAAA,EAAc;AAChB,EAAE;AAEFpB,EAAA,CAAGe,IAAA,CAAK,mBAAmB,OAAO;EAChCM,uBAAA,EAAyBrB,EAAA,CAAGQ,EAAA,CAAG;EAC/Bc,kBAAA,EAAoBtB,EAAA,CAAGQ,EAAA,CAAG;AAC5B,EAAE;AAIFX,UAAA,CAAW,MAAM;EACfK,KAAA,CAAMK,UAAA,CAAWgB,SAAA,CAAU;AAC7B,CAAC;AAEDxB,IAAA,CAAK,iEAAiE,MAAM;EAC1E,MAAMyB,OAAA,GAA4Bd,MAAA,CAAOe,MAAA,CACvC,SAASC,aAAgBC,GAAA,EAAgB;IACvC,MAAM,IAAIC,KAAA,CAAM,8CAA8C;EAChE,GACA;IACEC,IAAA,EAAMA,CAAA,KAAM,EAAC;IACbC,OAAA,EAAUC,EAAA,IAAeA,EAAA;IACzBA,EAAA,EAAI;EACN,CACF;EACA,MAAMC,QAAA,GAAW;IAAE3B,OAAA,EAAS;EAAK;EACjCH,KAAA,CAAME,aAAA,GAAgB4B,QAAA;EACtB/B,sBAAA,CAAuBuB,OAAA,EAAS,IAAIS,GAAA,CAAI,uBAAuB,CAAC;EAEhE,MAAMC,OAAA,GAAU;IAAE7B,OAAA,EAAS;EAAK;EAChC,MAAM8B,YAAA,GAAe,IAAIF,GAAA,CAAI,gCAAgC;EAC7D/B,KAAA,CAAME,aAAA,GAAgB8B,OAAA;EACtBjC,sBAAA,CAAuBuB,OAAA,EAASW,YAAY;EAE5CrC,MAAA,CAAOI,KAAA,CAAMK,UAAU,EAAE6B,wBAAA,CACvBZ,OAAA,EACAU,OAAA,EACAC,YAAA,EACA,MACF;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["beforeEach","expect","test","vi","useInitializeOneRouter","probe","hoisted","navigationRef","current","routerNavigationRef","initialize","fn","_context","Object","defineProperty","globalThis","configurable","value","mock","useNavigationContainerRef","resetLoaderState","routeNode","rootComponent","initialState","ensureBaseLinkingConfig","getSSRInitialState","mockClear","context","assign","routeContext","_id","Error","keys","resolve","id","firstRef","URL","nextRef","nextLocation","toHaveBeenLastCalledWith"],"sources":["../../../src/router/useInitializeOneRouter.preview-lifecycle.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,MAAA,EAAQC,IAAA,EAAMC,EAAA,QAAU;AAwC7C,SAASC,sBAAA,QAA8B;AArCvC,MAAMC,KAAA,GAAQF,EAAA,CAAGG,OAAA,CAId,OAAO;EACRC,aAAA,EAAe;IAAEC,OAAA,EAAS;EAAK;EAC/BC,mBAAA,EAAqB;EACrBC,UAAA,EAAYP,EAAA,CAAGQ,EAAA,CAAG,CAACC,QAAA,EAAmBL,aAAA,KAAqC;IACzEF,KAAA,CAAMI,mBAAA,GAAsBF,aAAA;EAC9B,CAAC;AACH,EAAE;AAEFJ,EAAA,CAAGG,OAAA,CAAQ,MAAM;EACfO,MAAA,CAAOC,cAAA,CAAeC,UAAA,EAAY,UAAU;IAAEC,YAAA,EAAc;IAAMC,KAAA,EAAO,CAAC;EAAE,CAAC;AAC/E,CAAC;AAEDd,EAAA,CAAGe,IAAA,CAAK,0BAA0B,OAAO;EACvCC,yBAAA,EAA2BA,CAAA,KAAMd,KAAA,CAAME;AACzC,EAAE;AAEFJ,EAAA,CAAGe,IAAA,CAAK,gBAAgB,OAAO;EAAEE,gBAAA,EAAkBjB,EAAA,CAAGQ,EAAA,CAAG;AAAE,EAAE;AAE7DR,EAAA,CAAGe,IAAA,CAAK,YAAY,OAAO;EACzBR,UAAA,EAAYL,KAAA,CAAMK,UAAA;EAClB,IAAIH,cAAA,EAAgB;IAClB,OAAOF,KAAA,CAAMI,mBAAA;EACf;EACAY,SAAA,EAAW;EACXC,aAAA,EAAe;EACfC,YAAA,EAAc;AAChB,EAAE;AAEFpB,EAAA,CAAGe,IAAA,CAAK,mBAAmB,OAAO;EAChCM,uBAAA,EAAyBrB,EAAA,CAAGQ,EAAA,CAAG;EAC/Bc,kBAAA,EAAoBtB,EAAA,CAAGQ,EAAA,CAAG;AAC5B,EAAE;AAIFX,UAAA,CAAW,MAAM;EACfK,KAAA,CAAMK,UAAA,CAAWgB,SAAA,CAAU;AAC7B,CAAC;AAEDxB,IAAA,CAAK,iEAAiE,MAAM;EAC1E,MAAMyB,OAAA,GAA4Bd,MAAA,CAAOe,MAAA,CACvC,SAASC,aAAgBC,GAAA,EAAgB;IACvC,MAAM,IAAIC,KAAA,CAAM,8CAA8C;EAChE,GACA;IACEC,IAAA,EAAMA,CAAA,KAAM,EAAC;IACbC,OAAA,EAAUC,EAAA,IAAeA,EAAA;IACzBA,EAAA,EAAI;EACN,CACF;EACA,MAAMC,QAAA,GAAW;IAAE3B,OAAA,EAAS;EAAK;EACjCH,KAAA,CAAME,aAAA,GAAgB4B,QAAA;EACtB/B,sBAAA,CAAuBuB,OAAA,EAAS,IAAIS,GAAA,CAAI,uBAAuB,CAAC;EAEhE,MAAMC,OAAA,GAAU;IAAE7B,OAAA,EAAS;EAAK;EAChC,MAAM8B,YAAA,GAAe,IAAIF,GAAA,CAAI,gCAAgC;EAC7D/B,KAAA,CAAME,aAAA,GAAgB8B,OAAA;EACtBjC,sBAAA,CAAuBuB,OAAA,EAASW,YAAY;EAE5CrC,MAAA,CAAOI,KAAA,CAAMK,UAAU,EAAE6B,wBAAA,CACvBZ,OAAA,EACAU,OAAA,EACAC,YAAA,EACA,MACF;AACF,CAAC","ignoreList":[]}
@@ -17,7 +17,7 @@ vi.hoisted(function () {
17
17
  value: {}
18
18
  });
19
19
  });
20
- vi.mock("@react-navigation/native", function () {
20
+ vi.mock("@react-navigation/core", function () {
21
21
  return {
22
22
  useNavigationContainerRef: function () {
23
23
  return probe.navigationRef;
@@ -1 +1 @@
1
- {"version":3,"names":["beforeEach","expect","test","vi","useInitializeOneRouter","probe","hoisted","navigationRef","current","routerNavigationRef","initialize","fn","_context","Object","defineProperty","globalThis","configurable","value","mock","useNavigationContainerRef","resetLoaderState","routeNode","rootComponent","initialState","ensureBaseLinkingConfig","getSSRInitialState","mockClear","context","assign","routeContext","_id","Error","keys"],"sources":["../../../src/router/useInitializeOneRouter.preview-lifecycle.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,MAAA,EAAQC,IAAA,EAAMC,EAAA,QAAU;AAwC7C,SAASC,sBAAA,QAA8B;AArCvC,IAAAC,KAAM,GAAAF,EAAQ,CAAAG,OAAG,aAIP;EACR;IACAC,aAAA;MACAC,OAAA,EAAY;IACV;IACDC,mBAAA;IACDC,UAAA,EAAAP,EAAA,CAAAQ,EAAA,WAAAC,QAAA,EAAAL,aAAA;MAECF,KAAQ,CAAAI,mBAAM,GAAAF,aAAA;IACf;EACD;AAED;AAA2CJ,EACzC,CAAAG,OAAA;EACAO,MAAA,CAAAC,cAAA,CAAAC,UAAA;IAECC,YAAK;IAELC,KAAK;EACN;AAAkB,EAClB;AACEd,EAAA,CAAAe,IAAA,2BAAa;EACf;IACAC,yBAAW,WAAAA,CAAA;MACX,OAAAd,KAAe,CAAAE,aAAA;IACf;EACA;AAEF;AAAkCJ,EAChC,CAAAe,IAAA,6BAA+B;EAC/B;IACAE,gBAAA,EAAAjB,EAAA,CAAAQ,EAAA;EAIF;AACE;AACFR,EAAC,CAAAe,IAAA;EAED,OAAK;IACHR,UAAM,EAAAL,KAA4B,CAAAK,UAAO;IACvC,IAAAH,aAASA,CAAA;MACP,OAAMF,KAAI,CAAAI,mBAAM;IAClB;IACAY,SAAA;IAAAC,aACQ,EAAO;IAAAC,YACH,OAAe;EAAA;AACrB;AACNpB,EACF,CAAAe,IAAA;EACA,OAAM;IACNM,uBAAsB,EAAArB,EAAA,CAAAQ,EAAA;IACtBc,kBAAA,EAAAtB,EAAuB,CAAAQ,EAAA;EAEvB;AACA;AACAX,UAAM;EACNK,KAAA,CAAAK,UAAA,CAAAgB,SAAuB;AAEvB;AAAyBxB,IACvB;EAAA,IACAyB,OAAA,GAAAd,MAAA,CAAAe,MAAA,UAAAC,aAAAC,GAAA;IACA,UAAAC,KAAA;EAAA,GACA;IACFC,IAAA,WAAAA,CAAA;MACD","ignoreList":[]}
1
+ {"version":3,"names":["beforeEach","expect","test","vi","useInitializeOneRouter","probe","hoisted","navigationRef","current","routerNavigationRef","initialize","fn","_context","Object","defineProperty","globalThis","configurable","value","mock","useNavigationContainerRef","resetLoaderState","routeNode","rootComponent","initialState","ensureBaseLinkingConfig","getSSRInitialState","mockClear","context","assign","routeContext","_id","Error","keys"],"sources":["../../../src/router/useInitializeOneRouter.preview-lifecycle.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,UAAA,EAAYC,MAAA,EAAQC,IAAA,EAAMC,EAAA,QAAU;AAwC7C,SAASC,sBAAA,QAA8B;AArCvC,IAAAC,KAAM,GAAAF,EAAQ,CAAAG,OAAG,aAIP;EACR;IACAC,aAAA;MACAC,OAAA,EAAY;IACV;IACDC,mBAAA;IACDC,UAAA,EAAAP,EAAA,CAAAQ,EAAA,WAAAC,QAAA,EAAAL,aAAA;MAECF,KAAQ,CAAAI,mBAAM,GAAAF,aAAA;IACf;EACD;AAED;AAAyCJ,EACvC,CAAAG,OAAA;EACAO,MAAA,CAAAC,cAAA,CAAAC,UAAA;IAECC,YAAK;IAELC,KAAK;EACN;AAAkB,EAClB;AACEd,EAAA,CAAAe,IAAA,yBAAa;EACf;IACAC,yBAAW,WAAAA,CAAA;MACX,OAAAd,KAAe,CAAAE,aAAA;IACf;EACA;AAEF;AAAkCJ,EAChC,CAAAe,IAAA,6BAA+B;EAC/B;IACAE,gBAAA,EAAAjB,EAAA,CAAAQ,EAAA;EAIF;AACE;AACFR,EAAC,CAAAe,IAAA;EAED,OAAK;IACHR,UAAM,EAAAL,KAA4B,CAAAK,UAAO;IACvC,IAAAH,aAASA,CAAA;MACP,OAAMF,KAAI,CAAAI,mBAAM;IAClB;IACAY,SAAA;IAAAC,aACQ,EAAO;IAAAC,YACH,OAAe;EAAA;AACrB;AACNpB,EACF,CAAAe,IAAA;EACA,OAAM;IACNM,uBAAsB,EAAArB,EAAA,CAAAQ,EAAA;IACtBc,kBAAA,EAAAtB,EAAuB,CAAAQ,EAAA;EAEvB;AACA;AACAX,UAAM;EACNK,KAAA,CAAAK,UAAA,CAAAgB,SAAuB;AAEvB;AAAyBxB,IACvB;EAAA,IACAyB,OAAA,GAAAd,MAAA,CAAAe,MAAA,UAAAC,aAAAC,GAAA;IACA,UAAAC,KAAA;EAAA,GACA;IACFC,IAAA,WAAAA,CAAA;MACD","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { STACK_TOOLBAR_CHILD, getStackToolbarImplementation, registerStackToolbarImplementation } from "./layouts/stack-utils/StackToolbarImplementation.mjs";
2
+ export { STACK_TOOLBAR_CHILD, getStackToolbarImplementation, registerStackToolbarImplementation };
3
+ //# sourceMappingURL=stack-toolbar-implementation.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["STACK_TOOLBAR_CHILD","getStackToolbarImplementation","registerStackToolbarImplementation"],"sources":["../../src/stack-toolbar-implementation.ts"],"sourcesContent":[null],"mappings":"AAAA,SACEA,mBAAA,EACAC,6BAAA,EACAC,kCAAA,QAGK","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import { STACK_TOOLBAR_CHILD, getStackToolbarImplementation, registerStackToolbarImplementation } from "./layouts/stack-utils/StackToolbarImplementation.native.js";
2
+ export { STACK_TOOLBAR_CHILD, getStackToolbarImplementation, registerStackToolbarImplementation };
3
+ //# sourceMappingURL=stack-toolbar-implementation.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["STACK_TOOLBAR_CHILD","getStackToolbarImplementation","registerStackToolbarImplementation"],"sources":["../../src/stack-toolbar-implementation.ts"],"sourcesContent":[null],"mappings":"AAAA,SAAAA,mBAAA,EAAAC,6BAAA,EAAAC,kCAAA;AAAA,SAEEF,mBAAA,EACAC,6BAAA,EAAAC,kCAGK","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "one",
3
- "version": "1.23.0",
3
+ "version": "1.24.0",
4
4
  "license": "BSD-3-Clause",
5
5
  "sideEffects": [
6
6
  "setup.mjs",
@@ -125,6 +125,12 @@
125
125
  "import": "./dist/esm/headless.mjs",
126
126
  "require": "./dist/cjs/headless.cjs"
127
127
  },
128
+ "./stack-toolbar-implementation": {
129
+ "react-native": "./dist/esm/stack-toolbar-implementation.native.js",
130
+ "types": "./types/stack-toolbar-implementation.d.ts",
131
+ "import": "./dist/esm/stack-toolbar-implementation.mjs",
132
+ "require": "./dist/cjs/stack-toolbar-implementation.cjs"
133
+ },
128
134
  "./headless-server": {
129
135
  "types": "./types/headless-server.d.ts",
130
136
  "import": "./dist/esm/headless-server.mjs",
@@ -176,34 +182,34 @@
176
182
  "@bacons/text-decoder": "^0.0.0",
177
183
  "@radix-ui/react-slot": "^1.0.2",
178
184
  "@react-native-masked-view/masked-view": "^0.3.2",
179
- "@react-navigation/bottom-tabs": "~7.15.9",
180
- "@react-navigation/native-stack": "~7.14.10",
181
- "@react-navigation/routers": "~7.5.3",
185
+ "@react-navigation/bottom-tabs": "~7.18.16",
186
+ "@react-navigation/native-stack": "~7.18.8",
187
+ "@react-navigation/routers": "~7.6.4",
182
188
  "@cloudflare/vite-plugin": "^1.33.1",
183
189
  "@swc/core": "^1.14.0",
184
190
  "@ungap/structured-clone": "^1.2.0",
185
- "@vxrn/color-scheme": "1.23.0",
186
- "@vxrn/compiler": "1.23.0",
187
- "@vxrn/resolve": "1.23.0",
188
- "@vxrn/tslib-lite": "1.23.0",
189
- "@vxrn/use-isomorphic-layout-effect": "1.23.0",
190
- "@vxrn/vite-plugin-metro": "1.23.0",
191
+ "@vxrn/color-scheme": "1.24.0",
192
+ "@vxrn/compiler": "1.24.0",
193
+ "@vxrn/resolve": "1.24.0",
194
+ "@vxrn/tslib-lite": "1.24.0",
195
+ "@vxrn/use-isomorphic-layout-effect": "1.24.0",
196
+ "@vxrn/vite-plugin-metro": "1.24.0",
191
197
  "babel-dead-code-elimination": "1.0.10",
192
198
  "babel-plugin-module-resolver": "^5.0.2",
193
199
  "babel-preset-expo": "~57.0.5",
194
200
  "citty": "^0.1.6",
195
201
  "core-js": "^3.38.1",
196
- "create-vxrn": "1.23.0",
202
+ "create-vxrn": "1.24.0",
197
203
  "escape-string-regexp": "^5.0.0",
198
- "expo-linking": "~57.0.4",
199
- "expo-modules-core": "~57.0.8",
204
+ "expo-linking": "~57.0.5",
205
+ "expo-modules-core": "~57.0.10",
200
206
  "fast-deep-equal": "^3.1.3",
201
207
  "fast-glob": "^3.3.3",
202
208
  "fs-extra": "^11.2.0",
203
209
  "hono": "^4.12.8",
204
210
  "lightningcss": "^1.30.1",
205
211
  "micromatch": "^4.0.8",
206
- "nanoid": "^3.3.7",
212
+ "nanoid": "^3.3.18",
207
213
  "oxc-parser": "^0.112.0",
208
214
  "perfect-debounce": "^1.0.0",
209
215
  "picocolors": "^1.0.0",
@@ -213,14 +219,14 @@
213
219
  "tsconfig-paths": "^4",
214
220
  "use-latest-callback": "^0.2.3",
215
221
  "vite": "^8.1.0",
216
- "vxrn": "1.23.0",
222
+ "vxrn": "1.24.0",
217
223
  "ws": "^8.21.0",
218
224
  "xxhashjs": "^0.2.2"
219
225
  },
220
226
  "peerDependencies": {
221
227
  "@bottom-tabs/react-navigation": ">=0.9.0",
222
- "@react-navigation/drawer": "~7.9.8",
223
- "@react-navigation/native": "~7.2.2",
228
+ "@react-navigation/drawer": "~7.13.8",
229
+ "@react-navigation/native": "~7.3.16",
224
230
  "react": "^19.2.3",
225
231
  "react-dom": "^19.2.3",
226
232
  "react-native": "0.86.2",
@@ -259,9 +265,9 @@
259
265
  }
260
266
  },
261
267
  "devDependencies": {
262
- "@react-navigation/core": "^7.17.2",
263
- "@react-navigation/drawer": "~7.9.8",
264
- "@react-navigation/native": "~7.2.2",
268
+ "@react-navigation/core": "~7.21.12",
269
+ "@react-navigation/drawer": "~7.13.8",
270
+ "@react-navigation/native": "~7.3.16",
265
271
  "@tamagui/build": "2.6.2",
266
272
  "react-native-gesture-handler": "~2.32.0",
267
273
  "react-native-reanimated": "~4.5.1",
@@ -0,0 +1,54 @@
1
+ import React from 'react'
2
+ import TestRenderer, { act } from 'react-test-renderer'
3
+ import { describe, expect, it } from 'vitest'
4
+
5
+ import { appendStackToolbarConfig } from '../../layouts/stack-utils/StackToolbar.shared'
6
+ import { StackStateProvider, useStack, type HeadlessStackDescriptors } from '../useStack'
7
+
8
+ describe('StackStateProvider', () => {
9
+ it('hands toolbar config to headless implementations', () => {
10
+ let options: Record<string, any> | undefined
11
+
12
+ function Capture() {
13
+ options = useStack().focused.options
14
+ return null
15
+ }
16
+
17
+ const state = {
18
+ stale: false as const,
19
+ type: 'stack' as const,
20
+ key: 'stack-key',
21
+ index: 0,
22
+ routeNames: ['index'],
23
+ routes: [{ key: 'index-key', name: 'index' }],
24
+ preloadedRoutes: [],
25
+ }
26
+ const descriptors: HeadlessStackDescriptors = {
27
+ 'index-key': {
28
+ options: appendStackToolbarConfig(
29
+ { title: 'Inbox' },
30
+ { placement: 'right', children: 'Share' }
31
+ ),
32
+ render: () => <div>Inbox</div>,
33
+ },
34
+ }
35
+
36
+ act(() => {
37
+ TestRenderer.create(
38
+ <StackStateProvider state={state} descriptors={descriptors}>
39
+ <Capture />
40
+ </StackStateProvider>
41
+ )
42
+ })
43
+
44
+ expect(options).toMatchObject({
45
+ title: 'Inbox',
46
+ toolbar: {
47
+ right: {
48
+ placement: 'right',
49
+ children: 'Share',
50
+ },
51
+ },
52
+ })
53
+ })
54
+ })
@@ -1,4 +1,5 @@
1
1
  import type { ComponentType, ReactElement, ReactNode } from 'react'
2
+ import type { StackToolbarConfig } from '../layouts/stack-utils/StackToolbar.types'
2
3
 
3
4
  // shared contract for headless web navigators. see plans/headless-navigators.md
4
5
 
@@ -10,7 +11,7 @@ export type ScreenEntry = {
10
11
  isFocused: boolean
11
12
  keepMounted: boolean
12
13
  // compiled options: semantic keys plus opaque passthrough of preset keys
13
- options: Record<string, any>
14
+ options: Record<string, any> & { toolbar?: StackToolbarConfig }
14
15
  // lazy: rendering it mounts the route (descriptor.render underneath)
15
16
  element: ReactElement
16
17
  }
@@ -13,6 +13,7 @@ import {
13
13
 
14
14
  import type { UseStackResult } from './types'
15
15
  import { getPathFromState } from '../fork/getPathFromState'
16
+ import { exposeStackToolbarConfig } from '../layouts/stack-utils/StackToolbar.shared'
16
17
  import { getResolvedLinking } from '../router/linkingConfig'
17
18
 
18
19
  export type HeadlessStackDescriptors = Record<
@@ -39,7 +40,7 @@ export function StackStateProvider({
39
40
  const value = useMemo<UseStackResult>(() => {
40
41
  const screens = state.routes.map((route, index) => {
41
42
  const descriptor = descriptors[route.key]!
42
- const options = descriptor.options
43
+ const options = exposeStackToolbarConfig(descriptor.options)
43
44
  const href = (linking?.getPathFromState ?? getPathFromState)(
44
45
  { ...state, index },
45
46
  linking?.config
package/src/index.ts CHANGED
@@ -105,6 +105,18 @@ export type {
105
105
  StackHeaderTitleProps,
106
106
  StackScreenOptions,
107
107
  StackScreenProps,
108
+ StackToolbarBadgeProps,
109
+ StackToolbarButtonProps,
110
+ StackToolbarConfig,
111
+ StackToolbarIconProps,
112
+ StackToolbarLabelProps,
113
+ StackToolbarMenuActionProps,
114
+ StackToolbarMenuProps,
115
+ StackToolbarPlacement,
116
+ StackToolbarProps,
117
+ StackToolbarSearchBarSlotProps,
118
+ StackToolbarSpacerProps,
119
+ StackToolbarViewProps,
108
120
  } from './layouts/stack-utils'
109
121
  export { useTabs } from './headless/useTabs'
110
122
  export { useDrawer } from './headless/useDrawer'