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,207 @@
1
+ import { existsSync, readFileSync, writeFileSync } from "node:fs";
2
+ import nodeModule from "node:module";
3
+ import path from "node:path";
4
+ import colors from "picocolors";
5
+ import { getRouterRootFromOneOptions } from "../utils/getRouterRootFromOneOptions.mjs";
6
+ const ONE_GENERATED_MARKER = "@one/generated bundler-config";
7
+ function buildBabelConfigContent({
8
+ eject,
9
+ options
10
+ }) {
11
+ const header = eject ? `// you own this file. edit freely \u2014 \`one\` will not regenerate it.
12
+ // delegates to one/babel-preset which holds the canonical plugin chain.
13
+ ` : `// ${ONE_GENERATED_MARKER}
14
+ //
15
+ // auto-generated by \`one patch\` on ci/eas workers when expo-updates is
16
+ // in deps. delegates to one/babel-preset so expo export / eas update
17
+ // use the same router/setup options as \`one dev\` and \`one build\`.
18
+ //
19
+ // to customize, delete this header and edit freely \u2014 re-runs will then
20
+ // leave this file alone.
21
+ `;
22
+ return `${header}
23
+ const oneBabelPreset = require('one/babel-preset')
24
+ const preset = oneBabelPreset.default || oneBabelPreset
25
+ const oneBundlerOptions = ${serializeBundlerConfigOptions(options)}
26
+
27
+ module.exports = function (api) {
28
+ return preset(api, oneBundlerOptions)
29
+ }
30
+ `;
31
+ }
32
+ function buildMetroConfigContent({
33
+ eject,
34
+ options
35
+ }) {
36
+ const header = eject ? `// you own this file. edit freely \u2014 \`one\` will not regenerate it.
37
+ // withOne() invokes the same Metro pipeline One uses for production bundles.
38
+ ` : `// ${ONE_GENERATED_MARKER}
39
+ //
40
+ // auto-generated by \`one patch\` on ci/eas workers when expo-updates is
41
+ // in deps. delegates to one/metro-config which invokes the exact same
42
+ // metro pipeline one uses for production native bundles with your
43
+ // router/setup options \u2014 no separate expo/metro-config setup needed.
44
+ //
45
+ // to customize, delete this header and edit freely \u2014 re-runs will then
46
+ // leave this file alone.
47
+ `;
48
+ return `${header}
49
+ const { withOne } = require('one/metro-config')
50
+ const oneBundlerOptions = ${serializeBundlerConfigOptions(options)}
51
+
52
+ module.exports = withOne(__dirname, oneBundlerOptions)
53
+ `;
54
+ }
55
+ const FILES = [{
56
+ name: "babel.config.cjs",
57
+ getContent: buildBabelConfigContent,
58
+ conflicting: ["babel.config.js", "babel.config.mjs", ".babelrc", ".babelrc.js"]
59
+ }, {
60
+ name: "metro.config.cjs",
61
+ getContent: buildMetroConfigContent,
62
+ conflicting: ["metro.config.js", "metro.config.mjs"]
63
+ }];
64
+ function stripUndefined(value) {
65
+ if (Array.isArray(value)) {
66
+ return value.map(stripUndefined);
67
+ }
68
+ if (value && typeof value === "object") {
69
+ return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== void 0).map(([key, entry]) => [key, stripUndefined(entry)]));
70
+ }
71
+ return value;
72
+ }
73
+ function assertSerializable(value, keyPath = "one bundler options") {
74
+ if (typeof value === "function" || typeof value === "symbol" || typeof value === "bigint") {
75
+ throw new Error(`[one] ${keyPath} must be JSON-serializable to generate Babel/Metro config files. Move function-valued native linking/customization into an ejected config.`);
76
+ }
77
+ if (Array.isArray(value)) {
78
+ value.forEach((entry, index) => assertSerializable(entry, `${keyPath}[${index}]`));
79
+ return;
80
+ }
81
+ if (value && typeof value === "object") {
82
+ for (const [key, entry] of Object.entries(value)) {
83
+ assertSerializable(entry, `${keyPath}.${key}`);
84
+ }
85
+ }
86
+ }
87
+ function serializeBundlerConfigOptions(options) {
88
+ const clean = stripUndefined(options);
89
+ assertSerializable(clean);
90
+ return JSON.stringify(clean, null, 2);
91
+ }
92
+ function getBundlerConfigOptionsFromOneOptions(oneOptions = {}) {
93
+ return stripUndefined({
94
+ routerRoot: getRouterRootFromOneOptions(oneOptions),
95
+ ignoredRouteFiles: oneOptions.router?.ignoredRouteFiles,
96
+ linking: oneOptions.router?.linking,
97
+ setupFile: oneOptions.setupFile
98
+ });
99
+ }
100
+ function generateBundlerConfig(args = {}) {
101
+ const cwd = path.resolve(args.cwd ?? process.cwd());
102
+ const force = !!args.force;
103
+ const check = !!args.check;
104
+ const quiet = !!args.quiet;
105
+ const log = msg => {
106
+ if (!quiet) console.info(msg);
107
+ };
108
+ const warn = msg => {
109
+ if (!quiet) console.warn(msg);
110
+ };
111
+ const results = [];
112
+ const eject = !!args.eject;
113
+ const bundlerOptions = getBundlerConfigOptionsFromOneOptions(args.oneOptions);
114
+ for (const file of FILES) {
115
+ const filePath = path.join(cwd, file.name);
116
+ const targetContent = file.getContent({
117
+ eject,
118
+ options: bundlerOptions
119
+ });
120
+ const conflict = file.conflicting.find(alt => existsSync(path.join(cwd, alt)));
121
+ if (conflict && !existsSync(filePath)) {
122
+ results.push({
123
+ filePath: path.join(cwd, conflict),
124
+ action: "skipped-other-format",
125
+ reason: `Found ${conflict}; not creating ${file.name}. To switch, delete ${conflict} and re-run with --force.`
126
+ });
127
+ warn(colors.yellow(`[one] found ${conflict} \u2014 leaving it alone. Delete it and re-run with --force to switch to ${file.name}.`));
128
+ continue;
129
+ }
130
+ if (!existsSync(filePath)) {
131
+ if (check) {
132
+ results.push({
133
+ filePath,
134
+ action: "would-write"
135
+ });
136
+ log(colors.yellow(`[one] missing: ${file.name}`));
137
+ continue;
138
+ }
139
+ writeFileSync(filePath, targetContent);
140
+ results.push({
141
+ filePath,
142
+ action: "wrote"
143
+ });
144
+ log(colors.green(`[one] wrote ${file.name}`));
145
+ continue;
146
+ }
147
+ const existing = readFileSync(filePath, "utf8");
148
+ if (existing === targetContent) {
149
+ results.push({
150
+ filePath,
151
+ action: "kept"
152
+ });
153
+ log(colors.dim(`[one] up to date: ${file.name}`));
154
+ continue;
155
+ }
156
+ const hasMarker = existing.includes(ONE_GENERATED_MARKER);
157
+ if (!hasMarker && !force) {
158
+ results.push({
159
+ filePath,
160
+ action: "skipped-customized",
161
+ reason: `${file.name} has been customized (no @one marker). Re-add the marker comment or pass --force to overwrite.`
162
+ });
163
+ warn(colors.yellow(`[one] ${file.name} appears customized \u2014 skipping. Pass --force to overwrite.`));
164
+ continue;
165
+ }
166
+ if (check) {
167
+ results.push({
168
+ filePath,
169
+ action: "would-overwrite"
170
+ });
171
+ log(colors.yellow(`[one] out of date: ${file.name}`));
172
+ continue;
173
+ }
174
+ writeFileSync(filePath, targetContent);
175
+ results.push({
176
+ filePath,
177
+ action: "wrote"
178
+ });
179
+ log(colors.green(`[one] updated ${file.name}`));
180
+ }
181
+ const acceptableAlways = /* @__PURE__ */new Set(["wrote", "kept", "skipped-other-format", "skipped-customized"]);
182
+ const acceptableInCheck = /* @__PURE__ */new Set(["kept", "skipped-other-format", "skipped-customized"]);
183
+ const ok = (check ? acceptableInCheck : acceptableAlways).size ? results.every(r => (check ? acceptableInCheck : acceptableAlways).has(r.action)) : false;
184
+ return {
185
+ results,
186
+ ok
187
+ };
188
+ }
189
+ function isCiEnvironment() {
190
+ const truthy = v => !!v && v !== "false" && v !== "0";
191
+ return truthy(process.env.EAS_BUILD) || truthy(process.env.CI);
192
+ }
193
+ function maybeGenerateBundlerConfigOnInstall(cwd = process.cwd(), oneOptions) {
194
+ if (!isCiEnvironment()) return;
195
+ try {
196
+ nodeModule.createRequire(cwd + "/").resolve("expo-updates/package.json");
197
+ } catch {
198
+ return;
199
+ }
200
+ generateBundlerConfig({
201
+ cwd,
202
+ quiet: false,
203
+ oneOptions
204
+ });
205
+ }
206
+ export { ONE_GENERATED_MARKER, generateBundlerConfig, getBundlerConfigOptionsFromOneOptions, isCiEnvironment, maybeGenerateBundlerConfigOnInstall };
207
+ //# sourceMappingURL=generateBundlerConfig.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["existsSync","readFileSync","writeFileSync","nodeModule","path","colors","getRouterRootFromOneOptions","ONE_GENERATED_MARKER","buildBabelConfigContent","eject","options","header","serializeBundlerConfigOptions","buildMetroConfigContent","FILES","name","getContent","conflicting","stripUndefined","value","Array","isArray","map","Object","fromEntries","entries","filter","entry","key","assertSerializable","keyPath","Error","forEach","index","clean","JSON","stringify","getBundlerConfigOptionsFromOneOptions","oneOptions","routerRoot","ignoredRouteFiles","router","linking","setupFile","generateBundlerConfig","args","cwd","resolve","process","force","check","quiet","log","msg","console","info","warn","results","bundlerOptions","file","filePath","join","targetContent","conflict","find","alt","push","action","reason","yellow","green","existing","dim","hasMarker","includes","acceptableAlways","Set","acceptableInCheck","ok","size","every","r","has","isCiEnvironment","truthy","v","env","EAS_BUILD","CI","maybeGenerateBundlerConfigOnInstall","createRequire"],"sources":["../../../src/cli/generateBundlerConfig.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,273 @@
1
+ import { existsSync, readFileSync, writeFileSync } from "fs";
2
+ import nodeModule from "module";
3
+ import path from "path";
4
+ import colors from "picocolors";
5
+ import { getRouterRootFromOneOptions } from "../utils/getRouterRootFromOneOptions.native.js";
6
+ function _type_of(obj) {
7
+ "@swc/helpers - typeof";
8
+
9
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
10
+ }
11
+ var ONE_GENERATED_MARKER = "@one/generated bundler-config";
12
+ function buildBabelConfigContent(param) {
13
+ var {
14
+ eject,
15
+ options
16
+ } = param;
17
+ var header = eject ? `// you own this file. edit freely \u2014 \`one\` will not regenerate it.
18
+ // delegates to one/babel-preset which holds the canonical plugin chain.
19
+ ` : `// ${ONE_GENERATED_MARKER}
20
+ //
21
+ // auto-generated by \`one patch\` on ci/eas workers when expo-updates is
22
+ // in deps. delegates to one/babel-preset so expo export / eas update
23
+ // use the same router/setup options as \`one dev\` and \`one build\`.
24
+ //
25
+ // to customize, delete this header and edit freely \u2014 re-runs will then
26
+ // leave this file alone.
27
+ `;
28
+ return `${header}
29
+ const oneBabelPreset = require('one/babel-preset')
30
+ const preset = oneBabelPreset.default || oneBabelPreset
31
+ const oneBundlerOptions = ${serializeBundlerConfigOptions(options)}
32
+
33
+ module.exports = function (api) {
34
+ return preset(api, oneBundlerOptions)
35
+ }
36
+ `;
37
+ }
38
+ function buildMetroConfigContent(param) {
39
+ var {
40
+ eject,
41
+ options
42
+ } = param;
43
+ var header = eject ? `// you own this file. edit freely \u2014 \`one\` will not regenerate it.
44
+ // withOne() invokes the same Metro pipeline One uses for production bundles.
45
+ ` : `// ${ONE_GENERATED_MARKER}
46
+ //
47
+ // auto-generated by \`one patch\` on ci/eas workers when expo-updates is
48
+ // in deps. delegates to one/metro-config which invokes the exact same
49
+ // metro pipeline one uses for production native bundles with your
50
+ // router/setup options \u2014 no separate expo/metro-config setup needed.
51
+ //
52
+ // to customize, delete this header and edit freely \u2014 re-runs will then
53
+ // leave this file alone.
54
+ `;
55
+ return `${header}
56
+ const { withOne } = require('one/metro-config')
57
+ const oneBundlerOptions = ${serializeBundlerConfigOptions(options)}
58
+
59
+ module.exports = withOne(__dirname, oneBundlerOptions)
60
+ `;
61
+ }
62
+ var FILES = [{
63
+ name: "babel.config.cjs",
64
+ getContent: buildBabelConfigContent,
65
+ conflicting: ["babel.config.js", "babel.config.mjs", ".babelrc", ".babelrc.js"]
66
+ }, {
67
+ name: "metro.config.cjs",
68
+ getContent: buildMetroConfigContent,
69
+ conflicting: ["metro.config.js", "metro.config.mjs"]
70
+ }];
71
+ function stripUndefined(value) {
72
+ if (Array.isArray(value)) {
73
+ return value.map(stripUndefined);
74
+ }
75
+ if (value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object") {
76
+ return Object.fromEntries(Object.entries(value).filter(function (param) {
77
+ var [, entry] = param;
78
+ return entry !== void 0;
79
+ }).map(function (param) {
80
+ var [key, entry] = param;
81
+ return [key, stripUndefined(entry)];
82
+ }));
83
+ }
84
+ return value;
85
+ }
86
+ function assertSerializable(value) {
87
+ var keyPath = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "one bundler options";
88
+ if (typeof value === "function" || (typeof value === "undefined" ? "undefined" : _type_of(value)) === "symbol" || (typeof value === "undefined" ? "undefined" : _type_of(value)) === "bigint") {
89
+ throw new Error(`[one] ${keyPath} must be JSON-serializable to generate Babel/Metro config files. Move function-valued native linking/customization into an ejected config.`);
90
+ }
91
+ if (Array.isArray(value)) {
92
+ value.forEach(function (entry2, index) {
93
+ return assertSerializable(entry2, `${keyPath}[${index}]`);
94
+ });
95
+ return;
96
+ }
97
+ if (value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object") {
98
+ var _iteratorNormalCompletion = true,
99
+ _didIteratorError = false,
100
+ _iteratorError = void 0;
101
+ try {
102
+ for (var _iterator = Object.entries(value)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
103
+ var [key, entry] = _step.value;
104
+ assertSerializable(entry, `${keyPath}.${key}`);
105
+ }
106
+ } catch (err) {
107
+ _didIteratorError = true;
108
+ _iteratorError = err;
109
+ } finally {
110
+ try {
111
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
112
+ _iterator.return();
113
+ }
114
+ } finally {
115
+ if (_didIteratorError) {
116
+ throw _iteratorError;
117
+ }
118
+ }
119
+ }
120
+ }
121
+ }
122
+ function serializeBundlerConfigOptions(options) {
123
+ var clean = stripUndefined(options);
124
+ assertSerializable(clean);
125
+ return JSON.stringify(clean, null, 2);
126
+ }
127
+ function getBundlerConfigOptionsFromOneOptions() {
128
+ var oneOptions = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
129
+ var _oneOptions_router, _oneOptions_router1;
130
+ return stripUndefined({
131
+ routerRoot: getRouterRootFromOneOptions(oneOptions),
132
+ ignoredRouteFiles: (_oneOptions_router = oneOptions.router) === null || _oneOptions_router === void 0 ? void 0 : _oneOptions_router.ignoredRouteFiles,
133
+ linking: (_oneOptions_router1 = oneOptions.router) === null || _oneOptions_router1 === void 0 ? void 0 : _oneOptions_router1.linking,
134
+ setupFile: oneOptions.setupFile
135
+ });
136
+ }
137
+ function generateBundlerConfig() {
138
+ var args = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
139
+ var _args_cwd;
140
+ var cwd = path.resolve((_args_cwd = args.cwd) !== null && _args_cwd !== void 0 ? _args_cwd : process.cwd());
141
+ var force = !!args.force;
142
+ var check = !!args.check;
143
+ var quiet = !!args.quiet;
144
+ var log = function (msg) {
145
+ if (!quiet) console.info(msg);
146
+ };
147
+ var warn = function (msg) {
148
+ if (!quiet) console.warn(msg);
149
+ };
150
+ var results = [];
151
+ var eject = !!args.eject;
152
+ var bundlerOptions = getBundlerConfigOptionsFromOneOptions(args.oneOptions);
153
+ var _iteratorNormalCompletion = true,
154
+ _didIteratorError = false,
155
+ _iteratorError = void 0;
156
+ try {
157
+ for (var _iterator = FILES[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
158
+ var file = _step.value;
159
+ var filePath = path.join(cwd, file.name);
160
+ var targetContent = file.getContent({
161
+ eject,
162
+ options: bundlerOptions
163
+ });
164
+ var conflict = file.conflicting.find(function (alt) {
165
+ return existsSync(path.join(cwd, alt));
166
+ });
167
+ if (conflict && !existsSync(filePath)) {
168
+ results.push({
169
+ filePath: path.join(cwd, conflict),
170
+ action: "skipped-other-format",
171
+ reason: `Found ${conflict}; not creating ${file.name}. To switch, delete ${conflict} and re-run with --force.`
172
+ });
173
+ warn(colors.yellow(`[one] found ${conflict} \u2014 leaving it alone. Delete it and re-run with --force to switch to ${file.name}.`));
174
+ continue;
175
+ }
176
+ if (!existsSync(filePath)) {
177
+ if (check) {
178
+ results.push({
179
+ filePath,
180
+ action: "would-write"
181
+ });
182
+ log(colors.yellow(`[one] missing: ${file.name}`));
183
+ continue;
184
+ }
185
+ writeFileSync(filePath, targetContent);
186
+ results.push({
187
+ filePath,
188
+ action: "wrote"
189
+ });
190
+ log(colors.green(`[one] wrote ${file.name}`));
191
+ continue;
192
+ }
193
+ var existing = readFileSync(filePath, "utf8");
194
+ if (existing === targetContent) {
195
+ results.push({
196
+ filePath,
197
+ action: "kept"
198
+ });
199
+ log(colors.dim(`[one] up to date: ${file.name}`));
200
+ continue;
201
+ }
202
+ var hasMarker = existing.includes(ONE_GENERATED_MARKER);
203
+ if (!hasMarker && !force) {
204
+ results.push({
205
+ filePath,
206
+ action: "skipped-customized",
207
+ reason: `${file.name} has been customized (no @one marker). Re-add the marker comment or pass --force to overwrite.`
208
+ });
209
+ warn(colors.yellow(`[one] ${file.name} appears customized \u2014 skipping. Pass --force to overwrite.`));
210
+ continue;
211
+ }
212
+ if (check) {
213
+ results.push({
214
+ filePath,
215
+ action: "would-overwrite"
216
+ });
217
+ log(colors.yellow(`[one] out of date: ${file.name}`));
218
+ continue;
219
+ }
220
+ writeFileSync(filePath, targetContent);
221
+ results.push({
222
+ filePath,
223
+ action: "wrote"
224
+ });
225
+ log(colors.green(`[one] updated ${file.name}`));
226
+ }
227
+ } catch (err) {
228
+ _didIteratorError = true;
229
+ _iteratorError = err;
230
+ } finally {
231
+ try {
232
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
233
+ _iterator.return();
234
+ }
235
+ } finally {
236
+ if (_didIteratorError) {
237
+ throw _iteratorError;
238
+ }
239
+ }
240
+ }
241
+ var acceptableAlways = /* @__PURE__ */new Set(["wrote", "kept", "skipped-other-format", "skipped-customized"]);
242
+ var acceptableInCheck = /* @__PURE__ */new Set(["kept", "skipped-other-format", "skipped-customized"]);
243
+ var ok = (check ? acceptableInCheck : acceptableAlways).size ? results.every(function (r) {
244
+ return (check ? acceptableInCheck : acceptableAlways).has(r.action);
245
+ }) : false;
246
+ return {
247
+ results,
248
+ ok
249
+ };
250
+ }
251
+ function isCiEnvironment() {
252
+ var truthy = function (v) {
253
+ return !!v && v !== "false" && v !== "0";
254
+ };
255
+ return truthy(process.env.EAS_BUILD) || truthy(process.env.CI);
256
+ }
257
+ function maybeGenerateBundlerConfigOnInstall() {
258
+ var cwd = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : process.cwd(),
259
+ oneOptions = arguments.length > 1 ? arguments[1] : void 0;
260
+ if (!isCiEnvironment()) return;
261
+ try {
262
+ nodeModule.createRequire(cwd + "/").resolve("expo-updates/package.json");
263
+ } catch (unused) {
264
+ return;
265
+ }
266
+ generateBundlerConfig({
267
+ cwd,
268
+ quiet: false,
269
+ oneOptions
270
+ });
271
+ }
272
+ export { ONE_GENERATED_MARKER, generateBundlerConfig, getBundlerConfigOptionsFromOneOptions, isCiEnvironment, maybeGenerateBundlerConfigOnInstall };
273
+ //# sourceMappingURL=generateBundlerConfig.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["existsSync","readFileSync","writeFileSync","nodeModule","path","colors","getRouterRootFromOneOptions","_type_of","obj","Symbol","constructor","ONE_GENERATED_MARKER","buildBabelConfigContent","param","eject","options","header","serializeBundlerConfigOptions","buildMetroConfigContent","FILES","name","getContent","conflicting","stripUndefined","value","Array","isArray","map","Object","fromEntries","entries","filter","entry","key","assertSerializable","keyPath","arguments","length","Error","forEach","entry2","index","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","err","return","clean","JSON","stringify","getBundlerConfigOptionsFromOneOptions","oneOptions","_oneOptions_router","_oneOptions_router1","routerRoot","ignoredRouteFiles","router","linking","setupFile","generateBundlerConfig","args","_args_cwd","cwd","resolve","process","force","check","quiet","log","msg","console","info","warn","results","bundlerOptions","file","filePath","join","targetContent","conflict","find","alt","push","action","reason","yellow","green","existing","dim","hasMarker","includes"],"sources":["../../../src/cli/generateBundlerConfig.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}