one 1.16.12 → 1.17.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 (157) hide show
  1. package/dist/cjs/babel-preset/index.cjs +154 -0
  2. package/dist/cjs/babel-preset/index.native.js +186 -0
  3. package/dist/cjs/babel-preset/index.native.js.map +1 -0
  4. package/dist/cjs/babel-preset/index.test.cjs +143 -0
  5. package/dist/cjs/babel-preset/index.test.native.js +165 -0
  6. package/dist/cjs/babel-preset/index.test.native.js.map +1 -0
  7. package/dist/cjs/babel-preset/integration.test.cjs +94 -0
  8. package/dist/cjs/babel-preset/integration.test.native.js +97 -0
  9. package/dist/cjs/babel-preset/integration.test.native.js.map +1 -0
  10. package/dist/cjs/cli/generateBundlerConfig.cjs +247 -0
  11. package/dist/cjs/cli/generateBundlerConfig.native.js +316 -0
  12. package/dist/cjs/cli/generateBundlerConfig.native.js.map +1 -0
  13. package/dist/cjs/cli/generateBundlerConfig.test.cjs +350 -0
  14. package/dist/cjs/cli/generateBundlerConfig.test.native.js +380 -0
  15. package/dist/cjs/cli/generateBundlerConfig.test.native.js.map +1 -0
  16. package/dist/cjs/cli/patch.cjs +19 -2
  17. package/dist/cjs/cli/patch.native.js +26 -2
  18. package/dist/cjs/cli/patch.native.js.map +1 -1
  19. package/dist/cjs/cli/patch.test.cjs +56 -0
  20. package/dist/cjs/cli/patch.test.native.js +65 -0
  21. package/dist/cjs/cli/patch.test.native.js.map +1 -0
  22. package/dist/cjs/cli.cjs +39 -2
  23. package/dist/cjs/cli.native.js +40 -2
  24. package/dist/cjs/cli.native.js.map +1 -1
  25. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.cjs +102 -0
  26. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.native.js +109 -0
  27. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.native.js.map +1 -0
  28. package/dist/cjs/metro-config/getViteMetroPluginOptions.cjs +17 -150
  29. package/dist/cjs/metro-config/getViteMetroPluginOptions.integration.test.cjs +84 -0
  30. package/dist/cjs/metro-config/getViteMetroPluginOptions.integration.test.native.js +90 -0
  31. package/dist/cjs/metro-config/getViteMetroPluginOptions.integration.test.native.js.map +1 -0
  32. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js +17 -158
  33. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
  34. package/dist/cjs/metro-config/withOne.cjs +82 -0
  35. package/dist/cjs/metro-config/withOne.native.js +88 -0
  36. package/dist/cjs/metro-config/withOne.native.js.map +1 -0
  37. package/dist/cjs/metro-config/withOne.test.cjs +129 -0
  38. package/dist/cjs/metro-config/withOne.test.native.js +156 -0
  39. package/dist/cjs/metro-config/withOne.test.native.js.map +1 -0
  40. package/dist/cjs/vite/loadConfig.cjs +20 -1
  41. package/dist/cjs/vite/loadConfig.native.js +20 -1
  42. package/dist/cjs/vite/loadConfig.native.js.map +1 -1
  43. package/dist/cjs/vite/plugins/warmRoutesPlugin.cjs +13 -7
  44. package/dist/cjs/vite/plugins/warmRoutesPlugin.native.js +13 -7
  45. package/dist/cjs/vite/plugins/warmRoutesPlugin.native.js.map +1 -1
  46. package/dist/esm/babel-preset/index.mjs +116 -0
  47. package/dist/esm/babel-preset/index.mjs.map +1 -0
  48. package/dist/esm/babel-preset/index.native.js +145 -0
  49. package/dist/esm/babel-preset/index.native.js.map +1 -0
  50. package/dist/esm/babel-preset/index.test.mjs +120 -0
  51. package/dist/esm/babel-preset/index.test.mjs.map +1 -0
  52. package/dist/esm/babel-preset/index.test.native.js +139 -0
  53. package/dist/esm/babel-preset/index.test.native.js.map +1 -0
  54. package/dist/esm/babel-preset/integration.test.mjs +71 -0
  55. package/dist/esm/babel-preset/integration.test.mjs.map +1 -0
  56. package/dist/esm/babel-preset/integration.test.native.js +71 -0
  57. package/dist/esm/babel-preset/integration.test.native.js.map +1 -0
  58. package/dist/esm/cli/generateBundlerConfig.mjs +207 -0
  59. package/dist/esm/cli/generateBundlerConfig.mjs.map +1 -0
  60. package/dist/esm/cli/generateBundlerConfig.native.js +273 -0
  61. package/dist/esm/cli/generateBundlerConfig.native.js.map +1 -0
  62. package/dist/esm/cli/generateBundlerConfig.test.mjs +327 -0
  63. package/dist/esm/cli/generateBundlerConfig.test.mjs.map +1 -0
  64. package/dist/esm/cli/generateBundlerConfig.test.native.js +354 -0
  65. package/dist/esm/cli/generateBundlerConfig.test.native.js.map +1 -0
  66. package/dist/esm/cli/patch.mjs +19 -2
  67. package/dist/esm/cli/patch.mjs.map +1 -1
  68. package/dist/esm/cli/patch.native.js +26 -2
  69. package/dist/esm/cli/patch.native.js.map +1 -1
  70. package/dist/esm/cli/patch.test.mjs +57 -0
  71. package/dist/esm/cli/patch.test.mjs.map +1 -0
  72. package/dist/esm/cli/patch.test.native.js +63 -0
  73. package/dist/esm/cli/patch.test.native.js.map +1 -0
  74. package/dist/esm/cli.mjs +39 -2
  75. package/dist/esm/cli.mjs.map +1 -1
  76. package/dist/esm/cli.native.js +40 -2
  77. package/dist/esm/cli.native.js.map +1 -1
  78. package/dist/esm/metro-config/buildOneMetroResolverOverrides.mjs +66 -0
  79. package/dist/esm/metro-config/buildOneMetroResolverOverrides.mjs.map +1 -0
  80. package/dist/esm/metro-config/buildOneMetroResolverOverrides.native.js +70 -0
  81. package/dist/esm/metro-config/buildOneMetroResolverOverrides.native.js.map +1 -0
  82. package/dist/esm/metro-config/getViteMetroPluginOptions.integration.test.mjs +61 -0
  83. package/dist/esm/metro-config/getViteMetroPluginOptions.integration.test.mjs.map +1 -0
  84. package/dist/esm/metro-config/getViteMetroPluginOptions.integration.test.native.js +64 -0
  85. package/dist/esm/metro-config/getViteMetroPluginOptions.integration.test.native.js.map +1 -0
  86. package/dist/esm/metro-config/getViteMetroPluginOptions.mjs +17 -138
  87. package/dist/esm/metro-config/getViteMetroPluginOptions.mjs.map +1 -1
  88. package/dist/esm/metro-config/getViteMetroPluginOptions.native.js +17 -146
  89. package/dist/esm/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
  90. package/dist/esm/metro-config/withOne.mjs +45 -0
  91. package/dist/esm/metro-config/withOne.mjs.map +1 -0
  92. package/dist/esm/metro-config/withOne.native.js +48 -0
  93. package/dist/esm/metro-config/withOne.native.js.map +1 -0
  94. package/dist/esm/metro-config/withOne.test.mjs +106 -0
  95. package/dist/esm/metro-config/withOne.test.mjs.map +1 -0
  96. package/dist/esm/metro-config/withOne.test.native.js +130 -0
  97. package/dist/esm/metro-config/withOne.test.native.js.map +1 -0
  98. package/dist/esm/vite/loadConfig.mjs +20 -1
  99. package/dist/esm/vite/loadConfig.mjs.map +1 -1
  100. package/dist/esm/vite/loadConfig.native.js +20 -1
  101. package/dist/esm/vite/loadConfig.native.js.map +1 -1
  102. package/dist/esm/vite/plugins/warmRoutesPlugin.mjs +13 -7
  103. package/dist/esm/vite/plugins/warmRoutesPlugin.mjs.map +1 -1
  104. package/dist/esm/vite/plugins/warmRoutesPlugin.native.js +13 -7
  105. package/dist/esm/vite/plugins/warmRoutesPlugin.native.js.map +1 -1
  106. package/package.json +20 -9
  107. package/src/babel-preset/index.test.ts +148 -0
  108. package/src/babel-preset/index.ts +250 -0
  109. package/src/babel-preset/integration.test.ts +91 -0
  110. package/src/cli/generateBundlerConfig.test.ts +343 -0
  111. package/src/cli/generateBundlerConfig.ts +339 -0
  112. package/src/cli/patch.test.ts +65 -0
  113. package/src/cli/patch.ts +30 -2
  114. package/src/cli.ts +31 -0
  115. package/src/metro-config/buildOneMetroResolverOverrides.ts +104 -0
  116. package/src/metro-config/getViteMetroPluginOptions.integration.test.ts +75 -0
  117. package/src/metro-config/getViteMetroPluginOptions.ts +15 -230
  118. package/src/metro-config/withOne.test.ts +120 -0
  119. package/src/metro-config/withOne.ts +112 -0
  120. package/src/vite/loadConfig.ts +22 -0
  121. package/src/vite/plugins/warmRoutesPlugin.ts +22 -6
  122. package/types/babel-preset/index.d.ts +68 -0
  123. package/types/babel-preset/index.d.ts.map +1 -0
  124. package/types/babel-preset/index.test.d.ts +2 -0
  125. package/types/babel-preset/index.test.d.ts.map +1 -0
  126. package/types/babel-preset/integration.test.d.ts +2 -0
  127. package/types/babel-preset/integration.test.d.ts.map +1 -0
  128. package/types/cli/generateBundlerConfig.d.ts +61 -0
  129. package/types/cli/generateBundlerConfig.d.ts.map +1 -0
  130. package/types/cli/generateBundlerConfig.test.d.ts +2 -0
  131. package/types/cli/generateBundlerConfig.test.d.ts.map +1 -0
  132. package/types/cli/patch.d.ts.map +1 -1
  133. package/types/cli/patch.test.d.ts +2 -0
  134. package/types/cli/patch.test.d.ts.map +1 -0
  135. package/types/metro-config/buildOneMetroResolverOverrides.d.ts +20 -0
  136. package/types/metro-config/buildOneMetroResolverOverrides.d.ts.map +1 -0
  137. package/types/metro-config/getViteMetroPluginOptions.d.ts +0 -5
  138. package/types/metro-config/getViteMetroPluginOptions.d.ts.map +1 -1
  139. package/types/metro-config/getViteMetroPluginOptions.integration.test.d.ts +2 -0
  140. package/types/metro-config/getViteMetroPluginOptions.integration.test.d.ts.map +1 -0
  141. package/types/metro-config/withOne.d.ts +44 -0
  142. package/types/metro-config/withOne.d.ts.map +1 -0
  143. package/types/metro-config/withOne.test.d.ts +2 -0
  144. package/types/metro-config/withOne.test.d.ts.map +1 -0
  145. package/types/vite/loadConfig.d.ts +1 -0
  146. package/types/vite/loadConfig.d.ts.map +1 -1
  147. package/types/vite/plugins/warmRoutesPlugin.d.ts.map +1 -1
  148. package/dist/cjs/metro-config/getViteMetroPluginOptions.test.cjs +0 -23
  149. package/dist/cjs/metro-config/getViteMetroPluginOptions.test.native.js +0 -26
  150. package/dist/cjs/metro-config/getViteMetroPluginOptions.test.native.js.map +0 -1
  151. package/dist/esm/metro-config/getViteMetroPluginOptions.test.mjs +0 -24
  152. package/dist/esm/metro-config/getViteMetroPluginOptions.test.mjs.map +0 -1
  153. package/dist/esm/metro-config/getViteMetroPluginOptions.test.native.js +0 -24
  154. package/dist/esm/metro-config/getViteMetroPluginOptions.test.native.js.map +0 -1
  155. package/src/metro-config/getViteMetroPluginOptions.test.ts +0 -34
  156. package/types/metro-config/getViteMetroPluginOptions.test.d.ts +0 -2
  157. package/types/metro-config/getViteMetroPluginOptions.test.d.ts.map +0 -1
