{"version":3,"sources":["../../../../src/objects/to-path/toPath.ts"],"sourcesContent":["/**\n * Converts a deep key string into an array of path segments.\n *\n * This function takes a string representing a deep key (e.g., 'a.b.c' or 'a[b][c]') and breaks it down into an array of strings, each representing a segment of the path.\n *\n * @param {string} deepKey - The deep key string to convert.\n * @returns {string[]} An array of strings, each representing a segment of the path.\n *\n * Examples:\n *\n * toPath('a.b.c') // Returns ['a', 'b', 'c']\n * toPath('a[b][c]') // Returns ['a', 'b', 'c']\n * toPath('.a.b.c') // Returns ['', 'a', 'b', 'c']\n * toPath('a[\"b.c\"].d') // Returns ['a', 'b.c', 'd']\n * toPath('') // Returns []\n * toPath('.a[b].c.d[e][\"f.g\"].h') // Returns ['', 'a', 'b', 'c', 'd', 'e', 'f.g', 'h']\n */\nexport function toPath(deepKey: string): string[] {\n  const result: string[] = [];\n  const length = deepKey.length;\n\n  if (length === 0) {\n    return result;\n  }\n\n  let index = 0;\n  let key = \"\";\n  let quoteChar = \"\";\n  let bracket = false;\n\n  // Leading dot\n  if (deepKey.charCodeAt(0) === 46) {\n    result.push(\"\");\n    index++;\n  }\n\n  while (index < length) {\n    const char = deepKey[index];\n\n    if (quoteChar) {\n      if (char === \"\\\\\" && index + 1 < length) {\n        // Escape character\n        index++;\n        key += deepKey[index];\n      } else if (char === quoteChar) {\n        // End of quote\n        quoteChar = \"\";\n      } else {\n        key += char;\n      }\n    } else if (bracket) {\n      if (char === '\"' || char === \"'\") {\n        // Start of quoted string inside brackets\n        quoteChar = char;\n      } else if (char === \"]\") {\n        // End of bracketed segment\n        bracket = false;\n        result.push(key);\n        key = \"\";\n      } else {\n        key += char;\n      }\n    } else if (char === \"[\") {\n      // Start of bracketed segment\n      bracket = true;\n      if (key) {\n        result.push(key);\n        key = \"\";\n      }\n    } else if (char === \".\") {\n      if (key) {\n        result.push(key);\n        key = \"\";\n      }\n    } else {\n      key += char;\n    }\n\n    index++;\n  }\n\n  if (key) {\n    result.push(key);\n  }\n\n  return result;\n}\n"],"mappings":";AAiBO,SAAS,OAAO,SAA2B;AAChD,QAAM,SAAmB,CAAC;AAC1B,QAAM,SAAS,QAAQ;AAEvB,MAAI,WAAW,GAAG;AAChB,WAAO;AAAA,EACT;AAEA,MAAI,QAAQ;AACZ,MAAI,MAAM;AACV,MAAI,YAAY;AAChB,MAAI,UAAU;AAGd,MAAI,QAAQ,WAAW,CAAC,MAAM,IAAI;AAChC,WAAO,KAAK,EAAE;AACd;AAAA,EACF;AAEA,SAAO,QAAQ,QAAQ;AACrB,UAAM,OAAO,QAAQ,KAAK;AAE1B,QAAI,WAAW;AACb,UAAI,SAAS,QAAQ,QAAQ,IAAI,QAAQ;AAEvC;AACA,eAAO,QAAQ,KAAK;AAAA,MACtB,WAAW,SAAS,WAAW;AAE7B,oBAAY;AAAA,MACd,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF,WAAW,SAAS;AAClB,UAAI,SAAS,OAAO,SAAS,KAAK;AAEhC,oBAAY;AAAA,MACd,WAAW,SAAS,KAAK;AAEvB,kBAAU;AACV,eAAO,KAAK,GAAG;AACf,cAAM;AAAA,MACR,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF,WAAW,SAAS,KAAK;AAEvB,gBAAU;AACV,UAAI,KAAK;AACP,eAAO,KAAK,GAAG;AACf,cAAM;AAAA,MACR;AAAA,IACF,WAAW,SAAS,KAAK;AACvB,UAAI,KAAK;AACP,eAAO,KAAK,GAAG;AACf,cAAM;AAAA,MACR;AAAA,IACF,OAAO;AACL,aAAO;AAAA,IACT;AAEA;AAAA,EACF;AAEA,MAAI,KAAK;AACP,WAAO,KAAK,GAAG;AAAA,EACjB;AAEA,SAAO;AACT;","names":[]}