vxrn 2.13.9 → 2.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/exports/prebuildWithoutExpo.mjs +15 -1
- package/dist/exports/prebuildWithoutExpo.mjs.map +1 -1
- package/dist/exports/prebuildWithoutExpo.native.js +15 -1
- package/dist/exports/prebuildWithoutExpo.native.js.map +1 -1
- package/dist/utils/nativeSourceContract.mjs +742 -97
- package/dist/utils/nativeSourceContract.mjs.map +1 -1
- package/dist/utils/nativeSourceContract.native.js +758 -70
- package/dist/utils/nativeSourceContract.native.js.map +1 -1
- package/expo-plugin.cjs +15 -2
- package/native-project-patches.cjs +42 -0
- package/package.json +12 -12
- package/src/exports/expoPlugin.test.mjs +52 -0
- package/src/exports/prebuildWithoutExpo.test.ts +18 -0
- package/src/exports/prebuildWithoutExpo.ts +18 -1
- package/src/utils/nativeSourceContract.test.ts +74 -9
- package/src/utils/nativeSourceContract.ts +810 -105
- package/types/exports/prebuildWithoutExpo.d.ts.map +1 -1
- package/types/utils/nativeSourceContract.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nativeSourceContract.native.js","names":[],"sources":["utils/nativeSourceContract.native.js"],"sourcesContent":["import { createHash, randomUUID } from \"crypto\";\nimport { existsSync, readFileSync, readdirSync, renameSync, rmSync, writeFileSync } from \"fs\";\nimport { basename, dirname, join, relative } from \"path\";\nimport { swiftPackageDirectories, swiftPackageId } from \"./swiftPackageId\";\nvar GENERATED_HEADER = \"// generated by one typegen; edits will be replaced\\n\";\nvar SKIP_SOURCE_DIRS = /* @__PURE__ */ new Set([\n \"node_modules\",\n \"ios\",\n \"android\",\n \"dist\",\n \"types\",\n \"build\",\n \".build\"\n]);\nfunction writeGeneratedFile(file, content) {\n try {\n if (readFileSync(file, \"utf8\") === content) return;\n } catch (error) {\n if (!error || typeof error !== \"object\" || !(\"code\" in error) || error.code !== \"ENOENT\") throw error;\n }\n var temporary = join(dirname(file), `.${basename(file)}.${randomUUID()}.tmp`);\n try {\n writeFileSync(temporary, content);\n renameSync(temporary, file);\n } finally {\n rmSync(temporary, {\n force: true\n });\n }\n}\nfunction fail(file, token, message) {\n var _ref, _ref1;\n throw new Error(`${file}:${((_ref = token === null || token === void 0 ? void 0 : token.line) !== null && _ref !== void 0 ? _ref : 0) + 1}:${((_ref1 = token === null || token === void 0 ? void 0 : token.column) !== null && _ref1 !== void 0 ? _ref1 : 0) + 1}: ${message}`);\n}\nfunction tokens(file, source) {\n var result = [];\n var offset = 0;\n var line = 0;\n var column = 0;\n var advance = function advance2() {\n if (source[offset] === \"\\n\") {\n line++;\n column = 0;\n } else column++;\n offset++;\n };\n while (offset < source.length) {\n var char = source[offset];\n if (/\\s/.test(char)) {\n advance();\n continue;\n }\n if (source.startsWith(\"//\", offset)) {\n while (offset < source.length && source[offset] !== \"\\n\") advance();\n continue;\n }\n if (source.startsWith(\"/*\", offset)) {\n var depth = 0;\n do {\n if (source.startsWith(\"/*\", offset)) {\n depth++;\n advance();\n advance();\n } else if (source.startsWith(\"*/\", offset)) {\n depth--;\n advance();\n advance();\n } else advance();\n } while (depth > 0 && offset < source.length);\n if (depth > 0) fail(file, {\n text: \"/*\",\n line,\n column\n }, \"unclosed native source comment\");\n continue;\n }\n if (char === '\"' || char === \"'\") {\n var quote = source.startsWith(char.repeat(3), offset) ? char.repeat(3) : char;\n for (var n = 0; n < quote.length; n++) advance();\n while (offset < source.length && !source.startsWith(quote, offset)) {\n if (source[offset] === \"\\\\\") advance();\n advance();\n }\n if (offset >= source.length) fail(file, {\n text: quote,\n line,\n column\n }, \"unclosed native source string\");\n for (var n1 = 0; n1 < quote.length; n1++) advance();\n continue;\n }\n var start = offset;\n var startLine = line;\n var startColumn = column;\n if (/[A-Za-z_]/.test(char)) {\n while (offset < source.length && /[A-Za-z0-9_]/.test(source[offset])) advance();\n } else if (source.startsWith(\"->\", offset)) {\n advance();\n advance();\n } else advance();\n result.push({\n text: source.slice(start, offset),\n line: startLine,\n column: startColumn\n });\n }\n return result;\n}\nfunction close(file, list, start, left, right) {\n var depth = 0;\n for (var i = start; i < list.length; i++) {\n if (list[i].text === left) depth++;\n if (list[i].text === right && --depth === 0) return i;\n }\n fail(file, list[start], `unclosed ${left} in native export`);\n}\nfunction split(list, separator) {\n var parts = [];\n var start = 0;\n var square = 0;\n var angle = 0;\n var round = 0;\n for (var i = 0; i < list.length; i++) {\n var value = list[i].text;\n if (value === \"[\") square++;\n if (value === \"]\") square--;\n if (value === \"<\") angle++;\n if (value === \">\") angle--;\n if (value === \"(\") round++;\n if (value === \")\") round--;\n if (value === separator && square === 0 && angle === 0 && round === 0) {\n parts.push(list.slice(start, i));\n start = i + 1;\n }\n }\n parts.push(list.slice(start));\n return parts;\n}\nfunction arrayOf(element) {\n return element.includes(\" | \") ? `(${element})[]` : `${element}[]`;\n}\nfunction tsType(file, list, language, named) {\n var _list_at, _list_at1, _list_, _list_at2;\n if (list.length === 0) fail(file, list[0], \"native export needs an explicit type\");\n if (((_list_at = list.at(-1)) === null || _list_at === void 0 ? void 0 : _list_at.text) === \"?\") {\n var inner = tsType(file, list.slice(0, -1), language, named);\n return {\n text: `${inner.text} | null`,\n wire: inner.wire ? {\n kind: \"nullable\",\n inner: inner.wire\n } : null\n };\n }\n var value = list.map(function(token) {\n return token.text;\n }).join(\"\");\n if (value === \"String\") return {\n text: \"string\",\n wire: null\n };\n if (value === \"Bool\" || value === \"Boolean\") return {\n text: \"boolean\",\n wire: null\n };\n if ([\n \"Double\",\n \"Float\",\n \"Int\",\n \"Long\"\n ].includes(value)) return {\n text: \"number\",\n wire: null\n };\n if (value === \"Void\" || value === \"Unit\") return {\n text: \"void\",\n wire: null\n };\n var dateTypes = language === \"swift\" ? [\n \"Date\",\n \"Foundation.Date\"\n ] : [\n \"Date\",\n \"java.util.Date\"\n ];\n if (dateTypes.includes(value)) return {\n text: \"Date\",\n wire: {\n kind: \"date\"\n }\n };\n var dataTypes = language === \"swift\" ? [\n \"Data\",\n \"Foundation.Data\"\n ] : [\n \"ByteArray\"\n ];\n if (dataTypes.includes(value)) {\n return {\n text: \"Uint8Array\",\n wire: {\n kind: \"data\"\n }\n };\n }\n if (language === \"swift\" && list[0].text === \"[\" && ((_list_at1 = list.at(-1)) === null || _list_at1 === void 0 ? void 0 : _list_at1.text) === \"]\") {\n var inner1 = list.slice(1, -1);\n var entries = split(inner1, \":\");\n if (entries.length === 1) {\n var element = tsType(file, inner1, language, named);\n return {\n text: arrayOf(element.text),\n wire: element.wire ? {\n kind: \"array\",\n element: element.wire\n } : null\n };\n }\n if (entries.length === 2 && entries[0].map(function(token) {\n return token.text;\n }).join(\"\") === \"String\") {\n var element1 = tsType(file, entries[1], language, named);\n return {\n text: `Record<string, ${element1.text}>`,\n wire: element1.wire ? {\n kind: \"map\",\n value: element1.wire\n } : null\n };\n }\n }\n if (language === \"kotlin\" && ((_list_ = list[1]) === null || _list_ === void 0 ? void 0 : _list_.text) === \"<\" && ((_list_at2 = list.at(-1)) === null || _list_at2 === void 0 ? void 0 : _list_at2.text) === \">\") {\n var entries1 = split(list.slice(2, -1), \",\");\n if (list[0].text === \"List\" && entries1.length === 1) {\n var element2 = tsType(file, entries1[0], language, named);\n return {\n text: arrayOf(element2.text),\n wire: element2.wire ? {\n kind: \"array\",\n element: element2.wire\n } : null\n };\n }\n if (list[0].text === \"Map\" && entries1.length === 2 && entries1[0].map(function(token) {\n return token.text;\n }).join(\"\") === \"String\") {\n var element3 = tsType(file, entries1[1], language, named);\n return {\n text: `Record<string, ${element3.text}>`,\n wire: element3.wire ? {\n kind: \"map\",\n value: element3.wire\n } : null\n };\n }\n }\n if (list.length === 1 && /^[A-Z][A-Za-z0-9_]*$/.test(value)) {\n var struct = named.structs.get(value);\n if (struct) {\n if (struct.generic) fail(file, list[0], `generic struct ${value} is unsupported`);\n if (struct.problem) fail(file, list[0], struct.problem);\n if (!struct.codable) fail(file, list[0], `struct ${value} must conform to Codable to cross the boundary`);\n return {\n text: value,\n wire: {\n kind: \"struct\",\n name: value\n }\n };\n }\n var enumType = named.enums.get(value);\n if (enumType) {\n if (!enumType.usable) fail(file, list[0], enumType.problem);\n return {\n text: value,\n wire: {\n kind: \"enum\",\n name: value\n }\n };\n }\n }\n fail(file, list[0], `unsupported native export type ${value}`);\n}\nfunction parameters(file, list, language, named) {\n if (list.length === 0) return [];\n return split(list, \",\").map(function(part, index) {\n var _ref, _ref1, _type_wire;\n var _this, _names_;\n if (part.some(function(token) {\n return token.text === \"=\";\n })) fail(file, part[0], \"default native export arguments are unsupported\");\n var colon = part.findIndex(function(token) {\n return token.text === \":\";\n });\n if (colon < 0) fail(file, part[0], \"native export parameter needs an explicit type\");\n var names = part.slice(0, colon).filter(function(token) {\n return /^[A-Za-z_][A-Za-z0-9_]*$/.test(token.text);\n });\n var name = (_ref = (_this = language === \"swift\" ? names.at(-1) : names[0]) === null || _this === void 0 ? void 0 : _this.text) !== null && _ref !== void 0 ? _ref : `arg${index}`;\n if (name === \"_\") fail(file, part[0], \"native export parameter needs an internal name\");\n var label = language === \"swift\" ? (_ref1 = (_names_ = names[0]) === null || _names_ === void 0 ? void 0 : _names_.text) !== null && _ref1 !== void 0 ? _ref1 : name : null;\n var sourceType = part.slice(colon + 1);\n var type = tsType(file, sourceType, language, named);\n return {\n name,\n label,\n type: type.text,\n nativeType: sourceType.map(function(token) {\n return token.text;\n }).join(\"\"),\n wire: (_type_wire = type.wire) !== null && _type_wire !== void 0 ? _type_wire : void 0\n };\n });\n}\nvar DECLARATION_MODIFIERS = /* @__PURE__ */ new Set([\n \"private\",\n \"fileprivate\",\n \"public\",\n \"internal\",\n \"open\",\n \"override\",\n \"static\",\n \"class\",\n \"final\",\n \"suspend\",\n \"inline\",\n \"operator\",\n \"infix\",\n \"tailrec\",\n \"external\",\n \"nonisolated\",\n \"isolated\",\n \"mutating\",\n \"nonmutating\",\n \"dynamic\",\n \"required\",\n \"convenience\",\n \"optional\"\n]);\nfunction declarationStart(list, floor, keyword) {\n var first = keyword;\n while (first > floor) {\n var _list_;\n var text = list[first - 1].text;\n if (DECLARATION_MODIFIERS.has(text)) {\n first--;\n continue;\n }\n if (((_list_ = list[first - 2]) === null || _list_ === void 0 ? void 0 : _list_.text) === \"@\") {\n first -= 2;\n continue;\n }\n if (text === \")\") {\n var _list_1;\n var open = first - 1;\n for (var depth = 0; open > floor; open--) {\n if (list[open].text === \")\") depth++;\n if (list[open].text === \"(\" && --depth === 0) break;\n }\n if (((_list_1 = list[open - 2]) === null || _list_1 === void 0 ? void 0 : _list_1.text) === \"@\") {\n first = open - 2;\n continue;\n }\n }\n break;\n }\n return first;\n}\nfunction declarationModifiers(list, floor, keyword) {\n var words = [];\n for (var i = declarationStart(list, floor, keyword), depth = 0; i < keyword; i++) {\n var text = list[i].text;\n if (text === \"(\") depth++;\n else if (text === \")\") depth--;\n else if (depth === 0) words.push(text);\n }\n return words;\n}\nfunction subscriptionPayload(file, typeTokens, language, named) {\n try {\n var _typeTokens_at, _fn_, _fn_1, _fn_2, _fn_3;\n if (((_typeTokens_at = typeTokens.at(-1)) === null || _typeTokens_at === void 0 ? void 0 : _typeTokens_at.text) === \"?\") return null;\n var fn = typeTokens;\n if (language === \"swift\" && ((_fn_ = fn[0]) === null || _fn_ === void 0 ? void 0 : _fn_.text) === \"@\" && ((_fn_1 = fn[1]) === null || _fn_1 === void 0 ? void 0 : _fn_1.text) === \"escaping\") fn = fn.slice(2);\n if (((_fn_2 = fn[0]) === null || _fn_2 === void 0 ? void 0 : _fn_2.text) === \"(\" && close(file, fn, 0, \"(\", \")\") === fn.length - 1 && fn.some(function(token) {\n return token.text === \"->\";\n })) {\n fn = fn.slice(1, -1);\n }\n var arrow = fn.findIndex(function(token) {\n return token.text === \"->\";\n });\n if (arrow <= 0 || ((_fn_3 = fn[0]) === null || _fn_3 === void 0 ? void 0 : _fn_3.text) !== \"(\" || close(file, fn, 0, \"(\", \")\") !== arrow - 1) return null;\n var result = fn.slice(arrow + 1);\n var voidResult = result.length === 1 && (result[0].text === \"Void\" || result[0].text === \"Unit\") || result.length === 2 && result[0].text === \"(\" && result[1].text === \")\";\n if (!voidResult) return null;\n var inner = fn.slice(1, arrow - 1);\n if (inner.length === 0) return [];\n return split(inner, \",\").map(function(arg) {\n var _resolved_wire;\n var colon = arg.findIndex(function(token) {\n return token.text === \":\";\n });\n var type = colon < 0 ? arg : arg.slice(colon + 1);\n var resolved = tsType(file, type, language, named);\n return {\n type: resolved.text,\n nativeType: type.map(function(token) {\n return token.text;\n }).join(\"\"),\n wire: (_resolved_wire = resolved.wire) !== null && _resolved_wire !== void 0 ? _resolved_wire : void 0\n };\n });\n } catch (unused) {\n return null;\n }\n}\nfunction methods(file, list, start, end, language, named) {\n var _loop = function() {\n var _list_, _list_1, _list_open, _list_headerEnd, _list_headerEnd1;\n if (list[i].text === \"{\") {\n i = close(file, list, i, \"{\", \"}\") + 1;\n previous = i;\n return \"continue\";\n }\n if (list[i].text !== keyword) {\n i++;\n return \"continue\";\n }\n var modifiers = declarationModifiers(list, previous, i);\n var hidden = modifiers.includes(\"private\") || modifiers.includes(\"fileprivate\");\n if (!hidden && (modifiers.includes(\"static\") || modifiers.includes(\"class\"))) {\n fail(file, list[i], \"static native exports are unsupported\");\n }\n var name = (_list_ = list[i + 1]) === null || _list_ === void 0 ? void 0 : _list_.text;\n if (!name || !/^[A-Za-z_][A-Za-z0-9_]*$/.test(name)) fail(file, list[i], \"native export has no method name\");\n if (result.some(function(method) {\n return method.name === name;\n })) fail(file, list[i], `overloaded native export ${name} is unsupported`);\n if (((_list_1 = list[i + 2]) === null || _list_1 === void 0 ? void 0 : _list_1.text) === \"<\") fail(file, list[i], \"generic native exports are unsupported\");\n var open = i + 2;\n if (((_list_open = list[open]) === null || _list_open === void 0 ? void 0 : _list_open.text) !== \"(\") fail(file, list[i], \"native export has no parameter list\");\n var closing = close(file, list, open, \"(\", \")\");\n var headerEnd = closing + 1;\n while (headerEnd < end && ![\n \"{\",\n \"=\",\n \";\"\n ].includes(list[headerEnd].text)) headerEnd++;\n var header = list.slice(closing + 1, headerEnd);\n var separator = header.findIndex(function(token) {\n return token.text === (language === \"swift\" ? \"->\" : \":\");\n });\n var sourceType = hidden || separator < 0 ? [] : header.slice(separator + 1);\n var type = sourceType.length === 0 ? {\n text: \"void\",\n wire: null\n } : tsType(file, sourceType, language, named);\n var subscription = void 0;\n if (!hidden && type.text === \"void\") {\n var parts = split(list.slice(open + 1, closing), \",\");\n if (parts.length === 1 && parts[0].length > 0) {\n var colon = parts[0].findIndex(function(token) {\n return token.text === \":\";\n });\n if (colon >= 0) {\n var payload = subscriptionPayload(file, parts[0].slice(colon + 1), language, named);\n if (payload) subscription = {\n payload\n };\n }\n }\n }\n if (!hidden) {\n var _type_wire;\n result.push({\n name,\n parameters: subscription ? [] : parameters(file, list.slice(open + 1, closing), language, named),\n result: type.text,\n nativeResult: sourceType.length === 0 ? language === \"swift\" ? \"Void\" : \"Unit\" : sourceType.map(function(token) {\n return token.text;\n }).join(\"\"),\n resultWire: (_type_wire = type.wire) !== null && _type_wire !== void 0 ? _type_wire : void 0,\n subscription,\n throws: language === \"swift\" ? header.some(function(token) {\n return token.text === \"throws\";\n }) : true,\n async: language === \"swift\" ? header.some(function(token) {\n return token.text === \"async\";\n }) : modifiers.includes(\"suspend\")\n });\n }\n if (((_list_headerEnd = list[headerEnd]) === null || _list_headerEnd === void 0 ? void 0 : _list_headerEnd.text) === \"{\") i = close(file, list, headerEnd, \"{\", \"}\") + 1;\n else if (((_list_headerEnd1 = list[headerEnd]) === null || _list_headerEnd1 === void 0 ? void 0 : _list_headerEnd1.text) === \"=\") {\n var bodyLine = list[headerEnd].line;\n i = headerEnd + 1;\n while (i < end && list[i].line === bodyLine && list[i].text !== \";\") i++;\n } else i = headerEnd + 1;\n previous = i;\n };\n var result = [];\n var i = start + 1;\n var previous = i;\n var keyword = language === \"swift\" ? \"func\" : \"fun\";\n while (i < end) _loop();\n return result;\n}\nfunction callbackProp(file, name, typeTokens, optional, language, named) {\n var _typeTokens_at, _fn_, _fn_1;\n var nullable = ((_typeTokens_at = typeTokens.at(-1)) === null || _typeTokens_at === void 0 ? void 0 : _typeTokens_at.text) === \"?\";\n var fn = nullable ? typeTokens.slice(0, -1) : typeTokens;\n if (((_fn_ = fn[0]) === null || _fn_ === void 0 ? void 0 : _fn_.text) === \"(\" && close(file, fn, 0, \"(\", \")\") === fn.length - 1 && fn.some(function(token) {\n return token.text === \"->\";\n })) {\n fn = fn.slice(1, -1);\n }\n var arrow = fn.findIndex(function(token) {\n return token.text === \"->\";\n });\n if (arrow < 0 || ((_fn_1 = fn[0]) === null || _fn_1 === void 0 ? void 0 : _fn_1.text) !== \"(\" || close(file, fn, 0, \"(\", \")\") !== arrow - 1) return null;\n var result = fn.slice(arrow + 1).map(function(token) {\n return token.text;\n }).join(\"\");\n var unit = language === \"swift\" ? \"Void\" : \"Unit\";\n if (result !== unit && !(language === \"swift\" && result === \"()\")) {\n fail(file, typeTokens[0], `view callback ${name} must return ${unit}`);\n }\n var inner = fn.slice(1, arrow - 1);\n var callback = inner.length === 0 ? [] : split(inner, \",\").map(function(arg) {\n var _resolved_wire;\n var colon = arg.findIndex(function(token) {\n return token.text === \":\";\n });\n var type = colon < 0 ? arg : arg.slice(colon + 1);\n var resolved = tsType(file, type, language, named);\n return {\n type: resolved.text,\n nativeType: type.map(function(token) {\n return token.text;\n }).join(\"\"),\n wire: (_resolved_wire = resolved.wire) !== null && _resolved_wire !== void 0 ? _resolved_wire : void 0\n };\n });\n var signature = `(${callback.map(function(arg, index) {\n return `value${index}: ${arg.type}`;\n }).join(\", \")}) => void`;\n var nativeType = typeTokens.map(function(token) {\n return token.text;\n }).join(\"\");\n return {\n name,\n type: nullable ? `(${signature}) | null` : signature,\n nativeType,\n optional,\n callback\n };\n}\nfunction viewProp(file, part, named) {\n var _resolved_wire;\n var _equals_, _typeTokens_at;\n var colon = part.findIndex(function(token) {\n return token.text === \":\";\n });\n if (colon !== 1 || !/^[A-Za-z_][A-Za-z0-9_]*$/.test(part[0].text)) {\n fail(file, part[0], \"composable parameter needs a name and an explicit type\");\n }\n var name = part[0].text;\n var equals = split(part.slice(colon + 1), \"=\");\n var typeTokens = equals[0];\n var fallback = (_equals_ = equals[1]) === null || _equals_ === void 0 ? void 0 : _equals_.map(function(token) {\n return token.text;\n }).join(\"\");\n var nativeType = typeTokens.map(function(token) {\n return token.text;\n }).join(\"\");\n if (nativeType === \"Modifier\") {\n if (fallback !== \"Modifier\") fail(file, part[0], \"a composable modifier parameter needs the default Modifier\");\n return null;\n }\n var nullable = ((_typeTokens_at = typeTokens.at(-1)) === null || _typeTokens_at === void 0 ? void 0 : _typeTokens_at.text) === \"?\";\n if (fallback !== void 0 && !(nullable && fallback === \"null\")) {\n fail(file, part[0], `composable parameter ${name} may only default to null`);\n }\n var optional = fallback !== void 0;\n var callback = callbackProp(file, name, typeTokens, optional, \"kotlin\", named);\n if (callback) return callback;\n var resolved = tsType(file, typeTokens, \"kotlin\", named);\n return {\n name,\n type: resolved.text,\n nativeType,\n optional,\n callback: null,\n wire: (_resolved_wire = resolved.wire) !== null && _resolved_wire !== void 0 ? _resolved_wire : void 0\n };\n}\nvar PLAIN_ATTRIBUTES = /* @__PURE__ */ new Set([\n \"MainActor\",\n \"available\",\n \"objc\",\n \"nonobjc\",\n \"preconcurrency\"\n]);\nfunction storedProperty(file, list, i, previous, end, owner) {\n var _ref;\n var _list_, _list_1, _list_stop, _list_next, _list_2;\n var at = list[i];\n var own = list.slice(declarationStart(list, previous, i), i).map(function(token) {\n return token.text;\n });\n var propName = (_ref = (_list_ = list[i + 1]) === null || _list_ === void 0 ? void 0 : _list_.text) !== null && _ref !== void 0 ? _ref : \"\";\n if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(propName)) fail(file, list[i], `${owner} has a property without a simple name`);\n var stop = i + 2;\n var depth = 0;\n while (stop < end) {\n var value = list[stop].text;\n if (depth === 0 && (value === \"=\" || value === \"{\" || value === \";\" || list[stop].line !== list[stop - 1].line)) break;\n if (value === \"(\" || value === \"[\" || value === \"<\") depth++;\n if (value === \")\" || value === \"]\" || value === \">\") depth--;\n stop++;\n }\n var typeTokens = ((_list_1 = list[i + 2]) === null || _list_1 === void 0 ? void 0 : _list_1.text) === \":\" ? list.slice(i + 3, stop) : [];\n var valued = ((_list_stop = list[stop]) === null || _list_stop === void 0 ? void 0 : _list_stop.text) === \"=\";\n var next = stop;\n if (valued) {\n var valueLine = list[stop].line;\n while (next < end && list[next].line === valueLine && list[next].text !== \"{\") next++;\n }\n var block = ((_list_next = list[next]) === null || _list_next === void 0 ? void 0 : _list_next.text) === \"{\";\n var computed = block && !valued && ![\n \"willSet\",\n \"didSet\"\n ].includes((_list_2 = list[next + 1]) === null || _list_2 === void 0 ? void 0 : _list_2.text);\n var resume = block ? close(file, list, next, \"{\", \"}\") + 1 : next;\n return {\n at,\n own,\n propName,\n typeTokens,\n valued,\n stop,\n computed,\n resume\n };\n}\nfunction swiftView(file, list, keyword, floor, body, end, named) {\n var _loop = function() {\n var _list_2, _list_1, _typeTokens_at, _list_22, _list_3;\n var text = list[i].text;\n if (text === \"{\") {\n i = close(file, list, i, \"{\", \"}\") + 1;\n previous = i;\n return \"continue\";\n }\n if (text === \"init\" && ((_list_2 = list[i + 1]) === null || _list_2 === void 0 ? void 0 : _list_2.text) === \"(\" && ((_list_1 = list[i - 1]) === null || _list_1 === void 0 ? void 0 : _list_1.text) !== \".\") {\n fail(file, list[i], `view ${name} is imported through its memberwise initializer; remove init(...)`);\n }\n if (text !== \"let\" && text !== \"var\") {\n i++;\n return \"continue\";\n }\n var property = storedProperty(file, list, i, previous, end, `view ${name}`);\n var { at, own, propName, typeTokens, valued, stop } = property;\n i = property.resume;\n previous = i;\n var wrapper = own.findIndex(function(value, index) {\n return own[index - 1] === \"@\" && !PLAIN_ATTRIBUTES.has(value);\n });\n if (property.computed || own.includes(\"static\")) return \"continue\";\n if (wrapper >= 0) {\n if (valued || own[wrapper + 1] === \"(\") return \"continue\";\n fail(file, at, `@${own[wrapper]} ${propName} in view ${name} needs a value; pass a plain value and a callback instead`);\n }\n if (own.includes(\"private\") || own.includes(\"fileprivate\")) {\n if (valued) return \"continue\";\n fail(file, at, `private ${propName} in view ${name} needs a value, or the view cannot be built from javascript`);\n }\n if (valued && text === \"let\") return \"continue\";\n if (typeTokens.length === 0) fail(file, at, `view prop ${propName} needs an explicit type`);\n var nullable = ((_typeTokens_at = typeTokens.at(-1)) === null || _typeTokens_at === void 0 ? void 0 : _typeTokens_at.text) === \"?\";\n if (valued && !(nullable && ((_list_22 = list[stop + 1]) === null || _list_22 === void 0 ? void 0 : _list_22.text) === \"nil\" && ((_list_3 = list[stop + 2]) === null || _list_3 === void 0 ? void 0 : _list_3.line) !== list[stop + 1].line)) {\n fail(file, list[stop], `view prop ${propName} may only default to nil`);\n }\n var callback = callbackProp(file, propName, typeTokens, nullable, \"swift\", named);\n if (callback) {\n props.push(callback);\n } else {\n var _resolved_wire;\n var resolved = tsType(file, typeTokens, \"swift\", named);\n props.push({\n name: propName,\n type: resolved.text,\n nativeType: typeTokens.map(function(token) {\n return token.text;\n }).join(\"\"),\n optional: nullable,\n callback: null,\n wire: (_resolved_wire = resolved.wire) !== null && _resolved_wire !== void 0 ? _resolved_wire : void 0\n });\n }\n };\n var _list_;\n var modifiers = declarationModifiers(list, floor, keyword);\n if (list[keyword].text !== \"struct\" || !modifiers.includes(\"public\")) return null;\n if (!list.slice(keyword + 2, body).some(function(token) {\n return token.text === \"View\";\n })) return null;\n var name = list[keyword + 1].text;\n if (!/^[A-Z][A-Za-z0-9_]*$/.test(name)) fail(file, list[keyword], \"an imported view needs a capitalized name\");\n if (((_list_ = list[keyword + 2]) === null || _list_ === void 0 ? void 0 : _list_.text) === \"<\") fail(file, list[keyword], `generic view ${name} is unsupported`);\n var props = [];\n var i = body + 1;\n var previous = i;\n while (i < end) _loop();\n return {\n name,\n props\n };\n}\nfunction collectDataClass(file, list, keyword, name, token, generic, packageName) {\n var _list_scan, _list_scan1, _list_scan2;\n var modifiers = declarationModifiers(list, 0, keyword - 1);\n var problem = null;\n if (modifiers.includes(\"private\")) {\n problem = `data class ${name} must be public to cross the boundary`;\n }\n var scan = keyword + 2;\n if (((_list_scan = list[scan]) === null || _list_scan === void 0 ? void 0 : _list_scan.text) === \"<\") scan = close(file, list, scan, \"<\", \">\") + 1;\n while ([\n \"private\",\n \"protected\",\n \"public\",\n \"internal\",\n \"constructor\"\n ].includes((_list_scan1 = list[scan]) === null || _list_scan1 === void 0 ? void 0 : _list_scan1.text)) scan++;\n var params = [];\n if (((_list_scan2 = list[scan]) === null || _list_scan2 === void 0 ? void 0 : _list_scan2.text) === \"(\") {\n var closing = close(file, list, scan, \"(\", \")\");\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = split(list.slice(scan + 1, closing), \",\")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var part = _step.value;\n if (part.length > 0) params.push(part);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n } else {\n return null;\n }\n if (list.slice(keyword + 2, scan).some(function(entry) {\n return entry.text === \"private\" || entry.text === \"protected\";\n })) {\n problem = problem !== null && problem !== void 0 ? problem : `data class ${name} must be public to cross the boundary`;\n }\n return {\n name,\n token,\n generic,\n codable: true,\n problem,\n body: [],\n params,\n packageName\n };\n}\nfunction collectSwiftEnum(file, body, name, token, generic, header) {\n var backing = header.some(function(entry) {\n return entry.text === \"String\";\n }) ? \"string\" : header.some(function(entry) {\n return entry.text === \"Int\";\n }) ? \"number\" : null;\n if (generic) {\n return {\n name,\n token,\n generic,\n usable: false,\n problem: `generic enum ${name} is unsupported`,\n backing: \"string\",\n cases: []\n };\n }\n if (!backing) {\n return {\n name,\n token,\n generic,\n usable: false,\n problem: `enum ${name} needs a String or Int backing to cross the boundary`,\n backing: \"string\",\n cases: []\n };\n }\n var inherits = header.map(function(entry) {\n return entry.text;\n });\n if (!inherits.includes(\"Codable\") && !(inherits.includes(\"Decodable\") && inherits.includes(\"Encodable\"))) {\n return {\n name,\n token,\n generic,\n usable: false,\n problem: `enum ${name} must conform to Codable to cross the boundary`,\n backing,\n cases: []\n };\n }\n var memberStarters = /* @__PURE__ */ new Set([\n \"func\",\n \"var\",\n \"let\",\n \"init\",\n \"deinit\",\n \"subscript\",\n \"static\",\n \"public\",\n \"private\",\n \"fileprivate\",\n \"internal\",\n \"open\",\n \"final\",\n \"mutating\",\n \"nonmutating\",\n \"override\",\n \"lazy\",\n \"weak\",\n \"unowned\",\n \"required\",\n \"convenience\",\n \"dynamic\",\n \"indirect\",\n \"typealias\",\n \"import\"\n ]);\n var cases = [];\n var problem = null;\n var counter = 0;\n var i = 0;\n var depth = 0;\n while (i < body.length) {\n if (body[i].text === \"{\") {\n depth++;\n i++;\n continue;\n }\n if (body[i].text === \"}\") {\n depth--;\n i++;\n continue;\n }\n if (depth !== 0 || body[i].text !== \"case\") {\n i++;\n continue;\n }\n var stop = i + 1;\n var inner = 0;\n while (stop < body.length) {\n var value = body[stop].text;\n if (inner === 0 && (value === \";\" || value === \"case\" || memberStarters.has(value))) break;\n if (value === \"(\" || value === \"[\" || value === \"<\") inner++;\n if (value === \")\" || value === \"]\" || value === \">\") inner--;\n stop++;\n if (inner < 0) break;\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = split(body.slice(i + 1, stop), \",\")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var item = _step.value;\n var _ref;\n var _item_;\n var itemName = (_ref = (_item_ = item[0]) === null || _item_ === void 0 ? void 0 : _item_.text) !== null && _ref !== void 0 ? _ref : \"\";\n if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(itemName)) continue;\n if (item.some(function(entry) {\n return entry.text === \"(\";\n })) {\n problem = problem !== null && problem !== void 0 ? problem : `enum ${name} has associated values, which cannot cross the boundary`;\n continue;\n }\n if (item.some(function(entry) {\n return entry.text === \"=\";\n })) {\n problem = problem !== null && problem !== void 0 ? problem : `enum ${name} has an explicit raw value, which cannot cross the boundary`;\n continue;\n }\n cases.push({\n name: itemName,\n value: backing === \"string\" ? itemName : counter\n });\n counter++;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n i = stop;\n }\n return {\n name,\n token,\n generic,\n usable: problem === null,\n problem: problem !== null && problem !== void 0 ? problem : \"\",\n backing,\n cases\n };\n}\nfunction collectKotlinEnum(file, body, name, token) {\n var cases = [];\n var i = 0;\n var stopWords = /* @__PURE__ */ new Set([\n \";\",\n \"fun\",\n \"val\",\n \"var\",\n \"init\",\n \"companion\",\n \"constructor\",\n \"object\",\n \"inner\",\n \"abstract\",\n \"open\",\n \"override\",\n \"lateinit\",\n \"const\",\n \"public\",\n \"private\",\n \"protected\",\n \"internal\"\n ]);\n while (i < body.length && !stopWords.has(body[i].text)) {\n if (body[i].text === \",\") {\n i++;\n continue;\n }\n if (body[i].text === \"@\") {\n var _body_i;\n i += 2;\n if (((_body_i = body[i]) === null || _body_i === void 0 ? void 0 : _body_i.text) === \"(\") i = close(file, body, i, \"(\", \")\") + 1;\n continue;\n }\n var entry = body[i].text;\n if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(entry)) break;\n cases.push({\n name: entry,\n value: entry\n });\n i++;\n while (i < body.length && (body[i].text === \"(\" || body[i].text === \"{\")) {\n i = close(file, body, i, body[i].text, body[i].text === \"(\" ? \")\" : \"}\") + 1;\n }\n }\n return {\n name,\n token,\n generic: false,\n usable: cases.length > 0,\n problem: cases.length > 0 ? \"\" : `enum class ${name} has no entries to cross the boundary`,\n backing: \"string\",\n cases\n };\n}\nvar STRUCT_MEMBER_WORDS = /* @__PURE__ */ new Set([\n \"init\",\n \"deinit\",\n \"func\",\n \"subscript\",\n \"struct\",\n \"enum\",\n \"class\",\n \"extension\",\n \"object\",\n \"static\"\n]);\nfunction swiftStructFields(file, struct, named) {\n var _loop = function() {\n var _resolved_wire;\n var text = body[i].text;\n if (text === \"{\") {\n i = close(file, body, i, \"{\", \"}\") + 1;\n previous = i;\n return \"continue\";\n }\n if (STRUCT_MEMBER_WORDS.has(text)) {\n var _body_scan;\n var scan = i + 1;\n var angle = 0;\n var round = 0;\n while (scan < end) {\n var value = body[scan].text;\n if (value === \"<\") angle++;\n else if (value === \">\") angle--;\n else if (value === \"(\") round++;\n else if (value === \")\") round--;\n else if (value === \"{\" && angle === 0 && round === 0) break;\n else if (value === \";\" && angle === 0 && round === 0) break;\n scan++;\n }\n i = ((_body_scan = body[scan]) === null || _body_scan === void 0 ? void 0 : _body_scan.text) === \"{\" ? close(file, body, scan, \"{\", \"}\") + 1 : scan + 1;\n previous = i;\n return \"continue\";\n }\n if (text !== \"let\" && text !== \"var\") {\n i++;\n return \"continue\";\n }\n var property = storedProperty(file, body, i, previous, end, `struct ${struct.name}`);\n var { at, own, propName, typeTokens, valued } = property;\n i = property.resume;\n previous = i;\n if (property.computed || own.includes(\"static\")) return \"continue\";\n var wrapper = own.findIndex(function(value2, index) {\n return own[index - 1] === \"@\" && !PLAIN_ATTRIBUTES.has(value2);\n });\n if (wrapper >= 0) {\n fail(file, at, `@${own[wrapper]} ${propName} in struct ${struct.name} is unsupported; cross a plain value instead`);\n }\n if (own.includes(\"private\") || own.includes(\"fileprivate\")) {\n if (valued) return \"continue\";\n fail(file, at, `private ${propName} in struct ${struct.name} needs a value, or calls cannot supply it`);\n }\n if (typeTokens.length === 0) fail(file, at, `struct ${struct.name} field ${propName} needs an explicit type`);\n var resolved = tsType(file, typeTokens, \"swift\", named);\n fields.push({\n name: propName,\n type: resolved.text,\n nativeType: typeTokens.map(function(token) {\n return token.text;\n }).join(\"\"),\n optional: valued,\n wire: (_resolved_wire = resolved.wire) !== null && _resolved_wire !== void 0 ? _resolved_wire : void 0\n });\n };\n var fields = [];\n var body = struct.body;\n var end = body.length;\n var i = 0;\n var previous = 0;\n while (i < end) _loop();\n return fields;\n}\nfunction kotlinStructFields(file, struct, named) {\n var fields = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = struct.params[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var part = _step.value;\n var _ref, _resolved_wire;\n var _part_;\n var keyword = part.findIndex(function(token) {\n return token.text === \"val\" || token.text === \"var\";\n });\n if (keyword < 0) fail(file, part[0], `data class ${struct.name} field needs val or var`);\n if (part.some(function(token) {\n return token.text === \"vararg\";\n })) {\n var _ref1;\n var _part_1;\n fail(file, part[0], `data class ${struct.name} field ${(_ref1 = (_part_1 = part[keyword + 1]) === null || _part_1 === void 0 ? void 0 : _part_1.text) !== null && _ref1 !== void 0 ? _ref1 : \"\"} is vararg, which cannot cross the boundary`);\n }\n var fieldName = (_ref = (_part_ = part[keyword + 1]) === null || _part_ === void 0 ? void 0 : _part_.text) !== null && _ref !== void 0 ? _ref : \"\";\n if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(fieldName)) {\n fail(file, part[keyword], `data class ${struct.name} has a field without a simple name`);\n }\n var colon = -1;\n var equals = -1;\n var depth = 0;\n for (var t = keyword + 2; t < part.length; t++) {\n var value = part[t].text;\n if (value === \"(\" || value === \"[\" || value === \"<\") depth++;\n else if (value === \")\" || value === \"]\" || value === \">\") depth--;\n else if (depth === 0 && value === \":\" && colon < 0) colon = t;\n else if (depth === 0 && value === \"=\" && equals < 0) equals = t;\n }\n if (colon < 0) fail(file, part[keyword], `data class ${struct.name} field ${fieldName} needs an explicit type`);\n var typeTokens = part.slice(colon + 1, equals < 0 ? part.length : equals);\n var fallback = equals < 0 ? void 0 : part.slice(equals + 1).map(function(token) {\n return token.text;\n }).join(\"\");\n var resolved = tsType(file, typeTokens, \"kotlin\", named);\n fields.push({\n name: fieldName,\n type: resolved.text,\n nativeType: typeTokens.map(function(token) {\n return token.text;\n }).join(\"\"),\n optional: equals >= 0,\n wire: (_resolved_wire = resolved.wire) !== null && _resolved_wire !== void 0 ? _resolved_wire : void 0,\n fallback\n });\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return fields;\n}\nfunction finalizeNamedTypes(file, language, named, structs, enums, modules, views) {\n var reached = /* @__PURE__ */ new Set();\n var queue = [];\n var visitWire = function visitWire1(wire) {\n if (!wire) return;\n if (wire.kind === \"struct\" || wire.kind === \"enum\") {\n if (!reached.has(wire.name)) {\n reached.add(wire.name);\n if (wire.kind === \"struct\") queue.push(wire.name);\n }\n } else if (wire.kind === \"array\") visitWire(wire.element);\n else if (wire.kind === \"map\") visitWire(wire.value);\n else if (wire.kind === \"nullable\") visitWire(wire.inner);\n };\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = modules[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var module = _step.value;\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = module.methods[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var method = _step1.value;\n var _ref;\n var _method_subscription;\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = method.parameters[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var param = _step2.value;\n visitWire(param.wire);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n visitWire(method.resultWire);\n var _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;\n try {\n for (var _iterator3 = ((_ref = (_method_subscription = method.subscription) === null || _method_subscription === void 0 ? void 0 : _method_subscription.payload) !== null && _ref !== void 0 ? _ref : [])[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var arg = _step3.value;\n visitWire(arg.wire);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion4 = true, _didIteratorError4 = false, _iteratorError4 = void 0;\n try {\n for (var _iterator4 = views[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var view = _step4.value;\n var _iteratorNormalCompletion5 = true, _didIteratorError5 = false, _iteratorError5 = void 0;\n try {\n for (var _iterator5 = view.props[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var prop = _step5.value;\n var _prop_callback;\n visitWire(prop.wire);\n var _iteratorNormalCompletion6 = true, _didIteratorError6 = false, _iteratorError6 = void 0;\n try {\n for (var _iterator6 = ((_prop_callback = prop.callback) !== null && _prop_callback !== void 0 ? _prop_callback : [])[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var arg1 = _step6.value;\n visitWire(arg1.wire);\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return != null) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return != null) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return != null) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n var byName = new Map(structs.map(function(entry) {\n return [\n entry.name,\n entry\n ];\n }));\n var parsed = /* @__PURE__ */ new Map();\n while (queue.length > 0) {\n var name = queue.pop();\n if (parsed.has(name)) continue;\n var decl = byName.get(name);\n if (!decl) continue;\n var fields = language === \"swift\" ? swiftStructFields(file, decl, named) : kotlinStructFields(file, decl, named);\n parsed.set(name, fields);\n var _iteratorNormalCompletion7 = true, _didIteratorError7 = false, _iteratorError7 = void 0;\n try {\n for (var _iterator7 = fields[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var field = _step7.value;\n visitWire(field.wire);\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return != null) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n }\n return {\n structs: structs.filter(function(entry) {\n return reached.has(entry.name);\n }).map(function(entry) {\n var _parsed_get;\n return {\n name: entry.name,\n fields: (_parsed_get = parsed.get(entry.name)) !== null && _parsed_get !== void 0 ? _parsed_get : []\n };\n }),\n enums: enums.filter(function(entry) {\n return reached.has(entry.name);\n }).map(function(entry) {\n return {\n name: entry.name,\n backing: entry.backing,\n cases: entry.cases\n };\n })\n };\n}\nfunction collectNamedTypes(file, list, language, packageName) {\n var structs = [];\n var enums = [];\n var depth = 0;\n var i = 0;\n while (i < list.length) {\n var _list_, _list_1, _list_2, _list_3;\n var text = list[i].text;\n if (text === \"{\") {\n depth++;\n i++;\n continue;\n }\n if (text === \"}\") {\n depth--;\n i++;\n continue;\n }\n if (depth !== 0) {\n i++;\n continue;\n }\n var isSwiftStruct = language === \"swift\" && text === \"struct\";\n var isSwiftEnum = language === \"swift\" && text === \"enum\";\n var isDataClass = language === \"kotlin\" && text === \"class\" && ((_list_ = list[i - 1]) === null || _list_ === void 0 ? void 0 : _list_.text) === \"data\";\n var isKotlinEnum = language === \"kotlin\" && text === \"class\" && ((_list_1 = list[i - 1]) === null || _list_1 === void 0 ? void 0 : _list_1.text) === \"enum\";\n if (!isSwiftStruct && !isSwiftEnum && !isDataClass && !isKotlinEnum) {\n i++;\n continue;\n }\n var name = (_list_2 = list[i + 1]) === null || _list_2 === void 0 ? void 0 : _list_2.text;\n if (!name || !/^[A-Za-z_][A-Za-z0-9_]*$/.test(name)) {\n i++;\n continue;\n }\n var token = list[i + 1];\n var generic = ((_list_3 = list[i + 2]) === null || _list_3 === void 0 ? void 0 : _list_3.text) === \"<\";\n if (isDataClass) {\n var _list_scan, _list_scan1, _list_scan2;\n var dataClass = collectDataClass(file, list, i, name, token, generic, packageName);\n var scan = i + 2;\n if (((_list_scan = list[scan]) === null || _list_scan === void 0 ? void 0 : _list_scan.text) === \"<\") scan = close(file, list, scan, \"<\", \">\") + 1;\n while ([\n \"private\",\n \"protected\",\n \"public\",\n \"internal\",\n \"constructor\"\n ].includes((_list_scan1 = list[scan]) === null || _list_scan1 === void 0 ? void 0 : _list_scan1.text)) scan++;\n i = ((_list_scan2 = list[scan]) === null || _list_scan2 === void 0 ? void 0 : _list_scan2.text) === \"(\" ? close(file, list, scan, \"(\", \")\") + 1 : i + 2;\n if (dataClass) structs.push(dataClass);\n continue;\n }\n var body = i + 2;\n var angle = 0;\n var round = 0;\n while (body < list.length) {\n var value = list[body].text;\n if (value === \"<\") angle++;\n else if (value === \">\") angle--;\n else if (value === \"(\") round++;\n else if (value === \")\") round--;\n else if (value === \"{\" && angle === 0 && round === 0) break;\n body++;\n }\n if (body >= list.length) {\n i++;\n continue;\n }\n var end = close(file, list, body, \"{\", \"}\");\n var header = list.slice(i + 2, body);\n if (isSwiftStruct) {\n var inherits = header.map(function(entry) {\n return entry.text;\n });\n var modifiers = declarationModifiers(list, 0, i);\n structs.push({\n name,\n token,\n generic,\n codable: inherits.includes(\"Codable\") || inherits.includes(\"Decodable\") && inherits.includes(\"Encodable\"),\n problem: modifiers.includes(\"private\") || modifiers.includes(\"fileprivate\") ? `struct ${name} is private to its file and cannot cross the boundary` : null,\n body: list.slice(body + 1, end),\n params: [],\n packageName: void 0\n });\n } else {\n enums.push(language === \"swift\" ? collectSwiftEnum(file, list.slice(body + 1, end), name, token, generic, header) : collectKotlinEnum(file, list.slice(body + 1, end), name, token));\n }\n i = end + 1;\n }\n return {\n structs,\n enums,\n names: {\n structs: new Map(structs.map(function(entry) {\n return [\n entry.name,\n {\n codable: entry.codable,\n generic: entry.generic,\n problem: entry.problem\n }\n ];\n })),\n enums: new Map(enums.map(function(entry) {\n return [\n entry.name,\n {\n usable: entry.usable,\n problem: entry.problem\n }\n ];\n }))\n }\n };\n}\nfunction composableView(file, list, keyword, floor, named) {\n var _list_, _list_1, _list_2;\n var modifiers = declarationModifiers(list, floor, keyword);\n if (!modifiers.some(function(value, index) {\n return value === \"@\" && modifiers[index + 1] === \"Composable\";\n })) return null;\n if (modifiers.includes(\"private\") || modifiers.includes(\"internal\")) return null;\n var name = (_list_ = list[keyword + 1]) === null || _list_ === void 0 ? void 0 : _list_.text;\n if (!name || !/^[A-Z][A-Za-z0-9_]*$/.test(name)) fail(file, list[keyword], \"an imported composable needs a capitalized name\");\n if (((_list_1 = list[keyword + 2]) === null || _list_1 === void 0 ? void 0 : _list_1.text) !== \"(\") fail(file, list[keyword], \"generic or extension composables are unsupported\");\n var closing = close(file, list, keyword + 2, \"(\", \")\");\n if (((_list_2 = list[closing + 1]) === null || _list_2 === void 0 ? void 0 : _list_2.text) === \":\") fail(file, list[closing + 1], `composable ${name} must return Unit`);\n var inner = list.slice(keyword + 3, closing);\n var props = inner.length === 0 ? [] : split(inner, \",\").flatMap(function(part) {\n if (part.length === 0) return [];\n var prop = viewProp(file, part, named);\n return prop ? [\n prop\n ] : [];\n });\n return {\n name,\n props\n };\n}\nfunction nativeSourceContract(file, source) {\n var _loop = function() {\n var _list_;\n var kind = list[i].text;\n var declaration2 = language === \"swift\" ? kind === \"class\" || kind === \"struct\" : kind === \"object\";\n if (language === \"kotlin\" && kind === \"fun\") {\n var view = composableView(file, list, i, previous, named);\n if (view) {\n if (views.some(function(other) {\n return other.name === view.name;\n })) fail(file, list[i], `overloaded composable ${view.name} is unsupported`);\n views.push(view);\n }\n i++;\n return \"continue\";\n }\n if (!declaration2) {\n if (kind === \"{\") {\n i = close(file, list, i, \"{\", \"}\") + 1;\n previous = i;\n } else i++;\n return \"continue\";\n }\n var name = (_list_ = list[i + 1]) === null || _list_ === void 0 ? void 0 : _list_.text;\n if (!name) fail(file, list[i], \"native type has no name\");\n var body = i + 2;\n while (body < list.length && list[body].text !== \"{\") body++;\n if (body === list.length) fail(file, list[i], \"native type has no body\");\n var end = close(file, list, body, \"{\", \"}\");\n var prefix = list.slice(previous, i).map(function(token) {\n return token.text;\n });\n if (language === \"swift\" && prefix.some(function(value, index) {\n return value === \"@\" && prefix[index + 1] === \"main\";\n })) {\n defaultView = true;\n }\n var inherits = list.slice(i + 2, body).map(function(token) {\n return token.text;\n });\n if (inherits.includes(language === \"swift\" ? \"PeachModule\" : \"OneModule\")) {\n modules.push({\n name,\n methods: methods(file, list, body, end, language, named)\n });\n }\n var view1 = language === \"swift\" ? swiftView(file, list, i, previous, body, end, named) : null;\n if (view1) views.push(view1);\n i = end + 1;\n previous = i;\n };\n var _packageLine_at;\n var language = file.endsWith(\".swift\") ? \"swift\" : file.endsWith(\".kt\") ? \"kotlin\" : void 0;\n if (!language) throw new Error(`${file}: expected a .swift or .kt source file`);\n var list = tokens(file, source);\n var packageToken = language === \"kotlin\" ? list.findIndex(function(token) {\n return token.text === \"package\";\n }) : -1;\n var packageLine = packageToken < 0 ? [] : list.slice(packageToken + 1).filter(function(token) {\n return token.line === list[packageToken].line;\n });\n while (((_packageLine_at = packageLine.at(-1)) === null || _packageLine_at === void 0 ? void 0 : _packageLine_at.text) === \";\") packageLine.pop();\n var packageName = packageToken < 0 ? void 0 : packageLine.map(function(token) {\n return token.text;\n }).join(\"\");\n if (packageName && !/^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$/.test(packageName)) {\n fail(file, list[packageToken], `unsupported kotlin package ${packageName}`);\n }\n var collected = collectNamedTypes(file, list, language, packageName);\n var named = collected.names;\n var modules = [];\n var views = [];\n var defaultView = false;\n var i = 0;\n var previous = 0;\n while (i < list.length) _loop();\n var finalized = finalizeNamedTypes(file, language, named, collected.structs, collected.enums, modules, views);\n var structs = finalized.structs;\n var enums = finalized.enums;\n var canonical = JSON.stringify({\n language,\n packageName,\n modules,\n views,\n structs,\n enums,\n defaultView\n });\n var hash = createHash(\"sha256\").update(canonical).digest(\"hex\");\n var declarations = structs.map(function(struct) {\n return `export interface ${struct.name} {${struct.fields.map(function(field) {\n return ` ${field.name}${field.optional ? \"?\" : \"\"}: ${field.type};`;\n }).join(\"\")} }`;\n });\n declarations.push(...enums.map(function(type) {\n return `export type ${type.name} = ${type.cases.map(function(entry) {\n return typeof entry.value === \"string\" ? JSON.stringify(entry.value) : String(entry.value);\n }).join(\" | \")}`;\n }));\n declarations.push(...modules.map(function(module) {\n return [\n `export declare const ${module.name}: {`,\n ...module.methods.map(function(method) {\n return method.subscription ? ` ${method.name}(listener: (${method.subscription.payload.map(function(arg, index) {\n return `value${index}: ${arg.type}`;\n }).join(\", \")}) => void): () => void` : ` ${method.name}(${method.parameters.map(function(param) {\n return `${param.name}: ${param.type}`;\n }).join(\", \")}): Promise<${method.result}>`;\n }),\n \"}\"\n ].join(\"\\n\");\n }));\n declarations.push(...views.map(function(view) {\n return `export declare function ${view.name}(props: {${view.props.map(function(prop) {\n return ` ${prop.name}${prop.optional ? \"?\" : \"\"}: ${prop.type}`;\n }).join(\";\")} }): ReactElement`;\n }));\n if (defaultView) {\n declarations.unshift(\"export default function SwiftPackage(props: Record<string, unknown>): ReactElement\");\n }\n if (defaultView || views.length > 0) declarations.unshift(\"import type { ReactElement } from 'react'\");\n var declaration = `${GENERATED_HEADER}${declarations.join(\"\\n\\n\")}\n`;\n return {\n language,\n packageName,\n modules,\n views,\n structs,\n enums,\n defaultView,\n hash,\n declaration\n };\n}\nfunction kotlinSourceId(root, file) {\n var path = relative(root, file).replaceAll(\"\\\\\", \"/\");\n if (path.startsWith(\"../\") || !path.endsWith(\".kt\")) {\n throw new Error(`${file} is not a kotlin source under ${root}`);\n }\n return `K_${createHash(\"sha256\").update(path).digest(\"hex\").slice(0, 16)}`;\n}\nfunction swiftPodManifest(file, source) {\n var _modes_values_next_value;\n var list = tokens(file, source);\n var modes = /* @__PURE__ */ new Set();\n var mainActorIsolation = false;\n for (var i = 0; i < list.length; i++) {\n var _list_, _list_1, _list_2, _list_3, _list_4, _list_5, _list_6;\n if (list[i].text === \".\" && ((_list_ = list[i + 1]) === null || _list_ === void 0 ? void 0 : _list_.text) === \"package\" && ((_list_1 = list[i + 2]) === null || _list_1 === void 0 ? void 0 : _list_1.text) === \"(\") {\n fail(file, list[i], \"SwiftPM package dependencies are unsupported by One prebuild\");\n }\n if (list[i].text === \".\" && ((_list_2 = list[i + 1]) === null || _list_2 === void 0 ? void 0 : _list_2.text) === \"swiftLanguageMode\" && ((_list_3 = list[i + 2]) === null || _list_3 === void 0 ? void 0 : _list_3.text) === \"(\") {\n var _ref;\n var _list_7, _list_8;\n var mode = /^v(\\d+)$/.exec((_ref = (_list_7 = list[i + 4]) === null || _list_7 === void 0 ? void 0 : _list_7.text) !== null && _ref !== void 0 ? _ref : \"\");\n if (((_list_8 = list[i + 3]) === null || _list_8 === void 0 ? void 0 : _list_8.text) !== \".\" || !mode) fail(file, list[i], \"unsupported swift language mode\");\n modes.add(Number(mode[1]));\n }\n if (list[i].text === \"swiftLanguageModes\" && ((_list_4 = list[i + 1]) === null || _list_4 === void 0 ? void 0 : _list_4.text) === \":\") {\n var _list_opening;\n var opening = i + 2;\n if (((_list_opening = list[opening]) === null || _list_opening === void 0 ? void 0 : _list_opening.text) !== \"[\") fail(file, list[i], \"unsupported swift language modes\");\n var ending = close(file, list, opening, \"[\", \"]\");\n for (var j = opening; j < ending; j++) {\n var _ref1;\n var _list_9;\n if (list[j].text === \".\" && /^v\\d+$/.test((_ref1 = (_list_9 = list[j + 1]) === null || _list_9 === void 0 ? void 0 : _list_9.text) !== null && _ref1 !== void 0 ? _ref1 : \"\")) {\n modes.add(Number(list[j + 1].text.slice(1)));\n }\n }\n }\n if (list[i].text === \".\" && ((_list_5 = list[i + 1]) === null || _list_5 === void 0 ? void 0 : _list_5.text) === \"defaultIsolation\" && ((_list_6 = list[i + 2]) === null || _list_6 === void 0 ? void 0 : _list_6.text) === \"(\") {\n var _list_10;\n if (((_list_10 = list[i + 3]) === null || _list_10 === void 0 ? void 0 : _list_10.text) !== \"MainActor\") fail(file, list[i], \"unsupported swift default isolation\");\n mainActorIsolation = true;\n }\n }\n if (modes.size > 1) throw new Error(`${file}: One pod needs one swift language mode; found ${[\n ...modes\n ].join(\", \")}`);\n var languageMode = (_modes_values_next_value = modes.values().next().value) !== null && _modes_values_next_value !== void 0 ? _modes_values_next_value : 5;\n if (languageMode !== 5 && languageMode !== 6) {\n throw new Error(`${file}: unsupported swift language mode v${languageMode}`);\n }\n return {\n languageMode,\n mainActorIsolation\n };\n}\nfunction writeNativeSourceDeclaration(file) {\n var contract = nativeSourceContract(file, readFileSync(file, \"utf8\"));\n var extension = contract.language === \"swift\" ? \".swift\" : \".kt\";\n var declaration = join(dirname(file), `${basename(file, extension)}.d${extension}.ts`);\n if (contract.modules.length === 0 && contract.views.length === 0 && !contract.defaultView) {\n if (existsSync(declaration) && readFileSync(declaration, \"utf8\").startsWith(GENERATED_HEADER)) {\n rmSync(declaration, {\n force: true\n });\n }\n return contract;\n }\n writeGeneratedFile(declaration, contract.declaration);\n return contract;\n}\nfunction writeNativeSourceDeclarations(root) {\n var contracts = [];\n var visit = function visit1(dir) {\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = readdirSync(dir, {\n withFileTypes: true\n })[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var entry = _step2.value;\n if (entry.name.startsWith(\".\") || SKIP_SOURCE_DIRS.has(entry.name)) continue;\n var file = join(dir, entry.name);\n if (entry.isDirectory()) visit(file);\n else if (entry.isFile() && /\\.(swift|kt)$/.test(entry.name) && entry.name !== \"Package.swift\") {\n contracts.push(writeNativeSourceDeclaration(file));\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n visit(root);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = swiftPackageDirectories(root).values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var packageDir = _step.value;\n writeSwiftPackageArtifacts(packageDir);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return contracts;\n}\nfunction writeSwiftPackageArtifacts(packageDir) {\n var contracts = [];\n var files = {};\n var modules = {};\n var views = {};\n var defaultViewFiles = [];\n var visit = function visit1(dir) {\n var entries = readdirSync(dir, {\n withFileTypes: true\n }).sort(function(a, b) {\n return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;\n });\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var entry = _step.value;\n if (entry.name.startsWith(\".\") || SKIP_SOURCE_DIRS.has(entry.name)) continue;\n var file = join(dir, entry.name);\n if (entry.isDirectory()) visit(file);\n else if (entry.isFile() && entry.name.endsWith(\".swift\") && entry.name !== \"Package.swift\") {\n var contract = writeNativeSourceDeclaration(file);\n contracts.push(contract);\n var name = relative(packageDir, file).replaceAll(\"\\\\\", \"/\");\n files[name] = [\n ...contract.modules,\n ...contract.views\n ].map(function(entry2) {\n return entry2.name;\n });\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = contract.modules[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var module = _step1.value;\n modules[module.name] = module.methods.map(function(method) {\n return method.name;\n });\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = contract.views[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var view = _step2.value;\n views[view.name] = view.props.map(function(prop) {\n return prop.name;\n });\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n if (contract.defaultView) defaultViewFiles.push(name);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n visit(packageDir);\n var packageId = swiftPackageId(packageDir);\n var rendered = renderSwiftSourceGlue(packageId, contracts);\n var descriptor = join(packageDir, \".one-native-source.json\");\n var glue = join(packageDir, \".one-native-source.swift.txt\");\n var exported = contracts.some(function(contract) {\n return contract.modules.length > 0 || contract.views.length > 0;\n });\n if (exported) {\n var json = `${JSON.stringify({\n generatedBy: \"one typegen\",\n packageId,\n hash: rendered.hash,\n files,\n modules,\n views,\n defaultViewFiles\n }, null, 2)}\n`;\n writeGeneratedFile(descriptor, json);\n writeGeneratedFile(glue, rendered.source);\n } else if (existsSync(descriptor) && readFileSync(descriptor, \"utf8\").includes('\"generatedBy\": \"one typegen\"')) {\n rmSync(descriptor, {\n force: true\n });\n rmSync(glue, {\n force: true\n });\n }\n return {\n packageId,\n hash: rendered.hash,\n files,\n modules,\n views,\n defaultViewFiles,\n contracts,\n glue: exported ? rendered.source : null\n };\n}\nfunction renderSwiftSourceGlue(packageId, contracts) {\n if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(packageId)) {\n throw new Error(`invalid swift package id ${packageId}`);\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = contracts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var contract = _step.value;\n if (contract.language !== \"swift\") throw new Error(\"swift glue received a kotlin contract\");\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var modules = contracts.flatMap(function(contract2) {\n return contract2.modules;\n });\n var views = contracts.flatMap(function(contract2) {\n return contract2.views;\n });\n var names = /* @__PURE__ */ new Set();\n for (var _i = 0, _iter = [\n ...modules,\n ...views\n ]; _i < _iter.length; _i++) {\n var { name } = _iter[_i];\n if (names.has(name)) throw new Error(`swift package ${packageId} declares ${name} twice`);\n names.add(name);\n }\n var hash = createHash(\"sha256\").update(JSON.stringify({\n packageId,\n modules,\n views\n })).digest(\"hex\");\n var hasMain = contracts.some(function(contract2) {\n return contract2.defaultView;\n });\n var bodyName = `OneNativeSourceBody_${packageId}`;\n var className = `OneNativeSource_${packageId}`;\n var viewsName = `OneNativeSourceViews_${packageId}`;\n var renderCase = function renderCase2(method, module) {\n var subscription = method.subscription;\n if (subscription) {\n var channel = `OneNativeSource.${packageId}.${module.name}.${method.name}`;\n var closureArgs = subscription.payload.map(function(arg, index) {\n return `a${index}: ${arg.nativeType}`;\n }).join(\", \");\n var emitArgs = subscription.payload.map(function(_, index) {\n return `a${index}`;\n }).join(\", \");\n var prefix = `${method.throws ? \"try \" : \"\"}${method.async ? \"await \" : \"\"}`;\n return [\n ` case ${JSON.stringify(method.name)}:`,\n ` guard values.isEmpty else { throw NSError(domain: \"OneNativeSource\", code: 2, userInfo: [NSLocalizedDescriptionKey: \"${packageId}.${module.name}.${method.name} subscribes; it takes no arguments\"]) }`,\n ` let channel = ${JSON.stringify(channel)}`,\n ` ${prefix}${module.name}Instance.${method.name}({ ${closureArgs ? `(${closureArgs}) in ` : \"\"}postEvent(channel, args([${emitArgs}])) })`,\n ' return \"null\"'\n ];\n }\n var lines = [\n ` case ${JSON.stringify(method.name)}:`,\n ` guard values.count == ${method.parameters.length} else { throw NSError(domain: \"OneNativeSource\", code: 2, userInfo: [NSLocalizedDescriptionKey: \"${packageId}.${module.name}.${method.name} expects ${method.parameters.length} arguments\"]) }`\n ];\n method.parameters.forEach(function(parameter, index) {\n lines.push(` let arg${index} = try decode(values[${index}], as: ${parameter.nativeType}.self)`);\n });\n var argumentsText = method.parameters.map(function(parameter, index) {\n return `${parameter.label === \"_\" ? \"\" : `${parameter.label}: `}arg${index}`;\n }).join(\", \");\n var prefix1 = `${method.throws ? \"try \" : \"\"}${method.async ? \"await \" : \"\"}`;\n var call = `${module.name}Instance.${method.name}(${argumentsText})`;\n if (method.result === \"void\") {\n lines.push(` ${prefix1}${call}`, ' return \"null\"');\n } else {\n lines.push(` let result = ${prefix1}${call}`);\n if (method.nativeResult === \"Int\") {\n lines.push(' guard abs(Double(result)) <= 9_007_199_254_740_991 else { throw NSError(domain: \"OneNativeSource\", code: 2, userInfo: [NSLocalizedDescriptionKey: \"result exceeds the JavaScript safe integer range\"]) }');\n }\n lines.push(\" return try encode(result)\");\n }\n return lines;\n };\n var notLinked = ' throw NSError(domain: \"OneNativeSource\", code: 1, userInfo: [NSLocalizedDescriptionKey: \"native module \\\\(module) is not linked; rebuild the app\"])';\n var renderCall = function renderCall2() {\n return modules.length === 0 ? [\n \" static func call(_ module: String, _ method: String, _ argsJson: String) async throws -> String {\",\n notLinked,\n \" }\"\n ] : [\n \" static func call(_ module: String, _ method: String, _ argsJson: String) async throws -> String {\",\n \" guard let values = try JSONSerialization.jsonObject(with: Data(argsJson.utf8)) as? [Any] else {\",\n ' throw NSError(domain: \"OneNativeSource\", code: 2, userInfo: [NSLocalizedDescriptionKey: \"arguments must be a JSON array\"])',\n \" }\",\n \" switch module {\",\n ...modules.flatMap(function(module) {\n return [\n ` case ${JSON.stringify(`${packageId}.${module.name}`)}:`,\n \" switch method {\",\n ...module.methods.flatMap(function(method) {\n return renderCase(method, module);\n }),\n ' default: throw NSError(domain: \"OneNativeSource\", code: 1, userInfo: [NSLocalizedDescriptionKey: \"native method \\\\(module).\\\\(method) is not linked; rebuild the app\"])',\n \" }\"\n ];\n }),\n \" default:\",\n ` ${notLinked}`,\n \" }\",\n \" }\"\n ];\n };\n var renderViews = function renderViews2() {\n return [\n \" private static func missing(_ path: String) throws -> Any {\",\n ' throw NSError(domain: \"OneNativeSource\", code: 2, userInfo: [NSLocalizedDescriptionKey: \"\\\\(path): required\"])',\n \" }\",\n \" static func view(_ name: String, _ propsJson: String, _ emit: @escaping (String, String) -> Void) throws -> AnyView {\",\n \" guard let props = try JSONSerialization.jsonObject(with: Data(propsJson.utf8)) as? [String: Any] else {\",\n ' throw NSError(domain: \"OneNativeSource\", code: 2, userInfo: [NSLocalizedDescriptionKey: \"props must be a JSON object\"])',\n \" }\",\n \" switch name {\",\n ...views.flatMap(function(view) {\n return [\n ` case ${JSON.stringify(view.name)}:`,\n ` return AnyView(${view.name}(`,\n ...view.props.map(function(prop, index) {\n var comma = index === view.props.length - 1 ? \"\" : \",\";\n var key = JSON.stringify(prop.name);\n if (prop.callback) {\n var params = prop.callback.map(function(arg, n) {\n return `a${n}: ${arg.nativeType}`;\n }).join(\", \");\n var lambda = `{ (${params}) -> Void in emit(${key}, args([${prop.callback.map(function(_, n) {\n return `a${n}`;\n }).join(\", \")}])) }`;\n return ` ${prop.name}: ${prop.optional ? `(props[${key}] as? Bool) == true ? ${lambda} : nil` : lambda}${comma}`;\n }\n var input = prop.optional ? `props[${key}] ?? NSNull()` : `props[${key}] ?? missing(${JSON.stringify(`props.${prop.name}`)})`;\n return ` ${prop.name}: try decode(${input}, as: ${prop.nativeType}.self)${comma}`;\n }),\n \" ))\"\n ];\n }),\n ' default: throw NSError(domain: \"OneNativeSource\", code: 1, userInfo: [NSLocalizedDescriptionKey: \"swift view \\\\(name) is not linked; rebuild the app\"])',\n \" }\",\n \" }\"\n ];\n };\n var source = [\n \"import Foundation\",\n \"import SwiftUI\",\n \"\",\n `@MainActor public enum ${bodyName} {`,\n ` public static let hash = ${JSON.stringify(hash)}`,\n \"#if os(WASI)\",\n \" private struct Request: Decodable { let module: String; let method: String; let argsJson: String; let contractHash: String }\",\n \" private struct Reply: Encodable { let ok: Bool; let value: String?; let error: String?; let pending: Int32? }\",\n \" private static var output: [UInt8] = []\",\n \" private static var finished: [Int32: Reply] = [:]\",\n \" private static var nextCall: Int32 = 0\",\n \" // peach runs tasks inline, so a call finishes before its task launch returns\",\n \" // unless it waits on the clock; then it answers pending and the host polls\",\n \" // it after running the timers.\",\n \" static func callWasm(_ payload: UnsafePointer<UInt8>?, _ length: Int32) -> UnsafeMutablePointer<UInt8>? {\",\n \" let id = nextCall\",\n \" nextCall &+= 1\",\n \" do {\",\n ' guard let payload, length >= 0 else { throw NSError(domain: \"OneNativeSource\", code: 2, userInfo: [NSLocalizedDescriptionKey: \"missing call payload\"]) }',\n \" let request = try JSONDecoder().decode(Request.self, from: Data(bytes: payload, count: Int(length)))\",\n ' guard request.contractHash == hash else { throw NSError(domain: \"OneNativeSource\", code: 4, userInfo: [NSLocalizedDescriptionKey: \"native module \\\\(request.module) changed; rebuild the app\"]) }',\n \" Task {\",\n \" do {\",\n \" finished[id] = Reply(ok: true, value: try await call(request.module, request.method, request.argsJson), error: nil, pending: nil)\",\n \" } catch {\",\n \" // the native hosts name the method on everything a call throws\",\n ' finished[id] = Reply(ok: false, value: nil, error: \"\\\\(request.module).\\\\(request.method): \\\\(error.localizedDescription)\", pending: nil)',\n \" }\",\n \" }\",\n \" } catch {\",\n \" finished[id] = Reply(ok: false, value: nil, error: error.localizedDescription, pending: nil)\",\n \" }\",\n \" return pollWasm(id)\",\n \" }\",\n \" static func pollWasm(_ id: Int32) -> UnsafeMutablePointer<UInt8>? {\",\n \" let reply = finished.removeValue(forKey: id) ?? Reply(ok: true, value: nil, error: nil, pending: id)\",\n ' let bytes = (try? JSONEncoder().encode(reply)) ?? Data(\"{\\\\\"ok\\\\\":false,\\\\\"error\\\\\":\\\\\"encoding failed\\\\\"}\".utf8)',\n \" let count = UInt32(bytes.count)\",\n \" output = [UInt8(count & 0xff), UInt8((count >> 8) & 0xff), UInt8((count >> 16) & 0xff), UInt8(count >> 24)] + Array(bytes)\",\n \" return output.withUnsafeMutableBufferPointer { $0.baseAddress }\",\n \" }\",\n \" private struct Event: Encodable { let channel: String; let args: String }\",\n \" private static var pendingEvents: [Event] = []\",\n \" // under wasi there is no javascript runtime, so posted events queue\",\n \" // here and the peach host drains them with peach_poll_events, using\",\n \" // the same length-prefixed framing as pollWasm.\",\n \" static func pollEvents() -> UnsafeMutablePointer<UInt8>? {\",\n \" let events = pendingEvents\",\n \" pendingEvents = []\",\n ' let bytes = (try? JSONEncoder().encode(events)) ?? Data(\"[]\".utf8)',\n \" let count = UInt32(bytes.count)\",\n \" output = [UInt8(count & 0xff), UInt8((count >> 8) & 0xff), UInt8((count >> 16) & 0xff), UInt8(count >> 24)] + Array(bytes)\",\n \" return output.withUnsafeMutableBufferPointer { $0.baseAddress }\",\n \" }\",\n \"#endif\",\n ...modules.map(function(module) {\n return ` private static let ${module.name}Instance = ${module.name}()`;\n }),\n // dates cross as ISO strings in both directions; the fractional reader\n // runs first because javascript always writes milliseconds.\n \" private nonisolated static let isoDate = Date.ISO8601FormatStyle()\",\n \" private nonisolated static let isoDateFractional = Date.ISO8601FormatStyle(includingFractionalSeconds: true)\",\n \" private nonisolated static func decodeDate(_ decoder: Decoder) throws -> Date {\",\n \" let container = try decoder.singleValueContainer()\",\n \" let text = try container.decode(String.self)\",\n \" if let date = (try? isoDateFractional.parse(text)) ?? (try? isoDate.parse(text)) { return date }\",\n ' throw DecodingError.dataCorruptedError(in: container, debugDescription: \"expected ISO date\")',\n \" }\",\n \" private static func decode<T: Decodable>(_ value: Any, as type: T.Type) throws -> T {\",\n \" let data = try JSONSerialization.data(withJSONObject: value, options: [.fragmentsAllowed])\",\n \" let decoder = JSONDecoder()\",\n \" decoder.dateDecodingStrategy = .custom { try decodeDate($0) }\",\n \" decoder.dataDecodingStrategy = .base64\",\n \" return try decoder.decode(T.self, from: data)\",\n \" }\",\n \" private static func encode(_ value: any Encodable) throws -> String {\",\n \" let encoder = JSONEncoder()\",\n \" encoder.dateEncodingStrategy = .iso8601\",\n \" encoder.dataEncodingStrategy = .base64\",\n \" return String(decoding: try encoder.encode(value), as: UTF8.self)\",\n \" }\",\n \" private static func encodeAny(_ value: any Encodable) -> String {\",\n ' (try? encode(value)) ?? \"null\"',\n \" }\",\n \" // subscribe cases and view callbacks both encode callback arguments\",\n \" // as a json array, so this helper stays outside the view-only glue.\",\n \" private static func args(_ values: [any Encodable]) -> String {\",\n ' \"[\" + values.map { encodeAny($0) }.joined(separator: \",\") + \"]\"',\n \" }\",\n \" // native events post over the one event bridge on device; under wasi\",\n \" // they queue for the peach host, which drains them with peach_poll_events.\",\n \" private static func postEvent(_ channel: String, _ args: String) {\",\n \" #if os(WASI)\",\n \" pendingEvents.append(Event(channel: channel, args: args))\",\n \" #else\",\n \" OneNativeSourceEmitter.send(channel, args)\",\n \" #endif\",\n \" }\",\n ...renderCall(),\n ...views.length > 0 ? renderViews() : [],\n \"}\",\n \"\",\n \"#if os(WASI)\",\n '@_expose(wasm, \"peach_call\")',\n '@_cdecl(\"peach_call\")',\n `@MainActor public func peach_call(_ payload: UnsafePointer<UInt8>?, _ length: Int32) -> UnsafeMutablePointer<UInt8>? { ${bodyName}.callWasm(payload, length) }`,\n '@_expose(wasm, \"peach_call_poll\")',\n '@_cdecl(\"peach_call_poll\")',\n `@MainActor public func peach_call_poll(_ id: Int32) -> UnsafeMutablePointer<UInt8>? { ${bodyName}.pollWasm(id) }`,\n \" // the host drains queued native events with this export, polling it\",\n \" // after running timers like it polls pending calls.\",\n '@_expose(wasm, \"peach_poll_events\")',\n '@_cdecl(\"peach_poll_events\")',\n `@MainActor public func peach_poll_events() -> UnsafeMutablePointer<UInt8>? { ${bodyName}.pollEvents() }`,\n // peach registers the typed views once per instance: the package's own\n // @main, if any, stays its default view, as on device\n ...views.length > 0 ? [\n '@_expose(wasm, \"peach_register_views\")',\n '@_cdecl(\"peach_register_views\")',\n \"@MainActor public func peach_register_views() {\",\n \" PeachTypedViews.register { name, contractHash, propsJson, emit in\",\n ` guard contractHash == ${bodyName}.hash else { return AnyView(Text(\"swift view ${packageId}.\\\\(name) changed; rebuild the app\").foregroundStyle(.red)) }`,\n ` do { return try ${bodyName}.view(name, propsJson, emit) } catch { return AnyView(Text(\"\\\\(name): \\\\(error.localizedDescription)\").foregroundStyle(.red)) }`,\n \" }\",\n \"}\"\n ] : [],\n ...!hasMain ? [\n `@main struct OneNativeSourceMain_${packageId}: App {`,\n \" var body: some Scene { WindowGroup { EmptyView() } }\",\n \"}\"\n ] : [],\n \"#endif\",\n \"\",\n // the dispatch class answers nitro on device; wasi uses the peach_call\n // exports above, and its sdk mirrors objectivec, so gate it off.\n \"#if canImport(ObjectiveC) && !os(WASI)\",\n `@objc(${className}) @MainActor public final class ${className}: NSObject, OneNativeSourceDispatch {`,\n \" public required override init() {}\",\n ` public var contractHash: String { ${bodyName}.hash }`,\n ` public func call(_ module: String, _ method: String, _ argsJson: String) async throws -> String { try await ${bodyName}.call(module, method, argsJson) }`,\n \"}\",\n ...views.length > 0 ? [\n `@objc(${viewsName}) @MainActor public final class ${viewsName}: NSObject, OneNativeSourceViewDispatch {`,\n \" public required override init() {}\",\n ` public var contractHash: String { ${bodyName}.hash }`,\n ` public func view(_ name: String, _ propsJson: String, _ emit: @escaping (String, String) -> Void) throws -> AnyView { try ${bodyName}.view(name, propsJson, emit) }`,\n \"}\"\n ] : [],\n \"#endif\",\n \"\"\n ].join(\"\\n\");\n return {\n hash,\n source\n };\n}\nfunction renderKotlinSourceGlue(sourceId, contract) {\n if (contract.language !== \"kotlin\") throw new Error(\"kotlin glue received a swift contract\");\n if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(sourceId)) throw new Error(`invalid kotlin source id ${sourceId}`);\n var hash = createHash(\"sha256\").update(JSON.stringify({\n sourceId,\n contract: contract.hash\n })).digest(\"hex\");\n var structsByName = new Map(contract.structs.map(function(entry) {\n return [\n entry.name,\n entry\n ];\n }));\n var enumsByName = new Map(contract.enums.map(function(entry) {\n return [\n entry.name,\n entry\n ];\n }));\n var qualified = function qualified2(name) {\n return contract.packageName ? `${contract.packageName}.${name}` : name;\n };\n var isDateType = function isDateType2(type) {\n return type === \"Date\" || type === \"java.util.Date\";\n };\n var mentions = function mentions1(type, match) {\n var rest = type;\n while (rest.endsWith(\"?\")) rest = rest.slice(0, -1);\n if (rest.startsWith(\"List<\") && rest.endsWith(\">\")) return mentions(rest.slice(5, -1), match);\n if (rest.startsWith(\"Map<String,\") && rest.endsWith(\">\")) return mentions(rest.slice(11, -1), match);\n return match(rest);\n };\n var nativeTypes = [\n ...contract.modules.flatMap(function(module) {\n return module.methods.flatMap(function(method) {\n var _ref;\n var _method_subscription;\n return [\n ...method.parameters.map(function(parameter) {\n return parameter.nativeType;\n }),\n method.nativeResult,\n ...(_ref = (_method_subscription = method.subscription) === null || _method_subscription === void 0 ? void 0 : _method_subscription.payload.map(function(arg) {\n return arg.nativeType;\n })) !== null && _ref !== void 0 ? _ref : []\n ];\n });\n }),\n ...contract.structs.flatMap(function(struct) {\n return struct.fields.map(function(field) {\n return field.nativeType;\n });\n }),\n ...contract.views.flatMap(function(view) {\n return view.props.flatMap(function(prop) {\n var _ref;\n var _prop_callback;\n return [\n prop.nativeType,\n ...(_ref = (_prop_callback = prop.callback) === null || _prop_callback === void 0 ? void 0 : _prop_callback.map(function(arg) {\n return arg.nativeType;\n })) !== null && _ref !== void 0 ? _ref : []\n ];\n });\n })\n ];\n var needsEvents = contract.modules.some(function(module) {\n return module.methods.some(function(method) {\n return method.subscription;\n });\n });\n var needsDate = nativeTypes.some(function(type) {\n return mentions(type, isDateType);\n });\n var needsData = nativeTypes.some(function(type) {\n return mentions(type, function(leaf) {\n return leaf === \"ByteArray\";\n });\n });\n var value = function value1(type, input, path) {\n if (type.endsWith(\"?\")) {\n return `(${input}).let { raw -> if (raw == null || raw == JSONObject.NULL) null else ${value(type.slice(0, -1), \"raw\", path)} }`;\n }\n if (type === \"String\") return `readString(${input}, ${path})`;\n if (type === \"Boolean\") return `readBoolean(${input}, ${path})`;\n if (type === \"Double\") return `readDouble(${input}, ${path})`;\n if (type === \"Float\") return `readDouble(${input}, ${path}).toFloat()`;\n if (type === \"Int\") return `readInt(${input}, ${path})`;\n if (type === \"Long\") return `readLong(${input}, ${path})`;\n if (isDateType(type)) return `readDate(${input}, ${path})`;\n if (type === \"ByteArray\") return `readData(${input}, ${path})`;\n if (structsByName.has(type)) return `read${type}(${input}, ${path})`;\n if (enumsByName.has(type)) return `read${type}(${input}, ${path})`;\n if (type.startsWith(\"List<\") && type.endsWith(\">\")) {\n return `readList(${input}, ${path}) { item, itemPath -> ${value(type.slice(5, -1), \"item\", \"itemPath\")} }`;\n }\n if (type.startsWith(\"Map<String,\") && type.endsWith(\">\")) {\n return `readMap(${input}, ${path}) { item, itemPath -> ${value(type.slice(11, -1), \"item\", \"itemPath\")} }`;\n }\n throw new Error(`unsupported kotlin glue type ${type}`);\n };\n var encode = function encode1(type, accessor) {\n if (type.endsWith(\"?\")) {\n return `(${accessor}?.let { ${encode(type.slice(0, -1), \"it\")} } ?: JSONObject.NULL)`;\n }\n if (isDateType(type)) return `dateToString(${accessor})`;\n if (type === \"ByteArray\") return `android.util.Base64.encodeToString(${accessor}, android.util.Base64.NO_WRAP)`;\n if (structsByName.has(type)) return `encode${type}(${accessor})`;\n if (enumsByName.has(type)) return `${accessor}.name`;\n if (type.startsWith(\"List<\") && type.endsWith(\">\")) {\n return `JSONArray().apply { for (item in ${accessor}) put(${encode(type.slice(5, -1), \"item\")}) }`;\n }\n if (type.startsWith(\"Map<String,\") && type.endsWith(\">\")) {\n return `JSONObject().apply { for ((key, entry) in ${accessor}) put(key, ${encode(type.slice(11, -1), \"entry\")}) }`;\n }\n return `JSONObject.wrap(${accessor})`;\n };\n var structHelpers = contract.structs.flatMap(function(struct) {\n return [\n `private fun read${struct.name}(value: Any, path: String): ${qualified(struct.name)} {`,\n ' val obj = value as? JSONObject ?: error(\"$path: expected object\")',\n ` return ${qualified(struct.name)}(`,\n ...struct.fields.map(function(field) {\n var _field_fallback;\n var fieldPath = `\"$path.${field.name}\"`;\n var required = `error(\"$path.${field.name}: required\")`;\n var input = field.optional ? `(if (obj.has(${JSON.stringify(field.name)})) obj.get(${JSON.stringify(field.name)}) else ${(_field_fallback = field.fallback) !== null && _field_fallback !== void 0 ? _field_fallback : required})` : `(obj.opt(${JSON.stringify(field.name)}) ?: ${required})`;\n return ` ${field.name} = ${value(field.nativeType, input, fieldPath)},`;\n }),\n \" )\",\n \"}\",\n `private fun encode${struct.name}(value: ${qualified(struct.name)}): JSONObject {`,\n \" return JSONObject()\",\n ...struct.fields.map(function(field) {\n return ` .put(${JSON.stringify(field.name)}, ${encode(field.nativeType, `value.${field.name}`)})`;\n }),\n \"}\"\n ];\n });\n var enumHelpers = contract.enums.flatMap(function(entry) {\n return [\n `private fun read${entry.name}(value: Any, path: String): ${qualified(entry.name)} {`,\n \" val text = readString(value, path)\",\n ` return try { ${qualified(entry.name)}.valueOf(text) } catch (e: IllegalArgumentException) { error(\"$path: expected one of ${entry.cases.map(function(item) {\n return item.name;\n }).join(\", \")}\") }`,\n \"}\"\n ];\n });\n var source = [\n \"import androidx.annotation.Keep\",\n ...contract.views.length === 0 ? [] : [\n \"import androidx.compose.runtime.Composable\",\n \"import dev.onejs.one.OneNativeSourceViewDispatch\"\n ],\n \"import dev.onejs.one.OneNativeSourceDispatch\",\n ...needsEvents ? [\n \"import dev.onejs.one.source.OneNativeSourceEvents\"\n ] : [],\n \"import org.json.JSONArray\",\n \"import org.json.JSONObject\",\n \"\",\n 'private fun readString(value: Any, path: String): String = value as? String ?: error(\"$path: expected string\")',\n 'private fun readBoolean(value: Any, path: String): Boolean = value as? Boolean ?: error(\"$path: expected boolean\")',\n \"private fun readDouble(value: Any, path: String): Double {\",\n ' val result = (value as? Number)?.toDouble() ?: error(\"$path: expected number\")',\n ' if (!result.isFinite()) error(\"$path: expected finite number\")',\n \" return result\",\n \"}\",\n \"private fun readInt(value: Any, path: String): Int {\",\n \" val result = readDouble(value, path)\",\n ' if (result % 1.0 != 0.0 || result < Int.MIN_VALUE || result > Int.MAX_VALUE) error(\"$path: expected Int\")',\n \" return result.toInt()\",\n \"}\",\n \"private fun readLong(value: Any, path: String): Long {\",\n \" val result = readDouble(value, path)\",\n ' if (result % 1.0 != 0.0 || result < -9007199254740991.0 || result > 9007199254740991.0) error(\"$path: expected safe Long\")',\n \" return result.toLong()\",\n \"}\",\n \"private fun <T> readList(value: Any, path: String, read: (Any, String) -> T): List<T> {\",\n ' val array = value as? JSONArray ?: error(\"$path: expected array\")',\n ' return (0 until array.length()).map { index -> read(array.get(index), \"$path[$index]\") }',\n \"}\",\n \"private fun <T> readMap(value: Any, path: String, read: (Any, String) -> T): Map<String, T> {\",\n ' val objectValue = value as? JSONObject ?: error(\"$path: expected object\")',\n ' return objectValue.keys().asSequence().associateWith { key -> read(objectValue.get(key), \"$path.$key\") }',\n \"}\",\n // the encoder writes ISO with milliseconds and reads with or without\n // them, so swift, kotlin and javascript dates all parse everywhere.\n ...needsDate ? [\n \"private fun readDate(value: Any, path: String): java.util.Date {\",\n \" val text = readString(value, path)\",\n ` for (pattern in arrayOf(\"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\", \"yyyy-MM-dd'T'HH:mm:ss'Z'\")) {`,\n \" try {\",\n ' return java.text.SimpleDateFormat(pattern, java.util.Locale.US).apply { timeZone = java.util.TimeZone.getTimeZone(\"UTC\"); isLenient = false }.parse(text) ?: error(\"$path: expected date\")',\n \" } catch (parseError: java.text.ParseException) { }\",\n \" }\",\n ' error(\"$path: expected ISO date\")',\n \"}\",\n \"private fun dateToString(value: java.util.Date): String =\",\n ` java.text.SimpleDateFormat(\"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\", java.util.Locale.US).apply { timeZone = java.util.TimeZone.getTimeZone(\"UTC\") }.format(value)`\n ] : [],\n ...needsData ? [\n \"private fun readData(value: Any, path: String): ByteArray {\",\n \" try {\",\n \" return android.util.Base64.decode(readString(value, path), android.util.Base64.NO_WRAP)\",\n \" } catch (decodeError: IllegalArgumentException) {\",\n ' error(\"$path: expected base64 data\")',\n \" }\",\n \"}\"\n ] : [],\n ...structHelpers,\n ...enumHelpers,\n \"\",\n `@Keep class OneNativeSource_${sourceId}: OneNativeSourceDispatch {`,\n ` override val contractHash = ${JSON.stringify(hash)}`,\n \" override suspend fun call(module: String, method: String, argsJson: String): String {\",\n \" val args = JSONArray(argsJson)\",\n \" return when (module) {\",\n ...contract.modules.flatMap(function(module) {\n return [\n ` ${JSON.stringify(`${sourceId}.${module.name}`)} -> when (method) {`,\n ...module.methods.flatMap(function(method) {\n var subscription = method.subscription;\n if (subscription) {\n var channel = `OneNativeSource.${sourceId}.${module.name}.${method.name}`;\n var closure = subscription.payload.length === 0 ? `{ OneNativeSourceEvents.send(${JSON.stringify(channel)}, JSONArray().toString()) }` : `{ ${subscription.payload.map(function(_, index) {\n return `a${index}`;\n }).join(\", \")} -> OneNativeSourceEvents.send(${JSON.stringify(channel)}, JSONArray()${subscription.payload.map(function(arg, index) {\n return `.put(${encode(arg.nativeType, `a${index}`)})`;\n }).join(\"\")}.toString()) }`;\n return [\n ` ${JSON.stringify(method.name)} -> {`,\n ` require(args.length() == 0) { \"${sourceId}.${module.name}.${method.name} subscribes; it takes no arguments\" }`,\n ` ${qualified(module.name)}.${method.name}(${closure})`,\n ' \"null\"',\n \" }\"\n ];\n }\n var lines = [\n ` ${JSON.stringify(method.name)} -> {`,\n ` require(args.length() == ${method.parameters.length}) { \"${sourceId}.${module.name}.${method.name} expects ${method.parameters.length} arguments\" }`\n ];\n method.parameters.forEach(function(parameter, index) {\n lines.push(` val arg${index} = ${value(parameter.nativeType, `args.get(${index})`, JSON.stringify(`args[${index}]`))}`);\n });\n var call = `${qualified(module.name)}.${method.name}(${method.parameters.map(function(_, index) {\n return `arg${index}`;\n }).join(\", \")})`;\n if (method.result === \"void\") {\n lines.push(` ${call}`, ' \"null\"');\n } else {\n lines.push(` val result = ${call}`);\n if (method.nativeResult === \"Long\") {\n lines.push(' require(result >= -9007199254740991L && result <= 9007199254740991L) { \"result exceeds the JavaScript safe integer range\" }');\n }\n lines.push(` JSONArray().put(${encode(method.nativeResult, \"result\")}).toString().drop(1).dropLast(1)`);\n }\n return [\n ...lines,\n \" }\"\n ];\n }),\n ' else -> error(\"native method $module.$method is not linked; rebuild the app\")',\n \" }\"\n ];\n }),\n ' else -> error(\"native module $module is not linked; rebuild the app\")',\n \" }\",\n \" }\",\n \"}\",\n \"\",\n ...contract.views.length === 0 ? [] : viewGlue(sourceId, contract, hash, value, encode)\n ].join(\"\\n\");\n return {\n hash,\n source\n };\n}\nfunction viewGlue(sourceId, contract, hash, value, encode) {\n var qualifier = contract.packageName ? `${contract.packageName}.` : \"\";\n return [\n `@Keep class OneNativeSourceViews_${sourceId}: OneNativeSourceViewDispatch {`,\n ` override val contractHash = ${JSON.stringify(hash)}`,\n \" @Composable\",\n \" override fun Content(view: String, propsJson: String, emit: (String, String) -> Unit) {\",\n \" val props = JSONObject(propsJson)\",\n \" when (view) {\",\n ...contract.views.flatMap(function(view) {\n return [\n ` ${JSON.stringify(view.name)} -> ${qualifier}${view.name}(`,\n ...view.props.map(function(prop) {\n var path = JSON.stringify(`props.${prop.name}`);\n if (prop.callback) {\n var args = prop.callback.map(function(_, index) {\n return `a${index}`;\n });\n var types = prop.callback.map(function(arg) {\n return arg.nativeType;\n });\n var body = `emit(${JSON.stringify(prop.name)}, JSONArray()${args.map(function(arg, index) {\n return `.put(${encode(types[index], arg)})`;\n }).join(\"\")}.toString())`;\n var lambda = `{ ${args.length > 0 ? `${args.join(\", \")} -> ` : \"\"}${body} }`;\n return ` ${prop.name} = ${prop.nativeType.endsWith(\"?\") ? `if (props.optBoolean(${JSON.stringify(prop.name)})) (${lambda}) else null` : lambda},`;\n }\n var input = prop.optional ? `(props.opt(${JSON.stringify(prop.name)}) ?: JSONObject.NULL)` : `(props.opt(${JSON.stringify(prop.name)}) ?: error(${JSON.stringify(`props.${prop.name}: required`)}))`;\n return ` ${prop.name} = ${value(prop.nativeType, input, path)},`;\n }),\n \" )\"\n ];\n }),\n ' else -> error(\"composable $view is not linked; rebuild the app\")',\n \" }\",\n \" }\",\n \"}\",\n \"\"\n ];\n}\nexport {\n kotlinSourceId,\n nativeSourceContract,\n renderKotlinSourceGlue,\n renderSwiftSourceGlue,\n swiftPodManifest,\n writeNativeSourceDeclaration,\n writeNativeSourceDeclarations,\n writeSwiftPackageArtifacts\n};\n//# sourceMappingURL=nativeSourceContract.js.map\n"],"mappings":";;;;;;AAIA,IAAI,mBAAmB;AACvB,IAAI,mCAAmC,IAAI,IAAI;CAC7C;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,SAAS,mBAAmB,MAAM,SAAS;CACzC,IAAI;EACF,IAAI,aAAa,MAAM,MAAM,MAAM,SAAS;CAC9C,SAAS,OAAO;EACd,IAAI,CAAC,SAAS,OAAO,UAAU,YAAY,EAAE,UAAU,UAAU,MAAM,SAAS,UAAU,MAAM;CAClG;CACA,IAAI,YAAY,KAAK,QAAQ,IAAI,GAAG,IAAI,SAAS,IAAI,EAAE,GAAG,WAAW,EAAE,KAAK;CAC5E,IAAI;EACF,cAAc,WAAW,OAAO;EAChC,WAAW,WAAW,IAAI;CAC5B,UAAU;EACR,OAAO,WAAW,EAChB,OAAO,KACT,CAAC;CACH;AACF;AACA,SAAS,KAAK,MAAM,OAAO,SAAS;CAClC,IAAI,MAAM;CACV,MAAM,IAAI,MAAM,GAAG,KAAK,KAAK,OAAO,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,UAAU,QAAQ,SAAS,KAAK,IAAI,OAAO,KAAK,EAAE,KAAK,QAAQ,UAAU,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,YAAY,QAAQ,UAAU,KAAK,IAAI,QAAQ,KAAK,EAAE,IAAI,SAAS;AAChR;AACA,SAAS,OAAO,MAAM,QAAQ;CAC5B,IAAI,SAAS,CAAC;CACd,IAAI,SAAS;CACb,IAAI,OAAO;CACX,IAAI,SAAS;CACb,IAAI,UAAU,SAAS,WAAW;EAChC,IAAI,OAAO,YAAY,MAAM;GAC3B;GACA,SAAS;EACX,OAAO;EACP;CACF;CACA,OAAO,SAAS,OAAO,QAAQ;EAC7B,IAAI,OAAO,OAAO;EAClB,IAAI,KAAK,KAAK,IAAI,GAAG;GACnB,QAAQ;GACR;EACF;EACA,IAAI,OAAO,WAAW,MAAM,MAAM,GAAG;GACnC,OAAO,SAAS,OAAO,UAAU,OAAO,YAAY,MAAM,QAAQ;GAClE;EACF;EACA,IAAI,OAAO,WAAW,MAAM,MAAM,GAAG;GACnC,IAAI,QAAQ;GACZ,GAAG;IACD,IAAI,OAAO,WAAW,MAAM,MAAM,GAAG;KACnC;KACA,QAAQ;KACR,QAAQ;IACV,OAAO,IAAI,OAAO,WAAW,MAAM,MAAM,GAAG;KAC1C;KACA,QAAQ;KACR,QAAQ;IACV,OAAO,QAAQ;GACjB,SAAS,QAAQ,KAAK,SAAS,OAAO;GACtC,IAAI,QAAQ,GAAG,KAAK,MAAM;IACxB,MAAM;IACN;IACA;GACF,GAAG,gCAAgC;GACnC;EACF;EACA,IAAI,SAAS,QAAO,SAAS,KAAK;GAChC,IAAI,QAAQ,OAAO,WAAW,KAAK,OAAO,CAAC,GAAG,MAAM,IAAI,KAAK,OAAO,CAAC,IAAI;GACzE,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK,QAAQ;GAC/C,OAAO,SAAS,OAAO,UAAU,CAAC,OAAO,WAAW,OAAO,MAAM,GAAG;IAClE,IAAI,OAAO,YAAY,MAAM,QAAQ;IACrC,QAAQ;GACV;GACA,IAAI,UAAU,OAAO,QAAQ,KAAK,MAAM;IACtC,MAAM;IACN;IACA;GACF,GAAG,+BAA+B;GAClC,KAAK,IAAI,KAAK,GAAG,KAAK,MAAM,QAAQ,MAAM,QAAQ;GAClD;EACF;EACA,IAAI,QAAQ;EACZ,IAAI,YAAY;EAChB,IAAI,cAAc;EAClB,IAAI,YAAY,KAAK,IAAI,GAAG;GAC1B,OAAO,SAAS,OAAO,UAAU,eAAe,KAAK,OAAO,OAAO,GAAG,QAAQ;EAChF,OAAO,IAAI,OAAO,WAAW,MAAM,MAAM,GAAG;GAC1C,QAAQ;GACR,QAAQ;EACV,OAAO,QAAQ;EACf,OAAO,KAAK;GACV,MAAM,OAAO,MAAM,OAAO,MAAM;GAChC,MAAM;GACN,QAAQ;EACV,CAAC;CACH;CACA,OAAO;AACT;AACA,SAAS,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO;CAC7C,IAAI,QAAQ;CACZ,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,KAAK;EACxC,IAAI,KAAK,EAAE,CAAC,SAAS,MAAM;EAC3B,IAAI,KAAK,EAAE,CAAC,SAAS,SAAS,EAAE,UAAU,GAAG,OAAO;CACtD;CACA,KAAK,MAAM,KAAK,QAAQ,YAAY,KAAK,kBAAkB;AAC7D;AACA,SAAS,MAAM,MAAM,WAAW;CAC9B,IAAI,QAAQ,CAAC;CACb,IAAI,QAAQ;CACZ,IAAI,SAAS;CACb,IAAI,QAAQ;CACZ,IAAI,QAAQ;CACZ,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;EACpC,IAAI,QAAQ,KAAK,EAAE,CAAC;EACpB,IAAI,UAAU,KAAK;EACnB,IAAI,UAAU,KAAK;EACnB,IAAI,UAAU,KAAK;EACnB,IAAI,UAAU,KAAK;EACnB,IAAI,UAAU,KAAK;EACnB,IAAI,UAAU,KAAK;EACnB,IAAI,UAAU,aAAa,WAAW,KAAK,UAAU,KAAK,UAAU,GAAG;GACrE,MAAM,KAAK,KAAK,MAAM,OAAO,CAAC,CAAC;GAC/B,QAAQ,IAAI;EACd;CACF;CACA,MAAM,KAAK,KAAK,MAAM,KAAK,CAAC;CAC5B,OAAO;AACT;AACA,SAAS,QAAQ,SAAS;CACxB,OAAO,QAAQ,SAAS,KAAK,IAAI,IAAI,QAAQ,OAAO,GAAG,QAAQ;AACjE;AACA,SAAS,OAAO,MAAM,MAAM,UAAU,OAAO;CAC3C,IAAI,UAAU,WAAW,QAAQ;CACjC,IAAI,KAAK,WAAW,GAAG,KAAK,MAAM,KAAK,IAAI,sCAAsC;CACjF,MAAM,WAAW,KAAK,GAAG,CAAC,CAAC,OAAO,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS,UAAU,KAAK;EAC/F,IAAI,QAAQ,OAAO,MAAM,KAAK,MAAM,GAAG,CAAC,CAAC,GAAG,UAAU,KAAK;EAC3D,OAAO;GACL,MAAM,GAAG,MAAM,KAAK;GACpB,MAAM,MAAM,OAAO;IACjB,MAAM;IACN,OAAO,MAAM;GACf,IAAI;EACN;CACF;CACA,IAAI,QAAQ,KAAK,IAAI,SAAS,OAAO;EACnC,OAAO,MAAM;CACf,CAAC,CAAC,CAAC,KAAK,EAAE;CACV,IAAI,UAAU,UAAU,OAAO;EAC7B,MAAM;EACN,MAAM;CACR;CACA,IAAI,UAAU,UAAU,UAAU,WAAW,OAAO;EAClD,MAAM;EACN,MAAM;CACR;CACA,IAAI;EACF;EACA;EACA;EACA;CACF,CAAC,CAAC,SAAS,KAAK,GAAG,OAAO;EACxB,MAAM;EACN,MAAM;CACR;CACA,IAAI,UAAU,UAAU,UAAU,QAAQ,OAAO;EAC/C,MAAM;EACN,MAAM;CACR;CACA,IAAI,YAAY,aAAa,UAAU,CACrC,QACA,iBACF,IAAI,CACF,QACA,gBACF;CACA,IAAI,UAAU,SAAS,KAAK,GAAG,OAAO;EACpC,MAAM;EACN,MAAM,EACJ,MAAM,OACR;CACF;CACA,IAAI,YAAY,aAAa,UAAU,CACrC,QACA,iBACF,IAAI,CACF,WACF;CACA,IAAI,UAAU,SAAS,KAAK,GAAG;EAC7B,OAAO;GACL,MAAM;GACN,MAAM,EACJ,MAAM,OACR;EACF;CACF;CACA,IAAI,aAAa,WAAW,KAAK,EAAE,CAAC,SAAS,SAAS,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,QAAQ,cAAc,KAAK,IAAI,KAAK,IAAI,UAAU,UAAU,KAAK;EAClJ,IAAI,SAAS,KAAK,MAAM,GAAG,CAAC,CAAC;EAC7B,IAAI,UAAU,MAAM,QAAQ,GAAG;EAC/B,IAAI,QAAQ,WAAW,GAAG;GACxB,IAAI,UAAU,OAAO,MAAM,QAAQ,UAAU,KAAK;GAClD,OAAO;IACL,MAAM,QAAQ,QAAQ,IAAI;IAC1B,MAAM,QAAQ,OAAO;KACnB,MAAM;KACN,SAAS,QAAQ;IACnB,IAAI;GACN;EACF;EACA,IAAI,QAAQ,WAAW,KAAK,QAAQ,EAAE,CAAC,IAAI,SAAS,OAAO;GACzD,OAAO,MAAM;EACf,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,UAAU;GACxB,IAAI,WAAW,OAAO,MAAM,QAAQ,IAAI,UAAU,KAAK;GACvD,OAAO;IACL,MAAM,kBAAkB,SAAS,KAAK;IACtC,MAAM,SAAS,OAAO;KACpB,MAAM;KACN,OAAO,SAAS;IAClB,IAAI;GACN;EACF;CACF;CACA,IAAI,aAAa,cAAc,SAAS,KAAK,QAAQ,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO,UAAU,SAAS,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,QAAQ,cAAc,KAAK,IAAI,KAAK,IAAI,UAAU,UAAU,KAAK;EAChN,IAAI,WAAW,MAAM,KAAK,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG;EAC3C,IAAI,KAAK,EAAE,CAAC,SAAS,UAAU,SAAS,WAAW,GAAG;GACpD,IAAI,WAAW,OAAO,MAAM,SAAS,IAAI,UAAU,KAAK;GACxD,OAAO;IACL,MAAM,QAAQ,SAAS,IAAI;IAC3B,MAAM,SAAS,OAAO;KACpB,MAAM;KACN,SAAS,SAAS;IACpB,IAAI;GACN;EACF;EACA,IAAI,KAAK,EAAE,CAAC,SAAS,SAAS,SAAS,WAAW,KAAK,SAAS,EAAE,CAAC,IAAI,SAAS,OAAO;GACrF,OAAO,MAAM;EACf,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,UAAU;GACxB,IAAI,WAAW,OAAO,MAAM,SAAS,IAAI,UAAU,KAAK;GACxD,OAAO;IACL,MAAM,kBAAkB,SAAS,KAAK;IACtC,MAAM,SAAS,OAAO;KACpB,MAAM;KACN,OAAO,SAAS;IAClB,IAAI;GACN;EACF;CACF;CACA,IAAI,KAAK,WAAW,KAAK,uBAAuB,KAAK,KAAK,GAAG;EAC3D,IAAI,SAAS,MAAM,QAAQ,IAAI,KAAK;EACpC,IAAI,QAAQ;GACV,IAAI,OAAO,SAAS,KAAK,MAAM,KAAK,IAAI,kBAAkB,MAAM,gBAAgB;GAChF,IAAI,OAAO,SAAS,KAAK,MAAM,KAAK,IAAI,OAAO,OAAO;GACtD,IAAI,CAAC,OAAO,SAAS,KAAK,MAAM,KAAK,IAAI,UAAU,MAAM,+CAA+C;GACxG,OAAO;IACL,MAAM;IACN,MAAM;KACJ,MAAM;KACN,MAAM;IACR;GACF;EACF;EACA,IAAI,WAAW,MAAM,MAAM,IAAI,KAAK;EACpC,IAAI,UAAU;GACZ,IAAI,CAAC,SAAS,QAAQ,KAAK,MAAM,KAAK,IAAI,SAAS,OAAO;GAC1D,OAAO;IACL,MAAM;IACN,MAAM;KACJ,MAAM;KACN,MAAM;IACR;GACF;EACF;CACF;CACA,KAAK,MAAM,KAAK,IAAI,kCAAkC,OAAO;AAC/D;AACA,SAAS,WAAW,MAAM,MAAM,UAAU,OAAO;CAC/C,IAAI,KAAK,WAAW,GAAG,OAAO,CAAC;CAC/B,OAAO,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,SAAS,MAAM,OAAO;EAChD,IAAI,MAAM,OAAO;EACjB,IAAI,OAAO;EACX,IAAI,KAAK,KAAK,SAAS,OAAO;GAC5B,OAAO,MAAM,SAAS;EACxB,CAAC,GAAG,KAAK,MAAM,KAAK,IAAI,iDAAiD;EACzE,IAAI,QAAQ,KAAK,UAAU,SAAS,OAAO;GACzC,OAAO,MAAM,SAAS;EACxB,CAAC;EACD,IAAI,QAAQ,GAAG,KAAK,MAAM,KAAK,IAAI,gDAAgD;EACnF,IAAI,QAAQ,KAAK,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,SAAS,OAAO;GACtD,OAAO,2BAA2B,KAAK,MAAM,IAAI;EACnD,CAAC;EACD,IAAI,QAAQ,QAAQ,QAAQ,aAAa,UAAU,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM,QAAQ,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,UAAU,QAAQ,SAAS,KAAK,IAAI,OAAO,MAAM;EAC3K,IAAI,SAAS,KAAK,KAAK,MAAM,KAAK,IAAI,gDAAgD;EACtF,IAAI,QAAQ,aAAa,WAAW,SAAS,UAAU,MAAM,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,QAAQ,UAAU,KAAK,IAAI,QAAQ,OAAO;EACvK,IAAI,aAAa,KAAK,MAAM,QAAQ,CAAC;EACrC,IAAI,OAAO,OAAO,MAAM,YAAY,UAAU,KAAK;EACnD,OAAO;GACL;GACA;GACA,MAAM,KAAK;GACX,YAAY,WAAW,IAAI,SAAS,OAAO;IACzC,OAAO,MAAM;GACf,CAAC,CAAC,CAAC,KAAK,EAAE;GACV,OAAO,aAAa,KAAK,UAAU,QAAQ,eAAe,KAAK,IAAI,aAAa,KAAK;EACvF;CACF,CAAC;AACH;AACA,IAAI,wCAAwC,IAAI,IAAI;CAClD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,SAAS,iBAAiB,MAAM,OAAO,SAAS;CAC9C,IAAI,QAAQ;CACZ,OAAO,QAAQ,OAAO;EACpB,IAAI;EACJ,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;EAC3B,IAAI,sBAAsB,IAAI,IAAI,GAAG;GACnC;GACA;EACF;EACA,MAAM,SAAS,KAAK,QAAQ,QAAQ,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO,UAAU,KAAK;GAC7F,SAAS;GACT;EACF;EACA,IAAI,SAAS,KAAK;GAChB,IAAI;GACJ,IAAI,OAAO,QAAQ;GACnB,KAAK,IAAI,QAAQ,GAAG,OAAO,OAAO,QAAQ;IACxC,IAAI,KAAK,KAAK,CAAC,SAAS,KAAK;IAC7B,IAAI,KAAK,KAAK,CAAC,SAAS,OAAO,EAAE,UAAU,GAAG;GAChD;GACA,MAAM,UAAU,KAAK,OAAO,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,KAAK;IAC/F,QAAQ,OAAO;IACf;GACF;EACF;EACA;CACF;CACA,OAAO;AACT;AACA,SAAS,qBAAqB,MAAM,OAAO,SAAS;CAClD,IAAI,QAAQ,CAAC;CACb,KAAK,IAAI,IAAI,iBAAiB,MAAM,OAAO,OAAO,GAAG,QAAQ,GAAG,IAAI,SAAS,KAAK;EAChF,IAAI,OAAO,KAAK,EAAE,CAAC;EACnB,IAAI,SAAS,KAAK;OACb,IAAI,SAAS,KAAK;OAClB,IAAI,UAAU,GAAG,MAAM,KAAK,IAAI;CACvC;CACA,OAAO;AACT;AACA,SAAS,oBAAoB,MAAM,YAAY,UAAU,OAAO;CAC9D,IAAI;EACF,IAAI,gBAAgB,MAAM,OAAO,OAAO;EACxC,MAAM,iBAAiB,WAAW,GAAG,CAAC,CAAC,OAAO,QAAQ,mBAAmB,KAAK,IAAI,KAAK,IAAI,eAAe,UAAU,KAAK,OAAO;EAChI,IAAI,KAAK;EACT,IAAI,aAAa,aAAa,OAAO,GAAG,QAAQ,QAAQ,SAAS,KAAK,IAAI,KAAK,IAAI,KAAK,UAAU,SAAS,QAAQ,GAAG,QAAQ,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,UAAU,YAAY,KAAK,GAAG,MAAM,CAAC;EAC7M,MAAM,QAAQ,GAAG,QAAQ,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,UAAU,OAAO,MAAM,MAAM,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,KAAK,GAAG,KAAK,SAAS,OAAO;GAC5J,OAAO,MAAM,SAAS;EACxB,CAAC,GAAG;GACF,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;EACrB;EACA,IAAI,QAAQ,GAAG,UAAU,SAAS,OAAO;GACvC,OAAO,MAAM,SAAS;EACxB,CAAC;EACD,IAAI,SAAS,OAAO,QAAQ,GAAG,QAAQ,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,UAAU,OAAO,MAAM,MAAM,IAAI,GAAG,KAAK,GAAG,MAAM,QAAQ,GAAG,OAAO;EACrJ,IAAI,SAAS,GAAG,MAAM,QAAQ,CAAC;EAC/B,IAAI,aAAa,OAAO,WAAW,MAAM,OAAO,EAAE,CAAC,SAAS,UAAU,OAAO,EAAE,CAAC,SAAS,WAAW,OAAO,WAAW,KAAK,OAAO,EAAE,CAAC,SAAS,OAAO,OAAO,EAAE,CAAC,SAAS;EACxK,IAAI,CAAC,YAAY,OAAO;EACxB,IAAI,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;EACjC,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC;EAChC,OAAO,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,SAAS,KAAK;GACzC,IAAI;GACJ,IAAI,QAAQ,IAAI,UAAU,SAAS,OAAO;IACxC,OAAO,MAAM,SAAS;GACxB,CAAC;GACD,IAAI,OAAO,QAAQ,IAAI,MAAM,IAAI,MAAM,QAAQ,CAAC;GAChD,IAAI,WAAW,OAAO,MAAM,MAAM,UAAU,KAAK;GACjD,OAAO;IACL,MAAM,SAAS;IACf,YAAY,KAAK,IAAI,SAAS,OAAO;KACnC,OAAO,MAAM;IACf,CAAC,CAAC,CAAC,KAAK,EAAE;IACV,OAAO,iBAAiB,SAAS,UAAU,QAAQ,mBAAmB,KAAK,IAAI,iBAAiB,KAAK;GACvG;EACF,CAAC;CACH,SAAS,QAAQ;EACf,OAAO;CACT;AACF;AACA,SAAS,QAAQ,MAAM,MAAM,OAAO,KAAK,UAAU,OAAO;CACxD,IAAI,QAAQ,WAAW;EACrB,IAAI,QAAQ,SAAS,YAAY,iBAAiB;EAClD,IAAI,KAAK,EAAE,CAAC,SAAS,KAAK;GACxB,IAAI,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI;GACrC,WAAW;GACX,OAAO;EACT;EACA,IAAI,KAAK,EAAE,CAAC,SAAS,SAAS;GAC5B;GACA,OAAO;EACT;EACA,IAAI,YAAY,qBAAqB,MAAM,UAAU,CAAC;EACtD,IAAI,SAAS,UAAU,SAAS,SAAS,KAAK,UAAU,SAAS,aAAa;EAC9E,IAAI,CAAC,WAAW,UAAU,SAAS,QAAQ,KAAK,UAAU,SAAS,OAAO,IAAI;GAC5E,KAAK,MAAM,KAAK,IAAI,uCAAuC;EAC7D;EACA,IAAI,QAAQ,SAAS,KAAK,IAAI,QAAQ,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO;EAClF,IAAI,CAAC,QAAQ,CAAC,2BAA2B,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,IAAI,kCAAkC;EAC3G,IAAI,OAAO,KAAK,SAAS,QAAQ;GAC/B,OAAO,OAAO,SAAS;EACzB,CAAC,GAAG,KAAK,MAAM,KAAK,IAAI,4BAA4B,KAAK,gBAAgB;EACzE,MAAM,UAAU,KAAK,IAAI,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,KAAK,KAAK,MAAM,KAAK,IAAI,wCAAwC;EAC1J,IAAI,OAAO,IAAI;EACf,MAAM,aAAa,KAAK,WAAW,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW,UAAU,KAAK,KAAK,MAAM,KAAK,IAAI,qCAAqC;EAC/J,IAAI,UAAU,MAAM,MAAM,MAAM,MAAM,KAAK,GAAG;EAC9C,IAAI,YAAY,UAAU;EAC1B,OAAO,YAAY,OAAO,CAAC;GACzB;GACA;GACA;EACF,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,IAAI,GAAG;EAClC,IAAI,SAAS,KAAK,MAAM,UAAU,GAAG,SAAS;EAC9C,IAAI,YAAY,OAAO,UAAU,SAAS,OAAO;GAC/C,OAAO,MAAM,UAAU,aAAa,UAAU,OAAO;EACvD,CAAC;EACD,IAAI,aAAa,UAAU,YAAY,IAAI,CAAC,IAAI,OAAO,MAAM,YAAY,CAAC;EAC1E,IAAI,OAAO,WAAW,WAAW,IAAI;GACnC,MAAM;GACN,MAAM;EACR,IAAI,OAAO,MAAM,YAAY,UAAU,KAAK;EAC5C,IAAI,eAAe,KAAK;EACxB,IAAI,CAAC,UAAU,KAAK,SAAS,QAAQ;GACnC,IAAI,QAAQ,MAAM,KAAK,MAAM,OAAO,GAAG,OAAO,GAAG,GAAG;GACpD,IAAI,MAAM,WAAW,KAAK,MAAM,EAAE,CAAC,SAAS,GAAG;IAC7C,IAAI,QAAQ,MAAM,EAAE,CAAC,UAAU,SAAS,OAAO;KAC7C,OAAO,MAAM,SAAS;IACxB,CAAC;IACD,IAAI,SAAS,GAAG;KACd,IAAI,UAAU,oBAAoB,MAAM,MAAM,EAAE,CAAC,MAAM,QAAQ,CAAC,GAAG,UAAU,KAAK;KAClF,IAAI,SAAS,eAAe,EAC1B,QACF;IACF;GACF;EACF;EACA,IAAI,CAAC,QAAQ;GACX,IAAI;GACJ,OAAO,KAAK;IACV;IACA,YAAY,eAAe,CAAC,IAAI,WAAW,MAAM,KAAK,MAAM,OAAO,GAAG,OAAO,GAAG,UAAU,KAAK;IAC/F,QAAQ,KAAK;IACb,cAAc,WAAW,WAAW,IAAI,aAAa,UAAU,SAAS,SAAS,WAAW,IAAI,SAAS,OAAO;KAC9G,OAAO,MAAM;IACf,CAAC,CAAC,CAAC,KAAK,EAAE;IACV,aAAa,aAAa,KAAK,UAAU,QAAQ,eAAe,KAAK,IAAI,aAAa,KAAK;IAC3F;IACA,QAAQ,aAAa,UAAU,OAAO,KAAK,SAAS,OAAO;KACzD,OAAO,MAAM,SAAS;IACxB,CAAC,IAAI;IACL,OAAO,aAAa,UAAU,OAAO,KAAK,SAAS,OAAO;KACxD,OAAO,MAAM,SAAS;IACxB,CAAC,IAAI,UAAU,SAAS,SAAS;GACnC,CAAC;EACH;EACA,MAAM,kBAAkB,KAAK,gBAAgB,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB,UAAU,KAAK,IAAI,MAAM,MAAM,MAAM,WAAW,KAAK,GAAG,IAAI;OAClK,MAAM,mBAAmB,KAAK,gBAAgB,QAAQ,qBAAqB,KAAK,IAAI,KAAK,IAAI,iBAAiB,UAAU,KAAK;GAChI,IAAI,WAAW,KAAK,UAAU,CAAC;GAC/B,IAAI,YAAY;GAChB,OAAO,IAAI,OAAO,KAAK,EAAE,CAAC,SAAS,YAAY,KAAK,EAAE,CAAC,SAAS,KAAK;EACvE,OAAO,IAAI,YAAY;EACvB,WAAW;CACb;CACA,IAAI,SAAS,CAAC;CACd,IAAI,IAAI,QAAQ;CAChB,IAAI,WAAW;CACf,IAAI,UAAU,aAAa,UAAU,SAAS;CAC9C,OAAO,IAAI,KAAK,MAAM;CACtB,OAAO;AACT;AACA,SAAS,aAAa,MAAM,MAAM,YAAY,UAAU,UAAU,OAAO;CACvE,IAAI,gBAAgB,MAAM;CAC1B,IAAI,aAAa,iBAAiB,WAAW,GAAG,CAAC,CAAC,OAAO,QAAQ,mBAAmB,KAAK,IAAI,KAAK,IAAI,eAAe,UAAU;CAC/H,IAAI,KAAK,WAAW,WAAW,MAAM,GAAG,CAAC,CAAC,IAAI;CAC9C,MAAM,OAAO,GAAG,QAAQ,QAAQ,SAAS,KAAK,IAAI,KAAK,IAAI,KAAK,UAAU,OAAO,MAAM,MAAM,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,KAAK,GAAG,KAAK,SAAS,OAAO;EACzJ,OAAO,MAAM,SAAS;CACxB,CAAC,GAAG;EACF,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;CACrB;CACA,IAAI,QAAQ,GAAG,UAAU,SAAS,OAAO;EACvC,OAAO,MAAM,SAAS;CACxB,CAAC;CACD,IAAI,QAAQ,OAAO,QAAQ,GAAG,QAAQ,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,MAAM,UAAU,OAAO,MAAM,MAAM,IAAI,GAAG,KAAK,GAAG,MAAM,QAAQ,GAAG,OAAO;CACpJ,IAAI,SAAS,GAAG,MAAM,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,OAAO;EACnD,OAAO,MAAM;CACf,CAAC,CAAC,CAAC,KAAK,EAAE;CACV,IAAI,OAAO,aAAa,UAAU,SAAS;CAC3C,IAAI,WAAW,QAAQ,EAAE,aAAa,WAAW,WAAW,OAAO;EACjE,KAAK,MAAM,WAAW,IAAI,iBAAiB,KAAK,eAAe,MAAM;CACvE;CACA,IAAI,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;CACjC,IAAI,WAAW,MAAM,WAAW,IAAI,CAAC,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,SAAS,KAAK;EAC3E,IAAI;EACJ,IAAI,QAAQ,IAAI,UAAU,SAAS,OAAO;GACxC,OAAO,MAAM,SAAS;EACxB,CAAC;EACD,IAAI,OAAO,QAAQ,IAAI,MAAM,IAAI,MAAM,QAAQ,CAAC;EAChD,IAAI,WAAW,OAAO,MAAM,MAAM,UAAU,KAAK;EACjD,OAAO;GACL,MAAM,SAAS;GACf,YAAY,KAAK,IAAI,SAAS,OAAO;IACnC,OAAO,MAAM;GACf,CAAC,CAAC,CAAC,KAAK,EAAE;GACV,OAAO,iBAAiB,SAAS,UAAU,QAAQ,mBAAmB,KAAK,IAAI,iBAAiB,KAAK;EACvG;CACF,CAAC;CACD,IAAI,YAAY,IAAI,SAAS,IAAI,SAAS,KAAK,OAAO;EACpD,OAAO,QAAQ,MAAM,IAAI,IAAI;CAC/B,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;CACd,IAAI,aAAa,WAAW,IAAI,SAAS,OAAO;EAC9C,OAAO,MAAM;CACf,CAAC,CAAC,CAAC,KAAK,EAAE;CACV,OAAO;EACL;EACA,MAAM,WAAW,IAAI,UAAU,YAAY;EAC3C;EACA;EACA;CACF;AACF;AACA,SAAS,SAAS,MAAM,MAAM,OAAO;CACnC,IAAI;CACJ,IAAI,UAAU;CACd,IAAI,QAAQ,KAAK,UAAU,SAAS,OAAO;EACzC,OAAO,MAAM,SAAS;CACxB,CAAC;CACD,IAAI,UAAU,KAAK,CAAC,2BAA2B,KAAK,KAAK,EAAE,CAAC,IAAI,GAAG;EACjE,KAAK,MAAM,KAAK,IAAI,wDAAwD;CAC9E;CACA,IAAI,OAAO,KAAK,EAAE,CAAC;CACnB,IAAI,SAAS,MAAM,KAAK,MAAM,QAAQ,CAAC,GAAG,GAAG;CAC7C,IAAI,aAAa,OAAO;CACxB,IAAI,YAAY,WAAW,OAAO,QAAQ,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,SAAS,OAAO;EAC5G,OAAO,MAAM;CACf,CAAC,CAAC,CAAC,KAAK,EAAE;CACV,IAAI,aAAa,WAAW,IAAI,SAAS,OAAO;EAC9C,OAAO,MAAM;CACf,CAAC,CAAC,CAAC,KAAK,EAAE;CACV,IAAI,eAAe,YAAY;EAC7B,IAAI,aAAa,YAAY,KAAK,MAAM,KAAK,IAAI,4DAA4D;EAC7G,OAAO;CACT;CACA,IAAI,aAAa,iBAAiB,WAAW,GAAG,CAAC,CAAC,OAAO,QAAQ,mBAAmB,KAAK,IAAI,KAAK,IAAI,eAAe,UAAU;CAC/H,IAAI,aAAa,KAAK,KAAK,EAAE,YAAY,aAAa,SAAS;EAC7D,KAAK,MAAM,KAAK,IAAI,wBAAwB,KAAK,0BAA0B;CAC7E;CACA,IAAI,WAAW,aAAa,KAAK;CACjC,IAAI,WAAW,aAAa,MAAM,MAAM,YAAY,UAAU,UAAU,KAAK;CAC7E,IAAI,UAAU,OAAO;CACrB,IAAI,WAAW,OAAO,MAAM,YAAY,UAAU,KAAK;CACvD,OAAO;EACL;EACA,MAAM,SAAS;EACf;EACA;EACA,UAAU;EACV,OAAO,iBAAiB,SAAS,UAAU,QAAQ,mBAAmB,KAAK,IAAI,iBAAiB,KAAK;CACvG;AACF;AACA,IAAI,mCAAmC,IAAI,IAAI;CAC7C;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,SAAS,eAAe,MAAM,MAAM,GAAG,UAAU,KAAK,OAAO;CAC3D,IAAI;CACJ,IAAI,QAAQ,SAAS,YAAY,YAAY;CAC7C,IAAI,KAAK,KAAK;CACd,IAAI,MAAM,KAAK,MAAM,iBAAiB,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,SAAS,OAAO;EAC/E,OAAO,MAAM;CACf,CAAC;CACD,IAAI,YAAY,QAAQ,SAAS,KAAK,IAAI,QAAQ,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO,UAAU,QAAQ,SAAS,KAAK,IAAI,OAAO;CACzI,IAAI,CAAC,2BAA2B,KAAK,QAAQ,GAAG,KAAK,MAAM,KAAK,IAAI,GAAG,MAAM,sCAAsC;CACnH,IAAI,OAAO,IAAI;CACf,IAAI,QAAQ;CACZ,OAAO,OAAO,KAAK;EACjB,IAAI,QAAQ,KAAK,KAAK,CAAC;EACvB,IAAI,UAAU,MAAM,UAAU,OAAO,UAAU,OAAO,UAAU,OAAO,KAAK,KAAK,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC,OAAO;EACjH,IAAI,UAAU,OAAO,UAAU,OAAO,UAAU,KAAK;EACrD,IAAI,UAAU,OAAO,UAAU,OAAO,UAAU,KAAK;EACrD;CACF;CACA,IAAI,eAAe,UAAU,KAAK,IAAI,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,MAAM,KAAK,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC;CACvI,IAAI,WAAW,aAAa,KAAK,WAAW,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW,UAAU;CAC1G,IAAI,OAAO;CACX,IAAI,QAAQ;EACV,IAAI,YAAY,KAAK,KAAK,CAAC;EAC3B,OAAO,OAAO,OAAO,KAAK,KAAK,CAAC,SAAS,aAAa,KAAK,KAAK,CAAC,SAAS,KAAK;CACjF;CACA,IAAI,UAAU,aAAa,KAAK,WAAW,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW,UAAU;CACzG,IAAI,WAAW,SAAS,CAAC,UAAU,CAAC,CAClC,WACA,QACF,CAAC,CAAC,UAAU,UAAU,KAAK,OAAO,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,IAAI;CAC5F,IAAI,SAAS,QAAQ,MAAM,MAAM,MAAM,MAAM,KAAK,GAAG,IAAI,IAAI;CAC7D,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;AACA,SAAS,UAAU,MAAM,MAAM,SAAS,OAAO,MAAM,KAAK,OAAO;CAC/D,IAAI,QAAQ,WAAW;EACrB,IAAI,SAAS,SAAS,gBAAgB,UAAU;EAChD,IAAI,OAAO,KAAK,EAAE,CAAC;EACnB,IAAI,SAAS,KAAK;GAChB,IAAI,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI;GACrC,WAAW;GACX,OAAO;EACT;EACA,IAAI,SAAS,YAAY,UAAU,KAAK,IAAI,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,SAAS,UAAU,KAAK,IAAI,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,KAAK;GAC3M,KAAK,MAAM,KAAK,IAAI,QAAQ,KAAK,kEAAkE;EACrG;EACA,IAAI,SAAS,SAAS,SAAS,OAAO;GACpC;GACA,OAAO;EACT;EACA,IAAI,WAAW,eAAe,MAAM,MAAM,GAAG,UAAU,KAAK,QAAQ,MAAM;EAC1E,IAAI,EAAE,IAAI,KAAK,UAAU,YAAY,QAAQ,SAAS;EACtD,IAAI,SAAS;EACb,WAAW;EACX,IAAI,UAAU,IAAI,UAAU,SAAS,OAAO,OAAO;GACjD,OAAO,IAAI,QAAQ,OAAO,OAAO,CAAC,iBAAiB,IAAI,KAAK;EAC9D,CAAC;EACD,IAAI,SAAS,YAAY,IAAI,SAAS,QAAQ,GAAG,OAAO;EACxD,IAAI,WAAW,GAAG;GAChB,IAAI,UAAU,IAAI,UAAU,OAAO,KAAK,OAAO;GAC/C,KAAK,MAAM,IAAI,IAAI,IAAI,SAAS,GAAG,SAAS,WAAW,KAAK,0DAA0D;EACxH;EACA,IAAI,IAAI,SAAS,SAAS,KAAK,IAAI,SAAS,aAAa,GAAG;GAC1D,IAAI,QAAQ,OAAO;GACnB,KAAK,MAAM,IAAI,WAAW,SAAS,WAAW,KAAK,4DAA4D;EACjH;EACA,IAAI,UAAU,SAAS,OAAO,OAAO;EACrC,IAAI,WAAW,WAAW,GAAG,KAAK,MAAM,IAAI,aAAa,SAAS,wBAAwB;EAC1F,IAAI,aAAa,iBAAiB,WAAW,GAAG,CAAC,CAAC,OAAO,QAAQ,mBAAmB,KAAK,IAAI,KAAK,IAAI,eAAe,UAAU;EAC/H,IAAI,UAAU,EAAE,cAAc,WAAW,KAAK,OAAO,QAAQ,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS,UAAU,WAAW,UAAU,KAAK,OAAO,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,KAAK,OAAO,EAAE,CAAC,OAAO;GAC5O,KAAK,MAAM,KAAK,OAAO,aAAa,SAAS,yBAAyB;EACxE;EACA,IAAI,WAAW,aAAa,MAAM,UAAU,YAAY,UAAU,SAAS,KAAK;EAChF,IAAI,UAAU;GACZ,MAAM,KAAK,QAAQ;EACrB,OAAO;GACL,IAAI;GACJ,IAAI,WAAW,OAAO,MAAM,YAAY,SAAS,KAAK;GACtD,MAAM,KAAK;IACT,MAAM;IACN,MAAM,SAAS;IACf,YAAY,WAAW,IAAI,SAAS,OAAO;KACzC,OAAO,MAAM;IACf,CAAC,CAAC,CAAC,KAAK,EAAE;IACV,UAAU;IACV,UAAU;IACV,OAAO,iBAAiB,SAAS,UAAU,QAAQ,mBAAmB,KAAK,IAAI,iBAAiB,KAAK;GACvG,CAAC;EACH;CACF;CACA,IAAI;CACJ,IAAI,YAAY,qBAAqB,MAAM,OAAO,OAAO;CACzD,IAAI,KAAK,QAAQ,CAAC,SAAS,YAAY,CAAC,UAAU,SAAS,QAAQ,GAAG,OAAO;CAC7E,IAAI,CAAC,KAAK,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,KAAK,SAAS,OAAO;EACtD,OAAO,MAAM,SAAS;CACxB,CAAC,GAAG,OAAO;CACX,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;CAC7B,IAAI,CAAC,uBAAuB,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,UAAU,2CAA2C;CAC7G,MAAM,SAAS,KAAK,UAAU,QAAQ,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO,UAAU,KAAK,KAAK,MAAM,KAAK,UAAU,gBAAgB,KAAK,gBAAgB;CAChK,IAAI,QAAQ,CAAC;CACb,IAAI,IAAI,OAAO;CACf,IAAI,WAAW;CACf,OAAO,IAAI,KAAK,MAAM;CACtB,OAAO;EACL;EACA;CACF;AACF;AACA,SAAS,iBAAiB,MAAM,MAAM,SAAS,MAAM,OAAO,SAAS,aAAa;CAChF,IAAI,YAAY,aAAa;CAC7B,IAAI,YAAY,qBAAqB,MAAM,GAAG,UAAU,CAAC;CACzD,IAAI,UAAU;CACd,IAAI,UAAU,SAAS,SAAS,GAAG;EACjC,UAAU,cAAc,KAAK;CAC/B;CACA,IAAI,OAAO,UAAU;CACrB,MAAM,aAAa,KAAK,WAAW,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW,UAAU,KAAK,OAAO,MAAM,MAAM,MAAM,MAAM,KAAK,GAAG,IAAI;CACjJ,OAAO;EACL;EACA;EACA;EACA;EACA;CACF,CAAC,CAAC,UAAU,cAAc,KAAK,WAAW,QAAQ,gBAAgB,KAAK,IAAI,KAAK,IAAI,YAAY,IAAI,GAAG;CACvG,IAAI,SAAS,CAAC;CACd,MAAM,cAAc,KAAK,WAAW,QAAQ,gBAAgB,KAAK,IAAI,KAAK,IAAI,YAAY,UAAU,KAAK;EACvG,IAAI,UAAU,MAAM,MAAM,MAAM,MAAM,KAAK,GAAG;EAC9C,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;EACvF,IAAI;GACF,KAAK,IAAI,YAAY,MAAM,KAAK,MAAM,OAAO,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;IAC1L,IAAI,OAAO,MAAM;IACjB,IAAI,KAAK,SAAS,GAAG,OAAO,KAAK,IAAI;GACvC;EACF,SAAS,KAAK;GACZ,oBAAoB;GACpB,iBAAiB;EACnB,UAAU;GACR,IAAI;IACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;KAC1D,UAAU,OAAO;IACnB;GACF,UAAU;IACR,IAAI,mBAAmB;KACrB,MAAM;IACR;GACF;EACF;CACF,OAAO;EACL,OAAO;CACT;CACA,IAAI,KAAK,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,KAAK,SAAS,OAAO;EACrD,OAAO,MAAM,SAAS,aAAa,MAAM,SAAS;CACpD,CAAC,GAAG;EACF,UAAU,YAAY,QAAQ,YAAY,KAAK,IAAI,UAAU,cAAc,KAAK;CAClF;CACA,OAAO;EACL;EACA;EACA;EACA,SAAS;EACT;EACA,MAAM,CAAC;EACP;EACA;CACF;AACF;AACA,SAAS,iBAAiB,MAAM,MAAM,MAAM,OAAO,SAAS,QAAQ;CAClE,IAAI,UAAU,OAAO,KAAK,SAAS,OAAO;EACxC,OAAO,MAAM,SAAS;CACxB,CAAC,IAAI,WAAW,OAAO,KAAK,SAAS,OAAO;EAC1C,OAAO,MAAM,SAAS;CACxB,CAAC,IAAI,WAAW;CAChB,IAAI,SAAS;EACX,OAAO;GACL;GACA;GACA;GACA,QAAQ;GACR,SAAS,gBAAgB,KAAK;GAC9B,SAAS;GACT,OAAO,CAAC;EACV;CACF;CACA,IAAI,CAAC,SAAS;EACZ,OAAO;GACL;GACA;GACA;GACA,QAAQ;GACR,SAAS,QAAQ,KAAK;GACtB,SAAS;GACT,OAAO,CAAC;EACV;CACF;CACA,IAAI,WAAW,OAAO,IAAI,SAAS,OAAO;EACxC,OAAO,MAAM;CACf,CAAC;CACD,IAAI,CAAC,SAAS,SAAS,SAAS,KAAK,EAAE,SAAS,SAAS,WAAW,KAAK,SAAS,SAAS,WAAW,IAAI;EACxG,OAAO;GACL;GACA;GACA;GACA,QAAQ;GACR,SAAS,QAAQ,KAAK;GACtB;GACA,OAAO,CAAC;EACV;CACF;CACA,IAAI,iCAAiC,IAAI,IAAI;EAC3C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,IAAI,QAAQ,CAAC;CACb,IAAI,UAAU;CACd,IAAI,UAAU;CACd,IAAI,IAAI;CACR,IAAI,QAAQ;CACZ,OAAO,IAAI,KAAK,QAAQ;EACtB,IAAI,KAAK,EAAE,CAAC,SAAS,KAAK;GACxB;GACA;GACA;EACF;EACA,IAAI,KAAK,EAAE,CAAC,SAAS,KAAK;GACxB;GACA;GACA;EACF;EACA,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC,SAAS,QAAQ;GAC1C;GACA;EACF;EACA,IAAI,OAAO,IAAI;EACf,IAAI,QAAQ;EACZ,OAAO,OAAO,KAAK,QAAQ;GACzB,IAAI,QAAQ,KAAK,KAAK,CAAC;GACvB,IAAI,UAAU,MAAM,UAAU,OAAO,UAAU,UAAU,eAAe,IAAI,KAAK,IAAI;GACrF,IAAI,UAAU,OAAO,UAAU,OAAO,UAAU,KAAK;GACrD,IAAI,UAAU,OAAO,UAAU,OAAO,UAAU,KAAK;GACrD;GACA,IAAI,QAAQ,GAAG;EACjB;EACA,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;EACvF,IAAI;GACF,KAAK,IAAI,YAAY,MAAM,KAAK,MAAM,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;IACpL,IAAI,OAAO,MAAM;IACjB,IAAI;IACJ,IAAI;IACJ,IAAI,YAAY,QAAQ,SAAS,KAAK,QAAQ,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO,UAAU,QAAQ,SAAS,KAAK,IAAI,OAAO;IACrI,IAAI,CAAC,2BAA2B,KAAK,QAAQ,GAAG;IAChD,IAAI,KAAK,KAAK,SAAS,OAAO;KAC5B,OAAO,MAAM,SAAS;IACxB,CAAC,GAAG;KACF,UAAU,YAAY,QAAQ,YAAY,KAAK,IAAI,UAAU,QAAQ,KAAK;KAC1E;IACF;IACA,IAAI,KAAK,KAAK,SAAS,OAAO;KAC5B,OAAO,MAAM,SAAS;IACxB,CAAC,GAAG;KACF,UAAU,YAAY,QAAQ,YAAY,KAAK,IAAI,UAAU,QAAQ,KAAK;KAC1E;IACF;IACA,MAAM,KAAK;KACT,MAAM;KACN,OAAO,YAAY,WAAW,WAAW;IAC3C,CAAC;IACD;GACF;EACF,SAAS,KAAK;GACZ,oBAAoB;GACpB,iBAAiB;EACnB,UAAU;GACR,IAAI;IACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;KAC1D,UAAU,OAAO;IACnB;GACF,UAAU;IACR,IAAI,mBAAmB;KACrB,MAAM;IACR;GACF;EACF;EACA,IAAI;CACN;CACA,OAAO;EACL;EACA;EACA;EACA,QAAQ,YAAY;EACpB,SAAS,YAAY,QAAQ,YAAY,KAAK,IAAI,UAAU;EAC5D;EACA;CACF;AACF;AACA,SAAS,kBAAkB,MAAM,MAAM,MAAM,OAAO;CAClD,IAAI,QAAQ,CAAC;CACb,IAAI,IAAI;CACR,IAAI,4BAA4B,IAAI,IAAI;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,OAAO,IAAI,KAAK,UAAU,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC,IAAI,GAAG;EACtD,IAAI,KAAK,EAAE,CAAC,SAAS,KAAK;GACxB;GACA;EACF;EACA,IAAI,KAAK,EAAE,CAAC,SAAS,KAAK;GACxB,IAAI;GACJ,KAAK;GACL,MAAM,UAAU,KAAK,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,KAAK,IAAI,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI;GAC/H;EACF;EACA,IAAI,QAAQ,KAAK,EAAE,CAAC;EACpB,IAAI,CAAC,2BAA2B,KAAK,KAAK,GAAG;EAC7C,MAAM,KAAK;GACT,MAAM;GACN,OAAO;EACT,CAAC;EACD;EACA,OAAO,IAAI,KAAK,WAAW,KAAK,EAAE,CAAC,SAAS,OAAO,KAAK,EAAE,CAAC,SAAS,MAAM;GACxE,IAAI,MAAM,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,SAAS,MAAM,MAAM,GAAG,IAAI;EAC7E;CACF;CACA,OAAO;EACL;EACA;EACA,SAAS;EACT,QAAQ,MAAM,SAAS;EACvB,SAAS,MAAM,SAAS,IAAI,KAAK,cAAc,KAAK;EACpD,SAAS;EACT;CACF;AACF;AACA,IAAI,sCAAsC,IAAI,IAAI;CAChD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AACD,SAAS,kBAAkB,MAAM,QAAQ,OAAO;CAC9C,IAAI,QAAQ,WAAW;EACrB,IAAI;EACJ,IAAI,OAAO,KAAK,EAAE,CAAC;EACnB,IAAI,SAAS,KAAK;GAChB,IAAI,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI;GACrC,WAAW;GACX,OAAO;EACT;EACA,IAAI,oBAAoB,IAAI,IAAI,GAAG;GACjC,IAAI;GACJ,IAAI,OAAO,IAAI;GACf,IAAI,QAAQ;GACZ,IAAI,QAAQ;GACZ,OAAO,OAAO,KAAK;IACjB,IAAI,QAAQ,KAAK,KAAK,CAAC;IACvB,IAAI,UAAU,KAAK;SACd,IAAI,UAAU,KAAK;SACnB,IAAI,UAAU,KAAK;SACnB,IAAI,UAAU,KAAK;SACnB,IAAI,UAAU,OAAO,UAAU,KAAK,UAAU,GAAG;SACjD,IAAI,UAAU,OAAO,UAAU,KAAK,UAAU,GAAG;IACtD;GACF;GACA,MAAM,aAAa,KAAK,WAAW,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW,UAAU,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,GAAG,IAAI,IAAI,OAAO;GACtJ,WAAW;GACX,OAAO;EACT;EACA,IAAI,SAAS,SAAS,SAAS,OAAO;GACpC;GACA,OAAO;EACT;EACA,IAAI,WAAW,eAAe,MAAM,MAAM,GAAG,UAAU,KAAK,UAAU,OAAO,MAAM;EACnF,IAAI,EAAE,IAAI,KAAK,UAAU,YAAY,WAAW;EAChD,IAAI,SAAS;EACb,WAAW;EACX,IAAI,SAAS,YAAY,IAAI,SAAS,QAAQ,GAAG,OAAO;EACxD,IAAI,UAAU,IAAI,UAAU,SAAS,QAAQ,OAAO;GAClD,OAAO,IAAI,QAAQ,OAAO,OAAO,CAAC,iBAAiB,IAAI,MAAM;EAC/D,CAAC;EACD,IAAI,WAAW,GAAG;GAChB,KAAK,MAAM,IAAI,IAAI,IAAI,SAAS,GAAG,SAAS,aAAa,OAAO,KAAK,6CAA6C;EACpH;EACA,IAAI,IAAI,SAAS,SAAS,KAAK,IAAI,SAAS,aAAa,GAAG;GAC1D,IAAI,QAAQ,OAAO;GACnB,KAAK,MAAM,IAAI,WAAW,SAAS,aAAa,OAAO,KAAK,0CAA0C;EACxG;EACA,IAAI,WAAW,WAAW,GAAG,KAAK,MAAM,IAAI,UAAU,OAAO,KAAK,SAAS,SAAS,wBAAwB;EAC5G,IAAI,WAAW,OAAO,MAAM,YAAY,SAAS,KAAK;EACtD,OAAO,KAAK;GACV,MAAM;GACN,MAAM,SAAS;GACf,YAAY,WAAW,IAAI,SAAS,OAAO;IACzC,OAAO,MAAM;GACf,CAAC,CAAC,CAAC,KAAK,EAAE;GACV,UAAU;GACV,OAAO,iBAAiB,SAAS,UAAU,QAAQ,mBAAmB,KAAK,IAAI,iBAAiB,KAAK;EACvG,CAAC;CACH;CACA,IAAI,SAAS,CAAC;CACd,IAAI,OAAO,OAAO;CAClB,IAAI,MAAM,KAAK;CACf,IAAI,IAAI;CACR,IAAI,WAAW;CACf,OAAO,IAAI,KAAK,MAAM;CACtB,OAAO;AACT;AACA,SAAS,mBAAmB,MAAM,QAAQ,OAAO;CAC/C,IAAI,SAAS,CAAC;CACd,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,KAAK,IAAI,YAAY,OAAO,OAAO,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;GAC9J,IAAI,OAAO,MAAM;GACjB,IAAI,MAAM;GACV,IAAI;GACJ,IAAI,UAAU,KAAK,UAAU,SAAS,OAAO;IAC3C,OAAO,MAAM,SAAS,SAAS,MAAM,SAAS;GAChD,CAAC;GACD,IAAI,UAAU,GAAG,KAAK,MAAM,KAAK,IAAI,cAAc,OAAO,KAAK,wBAAwB;GACvF,IAAI,KAAK,KAAK,SAAS,OAAO;IAC5B,OAAO,MAAM,SAAS;GACxB,CAAC,GAAG;IACF,IAAI;IACJ,IAAI;IACJ,KAAK,MAAM,KAAK,IAAI,cAAc,OAAO,KAAK,UAAU,SAAS,UAAU,KAAK,UAAU,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,QAAQ,UAAU,KAAK,IAAI,QAAQ,GAAG,4CAA4C;GAC9O;GACA,IAAI,aAAa,QAAQ,SAAS,KAAK,UAAU,QAAQ,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO,UAAU,QAAQ,SAAS,KAAK,IAAI,OAAO;GAChJ,IAAI,CAAC,2BAA2B,KAAK,SAAS,GAAG;IAC/C,KAAK,MAAM,KAAK,UAAU,cAAc,OAAO,KAAK,mCAAmC;GACzF;GACA,IAAI,QAAQ,CAAC;GACb,IAAI,SAAS,CAAC;GACd,IAAI,QAAQ;GACZ,KAAK,IAAI,IAAI,UAAU,GAAG,IAAI,KAAK,QAAQ,KAAK;IAC9C,IAAI,QAAQ,KAAK,EAAE,CAAC;IACpB,IAAI,UAAU,OAAO,UAAU,OAAO,UAAU,KAAK;SAChD,IAAI,UAAU,OAAO,UAAU,OAAO,UAAU,KAAK;SACrD,IAAI,UAAU,KAAK,UAAU,OAAO,QAAQ,GAAG,QAAQ;SACvD,IAAI,UAAU,KAAK,UAAU,OAAO,SAAS,GAAG,SAAS;GAChE;GACA,IAAI,QAAQ,GAAG,KAAK,MAAM,KAAK,UAAU,cAAc,OAAO,KAAK,SAAS,UAAU,wBAAwB;GAC9G,IAAI,aAAa,KAAK,MAAM,QAAQ,GAAG,SAAS,IAAI,KAAK,SAAS,MAAM;GACxE,IAAI,WAAW,SAAS,IAAI,KAAK,IAAI,KAAK,MAAM,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,OAAO;IAC9E,OAAO,MAAM;GACf,CAAC,CAAC,CAAC,KAAK,EAAE;GACV,IAAI,WAAW,OAAO,MAAM,YAAY,UAAU,KAAK;GACvD,OAAO,KAAK;IACV,MAAM;IACN,MAAM,SAAS;IACf,YAAY,WAAW,IAAI,SAAS,OAAO;KACzC,OAAO,MAAM;IACf,CAAC,CAAC,CAAC,KAAK,EAAE;IACV,UAAU,UAAU;IACpB,OAAO,iBAAiB,SAAS,UAAU,QAAQ,mBAAmB,KAAK,IAAI,iBAAiB,KAAK;IACrG;GACF,CAAC;EACH;CACF,SAAS,KAAK;EACZ,oBAAoB;EACpB,iBAAiB;CACnB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;IAC1D,UAAU,OAAO;GACnB;EACF,UAAU;GACR,IAAI,mBAAmB;IACrB,MAAM;GACR;EACF;CACF;CACA,OAAO;AACT;AACA,SAAS,mBAAmB,MAAM,UAAU,OAAO,SAAS,OAAO,SAAS,OAAO;CACjF,IAAI,0BAA0B,IAAI,IAAI;CACtC,IAAI,QAAQ,CAAC;CACb,IAAI,YAAY,SAAS,WAAW,MAAM;EACxC,IAAI,CAAC,MAAM;EACX,IAAI,KAAK,SAAS,YAAY,KAAK,SAAS,QAAQ;GAClD,IAAI,CAAC,QAAQ,IAAI,KAAK,IAAI,GAAG;IAC3B,QAAQ,IAAI,KAAK,IAAI;IACrB,IAAI,KAAK,SAAS,UAAU,MAAM,KAAK,KAAK,IAAI;GAClD;EACF,OAAO,IAAI,KAAK,SAAS,SAAS,UAAU,KAAK,OAAO;OACnD,IAAI,KAAK,SAAS,OAAO,UAAU,KAAK,KAAK;OAC7C,IAAI,KAAK,SAAS,YAAY,UAAU,KAAK,KAAK;CACzD;CACA,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,KAAK,IAAI,YAAY,QAAQ,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;GACxJ,IAAI,SAAS,MAAM;GACnB,IAAI,6BAA6B,MAAM,qBAAqB,OAAO,kBAAkB,KAAK;GAC1F,IAAI;IACF,KAAK,IAAI,aAAa,OAAO,QAAQ,OAAO,SAAS,CAAC,GAAG,QAAQ,EAAE,8BAA8B,SAAS,WAAW,KAAK,EAAC,CAAE,OAAO,6BAA6B,MAAM;KACrK,IAAI,SAAS,OAAO;KACpB,IAAI;KACJ,IAAI;KACJ,IAAI,6BAA6B,MAAM,qBAAqB,OAAO,kBAAkB,KAAK;KAC1F,IAAI;MACF,KAAK,IAAI,aAAa,OAAO,WAAW,OAAO,SAAS,CAAC,GAAG,QAAQ,EAAE,8BAA8B,SAAS,WAAW,KAAK,EAAC,CAAE,OAAO,6BAA6B,MAAM;OACxK,IAAI,QAAQ,OAAO;OACnB,UAAU,MAAM,IAAI;MACtB;KACF,SAAS,KAAK;MACZ,qBAAqB;MACrB,kBAAkB;KACpB,UAAU;MACR,IAAI;OACF,IAAI,CAAC,8BAA8B,WAAW,UAAU,MAAM;QAC5D,WAAW,OAAO;OACpB;MACF,UAAU;OACR,IAAI,oBAAoB;QACtB,MAAM;OACR;MACF;KACF;KACA,UAAU,OAAO,UAAU;KAC3B,IAAI,6BAA6B,MAAM,qBAAqB,OAAO,kBAAkB,KAAK;KAC1F,IAAI;MACF,KAAK,IAAI,eAAe,QAAQ,uBAAuB,OAAO,kBAAkB,QAAQ,yBAAyB,KAAK,IAAI,KAAK,IAAI,qBAAqB,aAAa,QAAQ,SAAS,KAAK,IAAI,OAAO,CAAC,EAAC,CAAE,OAAO,SAAS,CAAC,GAAG,QAAQ,EAAE,8BAA8B,SAAS,WAAW,KAAK,EAAC,CAAE,OAAO,6BAA6B,MAAM;OAC1U,IAAI,MAAM,OAAO;OACjB,UAAU,IAAI,IAAI;MACpB;KACF,SAAS,KAAK;MACZ,qBAAqB;MACrB,kBAAkB;KACpB,UAAU;MACR,IAAI;OACF,IAAI,CAAC,8BAA8B,WAAW,UAAU,MAAM;QAC5D,WAAW,OAAO;OACpB;MACF,UAAU;OACR,IAAI,oBAAoB;QACtB,MAAM;OACR;MACF;KACF;IACF;GACF,SAAS,KAAK;IACZ,qBAAqB;IACrB,kBAAkB;GACpB,UAAU;IACR,IAAI;KACF,IAAI,CAAC,8BAA8B,WAAW,UAAU,MAAM;MAC5D,WAAW,OAAO;KACpB;IACF,UAAU;KACR,IAAI,oBAAoB;MACtB,MAAM;KACR;IACF;GACF;EACF;CACF,SAAS,KAAK;EACZ,oBAAoB;EACpB,iBAAiB;CACnB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;IAC1D,UAAU,OAAO;GACnB;EACF,UAAU;GACR,IAAI,mBAAmB;IACrB,MAAM;GACR;EACF;CACF;CACA,IAAI,6BAA6B,MAAM,qBAAqB,OAAO,kBAAkB,KAAK;CAC1F,IAAI;EACF,KAAK,IAAI,aAAa,MAAM,OAAO,SAAS,CAAC,GAAG,QAAQ,EAAE,8BAA8B,SAAS,WAAW,KAAK,EAAC,CAAE,OAAO,6BAA6B,MAAM;GAC5J,IAAI,OAAO,OAAO;GAClB,IAAI,6BAA6B,MAAM,qBAAqB,OAAO,kBAAkB,KAAK;GAC1F,IAAI;IACF,KAAK,IAAI,aAAa,KAAK,MAAM,OAAO,SAAS,CAAC,GAAG,QAAQ,EAAE,8BAA8B,SAAS,WAAW,KAAK,EAAC,CAAE,OAAO,6BAA6B,MAAM;KACjK,IAAI,OAAO,OAAO;KAClB,IAAI;KACJ,UAAU,KAAK,IAAI;KACnB,IAAI,6BAA6B,MAAM,qBAAqB,OAAO,kBAAkB,KAAK;KAC1F,IAAI;MACF,KAAK,IAAI,eAAe,iBAAiB,KAAK,cAAc,QAAQ,mBAAmB,KAAK,IAAI,iBAAiB,CAAC,EAAC,CAAE,OAAO,SAAS,CAAC,GAAG,QAAQ,EAAE,8BAA8B,SAAS,WAAW,KAAK,EAAC,CAAE,OAAO,6BAA6B,MAAM;OACrP,IAAI,OAAO,OAAO;OAClB,UAAU,KAAK,IAAI;MACrB;KACF,SAAS,KAAK;MACZ,qBAAqB;MACrB,kBAAkB;KACpB,UAAU;MACR,IAAI;OACF,IAAI,CAAC,8BAA8B,WAAW,UAAU,MAAM;QAC5D,WAAW,OAAO;OACpB;MACF,UAAU;OACR,IAAI,oBAAoB;QACtB,MAAM;OACR;MACF;KACF;IACF;GACF,SAAS,KAAK;IACZ,qBAAqB;IACrB,kBAAkB;GACpB,UAAU;IACR,IAAI;KACF,IAAI,CAAC,8BAA8B,WAAW,UAAU,MAAM;MAC5D,WAAW,OAAO;KACpB;IACF,UAAU;KACR,IAAI,oBAAoB;MACtB,MAAM;KACR;IACF;GACF;EACF;CACF,SAAS,KAAK;EACZ,qBAAqB;EACrB,kBAAkB;CACpB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,8BAA8B,WAAW,UAAU,MAAM;IAC5D,WAAW,OAAO;GACpB;EACF,UAAU;GACR,IAAI,oBAAoB;IACtB,MAAM;GACR;EACF;CACF;CACA,IAAI,SAAS,IAAI,IAAI,QAAQ,IAAI,SAAS,OAAO;EAC/C,OAAO,CACL,MAAM,MACN,KACF;CACF,CAAC,CAAC;CACF,IAAI,yBAAyB,IAAI,IAAI;CACrC,OAAO,MAAM,SAAS,GAAG;EACvB,IAAI,OAAO,MAAM,IAAI;EACrB,IAAI,OAAO,IAAI,IAAI,GAAG;EACtB,IAAI,OAAO,OAAO,IAAI,IAAI;EAC1B,IAAI,CAAC,MAAM;EACX,IAAI,SAAS,aAAa,UAAU,kBAAkB,MAAM,MAAM,KAAK,IAAI,mBAAmB,MAAM,MAAM,KAAK;EAC/G,OAAO,IAAI,MAAM,MAAM;EACvB,IAAI,6BAA6B,MAAM,qBAAqB,OAAO,kBAAkB,KAAK;EAC1F,IAAI;GACF,KAAK,IAAI,aAAa,OAAO,OAAO,SAAS,CAAC,GAAG,QAAQ,EAAE,8BAA8B,SAAS,WAAW,KAAK,EAAC,CAAE,OAAO,6BAA6B,MAAM;IAC7J,IAAI,QAAQ,OAAO;IACnB,UAAU,MAAM,IAAI;GACtB;EACF,SAAS,KAAK;GACZ,qBAAqB;GACrB,kBAAkB;EACpB,UAAU;GACR,IAAI;IACF,IAAI,CAAC,8BAA8B,WAAW,UAAU,MAAM;KAC5D,WAAW,OAAO;IACpB;GACF,UAAU;IACR,IAAI,oBAAoB;KACtB,MAAM;IACR;GACF;EACF;CACF;CACA,OAAO;EACL,SAAS,QAAQ,OAAO,SAAS,OAAO;GACtC,OAAO,QAAQ,IAAI,MAAM,IAAI;EAC/B,CAAC,CAAC,CAAC,IAAI,SAAS,OAAO;GACrB,IAAI;GACJ,OAAO;IACL,MAAM,MAAM;IACZ,SAAS,cAAc,OAAO,IAAI,MAAM,IAAI,OAAO,QAAQ,gBAAgB,KAAK,IAAI,cAAc,CAAC;GACrG;EACF,CAAC;EACD,OAAO,MAAM,OAAO,SAAS,OAAO;GAClC,OAAO,QAAQ,IAAI,MAAM,IAAI;EAC/B,CAAC,CAAC,CAAC,IAAI,SAAS,OAAO;GACrB,OAAO;IACL,MAAM,MAAM;IACZ,SAAS,MAAM;IACf,OAAO,MAAM;GACf;EACF,CAAC;CACH;AACF;AACA,SAAS,kBAAkB,MAAM,MAAM,UAAU,aAAa;CAC5D,IAAI,UAAU,CAAC;CACf,IAAI,QAAQ,CAAC;CACb,IAAI,QAAQ;CACZ,IAAI,IAAI;CACR,OAAO,IAAI,KAAK,QAAQ;EACtB,IAAI,QAAQ,SAAS,SAAS;EAC9B,IAAI,OAAO,KAAK,EAAE,CAAC;EACnB,IAAI,SAAS,KAAK;GAChB;GACA;GACA;EACF;EACA,IAAI,SAAS,KAAK;GAChB;GACA;GACA;EACF;EACA,IAAI,UAAU,GAAG;GACf;GACA;EACF;EACA,IAAI,gBAAgB,aAAa,WAAW,SAAS;EACrD,IAAI,cAAc,aAAa,WAAW,SAAS;EACnD,IAAI,cAAc,aAAa,YAAY,SAAS,aAAa,SAAS,KAAK,IAAI,QAAQ,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO,UAAU;EACjJ,IAAI,eAAe,aAAa,YAAY,SAAS,aAAa,UAAU,KAAK,IAAI,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU;EACrJ,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,eAAe,CAAC,cAAc;GACnE;GACA;EACF;EACA,IAAI,QAAQ,UAAU,KAAK,IAAI,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ;EACrF,IAAI,CAAC,QAAQ,CAAC,2BAA2B,KAAK,IAAI,GAAG;GACnD;GACA;EACF;EACA,IAAI,QAAQ,KAAK,IAAI;EACrB,IAAI,YAAY,UAAU,KAAK,IAAI,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU;EACnG,IAAI,aAAa;GACf,IAAI,YAAY,aAAa;GAC7B,IAAI,YAAY,iBAAiB,MAAM,MAAM,GAAG,MAAM,OAAO,SAAS,WAAW;GACjF,IAAI,OAAO,IAAI;GACf,MAAM,aAAa,KAAK,WAAW,QAAQ,eAAe,KAAK,IAAI,KAAK,IAAI,WAAW,UAAU,KAAK,OAAO,MAAM,MAAM,MAAM,MAAM,KAAK,GAAG,IAAI;GACjJ,OAAO;IACL;IACA;IACA;IACA;IACA;GACF,CAAC,CAAC,UAAU,cAAc,KAAK,WAAW,QAAQ,gBAAgB,KAAK,IAAI,KAAK,IAAI,YAAY,IAAI,GAAG;GACvG,MAAM,cAAc,KAAK,WAAW,QAAQ,gBAAgB,KAAK,IAAI,KAAK,IAAI,YAAY,UAAU,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,GAAG,IAAI,IAAI,IAAI;GACtJ,IAAI,WAAW,QAAQ,KAAK,SAAS;GACrC;EACF;EACA,IAAI,OAAO,IAAI;EACf,IAAI,QAAQ;EACZ,IAAI,QAAQ;EACZ,OAAO,OAAO,KAAK,QAAQ;GACzB,IAAI,QAAQ,KAAK,KAAK,CAAC;GACvB,IAAI,UAAU,KAAK;QACd,IAAI,UAAU,KAAK;QACnB,IAAI,UAAU,KAAK;QACnB,IAAI,UAAU,KAAK;QACnB,IAAI,UAAU,OAAO,UAAU,KAAK,UAAU,GAAG;GACtD;EACF;EACA,IAAI,QAAQ,KAAK,QAAQ;GACvB;GACA;EACF;EACA,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,GAAG;EAC1C,IAAI,SAAS,KAAK,MAAM,IAAI,GAAG,IAAI;EACnC,IAAI,eAAe;GACjB,IAAI,WAAW,OAAO,IAAI,SAAS,OAAO;IACxC,OAAO,MAAM;GACf,CAAC;GACD,IAAI,YAAY,qBAAqB,MAAM,GAAG,CAAC;GAC/C,QAAQ,KAAK;IACX;IACA;IACA;IACA,SAAS,SAAS,SAAS,SAAS,KAAK,SAAS,SAAS,WAAW,KAAK,SAAS,SAAS,WAAW;IACxG,SAAS,UAAU,SAAS,SAAS,KAAK,UAAU,SAAS,aAAa,IAAI,UAAU,KAAK,yDAAyD;IACtJ,MAAM,KAAK,MAAM,OAAO,GAAG,GAAG;IAC9B,QAAQ,CAAC;IACT,aAAa,KAAK;GACpB,CAAC;EACH,OAAO;GACL,MAAM,KAAK,aAAa,UAAU,iBAAiB,MAAM,KAAK,MAAM,OAAO,GAAG,GAAG,GAAG,MAAM,OAAO,SAAS,MAAM,IAAI,kBAAkB,MAAM,KAAK,MAAM,OAAO,GAAG,GAAG,GAAG,MAAM,KAAK,CAAC;EACrL;EACA,IAAI,MAAM;CACZ;CACA,OAAO;EACL;EACA;EACA,OAAO;GACL,SAAS,IAAI,IAAI,QAAQ,IAAI,SAAS,OAAO;IAC3C,OAAO,CACL,MAAM,MACN;KACE,SAAS,MAAM;KACf,SAAS,MAAM;KACf,SAAS,MAAM;IACjB,CACF;GACF,CAAC,CAAC;GACF,OAAO,IAAI,IAAI,MAAM,IAAI,SAAS,OAAO;IACvC,OAAO,CACL,MAAM,MACN;KACE,QAAQ,MAAM;KACd,SAAS,MAAM;IACjB,CACF;GACF,CAAC,CAAC;EACJ;CACF;AACF;AACA,SAAS,eAAe,MAAM,MAAM,SAAS,OAAO,OAAO;CACzD,IAAI,QAAQ,SAAS;CACrB,IAAI,YAAY,qBAAqB,MAAM,OAAO,OAAO;CACzD,IAAI,CAAC,UAAU,KAAK,SAAS,OAAO,OAAO;EACzC,OAAO,UAAU,OAAO,UAAU,QAAQ,OAAO;CACnD,CAAC,GAAG,OAAO;CACX,IAAI,UAAU,SAAS,SAAS,KAAK,UAAU,SAAS,UAAU,GAAG,OAAO;CAC5E,IAAI,QAAQ,SAAS,KAAK,UAAU,QAAQ,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO;CACxF,IAAI,CAAC,QAAQ,CAAC,uBAAuB,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,UAAU,iDAAiD;CAC5H,MAAM,UAAU,KAAK,UAAU,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,KAAK,KAAK,MAAM,KAAK,UAAU,kDAAkD;CAChL,IAAI,UAAU,MAAM,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG;CACrD,MAAM,UAAU,KAAK,UAAU,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,KAAK,KAAK,MAAM,KAAK,UAAU,IAAI,cAAc,KAAK,kBAAkB;CACvK,IAAI,QAAQ,KAAK,MAAM,UAAU,GAAG,OAAO;CAC3C,IAAI,QAAQ,MAAM,WAAW,IAAI,CAAC,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,SAAS,MAAM;EAC7E,IAAI,KAAK,WAAW,GAAG,OAAO,CAAC;EAC/B,IAAI,OAAO,SAAS,MAAM,MAAM,KAAK;EACrC,OAAO,OAAO,CACZ,IACF,IAAI,CAAC;CACP,CAAC;CACD,OAAO;EACL;EACA;CACF;AACF;AACA,SAAS,qBAAqB,MAAM,QAAQ;CAC1C,IAAI,QAAQ,WAAW;EACrB,IAAI;EACJ,IAAI,OAAO,KAAK,EAAE,CAAC;EACnB,IAAI,eAAe,aAAa,UAAU,SAAS,WAAW,SAAS,WAAW,SAAS;EAC3F,IAAI,aAAa,YAAY,SAAS,OAAO;GAC3C,IAAI,OAAO,eAAe,MAAM,MAAM,GAAG,UAAU,KAAK;GACxD,IAAI,MAAM;IACR,IAAI,MAAM,KAAK,SAAS,OAAO;KAC7B,OAAO,MAAM,SAAS,KAAK;IAC7B,CAAC,GAAG,KAAK,MAAM,KAAK,IAAI,yBAAyB,KAAK,KAAK,gBAAgB;IAC3E,MAAM,KAAK,IAAI;GACjB;GACA;GACA,OAAO;EACT;EACA,IAAI,CAAC,cAAc;GACjB,IAAI,SAAS,KAAK;IAChB,IAAI,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI;IACrC,WAAW;GACb,OAAO;GACP,OAAO;EACT;EACA,IAAI,QAAQ,SAAS,KAAK,IAAI,QAAQ,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO;EAClF,IAAI,CAAC,MAAM,KAAK,MAAM,KAAK,IAAI,yBAAyB;EACxD,IAAI,OAAO,IAAI;EACf,OAAO,OAAO,KAAK,UAAU,KAAK,KAAK,CAAC,SAAS,KAAK;EACtD,IAAI,SAAS,KAAK,QAAQ,KAAK,MAAM,KAAK,IAAI,yBAAyB;EACvE,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,GAAG;EAC1C,IAAI,SAAS,KAAK,MAAM,UAAU,CAAC,CAAC,CAAC,IAAI,SAAS,OAAO;GACvD,OAAO,MAAM;EACf,CAAC;EACD,IAAI,aAAa,WAAW,OAAO,KAAK,SAAS,OAAO,OAAO;GAC7D,OAAO,UAAU,OAAO,OAAO,QAAQ,OAAO;EAChD,CAAC,GAAG;GACF,cAAc;EAChB;EACA,IAAI,WAAW,KAAK,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,SAAS,OAAO;GACzD,OAAO,MAAM;EACf,CAAC;EACD,IAAI,SAAS,SAAS,aAAa,UAAU,gBAAgB,WAAW,GAAG;GACzE,QAAQ,KAAK;IACX;IACA,SAAS,QAAQ,MAAM,MAAM,MAAM,KAAK,UAAU,KAAK;GACzD,CAAC;EACH;EACA,IAAI,QAAQ,aAAa,UAAU,UAAU,MAAM,MAAM,GAAG,UAAU,MAAM,KAAK,KAAK,IAAI;EAC1F,IAAI,OAAO,MAAM,KAAK,KAAK;EAC3B,IAAI,MAAM;EACV,WAAW;CACb;CACA,IAAI;CACJ,IAAI,WAAW,KAAK,SAAS,QAAQ,IAAI,UAAU,KAAK,SAAS,KAAK,IAAI,WAAW,KAAK;CAC1F,IAAI,CAAC,UAAU,MAAM,IAAI,MAAM,GAAG,KAAK,uCAAuC;CAC9E,IAAI,OAAO,OAAO,MAAM,MAAM;CAC9B,IAAI,eAAe,aAAa,WAAW,KAAK,UAAU,SAAS,OAAO;EACxE,OAAO,MAAM,SAAS;CACxB,CAAC,IAAI,CAAC;CACN,IAAI,cAAc,eAAe,IAAI,CAAC,IAAI,KAAK,MAAM,eAAe,CAAC,CAAC,CAAC,OAAO,SAAS,OAAO;EAC5F,OAAO,MAAM,SAAS,KAAK,aAAa,CAAC;CAC3C,CAAC;CACD,SAAS,kBAAkB,YAAY,GAAG,CAAC,CAAC,OAAO,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB,UAAU,KAAK,YAAY,IAAI;CAChJ,IAAI,cAAc,eAAe,IAAI,KAAK,IAAI,YAAY,IAAI,SAAS,OAAO;EAC5E,OAAO,MAAM;CACf,CAAC,CAAC,CAAC,KAAK,EAAE;CACV,IAAI,eAAe,CAAC,sDAAsD,KAAK,WAAW,GAAG;EAC3F,KAAK,MAAM,KAAK,eAAe,8BAA8B,aAAa;CAC5E;CACA,IAAI,YAAY,kBAAkB,MAAM,MAAM,UAAU,WAAW;CACnE,IAAI,QAAQ,UAAU;CACtB,IAAI,UAAU,CAAC;CACf,IAAI,QAAQ,CAAC;CACb,IAAI,cAAc;CAClB,IAAI,IAAI;CACR,IAAI,WAAW;CACf,OAAO,IAAI,KAAK,QAAQ,MAAM;CAC9B,IAAI,YAAY,mBAAmB,MAAM,UAAU,OAAO,UAAU,SAAS,UAAU,OAAO,SAAS,KAAK;CAC5G,IAAI,UAAU,UAAU;CACxB,IAAI,QAAQ,UAAU;CACtB,IAAI,YAAY,KAAK,UAAU;EAC7B;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CACD,IAAI,OAAO,WAAW,QAAQ,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,OAAO,KAAK;CAC9D,IAAI,eAAe,QAAQ,IAAI,SAAS,QAAQ;EAC9C,OAAO,oBAAoB,OAAO,KAAK,IAAI,OAAO,OAAO,IAAI,SAAS,OAAO;GAC3E,OAAO,IAAI,MAAM,OAAO,MAAM,WAAW,MAAM,GAAG,IAAI,MAAM,KAAK;EACnE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;CACd,CAAC;CACD,aAAa,KAAK,GAAG,MAAM,IAAI,SAAS,MAAM;EAC5C,OAAO,eAAe,KAAK,KAAK,KAAK,KAAK,MAAM,IAAI,SAAS,OAAO;GAClE,OAAO,OAAO,MAAM,UAAU,WAAW,KAAK,UAAU,MAAM,KAAK,IAAI,OAAO,MAAM,KAAK;EAC3F,CAAC,CAAC,CAAC,KAAK,KAAK;CACf,CAAC,CAAC;CACF,aAAa,KAAK,GAAG,QAAQ,IAAI,SAAS,QAAQ;EAChD,OAAO;GACL,wBAAwB,OAAO,KAAK;GACpC,GAAG,OAAO,QAAQ,IAAI,SAAS,QAAQ;IACrC,OAAO,OAAO,eAAe,KAAK,OAAO,KAAK,cAAc,OAAO,aAAa,QAAQ,IAAI,SAAS,KAAK,OAAO;KAC/G,OAAO,QAAQ,MAAM,IAAI,IAAI;IAC/B,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,0BAA0B,KAAK,OAAO,KAAK,GAAG,OAAO,WAAW,IAAI,SAAS,OAAO;KAChG,OAAO,GAAG,MAAM,KAAK,IAAI,MAAM;IACjC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,aAAa,OAAO,OAAO;GAC3C,CAAC;GACD;EACF,CAAC,CAAC,KAAK,IAAI;CACb,CAAC,CAAC;CACF,aAAa,KAAK,GAAG,MAAM,IAAI,SAAS,MAAM;EAC5C,OAAO,2BAA2B,KAAK,KAAK,WAAW,KAAK,MAAM,IAAI,SAAS,MAAM;GACnF,OAAO,IAAI,KAAK,OAAO,KAAK,WAAW,MAAM,GAAG,IAAI,KAAK;EAC3D,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;CACf,CAAC,CAAC;CACF,IAAI,aAAa;EACf,aAAa,QAAQ,oFAAoF;CAC3G;CACA,IAAI,eAAe,MAAM,SAAS,GAAG,aAAa,QAAQ,2CAA2C;CACrG,IAAI,cAAc,GAAG,mBAAmB,aAAa,KAAK,MAAM,EAAE;;CAElE,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;AACA,SAAS,eAAe,MAAM,MAAM;CAClC,IAAI,OAAO,SAAS,MAAM,IAAI,CAAC,CAAC,WAAW,MAAM,GAAG;CACpD,IAAI,KAAK,WAAW,KAAK,KAAK,CAAC,KAAK,SAAS,KAAK,GAAG;EACnD,MAAM,IAAI,MAAM,GAAG,KAAK,gCAAgC,MAAM;CAChE;CACA,OAAO,KAAK,WAAW,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,GAAG,EAAE;AACzE;AACA,SAAS,iBAAiB,MAAM,QAAQ;CACtC,IAAI;CACJ,IAAI,OAAO,OAAO,MAAM,MAAM;CAC9B,IAAI,wBAAwB,IAAI,IAAI;CACpC,IAAI,qBAAqB;CACzB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;EACpC,IAAI,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS;EACzD,IAAI,KAAK,EAAE,CAAC,SAAS,SAAS,SAAS,KAAK,IAAI,QAAQ,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO,UAAU,eAAe,UAAU,KAAK,IAAI,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,KAAK;GACnN,KAAK,MAAM,KAAK,IAAI,8DAA8D;EACpF;EACA,IAAI,KAAK,EAAE,CAAC,SAAS,SAAS,UAAU,KAAK,IAAI,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,yBAAyB,UAAU,KAAK,IAAI,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,KAAK;GAChO,IAAI;GACJ,IAAI,SAAS;GACb,IAAI,OAAO,WAAW,MAAM,QAAQ,UAAU,KAAK,IAAI,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,QAAQ,SAAS,KAAK,IAAI,OAAO,EAAE;GAC1J,MAAM,UAAU,KAAK,IAAI,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,OAAO,CAAC,MAAM,KAAK,MAAM,KAAK,IAAI,iCAAiC;GAC5J,MAAM,IAAI,OAAO,KAAK,EAAE,CAAC;EAC3B;EACA,IAAI,KAAK,EAAE,CAAC,SAAS,0BAA0B,UAAU,KAAK,IAAI,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,KAAK;GACrI,IAAI;GACJ,IAAI,UAAU,IAAI;GAClB,MAAM,gBAAgB,KAAK,cAAc,QAAQ,kBAAkB,KAAK,IAAI,KAAK,IAAI,cAAc,UAAU,KAAK,KAAK,MAAM,KAAK,IAAI,kCAAkC;GACxK,IAAI,SAAS,MAAM,MAAM,MAAM,SAAS,KAAK,GAAG;GAChD,KAAK,IAAI,IAAI,SAAS,IAAI,QAAQ,KAAK;IACrC,IAAI;IACJ,IAAI;IACJ,IAAI,KAAK,EAAE,CAAC,SAAS,OAAO,SAAS,MAAM,SAAS,UAAU,KAAK,IAAI,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,QAAQ,UAAU,KAAK,IAAI,QAAQ,EAAE,GAAG;KAC7K,MAAM,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;IAC7C;GACF;EACF;EACA,IAAI,KAAK,EAAE,CAAC,SAAS,SAAS,UAAU,KAAK,IAAI,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,wBAAwB,UAAU,KAAK,IAAI,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,UAAU,KAAK;GAC/N,IAAI;GACJ,MAAM,WAAW,KAAK,IAAI,QAAQ,QAAQ,aAAa,KAAK,IAAI,KAAK,IAAI,SAAS,UAAU,aAAa,KAAK,MAAM,KAAK,IAAI,qCAAqC;GAClK,qBAAqB;EACvB;CACF;CACA,IAAI,MAAM,OAAO,GAAG,MAAM,IAAI,MAAM,GAAG,KAAK,iDAAiD,CAC3F,GAAG,KACL,CAAC,CAAC,KAAK,IAAI,GAAG;CACd,IAAI,gBAAgB,2BAA2B,MAAM,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,QAAQ,6BAA6B,KAAK,IAAI,2BAA2B;CACzJ,IAAI,iBAAiB,KAAK,iBAAiB,GAAG;EAC5C,MAAM,IAAI,MAAM,GAAG,KAAK,qCAAqC,cAAc;CAC7E;CACA,OAAO;EACL;EACA;CACF;AACF;AACA,SAAS,6BAA6B,MAAM;CAC1C,IAAI,WAAW,qBAAqB,MAAM,aAAa,MAAM,MAAM,CAAC;CACpE,IAAI,YAAY,SAAS,aAAa,UAAU,WAAW;CAC3D,IAAI,cAAc,KAAK,QAAQ,IAAI,GAAG,GAAG,SAAS,MAAM,SAAS,EAAE,IAAI,UAAU,IAAI;CACrF,IAAI,SAAS,QAAQ,WAAW,KAAK,SAAS,MAAM,WAAW,KAAK,CAAC,SAAS,aAAa;EACzF,IAAI,WAAW,WAAW,KAAK,aAAa,aAAa,MAAM,CAAC,CAAC,WAAW,gBAAgB,GAAG;GAC7F,OAAO,aAAa,EAClB,OAAO,KACT,CAAC;EACH;EACA,OAAO;CACT;CACA,mBAAmB,aAAa,SAAS,WAAW;CACpD,OAAO;AACT;AACA,SAAS,8BAA8B,MAAM;CAC3C,IAAI,YAAY,CAAC;CACjB,IAAI,QAAQ,SAAS,OAAO,KAAK;EAC/B,IAAI,6BAA6B,MAAM,qBAAqB,OAAO,kBAAkB,KAAK;EAC1F,IAAI;GACF,KAAK,IAAI,aAAa,YAAY,KAAK,EACrC,eAAe,KACjB,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,GAAG,QAAQ,EAAE,8BAA8B,SAAS,WAAW,KAAK,EAAC,CAAE,OAAO,6BAA6B,MAAM;IACnI,IAAI,QAAQ,OAAO;IACnB,IAAI,MAAM,KAAK,WAAW,GAAG,KAAK,iBAAiB,IAAI,MAAM,IAAI,GAAG;IACpE,IAAI,OAAO,KAAK,KAAK,MAAM,IAAI;IAC/B,IAAI,MAAM,YAAY,GAAG,MAAM,IAAI;SAC9B,IAAI,MAAM,OAAO,KAAK,gBAAgB,KAAK,MAAM,IAAI,KAAK,MAAM,SAAS,iBAAiB;KAC7F,UAAU,KAAK,6BAA6B,IAAI,CAAC;IACnD;GACF;EACF,SAAS,KAAK;GACZ,qBAAqB;GACrB,kBAAkB;EACpB,UAAU;GACR,IAAI;IACF,IAAI,CAAC,8BAA8B,WAAW,UAAU,MAAM;KAC5D,WAAW,OAAO;IACpB;GACF,UAAU;IACR,IAAI,oBAAoB;KACtB,MAAM;IACR;GACF;EACF;CACF;CACA,MAAM,IAAI;CACV,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,KAAK,IAAI,YAAY,wBAAwB,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;GACvL,IAAI,aAAa,MAAM;GACvB,2BAA2B,UAAU;EACvC;CACF,SAAS,KAAK;EACZ,oBAAoB;EACpB,iBAAiB;CACnB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;IAC1D,UAAU,OAAO;GACnB;EACF,UAAU;GACR,IAAI,mBAAmB;IACrB,MAAM;GACR;EACF;CACF;CACA,OAAO;AACT;AACA,SAAS,2BAA2B,YAAY;CAC9C,IAAI,YAAY,CAAC;CACjB,IAAI,QAAQ,CAAC;CACb,IAAI,UAAU,CAAC;CACf,IAAI,QAAQ,CAAC;CACb,IAAI,mBAAmB,CAAC;CACxB,IAAI,QAAQ,SAAS,OAAO,KAAK;EAC/B,IAAI,UAAU,YAAY,KAAK,EAC7B,eAAe,KACjB,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,GAAG;GACrB,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,IAAI;EACtD,CAAC;EACD,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;EACvF,IAAI;GACF,KAAK,IAAI,YAAY,QAAQ,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;IACxJ,IAAI,QAAQ,MAAM;IAClB,IAAI,MAAM,KAAK,WAAW,GAAG,KAAK,iBAAiB,IAAI,MAAM,IAAI,GAAG;IACpE,IAAI,OAAO,KAAK,KAAK,MAAM,IAAI;IAC/B,IAAI,MAAM,YAAY,GAAG,MAAM,IAAI;SAC9B,IAAI,MAAM,OAAO,KAAK,MAAM,KAAK,SAAS,QAAQ,KAAK,MAAM,SAAS,iBAAiB;KAC1F,IAAI,WAAW,6BAA6B,IAAI;KAChD,UAAU,KAAK,QAAQ;KACvB,IAAI,OAAO,SAAS,YAAY,IAAI,CAAC,CAAC,WAAW,MAAM,GAAG;KAC1D,MAAM,QAAQ,CACZ,GAAG,SAAS,SACZ,GAAG,SAAS,KACd,CAAC,CAAC,IAAI,SAAS,QAAQ;MACrB,OAAO,OAAO;KAChB,CAAC;KACD,IAAI,6BAA6B,MAAM,qBAAqB,OAAO,kBAAkB,KAAK;KAC1F,IAAI;MACF,KAAK,IAAI,aAAa,SAAS,QAAQ,OAAO,SAAS,CAAC,GAAG,QAAQ,EAAE,8BAA8B,SAAS,WAAW,KAAK,EAAC,CAAE,OAAO,6BAA6B,MAAM;OACvK,IAAI,SAAS,OAAO;OACpB,QAAQ,OAAO,QAAQ,OAAO,QAAQ,IAAI,SAAS,QAAQ;QACzD,OAAO,OAAO;OAChB,CAAC;MACH;KACF,SAAS,KAAK;MACZ,qBAAqB;MACrB,kBAAkB;KACpB,UAAU;MACR,IAAI;OACF,IAAI,CAAC,8BAA8B,WAAW,UAAU,MAAM;QAC5D,WAAW,OAAO;OACpB;MACF,UAAU;OACR,IAAI,oBAAoB;QACtB,MAAM;OACR;MACF;KACF;KACA,IAAI,6BAA6B,MAAM,qBAAqB,OAAO,kBAAkB,KAAK;KAC1F,IAAI;MACF,KAAK,IAAI,aAAa,SAAS,MAAM,OAAO,SAAS,CAAC,GAAG,QAAQ,EAAE,8BAA8B,SAAS,WAAW,KAAK,EAAC,CAAE,OAAO,6BAA6B,MAAM;OACrK,IAAI,OAAO,OAAO;OAClB,MAAM,KAAK,QAAQ,KAAK,MAAM,IAAI,SAAS,MAAM;QAC/C,OAAO,KAAK;OACd,CAAC;MACH;KACF,SAAS,KAAK;MACZ,qBAAqB;MACrB,kBAAkB;KACpB,UAAU;MACR,IAAI;OACF,IAAI,CAAC,8BAA8B,WAAW,UAAU,MAAM;QAC5D,WAAW,OAAO;OACpB;MACF,UAAU;OACR,IAAI,oBAAoB;QACtB,MAAM;OACR;MACF;KACF;KACA,IAAI,SAAS,aAAa,iBAAiB,KAAK,IAAI;IACtD;GACF;EACF,SAAS,KAAK;GACZ,oBAAoB;GACpB,iBAAiB;EACnB,UAAU;GACR,IAAI;IACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;KAC1D,UAAU,OAAO;IACnB;GACF,UAAU;IACR,IAAI,mBAAmB;KACrB,MAAM;IACR;GACF;EACF;CACF;CACA,MAAM,UAAU;CAChB,IAAI,YAAY,eAAe,UAAU;CACzC,IAAI,WAAW,sBAAsB,WAAW,SAAS;CACzD,IAAI,aAAa,KAAK,YAAY,yBAAyB;CAC3D,IAAI,OAAO,KAAK,YAAY,8BAA8B;CAC1D,IAAI,WAAW,UAAU,KAAK,SAAS,UAAU;EAC/C,OAAO,SAAS,QAAQ,SAAS,KAAK,SAAS,MAAM,SAAS;CAChE,CAAC;CACD,IAAI,UAAU;EACZ,IAAI,OAAO,GAAG,KAAK,UAAU;GAC3B,aAAa;GACb;GACA,MAAM,SAAS;GACf;GACA;GACA;GACA;EACF,GAAG,MAAM,CAAC,EAAE;;EAEZ,mBAAmB,YAAY,IAAI;EACnC,mBAAmB,MAAM,SAAS,MAAM;CAC1C,OAAO,IAAI,WAAW,UAAU,KAAK,aAAa,YAAY,MAAM,CAAC,CAAC,SAAS,kCAA8B,GAAG;EAC9G,OAAO,YAAY,EACjB,OAAO,KACT,CAAC;EACD,OAAO,MAAM,EACX,OAAO,KACT,CAAC;CACH;CACA,OAAO;EACL;EACA,MAAM,SAAS;EACf;EACA;EACA;EACA;EACA;EACA,MAAM,WAAW,SAAS,SAAS;CACrC;AACF;AACA,SAAS,sBAAsB,WAAW,WAAW;CACnD,IAAI,CAAC,2BAA2B,KAAK,SAAS,GAAG;EAC/C,MAAM,IAAI,MAAM,4BAA4B,WAAW;CACzD;CACA,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,KAAK,IAAI,YAAY,UAAU,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;GAC1J,IAAI,WAAW,MAAM;GACrB,IAAI,SAAS,aAAa,SAAS,MAAM,IAAI,MAAM,uCAAuC;EAC5F;CACF,SAAS,KAAK;EACZ,oBAAoB;EACpB,iBAAiB;CACnB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;IAC1D,UAAU,OAAO;GACnB;EACF,UAAU;GACR,IAAI,mBAAmB;IACrB,MAAM;GACR;EACF;CACF;CACA,IAAI,UAAU,UAAU,QAAQ,SAAS,WAAW;EAClD,OAAO,UAAU;CACnB,CAAC;CACD,IAAI,QAAQ,UAAU,QAAQ,SAAS,WAAW;EAChD,OAAO,UAAU;CACnB,CAAC;CACD,IAAI,wBAAwB,IAAI,IAAI;CACpC,KAAK,IAAI,KAAK,GAAG,QAAQ,CACvB,GAAG,SACH,GAAG,KACL,GAAG,KAAK,MAAM,QAAQ,MAAM;EAC1B,IAAI,EAAE,SAAS,MAAM;EACrB,IAAI,MAAM,IAAI,IAAI,GAAG,MAAM,IAAI,MAAM,iBAAiB,UAAU,YAAY,KAAK,OAAO;EACxF,MAAM,IAAI,IAAI;CAChB;CACA,IAAI,OAAO,WAAW,QAAQ,CAAC,CAAC,OAAO,KAAK,UAAU;EACpD;EACA;EACA;CACF,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK;CAChB,IAAI,UAAU,UAAU,KAAK,SAAS,WAAW;EAC/C,OAAO,UAAU;CACnB,CAAC;CACD,IAAI,WAAW,uBAAuB;CACtC,IAAI,YAAY,mBAAmB;CACnC,IAAI,YAAY,wBAAwB;CACxC,IAAI,aAAa,SAAS,YAAY,QAAQ,QAAQ;EACpD,IAAI,eAAe,OAAO;EAC1B,IAAI,cAAc;GAChB,IAAI,UAAU,mBAAmB,UAAU,GAAG,OAAO,KAAK,GAAG,OAAO;GACpE,IAAI,cAAc,aAAa,QAAQ,IAAI,SAAS,KAAK,OAAO;IAC9D,OAAO,IAAI,MAAM,IAAI,IAAI;GAC3B,CAAC,CAAC,CAAC,KAAK,IAAI;GACZ,IAAI,WAAW,aAAa,QAAQ,IAAI,SAAS,GAAG,OAAO;IACzD,OAAO,IAAI;GACb,CAAC,CAAC,CAAC,KAAK,IAAI;GACZ,IAAI,SAAS,GAAG,OAAO,SAAS,SAAS,KAAK,OAAO,QAAQ,WAAW;GACxE,OAAO;IACL,cAAc,KAAK,UAAU,OAAO,IAAI,EAAE;IAC1C,gIAAgI,UAAU,GAAG,OAAO,KAAK,GAAG,OAAO,KAAK;IACxK,yBAAyB,KAAK,UAAU,OAAO;IAC/C,WAAW,SAAS,OAAO,KAAK,WAAW,OAAO,KAAK,KAAK,cAAc,IAAI,YAAY,SAAS,GAAG,2BAA2B,SAAS;IAC1I;GACF;EACF;EACA,IAAI,QAAQ,CACV,cAAc,KAAK,UAAU,OAAO,IAAI,EAAE,IAC1C,iCAAiC,OAAO,WAAW,OAAO,mGAAmG,UAAU,GAAG,OAAO,KAAK,GAAG,OAAO,KAAK,WAAW,OAAO,WAAW,OAAO,gBAC3O;EACA,OAAO,WAAW,QAAQ,SAAS,WAAW,OAAO;GACnD,MAAM,KAAK,kBAAkB,MAAM,uBAAuB,MAAM,SAAS,UAAU,WAAW,OAAO;EACvG,CAAC;EACD,IAAI,gBAAgB,OAAO,WAAW,IAAI,SAAS,WAAW,OAAO;GACnE,OAAO,GAAG,UAAU,UAAU,MAAM,KAAK,GAAG,UAAU,MAAM,IAAI,KAAK;EACvE,CAAC,CAAC,CAAC,KAAK,IAAI;EACZ,IAAI,UAAU,GAAG,OAAO,SAAS,SAAS,KAAK,OAAO,QAAQ,WAAW;EACzE,IAAI,OAAO,GAAG,OAAO,KAAK,WAAW,OAAO,KAAK,GAAG,cAAc;EAClE,IAAI,OAAO,WAAW,QAAQ;GAC5B,MAAM,KAAK,WAAW,UAAU,QAAQ,yBAAuB;EACjE,OAAO;GACL,MAAM,KAAK,wBAAwB,UAAU,MAAM;GACnD,IAAI,OAAO,iBAAiB,OAAO;IACjC,MAAM,KAAK,sNAAkN;GAC/N;GACA,MAAM,KAAK,mCAAmC;EAChD;EACA,OAAO;CACT;CACA,IAAI,YAAY;CAChB,IAAI,aAAa,SAAS,cAAc;EACtC,OAAO,QAAQ,WAAW,IAAI;GAC5B;GACA;GACA;EACF,IAAI;GACF;GACA;GACA;GACA;GACA;GACA,GAAG,QAAQ,QAAQ,SAAS,QAAQ;IAClC,OAAO;KACL,YAAY,KAAK,UAAU,GAAG,UAAU,GAAG,OAAO,MAAM,EAAE;KAC1D;KACA,GAAG,OAAO,QAAQ,QAAQ,SAAS,QAAQ;MACzC,OAAO,WAAW,QAAQ,MAAM;KAClC,CAAC;KACD;KACA;IACF;GACF,CAAC;GACD;GACA,KAAK;GACL;GACA;EACF;CACF;CACA,IAAI,cAAc,SAAS,eAAe;EACxC,OAAO;GACL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG,MAAM,QAAQ,SAAS,MAAM;IAC9B,OAAO;KACL,YAAY,KAAK,UAAU,KAAK,IAAI,EAAE;KACtC,wBAAwB,KAAK,KAAK;KAClC,GAAG,KAAK,MAAM,IAAI,SAAS,MAAM,OAAO;MACtC,IAAI,QAAQ,UAAU,KAAK,MAAM,SAAS,IAAI,KAAK;MACnD,IAAI,MAAM,KAAK,UAAU,KAAK,IAAI;MAClC,IAAI,KAAK,UAAU;OACjB,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,GAAG;QAC9C,OAAO,IAAI,EAAE,IAAI,IAAI;OACvB,CAAC,CAAC,CAAC,KAAK,IAAI;OACZ,IAAI,SAAS,MAAM,OAAO,oBAAoB,IAAI,UAAU,KAAK,SAAS,IAAI,SAAS,GAAG,GAAG;QAC3F,OAAO,IAAI;OACb,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;OACd,OAAO,WAAW,KAAK,KAAK,IAAI,KAAK,WAAW,UAAU,IAAI,wBAAwB,OAAO,UAAU,SAAS;MAClH;MACA,IAAI,QAAQ,KAAK,WAAW,SAAS,IAAI,iBAAiB,SAAS,IAAI,eAAe,KAAK,UAAU,SAAS,KAAK,MAAM,EAAE;MAC3H,OAAO,WAAW,KAAK,KAAK,eAAe,MAAM,QAAQ,KAAK,WAAW,QAAQ;KACnF,CAAC;KACD;IACF;GACF,CAAC;GACD;GACA;GACA;EACF;CACF;CACA,IAAI,SAAS;EACX;EACA;EACA;EACA,0BAA0B,SAAS;EACnC,8BAA8B,KAAK,UAAU,IAAI;EACjD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,GAAG,QAAQ,IAAI,SAAS,QAAQ;GAC9B,OAAO,wBAAwB,OAAO,KAAK,aAAa,OAAO,KAAK;EACtE,CAAC;EAGD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,GAAG,WAAW;EACd,GAAG,MAAM,SAAS,IAAI,YAAY,IAAI,CAAC;EACvC;EACA;EACA;EACA;EACA;EACA,0HAA0H,SAAS;EACnI;EACA;EACA,yFAAyF,SAAS;EAClG;EACA;EACA;EACA;EACA,gFAAgF,SAAS;EAGzF,GAAG,MAAM,SAAS,IAAI;GACpB;GACA;GACA;GACA;GACA,6BAA6B,SAAS,+CAA+C,U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"}
|
|
1
|
+
{"version":3,"file":"nativeSourceContract.native.js","names":[],"sources":["utils/nativeSourceContract.native.js"],"sourcesContent":["import { createHash, randomUUID } from \"crypto\";\nimport { existsSync, readFileSync, readdirSync, renameSync, rmSync, writeFileSync } from \"fs\";\nimport { basename, dirname, join, relative } from \"path\";\nimport { swiftPackageDirectories, swiftPackageId } from \"./swiftPackageId\";\nvar GENERATED_HEADER = \"// generated by one typegen; edits will be replaced\\n\";\nvar SKIP_SOURCE_DIRS = /* @__PURE__ */ new Set([\n \"node_modules\",\n \"ios\",\n \"android\",\n \"dist\",\n \"types\",\n \"build\",\n \".build\"\n]);\nfunction writeGeneratedFile(file, content) {\n try {\n if (readFileSync(file, \"utf8\") === content) return;\n } catch (error) {\n if (!error || typeof error !== \"object\" || !(\"code\" in error) || error.code !== \"ENOENT\") throw error;\n }\n var temporary = join(dirname(file), `.${basename(file)}.${randomUUID()}.tmp`);\n try {\n writeFileSync(temporary, content);\n renameSync(temporary, file);\n } finally {\n rmSync(temporary, {\n force: true\n });\n }\n}\nfunction fail(file, token, message) {\n var _ref, _ref1;\n throw new Error(`${file}:${((_ref = token === null || token === void 0 ? void 0 : token.line) !== null && _ref !== void 0 ? _ref : 0) + 1}:${((_ref1 = token === null || token === void 0 ? void 0 : token.column) !== null && _ref1 !== void 0 ? _ref1 : 0) + 1}: ${message}`);\n}\nfunction tokens(file, source) {\n var result = [];\n var offset = 0;\n var line = 0;\n var column = 0;\n var advance = function advance2() {\n if (source[offset] === \"\\n\") {\n line++;\n column = 0;\n } else column++;\n offset++;\n };\n while (offset < source.length) {\n var char = source[offset];\n if (/\\s/.test(char)) {\n advance();\n continue;\n }\n if (source.startsWith(\"//\", offset)) {\n while (offset < source.length && source[offset] !== \"\\n\") advance();\n continue;\n }\n if (source.startsWith(\"/*\", offset)) {\n var depth = 0;\n do {\n if (source.startsWith(\"/*\", offset)) {\n depth++;\n advance();\n advance();\n } else if (source.startsWith(\"*/\", offset)) {\n depth--;\n advance();\n advance();\n } else advance();\n } while (depth > 0 && offset < source.length);\n if (depth > 0) fail(file, {\n text: \"/*\",\n line,\n column\n }, \"unclosed native source comment\");\n continue;\n }\n if (char === '\"' || char === \"'\") {\n var quote = source.startsWith(char.repeat(3), offset) ? char.repeat(3) : char;\n for (var n = 0; n < quote.length; n++) advance();\n while (offset < source.length && !source.startsWith(quote, offset)) {\n if (source[offset] === \"\\\\\") advance();\n advance();\n }\n if (offset >= source.length) fail(file, {\n text: quote,\n line,\n column\n }, \"unclosed native source string\");\n for (var n1 = 0; n1 < quote.length; n1++) advance();\n continue;\n }\n var start = offset;\n var startLine = line;\n var startColumn = column;\n if (/[A-Za-z_]/.test(char)) {\n while (offset < source.length && /[A-Za-z0-9_]/.test(source[offset])) advance();\n } else if (source.startsWith(\"->\", offset)) {\n advance();\n advance();\n } else advance();\n result.push({\n text: source.slice(start, offset),\n line: startLine,\n column: startColumn\n });\n }\n return result;\n}\nfunction close(file, list, start, left, right) {\n var depth = 0;\n for (var i = start; i < list.length; i++) {\n if (list[i].text === left) depth++;\n if (list[i].text === right && --depth === 0) return i;\n }\n fail(file, list[start], `unclosed ${left} in native export`);\n}\nfunction split(list, separator) {\n var parts = [];\n var start = 0;\n var square = 0;\n var angle = 0;\n var round = 0;\n for (var i = 0; i < list.length; i++) {\n var value = list[i].text;\n if (value === \"[\") square++;\n if (value === \"]\") square--;\n if (value === \"<\") angle++;\n if (value === \">\") angle--;\n if (value === \"(\") round++;\n if (value === \")\") round--;\n if (value === separator && square === 0 && angle === 0 && round === 0) {\n parts.push(list.slice(start, i));\n start = i + 1;\n }\n }\n parts.push(list.slice(start));\n return parts;\n}\nfunction arrayOf(element) {\n return element.includes(\" | \") ? `(${element})[]` : `${element}[]`;\n}\nfunction tsType(file, list, language, named) {\n var _list_at, _list_at1, _list_, _list_at2;\n if (list.length === 0) fail(file, list[0], \"native export needs an explicit type\");\n if (((_list_at = list.at(-1)) === null || _list_at === void 0 ? void 0 : _list_at.text) === \"?\") {\n var inner = tsType(file, list.slice(0, -1), language, named);\n return {\n text: `${inner.text} | null`,\n wire: inner.wire ? {\n kind: \"nullable\",\n inner: inner.wire\n } : null\n };\n }\n var value = list.map(function(token) {\n return token.text;\n }).join(\"\");\n if (value === \"String\") return {\n text: \"string\",\n wire: null\n };\n if (value === \"Bool\" || value === \"Boolean\") return {\n text: \"boolean\",\n wire: null\n };\n if ([\n \"Double\",\n \"Float\",\n \"Int\",\n \"Long\"\n ].includes(value)) return {\n text: \"number\",\n wire: null\n };\n if (value === \"Void\" || value === \"Unit\") return {\n text: \"void\",\n wire: null\n };\n var dateTypes = language === \"swift\" ? [\n \"Date\",\n \"Foundation.Date\"\n ] : [\n \"Date\",\n \"java.util.Date\"\n ];\n if (dateTypes.includes(value)) return {\n text: \"Date\",\n wire: {\n kind: \"date\"\n }\n };\n var dataTypes = language === \"swift\" ? [\n \"Data\",\n \"Foundation.Data\"\n ] : [\n \"ByteArray\"\n ];\n if (dataTypes.includes(value)) {\n return {\n text: \"Uint8Array\",\n wire: {\n kind: \"data\"\n }\n };\n }\n if (language === \"swift\" && list[0].text === \"[\" && ((_list_at1 = list.at(-1)) === null || _list_at1 === void 0 ? void 0 : _list_at1.text) === \"]\") {\n var inner1 = list.slice(1, -1);\n var entries = split(inner1, \":\");\n if (entries.length === 1) {\n var element = tsType(file, inner1, language, named);\n return {\n text: arrayOf(element.text),\n wire: element.wire ? {\n kind: \"array\",\n element: element.wire\n } : null\n };\n }\n if (entries.length === 2 && entries[0].map(function(token) {\n return token.text;\n }).join(\"\") === \"String\") {\n var element1 = tsType(file, entries[1], language, named);\n return {\n text: `Record<string, ${element1.text}>`,\n wire: element1.wire ? {\n kind: \"map\",\n value: element1.wire\n } : null\n };\n }\n }\n if (language === \"kotlin\" && ((_list_ = list[1]) === null || _list_ === void 0 ? void 0 : _list_.text) === \"<\" && ((_list_at2 = list.at(-1)) === null || _list_at2 === void 0 ? void 0 : _list_at2.text) === \">\") {\n var entries1 = split(list.slice(2, -1), \",\");\n if (list[0].text === \"List\" && entries1.length === 1) {\n var element2 = tsType(file, entries1[0], language, named);\n return {\n text: arrayOf(element2.text),\n wire: element2.wire ? {\n kind: \"array\",\n element: element2.wire\n } : null\n };\n }\n if (list[0].text === \"Map\" && entries1.length === 2 && entries1[0].map(function(token) {\n return token.text;\n }).join(\"\") === \"String\") {\n var element3 = tsType(file, entries1[1], language, named);\n return {\n text: `Record<string, ${element3.text}>`,\n wire: element3.wire ? {\n kind: \"map\",\n value: element3.wire\n } : null\n };\n }\n }\n if (list.length === 1 && /^[A-Z][A-Za-z0-9_]*$/.test(value)) {\n var struct = named.structs.get(value);\n if (struct) {\n if (struct.generic) fail(file, list[0], `generic struct ${value} is unsupported`);\n if (struct.problem) fail(file, list[0], struct.problem);\n if (!struct.codable) fail(file, list[0], `struct ${value} must conform to Codable to cross the boundary`);\n return {\n text: value,\n wire: {\n kind: \"struct\",\n name: value\n }\n };\n }\n var enumType = named.enums.get(value);\n if (enumType) {\n if (!enumType.usable) fail(file, list[0], enumType.problem);\n return {\n text: value,\n wire: {\n kind: \"enum\",\n name: value\n }\n };\n }\n }\n fail(file, list[0], `unsupported native export type ${value}`);\n}\nfunction parameters(file, list, language, named) {\n if (list.length === 0) return [];\n return split(list, \",\").map(function(part, index) {\n var _ref, _ref1, _type_wire;\n var _this, _names_;\n if (part.some(function(token) {\n return token.text === \"=\";\n })) fail(file, part[0], \"default native export arguments are unsupported\");\n var colon = part.findIndex(function(token) {\n return token.text === \":\";\n });\n if (colon < 0) fail(file, part[0], \"native export parameter needs an explicit type\");\n var names = part.slice(0, colon).filter(function(token) {\n return /^[A-Za-z_][A-Za-z0-9_]*$/.test(token.text);\n });\n var name = (_ref = (_this = language === \"swift\" ? names.at(-1) : names[0]) === null || _this === void 0 ? void 0 : _this.text) !== null && _ref !== void 0 ? _ref : `arg${index}`;\n if (name === \"_\") fail(file, part[0], \"native export parameter needs an internal name\");\n var label = language === \"swift\" ? (_ref1 = (_names_ = names[0]) === null || _names_ === void 0 ? void 0 : _names_.text) !== null && _ref1 !== void 0 ? _ref1 : name : null;\n var sourceType = part.slice(colon + 1);\n var type = tsType(file, sourceType, language, named);\n return {\n name,\n label,\n type: type.text,\n nativeType: sourceType.map(function(token) {\n return token.text;\n }).join(\"\"),\n wire: (_type_wire = type.wire) !== null && _type_wire !== void 0 ? _type_wire : void 0\n };\n });\n}\nvar DECLARATION_MODIFIERS = /* @__PURE__ */ new Set([\n \"private\",\n \"fileprivate\",\n \"public\",\n \"internal\",\n \"open\",\n \"override\",\n \"static\",\n \"class\",\n \"final\",\n \"suspend\",\n \"inline\",\n \"operator\",\n \"infix\",\n \"tailrec\",\n \"external\",\n \"nonisolated\",\n \"isolated\",\n \"mutating\",\n \"nonmutating\",\n \"dynamic\",\n \"required\",\n \"convenience\",\n \"optional\"\n]);\nfunction declarationStart(list, floor, keyword) {\n var first = keyword;\n while (first > floor) {\n var _list_;\n var text = list[first - 1].text;\n if (DECLARATION_MODIFIERS.has(text)) {\n first--;\n continue;\n }\n if (((_list_ = list[first - 2]) === null || _list_ === void 0 ? void 0 : _list_.text) === \"@\") {\n first -= 2;\n continue;\n }\n if (text === \")\") {\n var _list_1;\n var open = first - 1;\n for (var depth = 0; open > floor; open--) {\n if (list[open].text === \")\") depth++;\n if (list[open].text === \"(\" && --depth === 0) break;\n }\n if (((_list_1 = list[open - 2]) === null || _list_1 === void 0 ? void 0 : _list_1.text) === \"@\") {\n first = open - 2;\n continue;\n }\n }\n break;\n }\n return first;\n}\nfunction declarationModifiers(list, floor, keyword) {\n var words = [];\n for (var i = declarationStart(list, floor, keyword), depth = 0; i < keyword; i++) {\n var text = list[i].text;\n if (text === \"(\") depth++;\n else if (text === \")\") depth--;\n else if (depth === 0) words.push(text);\n }\n return words;\n}\nfunction subscriptionPayload(file, typeTokens, language, named) {\n try {\n var _typeTokens_at, _fn_, _fn_1, _fn_2, _fn_3;\n if (((_typeTokens_at = typeTokens.at(-1)) === null || _typeTokens_at === void 0 ? void 0 : _typeTokens_at.text) === \"?\") return null;\n var fn = typeTokens;\n if (language === \"swift\" && ((_fn_ = fn[0]) === null || _fn_ === void 0 ? void 0 : _fn_.text) === \"@\" && ((_fn_1 = fn[1]) === null || _fn_1 === void 0 ? void 0 : _fn_1.text) === \"escaping\") fn = fn.slice(2);\n if (((_fn_2 = fn[0]) === null || _fn_2 === void 0 ? void 0 : _fn_2.text) === \"(\" && close(file, fn, 0, \"(\", \")\") === fn.length - 1 && fn.some(function(token) {\n return token.text === \"->\";\n })) {\n fn = fn.slice(1, -1);\n }\n var arrow = fn.findIndex(function(token) {\n return token.text === \"->\";\n });\n if (arrow <= 0 || ((_fn_3 = fn[0]) === null || _fn_3 === void 0 ? void 0 : _fn_3.text) !== \"(\" || close(file, fn, 0, \"(\", \")\") !== arrow - 1) return null;\n var result = fn.slice(arrow + 1);\n var voidResult = result.length === 1 && (result[0].text === \"Void\" || result[0].text === \"Unit\") || result.length === 2 && result[0].text === \"(\" && result[1].text === \")\";\n if (!voidResult) return null;\n var inner = fn.slice(1, arrow - 1);\n if (inner.length === 0) return [];\n return split(inner, \",\").map(function(arg) {\n var _resolved_wire;\n var colon = arg.findIndex(function(token) {\n return token.text === \":\";\n });\n var type = colon < 0 ? arg : arg.slice(colon + 1);\n var resolved = tsType(file, type, language, named);\n return {\n type: resolved.text,\n nativeType: type.map(function(token) {\n return token.text;\n }).join(\"\"),\n wire: (_resolved_wire = resolved.wire) !== null && _resolved_wire !== void 0 ? _resolved_wire : void 0\n };\n });\n } catch (unused) {\n return null;\n }\n}\nfunction methods(file, list, start, end, language, named) {\n var _loop = function() {\n var _list_, _list_1, _list_open, _list_headerEnd, _list_headerEnd1;\n if (list[i].text === \"{\") {\n i = close(file, list, i, \"{\", \"}\") + 1;\n previous = i;\n return \"continue\";\n }\n if (list[i].text !== keyword) {\n i++;\n return \"continue\";\n }\n var modifiers = declarationModifiers(list, previous, i);\n var hidden = modifiers.includes(\"private\") || modifiers.includes(\"fileprivate\");\n if (!hidden && (modifiers.includes(\"static\") || modifiers.includes(\"class\"))) {\n fail(file, list[i], \"static native exports are unsupported\");\n }\n var name = (_list_ = list[i + 1]) === null || _list_ === void 0 ? void 0 : _list_.text;\n if (!name || !/^[A-Za-z_][A-Za-z0-9_]*$/.test(name)) fail(file, list[i], \"native export has no method name\");\n if (result.some(function(method) {\n return method.name === name;\n })) fail(file, list[i], `overloaded native export ${name} is unsupported`);\n if (((_list_1 = list[i + 2]) === null || _list_1 === void 0 ? void 0 : _list_1.text) === \"<\") fail(file, list[i], \"generic native exports are unsupported\");\n var open = i + 2;\n if (((_list_open = list[open]) === null || _list_open === void 0 ? void 0 : _list_open.text) !== \"(\") fail(file, list[i], \"native export has no parameter list\");\n var closing = close(file, list, open, \"(\", \")\");\n var headerEnd = closing + 1;\n while (headerEnd < end && ![\n \"{\",\n \"=\",\n \";\"\n ].includes(list[headerEnd].text)) headerEnd++;\n var header = list.slice(closing + 1, headerEnd);\n var separator = header.findIndex(function(token) {\n return token.text === (language === \"swift\" ? \"->\" : \":\");\n });\n var sourceType = hidden || separator < 0 ? [] : header.slice(separator + 1);\n var type = sourceType.length === 0 ? {\n text: \"void\",\n wire: null\n } : tsType(file, sourceType, language, named);\n var subscription = void 0;\n if (!hidden && type.text === \"void\") {\n var parts = split(list.slice(open + 1, closing), \",\");\n if (parts.length === 1 && parts[0].length > 0) {\n var colon = parts[0].findIndex(function(token) {\n return token.text === \":\";\n });\n if (colon >= 0) {\n var payload = subscriptionPayload(file, parts[0].slice(colon + 1), language, named);\n if (payload) subscription = {\n payload\n };\n }\n }\n }\n if (!hidden) {\n var _type_wire;\n result.push({\n name,\n parameters: subscription ? [] : parameters(file, list.slice(open + 1, closing), language, named),\n result: type.text,\n nativeResult: sourceType.length === 0 ? language === \"swift\" ? \"Void\" : \"Unit\" : sourceType.map(function(token) {\n return token.text;\n }).join(\"\"),\n resultWire: (_type_wire = type.wire) !== null && _type_wire !== void 0 ? _type_wire : void 0,\n subscription,\n throws: language === \"swift\" ? header.some(function(token) {\n return token.text === \"throws\";\n }) : true,\n async: language === \"swift\" ? header.some(function(token) {\n return token.text === \"async\";\n }) : modifiers.includes(\"suspend\")\n });\n }\n if (((_list_headerEnd = list[headerEnd]) === null || _list_headerEnd === void 0 ? void 0 : _list_headerEnd.text) === \"{\") i = close(file, list, headerEnd, \"{\", \"}\") + 1;\n else if (((_list_headerEnd1 = list[headerEnd]) === null || _list_headerEnd1 === void 0 ? void 0 : _list_headerEnd1.text) === \"=\") {\n var bodyLine = list[headerEnd].line;\n i = headerEnd + 1;\n while (i < end && list[i].line === bodyLine && list[i].text !== \";\") i++;\n } else i = headerEnd + 1;\n previous = i;\n };\n var result = [];\n var i = start + 1;\n var previous = i;\n var keyword = language === \"swift\" ? \"func\" : \"fun\";\n while (i < end) _loop();\n return result;\n}\nfunction callbackProp(file, name, typeTokens, optional, language, named) {\n var _typeTokens_at, _fn_, _fn_1;\n var nullable = ((_typeTokens_at = typeTokens.at(-1)) === null || _typeTokens_at === void 0 ? void 0 : _typeTokens_at.text) === \"?\";\n var fn = nullable ? typeTokens.slice(0, -1) : typeTokens;\n if (((_fn_ = fn[0]) === null || _fn_ === void 0 ? void 0 : _fn_.text) === \"(\" && close(file, fn, 0, \"(\", \")\") === fn.length - 1 && fn.some(function(token) {\n return token.text === \"->\";\n })) {\n fn = fn.slice(1, -1);\n }\n var arrow = fn.findIndex(function(token) {\n return token.text === \"->\";\n });\n if (arrow < 0 || ((_fn_1 = fn[0]) === null || _fn_1 === void 0 ? void 0 : _fn_1.text) !== \"(\" || close(file, fn, 0, \"(\", \")\") !== arrow - 1) return null;\n var result = fn.slice(arrow + 1).map(function(token) {\n return token.text;\n }).join(\"\");\n var unit = language === \"swift\" ? \"Void\" : \"Unit\";\n if (result !== unit && !(language === \"swift\" && result === \"()\")) {\n fail(file, typeTokens[0], `view callback ${name} must return ${unit}`);\n }\n var inner = fn.slice(1, arrow - 1);\n var callback = inner.length === 0 ? [] : split(inner, \",\").map(function(arg) {\n var _resolved_wire;\n var colon = arg.findIndex(function(token) {\n return token.text === \":\";\n });\n var type = colon < 0 ? arg : arg.slice(colon + 1);\n var resolved = tsType(file, type, language, named);\n return {\n type: resolved.text,\n nativeType: type.map(function(token) {\n return token.text;\n }).join(\"\"),\n wire: (_resolved_wire = resolved.wire) !== null && _resolved_wire !== void 0 ? _resolved_wire : void 0\n };\n });\n var signature = `(${callback.map(function(arg, index) {\n return `value${index}: ${arg.type}`;\n }).join(\", \")}) => void`;\n var nativeType = typeTokens.map(function(token) {\n return token.text;\n }).join(\"\");\n return {\n name,\n type: nullable ? `(${signature}) | null` : signature,\n nativeType,\n optional,\n callback\n };\n}\nfunction viewProp(file, part, named) {\n var _resolved_wire;\n var _equals_, _typeTokens_at;\n var colon = part.findIndex(function(token) {\n return token.text === \":\";\n });\n if (colon !== 1 || !/^[A-Za-z_][A-Za-z0-9_]*$/.test(part[0].text)) {\n fail(file, part[0], \"composable parameter needs a name and an explicit type\");\n }\n var name = part[0].text;\n var equals = split(part.slice(colon + 1), \"=\");\n var typeTokens = equals[0];\n var fallback = (_equals_ = equals[1]) === null || _equals_ === void 0 ? void 0 : _equals_.map(function(token) {\n return token.text;\n }).join(\"\");\n var nativeType = typeTokens.map(function(token) {\n return token.text;\n }).join(\"\");\n if (nativeType === \"Modifier\") {\n if (fallback !== \"Modifier\") fail(file, part[0], \"a composable modifier parameter needs the default Modifier\");\n return null;\n }\n var nullable = ((_typeTokens_at = typeTokens.at(-1)) === null || _typeTokens_at === void 0 ? void 0 : _typeTokens_at.text) === \"?\";\n if (fallback !== void 0 && !(nullable && fallback === \"null\")) {\n fail(file, part[0], `composable parameter ${name} may only default to null`);\n }\n var optional = fallback !== void 0;\n var callback = callbackProp(file, name, typeTokens, optional, \"kotlin\", named);\n if (callback) return callback;\n var resolved = tsType(file, typeTokens, \"kotlin\", named);\n return {\n name,\n type: resolved.text,\n nativeType,\n optional,\n callback: null,\n wire: (_resolved_wire = resolved.wire) !== null && _resolved_wire !== void 0 ? _resolved_wire : void 0\n };\n}\nvar PLAIN_ATTRIBUTES = /* @__PURE__ */ new Set([\n \"MainActor\",\n \"available\",\n \"objc\",\n \"nonobjc\",\n \"preconcurrency\"\n]);\nfunction storedProperty(file, list, i, previous, end, owner) {\n var _ref;\n var _list_, _list_1, _list_stop, _list_next, _list_2;\n var at = list[i];\n var own = list.slice(declarationStart(list, previous, i), i).map(function(token) {\n return token.text;\n });\n var propName = (_ref = (_list_ = list[i + 1]) === null || _list_ === void 0 ? void 0 : _list_.text) !== null && _ref !== void 0 ? _ref : \"\";\n if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(propName)) fail(file, list[i], `${owner} has a property without a simple name`);\n var stop = i + 2;\n var depth = 0;\n while (stop < end) {\n var value = list[stop].text;\n if (depth === 0 && (value === \"=\" || value === \"{\" || value === \";\" || list[stop].line !== list[stop - 1].line)) break;\n if (value === \"(\" || value === \"[\" || value === \"<\") depth++;\n if (value === \")\" || value === \"]\" || value === \">\") depth--;\n stop++;\n }\n var typeTokens = ((_list_1 = list[i + 2]) === null || _list_1 === void 0 ? void 0 : _list_1.text) === \":\" ? list.slice(i + 3, stop) : [];\n var valued = ((_list_stop = list[stop]) === null || _list_stop === void 0 ? void 0 : _list_stop.text) === \"=\";\n var next = stop;\n if (valued) {\n var valueLine = list[stop].line;\n while (next < end && list[next].line === valueLine && list[next].text !== \"{\") next++;\n }\n var block = ((_list_next = list[next]) === null || _list_next === void 0 ? void 0 : _list_next.text) === \"{\";\n var computed = block && !valued && ![\n \"willSet\",\n \"didSet\"\n ].includes((_list_2 = list[next + 1]) === null || _list_2 === void 0 ? void 0 : _list_2.text);\n var resume = block ? close(file, list, next, \"{\", \"}\") + 1 : next;\n return {\n at,\n own,\n propName,\n typeTokens,\n valued,\n stop,\n computed,\n resume\n };\n}\nfunction swiftView(file, list, keyword, floor, body, end, named) {\n var _loop = function() {\n var _list_2, _list_1, _typeTokens_at, _list_22, _list_3;\n var text = list[i].text;\n if (text === \"{\") {\n i = close(file, list, i, \"{\", \"}\") + 1;\n previous = i;\n return \"continue\";\n }\n if (text === \"init\" && ((_list_2 = list[i + 1]) === null || _list_2 === void 0 ? void 0 : _list_2.text) === \"(\" && ((_list_1 = list[i - 1]) === null || _list_1 === void 0 ? void 0 : _list_1.text) !== \".\") {\n fail(file, list[i], `view ${name} is imported through its memberwise initializer; remove init(...)`);\n }\n if (text !== \"let\" && text !== \"var\") {\n i++;\n return \"continue\";\n }\n var property = storedProperty(file, list, i, previous, end, `view ${name}`);\n var { at, own, propName, typeTokens, valued, stop } = property;\n i = property.resume;\n previous = i;\n var wrapper = own.findIndex(function(value, index) {\n return own[index - 1] === \"@\" && !PLAIN_ATTRIBUTES.has(value);\n });\n if (property.computed || own.includes(\"static\")) return \"continue\";\n if (wrapper >= 0) {\n if (valued || own[wrapper + 1] === \"(\") return \"continue\";\n fail(file, at, `@${own[wrapper]} ${propName} in view ${name} needs a value; pass a plain value and a callback instead`);\n }\n if (own.includes(\"private\") || own.includes(\"fileprivate\")) {\n if (valued) return \"continue\";\n fail(file, at, `private ${propName} in view ${name} needs a value, or the view cannot be built from javascript`);\n }\n if (valued && text === \"let\") return \"continue\";\n if (typeTokens.length === 0) fail(file, at, `view prop ${propName} needs an explicit type`);\n var nullable = ((_typeTokens_at = typeTokens.at(-1)) === null || _typeTokens_at === void 0 ? void 0 : _typeTokens_at.text) === \"?\";\n if (valued && !(nullable && ((_list_22 = list[stop + 1]) === null || _list_22 === void 0 ? void 0 : _list_22.text) === \"nil\" && ((_list_3 = list[stop + 2]) === null || _list_3 === void 0 ? void 0 : _list_3.line) !== list[stop + 1].line)) {\n fail(file, list[stop], `view prop ${propName} may only default to nil`);\n }\n var callback = callbackProp(file, propName, typeTokens, nullable, \"swift\", named);\n if (callback) {\n props.push(callback);\n } else {\n var _resolved_wire;\n var resolved = tsType(file, typeTokens, \"swift\", named);\n props.push({\n name: propName,\n type: resolved.text,\n nativeType: typeTokens.map(function(token) {\n return token.text;\n }).join(\"\"),\n optional: nullable,\n callback: null,\n wire: (_resolved_wire = resolved.wire) !== null && _resolved_wire !== void 0 ? _resolved_wire : void 0\n });\n }\n };\n var _list_;\n var modifiers = declarationModifiers(list, floor, keyword);\n if (list[keyword].text !== \"struct\" || !modifiers.includes(\"public\")) return null;\n if (!list.slice(keyword + 2, body).some(function(token) {\n return token.text === \"View\";\n })) return null;\n var name = list[keyword + 1].text;\n if (!/^[A-Z][A-Za-z0-9_]*$/.test(name)) fail(file, list[keyword], \"an imported view needs a capitalized name\");\n if (((_list_ = list[keyword + 2]) === null || _list_ === void 0 ? void 0 : _list_.text) === \"<\") fail(file, list[keyword], `generic view ${name} is unsupported`);\n var props = [];\n var i = body + 1;\n var previous = i;\n while (i < end) _loop();\n return {\n name,\n props\n };\n}\nfunction collectDataClass(file, list, keyword, name, token, generic, packageName) {\n var _list_scan, _list_scan1, _list_scan2;\n var modifiers = declarationModifiers(list, 0, keyword - 1);\n var problem = null;\n if (modifiers.includes(\"private\")) {\n problem = `data class ${name} must be public to cross the boundary`;\n }\n var scan = keyword + 2;\n if (((_list_scan = list[scan]) === null || _list_scan === void 0 ? void 0 : _list_scan.text) === \"<\") scan = close(file, list, scan, \"<\", \">\") + 1;\n while ([\n \"private\",\n \"protected\",\n \"public\",\n \"internal\",\n \"constructor\"\n ].includes((_list_scan1 = list[scan]) === null || _list_scan1 === void 0 ? void 0 : _list_scan1.text)) scan++;\n var params = [];\n if (((_list_scan2 = list[scan]) === null || _list_scan2 === void 0 ? void 0 : _list_scan2.text) === \"(\") {\n var closing = close(file, list, scan, \"(\", \")\");\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = split(list.slice(scan + 1, closing), \",\")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var part = _step.value;\n if (part.length > 0) params.push(part);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n } else {\n return null;\n }\n if (list.slice(keyword + 2, scan).some(function(entry) {\n return entry.text === \"private\" || entry.text === \"protected\";\n })) {\n problem = problem !== null && problem !== void 0 ? problem : `data class ${name} must be public to cross the boundary`;\n }\n return {\n name,\n token,\n generic,\n codable: true,\n problem,\n body: [],\n params,\n packageName\n };\n}\nfunction collectSwiftEnum(file, body, name, token, generic, header) {\n var backing = header.some(function(entry) {\n return entry.text === \"String\";\n }) ? \"string\" : header.some(function(entry) {\n return entry.text === \"Int\";\n }) ? \"number\" : null;\n if (generic) {\n return {\n name,\n token,\n generic,\n usable: false,\n problem: `generic enum ${name} is unsupported`,\n backing: \"string\",\n cases: []\n };\n }\n if (!backing) {\n return {\n name,\n token,\n generic,\n usable: false,\n problem: `enum ${name} needs a String or Int backing to cross the boundary`,\n backing: \"string\",\n cases: []\n };\n }\n var inherits = header.map(function(entry) {\n return entry.text;\n });\n if (!inherits.includes(\"Codable\") && !(inherits.includes(\"Decodable\") && inherits.includes(\"Encodable\"))) {\n return {\n name,\n token,\n generic,\n usable: false,\n problem: `enum ${name} must conform to Codable to cross the boundary`,\n backing,\n cases: []\n };\n }\n var memberStarters = /* @__PURE__ */ new Set([\n \"func\",\n \"var\",\n \"let\",\n \"init\",\n \"deinit\",\n \"subscript\",\n \"static\",\n \"public\",\n \"private\",\n \"fileprivate\",\n \"internal\",\n \"open\",\n \"final\",\n \"mutating\",\n \"nonmutating\",\n \"override\",\n \"lazy\",\n \"weak\",\n \"unowned\",\n \"required\",\n \"convenience\",\n \"dynamic\",\n \"indirect\",\n \"typealias\",\n \"import\"\n ]);\n var cases = [];\n var problem = null;\n var counter = 0;\n var i = 0;\n var depth = 0;\n while (i < body.length) {\n if (body[i].text === \"{\") {\n depth++;\n i++;\n continue;\n }\n if (body[i].text === \"}\") {\n depth--;\n i++;\n continue;\n }\n if (depth !== 0 || body[i].text !== \"case\") {\n i++;\n continue;\n }\n var stop = i + 1;\n var inner = 0;\n while (stop < body.length) {\n var value = body[stop].text;\n if (inner === 0 && (value === \";\" || value === \"case\" || memberStarters.has(value))) break;\n if (value === \"(\" || value === \"[\" || value === \"<\") inner++;\n if (value === \")\" || value === \"]\" || value === \">\") inner--;\n stop++;\n if (inner < 0) break;\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = split(body.slice(i + 1, stop), \",\")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var item = _step.value;\n var _ref;\n var _item_;\n var itemName = (_ref = (_item_ = item[0]) === null || _item_ === void 0 ? void 0 : _item_.text) !== null && _ref !== void 0 ? _ref : \"\";\n if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(itemName)) continue;\n if (item.some(function(entry) {\n return entry.text === \"(\";\n })) {\n problem = problem !== null && problem !== void 0 ? problem : `enum ${name} has associated values, which cannot cross the boundary`;\n continue;\n }\n if (item.some(function(entry) {\n return entry.text === \"=\";\n })) {\n problem = problem !== null && problem !== void 0 ? problem : `enum ${name} has an explicit raw value, which cannot cross the boundary`;\n continue;\n }\n cases.push({\n name: itemName,\n value: backing === \"string\" ? itemName : counter\n });\n counter++;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n i = stop;\n }\n return {\n name,\n token,\n generic,\n usable: problem === null,\n problem: problem !== null && problem !== void 0 ? problem : \"\",\n backing,\n cases\n };\n}\nfunction collectKotlinEnum(file, body, name, token) {\n var cases = [];\n var i = 0;\n var stopWords = /* @__PURE__ */ new Set([\n \";\",\n \"fun\",\n \"val\",\n \"var\",\n \"init\",\n \"companion\",\n \"constructor\",\n \"object\",\n \"inner\",\n \"abstract\",\n \"open\",\n \"override\",\n \"lateinit\",\n \"const\",\n \"public\",\n \"private\",\n \"protected\",\n \"internal\"\n ]);\n while (i < body.length && !stopWords.has(body[i].text)) {\n if (body[i].text === \",\") {\n i++;\n continue;\n }\n if (body[i].text === \"@\") {\n var _body_i;\n i += 2;\n if (((_body_i = body[i]) === null || _body_i === void 0 ? void 0 : _body_i.text) === \"(\") i = close(file, body, i, \"(\", \")\") + 1;\n continue;\n }\n var entry = body[i].text;\n if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(entry)) break;\n cases.push({\n name: entry,\n value: entry\n });\n i++;\n while (i < body.length && (body[i].text === \"(\" || body[i].text === \"{\")) {\n i = close(file, body, i, body[i].text, body[i].text === \"(\" ? \")\" : \"}\") + 1;\n }\n }\n return {\n name,\n token,\n generic: false,\n usable: cases.length > 0,\n problem: cases.length > 0 ? \"\" : `enum class ${name} has no entries to cross the boundary`,\n backing: \"string\",\n cases\n };\n}\nvar STRUCT_MEMBER_WORDS = /* @__PURE__ */ new Set([\n \"init\",\n \"deinit\",\n \"func\",\n \"subscript\",\n \"struct\",\n \"enum\",\n \"class\",\n \"extension\",\n \"object\",\n \"static\"\n]);\nfunction swiftStructFields(file, struct, named) {\n var _loop = function() {\n var _resolved_wire;\n var text = body[i].text;\n if (text === \"{\") {\n i = close(file, body, i, \"{\", \"}\") + 1;\n previous = i;\n return \"continue\";\n }\n if (STRUCT_MEMBER_WORDS.has(text)) {\n var _body_scan;\n var scan = i + 1;\n var angle = 0;\n var round = 0;\n while (scan < end) {\n var value = body[scan].text;\n if (value === \"<\") angle++;\n else if (value === \">\") angle--;\n else if (value === \"(\") round++;\n else if (value === \")\") round--;\n else if (value === \"{\" && angle === 0 && round === 0) break;\n else if (value === \";\" && angle === 0 && round === 0) break;\n scan++;\n }\n i = ((_body_scan = body[scan]) === null || _body_scan === void 0 ? void 0 : _body_scan.text) === \"{\" ? close(file, body, scan, \"{\", \"}\") + 1 : scan + 1;\n previous = i;\n return \"continue\";\n }\n if (text !== \"let\" && text !== \"var\") {\n i++;\n return \"continue\";\n }\n var property = storedProperty(file, body, i, previous, end, `struct ${struct.name}`);\n var { at, own, propName, typeTokens, valued } = property;\n i = property.resume;\n previous = i;\n if (property.computed || own.includes(\"static\")) return \"continue\";\n var wrapper = own.findIndex(function(value2, index) {\n return own[index - 1] === \"@\" && !PLAIN_ATTRIBUTES.has(value2);\n });\n if (wrapper >= 0) {\n fail(file, at, `@${own[wrapper]} ${propName} in struct ${struct.name} is unsupported; cross a plain value instead`);\n }\n if (own.includes(\"private\") || own.includes(\"fileprivate\")) {\n if (valued) return \"continue\";\n fail(file, at, `private ${propName} in struct ${struct.name} needs a value, or calls cannot supply it`);\n }\n if (typeTokens.length === 0) fail(file, at, `struct ${struct.name} field ${propName} needs an explicit type`);\n var resolved = tsType(file, typeTokens, \"swift\", named);\n fields.push({\n name: propName,\n type: resolved.text,\n nativeType: typeTokens.map(function(token) {\n return token.text;\n }).join(\"\"),\n optional: valued,\n wire: (_resolved_wire = resolved.wire) !== null && _resolved_wire !== void 0 ? _resolved_wire : void 0\n });\n };\n var fields = [];\n var body = struct.body;\n var end = body.length;\n var i = 0;\n var previous = 0;\n while (i < end) _loop();\n return fields;\n}\nfunction kotlinStructFields(file, struct, named) {\n var fields = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = struct.params[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var part = _step.value;\n var _ref, _resolved_wire;\n var _part_;\n var keyword = part.findIndex(function(token) {\n return token.text === \"val\" || token.text === \"var\";\n });\n if (keyword < 0) fail(file, part[0], `data class ${struct.name} field needs val or var`);\n if (part.some(function(token) {\n return token.text === \"vararg\";\n })) {\n var _ref1;\n var _part_1;\n fail(file, part[0], `data class ${struct.name} field ${(_ref1 = (_part_1 = part[keyword + 1]) === null || _part_1 === void 0 ? void 0 : _part_1.text) !== null && _ref1 !== void 0 ? _ref1 : \"\"} is vararg, which cannot cross the boundary`);\n }\n var fieldName = (_ref = (_part_ = part[keyword + 1]) === null || _part_ === void 0 ? void 0 : _part_.text) !== null && _ref !== void 0 ? _ref : \"\";\n if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(fieldName)) {\n fail(file, part[keyword], `data class ${struct.name} has a field without a simple name`);\n }\n var colon = -1;\n var equals = -1;\n var depth = 0;\n for (var t = keyword + 2; t < part.length; t++) {\n var value = part[t].text;\n if (value === \"(\" || value === \"[\" || value === \"<\") depth++;\n else if (value === \")\" || value === \"]\" || value === \">\") depth--;\n else if (depth === 0 && value === \":\" && colon < 0) colon = t;\n else if (depth === 0 && value === \"=\" && equals < 0) equals = t;\n }\n if (colon < 0) fail(file, part[keyword], `data class ${struct.name} field ${fieldName} needs an explicit type`);\n var typeTokens = part.slice(colon + 1, equals < 0 ? part.length : equals);\n var fallback = equals < 0 ? void 0 : part.slice(equals + 1).map(function(token) {\n return token.text;\n }).join(\"\");\n var resolved = tsType(file, typeTokens, \"kotlin\", named);\n fields.push({\n name: fieldName,\n type: resolved.text,\n nativeType: typeTokens.map(function(token) {\n return token.text;\n }).join(\"\"),\n optional: equals >= 0,\n wire: (_resolved_wire = resolved.wire) !== null && _resolved_wire !== void 0 ? _resolved_wire : void 0,\n fallback\n });\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return fields;\n}\nfunction finalizeNamedTypes(file, language, named, structs, enums, modules, views) {\n var reached = /* @__PURE__ */ new Set();\n var queue = [];\n var visitWire = function visitWire1(wire) {\n if (!wire) return;\n if (wire.kind === \"struct\" || wire.kind === \"enum\") {\n if (!reached.has(wire.name)) {\n reached.add(wire.name);\n if (wire.kind === \"struct\") queue.push(wire.name);\n }\n } else if (wire.kind === \"array\") visitWire(wire.element);\n else if (wire.kind === \"map\") visitWire(wire.value);\n else if (wire.kind === \"nullable\") visitWire(wire.inner);\n };\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = modules[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var module = _step.value;\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = module.methods[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var method = _step1.value;\n var _ref;\n var _method_subscription;\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = method.parameters[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var param = _step2.value;\n visitWire(param.wire);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n visitWire(method.resultWire);\n var _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;\n try {\n for (var _iterator3 = ((_ref = (_method_subscription = method.subscription) === null || _method_subscription === void 0 ? void 0 : _method_subscription.payload) !== null && _ref !== void 0 ? _ref : [])[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var arg = _step3.value;\n visitWire(arg.wire);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion4 = true, _didIteratorError4 = false, _iteratorError4 = void 0;\n try {\n for (var _iterator4 = views[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var view = _step4.value;\n var _iteratorNormalCompletion5 = true, _didIteratorError5 = false, _iteratorError5 = void 0;\n try {\n for (var _iterator5 = view.props[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var prop = _step5.value;\n var _prop_callback;\n visitWire(prop.wire);\n var _iteratorNormalCompletion6 = true, _didIteratorError6 = false, _iteratorError6 = void 0;\n try {\n for (var _iterator6 = ((_prop_callback = prop.callback) !== null && _prop_callback !== void 0 ? _prop_callback : [])[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var arg1 = _step6.value;\n visitWire(arg1.wire);\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return != null) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return != null) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return != null) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n var byName = new Map(structs.map(function(entry) {\n return [\n entry.name,\n entry\n ];\n }));\n var parsed = /* @__PURE__ */ new Map();\n while (queue.length > 0) {\n var name = queue.pop();\n if (parsed.has(name)) continue;\n var decl = byName.get(name);\n if (!decl) continue;\n var fields = language === \"swift\" ? swiftStructFields(file, decl, named) : kotlinStructFields(file, decl, named);\n parsed.set(name, fields);\n var _iteratorNormalCompletion7 = true, _didIteratorError7 = false, _iteratorError7 = void 0;\n try {\n for (var _iterator7 = fields[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var field = _step7.value;\n visitWire(field.wire);\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return != null) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n }\n return {\n structs: structs.filter(function(entry) {\n return reached.has(entry.name);\n }).map(function(entry) {\n var _parsed_get;\n return {\n name: entry.name,\n fields: (_parsed_get = parsed.get(entry.name)) !== null && _parsed_get !== void 0 ? _parsed_get : []\n };\n }),\n enums: enums.filter(function(entry) {\n return reached.has(entry.name);\n }).map(function(entry) {\n return {\n name: entry.name,\n backing: entry.backing,\n cases: entry.cases\n };\n })\n };\n}\nfunction collectNamedTypes(file, list, language, packageName) {\n var structs = [];\n var enums = [];\n var depth = 0;\n var i = 0;\n while (i < list.length) {\n var _list_, _list_1, _list_2, _list_3;\n var text = list[i].text;\n if (text === \"{\") {\n depth++;\n i++;\n continue;\n }\n if (text === \"}\") {\n depth--;\n i++;\n continue;\n }\n if (depth !== 0) {\n i++;\n continue;\n }\n var isSwiftStruct = language === \"swift\" && text === \"struct\";\n var isSwiftEnum = language === \"swift\" && text === \"enum\";\n var isDataClass = language === \"kotlin\" && text === \"class\" && ((_list_ = list[i - 1]) === null || _list_ === void 0 ? void 0 : _list_.text) === \"data\";\n var isKotlinEnum = language === \"kotlin\" && text === \"class\" && ((_list_1 = list[i - 1]) === null || _list_1 === void 0 ? void 0 : _list_1.text) === \"enum\";\n if (!isSwiftStruct && !isSwiftEnum && !isDataClass && !isKotlinEnum) {\n i++;\n continue;\n }\n var name = (_list_2 = list[i + 1]) === null || _list_2 === void 0 ? void 0 : _list_2.text;\n if (!name || !/^[A-Za-z_][A-Za-z0-9_]*$/.test(name)) {\n i++;\n continue;\n }\n var token = list[i + 1];\n var generic = ((_list_3 = list[i + 2]) === null || _list_3 === void 0 ? void 0 : _list_3.text) === \"<\";\n if (isDataClass) {\n var _list_scan, _list_scan1, _list_scan2;\n var dataClass = collectDataClass(file, list, i, name, token, generic, packageName);\n var scan = i + 2;\n if (((_list_scan = list[scan]) === null || _list_scan === void 0 ? void 0 : _list_scan.text) === \"<\") scan = close(file, list, scan, \"<\", \">\") + 1;\n while ([\n \"private\",\n \"protected\",\n \"public\",\n \"internal\",\n \"constructor\"\n ].includes((_list_scan1 = list[scan]) === null || _list_scan1 === void 0 ? void 0 : _list_scan1.text)) scan++;\n i = ((_list_scan2 = list[scan]) === null || _list_scan2 === void 0 ? void 0 : _list_scan2.text) === \"(\" ? close(file, list, scan, \"(\", \")\") + 1 : i + 2;\n if (dataClass) structs.push(dataClass);\n continue;\n }\n var body = i + 2;\n var angle = 0;\n var round = 0;\n while (body < list.length) {\n var value = list[body].text;\n if (value === \"<\") angle++;\n else if (value === \">\") angle--;\n else if (value === \"(\") round++;\n else if (value === \")\") round--;\n else if (value === \"{\" && angle === 0 && round === 0) break;\n body++;\n }\n if (body >= list.length) {\n i++;\n continue;\n }\n var end = close(file, list, body, \"{\", \"}\");\n var header = list.slice(i + 2, body);\n if (isSwiftStruct) {\n var inherits = header.map(function(entry) {\n return entry.text;\n });\n var modifiers = declarationModifiers(list, 0, i);\n structs.push({\n name,\n token,\n generic,\n codable: inherits.includes(\"Codable\") || inherits.includes(\"Decodable\") && inherits.includes(\"Encodable\"),\n problem: modifiers.includes(\"private\") || modifiers.includes(\"fileprivate\") ? `struct ${name} is private to its file and cannot cross the boundary` : null,\n body: list.slice(body + 1, end),\n params: [],\n packageName: void 0\n });\n } else {\n enums.push(language === \"swift\" ? collectSwiftEnum(file, list.slice(body + 1, end), name, token, generic, header) : collectKotlinEnum(file, list.slice(body + 1, end), name, token));\n }\n i = end + 1;\n }\n return {\n structs,\n enums,\n names: {\n structs: new Map(structs.map(function(entry) {\n return [\n entry.name,\n {\n codable: entry.codable,\n generic: entry.generic,\n problem: entry.problem\n }\n ];\n })),\n enums: new Map(enums.map(function(entry) {\n return [\n entry.name,\n {\n usable: entry.usable,\n problem: entry.problem\n }\n ];\n }))\n }\n };\n}\nfunction composableView(file, list, keyword, floor, named) {\n var _list_, _list_1, _list_2;\n var modifiers = declarationModifiers(list, floor, keyword);\n if (!modifiers.some(function(value, index) {\n return value === \"@\" && modifiers[index + 1] === \"Composable\";\n })) return null;\n if (modifiers.includes(\"private\") || modifiers.includes(\"internal\")) return null;\n var name = (_list_ = list[keyword + 1]) === null || _list_ === void 0 ? void 0 : _list_.text;\n if (!name || !/^[A-Z][A-Za-z0-9_]*$/.test(name)) fail(file, list[keyword], \"an imported composable needs a capitalized name\");\n if (((_list_1 = list[keyword + 2]) === null || _list_1 === void 0 ? void 0 : _list_1.text) !== \"(\") fail(file, list[keyword], \"generic or extension composables are unsupported\");\n var closing = close(file, list, keyword + 2, \"(\", \")\");\n if (((_list_2 = list[closing + 1]) === null || _list_2 === void 0 ? void 0 : _list_2.text) === \":\") fail(file, list[closing + 1], `composable ${name} must return Unit`);\n var inner = list.slice(keyword + 3, closing);\n var props = inner.length === 0 ? [] : split(inner, \",\").flatMap(function(part) {\n if (part.length === 0) return [];\n var prop = viewProp(file, part, named);\n return prop ? [\n prop\n ] : [];\n });\n return {\n name,\n props\n };\n}\nfunction nativeSourceContract(file, source) {\n var _loop = function() {\n var _list_;\n var kind = list[i].text;\n var declaration2 = language === \"swift\" ? kind === \"class\" || kind === \"struct\" : kind === \"object\";\n if (language === \"kotlin\" && kind === \"fun\") {\n var view = composableView(file, list, i, previous, named);\n if (view) {\n if (views.some(function(other) {\n return other.name === view.name;\n })) fail(file, list[i], `overloaded composable ${view.name} is unsupported`);\n views.push(view);\n }\n i++;\n return \"continue\";\n }\n if (!declaration2) {\n if (kind === \"{\") {\n i = close(file, list, i, \"{\", \"}\") + 1;\n previous = i;\n } else i++;\n return \"continue\";\n }\n var name = (_list_ = list[i + 1]) === null || _list_ === void 0 ? void 0 : _list_.text;\n if (!name) fail(file, list[i], \"native type has no name\");\n var body = i + 2;\n while (body < list.length && list[body].text !== \"{\") body++;\n if (body === list.length) fail(file, list[i], \"native type has no body\");\n var end = close(file, list, body, \"{\", \"}\");\n var prefix = list.slice(previous, i).map(function(token) {\n return token.text;\n });\n if (language === \"swift\" && prefix.some(function(value, index) {\n return value === \"@\" && prefix[index + 1] === \"main\";\n })) {\n defaultView = true;\n }\n var inherits = list.slice(i + 2, body).map(function(token) {\n return token.text;\n });\n if (inherits.includes(language === \"swift\" ? \"PeachModule\" : \"OneModule\")) {\n modules.push({\n name,\n methods: methods(file, list, body, end, language, named)\n });\n }\n var view1 = language === \"swift\" ? swiftView(file, list, i, previous, body, end, named) : null;\n if (view1) views.push(view1);\n i = end + 1;\n previous = i;\n };\n var _packageLine_at;\n var language = file.endsWith(\".swift\") ? \"swift\" : file.endsWith(\".kt\") ? \"kotlin\" : void 0;\n if (!language) throw new Error(`${file}: expected a .swift or .kt source file`);\n var list = tokens(file, source);\n var packageToken = language === \"kotlin\" ? list.findIndex(function(token) {\n return token.text === \"package\";\n }) : -1;\n var packageLine = packageToken < 0 ? [] : list.slice(packageToken + 1).filter(function(token) {\n return token.line === list[packageToken].line;\n });\n while (((_packageLine_at = packageLine.at(-1)) === null || _packageLine_at === void 0 ? void 0 : _packageLine_at.text) === \";\") packageLine.pop();\n var packageName = packageToken < 0 ? void 0 : packageLine.map(function(token) {\n return token.text;\n }).join(\"\");\n if (packageName && !/^[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*$/.test(packageName)) {\n fail(file, list[packageToken], `unsupported kotlin package ${packageName}`);\n }\n var collected = collectNamedTypes(file, list, language, packageName);\n var named = collected.names;\n var modules = [];\n var views = [];\n var defaultView = false;\n var i = 0;\n var previous = 0;\n while (i < list.length) _loop();\n var finalized = finalizeNamedTypes(file, language, named, collected.structs, collected.enums, modules, views);\n var structs = finalized.structs;\n var enums = finalized.enums;\n var canonical = JSON.stringify({\n language,\n packageName,\n modules,\n views,\n structs,\n enums,\n defaultView\n });\n var hash = createHash(\"sha256\").update(canonical).digest(\"hex\");\n var declarations = structs.map(function(struct) {\n return `export interface ${struct.name} {${struct.fields.map(function(field) {\n return ` ${field.name}${field.optional ? \"?\" : \"\"}: ${field.type};`;\n }).join(\"\")} }`;\n });\n declarations.push(...enums.map(function(type) {\n return `export type ${type.name} = ${type.cases.map(function(entry) {\n return typeof entry.value === \"string\" ? JSON.stringify(entry.value) : String(entry.value);\n }).join(\" | \")}`;\n }));\n declarations.push(...modules.map(function(module) {\n return [\n `export declare const ${module.name}: {`,\n ...module.methods.map(function(method) {\n return method.subscription ? ` ${method.name}(listener: (${method.subscription.payload.map(function(arg, index) {\n return `value${index}: ${arg.type}`;\n }).join(\", \")}) => void): () => void` : ` ${method.name}(${method.parameters.map(function(param) {\n return `${param.name}: ${param.type}`;\n }).join(\", \")}): Promise<${method.result}>`;\n }),\n \"}\"\n ].join(\"\\n\");\n }));\n declarations.push(...views.map(function(view) {\n return `export declare function ${view.name}(props: {${view.props.map(function(prop) {\n return ` ${prop.name}${prop.optional ? \"?\" : \"\"}: ${prop.type};`;\n }).join(\"\")} style?: StyleProp<ViewStyle> }): ReactElement`;\n }));\n if (defaultView) {\n declarations.unshift(\"export default function SwiftPackage(props: Record<string, unknown>): ReactElement\");\n }\n if (views.length > 0) declarations.unshift(\"import type { StyleProp, ViewStyle } from 'react-native'\");\n if (defaultView || views.length > 0) declarations.unshift(\"import type { ReactElement } from 'react'\");\n var declaration = `${GENERATED_HEADER}${declarations.join(\"\\n\\n\")}\n`;\n return {\n language,\n packageName,\n modules,\n views,\n structs,\n enums,\n defaultView,\n hash,\n declaration\n };\n}\nfunction kotlinSourceId(root, file) {\n var path = relative(root, file).replaceAll(\"\\\\\", \"/\");\n if (path.startsWith(\"../\") || !path.endsWith(\".kt\")) {\n throw new Error(`${file} is not a kotlin source under ${root}`);\n }\n return `K_${createHash(\"sha256\").update(path).digest(\"hex\").slice(0, 16)}`;\n}\nfunction swiftPodManifest(file, source) {\n var _modes_values_next_value;\n var list = tokens(file, source);\n var modes = /* @__PURE__ */ new Set();\n var mainActorIsolation = false;\n for (var i = 0; i < list.length; i++) {\n var _list_, _list_1, _list_2, _list_3, _list_4, _list_5, _list_6;\n if (list[i].text === \".\" && ((_list_ = list[i + 1]) === null || _list_ === void 0 ? void 0 : _list_.text) === \"package\" && ((_list_1 = list[i + 2]) === null || _list_1 === void 0 ? void 0 : _list_1.text) === \"(\") {\n fail(file, list[i], \"SwiftPM package dependencies are unsupported by One prebuild\");\n }\n if (list[i].text === \".\" && ((_list_2 = list[i + 1]) === null || _list_2 === void 0 ? void 0 : _list_2.text) === \"swiftLanguageMode\" && ((_list_3 = list[i + 2]) === null || _list_3 === void 0 ? void 0 : _list_3.text) === \"(\") {\n var _ref;\n var _list_7, _list_8;\n var mode = /^v(\\d+)$/.exec((_ref = (_list_7 = list[i + 4]) === null || _list_7 === void 0 ? void 0 : _list_7.text) !== null && _ref !== void 0 ? _ref : \"\");\n if (((_list_8 = list[i + 3]) === null || _list_8 === void 0 ? void 0 : _list_8.text) !== \".\" || !mode) fail(file, list[i], \"unsupported swift language mode\");\n modes.add(Number(mode[1]));\n }\n if (list[i].text === \"swiftLanguageModes\" && ((_list_4 = list[i + 1]) === null || _list_4 === void 0 ? void 0 : _list_4.text) === \":\") {\n var _list_opening;\n var opening = i + 2;\n if (((_list_opening = list[opening]) === null || _list_opening === void 0 ? void 0 : _list_opening.text) !== \"[\") fail(file, list[i], \"unsupported swift language modes\");\n var ending = close(file, list, opening, \"[\", \"]\");\n for (var j = opening; j < ending; j++) {\n var _ref1;\n var _list_9;\n if (list[j].text === \".\" && /^v\\d+$/.test((_ref1 = (_list_9 = list[j + 1]) === null || _list_9 === void 0 ? void 0 : _list_9.text) !== null && _ref1 !== void 0 ? _ref1 : \"\")) {\n modes.add(Number(list[j + 1].text.slice(1)));\n }\n }\n }\n if (list[i].text === \".\" && ((_list_5 = list[i + 1]) === null || _list_5 === void 0 ? void 0 : _list_5.text) === \"defaultIsolation\" && ((_list_6 = list[i + 2]) === null || _list_6 === void 0 ? void 0 : _list_6.text) === \"(\") {\n var _list_10;\n if (((_list_10 = list[i + 3]) === null || _list_10 === void 0 ? void 0 : _list_10.text) !== \"MainActor\") fail(file, list[i], \"unsupported swift default isolation\");\n mainActorIsolation = true;\n }\n }\n if (modes.size > 1) throw new Error(`${file}: One pod needs one swift language mode; found ${[\n ...modes\n ].join(\", \")}`);\n var languageMode = (_modes_values_next_value = modes.values().next().value) !== null && _modes_values_next_value !== void 0 ? _modes_values_next_value : 5;\n if (languageMode !== 5 && languageMode !== 6) {\n throw new Error(`${file}: unsupported swift language mode v${languageMode}`);\n }\n return {\n languageMode,\n mainActorIsolation\n };\n}\nfunction writeNativeSourceDeclaration(file) {\n var contract = nativeSourceContract(file, readFileSync(file, \"utf8\"));\n var extension = contract.language === \"swift\" ? \".swift\" : \".kt\";\n var declaration = join(dirname(file), `${basename(file, extension)}.d${extension}.ts`);\n if (contract.modules.length === 0 && contract.views.length === 0 && !contract.defaultView) {\n if (existsSync(declaration) && readFileSync(declaration, \"utf8\").startsWith(GENERATED_HEADER)) {\n rmSync(declaration, {\n force: true\n });\n }\n return contract;\n }\n writeGeneratedFile(declaration, contract.declaration);\n return contract;\n}\nfunction writeNativeSourceDeclarations(root) {\n var contracts = [];\n var visit = function visit1(dir) {\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = readdirSync(dir, {\n withFileTypes: true\n })[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var entry = _step2.value;\n if (entry.name.startsWith(\".\") || SKIP_SOURCE_DIRS.has(entry.name)) continue;\n var file = join(dir, entry.name);\n if (entry.isDirectory()) visit(file);\n else if (entry.isFile() && /\\.(swift|kt)$/.test(entry.name) && entry.name !== \"Package.swift\") {\n contracts.push(writeNativeSourceDeclaration(file));\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n visit(root);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = swiftPackageDirectories(root).values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var packageDir = _step.value;\n writeSwiftPackageArtifacts(packageDir);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return contracts;\n}\nfunction writeSwiftPackageArtifacts(packageDir) {\n var contracts = [];\n var files = {};\n var modules = {};\n var views = {};\n var defaultViewFiles = [];\n var visit = function visit1(dir) {\n var entries = readdirSync(dir, {\n withFileTypes: true\n }).sort(function(a, b) {\n return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;\n });\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var entry = _step.value;\n if (entry.name.startsWith(\".\") || SKIP_SOURCE_DIRS.has(entry.name)) continue;\n var file = join(dir, entry.name);\n if (entry.isDirectory()) visit(file);\n else if (entry.isFile() && entry.name.endsWith(\".swift\") && entry.name !== \"Package.swift\") {\n var contract = writeNativeSourceDeclaration(file);\n contracts.push(contract);\n var name = relative(packageDir, file).replaceAll(\"\\\\\", \"/\");\n files[name] = [\n ...contract.modules,\n ...contract.views\n ].map(function(entry2) {\n return entry2.name;\n });\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = contract.modules[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var module = _step1.value;\n modules[module.name] = module.methods.map(function(method) {\n return method.name;\n });\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = contract.views[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var view = _step2.value;\n views[view.name] = view.props.map(function(prop) {\n return prop.name;\n });\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n if (contract.defaultView) defaultViewFiles.push(name);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n visit(packageDir);\n var packageId = swiftPackageId(packageDir);\n var rendered = renderSwiftSourceGlue(packageId, contracts);\n var descriptor = join(packageDir, \".one-native-source.json\");\n var glue = join(packageDir, \".one-native-source.swift.txt\");\n var exported = contracts.some(function(contract) {\n return contract.modules.length > 0 || contract.views.length > 0;\n });\n if (exported) {\n var json = `${JSON.stringify({\n generatedBy: \"one typegen\",\n packageId,\n hash: rendered.hash,\n files,\n modules,\n views,\n defaultViewFiles\n }, null, 2)}\n`;\n writeGeneratedFile(descriptor, json);\n writeGeneratedFile(glue, rendered.source);\n } else if (existsSync(descriptor) && readFileSync(descriptor, \"utf8\").includes('\"generatedBy\": \"one typegen\"')) {\n rmSync(descriptor, {\n force: true\n });\n rmSync(glue, {\n force: true\n });\n }\n return {\n packageId,\n hash: rendered.hash,\n files,\n modules,\n views,\n defaultViewFiles,\n contracts,\n glue: exported ? rendered.source : null\n };\n}\nfunction renderSwiftSourceGlue(packageId, contracts) {\n if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(packageId)) {\n throw new Error(`invalid swift package id ${packageId}`);\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = contracts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var contract = _step.value;\n if (contract.language !== \"swift\") throw new Error(\"swift glue received a kotlin contract\");\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var modules = contracts.flatMap(function(contract2) {\n return contract2.modules;\n });\n var views = contracts.flatMap(function(contract2) {\n return contract2.views;\n });\n var names = /* @__PURE__ */ new Set();\n for (var _i = 0, _iter = [\n ...modules,\n ...views\n ]; _i < _iter.length; _i++) {\n var { name } = _iter[_i];\n if (names.has(name)) throw new Error(`swift package ${packageId} declares ${name} twice`);\n names.add(name);\n }\n var hash = createHash(\"sha256\").update(JSON.stringify({\n packageId,\n modules,\n views\n })).digest(\"hex\");\n var hasMain = contracts.some(function(contract2) {\n return contract2.defaultView;\n });\n var bodyName = `OneNativeSourceBody_${packageId}`;\n var className = `OneNativeSource_${packageId}`;\n var viewsName = `OneNativeSourceViews_${packageId}`;\n var renderCase = function renderCase2(method, module) {\n var subscription = method.subscription;\n if (subscription) {\n var channel = `OneNativeSource.${packageId}.${module.name}.${method.name}`;\n var closureArgs = subscription.payload.map(function(arg, index) {\n return `a${index}: ${arg.nativeType}`;\n }).join(\", \");\n var emitArgs = subscription.payload.map(function(_, index) {\n return `a${index}`;\n }).join(\", \");\n var prefix = `${method.throws ? \"try \" : \"\"}${method.async ? \"await \" : \"\"}`;\n return [\n ` case ${JSON.stringify(method.name)}:`,\n ` guard values.isEmpty else { throw NSError(domain: \"OneNativeSource\", code: 2, userInfo: [NSLocalizedDescriptionKey: \"${packageId}.${module.name}.${method.name} subscribes; it takes no arguments\"]) }`,\n ` let channel = ${JSON.stringify(channel)}`,\n ` ${prefix}${module.name}Instance.${method.name}({ ${closureArgs ? `(${closureArgs}) in ` : \"\"}postEvent(channel, args([${emitArgs}])) })`,\n ' return \"null\"'\n ];\n }\n var lines = [\n ` case ${JSON.stringify(method.name)}:`,\n ` guard values.count == ${method.parameters.length} else { throw NSError(domain: \"OneNativeSource\", code: 2, userInfo: [NSLocalizedDescriptionKey: \"${packageId}.${module.name}.${method.name} expects ${method.parameters.length} arguments\"]) }`\n ];\n method.parameters.forEach(function(parameter, index) {\n lines.push(` let arg${index} = try decode(values[${index}], as: ${parameter.nativeType}.self)`);\n });\n var argumentsText = method.parameters.map(function(parameter, index) {\n return `${parameter.label === \"_\" ? \"\" : `${parameter.label}: `}arg${index}`;\n }).join(\", \");\n var prefix1 = `${method.throws ? \"try \" : \"\"}${method.async ? \"await \" : \"\"}`;\n var call = `${module.name}Instance.${method.name}(${argumentsText})`;\n if (method.result === \"void\") {\n lines.push(` ${prefix1}${call}`, ' return \"null\"');\n } else {\n lines.push(` let result = ${prefix1}${call}`);\n if (method.nativeResult === \"Int\") {\n lines.push(' guard abs(Double(result)) <= 9_007_199_254_740_991 else { throw NSError(domain: \"OneNativeSource\", code: 2, userInfo: [NSLocalizedDescriptionKey: \"result exceeds the JavaScript safe integer range\"]) }');\n }\n lines.push(\" return try encode(result)\");\n }\n return lines;\n };\n var notLinked = ' throw NSError(domain: \"OneNativeSource\", code: 1, userInfo: [NSLocalizedDescriptionKey: \"native module \\\\(module) is not linked; rebuild the app\"])';\n var renderCall = function renderCall2() {\n return modules.length === 0 ? [\n \" static func call(_ module: String, _ method: String, _ argsJson: String) async throws -> String {\",\n notLinked,\n \" }\"\n ] : [\n \" static func call(_ module: String, _ method: String, _ argsJson: String) async throws -> String {\",\n \" guard let values = try JSONSerialization.jsonObject(with: Data(argsJson.utf8)) as? [Any] else {\",\n ' throw NSError(domain: \"OneNativeSource\", code: 2, userInfo: [NSLocalizedDescriptionKey: \"arguments must be a JSON array\"])',\n \" }\",\n \" switch module {\",\n ...modules.flatMap(function(module) {\n return [\n ` case ${JSON.stringify(`${packageId}.${module.name}`)}:`,\n \" switch method {\",\n ...module.methods.flatMap(function(method) {\n return renderCase(method, module);\n }),\n ' default: throw NSError(domain: \"OneNativeSource\", code: 1, userInfo: [NSLocalizedDescriptionKey: \"native method \\\\(module).\\\\(method) is not linked; rebuild the app\"])',\n \" }\"\n ];\n }),\n \" default:\",\n ` ${notLinked}`,\n \" }\",\n \" }\"\n ];\n };\n var renderViews = function renderViews2() {\n var notLinked2 = ' default: throw NSError(domain: \"OneNativeSource\", code: 1, userInfo: [NSLocalizedDescriptionKey: \"swift view \\\\(name) is not linked; rebuild the app\"])';\n var fieldsOf = function fieldsOf2(view) {\n return view.props.filter(function(prop) {\n return !prop.callback || prop.optional;\n }).map(function(prop, index) {\n var type = prop.callback ? \"Bool?\" : prop.nativeType;\n var optional = type.endsWith(\"?\");\n var list = /^\\[(.*)\\]\\??$/.exec(type);\n return {\n name: prop.name,\n type,\n optional,\n list: list && !list[1].includes(\":\") ? list[1] : null,\n key: `p${index}`\n };\n });\n };\n return [\n \" private struct OneListPatch<E: Decodable>: Decodable {\",\n \" let length: Int\",\n \" let set: [(Int, E)]\",\n \" private struct Entry: Decodable {\",\n \" let index: Int\",\n \" let value: E\",\n \" init(from decoder: Decoder) throws {\",\n \" var c = try decoder.unkeyedContainer()\",\n \" index = try c.decode(Int.self)\",\n \" value = try c.decode(E.self)\",\n \" }\",\n \" }\",\n \" private enum CodingKeys: String, CodingKey { case length, set }\",\n \" init(from decoder: Decoder) throws {\",\n \" let c = try decoder.container(keyedBy: CodingKeys.self)\",\n \" length = try c.decode(Int.self, forKey: .length)\",\n \" set = try c.decode([Entry].self, forKey: .set).map { ($0.index, $0.value) }\",\n \" }\",\n \" }\",\n // truncate to the new length, replace held indices, append the rest in order\n \" private nonisolated static func patch<E>(_ list: inout [E], _ patch: OneListPatch<E>) -> Bool {\",\n \" if patch.length < 0 { return false }\",\n \" if list.count > patch.length { list.removeLast(list.count - patch.length) }\",\n \" for (index, value) in patch.set {\",\n \" if index < list.count { list[index] = value } else if index == list.count && index < patch.length { list.append(value) } else { return false }\",\n \" }\",\n \" return list.count == patch.length\",\n \" }\",\n \" private nonisolated static func missing(_ prop: String) -> Error {\",\n ' NSError(domain: \"OneNativeSource\", code: 1, userInfo: [NSLocalizedDescriptionKey: \"missing prop \\\\(prop)\"])',\n \" }\",\n ...views.flatMap(function(view) {\n var fields = fieldsOf(view);\n var lists = fields.filter(function(field) {\n return field.list;\n });\n return [\n // one pass over the document text: an absent key is nil and a present\n // one carries its value, which may itself be null for an optional type\n ...lists.length > 0 ? [\n ` private struct Lists_${view.name}: Decodable {`,\n ...lists.map(function(field) {\n return ` let ${field.key}: OneListPatch<${field.list}>?`;\n }),\n ` private enum CodingKeys: String, CodingKey { ${lists.map(function(field) {\n return `case ${field.key} = ${JSON.stringify(field.name)}`;\n }).join(\"; \")} }`,\n \" }\"\n ] : [],\n ` private struct Doc_${view.name}: Decodable {`,\n \" let seq: Int\",\n \" let base: Int?\",\n ...lists.length > 0 ? [\n ` let lists: Lists_${view.name}?`\n ] : [],\n ...fields.map(function(field) {\n return ` let ${field.key}: Optional<${field.type}>`;\n }),\n ` private enum CodingKeys: String, CodingKey { ${[\n 'case seq = \"$seq\"',\n 'case base = \"$base\"',\n 'case lists = \"$lists\"',\n ...fields.map(function(field) {\n return `case ${field.key} = ${JSON.stringify(field.name)}`;\n })\n ].join(\"; \")} }`,\n \" init(from decoder: Decoder) throws {\",\n \" let c = try decoder.container(keyedBy: CodingKeys.self)\",\n \" seq = try c.decodeIfPresent(Int.self, forKey: .seq) ?? 0\",\n \" base = try c.decodeIfPresent(Int.self, forKey: .base)\",\n ...lists.length > 0 ? [\n ` lists = try c.decodeIfPresent(Lists_${view.name}.self, forKey: .lists)`\n ] : [],\n ...fields.map(function(field) {\n return ` ${field.key} = try c.contains(.${field.key}) ? Optional<${field.type}>.some(c.decode(${field.type}.self, forKey: .${field.key})) : Optional<${field.type}>.none`;\n }),\n \" }\",\n \" }\",\n ` private final class Held_${view.name} {`,\n \" var oneSeq: Int\",\n ...fields.map(function(field) {\n return ` var \\`${field.name}\\`: ${field.type}`;\n }),\n ` init(_ d: Doc_${view.name}) throws {`,\n \" oneSeq = d.seq\",\n ...fields.flatMap(function(field) {\n return field.optional ? [\n ` \\`${field.name}\\` = d.${field.key}.flatMap { $0 }`\n ] : [\n ` guard let ${field.key} = d.${field.key} else { throw ${bodyName}.missing(${JSON.stringify(field.name)}) }`,\n ` \\`${field.name}\\` = ${field.key}`\n ];\n }),\n \" }\",\n // all or nothing: lists are patched into copies first\n ` func apply(_ d: Doc_${view.name}) -> Bool {`,\n \" if d.base != oneSeq { return false }\",\n ...lists.flatMap(function(field) {\n return [\n ` var ${field.key} = \\`${field.name}\\``,\n ` if let v = d.${field.key} { ${field.key} = v }`,\n ` if let p = d.lists?.${field.key} {`,\n ...field.optional ? [\n ` guard var items = ${field.key} else { return false }`,\n ` if !${bodyName}.patch(&items, p) { return false }`,\n ` ${field.key} = items`\n ] : [\n ` if !${bodyName}.patch(&${field.key}, p) { return false }`\n ],\n \" }\"\n ];\n }),\n ...fields.map(function(field) {\n return field.list ? ` \\`${field.name}\\` = ${field.key}` : ` if let v = d.${field.key} { \\`${field.name}\\` = v }`;\n }),\n \" oneSeq = d.seq\",\n \" return true\",\n \" }\",\n \" }\"\n ];\n }),\n // nil asks the host for a full document\n \" static func update(_ held: AnyObject?, _ name: String, _ text: String) throws -> AnyObject? {\",\n \" let data = Data(text.utf8)\",\n \" switch name {\",\n ...views.flatMap(function(view) {\n return [\n ` case ${JSON.stringify(view.name)}:`,\n ` let doc = try decode(Doc_${view.name}.self, from: data)`,\n ` if doc.base == nil { return try Held_${view.name}(doc) }`,\n ` guard let h = held as? Held_${view.name}, h.apply(doc) else { return nil }`,\n \" return h\"\n ];\n }),\n notLinked2,\n \" }\",\n \" }\",\n \" static func build(_ held: AnyObject, _ name: String, _ emit: @escaping (String, String) -> Void) throws -> AnyView {\",\n \" switch name {\",\n ...views.flatMap(function(view) {\n return [\n ` case ${JSON.stringify(view.name)}:`,\n ` guard ${fieldsOf(view).length > 0 ? \"let props = held as?\" : \"held is\"} Held_${view.name} else { throw NSError(domain: \"OneNativeSource\", code: 1, userInfo: [NSLocalizedDescriptionKey: \"props of another view for \\\\(name)\"]) }`,\n ` return AnyView(${view.name}(`,\n ...view.props.map(function(prop, index) {\n var comma = index === view.props.length - 1 ? \"\" : \",\";\n var key = JSON.stringify(prop.name);\n if (prop.callback) {\n var params = prop.callback.map(function(arg, n) {\n return `a${n}: ${arg.nativeType}`;\n }).join(\", \");\n var lambda = `{ (${params}) -> Void in emit(${key}, args([${prop.callback.map(function(_, n) {\n return `a${n}`;\n }).join(\", \")}])) }`;\n return ` ${prop.name}: ${prop.optional ? `props.\\`${prop.name}\\` == true ? ${lambda} : nil` : lambda}${comma}`;\n }\n return ` ${prop.name}: props.\\`${prop.name}\\`${comma}`;\n }),\n \" ))\"\n ];\n }),\n notLinked2,\n \" }\",\n \" }\",\n // one-shot entry for hosts that keep no held props (peach)\n \" static func view(_ name: String, _ propsJson: String, _ emit: @escaping (String, String) -> Void) throws -> AnyView {\",\n ' guard let held = try update(nil, name, propsJson) else { throw NSError(domain: \"OneNativeSource\", code: 1, userInfo: [NSLocalizedDescriptionKey: \"\\\\(name) needs a full props document\"]) }',\n \" return try build(held, name, emit)\",\n \" }\"\n ];\n };\n var source = [\n \"import Foundation\",\n \"import SwiftUI\",\n \"\",\n `@MainActor public enum ${bodyName} {`,\n ` public static let hash = ${JSON.stringify(hash)}`,\n \"#if os(WASI)\",\n \" private struct Request: Decodable { let module: String; let method: String; let argsJson: String; let contractHash: String }\",\n \" private struct Reply: Encodable { let ok: Bool; let value: String?; let error: String?; let pending: Int32? }\",\n \" private static var output: [UInt8] = []\",\n \" private static var finished: [Int32: Reply] = [:]\",\n \" private static var nextCall: Int32 = 0\",\n \" // peach runs tasks inline, so a call finishes before its task launch returns\",\n \" // unless it waits on the clock; then it answers pending and the host polls\",\n \" // it after running the timers.\",\n \" static func callWasm(_ payload: UnsafePointer<UInt8>?, _ length: Int32) -> UnsafeMutablePointer<UInt8>? {\",\n \" let id = nextCall\",\n \" nextCall &+= 1\",\n \" do {\",\n ' guard let payload, length >= 0 else { throw NSError(domain: \"OneNativeSource\", code: 2, userInfo: [NSLocalizedDescriptionKey: \"missing call payload\"]) }',\n \" let request = try JSONDecoder().decode(Request.self, from: Data(bytes: payload, count: Int(length)))\",\n ' guard request.contractHash == hash else { throw NSError(domain: \"OneNativeSource\", code: 4, userInfo: [NSLocalizedDescriptionKey: \"native module \\\\(request.module) changed; rebuild the app\"]) }',\n \" Task {\",\n \" do {\",\n \" finished[id] = Reply(ok: true, value: try await call(request.module, request.method, request.argsJson), error: nil, pending: nil)\",\n \" } catch {\",\n \" // the native hosts name the method on everything a call throws\",\n ' finished[id] = Reply(ok: false, value: nil, error: \"\\\\(request.module).\\\\(request.method): \\\\(error.localizedDescription)\", pending: nil)',\n \" }\",\n \" }\",\n \" } catch {\",\n \" finished[id] = Reply(ok: false, value: nil, error: error.localizedDescription, pending: nil)\",\n \" }\",\n \" return pollWasm(id)\",\n \" }\",\n \" static func pollWasm(_ id: Int32) -> UnsafeMutablePointer<UInt8>? {\",\n \" let reply = finished.removeValue(forKey: id) ?? Reply(ok: true, value: nil, error: nil, pending: id)\",\n ' let bytes = (try? JSONEncoder().encode(reply)) ?? Data(\"{\\\\\"ok\\\\\":false,\\\\\"error\\\\\":\\\\\"encoding failed\\\\\"}\".utf8)',\n \" let count = UInt32(bytes.count)\",\n \" output = [UInt8(count & 0xff), UInt8((count >> 8) & 0xff), UInt8((count >> 16) & 0xff), UInt8(count >> 24)] + Array(bytes)\",\n \" return output.withUnsafeMutableBufferPointer { $0.baseAddress }\",\n \" }\",\n \" private struct Event: Encodable { let channel: String; let args: String }\",\n \" private static var pendingEvents: [Event] = []\",\n \" // under wasi there is no javascript runtime, so posted events queue\",\n \" // here and the peach host drains them with peach_poll_events, using\",\n \" // the same length-prefixed framing as pollWasm.\",\n \" static func pollEvents() -> UnsafeMutablePointer<UInt8>? {\",\n \" let events = pendingEvents\",\n \" pendingEvents = []\",\n ' let bytes = (try? JSONEncoder().encode(events)) ?? Data(\"[]\".utf8)',\n \" let count = UInt32(bytes.count)\",\n \" output = [UInt8(count & 0xff), UInt8((count >> 8) & 0xff), UInt8((count >> 16) & 0xff), UInt8(count >> 24)] + Array(bytes)\",\n \" return output.withUnsafeMutableBufferPointer { $0.baseAddress }\",\n \" }\",\n \"#endif\",\n ...modules.map(function(module) {\n return ` private static let ${module.name}Instance = ${module.name}()`;\n }),\n // dates cross as ISO strings in both directions; the fractional reader\n // runs first because javascript always writes milliseconds.\n \" private nonisolated static let isoDate = Date.ISO8601FormatStyle()\",\n \" private nonisolated static let isoDateFractional = Date.ISO8601FormatStyle(includingFractionalSeconds: true)\",\n \" private nonisolated static func decodeDate(_ decoder: Decoder) throws -> Date {\",\n \" let container = try decoder.singleValueContainer()\",\n \" let text = try container.decode(String.self)\",\n \" if let date = (try? isoDateFractional.parse(text)) ?? (try? isoDate.parse(text)) { return date }\",\n ' throw DecodingError.dataCorruptedError(in: container, debugDescription: \"expected ISO date\")',\n \" }\",\n \" private static func decode<T: Decodable>(_ type: T.Type, from data: Data) throws -> T {\",\n \" let decoder = JSONDecoder()\",\n \" decoder.dateDecodingStrategy = .custom { try decodeDate($0) }\",\n \" decoder.dataDecodingStrategy = .base64\",\n \" return try decoder.decode(T.self, from: data)\",\n \" }\",\n \" private static func decode<T: Decodable>(_ value: Any, as type: T.Type) throws -> T {\",\n \" try decode(T.self, from: try JSONSerialization.data(withJSONObject: value, options: [.fragmentsAllowed]))\",\n \" }\",\n \" private static func encode(_ value: any Encodable) throws -> String {\",\n \" let encoder = JSONEncoder()\",\n \" encoder.dateEncodingStrategy = .iso8601\",\n \" encoder.dataEncodingStrategy = .base64\",\n \" return String(decoding: try encoder.encode(value), as: UTF8.self)\",\n \" }\",\n \" private static func encodeAny(_ value: any Encodable) -> String {\",\n ' (try? encode(value)) ?? \"null\"',\n \" }\",\n \" // subscribe cases and view callbacks both encode callback arguments\",\n \" // as a json array, so this helper stays outside the view-only glue.\",\n \" private static func args(_ values: [any Encodable]) -> String {\",\n ' \"[\" + values.map { encodeAny($0) }.joined(separator: \",\") + \"]\"',\n \" }\",\n \" // native events post over the one event bridge on device; under wasi\",\n \" // they queue for the peach host, which drains them with peach_poll_events.\",\n \" private static func postEvent(_ channel: String, _ args: String) {\",\n \" #if os(WASI)\",\n \" pendingEvents.append(Event(channel: channel, args: args))\",\n \" #else\",\n \" OneNativeSourceEmitter.send(channel, args)\",\n \" #endif\",\n \" }\",\n ...renderCall(),\n ...views.length > 0 ? renderViews() : [],\n \"}\",\n \"\",\n \"#if os(WASI)\",\n '@_expose(wasm, \"peach_call\")',\n '@_cdecl(\"peach_call\")',\n `@MainActor public func peach_call(_ payload: UnsafePointer<UInt8>?, _ length: Int32) -> UnsafeMutablePointer<UInt8>? { ${bodyName}.callWasm(payload, length) }`,\n '@_expose(wasm, \"peach_call_poll\")',\n '@_cdecl(\"peach_call_poll\")',\n `@MainActor public func peach_call_poll(_ id: Int32) -> UnsafeMutablePointer<UInt8>? { ${bodyName}.pollWasm(id) }`,\n \" // the host drains queued native events with this export, polling it\",\n \" // after running timers like it polls pending calls.\",\n '@_expose(wasm, \"peach_poll_events\")',\n '@_cdecl(\"peach_poll_events\")',\n `@MainActor public func peach_poll_events() -> UnsafeMutablePointer<UInt8>? { ${bodyName}.pollEvents() }`,\n // peach registers the typed views once per instance: the package's own\n // @main, if any, stays its default view, as on device\n ...views.length > 0 ? [\n '@_expose(wasm, \"peach_register_views\")',\n '@_cdecl(\"peach_register_views\")',\n \"@MainActor public func peach_register_views() {\",\n \" PeachTypedViews.register { name, contractHash, propsJson, emit in\",\n ` guard contractHash == ${bodyName}.hash else { return AnyView(Text(\"swift view ${packageId}.\\\\(name) changed; rebuild the app\").foregroundStyle(.red)) }`,\n ` do { return try ${bodyName}.view(name, propsJson, emit) } catch { return AnyView(Text(\"\\\\(name): \\\\(error.localizedDescription)\").foregroundStyle(.red)) }`,\n \" }\",\n \"}\"\n ] : [],\n ...!hasMain ? [\n `@main struct OneNativeSourceMain_${packageId}: App {`,\n \" var body: some Scene { WindowGroup { EmptyView() } }\",\n \"}\"\n ] : [],\n \"#endif\",\n \"\",\n // the dispatch class answers nitro on device; wasi uses the peach_call\n // exports above, and its sdk mirrors objectivec, so gate it off.\n \"#if canImport(ObjectiveC) && !os(WASI)\",\n `@objc(${className}) @MainActor public final class ${className}: NSObject, OneNativeSourceDispatch {`,\n \" public required override init() {}\",\n ` public var contractHash: String { ${bodyName}.hash }`,\n ` public func call(_ module: String, _ method: String, _ argsJson: String) async throws -> String { try await ${bodyName}.call(module, method, argsJson) }`,\n \"}\",\n ...views.length > 0 ? [\n `@objc(${viewsName}) @MainActor public final class ${viewsName}: NSObject, OneNativeSourceViewDispatch {`,\n \" public required override init() {}\",\n ` public var contractHash: String { ${bodyName}.hash }`,\n ` public func view(_ name: String, _ propsJson: String, _ emit: @escaping (String, String) -> Void) throws -> AnyView { try ${bodyName}.view(name, propsJson, emit) }`,\n ` public func updateView(_ held: AnyObject?, _ name: String, _ document: String) throws -> AnyObject? { try ${bodyName}.update(held, name, document) }`,\n ` public func buildView(_ held: AnyObject, _ name: String, _ emit: @escaping (String, String) -> Void) throws -> AnyView { try ${bodyName}.build(held, name, emit) }`,\n \"}\"\n ] : [],\n \"#endif\",\n \"\"\n ].join(\"\\n\");\n return {\n hash,\n source\n };\n}\nfunction unboxedZero(type) {\n if (type === \"Int\") return \"0\";\n if (type === \"Long\") return \"0L\";\n if (type === \"Double\") return \"0.0\";\n if (type === \"Float\") return \"0f\";\n if (type === \"Boolean\") return \"false\";\n return null;\n}\nfunction renderKotlinSourceGlue(sourceId, contract) {\n if (contract.language !== \"kotlin\") throw new Error(\"kotlin glue received a swift contract\");\n if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(sourceId)) throw new Error(`invalid kotlin source id ${sourceId}`);\n var hash = createHash(\"sha256\").update(JSON.stringify({\n sourceId,\n contract: contract.hash\n })).digest(\"hex\");\n var readerClass = `OneJsonReader_${sourceId}`;\n var tokenClass = `OneJsonToken_${sourceId}`;\n var structsByName = new Map(contract.structs.map(function(entry) {\n return [\n entry.name,\n entry\n ];\n }));\n var enumsByName = new Map(contract.enums.map(function(entry) {\n return [\n entry.name,\n entry\n ];\n }));\n var qualified = function qualified2(name) {\n return contract.packageName ? `${contract.packageName}.${name}` : name;\n };\n var isDateType = function isDateType2(type) {\n return type === \"Date\" || type === \"java.util.Date\";\n };\n var qualifiedType = function qualifiedType1(type) {\n if (type.endsWith(\"?\")) return `${qualifiedType(type.slice(0, -1))}?`;\n if (type.startsWith(\"List<\") && type.endsWith(\">\")) return `List<${qualifiedType(type.slice(5, -1))}>`;\n if (type.startsWith(\"Map<String,\") && type.endsWith(\">\")) return `Map<String, ${qualifiedType(type.slice(11, -1))}>`;\n if (structsByName.has(type) || enumsByName.has(type)) return qualified(type);\n if (isDateType(type)) return \"java.util.Date\";\n if ([\n \"String\",\n \"Boolean\",\n \"Double\",\n \"Float\",\n \"Int\",\n \"Long\",\n \"ByteArray\"\n ].includes(type)) return type;\n throw new Error(`unsupported kotlin glue type ${type}`);\n };\n var mentions = function mentions1(type, match) {\n var rest = type;\n while (rest.endsWith(\"?\")) rest = rest.slice(0, -1);\n if (rest.startsWith(\"List<\") && rest.endsWith(\">\")) return mentions(rest.slice(5, -1), match);\n if (rest.startsWith(\"Map<String,\") && rest.endsWith(\">\")) return mentions(rest.slice(11, -1), match);\n return match(rest);\n };\n var nativeTypes = [\n ...contract.modules.flatMap(function(module) {\n return module.methods.flatMap(function(method) {\n var _ref;\n var _method_subscription;\n return [\n ...method.parameters.map(function(parameter) {\n return parameter.nativeType;\n }),\n method.nativeResult,\n ...(_ref = (_method_subscription = method.subscription) === null || _method_subscription === void 0 ? void 0 : _method_subscription.payload.map(function(arg) {\n return arg.nativeType;\n })) !== null && _ref !== void 0 ? _ref : []\n ];\n });\n }),\n ...contract.structs.flatMap(function(struct) {\n return struct.fields.map(function(field) {\n return field.nativeType;\n });\n }),\n ...contract.views.flatMap(function(view) {\n return view.props.flatMap(function(prop) {\n var _ref;\n var _prop_callback;\n return [\n prop.nativeType,\n ...(_ref = (_prop_callback = prop.callback) === null || _prop_callback === void 0 ? void 0 : _prop_callback.map(function(arg) {\n return arg.nativeType;\n })) !== null && _ref !== void 0 ? _ref : []\n ];\n });\n })\n ];\n var needsEvents = contract.modules.some(function(module) {\n return module.methods.some(function(method) {\n return method.subscription;\n });\n });\n var needsDate = nativeTypes.some(function(type) {\n return mentions(type, isDateType);\n });\n var needsData = nativeTypes.some(function(type) {\n return mentions(type, function(leaf) {\n return leaf === \"ByteArray\";\n });\n });\n var value = function value1(type, reader, path) {\n if (type.endsWith(\"?\")) {\n return `(if (${reader}.peek() == ${tokenClass}.NULL) { ${reader}.nextNull(); null } else ${value(type.slice(0, -1), reader, path)})`;\n }\n if (type === \"String\") return `readString(${reader}, ${path})`;\n if (type === \"Boolean\") return `readBoolean(${reader}, ${path})`;\n if (type === \"Double\") return `readDouble(${reader}, ${path})`;\n if (type === \"Float\") return `readDouble(${reader}, ${path}).toFloat()`;\n if (type === \"Int\") return `readInt(${reader}, ${path})`;\n if (type === \"Long\") return `readLong(${reader}, ${path})`;\n if (isDateType(type)) return `readDate(${reader}, ${path})`;\n if (type === \"ByteArray\") return `readData(${reader}, ${path})`;\n if (structsByName.has(type)) return `read${type}(${reader}, ${path})`;\n if (enumsByName.has(type)) return `read${type}(${reader}, ${path})`;\n if (type.startsWith(\"List<\") && type.endsWith(\">\")) {\n return `readList(${reader}, ${path}) { itemReader, itemPath -> ${value(type.slice(5, -1), \"itemReader\", \"itemPath\")} }`;\n }\n if (type.startsWith(\"Map<String,\") && type.endsWith(\">\")) {\n return `readMap(${reader}, ${path}) { itemReader, itemPath -> ${value(type.slice(11, -1), \"itemReader\", \"itemPath\")} }`;\n }\n throw new Error(`unsupported kotlin glue type ${type}`);\n };\n var encode = function encode1(type, accessor) {\n if (type.endsWith(\"?\")) {\n return `(${accessor}?.let { ${encode(type.slice(0, -1), \"it\")} } ?: JSONObject.NULL)`;\n }\n if (isDateType(type)) return `dateToString(${accessor})`;\n if (type === \"ByteArray\") return `android.util.Base64.encodeToString(${accessor}, android.util.Base64.NO_WRAP)`;\n if (structsByName.has(type)) return `encode${type}(${accessor})`;\n if (enumsByName.has(type)) return `${accessor}.name`;\n if (type.startsWith(\"List<\") && type.endsWith(\">\")) {\n return `JSONArray().apply { for (item in ${accessor}) put(${encode(type.slice(5, -1), \"item\")}) }`;\n }\n if (type.startsWith(\"Map<String,\") && type.endsWith(\">\")) {\n return `JSONObject().apply { for ((key, entry) in ${accessor}) put(key, ${encode(type.slice(11, -1), \"entry\")}) }`;\n }\n return `JSONObject.wrap(${accessor})`;\n };\n var cap = function cap2(name) {\n return name.slice(0, 1).toUpperCase() + name.slice(1);\n };\n var structHelpers = contract.structs.flatMap(function(struct) {\n return [\n `private fun read${struct.name}(reader: ${readerClass}, path: String): ${qualified(struct.name)} {`,\n ` if (reader.peek() != ${tokenClass}.BEGIN_OBJECT) error(\"$path: expected object\")`,\n \" reader.beginObject()\",\n // required fields start null and fail at the constructor when the key\n // never arrived; a required nullable needs its own flag so an explicit\n // null does not read as missing. defaulted fields start at the default.\n ...struct.fields.flatMap(function(field) {\n var declared = qualifiedType(field.nativeType);\n if (field.optional) return [\n ` var ${field.name}: ${declared} = ${field.fallback}`\n ];\n var zero = unboxedZero(field.nativeType);\n if (zero !== null) return [\n ` var ${field.name} = ${zero}`,\n ` var has${cap(field.name)} = false`\n ];\n var boxed = declared.endsWith(\"?\") ? declared : `${declared}?`;\n return [\n ` var ${field.name}: ${boxed} = null`,\n ...field.nativeType.endsWith(\"?\") ? [\n ` var has${cap(field.name)} = false`\n ] : []\n ];\n }),\n \" while (reader.hasNext()) {\",\n ` when (reader.selectName(${struct.fields.map(function(field) {\n return JSON.stringify(field.name);\n }).join(\", \")})) {`,\n ...struct.fields.map(function(field, index) {\n var fieldPath = `\"$path.${field.name}\"`;\n var read = `${field.name} = ${value(field.nativeType, \"reader\", fieldPath)}`;\n var needsFlag = !field.optional && (field.nativeType.endsWith(\"?\") || unboxedZero(field.nativeType) !== null);\n return needsFlag ? ` ${index} -> { ${read}; has${cap(field.name)} = true }` : ` ${index} -> ${read}`;\n }),\n \" else -> reader.skipValue()\",\n \" }\",\n \" }\",\n \" reader.endObject()\",\n ...struct.fields.flatMap(function(field) {\n return !field.optional && unboxedZero(field.nativeType) !== null ? [\n ` if (!has${cap(field.name)}) error(\"$path.${field.name}: required\")`\n ] : [];\n }),\n ` return ${qualified(struct.name)}(`,\n ...struct.fields.map(function(field) {\n if (field.optional) return ` ${field.name} = ${field.name},`;\n if (field.nativeType.endsWith(\"?\")) return ` ${field.name} = (if (has${cap(field.name)}) ${field.name} else error(\"$path.${field.name}: required\")),`;\n if (unboxedZero(field.nativeType) !== null) return ` ${field.name} = ${field.name},`;\n return ` ${field.name} = (${field.name} ?: error(\"$path.${field.name}: required\")),`;\n }),\n \" )\",\n \"}\",\n `private fun encode${struct.name}(value: ${qualified(struct.name)}): JSONObject {`,\n \" return JSONObject()\",\n ...struct.fields.map(function(field) {\n return ` .put(${JSON.stringify(field.name)}, ${encode(field.nativeType, `value.${field.name}`)})`;\n }),\n \"}\"\n ];\n });\n var enumHelpers = contract.enums.flatMap(function(entry) {\n return [\n `private fun read${entry.name}(reader: ${readerClass}, path: String): ${qualified(entry.name)} {`,\n \" val text = readString(reader, path)\",\n ` return try { ${qualified(entry.name)}.valueOf(text) } catch (e: IllegalArgumentException) { error(\"$path: expected one of ${entry.cases.map(function(item) {\n return item.name;\n }).join(\", \")}\") }`,\n \"}\"\n ];\n });\n var source = [\n \"import androidx.annotation.Keep\",\n ...contract.views.length === 0 ? [] : [\n \"import androidx.compose.runtime.Composable\",\n \"import dev.onejs.one.OneNativeSourceKeyedState\",\n \"import dev.onejs.one.OneNativeSourceViewDispatch\"\n ],\n \"import dev.onejs.one.OneNativeSourceDispatch\",\n ...needsEvents ? [\n \"import dev.onejs.one.source.OneNativeSourceEvents\"\n ] : [],\n \"import org.json.JSONArray\",\n \"import org.json.JSONObject\",\n \"\",\n `private enum class ${tokenClass} { BEGIN_OBJECT, END_OBJECT, BEGIN_ARRAY, END_ARRAY, STRING, NUMBER, BOOLEAN, NULL }`,\n \"\",\n \"// a forward-only json reader over the props text: values decode straight\",\n \"// into typed props in one pass with no intermediate JSONObject. pure\",\n \"// kotlin with no java or android imports, so the same glue compiles for\",\n \"// kotlin/wasm.\",\n `private class ${readerClass}(private val text: String) {`,\n \" private var pos = 0\",\n \"\",\n \" private fun skipSpace() {\",\n \" while (pos < text.length) {\",\n \" when (text[pos]) {\",\n \" ' ', '\\\\t', '\\\\n', '\\\\r' -> pos++\",\n \" else -> return\",\n \" }\",\n \" }\",\n \" }\",\n \"\",\n ' private fun fail(message: String): Nothing = throw IllegalStateException(\"$message near offset $pos\")',\n \"\",\n ` fun peek(): ${tokenClass} {`,\n \" skipSpace()\",\n ' if (pos >= text.length) fail(\"unexpected end of json\")',\n \" return when (text[pos]) {\",\n ` '{' -> ${tokenClass}.BEGIN_OBJECT`,\n ` '}' -> ${tokenClass}.END_OBJECT`,\n ` '[' -> ${tokenClass}.BEGIN_ARRAY`,\n ` ']' -> ${tokenClass}.END_ARRAY`,\n ` '\"' -> ${tokenClass}.STRING`,\n ` 't', 'f' -> ${tokenClass}.BOOLEAN`,\n ` 'n' -> ${tokenClass}.NULL`,\n ` '-', in '0'..'9' -> ${tokenClass}.NUMBER`,\n ' else -> fail(\"unexpected character\")',\n \" }\",\n \" }\",\n \"\",\n \" private fun expect(char: Char) {\",\n \" skipSpace()\",\n ` if (pos >= text.length || text[pos] != char) fail(\"expected '$char'\")`,\n \" pos++\",\n \" }\",\n \"\",\n \" fun beginObject() = expect('{')\",\n \" fun endObject() = expect('}')\",\n \" fun beginArray() = expect('[')\",\n \" fun endArray() = expect(']')\",\n \"\",\n \" // inside an object or array: true when another value follows, consuming\",\n \" // a comma first; false at the closing bracket.\",\n \" fun hasNext(): Boolean {\",\n \" skipSpace()\",\n ' if (pos >= text.length) fail(\"unexpected end of json\")',\n \" if (text[pos] == ',') {\",\n \" pos++\",\n \" return true\",\n \" }\",\n \" return text[pos] != '}' && text[pos] != ']'\",\n \" }\",\n \"\",\n \" fun nextName(): String {\",\n \" skipSpace()\",\n ` if (pos >= text.length || text[pos] != '\"') fail(\"expected a name\")`,\n \" val name = readString()\",\n \" skipSpace()\",\n ` if (pos >= text.length || text[pos] != ':') fail(\"expected ':'\")`,\n \" pos++\",\n \" return name\",\n \" }\",\n \"\",\n \" fun nextString(): String {\",\n \" skipSpace()\",\n ` if (pos >= text.length || text[pos] != '\"') fail(\"expected a string\")`,\n \" return readString()\",\n \" }\",\n \"\",\n \" // matches an object name against the expected keys without allocating\",\n \" // it: the index of the match, or -1 for an unknown key. the name and\",\n \" // colon are consumed either way, so the caller skips the value on -1.\",\n \" fun selectName(vararg options: String): Int {\",\n \" skipSpace()\",\n ` if (pos >= text.length || text[pos] != '\"') fail(\"expected a name\")`,\n \" var end = pos + 1\",\n ` while (end < text.length && text[end] != '\"' && text[end] != '\\\\\\\\') end++`,\n \" if (end < text.length && text[end] == '\\\\\\\\') {\",\n \" val decoded = readString()\",\n \" skipSpace()\",\n ` if (pos >= text.length || text[pos] != ':') fail(\"expected ':'\")`,\n \" pos++\",\n \" return options.indexOf(decoded)\",\n \" }\",\n ' if (end >= text.length) fail(\"unterminated string\")',\n \" val length = end - pos - 1\",\n \" var index = -1\",\n \" for (i in options.indices) {\",\n \" if (options[i].length == length && text.regionMatches(pos + 1, options[i], 0, length)) { index = i; break }\",\n \" }\",\n \" pos = end + 1\",\n \" skipSpace()\",\n ` if (pos >= text.length || text[pos] != ':') fail(\"expected ':'\")`,\n \" pos++\",\n \" return index\",\n \" }\",\n \"\",\n \" private fun readString(): String {\",\n \" pos++ // the opening quote\",\n \" var end = pos\",\n ` while (end < text.length && text[end] != '\"' && text[end] != '\\\\\\\\') end++`,\n ` if (end < text.length && text[end] == '\"') {`,\n \" val out = text.substring(pos, end)\",\n \" pos = end + 1\",\n \" return out\",\n \" }\",\n \" val out = StringBuilder(text.substring(pos, end))\",\n \" pos = end\",\n \" while (true) {\",\n ' if (pos >= text.length) fail(\"unterminated string\")',\n \" val char = text[pos++]\",\n ` if (char == '\"') return out.toString()`,\n \" if (char != '\\\\\\\\') {\",\n \" out.append(char)\",\n \" continue\",\n \" }\",\n ' if (pos >= text.length) fail(\"unterminated escape\")',\n \" when (text[pos++]) {\",\n ` '\"', '\\\\\\\\', '/' -> out.append(text[pos - 1])`,\n \" 'b' -> out.append('\\\\b')\",\n \" 'f' -> out.append('\\\\u000C')\",\n \" 'n' -> out.append('\\\\n')\",\n \" 'r' -> out.append('\\\\r')\",\n \" 't' -> out.append('\\\\t')\",\n \" 'u' -> {\",\n ' if (pos + 4 > text.length) fail(\"bad unicode escape\")',\n \" var code = 0\",\n \" for (i in 0 until 4) {\",\n \" val digit = text[pos + i].lowercaseChar()\",\n ` val value = if (digit in '0'..'9') digit - '0' else if (digit in 'a'..'f') digit - 'a' + 10 else fail(\"bad unicode escape\")`,\n \" code = code * 16 + value\",\n \" }\",\n \" pos += 4\",\n \" out.append(code.toChar())\",\n \" }\",\n ' else -> fail(\"bad escape\")',\n \" }\",\n \" }\",\n \" }\",\n \"\",\n \" fun nextDouble(): Double {\",\n \" skipSpace()\",\n \" val start = pos\",\n \" while (pos < text.length && (text[pos] in '0'..'9' || text[pos] == '.' || text[pos] == 'e' || text[pos] == 'E' || text[pos] == '+' || text[pos] == '-')) pos++\",\n ' if (pos == start) fail(\"expected a number\")',\n ' return text.substring(start, pos).toDoubleOrNull() ?: fail(\"bad number\")',\n \" }\",\n \"\",\n \" // plain-digit fast paths: the value when the token at pos is an integer\",\n \" // in range, null when it needs the double slow path. nothing is\",\n \" // consumed on null, so the caller falls back to nextDouble.\",\n \" fun nextIntOrNull(): Int? {\",\n \" var i = pos\",\n \" val negative = i < text.length && text[i] == '-'\",\n \" if (negative) i++\",\n \" var value = 0L\",\n \" val digits = i\",\n \" while (i < text.length && text[i] in '0'..'9') {\",\n \" value = value * 10 + (text[i] - '0')\",\n \" if (value > 2147483648L) return null\",\n \" i++\",\n \" }\",\n \" if (i == digits) return null\",\n \" if (i < text.length && (text[i] == '.' || text[i] == 'e' || text[i] == 'E')) return null\",\n \" if (!negative && value > 2147483647L) return null\",\n \" pos = i\",\n \" return if (negative) -value.toInt() else value.toInt()\",\n \" }\",\n \"\",\n \" fun nextLongOrNull(): Long? {\",\n \" var i = pos\",\n \" val negative = i < text.length && text[i] == '-'\",\n \" if (negative) i++\",\n \" var value = 0L\",\n \" val digits = i\",\n \" while (i < text.length && text[i] in '0'..'9') {\",\n \" val digit = (text[i] - '0').toLong()\",\n \" if (value > (9007199254740991L - digit) / 10) return null\",\n \" value = value * 10 + digit\",\n \" i++\",\n \" }\",\n \" if (i == digits) return null\",\n \" if (i < text.length && (text[i] == '.' || text[i] == 'e' || text[i] == 'E')) return null\",\n \" pos = i\",\n \" return if (negative) -value else value\",\n \" }\",\n \"\",\n \" fun nextBoolean(): Boolean {\",\n \" skipSpace()\",\n ' if (text.startsWith(\"true\", pos)) {',\n \" pos += 4\",\n \" return true\",\n \" }\",\n ' if (text.startsWith(\"false\", pos)) {',\n \" pos += 5\",\n \" return false\",\n \" }\",\n ' fail(\"expected a boolean\")',\n \" }\",\n \"\",\n \" fun nextNull() {\",\n \" skipSpace()\",\n ' if (!text.startsWith(\"null\", pos)) fail(\"expected null\")',\n \" pos += 4\",\n \" }\",\n \"\",\n \" fun skipValue() {\",\n \" when (peek()) {\",\n ` ${tokenClass}.BEGIN_OBJECT -> {`,\n \" beginObject()\",\n \" while (hasNext()) {\",\n \" nextName()\",\n \" skipValue()\",\n \" }\",\n \" endObject()\",\n \" }\",\n ` ${tokenClass}.BEGIN_ARRAY -> {`,\n \" beginArray()\",\n \" while (hasNext()) {\",\n \" skipValue()\",\n \" }\",\n \" endArray()\",\n \" }\",\n ` ${tokenClass}.STRING -> nextString()`,\n ` ${tokenClass}.NUMBER -> nextDouble()`,\n ` ${tokenClass}.BOOLEAN -> nextBoolean()`,\n ` ${tokenClass}.NULL -> nextNull()`,\n ' else -> fail(\"unexpected value\")',\n \" }\",\n \" }\",\n \"\",\n \" fun endDocument() {\",\n \" skipSpace()\",\n ' if (pos != text.length) fail(\"trailing characters\")',\n \" }\",\n \"}\",\n \"\",\n `private fun readString(reader: ${readerClass}, path: String): String {`,\n ` if (reader.peek() != ${tokenClass}.STRING) error(\"$path: expected string\")`,\n \" return reader.nextString()\",\n \"}\",\n `private fun readBoolean(reader: ${readerClass}, path: String): Boolean {`,\n ` if (reader.peek() != ${tokenClass}.BOOLEAN) error(\"$path: expected boolean\")`,\n \" return reader.nextBoolean()\",\n \"}\",\n `private fun readDouble(reader: ${readerClass}, path: String): Double {`,\n ` if (reader.peek() != ${tokenClass}.NUMBER) error(\"$path: expected number\")`,\n \" val result = reader.nextDouble()\",\n ' if (!result.isFinite()) error(\"$path: expected finite number\")',\n \" return result\",\n \"}\",\n `private fun readInt(reader: ${readerClass}, path: String): Int {`,\n ` if (reader.peek() != ${tokenClass}.NUMBER) error(\"$path: expected number\")`,\n \" reader.nextIntOrNull()?.let { return it }\",\n \" val result = readDouble(reader, path)\",\n ' if (result % 1.0 != 0.0 || result < Int.MIN_VALUE || result > Int.MAX_VALUE) error(\"$path: expected Int\")',\n \" return result.toInt()\",\n \"}\",\n `private fun readLong(reader: ${readerClass}, path: String): Long {`,\n ` if (reader.peek() != ${tokenClass}.NUMBER) error(\"$path: expected number\")`,\n \" reader.nextLongOrNull()?.let { return it }\",\n \" val result = readDouble(reader, path)\",\n ' if (result % 1.0 != 0.0 || result < -9007199254740991.0 || result > 9007199254740991.0) error(\"$path: expected safe Long\")',\n \" return result.toLong()\",\n \"}\",\n \"// the host sends true for each callback the element passed; any other\",\n \"// value reads as absent.\",\n `private fun readOptBoolean(reader: ${readerClass}): Boolean {`,\n ` if (reader.peek() != ${tokenClass}.BOOLEAN) {`,\n \" reader.skipValue()\",\n \" return false\",\n \" }\",\n \" return reader.nextBoolean()\",\n \"}\",\n `private fun <T> readList(reader: ${readerClass}, path: String, read: (${readerClass}, String) -> T): List<T> {`,\n ` if (reader.peek() != ${tokenClass}.BEGIN_ARRAY) error(\"$path: expected array\")`,\n \" reader.beginArray()\",\n \" val result = mutableListOf<T>()\",\n \" var index = 0\",\n \" while (reader.hasNext()) {\",\n ' result.add(read(reader, \"$path[$index]\"))',\n \" index++\",\n \" }\",\n \" reader.endArray()\",\n \" return result\",\n \"}\",\n `private fun <T> readMap(reader: ${readerClass}, path: String, read: (${readerClass}, String) -> T): Map<String, T> {`,\n ` if (reader.peek() != ${tokenClass}.BEGIN_OBJECT) error(\"$path: expected object\")`,\n \" reader.beginObject()\",\n \" val result = mutableMapOf<String, T>()\",\n \" while (reader.hasNext()) {\",\n \" val key = reader.nextName()\",\n ' result[key] = read(reader, \"$path.$key\")',\n \" }\",\n \" reader.endObject()\",\n \" return result\",\n \"}\",\n // the encoder writes ISO with milliseconds and reads with or without\n // them, so swift, kotlin and javascript dates all parse everywhere.\n ...needsDate ? [\n `private fun readDate(reader: ${readerClass}, path: String): java.util.Date {`,\n \" val text = readString(reader, path)\",\n ` for (pattern in arrayOf(\"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\", \"yyyy-MM-dd'T'HH:mm:ss'Z'\")) {`,\n \" try {\",\n ' return java.text.SimpleDateFormat(pattern, java.util.Locale.US).apply { timeZone = java.util.TimeZone.getTimeZone(\"UTC\"); isLenient = false }.parse(text) ?: error(\"$path: expected date\")',\n \" } catch (parseError: java.text.ParseException) { }\",\n \" }\",\n ' error(\"$path: expected ISO date\")',\n \"}\",\n \"private fun dateToString(value: java.util.Date): String =\",\n ` java.text.SimpleDateFormat(\"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\", java.util.Locale.US).apply { timeZone = java.util.TimeZone.getTimeZone(\"UTC\") }.format(value)`\n ] : [],\n ...needsData ? [\n `private fun readData(reader: ${readerClass}, path: String): ByteArray {`,\n \" try {\",\n \" return android.util.Base64.decode(readString(reader, path), android.util.Base64.NO_WRAP)\",\n \" } catch (decodeError: IllegalArgumentException) {\",\n ' error(\"$path: expected base64 data\")',\n \" }\",\n \"}\"\n ] : [],\n ...structHelpers,\n ...enumHelpers,\n \"\",\n `@Keep class OneNativeSource_${sourceId}: OneNativeSourceDispatch {`,\n ` override val contractHash = ${JSON.stringify(hash)}`,\n \" override suspend fun call(module: String, method: String, argsJson: String): String {\",\n ` val reader = ${readerClass}(argsJson)`,\n ` if (reader.peek() != ${tokenClass}.BEGIN_ARRAY) error(\"args must be a JSON array\")`,\n \" reader.beginArray()\",\n \" return when (module) {\",\n ...contract.modules.flatMap(function(module) {\n return [\n ` ${JSON.stringify(`${sourceId}.${module.name}`)} -> when (method) {`,\n ...module.methods.flatMap(function(method) {\n var subscription = method.subscription;\n if (subscription) {\n var channel = `OneNativeSource.${sourceId}.${module.name}.${method.name}`;\n var closure = subscription.payload.length === 0 ? `{ OneNativeSourceEvents.send(${JSON.stringify(channel)}, JSONArray().toString()) }` : `{ ${subscription.payload.map(function(_, index) {\n return `a${index}`;\n }).join(\", \")} -> OneNativeSourceEvents.send(${JSON.stringify(channel)}, JSONArray()${subscription.payload.map(function(arg, index) {\n return `.put(${encode(arg.nativeType, `a${index}`)})`;\n }).join(\"\")}.toString()) }`;\n return [\n ` ${JSON.stringify(method.name)} -> {`,\n ` require(!reader.hasNext()) { \"${sourceId}.${module.name}.${method.name} subscribes; it takes no arguments\" }`,\n \" reader.endArray()\",\n \" reader.endDocument()\",\n ` ${qualified(module.name)}.${method.name}(${closure})`,\n ' \"null\"',\n \" }\"\n ];\n }\n var lines = [\n ` ${JSON.stringify(method.name)} -> {`\n ];\n var arityMessage = `${sourceId}.${module.name}.${method.name} expects ${method.parameters.length} arguments`;\n method.parameters.forEach(function(parameter, index) {\n lines.push(` val arg${index} = ${value(parameter.nativeType, \"reader\", JSON.stringify(`args[${index}]`))}`);\n if (index < method.parameters.length - 1) {\n lines.push(` require(reader.hasNext()) { ${JSON.stringify(arityMessage)} }`);\n }\n });\n lines.push(` require(!reader.hasNext()) { ${JSON.stringify(arityMessage)} }`);\n lines.push(\" reader.endArray()\", \" reader.endDocument()\");\n var call = `${qualified(module.name)}.${method.name}(${method.parameters.map(function(_, index) {\n return `arg${index}`;\n }).join(\", \")})`;\n if (method.result === \"void\") {\n lines.push(` ${call}`, ' \"null\"');\n } else {\n lines.push(` val result = ${call}`);\n if (method.nativeResult === \"Long\") {\n lines.push(' require(result >= -9007199254740991L && result <= 9007199254740991L) { \"result exceeds the JavaScript safe integer range\" }');\n }\n lines.push(` JSONArray().put(${encode(method.nativeResult, \"result\")}).toString().drop(1).dropLast(1)`);\n }\n return [\n ...lines,\n \" }\"\n ];\n }),\n ' else -> error(\"native method $module.$method is not linked; rebuild the app\")',\n \" }\"\n ];\n }),\n ' else -> error(\"native module $module is not linked; rebuild the app\")',\n \" }\",\n \" }\",\n \"}\",\n \"\",\n ...contract.views.length === 0 ? [] : viewGlue(sourceId, contract, hash, value, encode, qualifiedType)\n ].join(\"\\n\");\n return {\n hash,\n source\n };\n}\nfunction viewGlue(sourceId, contract, hash, value, encode, qualifiedType) {\n var qualifier = contract.packageName ? `${contract.packageName}.` : \"\";\n var cap = function cap2(name) {\n return name.slice(0, 1).toUpperCase() + name.slice(1);\n };\n var readerClass = `OneJsonReader_${sourceId}`;\n var tokenClass = `OneJsonToken_${sourceId}`;\n var SEQ_KEY = '\"\\\\$seq\"';\n var BASE_KEY = '\"\\\\$base\"';\n var LISTS_KEY = '\"\\\\$lists\"';\n var listElement = function listElement2(type) {\n var inner = type.endsWith(\"?\") ? type.slice(0, -1) : type;\n return inner.startsWith(\"List<\") && inner.endsWith(\">\") ? inner.slice(5, -1) : null;\n };\n var holders = contract.views.flatMap(function(view) {\n return [\n `private class Held${view.name}_${sourceId} {`,\n ...view.props.flatMap(function(prop) {\n if (prop.callback) {\n return prop.nativeType.endsWith(\"?\") ? [\n ` var has${cap(prop.name)}: Boolean = false`\n ] : [];\n }\n var declared = qualifiedType(prop.nativeType);\n if (prop.optional || prop.nativeType.endsWith(\"?\")) return [\n ` var ${prop.name}: ${declared} = null`\n ];\n var zero = unboxedZero(prop.nativeType);\n if (zero !== null) return [\n ` var ${prop.name}: ${declared} = ${zero}`\n ];\n if (prop.nativeType === \"String\") return [\n ` var ${prop.name}: String = \"\"`\n ];\n return [\n ` var ${prop.name}: ${declared}? = null`\n ];\n }),\n \"}\"\n ];\n });\n var mergers = contract.views.flatMap(function(view) {\n return view.props.flatMap(function(prop) {\n if (prop.callback) return [];\n var elem = listElement(prop.nativeType);\n if (elem === null) return [];\n var element = qualifiedType(elem);\n return [\n `private fun mergeLists${view.name}${cap(prop.name)}(reader: ${readerClass}, old: List<${element}>?, prop: String): List<${element}>? {`,\n ` if (reader.peek() != ${tokenClass}.BEGIN_OBJECT) error(\"lists.$prop: expected object\")`,\n \" reader.beginObject()\",\n \" var length = -1\",\n ` var set: List<Pair<Int, ${element}>>? = null`,\n \" while (reader.hasNext()) {\",\n ' when (reader.selectName(\"length\", \"set\")) {',\n ` 0 -> length = readInt(reader, \"lists.$prop.length\")`,\n ` 1 -> set = readList(reader, \"lists.$prop.set\") { itemReader, itemPath -> itemReader.beginArray(); val si = readInt(itemReader, itemPath); if (!itemReader.hasNext()) error(\"$itemPath: expected element\"); val sv = ${value(elem, \"itemReader\", \"itemPath\")}; itemReader.endArray(); si to sv }`,\n \" else -> reader.skipValue()\",\n \" }\",\n \" }\",\n \" reader.endObject()\",\n ' if (length < 0) error(\"lists.$prop: needs length\")',\n // no held list, or a patch that does not fit it, is what a change\n // on a mismatched base looks like: return null so apply refuses and\n // the host resyncs. the caller errors when the base matches and the\n // merge still failed, which is a real protocol bug.\n \" val current = old ?: return null\",\n \" val entries = set ?: emptyList()\",\n ' for (j in 1 until entries.size) require(entries[j].first > entries[j - 1].first) { \"lists.$prop: set out of order\" }',\n ` val fresh = ArrayList<${element}>(length)`,\n \" var s = 0\",\n \" for (i in 0 until length) {\",\n \" if (s < entries.size && entries[s].first == i) { fresh.add(entries[s].second); s++ }\",\n \" else if (i < current.size) fresh.add(current[i])\",\n \" else return null\",\n \" }\",\n \" return fresh\",\n \"}\"\n ];\n });\n });\n return [\n ...holders,\n ...mergers,\n \"\",\n `@Keep class OneNativeSourceViews_${sourceId}: OneNativeSourceViewDispatch {`,\n ` override val contractHash = ${JSON.stringify(hash)}`,\n \" override fun apply(view: String, propsJson: String, state: OneNativeSourceKeyedState): Boolean {\",\n ` val reader = ${readerClass}(propsJson)`,\n ` if (reader.peek() != ${tokenClass}.BEGIN_OBJECT) error(\"props must be a JSON object\")`,\n \" reader.beginObject()\",\n \" when (view) {\",\n ...contract.views.flatMap(function(view) {\n var holder = `Held${view.name}_${sourceId}`;\n var lists = view.props.filter(function(prop) {\n return !prop.callback && listElement(prop.nativeType) !== null;\n });\n var options = [\n SEQ_KEY,\n BASE_KEY,\n LISTS_KEY,\n ...view.props.map(function(prop) {\n return JSON.stringify(prop.name);\n })\n ].join(\", \");\n return [\n ` ${JSON.stringify(view.name)} -> {`,\n ` var held = state.views[${JSON.stringify(view.name)}] as? ${holder}`,\n // the envelope plus the props decoded from this document; presence\n // flags gate the change commit so absent props keep held values.\n \" var seq = -1\",\n \" var hasSeq = false\",\n \" var base = -1\",\n \" var hasBase = false\",\n \" var sawLists = false\",\n ...view.props.flatMap(function(prop) {\n if (prop.callback) {\n return prop.nativeType.endsWith(\"?\") ? [\n ` var ${prop.name}Doc: Boolean? = null`\n ] : [];\n }\n var declared = qualifiedType(prop.nativeType);\n if (prop.optional || prop.nativeType.endsWith(\"?\")) {\n return [\n ` var ${prop.name}: ${declared} = null`,\n ` var has${cap(prop.name)} = false`\n ];\n }\n var zero = unboxedZero(prop.nativeType);\n if (zero !== null) return [\n ` var ${prop.name} = ${zero}`,\n ` var has${cap(prop.name)} = false`\n ];\n return [\n ` var ${prop.name}: ${declared}? = null`\n ];\n }),\n ...lists.map(function(prop) {\n return ` var ${prop.name}MergeFailed = false`;\n }),\n \" while (reader.hasNext()) {\",\n ` when (reader.selectName(${options})) {`,\n ' 0 -> { seq = readInt(reader, \"seq\"); hasSeq = true }',\n ' 1 -> { base = readInt(reader, \"base\"); hasBase = true }',\n \" 2 -> {\",\n \" sawLists = true\",\n ` if (reader.peek() != ${tokenClass}.BEGIN_OBJECT) error(\"lists: expected object\")`,\n \" reader.beginObject()\",\n \" while (reader.hasNext()) {\",\n ` when (reader.selectName(${lists.map(function(prop) {\n return JSON.stringify(prop.name);\n }).join(\", \")})) {`,\n ...lists.map(function(prop, listsIndex) {\n return ` ${listsIndex} -> { val merged${cap(prop.name)} = mergeLists${view.name}${cap(prop.name)}(reader, held?.${prop.name}, ${JSON.stringify(prop.name)}); if (merged${cap(prop.name)} == null) ${prop.name}MergeFailed = true else ${prop.name} = merged${cap(prop.name)} }`;\n }),\n \" else -> reader.skipValue()\",\n \" }\",\n \" }\",\n \" reader.endObject()\",\n \" }\",\n ...view.props.map(function(prop, index) {\n var arm = index + 3;\n if (prop.callback) {\n return prop.nativeType.endsWith(\"?\") ? ` ${arm} -> ${prop.name}Doc = readOptBoolean(reader)` : ` ${arm} -> reader.skipValue()`;\n }\n var path = JSON.stringify(`props.${prop.name}`);\n var read = `${prop.name} = ${value(prop.nativeType, \"reader\", path)}`;\n var needsFlag = prop.optional || prop.nativeType.endsWith(\"?\") || unboxedZero(prop.nativeType) !== null;\n return needsFlag ? ` ${arm} -> { ${read}; has${cap(prop.name)} = true }` : ` ${arm} -> ${read}`;\n }),\n \" else -> reader.skipValue()\",\n \" }\",\n \" }\",\n \" reader.endObject()\",\n \" reader.endDocument()\",\n ' if (hasBase && !hasSeq) error(\"seq: required\")',\n ' if (sawLists && !hasBase) error(\"lists: needs a change document\")',\n // full documents fill every field; a change already applied is a\n // no-op, one based on the held seq merges and advances it, and\n // anything else refuses so the host asks for a resync.\n \" if (!hasBase) {\",\n ...view.props.flatMap(function(prop) {\n if (prop.callback || prop.optional) return [];\n if (prop.nativeType.endsWith(\"?\") || unboxedZero(prop.nativeType) !== null) {\n return [\n ` if (!has${cap(prop.name)}) error(\"props.${prop.name}: required\")`\n ];\n }\n return [];\n }),\n ` val h = held ?: ${holder}().also { state.views[${JSON.stringify(view.name)}] = it }`,\n ...view.props.flatMap(function(prop) {\n if (prop.callback) {\n return prop.nativeType.endsWith(\"?\") ? [\n ` h.has${cap(prop.name)} = ${prop.name}Doc == true`\n ] : [];\n }\n if (prop.optional || prop.nativeType.endsWith(\"?\") || unboxedZero(prop.nativeType) !== null) {\n return [\n ` h.${prop.name} = ${prop.name}`\n ];\n }\n return [\n ` h.${prop.name} = (${prop.name} ?: error(\"props.${prop.name}: required\"))`\n ];\n }),\n \" if (hasSeq) state.seq = seq\",\n \" state.revision++\",\n \" return true\",\n \" }\",\n \" if (seq == state.seq) return true\",\n \" val h = held\",\n \" if (base == state.seq && h != null) {\",\n ...view.props.flatMap(function(prop) {\n if (prop.callback) {\n return prop.nativeType.endsWith(\"?\") ? [\n ` if (${prop.name}Doc != null) h.has${cap(prop.name)} = ${prop.name}Doc`\n ] : [];\n }\n var mergeFailed = listElement(prop.nativeType) !== null ? [\n ` if (${prop.name}MergeFailed) error(\"lists.${prop.name}: cannot merge\")`\n ] : [];\n if (prop.optional || prop.nativeType.endsWith(\"?\") || unboxedZero(prop.nativeType) !== null) {\n return [\n ...mergeFailed,\n ` if (has${cap(prop.name)}) h.${prop.name} = ${prop.name}`\n ];\n }\n return [\n ...mergeFailed,\n ` if (${prop.name} != null) h.${prop.name} = ${prop.name}`\n ];\n }),\n \" state.seq = seq\",\n \" state.revision++\",\n \" return true\",\n \" }\",\n \" return false\",\n \" }\"\n ];\n }),\n ' else -> error(\"composable $view is not linked; rebuild the app\")',\n \" }\",\n \" }\",\n \" @Composable\",\n \" override fun Content(view: String, state: OneNativeSourceKeyedState, emit: (String, String) -> Unit) {\",\n \" when (view) {\",\n ...contract.views.flatMap(function(view) {\n var holder = `Held${view.name}_${sourceId}`;\n return [\n ` ${JSON.stringify(view.name)} -> {`,\n \" // the revision read resubscribes this scope on every apply\",\n \" val revision = state.revision\",\n ` val held = state.views[${JSON.stringify(view.name)}] as? ${holder}`,\n \" held?.let { h ->\",\n ` ${qualifier}${view.name}(`,\n ...view.props.map(function(prop) {\n if (prop.callback) {\n var args = prop.callback.map(function(_, index) {\n return `a${index}`;\n });\n var types = prop.callback.map(function(arg) {\n return arg.nativeType;\n });\n var body = `emit(${JSON.stringify(prop.name)}, JSONArray()${args.map(function(arg, index) {\n return `.put(${encode(types[index], arg)})`;\n }).join(\"\")}.toString())`;\n var lambda = `{ ${args.length > 0 ? `${args.join(\", \")} -> ` : \"\"}${body} }`;\n return ` ${prop.name} = ${prop.nativeType.endsWith(\"?\") ? `if (h.has${cap(prop.name)}) (${lambda}) else null` : lambda},`;\n }\n if (prop.optional || prop.nativeType.endsWith(\"?\") || unboxedZero(prop.nativeType) !== null || prop.nativeType === \"String\") {\n return ` ${prop.name} = h.${prop.name},`;\n }\n return ` ${prop.name} = h.${prop.name}!!,`;\n }),\n \" )\",\n \" }\",\n \" }\"\n ];\n }),\n ' else -> error(\"composable $view is not linked; rebuild the app\")',\n \" }\",\n \" }\",\n \"}\",\n \"\"\n ];\n}\nexport {\n kotlinSourceId,\n nativeSourceContract,\n renderKotlinSourceGlue,\n renderSwiftSourceGlue,\n swiftPodManifest,\n writeNativeSourceDeclaration,\n writeNativeSourceDeclarations,\n writeSwiftPackageArtifacts\n};\n//# sourceMappingURL=nativeSourceContract.js.map\n"],"mappings":"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U,KAAK,MAAM,SAAS,IAAI,KAAK;MACnD,IAAI,MAAM,KAAK,UAAU,KAAK,IAAI;MAClC,IAAI,KAAK,UAAU;OACjB,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,GAAG;QAC9C,OAAO,IAAI,EAAE,IAAI,IAAI;OACvB,CAAC,CAAC,CAAC,KAAK,IAAI;OACZ,IAAI,SAAS,MAAM,OAAO,oBAAoB,IAAI,UAAU,KAAK,SAAS,IAAI,SAAS,GAAG,GAAG;QAC3F,OAAO,IAAI;OACb,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;OACd,OAAO,WAAW,KAAK,KAAK,IAAI,KAAK,WAAW,WAAW,KAAK,KAAK,eAAe,OAAO,UAAU,SAAS;MAChH;MACA,OAAO,WAAW,KAAK,KAAK,YAAY,KAAK,KAAK,IAAI;KACxD,CAAC;KACD;IACF;GACF,CAAC;GACD;GACA;GACA;GAEA;GACA;GACA;GACA;EACF;CACF;CACA,IAAI,SAAS;EACX;EACA;EACA;EACA,0BAA0B,SAAS;EACnC,8BAA8B,KAAK,UAAU,IAAI;EACjD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,GAAG,QAAQ,IAAI,SAAS,QAAQ;GAC9B,OAAO,wBAAwB,OAAO,KAAK,aAAa,OAAO,KAAK;EACtE,CAAC;EAGD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,GAAG,WAAW;EACd,GAAG,MAAM,SAAS,IAAI,YAAY,IAAI,CAAC;EACvC;EACA;EACA;EA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;EACA,iBAAiB,YAAY;EAC7B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,iBAAiB,WAAW;EAC5B;EACA;EACA;EACA,gBAAgB,WAAW;EAC3B,gBAAgB,WAAW;EAC3B,gBAAgB,WAAW;EAC3B,gBAAgB,WAAW;EAC3B,gBAAgB,WAAW;EAC3B,qBAAqB,WAAW;EAChC,gBAAgB,WAAW;EAC3B,6BAA6B,WAAW;EACxC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,WAAW;EACpB;EACA;EAC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"}
|