@@ -0,0 +1,61 @@
1
+ import type { One } from '../vite/types';
2
+ /**
3
+ * Marker that identifies a bundler config as One-generated. If the file
4
+ * still contains this marker we can safely regenerate it; if the user
5
+ * removed the marker we treat the file as customized and never overwrite.
6
+ */
7
+ export declare const ONE_GENERATED_MARKER = "@one/generated bundler-config";
8
+ export type OneBundlerConfigOptions = {
9
+ routerRoot?: string;
10
+ ignoredRouteFiles?: Array<`**/*${string}`>;
11
+ linking?: NonNullable<One.PluginOptions['router']>['linking'];
12
+ setupFile?: One.PluginOptions['setupFile'];
13
+ };
14
+ export declare function getBundlerConfigOptionsFromOneOptions(oneOptions?: One.PluginOptions): OneBundlerConfigOptions;
15
+ export type GenerateBundlerConfigArgs = {
16
+ /** Project root. Defaults to `process.cwd()`. */
17
+ cwd?: string;
18
+ /** loaded one plugin options from vite.config. */
19
+ oneOptions?: One.PluginOptions;
20
+ /** Overwrite even when the file has been customized (marker removed). */
21
+ force?: boolean;
22
+ /** Just verify state without writing — exits non-zero when out of sync. */
23
+ check?: boolean;
24
+ /** Suppress logging. */
25
+ quiet?: boolean;
26
+ /**
27
+ * Write files WITHOUT the `@one/generated` marker. The user owns the file
28
+ * after this; subsequent CI auto-gen runs will treat it as customized and
29
+ * skip it. used by `one metro-eject`.
30
+ */
31
+ eject?: boolean;
32
+ };
33
+ export type FileResult = {
34
+ filePath: string;
35
+ action: 'wrote' | 'kept' | 'skipped-customized' | 'skipped-other-format' | 'would-write' | 'would-overwrite';
36
+ reason?: string;
37
+ };
38
+ export declare function generateBundlerConfig(args?: GenerateBundlerConfigArgs): {
39
+ results: FileResult[];
40
+ ok: boolean;
41
+ };
42
+ /**
43
+ * True when running on a CI/EAS worker. We only auto-generate bundler-config
44
+ * files in CI so they never appear in a developer's local working tree.
45
+ *
46
+ * Accepts any truthy value for `CI` / `EAS_BUILD` since providers vary:
47
+ * GitHub Actions sets `CI=true`, others use `CI=1`, EAS sets `EAS_BUILD=true`.
48
+ *
49
+ * Set `CI=1` (or `EAS_BUILD=true`) ahead of `eas update` if you need to
50
+ * publish from a local machine.
51
+ */
52
+ export declare function isCiEnvironment(): boolean;
53
+ /**
54
+ * Postinstall hook: when expo-updates is in deps AND we're running on
55
+ * a CI/EAS worker, ensure the bundler-config files exist so the
56
+ * subsequent `expo export` / EXUpdates Metro pass succeeds.
57
+ *
58
+ * No-op locally so the files never show up in a developer's working tree.
59
+ */
60
+ export declare function maybeGenerateBundlerConfigOnInstall(cwd?: string, oneOptions?: One.PluginOptions): void;
61
+ //# sourceMappingURL=generateBundlerConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateBundlerConfig.d.ts","sourceRoot":"","sources":["../../src/cli/generateBundlerConfig.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAExC;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,kCAAkC,CAAA;AAEnE,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,KAAK,CAAC,OAAO,MAAM,EAAE,CAAC,CAAA;IAC1C,OAAO,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC7D,SAAS,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;CAC3C,CAAA;AAmID,wBAAgB,qCAAqC,CACnD,UAAU,GAAE,GAAG,CAAC,aAAkB,GACjC,uBAAuB,CAOzB;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,kDAAkD;IAClD,UAAU,CAAC,EAAE,GAAG,CAAC,aAAa,CAAA;IAC9B,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,2EAA2E;IAC3E,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,wBAAwB;IACxB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,oBAAoB,GAAG,sBAAsB,GAAG,aAAa,GAAG,iBAAiB,CAAA;IAC5G,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAgB,qBAAqB,CAAC,IAAI,GAAE,yBAA8B,GAAG;IAC3E,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,EAAE,EAAE,OAAO,CAAA;CACZ,CA2GA;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAIzC;AAED;;;;;;GAMG;AACH,wBAAgB,mCAAmC,CACjD,GAAG,GAAE,MAAsB,EAC3B,UAAU,CAAC,EAAE,GAAG,CAAC,aAAa,GAC7B,IAAI,CAcN"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generateBundlerConfig.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateBundlerConfig.test.d.ts","sourceRoot":"","sources":["../../src/cli/generateBundlerConfig.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../src/cli/patch.ts"],"names":[],"mappings":"AAGA,wBAAsB,GAAG,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,iBAgBlD"}
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../src/cli/patch.ts"],"names":[],"mappings":"AAuBA,wBAAsB,GAAG,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,iBAwBlD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=patch.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.test.d.ts","sourceRoot":"","sources":["../../src/cli/patch.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ export type BuildOneMetroResolverOverridesOptions = {
2
+ projectRoot: string;
3
+ };
4
+ export type MetroConfigLike = {
5
+ resolver?: Record<string, any>;
6
+ } | undefined;
7
+ /**
8
+ * Build the Metro resolver overrides One needs for native bundles.
9
+ *
10
+ * Used by getViteMetroPluginOptions, which feeds these into the same
11
+ * getMetroConfigFromViteConfig pipeline both production native bundles and
12
+ * standalone Metro invocations (expo export, eas update) go through. The
13
+ * overrides handle One-specific concerns: server-only stripping, .css → empty,
14
+ * _middleware → empty, react-native-svg fix.
15
+ *
16
+ * Returns a function that takes Metro's default config and produces an
17
+ * overridden config. Callers compose any additional overrides on top.
18
+ */
19
+ export declare function buildOneMetroResolverOverrides({ projectRoot, }: BuildOneMetroResolverOverridesOptions): <T extends MetroConfigLike>(defaultConfig: T) => T;
20
+ //# sourceMappingURL=buildOneMetroResolverOverrides.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildOneMetroResolverOverrides.d.ts","sourceRoot":"","sources":["../../src/metro-config/buildOneMetroResolverOverrides.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,qCAAqC,GAAG;IAClD,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,GAAG,SAAS,CAAA;AAE5E;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAAC,EAC7C,WAAW,GACZ,EAAE,qCAAqC,GAAG,CAAC,CAAC,SAAS,eAAe,EACnE,aAAa,EAAE,CAAC,KACb,CAAC,CA8EL"}
@@ -1,9 +1,4 @@
1
1
  import type { metroPlugin } from '@vxrn/vite-plugin-metro';
