{
  "version": 3,
  "sources": ["../../../src/core/table-renamer.ts"],
  "sourcesContent": [
    "import { parseFormula } from \"../parser/parser.mjs\";\nimport { astToString } from \"../parser/formatter.mjs\";\nimport { transformAST } from \"./ast-traverser.mjs\";\n\n/**\n * Renames table references in a formula string\n * @param formula - The formula string (without the leading =)\n * @param oldTableName - The current table name to replace\n * @param newTableName - The new table name\n * @returns The updated formula string, or the original if no changes were made\n */\nexport function renameTableInFormula(\n  formula: string,\n  oldTableName: string,\n  newTableName: string\n): string {\n  try {\n    const ast = parseFormula(formula);\n    \n    const transformedAST = transformAST(ast, (node) => {\n      if (node.type === \"structured-reference\" && node.tableName === oldTableName) {\n        return {\n          ...node,\n          tableName: newTableName\n        };\n      }\n      return node;\n    });\n\n    return astToString(transformedAST);\n  } catch (error) {\n    // If parsing fails, return the original formula\n    return formula;\n  }\n}\n\n/**\n * Checks if a formula contains references to a specific table\n * @param formula - The formula string (without the leading =)\n * @param tableName - The table name to search for\n * @returns True if the formula contains references to the table\n */\nexport function formulaReferencesTable(formula: string, tableName: string): boolean {\n  try {\n    const ast = parseFormula(formula);\n    let hasReference = false;\n\n    transformAST(ast, (node) => {\n      if (node.type === \"structured-reference\" && node.tableName === tableName) {\n        hasReference = true;\n      }\n      return node;\n    });\n\n    return hasReference;\n  } catch (error) {\n    // If parsing fails, assume no reference\n    return false;\n  }\n}\n\n/**\n * Gets all table names referenced in a formula\n * @param formula - The formula string (without the leading =)\n * @returns Array of unique table names referenced in the formula\n */\nexport function getReferencedTableNames(formula: string): string[] {\n  try {\n    const ast = parseFormula(formula);\n    const tableNames = new Set<string>();\n\n    transformAST(ast, (node) => {\n      if (node.type === \"structured-reference\" && node.tableName) {\n        tableNames.add(node.tableName);\n      }\n      return node;\n    });\n\n    return Array.from(tableNames);\n  } catch (error) {\n    // If parsing fails, return empty array\n    return [];\n  }\n}\n"
  ],
  "mappings": ";AAAA;AACA;AACA;AASO,SAAS,oBAAoB,CAClC,SACA,cACA,cACQ;AAAA,EACR,IAAI;AAAA,IACF,MAAM,MAAM,aAAa,OAAO;AAAA,IAEhC,MAAM,iBAAiB,aAAa,KAAK,CAAC,SAAS;AAAA,MACjD,IAAI,KAAK,SAAS,0BAA0B,KAAK,cAAc,cAAc;AAAA,QAC3E,OAAO;AAAA,aACF;AAAA,UACH,WAAW;AAAA,QACb;AAAA,MACF;AAAA,MACA,OAAO;AAAA,KACR;AAAA,IAED,OAAO,YAAY,cAAc;AAAA,IACjC,OAAO,OAAO;AAAA,IAEd,OAAO;AAAA;AAAA;AAUJ,SAAS,sBAAsB,CAAC,SAAiB,WAA4B;AAAA,EAClF,IAAI;AAAA,IACF,MAAM,MAAM,aAAa,OAAO;AAAA,IAChC,IAAI,eAAe;AAAA,IAEnB,aAAa,KAAK,CAAC,SAAS;AAAA,MAC1B,IAAI,KAAK,SAAS,0BAA0B,KAAK,cAAc,WAAW;AAAA,QACxE,eAAe;AAAA,MACjB;AAAA,MACA,OAAO;AAAA,KACR;AAAA,IAED,OAAO;AAAA,IACP,OAAO,OAAO;AAAA,IAEd,OAAO;AAAA;AAAA;AASJ,SAAS,uBAAuB,CAAC,SAA2B;AAAA,EACjE,IAAI;AAAA,IACF,MAAM,MAAM,aAAa,OAAO;AAAA,IAChC,MAAM,aAAa,IAAI;AAAA,IAEvB,aAAa,KAAK,CAAC,SAAS;AAAA,MAC1B,IAAI,KAAK,SAAS,0BAA0B,KAAK,WAAW;AAAA,QAC1D,WAAW,IAAI,KAAK,SAAS;AAAA,MAC/B;AAAA,MACA,OAAO;AAAA,KACR;AAAA,IAED,OAAO,MAAM,KAAK,UAAU;AAAA,IAC5B,OAAO,OAAO;AAAA,IAEd,OAAO,CAAC;AAAA;AAAA;",
  "debugId": "282767C4AEBEE9EC64756E2164756E21",
  "names": []
}