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,380 @@
1
+ "use strict";
2
+
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
+ get: () => from[key],
13
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
+ });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
19
+ // If the importer is in node compatibility mode or this is not an ESM
20
+ // file that has been converted to a CommonJS file using a Babel-
21
+ // compatible transform (i.e. "__esModule" has not been set), then set
22
+ // "default" to the CommonJS "module.exports" for node compatibility.
23
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
24
+ value: mod,
25
+ enumerable: true
26
+ }) : target, mod));
27
+ var import_fs = __toESM(require("fs"), 1);
28
+ var import_os = __toESM(require("os"), 1);
29
+ var import_path = __toESM(require("path"), 1);
30
+ var import_vitest = require("vitest");
31
+ var import_generateBundlerConfig = require("./generateBundlerConfig.native.js");
32
+ (0, import_vitest.describe)("generateBundlerConfig", function () {
33
+ var tmpDir;
34
+ (0, import_vitest.beforeEach)(function () {
35
+ tmpDir = import_fs.default.mkdtempSync(import_path.default.join(import_os.default.tmpdir(), "one-gen-bundler-test-"));
36
+ });
37
+ (0, import_vitest.afterEach)(function () {
38
+ import_fs.default.rmSync(tmpDir, {
39
+ recursive: true,
40
+ force: true
41
+ });
42
+ });
43
+ (0, import_vitest.it)("writes both files when missing", function () {
44
+ var {
45
+ ok,
46
+ results
47
+ } = (0, import_generateBundlerConfig.generateBundlerConfig)({
48
+ cwd: tmpDir,
49
+ quiet: true
50
+ });
51
+ (0, import_vitest.expect)(ok).toBe(true);
52
+ (0, import_vitest.expect)(results.map(function (r) {
53
+ return r.action;
54
+ })).toEqual(["wrote", "wrote"]);
55
+ var babel = import_fs.default.readFileSync(import_path.default.join(tmpDir, "babel.config.cjs"), "utf8");
56
+ (0, import_vitest.expect)(babel).toContain(import_generateBundlerConfig.ONE_GENERATED_MARKER);
57
+ (0, import_vitest.expect)(babel).toContain("require('one/babel-preset')");
58
+ (0, import_vitest.expect)(babel).toContain("oneBundlerOptions");
59
+ var metro = import_fs.default.readFileSync(import_path.default.join(tmpDir, "metro.config.cjs"), "utf8");
60
+ (0, import_vitest.expect)(metro).toContain(import_generateBundlerConfig.ONE_GENERATED_MARKER);
61
+ (0, import_vitest.expect)(metro).toContain("require('one/metro-config')");
62
+ (0, import_vitest.expect)(metro).toContain("withOne");
63
+ });
64
+ (0, import_vitest.it)("is idempotent on second run", function () {
65
+ (0, import_generateBundlerConfig.generateBundlerConfig)({
66
+ cwd: tmpDir,
67
+ quiet: true
68
+ });
69
+ var before = import_fs.default.readFileSync(import_path.default.join(tmpDir, "babel.config.cjs"), "utf8");
70
+ var {
71
+ results
72
+ } = (0, import_generateBundlerConfig.generateBundlerConfig)({
73
+ cwd: tmpDir,
74
+ quiet: true
75
+ });
76
+ (0, import_vitest.expect)(results.map(function (r) {
77
+ return r.action;
78
+ })).toEqual(["kept", "kept"]);
79
+ var after = import_fs.default.readFileSync(import_path.default.join(tmpDir, "babel.config.cjs"), "utf8");
80
+ (0, import_vitest.expect)(after).toBe(before);
81
+ });
82
+ (0, import_vitest.it)("refuses to overwrite a customized file without --force", function () {
83
+ import_fs.default.writeFileSync(import_path.default.join(tmpDir, "babel.config.cjs"), "// hand-written\nmodule.exports = { presets: [] }\n");
84
+ var {
85
+ ok,
86
+ results
87
+ } = (0, import_generateBundlerConfig.generateBundlerConfig)({
88
+ cwd: tmpDir,
89
+ quiet: true
90
+ });
91
+ var babelResult = results.find(function (r) {
92
+ return r.filePath.endsWith("babel.config.cjs");
93
+ });
94
+ (0, import_vitest.expect)(babelResult.action).toBe("skipped-customized");
95
+ (0, import_vitest.expect)(ok).toBe(true);
96
+ var after = import_fs.default.readFileSync(import_path.default.join(tmpDir, "babel.config.cjs"), "utf8");
97
+ (0, import_vitest.expect)(after).toContain("hand-written");
98
+ });
99
+ (0, import_vitest.it)("overwrites a customized file when --force is set", function () {
100
+ import_fs.default.writeFileSync(import_path.default.join(tmpDir, "babel.config.cjs"), "// hand-written\nmodule.exports = { presets: [] }\n");
101
+ var {
102
+ results
103
+ } = (0, import_generateBundlerConfig.generateBundlerConfig)({
104
+ cwd: tmpDir,
105
+ force: true,
106
+ quiet: true
107
+ });
108
+ var babelResult = results.find(function (r) {
109
+ return r.filePath.endsWith("babel.config.cjs");
110
+ });
111
+ (0, import_vitest.expect)(babelResult.action).toBe("wrote");
112
+ var after = import_fs.default.readFileSync(import_path.default.join(tmpDir, "babel.config.cjs"), "utf8");
113
+ (0, import_vitest.expect)(after).toContain(import_generateBundlerConfig.ONE_GENERATED_MARKER);
114
+ (0, import_vitest.expect)(after).not.toContain("hand-written");
115
+ });
116
+ (0, import_vitest.it)("rewrites a stale marked file", function () {
117
+ import_fs.default.writeFileSync(import_path.default.join(tmpDir, "babel.config.cjs"), `// ${import_generateBundlerConfig.ONE_GENERATED_MARKER}
118
+ // old content from previous version
119
+ module.exports = {}
120
+ `);
121
+ var {
122
+ results
123
+ } = (0, import_generateBundlerConfig.generateBundlerConfig)({
124
+ cwd: tmpDir,
125
+ quiet: true
126
+ });
127
+ var babelResult = results.find(function (r) {
128
+ return r.filePath.endsWith("babel.config.cjs");
129
+ });
130
+ (0, import_vitest.expect)(babelResult.action).toBe("wrote");
131
+ var after = import_fs.default.readFileSync(import_path.default.join(tmpDir, "babel.config.cjs"), "utf8");
132
+ (0, import_vitest.expect)(after).toContain("require('one/babel-preset')");
133
+ (0, import_vitest.expect)(after).not.toContain("old content from previous version");
134
+ });
135
+ (0, import_vitest.describe)("--check mode", function () {
136
+ (0, import_vitest.it)("exits ok when files exist and match", function () {
137
+ (0, import_generateBundlerConfig.generateBundlerConfig)({
138
+ cwd: tmpDir,
139
+ quiet: true
140
+ });
141
+ var {
142
+ ok,
143
+ results
144
+ } = (0, import_generateBundlerConfig.generateBundlerConfig)({
145
+ cwd: tmpDir,
146
+ check: true,
147
+ quiet: true
148
+ });
149
+ (0, import_vitest.expect)(ok).toBe(true);
150
+ (0, import_vitest.expect)(results.every(function (r) {
151
+ return r.action === "kept";
152
+ })).toBe(true);
153
+ });
154
+ (0, import_vitest.it)("exits not-ok when files are missing", function () {
155
+ var {
156
+ ok,
157
+ results
158
+ } = (0, import_generateBundlerConfig.generateBundlerConfig)({
159
+ cwd: tmpDir,
160
+ check: true,
161
+ quiet: true
162
+ });
163
+ (0, import_vitest.expect)(ok).toBe(false);
164
+ (0, import_vitest.expect)(results.every(function (r) {
165
+ return r.action === "would-write";
166
+ })).toBe(true);
167
+ (0, import_vitest.expect)(import_fs.default.existsSync(import_path.default.join(tmpDir, "babel.config.cjs"))).toBe(false);
168
+ });
169
+ (0, import_vitest.it)("exits not-ok when a marked file is stale", function () {
170
+ import_fs.default.writeFileSync(import_path.default.join(tmpDir, "babel.config.cjs"), `// ${import_generateBundlerConfig.ONE_GENERATED_MARKER}
171
+ module.exports = {}
172
+ `);
173
+ import_fs.default.writeFileSync(import_path.default.join(tmpDir, "metro.config.cjs"), `// ${import_generateBundlerConfig.ONE_GENERATED_MARKER}
174
+ module.exports = {}
175
+ `);
176
+ var {
177
+ ok,
178
+ results
179
+ } = (0, import_generateBundlerConfig.generateBundlerConfig)({
180
+ cwd: tmpDir,
181
+ check: true,
182
+ quiet: true
183
+ });
184
+ (0, import_vitest.expect)(ok).toBe(false);
185
+ (0, import_vitest.expect)(results.every(function (r) {
186
+ return r.action === "would-overwrite";
187
+ })).toBe(true);
188
+ });
189
+ });
190
+ (0, import_vitest.describe)("--eject mode", function () {
191
+ (0, import_vitest.it)("writes files WITHOUT the @one/generated marker", function () {
192
+ var {
193
+ results
194
+ } = (0, import_generateBundlerConfig.generateBundlerConfig)({
195
+ cwd: tmpDir,
196
+ eject: true,
197
+ quiet: true
198
+ });
199
+ (0, import_vitest.expect)(results.map(function (r) {
200
+ return r.action;
201
+ })).toEqual(["wrote", "wrote"]);
202
+ var babel = import_fs.default.readFileSync(import_path.default.join(tmpDir, "babel.config.cjs"), "utf8");
203
+ (0, import_vitest.expect)(babel).not.toContain(import_generateBundlerConfig.ONE_GENERATED_MARKER);
204
+ (0, import_vitest.expect)(babel).toContain("you own this file");
205
+ (0, import_vitest.expect)(babel).toContain("require('one/babel-preset')");
206
+ var metro = import_fs.default.readFileSync(import_path.default.join(tmpDir, "metro.config.cjs"), "utf8");
207
+ (0, import_vitest.expect)(metro).not.toContain(import_generateBundlerConfig.ONE_GENERATED_MARKER);
208
+ (0, import_vitest.expect)(metro).toContain("withOne");
209
+ });
210
+ (0, import_vitest.it)("subsequent auto-gen run (no --eject) treats ejected files as customized", function () {
211
+ (0, import_generateBundlerConfig.generateBundlerConfig)({
212
+ cwd: tmpDir,
213
+ eject: true,
214
+ quiet: true
215
+ });
216
+ var before = import_fs.default.readFileSync(import_path.default.join(tmpDir, "babel.config.cjs"), "utf8");
217
+ var {
218
+ results
219
+ } = (0, import_generateBundlerConfig.generateBundlerConfig)({
220
+ cwd: tmpDir,
221
+ quiet: true
222
+ });
223
+ (0, import_vitest.expect)(results.every(function (r) {
224
+ return r.action === "skipped-customized";
225
+ })).toBe(true);
226
+ var after = import_fs.default.readFileSync(import_path.default.join(tmpDir, "babel.config.cjs"), "utf8");
227
+ (0, import_vitest.expect)(after).toBe(before);
228
+ });
229
+ });
230
+ (0, import_vitest.it)("does not clobber a non-.cjs config in the same family", function () {
231
+ import_fs.default.writeFileSync(import_path.default.join(tmpDir, "babel.config.js"), "module.exports = { presets: [] }\n");
232
+ var {
233
+ results
234
+ } = (0, import_generateBundlerConfig.generateBundlerConfig)({
235
+ cwd: tmpDir,
236
+ quiet: true
237
+ });
238
+ var babelResult = results.find(function (r) {
239
+ return r.filePath.endsWith("babel.config.js") || r.filePath.endsWith("babel.config.cjs");
240
+ });
241
+ (0, import_vitest.expect)(babelResult.action).toBe("skipped-other-format");
242
+ (0, import_vitest.expect)(import_fs.default.existsSync(import_path.default.join(tmpDir, "babel.config.cjs"))).toBe(false);
243
+ });
244
+ (0, import_vitest.it)("embeds loaded One router/setup options into both config files", function () {
245
+ (0, import_generateBundlerConfig.generateBundlerConfig)({
246
+ cwd: tmpDir,
247
+ quiet: true,
248
+ oneOptions: {
249
+ router: {
250
+ root: "src/routes",
251
+ ignoredRouteFiles: ["**/*.native-test.*"],
252
+ linking: {
253
+ scheme: "myapp",
254
+ prefixes: ["https://example.com/app"]
255
+ }
256
+ },
257
+ setupFile: {
258
+ native: "src/setup.native.ts"
259
+ }
260
+ }
261
+ });
262
+ var babel = import_fs.default.readFileSync(import_path.default.join(tmpDir, "babel.config.cjs"), "utf8");
263
+ var metro = import_fs.default.readFileSync(import_path.default.join(tmpDir, "metro.config.cjs"), "utf8");
264
+ for (var _i = 0, _iter = [babel, metro]; _i < _iter.length; _i++) {
265
+ var file = _iter[_i];
266
+ (0, import_vitest.expect)(file).toContain('"routerRoot": "src/routes"');
267
+ (0, import_vitest.expect)(file).toContain('"ignoredRouteFiles"');
268
+ (0, import_vitest.expect)(file).toContain('"**/*.native-test.*"');
269
+ (0, import_vitest.expect)(file).toContain('"scheme": "myapp"');
270
+ (0, import_vitest.expect)(file).toContain('"native": "src/setup.native.ts"');
271
+ }
272
+ });
273
+ (0, import_vitest.it)("refuses to silently drop non-serializable options", function () {
274
+ (0, import_vitest.expect)(function () {
275
+ return (0, import_generateBundlerConfig.generateBundlerConfig)({
276
+ cwd: tmpDir,
277
+ quiet: true,
278
+ oneOptions: {
279
+ router: {
280
+ linking: {
281
+ // the plugin API only accepts serializable router.linking fields
282
+ filter: function () {
283
+ return true;
284
+ }
285
+ }
286
+ }
287
+ }
288
+ });
289
+ }).toThrow(/JSON-serializable/);
290
+ });
291
+ });
292
+ (0, import_vitest.describe)("isCiEnvironment", function () {
293
+ var originalCi = process.env.CI;
294
+ var originalEasBuild = process.env.EAS_BUILD;
295
+ (0, import_vitest.afterEach)(function () {
296
+ if (originalCi === void 0) delete process.env.CI;else process.env.CI = originalCi;
297
+ if (originalEasBuild === void 0) delete process.env.EAS_BUILD;else process.env.EAS_BUILD = originalEasBuild;
298
+ });
299
+ (0, import_vitest.it)("is true when CI=true", function () {
300
+ process.env.CI = "true";
301
+ delete process.env.EAS_BUILD;
302
+ (0, import_vitest.expect)((0, import_generateBundlerConfig.isCiEnvironment)()).toBe(true);
303
+ });
304
+ (0, import_vitest.it)("is true when CI=1", function () {
305
+ process.env.CI = "1";
306
+ delete process.env.EAS_BUILD;
307
+ (0, import_vitest.expect)((0, import_generateBundlerConfig.isCiEnvironment)()).toBe(true);
308
+ });
309
+ (0, import_vitest.it)("is true when EAS_BUILD=true", function () {
310
+ delete process.env.CI;
311
+ process.env.EAS_BUILD = "true";
312
+ (0, import_vitest.expect)((0, import_generateBundlerConfig.isCiEnvironment)()).toBe(true);
313
+ });
314
+ (0, import_vitest.it)("is false when neither is set", function () {
315
+ delete process.env.CI;
316
+ delete process.env.EAS_BUILD;
317
+ (0, import_vitest.expect)((0, import_generateBundlerConfig.isCiEnvironment)()).toBe(false);
318
+ });
319
+ (0, import_vitest.it)("is false when CI=false or CI=0", function () {
320
+ delete process.env.EAS_BUILD;
321
+ process.env.CI = "false";
322
+ (0, import_vitest.expect)((0, import_generateBundlerConfig.isCiEnvironment)()).toBe(false);
323
+ process.env.CI = "0";
324
+ (0, import_vitest.expect)((0, import_generateBundlerConfig.isCiEnvironment)()).toBe(false);
325
+ });
326
+ });
327
+ (0, import_vitest.describe)("maybeGenerateBundlerConfigOnInstall", function () {
328
+ var tmpDir;
329
+ var originalCi = process.env.CI;
330
+ (0, import_vitest.beforeEach)(function () {
331
+ tmpDir = import_fs.default.mkdtempSync(import_path.default.join(import_os.default.tmpdir(), "one-gen-bundler-ci-test-"));
332
+ });
333
+ (0, import_vitest.afterEach)(function () {
334
+ import_fs.default.rmSync(tmpDir, {
335
+ recursive: true,
336
+ force: true
337
+ });
338
+ if (originalCi === void 0) delete process.env.CI;else process.env.CI = originalCi;
339
+ delete process.env.EAS_BUILD;
340
+ });
341
+ (0, import_vitest.it)("does NOT generate files when not in CI even if expo-updates is present", function () {
342
+ delete process.env.CI;
343
+ delete process.env.EAS_BUILD;
344
+ var fakeUpdates = import_path.default.join(tmpDir, "node_modules/expo-updates");
345
+ import_fs.default.mkdirSync(fakeUpdates, {
346
+ recursive: true
347
+ });
348
+ import_fs.default.writeFileSync(import_path.default.join(fakeUpdates, "package.json"), JSON.stringify({
349
+ name: "expo-updates"
350
+ }));
351
+ (0, import_generateBundlerConfig.maybeGenerateBundlerConfigOnInstall)(tmpDir);
352
+ (0, import_vitest.expect)(import_fs.default.existsSync(import_path.default.join(tmpDir, "babel.config.cjs"))).toBe(false);
353
+ (0, import_vitest.expect)(import_fs.default.existsSync(import_path.default.join(tmpDir, "metro.config.cjs"))).toBe(false);
354
+ });
355
+ (0, import_vitest.it)("does NOT generate files in CI when expo-updates is absent", function () {
356
+ process.env.CI = "true";
357
+ (0, import_generateBundlerConfig.maybeGenerateBundlerConfigOnInstall)(tmpDir);
358
+ (0, import_vitest.expect)(import_fs.default.existsSync(import_path.default.join(tmpDir, "babel.config.cjs"))).toBe(false);
359
+ (0, import_vitest.expect)(import_fs.default.existsSync(import_path.default.join(tmpDir, "metro.config.cjs"))).toBe(false);
360
+ });
361
+ (0, import_vitest.it)("generates files in CI when expo-updates is present", function () {
362
+ process.env.CI = "true";
363
+ var fakeUpdates = import_path.default.join(tmpDir, "node_modules/expo-updates");
364
+ import_fs.default.mkdirSync(fakeUpdates, {
365
+ recursive: true
366
+ });
367
+ import_fs.default.writeFileSync(import_path.default.join(fakeUpdates, "package.json"), JSON.stringify({
368
+ name: "expo-updates"
369
+ }));
370
+ var consoleInfo = import_vitest.vi.spyOn(console, "info").mockImplementation(function () {});
371
+ try {
372
+ (0, import_generateBundlerConfig.maybeGenerateBundlerConfigOnInstall)(tmpDir);
373
+ } finally {
374
+ consoleInfo.mockRestore();
375
+ }
376
+ (0, import_vitest.expect)(import_fs.default.existsSync(import_path.default.join(tmpDir, "babel.config.cjs"))).toBe(true);
377
+ (0, import_vitest.expect)(import_fs.default.existsSync(import_path.default.join(tmpDir, "metro.config.cjs"))).toBe(true);
378
+ });
379
+ });
380
+ //# sourceMappingURL=generateBundlerConfig.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["import_fs","__toESM","require","import_os","import_path","import_vitest","import_generateBundlerConfig","describe","tmpDir","beforeEach","default","mkdtempSync","join","tmpdir","afterEach","rmSync","recursive","force","it","ok","results","generateBundlerConfig","cwd","quiet","expect","toBe","map","r","action","toEqual","babel","readFileSync","toContain","ONE_GENERATED_MARKER","metro","before","after","writeFileSync","babelResult","find","filePath","endsWith","not","check","every","existsSync","eject","oneOptions","router","root","ignoredRouteFiles","linking","scheme","prefixes","setupFile","native","_i","_iter","length","file","filter","toThrow","originalCi","process","env","CI","originalEasBuild","EAS_BUILD","isCiEnvironment"],"sources":["../../../src/cli/generateBundlerConfig.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -37,13 +37,30 @@ __export(patch_exports, {
37
37
  });
