{"version":3,"file":"handleContentDeclarationFileMoved.mjs","names":[],"sources":["../../src/handleContentDeclarationFileMoved.ts"],"sourcesContent":["import { getAppLogger } from '@intlayer/config/logger';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { cleanRemovedContentDeclaration } from './cleanRemovedContentDeclaration';\nimport { handleContentDeclarationFileChange } from './handleContentDeclarationFileChange';\nimport { loadLocalDictionaries } from './loadDictionaries/loadLocalDictionaries';\nimport { formatPath } from './utils/formatter';\n\nexport const handleContentDeclarationFileMoved = async (\n  oldFilePath: string,\n  newFilePath: string,\n  config: IntlayerConfig\n) => {\n  const appLogger = getAppLogger(config);\n\n  appLogger(\n    `File moved from ${formatPath(oldFilePath)} to ${formatPath(newFilePath)}`,\n    {\n      isVerbose: true,\n    }\n  );\n\n  let keysToKeep: string[] = [];\n\n  try {\n    // Pre-load the new file to identify the keys inside it.\n    // We need to pass these keys to the cleaner so it knows NOT to completely delete\n    // the dictionary artifacts (types/json) if the key has simply moved to a new file.\n    const newLocaleDictionaries = await loadLocalDictionaries(\n      newFilePath,\n      config\n    );\n    keysToKeep = newLocaleDictionaries.map((d) => d.key);\n  } catch {\n    appLogger(\n      `Error parsing new file during move operation: ${formatPath(newFilePath)}`,\n      {\n        isVerbose: true,\n      }\n    );\n    // Proceed with empty keysToKeep; this will result in the old dictionary being cleaned up\n    // entirely, and the new one being re-created in the next step.\n  }\n\n  // Clean up the artifacts associated with the old file path.\n  // By passing 'keysToKeep', we instruct the cleaner to remove the specific file association\n  // (filePath reference) from the dictionaries, but preserve the dictionary Entry Point and Types\n  // if the key is still present in the new file.\n  await cleanRemovedContentDeclaration(oldFilePath, keysToKeep, config);\n\n  // Process the new file.\n  // This will add the new file association, rebuild the dictionary JSONs with the new path,\n  // and ensure types and module augmentation are up to date.\n  await handleContentDeclarationFileChange(newFilePath, config);\n};\n"],"mappings":";;;;;;;AAOA,MAAa,oCAAoC,OAC/C,aACA,aACA,WACG;CACH,MAAM,YAAY,aAAa,MAAM;CAErC,UACE,mBAAmB,WAAW,WAAW,EAAE,MAAM,WAAW,WAAW,KACvE,EACE,WAAW,KACb,CACF;CAEA,IAAI,aAAuB,CAAC;CAE5B,IAAI;EAQF,cAAa,MAJuB,sBAClC,aACA,MACF,GACmC,KAAK,MAAM,EAAE,GAAG;CACrD,QAAQ;EACN,UACE,iDAAiD,WAAW,WAAW,KACvE,EACE,WAAW,KACb,CACF;CAGF;CAMA,MAAM,+BAA+B,aAAa,YAAY,MAAM;CAKpE,MAAM,mCAAmC,aAAa,MAAM;AAC9D"}