2
- /**
3
- * On Windows, micromatch.makeRe() produces regex patterns with `[\\/]` or `[^\\/]`
4
- * instead of `\/` and `[^/]`. Normalize them so the startsWith check works.
5
- */
6
- export declare function normalizeReSource(source: string): string;
7
2
  export declare function getViteMetroPluginOptions({ projectRoot, relativeRouterRoot, ignoredRouteFiles, linking, userDefaultConfigOverrides, setupFile, }: {
8
3
  projectRoot: string;
9
4
  relativeRouterRoot: string;
@@ -1 +1 @@
1
- {"version":3,"file":"getViteMetroPluginOptions.d.ts","sourceRoot":"","sources":["../../src/metro-config/getViteMetroPluginOptions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAQ1D;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,yBAAyB,CAAC,EACxC,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EACP,0BAA0B,EAC1B,SAAS,GACV,EAAE;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,KAAK,CAAC,OAAO,MAAM,EAAE,CAAC,CAAA;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,0BAA0B,CAAC,EAAE,WAAW,CACtC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAClC,CAAC,wBAAwB,CAAC,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACzE,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAoOpC"}
1
+ {"version":3,"file":"getViteMetroPluginOptions.d.ts","sourceRoot":"","sources":["../../src/metro-config/getViteMetroPluginOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAI1D,wBAAgB,yBAAyB,CAAC,EACxC,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EACP,0BAA0B,EAC1B,SAAS,GACV,EAAE;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,KAAK,CAAC,OAAO,MAAM,EAAE,CAAC,CAAA;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,0BAA0B,CAAC,EAAE,WAAW,CACtC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAClC,CAAC,wBAAwB,CAAC,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACzE,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CA2BpC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getViteMetroPluginOptions.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getViteMetroPluginOptions.integration.test.d.ts","sourceRoot":"","sources":["../../src/metro-config/getViteMetroPluginOptions.integration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,44 @@
1
+ export type WithOneOptions = {
2
+ /** Absolute path to the project root. Defaults to `process.cwd()`. */
3
+ projectRoot?: string;
4
+ /** Router root folder relative to the project root. Defaults to `'app'`. */
5
+ routerRoot?: string;
6
+ /** Patterns to exclude from router file resolution. */
7
+ ignoredRouteFiles?: Array<`**/*${string}`>;
8
+ /** Routing linking config — mirrors `one({ router: { linking } })`. */
9
+ linking?: unknown;
10
+ /** Native setup file path relative to the project root. */
11
+ setupFile?: string | {
12
+ native?: string;
13
+ ios?: string;
14
+ android?: string;
15
+ };
16
+ /**
17
+ * Load the app's vite.config and use the real One native Metro options.
18
+ * Defaults to true so generated Expo/EAS configs match One's own native path.
19
+ */
20
+ loadViteConfig?: boolean;
21
+ };
22
+ /**
23
+ * Produce a Metro config that invokes the EXACT same `getMetroConfigFromViteConfig`
24
+ * pipeline that One's native production builds use. This way `expo export`,
25
+ * `eas update`, and any other Metro-direct workflow produce a bundle that's
26
+ * byte-equivalent to what `react-native bundle` (the iOS build phase) produces.
27
+ *
28
+ * The first argument is ignored — kept only for ergonomic compatibility with
29
+ * the typical `withOne(getDefaultConfig(__dirname))` call shape that Expo
30
+ * users are used to. We discard it because @expo/metro-config's defaults
31
+ * differ from what One needs, and the production pipeline applies its own
32
+ * defaults internally.
33
+ *
34
+ * @example
35
+ * ```js
36
+ * // metro.config.cjs
37
+ * const { withOne } = require('one/metro-config')
38
+ *
39
+ * module.exports = withOne(__dirname)
40
+ * ```
41
+ */
42
+ export declare function withOne(baseConfigOrProjectRoot: string | object | undefined, options?: WithOneOptions): Promise<unknown>;
43
+ export default withOne;
44
+ //# sourceMappingURL=withOne.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withOne.d.ts","sourceRoot":"","sources":["../../src/metro-config/withOne.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,cAAc,GAAG;IAC3B,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,KAAK,CAAC,OAAO,MAAM,EAAE,CAAC,CAAA;IAC1C,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACxE;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAoBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,OAAO,CAC3B,uBAAuB,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EACpD,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,OAAO,CAAC,CA6ClB;AAED,eAAe,OAAO,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=withOne.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withOne.test.d.ts","sourceRoot":"","sources":["../../src/metro-config/withOne.test.ts"],"names":[],"mappings":""}
@@ -8,5 +8,6 @@ export declare function loadUserOneOptions(command: 'serve' | 'build', silent?:
8
8
  dependencies: string[];
9
9
  };
10
10
  oneOptions: One.PluginOptions;
11
+ metroOptions: any;
11
12
  }>;
12
13
  //# sourceMappingURL=loadConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loadConfig.d.ts","sourceRoot":"","sources":["../../src/vite/loadConfig.ts"],"names":[],"mappings":"AACA,OAAO,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAIlC,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,aAAa,QAEpD;AAWD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,MAAM,UAAQ;;;;;;;GAkClF"}
1
+ {"version":3,"file":"loadConfig.d.ts","sourceRoot":"","sources":["../../src/vite/loadConfig.ts"],"names":[],"mappings":"AACA,OAAO,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAIlC,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,aAAa,QAEpD;AAWD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,MAAM,UAAQ;;;;;;;;GAwDlF"}
@@ -1 +1 @@
1
- {"version":3,"file":"warmRoutesPlugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/warmRoutesPlugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAA;AAOlD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAkI3D;AAGD,eAAO,MAAM,gBAAgB,uBAAiB,CAAA"}
1
+ {"version":3,"file":"warmRoutesPlugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/warmRoutesPlugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,MAAM,CAAA;AAOlD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAkJ3D;AAGD,eAAO,MAAM,gBAAgB,uBAAiB,CAAA"}
@@ -1,23 +0,0 @@
1
- var import_vitest = require("vitest");
2
- var import_getViteMetroPluginOptions = require("./getViteMetroPluginOptions.cjs");
3
- (0, import_vitest.describe)("normalizeReSource", () => {
4
- (0, import_vitest.it)(String.raw`[\\/] to \/`, () => {
5
- (0, import_vitest.expect)((0, import_getViteMetroPluginOptions.normalizeReSource)(String.raw`[\\/]`)).toBe(String.raw`\/`);
6
- });
7
- (0, import_vitest.it)(String.raw`[^\\/] to [^/]`, () => {
8
- (0, import_vitest.expect)((0, import_getViteMetroPluginOptions.normalizeReSource)(String.raw`[^\\/]`)).toBe("[^/]");
9
- });
10
- (0, import_vitest.it)("full Windows micromatch regex", () => {
11
- const windowsSource = String.raw`^(?:(?:^|[\\/]|(?:(?:(?!(?:^|[\\/])\.).)*?)[\\/])(?!\.)(?=.)[^\\/]*?\.web\.(ts|tsx))$`;
12
- const posixSource = String.raw`^(?:(?:^|\/|(?:(?:(?!(?:^|\/)\.).)*?)\/)(?!\.)(?=.)[^/]*?\.web\.(ts|tsx))$`;
13
- (0, import_vitest.expect)((0, import_getViteMetroPluginOptions.normalizeReSource)(windowsSource)).toBe(posixSource);
14
- });
15
- (0, import_vitest.it)("no-op for POSIX regex", () => {
16
- const posixSource = String.raw`^(?:(?:^|\/|(?:(?:(?!(?:^|\/)\.).)*?)\/)(?!\.)(?=.)[^/]*?\.web\.(ts|tsx))$`;
17
- (0, import_vitest.expect)((0, import_getViteMetroPluginOptions.normalizeReSource)(posixSource)).toBe(posixSource);
18
- });
19
- (0, import_vitest.it)("multiple groups in one source", () => {
20
- const source = String.raw`a[\\/]b[\\/]c[^\\/]d`;
21
- (0, import_vitest.expect)((0, import_getViteMetroPluginOptions.normalizeReSource)(source)).toBe(String.raw`a\/b\/c[^/]d`);
22
- });
23
- });
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- var import_vitest = require("vitest");
4
- var import_getViteMetroPluginOptions = require("./getViteMetroPluginOptions.native.js");
5
- (0, import_vitest.describe)("normalizeReSource", function () {
6
- (0, import_vitest.it)(String.raw`[\\/] to \/`, function () {
7
- (0, import_vitest.expect)((0, import_getViteMetroPluginOptions.normalizeReSource)(String.raw`[\\/]`)).toBe(String.raw`\/`);
8
- });
9
- (0, import_vitest.it)(String.raw`[^\\/] to [^/]`, function () {
10
- (0, import_vitest.expect)((0, import_getViteMetroPluginOptions.normalizeReSource)(String.raw`[^\\/]`)).toBe("[^/]");
11
- });
12
- (0, import_vitest.it)("full Windows micromatch regex", function () {
13
- var windowsSource = String.raw`^(?:(?:^|[\\/]|(?:(?:(?!(?:^|[\\/])\.).)*?)[\\/])(?!\.)(?=.)[^\\/]*?\.web\.(ts|tsx))$`;
14
- var posixSource = String.raw`^(?:(?:^|\/|(?:(?:(?!(?:^|\/)\.).)*?)\/)(?!\.)(?=.)[^/]*?\.web\.(ts|tsx))$`;
15
- (0, import_vitest.expect)((0, import_getViteMetroPluginOptions.normalizeReSource)(windowsSource)).toBe(posixSource);
16
- });
17
- (0, import_vitest.it)("no-op for POSIX regex", function () {
18
- var posixSource = String.raw`^(?:(?:^|\/|(?:(?:(?!(?:^|\/)\.).)*?)\/)(?!\.)(?=.)[^/]*?\.web\.(ts|tsx))$`;
19
- (0, import_vitest.expect)((0, import_getViteMetroPluginOptions.normalizeReSource)(posixSource)).toBe(posixSource);
20
- });
21
- (0, import_vitest.it)("multiple groups in one source", function () {
22
- var source = String.raw`a[\\/]b[\\/]c[^\\/]d`;
23
- (0, import_vitest.expect)((0, import_getViteMetroPluginOptions.normalizeReSource)(source)).toBe(String.raw`a\/b\/c[^/]d`);
24
- });
25
- });
26
- //# sourceMappingURL=getViteMetroPluginOptions.test.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["import_vitest","require","import_getViteMetroPluginOptions","describe","it","String","raw","expect","normalizeReSource","toBe","windowsSource","posixSource","source"],"sources":["../../../src/metro-config/getViteMetroPluginOptions.test.ts"],"sourcesContent":[null],"mappings":"AAAA;;AACA,IAAAA,aAAA,GAAAC,OAAA;AAAkC,IAKlCC,gCAAS,GAAAD,OAAA,wCAA2B;AAClC,IAAAD,aAAA,CAAAG,QAAG,qBAAO,EAAkB,YAAM;EAChC,IAAAH,aAAA,CAAAI,EAAA,EAAAC,MAAA,CAAAC,GAAO;IACR,IAAAN,aAAA,CAAAO,MAAA,MAAAL,gCAAA,CAAAM,iBAAA,EAAAH,MAAA,CAAAC,GAAA,UAAAG,IAAA,CAAAJ,MAAA,CAAAC,GAAA;EAED;EACE,IAAAN,aAAA,CAAAI,EAAA,EAAAC,MAAA,CAAAC,GAAO;IACR,IAAAN,aAAA,CAAAO,MAAA,MAAAL,gCAAA,CAAAM,iBAAA,EAAAH,MAAA,CAAAC,GAAA,WAAAG,IAAA;EAED;EAEE,IAAAT,aAAM,CAAAI,EAAA,iCAAuB;IAC7B,IAAAM,aAAM,GAAcL,MAAA,CAAOC,GAAA;IAE3B,IAAAK,WAAA,GAAAN,MAAA,CAAAC,GAAA,4EAA8C;IAC/C,IAAAN,aAAA,CAAAO,MAAA,MAAAL,gCAAA,CAAAM,iBAAA,EAAAE,aAAA,GAAAD,IAAA,CAAAE,WAAA;EAED;EACE,IAAAX,aAAM,CAAAI,EAAA,EAAc,uBAAO;IAE3B,IAAAO,WAAA,GAAAN,MAAA,CAAAC,GAAA,4EAA4C;IAC7C,IAAAN,aAAA,CAAAO,MAAA,MAAAL,gCAAA,CAAAM,iBAAA,EAAAG,WAAA,GAAAF,IAAA,CAAAE,WAAA;EAED;EACE,IAAAX,aAAe,CAAAI,EAAA,iCAAO;IACtB,IAAAQ,MAAA,GAAAP,MAAA,CAAAC,GAAA,sBAAO;IACR,IAAAN,aAAA,CAAAO,MAAA,MAAAL,gCAAA,CAAAM,iBAAA,EAAAI,MAAA,GAAAH,IAAA,CAAAJ,MAAA,CAAAC,GAAA;EACF","ignoreList":[]}
@@ -1,24 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { normalizeReSource } from "./getViteMetroPluginOptions.mjs";
3
- describe("normalizeReSource", () => {
4
- it(String.raw`[\\/] to \/`, () => {
5
- expect(normalizeReSource(String.raw`[\\/]`)).toBe(String.raw`\/`);
6
- });
7
- it(String.raw`[^\\/] to [^/]`, () => {
8
- expect(normalizeReSource(String.raw`[^\\/]`)).toBe("[^/]");
9
- });
10
- it("full Windows micromatch regex", () => {
11
- const windowsSource = String.raw`^(?:(?:^|[\\/]|(?:(?:(?!(?:^|[\\/])\.).)*?)[\\/])(?!\.)(?=.)[^\\/]*?\.web\.(ts|tsx))$`;
12
- const posixSource = String.raw`^(?:(?:^|\/|(?:(?:(?!(?:^|\/)\.).)*?)\/)(?!\.)(?=.)[^/]*?\.web\.(ts|tsx))$`;
13
- expect(normalizeReSource(windowsSource)).toBe(posixSource);
14
- });
15
- it("no-op for POSIX regex", () => {
16
- const posixSource = String.raw`^(?:(?:^|\/|(?:(?:(?!(?:^|\/)\.).)*?)\/)(?!\.)(?=.)[^/]*?\.web\.(ts|tsx))$`;
17
- expect(normalizeReSource(posixSource)).toBe(posixSource);
18
- });
19
- it("multiple groups in one source", () => {
20
- const source = String.raw`a[\\/]b[\\/]c[^\\/]d`;
21
- expect(normalizeReSource(source)).toBe(String.raw`a\/b\/c[^/]d`);
22
- });
23
- });
24
- //# sourceMappingURL=getViteMetroPluginOptions.test.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["describe","expect","it","normalizeReSource","String","raw","toBe","windowsSource","posixSource","source"],"sources":["../../../src/metro-config/getViteMetroPluginOptions.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,iBAAA,QAAyB;AAKlCH,QAAA,CAAS,qBAAqB,MAAM;EAClCE,EAAA,CAAGE,MAAA,CAAOC,GAAA,eAAkB,MAAM;IAChCJ,MAAA,CAAOE,iBAAA,CAAkBC,MAAA,CAAOC,GAAA,OAAU,CAAC,EAAEC,IAAA,CAAKF,MAAA,CAAOC,GAAA,IAAO;EAClE,CAAC;EAEDH,EAAA,CAAGE,MAAA,CAAOC,GAAA,kBAAqB,MAAM;IACnCJ,MAAA,CAAOE,iBAAA,CAAkBC,MAAA,CAAOC,GAAA,QAAW,CAAC,EAAEC,IAAA,CAAK,MAAM;EAC3D,CAAC;EAEDJ,EAAA,CAAG,iCAAiC,MAAM;IAExC,MAAMK,aAAA,GAAgBH,MAAA,CAAOC,GAAA;IAC7B,MAAMG,WAAA,GAAcJ,MAAA,CAAOC,GAAA;IAE3BJ,MAAA,CAAOE,iBAAA,CAAkBI,aAAa,CAAC,EAAED,IAAA,CAAKE,WAAW;EAC3D,CAAC;EAEDN,EAAA,CAAG,yBAAyB,MAAM;IAChC,MAAMM,WAAA,GAAcJ,MAAA,CAAOC,GAAA;IAE3BJ,MAAA,CAAOE,iBAAA,CAAkBK,WAAW,CAAC,EAAEF,IAAA,CAAKE,WAAW;EACzD,CAAC;EAEDN,EAAA,CAAG,iCAAiC,MAAM;IACxC,MAAMO,MAAA,GAASL,MAAA,CAAOC,GAAA;IACtBJ,MAAA,CAAOE,iBAAA,CAAkBM,MAAM,CAAC,EAAEH,IAAA,CAAKF,MAAA,CAAOC,GAAA,cAAiB;EACjE,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,24 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { normalizeReSource } from "./getViteMetroPluginOptions.native.js";
3
- describe("normalizeReSource", function () {
4
- it(String.raw`[\\/] to \/`, function () {
5
- expect(normalizeReSource(String.raw`[\\/]`)).toBe(String.raw`\/`);
6
- });
7
- it(String.raw`[^\\/] to [^/]`, function () {
8
- expect(normalizeReSource(String.raw`[^\\/]`)).toBe("[^/]");
9
- });
10
- it("full Windows micromatch regex", function () {
11
- var windowsSource = String.raw`^(?:(?:^|[\\/]|(?:(?:(?!(?:^|[\\/])\.).)*?)[\\/])(?!\.)(?=.)[^\\/]*?\.web\.(ts|tsx))$`;
12
- var posixSource = String.raw`^(?:(?:^|\/|(?:(?:(?!(?:^|\/)\.).)*?)\/)(?!\.)(?=.)[^/]*?\.web\.(ts|tsx))$`;
13
- expect(normalizeReSource(windowsSource)).toBe(posixSource);
14
- });
15
- it("no-op for POSIX regex", function () {
16
- var posixSource = String.raw`^(?:(?:^|\/|(?:(?:(?!(?:^|\/)\.).)*?)\/)(?!\.)(?=.)[^/]*?\.web\.(ts|tsx))$`;
17
- expect(normalizeReSource(posixSource)).toBe(posixSource);
18
- });
19
- it("multiple groups in one source", function () {
20
- var source = String.raw`a[\\/]b[\\/]c[^\\/]d`;
21
- expect(normalizeReSource(source)).toBe(String.raw`a\/b\/c[^/]d`);
22
- });
23
- });
24
- //# sourceMappingURL=getViteMetroPluginOptions.test.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["describe","expect","it","normalizeReSource","String","raw","toBe","windowsSource","posixSource","source"],"sources":["../../../src/metro-config/getViteMetroPluginOptions.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,iBAAA,QAAyB;AAKlCH,QAAA,CAAS,qBAAqB,YAAM;EAClCE,EAAA,CAAGE,MAAA,CAAOC,GAAA,eAAkB,YAAM;IAChCJ,MAAA,CAAOE,iBAAA,CAAkBC,MAAA,CAAOC,GAAA,OAAU,CAAC,EAAEC,IAAA,CAAKF,MAAA,CAAOC,GAAA,IAAO;EAClE,CAAC;EAEDH,EAAA,CAAGE,MAAA,CAAOC,GAAA,kBAAqB,YAAM;IACnCJ,MAAA,CAAOE,iBAAA,CAAkBC,MAAA,CAAOC,GAAA,QAAW,CAAC,EAAEC,IAAA,CAAK,MAAM;EAC3D,CAAC;EAEDJ,EAAA,CAAG,iCAAiC,YAAM;IAExC,IAAAK,aAAM,GAAAH,MAAgB,CAAAC,GAAO;IAC7B,IAAAG,WAAM,GAAAJ,MAAc,CAAAC,GAAO;IAE3BJ,MAAA,CAAOE,iBAAA,CAAkBI,aAAa,CAAC,EAAED,IAAA,CAAKE,WAAW;EAC3D,CAAC;EAEDN,EAAA,CAAG,yBAAyB,YAAM;IAChC,IAAAM,WAAM,GAAAJ,MAAc,CAAAC,GAAO;IAE3BJ,MAAA,CAAOE,iBAAA,CAAkBK,WAAW,CAAC,EAAEF,IAAA,CAAKE,WAAW;EACzD,CAAC;EAEDN,EAAA,CAAG,iCAAiC,YAAM;IACxC,IAAAO,MAAM,GAAAL,MAAS,CAAAC,GAAO;IACtBJ,MAAA,CAAOE,iBAAA,CAAkBM,MAAM,CAAC,EAAEH,IAAA,CAAKF,MAAA,CAAOC,GAAA,cAAiB;EACjE,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,34 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
- import { normalizeReSource } from './getViteMetroPluginOptions'
3
-
4
- // String.raw avoids double-escaping: String.raw`[\\/]` is the 5-char string [ \ \ / ]
5
- // which is exactly what regex.source produces for /[\\/]/
6
-
7
- describe('normalizeReSource', () => {
8
- it(String.raw`[\\/] to \/`, () => {
9
- expect(normalizeReSource(String.raw`[\\/]`)).toBe(String.raw`\/`)
10
- })
11
-
12
- it(String.raw`[^\\/] to [^/]`, () => {
13
- expect(normalizeReSource(String.raw`[^\\/]`)).toBe('[^/]')
14
- })
15
-
16
- it('full Windows micromatch regex', () => {
17
- // micromatch.makeRe('**/*.web.(ts|tsx)').source on Windows (picomatch 2.x)
18
- const windowsSource = String.raw`^(?:(?:^|[\\/]|(?:(?:(?!(?:^|[\\/])\.).)*?)[\\/])(?!\.)(?=.)[^\\/]*?\.web\.(ts|tsx))$`
19
- const posixSource = String.raw`^(?:(?:^|\/|(?:(?:(?!(?:^|\/)\.).)*?)\/)(?!\.)(?=.)[^/]*?\.web\.(ts|tsx))$`
20
-
21
- expect(normalizeReSource(windowsSource)).toBe(posixSource)
22
- })
23
-
24
- it('no-op for POSIX regex', () => {
25
- const posixSource = String.raw`^(?:(?:^|\/|(?:(?:(?!(?:^|\/)\.).)*?)\/)(?!\.)(?=.)[^/]*?\.web\.(ts|tsx))$`
26
-
27
- expect(normalizeReSource(posixSource)).toBe(posixSource)
28
- })
29
-
30
- it('multiple groups in one source', () => {
31
- const source = String.raw`a[\\/]b[\\/]c[^\\/]d`
32
- expect(normalizeReSource(source)).toBe(String.raw`a\/b\/c[^/]d`)
33
- })
34
- })
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=getViteMetroPluginOptions.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getViteMetroPluginOptions.test.d.ts","sourceRoot":"","sources":["../../src/metro-config/getViteMetroPluginOptions.test.ts"],"names":[],"mappings":""}