@vxrn/vite-plugin-metro 1.25.16 → 1.26.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/dist/cjs/metro-config/getMetroConfigFromViteConfig.cjs +20 -0
- package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js +20 -0
- package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
- package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.cjs +2 -1
- package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js +2 -1
- package/dist/cjs/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js.map +1 -1
- package/dist/cjs/plugins/metroPlugin.native.js.map +1 -1
- package/dist/cjs/transformer/metroNativeWorker.cjs +1590 -0
- package/dist/cjs/transformer/metroNativeWorker.native.js +2674 -0
- package/dist/cjs/transformer/metroNativeWorker.native.js.map +1 -0
- package/dist/cjs/transformer/metroNativeWorker.test.cjs +886 -0
- package/dist/cjs/transformer/metroNativeWorker.test.native.js +995 -0
- package/dist/cjs/transformer/metroNativeWorker.test.native.js.map +1 -0
- package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs +20 -0
- package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs.map +1 -1
- package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js +20 -0
- package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
- package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.mjs +2 -1
- package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.mjs.map +1 -1
- package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js +2 -1
- package/dist/esm/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.native.js.map +1 -1
- package/dist/esm/plugins/metroPlugin.mjs.map +1 -1
- package/dist/esm/plugins/metroPlugin.native.js.map +1 -1
- package/dist/esm/transformer/metroNativeWorker.mjs +1531 -0
- package/dist/esm/transformer/metroNativeWorker.mjs.map +1 -0
- package/dist/esm/transformer/metroNativeWorker.native.js +2612 -0
- package/dist/esm/transformer/metroNativeWorker.native.js.map +1 -0
- package/dist/esm/transformer/metroNativeWorker.test.mjs +850 -0
- package/dist/esm/transformer/metroNativeWorker.test.mjs.map +1 -0
- package/dist/esm/transformer/metroNativeWorker.test.native.js +957 -0
- package/dist/esm/transformer/metroNativeWorker.test.native.js.map +1 -0
- package/package.json +22 -3
- package/src/metro-config/getMetroConfigFromViteConfig.ts +42 -0
- package/src/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.ts +1 -0
- package/src/plugins/metroPlugin.ts +22 -0
- package/src/transformer/__fixtures__/exampleNativeTransform.cjs +17 -0
- package/src/transformer/metroNativeWorker.test.ts +1200 -0
- package/src/transformer/metroNativeWorker.ts +2379 -0
- package/src/transformer/types.ts +21 -0
- package/types/metro-config/getMetroConfigFromViteConfig.d.ts.map +1 -1
- package/types/metro-config/patchMetroServerWithViteConfigAndMetroPluginOptions.d.ts.map +1 -1
- package/types/plugins/metroPlugin.d.ts +22 -0
- package/types/plugins/metroPlugin.d.ts.map +1 -1
- package/types/transformer/metroNativeWorker.d.ts +251 -0
- package/types/transformer/metroNativeWorker.d.ts.map +1 -0
- package/types/transformer/metroNativeWorker.test.d.ts +2 -0
- package/types/transformer/metroNativeWorker.test.d.ts.map +1 -0
- package/types/transformer/types.d.ts +17 -0
- package/types/transformer/types.d.ts.map +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["beforeEach","describe","expect","it","vi","vm","parseSync","fs","path","createRequire","applyEnvironmentGuard","applyInlineEnvVars","assertNoUnportedBabelPlugins","extractDependencies","getCacheKey","getRemoveServerCodeRouterRoot","transform","wrapModule","buildMetroConfigInputFromViteConfig","__require","x","require","Proxy","get","a","b","apply","arguments","Error","_instanceof","left","right","Symbol","hasInstance","_type_of","obj","constructor","babelCalls","transformSync","transformAsync","transformFromAstSync","parse","mock","importOriginal","actual","fn","_len","length","args","Array","_key","assertZeroBabelCalls","toBe","each","filename","sourceMap","result","minifierPath","import","meta","url","resolve","minifierConfig","Buffer","from","endsWith","dev","minify","platform","type","module","exports","code","map","output","data","runInNewContext","__d","factory","answer","every","entry","source","mangle","msm","fullMap","fromRawMappings","toMap","offset","indexOf","toBeGreaterThan","prefix","slice","split","position","Consumer","originalPositionFor","line","column","at","deps","names","d","name","toContain","not","reactDep","find","isESMImportAtSource","asyncType","toBeNull","locs","loc","start","toBeGreaterThanOrEqual","end","helperDep","isOptional","toBeUndefined","on","allowOptionalDependencies","exclude","wrappedWithoutId","moduleId","dependencyIds","toHaveLength","lineCount","depNames","dependencies","sources","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","entries","iterator","_step","next","done","sourceCode","value","toMatch","err","return","jsonSource","JSON","stringify","version","toEqual","assetRegistryPath","publicPath","key1","globalPrefix","projectRoot","key2","key3","mockViteConfig","root","process","cwd","env","ONE_METRO_NATIVE_TRANSFORMS","configDefault","defaultConfig","transformerPath","transformer","nativeTransforms","depSource","aSource","depRes","aRes","aEmittedCode","polyfillPath","polyfillCode","readFileSync","contextObj","__DEV__","__METRO_GLOBAL_PREFIX__","console","global","createContext","runInContext","doubled","message","res","emitted","syncDep","asyncDep","toBeDefined","index","syncIndex","isArray","tuple","toHaveProperty","consumer","addLineIndex","findIndex","l","includes","mainSource","mainRes","emittedMain","asyncRequirePath","wrappedAsyncRequire","_i","_iter","mainFn","promise","Promise","then","resolved","default","resWrapped","fullMapWrapped","consumerWrapped","linesWrapped","lineIndexWrapped","generatedColWrapped","posWrapped","Number","resUnwrapped","unstable_disableModuleWrapping","fullMapUnwrapped","consumerUnwrapped","linesUnwrapped","lineIndexUnwrapped","generatedColUnwrapped","posUnwrapped","contextDep","contextParams","calls","ctx","req","push","keys","context","asHermesWouldSeeIt","replace","collect","ONE_SERVER_URL","src","out","DEV","VITE_POSTHOG_API_KEY","TAMAGUI_TARGET","VITE_ENVIRONMENT","SSR","API","dynamic","dirname","customTransformOptions","vite","nativeTransformModules","join","withPlugins","plugins","babelConfig","toThrow","routerRoot","alias","parsed","lang","errors","program","body","n"],"sources":["metroNativeWorker.test.native.js"],"sourcesContent":["import { beforeEach, describe, expect, it, vi } from \"vitest\";\nimport * as vm from \"vm\";\nimport { parseSync } from \"oxc-parser\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { createRequire } from \"module\";\nimport { applyEnvironmentGuard, applyInlineEnvVars, assertNoUnportedBabelPlugins, extractDependencies, getCacheKey, getRemoveServerCodeRouterRoot, transform, wrapModule } from \"./metroNativeWorker\";\nimport { buildMetroConfigInputFromViteConfig } from \"../metro-config/getMetroConfigFromViteConfig\";\n\nvar __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, { get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b] }) : x)(function(x) {\n\tif (typeof require !== \"undefined\") return require.apply(this, arguments);\n\tthrow Error(\"Calling `require` for \\\"\" + x + \"\\\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.\");\n});\n\nfunction _instanceof(left, right) {\n\tif (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) return !!right[Symbol.hasInstance](left);\n\telse return left instanceof right;\n}\nfunction _type_of(obj) {\n\t\"@swc/helpers - typeof\";\n\treturn obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nvar babelCalls = {\n\ttransform: 0,\n\ttransformSync: 0,\n\ttransformAsync: 0,\n\ttransformFromAstSync: 0,\n\tparse: 0,\n\tparseSync: 0\n};\nvi.mock(\"@babel/core\", async function(importOriginal) {\n\tvar actual = await importOriginal();\n\treturn {\n\t\t...actual,\n\t\ttransform: vi.fn(function() {\n\t\t\tfor (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n\t\t\tbabelCalls.transform++;\n\t\t\treturn actual.transform(...args);\n\t\t}),\n\t\ttransformSync: vi.fn(function() {\n\t\t\tfor (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n\t\t\tbabelCalls.transformSync++;\n\t\t\treturn actual.transformSync(...args);\n\t\t}),\n\t\ttransformAsync: vi.fn(function() {\n\t\t\tfor (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n\t\t\tbabelCalls.transformAsync++;\n\t\t\treturn actual.transformAsync(...args);\n\t\t}),\n\t\ttransformFromAstSync: vi.fn(function() {\n\t\t\tfor (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n\t\t\tbabelCalls.transformFromAstSync++;\n\t\t\treturn actual.transformFromAstSync(...args);\n\t\t}),\n\t\tparse: vi.fn(function() {\n\t\t\tfor (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n\t\t\tbabelCalls.parse++;\n\t\t\treturn actual.parse(...args);\n\t\t}),\n\t\tparseSync: vi.fn(function() {\n\t\t\tfor (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n\t\t\tbabelCalls.parseSync++;\n\t\t\treturn actual.parseSync(...args);\n\t\t})\n\t};\n});\nbeforeEach(function() {\n\tbabelCalls.transform = 0;\n\tbabelCalls.transformSync = 0;\n\tbabelCalls.transformAsync = 0;\n\tbabelCalls.transformFromAstSync = 0;\n\tbabelCalls.parse = 0;\n\tbabelCalls.parseSync = 0;\n});\nfunction assertZeroBabelCalls() {\n\texpect(babelCalls.transform).toBe(0);\n\texpect(babelCalls.transformSync).toBe(0);\n\texpect(babelCalls.transformAsync).toBe(0);\n\texpect(babelCalls.transformFromAstSync).toBe(0);\n\texpect(babelCalls.parse).toBe(0);\n\texpect(babelCalls.parseSync).toBe(0);\n}\ndescribe(\"metroNativeWorker\", function() {\n\tit.each([\n\t\t[\"data.json\", true],\n\t\t[\"data.json\", false],\n\t\t[\"data.js\", false]\n\t])(\"minifies %s with source maps enabled=%s without stale mappings\", async function(filename, sourceMap) {\n\t\tvar result = await transform({\n\t\t\tminifierPath: createRequire(import.meta.url).resolve(\"metro-minify-terser\"),\n\t\t\tminifierConfig: { sourceMap }\n\t\t}, \"/project\", filename, Buffer.from(filename.endsWith(\".json\") ? \"{\\\"answer\\\":42}\" : \"module.exports = { answer: 42 }\"), {\n\t\t\tdev: false,\n\t\t\tminify: true,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\"\n\t\t});\n\t\tvar module = { exports: {} };\n\t\tvar { code, map } = result.output[0].data;\n\t\tvm.runInNewContext(code, { __d(factory) {\n\t\t\tfactory({}, function() {}, function() {}, function() {}, module, module.exports, []);\n\t\t} });\n\t\texpect(module.exports.answer).toBe(42);\n\t\texpect(map.every(function(entry) {\n\t\t\treturn entry.length === 2;\n\t\t})).toBe(true);\n\t\tassertZeroBabelCalls();\n\t});\n\tit(\"minifies production modules with executable output and original source locations\", async function() {\n\t\tvar source = \"exports.answer = function answer(value) {\\n return value + 42\\n}\\n\";\n\t\tvar { code, map } = (await transform({\n\t\t\tminifierPath: createRequire(import.meta.url).resolve(\"metro-minify-terser\"),\n\t\t\tminifierConfig: { mangle: true }\n\t\t}, \"/project\", \"answer.js\", Buffer.from(source), {\n\t\t\tdev: false,\n\t\t\tminify: true,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\"\n\t\t})).output[0].data;\n\t\tvar module = { exports: {} };\n\t\tvm.runInNewContext(code, { __d(factory) {\n\t\t\tfactory({}, function() {}, function() {}, function() {}, module, module.exports, []);\n\t\t} });\n\t\texpect(module.exports.answer(8)).toBe(50);\n\t\tvar msm = await import(\"metro-source-map\");\n\t\tvar fullMap = msm.fromRawMappings([{\n\t\t\tcode,\n\t\t\tpath: \"answer.js\",\n\t\t\tsource,\n\t\t\tmap\n\t\t}]).toMap();\n\t\tvar offset = code.indexOf(\"42\");\n\t\texpect(offset).toBeGreaterThan(-1);\n\t\tvar prefix = code.slice(0, offset).split(\"\\n\");\n\t\tvar position = new msm.Consumer(fullMap).originalPositionFor({\n\t\t\tline: prefix.length,\n\t\t\tcolumn: prefix.at(-1).length\n\t\t});\n\t\texpect(position.source).toBe(\"answer.js\");\n\t\texpect(position.line).toBe(2);\n\t\texpect(position.column).toBe(17);\n\t\tassertZeroBabelCalls();\n\t});\n\tit(\"extracts all dependencies with oxc-parser and zero Babel\", function() {\n\t\tvar deps = extractDependencies(`\n import React, { useState } from 'react'\n import * as RN from 'react-native'\n import './global.css'\n import type { UserType } from './user-types'\n export { Button } from './Button'\n export * from './icons'\n export type { ThemeType } from './theme-types'\n const helper = require('./helper')\n async function loadAsync() {\n const dyn = await import('./dynamic-module')\n }\n `, \"TestComponent.tsx\");\n\t\tassertZeroBabelCalls();\n\t\tvar names = deps.map(function(d) {\n\t\t\treturn d.name;\n\t\t});\n\t\texpect(names).toContain(\"react\");\n\t\texpect(names).toContain(\"react-native\");\n\t\texpect(names).toContain(\"./global.css\");\n\t\texpect(names).toContain(\"./Button\");\n\t\texpect(names).toContain(\"./icons\");\n\t\texpect(names).toContain(\"./helper\");\n\t\texpect(names).toContain(\"./dynamic-module\");\n\t\texpect(names).not.toContain(\"./user-types\");\n\t\texpect(names).not.toContain(\"./theme-types\");\n\t\tvar reactDep = deps.find(function(d) {\n\t\t\treturn d.name === \"react\";\n\t\t});\n\t\texpect(reactDep.data.isESMImportAtSource).toBe(true);\n\t\texpect(reactDep.data.asyncType).toBeNull();\n\t\texpect(reactDep.data.locs.length).toBeGreaterThan(0);\n\t\tvar loc = reactDep.data.locs[0];\n\t\texpect(loc.start.line).toBeGreaterThan(0);\n\t\texpect(loc.start.column).toBeGreaterThanOrEqual(0);\n\t\texpect(loc.end.line).toBeGreaterThanOrEqual(loc.start.line);\n\t\texpect(loc.end.column).toBeGreaterThanOrEqual(0);\n\t\tvar helperDep = deps.find(function(d) {\n\t\t\treturn d.name === \"./helper\";\n\t\t});\n\t\texpect(helperDep.data.isESMImportAtSource).toBe(false);\n\t\texpect(helperDep.data.asyncType).toBeNull();\n\t\texpect(deps.find(function(d) {\n\t\t\treturn d.name === \"./dynamic-module\";\n\t\t}).data.asyncType).toBe(\"async\");\n\t});\n\tit(\"marks requires inside a try block optional\", function() {\n\t\tvar code = `\n let worklets\n try {\n worklets = require('react-native-worklets-core')\n } catch {}\n const always = require('./always-there')\n `;\n\t\texpect(extractDependencies(code, \"setup.js\").find(function(d) {\n\t\t\treturn d.name === \"react-native-worklets-core\";\n\t\t}).data.isOptional).toBeUndefined();\n\t\tvar on = extractDependencies(code, \"setup.js\", { allowOptionalDependencies: true });\n\t\texpect(on.find(function(d) {\n\t\t\treturn d.name === \"react-native-worklets-core\";\n\t\t}).data.isOptional).toBe(true);\n\t\texpect(on.find(function(d) {\n\t\t\treturn d.name === \"./always-there\";\n\t\t}).data.isOptional).toBeUndefined();\n\t\texpect(extractDependencies(code, \"setup.js\", { allowOptionalDependencies: { exclude: [\"react-native-worklets-core\"] } }).find(function(d) {\n\t\t\treturn d.name === \"react-native-worklets-core\";\n\t\t}).data.isOptional).toBeUndefined();\n\t});\n\tit(\"wraps modules in Metro CommonJS format with and without moduleId\", function() {\n\t\tvar code = \"exports.val = 123;\";\n\t\tvar wrappedWithoutId = wrapModule(code);\n\t\texpect(wrappedWithoutId).toContain(\"__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) {\");\n\t\texpect(wrappedWithoutId).toContain(\"var require = _$$_REQUIRE;\");\n\t\texpect(wrappedWithoutId).toContain(\"exports.val = 123;\");\n\t\texpect(wrappedWithoutId.endsWith(\");\")).toBe(true);\n\t\texpect(wrapModule(code, {\n\t\t\tmoduleId: 99,\n\t\t\tdependencyIds: [\n\t\t\t\t1,\n\t\t\t\t2,\n\t\t\t\t3\n\t\t\t]\n\t\t})).toContain(\", 99, [1,2,3]);\");\n\t});\n\tit(\"transforms TSX with React JSX, Hermes lowering, and ZERO Babel\", async function() {\n\t\tvar result = await transform({}, \"/project\", \"Greeter.tsx\", Buffer.from(`\n import React from 'react'\n import { View, Text } from 'react-native'\n const helper = require('./helper')\n\n export class Greeter extends React.Component {\n greeting = 'Hello from Native'\n\n async fetchGreeting() {\n return this.greeting\n }\n\n render() {\n return (\n <View testID=\"greeter\">\n <Text>{this.greeting}</Text>\n </View>\n )\n }\n }\n `, \"utf8\"), {\n\t\t\tdev: true,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\"\n\t\t});\n\t\tassertZeroBabelCalls();\n\t\texpect(result.output).toHaveLength(1);\n\t\tvar output = result.output[0];\n\t\texpect(output.type).toBe(\"js/module\");\n\t\texpect(output.data.lineCount).toBeGreaterThan(0);\n\t\texpect(output.data.map.length).toBeGreaterThan(0);\n\t\tvar code = output.data.code;\n\t\texpect(code).toContain(\"__d(function (global, _$$_REQUIRE, _$$_IMPORT_DEFAULT, _$$_IMPORT_ALL, module, exports, _dependencyMap) {\");\n\t\texpect(code).toContain(\"var require = _$$_REQUIRE;\");\n\t\texpect(code).not.toContain(\"<View\");\n\t\texpect(code).not.toContain(\"<Text\");\n\t\texpect(code).toContain(\"this.greeting = \\\"Hello from Native\\\"\");\n\t\tvar depNames = result.dependencies.map(function(d) {\n\t\t\treturn d.name;\n\t\t});\n\t\texpect(depNames).toContain(\"react\");\n\t\texpect(depNames).toContain(\"react-native\");\n\t\texpect(depNames).toContain(\"./helper\");\n\t\texpect(depNames).toContain(\"react/jsx-dev-runtime\");\n\t});\n\tit(\"lowers async generators, including the method shorthand Hermes also rejects\", async function() {\n\t\tvar sources = {\n\t\t\t\"cursor.ts\": `\n export class Cursor {\n async *rows() {\n yield await Promise.resolve(1)\n }\n }\n `,\n\t\t\t\"stream.ts\": `\n export async function* stream() {\n yield 1\n }\n `,\n\t\t\t\"drain.ts\": `\n export async function drain(src) {\n for await (const x of src) {\n console.log(x)\n }\n }\n `\n\t\t};\n\t\tvar _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n\t\ttry {\n\t\t\tfor (var _iterator = Object.entries(sources)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\t\tvar [filename, sourceCode] = _step.value;\n\t\t\t\tvar result = await transform({}, \"/project\", filename, Buffer.from(sourceCode, \"utf8\"), {\n\t\t\t\t\tdev: true,\n\t\t\t\t\tplatform: \"ios\",\n\t\t\t\t\ttype: \"module\"\n\t\t\t\t});\n\t\t\t\tassertZeroBabelCalls();\n\t\t\t\tvar code = result.output[0].data.code;\n\t\t\t\texpect(code, filename).not.toMatch(/\\basync\\s+function\\s*\\*/);\n\t\t\t\texpect(code, filename).not.toMatch(/\\basync\\s*\\*\\s*[\\w$[]/);\n\t\t\t\texpect(code, filename).not.toMatch(/\\bfor\\s+await\\s*\\(/);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_didIteratorError = true;\n\t\t\t_iteratorError = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError) throw _iteratorError;\n\t\t\t}\n\t\t}\n\t});\n\tit(\"handles JSON files without Babel\", async function() {\n\t\tvar jsonSource = JSON.stringify({\n\t\t\tname: \"my-package\",\n\t\t\tversion: \"1.0.0\"\n\t\t});\n\t\tvar result = await transform({}, \"/project\", \"package.json\", Buffer.from(jsonSource, \"utf8\"), {\n\t\t\tdev: true,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\"\n\t\t});\n\t\tassertZeroBabelCalls();\n\t\texpect(result.dependencies).toEqual([]);\n\t\texpect(result.output).toHaveLength(1);\n\t\texpect(result.output[0].type).toBe(\"js/module\");\n\t\texpect(result.output[0].data.code).toContain(\"module.exports = {\\\"name\\\":\\\"my-package\\\",\\\"version\\\":\\\"1.0.0\\\"}\");\n\t\texpect(result.output[0].data.code).toContain(\"__d(function (global, require\");\n\t});\n\tit(\"handles Asset files without Babel\", async function() {\n\t\tvar result = await transform({\n\t\t\tassetRegistryPath: \"react-native/Libraries/Image/AssetRegistry\",\n\t\t\tpublicPath: \"/assets\"\n\t\t}, \"/project\", \"logo.png\", Buffer.from(\"fake-png-binary-data\", \"utf8\"), {\n\t\t\tdev: true,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"asset\"\n\t\t});\n\t\tassertZeroBabelCalls();\n\t\texpect(result.output[0].type).toBe(\"js/module/asset\");\n\t\texpect(result.output[0].data.code).toContain(\"registerAsset(\");\n\t\texpect(result.output[0].data.code).toContain(\"__d(function\");\n\t\texpect(result.dependencies.map(function(d) {\n\t\t\treturn d.name;\n\t\t})).toContain(\"react-native/Libraries/Image/AssetRegistry\");\n\t});\n\tit(\"handles Flow files by stripping types without Babel\", async function() {\n\t\tvar result = await transform({}, \"/project\", \"math.js\", Buffer.from(`\n // @flow\n function add(a: number, b: number): number {\n return a + b;\n }\n export default add;\n `, \"utf8\"), {\n\t\t\tdev: false,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\"\n\t\t});\n\t\tassertZeroBabelCalls();\n\t\texpect(result.output[0].data.code).not.toContain(\": number\");\n\t\texpect(result.output[0].data.code).toContain(\"function add(a, b)\");\n\t});\n\tit(\"generates a deterministic cache key without Babel\", function() {\n\t\tvar key1 = getCacheKey({\n\t\t\tglobalPrefix: \"__one_\",\n\t\t\tminifierPath: \"terser\"\n\t\t}, { projectRoot: \"/app\" });\n\t\tvar key2 = getCacheKey({\n\t\t\tglobalPrefix: \"__one_\",\n\t\t\tminifierPath: \"terser\"\n\t\t}, { projectRoot: \"/app\" });\n\t\tvar key3 = getCacheKey({ globalPrefix: \"__other_\" }, { projectRoot: \"/app\" });\n\t\tassertZeroBabelCalls();\n\t\texpect(key1).toBe(key2);\n\t\texpect(key1).not.toBe(key3);\n\t\texpect(typeof key1 === \"undefined\" ? \"undefined\" : _type_of(key1)).toBe(\"string\");\n\t\texpect(key1.length).toBe(64);\n\t});\n\tit(\"correctly sets transformerPath in buildMetroConfigInputFromViteConfig when active\", async function() {\n\t\tvar mockViteConfig = { root: process.cwd() };\n\t\tdelete process.env.ONE_METRO_NATIVE_TRANSFORMS;\n\t\tvar configDefault = await buildMetroConfigInputFromViteConfig(mockViteConfig, {});\n\t\texpect(configDefault.defaultConfig.transformerPath).toContain(\"metroNativeWorker\");\n\t\texpect(configDefault.defaultConfig.transformer.transformerPath).toBeUndefined();\n\t\texpect((await buildMetroConfigInputFromViteConfig(mockViteConfig, { nativeTransforms: false })).defaultConfig.transformerPath).not.toContain(\"metroNativeWorker\");\n\t\tprocess.env.ONE_METRO_NATIVE_TRANSFORMS = \"0\";\n\t\texpect((await buildMetroConfigInputFromViteConfig(mockViteConfig, {})).defaultConfig.transformerPath).not.toContain(\"metroNativeWorker\");\n\t\tprocess.env.ONE_METRO_NATIVE_TRANSFORMS = \"1\";\n\t\texpect((await buildMetroConfigInputFromViteConfig(mockViteConfig, { nativeTransforms: false })).defaultConfig.transformerPath).toContain(\"metroNativeWorker\");\n\t\tdelete process.env.ONE_METRO_NATIVE_TRANSFORMS;\n\t});\n\tit(\"transforms and executes a real 2-module Metro bundle through metro-runtime require polyfill\", async function() {\n\t\tvar depSource = \"exports.value = 42;\";\n\t\tvar aSource = \"const dep = require(\\\"./dep\\\"); module.exports = { doubled: dep.value * 2 };\";\n\t\tvar depRes = await transform({}, \"/project\", \"dep.js\", Buffer.from(depSource, \"utf8\"), {\n\t\t\tdev: false,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\",\n\t\t\tmoduleId: 2,\n\t\t\tdependencyIds: []\n\t\t});\n\t\tvar aRes = await transform({}, \"/project\", \"a.js\", Buffer.from(aSource, \"utf8\"), {\n\t\t\tdev: false,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\",\n\t\t\tmoduleId: 1,\n\t\t\tdependencyIds: [2]\n\t\t});\n\t\tassertZeroBabelCalls();\n\t\texpect(aRes.dependencies).toHaveLength(1);\n\t\texpect(aRes.dependencies[0].name).toBe(\"./dep\");\n\t\tvar aEmittedCode = aRes.output[0].data.code;\n\t\texpect(aEmittedCode).toContain(\"require(_dependencyMap[0], \\\"./dep\\\")\");\n\t\tvar polyfillPath = __require.resolve(\"metro-runtime/src/polyfills/require.js\");\n\t\tvar polyfillCode = fs.readFileSync(polyfillPath, \"utf8\");\n\t\tvar contextObj = {\n\t\t\t__DEV__: false,\n\t\t\t__METRO_GLOBAL_PREFIX__: \"\",\n\t\t\tconsole\n\t\t};\n\t\tcontextObj.global = contextObj;\n\t\tvm.createContext(contextObj);\n\t\tvm.runInContext(polyfillCode, contextObj);\n\t\tvm.runInContext(depRes.output[0].data.code, contextObj);\n\t\tvm.runInContext(aEmittedCode, contextObj);\n\t\texpect(vm.runInContext(\"global.__r(1)\", contextObj)).toEqual({ doubled: 84 });\n\t});\n\tit(\"transforms and executes a 2-module Metro bundle with ESM imports in dev mode\", async function() {\n\t\tvar depSource = \"export const greeting = \\\"Hello Metro Native\\\";\";\n\t\tvar aSource = \"import { greeting } from \\\"./dep\\\"; export const message = greeting.toUpperCase();\";\n\t\tvar depRes = await transform({}, \"/project\", \"dep.js\", Buffer.from(depSource, \"utf8\"), {\n\t\t\tdev: true,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\",\n\t\t\tmoduleId: 2,\n\t\t\tdependencyIds: []\n\t\t});\n\t\tvar aRes = await transform({}, \"/project\", \"a.js\", Buffer.from(aSource, \"utf8\"), {\n\t\t\tdev: true,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\",\n\t\t\tmoduleId: 1,\n\t\t\tdependencyIds: [2]\n\t\t});\n\t\tassertZeroBabelCalls();\n\t\tvar polyfillPath = __require.resolve(\"metro-runtime/src/polyfills/require.js\");\n\t\tvar polyfillCode = fs.readFileSync(polyfillPath, \"utf8\");\n\t\tvar contextObj = {\n\t\t\t__DEV__: true,\n\t\t\t__METRO_GLOBAL_PREFIX__: \"\",\n\t\t\tconsole\n\t\t};\n\t\tcontextObj.global = contextObj;\n\t\tvm.createContext(contextObj);\n\t\tvm.runInContext(polyfillCode, contextObj);\n\t\tvm.runInContext(depRes.output[0].data.code, contextObj);\n\t\tvm.runInContext(aRes.output[0].data.code, contextObj);\n\t\texpect(vm.runInContext(\"global.__r(1)\", contextObj).message).toBe(\"HELLO METRO NATIVE\");\n\t});\n\tit(\"respects lexical scope shadowing for require calls (Astra probe)\", async function() {\n\t\tvar res = await transform({}, \"/project\", \"shadowed.js\", Buffer.from(\"function f(require){return require(\\\"./local\\\")}; module.exports=f(x=>x);\", \"utf8\"), {\n\t\t\tdev: false,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\",\n\t\t\tmoduleId: 1,\n\t\t\tdependencyIds: []\n\t\t});\n\t\tassertZeroBabelCalls();\n\t\texpect(res.dependencies).toHaveLength(0);\n\t\tvar emitted = res.output[0].data.code;\n\t\texpect(emitted).not.toContain(\"_dependencyMap[0]\");\n\t\texpect(emitted).toMatch(/require\\d*\\(\"\\.\\/local\"\\)/);\n\t\tvar polyfillPath = __require.resolve(\"metro-runtime/src/polyfills/require.js\");\n\t\tvar polyfillCode = fs.readFileSync(polyfillPath, \"utf8\");\n\t\tvar contextObj = {\n\t\t\t__DEV__: false,\n\t\t\t__METRO_GLOBAL_PREFIX__: \"\",\n\t\t\tconsole\n\t\t};\n\t\tcontextObj.global = contextObj;\n\t\tvm.createContext(contextObj);\n\t\tvm.runInContext(polyfillCode, contextObj);\n\t\tvm.runInContext(emitted, contextObj);\n\t\texpect(vm.runInContext(\"global.__r(1)\", contextObj)).toBe(\"./local\");\n\t});\n\tit(\"preserves distinct indexed identity for duplicate and mixed sync/async dependencies\", async function() {\n\t\tvar res = await transform({}, \"/project\", \"index.js\", Buffer.from(`\n const a = require('./dep');\n const b = require('./dep');\n async function load() {\n const c = await import('./dep');\n }\n `, \"utf8\"), {\n\t\t\tdev: false,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\"\n\t\t});\n\t\tassertZeroBabelCalls();\n\t\texpect(res.dependencies.map(function(d) {\n\t\t\treturn d.name;\n\t\t})).toContain(\"./dep\");\n\t\tvar syncDep = res.dependencies.find(function(d) {\n\t\t\treturn d.name === \"./dep\" && d.data.asyncType === null;\n\t\t});\n\t\tvar asyncDep = res.dependencies.find(function(d) {\n\t\t\treturn d.name === \"./dep\" && d.data.asyncType === \"async\";\n\t\t});\n\t\texpect(syncDep).toBeDefined();\n\t\texpect(asyncDep).toBeDefined();\n\t\texpect(syncDep.data.index).not.toEqual(asyncDep.data.index);\n\t\tvar emitted = res.output[0].data.code;\n\t\tvar syncIndex = syncDep.data.index;\n\t\texpect(emitted).toContain(`require(_dependencyMap[${syncIndex}], \"./dep\")`);\n\t});\n\tit(\"conforms to Metro map ABI with raw mapping segment tuples and accurate symbolication\", async function() {\n\t\tvar res = await transform({}, \"/project\", \"math.ts\", Buffer.from(`\n export function add(a: number, b: number): number {\n return a + b;\n }\n `, \"utf8\"), {\n\t\t\tdev: false,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\"\n\t\t});\n\t\tassertZeroBabelCalls();\n\t\tvar map = res.output[0].data.map;\n\t\texpect(Array.isArray(map)).toBe(true);\n\t\texpect(map.length).toBeGreaterThan(0);\n\t\tvar _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n\t\ttry {\n\t\t\tfor (var _iterator = map[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\t\tvar tuple = _step.value;\n\t\t\t\texpect(Array.isArray(tuple)).toBe(true);\n\t\t\t\texpect(_type_of(tuple[0])).toBe(\"number\");\n\t\t\t\texpect(_type_of(tuple[1])).toBe(\"number\");\n\t\t\t\texpect(tuple).not.toHaveProperty(\"version\");\n\t\t\t\texpect(tuple).not.toHaveProperty(\"mappings\");\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_didIteratorError = true;\n\t\t\t_iteratorError = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError) throw _iteratorError;\n\t\t\t}\n\t\t}\n\t\tvar msm = await import(\"metro-source-map\");\n\t\tvar fullMap = msm.fromRawMappings([{\n\t\t\tcode: res.output[0].data.code,\n\t\t\tsource: \"math.ts\",\n\t\t\tmap\n\t\t}]).toMap();\n\t\tvar consumer = new msm.Consumer(fullMap);\n\t\tvar addLineIndex = res.output[0].data.code.split(\"\\n\").findIndex(function(l) {\n\t\t\treturn l.includes(\"function add\");\n\t\t});\n\t\texpect(addLineIndex).toBeGreaterThan(0);\n\t\texpect(consumer.originalPositionFor({\n\t\t\tline: addLineIndex + 1,\n\t\t\tcolumn: 16\n\t\t}).line).toBe(2);\n\t});\n\tit(\"models JS hoisting in ScopeTracker for functions and vars (Astra probe)\", async function() {\n\t\tvar res = await transform({}, \"/project\", \"hoisted.js\", Buffer.from(\"function f(){const x=require(\\\"./local\\\"); function require(x){return x}; return x} module.exports=f();\", \"utf8\"), {\n\t\t\tdev: false,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\",\n\t\t\tmoduleId: 1,\n\t\t\tdependencyIds: []\n\t\t});\n\t\tassertZeroBabelCalls();\n\t\texpect(res.dependencies).toHaveLength(0);\n\t\tvar emitted = res.output[0].data.code;\n\t\texpect(emitted).not.toContain(\"_dependencyMap[0]\");\n\t\texpect(emitted).toMatch(/require\\d*\\(\"\\.\\/local\"\\)/);\n\t\tvar polyfillPath = __require.resolve(\"metro-runtime/src/polyfills/require.js\");\n\t\tvar polyfillCode = fs.readFileSync(polyfillPath, \"utf8\");\n\t\tvar contextObj = {\n\t\t\t__DEV__: false,\n\t\t\t__METRO_GLOBAL_PREFIX__: \"\",\n\t\t\tconsole\n\t\t};\n\t\tcontextObj.global = contextObj;\n\t\tvm.createContext(contextObj);\n\t\tvm.runInContext(polyfillCode, contextObj);\n\t\tvm.runInContext(emitted, contextObj);\n\t\texpect(vm.runInContext(\"global.__r(1)\", contextObj)).toBe(\"./local\");\n\t});\n\tit(\"rewrites dynamic import to Metro asyncRequire and executes promise resolution in dev and release\", async function() {\n\t\tvar depSource = \"exports.message = \\\"hello dynamic\\\";\";\n\t\tvar mainSource = \"module.exports = () => import(\\\"./dep\\\");\";\n\t\tvar depRes = await transform({}, \"/project\", \"dep.js\", Buffer.from(depSource, \"utf8\"), {\n\t\t\tdev: true,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\",\n\t\t\tmoduleId: 2,\n\t\t\tdependencyIds: []\n\t\t});\n\t\tvar mainRes = await transform({}, \"/project\", \"main.js\", Buffer.from(mainSource, \"utf8\"), {\n\t\t\tdev: true,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\",\n\t\t\tmoduleId: 0,\n\t\t\tdependencyIds: [2, 1]\n\t\t});\n\t\tassertZeroBabelCalls();\n\t\tvar depNames = mainRes.dependencies.map(function(d) {\n\t\t\treturn d.name;\n\t\t});\n\t\texpect(depNames).toContain(\"./dep\");\n\t\texpect(depNames).toContain(\"metro-runtime/src/modules/asyncRequire\");\n\t\texpect(mainRes.dependencies.find(function(d) {\n\t\t\treturn d.name === \"./dep\";\n\t\t}).data.asyncType).toBe(\"async\");\n\t\tvar emittedMain = mainRes.output[0].data.code;\n\t\texpect(emittedMain).not.toContain(\"import(\\\"./dep\\\")\");\n\t\texpect(emittedMain).toContain(\"require(_dependencyMap[1], \\\"metro-runtime/src/modules/asyncRequire\\\")(_dependencyMap[0], _dependencyMap.paths, \\\"./dep\\\")\");\n\t\tvar polyfillPath = __require.resolve(\"metro-runtime/src/polyfills/require.js\");\n\t\tvar polyfillCode = fs.readFileSync(polyfillPath, \"utf8\");\n\t\tvar asyncRequirePath = __require.resolve(\"metro-runtime/src/modules/asyncRequire.js\");\n\t\tvar wrappedAsyncRequire = wrapModule(fs.readFileSync(asyncRequirePath, \"utf8\"), {\n\t\t\tmoduleId: 1,\n\t\t\tdependencyIds: []\n\t\t});\n\t\tfor (var _i = 0, _iter = [true, false]; _i < _iter.length; _i++) {\n\t\t\tvar contextObj = {\n\t\t\t\t__DEV__: _iter[_i],\n\t\t\t\t__METRO_GLOBAL_PREFIX__: \"\",\n\t\t\t\tconsole\n\t\t\t};\n\t\t\tcontextObj.global = contextObj;\n\t\t\tvm.createContext(contextObj);\n\t\t\tvm.runInContext(polyfillCode, contextObj);\n\t\t\tvm.runInContext(wrappedAsyncRequire, contextObj);\n\t\t\tvm.runInContext(depRes.output[0].data.code, contextObj);\n\t\t\tvm.runInContext(emittedMain, contextObj);\n\t\t\tvar mainFn = vm.runInContext(\"global.__r(0)\", contextObj);\n\t\t\texpect(typeof mainFn === \"undefined\" ? \"undefined\" : _type_of(mainFn)).toBe(\"function\");\n\t\t\tvar promise = mainFn();\n\t\t\texpect(_instanceof(promise, Promise) || promise && typeof promise.then === \"function\").toBe(true);\n\t\t\tvar resolved = await promise;\n\t\t\texpect(resolved.message).toBe(\"hello dynamic\");\n\t\t\texpect(resolved.default.message).toBe(\"hello dynamic\");\n\t\t}\n\t});\n\tit(\"preserves accurate sourcemap for tokens after rewritten require calls on the same line\", async function() {\n\t\tvar sourceCode = \"const a = require(\\\"./dep\\\"), b = 42;\";\n\t\tvar resWrapped = await transform({}, \"/project\", \"app.js\", Buffer.from(sourceCode, \"utf8\"), {\n\t\t\tdev: false,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\"\n\t\t});\n\t\tassertZeroBabelCalls();\n\t\tvar msm = await import(\"metro-source-map\");\n\t\tvar fullMapWrapped = msm.fromRawMappings([{\n\t\t\tcode: resWrapped.output[0].data.code,\n\t\t\tsource: \"app.js\",\n\t\t\tmap: resWrapped.output[0].data.map\n\t\t}]).toMap();\n\t\tvar consumerWrapped = new msm.Consumer(fullMapWrapped);\n\t\tvar linesWrapped = resWrapped.output[0].data.code.split(\"\\n\");\n\t\tvar lineIndexWrapped = linesWrapped.findIndex(function(l) {\n\t\t\treturn l.includes(\"b = 42\");\n\t\t});\n\t\texpect(lineIndexWrapped).toBeGreaterThanOrEqual(0);\n\t\tvar generatedColWrapped = linesWrapped[lineIndexWrapped].indexOf(\"b = 42\");\n\t\texpect(generatedColWrapped).toBeGreaterThan(0);\n\t\tvar posWrapped = consumerWrapped.originalPositionFor({\n\t\t\tline: lineIndexWrapped + 1,\n\t\t\tcolumn: generatedColWrapped\n\t\t});\n\t\texpect(posWrapped.line).toBe(1);\n\t\texpect(posWrapped.column).toBe(28);\n\t\texpect(sourceCode.slice(Number(posWrapped.column))).toContain(\"b = 42;\");\n\t\tvar resUnwrapped = await transform({ unstable_disableModuleWrapping: true }, \"/project\", \"app.js\", Buffer.from(sourceCode, \"utf8\"), {\n\t\t\tdev: false,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\"\n\t\t});\n\t\tvar fullMapUnwrapped = msm.fromRawMappings([{\n\t\t\tcode: resUnwrapped.output[0].data.code,\n\t\t\tsource: \"app.js\",\n\t\t\tmap: resUnwrapped.output[0].data.map\n\t\t}]).toMap();\n\t\tvar consumerUnwrapped = new msm.Consumer(fullMapUnwrapped);\n\t\tvar linesUnwrapped = resUnwrapped.output[0].data.code.split(\"\\n\");\n\t\tvar lineIndexUnwrapped = linesUnwrapped.findIndex(function(l) {\n\t\t\treturn l.includes(\"b = 42\");\n\t\t});\n\t\texpect(lineIndexUnwrapped).toBeGreaterThanOrEqual(0);\n\t\tvar generatedColUnwrapped = linesUnwrapped[lineIndexUnwrapped].indexOf(\"b = 42\");\n\t\tvar posUnwrapped = consumerUnwrapped.originalPositionFor({\n\t\t\tline: lineIndexUnwrapped + 1,\n\t\t\tcolumn: generatedColUnwrapped\n\t\t});\n\t\texpect(posUnwrapped.line).toBe(1);\n\t\texpect(posUnwrapped.column).toBe(28);\n\t});\n\tit(\"routes a require.context whose directory is held in a variable through the dependency map\", async function() {\n\t\tvar result = await transform({}, \"/project\", \"entry.js\", Buffer.from(`\n const routeRoot = './app'\n export const ctx = require.context(routeRoot, true, /\\\\.tsx$/)\n `, \"utf8\"), {\n\t\t\tdev: true,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\"\n\t\t});\n\t\tvar contextDep = result.dependencies.find(function(d) {\n\t\t\treturn d.data.contextParams != null;\n\t\t});\n\t\texpect(contextDep === null || contextDep === void 0 ? void 0 : contextDep.name).toBe(\"./app\");\n\t\tvar calls = [];\n\t\tvar ctx;\n\t\tvm.runInNewContext(result.output[0].data.code, { __d: function(factory) {\n\t\t\tvar module = { exports: {} };\n\t\t\tvar req = function() {\n\t\t\t\tfor (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n\t\t\t\tcalls.push(args);\n\t\t\t\treturn { keys: function() {\n\t\t\t\t\treturn [];\n\t\t\t\t} };\n\t\t\t};\n\t\t\treq.context = function() {\n\t\t\t\tthrow new Error(\"fallbackRequireContext reached\");\n\t\t\t};\n\t\t\tfactory({}, req, function() {\n\t\t\t\treturn {};\n\t\t\t}, function() {\n\t\t\t\treturn {};\n\t\t\t}, module, module.exports, [\"./app\"]);\n\t\t\tctx = module.exports.ctx;\n\t\t} });\n\t\texpect(ctx).toBeDefined();\n\t\texpect(calls[0][1]).toBe(\"./app\");\n\t});\n\tit(\"gives loop bodies per-iteration bindings that survive a runtime without them\", async function() {\n\t\tvar asHermesWouldSeeIt = (await transform({}, \"/project\", \"loops.ts\", Buffer.from(`\n export function collect() {\n const out = []\n for (let i = 0; i < 2; i++) out.push(() => i)\n for (const label of ['a', 'b']) out.push(() => label)\n for (const key in { x: 1, y: 2 }) out.push(() => key)\n return out.map((f) => f())\n }\n `, \"utf8\"), {\n\t\t\tdev: true,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\"\n\t\t})).output[0].data.code.replace(/\\bfor\\s*\\(\\s*(let|const)\\b/g, \"for (var\");\n\t\tvar collect;\n\t\tvm.runInNewContext(asHermesWouldSeeIt, { __d: function(factory) {\n\t\t\tvar module = { exports: {} };\n\t\t\tfactory({}, function() {\n\t\t\t\treturn {};\n\t\t\t}, function() {\n\t\t\t\treturn {};\n\t\t\t}, function() {\n\t\t\t\treturn {};\n\t\t\t}, module, module.exports, []);\n\t\t\tcollect = module.exports.collect;\n\t\t} });\n\t\texpect(collect()).toEqual([\n\t\t\t0,\n\t\t\t1,\n\t\t\t\"a\",\n\t\t\t\"b\",\n\t\t\t\"x\",\n\t\t\t\"y\"\n\t\t]);\n\t});\n});\ndescribe(\"one native transform ports\", function() {\n\tit(\"inlines process.env.ONE_SERVER_URL so a native bundle can find its loaders\", function() {\n\t\tprocess.env.ONE_SERVER_URL = \"https://example.test\";\n\t\ttry {\n\t\t\texpect(applyInlineEnvVars(\"export const url = process.env.ONE_SERVER_URL;\", \"loader.ts\", false)).toBe(\"export const url = \\\"https://example.test\\\";\");\n\t\t} finally {\n\t\t\tprocess.env.ONE_SERVER_URL = void 0;\n\t\t}\n\t});\n\tit(\"leaves ONE_SERVER_URL alone when it is only a string\", function() {\n\t\tvar src = \"export const key = \\\"process.env.ONE_SERVER_URL\\\";\";\n\t\texpect(applyInlineEnvVars(src, \"a.ts\", false)).toBe(src);\n\t});\n\tit(\"inlines import.meta.env reads, which oxc otherwise lowers to an empty object\", function() {\n\t\tvar out = applyInlineEnvVars(`export const key = import.meta.env.VITE_POSTHOG_API_KEY;\nexport const target = import.meta.env?.TAMAGUI_TARGET;\nexport const missing = import.meta.env.NOT_SET;\nexport const all = { ...import.meta.env };`, \"env.ts\", true, {\n\t\t\tDEV: false,\n\t\t\tVITE_POSTHOG_API_KEY: \"pk_live\",\n\t\t\tTAMAGUI_TARGET: \"native\"\n\t\t});\n\t\texpect(out).toContain(\"export const key = \\\"pk_live\\\";\");\n\t\texpect(out).toContain(\"export const target = \\\"native\\\";\");\n\t\texpect(out).toContain(\"export const missing = undefined;\");\n\t\texpect(out).toContain(\"\\\"VITE_POSTHOG_API_KEY\\\":\\\"pk_live\\\"\");\n\t\texpect(out).not.toContain(\"import.meta\");\n\t});\n\tit(\"inlines process.env keys the vite env map defines\", function() {\n\t\tvar out = applyInlineEnvVars(\"export const t = process.env.TAMAGUI_TARGET; export const u = process.env.UNKNOWN_THING;\", \"env.ts\", true, { TAMAGUI_TARGET: \"native\" });\n\t\texpect(out).toContain(\"export const t = \\\"native\\\";\");\n\t\texpect(out).toContain(\"process.env.UNKNOWN_THING\");\n\t});\n\tit(\"never rewrites an env read in an assignment target\", function() {\n\t\tvar src = \"process.env.VITE_ENVIRONMENT = \\\"ssr\\\";\";\n\t\texpect(applyInlineEnvVars(src, \"a.ts\", true, { VITE_ENVIRONMENT: \"ios\" })).toBe(src);\n\t});\n\tit(\"folds branches the inlining made constant so metro never resolves dead imports\", function() {\n\t\tvar out = applyInlineEnvVars(`if (import.meta.env.SSR) { require('./server-only-thing') } else { load(import.meta.env.API) }`, \"branch.ts\", true, {\n\t\t\tSSR: false,\n\t\t\tAPI: \"https://api.test\"\n\t\t});\n\t\texpect(out).not.toContain(\"server-only-thing\");\n\t\texpect(out).toContain(\"load(\\\"https://api.test\\\")\");\n\t});\n\tit(\"folds a ternary and keeps a branch it cannot resolve\", function() {\n\t\texpect(applyInlineEnvVars(\"const a = import.meta.env.DEV ? x : y;\", \"a.ts\", true, { DEV: false })).toContain(\"const a = y;\");\n\t\tvar dynamic = \"const a = flag ? x : y;\";\n\t\texpect(applyInlineEnvVars(dynamic, \"a.ts\", true, { DEV: false })).toBe(dynamic);\n\t});\n\tit(\"runs the user native transforms that stand in for their babel plugins\", async function() {\n\t\tvar result = await transform({}, import.meta.dirname, \"ota.ts\", Buffer.from(\"export const id = __EXAMPLE_BUILD_ID; export const from = __EXAMPLE_FILENAME;\", \"utf8\"), {\n\t\t\tdev: true,\n\t\t\tplatform: \"ios\",\n\t\t\ttype: \"module\",\n\t\t\tcustomTransformOptions: { vite: { nativeTransformModules: [\"./__fixtures__/exampleNativeTransform.cjs\"] } }\n\t\t});\n\t\tassertZeroBabelCalls();\n\t\texpect(result.output[0].data.code).toContain(\"\\\"ios-build\\\"\");\n\t\texpect(result.output[0].data.code).not.toContain(\"__EXAMPLE_BUILD_ID\");\n\t\texpect(result.output[0].data.code).toContain(JSON.stringify(path.join(import.meta.dirname, \"ota.ts\")));\n\t});\n\tit(\"refuses to build when a user babel plugin has no native port\", function() {\n\t\tvar withPlugins = function(plugins) {\n\t\t\treturn { customTransformOptions: { vite: { babelConfig: { plugins } } } };\n\t\t};\n\t\texpect(function() {\n\t\t\treturn assertNoUnportedBabelPlugins(withPlugins([\n\t\t\t\t[\"@vxrn/vite-plugin-metro/babel-plugins/import-meta-env-plugin\", { env: {} }],\n\t\t\t\t\"one/babel-plugin-environment-guard\",\n\t\t\t\t\"hot-updater/babel-plugin\"\n\t\t\t]));\n\t\t}).toThrow(/hot-updater\\/babel-plugin/);\n\t\texpect(function() {\n\t\t\treturn assertNoUnportedBabelPlugins(withPlugins([\n\t\t\t\t[\"@vxrn/vite-plugin-metro/babel-plugins/import-meta-env-plugin\", { env: {} }],\n\t\t\t\t\"one/babel-plugin-environment-guard\",\n\t\t\t\t[\"one/babel-plugin-remove-server-code\", { routerRoot: \"app\" }],\n\t\t\t\t[\"babel-plugin-module-resolver\", { alias: {} }],\n\t\t\t\t[\"one/babel-plugin-one-router-metro\", {}],\n\t\t\t\t\"one/babel-plugin-inline-one-server-url\",\n\t\t\t\t\"babel-plugin-react-compiler\",\n\t\t\t\t\"react-native-reanimated/plugin\"\n\t\t\t]));\n\t\t}).not.toThrow();\n\t});\n\tit(\"turns a server-only import into a throw and drops native-only\", function() {\n\t\tvar out = applyEnvironmentGuard(`import 'native-only'\n\nexport const a = 1`, \"route.ts\");\n\t\texpect(out).not.toContain(\"native-only\");\n\t\texpect(out).toContain(\"server-only cannot be imported in a native environment\");\n\t\tvar parsed = parseSync(\"route.ts\", out, { lang: \"ts\" });\n\t\texpect(parsed.errors).toEqual([]);\n\t\texpect(parsed.program.body.map(function(n) {\n\t\t\treturn n.type;\n\t\t})).toContain(\"ThrowStatement\");\n\t});\n\tit(\"reads the router root off one's remove-server-code plugin entry\", function() {\n\t\texpect(getRemoveServerCodeRouterRoot({ customTransformOptions: { vite: { babelConfig: { plugins: [[\"one/babel-plugin-remove-server-code\", { routerRoot: \"src/app\" }]] } } } })).toBe(\"src/app\");\n\t\texpect(getRemoveServerCodeRouterRoot({ customTransformOptions: {} })).toBe(void 0);\n\t});\n});\n\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vxrn/vite-plugin-metro",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.26.0",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/cjs",
|
|
@@ -24,6 +24,16 @@
|
|
|
24
24
|
"import": "./dist/esm/transformer/babel-transformer.mjs",
|
|
25
25
|
"require": "./dist/cjs/transformer/babel-transformer.cjs"
|
|
26
26
|
},
|
|
27
|
+
"./transformer/metroNativeWorker": {
|
|
28
|
+
"types": "./types/transformer/metroNativeWorker.d.ts",
|
|
29
|
+
"import": "./dist/esm/transformer/metroNativeWorker.mjs",
|
|
30
|
+
"require": "./dist/cjs/transformer/metroNativeWorker.cjs"
|
|
31
|
+
},
|
|
32
|
+
"./metroNativeWorker": {
|
|
33
|
+
"types": "./types/transformer/metroNativeWorker.d.ts",
|
|
34
|
+
"import": "./dist/esm/transformer/metroNativeWorker.mjs",
|
|
35
|
+
"require": "./dist/cjs/transformer/metroNativeWorker.cjs"
|
|
36
|
+
},
|
|
27
37
|
"./babel-plugins/import-meta-env-plugin": {
|
|
28
38
|
"types": "./types/babel-plugins/import-meta-env-plugin.d.ts",
|
|
29
39
|
"import": "./dist/esm/babel-plugins/import-meta-env-plugin.mjs",
|
|
@@ -61,12 +71,21 @@
|
|
|
61
71
|
"dependencies": {
|
|
62
72
|
"@babel/core": "^7.28.5",
|
|
63
73
|
"@babel/helper-plugin-utils": "^7.27.1",
|
|
74
|
+
"@jridgewell/remapping": "^2.3.0",
|
|
75
|
+
"@jridgewell/trace-mapping": "^0.3.25",
|
|
64
76
|
"@babel/types": "^7.28.5",
|
|
65
|
-
"@
|
|
66
|
-
"@vxrn/
|
|
77
|
+
"@oxc-project/runtime": "^0.112.0",
|
|
78
|
+
"@vxrn/compiler": "1.26.0",
|
|
79
|
+
"@vxrn/debug": "1.26.0",
|
|
80
|
+
"@vxrn/utils": "1.26.0",
|
|
67
81
|
"babel-preset-expo": "~57.0.5",
|
|
82
|
+
"esbuild": "^0.25.12",
|
|
83
|
+
"fast-flow-transform": "^0.0.3",
|
|
68
84
|
"launch-editor": "^2.10.0",
|
|
85
|
+
"magic-string": "^0.30.21",
|
|
69
86
|
"micromatch": "^4.0.8",
|
|
87
|
+
"oxc-parser": "^0.112.0",
|
|
88
|
+
"oxc-transform": "^0.148.0",
|
|
70
89
|
"picocolors": "^1.0.0"
|
|
71
90
|
},
|
|
72
91
|
"devDependencies": {
|
|
@@ -171,6 +171,24 @@ export async function buildMetroConfigInputFromViteConfig(
|
|
|
171
171
|
...buildOutputExclusions,
|
|
172
172
|
]
|
|
173
173
|
|
|
174
|
+
// no babel by default. the worker throws on a babel plugin it has no port
|
|
175
|
+
// for, so opting back in is explicit rather than something you drift into.
|
|
176
|
+
const isNativeTransforms =
|
|
177
|
+
process.env.ONE_METRO_NATIVE_TRANSFORMS === '0'
|
|
178
|
+
? false
|
|
179
|
+
: process.env.ONE_METRO_NATIVE_TRANSFORMS === '1' ||
|
|
180
|
+
metroPluginOptions.nativeTransforms !== false
|
|
181
|
+
|
|
182
|
+
let nativeWorkerPath: string | undefined
|
|
183
|
+
if (isNativeTransforms) {
|
|
184
|
+
// must resolve through createRequire: this module is also built as ESM,
|
|
185
|
+
// where a bare require.resolve is not defined.
|
|
186
|
+
nativeWorkerPath = projectResolve(
|
|
187
|
+
projectRoot,
|
|
188
|
+
'@vxrn/vite-plugin-metro/transformer/metroNativeWorker'
|
|
189
|
+
)
|
|
190
|
+
}
|
|
191
|
+
|
|
174
192
|
const defaultConfig: MetroInputConfig = {
|
|
175
193
|
..._defaultConfig,
|
|
176
194
|
resolver: {
|
|
@@ -214,6 +232,9 @@ export async function buildMetroConfigInputFromViteConfig(
|
|
|
214
232
|
'@vxrn/vite-plugin-metro/babel-transformer'
|
|
215
233
|
),
|
|
216
234
|
},
|
|
235
|
+
// transformerPath is a TOP-LEVEL metro config key, not a transformer option.
|
|
236
|
+
// nesting it under transformer silently leaves metro on its default worker.
|
|
237
|
+
...(nativeWorkerPath ? { transformerPath: nativeWorkerPath } : {}),
|
|
217
238
|
reporter: await getTerminalReporter(projectRoot),
|
|
218
239
|
}
|
|
219
240
|
|
|
@@ -327,6 +348,24 @@ export async function getMetroConfigFromViteConfig(
|
|
|
327
348
|
...buildOutputExclusions,
|
|
328
349
|
]
|
|
329
350
|
|
|
351
|
+
// no babel by default. the worker throws on a babel plugin it has no port
|
|
352
|
+
// for, so opting back in is explicit rather than something you drift into.
|
|
353
|
+
const isNativeTransforms =
|
|
354
|
+
process.env.ONE_METRO_NATIVE_TRANSFORMS === '0'
|
|
355
|
+
? false
|
|
356
|
+
: process.env.ONE_METRO_NATIVE_TRANSFORMS === '1' ||
|
|
357
|
+
metroPluginOptions.nativeTransforms !== false
|
|
358
|
+
|
|
359
|
+
let nativeWorkerPath: string | undefined
|
|
360
|
+
if (isNativeTransforms) {
|
|
361
|
+
// must resolve through createRequire: this module is also built as ESM,
|
|
362
|
+
// where a bare require.resolve is not defined.
|
|
363
|
+
nativeWorkerPath = projectResolve(
|
|
364
|
+
projectRoot,
|
|
365
|
+
'@vxrn/vite-plugin-metro/transformer/metroNativeWorker'
|
|
366
|
+
)
|
|
367
|
+
}
|
|
368
|
+
|
|
330
369
|
const defaultConfig: MetroInputConfig = {
|
|
331
370
|
..._defaultConfig,
|
|
332
371
|
resolver: {
|
|
@@ -378,6 +417,9 @@ export async function getMetroConfigFromViteConfig(
|
|
|
378
417
|
'@vxrn/vite-plugin-metro/babel-transformer'
|
|
379
418
|
),
|
|
380
419
|
},
|
|
420
|
+
// transformerPath is a TOP-LEVEL metro config key, not a transformer option.
|
|
421
|
+
// nesting it under transformer silently leaves metro on its default worker.
|
|
422
|
+
...(nativeWorkerPath ? { transformerPath: nativeWorkerPath } : {}),
|
|
381
423
|
reporter: await getTerminalReporter(projectRoot),
|
|
382
424
|
}
|
|
383
425
|
|
|
@@ -40,6 +40,7 @@ export function patchMetroServerWithViteConfigAndMetroPluginOptions(
|
|
|
40
40
|
// config: server.config,
|
|
41
41
|
babelConfig,
|
|
42
42
|
oneViteMetroBabelConfig: options.oneViteMetroBabelConfig,
|
|
43
|
+
nativeTransformModules: options.nativeTransformModules,
|
|
43
44
|
}
|
|
44
45
|
return originalTransformFile(
|
|
45
46
|
filePath,
|
|
@@ -52,6 +52,18 @@ export type MetroPluginOptions = {
|
|
|
52
52
|
/** Consider using babelConfigOverrides instead */
|
|
53
53
|
babelConfig?: TransformOptions
|
|
54
54
|
babelConfigOverrides?: (defaultConfig: TransformOptions) => TransformOptions
|
|
55
|
+
/**
|
|
56
|
+
* Module ids of transforms to run on the native transform path (the
|
|
57
|
+
* default), which runs no babel at all. Each module
|
|
58
|
+
* default-exports a `NativeTransform`: `(code, ctx) => string | null`. They
|
|
59
|
+
* run in order, on the original source, before one's own ports — the same
|
|
60
|
+
* view of the file a babel plugin gets.
|
|
61
|
+
*
|
|
62
|
+
* This is how a babel plugin that has no native port gets replaced rather
|
|
63
|
+
* than dropped. The worker refuses to build when it sees a babel plugin it
|
|
64
|
+
* cannot run, so porting it here is the way through.
|
|
65
|
+
*/
|
|
66
|
+
nativeTransformModules?: string[]
|
|
55
67
|
/**
|
|
56
68
|
* internal marker used by one's babel preset to avoid double-applying its
|
|
57
69
|
* plugin chain when one already supplied the vite metro babel config.
|
|
@@ -74,6 +86,16 @@ export type MetroPluginOptions = {
|
|
|
74
86
|
* Use 'lazy' to speed up dev server startup when you don't always need Metro.
|
|
75
87
|
*/
|
|
76
88
|
startup?: 'eager' | 'lazy'
|
|
89
|
+
/**
|
|
90
|
+
* Run Metro's transforms through the oxc worker, which uses no babel at all.
|
|
91
|
+
*
|
|
92
|
+
* On by default. The worker refuses to build when it sees a babel plugin it
|
|
93
|
+
* has no port for, so a plugin is never silently dropped: port it and list it
|
|
94
|
+
* in `nativeTransformModules`, or set this to `false` to go back to babel.
|
|
95
|
+
*
|
|
96
|
+
* `ONE_METRO_NATIVE_TRANSFORMS=0` turns it off for one run.
|
|
97
|
+
*/
|
|
98
|
+
nativeTransforms?: boolean
|
|
77
99
|
}
|
|
78
100
|
|
|
79
101
|
export function metroPlugin(options: MetroPluginOptions = {}): PluginOption {
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// fixture for the nativeTransformModules test: the shape a user's own native
|
|
2
|
+
// transform takes now that there is no babel to host a plugin.
|
|
3
|
+
const path = require('node:path')
|
|
4
|
+
|
|
5
|
+
module.exports = function exampleNativeTransform(code, ctx) {
|
|
6
|
+
// ctx.filename is absolute. metro's own name for the file is relative to the
|
|
7
|
+
// project root, so a transform matching on paths (an include list, a
|
|
8
|
+
// node_modules skip) would quietly decide the opposite of what the babel
|
|
9
|
+
// plugin it replaced decided.
|
|
10
|
+
if (!path.isAbsolute(ctx.filename)) {
|
|
11
|
+
throw new Error(`[fixture] expected an absolute filename, got ${ctx.filename}`)
|
|
12
|
+
}
|
|
13
|
+
if (!code.includes('__EXAMPLE_BUILD_ID')) return null
|
|
14
|
+
return code
|
|
15
|
+
.replace(/__EXAMPLE_BUILD_ID/g, JSON.stringify(`${ctx.platform}-build`))
|
|
16
|
+
.replace(/__EXAMPLE_FILENAME/g, JSON.stringify(ctx.filename))
|
|
17
|
+
}
|