react-native-builder-bob 0.40.18 → 0.42.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 (189) hide show
  1. package/bin/bob +1 -1
  2. package/lib/package.json +93 -0
  3. package/lib/src/__tests__/babel.test.d.ts +1 -0
  4. package/lib/src/__tests__/babel.test.js +26 -0
  5. package/lib/src/__tests__/babel.test.js.map +1 -0
  6. package/lib/src/__tests__/init.test.d.ts +1 -0
  7. package/lib/src/__tests__/init.test.js +93 -0
  8. package/lib/src/__tests__/init.test.js.map +1 -0
  9. package/lib/src/__tests__/resolveModuleSpecifier.test.d.ts +1 -0
  10. package/lib/src/__tests__/resolveModuleSpecifier.test.js +95 -0
  11. package/lib/src/__tests__/resolveModuleSpecifier.test.js.map +1 -0
  12. package/lib/src/__tests__/typescript-declarations.test.d.ts +1 -0
  13. package/lib/src/__tests__/typescript-declarations.test.js +193 -0
  14. package/lib/src/__tests__/typescript-declarations.test.js.map +1 -0
  15. package/lib/src/__tests__/typescript.test.d.ts +1 -0
  16. package/lib/src/__tests__/typescript.test.js +243 -0
  17. package/lib/src/__tests__/typescript.test.js.map +1 -0
  18. package/lib/src/__tests__/updateSourceMap.test.d.ts +1 -0
  19. package/lib/src/__tests__/updateSourceMap.test.js +84 -0
  20. package/lib/src/__tests__/updateSourceMap.test.js.map +1 -0
  21. package/lib/src/babel.d.ts +19 -0
  22. package/lib/src/babel.js +58 -0
  23. package/lib/src/babel.js.map +1 -0
  24. package/lib/src/build.d.ts +14 -0
  25. package/lib/src/build.js +122 -0
  26. package/lib/src/build.js.map +1 -0
  27. package/lib/src/configs/babel-config.cjs +46 -0
  28. package/lib/src/configs/babel-config.cjs.map +1 -0
  29. package/lib/src/configs/babel-config.d.cts +15 -0
  30. package/lib/src/configs/babel-preset.cjs +66 -0
  31. package/lib/src/configs/babel-preset.cjs.map +1 -0
  32. package/lib/src/configs/babel-preset.d.cts +19 -0
  33. package/lib/src/configs/metro-config.d.mts +4 -0
  34. package/{metro-config.js → lib/src/configs/metro-config.mjs} +3 -7
  35. package/lib/src/configs/metro-config.mjs.map +1 -0
  36. package/lib/src/configs/vite-config.d.mts +2 -0
  37. package/lib/src/configs/vite-config.mjs +59 -0
  38. package/lib/src/configs/vite-config.mjs.map +1 -0
  39. package/lib/src/index.d.ts +1 -0
  40. package/lib/src/index.js +18 -0
  41. package/lib/src/index.js.map +1 -0
  42. package/lib/src/init.d.ts +1 -0
  43. package/lib/src/init.js +370 -0
  44. package/lib/src/init.js.map +1 -0
  45. package/lib/src/schema.d.ts +70 -0
  46. package/lib/src/schema.js +45 -0
  47. package/lib/src/schema.js.map +1 -0
  48. package/lib/src/targets/codegen/index.d.ts +4 -0
  49. package/lib/src/targets/codegen/index.js +54 -0
  50. package/lib/src/targets/codegen/index.js.map +1 -0
  51. package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.d.ts +11 -0
  52. package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.js +63 -0
  53. package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.js.map +1 -0
  54. package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.test.d.ts +1 -0
  55. package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.test.js +103 -0
  56. package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.test.js.map +1 -0
  57. package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.d.ts +16 -0
  58. package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.js +59 -0
  59. package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.js.map +1 -0
  60. package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.test.d.ts +1 -0
  61. package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.test.js +75 -0
  62. package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.test.js.map +1 -0
  63. package/lib/src/targets/commonjs.d.ts +9 -0
  64. package/lib/src/targets/commonjs.js +19 -0
  65. package/lib/src/targets/commonjs.js.map +1 -0
  66. package/lib/src/targets/custom.d.ts +9 -0
  67. package/lib/src/targets/custom.js +30 -0
  68. package/lib/src/targets/custom.js.map +1 -0
  69. package/lib/src/targets/module.d.ts +9 -0
  70. package/lib/src/targets/module.js +19 -0
  71. package/lib/src/targets/module.js.map +1 -0
  72. package/lib/src/targets/typescript.d.ts +12 -0
  73. package/lib/src/targets/typescript.js +387 -0
  74. package/lib/src/targets/typescript.js.map +1 -0
  75. package/lib/src/types.d.ts +24 -0
  76. package/lib/src/types.js +2 -0
  77. package/lib/src/types.js.map +1 -0
  78. package/lib/src/utils/androidAssemble.d.ts +8 -0
  79. package/lib/src/utils/androidAssemble.js +17 -0
  80. package/lib/src/utils/androidAssemble.js.map +1 -0
  81. package/lib/src/utils/compile.d.ts +16 -0
  82. package/lib/src/utils/compile.js +211 -0
  83. package/lib/src/utils/compile.js.map +1 -0
  84. package/lib/src/utils/isCodegenSpec.d.ts +1 -0
  85. package/lib/src/utils/isCodegenSpec.js +14 -0
  86. package/lib/src/utils/isCodegenSpec.js.map +1 -0
  87. package/lib/src/utils/isGitDirty.d.ts +1 -0
  88. package/lib/src/utils/isGitDirty.js +14 -0
  89. package/lib/src/utils/isGitDirty.js.map +1 -0
  90. package/lib/src/utils/loadConfig.d.ts +4 -0
  91. package/lib/src/utils/loadConfig.js +59 -0
  92. package/lib/src/utils/loadConfig.js.map +1 -0
  93. package/lib/src/utils/logger.d.ts +10 -0
  94. package/lib/src/utils/logger.js +30 -0
  95. package/lib/src/utils/logger.js.map +1 -0
  96. package/lib/src/utils/prompts.d.ts +3 -0
  97. package/lib/src/utils/prompts.js +10 -0
  98. package/lib/src/utils/prompts.js.map +1 -0
  99. package/lib/src/utils/resolveModuleSpecifier.d.ts +21 -0
  100. package/lib/src/utils/resolveModuleSpecifier.js +57 -0
  101. package/lib/src/utils/resolveModuleSpecifier.js.map +1 -0
  102. package/lib/src/utils/spawn.d.ts +2 -0
  103. package/lib/src/utils/spawn.js +41 -0
  104. package/lib/src/utils/spawn.js.map +1 -0
  105. package/lib/src/utils/updateSourceMap.d.ts +11 -0
  106. package/lib/src/utils/updateSourceMap.js +56 -0
  107. package/lib/src/utils/updateSourceMap.js.map +1 -0
  108. package/lib/src/utils/workerize.d.ts +15 -0
  109. package/lib/src/utils/workerize.js +75 -0
  110. package/lib/src/utils/workerize.js.map +1 -0
  111. package/package.json +49 -42
  112. package/babel-config.js +0 -55
  113. package/babel-preset.js +0 -71
  114. package/lib/__fixtures__/project/MyNativeComponent.js +0 -8
  115. package/lib/__fixtures__/project/MyNativeComponent.js.map +0 -1
  116. package/lib/__fixtures__/project/NativeMyLib.js +0 -2
  117. package/lib/__fixtures__/project/NativeMyLib.js.map +0 -1
  118. package/lib/__fixtures__/project/code/$exports-input.js +0 -122
  119. package/lib/__fixtures__/project/code/$exports-input.js.map +0 -1
  120. package/lib/__fixtures__/project/code/$exports-output.js +0 -122
  121. package/lib/__fixtures__/project/code/$exports-output.js.map +0 -1
  122. package/lib/__fixtures__/project/code/$imports-input.js +0 -24
  123. package/lib/__fixtures__/project/code/$imports-input.js.map +0 -1
  124. package/lib/__fixtures__/project/code/$imports-output.js +0 -20
  125. package/lib/__fixtures__/project/code/$imports-output.js.map +0 -1
  126. package/lib/__fixtures__/project/code/MyNativeComponent.js +0 -8
  127. package/lib/__fixtures__/project/code/MyNativeComponent.js.map +0 -1
  128. package/lib/__fixtures__/project/code/NativeMyLib.js +0 -2
  129. package/lib/__fixtures__/project/code/NativeMyLib.js.map +0 -1
  130. package/lib/__fixtures__/project/code/a.js +0 -2
  131. package/lib/__fixtures__/project/code/a.js.map +0 -1
  132. package/lib/__fixtures__/project/code/b.js +0 -2
  133. package/lib/__fixtures__/project/code/b.js.map +0 -1
  134. package/lib/__fixtures__/project/code/e.story.js +0 -2
  135. package/lib/__fixtures__/project/code/e.story.js.map +0 -1
  136. package/lib/__fixtures__/project/f.js +0 -2
  137. package/lib/__fixtures__/project/f.js.map +0 -1
  138. package/lib/__fixtures__/project/index.js +0 -2
  139. package/lib/__fixtures__/project/index.js.map +0 -1
  140. package/lib/__tests__/babel.test.js +0 -28
  141. package/lib/__tests__/babel.test.js.map +0 -1
  142. package/lib/__tests__/init.test.js +0 -93
  143. package/lib/__tests__/init.test.js.map +0 -1
  144. package/lib/babel.js +0 -92
  145. package/lib/babel.js.map +0 -1
  146. package/lib/build.js +0 -142
  147. package/lib/build.js.map +0 -1
  148. package/lib/index.js +0 -16
  149. package/lib/index.js.map +0 -1
  150. package/lib/init.js +0 -371
  151. package/lib/init.js.map +0 -1
  152. package/lib/schema.js +0 -49
  153. package/lib/schema.js.map +0 -1
  154. package/lib/targets/codegen/index.js +0 -60
  155. package/lib/targets/codegen/index.js.map +0 -1
  156. package/lib/targets/codegen/patches/patchCodegenAndroidPackage.js +0 -74
  157. package/lib/targets/codegen/patches/patchCodegenAndroidPackage.js.map +0 -1
  158. package/lib/targets/codegen/patches/patchCodegenAndroidPackage.test.js +0 -106
  159. package/lib/targets/codegen/patches/patchCodegenAndroidPackage.test.js.map +0 -1
  160. package/lib/targets/codegen/patches/removeCodegenAppLevelCode.js +0 -57
  161. package/lib/targets/codegen/patches/removeCodegenAppLevelCode.js.map +0 -1
  162. package/lib/targets/codegen/patches/removeCodegenAppLevelCode.test.js +0 -78
  163. package/lib/targets/codegen/patches/removeCodegenAppLevelCode.test.js.map +0 -1
  164. package/lib/targets/commonjs.js +0 -34
  165. package/lib/targets/commonjs.js.map +0 -1
  166. package/lib/targets/custom.js +0 -40
  167. package/lib/targets/custom.js.map +0 -1
  168. package/lib/targets/module.js +0 -34
  169. package/lib/targets/module.js.map +0 -1
  170. package/lib/targets/typescript.js +0 -219
  171. package/lib/targets/typescript.js.map +0 -1
  172. package/lib/types.js +0 -6
  173. package/lib/types.js.map +0 -1
  174. package/lib/utils/androidAssemble.js +0 -29
  175. package/lib/utils/androidAssemble.js.map +0 -1
  176. package/lib/utils/compile.js +0 -218
  177. package/lib/utils/compile.js.map +0 -1
  178. package/lib/utils/isCodegenSpec.js +0 -22
  179. package/lib/utils/isCodegenSpec.js.map +0 -1
  180. package/lib/utils/loadConfig.js +0 -56
  181. package/lib/utils/loadConfig.js.map +0 -1
  182. package/lib/utils/logger.js +0 -35
  183. package/lib/utils/logger.js.map +0 -1
  184. package/lib/utils/prompts.js +0 -17
  185. package/lib/utils/prompts.js.map +0 -1
  186. package/lib/utils/spawn.js +0 -48
  187. package/lib/utils/spawn.js.map +0 -1
  188. package/lib/utils/workerize.js +0 -102
  189. package/lib/utils/workerize.js.map +0 -1
