intlayer-editor 7.1.2 → 7.1.4
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/client/dist/assets/{CodeBlockShiki-DjZrDqS2.js → CodeBlockShiki-DKhht_eB.js} +3 -3
- package/client/dist/assets/{bundle-web-ByW6N4oT.js → bundle-web-Cw-fHx1Z.js} +1 -1
- package/client/dist/assets/{index-C_dK2Oqm.css → index-HnG5A4Ve.css} +0 -30
- package/client/dist/assets/{index-DTNRLJtJ.js → index-wlmXkWJe.js} +34766 -25348
- package/client/dist/index.html +2 -2
- package/package.json +15 -15
- package/server/dist/_virtual/rolldown_runtime.mjs +1 -1
- package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/transformJSFile.cjs +1 -1
- package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/transformJSFile.mjs +1 -2
- package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/transformJSFile.mjs.map +1 -1
- package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeContentDeclaration.cjs +2 -3
- package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeContentDeclaration.cjs.map +1 -1
- package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeContentDeclaration.mjs +2 -4
- package/server/dist/packages/@intlayer/chokidar/dist/esm/writeContentDeclaration/writeContentDeclaration.mjs.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformJSFile.mjs","names":["Node","SyntaxKind","Project","ts","IndentationText","QuoteKind","NewLineKind"],"sources":["../../../../../../../../../@intlayer/chokidar/dist/esm/writeContentDeclaration/transformJSFile.mjs"],"sourcesContent":["import { getNodeType } from \"@intlayer/core\";\nimport { NodeType } from \"@intlayer/types\";\nimport { IndentationText, NewLineKind, Node, Project, QuoteKind, SyntaxKind, ts } from \"ts-morph\";\n\n//#region src/writeContentDeclaration/transformJSFile.ts\n/**\n* Builds a translation initializer string for the 't' function call.\n* Creates a properly formatted translation object with locale keys and values.\n*\n* @param translationMap - Map of locale codes to translation values\n* @param typeArgumentsText - Optional generic type arguments for the translation function\n* @returns Formatted string for the translation function call\n*/\nconst buildTranslationInitializer = (translationMap, typeArgumentsText) => {\n\tconst translationEntries = Object.entries(translationMap).sort(([firstKey], [secondKey]) => firstKey.localeCompare(secondKey));\n\tconst translationParts = [];\n\tfor (const [localeCode, translationValue] of translationEntries) {\n\t\tconst formattedLocaleKey = /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(localeCode) ? localeCode : JSON.stringify(localeCode);\n\t\tif (typeof translationValue === \"string\") translationParts.push(`${formattedLocaleKey}: ${JSON.stringify(translationValue)}`);\n\t\telse if (Array.isArray(translationValue)) {\n\t\t\tconst serializedArrayElements = translationValue.map((arrayElement) => JSON.stringify(arrayElement)).join(\", \");\n\t\t\ttranslationParts.push(`${formattedLocaleKey}: [ ${serializedArrayElements} ]`);\n\t\t} else translationParts.push(`${formattedLocaleKey}: ${JSON.stringify(translationValue)}`);\n\t}\n\treturn `t${typeArgumentsText ?? \"\"}({ ${translationParts.join(\", \")} })`;\n};\n/**\n* Synchronizes numeric suffixes across locales to maintain consistency.\n* When updating a fallback locale's numeric suffix, this function updates\n* the corresponding numeric suffixes in other locales to match.\n*\n* This is useful for maintaining numbered lists across translations,\n* e.g., \"Hello 1\" / \"Bonjour 1\" when updating to \"Hello 3\".\n*\n* @param existingTranslationMap - Current translation map with locale values\n* @param fallbackLocaleCode - The locale being updated (fallback)\n* @param newFallbackValue - The new value for the fallback locale\n* @returns Updated translation map with synchronized numeric suffixes\n*/\nconst syncNumericSuffixAcrossLocales = (existingTranslationMap, fallbackLocaleCode, newFallbackValue) => {\n\tconst updatedTranslationMap = {\n\t\t...existingTranslationMap,\n\t\t[fallbackLocaleCode]: newFallbackValue\n\t};\n\tconst trailingNumberMatch = newFallbackValue.match(/\\d+(?!.*\\d)/);\n\tif (!trailingNumberMatch) return updatedTranslationMap;\n\tconst newTrailingNumber = trailingNumberMatch[0];\n\tfor (const [localeCode, currentValue] of Object.entries(existingTranslationMap)) {\n\t\tif (localeCode === fallbackLocaleCode) continue;\n\t\tif (!currentValue.match(/\\d+(?!.*\\d)/)) continue;\n\t\tupdatedTranslationMap[localeCode] = currentValue.replace(/(\\d+)(?!.*\\d)/, newTrailingNumber);\n\t}\n\treturn updatedTranslationMap;\n};\n/**\n* Safely formats a key for use in object literals.\n* Handles special cases like reserved keywords and non-identifier keys.\n*\n* @param objectKey - The key to format\n* @returns Properly formatted key string\n*/\nconst stringifyKey = (objectKey) => {\n\tif (!/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(objectKey)) return JSON.stringify(objectKey);\n\tif (objectKey === \"true\" || objectKey === \"false\") return JSON.stringify(objectKey);\n\treturn objectKey;\n};\n/**\n* Builds an enumeration initializer string for the 'enu' function call.\n* Creates a properly formatted enumeration object with key-value pairs.\n*\n* @param enumerationMap - Map of enumeration keys to string values\n* @returns Formatted string for the enumeration function call, or empty string if invalid\n*/\nconst buildEnumerationInitializer = (enumerationMap) => {\n\tconst enumerationParts = [];\n\tfor (const [enumerationKey, enumerationValue] of Object.entries(enumerationMap)) {\n\t\tif (typeof enumerationValue !== \"string\") return \"\";\n\t\tenumerationParts.push(`${stringifyKey(enumerationKey)}: ${JSON.stringify(enumerationValue)}`);\n\t}\n\treturn `enu({ ${enumerationParts.join(\", \")} })`;\n};\n/**\n* Builds a condition initializer string for the 'cond' function call.\n* Creates a properly formatted condition object with key-value pairs.\n*\n* @param conditionMap - Map of condition keys to string values\n* @returns Formatted string for the condition function call, or empty string if invalid\n*/\nconst buildConditionInitializer = (conditionMap) => {\n\tconst conditionParts = [];\n\tfor (const [conditionKey, conditionValue] of Object.entries(conditionMap)) {\n\t\tif (typeof conditionValue !== \"string\") return \"\";\n\t\tconditionParts.push(`${stringifyKey(conditionKey)}: ${JSON.stringify(conditionValue)}`);\n\t}\n\treturn `cond({ ${conditionParts.join(\", \")} })`;\n};\n/**\n* Builds a gender initializer string for the 'gender' function call.\n* Creates a properly formatted gender object with key-value pairs.\n*\n* @param genderMap - Map of gender keys to string values\n* @returns Formatted string for the gender function call, or empty string if invalid\n*/\nconst buildGenderInitializer = (genderMap) => {\n\tconst genderParts = [];\n\tfor (const [genderKey, genderValue] of Object.entries(genderMap)) {\n\t\tif (typeof genderValue !== \"string\") return \"\";\n\t\tgenderParts.push(`${stringifyKey(genderKey)}: ${JSON.stringify(genderValue)}`);\n\t}\n\treturn `gender({ ${genderParts.join(\", \")} })`;\n};\n/**\n* Builds an insertion initializer string for the 'insert' function call.\n* Handles both string content and translation content for insertions.\n*\n* @param insertionContent - The content to be inserted (string or translation)\n* @returns Formatted string for the insertion function call, or undefined if invalid\n*/\nconst buildInsertionInitializer = (insertionContent) => {\n\tif (typeof insertionContent === \"string\") return `insert(${JSON.stringify(insertionContent)})`;\n\tif (getNodeType(insertionContent) === NodeType.Translation) {\n\t\tconst translationMap = insertionContent[NodeType.Translation] ?? {};\n\t\tif (!Object.values(translationMap).every((translationValue) => typeof translationValue === \"string\")) return void 0;\n\t\treturn `insert(${buildTranslationInitializer(translationMap)})`;\n\t}\n};\n/**\n* Builds a file initializer string for the 'file' function call.\n* Creates a properly formatted file path reference.\n*\n* @param filePath - The file path to reference\n* @returns Formatted string for the file function call, or undefined if invalid\n*/\nconst buildFileInitializer = (filePath) => {\n\tif (typeof filePath === \"string\") return `file(${JSON.stringify(filePath)})`;\n};\n/**\n* Builds a markdown initializer string for the 'md' function call.\n* Handles string content, translation content, and file references for markdown.\n*\n* @param markdownContent - The markdown content (string, translation, or file reference)\n* @returns Formatted string for the markdown function call, or undefined if invalid\n*/\nconst buildMarkdownInitializer = (markdownContent) => {\n\tif (typeof markdownContent === \"string\") return `md(${JSON.stringify(markdownContent)})`;\n\tif (getNodeType(markdownContent) === NodeType.Translation) {\n\t\tconst translationMap = markdownContent[NodeType.Translation] ?? {};\n\t\tif (!Object.values(translationMap).every((translationValue) => typeof translationValue === \"string\")) return void 0;\n\t\treturn `md(${buildTranslationInitializer(translationMap)})`;\n\t}\n\tif (getNodeType(markdownContent) === NodeType.File) {\n\t\tconst filePath = markdownContent[NodeType.File];\n\t\tconst fileInitializer = buildFileInitializer(filePath);\n\t\tif (!fileInitializer) return void 0;\n\t\treturn `md(${fileInitializer})`;\n\t}\n};\n/**\n* Builds a nested initializer string for the 'nest' function call.\n* Creates a properly formatted nested dictionary reference.\n*\n* @param nestedContent - The nested content with dictionary key and optional path\n* @returns Formatted string for the nested function call, or undefined if invalid\n*/\nconst buildNestedInitializer = (nestedContent) => {\n\tif (!nestedContent || typeof nestedContent.dictionaryKey !== \"string\") return void 0;\n\tif (nestedContent.path && typeof nestedContent.path === \"string\") return `nest(${JSON.stringify(nestedContent.dictionaryKey)}, ${JSON.stringify(nestedContent.path)})`;\n\treturn `nest(${JSON.stringify(nestedContent.dictionaryKey)})`;\n};\n/**\n* Reads an existing translation map from a property in a content object.\n* Parses the 't' function call and extracts the translation key-value pairs.\n*\n* @param contentObject - The object containing the property\n* @param propertyName - The name of the property to read\n* @returns Translation map with locale keys and values, or undefined if not found\n*/\nconst readExistingTranslationMap = (contentObject, propertyName) => {\n\tconst property = contentObject.getProperty(propertyName);\n\tif (!property || !Node.isPropertyAssignment(property)) return void 0;\n\tconst propertyInitializer = property.getInitializer();\n\tif (!propertyInitializer) return void 0;\n\tif (!Node.isCallExpression(propertyInitializer)) return void 0;\n\tconst callExpression = propertyInitializer.getExpression();\n\tif (!Node.isIdentifier(callExpression) || callExpression.getText() !== \"t\") return void 0;\n\tconst translationArgument = propertyInitializer.getArguments()[0];\n\tif (!translationArgument || !Node.isObjectLiteralExpression(translationArgument)) return void 0;\n\tconst translationMap = {};\n\tfor (const propertyAssignment of translationArgument.getProperties()) {\n\t\tif (!Node.isPropertyAssignment(propertyAssignment)) continue;\n\t\tconst cleanPropertyName = propertyAssignment.getNameNode().getText().replace(/^['\"]|['\"]$/g, \"\");\n\t\tconst valueInitializer = propertyAssignment.getInitializer();\n\t\tif (valueInitializer && Node.isStringLiteral(valueInitializer)) translationMap[cleanPropertyName] = valueInitializer.getLiteralValue();\n\t\telse if (valueInitializer && Node.isArrayLiteralExpression(valueInitializer)) {\n\t\t\tconst stringArray = [];\n\t\t\tfor (const arrayElement of valueInitializer.getElements()) {\n\t\t\t\tif (!Node.isStringLiteral(arrayElement)) return void 0;\n\t\t\t\tstringArray.push(arrayElement.getLiteralValue());\n\t\t\t}\n\t\t\ttranslationMap[cleanPropertyName] = stringArray;\n\t\t} else return;\n\t}\n\treturn translationMap;\n};\n/**\n* Reads an existing map from a function call (enu, cond, or gender).\n* Parses the function call and extracts the key-value pairs.\n*\n* @param contentObject - The object containing the property\n* @param propertyName - The name of the property to read\n* @param functionName - The name of the function to look for ('enu', 'cond', or 'gender')\n* @returns Map with keys and string values, or undefined if not found\n*/\nconst readExistingMapFromCall = (contentObject, propertyName, functionName) => {\n\tconst property = contentObject.getProperty(propertyName);\n\tif (!property || !Node.isPropertyAssignment(property)) return void 0;\n\tconst propertyInitializer = property.getInitializer();\n\tif (!propertyInitializer || !Node.isCallExpression(propertyInitializer)) return void 0;\n\tconst callExpression = propertyInitializer.getExpression();\n\tif (!Node.isIdentifier(callExpression) || callExpression.getText() !== functionName) return void 0;\n\tconst functionArgument = propertyInitializer.getArguments()[0];\n\tif (!functionArgument || !Node.isObjectLiteralExpression(functionArgument)) return void 0;\n\tconst keyValueMap = {};\n\tfor (const propertyAssignment of functionArgument.getProperties()) {\n\t\tif (!Node.isPropertyAssignment(propertyAssignment)) continue;\n\t\tconst cleanPropertyName = propertyAssignment.getNameNode().getText().replace(/^['\"]|['\"]$/g, \"\");\n\t\tconst valueInitializer = propertyAssignment.getInitializer();\n\t\tif (valueInitializer && Node.isStringLiteral(valueInitializer)) keyValueMap[cleanPropertyName] = valueInitializer.getLiteralValue();\n\t}\n\treturn keyValueMap;\n};\n/**\n* Extracts generic type arguments text from a call expression.\n* Returns the type arguments as a string (e.g., \"<string[]>\").\n*\n* @param callExpression - The call expression to extract type arguments from\n* @returns Type arguments as a string, or undefined if none found\n*/\nconst getCallExpressionTypeArgsText = (callExpression) => {\n\ttry {\n\t\tconst typeArguments = callExpression.getTypeArguments();\n\t\tif (!typeArguments || typeArguments.length === 0) return void 0;\n\t\treturn `<${typeArguments.map((typeArgument) => typeArgument.getText()).join(\", \")}>`;\n\t} catch {\n\t\treturn;\n\t}\n};\n/**\n* Reads existing type arguments used in a specific property call.\n* Supports both direct calls and nested calls (e.g., md(t<...>(...))).\n*\n* @param contentObject - The object containing the property\n* @param propertyName - The name of the property to read\n* @param functionName - The name of the function to look for\n* @returns Type arguments as a string, or undefined if not found\n*/\nconst readExistingTypeArgsForCall = (contentObject, propertyName, functionName) => {\n\tconst property = contentObject.getProperty(propertyName);\n\tif (!property || !Node.isPropertyAssignment(property)) return void 0;\n\tconst propertyInitializer = property.getInitializer();\n\tif (!propertyInitializer || !Node.isCallExpression(propertyInitializer)) return void 0;\n\tconst callExpression = propertyInitializer.getExpression();\n\tif (Node.isIdentifier(callExpression) && callExpression.getText() === functionName) return getCallExpressionTypeArgsText(propertyInitializer);\n\tif (functionName === \"t\" && Node.isIdentifier(callExpression) && callExpression.getText() === \"md\") {\n\t\tconst markdownArgument = propertyInitializer.getArguments()[0];\n\t\tif (markdownArgument && Node.isCallExpression(markdownArgument)) {\n\t\t\tconst innerExpression = markdownArgument.getExpression();\n\t\t\tif (Node.isIdentifier(innerExpression) && innerExpression.getText() === \"t\") return getCallExpressionTypeArgsText(markdownArgument);\n\t\t}\n\t}\n};\n/**\n* Compares two string maps for equality.\n* Filters out non-string values from the first map before comparison.\n*\n* @param firstMap - First map to compare (may contain non-string values)\n* @param secondMap - Second map to compare (should contain only strings)\n* @returns True if the string values in both maps are equal\n*/\nconst areStringMapsEqual = (firstMap, secondMap) => {\n\tif (!secondMap) return false;\n\tconst firstMapStringEntries = Object.entries(firstMap).filter(([, value]) => typeof value === \"string\");\n\tif (firstMapStringEntries.length !== Object.keys(firstMap).length) return false;\n\tif (firstMapStringEntries.length !== Object.keys(secondMap).length) return false;\n\tfor (const [key, value] of firstMapStringEntries) {\n\t\tif (!(key in secondMap)) return false;\n\t\tif (secondMap[key] !== value) return false;\n\t}\n\treturn true;\n};\n/**\n* Compares translation maps for equality.\n* Handles both string and array values in translations.\n*\n* @param desiredTranslationMap - The desired translation map\n* @param existingTranslationMap - The existing translation map to compare against\n* @returns True if both translation maps are equal\n*/\nconst areTranslationsEqual = (desiredTranslationMap, existingTranslationMap) => {\n\tif (!existingTranslationMap) return false;\n\tfor (const [localeCode, desiredValue] of Object.entries(desiredTranslationMap)) {\n\t\tif (!(localeCode in existingTranslationMap)) return false;\n\t\tconst existingValue = existingTranslationMap[localeCode];\n\t\tif (typeof desiredValue === \"string\") {\n\t\t\tif (typeof existingValue !== \"string\") return false;\n\t\t\tif (existingValue !== desiredValue) return false;\n\t\t} else if (Array.isArray(desiredValue)) {\n\t\t\tif (!Array.isArray(existingValue)) return false;\n\t\t\tif (existingValue.length !== desiredValue.length) return false;\n\t\t\tfor (let arrayIndex = 0; arrayIndex < desiredValue.length; arrayIndex++) if (existingValue[arrayIndex] !== desiredValue[arrayIndex]) return false;\n\t\t} else return false;\n\t}\n\treturn true;\n};\n/**\n* Gets existing property names from the content object.\n* Handles both regular property assignments and shorthand properties.\n*\n* @param contentObject - The object literal expression to extract property names from\n* @returns Set of existing property names\n*/\nconst getExistingPropertyNames = (contentObject) => {\n\tconst existingPropertyNames = /* @__PURE__ */ new Set();\n\tfor (const property of contentObject.getProperties()) {\n\t\tif (Node.isPropertyAssignment(property)) {\n\t\t\tconst propertyName = property.getName();\n\t\t\tif (propertyName) existingPropertyNames.add(propertyName.replace(/^['\"]|['\"]$/g, \"\"));\n\t\t\tcontinue;\n\t\t}\n\t\tif (Node.isShorthandPropertyAssignment(property)) {\n\t\t\tconst shorthandPropertyName = property.getNameNode().getText();\n\t\t\tif (shorthandPropertyName) existingPropertyNames.add(shorthandPropertyName);\n\t\t}\n\t}\n\treturn existingPropertyNames;\n};\n/**\n* Processes array content entries.\n* Handles arrays of various content types including strings, objects, and complex content nodes.\n* Supports nested objects within arrays and maintains existing translation structures.\n*\n* @param contentObject - The object containing the array property\n* @param propertyKey - The key of the array property\n* @param arrayValue - The array of values to process\n* @param existingPropertyKeys - Set of existing property names in the content object\n* @param effectiveFallbackLocale - The fallback locale for translations\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processArrayContent = (contentObject, propertyKey, arrayValue, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile) => {\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processArrayContent(spreadTargetObject, propertyKey, arrayValue, getExistingPropertyNames(spreadTargetObject), effectiveFallbackLocale, requiredImports, sourceFile);\n\t}\n\tconst serializedArrayElements = [];\n\tlet hasUnsupportedContent = false;\n\tlet existingArrayElements;\n\tlet existingArrayHasTranslation = false;\n\tlet existingArrayTypeArguments;\n\tlet arrayWasChanged = false;\n\tconst existingProperty = contentObject.getProperty(propertyKey);\n\tif (existingProperty && Node.isPropertyAssignment(existingProperty)) {\n\t\tconst propertyInitializer = existingProperty.getInitializer();\n\t\tlet existingPropertyTypeArguments;\n\t\tconst areAllDesiredValuesStrings = arrayValue.every((arrayElement) => typeof arrayElement === \"string\");\n\t\tif (propertyInitializer && Node.isCallExpression(propertyInitializer) && Node.isIdentifier(propertyInitializer.getExpression()) && propertyInitializer.getExpression().getText() === \"t\" && areAllDesiredValuesStrings) {\n\t\t\texistingPropertyTypeArguments = getCallExpressionTypeArgsText(propertyInitializer);\n\t\t\tconst existingTranslationMap = readExistingTranslationMap(contentObject, propertyKey);\n\t\t\tif (existingTranslationMap) {\n\t\t\t\tconst translationInitializerText = buildTranslationInitializer({\n\t\t\t\t\t...existingTranslationMap,\n\t\t\t\t\t[effectiveFallbackLocale]: arrayValue\n\t\t\t\t}, existingPropertyTypeArguments);\n\t\t\t\trequiredImports.add(\"t\");\n\t\t\t\tconst property$1 = contentObject.getProperty(propertyKey);\n\t\t\t\tif (property$1 && Node.isPropertyAssignment(property$1)) {\n\t\t\t\t\tif (property$1.getInitializer()?.getText() !== translationInitializerText) {\n\t\t\t\t\t\tproperty$1.setInitializer(translationInitializerText);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif (propertyInitializer && Node.isArrayLiteralExpression(propertyInitializer)) {\n\t\t\texistingArrayElements = propertyInitializer.getElements();\n\t\t\texistingArrayHasTranslation = propertyInitializer.getElements().some((arrayElement) => {\n\t\t\t\tif (!Node.isCallExpression(arrayElement)) return false;\n\t\t\t\tconst callExpression = arrayElement.getExpression();\n\t\t\t\treturn Node.isIdentifier(callExpression) && callExpression.getText() === \"t\";\n\t\t\t});\n\t\t\tif (existingArrayHasTranslation) {\n\t\t\t\tfor (const arrayElement of existingArrayElements) if (Node.isCallExpression(arrayElement)) {\n\t\t\t\t\tconst callExpression = arrayElement.getExpression();\n\t\t\t\t\tif (Node.isIdentifier(callExpression) && callExpression.getText() === \"t\") {\n\t\t\t\t\t\texistingArrayTypeArguments = getCallExpressionTypeArgsText(arrayElement);\n\t\t\t\t\t\tif (existingArrayTypeArguments) break;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfor (let elementIndex = 0; elementIndex < arrayValue.length; elementIndex++) {\n\t\tconst currentElement = arrayValue[elementIndex];\n\t\tif (currentElement === null || currentElement === void 0 || typeof currentElement === \"string\" || typeof currentElement === \"number\" || typeof currentElement === \"boolean\") {\n\t\t\tlet serializedElementValue = serializeValue(currentElement);\n\t\t\tif (typeof currentElement === \"string\" && existingArrayElements && elementIndex < existingArrayElements.length) {\n\t\t\t\tconst existingArrayElement = existingArrayElements[elementIndex];\n\t\t\t\tif (Node.isCallExpression(existingArrayElement)) {\n\t\t\t\t\tconst callExpression = existingArrayElement.getExpression();\n\t\t\t\t\tif (Node.isIdentifier(callExpression) && callExpression.getText() === \"t\") {\n\t\t\t\t\t\tconst translationArgument = existingArrayElement.getArguments()[0];\n\t\t\t\t\t\tif (translationArgument && Node.isObjectLiteralExpression(translationArgument)) {\n\t\t\t\t\t\t\tconst translationMap = {};\n\t\t\t\t\t\t\tfor (const propertyAssignment of translationArgument.getProperties()) {\n\t\t\t\t\t\t\t\tif (!Node.isPropertyAssignment(propertyAssignment)) continue;\n\t\t\t\t\t\t\t\tconst cleanPropertyName = propertyAssignment.getNameNode().getText().replace(/^['\"]|['\"]$/g, \"\");\n\t\t\t\t\t\t\t\tconst propertyValue = propertyAssignment.getInitializer();\n\t\t\t\t\t\t\t\tif (propertyValue && Node.isStringLiteral(propertyValue)) translationMap[cleanPropertyName] = propertyValue.getLiteralValue();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tserializedElementValue = buildTranslationInitializer(syncNumericSuffixAcrossLocales(translationMap, effectiveFallbackLocale, currentElement), getCallExpressionTypeArgsText(existingArrayElement));\n\t\t\t\t\t\t\trequiredImports.add(\"t\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof currentElement === \"string\" && existingArrayHasTranslation && serializedElementValue && serializedElementValue.startsWith(\"\\\"\")) {\n\t\t\t\tserializedElementValue = buildTranslationInitializer({ [effectiveFallbackLocale]: currentElement }, existingArrayTypeArguments);\n\t\t\t\trequiredImports.add(\"t\");\n\t\t\t}\n\t\t\tif (serializedElementValue === void 0) {\n\t\t\t\thasUnsupportedContent = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tserializedArrayElements.push(serializedElementValue);\n\t\t} else if (typeof currentElement === \"object\" && currentElement !== null) {\n\t\t\tif (existingArrayElements && elementIndex < existingArrayElements.length) {\n\t\t\t\tconst existingArrayElement = existingArrayElements[elementIndex];\n\t\t\t\tif (Node.isObjectLiteralExpression(existingArrayElement)) {\n\t\t\t\t\tif (processContentEntries(existingArrayElement, currentElement, effectiveFallbackLocale, requiredImports, sourceFile)) arrayWasChanged = true;\n\t\t\t\t\tserializedArrayElements.push(existingArrayElement.getText());\n\t\t\t\t} else {\n\t\t\t\t\tconst serializedElementValue = serializeValue(currentElement);\n\t\t\t\t\tif (serializedElementValue === void 0) {\n\t\t\t\t\t\thasUnsupportedContent = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tserializedArrayElements.push(serializedElementValue);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst serializedElementValue = serializeValue(currentElement);\n\t\t\t\tif (serializedElementValue === void 0) {\n\t\t\t\t\thasUnsupportedContent = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tserializedArrayElements.push(serializedElementValue);\n\t\t\t}\n\t\t\tconst elementNodeType = getNodeType(currentElement);\n\t\t\tif (elementNodeType === NodeType.Translation) requiredImports.add(\"t\");\n\t\t\telse if (elementNodeType === NodeType.Enumeration) requiredImports.add(\"enu\");\n\t\t\telse if (elementNodeType === NodeType.Condition) requiredImports.add(\"cond\");\n\t\t\telse if (elementNodeType === NodeType.Gender) requiredImports.add(\"gender\");\n\t\t\telse if (elementNodeType === NodeType.Insertion) {\n\t\t\t\trequiredImports.add(\"insert\");\n\t\t\t\tconst insertionContent = currentElement[NodeType.Insertion];\n\t\t\t\tif (typeof insertionContent === \"object\" && insertionContent !== null && getNodeType(insertionContent) === NodeType.Translation) requiredImports.add(\"t\");\n\t\t\t} else if (elementNodeType === NodeType.Markdown) {\n\t\t\t\trequiredImports.add(\"md\");\n\t\t\t\tconst markdownContent = currentElement[NodeType.Markdown];\n\t\t\t\tif (typeof markdownContent === \"object\" && markdownContent !== null && getNodeType(markdownContent) === NodeType.File) requiredImports.add(\"file\");\n\t\t\t} else if (elementNodeType === NodeType.File) requiredImports.add(\"file\");\n\t\t\telse if (elementNodeType === NodeType.Nested) requiredImports.add(\"nest\");\n\t\t} else {\n\t\t\thasUnsupportedContent = true;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (hasUnsupportedContent) return false;\n\tif (arrayWasChanged) return true;\n\tconst arrayInitializerText = `[ ${serializedArrayElements.join(\", \")} ]`;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: arrayInitializerText\n\t\t});\n\t\treturn true;\n\t}\n\tconst property = contentObject.getProperty(propertyKey);\n\tif (property && Node.isPropertyAssignment(property)) {\n\t\tconst existingSerializedArray = readExistingArraySerialized(contentObject, propertyKey);\n\t\tif (!(existingSerializedArray !== void 0 && existingSerializedArray.length === serializedArrayElements.length && existingSerializedArray.every((existingElement, elementIndex) => existingElement === serializedArrayElements[elementIndex]))) {\n\t\t\tproperty.setInitializer(arrayInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes primitive content entries (string, number, boolean, null).\n* Handles simple value types and updates existing translation maps when appropriate.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param primitiveValue - The primitive value to process\n* @param existingPropertyKeys - Set of existing property names\n* @param effectiveFallbackLocale - The fallback locale for translations\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processPrimitiveContent = (contentObject, propertyKey, primitiveValue, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile) => {\n\tif (typeof primitiveValue === \"string\" && existingPropertyKeys.has(propertyKey)) {\n\t\tconst property$1 = contentObject.getProperty(propertyKey);\n\t\tif (property$1 && Node.isPropertyAssignment(property$1)) {\n\t\t\tconst propertyInitializer = property$1.getInitializer();\n\t\t\tif (propertyInitializer && !Node.isStringLiteral(propertyInitializer) && !Node.isCallExpression(propertyInitializer)) {\n\t\t\t\tconsole.log(`Skipping update for key \"${propertyKey}\" because existing value is not a string literal`);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tconst existingTranslationMap = readExistingTranslationMap(contentObject, propertyKey);\n\t\tif (existingTranslationMap) {\n\t\t\tconst translationInitializerText = buildTranslationInitializer({\n\t\t\t\t...existingTranslationMap,\n\t\t\t\t[effectiveFallbackLocale]: primitiveValue\n\t\t\t}, readExistingTypeArgsForCall(contentObject, propertyKey, \"t\"));\n\t\t\trequiredImports.add(\"t\");\n\t\t\tif (property$1 && Node.isPropertyAssignment(property$1)) {\n\t\t\t\tproperty$1.setInitializer(translationInitializerText);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processPrimitiveContent(spreadTargetObject, propertyKey, primitiveValue, getExistingPropertyNames(spreadTargetObject), effectiveFallbackLocale, requiredImports, sourceFile);\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: typeof primitiveValue === \"string\" ? JSON.stringify(primitiveValue) : String(primitiveValue)\n\t\t});\n\t\treturn true;\n\t}\n\tconst property = contentObject.getProperty(propertyKey);\n\tif (property && Node.isPropertyAssignment(property)) {\n\t\tconst propertyInitializer = property.getInitializer();\n\t\tconst isPrimitiveLiteral = propertyInitializer && (Node.isStringLiteral(propertyInitializer) || Node.isNumericLiteral(propertyInitializer) || propertyInitializer.getKind() === SyntaxKind.TrueKeyword || propertyInitializer.getKind() === SyntaxKind.FalseKeyword || Node.isNullLiteral(propertyInitializer) || Node.isCallExpression(propertyInitializer));\n\t\tif (propertyInitializer && !isPrimitiveLiteral) {\n\t\t\tconsole.log(`Skipping update for key \"${propertyKey}\" because existing value is not a primitive literal`);\n\t\t\treturn false;\n\t\t}\n\t\tconst currentInitializerText = propertyInitializer?.getText();\n\t\tconst desiredInitializerText = typeof primitiveValue === \"string\" ? JSON.stringify(primitiveValue) : String(primitiveValue);\n\t\tif (currentInitializerText !== desiredInitializerText) {\n\t\t\tproperty.setInitializer(desiredInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes complex content entries (translation, enumeration, condition, etc.).\n* Routes content to the appropriate specialized processor based on node type.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The complex content node to process\n* @param existingPropertyKeys - Set of existing property names\n* @param effectiveFallbackLocale - The fallback locale for translations\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processComplexContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile) => {\n\tswitch (getNodeType(contentNode)) {\n\t\tcase NodeType.Translation: return processTranslationContent(contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile);\n\t\tcase NodeType.Enumeration: return processEnumerationContent(contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile);\n\t\tcase NodeType.Condition: return processConditionContent(contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile);\n\t\tcase NodeType.Gender: return processGenderContent(contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile);\n\t\tcase NodeType.Insertion: return processInsertionContent(contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile);\n\t\tcase NodeType.Markdown: return processMarkdownContent(contentObject, propertyKey, contentNode, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile);\n\t\tcase NodeType.File: return processFileContent(contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile);\n\t\tcase NodeType.Nested: return processNestedContent(contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile);\n\t\tdefault: return false;\n\t}\n};\n/**\n* Processes translation content.\n* Handles translation objects with locale keys and string/array values.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The translation content node\n* @param existingPropertyKeys - Set of existing property names\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processTranslationContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile) => {\n\tconst translationMap = contentNode[NodeType.Translation] ?? {};\n\tconst areAllValuesStringsOrArrays = Object.values(translationMap).every((translationValue) => typeof translationValue === \"string\" || Array.isArray(translationValue));\n\tif (Object.values(translationMap).some((translationValue) => typeof translationValue === \"object\" && translationValue !== null && !Array.isArray(translationValue) && getNodeType(translationValue) !== NodeType.Text) && !areAllValuesStringsOrArrays) {\n\t\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\t\tif (spreadTargetObject) return processTranslationContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t\t}\n\t\tconst translationParts$1 = [];\n\t\tlet hasUnsupportedValue = false;\n\t\tfor (const [localeCode, translationValue] of Object.entries(translationMap)) {\n\t\t\tconst formattedLocaleKey = /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(localeCode) ? localeCode : JSON.stringify(localeCode);\n\t\t\tif (typeof translationValue === \"object\" && translationValue !== null && !Array.isArray(translationValue)) {\n\t\t\t\tconst serializedValue = serializeValue(translationValue);\n\t\t\t\tif (serializedValue === void 0) {\n\t\t\t\t\thasUnsupportedValue = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\ttranslationParts$1.push(`${formattedLocaleKey}: ${serializedValue}`);\n\t\t\t\tconst nodeType = getNodeType(translationValue);\n\t\t\t\tif (nodeType === NodeType.Markdown) {\n\t\t\t\t\trequiredImports.add(\"md\");\n\t\t\t\t\tconst markdownContent = translationValue[NodeType.Markdown];\n\t\t\t\t\tif (typeof markdownContent === \"object\" && markdownContent !== null && getNodeType(markdownContent) === NodeType.File) requiredImports.add(\"file\");\n\t\t\t\t} else if (nodeType === NodeType.File) requiredImports.add(\"file\");\n\t\t\t\telse if (nodeType === NodeType.Insertion) requiredImports.add(\"insert\");\n\t\t\t\telse if (nodeType === NodeType.Enumeration) requiredImports.add(\"enu\");\n\t\t\t\telse if (nodeType === NodeType.Condition) requiredImports.add(\"cond\");\n\t\t\t\telse if (nodeType === NodeType.Gender) requiredImports.add(\"gender\");\n\t\t\t\telse if (nodeType === NodeType.Nested) requiredImports.add(\"nest\");\n\t\t\t} else if (typeof translationValue === \"string\") translationParts$1.push(`${formattedLocaleKey}: ${JSON.stringify(translationValue)}`);\n\t\t\telse if (Array.isArray(translationValue)) {\n\t\t\t\tconst serializedArrayElements = translationValue.map((arrayElement) => JSON.stringify(arrayElement)).join(\", \");\n\t\t\t\ttranslationParts$1.push(`${formattedLocaleKey}: [ ${serializedArrayElements} ]`);\n\t\t\t}\n\t\t}\n\t\tif (hasUnsupportedValue) return false;\n\t\tconst translationInitializerText$1 = `t${readExistingTypeArgsForCall(contentObject, propertyKey, \"t\") ?? \"\"}({ ${translationParts$1.join(\", \")} })`;\n\t\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\t\trequiredImports.add(\"t\");\n\t\t\tcontentObject.addPropertyAssignment({\n\t\t\t\tname: propertyKey,\n\t\t\t\tinitializer: translationInitializerText$1\n\t\t\t});\n\t\t\treturn true;\n\t\t}\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tif (property.getInitializer()?.getText() !== translationInitializerText$1) {\n\t\t\t\trequiredImports.add(\"t\");\n\t\t\t\tproperty.setInitializer(translationInitializerText$1);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tif (!areAllValuesStringsOrArrays) return false;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processTranslationContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t}\n\tconst translationParts = [];\n\tfor (const [localeCode, translationValue] of Object.entries(translationMap)) {\n\t\tconst formattedLocaleKey = /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(localeCode) ? localeCode : JSON.stringify(localeCode);\n\t\tif (typeof translationValue === \"string\") translationParts.push(`${formattedLocaleKey}: ${JSON.stringify(translationValue)}`);\n\t\telse if (Array.isArray(translationValue)) {\n\t\t\tconst serializedArrayElements = translationValue.map((arrayElement) => JSON.stringify(arrayElement)).join(\", \");\n\t\t\ttranslationParts.push(`${formattedLocaleKey}: [ ${serializedArrayElements} ]`);\n\t\t}\n\t}\n\tconst translationInitializerText = `t${readExistingTypeArgsForCall(contentObject, propertyKey, \"t\") ?? \"\"}({ ${translationParts.join(\", \")} })`;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\trequiredImports.add(\"t\");\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: translationInitializerText\n\t\t});\n\t\treturn true;\n\t}\n\tif (!areTranslationsEqual(translationMap, readExistingTranslationMap(contentObject, propertyKey))) {\n\t\trequiredImports.add(\"t\");\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tproperty.setInitializer(translationInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes enumeration content.\n* Handles enumeration objects with key-value string pairs.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The enumeration content node\n* @param existingPropertyKeys - Set of existing property names\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processEnumerationContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile) => {\n\tconst enumerationMap = contentNode[NodeType.Enumeration];\n\tif (!Object.values(enumerationMap).every((enumerationValue) => typeof enumerationValue === \"string\")) return false;\n\tconst enumerationInitializerText = buildEnumerationInitializer(enumerationMap);\n\tif (!enumerationInitializerText) return false;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processEnumerationContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t\trequiredImports.add(\"enu\");\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: enumerationInitializerText\n\t\t});\n\t\treturn true;\n\t}\n\tif (!areStringMapsEqual(enumerationMap, readExistingMapFromCall(contentObject, propertyKey, \"enu\"))) {\n\t\trequiredImports.add(\"enu\");\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tproperty.setInitializer(enumerationInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes condition content.\n* Handles condition objects with key-value string pairs.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The condition content node\n* @param existingPropertyKeys - Set of existing property names\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processConditionContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile) => {\n\tconst conditionMap = contentNode[NodeType.Condition];\n\tif (Object.values(conditionMap).every((conditionValue) => typeof conditionValue === \"string\")) {\n\t\tconst conditionInitializerText = buildConditionInitializer(conditionMap);\n\t\tif (!conditionInitializerText) return false;\n\t\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\t\tif (spreadTargetObject) return processConditionContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t\t\trequiredImports.add(\"cond\");\n\t\t\tcontentObject.addPropertyAssignment({\n\t\t\t\tname: propertyKey,\n\t\t\t\tinitializer: conditionInitializerText\n\t\t\t});\n\t\t\treturn true;\n\t\t}\n\t\tif (!areStringMapsEqual(conditionMap, readExistingMapFromCall(contentObject, propertyKey, \"cond\"))) {\n\t\t\trequiredImports.add(\"cond\");\n\t\t\tconst property$1 = contentObject.getProperty(propertyKey);\n\t\t\tif (property$1 && Node.isPropertyAssignment(property$1)) {\n\t\t\t\tproperty$1.setInitializer(conditionInitializerText);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processConditionContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t\treturn false;\n\t}\n\tconst property = contentObject.getProperty(propertyKey);\n\tif (!property || !Node.isPropertyAssignment(property)) return false;\n\tconst propertyInitializer = property.getInitializer();\n\tif (!propertyInitializer || !Node.isCallExpression(propertyInitializer)) return false;\n\tconst callExpression = propertyInitializer.getExpression();\n\tif (!Node.isIdentifier(callExpression) || callExpression.getText() !== \"cond\") return false;\n\tconst condArgument = propertyInitializer.getArguments()[0];\n\tif (!condArgument || !Node.isObjectLiteralExpression(condArgument)) return false;\n\trequiredImports.add(\"cond\");\n\tlet hasModifications = false;\n\tfor (const [conditionKey, conditionValue] of Object.entries(conditionMap)) {\n\t\tconst nodeType = getNodeType(conditionValue);\n\t\tif (!nodeType) continue;\n\t\tlet condProperty = condArgument.getProperty(conditionKey);\n\t\tif (!condProperty) condProperty = condArgument.getProperty(stringifyKey(conditionKey));\n\t\tif (!condProperty || !Node.isPropertyAssignment(condProperty)) continue;\n\t\tconst condValueInitializer = condProperty.getInitializer();\n\t\tif (!condValueInitializer) continue;\n\t\tif (nodeType === NodeType.Translation) {\n\t\t\tif (!Node.isCallExpression(condValueInitializer)) continue;\n\t\t\tconst tCallExpression = condValueInitializer.getExpression();\n\t\t\tif (!Node.isIdentifier(tCallExpression) || tCallExpression.getText() !== \"t\") continue;\n\t\t\tconst tArgument = condValueInitializer.getArguments()[0];\n\t\t\tif (!tArgument || !Node.isObjectLiteralExpression(tArgument)) continue;\n\t\t\tconst translationMap = conditionValue[NodeType.Translation];\n\t\t\tif (!translationMap || typeof translationMap !== \"object\") continue;\n\t\t\tconst existingTranslationMap = {};\n\t\t\tfor (const propertyAssignment of tArgument.getProperties()) {\n\t\t\t\tif (!Node.isPropertyAssignment(propertyAssignment)) continue;\n\t\t\t\tconst cleanPropertyName = propertyAssignment.getNameNode().getText().replace(/^['\"]|['\"]$/g, \"\");\n\t\t\t\tconst valueInitializer = propertyAssignment.getInitializer();\n\t\t\t\tif (valueInitializer && Node.isStringLiteral(valueInitializer)) existingTranslationMap[cleanPropertyName] = valueInitializer.getLiteralValue();\n\t\t\t\telse if (valueInitializer && Node.isArrayLiteralExpression(valueInitializer)) {\n\t\t\t\t\tconst stringArray = [];\n\t\t\t\t\tfor (const arrayElement of valueInitializer.getElements()) if (Node.isStringLiteral(arrayElement)) stringArray.push(arrayElement.getLiteralValue());\n\t\t\t\t\texistingTranslationMap[cleanPropertyName] = stringArray;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!areTranslationsEqual(translationMap, existingTranslationMap)) {\n\t\t\t\trequiredImports.add(\"t\");\n\t\t\t\tfor (const [locale, localeValue] of Object.entries(translationMap)) {\n\t\t\t\t\tconst isLocaleCodeValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(locale);\n\t\t\t\t\tconst formattedLocaleKey = isLocaleCodeValidIdentifier ? locale : JSON.stringify(locale);\n\t\t\t\t\tlet existingProperty = tArgument.getProperty(locale);\n\t\t\t\t\tif (!existingProperty && !isLocaleCodeValidIdentifier) existingProperty = tArgument.getProperty(JSON.stringify(locale));\n\t\t\t\t\tif (existingProperty && Node.isPropertyAssignment(existingProperty)) {\n\t\t\t\t\t\tconst currentValue = existingProperty.getInitializer();\n\t\t\t\t\t\tconst newValue = Array.isArray(localeValue) ? `[${localeValue.map((v) => JSON.stringify(v)).join(\", \")}]` : JSON.stringify(localeValue);\n\t\t\t\t\t\tif (currentValue?.getText() !== newValue) {\n\t\t\t\t\t\t\texistingProperty.setInitializer(newValue);\n\t\t\t\t\t\t\thasModifications = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (!existingProperty) {\n\t\t\t\t\t\tconst newValue = Array.isArray(localeValue) ? `[${localeValue.map((v) => JSON.stringify(v)).join(\", \")}]` : JSON.stringify(localeValue);\n\t\t\t\t\t\ttArgument.addPropertyAssignment({\n\t\t\t\t\t\t\tname: formattedLocaleKey,\n\t\t\t\t\t\t\tinitializer: newValue\n\t\t\t\t\t\t});\n\t\t\t\t\t\thasModifications = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn hasModifications;\n};\n/**\n* Processes gender content.\n* Handles gender objects with key-value string pairs.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The gender content node\n* @param existingPropertyKeys - Set of existing property names\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processGenderContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile) => {\n\tconst genderMap = contentNode[NodeType.Gender];\n\tif (!Object.values(genderMap).every((genderValue) => typeof genderValue === \"string\")) return false;\n\tconst genderInitializerText = buildGenderInitializer(genderMap);\n\tif (!genderInitializerText) return false;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processGenderContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t\trequiredImports.add(\"gender\");\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: genderInitializerText\n\t\t});\n\t\treturn true;\n\t}\n\tif (!areStringMapsEqual(genderMap, readExistingMapFromCall(contentObject, propertyKey, \"gender\"))) {\n\t\trequiredImports.add(\"gender\");\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tproperty.setInitializer(genderInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes insertion content.\n* Handles insertion objects with string or translation content.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The insertion content node\n* @param existingPropertyKeys - Set of existing property names\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processInsertionContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile) => {\n\tconst insertionContent = contentNode[NodeType.Insertion];\n\tconst insertionInitializerText = buildInsertionInitializer(insertionContent);\n\tif (!insertionInitializerText) return false;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processInsertionContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t\trequiredImports.add(\"insert\");\n\t\tif (typeof insertionContent === \"object\" && insertionContent !== null && getNodeType(insertionContent) === NodeType.Translation) requiredImports.add(\"t\");\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: insertionInitializerText\n\t\t});\n\t\treturn true;\n\t}\n\tconst existingInsertion = readExistingInsertion(contentObject, propertyKey);\n\tif (!(typeof insertionContent === \"string\" && existingInsertion?.kind === \"string\" && existingInsertion.value === insertionContent || typeof insertionContent === \"object\" && insertionContent !== null && getNodeType(insertionContent) === NodeType.Translation && existingInsertion?.kind === \"translation\" && areStringMapsEqual(insertionContent[NodeType.Translation] ?? {}, existingInsertion.map))) {\n\t\trequiredImports.add(\"insert\");\n\t\tif (typeof insertionContent === \"object\" && insertionContent !== null && getNodeType(insertionContent) === NodeType.Translation) requiredImports.add(\"t\");\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tproperty.setInitializer(insertionInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes markdown content.\n* Handles markdown objects with string, translation, or file content.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The markdown content node\n* @param existingPropertyKeys - Set of existing property names\n* @param effectiveFallbackLocale - The fallback locale for translations\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processMarkdownContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile) => {\n\tconst markdownContent = contentNode[NodeType.Markdown];\n\tconst markdownInitializerText = buildMarkdownInitializer(markdownContent);\n\tif (!markdownInitializerText) return false;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processMarkdownContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), effectiveFallbackLocale, requiredImports, sourceFile);\n\t\trequiredImports.add(\"md\");\n\t\tconst markdownNodeType$1 = getNodeType(markdownContent);\n\t\tif (markdownNodeType$1 === NodeType.File) requiredImports.add(\"file\");\n\t\telse if (markdownNodeType$1 === NodeType.Translation) requiredImports.add(\"t\");\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: markdownInitializerText\n\t\t});\n\t\treturn true;\n\t}\n\tconst markdownNodeType = getNodeType(markdownContent);\n\tconst existingSimpleMarkdown = readExistingMarkdown(contentObject, propertyKey);\n\tconst existingMarkdownTranslationMap = readExistingMarkdownTranslationMap(contentObject, propertyKey);\n\tconst existingTranslationTypeArguments = readExistingTypeArgsForCall(contentObject, propertyKey, \"t\");\n\tif (typeof markdownContent === \"string\" && existingMarkdownTranslationMap && effectiveFallbackLocale) {\n\t\tconst updatedTranslationMap = {\n\t\t\t...existingMarkdownTranslationMap,\n\t\t\t[effectiveFallbackLocale]: markdownContent\n\t\t};\n\t\trequiredImports.add(\"md\");\n\t\trequiredImports.add(\"t\");\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tproperty.setInitializer(`md(${buildTranslationInitializer(updatedTranslationMap, existingTranslationTypeArguments)})`);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tif (markdownNodeType === NodeType.Translation) {\n\t\tconst markdownTranslationMap = markdownContent[NodeType.Translation];\n\t\tif (!Object.values(markdownTranslationMap).every((translationValue) => typeof translationValue === \"string\")) return false;\n\t\tif (!areStringMapsEqual(markdownTranslationMap, existingMarkdownTranslationMap)) {\n\t\t\trequiredImports.add(\"md\");\n\t\t\trequiredImports.add(\"t\");\n\t\t\tconst property = contentObject.getProperty(propertyKey);\n\t\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\t\tproperty.setInitializer(`md(${buildTranslationInitializer(markdownTranslationMap, existingTranslationTypeArguments)})`);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tif (!(typeof markdownContent === \"string\" && existingSimpleMarkdown?.kind === \"string\" && existingSimpleMarkdown.value === markdownContent || markdownNodeType === NodeType.File && existingSimpleMarkdown?.kind === \"file\" && existingSimpleMarkdown.path === markdownContent[NodeType.File])) {\n\t\trequiredImports.add(\"md\");\n\t\tif (markdownNodeType === NodeType.File) requiredImports.add(\"file\");\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tproperty.setInitializer(markdownInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes file content.\n* Handles file objects with file path references.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The file content node\n* @param existingPropertyKeys - Set of existing property names\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processFileContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile) => {\n\tconst filePath = contentNode[NodeType.File];\n\tconst fileInitializerText = buildFileInitializer(filePath);\n\tif (!fileInitializerText) return false;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processFileContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t\trequiredImports.add(\"file\");\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: fileInitializerText\n\t\t});\n\t\treturn true;\n\t}\n\tif (readExistingFilePath(contentObject, propertyKey) !== filePath) {\n\t\trequiredImports.add(\"file\");\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tproperty.setInitializer(fileInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes nested content.\n* Handles nested objects with dictionary key and optional path references.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The nested content node\n* @param existingPropertyKeys - Set of existing property names\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processNestedContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile) => {\n\tconst nestedContent = contentNode[NodeType.Nested];\n\tconst nestedInitializerText = buildNestedInitializer(nestedContent);\n\tif (!nestedInitializerText) return false;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processNestedContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t\trequiredImports.add(\"nest\");\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: nestedInitializerText\n\t\t});\n\t\treturn true;\n\t}\n\tconst existingNestedContent = readExistingNest(contentObject, propertyKey);\n\tif (!(!!nestedContent && existingNestedContent?.dictionaryKey === nestedContent.dictionaryKey && existingNestedContent?.path === nestedContent.path)) {\n\t\trequiredImports.add(\"nest\");\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tproperty.setInitializer(nestedInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes nested object content.\n* Handles nested objects within content structures.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param nestedObjectValue - The nested object value to process\n* @param _existingPropertyKeys - Set of existing property names (unused)\n* @param effectiveFallbackLocale - The fallback locale for translations\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processNestedObjectContent = (contentObject, propertyKey, nestedObjectValue, _existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile) => {\n\tlet childObject;\n\tconst existingProperty = contentObject.getProperty(propertyKey);\n\tif (existingProperty && Node.isPropertyAssignment(existingProperty)) childObject = existingProperty.getInitializerIfKind(SyntaxKind.ObjectLiteralExpression);\n\tif (!childObject) {\n\t\tconst shorthandProperty = contentObject.getProperty(propertyKey);\n\t\tif (shorthandProperty && Node.isShorthandPropertyAssignment(shorthandProperty)) childObject = resolveNameToObjectLiteral(contentObject.getSourceFile(), propertyKey);\n\t\telse if (existingProperty && Node.isPropertyAssignment(existingProperty)) {\n\t\t\tconst propertyInitializer = existingProperty.getInitializer();\n\t\t\tif (propertyInitializer) {\n\t\t\t\tif (Node.isIdentifier(propertyInitializer)) childObject = resolveNameToObjectLiteral(sourceFile, propertyInitializer.getText());\n\t\t\t\telse if (Node.isPropertyAccessExpression(propertyInitializer)) childObject = resolveExpressionToObjectLiteral(sourceFile, propertyInitializer);\n\t\t\t}\n\t\t}\n\t}\n\tif (!childObject) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processNestedObjectContent(spreadTargetObject, propertyKey, nestedObjectValue, getExistingPropertyNames(spreadTargetObject), effectiveFallbackLocale, requiredImports, sourceFile);\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: \"{ }\"\n\t\t});\n\t\tconst newProperty = contentObject.getProperty(propertyKey);\n\t\tif (newProperty && Node.isPropertyAssignment(newProperty)) childObject = newProperty.getInitializerIfKind(SyntaxKind.ObjectLiteralExpression);\n\t}\n\tif (childObject) return processContentEntries(childObject, nestedObjectValue, effectiveFallbackLocale, requiredImports, sourceFile);\n\treturn false;\n};\n/**\n* Processes content entries in a dictionary object.\n* Routes different content types to appropriate processors.\n*\n* @param contentObject - The object containing the content\n* @param dictionaryContent - The dictionary content to process\n* @param effectiveFallbackLocale - The fallback locale for translations\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if any content was modified\n*/\nconst processContentEntries = (contentObject, dictionaryContent, effectiveFallbackLocale, requiredImports, sourceFile) => {\n\tlet contentWasChanged = false;\n\tconst existingPropertyKeys = getExistingPropertyNames(contentObject);\n\tfor (const [propertyKey, propertyValue] of Object.entries(dictionaryContent)) {\n\t\tif (Array.isArray(propertyValue)) {\n\t\t\tif (processArrayContent(contentObject, propertyKey, propertyValue, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile)) contentWasChanged = true;\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof propertyValue === \"string\" || typeof propertyValue === \"number\" || typeof propertyValue === \"boolean\" || propertyValue === null) {\n\t\t\tif (processPrimitiveContent(contentObject, propertyKey, propertyValue, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile)) contentWasChanged = true;\n\t\t\tcontinue;\n\t\t}\n\t\tconst nodeType = getNodeType(propertyValue);\n\t\tif (nodeType !== NodeType.Text && nodeType !== NodeType.Number && nodeType !== NodeType.Boolean && nodeType !== NodeType.Null) {\n\t\t\tif (processComplexContent(contentObject, propertyKey, propertyValue, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile)) {\n\t\t\t\tcontentWasChanged = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tif (propertyValue && typeof propertyValue === \"object\" && !Array.isArray(propertyValue) && !propertyValue.nodeType) {\n\t\t\tif (processNestedObjectContent(contentObject, propertyKey, propertyValue, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile)) contentWasChanged = true;\n\t\t}\n\t}\n\treturn contentWasChanged;\n};\nconst readExistingInsertion = (contentObject, propName) => {\n\tconst prop = contentObject.getProperty(propName);\n\tif (!prop || !Node.isPropertyAssignment(prop)) return void 0;\n\tconst init = prop.getInitializer();\n\tif (!init || !Node.isCallExpression(init)) return void 0;\n\tconst exp = init.getExpression();\n\tif (!Node.isIdentifier(exp) || exp.getText() !== \"insert\") return void 0;\n\tconst argument = init.getArguments()[0];\n\tif (!argument) return void 0;\n\tif (Node.isStringLiteral(argument)) return {\n\t\tkind: \"string\",\n\t\tvalue: argument.getLiteralValue()\n\t};\n\tif (Node.isCallExpression(argument)) {\n\t\tconst argumentExpression = argument.getExpression();\n\t\tif (Node.isIdentifier(argumentExpression) && argumentExpression.getText() === \"t\") {\n\t\t\tconst translationArgument = argument.getArguments()[0];\n\t\t\tif (translationArgument && Node.isObjectLiteralExpression(translationArgument)) {\n\t\t\t\tconst map = {};\n\t\t\t\tfor (const propertyAssignment of translationArgument.getProperties()) {\n\t\t\t\t\tif (!Node.isPropertyAssignment(propertyAssignment)) continue;\n\t\t\t\t\tconst name = propertyAssignment.getNameNode().getText().replace(/^['\"]|['\"]$/g, \"\");\n\t\t\t\t\tconst valueInitializer = propertyAssignment.getInitializer();\n\t\t\t\t\tif (valueInitializer && Node.isStringLiteral(valueInitializer)) map[name] = valueInitializer.getLiteralValue();\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tkind: \"translation\",\n\t\t\t\t\tmap\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n};\nconst readExistingMarkdown = (contentObject, propName) => {\n\tconst property = contentObject.getProperty(propName);\n\tif (!property || !Node.isPropertyAssignment(property)) return void 0;\n\tconst initializer = property.getInitializer();\n\tif (!initializer) return void 0;\n\tif (Node.isCallExpression(initializer)) {\n\t\tconst expression = initializer.getExpression();\n\t\tif (!Node.isIdentifier(expression)) return void 0;\n\t\tif (expression.getText() === \"md\") {\n\t\t\tconst argument = initializer.getArguments()[0];\n\t\t\tif (!argument) return void 0;\n\t\t\tif (Node.isStringLiteral(argument)) return {\n\t\t\t\tkind: \"string\",\n\t\t\t\tvalue: argument.getLiteralValue()\n\t\t\t};\n\t\t\tif (Node.isCallExpression(argument)) {\n\t\t\t\tconst argumentExpression = argument.getExpression();\n\t\t\t\tif (Node.isIdentifier(argumentExpression) && argumentExpression.getText() === \"file\") {\n\t\t\t\t\tconst fileArgument = argument.getArguments()[0];\n\t\t\t\t\tif (fileArgument && Node.isStringLiteral(fileArgument)) return {\n\t\t\t\t\t\tkind: \"file\",\n\t\t\t\t\t\tpath: fileArgument.getLiteralValue()\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\nconst readExistingFilePath = (contentObject, propName) => {\n\tconst property = contentObject.getProperty(propName);\n\tif (!property || !Node.isPropertyAssignment(property)) return void 0;\n\tconst initializer = property.getInitializer();\n\tif (!initializer || !Node.isCallExpression(initializer)) return void 0;\n\tconst expression = initializer.getExpression();\n\tif (!Node.isIdentifier(expression) || expression.getText() !== \"file\") return void 0;\n\tconst argument = initializer.getArguments()[0];\n\tif (argument && Node.isStringLiteral(argument)) return argument.getLiteralValue();\n};\nconst readExistingMarkdownTranslationMap = (contentObject, propName) => {\n\tconst property = contentObject.getProperty(propName);\n\tif (!property || !Node.isPropertyAssignment(property)) return void 0;\n\tconst initializer = property.getInitializer();\n\tif (!initializer) return void 0;\n\tif (Node.isCallExpression(initializer)) {\n\t\tconst exp = initializer.getExpression();\n\t\tif (Node.isIdentifier(exp) && exp.getText() === \"md\") {\n\t\t\tconst arg = initializer.getArguments()[0];\n\t\t\tif (arg && Node.isCallExpression(arg)) {\n\t\t\t\tconst tExp = arg.getExpression();\n\t\t\t\tif (Node.isIdentifier(tExp) && tExp.getText() === \"t\") {\n\t\t\t\t\tconst tArg = arg.getArguments()[0];\n\t\t\t\t\tif (tArg && Node.isObjectLiteralExpression(tArg)) {\n\t\t\t\t\t\tconst map = {};\n\t\t\t\t\t\tfor (const prop of tArg.getProperties()) {\n\t\t\t\t\t\t\tif (!Node.isPropertyAssignment(prop)) continue;\n\t\t\t\t\t\t\tconst name = prop.getNameNode().getText().replace(/^['\"]|['\"]$/g, \"\");\n\t\t\t\t\t\t\tconst valueInit = prop.getInitializer();\n\t\t\t\t\t\t\tif (valueInit && Node.isStringLiteral(valueInit)) map[name] = valueInit.getLiteralValue();\n\t\t\t\t\t\t\telse return;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn map;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif (Node.isCallExpression(initializer)) {\n\t\tconst exp = initializer.getExpression();\n\t\tif (Node.isIdentifier(exp) && exp.getText() === \"t\") {\n\t\t\tconst tArg = initializer.getArguments()[0];\n\t\t\tif (tArg && Node.isObjectLiteralExpression(tArg)) {\n\t\t\t\tconst map = {};\n\t\t\t\tfor (const prop of tArg.getProperties()) {\n\t\t\t\t\tif (!Node.isPropertyAssignment(prop)) continue;\n\t\t\t\t\tconst name = prop.getNameNode().getText().replace(/^['\"]|['\"]$/g, \"\");\n\t\t\t\t\tconst valueInit = prop.getInitializer();\n\t\t\t\t\tif (valueInit && Node.isCallExpression(valueInit) && Node.isIdentifier(valueInit.getExpression()) && valueInit.getExpression().getText() === \"md\") {\n\t\t\t\t\t\tconst mdArg = valueInit.getArguments()[0];\n\t\t\t\t\t\tif (mdArg && Node.isStringLiteral(mdArg)) map[name] = mdArg.getLiteralValue();\n\t\t\t\t\t\telse return;\n\t\t\t\t\t} else return;\n\t\t\t\t}\n\t\t\t\treturn map;\n\t\t\t}\n\t\t}\n\t}\n};\nconst readExistingNest = (contentObject, propName) => {\n\tconst property = contentObject.getProperty(propName);\n\tif (!property || !Node.isPropertyAssignment(property)) return void 0;\n\tlet initializer = property.getInitializer();\n\tif (!initializer) return void 0;\n\tlet safetyCounter = 0;\n\twhile (safetyCounter++ < 5) {\n\t\tif (Node.isCallExpression(initializer)) break;\n\t\tconst nextExpression = initializer.getExpression?.();\n\t\tif (nextExpression && typeof nextExpression === \"object\" && nextExpression !== initializer) {\n\t\t\tinitializer = nextExpression;\n\t\t\tcontinue;\n\t\t}\n\t\tbreak;\n\t}\n\tif (!Node.isCallExpression(initializer)) return void 0;\n\tconst expression = initializer.getExpression();\n\tif (!Node.isIdentifier(expression) || expression.getText() !== \"nest\") return void 0;\n\tconst [firstArgument, secondArgument] = initializer.getArguments();\n\tif (!firstArgument || !Node.isStringLiteral(firstArgument)) return void 0;\n\tconst dictionaryKey = firstArgument.getLiteralValue();\n\tlet path;\n\tif (secondArgument && Node.isStringLiteral(secondArgument)) path = secondArgument.getLiteralValue();\n\treturn {\n\t\tdictionaryKey,\n\t\tpath\n\t};\n};\nconst unwrapToObjectLiteral = (node) => {\n\tif (!node || typeof node !== \"object\") return void 0;\n\tlet current = node;\n\tlet safetyCounter = 0;\n\twhile (safetyCounter++ < 8) {\n\t\tif (Node.isObjectLiteralExpression(current)) return current;\n\t\tconst next = current?.getExpression?.();\n\t\tif (next && typeof next === \"object\" && next !== current) {\n\t\t\tcurrent = next;\n\t\t\tcontinue;\n\t\t}\n\t\tbreak;\n\t}\n};\nconst resolveNameToObjectLiteral = (sourceFile, name) => {\n\tconst varDecl = sourceFile.getVariableDeclaration(name);\n\tif (varDecl) {\n\t\tconst obj = unwrapToObjectLiteral(varDecl.getInitializer());\n\t\tif (obj) return obj;\n\t}\n\tconst decl = sourceFile.getDescendants().find((n) => {\n\t\treturn Node.isIdentifier(n) && n.getText() === name;\n\t})?.getSymbol()?.getDeclarations()?.[0];\n\tif (decl && Node.isVariableDeclaration(decl)) {\n\t\tconst obj = unwrapToObjectLiteral(decl.getInitializer());\n\t\tif (obj) return obj;\n\t}\n};\nconst resolveExpressionToObjectLiteral = (sourceFile, expr) => {\n\tif (Node.isIdentifier(expr)) return resolveNameToObjectLiteral(sourceFile, expr.getText());\n\tif (Node.isPropertyAccessExpression(expr)) {\n\t\tconst leftResolved = resolveExpressionToObjectLiteral(sourceFile, expr.getExpression());\n\t\tif (!leftResolved) return void 0;\n\t\tconst propName = expr.getName();\n\t\tconst prop = leftResolved.getProperty(propName);\n\t\tif (prop && Node.isPropertyAssignment(prop)) {\n\t\t\tconst init = prop.getInitializer();\n\t\t\tconst obj = unwrapToObjectLiteral(init);\n\t\t\tif (obj) return obj;\n\t\t\tif (init && Node.isIdentifier(init)) return resolveNameToObjectLiteral(sourceFile, init.getText());\n\t\t}\n\t}\n};\nconst getSpreadSourceObjects = (contentObject, sourceFile) => {\n\tconst spreads = [];\n\tfor (const prop of contentObject.getProperties()) if (Node.isSpreadAssignment(prop)) {\n\t\tconst resolved = resolveExpressionToObjectLiteral(sourceFile, prop.getExpression());\n\t\tif (resolved) spreads.push(resolved);\n\t}\n\treturn spreads;\n};\nconst findSpreadTargetObjectForKey = (contentObject, key, sourceFile) => {\n\tconst spreads = getSpreadSourceObjects(contentObject, sourceFile);\n\tfor (let i = spreads.length - 1; i >= 0; i--) {\n\t\tconst spreadObj = spreads[i];\n\t\tconst prop = spreadObj.getProperty(key);\n\t\tif (prop && Node.isPropertyAssignment(prop)) return spreadObj;\n\t}\n};\nconst readExistingArraySerialized = (contentObject, propName) => {\n\tconst property = contentObject.getProperty(propName);\n\tif (!property || !Node.isPropertyAssignment(property)) return void 0;\n\tconst initializer = property.getInitializer();\n\tif (!initializer || !Node.isArrayLiteralExpression(initializer)) return void 0;\n\tconst serialized = [];\n\tfor (const element of initializer.getElements()) {\n\t\tif (Node.isStringLiteral(element)) {\n\t\t\tserialized.push(JSON.stringify(element.getLiteralValue()));\n\t\t\tcontinue;\n\t\t}\n\t\tif (Node.isNumericLiteral(element)) {\n\t\t\tserialized.push(element.getText());\n\t\t\tcontinue;\n\t\t}\n\t\tif (element.getKind() === SyntaxKind.TrueKeyword || element.getKind() === SyntaxKind.FalseKeyword) {\n\t\t\tserialized.push(element.getText());\n\t\t\tcontinue;\n\t\t}\n\t\tif (Node.isNullLiteral(element)) {\n\t\t\tserialized.push(\"null\");\n\t\t\tcontinue;\n\t\t}\n\t\tif (Node.isCallExpression(element)) {\n\t\t\tconst expression = element.getExpression();\n\t\t\tif (Node.isIdentifier(expression) && expression.getText() === \"t\") {\n\t\t\t\tconst argument = element.getArguments()[0];\n\t\t\t\tif (argument && Node.isObjectLiteralExpression(argument)) {\n\t\t\t\t\tconst map = {};\n\t\t\t\t\tfor (const propertyAssignment of argument.getProperties()) {\n\t\t\t\t\t\tif (!Node.isPropertyAssignment(propertyAssignment)) return void 0;\n\t\t\t\t\t\tconst name = propertyAssignment.getNameNode().getText().replace(/^['\"]|['\"]$/g, \"\");\n\t\t\t\t\t\tconst valueInitializer = propertyAssignment.getInitializer();\n\t\t\t\t\t\tif (valueInitializer && Node.isStringLiteral(valueInitializer)) map[name] = valueInitializer.getLiteralValue();\n\t\t\t\t\t\telse return;\n\t\t\t\t\t}\n\t\t\t\t\tserialized.push(buildTranslationInitializer(map));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn;\n\t}\n\treturn serialized;\n};\nconst serializeValue = (value) => {\n\tconst nodeType = getNodeType(value);\n\tif (nodeType === NodeType.Text) return JSON.stringify(value);\n\tif (nodeType === NodeType.Number || nodeType === NodeType.Boolean) return String(value);\n\tif (nodeType === NodeType.Null) return \"null\";\n\tif (nodeType === NodeType.Translation) {\n\t\tconst translations = value[NodeType.Translation] ?? {};\n\t\tif (!Object.values(translations).every((v) => typeof v === \"string\")) return void 0;\n\t\treturn buildTranslationInitializer(translations);\n\t}\n\tif (nodeType === NodeType.Enumeration) {\n\t\tconst map = value[NodeType.Enumeration];\n\t\treturn buildEnumerationInitializer(map);\n\t}\n\tif (nodeType === NodeType.Condition) {\n\t\tconst map = value[NodeType.Condition];\n\t\treturn buildConditionInitializer(map);\n\t}\n\tif (nodeType === NodeType.Gender) {\n\t\tconst map = value[NodeType.Gender];\n\t\treturn buildGenderInitializer(map);\n\t}\n\tif (nodeType === NodeType.Insertion) {\n\t\tconst content = value[NodeType.Insertion];\n\t\treturn buildInsertionInitializer(content);\n\t}\n\tif (nodeType === NodeType.Markdown) {\n\t\tconst content = value[NodeType.Markdown];\n\t\treturn buildMarkdownInitializer(content);\n\t}\n\tif (nodeType === NodeType.File) {\n\t\tconst path = value[NodeType.File];\n\t\treturn buildFileInitializer(path);\n\t}\n\tif (nodeType === NodeType.Nested) {\n\t\tconst content = value[NodeType.Nested];\n\t\treturn buildNestedInitializer(content);\n\t}\n};\n/**\n* Gets the existing imports from @intlayer/core in the source file\n*/\nconst getExistingIntlayerImports = (sourceFile) => {\n\tconst imported = /* @__PURE__ */ new Set();\n\tfor (const importDecl of sourceFile.getImportDeclarations()) {\n\t\tconst moduleSpecifier = importDecl.getModuleSpecifierValue();\n\t\tif (moduleSpecifier === \"intlayer\") {\n\t\t\tconst namedImports = importDecl.getNamedImports();\n\t\t\tfor (const namedImport of namedImports) imported.add(namedImport.getName());\n\t\t}\n\t\tif (moduleSpecifier === \"intlayer/file\") {\n\t\t\tconst namedImports = importDecl.getNamedImports();\n\t\t\tfor (const namedImport of namedImports) {\n\t\t\t\tconst alias = namedImport.getAliasNode();\n\t\t\t\timported.add(alias ? alias.getText() : namedImport.getName());\n\t\t\t}\n\t\t}\n\t}\n\treturn imported;\n};\n/**\n* Adds missing imports to the source file\n*/\nconst addMissingImports = (sourceFile, requiredImports) => {\n\tif (requiredImports.size === 0) return false;\n\tconst existingImports = getExistingIntlayerImports(sourceFile);\n\tconst missingImports = [...requiredImports].filter((imp) => !existingImports.has(imp));\n\tif (missingImports.length === 0) return false;\n\tconst hasMissingFile = missingImports.includes(\"file\");\n\tconst otherMissingImports = missingImports.filter((imp) => imp !== \"file\");\n\tif (otherMissingImports.length > 0) {\n\t\tconst coreImport = sourceFile.getImportDeclarations().find((imp) => imp.getModuleSpecifierValue() === \"intlayer\");\n\t\tif (coreImport) {\n\t\t\tconst existingNamedImports = coreImport.getNamedImports().map((ni) => ni.getName());\n\t\t\tconst allImports = [...new Set([...existingNamedImports, ...otherMissingImports])].sort();\n\t\t\tcoreImport.removeNamedImports();\n\t\t\tcoreImport.addNamedImports(allImports.map((name) => ({ name })));\n\t\t} else sourceFile.insertImportDeclaration(0, {\n\t\t\tmoduleSpecifier: \"intlayer\",\n\t\t\tnamedImports: otherMissingImports.sort().map((name) => ({ name }))\n\t\t});\n\t}\n\tif (hasMissingFile) {\n\t\tif (!sourceFile.getImportDeclarations().find((imp) => imp.getModuleSpecifierValue() === \"intlayer/file\")) {\n\t\t\tconst coreImportIndex = sourceFile.getImportDeclarations().findIndex((imp) => imp.getModuleSpecifierValue() === \"intlayer\");\n\t\t\tconst insertIndex = coreImportIndex >= 0 ? coreImportIndex + 1 : 0;\n\t\t\tsourceFile.insertImportDeclaration(insertIndex, {\n\t\t\t\tmoduleSpecifier: \"intlayer/file\",\n\t\t\t\tnamedImports: [{ name: \"file\" }]\n\t\t\t});\n\t\t}\n\t}\n\treturn true;\n};\n/**\n* Detect whether the current source file is written in CommonJS style.\n* Prefers ESM when import/export syntax is present; otherwise detects CJS via require/module.exports.\n*/\nconst isCommonJS = (sourceFile) => {\n\tif (sourceFile.getImportDeclarations().length > 0) return false;\n\tif (sourceFile.getExportDeclarations().length > 0) return false;\n\tif (sourceFile.getExportAssignments().length > 0) return false;\n\tfor (const statement of sourceFile.getStatements()) {\n\t\tif (!Node.isExpressionStatement(statement)) continue;\n\t\tconst expression = statement.getExpression();\n\t\tif (!Node.isBinaryExpression(expression)) continue;\n\t\tconst leftSide = expression.getLeft();\n\t\tif (!Node.isPropertyAccessExpression(leftSide)) continue;\n\t\tconst leftExpression = leftSide.getExpression();\n\t\tconst leftName = leftSide.getName();\n\t\tconst isModuleExports = Node.isIdentifier(leftExpression) && leftExpression.getText() === \"module\" && leftName === \"exports\";\n\t\tconst isExportsDefault = Node.isIdentifier(leftExpression) && leftExpression.getText() === \"exports\";\n\t\tif (isModuleExports || isExportsDefault) return true;\n\t}\n\treturn sourceFile.getDescendantsOfKind(SyntaxKind.CallExpression).some((call) => {\n\t\tconst exp = call.getExpression();\n\t\treturn Node.isIdentifier(exp) && exp.getText() === \"require\";\n\t});\n};\n/**\n* Adds missing CommonJS requires for intlayer helpers.\n* - Core helpers (t, md, insert, enu, cond, gender, nest) come from require('intlayer') via destructuring\n* - file helper comes from require('intlayer/file') via destructuring\n* Existing destructured requires are respected to avoid duplicates.\n*/\nconst addMissingRequires = (sourceFile, requiredImports) => {\n\tif (requiredImports.size === 0) return false;\n\tconst existingCoreNames = /* @__PURE__ */ new Set();\n\tlet hasFileHelper = false;\n\tfor (const varDecl of sourceFile.getVariableDeclarations()) {\n\t\tconst init = varDecl.getInitializer();\n\t\tif (!init || !Node.isCallExpression(init)) continue;\n\t\tconst callee = init.getExpression();\n\t\tif (!Node.isIdentifier(callee) || callee.getText() !== \"require\") continue;\n\t\tconst arg = init.getArguments()[0];\n\t\tif (!arg || !Node.isStringLiteral(arg)) continue;\n\t\tconst spec = arg.getLiteralValue();\n\t\tconst nameNode = varDecl.getNameNode();\n\t\tif (spec === \"intlayer\") {\n\t\t\tif (Node.isObjectBindingPattern(nameNode)) for (const el of nameNode.getElements()) existingCoreNames.add(el.getNameNode().getText());\n\t\t}\n\t\tif (spec === \"intlayer/file\") {\n\t\t\tif (Node.isObjectBindingPattern(nameNode)) {\n\t\t\t\tfor (const el of nameNode.getElements()) if (el.getNameNode().getText() === \"file\") hasFileHelper = true;\n\t\t\t} else if (Node.isIdentifier(nameNode) && nameNode.getText() === \"file\") hasFileHelper = true;\n\t\t}\n\t}\n\tconst missingCore = Array.from(requiredImports).filter((n) => n !== \"file\").filter((n) => !existingCoreNames.has(n));\n\tconst needsFile = requiredImports.has(\"file\") && !hasFileHelper;\n\tif (missingCore.length === 0 && !needsFile) return false;\n\tlet insertIndex = 0;\n\tconst statements = sourceFile.getStatements();\n\tfor (const st of statements) {\n\t\tif (Node.isExpressionStatement(st)) {\n\t\t\tconst expr = st.getExpression();\n\t\t\tif (Node.isStringLiteral(expr)) {\n\t\t\t\tinsertIndex += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tbreak;\n\t}\n\tconst lines = [];\n\tif (missingCore.length > 0) {\n\t\tconst sorted = Array.from(new Set(missingCore)).sort();\n\t\tlines.push(`const { ${sorted.join(\", \")} } = require('intlayer');`);\n\t}\n\tif (needsFile) lines.push(\"const { file } = require('intlayer/file');\");\n\tif (lines.length > 0) {\n\t\tsourceFile.insertStatements(insertIndex, lines.join(\"\\n\"));\n\t\treturn true;\n\t}\n\treturn false;\n};\n/**\n* Serializes a metadata value to its string representation for code generation\n* Handles: boolean, number, string, and array of strings\n*/\nconst serializeMetadataValue = (value) => {\n\tif (Array.isArray(value)) return `[${value.map((item) => JSON.stringify(item)).join(\", \")}]`;\n\tif (typeof value === \"boolean\" || typeof value === \"number\") return String(value);\n\treturn JSON.stringify(value);\n};\n/**\n* Updates a single property in the root object if the value has changed\n*/\nconst updateMetadataProperty = (rootObject, propertyName, value) => {\n\tconst property = rootObject.getProperty(propertyName);\n\tconst serializedValue = serializeMetadataValue(value);\n\tif (property && Node.isPropertyAssignment(property)) {\n\t\tif (property.getInitializer()?.getText() !== serializedValue) {\n\t\t\tproperty.setInitializer(serializedValue);\n\t\t\treturn true;\n\t\t}\n\t} else if (!property) {\n\t\trootObject.addPropertyAssignment({\n\t\t\tname: propertyName,\n\t\t\tinitializer: serializedValue\n\t\t});\n\t\treturn true;\n\t}\n\treturn false;\n};\n/**\n* Updates dictionary metadata properties in the root object\n* Supports: id, locale, filled, fill, title, description, tags, version, priority, live\n* and any future fields that may be added\n*/\nconst updateDictionaryMetadata = (rootObject, dictionary) => {\n\tlet changed = false;\n\tfor (const prop of [\n\t\t\"id\",\n\t\t\"locale\",\n\t\t\"filled\",\n\t\t\"fill\",\n\t\t\"title\",\n\t\t\"description\",\n\t\t\"tags\",\n\t\t\"version\",\n\t\t\"priority\",\n\t\t\"live\"\n\t]) {\n\t\tconst value = dictionary[prop];\n\t\tif (value !== void 0) {\n\t\t\tif (updateMetadataProperty(rootObject, prop, value)) changed = true;\n\t\t}\n\t}\n\treturn changed;\n};\n/**\n* Locates the root dictionary object in the source file\n*/\nconst findRootDictionaryObject = (sourceFile) => {\n\tconst exportAssignment = sourceFile.getExportAssignment((_) => true);\n\tif (exportAssignment) {\n\t\tconst expression = exportAssignment.getExpression();\n\t\tif (Node.isIdentifier(expression)) {\n\t\t\tconst declarationByName = expression.getSymbol()?.getDeclarations()?.[0] ?? sourceFile.getVariableDeclaration(expression.getText());\n\t\t\tif (declarationByName && Node.isVariableDeclaration(declarationByName)) {\n\t\t\t\tconst objectLiteral = unwrapToObjectLiteral(declarationByName.getInitializer());\n\t\t\t\tif (objectLiteral) return objectLiteral;\n\t\t\t}\n\t\t} else {\n\t\t\tconst objectLiteral = unwrapToObjectLiteral(expression);\n\t\t\tif (objectLiteral) return objectLiteral;\n\t\t}\n\t}\n\tconst variableDeclaration = sourceFile.getVariableDeclaration((variable) => {\n\t\ttry {\n\t\t\treturn variable.getType().getText().includes(\"Dictionary\") || variable.getName() === \"content\" || variable.getName().toLowerCase().includes(\"dictionary\");\n\t\t} catch {\n\t\t\treturn variable.getName() === \"content\";\n\t\t}\n\t});\n\tif (variableDeclaration) {\n\t\tconst objectLiteral = unwrapToObjectLiteral(variableDeclaration.getInitializer());\n\t\tif (objectLiteral) return objectLiteral;\n\t}\n\tfor (const statement of sourceFile.getStatements()) {\n\t\tif (!Node.isExpressionStatement(statement)) continue;\n\t\tconst expression = statement.getExpression();\n\t\tif (!Node.isBinaryExpression(expression)) continue;\n\t\tif (expression.getOperatorToken().getText() !== \"=\") continue;\n\t\tconst leftSide = expression.getLeft();\n\t\tif (!Node.isPropertyAccessExpression(leftSide)) continue;\n\t\tconst leftExpression = leftSide.getExpression();\n\t\tconst leftName = leftSide.getName();\n\t\tconst isModuleExports = Node.isIdentifier(leftExpression) && leftExpression.getText() === \"module\" && leftName === \"exports\";\n\t\tconst isExportsDefault = Node.isIdentifier(leftExpression) && leftExpression.getText() === \"exports\" && leftName === \"default\";\n\t\tif (!isModuleExports && !isExportsDefault) continue;\n\t\tconst rightSide = expression.getRight();\n\t\tif (Node.isObjectLiteralExpression(rightSide)) return rightSide;\n\t\tif (Node.isIdentifier(rightSide)) {\n\t\t\tconst declaration = rightSide.getSymbol()?.getDeclarations()?.[0];\n\t\t\tif (declaration && Node.isVariableDeclaration(declaration)) {\n\t\t\t\tconst objectLiteral = unwrapToObjectLiteral(declaration.getInitializer());\n\t\t\t\tif (objectLiteral) return objectLiteral;\n\t\t\t}\n\t\t}\n\t}\n};\n/**\n* Updates a JavaScript/TypeScript file based on the provided dictionary.\n* It targets a specific dictionary object within the file and updates its\n* metadata (title, description, tags) and content entries.\n*\n* This function now supports inserting translation keys into nested objects\n* within arrays. For example, if you have:\n* ```\n* content: [\n* { question: t({ en: '...', fr: '...' }) }\n* ]\n* ```\n*\n* You can add a new locale (e.g., 'pl') by providing a dictionary with:\n* ```\n* {\n* content: [\n* { question: { [NodeType.Translation]: { en: '...', fr: '...', pl: '...' } } }\n* ]\n* }\n* ```\n*\n* The function will:\n* 1. Detect the existing array structure\n* 2. Navigate into each array element (if it's an object)\n* 3. Recursively process nested properties\n* 4. Update translation maps while preserving existing locales\n*/\nconst transformJSFile = async (fileContent, dictionary, fallbackLocale) => {\n\ttry {\n\t\tif (!dictionary || typeof dictionary !== \"object\") return fileContent;\n\t\tconst sourceFile = new Project({\n\t\t\tuseInMemoryFileSystem: true,\n\t\t\tskipAddingFilesFromTsConfig: true,\n\t\t\tskipFileDependencyResolution: true,\n\t\t\tcompilerOptions: {\n\t\t\t\tallowJs: true,\n\t\t\t\tjsx: ts.JsxEmit.Preserve\n\t\t\t},\n\t\t\tmanipulationSettings: {\n\t\t\t\tindentationText: IndentationText.TwoSpaces,\n\t\t\t\tquoteKind: QuoteKind.Double,\n\t\t\t\tnewLineKind: NewLineKind.LineFeed\n\t\t\t}\n\t\t}).createSourceFile(\"file.tsx\", fileContent, { overwrite: true });\n\t\tconst rootObject = findRootDictionaryObject(sourceFile);\n\t\tif (!rootObject) return fileContent;\n\t\tlet changed = false;\n\t\tconst requiredImports = /* @__PURE__ */ new Set();\n\t\tif (updateDictionaryMetadata(rootObject, dictionary)) changed = true;\n\t\tif (dictionary.content) {\n\t\t\tconst contentProperty = rootObject.getProperty(\"content\");\n\t\t\tlet contentObject;\n\t\t\tlet isContentArrayInSource = false;\n\t\t\tif (contentProperty && Node.isPropertyAssignment(contentProperty)) {\n\t\t\t\tcontentObject = contentProperty.getInitializerIfKind(SyntaxKind.ObjectLiteralExpression);\n\t\t\t\tisContentArrayInSource = !!contentProperty.getInitializerIfKind(SyntaxKind.ArrayLiteralExpression);\n\t\t\t}\n\t\t\tconst effectiveFallbackLocale = fallbackLocale ?? \"en\";\n\t\t\tif (contentObject && !Array.isArray(dictionary.content)) {\n\t\t\t\tconst dictContent = dictionary.content ?? {};\n\t\t\t\tif (processContentEntries(contentObject, dictContent, effectiveFallbackLocale, requiredImports, sourceFile)) changed = true;\n\t\t\t} else if (Array.isArray(dictionary.content) && isContentArrayInSource) {\n\t\t\t\tif (processArrayContent(rootObject, \"content\", dictionary.content ?? [], getExistingPropertyNames(rootObject), effectiveFallbackLocale, requiredImports, sourceFile)) changed = true;\n\t\t\t}\n\t\t}\n\t\tif (!changed) return fileContent;\n\t\tif ((isCommonJS(sourceFile) ? addMissingRequires(sourceFile, requiredImports) : addMissingImports(sourceFile, requiredImports)) || changed) return sourceFile.getFullText();\n\t\treturn fileContent;\n\t} catch {\n\t\treturn fileContent;\n\t}\n};\n\n//#endregion\nexport { transformJSFile };\n//# sourceMappingURL=transformJSFile.mjs.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transformJSFile.mjs","names":["Node","SyntaxKind","Project","ts","IndentationText","QuoteKind","NewLineKind"],"sources":["../../../../../../../../../@intlayer/chokidar/dist/esm/writeContentDeclaration/transformJSFile.mjs"],"sourcesContent":["import { getNodeType } from \"@intlayer/core\";\nimport { NodeType } from \"@intlayer/types\";\nimport { IndentationText, NewLineKind, Node, Project, QuoteKind, SyntaxKind, ts } from \"ts-morph\";\n\n//#region src/writeContentDeclaration/transformJSFile.ts\n/**\n* Builds a translation initializer string for the 't' function call.\n* Creates a properly formatted translation object with locale keys and values.\n*\n* @param translationMap - Map of locale codes to translation values\n* @param typeArgumentsText - Optional generic type arguments for the translation function\n* @returns Formatted string for the translation function call\n*/\nconst buildTranslationInitializer = (translationMap, typeArgumentsText) => {\n\tconst translationEntries = Object.entries(translationMap).sort(([firstKey], [secondKey]) => firstKey.localeCompare(secondKey));\n\tconst translationParts = [];\n\tfor (const [localeCode, translationValue] of translationEntries) {\n\t\tconst formattedLocaleKey = /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(localeCode) ? localeCode : JSON.stringify(localeCode);\n\t\tif (typeof translationValue === \"string\") translationParts.push(`${formattedLocaleKey}: ${JSON.stringify(translationValue)}`);\n\t\telse if (Array.isArray(translationValue)) {\n\t\t\tconst serializedArrayElements = translationValue.map((arrayElement) => JSON.stringify(arrayElement)).join(\", \");\n\t\t\ttranslationParts.push(`${formattedLocaleKey}: [ ${serializedArrayElements} ]`);\n\t\t} else translationParts.push(`${formattedLocaleKey}: ${JSON.stringify(translationValue)}`);\n\t}\n\treturn `t${typeArgumentsText ?? \"\"}({ ${translationParts.join(\", \")} })`;\n};\n/**\n* Synchronizes numeric suffixes across locales to maintain consistency.\n* When updating a fallback locale's numeric suffix, this function updates\n* the corresponding numeric suffixes in other locales to match.\n*\n* This is useful for maintaining numbered lists across translations,\n* e.g., \"Hello 1\" / \"Bonjour 1\" when updating to \"Hello 3\".\n*\n* @param existingTranslationMap - Current translation map with locale values\n* @param fallbackLocaleCode - The locale being updated (fallback)\n* @param newFallbackValue - The new value for the fallback locale\n* @returns Updated translation map with synchronized numeric suffixes\n*/\nconst syncNumericSuffixAcrossLocales = (existingTranslationMap, fallbackLocaleCode, newFallbackValue) => {\n\tconst updatedTranslationMap = {\n\t\t...existingTranslationMap,\n\t\t[fallbackLocaleCode]: newFallbackValue\n\t};\n\tconst trailingNumberMatch = newFallbackValue.match(/\\d+(?!.*\\d)/);\n\tif (!trailingNumberMatch) return updatedTranslationMap;\n\tconst newTrailingNumber = trailingNumberMatch[0];\n\tfor (const [localeCode, currentValue] of Object.entries(existingTranslationMap)) {\n\t\tif (localeCode === fallbackLocaleCode) continue;\n\t\tif (!currentValue.match(/\\d+(?!.*\\d)/)) continue;\n\t\tupdatedTranslationMap[localeCode] = currentValue.replace(/(\\d+)(?!.*\\d)/, newTrailingNumber);\n\t}\n\treturn updatedTranslationMap;\n};\n/**\n* Safely formats a key for use in object literals.\n* Handles special cases like reserved keywords and non-identifier keys.\n*\n* @param objectKey - The key to format\n* @returns Properly formatted key string\n*/\nconst stringifyKey = (objectKey) => {\n\tif (!/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(objectKey)) return JSON.stringify(objectKey);\n\tif (objectKey === \"true\" || objectKey === \"false\") return JSON.stringify(objectKey);\n\treturn objectKey;\n};\n/**\n* Builds an enumeration initializer string for the 'enu' function call.\n* Creates a properly formatted enumeration object with key-value pairs.\n*\n* @param enumerationMap - Map of enumeration keys to string values\n* @returns Formatted string for the enumeration function call, or empty string if invalid\n*/\nconst buildEnumerationInitializer = (enumerationMap) => {\n\tconst enumerationParts = [];\n\tfor (const [enumerationKey, enumerationValue] of Object.entries(enumerationMap)) {\n\t\tif (typeof enumerationValue !== \"string\") return \"\";\n\t\tenumerationParts.push(`${stringifyKey(enumerationKey)}: ${JSON.stringify(enumerationValue)}`);\n\t}\n\treturn `enu({ ${enumerationParts.join(\", \")} })`;\n};\n/**\n* Builds a condition initializer string for the 'cond' function call.\n* Creates a properly formatted condition object with key-value pairs.\n*\n* @param conditionMap - Map of condition keys to string values\n* @returns Formatted string for the condition function call, or empty string if invalid\n*/\nconst buildConditionInitializer = (conditionMap) => {\n\tconst conditionParts = [];\n\tfor (const [conditionKey, conditionValue] of Object.entries(conditionMap)) {\n\t\tif (typeof conditionValue !== \"string\") return \"\";\n\t\tconditionParts.push(`${stringifyKey(conditionKey)}: ${JSON.stringify(conditionValue)}`);\n\t}\n\treturn `cond({ ${conditionParts.join(\", \")} })`;\n};\n/**\n* Builds a gender initializer string for the 'gender' function call.\n* Creates a properly formatted gender object with key-value pairs.\n*\n* @param genderMap - Map of gender keys to string values\n* @returns Formatted string for the gender function call, or empty string if invalid\n*/\nconst buildGenderInitializer = (genderMap) => {\n\tconst genderParts = [];\n\tfor (const [genderKey, genderValue] of Object.entries(genderMap)) {\n\t\tif (typeof genderValue !== \"string\") return \"\";\n\t\tgenderParts.push(`${stringifyKey(genderKey)}: ${JSON.stringify(genderValue)}`);\n\t}\n\treturn `gender({ ${genderParts.join(\", \")} })`;\n};\n/**\n* Builds an insertion initializer string for the 'insert' function call.\n* Handles both string content and translation content for insertions.\n*\n* @param insertionContent - The content to be inserted (string or translation)\n* @returns Formatted string for the insertion function call, or undefined if invalid\n*/\nconst buildInsertionInitializer = (insertionContent) => {\n\tif (typeof insertionContent === \"string\") return `insert(${JSON.stringify(insertionContent)})`;\n\tif (getNodeType(insertionContent) === NodeType.Translation) {\n\t\tconst translationMap = insertionContent[NodeType.Translation] ?? {};\n\t\tif (!Object.values(translationMap).every((translationValue) => typeof translationValue === \"string\")) return void 0;\n\t\treturn `insert(${buildTranslationInitializer(translationMap)})`;\n\t}\n};\n/**\n* Builds a file initializer string for the 'file' function call.\n* Creates a properly formatted file path reference.\n*\n* @param filePath - The file path to reference\n* @returns Formatted string for the file function call, or undefined if invalid\n*/\nconst buildFileInitializer = (filePath) => {\n\tif (typeof filePath === \"string\") return `file(${JSON.stringify(filePath)})`;\n};\n/**\n* Builds a markdown initializer string for the 'md' function call.\n* Handles string content, translation content, and file references for markdown.\n*\n* @param markdownContent - The markdown content (string, translation, or file reference)\n* @returns Formatted string for the markdown function call, or undefined if invalid\n*/\nconst buildMarkdownInitializer = (markdownContent) => {\n\tif (typeof markdownContent === \"string\") return `md(${JSON.stringify(markdownContent)})`;\n\tif (getNodeType(markdownContent) === NodeType.Translation) {\n\t\tconst translationMap = markdownContent[NodeType.Translation] ?? {};\n\t\tif (!Object.values(translationMap).every((translationValue) => typeof translationValue === \"string\")) return void 0;\n\t\treturn `md(${buildTranslationInitializer(translationMap)})`;\n\t}\n\tif (getNodeType(markdownContent) === NodeType.File) {\n\t\tconst filePath = markdownContent[NodeType.File];\n\t\tconst fileInitializer = buildFileInitializer(filePath);\n\t\tif (!fileInitializer) return void 0;\n\t\treturn `md(${fileInitializer})`;\n\t}\n};\n/**\n* Builds a nested initializer string for the 'nest' function call.\n* Creates a properly formatted nested dictionary reference.\n*\n* @param nestedContent - The nested content with dictionary key and optional path\n* @returns Formatted string for the nested function call, or undefined if invalid\n*/\nconst buildNestedInitializer = (nestedContent) => {\n\tif (!nestedContent || typeof nestedContent.dictionaryKey !== \"string\") return void 0;\n\tif (nestedContent.path && typeof nestedContent.path === \"string\") return `nest(${JSON.stringify(nestedContent.dictionaryKey)}, ${JSON.stringify(nestedContent.path)})`;\n\treturn `nest(${JSON.stringify(nestedContent.dictionaryKey)})`;\n};\n/**\n* Reads an existing translation map from a property in a content object.\n* Parses the 't' function call and extracts the translation key-value pairs.\n*\n* @param contentObject - The object containing the property\n* @param propertyName - The name of the property to read\n* @returns Translation map with locale keys and values, or undefined if not found\n*/\nconst readExistingTranslationMap = (contentObject, propertyName) => {\n\tconst property = contentObject.getProperty(propertyName);\n\tif (!property || !Node.isPropertyAssignment(property)) return void 0;\n\tconst propertyInitializer = property.getInitializer();\n\tif (!propertyInitializer) return void 0;\n\tif (!Node.isCallExpression(propertyInitializer)) return void 0;\n\tconst callExpression = propertyInitializer.getExpression();\n\tif (!Node.isIdentifier(callExpression) || callExpression.getText() !== \"t\") return void 0;\n\tconst translationArgument = propertyInitializer.getArguments()[0];\n\tif (!translationArgument || !Node.isObjectLiteralExpression(translationArgument)) return void 0;\n\tconst translationMap = {};\n\tfor (const propertyAssignment of translationArgument.getProperties()) {\n\t\tif (!Node.isPropertyAssignment(propertyAssignment)) continue;\n\t\tconst cleanPropertyName = propertyAssignment.getNameNode().getText().replace(/^['\"]|['\"]$/g, \"\");\n\t\tconst valueInitializer = propertyAssignment.getInitializer();\n\t\tif (valueInitializer && Node.isStringLiteral(valueInitializer)) translationMap[cleanPropertyName] = valueInitializer.getLiteralValue();\n\t\telse if (valueInitializer && Node.isArrayLiteralExpression(valueInitializer)) {\n\t\t\tconst stringArray = [];\n\t\t\tfor (const arrayElement of valueInitializer.getElements()) {\n\t\t\t\tif (!Node.isStringLiteral(arrayElement)) return void 0;\n\t\t\t\tstringArray.push(arrayElement.getLiteralValue());\n\t\t\t}\n\t\t\ttranslationMap[cleanPropertyName] = stringArray;\n\t\t} else return;\n\t}\n\treturn translationMap;\n};\n/**\n* Reads an existing map from a function call (enu, cond, or gender).\n* Parses the function call and extracts the key-value pairs.\n*\n* @param contentObject - The object containing the property\n* @param propertyName - The name of the property to read\n* @param functionName - The name of the function to look for ('enu', 'cond', or 'gender')\n* @returns Map with keys and string values, or undefined if not found\n*/\nconst readExistingMapFromCall = (contentObject, propertyName, functionName) => {\n\tconst property = contentObject.getProperty(propertyName);\n\tif (!property || !Node.isPropertyAssignment(property)) return void 0;\n\tconst propertyInitializer = property.getInitializer();\n\tif (!propertyInitializer || !Node.isCallExpression(propertyInitializer)) return void 0;\n\tconst callExpression = propertyInitializer.getExpression();\n\tif (!Node.isIdentifier(callExpression) || callExpression.getText() !== functionName) return void 0;\n\tconst functionArgument = propertyInitializer.getArguments()[0];\n\tif (!functionArgument || !Node.isObjectLiteralExpression(functionArgument)) return void 0;\n\tconst keyValueMap = {};\n\tfor (const propertyAssignment of functionArgument.getProperties()) {\n\t\tif (!Node.isPropertyAssignment(propertyAssignment)) continue;\n\t\tconst cleanPropertyName = propertyAssignment.getNameNode().getText().replace(/^['\"]|['\"]$/g, \"\");\n\t\tconst valueInitializer = propertyAssignment.getInitializer();\n\t\tif (valueInitializer && Node.isStringLiteral(valueInitializer)) keyValueMap[cleanPropertyName] = valueInitializer.getLiteralValue();\n\t}\n\treturn keyValueMap;\n};\n/**\n* Extracts generic type arguments text from a call expression.\n* Returns the type arguments as a string (e.g., \"<string[]>\").\n*\n* @param callExpression - The call expression to extract type arguments from\n* @returns Type arguments as a string, or undefined if none found\n*/\nconst getCallExpressionTypeArgsText = (callExpression) => {\n\ttry {\n\t\tconst typeArguments = callExpression.getTypeArguments();\n\t\tif (!typeArguments || typeArguments.length === 0) return void 0;\n\t\treturn `<${typeArguments.map((typeArgument) => typeArgument.getText()).join(\", \")}>`;\n\t} catch {\n\t\treturn;\n\t}\n};\n/**\n* Reads existing type arguments used in a specific property call.\n* Supports both direct calls and nested calls (e.g., md(t<...>(...))).\n*\n* @param contentObject - The object containing the property\n* @param propertyName - The name of the property to read\n* @param functionName - The name of the function to look for\n* @returns Type arguments as a string, or undefined if not found\n*/\nconst readExistingTypeArgsForCall = (contentObject, propertyName, functionName) => {\n\tconst property = contentObject.getProperty(propertyName);\n\tif (!property || !Node.isPropertyAssignment(property)) return void 0;\n\tconst propertyInitializer = property.getInitializer();\n\tif (!propertyInitializer || !Node.isCallExpression(propertyInitializer)) return void 0;\n\tconst callExpression = propertyInitializer.getExpression();\n\tif (Node.isIdentifier(callExpression) && callExpression.getText() === functionName) return getCallExpressionTypeArgsText(propertyInitializer);\n\tif (functionName === \"t\" && Node.isIdentifier(callExpression) && callExpression.getText() === \"md\") {\n\t\tconst markdownArgument = propertyInitializer.getArguments()[0];\n\t\tif (markdownArgument && Node.isCallExpression(markdownArgument)) {\n\t\t\tconst innerExpression = markdownArgument.getExpression();\n\t\t\tif (Node.isIdentifier(innerExpression) && innerExpression.getText() === \"t\") return getCallExpressionTypeArgsText(markdownArgument);\n\t\t}\n\t}\n};\n/**\n* Compares two string maps for equality.\n* Filters out non-string values from the first map before comparison.\n*\n* @param firstMap - First map to compare (may contain non-string values)\n* @param secondMap - Second map to compare (should contain only strings)\n* @returns True if the string values in both maps are equal\n*/\nconst areStringMapsEqual = (firstMap, secondMap) => {\n\tif (!secondMap) return false;\n\tconst firstMapStringEntries = Object.entries(firstMap).filter(([, value]) => typeof value === \"string\");\n\tif (firstMapStringEntries.length !== Object.keys(firstMap).length) return false;\n\tif (firstMapStringEntries.length !== Object.keys(secondMap).length) return false;\n\tfor (const [key, value] of firstMapStringEntries) {\n\t\tif (!(key in secondMap)) return false;\n\t\tif (secondMap[key] !== value) return false;\n\t}\n\treturn true;\n};\n/**\n* Compares translation maps for equality.\n* Handles both string and array values in translations.\n*\n* @param desiredTranslationMap - The desired translation map\n* @param existingTranslationMap - The existing translation map to compare against\n* @returns True if both translation maps are equal\n*/\nconst areTranslationsEqual = (desiredTranslationMap, existingTranslationMap) => {\n\tif (!existingTranslationMap) return false;\n\tfor (const [localeCode, desiredValue] of Object.entries(desiredTranslationMap)) {\n\t\tif (!(localeCode in existingTranslationMap)) return false;\n\t\tconst existingValue = existingTranslationMap[localeCode];\n\t\tif (typeof desiredValue === \"string\") {\n\t\t\tif (typeof existingValue !== \"string\") return false;\n\t\t\tif (existingValue !== desiredValue) return false;\n\t\t} else if (Array.isArray(desiredValue)) {\n\t\t\tif (!Array.isArray(existingValue)) return false;\n\t\t\tif (existingValue.length !== desiredValue.length) return false;\n\t\t\tfor (let arrayIndex = 0; arrayIndex < desiredValue.length; arrayIndex++) if (existingValue[arrayIndex] !== desiredValue[arrayIndex]) return false;\n\t\t} else return false;\n\t}\n\treturn true;\n};\n/**\n* Gets existing property names from the content object.\n* Handles both regular property assignments and shorthand properties.\n*\n* @param contentObject - The object literal expression to extract property names from\n* @returns Set of existing property names\n*/\nconst getExistingPropertyNames = (contentObject) => {\n\tconst existingPropertyNames = /* @__PURE__ */ new Set();\n\tfor (const property of contentObject.getProperties()) {\n\t\tif (Node.isPropertyAssignment(property)) {\n\t\t\tconst propertyName = property.getName();\n\t\t\tif (propertyName) existingPropertyNames.add(propertyName.replace(/^['\"]|['\"]$/g, \"\"));\n\t\t\tcontinue;\n\t\t}\n\t\tif (Node.isShorthandPropertyAssignment(property)) {\n\t\t\tconst shorthandPropertyName = property.getNameNode().getText();\n\t\t\tif (shorthandPropertyName) existingPropertyNames.add(shorthandPropertyName);\n\t\t}\n\t}\n\treturn existingPropertyNames;\n};\n/**\n* Processes array content entries.\n* Handles arrays of various content types including strings, objects, and complex content nodes.\n* Supports nested objects within arrays and maintains existing translation structures.\n*\n* @param contentObject - The object containing the array property\n* @param propertyKey - The key of the array property\n* @param arrayValue - The array of values to process\n* @param existingPropertyKeys - Set of existing property names in the content object\n* @param effectiveFallbackLocale - The fallback locale for translations\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processArrayContent = (contentObject, propertyKey, arrayValue, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile) => {\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processArrayContent(spreadTargetObject, propertyKey, arrayValue, getExistingPropertyNames(spreadTargetObject), effectiveFallbackLocale, requiredImports, sourceFile);\n\t}\n\tconst serializedArrayElements = [];\n\tlet hasUnsupportedContent = false;\n\tlet existingArrayElements;\n\tlet existingArrayHasTranslation = false;\n\tlet existingArrayTypeArguments;\n\tlet arrayWasChanged = false;\n\tconst existingProperty = contentObject.getProperty(propertyKey);\n\tif (existingProperty && Node.isPropertyAssignment(existingProperty)) {\n\t\tconst propertyInitializer = existingProperty.getInitializer();\n\t\tlet existingPropertyTypeArguments;\n\t\tconst areAllDesiredValuesStrings = arrayValue.every((arrayElement) => typeof arrayElement === \"string\");\n\t\tif (propertyInitializer && Node.isCallExpression(propertyInitializer) && Node.isIdentifier(propertyInitializer.getExpression()) && propertyInitializer.getExpression().getText() === \"t\" && areAllDesiredValuesStrings) {\n\t\t\texistingPropertyTypeArguments = getCallExpressionTypeArgsText(propertyInitializer);\n\t\t\tconst existingTranslationMap = readExistingTranslationMap(contentObject, propertyKey);\n\t\t\tif (existingTranslationMap) {\n\t\t\t\tconst translationInitializerText = buildTranslationInitializer({\n\t\t\t\t\t...existingTranslationMap,\n\t\t\t\t\t[effectiveFallbackLocale]: arrayValue\n\t\t\t\t}, existingPropertyTypeArguments);\n\t\t\t\trequiredImports.add(\"t\");\n\t\t\t\tconst property$1 = contentObject.getProperty(propertyKey);\n\t\t\t\tif (property$1 && Node.isPropertyAssignment(property$1)) {\n\t\t\t\t\tif (property$1.getInitializer()?.getText() !== translationInitializerText) {\n\t\t\t\t\t\tproperty$1.setInitializer(translationInitializerText);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif (propertyInitializer && Node.isArrayLiteralExpression(propertyInitializer)) {\n\t\t\texistingArrayElements = propertyInitializer.getElements();\n\t\t\texistingArrayHasTranslation = propertyInitializer.getElements().some((arrayElement) => {\n\t\t\t\tif (!Node.isCallExpression(arrayElement)) return false;\n\t\t\t\tconst callExpression = arrayElement.getExpression();\n\t\t\t\treturn Node.isIdentifier(callExpression) && callExpression.getText() === \"t\";\n\t\t\t});\n\t\t\tif (existingArrayHasTranslation) {\n\t\t\t\tfor (const arrayElement of existingArrayElements) if (Node.isCallExpression(arrayElement)) {\n\t\t\t\t\tconst callExpression = arrayElement.getExpression();\n\t\t\t\t\tif (Node.isIdentifier(callExpression) && callExpression.getText() === \"t\") {\n\t\t\t\t\t\texistingArrayTypeArguments = getCallExpressionTypeArgsText(arrayElement);\n\t\t\t\t\t\tif (existingArrayTypeArguments) break;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfor (let elementIndex = 0; elementIndex < arrayValue.length; elementIndex++) {\n\t\tconst currentElement = arrayValue[elementIndex];\n\t\tif (currentElement === null || currentElement === void 0 || typeof currentElement === \"string\" || typeof currentElement === \"number\" || typeof currentElement === \"boolean\") {\n\t\t\tlet serializedElementValue = serializeValue(currentElement);\n\t\t\tif (typeof currentElement === \"string\" && existingArrayElements && elementIndex < existingArrayElements.length) {\n\t\t\t\tconst existingArrayElement = existingArrayElements[elementIndex];\n\t\t\t\tif (Node.isCallExpression(existingArrayElement)) {\n\t\t\t\t\tconst callExpression = existingArrayElement.getExpression();\n\t\t\t\t\tif (Node.isIdentifier(callExpression) && callExpression.getText() === \"t\") {\n\t\t\t\t\t\tconst translationArgument = existingArrayElement.getArguments()[0];\n\t\t\t\t\t\tif (translationArgument && Node.isObjectLiteralExpression(translationArgument)) {\n\t\t\t\t\t\t\tconst translationMap = {};\n\t\t\t\t\t\t\tfor (const propertyAssignment of translationArgument.getProperties()) {\n\t\t\t\t\t\t\t\tif (!Node.isPropertyAssignment(propertyAssignment)) continue;\n\t\t\t\t\t\t\t\tconst cleanPropertyName = propertyAssignment.getNameNode().getText().replace(/^['\"]|['\"]$/g, \"\");\n\t\t\t\t\t\t\t\tconst propertyValue = propertyAssignment.getInitializer();\n\t\t\t\t\t\t\t\tif (propertyValue && Node.isStringLiteral(propertyValue)) translationMap[cleanPropertyName] = propertyValue.getLiteralValue();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tserializedElementValue = buildTranslationInitializer(syncNumericSuffixAcrossLocales(translationMap, effectiveFallbackLocale, currentElement), getCallExpressionTypeArgsText(existingArrayElement));\n\t\t\t\t\t\t\trequiredImports.add(\"t\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof currentElement === \"string\" && existingArrayHasTranslation && serializedElementValue && serializedElementValue.startsWith(\"\\\"\")) {\n\t\t\t\tserializedElementValue = buildTranslationInitializer({ [effectiveFallbackLocale]: currentElement }, existingArrayTypeArguments);\n\t\t\t\trequiredImports.add(\"t\");\n\t\t\t}\n\t\t\tif (serializedElementValue === void 0) {\n\t\t\t\thasUnsupportedContent = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tserializedArrayElements.push(serializedElementValue);\n\t\t} else if (typeof currentElement === \"object\" && currentElement !== null) {\n\t\t\tif (existingArrayElements && elementIndex < existingArrayElements.length) {\n\t\t\t\tconst existingArrayElement = existingArrayElements[elementIndex];\n\t\t\t\tif (Node.isObjectLiteralExpression(existingArrayElement)) {\n\t\t\t\t\tif (processContentEntries(existingArrayElement, currentElement, effectiveFallbackLocale, requiredImports, sourceFile)) arrayWasChanged = true;\n\t\t\t\t\tserializedArrayElements.push(existingArrayElement.getText());\n\t\t\t\t} else {\n\t\t\t\t\tconst serializedElementValue = serializeValue(currentElement);\n\t\t\t\t\tif (serializedElementValue === void 0) {\n\t\t\t\t\t\thasUnsupportedContent = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tserializedArrayElements.push(serializedElementValue);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst serializedElementValue = serializeValue(currentElement);\n\t\t\t\tif (serializedElementValue === void 0) {\n\t\t\t\t\thasUnsupportedContent = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tserializedArrayElements.push(serializedElementValue);\n\t\t\t}\n\t\t\tconst elementNodeType = getNodeType(currentElement);\n\t\t\tif (elementNodeType === NodeType.Translation) requiredImports.add(\"t\");\n\t\t\telse if (elementNodeType === NodeType.Enumeration) requiredImports.add(\"enu\");\n\t\t\telse if (elementNodeType === NodeType.Condition) requiredImports.add(\"cond\");\n\t\t\telse if (elementNodeType === NodeType.Gender) requiredImports.add(\"gender\");\n\t\t\telse if (elementNodeType === NodeType.Insertion) {\n\t\t\t\trequiredImports.add(\"insert\");\n\t\t\t\tconst insertionContent = currentElement[NodeType.Insertion];\n\t\t\t\tif (typeof insertionContent === \"object\" && insertionContent !== null && getNodeType(insertionContent) === NodeType.Translation) requiredImports.add(\"t\");\n\t\t\t} else if (elementNodeType === NodeType.Markdown) {\n\t\t\t\trequiredImports.add(\"md\");\n\t\t\t\tconst markdownContent = currentElement[NodeType.Markdown];\n\t\t\t\tif (typeof markdownContent === \"object\" && markdownContent !== null && getNodeType(markdownContent) === NodeType.File) requiredImports.add(\"file\");\n\t\t\t} else if (elementNodeType === NodeType.File) requiredImports.add(\"file\");\n\t\t\telse if (elementNodeType === NodeType.Nested) requiredImports.add(\"nest\");\n\t\t} else {\n\t\t\thasUnsupportedContent = true;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (hasUnsupportedContent) return false;\n\tif (arrayWasChanged) return true;\n\tconst arrayInitializerText = `[ ${serializedArrayElements.join(\", \")} ]`;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: arrayInitializerText\n\t\t});\n\t\treturn true;\n\t}\n\tconst property = contentObject.getProperty(propertyKey);\n\tif (property && Node.isPropertyAssignment(property)) {\n\t\tconst existingSerializedArray = readExistingArraySerialized(contentObject, propertyKey);\n\t\tif (!(existingSerializedArray !== void 0 && existingSerializedArray.length === serializedArrayElements.length && existingSerializedArray.every((existingElement, elementIndex) => existingElement === serializedArrayElements[elementIndex]))) {\n\t\t\tproperty.setInitializer(arrayInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes primitive content entries (string, number, boolean, null).\n* Handles simple value types and updates existing translation maps when appropriate.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param primitiveValue - The primitive value to process\n* @param existingPropertyKeys - Set of existing property names\n* @param effectiveFallbackLocale - The fallback locale for translations\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processPrimitiveContent = (contentObject, propertyKey, primitiveValue, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile) => {\n\tif (typeof primitiveValue === \"string\" && existingPropertyKeys.has(propertyKey)) {\n\t\tconst property$1 = contentObject.getProperty(propertyKey);\n\t\tif (property$1 && Node.isPropertyAssignment(property$1)) {\n\t\t\tconst propertyInitializer = property$1.getInitializer();\n\t\t\tif (propertyInitializer && !Node.isStringLiteral(propertyInitializer) && !Node.isCallExpression(propertyInitializer)) {\n\t\t\t\tconsole.log(`Skipping update for key \"${propertyKey}\" because existing value is not a string literal`);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tconst existingTranslationMap = readExistingTranslationMap(contentObject, propertyKey);\n\t\tif (existingTranslationMap) {\n\t\t\tconst translationInitializerText = buildTranslationInitializer({\n\t\t\t\t...existingTranslationMap,\n\t\t\t\t[effectiveFallbackLocale]: primitiveValue\n\t\t\t}, readExistingTypeArgsForCall(contentObject, propertyKey, \"t\"));\n\t\t\trequiredImports.add(\"t\");\n\t\t\tif (property$1 && Node.isPropertyAssignment(property$1)) {\n\t\t\t\tproperty$1.setInitializer(translationInitializerText);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processPrimitiveContent(spreadTargetObject, propertyKey, primitiveValue, getExistingPropertyNames(spreadTargetObject), effectiveFallbackLocale, requiredImports, sourceFile);\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: typeof primitiveValue === \"string\" ? JSON.stringify(primitiveValue) : String(primitiveValue)\n\t\t});\n\t\treturn true;\n\t}\n\tconst property = contentObject.getProperty(propertyKey);\n\tif (property && Node.isPropertyAssignment(property)) {\n\t\tconst propertyInitializer = property.getInitializer();\n\t\tconst isPrimitiveLiteral = propertyInitializer && (Node.isStringLiteral(propertyInitializer) || Node.isNumericLiteral(propertyInitializer) || propertyInitializer.getKind() === SyntaxKind.TrueKeyword || propertyInitializer.getKind() === SyntaxKind.FalseKeyword || Node.isNullLiteral(propertyInitializer) || Node.isCallExpression(propertyInitializer));\n\t\tif (propertyInitializer && !isPrimitiveLiteral) {\n\t\t\tconsole.log(`Skipping update for key \"${propertyKey}\" because existing value is not a primitive literal`);\n\t\t\treturn false;\n\t\t}\n\t\tconst currentInitializerText = propertyInitializer?.getText();\n\t\tconst desiredInitializerText = typeof primitiveValue === \"string\" ? JSON.stringify(primitiveValue) : String(primitiveValue);\n\t\tif (currentInitializerText !== desiredInitializerText) {\n\t\t\tproperty.setInitializer(desiredInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes complex content entries (translation, enumeration, condition, etc.).\n* Routes content to the appropriate specialized processor based on node type.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The complex content node to process\n* @param existingPropertyKeys - Set of existing property names\n* @param effectiveFallbackLocale - The fallback locale for translations\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processComplexContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile) => {\n\tswitch (getNodeType(contentNode)) {\n\t\tcase NodeType.Translation: return processTranslationContent(contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile);\n\t\tcase NodeType.Enumeration: return processEnumerationContent(contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile);\n\t\tcase NodeType.Condition: return processConditionContent(contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile);\n\t\tcase NodeType.Gender: return processGenderContent(contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile);\n\t\tcase NodeType.Insertion: return processInsertionContent(contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile);\n\t\tcase NodeType.Markdown: return processMarkdownContent(contentObject, propertyKey, contentNode, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile);\n\t\tcase NodeType.File: return processFileContent(contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile);\n\t\tcase NodeType.Nested: return processNestedContent(contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile);\n\t\tdefault: return false;\n\t}\n};\n/**\n* Processes translation content.\n* Handles translation objects with locale keys and string/array values.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The translation content node\n* @param existingPropertyKeys - Set of existing property names\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processTranslationContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile) => {\n\tconst translationMap = contentNode[NodeType.Translation] ?? {};\n\tconst areAllValuesStringsOrArrays = Object.values(translationMap).every((translationValue) => typeof translationValue === \"string\" || Array.isArray(translationValue));\n\tif (Object.values(translationMap).some((translationValue) => typeof translationValue === \"object\" && translationValue !== null && !Array.isArray(translationValue) && getNodeType(translationValue) !== NodeType.Text) && !areAllValuesStringsOrArrays) {\n\t\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\t\tif (spreadTargetObject) return processTranslationContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t\t}\n\t\tconst translationParts$1 = [];\n\t\tlet hasUnsupportedValue = false;\n\t\tfor (const [localeCode, translationValue] of Object.entries(translationMap)) {\n\t\t\tconst formattedLocaleKey = /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(localeCode) ? localeCode : JSON.stringify(localeCode);\n\t\t\tif (typeof translationValue === \"object\" && translationValue !== null && !Array.isArray(translationValue)) {\n\t\t\t\tconst serializedValue = serializeValue(translationValue);\n\t\t\t\tif (serializedValue === void 0) {\n\t\t\t\t\thasUnsupportedValue = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\ttranslationParts$1.push(`${formattedLocaleKey}: ${serializedValue}`);\n\t\t\t\tconst nodeType = getNodeType(translationValue);\n\t\t\t\tif (nodeType === NodeType.Markdown) {\n\t\t\t\t\trequiredImports.add(\"md\");\n\t\t\t\t\tconst markdownContent = translationValue[NodeType.Markdown];\n\t\t\t\t\tif (typeof markdownContent === \"object\" && markdownContent !== null && getNodeType(markdownContent) === NodeType.File) requiredImports.add(\"file\");\n\t\t\t\t} else if (nodeType === NodeType.File) requiredImports.add(\"file\");\n\t\t\t\telse if (nodeType === NodeType.Insertion) requiredImports.add(\"insert\");\n\t\t\t\telse if (nodeType === NodeType.Enumeration) requiredImports.add(\"enu\");\n\t\t\t\telse if (nodeType === NodeType.Condition) requiredImports.add(\"cond\");\n\t\t\t\telse if (nodeType === NodeType.Gender) requiredImports.add(\"gender\");\n\t\t\t\telse if (nodeType === NodeType.Nested) requiredImports.add(\"nest\");\n\t\t\t} else if (typeof translationValue === \"string\") translationParts$1.push(`${formattedLocaleKey}: ${JSON.stringify(translationValue)}`);\n\t\t\telse if (Array.isArray(translationValue)) {\n\t\t\t\tconst serializedArrayElements = translationValue.map((arrayElement) => JSON.stringify(arrayElement)).join(\", \");\n\t\t\t\ttranslationParts$1.push(`${formattedLocaleKey}: [ ${serializedArrayElements} ]`);\n\t\t\t}\n\t\t}\n\t\tif (hasUnsupportedValue) return false;\n\t\tconst translationInitializerText$1 = `t${readExistingTypeArgsForCall(contentObject, propertyKey, \"t\") ?? \"\"}({ ${translationParts$1.join(\", \")} })`;\n\t\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\t\trequiredImports.add(\"t\");\n\t\t\tcontentObject.addPropertyAssignment({\n\t\t\t\tname: propertyKey,\n\t\t\t\tinitializer: translationInitializerText$1\n\t\t\t});\n\t\t\treturn true;\n\t\t}\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tif (property.getInitializer()?.getText() !== translationInitializerText$1) {\n\t\t\t\trequiredImports.add(\"t\");\n\t\t\t\tproperty.setInitializer(translationInitializerText$1);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tif (!areAllValuesStringsOrArrays) return false;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processTranslationContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t}\n\tconst translationParts = [];\n\tfor (const [localeCode, translationValue] of Object.entries(translationMap)) {\n\t\tconst formattedLocaleKey = /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(localeCode) ? localeCode : JSON.stringify(localeCode);\n\t\tif (typeof translationValue === \"string\") translationParts.push(`${formattedLocaleKey}: ${JSON.stringify(translationValue)}`);\n\t\telse if (Array.isArray(translationValue)) {\n\t\t\tconst serializedArrayElements = translationValue.map((arrayElement) => JSON.stringify(arrayElement)).join(\", \");\n\t\t\ttranslationParts.push(`${formattedLocaleKey}: [ ${serializedArrayElements} ]`);\n\t\t}\n\t}\n\tconst translationInitializerText = `t${readExistingTypeArgsForCall(contentObject, propertyKey, \"t\") ?? \"\"}({ ${translationParts.join(\", \")} })`;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\trequiredImports.add(\"t\");\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: translationInitializerText\n\t\t});\n\t\treturn true;\n\t}\n\tif (!areTranslationsEqual(translationMap, readExistingTranslationMap(contentObject, propertyKey))) {\n\t\trequiredImports.add(\"t\");\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tproperty.setInitializer(translationInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes enumeration content.\n* Handles enumeration objects with key-value string pairs.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The enumeration content node\n* @param existingPropertyKeys - Set of existing property names\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processEnumerationContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile) => {\n\tconst enumerationMap = contentNode[NodeType.Enumeration];\n\tif (!Object.values(enumerationMap).every((enumerationValue) => typeof enumerationValue === \"string\")) return false;\n\tconst enumerationInitializerText = buildEnumerationInitializer(enumerationMap);\n\tif (!enumerationInitializerText) return false;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processEnumerationContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t\trequiredImports.add(\"enu\");\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: enumerationInitializerText\n\t\t});\n\t\treturn true;\n\t}\n\tif (!areStringMapsEqual(enumerationMap, readExistingMapFromCall(contentObject, propertyKey, \"enu\"))) {\n\t\trequiredImports.add(\"enu\");\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tproperty.setInitializer(enumerationInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes condition content.\n* Handles condition objects with key-value string pairs.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The condition content node\n* @param existingPropertyKeys - Set of existing property names\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processConditionContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile) => {\n\tconst conditionMap = contentNode[NodeType.Condition];\n\tif (Object.values(conditionMap).every((conditionValue) => typeof conditionValue === \"string\")) {\n\t\tconst conditionInitializerText = buildConditionInitializer(conditionMap);\n\t\tif (!conditionInitializerText) return false;\n\t\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\t\tif (spreadTargetObject) return processConditionContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t\t\trequiredImports.add(\"cond\");\n\t\t\tcontentObject.addPropertyAssignment({\n\t\t\t\tname: propertyKey,\n\t\t\t\tinitializer: conditionInitializerText\n\t\t\t});\n\t\t\treturn true;\n\t\t}\n\t\tif (!areStringMapsEqual(conditionMap, readExistingMapFromCall(contentObject, propertyKey, \"cond\"))) {\n\t\t\trequiredImports.add(\"cond\");\n\t\t\tconst property$1 = contentObject.getProperty(propertyKey);\n\t\t\tif (property$1 && Node.isPropertyAssignment(property$1)) {\n\t\t\t\tproperty$1.setInitializer(conditionInitializerText);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processConditionContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t\treturn false;\n\t}\n\tconst property = contentObject.getProperty(propertyKey);\n\tif (!property || !Node.isPropertyAssignment(property)) return false;\n\tconst propertyInitializer = property.getInitializer();\n\tif (!propertyInitializer || !Node.isCallExpression(propertyInitializer)) return false;\n\tconst callExpression = propertyInitializer.getExpression();\n\tif (!Node.isIdentifier(callExpression) || callExpression.getText() !== \"cond\") return false;\n\tconst condArgument = propertyInitializer.getArguments()[0];\n\tif (!condArgument || !Node.isObjectLiteralExpression(condArgument)) return false;\n\trequiredImports.add(\"cond\");\n\tlet hasModifications = false;\n\tfor (const [conditionKey, conditionValue] of Object.entries(conditionMap)) {\n\t\tconst nodeType = getNodeType(conditionValue);\n\t\tif (!nodeType) continue;\n\t\tlet condProperty = condArgument.getProperty(conditionKey);\n\t\tif (!condProperty) condProperty = condArgument.getProperty(stringifyKey(conditionKey));\n\t\tif (!condProperty || !Node.isPropertyAssignment(condProperty)) continue;\n\t\tconst condValueInitializer = condProperty.getInitializer();\n\t\tif (!condValueInitializer) continue;\n\t\tif (nodeType === NodeType.Translation) {\n\t\t\tif (!Node.isCallExpression(condValueInitializer)) continue;\n\t\t\tconst tCallExpression = condValueInitializer.getExpression();\n\t\t\tif (!Node.isIdentifier(tCallExpression) || tCallExpression.getText() !== \"t\") continue;\n\t\t\tconst tArgument = condValueInitializer.getArguments()[0];\n\t\t\tif (!tArgument || !Node.isObjectLiteralExpression(tArgument)) continue;\n\t\t\tconst translationMap = conditionValue[NodeType.Translation];\n\t\t\tif (!translationMap || typeof translationMap !== \"object\") continue;\n\t\t\tconst existingTranslationMap = {};\n\t\t\tfor (const propertyAssignment of tArgument.getProperties()) {\n\t\t\t\tif (!Node.isPropertyAssignment(propertyAssignment)) continue;\n\t\t\t\tconst cleanPropertyName = propertyAssignment.getNameNode().getText().replace(/^['\"]|['\"]$/g, \"\");\n\t\t\t\tconst valueInitializer = propertyAssignment.getInitializer();\n\t\t\t\tif (valueInitializer && Node.isStringLiteral(valueInitializer)) existingTranslationMap[cleanPropertyName] = valueInitializer.getLiteralValue();\n\t\t\t\telse if (valueInitializer && Node.isArrayLiteralExpression(valueInitializer)) {\n\t\t\t\t\tconst stringArray = [];\n\t\t\t\t\tfor (const arrayElement of valueInitializer.getElements()) if (Node.isStringLiteral(arrayElement)) stringArray.push(arrayElement.getLiteralValue());\n\t\t\t\t\texistingTranslationMap[cleanPropertyName] = stringArray;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!areTranslationsEqual(translationMap, existingTranslationMap)) {\n\t\t\t\trequiredImports.add(\"t\");\n\t\t\t\tfor (const [locale, localeValue] of Object.entries(translationMap)) {\n\t\t\t\t\tconst isLocaleCodeValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(locale);\n\t\t\t\t\tconst formattedLocaleKey = isLocaleCodeValidIdentifier ? locale : JSON.stringify(locale);\n\t\t\t\t\tlet existingProperty = tArgument.getProperty(locale);\n\t\t\t\t\tif (!existingProperty && !isLocaleCodeValidIdentifier) existingProperty = tArgument.getProperty(JSON.stringify(locale));\n\t\t\t\t\tif (existingProperty && Node.isPropertyAssignment(existingProperty)) {\n\t\t\t\t\t\tconst currentValue = existingProperty.getInitializer();\n\t\t\t\t\t\tconst newValue = Array.isArray(localeValue) ? `[${localeValue.map((v) => JSON.stringify(v)).join(\", \")}]` : JSON.stringify(localeValue);\n\t\t\t\t\t\tif (currentValue?.getText() !== newValue) {\n\t\t\t\t\t\t\texistingProperty.setInitializer(newValue);\n\t\t\t\t\t\t\thasModifications = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (!existingProperty) {\n\t\t\t\t\t\tconst newValue = Array.isArray(localeValue) ? `[${localeValue.map((v) => JSON.stringify(v)).join(\", \")}]` : JSON.stringify(localeValue);\n\t\t\t\t\t\ttArgument.addPropertyAssignment({\n\t\t\t\t\t\t\tname: formattedLocaleKey,\n\t\t\t\t\t\t\tinitializer: newValue\n\t\t\t\t\t\t});\n\t\t\t\t\t\thasModifications = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn hasModifications;\n};\n/**\n* Processes gender content.\n* Handles gender objects with key-value string pairs.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The gender content node\n* @param existingPropertyKeys - Set of existing property names\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processGenderContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile) => {\n\tconst genderMap = contentNode[NodeType.Gender];\n\tif (!Object.values(genderMap).every((genderValue) => typeof genderValue === \"string\")) return false;\n\tconst genderInitializerText = buildGenderInitializer(genderMap);\n\tif (!genderInitializerText) return false;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processGenderContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t\trequiredImports.add(\"gender\");\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: genderInitializerText\n\t\t});\n\t\treturn true;\n\t}\n\tif (!areStringMapsEqual(genderMap, readExistingMapFromCall(contentObject, propertyKey, \"gender\"))) {\n\t\trequiredImports.add(\"gender\");\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tproperty.setInitializer(genderInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes insertion content.\n* Handles insertion objects with string or translation content.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The insertion content node\n* @param existingPropertyKeys - Set of existing property names\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processInsertionContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile) => {\n\tconst insertionContent = contentNode[NodeType.Insertion];\n\tconst insertionInitializerText = buildInsertionInitializer(insertionContent);\n\tif (!insertionInitializerText) return false;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processInsertionContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t\trequiredImports.add(\"insert\");\n\t\tif (typeof insertionContent === \"object\" && insertionContent !== null && getNodeType(insertionContent) === NodeType.Translation) requiredImports.add(\"t\");\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: insertionInitializerText\n\t\t});\n\t\treturn true;\n\t}\n\tconst existingInsertion = readExistingInsertion(contentObject, propertyKey);\n\tif (!(typeof insertionContent === \"string\" && existingInsertion?.kind === \"string\" && existingInsertion.value === insertionContent || typeof insertionContent === \"object\" && insertionContent !== null && getNodeType(insertionContent) === NodeType.Translation && existingInsertion?.kind === \"translation\" && areStringMapsEqual(insertionContent[NodeType.Translation] ?? {}, existingInsertion.map))) {\n\t\trequiredImports.add(\"insert\");\n\t\tif (typeof insertionContent === \"object\" && insertionContent !== null && getNodeType(insertionContent) === NodeType.Translation) requiredImports.add(\"t\");\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tproperty.setInitializer(insertionInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes markdown content.\n* Handles markdown objects with string, translation, or file content.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The markdown content node\n* @param existingPropertyKeys - Set of existing property names\n* @param effectiveFallbackLocale - The fallback locale for translations\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processMarkdownContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile) => {\n\tconst markdownContent = contentNode[NodeType.Markdown];\n\tconst markdownInitializerText = buildMarkdownInitializer(markdownContent);\n\tif (!markdownInitializerText) return false;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processMarkdownContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), effectiveFallbackLocale, requiredImports, sourceFile);\n\t\trequiredImports.add(\"md\");\n\t\tconst markdownNodeType$1 = getNodeType(markdownContent);\n\t\tif (markdownNodeType$1 === NodeType.File) requiredImports.add(\"file\");\n\t\telse if (markdownNodeType$1 === NodeType.Translation) requiredImports.add(\"t\");\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: markdownInitializerText\n\t\t});\n\t\treturn true;\n\t}\n\tconst markdownNodeType = getNodeType(markdownContent);\n\tconst existingSimpleMarkdown = readExistingMarkdown(contentObject, propertyKey);\n\tconst existingMarkdownTranslationMap = readExistingMarkdownTranslationMap(contentObject, propertyKey);\n\tconst existingTranslationTypeArguments = readExistingTypeArgsForCall(contentObject, propertyKey, \"t\");\n\tif (typeof markdownContent === \"string\" && existingMarkdownTranslationMap && effectiveFallbackLocale) {\n\t\tconst updatedTranslationMap = {\n\t\t\t...existingMarkdownTranslationMap,\n\t\t\t[effectiveFallbackLocale]: markdownContent\n\t\t};\n\t\trequiredImports.add(\"md\");\n\t\trequiredImports.add(\"t\");\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tproperty.setInitializer(`md(${buildTranslationInitializer(updatedTranslationMap, existingTranslationTypeArguments)})`);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tif (markdownNodeType === NodeType.Translation) {\n\t\tconst markdownTranslationMap = markdownContent[NodeType.Translation];\n\t\tif (!Object.values(markdownTranslationMap).every((translationValue) => typeof translationValue === \"string\")) return false;\n\t\tif (!areStringMapsEqual(markdownTranslationMap, existingMarkdownTranslationMap)) {\n\t\t\trequiredImports.add(\"md\");\n\t\t\trequiredImports.add(\"t\");\n\t\t\tconst property = contentObject.getProperty(propertyKey);\n\t\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\t\tproperty.setInitializer(`md(${buildTranslationInitializer(markdownTranslationMap, existingTranslationTypeArguments)})`);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tif (!(typeof markdownContent === \"string\" && existingSimpleMarkdown?.kind === \"string\" && existingSimpleMarkdown.value === markdownContent || markdownNodeType === NodeType.File && existingSimpleMarkdown?.kind === \"file\" && existingSimpleMarkdown.path === markdownContent[NodeType.File])) {\n\t\trequiredImports.add(\"md\");\n\t\tif (markdownNodeType === NodeType.File) requiredImports.add(\"file\");\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tproperty.setInitializer(markdownInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes file content.\n* Handles file objects with file path references.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The file content node\n* @param existingPropertyKeys - Set of existing property names\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processFileContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile) => {\n\tconst filePath = contentNode[NodeType.File];\n\tconst fileInitializerText = buildFileInitializer(filePath);\n\tif (!fileInitializerText) return false;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processFileContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t\trequiredImports.add(\"file\");\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: fileInitializerText\n\t\t});\n\t\treturn true;\n\t}\n\tif (readExistingFilePath(contentObject, propertyKey) !== filePath) {\n\t\trequiredImports.add(\"file\");\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tproperty.setInitializer(fileInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes nested content.\n* Handles nested objects with dictionary key and optional path references.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param contentNode - The nested content node\n* @param existingPropertyKeys - Set of existing property names\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processNestedContent = (contentObject, propertyKey, contentNode, existingPropertyKeys, requiredImports, sourceFile) => {\n\tconst nestedContent = contentNode[NodeType.Nested];\n\tconst nestedInitializerText = buildNestedInitializer(nestedContent);\n\tif (!nestedInitializerText) return false;\n\tif (!existingPropertyKeys.has(propertyKey)) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processNestedContent(spreadTargetObject, propertyKey, contentNode, getExistingPropertyNames(spreadTargetObject), requiredImports, sourceFile);\n\t\trequiredImports.add(\"nest\");\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: nestedInitializerText\n\t\t});\n\t\treturn true;\n\t}\n\tconst existingNestedContent = readExistingNest(contentObject, propertyKey);\n\tif (!(!!nestedContent && existingNestedContent?.dictionaryKey === nestedContent.dictionaryKey && existingNestedContent?.path === nestedContent.path)) {\n\t\trequiredImports.add(\"nest\");\n\t\tconst property = contentObject.getProperty(propertyKey);\n\t\tif (property && Node.isPropertyAssignment(property)) {\n\t\t\tproperty.setInitializer(nestedInitializerText);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n/**\n* Processes nested object content.\n* Handles nested objects within content structures.\n*\n* @param contentObject - The object containing the property\n* @param propertyKey - The key of the property to process\n* @param nestedObjectValue - The nested object value to process\n* @param _existingPropertyKeys - Set of existing property names (unused)\n* @param effectiveFallbackLocale - The fallback locale for translations\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if the content was modified\n*/\nconst processNestedObjectContent = (contentObject, propertyKey, nestedObjectValue, _existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile) => {\n\tlet childObject;\n\tconst existingProperty = contentObject.getProperty(propertyKey);\n\tif (existingProperty && Node.isPropertyAssignment(existingProperty)) childObject = existingProperty.getInitializerIfKind(SyntaxKind.ObjectLiteralExpression);\n\tif (!childObject) {\n\t\tconst shorthandProperty = contentObject.getProperty(propertyKey);\n\t\tif (shorthandProperty && Node.isShorthandPropertyAssignment(shorthandProperty)) childObject = resolveNameToObjectLiteral(contentObject.getSourceFile(), propertyKey);\n\t\telse if (existingProperty && Node.isPropertyAssignment(existingProperty)) {\n\t\t\tconst propertyInitializer = existingProperty.getInitializer();\n\t\t\tif (propertyInitializer) {\n\t\t\t\tif (Node.isIdentifier(propertyInitializer)) childObject = resolveNameToObjectLiteral(sourceFile, propertyInitializer.getText());\n\t\t\t\telse if (Node.isPropertyAccessExpression(propertyInitializer)) childObject = resolveExpressionToObjectLiteral(sourceFile, propertyInitializer);\n\t\t\t}\n\t\t}\n\t}\n\tif (!childObject) {\n\t\tconst spreadTargetObject = findSpreadTargetObjectForKey(contentObject, propertyKey, sourceFile);\n\t\tif (spreadTargetObject) return processNestedObjectContent(spreadTargetObject, propertyKey, nestedObjectValue, getExistingPropertyNames(spreadTargetObject), effectiveFallbackLocale, requiredImports, sourceFile);\n\t\tcontentObject.addPropertyAssignment({\n\t\t\tname: propertyKey,\n\t\t\tinitializer: \"{ }\"\n\t\t});\n\t\tconst newProperty = contentObject.getProperty(propertyKey);\n\t\tif (newProperty && Node.isPropertyAssignment(newProperty)) childObject = newProperty.getInitializerIfKind(SyntaxKind.ObjectLiteralExpression);\n\t}\n\tif (childObject) return processContentEntries(childObject, nestedObjectValue, effectiveFallbackLocale, requiredImports, sourceFile);\n\treturn false;\n};\n/**\n* Processes content entries in a dictionary object.\n* Routes different content types to appropriate processors.\n*\n* @param contentObject - The object containing the content\n* @param dictionaryContent - The dictionary content to process\n* @param effectiveFallbackLocale - The fallback locale for translations\n* @param requiredImports - Set to track required imports\n* @param sourceFile - The source file being processed\n* @returns True if any content was modified\n*/\nconst processContentEntries = (contentObject, dictionaryContent, effectiveFallbackLocale, requiredImports, sourceFile) => {\n\tlet contentWasChanged = false;\n\tconst existingPropertyKeys = getExistingPropertyNames(contentObject);\n\tfor (const [propertyKey, propertyValue] of Object.entries(dictionaryContent)) {\n\t\tif (Array.isArray(propertyValue)) {\n\t\t\tif (processArrayContent(contentObject, propertyKey, propertyValue, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile)) contentWasChanged = true;\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof propertyValue === \"string\" || typeof propertyValue === \"number\" || typeof propertyValue === \"boolean\" || propertyValue === null) {\n\t\t\tif (processPrimitiveContent(contentObject, propertyKey, propertyValue, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile)) contentWasChanged = true;\n\t\t\tcontinue;\n\t\t}\n\t\tconst nodeType = getNodeType(propertyValue);\n\t\tif (nodeType !== NodeType.Text && nodeType !== NodeType.Number && nodeType !== NodeType.Boolean && nodeType !== NodeType.Null) {\n\t\t\tif (processComplexContent(contentObject, propertyKey, propertyValue, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile)) {\n\t\t\t\tcontentWasChanged = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tif (propertyValue && typeof propertyValue === \"object\" && !Array.isArray(propertyValue) && !propertyValue.nodeType) {\n\t\t\tif (processNestedObjectContent(contentObject, propertyKey, propertyValue, existingPropertyKeys, effectiveFallbackLocale, requiredImports, sourceFile)) contentWasChanged = true;\n\t\t}\n\t}\n\treturn contentWasChanged;\n};\nconst readExistingInsertion = (contentObject, propName) => {\n\tconst prop = contentObject.getProperty(propName);\n\tif (!prop || !Node.isPropertyAssignment(prop)) return void 0;\n\tconst init = prop.getInitializer();\n\tif (!init || !Node.isCallExpression(init)) return void 0;\n\tconst exp = init.getExpression();\n\tif (!Node.isIdentifier(exp) || exp.getText() !== \"insert\") return void 0;\n\tconst argument = init.getArguments()[0];\n\tif (!argument) return void 0;\n\tif (Node.isStringLiteral(argument)) return {\n\t\tkind: \"string\",\n\t\tvalue: argument.getLiteralValue()\n\t};\n\tif (Node.isCallExpression(argument)) {\n\t\tconst argumentExpression = argument.getExpression();\n\t\tif (Node.isIdentifier(argumentExpression) && argumentExpression.getText() === \"t\") {\n\t\t\tconst translationArgument = argument.getArguments()[0];\n\t\t\tif (translationArgument && Node.isObjectLiteralExpression(translationArgument)) {\n\t\t\t\tconst map = {};\n\t\t\t\tfor (const propertyAssignment of translationArgument.getProperties()) {\n\t\t\t\t\tif (!Node.isPropertyAssignment(propertyAssignment)) continue;\n\t\t\t\t\tconst name = propertyAssignment.getNameNode().getText().replace(/^['\"]|['\"]$/g, \"\");\n\t\t\t\t\tconst valueInitializer = propertyAssignment.getInitializer();\n\t\t\t\t\tif (valueInitializer && Node.isStringLiteral(valueInitializer)) map[name] = valueInitializer.getLiteralValue();\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tkind: \"translation\",\n\t\t\t\t\tmap\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n};\nconst readExistingMarkdown = (contentObject, propName) => {\n\tconst property = contentObject.getProperty(propName);\n\tif (!property || !Node.isPropertyAssignment(property)) return void 0;\n\tconst initializer = property.getInitializer();\n\tif (!initializer) return void 0;\n\tif (Node.isCallExpression(initializer)) {\n\t\tconst expression = initializer.getExpression();\n\t\tif (!Node.isIdentifier(expression)) return void 0;\n\t\tif (expression.getText() === \"md\") {\n\t\t\tconst argument = initializer.getArguments()[0];\n\t\t\tif (!argument) return void 0;\n\t\t\tif (Node.isStringLiteral(argument)) return {\n\t\t\t\tkind: \"string\",\n\t\t\t\tvalue: argument.getLiteralValue()\n\t\t\t};\n\t\t\tif (Node.isCallExpression(argument)) {\n\t\t\t\tconst argumentExpression = argument.getExpression();\n\t\t\t\tif (Node.isIdentifier(argumentExpression) && argumentExpression.getText() === \"file\") {\n\t\t\t\t\tconst fileArgument = argument.getArguments()[0];\n\t\t\t\t\tif (fileArgument && Node.isStringLiteral(fileArgument)) return {\n\t\t\t\t\t\tkind: \"file\",\n\t\t\t\t\t\tpath: fileArgument.getLiteralValue()\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\nconst readExistingFilePath = (contentObject, propName) => {\n\tconst property = contentObject.getProperty(propName);\n\tif (!property || !Node.isPropertyAssignment(property)) return void 0;\n\tconst initializer = property.getInitializer();\n\tif (!initializer || !Node.isCallExpression(initializer)) return void 0;\n\tconst expression = initializer.getExpression();\n\tif (!Node.isIdentifier(expression) || expression.getText() !== \"file\") return void 0;\n\tconst argument = initializer.getArguments()[0];\n\tif (argument && Node.isStringLiteral(argument)) return argument.getLiteralValue();\n};\nconst readExistingMarkdownTranslationMap = (contentObject, propName) => {\n\tconst property = contentObject.getProperty(propName);\n\tif (!property || !Node.isPropertyAssignment(property)) return void 0;\n\tconst initializer = property.getInitializer();\n\tif (!initializer) return void 0;\n\tif (Node.isCallExpression(initializer)) {\n\t\tconst exp = initializer.getExpression();\n\t\tif (Node.isIdentifier(exp) && exp.getText() === \"md\") {\n\t\t\tconst arg = initializer.getArguments()[0];\n\t\t\tif (arg && Node.isCallExpression(arg)) {\n\t\t\t\tconst tExp = arg.getExpression();\n\t\t\t\tif (Node.isIdentifier(tExp) && tExp.getText() === \"t\") {\n\t\t\t\t\tconst tArg = arg.getArguments()[0];\n\t\t\t\t\tif (tArg && Node.isObjectLiteralExpression(tArg)) {\n\t\t\t\t\t\tconst map = {};\n\t\t\t\t\t\tfor (const prop of tArg.getProperties()) {\n\t\t\t\t\t\t\tif (!Node.isPropertyAssignment(prop)) continue;\n\t\t\t\t\t\t\tconst name = prop.getNameNode().getText().replace(/^['\"]|['\"]$/g, \"\");\n\t\t\t\t\t\t\tconst valueInit = prop.getInitializer();\n\t\t\t\t\t\t\tif (valueInit && Node.isStringLiteral(valueInit)) map[name] = valueInit.getLiteralValue();\n\t\t\t\t\t\t\telse return;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn map;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif (Node.isCallExpression(initializer)) {\n\t\tconst exp = initializer.getExpression();\n\t\tif (Node.isIdentifier(exp) && exp.getText() === \"t\") {\n\t\t\tconst tArg = initializer.getArguments()[0];\n\t\t\tif (tArg && Node.isObjectLiteralExpression(tArg)) {\n\t\t\t\tconst map = {};\n\t\t\t\tfor (const prop of tArg.getProperties()) {\n\t\t\t\t\tif (!Node.isPropertyAssignment(prop)) continue;\n\t\t\t\t\tconst name = prop.getNameNode().getText().replace(/^['\"]|['\"]$/g, \"\");\n\t\t\t\t\tconst valueInit = prop.getInitializer();\n\t\t\t\t\tif (valueInit && Node.isCallExpression(valueInit) && Node.isIdentifier(valueInit.getExpression()) && valueInit.getExpression().getText() === \"md\") {\n\t\t\t\t\t\tconst mdArg = valueInit.getArguments()[0];\n\t\t\t\t\t\tif (mdArg && Node.isStringLiteral(mdArg)) map[name] = mdArg.getLiteralValue();\n\t\t\t\t\t\telse return;\n\t\t\t\t\t} else return;\n\t\t\t\t}\n\t\t\t\treturn map;\n\t\t\t}\n\t\t}\n\t}\n};\nconst readExistingNest = (contentObject, propName) => {\n\tconst property = contentObject.getProperty(propName);\n\tif (!property || !Node.isPropertyAssignment(property)) return void 0;\n\tlet initializer = property.getInitializer();\n\tif (!initializer) return void 0;\n\tlet safetyCounter = 0;\n\twhile (safetyCounter++ < 5) {\n\t\tif (Node.isCallExpression(initializer)) break;\n\t\tconst nextExpression = initializer.getExpression?.();\n\t\tif (nextExpression && typeof nextExpression === \"object\" && nextExpression !== initializer) {\n\t\t\tinitializer = nextExpression;\n\t\t\tcontinue;\n\t\t}\n\t\tbreak;\n\t}\n\tif (!Node.isCallExpression(initializer)) return void 0;\n\tconst expression = initializer.getExpression();\n\tif (!Node.isIdentifier(expression) || expression.getText() !== \"nest\") return void 0;\n\tconst [firstArgument, secondArgument] = initializer.getArguments();\n\tif (!firstArgument || !Node.isStringLiteral(firstArgument)) return void 0;\n\tconst dictionaryKey = firstArgument.getLiteralValue();\n\tlet path;\n\tif (secondArgument && Node.isStringLiteral(secondArgument)) path = secondArgument.getLiteralValue();\n\treturn {\n\t\tdictionaryKey,\n\t\tpath\n\t};\n};\nconst unwrapToObjectLiteral = (node) => {\n\tif (!node || typeof node !== \"object\") return void 0;\n\tlet current = node;\n\tlet safetyCounter = 0;\n\twhile (safetyCounter++ < 8) {\n\t\tif (Node.isObjectLiteralExpression(current)) return current;\n\t\tconst next = current?.getExpression?.();\n\t\tif (next && typeof next === \"object\" && next !== current) {\n\t\t\tcurrent = next;\n\t\t\tcontinue;\n\t\t}\n\t\tbreak;\n\t}\n};\nconst resolveNameToObjectLiteral = (sourceFile, name) => {\n\tconst varDecl = sourceFile.getVariableDeclaration(name);\n\tif (varDecl) {\n\t\tconst obj = unwrapToObjectLiteral(varDecl.getInitializer());\n\t\tif (obj) return obj;\n\t}\n\tconst decl = sourceFile.getDescendants().find((n) => {\n\t\treturn Node.isIdentifier(n) && n.getText() === name;\n\t})?.getSymbol()?.getDeclarations()?.[0];\n\tif (decl && Node.isVariableDeclaration(decl)) {\n\t\tconst obj = unwrapToObjectLiteral(decl.getInitializer());\n\t\tif (obj) return obj;\n\t}\n};\nconst resolveExpressionToObjectLiteral = (sourceFile, expr) => {\n\tif (Node.isIdentifier(expr)) return resolveNameToObjectLiteral(sourceFile, expr.getText());\n\tif (Node.isPropertyAccessExpression(expr)) {\n\t\tconst leftResolved = resolveExpressionToObjectLiteral(sourceFile, expr.getExpression());\n\t\tif (!leftResolved) return void 0;\n\t\tconst propName = expr.getName();\n\t\tconst prop = leftResolved.getProperty(propName);\n\t\tif (prop && Node.isPropertyAssignment(prop)) {\n\t\t\tconst init = prop.getInitializer();\n\t\t\tconst obj = unwrapToObjectLiteral(init);\n\t\t\tif (obj) return obj;\n\t\t\tif (init && Node.isIdentifier(init)) return resolveNameToObjectLiteral(sourceFile, init.getText());\n\t\t}\n\t}\n};\nconst getSpreadSourceObjects = (contentObject, sourceFile) => {\n\tconst spreads = [];\n\tfor (const prop of contentObject.getProperties()) if (Node.isSpreadAssignment(prop)) {\n\t\tconst resolved = resolveExpressionToObjectLiteral(sourceFile, prop.getExpression());\n\t\tif (resolved) spreads.push(resolved);\n\t}\n\treturn spreads;\n};\nconst findSpreadTargetObjectForKey = (contentObject, key, sourceFile) => {\n\tconst spreads = getSpreadSourceObjects(contentObject, sourceFile);\n\tfor (let i = spreads.length - 1; i >= 0; i--) {\n\t\tconst spreadObj = spreads[i];\n\t\tconst prop = spreadObj.getProperty(key);\n\t\tif (prop && Node.isPropertyAssignment(prop)) return spreadObj;\n\t}\n};\nconst readExistingArraySerialized = (contentObject, propName) => {\n\tconst property = contentObject.getProperty(propName);\n\tif (!property || !Node.isPropertyAssignment(property)) return void 0;\n\tconst initializer = property.getInitializer();\n\tif (!initializer || !Node.isArrayLiteralExpression(initializer)) return void 0;\n\tconst serialized = [];\n\tfor (const element of initializer.getElements()) {\n\t\tif (Node.isStringLiteral(element)) {\n\t\t\tserialized.push(JSON.stringify(element.getLiteralValue()));\n\t\t\tcontinue;\n\t\t}\n\t\tif (Node.isNumericLiteral(element)) {\n\t\t\tserialized.push(element.getText());\n\t\t\tcontinue;\n\t\t}\n\t\tif (element.getKind() === SyntaxKind.TrueKeyword || element.getKind() === SyntaxKind.FalseKeyword) {\n\t\t\tserialized.push(element.getText());\n\t\t\tcontinue;\n\t\t}\n\t\tif (Node.isNullLiteral(element)) {\n\t\t\tserialized.push(\"null\");\n\t\t\tcontinue;\n\t\t}\n\t\tif (Node.isCallExpression(element)) {\n\t\t\tconst expression = element.getExpression();\n\t\t\tif (Node.isIdentifier(expression) && expression.getText() === \"t\") {\n\t\t\t\tconst argument = element.getArguments()[0];\n\t\t\t\tif (argument && Node.isObjectLiteralExpression(argument)) {\n\t\t\t\t\tconst map = {};\n\t\t\t\t\tfor (const propertyAssignment of argument.getProperties()) {\n\t\t\t\t\t\tif (!Node.isPropertyAssignment(propertyAssignment)) return void 0;\n\t\t\t\t\t\tconst name = propertyAssignment.getNameNode().getText().replace(/^['\"]|['\"]$/g, \"\");\n\t\t\t\t\t\tconst valueInitializer = propertyAssignment.getInitializer();\n\t\t\t\t\t\tif (valueInitializer && Node.isStringLiteral(valueInitializer)) map[name] = valueInitializer.getLiteralValue();\n\t\t\t\t\t\telse return;\n\t\t\t\t\t}\n\t\t\t\t\tserialized.push(buildTranslationInitializer(map));\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn;\n\t}\n\treturn serialized;\n};\nconst serializeValue = (value) => {\n\tconst nodeType = getNodeType(value);\n\tif (nodeType === NodeType.Text) return JSON.stringify(value);\n\tif (nodeType === NodeType.Number || nodeType === NodeType.Boolean) return String(value);\n\tif (nodeType === NodeType.Null) return \"null\";\n\tif (nodeType === NodeType.Translation) {\n\t\tconst translations = value[NodeType.Translation] ?? {};\n\t\tif (!Object.values(translations).every((v) => typeof v === \"string\")) return void 0;\n\t\treturn buildTranslationInitializer(translations);\n\t}\n\tif (nodeType === NodeType.Enumeration) {\n\t\tconst map = value[NodeType.Enumeration];\n\t\treturn buildEnumerationInitializer(map);\n\t}\n\tif (nodeType === NodeType.Condition) {\n\t\tconst map = value[NodeType.Condition];\n\t\treturn buildConditionInitializer(map);\n\t}\n\tif (nodeType === NodeType.Gender) {\n\t\tconst map = value[NodeType.Gender];\n\t\treturn buildGenderInitializer(map);\n\t}\n\tif (nodeType === NodeType.Insertion) {\n\t\tconst content = value[NodeType.Insertion];\n\t\treturn buildInsertionInitializer(content);\n\t}\n\tif (nodeType === NodeType.Markdown) {\n\t\tconst content = value[NodeType.Markdown];\n\t\treturn buildMarkdownInitializer(content);\n\t}\n\tif (nodeType === NodeType.File) {\n\t\tconst path = value[NodeType.File];\n\t\treturn buildFileInitializer(path);\n\t}\n\tif (nodeType === NodeType.Nested) {\n\t\tconst content = value[NodeType.Nested];\n\t\treturn buildNestedInitializer(content);\n\t}\n};\n/**\n* Gets the existing imports from @intlayer/core in the source file\n*/\nconst getExistingIntlayerImports = (sourceFile) => {\n\tconst imported = /* @__PURE__ */ new Set();\n\tfor (const importDecl of sourceFile.getImportDeclarations()) {\n\t\tconst moduleSpecifier = importDecl.getModuleSpecifierValue();\n\t\tif (moduleSpecifier === \"intlayer\") {\n\t\t\tconst namedImports = importDecl.getNamedImports();\n\t\t\tfor (const namedImport of namedImports) imported.add(namedImport.getName());\n\t\t}\n\t\tif (moduleSpecifier === \"intlayer/file\") {\n\t\t\tconst namedImports = importDecl.getNamedImports();\n\t\t\tfor (const namedImport of namedImports) {\n\t\t\t\tconst alias = namedImport.getAliasNode();\n\t\t\t\timported.add(alias ? alias.getText() : namedImport.getName());\n\t\t\t}\n\t\t}\n\t}\n\treturn imported;\n};\n/**\n* Adds missing imports to the source file\n*/\nconst addMissingImports = (sourceFile, requiredImports) => {\n\tif (requiredImports.size === 0) return false;\n\tconst existingImports = getExistingIntlayerImports(sourceFile);\n\tconst missingImports = [...requiredImports].filter((imp) => !existingImports.has(imp));\n\tif (missingImports.length === 0) return false;\n\tconst hasMissingFile = missingImports.includes(\"file\");\n\tconst otherMissingImports = missingImports.filter((imp) => imp !== \"file\");\n\tif (otherMissingImports.length > 0) {\n\t\tconst coreImport = sourceFile.getImportDeclarations().find((imp) => imp.getModuleSpecifierValue() === \"intlayer\");\n\t\tif (coreImport) {\n\t\t\tconst existingNamedImports = coreImport.getNamedImports().map((ni) => ni.getName());\n\t\t\tconst allImports = [...new Set([...existingNamedImports, ...otherMissingImports])].sort();\n\t\t\tcoreImport.removeNamedImports();\n\t\t\tcoreImport.addNamedImports(allImports.map((name) => ({ name })));\n\t\t} else sourceFile.insertImportDeclaration(0, {\n\t\t\tmoduleSpecifier: \"intlayer\",\n\t\t\tnamedImports: otherMissingImports.sort().map((name) => ({ name }))\n\t\t});\n\t}\n\tif (hasMissingFile) {\n\t\tif (!sourceFile.getImportDeclarations().find((imp) => imp.getModuleSpecifierValue() === \"intlayer/file\")) {\n\t\t\tconst coreImportIndex = sourceFile.getImportDeclarations().findIndex((imp) => imp.getModuleSpecifierValue() === \"intlayer\");\n\t\t\tconst insertIndex = coreImportIndex >= 0 ? coreImportIndex + 1 : 0;\n\t\t\tsourceFile.insertImportDeclaration(insertIndex, {\n\t\t\t\tmoduleSpecifier: \"intlayer/file\",\n\t\t\t\tnamedImports: [{ name: \"file\" }]\n\t\t\t});\n\t\t}\n\t}\n\treturn true;\n};\n/**\n* Detect whether the current source file is written in CommonJS style.\n* Prefers ESM when import/export syntax is present; otherwise detects CJS via require/module.exports.\n*/\nconst isCommonJS = (sourceFile) => {\n\tif (sourceFile.getImportDeclarations().length > 0) return false;\n\tif (sourceFile.getExportDeclarations().length > 0) return false;\n\tif (sourceFile.getExportAssignments().length > 0) return false;\n\tfor (const statement of sourceFile.getStatements()) {\n\t\tif (!Node.isExpressionStatement(statement)) continue;\n\t\tconst expression = statement.getExpression();\n\t\tif (!Node.isBinaryExpression(expression)) continue;\n\t\tconst leftSide = expression.getLeft();\n\t\tif (!Node.isPropertyAccessExpression(leftSide)) continue;\n\t\tconst leftExpression = leftSide.getExpression();\n\t\tconst leftName = leftSide.getName();\n\t\tconst isModuleExports = Node.isIdentifier(leftExpression) && leftExpression.getText() === \"module\" && leftName === \"exports\";\n\t\tconst isExportsDefault = Node.isIdentifier(leftExpression) && leftExpression.getText() === \"exports\";\n\t\tif (isModuleExports || isExportsDefault) return true;\n\t}\n\treturn sourceFile.getDescendantsOfKind(SyntaxKind.CallExpression).some((call) => {\n\t\tconst exp = call.getExpression();\n\t\treturn Node.isIdentifier(exp) && exp.getText() === \"require\";\n\t});\n};\n/**\n* Adds missing CommonJS requires for intlayer helpers.\n* - Core helpers (t, md, insert, enu, cond, gender, nest) come from require('intlayer') via destructuring\n* - file helper comes from require('intlayer/file') via destructuring\n* Existing destructured requires are respected to avoid duplicates.\n*/\nconst addMissingRequires = (sourceFile, requiredImports) => {\n\tif (requiredImports.size === 0) return false;\n\tconst existingCoreNames = /* @__PURE__ */ new Set();\n\tlet hasFileHelper = false;\n\tfor (const varDecl of sourceFile.getVariableDeclarations()) {\n\t\tconst init = varDecl.getInitializer();\n\t\tif (!init || !Node.isCallExpression(init)) continue;\n\t\tconst callee = init.getExpression();\n\t\tif (!Node.isIdentifier(callee) || callee.getText() !== \"require\") continue;\n\t\tconst arg = init.getArguments()[0];\n\t\tif (!arg || !Node.isStringLiteral(arg)) continue;\n\t\tconst spec = arg.getLiteralValue();\n\t\tconst nameNode = varDecl.getNameNode();\n\t\tif (spec === \"intlayer\") {\n\t\t\tif (Node.isObjectBindingPattern(nameNode)) for (const el of nameNode.getElements()) existingCoreNames.add(el.getNameNode().getText());\n\t\t}\n\t\tif (spec === \"intlayer/file\") {\n\t\t\tif (Node.isObjectBindingPattern(nameNode)) {\n\t\t\t\tfor (const el of nameNode.getElements()) if (el.getNameNode().getText() === \"file\") hasFileHelper = true;\n\t\t\t} else if (Node.isIdentifier(nameNode) && nameNode.getText() === \"file\") hasFileHelper = true;\n\t\t}\n\t}\n\tconst missingCore = Array.from(requiredImports).filter((n) => n !== \"file\").filter((n) => !existingCoreNames.has(n));\n\tconst needsFile = requiredImports.has(\"file\") && !hasFileHelper;\n\tif (missingCore.length === 0 && !needsFile) return false;\n\tlet insertIndex = 0;\n\tconst statements = sourceFile.getStatements();\n\tfor (const st of statements) {\n\t\tif (Node.isExpressionStatement(st)) {\n\t\t\tconst expr = st.getExpression();\n\t\t\tif (Node.isStringLiteral(expr)) {\n\t\t\t\tinsertIndex += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tbreak;\n\t}\n\tconst lines = [];\n\tif (missingCore.length > 0) {\n\t\tconst sorted = Array.from(new Set(missingCore)).sort();\n\t\tlines.push(`const { ${sorted.join(\", \")} } = require('intlayer');`);\n\t}\n\tif (needsFile) lines.push(\"const { file } = require('intlayer/file');\");\n\tif (lines.length > 0) {\n\t\tsourceFile.insertStatements(insertIndex, lines.join(\"\\n\"));\n\t\treturn true;\n\t}\n\treturn false;\n};\n/**\n* Serializes a metadata value to its string representation for code generation\n* Handles: boolean, number, string, and array of strings\n*/\nconst serializeMetadataValue = (value) => {\n\tif (Array.isArray(value)) return `[${value.map((item) => JSON.stringify(item)).join(\", \")}]`;\n\tif (typeof value === \"boolean\" || typeof value === \"number\") return String(value);\n\treturn JSON.stringify(value);\n};\n/**\n* Updates a single property in the root object if the value has changed\n*/\nconst updateMetadataProperty = (rootObject, propertyName, value) => {\n\tconst property = rootObject.getProperty(propertyName);\n\tconst serializedValue = serializeMetadataValue(value);\n\tif (property && Node.isPropertyAssignment(property)) {\n\t\tif (property.getInitializer()?.getText() !== serializedValue) {\n\t\t\tproperty.setInitializer(serializedValue);\n\t\t\treturn true;\n\t\t}\n\t} else if (!property) {\n\t\trootObject.addPropertyAssignment({\n\t\t\tname: propertyName,\n\t\t\tinitializer: serializedValue\n\t\t});\n\t\treturn true;\n\t}\n\treturn false;\n};\n/**\n* Updates dictionary metadata properties in the root object\n* Supports: id, locale, filled, fill, title, description, tags, version, priority, live\n* and any future fields that may be added\n*/\nconst updateDictionaryMetadata = (rootObject, dictionary) => {\n\tlet changed = false;\n\tfor (const prop of [\n\t\t\"id\",\n\t\t\"locale\",\n\t\t\"filled\",\n\t\t\"fill\",\n\t\t\"title\",\n\t\t\"description\",\n\t\t\"tags\",\n\t\t\"version\",\n\t\t\"priority\",\n\t\t\"live\"\n\t]) {\n\t\tconst value = dictionary[prop];\n\t\tif (value !== void 0) {\n\t\t\tif (updateMetadataProperty(rootObject, prop, value)) changed = true;\n\t\t}\n\t}\n\treturn changed;\n};\n/**\n* Locates the root dictionary object in the source file\n*/\nconst findRootDictionaryObject = (sourceFile) => {\n\tconst exportAssignment = sourceFile.getExportAssignment((_) => true);\n\tif (exportAssignment) {\n\t\tconst expression = exportAssignment.getExpression();\n\t\tif (Node.isIdentifier(expression)) {\n\t\t\tconst declarationByName = expression.getSymbol()?.getDeclarations()?.[0] ?? sourceFile.getVariableDeclaration(expression.getText());\n\t\t\tif (declarationByName && Node.isVariableDeclaration(declarationByName)) {\n\t\t\t\tconst objectLiteral = unwrapToObjectLiteral(declarationByName.getInitializer());\n\t\t\t\tif (objectLiteral) return objectLiteral;\n\t\t\t}\n\t\t} else {\n\t\t\tconst objectLiteral = unwrapToObjectLiteral(expression);\n\t\t\tif (objectLiteral) return objectLiteral;\n\t\t}\n\t}\n\tconst variableDeclaration = sourceFile.getVariableDeclaration((variable) => {\n\t\ttry {\n\t\t\treturn variable.getType().getText().includes(\"Dictionary\") || variable.getName() === \"content\" || variable.getName().toLowerCase().includes(\"dictionary\");\n\t\t} catch {\n\t\t\treturn variable.getName() === \"content\";\n\t\t}\n\t});\n\tif (variableDeclaration) {\n\t\tconst objectLiteral = unwrapToObjectLiteral(variableDeclaration.getInitializer());\n\t\tif (objectLiteral) return objectLiteral;\n\t}\n\tfor (const statement of sourceFile.getStatements()) {\n\t\tif (!Node.isExpressionStatement(statement)) continue;\n\t\tconst expression = statement.getExpression();\n\t\tif (!Node.isBinaryExpression(expression)) continue;\n\t\tif (expression.getOperatorToken().getText() !== \"=\") continue;\n\t\tconst leftSide = expression.getLeft();\n\t\tif (!Node.isPropertyAccessExpression(leftSide)) continue;\n\t\tconst leftExpression = leftSide.getExpression();\n\t\tconst leftName = leftSide.getName();\n\t\tconst isModuleExports = Node.isIdentifier(leftExpression) && leftExpression.getText() === \"module\" && leftName === \"exports\";\n\t\tconst isExportsDefault = Node.isIdentifier(leftExpression) && leftExpression.getText() === \"exports\" && leftName === \"default\";\n\t\tif (!isModuleExports && !isExportsDefault) continue;\n\t\tconst rightSide = expression.getRight();\n\t\tif (Node.isObjectLiteralExpression(rightSide)) return rightSide;\n\t\tif (Node.isIdentifier(rightSide)) {\n\t\t\tconst declaration = rightSide.getSymbol()?.getDeclarations()?.[0];\n\t\t\tif (declaration && Node.isVariableDeclaration(declaration)) {\n\t\t\t\tconst objectLiteral = unwrapToObjectLiteral(declaration.getInitializer());\n\t\t\t\tif (objectLiteral) return objectLiteral;\n\t\t\t}\n\t\t}\n\t}\n};\n/**\n* Updates a JavaScript/TypeScript file based on the provided dictionary.\n* It targets a specific dictionary object within the file and updates its\n* metadata (title, description, tags) and content entries.\n*\n* This function now supports inserting translation keys into nested objects\n* within arrays. For example, if you have:\n* ```\n* content: [\n* { question: t({ en: '...', fr: '...' }) }\n* ]\n* ```\n*\n* You can add a new locale (e.g., 'pl') by providing a dictionary with:\n* ```\n* {\n* content: [\n* { question: { [NodeType.Translation]: { en: '...', fr: '...', pl: '...' } } }\n* ]\n* }\n* ```\n*\n* The function will:\n* 1. Detect the existing array structure\n* 2. Navigate into each array element (if it's an object)\n* 3. Recursively process nested properties\n* 4. Update translation maps while preserving existing locales\n*/\nconst transformJSFile = async (fileContent, dictionary, fallbackLocale) => {\n\ttry {\n\t\tif (!dictionary || typeof dictionary !== \"object\") return fileContent;\n\t\tconst sourceFile = new Project({\n\t\t\tuseInMemoryFileSystem: true,\n\t\t\tskipAddingFilesFromTsConfig: true,\n\t\t\tskipFileDependencyResolution: true,\n\t\t\tcompilerOptions: {\n\t\t\t\tallowJs: true,\n\t\t\t\tjsx: ts.JsxEmit.Preserve\n\t\t\t},\n\t\t\tmanipulationSettings: {\n\t\t\t\tindentationText: IndentationText.TwoSpaces,\n\t\t\t\tquoteKind: QuoteKind.Double,\n\t\t\t\tnewLineKind: NewLineKind.LineFeed\n\t\t\t}\n\t\t}).createSourceFile(\"file.tsx\", fileContent, { overwrite: true });\n\t\tconst rootObject = findRootDictionaryObject(sourceFile);\n\t\tif (!rootObject) return fileContent;\n\t\tlet changed = false;\n\t\tconst requiredImports = /* @__PURE__ */ new Set();\n\t\tif (updateDictionaryMetadata(rootObject, dictionary)) changed = true;\n\t\tif (dictionary.content) {\n\t\t\tconst contentProperty = rootObject.getProperty(\"content\");\n\t\t\tlet contentObject;\n\t\t\tlet isContentArrayInSource = false;\n\t\t\tif (contentProperty && Node.isPropertyAssignment(contentProperty)) {\n\t\t\t\tcontentObject = contentProperty.getInitializerIfKind(SyntaxKind.ObjectLiteralExpression);\n\t\t\t\tisContentArrayInSource = !!contentProperty.getInitializerIfKind(SyntaxKind.ArrayLiteralExpression);\n\t\t\t}\n\t\t\tconst effectiveFallbackLocale = fallbackLocale ?? \"en\";\n\t\t\tif (contentObject && !Array.isArray(dictionary.content)) {\n\t\t\t\tconst dictContent = dictionary.content ?? {};\n\t\t\t\tif (processContentEntries(contentObject, dictContent, effectiveFallbackLocale, requiredImports, sourceFile)) changed = true;\n\t\t\t} else if (Array.isArray(dictionary.content) && isContentArrayInSource) {\n\t\t\t\tif (processArrayContent(rootObject, \"content\", dictionary.content ?? [], getExistingPropertyNames(rootObject), effectiveFallbackLocale, requiredImports, sourceFile)) changed = true;\n\t\t\t}\n\t\t}\n\t\tif (!changed) return fileContent;\n\t\tif ((isCommonJS(sourceFile) ? addMissingRequires(sourceFile, requiredImports) : addMissingImports(sourceFile, requiredImports)) || changed) return sourceFile.getFullText();\n\t\treturn fileContent;\n\t} catch {\n\t\treturn fileContent;\n\t}\n};\n\n//#endregion\nexport { transformJSFile };\n//# sourceMappingURL=transformJSFile.mjs.map"],"mappings":"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"}
|