{"version":3,"file":"getPathnameFromFilePath.js","names":[],"sources":["esm/utils/getPathnameFromFilePath.js"],"sourcesContent":["function getPathnameFromFilePath(inputPath, params = {}, strict = false, options = {}) {\n  const path = inputPath.replace(/\\+(spa|ssg|ssr|api)\\.tsx?$/, \"\");\n  const lastSlash = path.lastIndexOf(\"/\");\n  const file = path.slice(lastSlash + 1);\n  const fileName = options.preserveExtensions ? file : file.replace(/\\.[a-z]+$/, \"\");\n  function paramsError(part) {\n    throw new Error(\n      `[one] Params doesn't fit route:\n\n      - path: ${path}\n      - part: ${part}\n      - fileName: ${fileName}\n      - params:\n\n${JSON.stringify(params, null, 2)}`\n    );\n  }\n  const dirname = (lastSlash === -1 ? \".\" : path.slice(0, lastSlash) || \"/\").split(\"/\").map((segment) => segment.replace(/\\+(api|ssg|ssr|spa)$/, \"\")).join(\"/\").replace(/\\([^/]+\\)/gi, \"\").replace(/\\[([^\\]]+)\\]/g, (_, paramName) => {\n    const value = params[paramName];\n    if (value != null) return String(value);\n    if (strict) throw paramsError(paramName);\n    return \":\" + paramName;\n  });\n  const nameWithParams = (() => {\n    if (fileName === \"index\" && !options.includeIndex) {\n      return \"/\";\n    }\n    if (fileName.startsWith(\"[...\")) {\n      const part = fileName.replace(\"[...\", \"\").replace(\"]\", \"\");\n      if (!params[part]) {\n        if (strict) {\n          throw paramsError(part);\n        }\n        return `/*`;\n      }\n      return `/${params[part]}`;\n    }\n    return `/${fileName.split(\"/\").map((part) => {\n      if (part[0] === \"[\") {\n        const found = params[part.slice(1, part.length - 1)];\n        if (!found) {\n          if (strict) {\n            throw paramsError(part);\n          }\n          return \":\" + part.replace(\"[\", \"\").replace(\"]\", \"\");\n        }\n        return found;\n      }\n      return part;\n    }).join(\"/\")}`;\n  })();\n  return `${dirname}${nameWithParams}`.replace(/\\/\\/+/gi, \"/\");\n}\nexport {\n  getPathnameFromFilePath\n};\n//# sourceMappingURL=getPathnameFromFilePath.js.map\n"],"mappings":";AAAA,SAAS,wBAAwB,WAAW,SAAS,CAAC,GAAG,SAAS,OAAO,UAAU,CAAC,GAAG;CACrF,MAAM,OAAO,UAAU,QAAQ,8BAA8B,EAAE;CAC/D,MAAM,YAAY,KAAK,YAAY,GAAG;CACtC,MAAM,OAAO,KAAK,MAAM,YAAY,CAAC;CACrC,MAAM,WAAW,QAAQ,qBAAqB,OAAO,KAAK,QAAQ,aAAa,EAAE;CACjF,SAAS,YAAY,MAAM;EACzB,MAAM,IAAI,MACR;;gBAEU,KAAK;gBACL,KAAK;oBACD,SAAS;;;EAG3B,KAAK,UAAU,QAAQ,MAAM,CAAC,GAC5B;CACF;CACA,MAAM,WAAW,cAAc,CAAC,IAAI,MAAM,KAAK,MAAM,GAAG,SAAS,KAAK,IAAG,CAAE,MAAM,GAAG,CAAC,CAAC,KAAK,YAAY,QAAQ,QAAQ,wBAAwB,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,eAAe,EAAE,CAAC,CAAC,QAAQ,kBAAkB,GAAG,cAAc;EAClO,MAAM,QAAQ,OAAO;EACrB,IAAI,SAAS,MAAM,OAAO,OAAO,KAAK;EACtC,IAAI,QAAQ,MAAM,YAAY,SAAS;EACvC,OAAO,MAAM;CACf,CAAC;CACD,MAAM,wBAAwB;EAC5B,IAAI,aAAa,WAAW,CAAC,QAAQ,cAAc;GACjD,OAAO;EACT;EACA,IAAI,SAAS,WAAW,MAAM,GAAG;GAC/B,MAAM,OAAO,SAAS,QAAQ,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,EAAE;GACzD,IAAI,CAAC,OAAO,OAAO;IACjB,IAAI,QAAQ;KACV,MAAM,YAAY,IAAI;IACxB;IACA,OAAO;GACT;GACA,OAAO,IAAI,OAAO;EACpB;EACA,OAAO,IAAI,SAAS,MAAM,GAAG,CAAC,CAAC,KAAK,SAAS;GAC3C,IAAI,KAAK,OAAO,KAAK;IACnB,MAAM,QAAQ,OAAO,KAAK,MAAM,GAAG,KAAK,SAAS,CAAC;IAClD,IAAI,CAAC,OAAO;KACV,IAAI,QAAQ;MACV,MAAM,YAAY,IAAI;KACxB;KACA,OAAO,MAAM,KAAK,QAAQ,KAAK,EAAE,CAAC,CAAC,QAAQ,KAAK,EAAE;IACpD;IACA,OAAO;GACT;GACA,OAAO;EACT,CAAC,CAAC,CAAC,KAAK,GAAG;CACb,EAAC,CAAE;CACH,OAAO,GAAG,UAAU,iBAAiB,QAAQ,WAAW,GAAG;AAC7D"}