@@ -0,0 +1,243 @@
1
+ import path from 'node:path';
2
+ import mockFs from 'mock-fs';
3
+ import { afterEach, beforeEach, expect, test, vi } from 'vitest';
4
+ import build, { findBinInAncestorNodeModules } from "../targets/typescript.js";
5
+ import { spawn } from "../utils/spawn.js";
6
+ const whichMock = vi.hoisted(() => vi.fn());
7
+ vi.mock('which', () => ({
8
+ default: whichMock,
9
+ }));
10
+ vi.mock('../utils/spawn.ts', () => ({
11
+ spawn: vi.fn(),
12
+ }));
13
+ const workspace = path.resolve('/workspace');
14
+ const packageRoot = path.join(workspace, 'packages', 'library');
15
+ const source = path.join(packageRoot, 'src');
16
+ const output = path.join(packageRoot, 'lib');
17
+ const spawnMock = vi.mocked(spawn);
18
+ function createReport() {
19
+ return {
20
+ error: vi.fn(),
21
+ info: vi.fn(),
22
+ success: vi.fn(),
23
+ warn: vi.fn(),
24
+ };
25
+ }
26
+ function library(files = {}) {
27
+ return {
28
+ 'package.json': JSON.stringify({ name: 'library' }),
29
+ 'tsconfig.json': '{}',
30
+ src: {},
31
+ ...files,
32
+ };
33
+ }
34
+ async function buildTypescript(options) {
35
+ const report = createReport();
36
+ await build({
37
+ root: packageRoot,
38
+ source,
39
+ output,
40
+ report,
41
+ options,
42
+ variants: { commonjs: true },
43
+ esm: false,
44
+ });
45
+ return report;
46
+ }
47
+ beforeEach(() => {
48
+ whichMock.mockResolvedValue(null);
49
+ spawnMock.mockResolvedValue('');
50
+ });
51
+ afterEach(() => {
52
+ mockFs.restore();
53
+ vi.clearAllMocks();
54
+ });
55
+ test('finds the nearest binary before the lookup limit', async () => {
56
+ const localTsc = path.join(packageRoot, 'node_modules', '.bin', 'tsc');
57
+ mockFs({
58
+ [workspace]: {
59
+ packages: {
60
+ library: {
61
+ node_modules: {
62
+ '.bin': {
63
+ tsc: '',
64
+ },
65
+ },
66
+ },
67
+ },
68
+ node_modules: {
69
+ '.bin': {
70
+ tsc: '',
71
+ },
72
+ },
73
+ },
74
+ });
75
+ await expect(findBinInAncestorNodeModules(packageRoot, 'tsc', workspace)).resolves.toBe(localTsc);
76
+ });
77
+ test('stops looking for binaries at the lookup limit', async () => {
78
+ const home = path.resolve('/home/user');
79
+ const workspace = path.join(home, 'workspace');
80
+ const packageRoot = path.join(workspace, 'packages', 'library');
81
+ mockFs({
82
+ [home]: {
83
+ node_modules: {
84
+ '.bin': {
85
+ tsc: '',
86
+ },
87
+ },
88
+ workspace: {
89
+ packages: {
90
+ library: {},
91
+ },
92
+ },
93
+ },
94
+ });
95
+ await expect(findBinInAncestorNodeModules(packageRoot, 'tsc', workspace)).resolves.toBeUndefined();
96
+ });
97
+ test('finds Windows command binaries before the lookup limit', async () => {
98
+ const tsc = path.join(workspace, 'node_modules', '.bin', 'tsc.cmd');
99
+ mockFs({
100
+ [workspace]: {
101
+ packages: {
102
+ library: {},
103
+ },
104
+ node_modules: {
105
+ '.bin': {
106
+ 'tsc.cmd': '',
107
+ },
108
+ },
109
+ },
110
+ });
111
+ await expect(findBinInAncestorNodeModules(packageRoot, 'tsc.cmd', workspace)).resolves.toBe(tsc);
112
+ });
113
+ test('uses explicit tsc option without automatic lookup', async () => {
114
+ const tsc = path.join(packageRoot, 'scripts', 'tsc');
115
+ mockFs({
116
+ [workspace]: {
117
+ 'yarn.lock': '',
118
+ packages: {
119
+ library: library({
120
+ scripts: {
121
+ tsc: '',
122
+ },
123
+ }),
124
+ },
125
+ },
126
+ });
127
+ whichMock.mockResolvedValue(path.join(workspace, 'node_modules', '.bin', 'tsc'));
128
+ await buildTypescript({ tsc: 'scripts/tsc' });
129
+ expect(whichMock).not.toHaveBeenCalled();
130
+ expect(spawnMock).toHaveBeenCalledWith(tsc, expect.any(Array), expect.any(Object));
131
+ });
132
+ test('prefers package node_modules tsc over PATH', async () => {
133
+ const localTsc = path.join(packageRoot, 'node_modules', '.bin', 'tsc');
134
+ mockFs({
135
+ [workspace]: {
136
+ 'yarn.lock': '',
137
+ packages: {
138
+ library: library({
139
+ node_modules: {
140
+ '.bin': {
141
+ tsc: '',
142
+ },
143
+ },
144
+ }),
145
+ },
146
+ },
147
+ });
148
+ whichMock.mockResolvedValue(path.join(workspace, 'node_modules', '.bin', 'tsc'));
149
+ await buildTypescript();
150
+ expect(whichMock).not.toHaveBeenCalled();
151
+ expect(spawnMock).toHaveBeenCalledWith(localTsc, expect.any(Array), expect.any(Object));
152
+ });
153
+ test('uses tsc from PATH when package node_modules does not contain it', async () => {
154
+ const tsc = path.join(workspace, 'node_modules', '.bin', 'tsc');
155
+ mockFs({
156
+ [workspace]: {
157
+ 'yarn.lock': '',
158
+ node_modules: {
159
+ '.bin': {
160
+ tsc: '',
161
+ },
162
+ },
163
+ packages: {
164
+ library: library(),
165
+ },
166
+ },
167
+ });
168
+ whichMock.mockResolvedValue(tsc);
169
+ const report = await buildTypescript();
170
+ expect(report.warn).not.toHaveBeenCalledWith(expect.stringContaining('outside the workspace root'));
171
+ expect(spawnMock).toHaveBeenCalledWith(tsc, expect.any(Array), expect.any(Object));
172
+ });
173
+ test('warns when tsc from PATH is outside the workspace root', async () => {
174
+ const tsc = path.resolve('/home/user/node_modules/.bin/tsc');
175
+ mockFs({
176
+ [workspace]: {
177
+ 'yarn.lock': '',
178
+ packages: {
179
+ library: library(),
180
+ },
181
+ },
182
+ '/home/user/node_modules/.bin': {
183
+ tsc: '',
184
+ },
185
+ });
186
+ whichMock.mockResolvedValue(tsc);
187
+ const report = await buildTypescript();
188
+ expect(report.warn).toHaveBeenCalledWith(expect.stringContaining('outside the workspace root'));
189
+ expect(spawnMock).toHaveBeenCalledWith(tsc, expect.any(Array), expect.any(Object));
190
+ });
191
+ test.each([
192
+ 'bun.lock',
193
+ 'bun.lockb',
194
+ 'package-lock.json',
195
+ 'pnpm-lock.yaml',
196
+ 'yarn.lock',
197
+ ])('uses %s to bound ancestor node_modules lookup', async (lockfile) => {
198
+ const tsc = path.join(workspace, 'node_modules', '.bin', 'tsc');
199
+ mockFs({
200
+ [workspace]: {
201
+ [lockfile]: '',
202
+ node_modules: {
203
+ '.bin': {
204
+ tsc: '',
205
+ },
206
+ },
207
+ packages: {
208
+ library: library(),
209
+ },
210
+ },
211
+ });
212
+ await buildTypescript();
213
+ expect(spawnMock).toHaveBeenCalledWith(tsc, expect.any(Array), expect.any(Object));
214
+ });
215
+ test('does not traverse outside package root when no lockfile is found', async () => {
216
+ mockFs({
217
+ [workspace]: {
218
+ node_modules: {
219
+ '.bin': {
220
+ tsc: '',
221
+ },
222
+ },
223
+ packages: {
224
+ library: library(),
225
+ },
226
+ },
227
+ });
228
+ await expect(buildTypescript()).rejects.toThrow('Failed to build definition files.');
229
+ expect(spawnMock).not.toHaveBeenCalled();
230
+ });
231
+ test('fails when tsc cannot be found in PATH or workspace node_modules', async () => {
232
+ mockFs({
233
+ [workspace]: {
234
+ 'yarn.lock': '',
235
+ packages: {
236
+ library: library(),
237
+ },
238
+ },
239
+ });
240
+ await expect(buildTypescript()).rejects.toThrow('Failed to build definition files.');
241
+ expect(spawnMock).not.toHaveBeenCalled();
242
+ });
243
+ //# sourceMappingURL=typescript.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript.test.js","sourceRoot":"","sources":["../../../src/__tests__/typescript.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,84 @@
1
+ import path from 'node:path';
2
+ import { encode } from '@jridgewell/sourcemap-codec';
3
+ import mockFs from 'mock-fs';
4
+ import fs from 'fs-extra';
5
+ import ts from 'typescript';
6
+ import { afterEach, expect, test } from 'vitest';
7
+ import { updateSourceMap } from "../utils/updateSourceMap.js";
8
+ const mappings = (lines) => encode(lines.map((columns) => columns.map((column) => [column])));
9
+ const readMap = async (filepath) => {
10
+ const map = await fs.readJSON(filepath);
11
+ if (map == null ||
12
+ typeof map !== 'object' ||
13
+ !('mappings' in map) ||
14
+ typeof map.mappings !== 'string') {
15
+ throw new Error('Invalid source map.');
16
+ }
17
+ return map;
18
+ };
19
+ afterEach(() => {
20
+ mockFs.restore();
21
+ });
22
+ // Write a map with the given mappings, run updateSourceMap, then return the result.
23
+ const update = async (generated, replacements, code = 'x'.repeat(100)) => {
24
+ const root = path.resolve('/project');
25
+ const filepath = path.join(root, 'index.d.ts.map');
26
+ const sourceFile = ts.createSourceFile('index.d.ts', code, ts.ScriptTarget.Latest, true);
27
+ mockFs({
28
+ [root]: {},
29
+ });
30
+ await fs.writeJSON(filepath, {
31
+ version: 3,
32
+ file: 'index.d.ts',
33
+ sourceRoot: '',
34
+ sources: ['index.ts'],
35
+ names: ['Name'],
36
+ mappings: generated,
37
+ sourcesContent: ['source'],
38
+ });
39
+ await updateSourceMap({ filepath, replacements, sourceFile });
40
+ return await readMap(filepath);
41
+ };
42
+ test('updates mappings for multiple replacements on the same line', async () => {
43
+ const map = await update(mappings([[0, 17, 21, 40]]), [
44
+ { start: 10, end: 15, value: 'x'.repeat(8) },
45
+ { start: 30, end: 35, value: 'x'.repeat(8) },
46
+ ]);
47
+ expect(map.mappings).toBe(mappings([[0, 20, 24, 46]]));
48
+ });
49
+ test('shifts mappings at the end of the replacement range', async () => {
50
+ const map = await update(mappings([[0, 12, 15, 20]]), [
51
+ { start: 10, end: 15, value: 'x'.repeat(8) },
52
+ ]);
53
+ expect(map.mappings).toBe(mappings([[0, 12, 18, 23]]));
54
+ });
55
+ test('updates only the line containing the replacement', async () => {
56
+ const map = await update(mappings([
57
+ [0, 20],
58
+ [0, 20],
59
+ ]), [{ start: 41, end: 46, value: 'x'.repeat(8) }], `${'x'.repeat(30)}\n${'x'.repeat(30)}`);
60
+ expect(map.mappings).toBe(mappings([
61
+ [0, 20],
62
+ [0, 23],
63
+ ]));
64
+ });
65
+ test('throws for replacements that span multiple lines', async () => {
66
+ const generated = mappings([
67
+ [0, 5],
68
+ [0, 5],
69
+ ]);
70
+ await expect(update(generated, [{ start: 3, end: 8, value: 'x'.repeat(10) }], 'xxxxx\nxxxxx')).rejects.toThrow('Source map replacement spanning multiple lines is not supported.');
71
+ });
72
+ test('preserves source map metadata', async () => {
73
+ const map = await update(mappings([[0, 20]]), [
74
+ { start: 10, end: 15, value: 'x'.repeat(8) },
75
+ ]);
76
+ expect(map).toMatchObject({
77
+ file: 'index.d.ts',
78
+ names: ['Name'],
79
+ sourceRoot: '',
80
+ sources: ['index.ts'],
81
+ sourcesContent: ['source'],
82
+ });
83
+ });
84
+ //# sourceMappingURL=updateSourceMap.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateSourceMap.test.js","sourceRoot":"","sources":["../../../src/__tests__/updateSourceMap.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { ConfigAPI, PluginObj } from '@babel/core';
2
+ type Options = {
3
+ /**
4
+ * Extension to add to the imports
5
+ * For commonjs use 'cjs' and for esm use 'mjs'
6
+ * NodeJS requires explicit extension for esm
7
+ * The `cjs` extension avoids disambiguity when package.json has "type": "module"
8
+ */
9
+ extension?: 'js' | 'cjs' | 'mjs';
10
+ /**
11
+ * Out of tree platforms to support
12
+ * For `import './file'`, we skip adding extension if `file.${platform}.ts` exists
13
+ * This is necessary for the platform specific extensions to be resolve correctly
14
+ * Bundlers won't resolve the platform specific extension if explicit extension is present
15
+ */
16
+ platforms?: string[];
17
+ };
18
+ export default function (api: ConfigAPI, { extension, platforms }: Options): PluginObj;
19
+ export {};
@@ -0,0 +1,58 @@
1
+ import path from 'node:path';
2
+ import { isCodegenSpec } from "./utils/isCodegenSpec.js";
3
+ import { resolveModuleSpecifier, SOURCE_EXTENSIONS, } from "./utils/resolveModuleSpecifier.js";
4
+ const isTypeImport = (node) => ('importKind' in node && node.importKind === 'type') ||
5
+ ('exportKind' in node && node.exportKind === 'type');
6
+ const assertFilename = (filename) => {
7
+ if (filename == null) {
8
+ throw new Error("Couldn't find a filename for the current file.");
9
+ }
10
+ };
11
+ export default function (api, { extension, platforms }) {
12
+ api.assertVersion(7);
13
+ const codegenEnabled = api.caller((caller) => caller?.codegenEnabled);
14
+ const toExtensions = (sources) => extension == null
15
+ ? []
16
+ : sources.map((source) => ({ source, output: extension }));
17
+ const rewriteExtensions = toExtensions(extension ? [...SOURCE_EXTENSIONS, extension] : SOURCE_EXTENSIONS);
18
+ const explicitRewriteExtensions = toExtensions(['ts', 'tsx']);
19
+ function addExtension({ node, }, state) {
20
+ if (extension == null ||
21
+ // Skip type imports as they'll be removed
22
+ isTypeImport(node) ||
23
+ // Skip non-relative imports
24
+ !node.source?.value.startsWith('.')) {
25
+ return;
26
+ }
27
+ assertFilename(state.filename);
28
+ const filename = path.resolve(path.dirname(state.filename), node.source.value);
29
+ // Skip imports for codegen spec if codegen is enabled
30
+ if (codegenEnabled &&
31
+ (isCodegenSpec(filename) ||
32
+ SOURCE_EXTENSIONS.some((ext) => isCodegenSpec(`${filename}.${ext}`)))) {
33
+ return;
34
+ }
35
+ node.source.value = resolveModuleSpecifier({
36
+ filepath: state.filename,
37
+ specifier: node.source.value,
38
+ extensions: rewriteExtensions,
39
+ explicitExtensions: explicitRewriteExtensions,
40
+ platforms,
41
+ });
42
+ }
43
+ return {
44
+ name: 'react-native-builder-bob',
45
+ visitor: {
46
+ ImportDeclaration(path, state) {
47
+ addExtension(path, state);
48
+ },
49
+ ExportNamedDeclaration(path, state) {
50
+ addExtension(path, state);
51
+ },
52
+ ExportAllDeclaration(path, state) {
53
+ addExtension(path, state);
54
+ },
55
+ },
56
+ };
57
+ }
58
+ //# sourceMappingURL=babel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"babel.js","sourceRoot":"","sources":["../../src/babel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type Target } from './schema.ts';
2
+ export declare const args: {
3
+ target: {
4
+ type: "string";
5
+ description: string;
6
+ choices: ("module" | "commonjs" | "typescript" | "codegen")[];
7
+ };
8
+ };
9
+ type Argv = {
10
+ $0: string;
11
+ target?: Target;
12
+ };
13
+ export declare function build(argv: Argv): Promise<void>;
14
+ export {};
@@ -0,0 +1,122 @@
1
+ import { type } from 'arktype';
2
+ import fs from 'fs-extra';
3
+ import kleur from 'kleur';
4
+ import path from 'node:path';
5
+ import { config, } from "./schema.js";
6
+ import { loadConfig } from "./utils/loadConfig.js";
7
+ import * as logger from "./utils/logger.js";
8
+ import { run } from "./utils/workerize.js";
9
+ export const args = {
10
+ target: {
11
+ type: 'string',
12
+ description: 'The target to build',
13
+ choices: ['commonjs', 'module', 'typescript', 'codegen'],
14
+ },
15
+ };
16
+ export async function build(argv) {
17
+ const root = process.cwd();
18
+ const projectPackagePath = path.resolve(root, 'package.json');
19
+ if (!(await fs.pathExists(projectPackagePath))) {
20
+ throw new Error(`Couldn't find a 'package.json' file in '${root}'. Are you in a project folder?`);
21
+ }
22
+ const result = loadConfig(root);
23
+ if (!result?.config) {
24
+ throw new Error(`No configuration found. Run '${argv.$0} init' to create one automatically.`);
25
+ }
26
+ const parsed = config(result.config);
27
+ if (parsed instanceof type.errors) {
28
+ throw new Error(`Invalid configuration in ${result.filepath}: ${parsed.summary}`);
29
+ }
30
+ const { source, output, targets, exclude } = parsed;
31
+ const commonjs = targets.some((t) => Array.isArray(t) ? t[0] === 'commonjs' : t === 'commonjs');
32
+ const module = targets.some((t) => Array.isArray(t) ? t[0] === 'module' : t === 'module');
33
+ const variants = {
34
+ commonjs,
35
+ module,
36
+ };
37
+ if (argv.target != null) {
38
+ await buildTarget({
39
+ root,
40
+ target: argv.target,
41
+ source,
42
+ output,
43
+ exclude,
44
+ config: parsed,
45
+ variants,
46
+ });
47
+ }
48
+ else {
49
+ await Promise.all(targets.map(async (target) => buildTarget({
50
+ root,
51
+ target: Array.isArray(target) ? target[0] : target,
52
+ source,
53
+ output,
54
+ exclude,
55
+ config: parsed,
56
+ variants,
57
+ })));
58
+ }
59
+ }
60
+ async function buildTarget({ root, target, source, output, exclude, config, variants, }) {
61
+ const options = config.targets
62
+ .map((t) => (Array.isArray(t) ? t : [t, undefined]))
63
+ .find((t) => t[0] === target)?.[1];
64
+ const report = logger.grouped(target);
65
+ switch (target) {
66
+ case 'commonjs':
67
+ case 'module':
68
+ await run(target, {
69
+ root,
70
+ source: path.resolve(root, source),
71
+ output: path.resolve(root, output, target),
72
+ exclude,
73
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
74
+ options: options,
75
+ variants,
76
+ report,
77
+ });
78
+ break;
79
+ case 'typescript':
80
+ {
81
+ const esm = config.targets?.some((t) => {
82
+ if (Array.isArray(t)) {
83
+ const [name, options] = t;
84
+ if (name === 'module') {
85
+ return options && 'esm' in options && options?.esm;
86
+ }
87
+ }
88
+ return false;
89
+ }) ?? false;
90
+ await run('typescript', {
91
+ root,
92
+ source: path.resolve(root, source),
93
+ output: path.resolve(root, output, 'typescript'),
94
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
95
+ options: options,
96
+ esm,
97
+ variants,
98
+ report,
99
+ });
100
+ }
101
+ break;
102
+ case 'codegen':
103
+ await run('codegen', {
104
+ root,
105
+ source: path.resolve(root, source),
106
+ report,
107
+ });
108
+ break;
109
+ case 'custom':
110
+ await run('custom', {
111
+ root,
112
+ source: path.resolve(root, source),
113
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
114
+ options: options,
115
+ report,
116
+ });
117
+ break;
118
+ default:
119
+ throw new Error(`Invalid target ${kleur.blue(target)}.`);
120
+ }
121
+ }
122
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,MAAM,GAIP,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAoB;KAC5E;CACkC,CAAC;AAOtC,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,IAAU;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE3B,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAE9D,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,2CAA2C,IAAI,iCAAiC,CACjF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,gCAAgC,IAAI,CAAC,EAAE,qCAAqC,CAC7E,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAErC,IAAI,MAAM,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,4BAA4B,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,OAAO,EAAE,CACjE,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAEpD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAClC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAC1D,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAChC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CACtD,CAAC;IAEF,MAAM,QAAQ,GAAG;QACf,QAAQ;QACR,MAAM;KACP,CAAC;IAEF,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,WAAW,CAAC;YAChB,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM,EAAE,MAAM;YACd,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAC3B,WAAW,CAAC;YACV,IAAI;YACJ,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;YAClD,MAAM;YACN,MAAM;YACN,OAAO;YACP,MAAM,EAAE,MAAM;YACd,QAAQ;SACT,CAAC,CACH,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,EACzB,IAAI,EACJ,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,QAAQ,GAYT;IACC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,EAAE,SAAS,CAAW,CAAC,CAAC;SAC9D,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAErC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ;YACX,MAAM,GAAG,CAAC,MAAM,EAAE;gBAChB,IAAI;gBACJ,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;gBAClC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC1C,OAAO;gBACP,uEAAuE;gBACvE,OAAO,EAAE,OAA+C;gBACxD,QAAQ;gBACR,MAAM;aACP,CAAC,CAAC;YACH,MAAM;QACR,KAAK,YAAY;YACf,CAAC;gBACC,MAAM,GAAG,GACP,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;oBACzB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;wBAE1B,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;4BACtB,OAAO,OAAO,IAAI,KAAK,IAAI,OAAO,IAAI,OAAO,EAAE,GAAG,CAAC;wBACrD,CAAC;oBACH,CAAC;oBAED,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC,IAAI,KAAK,CAAC;gBAEd,MAAM,GAAG,CAAC,YAAY,EAAE;oBACtB,IAAI;oBACJ,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;oBAClC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC;oBAChD,uEAAuE;oBACvE,OAAO,EAAE,OAAsC;oBAC/C,GAAG;oBACH,QAAQ;oBACR,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;YACD,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,GAAG,CAAC,SAAS,EAAE;gBACnB,IAAI;gBACJ,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;gBAClC,MAAM;aACP,CAAC,CAAC;YACH,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,GAAG,CAAC,QAAQ,EAAE;gBAClB,IAAI;gBACJ,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;gBAClC,uEAAuE;gBACvE,OAAO,EAAE,OAAkC;gBAC3C,MAAM;aACP,CAAC,CAAC;YACH,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /* eslint-disable import-x/no-commonjs, no-undef */
3
+ const path = require('path');
4
+ const { loadConfig } = require('../utils/loadConfig.js');
5
+ /**
6
+ * Get Babel configuration for the example project.
7
+ * This sets up appropriate presets and plugins for the library.
8
+ * It also aliases the library to the source directory.
9
+ *
10
+ * @param {import('@babel/core').TransformOptions} defaultConfig Default Babel configuration
11
+ * @param {object} options Options to customize the configuration
12
+ * @param {string} options.root Root directory of the monorepo
13
+ * @param {object} options.pkg Content of package.json of the library
14
+ * @returns {import('@babel/core').TransformOptions} Babel configuration
15
+ */
16
+ const getConfig = (defaultConfig, { root }) => {
17
+ const result = loadConfig(root);
18
+ if (result == null) {
19
+ throw new Error(`Couldn't find a valid configuration at ${root}.`);
20
+ }
21
+ const { source } = result.config;
22
+ if (source == null) {
23
+ throw new Error("Couldn't determine the source directory. Does your config specify a 'source' field?");
24
+ }
25
+ return {
26
+ ...defaultConfig,
27
+ overrides: [
28
+ ...(defaultConfig.overrides == null ? [] : defaultConfig.overrides),
29
+ {
30
+ include: path.join(root, source),
31
+ presets: [
32
+ [
33
+ require.resolve('./babel-preset.cjs'),
34
+ {
35
+ // Let the app's preset handle the commonjs transform
36
+ // Otherwise this causes `export` statements in wrong places causing syntax error
37
+ supportsStaticESM: true,
38
+ },
39
+ ],
40
+ ],
41
+ },
42
+ ],
43
+ };
44
+ };
45
+ exports.getConfig = getConfig;
46
+ //# sourceMappingURL=babel-config.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"babel-config.cjs","sourceRoot":"","sources":["../../../src/configs/babel-config.cjs"],"names":[],"mappings":";AAAA,mDAAmD;AAEnD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,MAAM,SAAS,GAAG,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IAEjC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,aAAa;QAChB,SAAS,EAAE;YACT,GAAG,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC;YACnE;gBACE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;gBAChC,OAAO,EAAE;oBACP;wBACE,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC;wBACrC;4BACE,qDAAqD;4BACrD,iFAAiF;4BACjF,iBAAiB,EAAE,IAAI;yBACxB;qBACF;iBACF;aACF;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Get Babel configuration for the example project.
3
+ * This sets up appropriate presets and plugins for the library.
4
+ * It also aliases the library to the source directory.
5
+ *
6
+ * @param {import('@babel/core').TransformOptions} defaultConfig Default Babel configuration
7
+ * @param {object} options Options to customize the configuration
8
+ * @param {string} options.root Root directory of the monorepo
9
+ * @param {object} options.pkg Content of package.json of the library
10
+ * @returns {import('@babel/core').TransformOptions} Babel configuration
11
+ */
12
+ export function getConfig(defaultConfig: import("@babel/core").TransformOptions, { root }: {
13
+ root: string;
14
+ pkg: object;
15
+ }): import("@babel/core").TransformOptions;