@vxrn/vite-plugin-metro 1.26.0 → 2.0.0-beta.33.1
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/babel-plugins/import-meta-env-plugin.cjs +14 -25
- package/dist/cjs/babel-plugins/import-meta-env-plugin.native.js +14 -25
- package/dist/cjs/babel-plugins/import-meta-env-plugin.native.js.map +1 -1
- package/dist/cjs/metro-config/getMetroConfigFromViteConfig.cjs +3 -4
- package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js +3 -4
- package/dist/cjs/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
- package/dist/cjs/transformer/metroNativeWorker.native.js.map +1 -1
- package/dist/cjs/transformer/metroNativeWorker.test.cjs +11 -0
- package/dist/cjs/transformer/metroNativeWorker.test.native.js +15 -0
- package/dist/cjs/transformer/metroNativeWorker.test.native.js.map +1 -1
- package/dist/esm/babel-plugins/import-meta-env-plugin.mjs +1 -1
- package/dist/esm/babel-plugins/import-meta-env-plugin.mjs.map +1 -1
- package/dist/esm/babel-plugins/import-meta-env-plugin.native.js +1 -1
- package/dist/esm/babel-plugins/import-meta-env-plugin.native.js.map +1 -1
- package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs +3 -4
- package/dist/esm/metro-config/getMetroConfigFromViteConfig.mjs.map +1 -1
- package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js +3 -4
- package/dist/esm/metro-config/getMetroConfigFromViteConfig.native.js.map +1 -1
- package/dist/esm/transformer/metroNativeWorker.mjs.map +1 -1
- package/dist/esm/transformer/metroNativeWorker.native.js.map +1 -1
- package/dist/esm/transformer/metroNativeWorker.test.mjs +11 -0
- package/dist/esm/transformer/metroNativeWorker.test.mjs.map +1 -1
- package/dist/esm/transformer/metroNativeWorker.test.native.js +15 -0
- package/dist/esm/transformer/metroNativeWorker.test.native.js.map +1 -1
- package/package.json +4 -5
- package/src/babel-plugins/import-meta-env-plugin.ts +1 -2
- package/src/metro-config/getMetroConfigFromViteConfig.ts +11 -18
- package/src/transformer/metroNativeWorker.test.ts +173 -87
- package/src/transformer/metroNativeWorker.ts +241 -62
- package/types/babel-plugins/import-meta-env-plugin.d.ts +1 -1
- package/types/babel-plugins/import-meta-env-plugin.d.ts.map +1 -1
- package/types/metro-config/getMetroConfigFromViteConfig.d.ts.map +1 -1
- package/types/transformer/metroNativeWorker.d.ts.map +1 -1
|
@@ -1 +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","babelCalls","transformSync","transformAsync","transformFromAstSync","parse","mock","importOriginal","actual","fn","args","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","length","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","sourceCode","Object","entries","toMatch","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","Array","isArray","tuple","toHaveProperty","consumer","addLineIndex","findIndex","l","includes","mainSource","mainRes","emittedMain","asyncRequirePath","wrappedAsyncRequire","isDev","mainFn","promise","Promise","then","resolved","default","resWrapped","fullMapWrapped","consumerWrapped","linesWrapped","lineIndexWrapped","generatedColWrapped","posWrapped","Number","resUnwrapped","unstable_disableModuleWrapping","fullMapUnwrapped","consumerUnwrapped","linesUnwrapped","lineIndexUnwrapped","generatedColUnwrapped","posUnwrapped","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.mjs"],"sourcesContent":["import { beforeEach, describe, expect, it, vi } from \"vitest\";\nimport * as vm from \"node:vm\";\nimport { parseSync } from \"oxc-parser\";\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { createRequire } from \"node: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\nconst 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 (importOriginal) => {\n\tconst actual = await importOriginal();\n\treturn {\n\t\t...actual,\n\t\ttransform: vi.fn((...args) => {\n\t\t\tbabelCalls.transform++;\n\t\t\treturn actual.transform(...args);\n\t\t}),\n\t\ttransformSync: vi.fn((...args) => {\n\t\t\tbabelCalls.transformSync++;\n\t\t\treturn actual.transformSync(...args);\n\t\t}),\n\t\ttransformAsync: vi.fn((...args) => {\n\t\t\tbabelCalls.transformAsync++;\n\t\t\treturn actual.transformAsync(...args);\n\t\t}),\n\t\ttransformFromAstSync: vi.fn((...args) => {\n\t\t\tbabelCalls.transformFromAstSync++;\n\t\t\treturn actual.transformFromAstSync(...args);\n\t\t}),\n\t\tparse: vi.fn((...args) => {\n\t\t\tbabelCalls.parse++;\n\t\t\treturn actual.parse(...args);\n\t\t}),\n\t\tparseSync: vi.fn((...args) => {\n\t\t\tbabelCalls.parseSync++;\n\t\t\treturn actual.parseSync(...args);\n\t\t})\n\t};\n});\nbeforeEach(() => {\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\", () => {\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 (filename, sourceMap) => {\n\t\tconst 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\tconst module = { exports: {} };\n\t\tconst { code, map } = result.output[0].data;\n\t\tvm.runInNewContext(code, { __d(factory) {\n\t\t\tfactory({}, () => {}, () => {}, () => {}, module, module.exports, []);\n\t\t} });\n\t\texpect(module.exports.answer).toBe(42);\n\t\texpect(map.every((entry) => entry.length === 2)).toBe(true);\n\t\tassertZeroBabelCalls();\n\t});\n\tit(\"minifies production modules with executable output and original source locations\", async () => {\n\t\tconst source = \"exports.answer = function answer(value) {\\n return value + 42\\n}\\n\";\n\t\tconst { 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\tconst module = { exports: {} };\n\t\tvm.runInNewContext(code, { __d(factory) {\n\t\t\tfactory({}, () => {}, () => {}, () => {}, module, module.exports, []);\n\t\t} });\n\t\texpect(module.exports.answer(8)).toBe(50);\n\t\tconst msm = await import(\"metro-source-map\");\n\t\tconst 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\tconst offset = code.indexOf(\"42\");\n\t\texpect(offset).toBeGreaterThan(-1);\n\t\tconst prefix = code.slice(0, offset).split(\"\\n\");\n\t\tconst 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\", () => {\n\t\tconst 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\tconst names = deps.map((d) => d.name);\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\tconst reactDep = deps.find((d) => d.name === \"react\");\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\tconst 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\tconst helperDep = deps.find((d) => d.name === \"./helper\");\n\t\texpect(helperDep.data.isESMImportAtSource).toBe(false);\n\t\texpect(helperDep.data.asyncType).toBeNull();\n\t\texpect(deps.find((d) => d.name === \"./dynamic-module\").data.asyncType).toBe(\"async\");\n\t});\n\tit(\"marks requires inside a try block optional\", () => {\n\t\tconst 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((d) => d.name === \"react-native-worklets-core\").data.isOptional).toBeUndefined();\n\t\tconst on = extractDependencies(code, \"setup.js\", { allowOptionalDependencies: true });\n\t\texpect(on.find((d) => d.name === \"react-native-worklets-core\").data.isOptional).toBe(true);\n\t\texpect(on.find((d) => d.name === \"./always-there\").data.isOptional).toBeUndefined();\n\t\texpect(extractDependencies(code, \"setup.js\", { allowOptionalDependencies: { exclude: [\"react-native-worklets-core\"] } }).find((d) => d.name === \"react-native-worklets-core\").data.isOptional).toBeUndefined();\n\t});\n\tit(\"wraps modules in Metro CommonJS format with and without moduleId\", () => {\n\t\tconst code = \"exports.val = 123;\";\n\t\tconst 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 () => {\n\t\tconst 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\tconst 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\tconst 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\tconst depNames = result.dependencies.map((d) => d.name);\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 () => {\n\t\tfor (const [filename, sourceCode] of Object.entries({\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\t\tconst result = await transform({}, \"/project\", filename, Buffer.from(sourceCode, \"utf8\"), {\n\t\t\t\tdev: true,\n\t\t\t\tplatform: \"ios\",\n\t\t\t\ttype: \"module\"\n\t\t\t});\n\t\t\tassertZeroBabelCalls();\n\t\t\tconst code = result.output[0].data.code;\n\t\t\texpect(code, filename).not.toMatch(/\\basync\\s+function\\s*\\*/);\n\t\t\texpect(code, filename).not.toMatch(/\\basync\\s*\\*\\s*[\\w$[]/);\n\t\t\texpect(code, filename).not.toMatch(/\\bfor\\s+await\\s*\\(/);\n\t\t}\n\t});\n\tit(\"handles JSON files without Babel\", async () => {\n\t\tconst jsonSource = JSON.stringify({\n\t\t\tname: \"my-package\",\n\t\t\tversion: \"1.0.0\"\n\t\t});\n\t\tconst 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 () => {\n\t\tconst 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((d) => d.name)).toContain(\"react-native/Libraries/Image/AssetRegistry\");\n\t});\n\tit(\"handles Flow files by stripping types without Babel\", async () => {\n\t\tconst 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\", () => {\n\t\tconst key1 = getCacheKey({\n\t\t\tglobalPrefix: \"__one_\",\n\t\t\tminifierPath: \"terser\"\n\t\t}, { projectRoot: \"/app\" });\n\t\tconst key2 = getCacheKey({\n\t\t\tglobalPrefix: \"__one_\",\n\t\t\tminifierPath: \"terser\"\n\t\t}, { projectRoot: \"/app\" });\n\t\tconst 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).toBe(\"string\");\n\t\texpect(key1.length).toBe(64);\n\t});\n\tit(\"correctly sets transformerPath in buildMetroConfigInputFromViteConfig when active\", async () => {\n\t\tconst mockViteConfig = { root: process.cwd() };\n\t\tdelete process.env.ONE_METRO_NATIVE_TRANSFORMS;\n\t\tconst 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 () => {\n\t\tconst depSource = \"exports.value = 42;\";\n\t\tconst aSource = \"const dep = require(\\\"./dep\\\"); module.exports = { doubled: dep.value * 2 };\";\n\t\tconst 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\tconst 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\tconst aEmittedCode = aRes.output[0].data.code;\n\t\texpect(aEmittedCode).toContain(\"require(_dependencyMap[0], \\\"./dep\\\")\");\n\t\tconst polyfillPath = __require.resolve(\"metro-runtime/src/polyfills/require.js\");\n\t\tconst polyfillCode = fs.readFileSync(polyfillPath, \"utf8\");\n\t\tconst 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 () => {\n\t\tconst depSource = \"export const greeting = \\\"Hello Metro Native\\\";\";\n\t\tconst aSource = \"import { greeting } from \\\"./dep\\\"; export const message = greeting.toUpperCase();\";\n\t\tconst 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\tconst 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\tconst polyfillPath = __require.resolve(\"metro-runtime/src/polyfills/require.js\");\n\t\tconst polyfillCode = fs.readFileSync(polyfillPath, \"utf8\");\n\t\tconst 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 () => {\n\t\tconst 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\tconst emitted = res.output[0].data.code;\n\t\texpect(emitted).not.toContain(\"_dependencyMap[0]\");\n\t\texpect(emitted).toMatch(/require\\d*\\(\"\\.\\/local\"\\)/);\n\t\tconst polyfillPath = __require.resolve(\"metro-runtime/src/polyfills/require.js\");\n\t\tconst polyfillCode = fs.readFileSync(polyfillPath, \"utf8\");\n\t\tconst 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 () => {\n\t\tconst 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((d) => d.name)).toContain(\"./dep\");\n\t\tconst syncDep = res.dependencies.find((d) => d.name === \"./dep\" && d.data.asyncType === null);\n\t\tconst asyncDep = res.dependencies.find((d) => d.name === \"./dep\" && d.data.asyncType === \"async\");\n\t\texpect(syncDep).toBeDefined();\n\t\texpect(asyncDep).toBeDefined();\n\t\texpect(syncDep.data.index).not.toEqual(asyncDep.data.index);\n\t\tconst emitted = res.output[0].data.code;\n\t\tconst 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 () => {\n\t\tconst 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\tconst map = res.output[0].data.map;\n\t\texpect(Array.isArray(map)).toBe(true);\n\t\texpect(map.length).toBeGreaterThan(0);\n\t\tfor (const tuple of map) {\n\t\t\texpect(Array.isArray(tuple)).toBe(true);\n\t\t\texpect(typeof tuple[0]).toBe(\"number\");\n\t\t\texpect(typeof tuple[1]).toBe(\"number\");\n\t\t\texpect(tuple).not.toHaveProperty(\"version\");\n\t\t\texpect(tuple).not.toHaveProperty(\"mappings\");\n\t\t}\n\t\tconst msm = await import(\"metro-source-map\");\n\t\tconst 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\tconst consumer = new msm.Consumer(fullMap);\n\t\tconst addLineIndex = res.output[0].data.code.split(\"\\n\").findIndex((l) => l.includes(\"function add\"));\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 () => {\n\t\tconst 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\tconst emitted = res.output[0].data.code;\n\t\texpect(emitted).not.toContain(\"_dependencyMap[0]\");\n\t\texpect(emitted).toMatch(/require\\d*\\(\"\\.\\/local\"\\)/);\n\t\tconst polyfillPath = __require.resolve(\"metro-runtime/src/polyfills/require.js\");\n\t\tconst polyfillCode = fs.readFileSync(polyfillPath, \"utf8\");\n\t\tconst 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 () => {\n\t\tconst depSource = \"exports.message = \\\"hello dynamic\\\";\";\n\t\tconst mainSource = \"module.exports = () => import(\\\"./dep\\\");\";\n\t\tconst 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\tconst 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\tconst depNames = mainRes.dependencies.map((d) => d.name);\n\t\texpect(depNames).toContain(\"./dep\");\n\t\texpect(depNames).toContain(\"metro-runtime/src/modules/asyncRequire\");\n\t\texpect(mainRes.dependencies.find((d) => d.name === \"./dep\").data.asyncType).toBe(\"async\");\n\t\tconst 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\tconst polyfillPath = __require.resolve(\"metro-runtime/src/polyfills/require.js\");\n\t\tconst polyfillCode = fs.readFileSync(polyfillPath, \"utf8\");\n\t\tconst asyncRequirePath = __require.resolve(\"metro-runtime/src/modules/asyncRequire.js\");\n\t\tconst wrappedAsyncRequire = wrapModule(fs.readFileSync(asyncRequirePath, \"utf8\"), {\n\t\t\tmoduleId: 1,\n\t\t\tdependencyIds: []\n\t\t});\n\t\tfor (const isDev of [true, false]) {\n\t\t\tconst contextObj = {\n\t\t\t\t__DEV__: isDev,\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\tconst mainFn = vm.runInContext(\"global.__r(0)\", contextObj);\n\t\t\texpect(typeof mainFn).toBe(\"function\");\n\t\t\tconst promise = mainFn();\n\t\t\texpect(promise instanceof Promise || promise && typeof promise.then === \"function\").toBe(true);\n\t\t\tconst 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 () => {\n\t\tconst sourceCode = \"const a = require(\\\"./dep\\\"), b = 42;\";\n\t\tconst 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\tconst msm = await import(\"metro-source-map\");\n\t\tconst 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\tconst consumerWrapped = new msm.Consumer(fullMapWrapped);\n\t\tconst linesWrapped = resWrapped.output[0].data.code.split(\"\\n\");\n\t\tconst lineIndexWrapped = linesWrapped.findIndex((l) => l.includes(\"b = 42\"));\n\t\texpect(lineIndexWrapped).toBeGreaterThanOrEqual(0);\n\t\tconst generatedColWrapped = linesWrapped[lineIndexWrapped].indexOf(\"b = 42\");\n\t\texpect(generatedColWrapped).toBeGreaterThan(0);\n\t\tconst 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\tconst 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\tconst 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\tconst consumerUnwrapped = new msm.Consumer(fullMapUnwrapped);\n\t\tconst linesUnwrapped = resUnwrapped.output[0].data.code.split(\"\\n\");\n\t\tconst lineIndexUnwrapped = linesUnwrapped.findIndex((l) => l.includes(\"b = 42\"));\n\t\texpect(lineIndexUnwrapped).toBeGreaterThanOrEqual(0);\n\t\tconst generatedColUnwrapped = linesUnwrapped[lineIndexUnwrapped].indexOf(\"b = 42\");\n\t\tconst 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 () => {\n\t\tconst 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\texpect(result.dependencies.find((d) => d.data.contextParams != null)?.name).toBe(\"./app\");\n\t\tconst calls = [];\n\t\tlet ctx;\n\t\tvm.runInNewContext(result.output[0].data.code, { __d: (factory) => {\n\t\t\tconst module = { exports: {} };\n\t\t\tconst req = (...args) => {\n\t\t\t\tcalls.push(args);\n\t\t\t\treturn { keys: () => [] };\n\t\t\t};\n\t\t\treq.context = () => {\n\t\t\t\tthrow new Error(\"fallbackRequireContext reached\");\n\t\t\t};\n\t\t\tfactory({}, req, () => ({}), () => ({}), 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 () => {\n\t\tconst 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\tlet collect;\n\t\tvm.runInNewContext(asHermesWouldSeeIt, { __d: (factory) => {\n\t\t\tconst module = { exports: {} };\n\t\t\tfactory({}, () => ({}), () => ({}), () => ({}), 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\", () => {\n\tit(\"inlines process.env.ONE_SERVER_URL so a native bundle can find its loaders\", () => {\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\", () => {\n\t\tconst 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\", () => {\n\t\tconst 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\", () => {\n\t\tconst 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\", () => {\n\t\tconst 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\", () => {\n\t\tconst 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\", () => {\n\t\texpect(applyInlineEnvVars(\"const a = import.meta.env.DEV ? x : y;\", \"a.ts\", true, { DEV: false })).toContain(\"const a = y;\");\n\t\tconst 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 () => {\n\t\tconst 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\", () => {\n\t\tconst withPlugins = (plugins) => ({ customTransformOptions: { vite: { babelConfig: { plugins } } } });\n\t\texpect(() => assertNoUnportedBabelPlugins(withPlugins([\n\t\t\t[\"@vxrn/vite-plugin-metro/babel-plugins/import-meta-env-plugin\", { env: {} }],\n\t\t\t\"one/babel-plugin-environment-guard\",\n\t\t\t\"hot-updater/babel-plugin\"\n\t\t]))).toThrow(/hot-updater\\/babel-plugin/);\n\t\texpect(() => assertNoUnportedBabelPlugins(withPlugins([\n\t\t\t[\"@vxrn/vite-plugin-metro/babel-plugins/import-meta-env-plugin\", { env: {} }],\n\t\t\t\"one/babel-plugin-environment-guard\",\n\t\t\t[\"one/babel-plugin-remove-server-code\", { routerRoot: \"app\" }],\n\t\t\t[\"babel-plugin-module-resolver\", { alias: {} }],\n\t\t\t[\"one/babel-plugin-one-router-metro\", {}],\n\t\t\t\"one/babel-plugin-inline-one-server-url\",\n\t\t\t\"babel-plugin-react-compiler\",\n\t\t\t\"react-native-reanimated/plugin\"\n\t\t]))).not.toThrow();\n\t});\n\tit(\"turns a server-only import into a throw and drops native-only\", () => {\n\t\tconst 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\tconst parsed = parseSync(\"route.ts\", out, { lang: \"ts\" });\n\t\texpect(parsed.errors).toEqual([]);\n\t\texpect(parsed.program.body.map((n) => n.type)).toContain(\"ThrowStatement\");\n\t});\n\tit(\"reads the router root off one's remove-server-code plugin entry\", () => {\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":[]}
|
|
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","babelCalls","transformSync","transformAsync","transformFromAstSync","parse","mock","importOriginal","actual","fn","args","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","length","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","sourceCode","Object","entries","toMatch","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","blockList","watchman","resolver","isBlocked","file","some","pattern","test","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","Array","isArray","tuple","toHaveProperty","consumer","addLineIndex","findIndex","l","includes","mainSource","mainRes","emittedMain","asyncRequirePath","wrappedAsyncRequire","isDev","mainFn","promise","Promise","then","resolved","default","resWrapped","fullMapWrapped","consumerWrapped","linesWrapped","lineIndexWrapped","generatedColWrapped","posWrapped","Number","resUnwrapped","unstable_disableModuleWrapping","fullMapUnwrapped","consumerUnwrapped","linesUnwrapped","lineIndexUnwrapped","generatedColUnwrapped","posUnwrapped","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.mjs"],"sourcesContent":["import { beforeEach, describe, expect, it, vi } from \"vitest\";\nimport * as vm from \"node:vm\";\nimport { parseSync } from \"oxc-parser\";\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { createRequire } from \"node: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\nconst 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 (importOriginal) => {\n\tconst actual = await importOriginal();\n\treturn {\n\t\t...actual,\n\t\ttransform: vi.fn((...args) => {\n\t\t\tbabelCalls.transform++;\n\t\t\treturn actual.transform(...args);\n\t\t}),\n\t\ttransformSync: vi.fn((...args) => {\n\t\t\tbabelCalls.transformSync++;\n\t\t\treturn actual.transformSync(...args);\n\t\t}),\n\t\ttransformAsync: vi.fn((...args) => {\n\t\t\tbabelCalls.transformAsync++;\n\t\t\treturn actual.transformAsync(...args);\n\t\t}),\n\t\ttransformFromAstSync: vi.fn((...args) => {\n\t\t\tbabelCalls.transformFromAstSync++;\n\t\t\treturn actual.transformFromAstSync(...args);\n\t\t}),\n\t\tparse: vi.fn((...args) => {\n\t\t\tbabelCalls.parse++;\n\t\t\treturn actual.parse(...args);\n\t\t}),\n\t\tparseSync: vi.fn((...args) => {\n\t\t\tbabelCalls.parseSync++;\n\t\t\treturn actual.parseSync(...args);\n\t\t})\n\t};\n});\nbeforeEach(() => {\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\", () => {\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 (filename, sourceMap) => {\n\t\tconst 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\tconst module = { exports: {} };\n\t\tconst { code, map } = result.output[0].data;\n\t\tvm.runInNewContext(code, { __d(factory) {\n\t\t\tfactory({}, () => {}, () => {}, () => {}, module, module.exports, []);\n\t\t} });\n\t\texpect(module.exports.answer).toBe(42);\n\t\texpect(map.every((entry) => entry.length === 2)).toBe(true);\n\t\tassertZeroBabelCalls();\n\t});\n\tit(\"minifies production modules with executable output and original source locations\", async () => {\n\t\tconst source = \"exports.answer = function answer(value) {\\n return value + 42\\n}\\n\";\n\t\tconst { 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\tconst module = { exports: {} };\n\t\tvm.runInNewContext(code, { __d(factory) {\n\t\t\tfactory({}, () => {}, () => {}, () => {}, module, module.exports, []);\n\t\t} });\n\t\texpect(module.exports.answer(8)).toBe(50);\n\t\tconst msm = await import(\"metro-source-map\");\n\t\tconst 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\tconst offset = code.indexOf(\"42\");\n\t\texpect(offset).toBeGreaterThan(-1);\n\t\tconst prefix = code.slice(0, offset).split(\"\\n\");\n\t\tconst 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\", () => {\n\t\tconst 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\tconst names = deps.map((d) => d.name);\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\tconst reactDep = deps.find((d) => d.name === \"react\");\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\tconst 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\tconst helperDep = deps.find((d) => d.name === \"./helper\");\n\t\texpect(helperDep.data.isESMImportAtSource).toBe(false);\n\t\texpect(helperDep.data.asyncType).toBeNull();\n\t\texpect(deps.find((d) => d.name === \"./dynamic-module\").data.asyncType).toBe(\"async\");\n\t});\n\tit(\"marks requires inside a try block optional\", () => {\n\t\tconst 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((d) => d.name === \"react-native-worklets-core\").data.isOptional).toBeUndefined();\n\t\tconst on = extractDependencies(code, \"setup.js\", { allowOptionalDependencies: true });\n\t\texpect(on.find((d) => d.name === \"react-native-worklets-core\").data.isOptional).toBe(true);\n\t\texpect(on.find((d) => d.name === \"./always-there\").data.isOptional).toBeUndefined();\n\t\texpect(extractDependencies(code, \"setup.js\", { allowOptionalDependencies: { exclude: [\"react-native-worklets-core\"] } }).find((d) => d.name === \"react-native-worklets-core\").data.isOptional).toBeUndefined();\n\t});\n\tit(\"wraps modules in Metro CommonJS format with and without moduleId\", () => {\n\t\tconst code = \"exports.val = 123;\";\n\t\tconst 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 () => {\n\t\tconst 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\tconst 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\tconst 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\tconst depNames = result.dependencies.map((d) => d.name);\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 () => {\n\t\tfor (const [filename, sourceCode] of Object.entries({\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\t\tconst result = await transform({}, \"/project\", filename, Buffer.from(sourceCode, \"utf8\"), {\n\t\t\t\tdev: true,\n\t\t\t\tplatform: \"ios\",\n\t\t\t\ttype: \"module\"\n\t\t\t});\n\t\t\tassertZeroBabelCalls();\n\t\t\tconst code = result.output[0].data.code;\n\t\t\texpect(code, filename).not.toMatch(/\\basync\\s+function\\s*\\*/);\n\t\t\texpect(code, filename).not.toMatch(/\\basync\\s*\\*\\s*[\\w$[]/);\n\t\t\texpect(code, filename).not.toMatch(/\\bfor\\s+await\\s*\\(/);\n\t\t}\n\t});\n\tit(\"handles JSON files without Babel\", async () => {\n\t\tconst jsonSource = JSON.stringify({\n\t\t\tname: \"my-package\",\n\t\t\tversion: \"1.0.0\"\n\t\t});\n\t\tconst 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 () => {\n\t\tconst 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((d) => d.name)).toContain(\"react-native/Libraries/Image/AssetRegistry\");\n\t});\n\tit(\"handles Flow files by stripping types without Babel\", async () => {\n\t\tconst 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\", () => {\n\t\tconst key1 = getCacheKey({\n\t\t\tglobalPrefix: \"__one_\",\n\t\t\tminifierPath: \"terser\"\n\t\t}, { projectRoot: \"/app\" });\n\t\tconst key2 = getCacheKey({\n\t\t\tglobalPrefix: \"__one_\",\n\t\t\tminifierPath: \"terser\"\n\t\t}, { projectRoot: \"/app\" });\n\t\tconst 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).toBe(\"string\");\n\t\texpect(key1.length).toBe(64);\n\t});\n\tit(\"correctly sets transformerPath in buildMetroConfigInputFromViteConfig when active\", async () => {\n\t\tconst mockViteConfig = { root: process.cwd() };\n\t\tdelete process.env.ONE_METRO_NATIVE_TRANSFORMS;\n\t\tconst 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(\"excludes volatile compiler caches from Metro without hiding package output\", async () => {\n\t\tconst blockList = (await buildMetroConfigInputFromViteConfig({ root: process.cwd() }, { watchman: false })).defaultConfig.resolver.blockList;\n\t\tconst isBlocked = (file) => blockList.some((pattern) => pattern.test(file));\n\t\texpect(isBlocked(\"/home/runner/work/one/one/tests/test-app-cases/node_modules/.vxrn/compiler-cache\")).toBe(true);\n\t\texpect(isBlocked(\"C:\\\\workspace\\\\tests\\\\test-app-cases\\\\node_modules\\\\.vxrn\\\\compiler-cache\")).toBe(true);\n\t\texpect(isBlocked(\"/home/runner/work/one/one/packages/one/dist/esm/index.mjs\")).toBe(false);\n\t});\n\tit(\"transforms and executes a real 2-module Metro bundle through metro-runtime require polyfill\", async () => {\n\t\tconst depSource = \"exports.value = 42;\";\n\t\tconst aSource = \"const dep = require(\\\"./dep\\\"); module.exports = { doubled: dep.value * 2 };\";\n\t\tconst 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\tconst 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\tconst aEmittedCode = aRes.output[0].data.code;\n\t\texpect(aEmittedCode).toContain(\"require(_dependencyMap[0], \\\"./dep\\\")\");\n\t\tconst polyfillPath = __require.resolve(\"metro-runtime/src/polyfills/require.js\");\n\t\tconst polyfillCode = fs.readFileSync(polyfillPath, \"utf8\");\n\t\tconst 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 () => {\n\t\tconst depSource = \"export const greeting = \\\"Hello Metro Native\\\";\";\n\t\tconst aSource = \"import { greeting } from \\\"./dep\\\"; export const message = greeting.toUpperCase();\";\n\t\tconst 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\tconst 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\tconst polyfillPath = __require.resolve(\"metro-runtime/src/polyfills/require.js\");\n\t\tconst polyfillCode = fs.readFileSync(polyfillPath, \"utf8\");\n\t\tconst 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 () => {\n\t\tconst 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\tconst emitted = res.output[0].data.code;\n\t\texpect(emitted).not.toContain(\"_dependencyMap[0]\");\n\t\texpect(emitted).toMatch(/require\\d*\\(\"\\.\\/local\"\\)/);\n\t\tconst polyfillPath = __require.resolve(\"metro-runtime/src/polyfills/require.js\");\n\t\tconst polyfillCode = fs.readFileSync(polyfillPath, \"utf8\");\n\t\tconst 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 () => {\n\t\tconst 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((d) => d.name)).toContain(\"./dep\");\n\t\tconst syncDep = res.dependencies.find((d) => d.name === \"./dep\" && d.data.asyncType === null);\n\t\tconst asyncDep = res.dependencies.find((d) => d.name === \"./dep\" && d.data.asyncType === \"async\");\n\t\texpect(syncDep).toBeDefined();\n\t\texpect(asyncDep).toBeDefined();\n\t\texpect(syncDep.data.index).not.toEqual(asyncDep.data.index);\n\t\tconst emitted = res.output[0].data.code;\n\t\tconst 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 () => {\n\t\tconst 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\tconst map = res.output[0].data.map;\n\t\texpect(Array.isArray(map)).toBe(true);\n\t\texpect(map.length).toBeGreaterThan(0);\n\t\tfor (const tuple of map) {\n\t\t\texpect(Array.isArray(tuple)).toBe(true);\n\t\t\texpect(typeof tuple[0]).toBe(\"number\");\n\t\t\texpect(typeof tuple[1]).toBe(\"number\");\n\t\t\texpect(tuple).not.toHaveProperty(\"version\");\n\t\t\texpect(tuple).not.toHaveProperty(\"mappings\");\n\t\t}\n\t\tconst msm = await import(\"metro-source-map\");\n\t\tconst 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\tconst consumer = new msm.Consumer(fullMap);\n\t\tconst addLineIndex = res.output[0].data.code.split(\"\\n\").findIndex((l) => l.includes(\"function add\"));\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 () => {\n\t\tconst 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\tconst emitted = res.output[0].data.code;\n\t\texpect(emitted).not.toContain(\"_dependencyMap[0]\");\n\t\texpect(emitted).toMatch(/require\\d*\\(\"\\.\\/local\"\\)/);\n\t\tconst polyfillPath = __require.resolve(\"metro-runtime/src/polyfills/require.js\");\n\t\tconst polyfillCode = fs.readFileSync(polyfillPath, \"utf8\");\n\t\tconst 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 () => {\n\t\tconst depSource = \"exports.message = \\\"hello dynamic\\\";\";\n\t\tconst mainSource = \"module.exports = () => import(\\\"./dep\\\");\";\n\t\tconst 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\tconst 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\tconst depNames = mainRes.dependencies.map((d) => d.name);\n\t\texpect(depNames).toContain(\"./dep\");\n\t\texpect(depNames).toContain(\"metro-runtime/src/modules/asyncRequire\");\n\t\texpect(mainRes.dependencies.find((d) => d.name === \"./dep\").data.asyncType).toBe(\"async\");\n\t\tconst 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\tconst polyfillPath = __require.resolve(\"metro-runtime/src/polyfills/require.js\");\n\t\tconst polyfillCode = fs.readFileSync(polyfillPath, \"utf8\");\n\t\tconst asyncRequirePath = __require.resolve(\"metro-runtime/src/modules/asyncRequire.js\");\n\t\tconst wrappedAsyncRequire = wrapModule(fs.readFileSync(asyncRequirePath, \"utf8\"), {\n\t\t\tmoduleId: 1,\n\t\t\tdependencyIds: []\n\t\t});\n\t\tfor (const isDev of [true, false]) {\n\t\t\tconst contextObj = {\n\t\t\t\t__DEV__: isDev,\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\tconst mainFn = vm.runInContext(\"global.__r(0)\", contextObj);\n\t\t\texpect(typeof mainFn).toBe(\"function\");\n\t\t\tconst promise = mainFn();\n\t\t\texpect(promise instanceof Promise || promise && typeof promise.then === \"function\").toBe(true);\n\t\t\tconst 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 () => {\n\t\tconst sourceCode = \"const a = require(\\\"./dep\\\"), b = 42;\";\n\t\tconst 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\tconst msm = await import(\"metro-source-map\");\n\t\tconst 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\tconst consumerWrapped = new msm.Consumer(fullMapWrapped);\n\t\tconst linesWrapped = resWrapped.output[0].data.code.split(\"\\n\");\n\t\tconst lineIndexWrapped = linesWrapped.findIndex((l) => l.includes(\"b = 42\"));\n\t\texpect(lineIndexWrapped).toBeGreaterThanOrEqual(0);\n\t\tconst generatedColWrapped = linesWrapped[lineIndexWrapped].indexOf(\"b = 42\");\n\t\texpect(generatedColWrapped).toBeGreaterThan(0);\n\t\tconst 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\tconst 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\tconst 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\tconst consumerUnwrapped = new msm.Consumer(fullMapUnwrapped);\n\t\tconst linesUnwrapped = resUnwrapped.output[0].data.code.split(\"\\n\");\n\t\tconst lineIndexUnwrapped = linesUnwrapped.findIndex((l) => l.includes(\"b = 42\"));\n\t\texpect(lineIndexUnwrapped).toBeGreaterThanOrEqual(0);\n\t\tconst generatedColUnwrapped = linesUnwrapped[lineIndexUnwrapped].indexOf(\"b = 42\");\n\t\tconst 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 () => {\n\t\tconst 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\texpect(result.dependencies.find((d) => d.data.contextParams != null)?.name).toBe(\"./app\");\n\t\tconst calls = [];\n\t\tlet ctx;\n\t\tvm.runInNewContext(result.output[0].data.code, { __d: (factory) => {\n\t\t\tconst module = { exports: {} };\n\t\t\tconst req = (...args) => {\n\t\t\t\tcalls.push(args);\n\t\t\t\treturn { keys: () => [] };\n\t\t\t};\n\t\t\treq.context = () => {\n\t\t\t\tthrow new Error(\"fallbackRequireContext reached\");\n\t\t\t};\n\t\t\tfactory({}, req, () => ({}), () => ({}), 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 () => {\n\t\tconst 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\tlet collect;\n\t\tvm.runInNewContext(asHermesWouldSeeIt, { __d: (factory) => {\n\t\t\tconst module = { exports: {} };\n\t\t\tfactory({}, () => ({}), () => ({}), () => ({}), 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\", () => {\n\tit(\"inlines process.env.ONE_SERVER_URL so a native bundle can find its loaders\", () => {\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\", () => {\n\t\tconst 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\", () => {\n\t\tconst 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\", () => {\n\t\tconst 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\", () => {\n\t\tconst 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\", () => {\n\t\tconst 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\", () => {\n\t\texpect(applyInlineEnvVars(\"const a = import.meta.env.DEV ? x : y;\", \"a.ts\", true, { DEV: false })).toContain(\"const a = y;\");\n\t\tconst 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 () => {\n\t\tconst 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\", () => {\n\t\tconst withPlugins = (plugins) => ({ customTransformOptions: { vite: { babelConfig: { plugins } } } });\n\t\texpect(() => assertNoUnportedBabelPlugins(withPlugins([\n\t\t\t[\"@vxrn/vite-plugin-metro/babel-plugins/import-meta-env-plugin\", { env: {} }],\n\t\t\t\"one/babel-plugin-environment-guard\",\n\t\t\t\"hot-updater/babel-plugin\"\n\t\t]))).toThrow(/hot-updater\\/babel-plugin/);\n\t\texpect(() => assertNoUnportedBabelPlugins(withPlugins([\n\t\t\t[\"@vxrn/vite-plugin-metro/babel-plugins/import-meta-env-plugin\", { env: {} }],\n\t\t\t\"one/babel-plugin-environment-guard\",\n\t\t\t[\"one/babel-plugin-remove-server-code\", { routerRoot: \"app\" }],\n\t\t\t[\"babel-plugin-module-resolver\", { alias: {} }],\n\t\t\t[\"one/babel-plugin-one-router-metro\", {}],\n\t\t\t\"one/babel-plugin-inline-one-server-url\",\n\t\t\t\"babel-plugin-react-compiler\",\n\t\t\t\"react-native-reanimated/plugin\"\n\t\t]))).not.toThrow();\n\t});\n\tit(\"turns a server-only import into a throw and drops native-only\", () => {\n\t\tconst 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\tconst parsed = parseSync(\"route.ts\", out, { lang: \"ts\" });\n\t\texpect(parsed.errors).toEqual([]);\n\t\texpect(parsed.program.body.map((n) => n.type)).toContain(\"ThrowStatement\");\n\t});\n\tit(\"reads the router root off one's remove-server-code plugin entry\", () => {\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":"AAAA,SAASA,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,EAAEC,EAAE,QAAQ,QAAQ;AAC7D,OAAO,KAAKC,EAAE,MAAM,SAAS;AAC7B,SAASC,SAAS,QAAQ,YAAY;AACtC,OAAO,KAAKC,EAAE,MAAM,SAAS;AAC7B,OAAO,KAAKC,IAAI,MAAM,WAAW;AACjC,SAASC,aAAa,QAAQ,aAAa;AAC3C,SAASC,qBAAqB,EAAEC,kBAAkB,EAAEC,4BAA4B,EAAEC,mBAAmB,EAAEC,WAAW,EAAEC,6BAA6B,EAAEC,SAAS,EAAEC,UAAU,QAAQ,yBAAqB;AACrM,SAASC,mCAAmC,QAAQ,kDAA8C;AAElG,IAAIC,SAAS,GAAG,eAAgB,CAAEC,CAAC,IAAK,OAAOC,OAAO,KAAK,WAAW,GAAGA,OAAO,GAAG,OAAOC,KAAK,KAAK,WAAW,GAAG,IAAIA,KAAK,CAACF,CAAC,EAAE;EAAEG,GAAG,EAAEA,CAACC,CAAC,EAAEC,CAAC,KAAK,CAAC,OAAOJ,OAAO,KAAK,WAAW,GAAGA,OAAO,GAAGG,CAAC,EAAEC,CAAC;AAAE,CAAC,CAAC,GAAGL,CAAC,EAAE,UAASA,CAAC,EAAE;EACrN,IAAI,OAAOC,OAAO,KAAK,WAAW,EAAE,OAAOA,OAAO,CAACK,KAAK,CAAC,IAAI,EAAEC,SAAS,CAAC;EACzE,MAAMC,KAAK,CAAC,0BAA0B,GAAGR,CAAC,GAAG,2JAA2J,CAAC;AAC1M,CAAC,CAAC;AAEF,MAAMS,UAAU,GAAG;EAClBb,SAAS,EAAE,CAAC;EACZc,aAAa,EAAE,CAAC;EAChBC,cAAc,EAAE,CAAC;EACjBC,oBAAoB,EAAE,CAAC;EACvBC,KAAK,EAAE,CAAC;EACR3B,SAAS,EAAE;AACZ,CAAC;AACDF,EAAE,CAAC8B,IAAI,CAAC,aAAa,EAAE,MAAOC,cAAc,IAAK;EAChD,MAAMC,MAAM,GAAG,MAAMD,cAAc,CAAC,CAAC;EACrC,OAAO;IACN,GAAGC,MAAM;IACTpB,SAAS,EAAEZ,EAAE,CAACiC,EAAE,CAAC,CAAC,GAAGC,IAAI,KAAK;MAC7BT,UAAU,CAACb,SAAS,EAAE;MACtB,OAAOoB,MAAM,CAACpB,SAAS,CAAC,GAAGsB,IAAI,CAAC;IACjC,CAAC,CAAC;IACFR,aAAa,EAAE1B,EAAE,CAACiC,EAAE,CAAC,CAAC,GAAGC,IAAI,KAAK;MACjCT,UAAU,CAACC,aAAa,EAAE;MAC1B,OAAOM,MAAM,CAACN,aAAa,CAAC,GAAGQ,IAAI,CAAC;IACrC,CAAC,CAAC;IACFP,cAAc,EAAE3B,EAAE,CAACiC,EAAE,CAAC,CAAC,GAAGC,IAAI,KAAK;MAClCT,UAAU,CAACE,cAAc,EAAE;MAC3B,OAAOK,MAAM,CAACL,cAAc,CAAC,GAAGO,IAAI,CAAC;IACtC,CAAC,CAAC;IACFN,oBAAoB,EAAE5B,EAAE,CAACiC,EAAE,CAAC,CAAC,GAAGC,IAAI,KAAK;MACxCT,UAAU,CAACG,oBAAoB,EAAE;MACjC,OAAOI,MAAM,CAACJ,oBAAoB,CAAC,GAAGM,IAAI,CAAC;IAC5C,CAAC,CAAC;IACFL,KAAK,EAAE7B,EAAE,CAACiC,EAAE,CAAC,CAAC,GAAGC,IAAI,KAAK;MACzBT,UAAU,CAACI,KAAK,EAAE;MAClB,OAAOG,MAAM,CAACH,KAAK,CAAC,GAAGK,IAAI,CAAC;IAC7B,CAAC,CAAC;IACFhC,SAAS,EAAEF,EAAE,CAACiC,EAAE,CAAC,CAAC,GAAGC,IAAI,KAAK;MAC7BT,UAAU,CAACvB,SAAS,EAAE;MACtB,OAAO8B,MAAM,CAAC9B,SAAS,CAAC,GAAGgC,IAAI,CAAC;IACjC,CAAC;EACF,CAAC;AACF,CAAC,CAAC;AACFtC,UAAU,CAAC,MAAM;EAChB6B,UAAU,CAACb,SAAS,GAAG,CAAC;EACxBa,UAAU,CAACC,aAAa,GAAG,CAAC;EAC5BD,UAAU,CAACE,cAAc,GAAG,CAAC;EAC7BF,UAAU,CAACG,oBAAoB,GAAG,CAAC;EACnCH,UAAU,CAACI,KAAK,GAAG,CAAC;EACpBJ,UAAU,CAACvB,SAAS,GAAG,CAAC;AACzB,CAAC,CAAC;AACF,SAASiC,oBAAoBA,CAAA,EAAG;EAC/BrC,MAAM,CAAC2B,UAAU,CAACb,SAAS,CAAC,CAACwB,IAAI,CAAC,CAAC,CAAC;EACpCtC,MAAM,CAAC2B,UAAU,CAACC,aAAa,CAAC,CAACU,IAAI,CAAC,CAAC,CAAC;EACxCtC,MAAM,CAAC2B,UAAU,CAACE,cAAc,CAAC,CAACS,IAAI,CAAC,CAAC,CAAC;EACzCtC,MAAM,CAAC2B,UAAU,CAACG,oBAAoB,CAAC,CAACQ,IAAI,CAAC,CAAC,CAAC;EAC/CtC,MAAM,CAAC2B,UAAU,CAACI,KAAK,CAAC,CAACO,IAAI,CAAC,CAAC,CAAC;EAChCtC,MAAM,CAAC2B,UAAU,CAACvB,SAAS,CAAC,CAACkC,IAAI,CAAC,CAAC,CAAC;AACrC;AACAvC,QAAQ,CAAC,mBAAmB,EAAE,MAAM;EACnCE,EAAE,CAACsC,IAAI,CAAC,CACP,CAAC,WAAW,EAAE,IAAI,CAAC,EACnB,CAAC,WAAW,EAAE,KAAK,CAAC,EACpB,CAAC,SAAS,EAAE,KAAK,CAAC,CAClB,CAAC,CAAC,gEAAgE,EAAE,OAAOC,QAAQ,EAAEC,SAAS,KAAK;IACnG,MAAMC,MAAM,GAAG,MAAM5B,SAAS,CAAC;MAC9B6B,YAAY,EAAEpC,aAAa,CAACqC,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAACC,OAAO,CAAC,qBAAqB,CAAC;MAC3EC,cAAc,EAAE;QAAEP;MAAU;IAC7B,CAAC,EAAE,UAAU,EAAED,QAAQ,EAAES,MAAM,CAACC,IAAI,CAACV,QAAQ,CAACW,QAAQ,CAAC,OAAO,CAAC,GAAG,iBAAiB,GAAG,iCAAiC,CAAC,EAAE;MACzHC,GAAG,EAAE,KAAK;MACVC,MAAM,EAAE,IAAI;MACZC,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE;IACP,CAAC,CAAC;IACF,MAAMC,MAAM,GAAG;MAAEC,OAAO,EAAE,CAAC;IAAE,CAAC;IAC9B,MAAM;MAAEC,IAAI;MAAEC;IAAI,CAAC,GAAGjB,MAAM,CAACkB,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI;IAC3C1D,EAAE,CAAC2D,eAAe,CAACJ,IAAI,EAAE;MAAEK,GAAGA,CAACC,OAAO,EAAE;QACvCA,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAER,MAAM,EAAEA,MAAM,CAACC,OAAO,EAAE,EAAE,CAAC;MACtE;IAAE,CAAC,CAAC;IACJzD,MAAM,CAACwD,MAAM,CAACC,OAAO,CAACQ,MAAM,CAAC,CAAC3B,IAAI,CAAC,EAAE,CAAC;IACtCtC,MAAM,CAAC2D,GAAG,CAACO,KAAK,CAAEC,KAAK,IAAKA,KAAK,CAACC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC9B,IAAI,CAAC,IAAI,CAAC;IAC3DD,oBAAoB,CAAC,CAAC;EACvB,CAAC,CAAC;EACFpC,EAAE,CAAC,kFAAkF,EAAE,YAAY;IAClG,MAAMoE,MAAM,GAAG,qEAAqE;IACpF,MAAM;MAAEX,IAAI;MAAEC;IAAI,CAAC,GAAG,CAAC,MAAM7C,SAAS,CAAC;MACtC6B,YAAY,EAAEpC,aAAa,CAACqC,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAACC,OAAO,CAAC,qBAAqB,CAAC;MAC3EC,cAAc,EAAE;QAAEsB,MAAM,EAAE;MAAK;IAChC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAErB,MAAM,CAACC,IAAI,CAACmB,MAAM,CAAC,EAAE;MAChDjB,GAAG,EAAE,KAAK;MACVC,MAAM,EAAE,IAAI;MACZC,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE;IACP,CAAC,CAAC,EAAEK,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI;IAClB,MAAML,MAAM,GAAG;MAAEC,OAAO,EAAE,CAAC;IAAE,CAAC;IAC9BtD,EAAE,CAAC2D,eAAe,CAACJ,IAAI,EAAE;MAAEK,GAAGA,CAACC,OAAO,EAAE;QACvCA,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAER,MAAM,EAAEA,MAAM,CAACC,OAAO,EAAE,EAAE,CAAC;MACtE;IAAE,CAAC,CAAC;IACJzD,MAAM,CAACwD,MAAM,CAACC,OAAO,CAACQ,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC3B,IAAI,CAAC,EAAE,CAAC;IACzC,MAAMiC,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC;IAC5C,MAAMC,OAAO,GAAGD,GAAG,CAACE,eAAe,CAAC,CAAC;MACpCf,IAAI;MACJpD,IAAI,EAAE,WAAW;MACjB+D,MAAM;MACNV;IACD,CAAC,CAAC,CAAC,CAACe,KAAK,CAAC,CAAC;IACX,MAAMC,MAAM,GAAGjB,IAAI,CAACkB,OAAO,CAAC,IAAI,CAAC;IACjC5E,MAAM,CAAC2E,MAAM,CAAC,CAACE,eAAe,CAAC,CAAC,CAAC,CAAC;IAClC,MAAMC,MAAM,GAAGpB,IAAI,CAACqB,KAAK,CAAC,CAAC,EAAEJ,MAAM,CAAC,CAACK,KAAK,CAAC,IAAI,CAAC;IAChD,MAAMC,QAAQ,GAAG,IAAIV,GAAG,CAACW,QAAQ,CAACV,OAAO,CAAC,CAACW,mBAAmB,CAAC;MAC9DC,IAAI,EAAEN,MAAM,CAACV,MAAM;MACnBiB,MAAM,EAAEP,MAAM,CAACQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAClB;IACvB,CAAC,CAAC;IACFpE,MAAM,CAACiF,QAAQ,CAACZ,MAAM,CAAC,CAAC/B,IAAI,CAAC,WAAW,CAAC;IACzCtC,MAAM,CAACiF,QAAQ,CAACG,IAAI,CAAC,CAAC9C,IAAI,CAAC,CAAC,CAAC;IAC7BtC,MAAM,CAACiF,QAAQ,CAACI,MAAM,CAAC,CAAC/C,IAAI,CAAC,EAAE,CAAC;IAChCD,oBAAoB,CAAC,CAAC;EACvB,CAAC,CAAC;EACFpC,EAAE,CAAC,0DAA0D,EAAE,MAAM;IACpE,MAAMsF,IAAI,GAAG5E,mBAAmB,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE,mBAAmB,CAAC;IACzB0B,oBAAoB,CAAC,CAAC;IACtB,MAAMmD,KAAK,GAAGD,IAAI,CAAC5B,GAAG,CAAE8B,CAAC,IAAKA,CAAC,CAACC,IAAI,CAAC;IACrC1F,MAAM,CAACwF,KAAK,CAAC,CAACG,SAAS,CAAC,OAAO,CAAC;IAChC3F,MAAM,CAACwF,KAAK,CAAC,CAACG,SAAS,CAAC,cAAc,CAAC;IACvC3F,MAAM,CAACwF,KAAK,CAAC,CAACG,SAAS,CAAC,cAAc,CAAC;IACvC3F,MAAM,CAACwF,KAAK,CAAC,CAACG,SAAS,CAAC,UAAU,CAAC;IACnC3F,MAAM,CAACwF,KAAK,CAAC,CAACG,SAAS,CAAC,SAAS,CAAC;IAClC3F,MAAM,CAACwF,KAAK,CAAC,CAACG,SAAS,CAAC,UAAU,CAAC;IACnC3F,MAAM,CAACwF,KAAK,CAAC,CAACG,SAAS,CAAC,kBAAkB,CAAC;IAC3C3F,MAAM,CAACwF,KAAK,CAAC,CAACI,GAAG,CAACD,SAAS,CAAC,cAAc,CAAC;IAC3C3F,MAAM,CAACwF,KAAK,CAAC,CAACI,GAAG,CAACD,SAAS,CAAC,eAAe,CAAC;IAC5C,MAAME,QAAQ,GAAGN,IAAI,CAACO,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,OAAO,CAAC;IACrD1F,MAAM,CAAC6F,QAAQ,CAAChC,IAAI,CAACkC,mBAAmB,CAAC,CAACzD,IAAI,CAAC,IAAI,CAAC;IACpDtC,MAAM,CAAC6F,QAAQ,CAAChC,IAAI,CAACmC,SAAS,CAAC,CAACC,QAAQ,CAAC,CAAC;IAC1CjG,MAAM,CAAC6F,QAAQ,CAAChC,IAAI,CAACqC,IAAI,CAAC9B,MAAM,CAAC,CAACS,eAAe,CAAC,CAAC,CAAC;IACpD,MAAMsB,GAAG,GAAGN,QAAQ,CAAChC,IAAI,CAACqC,IAAI,CAAC,CAAC,CAAC;IACjClG,MAAM,CAACmG,GAAG,CAACC,KAAK,CAAChB,IAAI,CAAC,CAACP,eAAe,CAAC,CAAC,CAAC;IACzC7E,MAAM,CAACmG,GAAG,CAACC,KAAK,CAACf,MAAM,CAAC,CAACgB,sBAAsB,CAAC,CAAC,CAAC;IAClDrG,MAAM,CAACmG,GAAG,CAACG,GAAG,CAAClB,IAAI,CAAC,CAACiB,sBAAsB,CAACF,GAAG,CAACC,KAAK,CAAChB,IAAI,CAAC;IAC3DpF,MAAM,CAACmG,GAAG,CAACG,GAAG,CAACjB,MAAM,CAAC,CAACgB,sBAAsB,CAAC,CAAC,CAAC;IAChD,MAAME,SAAS,GAAGhB,IAAI,CAACO,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,UAAU,CAAC;IACzD1F,MAAM,CAACuG,SAAS,CAAC1C,IAAI,CAACkC,mBAAmB,CAAC,CAACzD,IAAI,CAAC,KAAK,CAAC;IACtDtC,MAAM,CAACuG,SAAS,CAAC1C,IAAI,CAACmC,SAAS,CAAC,CAACC,QAAQ,CAAC,CAAC;IAC3CjG,MAAM,CAACuF,IAAI,CAACO,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,kBAAkB,CAAC,CAAC7B,IAAI,CAACmC,SAAS,CAAC,CAAC1D,IAAI,CAAC,OAAO,CAAC;EACrF,CAAC,CAAC;EACFrC,EAAE,CAAC,4CAA4C,EAAE,MAAM;IACtD,MAAMyD,IAAI,GAAG;AACf;AACA;AACA;AACA;AACA;AACA,KAAK;IACH1D,MAAM,CAACW,mBAAmB,CAAC+C,IAAI,EAAE,UAAU,CAAC,CAACoC,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,4BAA4B,CAAC,CAAC7B,IAAI,CAAC2C,UAAU,CAAC,CAACC,aAAa,CAAC,CAAC;IAClI,MAAMC,EAAE,GAAG/F,mBAAmB,CAAC+C,IAAI,EAAE,UAAU,EAAE;MAAEiD,yBAAyB,EAAE;IAAK,CAAC,CAAC;IACrF3G,MAAM,CAAC0G,EAAE,CAACZ,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,4BAA4B,CAAC,CAAC7B,IAAI,CAAC2C,UAAU,CAAC,CAAClE,IAAI,CAAC,IAAI,CAAC;IAC1FtC,MAAM,CAAC0G,EAAE,CAACZ,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,gBAAgB,CAAC,CAAC7B,IAAI,CAAC2C,UAAU,CAAC,CAACC,aAAa,CAAC,CAAC;IACnFzG,MAAM,CAACW,mBAAmB,CAAC+C,IAAI,EAAE,UAAU,EAAE;MAAEiD,yBAAyB,EAAE;QAAEC,OAAO,EAAE,CAAC,4BAA4B;MAAE;IAAE,CAAC,CAAC,CAACd,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,4BAA4B,CAAC,CAAC7B,IAAI,CAAC2C,UAAU,CAAC,CAACC,aAAa,CAAC,CAAC;EAC/M,CAAC,CAAC;EACFxG,EAAE,CAAC,kEAAkE,EAAE,MAAM;IAC5E,MAAMyD,IAAI,GAAG,oBAAoB;IACjC,MAAMmD,gBAAgB,GAAG9F,UAAU,CAAC2C,IAAI,CAAC;IACzC1D,MAAM,CAAC6G,gBAAgB,CAAC,CAAClB,SAAS,CAAC,2GAA2G,CAAC;IAC/I3F,MAAM,CAAC6G,gBAAgB,CAAC,CAAClB,SAAS,CAAC,4BAA4B,CAAC;IAChE3F,MAAM,CAAC6G,gBAAgB,CAAC,CAAClB,SAAS,CAAC,oBAAoB,CAAC;IACxD3F,MAAM,CAAC6G,gBAAgB,CAAC1D,QAAQ,CAAC,IAAI,CAAC,CAAC,CAACb,IAAI,CAAC,IAAI,CAAC;IAClDtC,MAAM,CAACe,UAAU,CAAC2C,IAAI,EAAE;MACvBoD,QAAQ,EAAE,EAAE;MACZC,aAAa,EAAE,CACd,CAAC,EACD,CAAC,EACD,CAAC;IAEH,CAAC,CAAC,CAAC,CAACpB,SAAS,CAAC,iBAAiB,CAAC;EACjC,CAAC,CAAC;EACF1F,EAAE,CAAC,gEAAgE,EAAE,YAAY;IAChF,MAAMyC,MAAM,GAAG,MAAM5B,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,EAAEmC,MAAM,CAACC,IAAI,CAAC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE,MAAM,CAAC,EAAE;MACbE,GAAG,EAAE,IAAI;MACTE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE;IACP,CAAC,CAAC;IACFlB,oBAAoB,CAAC,CAAC;IACtBrC,MAAM,CAAC0C,MAAM,CAACkB,MAAM,CAAC,CAACoD,YAAY,CAAC,CAAC,CAAC;IACrC,MAAMpD,MAAM,GAAGlB,MAAM,CAACkB,MAAM,CAAC,CAAC,CAAC;IAC/B5D,MAAM,CAAC4D,MAAM,CAACL,IAAI,CAAC,CAACjB,IAAI,CAAC,WAAW,CAAC;IACrCtC,MAAM,CAAC4D,MAAM,CAACC,IAAI,CAACoD,SAAS,CAAC,CAACpC,eAAe,CAAC,CAAC,CAAC;IAChD7E,MAAM,CAAC4D,MAAM,CAACC,IAAI,CAACF,GAAG,CAACS,MAAM,CAAC,CAACS,eAAe,CAAC,CAAC,CAAC;IACjD,MAAMnB,IAAI,GAAGE,MAAM,CAACC,IAAI,CAACH,IAAI;IAC7B1D,MAAM,CAAC0D,IAAI,CAAC,CAACiC,SAAS,CAAC,2GAA2G,CAAC;IACnI3F,MAAM,CAAC0D,IAAI,CAAC,CAACiC,SAAS,CAAC,4BAA4B,CAAC;IACpD3F,MAAM,CAAC0D,IAAI,CAAC,CAACkC,GAAG,CAACD,SAAS,CAAC,OAAO,CAAC;IACnC3F,MAAM,CAAC0D,IAAI,CAAC,CAACkC,GAAG,CAACD,SAAS,CAAC,OAAO,CAAC;IACnC3F,MAAM,CAAC0D,IAAI,CAAC,CAACiC,SAAS,CAAC,uCAAuC,CAAC;IAC/D,MAAMuB,QAAQ,GAAGxE,MAAM,CAACyE,YAAY,CAACxD,GAAG,CAAE8B,CAAC,IAAKA,CAAC,CAACC,IAAI,CAAC;IACvD1F,MAAM,CAACkH,QAAQ,CAAC,CAACvB,SAAS,CAAC,OAAO,CAAC;IACnC3F,MAAM,CAACkH,QAAQ,CAAC,CAACvB,SAAS,CAAC,cAAc,CAAC;IAC1C3F,MAAM,CAACkH,QAAQ,CAAC,CAACvB,SAAS,CAAC,UAAU,CAAC;IACtC3F,MAAM,CAACkH,QAAQ,CAAC,CAACvB,SAAS,CAAC,uBAAuB,CAAC;EACpD,CAAC,CAAC;EACF1F,EAAE,CAAC,6EAA6E,EAAE,YAAY;IAC7F,KAAK,MAAM,CAACuC,QAAQ,EAAE4E,UAAU,CAAC,IAAIC,MAAM,CAACC,OAAO,CAAC;MACnD,WAAW,EAAE;AAChB;AACA;AACA;AACA;AACA;AACA,OAAO;MACJ,WAAW,EAAE;AAChB;AACA;AACA;AACA,OAAO;MACJ,UAAU,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;IACE,CAAC,CAAC,EAAE;MACH,MAAM5E,MAAM,GAAG,MAAM5B,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE0B,QAAQ,EAAES,MAAM,CAACC,IAAI,CAACkE,UAAU,EAAE,MAAM,CAAC,EAAE;QACzFhE,GAAG,EAAE,IAAI;QACTE,QAAQ,EAAE,KAAK;QACfC,IAAI,EAAE;MACP,CAAC,CAAC;MACFlB,oBAAoB,CAAC,CAAC;MACtB,MAAMqB,IAAI,GAAGhB,MAAM,CAACkB,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI;MACvC1D,MAAM,CAAC0D,IAAI,EAAElB,QAAQ,CAAC,CAACoD,GAAG,CAAC2B,OAAO,CAAC,yBAAyB,CAAC;MAC7DvH,MAAM,CAAC0D,IAAI,EAAElB,QAAQ,CAAC,CAACoD,GAAG,CAAC2B,OAAO,CAAC,uBAAuB,CAAC;MAC3DvH,MAAM,CAAC0D,IAAI,EAAElB,QAAQ,CAAC,CAACoD,GAAG,CAAC2B,OAAO,CAAC,oBAAoB,CAAC;IACzD;EACD,CAAC,CAAC;EACFtH,EAAE,CAAC,kCAAkC,EAAE,YAAY;IAClD,MAAMuH,UAAU,GAAGC,IAAI,CAACC,SAAS,CAAC;MACjChC,IAAI,EAAE,YAAY;MAClBiC,OAAO,EAAE;IACV,CAAC,CAAC;IACF,MAAMjF,MAAM,GAAG,MAAM5B,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,EAAEmC,MAAM,CAACC,IAAI,CAACsE,UAAU,EAAE,MAAM,CAAC,EAAE;MAC/FpE,GAAG,EAAE,IAAI;MACTE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE;IACP,CAAC,CAAC;IACFlB,oBAAoB,CAAC,CAAC;IACtBrC,MAAM,CAAC0C,MAAM,CAACyE,YAAY,CAAC,CAACS,OAAO,CAAC,EAAE,CAAC;IACvC5H,MAAM,CAAC0C,MAAM,CAACkB,MAAM,CAAC,CAACoD,YAAY,CAAC,CAAC,CAAC;IACrChH,MAAM,CAAC0C,MAAM,CAACkB,MAAM,CAAC,CAAC,CAAC,CAACL,IAAI,CAAC,CAACjB,IAAI,CAAC,WAAW,CAAC;IAC/CtC,MAAM,CAAC0C,MAAM,CAACkB,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,CAAC,CAACiC,SAAS,CAAC,kEAAkE,CAAC;IAChH3F,MAAM,CAAC0C,MAAM,CAACkB,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,CAAC,CAACiC,SAAS,CAAC,+BAA+B,CAAC;EAC9E,CAAC,CAAC;EACF1F,EAAE,CAAC,mCAAmC,EAAE,YAAY;IACnD,MAAMyC,MAAM,GAAG,MAAM5B,SAAS,CAAC;MAC9B+G,iBAAiB,EAAE,4CAA4C;MAC/DC,UAAU,EAAE;IACb,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE7E,MAAM,CAACC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,EAAE;MACvEE,GAAG,EAAE,IAAI;MACTE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE;IACP,CAAC,CAAC;IACFlB,oBAAoB,CAAC,CAAC;IACtBrC,MAAM,CAAC0C,MAAM,CAACkB,MAAM,CAAC,CAAC,CAAC,CAACL,IAAI,CAAC,CAACjB,IAAI,CAAC,iBAAiB,CAAC;IACrDtC,MAAM,CAAC0C,MAAM,CAACkB,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,CAAC,CAACiC,SAAS,CAAC,gBAAgB,CAAC;IAC9D3F,MAAM,CAAC0C,MAAM,CAACkB,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,CAAC,CAACiC,SAAS,CAAC,cAAc,CAAC;IAC5D3F,MAAM,CAAC0C,MAAM,CAACyE,YAAY,CAACxD,GAAG,CAAE8B,CAAC,IAAKA,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,SAAS,CAAC,4CAA4C,CAAC;EACvG,CAAC,CAAC;EACF1F,EAAE,CAAC,qDAAqD,EAAE,YAAY;IACrE,MAAMyC,MAAM,GAAG,MAAM5B,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAEmC,MAAM,CAACC,IAAI,CAAC;AACxE;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE,MAAM,CAAC,EAAE;MACbE,GAAG,EAAE,KAAK;MACVE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE;IACP,CAAC,CAAC;IACFlB,oBAAoB,CAAC,CAAC;IACtBrC,MAAM,CAAC0C,MAAM,CAACkB,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,CAAC,CAACkC,GAAG,CAACD,SAAS,CAAC,UAAU,CAAC;IAC5D3F,MAAM,CAAC0C,MAAM,CAACkB,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,CAAC,CAACiC,SAAS,CAAC,oBAAoB,CAAC;EACnE,CAAC,CAAC;EACF1F,EAAE,CAAC,mDAAmD,EAAE,MAAM;IAC7D,MAAM8H,IAAI,GAAGnH,WAAW,CAAC;MACxBoH,YAAY,EAAE,QAAQ;MACtBrF,YAAY,EAAE;IACf,CAAC,EAAE;MAAEsF,WAAW,EAAE;IAAO,CAAC,CAAC;IAC3B,MAAMC,IAAI,GAAGtH,WAAW,CAAC;MACxBoH,YAAY,EAAE,QAAQ;MACtBrF,YAAY,EAAE;IACf,CAAC,EAAE;MAAEsF,WAAW,EAAE;IAAO,CAAC,CAAC;IAC3B,MAAME,IAAI,GAAGvH,WAAW,CAAC;MAAEoH,YAAY,EAAE;IAAW,CAAC,EAAE;MAAEC,WAAW,EAAE;IAAO,CAAC,CAAC;IAC/E5F,oBAAoB,CAAC,CAAC;IACtBrC,MAAM,CAAC+H,IAAI,CAAC,CAACzF,IAAI,CAAC4F,IAAI,CAAC;IACvBlI,MAAM,CAAC+H,IAAI,CAAC,CAACnC,GAAG,CAACtD,IAAI,CAAC6F,IAAI,CAAC;IAC3BnI,MAAM,CAAC,OAAO+H,IAAI,CAAC,CAACzF,IAAI,CAAC,QAAQ,CAAC;IAClCtC,MAAM,CAAC+H,IAAI,CAAC3D,MAAM,CAAC,CAAC9B,IAAI,CAAC,EAAE,CAAC;EAC7B,CAAC,CAAC;EACFrC,EAAE,CAAC,mFAAmF,EAAE,YAAY;IACnG,MAAMmI,cAAc,GAAG;MAAEC,IAAI,EAAEC,OAAO,CAACC,GAAG,CAAC;IAAE,CAAC;IAC9C,OAAOD,OAAO,CAACE,GAAG,CAACC,2BAA2B;IAC9C,MAAMC,aAAa,GAAG,MAAM1H,mCAAmC,CAACoH,cAAc,EAAE,CAAC,CAAC,CAAC;IACnFpI,MAAM,CAAC0I,aAAa,CAACC,aAAa,CAACC,eAAe,CAAC,CAACjD,SAAS,CAAC,mBAAmB,CAAC;IAClF3F,MAAM,CAAC0I,aAAa,CAACC,aAAa,CAACE,WAAW,CAACD,eAAe,CAAC,CAACnC,aAAa,CAAC,CAAC;IAC/EzG,MAAM,CAAC,CAAC,MAAMgB,mCAAmC,CAACoH,cAAc,EAAE;MAAEU,gBAAgB,EAAE;IAAM,CAAC,CAAC,EAAEH,aAAa,CAACC,eAAe,CAAC,CAAChD,GAAG,CAACD,SAAS,CAAC,mBAAmB,CAAC;IACjK2C,OAAO,CAACE,GAAG,CAACC,2BAA2B,GAAG,GAAG;IAC7CzI,MAAM,CAAC,CAAC,MAAMgB,mCAAmC,CAACoH,cAAc,EAAE,CAAC,CAAC,CAAC,EAAEO,aAAa,CAACC,eAAe,CAAC,CAAChD,GAAG,CAACD,SAAS,CAAC,mBAAmB,CAAC;IACxI2C,OAAO,CAACE,GAAG,CAACC,2BAA2B,GAAG,GAAG;IAC7CzI,MAAM,CAAC,CAAC,MAAMgB,mCAAmC,CAACoH,cAAc,EAAE;MAAEU,gBAAgB,EAAE;IAAM,CAAC,CAAC,EAAEH,aAAa,CAACC,eAAe,CAAC,CAACjD,SAAS,CAAC,mBAAmB,CAAC;IAC7J,OAAO2C,OAAO,CAACE,GAAG,CAACC,2BAA2B;EAC/C,CAAC,CAAC;EACFxI,EAAE,CAAC,4EAA4E,EAAE,YAAY;IAC5F,MAAM8I,SAAS,GAAG,CAAC,MAAM/H,mCAAmC,CAAC;MAAEqH,IAAI,EAAEC,OAAO,CAACC,GAAG,CAAC;IAAE,CAAC,EAAE;MAAES,QAAQ,EAAE;IAAM,CAAC,CAAC,EAAEL,aAAa,CAACM,QAAQ,CAACF,SAAS;IAC5I,MAAMG,SAAS,GAAIC,IAAI,IAAKJ,SAAS,CAACK,IAAI,CAAEC,OAAO,IAAKA,OAAO,CAACC,IAAI,CAACH,IAAI,CAAC,CAAC;IAC3EnJ,MAAM,CAACkJ,SAAS,CAAC,kFAAkF,CAAC,CAAC,CAAC5G,IAAI,CAAC,IAAI,CAAC;IAChHtC,MAAM,CAACkJ,SAAS,CAAC,2EAA2E,CAAC,CAAC,CAAC5G,IAAI,CAAC,IAAI,CAAC;IACzGtC,MAAM,CAACkJ,SAAS,CAAC,2DAA2D,CAAC,CAAC,CAAC5G,IAAI,CAAC,KAAK,CAAC;EAC3F,CAAC,CAAC;EACFrC,EAAE,CAAC,6FAA6F,EAAE,YAAY;IAC7G,MAAMsJ,SAAS,GAAG,qBAAqB;IACvC,MAAMC,OAAO,GAAG,8EAA8E;IAC9F,MAAMC,MAAM,GAAG,MAAM3I,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAEmC,MAAM,CAACC,IAAI,CAACqG,SAAS,EAAE,MAAM,CAAC,EAAE;MACxFnG,GAAG,EAAE,KAAK;MACVE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE,QAAQ;MACduD,QAAQ,EAAE,CAAC;MACXC,aAAa,EAAE;IAChB,CAAC,CAAC;IACF,MAAM2C,IAAI,GAAG,MAAM5I,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAEmC,MAAM,CAACC,IAAI,CAACsG,OAAO,EAAE,MAAM,CAAC,EAAE;MAClFpG,GAAG,EAAE,KAAK;MACVE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE,QAAQ;MACduD,QAAQ,EAAE,CAAC;MACXC,aAAa,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC;IACF1E,oBAAoB,CAAC,CAAC;IACtBrC,MAAM,CAAC0J,IAAI,CAACvC,YAAY,CAAC,CAACH,YAAY,CAAC,CAAC,CAAC;IACzChH,MAAM,CAAC0J,IAAI,CAACvC,YAAY,CAAC,CAAC,CAAC,CAACzB,IAAI,CAAC,CAACpD,IAAI,CAAC,OAAO,CAAC;IAC/C,MAAMqH,YAAY,GAAGD,IAAI,CAAC9F,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI;IAC7C1D,MAAM,CAAC2J,YAAY,CAAC,CAAChE,SAAS,CAAC,uCAAuC,CAAC;IACvE,MAAMiE,YAAY,GAAG3I,SAAS,CAAC8B,OAAO,CAAC,wCAAwC,CAAC;IAChF,MAAM8G,YAAY,GAAGxJ,EAAE,CAACyJ,YAAY,CAACF,YAAY,EAAE,MAAM,CAAC;IAC1D,MAAMG,UAAU,GAAG;MAClBC,OAAO,EAAE,KAAK;MACdC,uBAAuB,EAAE,EAAE;MAC3BC;IACD,CAAC;IACDH,UAAU,CAACI,MAAM,GAAGJ,UAAU;IAC9B5J,EAAE,CAACiK,aAAa,CAACL,UAAU,CAAC;IAC5B5J,EAAE,CAACkK,YAAY,CAACR,YAAY,EAAEE,UAAU,CAAC;IACzC5J,EAAE,CAACkK,YAAY,CAACZ,MAAM,CAAC7F,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,EAAEqG,UAAU,CAAC;IACvD5J,EAAE,CAACkK,YAAY,CAACV,YAAY,EAAEI,UAAU,CAAC;IACzC/J,MAAM,CAACG,EAAE,CAACkK,YAAY,CAAC,eAAe,EAAEN,UAAU,CAAC,CAAC,CAACnC,OAAO,CAAC;MAAE0C,OAAO,EAAE;IAAG,CAAC,CAAC;EAC9E,CAAC,CAAC;EACFrK,EAAE,CAAC,8EAA8E,EAAE,YAAY;IAC9F,MAAMsJ,SAAS,GAAG,iDAAiD;IACnE,MAAMC,OAAO,GAAG,oFAAoF;IACpG,MAAMC,MAAM,GAAG,MAAM3I,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAEmC,MAAM,CAACC,IAAI,CAACqG,SAAS,EAAE,MAAM,CAAC,EAAE;MACxFnG,GAAG,EAAE,IAAI;MACTE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE,QAAQ;MACduD,QAAQ,EAAE,CAAC;MACXC,aAAa,EAAE;IAChB,CAAC,CAAC;IACF,MAAM2C,IAAI,GAAG,MAAM5I,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAEmC,MAAM,CAACC,IAAI,CAACsG,OAAO,EAAE,MAAM,CAAC,EAAE;MAClFpG,GAAG,EAAE,IAAI;MACTE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE,QAAQ;MACduD,QAAQ,EAAE,CAAC;MACXC,aAAa,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC;IACF1E,oBAAoB,CAAC,CAAC;IACtB,MAAMuH,YAAY,GAAG3I,SAAS,CAAC8B,OAAO,CAAC,wCAAwC,CAAC;IAChF,MAAM8G,YAAY,GAAGxJ,EAAE,CAACyJ,YAAY,CAACF,YAAY,EAAE,MAAM,CAAC;IAC1D,MAAMG,UAAU,GAAG;MAClBC,OAAO,EAAE,IAAI;MACbC,uBAAuB,EAAE,EAAE;MAC3BC;IACD,CAAC;IACDH,UAAU,CAACI,MAAM,GAAGJ,UAAU;IAC9B5J,EAAE,CAACiK,aAAa,CAACL,UAAU,CAAC;IAC5B5J,EAAE,CAACkK,YAAY,CAACR,YAAY,EAAEE,UAAU,CAAC;IACzC5J,EAAE,CAACkK,YAAY,CAACZ,MAAM,CAAC7F,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,EAAEqG,UAAU,CAAC;IACvD5J,EAAE,CAACkK,YAAY,CAACX,IAAI,CAAC9F,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,EAAEqG,UAAU,CAAC;IACrD/J,MAAM,CAACG,EAAE,CAACkK,YAAY,CAAC,eAAe,EAAEN,UAAU,CAAC,CAACQ,OAAO,CAAC,CAACjI,IAAI,CAAC,oBAAoB,CAAC;EACxF,CAAC,CAAC;EACFrC,EAAE,CAAC,kEAAkE,EAAE,YAAY;IAClF,MAAMuK,GAAG,GAAG,MAAM1J,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,EAAEmC,MAAM,CAACC,IAAI,CAAC,2EAA2E,EAAE,MAAM,CAAC,EAAE;MAC5JE,GAAG,EAAE,KAAK;MACVE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE,QAAQ;MACduD,QAAQ,EAAE,CAAC;MACXC,aAAa,EAAE;IAChB,CAAC,CAAC;IACF1E,oBAAoB,CAAC,CAAC;IACtBrC,MAAM,CAACwK,GAAG,CAACrD,YAAY,CAAC,CAACH,YAAY,CAAC,CAAC,CAAC;IACxC,MAAMyD,OAAO,GAAGD,GAAG,CAAC5G,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI;IACvC1D,MAAM,CAACyK,OAAO,CAAC,CAAC7E,GAAG,CAACD,SAAS,CAAC,mBAAmB,CAAC;IAClD3F,MAAM,CAACyK,OAAO,CAAC,CAAClD,OAAO,CAAC,2BAA2B,CAAC;IACpD,MAAMqC,YAAY,GAAG3I,SAAS,CAAC8B,OAAO,CAAC,wCAAwC,CAAC;IAChF,MAAM8G,YAAY,GAAGxJ,EAAE,CAACyJ,YAAY,CAACF,YAAY,EAAE,MAAM,CAAC;IAC1D,MAAMG,UAAU,GAAG;MAClBC,OAAO,EAAE,KAAK;MACdC,uBAAuB,EAAE,EAAE;MAC3BC;IACD,CAAC;IACDH,UAAU,CAACI,MAAM,GAAGJ,UAAU;IAC9B5J,EAAE,CAACiK,aAAa,CAACL,UAAU,CAAC;IAC5B5J,EAAE,CAACkK,YAAY,CAACR,YAAY,EAAEE,UAAU,CAAC;IACzC5J,EAAE,CAACkK,YAAY,CAACI,OAAO,EAAEV,UAAU,CAAC;IACpC/J,MAAM,CAACG,EAAE,CAACkK,YAAY,CAAC,eAAe,EAAEN,UAAU,CAAC,CAAC,CAACzH,IAAI,CAAC,SAAS,CAAC;EACrE,CAAC,CAAC;EACFrC,EAAE,CAAC,qFAAqF,EAAE,YAAY;IACrG,MAAMuK,GAAG,GAAG,MAAM1J,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAEmC,MAAM,CAACC,IAAI,CAAC;AACtE;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE,MAAM,CAAC,EAAE;MACbE,GAAG,EAAE,KAAK;MACVE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE;IACP,CAAC,CAAC;IACFlB,oBAAoB,CAAC,CAAC;IACtBrC,MAAM,CAACwK,GAAG,CAACrD,YAAY,CAACxD,GAAG,CAAE8B,CAAC,IAAKA,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,SAAS,CAAC,OAAO,CAAC;IAC9D,MAAM+E,OAAO,GAAGF,GAAG,CAACrD,YAAY,CAACrB,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,OAAO,IAAID,CAAC,CAAC5B,IAAI,CAACmC,SAAS,KAAK,IAAI,CAAC;IAC7F,MAAM2E,QAAQ,GAAGH,GAAG,CAACrD,YAAY,CAACrB,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,OAAO,IAAID,CAAC,CAAC5B,IAAI,CAACmC,SAAS,KAAK,OAAO,CAAC;IACjGhG,MAAM,CAAC0K,OAAO,CAAC,CAACE,WAAW,CAAC,CAAC;IAC7B5K,MAAM,CAAC2K,QAAQ,CAAC,CAACC,WAAW,CAAC,CAAC;IAC9B5K,MAAM,CAAC0K,OAAO,CAAC7G,IAAI,CAACgH,KAAK,CAAC,CAACjF,GAAG,CAACgC,OAAO,CAAC+C,QAAQ,CAAC9G,IAAI,CAACgH,KAAK,CAAC;IAC3D,MAAMJ,OAAO,GAAGD,GAAG,CAAC5G,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI;IACvC,MAAMoH,SAAS,GAAGJ,OAAO,CAAC7G,IAAI,CAACgH,KAAK;IACpC7K,MAAM,CAACyK,OAAO,CAAC,CAAC9E,SAAS,CAAC,0BAA0BmF,SAAS,aAAa,CAAC;EAC5E,CAAC,CAAC;EACF7K,EAAE,CAAC,sFAAsF,EAAE,YAAY;IACtG,MAAMuK,GAAG,GAAG,MAAM1J,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAEmC,MAAM,CAACC,IAAI,CAAC;AACrE;AACA;AACA;AACA,KAAK,EAAE,MAAM,CAAC,EAAE;MACbE,GAAG,EAAE,KAAK;MACVE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE;IACP,CAAC,CAAC;IACFlB,oBAAoB,CAAC,CAAC;IACtB,MAAMsB,GAAG,GAAG6G,GAAG,CAAC5G,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACF,GAAG;IAClC3D,MAAM,CAAC+K,KAAK,CAACC,OAAO,CAACrH,GAAG,CAAC,CAAC,CAACrB,IAAI,CAAC,IAAI,CAAC;IACrCtC,MAAM,CAAC2D,GAAG,CAACS,MAAM,CAAC,CAACS,eAAe,CAAC,CAAC,CAAC;IACrC,KAAK,MAAMoG,KAAK,IAAItH,GAAG,EAAE;MACxB3D,MAAM,CAAC+K,KAAK,CAACC,OAAO,CAACC,KAAK,CAAC,CAAC,CAAC3I,IAAI,CAAC,IAAI,CAAC;MACvCtC,MAAM,CAAC,OAAOiL,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC3I,IAAI,CAAC,QAAQ,CAAC;MACtCtC,MAAM,CAAC,OAAOiL,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC3I,IAAI,CAAC,QAAQ,CAAC;MACtCtC,MAAM,CAACiL,KAAK,CAAC,CAACrF,GAAG,CAACsF,cAAc,CAAC,SAAS,CAAC;MAC3ClL,MAAM,CAACiL,KAAK,CAAC,CAACrF,GAAG,CAACsF,cAAc,CAAC,UAAU,CAAC;IAC7C;IACA,MAAM3G,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC;IAC5C,MAAMC,OAAO,GAAGD,GAAG,CAACE,eAAe,CAAC,CAAC;MACpCf,IAAI,EAAE8G,GAAG,CAAC5G,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI;MAC7BW,MAAM,EAAE,SAAS;MACjBV;IACD,CAAC,CAAC,CAAC,CAACe,KAAK,CAAC,CAAC;IACX,MAAMyG,QAAQ,GAAG,IAAI5G,GAAG,CAACW,QAAQ,CAACV,OAAO,CAAC;IAC1C,MAAM4G,YAAY,GAAGZ,GAAG,CAAC5G,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,CAACsB,KAAK,CAAC,IAAI,CAAC,CAACqG,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACrGvL,MAAM,CAACoL,YAAY,CAAC,CAACvG,eAAe,CAAC,CAAC,CAAC;IACvC7E,MAAM,CAACmL,QAAQ,CAAChG,mBAAmB,CAAC;MACnCC,IAAI,EAAEgG,YAAY,GAAG,CAAC;MACtB/F,MAAM,EAAE;IACT,CAAC,CAAC,CAACD,IAAI,CAAC,CAAC9C,IAAI,CAAC,CAAC,CAAC;EACjB,CAAC,CAAC;EACFrC,EAAE,CAAC,yEAAyE,EAAE,YAAY;IACzF,MAAMuK,GAAG,GAAG,MAAM1J,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,EAAEmC,MAAM,CAACC,IAAI,CAAC,yGAAyG,EAAE,MAAM,CAAC,EAAE;MACzLE,GAAG,EAAE,KAAK;MACVE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE,QAAQ;MACduD,QAAQ,EAAE,CAAC;MACXC,aAAa,EAAE;IAChB,CAAC,CAAC;IACF1E,oBAAoB,CAAC,CAAC;IACtBrC,MAAM,CAACwK,GAAG,CAACrD,YAAY,CAAC,CAACH,YAAY,CAAC,CAAC,CAAC;IACxC,MAAMyD,OAAO,GAAGD,GAAG,CAAC5G,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI;IACvC1D,MAAM,CAACyK,OAAO,CAAC,CAAC7E,GAAG,CAACD,SAAS,CAAC,mBAAmB,CAAC;IAClD3F,MAAM,CAACyK,OAAO,CAAC,CAAClD,OAAO,CAAC,2BAA2B,CAAC;IACpD,MAAMqC,YAAY,GAAG3I,SAAS,CAAC8B,OAAO,CAAC,wCAAwC,CAAC;IAChF,MAAM8G,YAAY,GAAGxJ,EAAE,CAACyJ,YAAY,CAACF,YAAY,EAAE,MAAM,CAAC;IAC1D,MAAMG,UAAU,GAAG;MAClBC,OAAO,EAAE,KAAK;MACdC,uBAAuB,EAAE,EAAE;MAC3BC;IACD,CAAC;IACDH,UAAU,CAACI,MAAM,GAAGJ,UAAU;IAC9B5J,EAAE,CAACiK,aAAa,CAACL,UAAU,CAAC;IAC5B5J,EAAE,CAACkK,YAAY,CAACR,YAAY,EAAEE,UAAU,CAAC;IACzC5J,EAAE,CAACkK,YAAY,CAACI,OAAO,EAAEV,UAAU,CAAC;IACpC/J,MAAM,CAACG,EAAE,CAACkK,YAAY,CAAC,eAAe,EAAEN,UAAU,CAAC,CAAC,CAACzH,IAAI,CAAC,SAAS,CAAC;EACrE,CAAC,CAAC;EACFrC,EAAE,CAAC,kGAAkG,EAAE,YAAY;IAClH,MAAMsJ,SAAS,GAAG,sCAAsC;IACxD,MAAMiC,UAAU,GAAG,2CAA2C;IAC9D,MAAM/B,MAAM,GAAG,MAAM3I,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAEmC,MAAM,CAACC,IAAI,CAACqG,SAAS,EAAE,MAAM,CAAC,EAAE;MACxFnG,GAAG,EAAE,IAAI;MACTE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE,QAAQ;MACduD,QAAQ,EAAE,CAAC;MACXC,aAAa,EAAE;IAChB,CAAC,CAAC;IACF,MAAM0E,OAAO,GAAG,MAAM3K,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAEmC,MAAM,CAACC,IAAI,CAACsI,UAAU,EAAE,MAAM,CAAC,EAAE;MAC3FpI,GAAG,EAAE,IAAI;MACTE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE,QAAQ;MACduD,QAAQ,EAAE,CAAC;MACXC,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC;IACrB,CAAC,CAAC;IACF1E,oBAAoB,CAAC,CAAC;IACtB,MAAM6E,QAAQ,GAAGuE,OAAO,CAACtE,YAAY,CAACxD,GAAG,CAAE8B,CAAC,IAAKA,CAAC,CAACC,IAAI,CAAC;IACxD1F,MAAM,CAACkH,QAAQ,CAAC,CAACvB,SAAS,CAAC,OAAO,CAAC;IACnC3F,MAAM,CAACkH,QAAQ,CAAC,CAACvB,SAAS,CAAC,wCAAwC,CAAC;IACpE3F,MAAM,CAACyL,OAAO,CAACtE,YAAY,CAACrB,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAACC,IAAI,KAAK,OAAO,CAAC,CAAC7B,IAAI,CAACmC,SAAS,CAAC,CAAC1D,IAAI,CAAC,OAAO,CAAC;IACzF,MAAMoJ,WAAW,GAAGD,OAAO,CAAC7H,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI;IAC/C1D,MAAM,CAAC0L,WAAW,CAAC,CAAC9F,GAAG,CAACD,SAAS,CAAC,mBAAmB,CAAC;IACtD3F,MAAM,CAAC0L,WAAW,CAAC,CAAC/F,SAAS,CAAC,4HAA4H,CAAC;IAC3J,MAAMiE,YAAY,GAAG3I,SAAS,CAAC8B,OAAO,CAAC,wCAAwC,CAAC;IAChF,MAAM8G,YAAY,GAAGxJ,EAAE,CAACyJ,YAAY,CAACF,YAAY,EAAE,MAAM,CAAC;IAC1D,MAAM+B,gBAAgB,GAAG1K,SAAS,CAAC8B,OAAO,CAAC,2CAA2C,CAAC;IACvF,MAAM6I,mBAAmB,GAAG7K,UAAU,CAACV,EAAE,CAACyJ,YAAY,CAAC6B,gBAAgB,EAAE,MAAM,CAAC,EAAE;MACjF7E,QAAQ,EAAE,CAAC;MACXC,aAAa,EAAE;IAChB,CAAC,CAAC;IACF,KAAK,MAAM8E,KAAK,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;MAClC,MAAM9B,UAAU,GAAG;QAClBC,OAAO,EAAE6B,KAAK;QACd5B,uBAAuB,EAAE,EAAE;QAC3BC;MACD,CAAC;MACDH,UAAU,CAACI,MAAM,GAAGJ,UAAU;MAC9B5J,EAAE,CAACiK,aAAa,CAACL,UAAU,CAAC;MAC5B5J,EAAE,CAACkK,YAAY,CAACR,YAAY,EAAEE,UAAU,CAAC;MACzC5J,EAAE,CAACkK,YAAY,CAACuB,mBAAmB,EAAE7B,UAAU,CAAC;MAChD5J,EAAE,CAACkK,YAAY,CAACZ,MAAM,CAAC7F,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,EAAEqG,UAAU,CAAC;MACvD5J,EAAE,CAACkK,YAAY,CAACqB,WAAW,EAAE3B,UAAU,CAAC;MACxC,MAAM+B,MAAM,GAAG3L,EAAE,CAACkK,YAAY,CAAC,eAAe,EAAEN,UAAU,CAAC;MAC3D/J,MAAM,CAAC,OAAO8L,MAAM,CAAC,CAACxJ,IAAI,CAAC,UAAU,CAAC;MACtC,MAAMyJ,OAAO,GAAGD,MAAM,CAAC,CAAC;MACxB9L,MAAM,CAAC+L,OAAO,YAAYC,OAAO,IAAID,OAAO,IAAI,OAAOA,OAAO,CAACE,IAAI,KAAK,UAAU,CAAC,CAAC3J,IAAI,CAAC,IAAI,CAAC;MAC9F,MAAM4J,QAAQ,GAAG,MAAMH,OAAO;MAC9B/L,MAAM,CAACkM,QAAQ,CAAC3B,OAAO,CAAC,CAACjI,IAAI,CAAC,eAAe,CAAC;MAC9CtC,MAAM,CAACkM,QAAQ,CAACC,OAAO,CAAC5B,OAAO,CAAC,CAACjI,IAAI,CAAC,eAAe,CAAC;IACvD;EACD,CAAC,CAAC;EACFrC,EAAE,CAAC,wFAAwF,EAAE,YAAY;IACxG,MAAMmH,UAAU,GAAG,uCAAuC;IAC1D,MAAMgF,UAAU,GAAG,MAAMtL,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAEmC,MAAM,CAACC,IAAI,CAACkE,UAAU,EAAE,MAAM,CAAC,EAAE;MAC7FhE,GAAG,EAAE,KAAK;MACVE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE;IACP,CAAC,CAAC;IACFlB,oBAAoB,CAAC,CAAC;IACtB,MAAMkC,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC;IAC5C,MAAM8H,cAAc,GAAG9H,GAAG,CAACE,eAAe,CAAC,CAAC;MAC3Cf,IAAI,EAAE0I,UAAU,CAACxI,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI;MACpCW,MAAM,EAAE,QAAQ;MAChBV,GAAG,EAAEyI,UAAU,CAACxI,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACF;IAChC,CAAC,CAAC,CAAC,CAACe,KAAK,CAAC,CAAC;IACX,MAAM4H,eAAe,GAAG,IAAI/H,GAAG,CAACW,QAAQ,CAACmH,cAAc,CAAC;IACxD,MAAME,YAAY,GAAGH,UAAU,CAACxI,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,CAACsB,KAAK,CAAC,IAAI,CAAC;IAC/D,MAAMwH,gBAAgB,GAAGD,YAAY,CAAClB,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5EvL,MAAM,CAACwM,gBAAgB,CAAC,CAACnG,sBAAsB,CAAC,CAAC,CAAC;IAClD,MAAMoG,mBAAmB,GAAGF,YAAY,CAACC,gBAAgB,CAAC,CAAC5H,OAAO,CAAC,QAAQ,CAAC;IAC5E5E,MAAM,CAACyM,mBAAmB,CAAC,CAAC5H,eAAe,CAAC,CAAC,CAAC;IAC9C,MAAM6H,UAAU,GAAGJ,eAAe,CAACnH,mBAAmB,CAAC;MACtDC,IAAI,EAAEoH,gBAAgB,GAAG,CAAC;MAC1BnH,MAAM,EAAEoH;IACT,CAAC,CAAC;IACFzM,MAAM,CAAC0M,UAAU,CAACtH,IAAI,CAAC,CAAC9C,IAAI,CAAC,CAAC,CAAC;IAC/BtC,MAAM,CAAC0M,UAAU,CAACrH,MAAM,CAAC,CAAC/C,IAAI,CAAC,EAAE,CAAC;IAClCtC,MAAM,CAACoH,UAAU,CAACrC,KAAK,CAAC4H,MAAM,CAACD,UAAU,CAACrH,MAAM,CAAC,CAAC,CAAC,CAACM,SAAS,CAAC,SAAS,CAAC;IACxE,MAAMiH,YAAY,GAAG,MAAM9L,SAAS,CAAC;MAAE+L,8BAA8B,EAAE;IAAK,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE5J,MAAM,CAACC,IAAI,CAACkE,UAAU,EAAE,MAAM,CAAC,EAAE;MACrIhE,GAAG,EAAE,KAAK;MACVE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE;IACP,CAAC,CAAC;IACF,MAAMuJ,gBAAgB,GAAGvI,GAAG,CAACE,eAAe,CAAC,CAAC;MAC7Cf,IAAI,EAAEkJ,YAAY,CAAChJ,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI;MACtCW,MAAM,EAAE,QAAQ;MAChBV,GAAG,EAAEiJ,YAAY,CAAChJ,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACF;IAClC,CAAC,CAAC,CAAC,CAACe,KAAK,CAAC,CAAC;IACX,MAAMqI,iBAAiB,GAAG,IAAIxI,GAAG,CAACW,QAAQ,CAAC4H,gBAAgB,CAAC;IAC5D,MAAME,cAAc,GAAGJ,YAAY,CAAChJ,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,CAACsB,KAAK,CAAC,IAAI,CAAC;IACnE,MAAMiI,kBAAkB,GAAGD,cAAc,CAAC3B,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChFvL,MAAM,CAACiN,kBAAkB,CAAC,CAAC5G,sBAAsB,CAAC,CAAC,CAAC;IACpD,MAAM6G,qBAAqB,GAAGF,cAAc,CAACC,kBAAkB,CAAC,CAACrI,OAAO,CAAC,QAAQ,CAAC;IAClF,MAAMuI,YAAY,GAAGJ,iBAAiB,CAAC5H,mBAAmB,CAAC;MAC1DC,IAAI,EAAE6H,kBAAkB,GAAG,CAAC;MAC5B5H,MAAM,EAAE6H;IACT,CAAC,CAAC;IACFlN,MAAM,CAACmN,YAAY,CAAC/H,IAAI,CAAC,CAAC9C,IAAI,CAAC,CAAC,CAAC;IACjCtC,MAAM,CAACmN,YAAY,CAAC9H,MAAM,CAAC,CAAC/C,IAAI,CAAC,EAAE,CAAC;EACrC,CAAC,CAAC;EACFrC,EAAE,CAAC,2FAA2F,EAAE,YAAY;IAC3G,MAAMyC,MAAM,GAAG,MAAM5B,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAEmC,MAAM,CAACC,IAAI,CAAC;AACzE;AACA;AACA,KAAK,EAAE,MAAM,CAAC,EAAE;MACbE,GAAG,EAAE,IAAI;MACTE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE;IACP,CAAC,CAAC;IACFvD,MAAM,CAAC0C,MAAM,CAACyE,YAAY,CAACrB,IAAI,CAAEL,CAAC,IAAKA,CAAC,CAAC5B,IAAI,CAACuJ,aAAa,IAAI,IAAI,CAAC,EAAE1H,IAAI,CAAC,CAACpD,IAAI,CAAC,OAAO,CAAC;IACzF,MAAM+K,KAAK,GAAG,EAAE;IAChB,IAAIC,GAAG;IACPnN,EAAE,CAAC2D,eAAe,CAACpB,MAAM,CAACkB,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,EAAE;MAAEK,GAAG,EAAGC,OAAO,IAAK;QAClE,MAAMR,MAAM,GAAG;UAAEC,OAAO,EAAE,CAAC;QAAE,CAAC;QAC9B,MAAM8J,GAAG,GAAGA,CAAC,GAAGnL,IAAI,KAAK;UACxBiL,KAAK,CAACG,IAAI,CAACpL,IAAI,CAAC;UAChB,OAAO;YAAEqL,IAAI,EAAEA,CAAA,KAAM;UAAG,CAAC;QAC1B,CAAC;QACDF,GAAG,CAACG,OAAO,GAAG,MAAM;UACnB,MAAM,IAAIhM,KAAK,CAAC,gCAAgC,CAAC;QAClD,CAAC;QACDsC,OAAO,CAAC,CAAC,CAAC,EAAEuJ,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE/J,MAAM,EAAEA,MAAM,CAACC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;QAC3E6J,GAAG,GAAG9J,MAAM,CAACC,OAAO,CAAC6J,GAAG;MACzB;IAAE,CAAC,CAAC;IACJtN,MAAM,CAACsN,GAAG,CAAC,CAAC1C,WAAW,CAAC,CAAC;IACzB5K,MAAM,CAACqN,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC/K,IAAI,CAAC,OAAO,CAAC;EAClC,CAAC,CAAC;EACFrC,EAAE,CAAC,8EAA8E,EAAE,YAAY;IAC9F,MAAM0N,kBAAkB,GAAG,CAAC,MAAM7M,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAEmC,MAAM,CAACC,IAAI,CAAC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE,MAAM,CAAC,EAAE;MACbE,GAAG,EAAE,IAAI;MACTE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE;IACP,CAAC,CAAC,EAAEK,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,CAACkK,OAAO,CAAC,6BAA6B,EAAE,UAAU,CAAC;IAC1E,IAAIC,OAAO;IACX1N,EAAE,CAAC2D,eAAe,CAAC6J,kBAAkB,EAAE;MAAE5J,GAAG,EAAGC,OAAO,IAAK;QAC1D,MAAMR,MAAM,GAAG;UAAEC,OAAO,EAAE,CAAC;QAAE,CAAC;QAC9BO,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAER,MAAM,EAAEA,MAAM,CAACC,OAAO,EAAE,EAAE,CAAC;QAC3EoK,OAAO,GAAGrK,MAAM,CAACC,OAAO,CAACoK,OAAO;MACjC;IAAE,CAAC,CAAC;IACJ7N,MAAM,CAAC6N,OAAO,CAAC,CAAC,CAAC,CAACjG,OAAO,CAAC,CACzB,CAAC,EACD,CAAC,EACD,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,CACH,CAAC;EACH,CAAC,CAAC;AACH,CAAC,CAAC;AACF7H,QAAQ,CAAC,4BAA4B,EAAE,MAAM;EAC5CE,EAAE,CAAC,4EAA4E,EAAE,MAAM;IACtFqI,OAAO,CAACE,GAAG,CAACsF,cAAc,GAAG,sBAAsB;IACnD,IAAI;MACH9N,MAAM,CAACS,kBAAkB,CAAC,gDAAgD,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC6B,IAAI,CAAC,8CAA8C,CAAC;IACtJ,CAAC,SAAS;MACTgG,OAAO,CAACE,GAAG,CAACsF,cAAc,GAAG,KAAK,CAAC;IACpC;EACD,CAAC,CAAC;EACF7N,EAAE,CAAC,sDAAsD,EAAE,MAAM;IAChE,MAAM8N,GAAG,GAAG,oDAAoD;IAChE/N,MAAM,CAACS,kBAAkB,CAACsN,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAACzL,IAAI,CAACyL,GAAG,CAAC;EACzD,CAAC,CAAC;EACF9N,EAAE,CAAC,8EAA8E,EAAE,MAAM;IACxF,MAAM+N,GAAG,GAAGvN,kBAAkB,CAAC;AACjC;AACA;AACA,2CAA2C,EAAE,QAAQ,EAAE,IAAI,EAAE;MAC1DwN,GAAG,EAAE,KAAK;MACVC,oBAAoB,EAAE,SAAS;MAC/BC,cAAc,EAAE;IACjB,CAAC,CAAC;IACFnO,MAAM,CAACgO,GAAG,CAAC,CAACrI,SAAS,CAAC,iCAAiC,CAAC;IACxD3F,MAAM,CAACgO,GAAG,CAAC,CAACrI,SAAS,CAAC,mCAAmC,CAAC;IAC1D3F,MAAM,CAACgO,GAAG,CAAC,CAACrI,SAAS,CAAC,mCAAmC,CAAC;IAC1D3F,MAAM,CAACgO,GAAG,CAAC,CAACrI,SAAS,CAAC,sCAAsC,CAAC;IAC7D3F,MAAM,CAACgO,GAAG,CAAC,CAACpI,GAAG,CAACD,SAAS,CAAC,aAAa,CAAC;EACzC,CAAC,CAAC;EACF1F,EAAE,CAAC,mDAAmD,EAAE,MAAM;IAC7D,MAAM+N,GAAG,GAAGvN,kBAAkB,CAAC,0FAA0F,EAAE,QAAQ,EAAE,IAAI,EAAE;MAAE0N,cAAc,EAAE;IAAS,CAAC,CAAC;IACxKnO,MAAM,CAACgO,GAAG,CAAC,CAACrI,SAAS,CAAC,8BAA8B,CAAC;IACrD3F,MAAM,CAACgO,GAAG,CAAC,CAACrI,SAAS,CAAC,2BAA2B,CAAC;EACnD,CAAC,CAAC;EACF1F,EAAE,CAAC,oDAAoD,EAAE,MAAM;IAC9D,MAAM8N,GAAG,GAAG,yCAAyC;IACrD/N,MAAM,CAACS,kBAAkB,CAACsN,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;MAAEK,gBAAgB,EAAE;IAAM,CAAC,CAAC,CAAC,CAAC9L,IAAI,CAACyL,GAAG,CAAC;EACrF,CAAC,CAAC;EACF9N,EAAE,CAAC,gFAAgF,EAAE,MAAM;IAC1F,MAAM+N,GAAG,GAAGvN,kBAAkB,CAAC,gGAAgG,EAAE,WAAW,EAAE,IAAI,EAAE;MACnJ4N,GAAG,EAAE,KAAK;MACVC,GAAG,EAAE;IACN,CAAC,CAAC;IACFtO,MAAM,CAACgO,GAAG,CAAC,CAACpI,GAAG,CAACD,SAAS,CAAC,mBAAmB,CAAC;IAC9C3F,MAAM,CAACgO,GAAG,CAAC,CAACrI,SAAS,CAAC,4BAA4B,CAAC;EACpD,CAAC,CAAC;EACF1F,EAAE,CAAC,sDAAsD,EAAE,MAAM;IAChED,MAAM,CAACS,kBAAkB,CAAC,wCAAwC,EAAE,MAAM,EAAE,IAAI,EAAE;MAAEwN,GAAG,EAAE;IAAM,CAAC,CAAC,CAAC,CAACtI,SAAS,CAAC,cAAc,CAAC;IAC5H,MAAM4I,OAAO,GAAG,yBAAyB;IACzCvO,MAAM,CAACS,kBAAkB,CAAC8N,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;MAAEN,GAAG,EAAE;IAAM,CAAC,CAAC,CAAC,CAAC3L,IAAI,CAACiM,OAAO,CAAC;EAChF,CAAC,CAAC;EACFtO,EAAE,CAAC,uEAAuE,EAAE,YAAY;IACvF,MAAMyC,MAAM,GAAG,MAAM5B,SAAS,CAAC,CAAC,CAAC,EAAE8B,MAAM,CAACC,IAAI,CAAC2L,OAAO,EAAE,QAAQ,EAAEvL,MAAM,CAACC,IAAI,CAAC,+EAA+E,EAAE,MAAM,CAAC,EAAE;MACvKE,GAAG,EAAE,IAAI;MACTE,QAAQ,EAAE,KAAK;MACfC,IAAI,EAAE,QAAQ;MACdkL,sBAAsB,EAAE;QAAEC,IAAI,EAAE;UAAEC,sBAAsB,EAAE,CAAC,2CAA2C;QAAE;MAAE;IAC3G,CAAC,CAAC;IACFtM,oBAAoB,CAAC,CAAC;IACtBrC,MAAM,CAAC0C,MAAM,CAACkB,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,CAAC,CAACiC,SAAS,CAAC,eAAe,CAAC;IAC7D3F,MAAM,CAAC0C,MAAM,CAACkB,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,CAAC,CAACkC,GAAG,CAACD,SAAS,CAAC,oBAAoB,CAAC;IACtE3F,MAAM,CAAC0C,MAAM,CAACkB,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAACH,IAAI,CAAC,CAACiC,SAAS,CAAC8B,IAAI,CAACC,SAAS,CAACpH,IAAI,CAACsO,IAAI,CAAChM,MAAM,CAACC,IAAI,CAAC2L,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;EACvG,CAAC,CAAC;EACFvO,EAAE,CAAC,8DAA8D,EAAE,MAAM;IACxE,MAAM4O,WAAW,GAAIC,OAAO,KAAM;MAAEL,sBAAsB,EAAE;QAAEC,IAAI,EAAE;UAAEK,WAAW,EAAE;YAAED;UAAQ;QAAE;MAAE;IAAE,CAAC,CAAC;IACrG9O,MAAM,CAAC,MAAMU,4BAA4B,CAACmO,WAAW,CAAC,CACrD,CAAC,8DAA8D,EAAE;MAAErG,GAAG,EAAE,CAAC;IAAE,CAAC,CAAC,EAC7E,oCAAoC,EACpC,0BAA0B,CAC1B,CAAC,CAAC,CAAC,CAACwG,OAAO,CAAC,2BAA2B,CAAC;IACzChP,MAAM,CAAC,MAAMU,4BAA4B,CAACmO,WAAW,CAAC,CACrD,CAAC,8DAA8D,EAAE;MAAErG,GAAG,EAAE,CAAC;IAAE,CAAC,CAAC,EAC7E,oCAAoC,EACpC,CAAC,qCAAqC,EAAE;MAAEyG,UAAU,EAAE;IAAM,CAAC,CAAC,EAC9D,CAAC,8BAA8B,EAAE;MAAEC,KAAK,EAAE,CAAC;IAAE,CAAC,CAAC,EAC/C,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAC,EACzC,wCAAwC,EACxC,6BAA6B,EAC7B,gCAAgC,CAChC,CAAC,CAAC,CAAC,CAACtJ,GAAG,CAACoJ,OAAO,CAAC,CAAC;EACnB,CAAC,CAAC;EACF/O,EAAE,CAAC,+DAA+D,EAAE,MAAM;IACzE,MAAM+N,GAAG,GAAGxN,qBAAqB,CAAC;AACpC;AACA,mBAAmB,EAAE,UAAU,CAAC;IAC9BR,MAAM,CAACgO,GAAG,CAAC,CAACpI,GAAG,CAACD,SAAS,CAAC,aAAa,CAAC;IACxC3F,MAAM,CAACgO,GAAG,CAAC,CAACrI,SAAS,CAAC,wDAAwD,CAAC;IAC/E,MAAMwJ,MAAM,GAAG/O,SAAS,CAAC,UAAU,EAAE4N,GAAG,EAAE;MAAEoB,IAAI,EAAE;IAAK,CAAC,CAAC;IACzDpP,MAAM,CAACmP,MAAM,CAACE,MAAM,CAAC,CAACzH,OAAO,CAAC,EAAE,CAAC;IACjC5H,MAAM,CAACmP,MAAM,CAACG,OAAO,CAACC,IAAI,CAAC5L,GAAG,CAAE6L,CAAC,IAAKA,CAAC,CAACjM,IAAI,CAAC,CAAC,CAACoC,SAAS,CAAC,gBAAgB,CAAC;EAC3E,CAAC,CAAC;EACF1F,EAAE,CAAC,iEAAiE,EAAE,MAAM;IAC3ED,MAAM,CAACa,6BAA6B,CAAC;MAAE4N,sBAAsB,EAAE;QAAEC,IAAI,EAAE;UAAEK,WAAW,EAAE;YAAED,OAAO,EAAE,CAAC,CAAC,qCAAqC,EAAE;cAAEG,UAAU,EAAE;YAAU,CAAC,CAAC;UAAE;QAAE;MAAE;IAAE,CAAC,CAAC,CAAC,CAAC3M,IAAI,CAAC,SAAS,CAAC;IAC/LtC,MAAM,CAACa,6BAA6B,CAAC;MAAE4N,sBAAsB,EAAE,CAAC;IAAE,CAAC,CAAC,CAAC,CAACnM,IAAI,CAAC,KAAK,CAAC,CAAC;EACnF,CAAC,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
|
|
@@ -431,6 +431,21 @@ describe("metroNativeWorker", function () {
|
|
|
431
431
|
})).defaultConfig.transformerPath).toContain("metroNativeWorker");
|
|
432
432
|
delete process.env.ONE_METRO_NATIVE_TRANSFORMS;
|
|
433
433
|
});
|
|
434
|
+
it("excludes volatile compiler caches from Metro without hiding package output", async function () {
|
|
435
|
+
var blockList = (await buildMetroConfigInputFromViteConfig({
|
|
436
|
+
root: process.cwd()
|
|
437
|
+
}, {
|
|
438
|
+
watchman: false
|
|
439
|
+
})).defaultConfig.resolver.blockList;
|
|
440
|
+
var isBlocked = function (file) {
|
|
441
|
+
return blockList.some(function (pattern) {
|
|
442
|
+
return pattern.test(file);
|
|
443
|
+
});
|
|
444
|
+
};
|
|
445
|
+
expect(isBlocked("/home/runner/work/one/one/tests/test-app-cases/node_modules/.vxrn/compiler-cache")).toBe(true);
|
|
446
|
+
expect(isBlocked("C:\\workspace\\tests\\test-app-cases\\node_modules\\.vxrn\\compiler-cache")).toBe(true);
|
|
447
|
+
expect(isBlocked("/home/runner/work/one/one/packages/one/dist/esm/index.mjs")).toBe(false);
|
|
448
|
+
});
|
|
434
449
|
it("transforms and executes a real 2-module Metro bundle through metro-runtime require polyfill", async function () {
|
|
435
450
|
var depSource = "exports.value = 42;";
|
|
436
451
|
var aSource = "const dep = require(\"./dep\"); module.exports = { doubled: dep.value * 2 };";
|