vxrn 1.4.10 → 1.4.12

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 (153) hide show
  1. package/dist/config/getBaseVitePlugins.js +7 -3
  2. package/dist/config/getBaseVitePlugins.js.map +1 -1
  3. package/dist/config/getBaseVitePlugins.mjs +4 -3
  4. package/dist/config/getBaseVitePlugins.mjs.map +1 -1
  5. package/dist/config/getBaseVitePlugins.native.js +4 -3
  6. package/dist/config/getBaseVitePlugins.native.js.map +1 -1
  7. package/dist/constants.js +2 -1
  8. package/dist/constants.js.map +1 -1
  9. package/dist/constants.mjs +3 -2
  10. package/dist/constants.mjs.map +1 -1
  11. package/dist/constants.native.js +3 -2
  12. package/dist/constants.native.js.map +1 -1
  13. package/dist/plugins/autoPreBundleDepsForSsrPlugin.js +54 -0
  14. package/dist/plugins/autoPreBundleDepsForSsrPlugin.js.map +6 -0
  15. package/dist/plugins/autoPreBundleDepsForSsrPlugin.mjs +49 -0
  16. package/dist/plugins/autoPreBundleDepsForSsrPlugin.mjs.map +1 -0
  17. package/dist/plugins/autoPreBundleDepsForSsrPlugin.native.js +45 -0
  18. package/dist/plugins/autoPreBundleDepsForSsrPlugin.native.js.map +6 -0
  19. package/dist/plugins/babelReanimated.js +53 -0
  20. package/dist/plugins/babelReanimated.js.map +6 -0
  21. package/dist/plugins/babelReanimated.mjs +28 -0
  22. package/dist/plugins/babelReanimated.mjs.map +1 -0
  23. package/dist/plugins/babelReanimated.native.js +53 -0
  24. package/dist/plugins/babelReanimated.native.js.map +6 -0
  25. package/dist/plugins/serverExtensions.test.js +54 -0
  26. package/dist/plugins/serverExtensions.test.js.map +6 -0
  27. package/dist/plugins/serverExtensions.test.mjs +66 -0
  28. package/dist/plugins/serverExtensions.test.mjs.map +1 -0
  29. package/dist/plugins/serverExtensions.test.native.js +87 -0
  30. package/dist/plugins/serverExtensions.test.native.js.map +1 -0
  31. package/dist/serve/vercel.js +16 -0
  32. package/dist/serve/vercel.js.map +6 -0
  33. package/dist/serve/vercel.mjs +14 -0
  34. package/dist/serve/vercel.mjs.map +1 -0
  35. package/dist/serve/vercel.native.js +16 -0
  36. package/dist/serve/vercel.native.js.map +6 -0
  37. package/dist/utils/depPatches.js +266 -0
  38. package/dist/utils/depPatches.js.map +6 -0
  39. package/dist/utils/depPatches.mjs +219 -0
  40. package/dist/utils/depPatches.mjs.map +1 -0
  41. package/dist/utils/depPatches.native.js +264 -0
  42. package/dist/utils/depPatches.native.js.map +6 -0
  43. package/dist/utils/fork/vite/build.js +285 -0
  44. package/dist/utils/fork/vite/build.js.map +6 -0
  45. package/dist/utils/fork/vite/build.mjs +257 -0
  46. package/dist/utils/fork/vite/build.mjs.map +1 -0
  47. package/dist/utils/fork/vite/build.native.js +339 -0
  48. package/dist/utils/fork/vite/build.native.js.map +6 -0
  49. package/dist/utils/fork/vite/constants.js +31 -0
  50. package/dist/utils/fork/vite/constants.js.map +6 -0
  51. package/dist/utils/fork/vite/constants.mjs +3 -0
  52. package/dist/utils/fork/vite/constants.mjs.map +1 -0
  53. package/dist/utils/fork/vite/constants.native.js +31 -0
  54. package/dist/utils/fork/vite/constants.native.js.map +6 -0
  55. package/dist/utils/fork/vite/plugins.js +7 -0
  56. package/dist/utils/fork/vite/plugins.js.map +6 -0
  57. package/dist/utils/fork/vite/plugins.mjs +5 -0
  58. package/dist/utils/fork/vite/plugins.mjs.map +1 -0
  59. package/dist/utils/fork/vite/plugins.native.js +7 -0
  60. package/dist/utils/fork/vite/plugins.native.js.map +6 -0
  61. package/dist/utils/fork/vite/typeUtils.js +1 -0
  62. package/dist/utils/fork/vite/typeUtils.js.map +6 -0
  63. package/dist/utils/fork/vite/typeUtils.mjs +2 -0
  64. package/dist/utils/fork/vite/typeUtils.mjs.map +1 -0
  65. package/dist/utils/fork/vite/typeUtils.native.js +1 -0
  66. package/dist/utils/fork/vite/typeUtils.native.js.map +6 -0
  67. package/dist/utils/fork/vite/utils.js +12 -0
  68. package/dist/utils/fork/vite/utils.js.map +6 -0
  69. package/dist/utils/fork/vite/utils.mjs +9 -0
  70. package/dist/utils/fork/vite/utils.mjs.map +1 -0
  71. package/dist/utils/fork/vite/utils.native.js +12 -0
  72. package/dist/utils/fork/vite/utils.native.js.map +6 -0
  73. package/dist/utils/getBaseViteConfig.js +88 -0
  74. package/dist/utils/getBaseViteConfig.js.map +6 -0
  75. package/dist/utils/getBaseViteConfig.mjs +67 -0
  76. package/dist/utils/getBaseViteConfig.mjs.map +1 -0
  77. package/dist/utils/getBaseViteConfig.native.js +92 -0
  78. package/dist/utils/getBaseViteConfig.native.js.map +6 -0
  79. package/dist/utils/getOptimizeDeps.js +164 -0
  80. package/dist/utils/getOptimizeDeps.js.map +6 -0
  81. package/dist/utils/getOptimizeDeps.mjs +24 -0
  82. package/dist/utils/getOptimizeDeps.mjs.map +1 -0
  83. package/dist/utils/getOptimizeDeps.native.js +169 -0
  84. package/dist/utils/getOptimizeDeps.native.js.map +6 -0
  85. package/dist/utils/getOptionsFilled.js +64 -0
  86. package/dist/utils/getOptionsFilled.js.map +6 -0
  87. package/dist/utils/getOptionsFilled.mjs +75 -0
  88. package/dist/utils/getOptionsFilled.mjs.map +1 -0
  89. package/dist/utils/getOptionsFilled.native.js +74 -0
  90. package/dist/utils/getOptionsFilled.native.js.map +6 -0
  91. package/dist/utils/getReactNativeConfig.js +191 -0
  92. package/dist/utils/getReactNativeConfig.js.map +6 -0
  93. package/dist/utils/getReactNativeConfig.mjs +177 -0
  94. package/dist/utils/getReactNativeConfig.mjs.map +1 -0
  95. package/dist/utils/getReactNativeConfig.native.js +209 -0
  96. package/dist/utils/getReactNativeConfig.native.js.map +6 -0
  97. package/dist/utils/getViteServerConfig.js +106 -0
  98. package/dist/utils/getViteServerConfig.js.map +6 -0
  99. package/dist/utils/getViteServerConfig.mjs +101 -0
  100. package/dist/utils/getViteServerConfig.mjs.map +1 -0
  101. package/dist/utils/getViteServerConfig.native.js +105 -0
  102. package/dist/utils/getViteServerConfig.native.js.map +6 -0
  103. package/dist/utils/mergeUserConfig.js +46 -0
  104. package/dist/utils/mergeUserConfig.js.map +6 -0
  105. package/dist/utils/mergeUserConfig.mjs +21 -0
  106. package/dist/utils/mergeUserConfig.mjs.map +1 -0
  107. package/dist/utils/mergeUserConfig.native.js +48 -0
  108. package/dist/utils/mergeUserConfig.native.js.map +6 -0
  109. package/dist/utils/prependMiddleware.js +7 -0
  110. package/dist/utils/prependMiddleware.js.map +6 -0
  111. package/dist/utils/prependMiddleware.mjs +5 -0
  112. package/dist/utils/prependMiddleware.mjs.map +1 -0
  113. package/dist/utils/prependMiddleware.native.js +7 -0
  114. package/dist/utils/prependMiddleware.native.js.map +6 -0
  115. package/dist/utils/readVXRNConfig.js +32 -0
  116. package/dist/utils/readVXRNConfig.js.map +6 -0
  117. package/dist/utils/readVXRNConfig.mjs +29 -0
  118. package/dist/utils/readVXRNConfig.mjs.map +1 -0
  119. package/dist/utils/readVXRNConfig.native.js +34 -0
  120. package/dist/utils/readVXRNConfig.native.js.map +6 -0
  121. package/dist/utils/scanDepsToPreBundleForSsr.js +94 -0
  122. package/dist/utils/scanDepsToPreBundleForSsr.js.map +6 -0
  123. package/dist/utils/scanDepsToPreBundleForSsr.mjs +65 -0
  124. package/dist/utils/scanDepsToPreBundleForSsr.mjs.map +1 -0
  125. package/dist/utils/scanDepsToPreBundleForSsr.native.js +99 -0
  126. package/dist/utils/scanDepsToPreBundleForSsr.native.js.map +6 -0
  127. package/package.json +14 -14
  128. package/src/config/getBaseVitePlugins.ts +10 -3
  129. package/src/constants.ts +2 -0
  130. package/src/plugins/serverExtensions.test.ts +124 -0
  131. package/types/config/getBaseVitePlugins.d.ts.map +1 -1
  132. package/types/constants.d.ts +1 -0
  133. package/types/constants.d.ts.map +1 -1
  134. package/types/plugins/autoPreBundleDepsForSsrPlugin.d.ts.map +1 -0
  135. package/types/plugins/babelReanimated.d.ts.map +1 -0
  136. package/types/plugins/serverExtensions.test.d.ts +2 -0
  137. package/types/plugins/serverExtensions.test.d.ts.map +1 -0
  138. package/types/serve/vercel.d.ts.map +1 -0
  139. package/types/utils/depPatches.d.ts.map +1 -0
  140. package/types/utils/fork/vite/build.d.ts.map +1 -0
  141. package/types/utils/fork/vite/constants.d.ts.map +1 -0
  142. package/types/utils/fork/vite/plugins.d.ts.map +1 -0
  143. package/types/utils/fork/vite/typeUtils.d.ts.map +1 -0
  144. package/types/utils/fork/vite/utils.d.ts.map +1 -0
  145. package/types/utils/getBaseViteConfig.d.ts.map +1 -0
  146. package/types/utils/getOptimizeDeps.d.ts.map +1 -0
  147. package/types/utils/getOptionsFilled.d.ts.map +1 -0
  148. package/types/utils/getReactNativeConfig.d.ts.map +1 -0
  149. package/types/utils/getViteServerConfig.d.ts.map +1 -0
  150. package/types/utils/mergeUserConfig.d.ts.map +1 -0
  151. package/types/utils/prependMiddleware.d.ts.map +1 -0
  152. package/types/utils/readVXRNConfig.d.ts.map +1 -0
  153. package/types/utils/scanDepsToPreBundleForSsr.d.ts.map +1 -0