38
38
  module.exports = __toCommonJS(patch_exports);
39
39
  var import_loadConfig = require("../vite/loadConfig.cjs");
40
+ var import_generateBundlerConfig = require("./generateBundlerConfig.cjs");
41
+ function isMissingViteConfigError(error) {
42
+ return error instanceof Error && error.message.startsWith("No config config in ") && error.message.endsWith(" Is this the correct directory?");
43
+ }
44
+ async function loadUserOptions() {
45
+ try {
46
+ return await (0, import_loadConfig.loadUserOneOptions)("build");
47
+ } catch (error) {
48
+ if (isMissingViteConfigError(error)) {
49
+ return void 0;
50
+ }
51
+ throw error;
52
+ }
53
+ }
40
54
  async function run(args) {
41
55
  process.env.IS_VXRN_CLI = "true";
42
56
  const {
43
57
  patch
44
58
  } = await import("vxrn");
45
- const options = await (0, import_loadConfig.loadUserOneOptions)("build");
46
- const patches = options.oneOptions.patches;
59
+ const options = await loadUserOptions();
60
+ if (options) {
61
+ (0, import_generateBundlerConfig.maybeGenerateBundlerConfigOnInstall)(process.cwd(), options.oneOptions);
62
+ }
63
+ const patches = options?.oneOptions.patches;
47
64
  if (process.env.DEBUG) {
48
65
  console.info("User patches:", Object.keys(patches || {}));
49
66
  }
@@ -39,13 +39,37 @@ __export(patch_exports, {
39
39
  });
40
40
  module.exports = __toCommonJS(patch_exports);
41
41
  var import_loadConfig = require("../vite/loadConfig.native.js");
42
+ var import_generateBundlerConfig = require("./generateBundlerConfig.native.js");
43
+ function _instanceof(left, right) {
44
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
45
+ return !!right[Symbol.hasInstance](left);
46
+ } else {
47
+ return left instanceof right;
48
+ }
49
+ }
50
+ function isMissingViteConfigError(error) {
51
+ return _instanceof(error, Error) && error.message.startsWith("No config config in ") && error.message.endsWith(" Is this the correct directory?");
52
+ }
53
+ async function loadUserOptions() {
54
+ try {
55
+ return await (0, import_loadConfig.loadUserOneOptions)("build");
56
+ } catch (error) {
57
+ if (isMissingViteConfigError(error)) {
58
+ return void 0;
59
+ }
60
+ throw error;
61
+ }
62
+ }
42
63
  async function run(args) {
43
64
  process.env.IS_VXRN_CLI = "true";
44
65
  var {
45
66
  patch
46
67
  } = await import("vxrn");
47
- var options = await (0, import_loadConfig.loadUserOneOptions)("build");
48
- var patches = options.oneOptions.patches;
68
+ var options = await loadUserOptions();
69
+ if (options) {
70
+ (0, import_generateBundlerConfig.maybeGenerateBundlerConfigOnInstall)(process.cwd(), options.oneOptions);
71
+ }
72
+ var patches = options === null || options === void 0 ? void 0 : options.oneOptions.patches;
49
73
  if (process.env.DEBUG) {
50
74
  console.info("User patches:", Object.keys(patches || {}));
51
75
  }
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","patch_exports","__export","run","module","exports","import_loadConfig","require","args","process","env","IS_VXRN_CLI","patch","options","loadUserOneOptions","patches","oneOptions","DEBUG","console","info","Object","keys","root","cwd","deps","force"],"sources":["../../../src/cli/patch.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,GAAA,EAAAA,CAAA,KAAAA;AAAA;AACAC,MAAA,CAAAC,OAAA,GAAAT,YAAmC,CAAAK,aAAA;AAEnC,IAAAK,iBAA0B,GAAAC,OAA2B;AACnD,eAAYJ,IAAAK,IAAA;EACZC,OAAM,CAAEC,GAAA,CAAAC,WAAU,GAAM,MAAO;EAE/B;IAAMC;EAAA,IAAU,YAAM;EACtB,IAAAC,OAAM,SAAU,IAAQP,iBAAW,CAAAQ,kBAAA;EAEnC,IAAIC,OAAA,GAAQF,OAAI,CAAAG,UAAO,CAAAD,OAAA;EACrB,IAAAN,OAAQ,CAAAC,GAAK,CAAAO,KAAA;IACfC,OAAA,CAAAC,IAAA,kBAAAC,MAAA,CAAAC,IAAA,CAAAN,OAAA;EAEA;EAAY,MACVH,KAAM;IACNU,IAAA,EAAMb,OAAA,CAAAc,GAAA;IACNC,IAAA,EAAAT,OAAY;IACUU,KAAA,EAAAjB,IAAA,CAAAiB;EAC1B","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","patch_exports","__export","run","module","exports","import_loadConfig","require","import_generateBundlerConfig","_instanceof","left","right","Symbol","hasInstance","isMissingViteConfigError","error","Error","message","startsWith","endsWith","loadUserOptions","loadUserOneOptions","args","process","env","IS_VXRN_CLI","patch","options","maybeGenerateBundlerConfigOnInstall","cwd","oneOptions","patches","DEBUG"],"sources":["../../../src/cli/patch.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,GAAA,EAAAA,CAAA,KAAAA;AAAA;AACAC,MAAA,CAAAC,OAAA,GAAAT,YAAmC,CAAAK,aAAA;AACnC,IAAAK,iBAAA,GAAAC,OAAA,+BAAoD;AAEpD,IAAAC,4BAAS,GAAyBD,OAAgB;AAChD,SACEE,YAAAC,IAAA,EAAiBC,KAAA;EAIrB,IAAAA,KAAA,mBAAAC,MAAA,oBAAAD,KAAA,CAAAC,MAAA,CAAAC,WAAA;IAEA,SAAAF,KAAe,CAAAC,MAAA,CAAAC,WAAkB,EAAAH,IAAA;EAC/B,OAAI;IACF,OAAOA,IAAA,YAAMC,KAAA;EACf;AACE;AACE,SAAAG,wBAAOA,CAAAC,KAAA;EAAA,OACTN,WAAA,CAAAM,KAAA,EAAAC,KAAA,KAAAD,KAAA,CAAAE,OAAA,CAAAC,UAAA,4BAAAH,KAAA,CAAAE,OAAA,CAAAE,QAAA;AACA;AAAM,eACRC,gBAAA;EACF;IAEA,aAAsB,EAAI,EAAAd,iBAA2B,CAAAe,kBAAA;EACnD,SAAQN,KAAI;IACZ,IAAMD,wBAAkB,CAAOC,KAAA,CAAM;MAErC,OAAM,KAAU;IAKhB;IACE,MAAAA,KAAA;EACF;AAEA;AAEA,eAAYZ,GAAIA,CAAAmB,IAAA,EAAO;EACrBC,OAAA,CAAAC,GAAQ,CAAAC,WAAK,SAAiB;EAChC;IAAAC;EAAA;EAEA,IAAAC,OAAM,GAAM,MAAAP,eAAA;EAAA,IACVO,OAAM;IACN,IAAAnB,4BAAM,CAAAoB,mCAAA,EAAAL,OAAA,CAAAM,GAAA,IAAAF,OAAA,CAAAG,UAAA;EAAA;EAER,IAAwBC,OAAA,GAAAJ,OAAA,aAAAA,OAAA,uBAAAA,OAAA,CAAAG,UAAA,CAAAC,OAAA;EAC1B,IAAAR,OAAA,CAAAC,GAAA,CAAAQ,KAAA","ignoreList":[]}
@@ -0,0 +1,56 @@
1
+ var import_vitest = require("vitest");
2
+ var import_patch = require("./patch.cjs");
3
+ const {
4
+ patchMock,
5
+ loadUserOneOptionsMock
6
+ } = import_vitest.vi.hoisted(() => ({
7
+ patchMock: import_vitest.vi.fn(),
8
+ loadUserOneOptionsMock: import_vitest.vi.fn()
9
+ }));
10
+ import_vitest.vi.mock("vxrn", () => ({
11
+ patch: patchMock
12
+ }));
13
+ import_vitest.vi.mock("../vite/loadConfig", () => ({
14
+ loadUserOneOptions: loadUserOneOptionsMock
15
+ }));
16
+ (0, import_vitest.describe)("one patch", () => {
17
+ (0, import_vitest.beforeEach)(() => {
18
+ patchMock.mockReset();
19
+ loadUserOneOptionsMock.mockReset();
20
+ });
21
+ (0, import_vitest.it)("applies built-in patches when a native-only app has no vite config", async () => {
22
+ loadUserOneOptionsMock.mockRejectedValueOnce(new Error("No config config in /tmp/native-only-app. Is this the correct directory?"));
23
+ await (0, import_patch.run)({});
24
+ (0, import_vitest.expect)(patchMock).toHaveBeenCalledWith({
25
+ root: process.cwd(),
26
+ deps: void 0,
27
+ force: void 0
28
+ });
29
+ });
30
+ (0, import_vitest.it)("passes configured user patches through to vxrn", async () => {
31
+ const patches = {
32
+ "example-package": {
33
+ version: "1",
34
+ "index.js": "export default 1"
35
+ }
36
+ };
37
+ loadUserOneOptionsMock.mockResolvedValueOnce({
38
+ oneOptions: {
39
+ patches
40
+ }
41
+ });
42
+ await (0, import_patch.run)({
43
+ force: true
44
+ });
45
+ (0, import_vitest.expect)(patchMock).toHaveBeenCalledWith({
46
+ root: process.cwd(),
47
+ deps: patches,
48
+ force: true
49
+ });
50
+ });
51
+ (0, import_vitest.it)("keeps failing when a vite config exists but does not load one", async () => {
52
+ loadUserOneOptionsMock.mockRejectedValueOnce(new Error("One not loaded properly, is the one() plugin in your vite.config.ts?"));
53
+ await (0, import_vitest.expect)((0, import_patch.run)({})).rejects.toThrow("One not loaded properly");
54
+ (0, import_vitest.expect)(patchMock).not.toHaveBeenCalled();
55
+ });
56
+ });
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ var import_vitest = require("vitest");
4
+ var import_patch = require("./patch.native.js");
5
+ var {
6
+ patchMock,
7
+ loadUserOneOptionsMock
8
+ } = import_vitest.vi.hoisted(function () {
9
+ return {
10
+ patchMock: import_vitest.vi.fn(),
11
+ loadUserOneOptionsMock: import_vitest.vi.fn()
12
+ };
13
+ });
14
+ import_vitest.vi.mock("vxrn", function () {
15
+ return {
16
+ patch: patchMock
17
+ };
18
+ });
19
+ import_vitest.vi.mock("../vite/loadConfig", function () {
20
+ return {
21
+ loadUserOneOptions: loadUserOneOptionsMock
22
+ };
23
+ });
24
+ (0, import_vitest.describe)("one patch", function () {
25
+ (0, import_vitest.beforeEach)(function () {
26
+ patchMock.mockReset();
27
+ loadUserOneOptionsMock.mockReset();
28
+ });
29
+ (0, import_vitest.it)("applies built-in patches when a native-only app has no vite config", async function () {
30
+ loadUserOneOptionsMock.mockRejectedValueOnce(new Error("No config config in /tmp/native-only-app. Is this the correct directory?"));
31
+ await (0, import_patch.run)({});
32
+ (0, import_vitest.expect)(patchMock).toHaveBeenCalledWith({
33
+ root: process.cwd(),
34
+ deps: void 0,
35
+ force: void 0
36
+ });
37
+ });
38
+ (0, import_vitest.it)("passes configured user patches through to vxrn", async function () {
39
+ var patches = {
40
+ "example-package": {
41
+ version: "1",
42
+ "index.js": "export default 1"
43
+ }
44
+ };
45
+ loadUserOneOptionsMock.mockResolvedValueOnce({
46
+ oneOptions: {
47
+ patches
48
+ }
49
+ });
50
+ await (0, import_patch.run)({
51
+ force: true
52
+ });
53
+ (0, import_vitest.expect)(patchMock).toHaveBeenCalledWith({
54
+ root: process.cwd(),
55
+ deps: patches,
56
+ force: true
57
+ });
58
+ });
59
+ (0, import_vitest.it)("keeps failing when a vite config exists but does not load one", async function () {
60
+ loadUserOneOptionsMock.mockRejectedValueOnce(new Error("One not loaded properly, is the one() plugin in your vite.config.ts?"));
61
+ await (0, import_vitest.expect)((0, import_patch.run)({})).rejects.toThrow("One not loaded properly");
62
+ (0, import_vitest.expect)(patchMock).not.toHaveBeenCalled();
63
+ });
64
+ });
65
+ //# sourceMappingURL=patch.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["import_vitest","require","import_patch","patchMock","loadUserOneOptionsMock","vi","hoisted","fn","mock","patch","loadUserOneOptions","describe","beforeEach","mockReset","it","mockRejectedValueOnce","Error","run","expect","toHaveBeenCalledWith","root","process","cwd","deps","force","patches","version","mockResolvedValueOnce","oneOptions"],"sources":["../../../src/cli/patch.test.ts"],"sourcesContent":[null],"mappings":"AAAA;;AACA,IAAAA,aAAA,GAAoBC,OAAA;AAEpB,IAAAC,YAAQ,GAAWD,OAAA;AAA6C,IAC9D;EAAAE,SAAW;EAAAC;AAAM,IAAAJ,aAAA,CAAAK,EAAA,CAAAC,OAAA;EACjB;IACAH,SAAA,EAAAH,aAAA,CAAAK,EAAA,CAAAE,EAAA;IAEFH,sBAAQ,EAAAJ,aAAe,CAAAK,EAAA,CAAAE,EAAA;EACrB;AACF,EAAE;AAEFP,aAAA,CAAAK,EAAA,CAAGG,IAAA,CAAK;EACN;IACAC,KAAA,EAAAN;EAAA;AAGA;AACEH,aAAA,CAAUK,EAAA,CAAAG,IAAA,qBAAU;EACpB;IACDE,kBAAA,EAAAN;EAED;AACE;AAAuB,IAAAJ,aACX,CAAAW,QAAA;EAA0E,EACtF,EAAAX,aAAA,CAAAY,UAAA;IAEAT,SAAA,CAAMU,SAAA;IAENT,sBAAA,CAAAS,SAAO;EAAgC;EACnB,IAClBb,aAAM,CAAAc,EAAA;IAAAV,sBACC,CAAAW,qBAAA,KAAAC,KAAA;IACT,MAAC,IAAAd,YAAA,CAAAe,GAAA;IACF,IAAAjB,aAAA,CAAAkB,MAAA,EAAAf,SAAA,EAAAgB,oBAAA;MAEDC,IAAA,EAAAC,OAAA,CAAAC,GAAA,CAAG;MACDC,IAAM;MACJC,KAAA;IAAmB;EACR;EACG,IACdxB,aAAA,CAAAc,EAAA;IACF,IAAAW,OAAA;MACA;QACEC,OAAA,KAAc;QACf;MAED;IAEA;IAAuCtB,sBACnB,CAAAuB,qBAAA;MAClBC,UAAM;QACNH;MACD;IACF;IAED,UAAAvB,YAAG,CAAAe,GAAA;MACDO,KAAA;IAAuB,EACrB;IACF,IAAAxB,aAAA,CAAAkB,MAAA,EAAAf,SAAA,EAAAgB,oBAAA;MAEAC,IAAA,EAAAC,OAAM,CAAAC,GAAA;MACNC,IAAA,EAAAE,OAAA;MACDD,KAAA;IACF","ignoreList":[]}