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.
- package/bin/bob +1 -1
- package/lib/package.json +93 -0
- package/lib/src/__tests__/babel.test.d.ts +1 -0
- package/lib/src/__tests__/babel.test.js +26 -0
- package/lib/src/__tests__/babel.test.js.map +1 -0
- package/lib/src/__tests__/init.test.d.ts +1 -0
- package/lib/src/__tests__/init.test.js +93 -0
- package/lib/src/__tests__/init.test.js.map +1 -0
- package/lib/src/__tests__/resolveModuleSpecifier.test.d.ts +1 -0
- package/lib/src/__tests__/resolveModuleSpecifier.test.js +95 -0
- package/lib/src/__tests__/resolveModuleSpecifier.test.js.map +1 -0
- package/lib/src/__tests__/typescript-declarations.test.d.ts +1 -0
- package/lib/src/__tests__/typescript-declarations.test.js +193 -0
- package/lib/src/__tests__/typescript-declarations.test.js.map +1 -0
- package/lib/src/__tests__/typescript.test.d.ts +1 -0
- package/lib/src/__tests__/typescript.test.js +243 -0
- package/lib/src/__tests__/typescript.test.js.map +1 -0
- package/lib/src/__tests__/updateSourceMap.test.d.ts +1 -0
- package/lib/src/__tests__/updateSourceMap.test.js +84 -0
- package/lib/src/__tests__/updateSourceMap.test.js.map +1 -0
- package/lib/src/babel.d.ts +19 -0
- package/lib/src/babel.js +58 -0
- package/lib/src/babel.js.map +1 -0
- package/lib/src/build.d.ts +14 -0
- package/lib/src/build.js +122 -0
- package/lib/src/build.js.map +1 -0
- package/lib/src/configs/babel-config.cjs +46 -0
- package/lib/src/configs/babel-config.cjs.map +1 -0
- package/lib/src/configs/babel-config.d.cts +15 -0
- package/lib/src/configs/babel-preset.cjs +66 -0
- package/lib/src/configs/babel-preset.cjs.map +1 -0
- package/lib/src/configs/babel-preset.d.cts +19 -0
- package/lib/src/configs/metro-config.d.mts +4 -0
- package/{metro-config.js → lib/src/configs/metro-config.mjs} +3 -7
- package/lib/src/configs/metro-config.mjs.map +1 -0
- package/lib/src/configs/vite-config.d.mts +2 -0
- package/lib/src/configs/vite-config.mjs +59 -0
- package/lib/src/configs/vite-config.mjs.map +1 -0
- package/lib/src/index.d.ts +1 -0
- package/lib/src/index.js +18 -0
- package/lib/src/index.js.map +1 -0
- package/lib/src/init.d.ts +1 -0
- package/lib/src/init.js +370 -0
- package/lib/src/init.js.map +1 -0
- package/lib/src/schema.d.ts +70 -0
- package/lib/src/schema.js +45 -0
- package/lib/src/schema.js.map +1 -0
- package/lib/src/targets/codegen/index.d.ts +4 -0
- package/lib/src/targets/codegen/index.js +54 -0
- package/lib/src/targets/codegen/index.js.map +1 -0
- package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.d.ts +11 -0
- package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.js +63 -0
- package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.js.map +1 -0
- package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.test.d.ts +1 -0
- package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.test.js +103 -0
- package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.test.js.map +1 -0
- package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.d.ts +16 -0
- package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.js +59 -0
- package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.js.map +1 -0
- package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.test.d.ts +1 -0
- package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.test.js +75 -0
- package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.test.js.map +1 -0
- package/lib/src/targets/commonjs.d.ts +9 -0
- package/lib/src/targets/commonjs.js +19 -0
- package/lib/src/targets/commonjs.js.map +1 -0
- package/lib/src/targets/custom.d.ts +9 -0
- package/lib/src/targets/custom.js +30 -0
- package/lib/src/targets/custom.js.map +1 -0
- package/lib/src/targets/module.d.ts +9 -0
- package/lib/src/targets/module.js +19 -0
- package/lib/src/targets/module.js.map +1 -0
- package/lib/src/targets/typescript.d.ts +12 -0
- package/lib/src/targets/typescript.js +387 -0
- package/lib/src/targets/typescript.js.map +1 -0
- package/lib/src/types.d.ts +24 -0
- package/lib/src/types.js +2 -0
- package/lib/src/types.js.map +1 -0
- package/lib/src/utils/androidAssemble.d.ts +8 -0
- package/lib/src/utils/androidAssemble.js +17 -0
- package/lib/src/utils/androidAssemble.js.map +1 -0
- package/lib/src/utils/compile.d.ts +16 -0
- package/lib/src/utils/compile.js +211 -0
- package/lib/src/utils/compile.js.map +1 -0
- package/lib/src/utils/isCodegenSpec.d.ts +1 -0
- package/lib/src/utils/isCodegenSpec.js +14 -0
- package/lib/src/utils/isCodegenSpec.js.map +1 -0
- package/lib/src/utils/isGitDirty.d.ts +1 -0
- package/lib/src/utils/isGitDirty.js +14 -0
- package/lib/src/utils/isGitDirty.js.map +1 -0
- package/lib/src/utils/loadConfig.d.ts +4 -0
- package/lib/src/utils/loadConfig.js +59 -0
- package/lib/src/utils/loadConfig.js.map +1 -0
- package/lib/src/utils/logger.d.ts +10 -0
- package/lib/src/utils/logger.js +30 -0
- package/lib/src/utils/logger.js.map +1 -0
- package/lib/src/utils/prompts.d.ts +3 -0
- package/lib/src/utils/prompts.js +10 -0
- package/lib/src/utils/prompts.js.map +1 -0
- package/lib/src/utils/resolveModuleSpecifier.d.ts +21 -0
- package/lib/src/utils/resolveModuleSpecifier.js +57 -0
- package/lib/src/utils/resolveModuleSpecifier.js.map +1 -0
- package/lib/src/utils/spawn.d.ts +2 -0
- package/lib/src/utils/spawn.js +41 -0
- package/lib/src/utils/spawn.js.map +1 -0
- package/lib/src/utils/updateSourceMap.d.ts +11 -0
- package/lib/src/utils/updateSourceMap.js +56 -0
- package/lib/src/utils/updateSourceMap.js.map +1 -0
- package/lib/src/utils/workerize.d.ts +15 -0
- package/lib/src/utils/workerize.js +75 -0
- package/lib/src/utils/workerize.js.map +1 -0
- package/package.json +49 -42
- package/babel-config.js +0 -55
- package/babel-preset.js +0 -71
- package/lib/__fixtures__/project/MyNativeComponent.js +0 -8
- package/lib/__fixtures__/project/MyNativeComponent.js.map +0 -1
- package/lib/__fixtures__/project/NativeMyLib.js +0 -2
- package/lib/__fixtures__/project/NativeMyLib.js.map +0 -1
- package/lib/__fixtures__/project/code/$exports-input.js +0 -122
- package/lib/__fixtures__/project/code/$exports-input.js.map +0 -1
- package/lib/__fixtures__/project/code/$exports-output.js +0 -122
- package/lib/__fixtures__/project/code/$exports-output.js.map +0 -1
- package/lib/__fixtures__/project/code/$imports-input.js +0 -24
- package/lib/__fixtures__/project/code/$imports-input.js.map +0 -1
- package/lib/__fixtures__/project/code/$imports-output.js +0 -20
- package/lib/__fixtures__/project/code/$imports-output.js.map +0 -1
- package/lib/__fixtures__/project/code/MyNativeComponent.js +0 -8
- package/lib/__fixtures__/project/code/MyNativeComponent.js.map +0 -1
- package/lib/__fixtures__/project/code/NativeMyLib.js +0 -2
- package/lib/__fixtures__/project/code/NativeMyLib.js.map +0 -1
- package/lib/__fixtures__/project/code/a.js +0 -2
- package/lib/__fixtures__/project/code/a.js.map +0 -1
- package/lib/__fixtures__/project/code/b.js +0 -2
- package/lib/__fixtures__/project/code/b.js.map +0 -1
- package/lib/__fixtures__/project/code/e.story.js +0 -2
- package/lib/__fixtures__/project/code/e.story.js.map +0 -1
- package/lib/__fixtures__/project/f.js +0 -2
- package/lib/__fixtures__/project/f.js.map +0 -1
- package/lib/__fixtures__/project/index.js +0 -2
- package/lib/__fixtures__/project/index.js.map +0 -1
- package/lib/__tests__/babel.test.js +0 -28
- package/lib/__tests__/babel.test.js.map +0 -1
- package/lib/__tests__/init.test.js +0 -93
- package/lib/__tests__/init.test.js.map +0 -1
- package/lib/babel.js +0 -92
- package/lib/babel.js.map +0 -1
- package/lib/build.js +0 -142
- package/lib/build.js.map +0 -1
- package/lib/index.js +0 -16
- package/lib/index.js.map +0 -1
- package/lib/init.js +0 -371
- package/lib/init.js.map +0 -1
- package/lib/schema.js +0 -49
- package/lib/schema.js.map +0 -1
- package/lib/targets/codegen/index.js +0 -60
- package/lib/targets/codegen/index.js.map +0 -1
- package/lib/targets/codegen/patches/patchCodegenAndroidPackage.js +0 -74
- package/lib/targets/codegen/patches/patchCodegenAndroidPackage.js.map +0 -1
- package/lib/targets/codegen/patches/patchCodegenAndroidPackage.test.js +0 -106
- package/lib/targets/codegen/patches/patchCodegenAndroidPackage.test.js.map +0 -1
- package/lib/targets/codegen/patches/removeCodegenAppLevelCode.js +0 -57
- package/lib/targets/codegen/patches/removeCodegenAppLevelCode.js.map +0 -1
- package/lib/targets/codegen/patches/removeCodegenAppLevelCode.test.js +0 -78
- package/lib/targets/codegen/patches/removeCodegenAppLevelCode.test.js.map +0 -1
- package/lib/targets/commonjs.js +0 -34
- package/lib/targets/commonjs.js.map +0 -1
- package/lib/targets/custom.js +0 -40
- package/lib/targets/custom.js.map +0 -1
- package/lib/targets/module.js +0 -34
- package/lib/targets/module.js.map +0 -1
- package/lib/targets/typescript.js +0 -219
- package/lib/targets/typescript.js.map +0 -1
- package/lib/types.js +0 -6
- package/lib/types.js.map +0 -1
- package/lib/utils/androidAssemble.js +0 -29
- package/lib/utils/androidAssemble.js.map +0 -1
- package/lib/utils/compile.js +0 -218
- package/lib/utils/compile.js.map +0 -1
- package/lib/utils/isCodegenSpec.js +0 -22
- package/lib/utils/isCodegenSpec.js.map +0 -1
- package/lib/utils/loadConfig.js +0 -56
- package/lib/utils/loadConfig.js.map +0 -1
- package/lib/utils/logger.js +0 -35
- package/lib/utils/logger.js.map +0 -1
- package/lib/utils/prompts.js +0 -17
- package/lib/utils/prompts.js.map +0 -1
- package/lib/utils/spawn.js +0 -48
- package/lib/utils/spawn.js.map +0 -1
- package/lib/utils/workerize.js +0 -102
- package/lib/utils/workerize.js.map +0 -1
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import fs from 'fs-extra';
|
|
4
|
+
import kleur from 'kleur';
|
|
5
|
+
import * as babel from '@babel/core';
|
|
6
|
+
import { glob } from 'glob';
|
|
7
|
+
import { isCodegenSpec } from "./isCodegenSpec.js";
|
|
8
|
+
const require = createRequire(import.meta.url);
|
|
9
|
+
const sourceExt = /\.([cm])?[jt]sx?$/;
|
|
10
|
+
export default async function compile({ root, source, output, esm = false, babelrc = false, configFile = false, exclude, modules, copyFlow, sourceMaps = true, report, jsxRuntime = 'automatic', variants, }) {
|
|
11
|
+
const files = await glob('**/*', {
|
|
12
|
+
cwd: source,
|
|
13
|
+
absolute: true,
|
|
14
|
+
nodir: true,
|
|
15
|
+
ignore: exclude,
|
|
16
|
+
});
|
|
17
|
+
report.info(`Compiling ${kleur.blue(String(files.length))} files in ${kleur.blue(path.relative(root, source))} with ${kleur.blue('babel')}`);
|
|
18
|
+
const pkg = JSON.parse(await fs.readFile(path.join(root, 'package.json'), 'utf-8'));
|
|
19
|
+
if (copyFlow) {
|
|
20
|
+
if (!Object.keys(pkg.devDependencies || {}).includes('flow-bin')) {
|
|
21
|
+
report.warn(`The ${kleur.blue('copyFlow')} option was specified, but couldn't find ${kleur.blue('flow-bin')} in ${kleur.blue('package.json')}.\nIf the project is using ${kleur.blue('flow')}, then make sure you have added ${kleur.blue('flow-bin')} to your ${kleur.blue('devDependencies')}, otherwise remove the ${kleur.blue('copyFlow')} option.`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
await fs.mkdirp(output);
|
|
25
|
+
// Imports are not rewritten to include the extension if `esm` is not enabled
|
|
26
|
+
// Ideally we should always treat ESM syntax as CommonJS if `esm` is not enabled
|
|
27
|
+
// This would maintain compatibility for legacy setups where `import`/`export` didn't require file extensions
|
|
28
|
+
// However NextJS has non-standard behavior and breaks if we add `type: 'commonjs'` for code with import/export
|
|
29
|
+
// So we skip generating `package.json` if `esm` is not enabled and `modules` is not `commonjs`
|
|
30
|
+
// This means that user can't use `type: 'module'` in root `package.json` without enabling `esm` for `module` target
|
|
31
|
+
if (esm || modules === 'commonjs') {
|
|
32
|
+
await fs.writeJSON(path.join(output, 'package.json'), {
|
|
33
|
+
type: modules === 'commonjs' ? 'commonjs' : 'module',
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
await Promise.all(files.map(async (filepath) => {
|
|
37
|
+
const outputFilename = path
|
|
38
|
+
.join(output, path.relative(source, filepath))
|
|
39
|
+
.replace(sourceExt, '.$1js');
|
|
40
|
+
await fs.mkdirp(path.dirname(outputFilename));
|
|
41
|
+
if (!sourceExt.test(filepath)) {
|
|
42
|
+
// Copy files which aren't source code
|
|
43
|
+
await fs.copy(filepath, outputFilename);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const content = await fs.readFile(filepath, 'utf-8');
|
|
47
|
+
// If codegen is used in the app, then we need to preserve TypeScript source
|
|
48
|
+
// So we copy the file as is instead of transforming it
|
|
49
|
+
const codegenEnabled = 'codegenConfig' in pkg;
|
|
50
|
+
if (codegenEnabled && isCodegenSpec(filepath)) {
|
|
51
|
+
await fs.copy(filepath, path.join(output, path.relative(source, filepath)));
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const result = await babel.transformAsync(content, {
|
|
55
|
+
caller: {
|
|
56
|
+
name: 'react-native-builder-bob',
|
|
57
|
+
supportsStaticESM: /\.m[jt]s$/.test(filepath) || // If a file is explicitly marked as ESM, then preserve the syntax
|
|
58
|
+
modules === 'preserve'
|
|
59
|
+
? true
|
|
60
|
+
: false,
|
|
61
|
+
rewriteImportExtensions: esm,
|
|
62
|
+
jsxRuntime,
|
|
63
|
+
codegenEnabled,
|
|
64
|
+
},
|
|
65
|
+
cwd: root,
|
|
66
|
+
babelrc: babelrc,
|
|
67
|
+
configFile: configFile,
|
|
68
|
+
sourceMaps,
|
|
69
|
+
sourceRoot: path.relative(path.dirname(outputFilename), source),
|
|
70
|
+
sourceFileName: path.relative(source, filepath),
|
|
71
|
+
filename: filepath,
|
|
72
|
+
...(babelrc || configFile
|
|
73
|
+
? null
|
|
74
|
+
: {
|
|
75
|
+
presets: [require.resolve('../configs/babel-preset.cjs')],
|
|
76
|
+
}),
|
|
77
|
+
});
|
|
78
|
+
if (result == null) {
|
|
79
|
+
throw new Error('Output code was null');
|
|
80
|
+
}
|
|
81
|
+
let code = result.code || '';
|
|
82
|
+
if (sourceMaps && result.map) {
|
|
83
|
+
const mapFilename = outputFilename + '.map';
|
|
84
|
+
code += '\n//# sourceMappingURL=' + path.basename(mapFilename);
|
|
85
|
+
// Don't inline the source code, it can be retrieved from the source file
|
|
86
|
+
result.map.sourcesContent = undefined;
|
|
87
|
+
await fs.writeJSON(mapFilename, result.map);
|
|
88
|
+
}
|
|
89
|
+
await fs.writeFile(outputFilename, code);
|
|
90
|
+
if (copyFlow) {
|
|
91
|
+
await fs.copy(filepath, outputFilename + '.flow');
|
|
92
|
+
}
|
|
93
|
+
}));
|
|
94
|
+
report.success(`Wrote files to ${kleur.blue(path.relative(root, output))}`);
|
|
95
|
+
const getGeneratedEntryPath = async () => {
|
|
96
|
+
if (pkg.source) {
|
|
97
|
+
for (const ext of ['.js', '.cjs', '.mjs']) {
|
|
98
|
+
const indexName =
|
|
99
|
+
// The source field may not have an extension, so we add it instead of replacing directly
|
|
100
|
+
path.basename(pkg.source).replace(sourceExt, '') + ext;
|
|
101
|
+
const potentialPath = path.join(output, path.dirname(path.relative(source, path.join(root, pkg.source))), indexName);
|
|
102
|
+
if (await fs.pathExists(potentialPath)) {
|
|
103
|
+
return path.relative(root, potentialPath);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return null;
|
|
108
|
+
};
|
|
109
|
+
const fields = [];
|
|
110
|
+
if (variants.commonjs && variants.module) {
|
|
111
|
+
if (modules === 'commonjs') {
|
|
112
|
+
fields.push({ name: 'main', value: pkg.main });
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
fields.push({ name: 'module', value: pkg.module });
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
fields.push({ name: 'main', value: pkg.main });
|
|
120
|
+
}
|
|
121
|
+
if (esm) {
|
|
122
|
+
if (variants.commonjs && variants.module) {
|
|
123
|
+
if (modules === 'commonjs') {
|
|
124
|
+
fields.push(typeof pkg.exports?.['.']?.require === 'string'
|
|
125
|
+
? {
|
|
126
|
+
name: "exports['.'].require",
|
|
127
|
+
value: pkg.exports?.['.']?.require,
|
|
128
|
+
}
|
|
129
|
+
: {
|
|
130
|
+
name: "exports['.'].require.default",
|
|
131
|
+
value: pkg.exports?.['.']?.require?.default,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
fields.push(typeof pkg.exports?.['.']?.import === 'string'
|
|
136
|
+
? {
|
|
137
|
+
name: "exports['.'].import",
|
|
138
|
+
value: pkg.exports?.['.']?.import,
|
|
139
|
+
}
|
|
140
|
+
: {
|
|
141
|
+
name: "exports['.'].import.default",
|
|
142
|
+
value: pkg.exports?.['.']?.import?.default,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
fields.push({
|
|
148
|
+
name: "exports['.'].default",
|
|
149
|
+
value: pkg.exports?.['.']?.default,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
if (modules === 'commonjs' && pkg.exports?.['.']?.require) {
|
|
155
|
+
report.warn(`The ${kleur.blue('esm')} option is disabled, but the ${kleur.blue("exports['.'].require")} field is set in ${kleur.blue('package.json')}. This is likely a mistake.`);
|
|
156
|
+
}
|
|
157
|
+
else if (modules === 'preserve' && pkg.exports?.['.']?.import) {
|
|
158
|
+
report.warn(`The ${kleur.blue('esm')} option is disabled, but the ${kleur.blue("exports['.'].import")} field is set in ${kleur.blue('package.json')}. This is likely a mistake.`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
const generatedEntryPath = await getGeneratedEntryPath();
|
|
162
|
+
if (fields.some((field) => field.value)) {
|
|
163
|
+
for (const { name, value } of fields) {
|
|
164
|
+
if (!value) {
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
if (name.startsWith('exports') && value && !/^\.\//.test(value)) {
|
|
168
|
+
report.error(`The ${kleur.blue(name)} field in ${kleur.blue(`package.json`)} should be a relative path starting with ${kleur.blue('./')}. Found: ${kleur.blue(value)}`);
|
|
169
|
+
throw new Error(`Found incorrect path in '${name}' field.`);
|
|
170
|
+
}
|
|
171
|
+
try {
|
|
172
|
+
require.resolve(path.join(root, value));
|
|
173
|
+
}
|
|
174
|
+
catch (e) {
|
|
175
|
+
if (e != null &&
|
|
176
|
+
typeof e === 'object' &&
|
|
177
|
+
'code' in e &&
|
|
178
|
+
e.code === 'MODULE_NOT_FOUND') {
|
|
179
|
+
if (!generatedEntryPath) {
|
|
180
|
+
report.warn(`Failed to detect the entry point for the generated files. Make sure you have a valid ${kleur.blue('source')} field in your ${kleur.blue('package.json')}.`);
|
|
181
|
+
}
|
|
182
|
+
report.error(`The ${kleur.blue(name)} field in ${kleur.blue('package.json')} points to a non-existent file: ${kleur.blue(value)}.\nVerify the path points to the correct file under ${kleur.blue(path.relative(root, output))}${generatedEntryPath
|
|
183
|
+
? ` (found ${kleur.blue(generatedEntryPath)}).`
|
|
184
|
+
: '.'}`);
|
|
185
|
+
throw new Error(`Found incorrect path in '${name}' field.`, {
|
|
186
|
+
cause: e,
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
throw e;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
if (generatedEntryPath) {
|
|
193
|
+
if (modules === 'commonjs' &&
|
|
194
|
+
pkg.exports?.['.']?.import === `./${generatedEntryPath}`) {
|
|
195
|
+
report.warn(`The the ${kleur.blue("exports['.'].import")} field points to a CommonJS module. This is likely a mistake.`);
|
|
196
|
+
}
|
|
197
|
+
else if (modules === 'preserve' &&
|
|
198
|
+
pkg.exports?.['.']?.require === `./${generatedEntryPath}`) {
|
|
199
|
+
report.warn(`The the ${kleur.blue("exports['.'].import")} field points to a ES module. This is likely a mistake.`);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
report.warn(`No ${fields
|
|
205
|
+
.map((field) => kleur.blue(field.name))
|
|
206
|
+
.join(' or ')} field found in ${kleur.blue('package.json')}. Consider ${generatedEntryPath
|
|
207
|
+
? `pointing to ${kleur.blue(generatedEntryPath)}`
|
|
208
|
+
: `adding ${fields.length > 1 ? 'them' : 'it'}`} so that consumers of your package can import your package.`);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=compile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../src/utils/compile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isCodegenSpec(filepath: string): boolean;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
export function isCodegenSpec(filepath) {
|
|
3
|
+
const looksLikeCodgenSpec = /(?:^|[\\/])(?:(\w+)NativeComponent)\.[jt]sx?$/i.test(filepath);
|
|
4
|
+
if (looksLikeCodgenSpec) {
|
|
5
|
+
// This is used in the babel plugin so needs to be synchronous
|
|
6
|
+
const content = fs.readFileSync(filepath, 'utf8');
|
|
7
|
+
// Regex taken from https://github.com/facebook/react-native/blob/271232d85654cee32322b1c8a3a39ef647ad02e2/packages/react-native-babel-preset/src/configs/main.js#L78C24-L78C47
|
|
8
|
+
if (/\bcodegenNativeComponent</.test(content)) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=isCodegenSpec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isCodegenSpec.js","sourceRoot":"","sources":["../../../src/utils/isCodegenSpec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAE1B,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,MAAM,mBAAmB,GACvB,gDAAgD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElE,IAAI,mBAAmB,EAAE,CAAC;QACxB,8DAA8D;QAC9D,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAElD,+KAA+K;QAC/K,IAAI,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isGitDirty: (cwd?: string) => boolean;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { sync as crossSpawnSync } from 'cross-spawn';
|
|
2
|
+
export const isGitDirty = (cwd = process.cwd()) => {
|
|
3
|
+
const result = crossSpawnSync('git', ['status', '--short'], {
|
|
4
|
+
cwd,
|
|
5
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
6
|
+
encoding: 'utf-8',
|
|
7
|
+
});
|
|
8
|
+
if (result.error || result.status !== 0) {
|
|
9
|
+
// Not a git repo or git not available
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
return result.stdout.length > 0;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=isGitDirty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isGitDirty.js","sourceRoot":"","sources":["../../../src/utils/isGitDirty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE,EAAW,EAAE;IACjE,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;QAC1D,GAAG;QACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;QACnC,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,sCAAsC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAClC,CAAC,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import pack from '../../package.json' with { type: 'json' };
|
|
4
|
+
const require = createRequire(import.meta.url);
|
|
5
|
+
const searchPlaces = [
|
|
6
|
+
'bob.config.mjs',
|
|
7
|
+
'bob.config.cjs',
|
|
8
|
+
'bob.config.js',
|
|
9
|
+
'package.json',
|
|
10
|
+
];
|
|
11
|
+
export const loadConfig = (root) => {
|
|
12
|
+
for (const filename of searchPlaces) {
|
|
13
|
+
const result = requireConfig(root, filename);
|
|
14
|
+
if (filename === 'package.json' && result != null) {
|
|
15
|
+
if (result.content[pack.name] != null) {
|
|
16
|
+
return {
|
|
17
|
+
filepath: result.filepath,
|
|
18
|
+
config: result.content[pack.name],
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (result != null) {
|
|
23
|
+
const content = result.content;
|
|
24
|
+
if (content?.__esModule) {
|
|
25
|
+
return {
|
|
26
|
+
filepath: result.filepath,
|
|
27
|
+
config: content.default,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
filepath: result.filepath,
|
|
32
|
+
config: content,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return undefined;
|
|
37
|
+
};
|
|
38
|
+
const requireConfig = (root, filename) => {
|
|
39
|
+
const filepath = join(root, filename);
|
|
40
|
+
try {
|
|
41
|
+
const content = require(filepath);
|
|
42
|
+
return {
|
|
43
|
+
filepath,
|
|
44
|
+
content,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
if (typeof e === 'object' &&
|
|
49
|
+
e != null &&
|
|
50
|
+
'code' in e &&
|
|
51
|
+
e.code === 'MODULE_NOT_FOUND') {
|
|
52
|
+
// We expect that some of the config files won't exist
|
|
53
|
+
// So we just return undefined in that case
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
throw e;
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=loadConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadConfig.js","sourceRoot":"","sources":["../../../src/utils/loadConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,IAAI,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE5D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,YAAY,GAAG;IACnB,gBAAgB;IAChB,gBAAgB;IAChB,eAAe;IACf,cAAc;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,IAAY,EACuC,EAAE;IACrD,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE7C,IAAI,QAAQ,KAAK,cAAc,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YAClD,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;gBACtC,OAAO;oBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;iBAClC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAE/B,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;gBACxB,OAAO;oBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,MAAM,EAAE,OAAO,CAAC,OAAO;iBACxB,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,OAAO;aAChB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAE,EAAE;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAElC,OAAO;YACL,QAAQ;YACR,OAAO;SACR,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IACE,OAAO,CAAC,KAAK,QAAQ;YACrB,CAAC,IAAI,IAAI;YACT,MAAM,IAAI,CAAC;YACX,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAC7B,CAAC;YACD,sDAAsD;YACtD,2CAA2C;YAC3C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const info: (...messages: unknown[]) => void;
|
|
2
|
+
export declare const warn: (...messages: unknown[]) => void;
|
|
3
|
+
export declare const error: (...messages: unknown[]) => void;
|
|
4
|
+
export declare const success: (...messages: unknown[]) => void;
|
|
5
|
+
export declare const grouped: (label: string) => {
|
|
6
|
+
info: (...messages: unknown[]) => void;
|
|
7
|
+
warn: (...messages: unknown[]) => void;
|
|
8
|
+
error: (...messages: unknown[]) => void;
|
|
9
|
+
success: (...messages: unknown[]) => void;
|
|
10
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import kleur from 'kleur';
|
|
2
|
+
const logger = (type, color, group, stream = process.stdout) => (...messages) => {
|
|
3
|
+
if (group) {
|
|
4
|
+
messages.unshift(`${kleur.gray('[')}${kleur.blue(group)}${kleur.gray(']')}`);
|
|
5
|
+
}
|
|
6
|
+
const message = `${color(kleur.bold(type))} ${messages
|
|
7
|
+
.map((message) => {
|
|
8
|
+
if (typeof message === 'string') {
|
|
9
|
+
return message.split('\n').join(`\n `);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
return message;
|
|
13
|
+
}
|
|
14
|
+
})
|
|
15
|
+
.join(' ')}`;
|
|
16
|
+
stream.write(message + '\n');
|
|
17
|
+
};
|
|
18
|
+
export const info = logger('ℹ', kleur.blue);
|
|
19
|
+
export const warn = logger('⚠', kleur.yellow);
|
|
20
|
+
export const error = logger('✖', kleur.red, undefined, process.stderr);
|
|
21
|
+
export const success = logger('✔', kleur.green);
|
|
22
|
+
export const grouped = (label) => {
|
|
23
|
+
return {
|
|
24
|
+
info: logger('ℹ', kleur.blue, label),
|
|
25
|
+
warn: logger('⚠', kleur.yellow, label),
|
|
26
|
+
error: logger('✖', kleur.red, label, process.stderr),
|
|
27
|
+
success: logger('✔', kleur.green, label),
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,GACV,CACE,IAAY,EACZ,KAAkB,EAClB,KAAc,EACd,SAA6B,OAAO,CAAC,MAAM,EAC3C,EAAE,CACJ,CAAC,GAAG,QAAmB,EAAE,EAAE;IACzB,IAAI,KAAK,EAAE,CAAC;QACV,QAAQ,CAAC,OAAO,CACd,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAC3D,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,QAAQ;SACnD,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACf,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAEf,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5C,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE;IACvC,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;QACpC,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;QACtC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;QACpD,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;KACzC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import promptsModule from 'prompts';
|
|
2
|
+
export default function prompts(args: promptsModule.PromptObject | promptsModule.PromptObject[], options?: promptsModule.Options): Promise<promptsModule.Answers<string>>;
|
|
3
|
+
export type PromptObject<T extends string = string> = promptsModule.PromptObject<T>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/utils/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,SAAS,CAAC;AAEpC,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,OAAO,CACnC,IAA+D,EAC/D,OAA+B;IAE/B,OAAO,aAAa,CAAC,IAAI,EAAE;QACzB,QAAQ;YACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare const SOURCE_EXTENSIONS: string[];
|
|
2
|
+
type Extension = {
|
|
3
|
+
source: string;
|
|
4
|
+
output: string;
|
|
5
|
+
};
|
|
6
|
+
type ExplicitExtension = {
|
|
7
|
+
source: string;
|
|
8
|
+
} & ({
|
|
9
|
+
output: string;
|
|
10
|
+
} | {
|
|
11
|
+
emitted: Extension[];
|
|
12
|
+
});
|
|
13
|
+
type Options = {
|
|
14
|
+
filepath: string;
|
|
15
|
+
specifier: string;
|
|
16
|
+
extensions: Extension[];
|
|
17
|
+
explicitExtensions?: ExplicitExtension[];
|
|
18
|
+
platforms?: string[];
|
|
19
|
+
};
|
|
20
|
+
export declare const resolveModuleSpecifier: ({ filepath, specifier, extensions, explicitExtensions, platforms, }: Options) => string;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
const SUPPORTED_PLATFORMS = [
|
|
4
|
+
'native',
|
|
5
|
+
'android',
|
|
6
|
+
'ios',
|
|
7
|
+
'windows',
|
|
8
|
+
'macos',
|
|
9
|
+
'visionos',
|
|
10
|
+
'web',
|
|
11
|
+
'tv',
|
|
12
|
+
'android.tv',
|
|
13
|
+
'ios.tv',
|
|
14
|
+
];
|
|
15
|
+
export const SOURCE_EXTENSIONS = ['ts', 'tsx', 'js', 'jsx'];
|
|
16
|
+
const isFile = (filename) => fs.lstatSync(filename, { throwIfNoEntry: false })?.isFile() ?? false;
|
|
17
|
+
const isDirectory = (filename) => fs.lstatSync(filename, { throwIfNoEntry: false })?.isDirectory() ?? false;
|
|
18
|
+
const getModuleExtension = (filename, extensions, platforms) => {
|
|
19
|
+
return extensions.find(({ source }) => isFile(`${filename}.${source}`) &&
|
|
20
|
+
// Keep platform-specific imports extensionless so bundlers can still pick the right file.
|
|
21
|
+
platforms.every((platform) => !isFile(`${filename}.${platform}.${source}`)))?.output;
|
|
22
|
+
};
|
|
23
|
+
export const resolveModuleSpecifier = ({ filepath, specifier, extensions, explicitExtensions = [], platforms = SUPPORTED_PLATFORMS, }) => {
|
|
24
|
+
if (!specifier.startsWith('.')) {
|
|
25
|
+
return specifier;
|
|
26
|
+
}
|
|
27
|
+
const filename = path.resolve(path.dirname(filepath), specifier);
|
|
28
|
+
const explicitExtension = explicitExtensions.find(({ source }) => filename.endsWith(`.${source}`));
|
|
29
|
+
if (explicitExtension) {
|
|
30
|
+
let output;
|
|
31
|
+
if ('emitted' in explicitExtension) {
|
|
32
|
+
// An explicit extension already opts out of bundler platform resolution,
|
|
33
|
+
// so rewrite to the emitted file regardless of platform-specific variants
|
|
34
|
+
output = getModuleExtension(filename.slice(0, -(explicitExtension.source.length + 1)), explicitExtension.emitted, []);
|
|
35
|
+
}
|
|
36
|
+
else if (isFile(filename)) {
|
|
37
|
+
output = explicitExtension.output;
|
|
38
|
+
}
|
|
39
|
+
if (output) {
|
|
40
|
+
return specifier.slice(0, -explicitExtension.source.length) + output;
|
|
41
|
+
}
|
|
42
|
+
return specifier;
|
|
43
|
+
}
|
|
44
|
+
const extension = getModuleExtension(filename, extensions, platforms);
|
|
45
|
+
if (extension) {
|
|
46
|
+
return `${specifier}.${extension}`;
|
|
47
|
+
}
|
|
48
|
+
if (isDirectory(filename)) {
|
|
49
|
+
const indexExtension = getModuleExtension(path.join(filename, 'index'), extensions, platforms);
|
|
50
|
+
if (indexExtension) {
|
|
51
|
+
// Directory imports need to point to the emitted index file in JS and declarations
|
|
52
|
+
return specifier.replace(/\/?$/, `/index.${indexExtension}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return specifier;
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=resolveModuleSpecifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveModuleSpecifier.js","sourceRoot":"","sources":["../../../src/utils/resolveModuleSpecifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import crossSpawn from 'cross-spawn';
|
|
2
|
+
export const spawn = async (...args) => {
|
|
3
|
+
return new Promise((resolve, reject) => {
|
|
4
|
+
const child = crossSpawn(...args);
|
|
5
|
+
let stdout = '';
|
|
6
|
+
let stderr = '';
|
|
7
|
+
child.stdout?.setEncoding('utf8');
|
|
8
|
+
child.stdout?.on('data', (data) => {
|
|
9
|
+
stdout += data;
|
|
10
|
+
});
|
|
11
|
+
child.stderr?.setEncoding('utf8');
|
|
12
|
+
child.stderr?.on('data', (data) => {
|
|
13
|
+
stderr += data;
|
|
14
|
+
});
|
|
15
|
+
child.once('error', reject);
|
|
16
|
+
child.once('close', (code) => {
|
|
17
|
+
if (code === 0) {
|
|
18
|
+
resolve(stdout.trim());
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
const error = new Error(stderr.trim() || `Command exited with code ${String(code)}`);
|
|
22
|
+
Object.defineProperties(error, {
|
|
23
|
+
stdout: {
|
|
24
|
+
enumerable: false,
|
|
25
|
+
value: stdout,
|
|
26
|
+
},
|
|
27
|
+
stderr: {
|
|
28
|
+
enumerable: false,
|
|
29
|
+
value: stderr,
|
|
30
|
+
},
|
|
31
|
+
code: {
|
|
32
|
+
enumerable: false,
|
|
33
|
+
value: code,
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
reject(error);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=spawn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../../src/utils/spawn.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,GAAG,IAAmC,EAAE,EAAE;IACpE,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;QAElC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACxC,MAAM,IAAI,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YACxC,MAAM,IAAI,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAC3B,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,MAAM,CAAC,IAAI,EAAE,IAAI,4BAA4B,MAAM,CAAC,IAAI,CAAC,EAAE,CAC5D,CAAC;gBAEF,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE;oBAC7B,MAAM,EAAE;wBACN,UAAU,EAAE,KAAK;wBACjB,KAAK,EAAE,MAAM;qBACd;oBACD,MAAM,EAAE;wBACN,UAAU,EAAE,KAAK;wBACjB,KAAK,EAAE,MAAM;qBACd;oBACD,IAAI,EAAE;wBACJ,UAAU,EAAE,KAAK;wBACjB,KAAK,EAAE,IAAI;qBACZ;iBACF,CAAC,CAAC;gBAEH,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type ts from 'typescript';
|
|
2
|
+
export type Replacement = {
|
|
3
|
+
start: number;
|
|
4
|
+
end: number;
|
|
5
|
+
value: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const updateSourceMap: ({ filepath, replacements, sourceFile, }: {
|
|
8
|
+
filepath: string;
|
|
9
|
+
replacements: Replacement[];
|
|
10
|
+
sourceFile: ts.SourceFile;
|
|
11
|
+
}) => Promise<void>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { decode, encode } from '@jridgewell/sourcemap-codec';
|
|
2
|
+
import { type } from 'arktype';
|
|
3
|
+
import fs from 'fs-extra';
|
|
4
|
+
const sourceMap = type({
|
|
5
|
+
version: 'number',
|
|
6
|
+
file: 'string?',
|
|
7
|
+
sourceRoot: 'string?',
|
|
8
|
+
sources: 'string[]',
|
|
9
|
+
names: 'string[]?',
|
|
10
|
+
mappings: 'string',
|
|
11
|
+
sourcesContent: 'string[]?',
|
|
12
|
+
}).onDeepUndeclaredKey('ignore');
|
|
13
|
+
export const updateSourceMap = async ({ filepath, replacements, sourceFile, }) => {
|
|
14
|
+
const map = sourceMap.assert(await fs.readJSON(filepath));
|
|
15
|
+
const lines = decode(map.mappings);
|
|
16
|
+
let changed = false;
|
|
17
|
+
// Sort replacements in reverse order
|
|
18
|
+
// We apply replacements from the end, so earlier offsets stay valid
|
|
19
|
+
// So we won't have to keep track of changes as we go
|
|
20
|
+
const sortedReplacements = [...replacements].sort((a, b) => b.start - a.start);
|
|
21
|
+
for (const replacement of sortedReplacements) {
|
|
22
|
+
// Get line and column of the replacements from the absolute character offsets
|
|
23
|
+
const start = sourceFile.getLineAndCharacterOfPosition(replacement.start);
|
|
24
|
+
const end = sourceFile.getLineAndCharacterOfPosition(replacement.end);
|
|
25
|
+
// We add file extensions which only affect single lines
|
|
26
|
+
// So we don't handle multi-line replacements to avoid complexity
|
|
27
|
+
if (start.line !== end.line) {
|
|
28
|
+
throw new Error('Source map replacement spanning multiple lines is not supported.');
|
|
29
|
+
}
|
|
30
|
+
// Get the amount of characters added or removed by the replacement
|
|
31
|
+
// e.g. `./foo` -> `./foo.js` adds 3 characters, so delta is 3
|
|
32
|
+
const delta = replacement.value.length - (replacement.end - replacement.start);
|
|
33
|
+
if (delta === 0) {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
const segments = lines[start.line];
|
|
37
|
+
if (segments) {
|
|
38
|
+
for (const segment of segments) {
|
|
39
|
+
// If a mapping points to text at or after the end of the replaced import string,
|
|
40
|
+
// move that mapping by the same number of characters the replacement added or removed
|
|
41
|
+
if (segment[0] >= end.character) {
|
|
42
|
+
segment[0] += delta;
|
|
43
|
+
changed = true;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (!changed) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
await fs.writeJSON(filepath, {
|
|
52
|
+
...map,
|
|
53
|
+
mappings: encode(lines),
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=updateSourceMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateSourceMap.js","sourceRoot":"","sources":["../../../src/utils/updateSourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,MAAM,UAAU,CAAC;AAS1B,MAAM,SAAS,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,SAAS;IACf,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,UAAU;IACnB,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,QAAQ;IAClB,cAAc,EAAE,WAAW;CAC5B,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AAEjC,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,EACpC,QAAQ,EACR,YAAY,EACZ,UAAU,GAKX,EAAE,EAAE;IACH,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEnC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,qCAAqC;IACrC,oEAAoE;IACpE,qDAAqD;IACrD,MAAM,kBAAkB,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAC/C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAC5B,CAAC;IAEF,KAAK,MAAM,WAAW,IAAI,kBAAkB,EAAE,CAAC;QAC7C,8EAA8E;QAC9E,MAAM,KAAK,GAAG,UAAU,CAAC,6BAA6B,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1E,MAAM,GAAG,GAAG,UAAU,CAAC,6BAA6B,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAEtE,wDAAwD;QACxD,iEAAiE;QACjE,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;QACJ,CAAC;QAED,mEAAmE;QACnE,8DAA8D;QAC9D,MAAM,KAAK,GACT,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAEnE,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,iFAAiF;gBACjF,sFAAsF;gBACtF,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;oBAChC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;oBACpB,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE;QAC3B,GAAG,GAAG;QACN,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC;KACxB,CAAC,CAAC;AACL,CAAC,CAAC"}
|