@@ -1,4 +1,4 @@
1
- import { webExtensions } from "../constants";
1
+ import { ssrExtensions, webExtensions } from "../constants";
2
2
  import FSExtra from "fs-extra";
3
3
  import { extname } from "node:path";
4
4
  import { createVXRNCompilerPlugin } from "@vxrn/compiler";
@@ -18,7 +18,7 @@ function getBaseVitePlugins() {
18
18
  environments: {
19
19
  ssr: {
20
20
  resolve: {
21
- extensions: webExtensions,
21
+ extensions: ssrExtensions,
22
22
  conditions: ["vxrn-web"],
23
23
  externalConditions: ["vxrn-web"]
24
24
  }
@@ -38,9 +38,13 @@ function getBaseVitePlugins() {
38
38
  const resolved = await this.resolve(source, importer, options);
39
39
  if (!resolved || resolved.id.includes("node_modules"))
40
40
  return resolved;
41
+ if (this.environment.name !== "ssr" && /\.server\.\w+$/.test(resolved.id))
42
+ throw new Error(
43
+ `[one] .server file cannot be imported on ${this.environment.name}: ${source} (imported by ${importer})`
44
+ );
41
45
  const jsExtension = extname(resolved.id), withoutExt = resolved.id.replace(new RegExp(`\\${jsExtension}$`), ""), platformSpecificExtension = {
42
46
  client: ["web"],
43
- ssr: ["web"],
47
+ ssr: ["server", "web"],
44
48
  ios: ["ios", "native"],
45
49
  android: ["android", "native"]
46
50
  }[this.environment.name];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/config/getBaseVitePlugins.ts"],
4
- "mappings": "AACA,SAAS,qBAAqB;AAC9B,OAAO,aAAa;AACpB,SAAS,eAAe;AACxB,SAAS,gCAAgC;AAIlC,SAAS,qBAAqC;AACnD,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AACP,eAAO;AAAA,UACL,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKT;AAAA,UAEA,cAAc;AAAA,YACZ,KAAK;AAAA,cACH,SAAS;AAAA,gBACP,YAAY;AAAA,gBACZ,YAAY,CAAC,UAAU;AAAA,gBACvB,oBAAoB,CAAC,UAAU;AAAA,cACjC;AAAA,YACF;AAAA,YAEA,QAAQ;AAAA,cACN,SAAS;AAAA,gBACP,YAAY;AAAA,gBACZ,YAAY,CAAC,UAAU;AAAA,cACzB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA;AAAA,MAGA,MAAM,UAAU,QAAQ,UAAU,SAAS;AAKzC,YAAI,SAAS,KAAM;AAOnB,cAAM,WAAW,MAAM,KAAK,QAAQ,QAAQ,UAAU,OAAO;AAE7D,YAAI,CAAC,YAAY,SAAS,GAAG,SAAS,cAAc;AAClD,iBAAO;AAIT,cAAM,cAAc,QAAQ,SAAS,EAAE,GACjC,aAAa,SAAS,GAAG,QAAQ,IAAI,OAAO,KAAK,WAAW,GAAG,GAAG,EAAE,GASpE,4BAP0B;AAAA,UAC9B,QAAQ,CAAC,KAAK;AAAA,UACd,KAAK,CAAC,KAAK;AAAA,UACX,KAAK,CAAC,OAAO,QAAQ;AAAA,UACrB,SAAS,CAAC,WAAW,QAAQ;AAAA,QAC/B,EAE0D,KAAK,YAAY,IAAI;AAE/E,YAAI;AACF,qBAAW,qBAAqB,2BAA2B;AACzD,kBAAM,WAAW,GAAG,UAAU,IAAI,iBAAiB,GAAG,WAAW;AACjE,gBAAI,MAAM,QAAQ,WAAW,QAAQ;AACnC,qBAAO;AAAA,gBACL,IAAI;AAAA,cACN;AAAA,UAEJ;AAAA,MAEJ;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA;AAAA,MACE,MAAM;AAAA,MAEN,kBAAkB;AAChB,cAAM,SAAS,QAAQ;AACvB,gBAAQ,OAAO,IAAI,SAAgB;AACjC,cACE,SAAO,KAAK,CAAC,KAAM,YACnB,KAAK,CAAC,EAAE,WAAW,+BAA+B;AAIpD,mBAAO,OAAO,GAAG,IAAI;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAAA,IAEA,yBAAyB,CAAC,CAAC;AAAA,EAC7B;AACF;",
4
+ "mappings": "AACA,SAAS,eAAe,qBAAqB;AAC7C,OAAO,aAAa;AACpB,SAAS,eAAe;AACxB,SAAS,gCAAgC;AAIlC,SAAS,qBAAqC;AACnD,SAAO;AAAA,IACL;AAAA,MACE,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS;AACP,eAAO;AAAA,UACL,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,UAKT;AAAA,UAEA,cAAc;AAAA,YACZ,KAAK;AAAA,cACH,SAAS;AAAA,gBACP,YAAY;AAAA,gBACZ,YAAY,CAAC,UAAU;AAAA,gBACvB,oBAAoB,CAAC,UAAU;AAAA,cACjC;AAAA,YACF;AAAA,YAEA,QAAQ;AAAA,cACN,SAAS;AAAA,gBACP,YAAY;AAAA,gBACZ,YAAY,CAAC,UAAU;AAAA,cACzB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA;AAAA,MAGA,MAAM,UAAU,QAAQ,UAAU,SAAS;AAKzC,YAAI,SAAS,KAAM;AAOnB,cAAM,WAAW,MAAM,KAAK,QAAQ,QAAQ,UAAU,OAAO;AAE7D,YAAI,CAAC,YAAY,SAAS,GAAG,SAAS,cAAc;AAClD,iBAAO;AAIT,YAAI,KAAK,YAAY,SAAS,SAAS,iBAAiB,KAAK,SAAS,EAAE;AACtE,gBAAM,IAAI;AAAA,YACR,4CAA4C,KAAK,YAAY,IAAI,KAAK,MAAM,iBAAiB,QAAQ;AAAA,UACvG;AAIF,cAAM,cAAc,QAAQ,SAAS,EAAE,GACjC,aAAa,SAAS,GAAG,QAAQ,IAAI,OAAO,KAAK,WAAW,GAAG,GAAG,EAAE,GASpE,4BAP0B;AAAA,UAC9B,QAAQ,CAAC,KAAK;AAAA,UACd,KAAK,CAAC,UAAU,KAAK;AAAA,UACrB,KAAK,CAAC,OAAO,QAAQ;AAAA,UACrB,SAAS,CAAC,WAAW,QAAQ;AAAA,QAC/B,EAE0D,KAAK,YAAY,IAAI;AAE/E,YAAI;AACF,qBAAW,qBAAqB,2BAA2B;AACzD,kBAAM,WAAW,GAAG,UAAU,IAAI,iBAAiB,GAAG,WAAW;AACjE,gBAAI,MAAM,QAAQ,WAAW,QAAQ;AACnC,qBAAO;AAAA,gBACL,IAAI;AAAA,cACN;AAAA,UAEJ;AAAA,MAEJ;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA;AAAA,MACE,MAAM;AAAA,MAEN,kBAAkB;AAChB,cAAM,SAAS,QAAQ;AACvB,gBAAQ,OAAO,IAAI,SAAgB;AACjC,cACE,SAAO,KAAK,CAAC,KAAM,YACnB,KAAK,CAAC,EAAE,WAAW,+BAA+B;AAIpD,mBAAO,OAAO,GAAG,IAAI;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAAA,IAEA,yBAAyB,CAAC,CAAC;AAAA,EAC7B;AACF;",
5
5
  "names": []
6
6
  }
@@ -1,4 +1,4 @@
1
- import { webExtensions } from "../constants.mjs";
1
+ import { ssrExtensions, webExtensions } from "../constants.mjs";
2
2
  import FSExtra from "fs-extra";
3
3
  import { extname } from "node:path";
4
4
  import { createVXRNCompilerPlugin } from "@vxrn/compiler";
@@ -17,7 +17,7 @@ function getBaseVitePlugins() {
17
17
  environments: {
18
18
  ssr: {
19
19
  resolve: {
20
- extensions: webExtensions,
20
+ extensions: ssrExtensions,
21
21
  conditions: ["vxrn-web"],
22
22
  externalConditions: ["vxrn-web"]
23
23
  }
@@ -36,11 +36,12 @@ function getBaseVitePlugins() {
36
36
  if (options?.scan) return;
37
37
  const resolved = await this.resolve(source, importer, options);
38
38
  if (!resolved || resolved.id.includes("node_modules")) return resolved;
39
+ if (this.environment.name !== "ssr" && /\.server\.\w+$/.test(resolved.id)) throw new Error(`[one] .server file cannot be imported on ${this.environment.name}: ${source} (imported by ${importer})`);
39
40
  const jsExtension = extname(resolved.id),
40
41
  withoutExt = resolved.id.replace(new RegExp(`\\${jsExtension}$`), ""),
41
42
  platformSpecificExtension = {
42
43
  client: ["web"],
43
- ssr: ["web"],
44
+ ssr: ["server", "web"],
44
45
  ios: ["ios", "native"],
45
46
  android: ["android", "native"]
46
47
  }[this.environment.name];
@@ -1 +1 @@
1
- {"version":3,"names":["webExtensions","FSExtra","extname","createVXRNCompilerPlugin","getBaseVitePlugins","name","enforce","config","resolve","environments","ssr","extensions","conditions","externalConditions","client","resolveId","source","importer","options","scan","resolved","id","includes","jsExtension","withoutExt","replace","RegExp","platformSpecificExtension","ios","android","environment","platformExtension","fullPath","pathExists","configureServer","ogWarn","console","warn","args","startsWith"],"sources":["../../src/config/getBaseVitePlugins.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,aAAA,QAAqB;AAC9B,OAAOC,OAAA,MAAa;AACpB,SAASC,OAAA,QAAe;AACxB,SAASC,wBAAA,QAAgC;AAIlC,SAASC,mBAAA,EAAqC;EACnD,OAAO,CACL;IACEC,IAAA,EAAM;IACNC,OAAA,EAAS;IACTC,OAAA,EAAS;MACP,OAAO;QACLC,OAAA,EAAS;UAAA;UAAA;UAAA;UAAA;QAAA,CAKT;QAEAC,YAAA,EAAc;UACZC,GAAA,EAAK;YACHF,OAAA,EAAS;cACPG,UAAA,EAAYX,aAAA;cACZY,UAAA,EAAY,CAAC,UAAU;cACvBC,kBAAA,EAAoB,CAAC,UAAU;YACjC;UACF;UAEAC,MAAA,EAAQ;YACNN,OAAA,EAAS;cACPG,UAAA,EAAYX,aAAA;cACZY,UAAA,EAAY,CAAC,UAAU;YACzB;UACF;QACF;MACF;IACF;IAAA;IAGA,MAAMG,UAAUC,MAAA,EAAQC,QAAA,EAAUC,OAAA,EAAS;MAKzC,IAAIA,OAAA,EAASC,IAAA,EAAM;MAOnB,MAAMC,QAAA,GAAW,MAAM,KAAKZ,OAAA,CAAQQ,MAAA,EAAQC,QAAA,EAAUC,OAAO;MAE7D,IAAI,CAACE,QAAA,IAAYA,QAAA,CAASC,EAAA,CAAGC,QAAA,CAAS,cAAc,GAClD,OAAOF,QAAA;MAIT,MAAMG,WAAA,GAAcrB,OAAA,CAAQkB,QAAA,CAASC,EAAE;QACjCG,UAAA,GAAaJ,QAAA,CAASC,EAAA,CAAGI,OAAA,CAAQ,IAAIC,MAAA,CAAO,KAAKH,WAAW,GAAG,GAAG,EAAE;QASpEI,yBAAA,GAP0B;UAC9Bb,MAAA,EAAQ,CAAC,KAAK;UACdJ,GAAA,EAAK,CAAC,KAAK;UACXkB,GAAA,EAAK,CAAC,OAAO,QAAQ;UACrBC,OAAA,EAAS,CAAC,WAAW,QAAQ;QAC/B,EAE0D,KAAKC,WAAA,CAAYzB,IAAI;MAE/E,IAAIsB,yBAAA,EACF,WAAWI,iBAAA,IAAqBJ,yBAAA,EAA2B;QACzD,MAAMK,QAAA,GAAW,GAAGR,UAAU,IAAIO,iBAAiB,GAAGR,WAAW;QACjE,IAAI,MAAMtB,OAAA,CAAQgC,UAAA,CAAWD,QAAQ,GACnC,OAAO;UACLX,EAAA,EAAIW;QACN;MAEJ;IAEJ;EACF;EAAA;EAAA;EAAA;EAKA;IACE3B,IAAA,EAAM;IAEN6B,gBAAA,EAAkB;MAChB,MAAMC,MAAA,GAASC,OAAA,CAAQC,IAAA;MACvBD,OAAA,CAAQC,IAAA,GAAO,IAAIC,IAAA,KAAgB;QACjC,IACE,SAAOA,IAAA,CAAK,CAAC,KAAM,YACnBA,IAAA,CAAK,CAAC,EAAEC,UAAA,CAAW,+BAA+B,IAIpD,OAAOJ,MAAA,CAAO,GAAGG,IAAI;MACvB;IACF;EACF,GAEAnC,wBAAA,CAAyB,CAAC,CAAC,EAC7B;AACF","ignoreList":[]}
1
+ {"version":3,"names":["ssrExtensions","webExtensions","FSExtra","extname","createVXRNCompilerPlugin","getBaseVitePlugins","name","enforce","config","resolve","environments","ssr","extensions","conditions","externalConditions","client","resolveId","source","importer","options","scan","resolved","id","includes","environment","test","Error","jsExtension","withoutExt","replace","RegExp","platformSpecificExtension","ios","android","platformExtension","fullPath","pathExists","configureServer","ogWarn","console","warn","args","startsWith"],"sources":["../../src/config/getBaseVitePlugins.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,aAAA,EAAeC,aAAA,QAAqB;AAC7C,OAAOC,OAAA,MAAa;AACpB,SAASC,OAAA,QAAe;AACxB,SAASC,wBAAA,QAAgC;AAIlC,SAASC,mBAAA,EAAqC;EACnD,OAAO,CACL;IACEC,IAAA,EAAM;IACNC,OAAA,EAAS;IACTC,OAAA,EAAS;MACP,OAAO;QACLC,OAAA,EAAS;UAAA;UAAA;UAAA;UAAA;QAAA,CAKT;QAEAC,YAAA,EAAc;UACZC,GAAA,EAAK;YACHF,OAAA,EAAS;cACPG,UAAA,EAAYZ,aAAA;cACZa,UAAA,EAAY,CAAC,UAAU;cACvBC,kBAAA,EAAoB,CAAC,UAAU;YACjC;UACF;UAEAC,MAAA,EAAQ;YACNN,OAAA,EAAS;cACPG,UAAA,EAAYX,aAAA;cACZY,UAAA,EAAY,CAAC,UAAU;YACzB;UACF;QACF;MACF;IACF;IAAA;IAGA,MAAMG,UAAUC,MAAA,EAAQC,QAAA,EAAUC,OAAA,EAAS;MAKzC,IAAIA,OAAA,EAASC,IAAA,EAAM;MAOnB,MAAMC,QAAA,GAAW,MAAM,KAAKZ,OAAA,CAAQQ,MAAA,EAAQC,QAAA,EAAUC,OAAO;MAE7D,IAAI,CAACE,QAAA,IAAYA,QAAA,CAASC,EAAA,CAAGC,QAAA,CAAS,cAAc,GAClD,OAAOF,QAAA;MAIT,IAAI,KAAKG,WAAA,CAAYlB,IAAA,KAAS,SAAS,iBAAiBmB,IAAA,CAAKJ,QAAA,CAASC,EAAE,GACtE,MAAM,IAAII,KAAA,CACR,4CAA4C,KAAKF,WAAA,CAAYlB,IAAI,KAAKW,MAAM,iBAAiBC,QAAQ,GACvG;MAIF,MAAMS,WAAA,GAAcxB,OAAA,CAAQkB,QAAA,CAASC,EAAE;QACjCM,UAAA,GAAaP,QAAA,CAASC,EAAA,CAAGO,OAAA,CAAQ,IAAIC,MAAA,CAAO,KAAKH,WAAW,GAAG,GAAG,EAAE;QASpEI,yBAAA,GAP0B;UAC9BhB,MAAA,EAAQ,CAAC,KAAK;UACdJ,GAAA,EAAK,CAAC,UAAU,KAAK;UACrBqB,GAAA,EAAK,CAAC,OAAO,QAAQ;UACrBC,OAAA,EAAS,CAAC,WAAW,QAAQ;QAC/B,EAE0D,KAAKT,WAAA,CAAYlB,IAAI;MAE/E,IAAIyB,yBAAA,EACF,WAAWG,iBAAA,IAAqBH,yBAAA,EAA2B;QACzD,MAAMI,QAAA,GAAW,GAAGP,UAAU,IAAIM,iBAAiB,GAAGP,WAAW;QACjE,IAAI,MAAMzB,OAAA,CAAQkC,UAAA,CAAWD,QAAQ,GACnC,OAAO;UACLb,EAAA,EAAIa;QACN;MAEJ;IAEJ;EACF;EAAA;EAAA;EAAA;EAKA;IACE7B,IAAA,EAAM;IAEN+B,gBAAA,EAAkB;MAChB,MAAMC,MAAA,GAASC,OAAA,CAAQC,IAAA;MACvBD,OAAA,CAAQC,IAAA,GAAO,IAAIC,IAAA,KAAgB;QACjC,IACE,SAAOA,IAAA,CAAK,CAAC,KAAM,YACnBA,IAAA,CAAK,CAAC,EAAEC,UAAA,CAAW,+BAA+B,IAIpD,OAAOJ,MAAA,CAAO,GAAGG,IAAI;MACvB;IACF;EACF,GAEArC,wBAAA,CAAyB,CAAC,CAAC,EAC7B;AACF","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { webExtensions } from "../constants.native.js";
1
+ import { ssrExtensions, webExtensions } from "../constants.native.js";
2
2
  import FSExtra from "fs-extra";
3
3
  import { extname } from "path";
4
4
  import { createVXRNCompilerPlugin } from "@vxrn/compiler";
@@ -16,7 +16,7 @@ function getBaseVitePlugins() {
16
16
  environments: {
17
17
  ssr: {
18
18
  resolve: {
19
- extensions: webExtensions,
19
+ extensions: ssrExtensions,
20
20
  conditions: ["vxrn-web"],
21
21
  externalConditions: ["vxrn-web"]
22
22
  }
@@ -35,11 +35,12 @@ function getBaseVitePlugins() {
35
35
  if (!options?.scan) {
36
36
  var resolved = await this.resolve(source, importer, options);
37
37
  if (!resolved || resolved.id.includes("node_modules")) return resolved;
38
+ if (this.environment.name !== "ssr" && /\.server\.\w+$/.test(resolved.id)) throw new Error(`[one] .server file cannot be imported on ${this.environment.name}: ${source} (imported by ${importer})`);
38
39
  var jsExtension = extname(resolved.id),
39
40
  withoutExt = resolved.id.replace(new RegExp(`\\${jsExtension}$`), ""),
40
41
  extensionsByEnvironment = {
41
42
  client: ["web"],
42
- ssr: ["web"],
43
+ ssr: ["server", "web"],
43
44
  ios: ["ios", "native"],
44
45
  android: ["android", "native"]
45
46
  },
@@ -1 +1 @@
1
- {"version":3,"names":["webExtensions","FSExtra","extname","createVXRNCompilerPlugin","getBaseVitePlugins","name","enforce","config","resolve","environments","ssr","extensions","conditions","externalConditions","client","resolveId","source","importer","options","scan","resolved","id","includes","jsExtension","withoutExt","replace","RegExp","extensionsByEnvironment","ios","android","platformSpecificExtension","environment","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","platformExtension","value","fullPath","pathExists","err"],"sources":["../../src/config/getBaseVitePlugins.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,aAAA,QAAqB;AAC9B,OAAOC,OAAA,MAAa;AACpB,SAASC,OAAA,QAAe;AACxB,SAASC,wBAAA,QAAgC;AAIlC,SAASC,mBAAA,EAAqC;EACnD,OAAO,CACL;IACEC,IAAA,EAAM;IACNC,OAAA,EAAS;IACTC,OAAA,EAAS;MACP,OAAO;QACLC,OAAA,EAAS;QAAA;QAAA;QAAA;QAAA;QAKTC,YAAA;UAEAC,GAAA;YACEF,OAAK;cACHG,UAAS,EAAAX,aAAA;cACPY,UAAA,EAAY,CACZ,UAAY,CACZ;cACFC,kBAAA,GACF;YAGE;UAAS;UACKC,MACZ;YACFN,OAAA;cACFG,UAAA,EAAAX,aAAA;cACFY,UAAA,GACF;YACF;UAGM;QAKJ;MAOA;IAEA;IACE;IAIF,MAAAG,SAAMA,CAAAC,MAAc,EAAAC,QAAQ,EAAAC,OAAW;MAGP,IAC9B,CAAAA,OAAS,EAAAC,IAAK;QACd,IAAAC,QAAW,cAAAZ,OAAA,CAAAQ,MAAA,EAAAC,QAAA,EAAAC,OAAA;QACX,KAAKE,QAAQ,IAAAA,QAAQ,CAAAC,EAAA,CAAAC,QAAA,kBACrB,OAASF,QAAC;QAG8C,IAAAG,WAAK,GAAYrB,OAAI,CAAAkB,QAAA,CAAAC,EAAA;UAAAG,UAAA,GAAAJ,QAAA,CAAAC,EAAA,CAAAI,OAAA,KAAAC,MAAA,MAAAH,WAAA;UAAAI,uBAAA;YAE3Eb,MAAA,GACF,MACE;YACAJ,GAAA,EAAI,CACF,MAAO;YACDkB,GACN,GAEJ,OAEJ,SACF;YAAAC,OAAA;UAME;UAAMC,yBAAA,GAAAH,uBAAA,MAAAI,WAAA,CAAA1B,IAAA;QAEN,IAAAyB,yBAAkB;UAChB,IAAME,yBAAiB;YAAAC,iBAAA;YAAAC,cAAA;UACvB,IAAQ;YAEJ,SAAOC,SAAM,GAAML,yBACX,CAAAM,MAAW,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAA+B,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;cAIpD,IAAOS,iBAAc,GAAAH,KAAA,CAAAI,KAAA;gBAAAC,QAAA,MAAAnB,UAAA,IAAAiB,iBAAA,GAAAlB,WAAA;cACvB,UAAAtB,OAAA,CAAA2C,UAAA,CAAAD,QAAA,GACF;gBACFtB,EAAA,EAAAsB;cAEA;YACF;UACF,SAAAE,GAAA","ignoreList":[]}
1
+ {"version":3,"names":["ssrExtensions","webExtensions","FSExtra","extname","createVXRNCompilerPlugin","getBaseVitePlugins","name","enforce","config","resolve","environments","ssr","extensions","conditions","externalConditions","client","resolveId","source","importer","options","scan","resolved","id","includes","environment","test","Error","jsExtension","withoutExt","replace","RegExp","extensionsByEnvironment","ios","android","platformSpecificExtension","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","platformExtension","value","fullPath","pathExists","err"],"sources":["../../src/config/getBaseVitePlugins.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,aAAA,EAAeC,aAAA,QAAqB;AAC7C,OAAOC,OAAA,MAAa;AACpB,SAASC,OAAA,QAAe;AACxB,SAASC,wBAAA,QAAgC;AAIlC,SAASC,mBAAA,EAAqC;EACnD,OAAO,CACL;IACEC,IAAA,EAAM;IACNC,OAAA,EAAS;IACTC,OAAA,EAAS;MACP,OAAO;QACLC,OAAA,EAAS;QAAA;QAAA;QAAA;QAAA;QAKTC,YAAA;UAEAC,GAAA;YACEF,OAAK;cACHG,UAAS,EAAAZ,aAAA;cACPa,UAAA,EAAY,CACZ,UAAY,CACZ;cACFC,kBAAA,GACF;YAGE;UAAS;UACKC,MACZ;YACFN,OAAA;cACFG,UAAA,EAAAX,aAAA;cACFY,UAAA,GACF;YACF;UAGM;QAKJ;MAOA;IAEA;IACE;IAIF,MAAIG,SAAKA,CAAAC,MAAA,EAAYC,QAAS,EAAAC,OAAS;MACrC,KAAAA,OAAU,EAAAC,IAAA;QAAA,IACRC,QAAA,cAAAZ,OAAA,CAAAQ,MAAA,EAAAC,QAA4C,EAAKC,OAAA;QACnD,KAAAE,QAAA,IAAAA,QAAA,CAAAC,EAAA,CAAAC,QAAA,kBAIF,OAAMF,QAAA;QAIJ,QAAQ,CAACG,WAAK,CAAAlB,IAAA,+BAAAmB,IAAA,CAAAJ,QAAA,CAAAC,EAAA,GACd,MAAM,IAAAI,KAAU,6CAAK,KAAAF,WAAA,CAAAlB,IAAA,KAAAW,MAAA,iBAAAC,QAAA;QACrB,IAAAS,WAAa,GAAAxB,OAAQ,CAAAkB,QAAA,CAAAC,EAAA;UAAAM,UAAA,GAAAP,QAAA,CAAAC,EAAA,CAAAO,OAAA,KAAAC,MAAA,MAAAH,WAAA;UAAAI,uBAAA;YACrBhB,MAAA,EAAU,CAG8C,KAAK,CAE3D;YACFJ,GAAA,GACE,QAAM,EACN,KAAI,CACF;YAAOqB,GAAA,EACL,CACF,OAEJ,SAEJ;YACFC,OAAA;UAKA;UAAAC,yBAAA,GAAAH,uBAAA,MAAAP,WAAA,CAAAlB,IAAA;QACE,IAAM4B,yBAAA;UAEN,IAAAC,yBAAkB;YAAAC,iBAAA;YAAAC,cAAA;UAChB,IAAM;YACN,KAAQ,IAAOC,SAAI,GAAAJ,yBAAgB,CAAAK,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;cAE/B,IAAAS,iBAAmB,GAAAH,KAAA,CACnBI,KAAK;gBAACC,QAAE,MAAWlB,UAAA,IAAAgB,iBAA+B,GAAAjB,WAAA;cAIpD,IAAO,MAAOzB,OAAO,CAAA6C,UAAA,CAAAD,QAAA,GACvB;gBACFxB,EAAA,EAAAwB;cACF;YAEA;UACF,SAAAE,GAAA;YACFZ,iBAAA,OAAAC,cAAA,GAAAW,GAAA","ignoreList":[]}
package/dist/constants.js CHANGED
@@ -11,9 +11,10 @@ const DEFAULT_PORT = 8081, viteDefaultExtensions = [
11
11
  ".web.mjs",
12
12
  ".web.js",
13
13
  ...viteDefaultExtensions
14
- ];
14
+ ], ssrExtensions = [".server.tsx", ".server.ts", ...webExtensions];
15
15
  export {
16
16
  DEFAULT_PORT,
17
+ ssrExtensions,
17
18
  webExtensions
18
19
  };
19
20
  //# sourceMappingURL=constants.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/constants.ts"],
4
- "mappings": "AAAO,MAAM,eAAe,MAEtB,wBAAwB;AAAA;AAAA,EAE5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEa,gBAAgB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL;",
4
+ "mappings": "AAAO,MAAM,eAAe,MAEtB,wBAAwB;AAAA;AAAA,EAE5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEa,gBAAgB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAEa,gBAAgB,CAAC,eAAe,cAAc,GAAG,aAAa;",
5
5
  "names": []
6
6
  }
@@ -2,6 +2,7 @@ const DEFAULT_PORT = 8081,
2
2
  viteDefaultExtensions = [
3
3
  // keep indent
4
4
  ".mjs", ".js", ".ts", ".tsx", ".json"],
5
- webExtensions = [".web.tsx", ".web.ts", ".web.mjs", ".web.js", ...viteDefaultExtensions];
6
- export { DEFAULT_PORT, webExtensions };
5
+ webExtensions = [".web.tsx", ".web.ts", ".web.mjs", ".web.js", ...viteDefaultExtensions],
6
+ ssrExtensions = [".server.tsx", ".server.ts", ...webExtensions];
7
+ export { DEFAULT_PORT, ssrExtensions, webExtensions };
7
8
  //# sourceMappingURL=constants.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_PORT","viteDefaultExtensions","webExtensions"],"sources":["../src/constants.ts"],"sourcesContent":[null],"mappings":"AAAO,MAAMA,YAAA,GAAe;EAEtBC,qBAAA,GAAwB;EAAA;EAE5B,QACA,OACA,OACA,QACA,QACF;EAEaC,aAAA,GAAgB,CAC3B,YACA,WACA,YACA,WACA,GAAGD,qBAAA,CACL","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_PORT","viteDefaultExtensions","webExtensions","ssrExtensions"],"sources":["../src/constants.ts"],"sourcesContent":[null],"mappings":"AAAO,MAAMA,YAAA,GAAe;EAEtBC,qBAAA,GAAwB;EAAA;EAE5B,QACA,OACA,OACA,QACA,QACF;EAEaC,aAAA,GAAgB,CAC3B,YACA,WACA,YACA,WACA,GAAGD,qBAAA,CACL;EAEaE,aAAA,GAAgB,CAAC,eAAe,cAAc,GAAGD,aAAa","ignoreList":[]}
@@ -2,6 +2,7 @@ var DEFAULT_PORT = 8081,
2
2
  viteDefaultExtensions = [
3
3
  // keep indent
4
4
  ".mjs", ".js", ".ts", ".tsx", ".json"],
5
- webExtensions = [".web.tsx", ".web.ts", ".web.mjs", ".web.js", ...viteDefaultExtensions];
6
- export { DEFAULT_PORT, webExtensions };
5
+ webExtensions = [".web.tsx", ".web.ts", ".web.mjs", ".web.js", ...viteDefaultExtensions],
6
+ ssrExtensions = [".server.tsx", ".server.ts", ...webExtensions];
7
+ export { DEFAULT_PORT, ssrExtensions, webExtensions };
7
8
  //# sourceMappingURL=constants.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_PORT","viteDefaultExtensions","webExtensions"],"sources":["../src/constants.ts"],"sourcesContent":[null],"mappings":"AAAO,IAAAA,YAAM,OAAe;EAAAC,qBAEtB;EAAwB;EAE5B,QACA,OACA,OACA,QACA,QACF;EAEaC,aAAA,GAAgB,CAC3B,YACA,WACA,YACA,WACA,GAAGD,qBAAA,CACL","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_PORT","viteDefaultExtensions","webExtensions","ssrExtensions"],"sources":["../src/constants.ts"],"sourcesContent":[null],"mappings":"AAAO,IAAAA,YAAM,OAAe;EAAAC,qBAEtB;EAAwB;EAE5B,QACA,OACA,OACA,QACA,QACF;EAEaC,aAAA,GAAgB,CAC3B,YACA,WACA,YACA,WACA,GAAGD,qBAAA,CACL;EAEaE,aAAA,GAAgB,C","ignoreList":[]}
@@ -0,0 +1,54 @@
1
+ import path from "node:path";
2
+ import FSExtra from "fs-extra";
3
+ import { EXCLUDE_LIST, scanDepsToPreBundleForSsr } from "../utils/scanDepsToPreBundleForSsr";
4
+ import { getFileHash, lookupFile } from "../utils/utils";
5
+ import { createDebugger } from "@vxrn/debug";
6
+ const name = "auto-pre-bundle-deps-for-ssr", { debug, debugDetails } = createDebugger(name);
7
+ function autoPreBundleDepsForSsrPlugin({ root }) {
8
+ return {
9
+ name: `vxrn:${name}`,
10
+ enforce: "pre",
11
+ async config(_cfg, env) {
12
+ debug?.("Config hook called");
13
+ const startedAt = debug ? Date.now() : 0, noCache = env.command === "build", lockFile = await lookupFile(root, [
14
+ "yarn.lock",
15
+ "package-lock.json",
16
+ "pnpm-lock.yaml",
17
+ "bun.lockb"
18
+ ]), lockFileHash = lockFile ? await getFileHash(lockFile) : void 0, noExternalDepsForSsrCacheFilePath = path.join(
19
+ root,
20
+ "node_modules",
21
+ ".vxrn",
22
+ "deps-to-pre-bundle-for-ssr-cache.json"
23
+ );
24
+ let depsToPreBundleForSsr;
25
+ if (lockFileHash && !noCache)
26
+ try {
27
+ const { lockFileHash: cachedLockFileHash, depsToPreBundleForSsr: cachedDepsToPreBundle } = await FSExtra.readJSON(noExternalDepsForSsrCacheFilePath);
28
+ lockFileHash === cachedLockFileHash && Array.isArray(cachedDepsToPreBundle) && (depsToPreBundleForSsr = cachedDepsToPreBundle, debug?.(`Using cached scan results from ${noExternalDepsForSsrCacheFilePath}`));
29
+ } catch {
30
+ }
31
+ return depsToPreBundleForSsr || (depsToPreBundleForSsr = await scanDepsToPreBundleForSsr(`${root}/package.json`), noCache || FSExtra.outputJSON(noExternalDepsForSsrCacheFilePath, {
32
+ lockFileHash,
33
+ depsToPreBundleForSsr
34
+ })), debug?.(`Scanning completed in ${Date.now() - startedAt}ms`), debug?.(
35
+ `${depsToPreBundleForSsr.length} deps are discovered and will be pre-bundled for SSR.` + (debugDetails ? "" : ` (Focus on this debug scope, "DEBUG=${debug.namespace}", to see more details.)`)
36
+ ), debugDetails?.(
37
+ `Deps discovered to be pre-bundled for SSR: ${depsToPreBundleForSsr.join(", ")}`
38
+ ), {
39
+ ssr: {
40
+ optimizeDeps: {
41
+ include: depsToPreBundleForSsr,
42
+ // Known packages that will fail to pre-bundle
43
+ exclude: EXCLUDE_LIST
44
+ },
45
+ noExternal: depsToPreBundleForSsr
46
+ }
47
+ };
48
+ }
49
+ };
50
+ }
51
+ export {
52
+ autoPreBundleDepsForSsrPlugin
53
+ };
54
+ //# sourceMappingURL=autoPreBundleDepsForSsrPlugin.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/plugins/autoPreBundleDepsForSsrPlugin.ts"],
4
+ "mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,aAAa;AAEpB,SAAS,cAAc,iCAAiC;AACxD,SAAS,aAAa,kBAAkB;AACxC,SAAS,sBAAsB;AAE/B,MAAM,OAAO,gCACP,EAAE,OAAO,aAAa,IAAI,eAAe,IAAI;AAE5C,SAAS,8BAA8B,EAAE,KAAK,GAAqB;AACxE,SAAO;AAAA,IACL,MAAM,QAAQ,IAAI;AAAA,IAClB,SAAS;AAAA,IACT,MAAM,OAAO,MAAM,KAAK;AACtB,cAAQ,oBAAoB;AAC5B,YAAM,YAAY,QAAQ,KAAK,IAAI,IAAI,GAGjC,UAAU,IAAI,YAAY,SAE1B,WAAW,MAAM,WAAW,MAAM;AAAA,QACtC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,GACK,eAAe,WAAW,MAAM,YAAY,QAAQ,IAAI,QAExD,oCAAoC,KAAK;AAAA,QAC7C;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,UAAI;AACJ,UAAI,gBAAgB,CAAC;AACnB,YAAI;AACF,gBAAM,EAAE,cAAc,oBAAoB,uBAAuB,sBAAsB,IACrF,MAAM,QAAQ,SAAS,iCAAiC;AAE1D,UAAI,iBAAiB,sBAAsB,MAAM,QAAQ,qBAAqB,MAC5E,wBAAwB,uBACxB,QAAQ,kCAAkC,iCAAiC,EAAE;AAAA,QAEjF,QAAQ;AAAA,QAAC;AAGX,aAAK,0BACH,wBAAwB,MAAM,0BAA0B,GAAG,IAAI,eAAe,GAEzE,WAEH,QAAQ,WAAW,mCAAmC;AAAA,QACpD;AAAA,QACA;AAAA,MACF,CAAC,IAIL,QAAQ,yBAAyB,KAAK,IAAI,IAAI,SAAS,IAAI,GAC3D;AAAA,QACE,GAAG,sBAAsB,MAAM,2DAC5B,eACG,KACA,uCAAuC,MAAM,SAAS;AAAA,MAC9D,GACA;AAAA,QACE,8CAA8C,sBAAsB,KAAK,IAAI,CAAC;AAAA,MAChF,GAEO;AAAA,QACL,KAAK;AAAA,UACH,cAAc;AAAA,YACZ,SAAS;AAAA;AAAA,YAET,SAAS;AAAA,UACX;AAAA,UACA,YAAY;AAAA,QACd;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,49 @@
1
+ import path from "node:path";
2
+ import FSExtra from "fs-extra";
3
+ import { EXCLUDE_LIST, scanDepsToPreBundleForSsr } from "../utils/scanDepsToPreBundleForSsr.mjs";
4
+ import { getFileHash, lookupFile } from "../utils/utils.mjs";
5
+ import { createDebugger } from "@vxrn/debug";
6
+ const name = "auto-pre-bundle-deps-for-ssr",
7
+ {
8
+ debug,
9
+ debugDetails
10
+ } = createDebugger(name);
11
+ function autoPreBundleDepsForSsrPlugin({
12
+ root
13
+ }) {
14
+ return {
15
+ name: `vxrn:${name}`,
16
+ enforce: "pre",
17
+ async config(_cfg, env) {
18
+ debug?.("Config hook called");
19
+ const startedAt = debug ? Date.now() : 0,
20
+ noCache = env.command === "build",
21
+ lockFile = await lookupFile(root, ["yarn.lock", "package-lock.json", "pnpm-lock.yaml", "bun.lockb"]),
22
+ lockFileHash = lockFile ? await getFileHash(lockFile) : void 0,
23
+ noExternalDepsForSsrCacheFilePath = path.join(root, "node_modules", ".vxrn", "deps-to-pre-bundle-for-ssr-cache.json");
24
+ let depsToPreBundleForSsr;
25
+ if (lockFileHash && !noCache) try {
26
+ const {
27
+ lockFileHash: cachedLockFileHash,
28
+ depsToPreBundleForSsr: cachedDepsToPreBundle
29
+ } = await FSExtra.readJSON(noExternalDepsForSsrCacheFilePath);
30
+ lockFileHash === cachedLockFileHash && Array.isArray(cachedDepsToPreBundle) && (depsToPreBundleForSsr = cachedDepsToPreBundle, debug?.(`Using cached scan results from ${noExternalDepsForSsrCacheFilePath}`));
31
+ } catch {}
32
+ return depsToPreBundleForSsr || (depsToPreBundleForSsr = await scanDepsToPreBundleForSsr(`${root}/package.json`), noCache || FSExtra.outputJSON(noExternalDepsForSsrCacheFilePath, {
33
+ lockFileHash,
34
+ depsToPreBundleForSsr
35
+ })), debug?.(`Scanning completed in ${Date.now() - startedAt}ms`), debug?.(`${depsToPreBundleForSsr.length} deps are discovered and will be pre-bundled for SSR.` + (debugDetails ? "" : ` (Focus on this debug scope, "DEBUG=${debug.namespace}", to see more details.)`)), debugDetails?.(`Deps discovered to be pre-bundled for SSR: ${depsToPreBundleForSsr.join(", ")}`), {
36
+ ssr: {
37
+ optimizeDeps: {
38
+ include: depsToPreBundleForSsr,
39
+ // Known packages that will fail to pre-bundle
40
+ exclude: EXCLUDE_LIST
41
+ },
42
+ noExternal: depsToPreBundleForSsr
43
+ }
44
+ };
45
+ }
46
+ };
47
+ }
48
+ export { autoPreBundleDepsForSsrPlugin };
49
+ //# sourceMappingURL=autoPreBundleDepsForSsrPlugin.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["path","FSExtra","EXCLUDE_LIST","scanDepsToPreBundleForSsr","getFileHash","lookupFile","createDebugger","name","debug","debugDetails","autoPreBundleDepsForSsrPlugin","root","enforce","config","_cfg","env","startedAt","Date","now","noCache","command","lockFile","lockFileHash","noExternalDepsForSsrCacheFilePath","join","depsToPreBundleForSsr","cachedLockFileHash","cachedDepsToPreBundle","readJSON","Array","isArray","outputJSON","length","namespace","ssr","optimizeDeps","include","exclude","noExternal"],"sources":["../../src/plugins/autoPreBundleDepsForSsrPlugin.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,IAAA,MAAU;AACjB,OAAOC,OAAA,MAAa;AAEpB,SAASC,YAAA,EAAcC,yBAAA,QAAiC;AACxD,SAASC,WAAA,EAAaC,UAAA,QAAkB;AACxC,SAASC,cAAA,QAAsB;AAE/B,MAAMC,IAAA,GAAO;EACP;IAAEC,KAAA;IAAOC;EAAa,IAAIH,cAAA,CAAeC,IAAI;AAE5C,SAASG,8BAA8B;EAAEC;AAAK,GAAqB;EACxE,OAAO;IACLJ,IAAA,EAAM,QAAQA,IAAI;IAClBK,OAAA,EAAS;IACT,MAAMC,OAAOC,IAAA,EAAMC,GAAA,EAAK;MACtBP,KAAA,GAAQ,oBAAoB;MAC5B,MAAMQ,SAAA,GAAYR,KAAA,GAAQS,IAAA,CAAKC,GAAA,CAAI,IAAI;QAGjCC,OAAA,GAAUJ,GAAA,CAAIK,OAAA,KAAY;QAE1BC,QAAA,GAAW,MAAMhB,UAAA,CAAWM,IAAA,EAAM,CACtC,aACA,qBACA,kBACA,YACD;QACKW,YAAA,GAAeD,QAAA,GAAW,MAAMjB,WAAA,CAAYiB,QAAQ,IAAI;QAExDE,iCAAA,GAAoCvB,IAAA,CAAKwB,IAAA,CAC7Cb,IAAA,EACA,gBACA,SACA,uCACF;MAEA,IAAIc,qBAAA;MACJ,IAAIH,YAAA,IAAgB,CAACH,OAAA,EACnB,IAAI;QACF,MAAM;UAAEG,YAAA,EAAcI,kBAAA;UAAoBD,qBAAA,EAAuBE;QAAsB,IACrF,MAAM1B,OAAA,CAAQ2B,QAAA,CAASL,iCAAiC;QAEtDD,YAAA,KAAiBI,kBAAA,IAAsBG,KAAA,CAAMC,OAAA,CAAQH,qBAAqB,MAC5EF,qBAAA,GAAwBE,qBAAA,EACxBnB,KAAA,GAAQ,kCAAkCe,iCAAiC,EAAE;MAEjF,QAAQ,CAAC;MAGX,OAAKE,qBAAA,KACHA,qBAAA,GAAwB,MAAMtB,yBAAA,CAA0B,GAAGQ,IAAI,eAAe,GAEzEQ,OAAA,IAEHlB,OAAA,CAAQ8B,UAAA,CAAWR,iCAAA,EAAmC;QACpDD,YAAA;QACAG;MACF,CAAC,IAILjB,KAAA,GAAQ,yBAAyBS,IAAA,CAAKC,GAAA,CAAI,IAAIF,SAAS,IAAI,GAC3DR,KAAA,GACE,GAAGiB,qBAAA,CAAsBO,MAAM,2DAC5BvB,YAAA,GACG,KACA,uCAAuCD,KAAA,CAAMyB,SAAS,2BAC9D,GACAxB,YAAA,GACE,8CAA8CgB,qBAAA,CAAsBD,IAAA,CAAK,IAAI,CAAC,EAChF,GAEO;QACLU,GAAA,EAAK;UACHC,YAAA,EAAc;YACZC,OAAA,EAASX,qBAAA;YAAA;YAETY,OAAA,EAASnC;UACX;UACAoC,UAAA,EAAYb;QACd;MACF;IACF;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ import path from "node:path";
2
+ import FSExtra from "fs-extra";
3
+ import { EXCLUDE_LIST, scanDepsToPreBundleForSsr } from "../utils/scanDepsToPreBundleForSsr";
4
+ import { getFileHash, lookupFile } from "../utils/utils";
5
+ import { createDebugger } from "@vxrn/debug";
6
+ var name = "auto-pre-bundle-deps-for-ssr", { debug, debugDetails } = createDebugger(name);
7
+ function autoPreBundleDepsForSsrPlugin(param) {
8
+ var { root } = param;
9
+ return {
10
+ name: `vxrn:${name}`,
11
+ enforce: "pre",
12
+ async config(_cfg, env) {
13
+ debug?.("Config hook called");
14
+ var startedAt = debug ? Date.now() : 0, noCache = env.command === "build", lockFile = await lookupFile(root, [
15
+ "yarn.lock",
16
+ "package-lock.json",
17
+ "pnpm-lock.yaml",
18
+ "bun.lockb"
19
+ ]), lockFileHash = lockFile ? await getFileHash(lockFile) : void 0, noExternalDepsForSsrCacheFilePath = path.join(root, "node_modules", ".vxrn", "deps-to-pre-bundle-for-ssr-cache.json"), depsToPreBundleForSsr = void 0;
20
+ if (lockFileHash && !noCache)
21
+ try {
22
+ var { lockFileHash: cachedLockFileHash, depsToPreBundleForSsr: cachedDepsToPreBundle } = await FSExtra.readJSON(noExternalDepsForSsrCacheFilePath);
23
+ lockFileHash === cachedLockFileHash && Array.isArray(cachedDepsToPreBundle) && (depsToPreBundleForSsr = cachedDepsToPreBundle, debug?.(`Using cached scan results from ${noExternalDepsForSsrCacheFilePath}`));
24
+ } catch {
25
+ }
26
+ return depsToPreBundleForSsr || (depsToPreBundleForSsr = await scanDepsToPreBundleForSsr(`${root}/package.json`), noCache || FSExtra.outputJSON(noExternalDepsForSsrCacheFilePath, {
27
+ lockFileHash,
28
+ depsToPreBundleForSsr
29
+ })), debug?.(`Scanning completed in ${Date.now() - startedAt}ms`), debug?.(`${depsToPreBundleForSsr.length} deps are discovered and will be pre-bundled for SSR.` + (debugDetails ? "" : ` (Focus on this debug scope, "DEBUG=${debug.namespace}", to see more details.)`)), debugDetails?.(`Deps discovered to be pre-bundled for SSR: ${depsToPreBundleForSsr.join(", ")}`), {
30
+ ssr: {
31
+ optimizeDeps: {
32
+ include: depsToPreBundleForSsr,
33
+ // Known packages that will fail to pre-bundle
34
+ exclude: EXCLUDE_LIST
35
+ },
36
+ noExternal: depsToPreBundleForSsr
37
+ }
38
+ };
39
+ }
40
+ };
41
+ }
42
+ export {
43
+ autoPreBundleDepsForSsrPlugin
44
+ };
45
+ //# sourceMappingURL=autoPreBundleDepsForSsrPlugin.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/plugins/Users/n8/one2/packages/vxrn/src/plugins/autoPreBundleDepsForSsrPlugin.ts"],
4
+ "mappings": "AAAA,OAAOA,UAAU;AACjB,OAAOC,aAAa;AAEpB,SAASC,cAAcC,iCAAiC;AACxD,SAASC,aAAaC,kBAAkB;AACxC,SAASC,sBAAsB;AAE/B,IAAMC,OAAO,gCACP,EAAEC,OAAOC,aAAY,IAAKH,eAAeC,IAAAA;AAExC,SAASG,8BAA8B,OAA0B;MAA1B,EAAEC,KAAI,IAAN;AAC5C,SAAO;IACLJ,MAAM,QAAQA,IAAAA;IACdK,SAAS;IACT,MAAMC,OAAOC,MAAMC,KAAG;AACpBP,MAAAA,QAAQ,oBAAA;AACR,UAAMQ,YAAYR,QAAQS,KAAKC,IAAG,IAAK,GAGjCC,UAAUJ,IAAIK,YAAY,SAE1BC,WAAW,MAAMhB,WAAWM,MAAM;QACtC;QACA;QACA;QACA;OACD,GACKW,eAAeD,WAAW,MAAMjB,YAAYiB,QAAAA,IAAYE,QAExDC,oCAAoCxB,KAAKyB,KAC7Cd,MACA,gBACA,SACA,uCAAA,GAGEe,wBAA8CH;AAClD,UAAID,gBAAgB,CAACH;AACnB,YAAI;AACF,cAAM,EAAEG,cAAcK,oBAAoBD,uBAAuBE,sBAAqB,IACpF,MAAM3B,QAAQ4B,SAASL,iCAAAA;AAEzB,UAAIF,iBAAiBK,sBAAsBG,MAAMC,QAAQH,qBAAAA,MACvDF,wBAAwBE,uBACxBpB,QAAQ,kCAAkCgB,iCAAAA,EAAmC;QAEjF,QAAQ;QAAC;AAGX,aAAKE,0BACHA,wBAAwB,MAAMvB,0BAA0B,GAAGQ,IAAAA,eAAmB,GAEzEQ,WAEHlB,QAAQ+B,WAAWR,mCAAmC;QACpDF;QACAI;MACF,CAAA,IAIJlB,QAAQ,yBAAyBS,KAAKC,IAAG,IAAKF,SAAAA,IAAa,GAC3DR,QACE,GAAGkB,sBAAsBO,MAAM,2DAC5BxB,eACG,KACA,uCAAuCD,MAAM0B,SAAS,2BAAyB,GAEvFzB,eACE,8CAA8CiB,sBAAsBD,KAAK,IAAA,CAAA,EAAO,GAG3E;QACLU,KAAK;UACHC,cAAc;YACZC,SAASX;;YAETY,SAASpC;UACX;UACAqC,YAAYb;QACd;MACF;IACF;EACF;AACF;",
5
+ "names": ["path", "FSExtra", "EXCLUDE_LIST", "scanDepsToPreBundleForSsr", "getFileHash", "lookupFile", "createDebugger", "name", "debug", "debugDetails", "autoPreBundleDepsForSsrPlugin", "root", "enforce", "config", "_cfg", "env", "startedAt", "Date", "now", "noCache", "command", "lockFile", "lockFileHash", "undefined", "noExternalDepsForSsrCacheFilePath", "join", "depsToPreBundleForSsr", "cachedLockFileHash", "cachedDepsToPreBundle", "readJSON", "Array", "isArray", "outputJSON", "length", "namespace", "ssr", "optimizeDeps", "include", "exclude", "noExternal"]
6
+ }
@@ -0,0 +1,53 @@
1
+ import * as babel from "@babel/core";
2
+ const REANIMATED_AUTOWORKLETIZATION_KEYWORDS = [
3
+ "worklet",
4
+ "useAnimatedGestureHandler",
5
+ "useAnimatedScrollHandler",
6
+ "useFrameCallback",
7
+ "useAnimatedStyle",
8
+ "useAnimatedProps",
9
+ "createAnimatedPropAdapter",
10
+ "useDerivedValue",
11
+ "useAnimatedReaction",
12
+ "useWorkletCallback",
13
+ "withTiming",
14
+ "withSpring",
15
+ "withDecay",
16
+ "withRepeat",
17
+ "runOnUI",
18
+ "executeOnUIRuntimeSync"
19
+ ], REANIMATED_REGEX = new RegExp(REANIMATED_AUTOWORKLETIZATION_KEYWORDS.join("|")), REANIMATED_IGNORED_PATHS = [
20
+ // React and React Native libraries are not likely to use reanimated.
21
+ // This can also avoid the "[BABEL] Note: The code generator has deoptimised the styling of ... as it exceeds the max of 500KB" warning since the react-native source code also contains `useAnimatedProps`.
22
+ "react-native-prebuilt/vendor",
23
+ "node_modules/.vxrn/react-native"
24
+ ], REANIMATED_IGNORED_PATHS_REGEX = new RegExp(
25
+ REANIMATED_IGNORED_PATHS.map((s) => s.replace(/\//g, "/")).join("|")
26
+ );
27
+ async function babelReanimated(input, filename) {
28
+ return await new Promise((res, rej) => {
29
+ babel.transform(
30
+ input,
31
+ {
32
+ plugins: ["react-native-reanimated/plugin"],
33
+ filename
34
+ },
35
+ (err, result) => {
36
+ (!result || err) && rej(err || "no res"), res(result.code);
37
+ }
38
+ );
39
+ });
40
+ }
41
+ function getBabelReanimatedPlugin() {
42
+ return {
43
+ name: "babel-reanimated",
44
+ async transform(code, id) {
45
+ if (!id.includes("react-native-prebuilt") && !REANIMATED_IGNORED_PATHS_REGEX.test(id) && REANIMATED_REGEX.test(code))
46
+ return await babelReanimated(code, id);
47
+ }
48
+ };
49
+ }
50
+ export {
51
+ getBabelReanimatedPlugin
52
+ };
53
+ //# sourceMappingURL=babelReanimated.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/plugins/babelReanimated.ts"],
4
+ "mappings": "AAAA,YAAY,WAAW;AAMvB,MAAM,yCAAyC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKM,mBAAmB,IAAI,OAAO,uCAAuC,KAAK,GAAG,CAAC,GAE9E,2BAA2B;AAAA;AAAA;AAAA,EAG/B;AAAA,EACA;AACF,GAEM,iCAAiC,IAAI;AAAA,EACzC,yBAAyB,IAAI,CAAC,MAAM,EAAE,QAAQ,OAAO,GAAG,CAAC,EAAE,KAAK,GAAG;AACrE;AAEA,eAAe,gBAAgB,OAAe,UAAkB;AAC9D,SAAO,MAAM,IAAI,QAAgB,CAAC,KAAK,QAAQ;AAC7C,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,QACE,SAAS,CAAC,gCAAgC;AAAA,QAC1C;AAAA,MACF;AAAA,MACA,CAAC,KAAU,WAAW;AACpB,SAAI,CAAC,UAAU,QAAK,IAAI,OAAO,QAAQ,GACvC,IAAI,OAAQ,IAAK;AAAA,MACnB;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,2BAAmC;AACjD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,UAAU,MAAM,IAAI;AACxB,UAAI,IAAG,SAAS,uBAAuB,KAInC,CAAC,+BAA+B,KAAK,EAAE,KAAK,iBAAiB,KAAK,IAAI;AAExE,eADY,MAAM,gBAAgB,MAAM,EAAE;AAAA,IAG9C;AAAA,EACF;AACF;",
5
+ "names": []
6
+ }
@@ -0,0 +1,28 @@
1
+ import * as babel from "@babel/core";
2
+ const REANIMATED_AUTOWORKLETIZATION_KEYWORDS = ["worklet", "useAnimatedGestureHandler", "useAnimatedScrollHandler", "useFrameCallback", "useAnimatedStyle", "useAnimatedProps", "createAnimatedPropAdapter", "useDerivedValue", "useAnimatedReaction", "useWorkletCallback", "withTiming", "withSpring", "withDecay", "withRepeat", "runOnUI", "executeOnUIRuntimeSync"],
3
+ REANIMATED_REGEX = new RegExp(REANIMATED_AUTOWORKLETIZATION_KEYWORDS.join("|")),
4
+ REANIMATED_IGNORED_PATHS = [
5
+ // React and React Native libraries are not likely to use reanimated.
6
+ // This can also avoid the "[BABEL] Note: The code generator has deoptimised the styling of ... as it exceeds the max of 500KB" warning since the react-native source code also contains `useAnimatedProps`.
7
+ "react-native-prebuilt/vendor", "node_modules/.vxrn/react-native"],
8
+ REANIMATED_IGNORED_PATHS_REGEX = new RegExp(REANIMATED_IGNORED_PATHS.map(s => s.replace(/\//g, "/")).join("|"));
9
+ async function babelReanimated(input, filename) {
10
+ return await new Promise((res, rej) => {
11
+ babel.transform(input, {
12
+ plugins: ["react-native-reanimated/plugin"],
13
+ filename
14
+ }, (err, result) => {
15
+ (!result || err) && rej(err || "no res"), res(result.code);
16
+ });
17
+ });
18
+ }
19
+ function getBabelReanimatedPlugin() {
20
+ return {
21
+ name: "babel-reanimated",
22
+ async transform(code, id) {
23
+ if (!id.includes("react-native-prebuilt") && !REANIMATED_IGNORED_PATHS_REGEX.test(id) && REANIMATED_REGEX.test(code)) return await babelReanimated(code, id);
24
+ }
25
+ };
26
+ }
27
+ export { getBabelReanimatedPlugin };
28
+ //# sourceMappingURL=babelReanimated.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["babel","REANIMATED_AUTOWORKLETIZATION_KEYWORDS","REANIMATED_REGEX","RegExp","join","REANIMATED_IGNORED_PATHS","REANIMATED_IGNORED_PATHS_REGEX","map","s","replace","babelReanimated","input","filename","Promise","res","rej","transform","plugins","err","result","code","getBabelReanimatedPlugin","name","id","includes","test"],"sources":["../../src/plugins/babelReanimated.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAYA,KAAA,MAAW;AAMvB,MAAMC,sCAAA,GAAyC,CAC7C,WACA,6BACA,4BACA,oBACA,oBACA,oBACA,6BACA,mBACA,uBACA,sBACA,cACA,cACA,aACA,cACA,WACA,yBACF;EAKMC,gBAAA,GAAmB,IAAIC,MAAA,CAAOF,sCAAA,CAAuCG,IAAA,CAAK,GAAG,CAAC;EAE9EC,wBAAA,GAA2B;EAAA;EAAA;EAG/B,gCACA,kCACF;EAEMC,8BAAA,GAAiC,IAAIH,MAAA,CACzCE,wBAAA,CAAyBE,GAAA,CAAKC,CAAA,IAAMA,CAAA,CAAEC,OAAA,CAAQ,OAAO,GAAG,CAAC,EAAEL,IAAA,CAAK,GAAG,CACrE;AAEA,eAAeM,gBAAgBC,KAAA,EAAeC,QAAA,EAAkB;EAC9D,OAAO,MAAM,IAAIC,OAAA,CAAgB,CAACC,GAAA,EAAKC,GAAA,KAAQ;IAC7Cf,KAAA,CAAMgB,SAAA,CACJL,KAAA,EACA;MACEM,OAAA,EAAS,CAAC,gCAAgC;MAC1CL;IACF,GACA,CAACM,GAAA,EAAUC,MAAA,KAAW;MACpB,CAAI,CAACA,MAAA,IAAUD,GAAA,KAAKH,GAAA,CAAIG,GAAA,IAAO,QAAQ,GACvCJ,GAAA,CAAIK,MAAA,CAAQC,IAAK;IACnB,CACF;EACF,CAAC;AACH;AAEO,SAASC,yBAAA,EAAmC;EACjD,OAAO;IACLC,IAAA,EAAM;IACN,MAAMN,UAAUI,IAAA,EAAMG,EAAA,EAAI;MACxB,IAAI,CAAAA,EAAA,CAAGC,QAAA,CAAS,uBAAuB,KAInC,CAAClB,8BAAA,CAA+BmB,IAAA,CAAKF,EAAE,KAAKrB,gBAAA,CAAiBuB,IAAA,CAAKL,IAAI,GAExE,OADY,MAAMV,eAAA,CAAgBU,IAAA,EAAMG,EAAE;IAG9C;EACF;AACF","ignoreList":[]}
@@ -0,0 +1,53 @@
1
+ import * as babel from "@babel/core";
2
+ var REANIMATED_AUTOWORKLETIZATION_KEYWORDS = [
3
+ "worklet",
4
+ "useAnimatedGestureHandler",
5
+ "useAnimatedScrollHandler",
6
+ "useFrameCallback",
7
+ "useAnimatedStyle",
8
+ "useAnimatedProps",
9
+ "createAnimatedPropAdapter",
10
+ "useDerivedValue",
11
+ "useAnimatedReaction",
12
+ "useWorkletCallback",
13
+ "withTiming",
14
+ "withSpring",
15
+ "withDecay",
16
+ "withRepeat",
17
+ "runOnUI",
18
+ "executeOnUIRuntimeSync"
19
+ ], REANIMATED_REGEX = new RegExp(REANIMATED_AUTOWORKLETIZATION_KEYWORDS.join("|")), REANIMATED_IGNORED_PATHS = [
20
+ // React and React Native libraries are not likely to use reanimated.
21
+ // This can also avoid the "[BABEL] Note: The code generator has deoptimised the styling of ... as it exceeds the max of 500KB" warning since the react-native source code also contains `useAnimatedProps`.
22
+ "react-native-prebuilt/vendor",
23
+ "node_modules/.vxrn/react-native"
24
+ ], REANIMATED_IGNORED_PATHS_REGEX = new RegExp(REANIMATED_IGNORED_PATHS.map(function(s) {
25
+ return s.replace(/\//g, "/");
26
+ }).join("|"));
27
+ async function babelReanimated(input, filename) {
28
+ return await new Promise(function(res, rej) {
29
+ babel.transform(input, {
30
+ plugins: [
31
+ "react-native-reanimated/plugin"
32
+ ],
33
+ filename
34
+ }, function(err, result) {
35
+ (!result || err) && rej(err || "no res"), res(result.code);
36
+ });
37
+ });
38
+ }
39
+ function getBabelReanimatedPlugin() {
40
+ return {
41
+ name: "babel-reanimated",
42
+ async transform(code, id) {
43
+ if (!id.includes("react-native-prebuilt") && !REANIMATED_IGNORED_PATHS_REGEX.test(id) && REANIMATED_REGEX.test(code)) {
44
+ var out = await babelReanimated(code, id);
45
+ return out;
46
+ }
47
+ }
48
+ };
49
+ }
50
+ export {
51
+ getBabelReanimatedPlugin
52
+ };
53
+ //# sourceMappingURL=babelReanimated.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/plugins/Users/n8/one2/packages/vxrn/src/plugins/babelReanimated.ts"],
4
+ "mappings": "AAAA,YAAYA,WAAW;AAMvB,IAAMC,yCAAyC;EAC7C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GAMIC,mBAAmB,IAAIC,OAAOF,uCAAuCG,KAAK,GAAA,CAAA,GAE1EC,2BAA2B;;;EAG/B;EACA;GAGIC,iCAAiC,IAAIH,OACzCE,yBAAyBE,IAAI,SAACC,GAAAA;SAAMA,EAAEC,QAAQ,OAAO,GAAA;GAAML,KAAK,GAAA,CAAA;AAGlE,eAAeM,gBAAgBC,OAAeC,UAAgB;AAC5D,SAAO,MAAM,IAAIC,QAAgB,SAACC,KAAKC,KAAAA;AACrCf,UAAMgB,UACJL,OACA;MACEM,SAAS;QAAC;;MACVL;IACF,GACA,SAACM,KAAUC,QAAAA;AACT,OAAI,CAACA,UAAUD,QAAKH,IAAIG,OAAO,QAAA,GAC/BJ,IAAIK,OAAQC,IAAI;IAClB,CAAA;EAEJ,CAAA;AACF;AAEO,SAASC,2BAAAA;AACd,SAAO;IACLC,MAAM;IACN,MAAMN,UAAUI,MAAMG,IAAE;AACtB,UAAIA,IAAGC,SAAS,uBAAA,KAIZ,CAAClB,+BAA+BmB,KAAKF,EAAAA,KAAOrB,iBAAiBuB,KAAKL,IAAAA,GAAO;AAC3E,YAAMM,MAAM,MAAMhB,gBAAgBU,MAAMG,EAAAA;AACxC,eAAOG;MACT;IACF;EACF;AACF;",
5
+ "names": ["babel", "REANIMATED_AUTOWORKLETIZATION_KEYWORDS", "REANIMATED_REGEX", "RegExp", "join", "REANIMATED_IGNORED_PATHS", "REANIMATED_IGNORED_PATHS_REGEX", "map", "s", "replace", "babelReanimated", "input", "filename", "Promise", "res", "rej", "transform", "plugins", "err", "result", "code", "getBabelReanimatedPlugin", "name", "id", "includes", "test", "out"]
6
+ }
@@ -0,0 +1,54 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ async function getPlatformResolvePlugin() {
3
+ const { getBaseVitePlugins } = await import("../config/getBaseVitePlugins"), plugin = getBaseVitePlugins().find(
4
+ (p) => typeof p == "object" && p !== null && "name" in p && p.name === "platform-specific-resolve"
5
+ );
6
+ if (!plugin || typeof plugin != "object" || !("resolveId" in plugin))
7
+ throw new Error("platform-specific-resolve plugin not found");
8
+ return plugin;
9
+ }
10
+ function createMockContext(envName, resolvedId) {
11
+ return {
12
+ resolve: vi.fn().mockResolvedValue(resolvedId ? { id: resolvedId } : null),
13
+ environment: { name: envName }
14
+ };
15
+ }
16
+ describe("platform-specific-resolve", () => {
17
+ describe(".server extension", () => {
18
+ it("ssr resolves .server files", async () => {
19
+ const resolveId = (await getPlatformResolvePlugin()).resolveId, FSExtra = await import("fs-extra");
20
+ vi.spyOn(FSExtra.default, "pathExists").mockImplementation(async (path) => String(path).includes(".server."));
21
+ const ctx = createMockContext("ssr", "/src/db.ts"), result = await resolveId.call(ctx, "./db", "/src/app.tsx", {});
22
+ expect(result).toEqual({ id: "/src/db.server.ts" }), vi.restoreAllMocks();
23
+ }), it("client does not resolve .server files", async () => {
24
+ const resolveId = (await getPlatformResolvePlugin()).resolveId, FSExtra = await import("fs-extra");
25
+ vi.spyOn(FSExtra.default, "pathExists").mockImplementation(async (path) => String(path).includes(".web."));
26
+ const ctx = createMockContext("client", "/src/db.ts"), result = await resolveId.call(ctx, "./db", "/src/app.tsx", {});
27
+ expect(result).toEqual({ id: "/src/db.web.ts" }), vi.restoreAllMocks();
28
+ }), it("errors when .server file is explicitly imported on client", async () => {
29
+ const resolveId = (await getPlatformResolvePlugin()).resolveId, ctx = createMockContext("client", "/src/db.server.ts");
30
+ await expect(
31
+ resolveId.call(ctx, "./db.server", "/src/page.tsx", {})
32
+ ).rejects.toThrow(".server file cannot be imported on client");
33
+ }), it("errors when .server file is explicitly imported on ios", async () => {
34
+ const resolveId = (await getPlatformResolvePlugin()).resolveId, ctx = createMockContext("ios", "/src/db.server.ts");
35
+ await expect(
36
+ resolveId.call(ctx, "./db.server", "/src/page.tsx", {})
37
+ ).rejects.toThrow(".server file cannot be imported on ios");
38
+ }), it("allows .server file import on ssr", async () => {
39
+ const resolveId = (await getPlatformResolvePlugin()).resolveId, FSExtra = await import("fs-extra");
40
+ vi.spyOn(FSExtra.default, "pathExists").mockResolvedValue(!1);
41
+ const ctx = createMockContext("ssr", "/src/db.server.ts"), result = await resolveId.call(ctx, "./db.server", "/src/page.tsx", {});
42
+ expect(result).toBeUndefined(), vi.restoreAllMocks();
43
+ });
44
+ }), describe("config extensions", () => {
45
+ it("ssr includes .server extensions", async () => {
46
+ const ssrExts = (await getPlatformResolvePlugin()).config().environments.ssr.resolve.extensions;
47
+ expect(ssrExts).toContain(".server.ts"), expect(ssrExts).toContain(".server.tsx"), expect(ssrExts).toContain(".web.ts");
48
+ }), it("client does not include .server extensions", async () => {
49
+ const clientExts = (await getPlatformResolvePlugin()).config().environments.client.resolve.extensions;
50
+ expect(clientExts).not.toContain(".server.ts"), expect(clientExts).not.toContain(".server.tsx");
51
+ });
52
+ });
53
+ });
54
+ //# sourceMappingURL=serverExtensions.test.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/plugins/serverExtensions.test.ts"],
4
+ "mappings": "AAAA,SAAS,UAAU,QAAQ,IAAI,UAAU;AAGzC,eAAe,2BAA2B;AACxC,QAAM,EAAE,mBAAmB,IAAI,MAAM,OAAO,8BAA8B,GAGpE,SAFU,mBAAmB,EAEZ;AAAA,IACrB,CAAC,MACC,OAAO,KAAM,YACb,MAAM,QACN,UAAU,KACV,EAAE,SAAS;AAAA,EACf;AAEA,MAAI,CAAC,UAAU,OAAO,UAAW,YAAY,EAAE,eAAe;AAC5D,UAAM,IAAI,MAAM,4CAA4C;AAG9D,SAAO;AACT;AAEA,SAAS,kBAAkB,SAAiB,YAAqB;AAC/D,SAAO;AAAA,IACL,SAAS,GAAG,GAAG,EAAE,kBAAkB,aAAa,EAAE,IAAI,WAAW,IAAI,IAAI;AAAA,IACzE,aAAa,EAAE,MAAM,QAAQ;AAAA,EAC/B;AACF;AAEA,SAAS,6BAA6B,MAAM;AAC1C,WAAS,qBAAqB,MAAM;AAClC,OAAG,8BAA8B,YAAY;AAE3C,YAAM,aADS,MAAM,yBAAyB,GACrB,WAEnB,UAAU,MAAM,OAAO,UAAU;AACvC,SAAG,MAAM,QAAQ,SAAS,YAAY,EAAE,mBAAmB,OAAO,SACzD,OAAO,IAAI,EAAE,SAAS,UAAU,CACxC;AAED,YAAM,MAAM,kBAAkB,OAAO,YAAY,GAC3C,SAAS,MAAM,UAAU,KAAK,KAAK,QAAQ,gBAAgB,CAAC,CAAC;AAEnE,aAAO,MAAM,EAAE,QAAQ,EAAE,IAAI,oBAAoB,CAAC,GAElD,GAAG,gBAAgB;AAAA,IACrB,CAAC,GAED,GAAG,yCAAyC,YAAY;AAEtD,YAAM,aADS,MAAM,yBAAyB,GACrB,WAEnB,UAAU,MAAM,OAAO,UAAU;AACvC,SAAG,MAAM,QAAQ,SAAS,YAAY,EAAE,mBAAmB,OAAO,SACzD,OAAO,IAAI,EAAE,SAAS,OAAO,CACrC;AAED,YAAM,MAAM,kBAAkB,UAAU,YAAY,GAC9C,SAAS,MAAM,UAAU,KAAK,KAAK,QAAQ,gBAAgB,CAAC,CAAC;AAEnE,aAAO,MAAM,EAAE,QAAQ,EAAE,IAAI,iBAAiB,CAAC,GAE/C,GAAG,gBAAgB;AAAA,IACrB,CAAC,GAED,GAAG,6DAA6D,YAAY;AAE1E,YAAM,aADS,MAAM,yBAAyB,GACrB,WAEnB,MAAM,kBAAkB,UAAU,mBAAmB;AAE3D,YAAM;AAAA,QACJ,UAAU,KAAK,KAAK,eAAe,iBAAiB,CAAC,CAAC;AAAA,MACxD,EAAE,QAAQ,QAAQ,2CAA2C;AAAA,IAC/D,CAAC,GAED,GAAG,0DAA0D,YAAY;AAEvE,YAAM,aADS,MAAM,yBAAyB,GACrB,WAEnB,MAAM,kBAAkB,OAAO,mBAAmB;AAExD,YAAM;AAAA,QACJ,UAAU,KAAK,KAAK,eAAe,iBAAiB,CAAC,CAAC;AAAA,MACxD,EAAE,QAAQ,QAAQ,wCAAwC;AAAA,IAC5D,CAAC,GAED,GAAG,qCAAqC,YAAY;AAElD,YAAM,aADS,MAAM,yBAAyB,GACrB,WAEnB,UAAU,MAAM,OAAO,UAAU;AACvC,SAAG,MAAM,QAAQ,SAAS,YAAY,EAAE,kBAAkB,EAAY;AAEtE,YAAM,MAAM,kBAAkB,OAAO,mBAAmB,GAElD,SAAS,MAAM,UAAU,KAAK,KAAK,eAAe,iBAAiB,CAAC,CAAC;AAC3E,aAAO,MAAM,EAAE,cAAc,GAE7B,GAAG,gBAAgB;AAAA,IACrB,CAAC;AAAA,EACH,CAAC,GAED,SAAS,qBAAqB,MAAM;AAClC,OAAG,mCAAmC,YAAY;AAIhD,YAAM,WAHS,MAAM,yBAAyB,GACvB,OAAoB,EAEpB,aAAa,IAAI,QAAQ;AAChD,aAAO,OAAO,EAAE,UAAU,YAAY,GACtC,OAAO,OAAO,EAAE,UAAU,aAAa,GACvC,OAAO,OAAO,EAAE,UAAU,SAAS;AAAA,IACrC,CAAC,GAED,GAAG,8CAA8C,YAAY;AAI3D,YAAM,cAHS,MAAM,yBAAyB,GACvB,OAAoB,EAEjB,aAAa,OAAO,QAAQ;AACtD,aAAO,UAAU,EAAE,IAAI,UAAU,YAAY,GAC7C,OAAO,UAAU,EAAE,IAAI,UAAU,aAAa;AAAA,IAChD,CAAC;AAAA,EACH,CAAC;AACH,CAAC;",
5
+ "names": []
6
+ }