{"version":3,"sources":["jsdelivr-header.js","/npm/@roblox-ts/path-translator@1.1.0/out/PathTranslator.js"],"names":[],"mappings":"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","file":"/npm/@roblox-ts/path-translator@1.1.0/out/PathTranslator.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@roblox-ts/path-translator@1.1.0/out/PathTranslator.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PathTranslator = void 0;\nconst path_1 = __importDefault(require(\"path\"));\nconst constants_1 = require(\"./constants\");\nconst assert_1 = require(\"./util/assert\");\nclass PathInfo {\n    constructor(dirName, fileName, exts) {\n        this.dirName = dirName;\n        this.fileName = fileName;\n        this.exts = exts;\n    }\n    static from(filePath) {\n        const dirName = path_1.default.dirname(filePath);\n        const parts = filePath.slice(dirName.length + path_1.default.sep.length).split(\".\");\n        const fileName = parts.shift();\n        const exts = parts.map(v => \".\" + v);\n        (0, assert_1.assert)(fileName !== undefined);\n        return new PathInfo(dirName, fileName, exts);\n    }\n    extsPeek(depth = 0) {\n        return this.exts[this.exts.length - (depth + 1)];\n    }\n    join() {\n        return path_1.default.join(this.dirName, [this.fileName, ...this.exts].join(\"\"));\n    }\n}\nclass PathTranslator {\n    constructor(rootDir, outDir, buildInfoOutputPath, declaration, useLuauExtension = false) {\n        this.rootDir = rootDir;\n        this.outDir = outDir;\n        this.buildInfoOutputPath = buildInfoOutputPath;\n        this.declaration = declaration;\n        this.useLuauExtension = useLuauExtension;\n    }\n    getLuauExt() {\n        return this.useLuauExtension ? constants_1.LUAU_EXT : constants_1.LUA_EXT;\n    }\n    makeRelativeFactory(from = this.rootDir, to = this.outDir) {\n        return (pathInfo) => path_1.default.join(to, path_1.default.relative(from, pathInfo.join()));\n    }\n    getOutputPath(filePath) {\n        const makeRelative = this.makeRelativeFactory();\n        const pathInfo = PathInfo.from(filePath);\n        if ((pathInfo.extsPeek() === constants_1.TS_EXT || pathInfo.extsPeek() === constants_1.TSX_EXT) && pathInfo.extsPeek(1) !== constants_1.D_EXT) {\n            pathInfo.exts.pop();\n            if (pathInfo.fileName === constants_1.INDEX_NAME) {\n                pathInfo.fileName = constants_1.INIT_NAME;\n            }\n            pathInfo.exts.push(this.getLuauExt());\n        }\n        return makeRelative(pathInfo);\n    }\n    getOutputDeclarationPath(filePath) {\n        const makeRelative = this.makeRelativeFactory();\n        const pathInfo = PathInfo.from(filePath);\n        if ((pathInfo.extsPeek() === constants_1.TS_EXT || pathInfo.extsPeek() === constants_1.TSX_EXT) && pathInfo.extsPeek(1) !== constants_1.D_EXT) {\n            pathInfo.exts.pop();\n            pathInfo.exts.push(constants_1.DTS_EXT);\n        }\n        return makeRelative(pathInfo);\n    }\n    getOutputTransformedPath(filePath) {\n        const makeRelative = this.makeRelativeFactory();\n        const pathInfo = PathInfo.from(filePath);\n        if (pathInfo.extsPeek(1) === constants_1.D_EXT) {\n            pathInfo.exts.splice(pathInfo.exts.length - 2, 0, constants_1.TRANSFORMED_EXT);\n        }\n        else {\n            pathInfo.exts.splice(pathInfo.exts.length - 1, 0, constants_1.TRANSFORMED_EXT);\n        }\n        return makeRelative(pathInfo);\n    }\n    getInputPaths(filePath) {\n        const makeRelative = this.makeRelativeFactory(this.outDir, this.rootDir);\n        const possiblePaths = new Array();\n        const pathInfo = PathInfo.from(filePath);\n        if (pathInfo.extsPeek() === this.getLuauExt() && pathInfo.fileName !== constants_1.INDEX_NAME) {\n            pathInfo.exts.pop();\n            pathInfo.exts.push(constants_1.TS_EXT);\n            possiblePaths.push(makeRelative(pathInfo));\n            pathInfo.exts.pop();\n            pathInfo.exts.push(constants_1.TSX_EXT);\n            possiblePaths.push(makeRelative(pathInfo));\n            pathInfo.exts.pop();\n            if (pathInfo.fileName === constants_1.INIT_NAME) {\n                const originalFileName = pathInfo.fileName;\n                pathInfo.fileName = constants_1.INDEX_NAME;\n                pathInfo.exts.push(constants_1.TS_EXT);\n                possiblePaths.push(makeRelative(pathInfo));\n                pathInfo.exts.pop();\n                pathInfo.exts.push(constants_1.TSX_EXT);\n                possiblePaths.push(makeRelative(pathInfo));\n                pathInfo.exts.pop();\n                pathInfo.fileName = originalFileName;\n            }\n            pathInfo.exts.push(this.getLuauExt());\n        }\n        if (this.declaration) {\n            if ((pathInfo.extsPeek() === constants_1.TS_EXT || pathInfo.extsPeek() === constants_1.TSX_EXT) && pathInfo.extsPeek(1) === constants_1.D_EXT) {\n                const tsExt = pathInfo.exts.pop();\n                (0, assert_1.assert)(tsExt);\n                pathInfo.exts.pop();\n                pathInfo.exts.push(constants_1.TS_EXT);\n                possiblePaths.push(makeRelative(pathInfo));\n                pathInfo.exts.pop();\n                pathInfo.exts.push(constants_1.TSX_EXT);\n                possiblePaths.push(makeRelative(pathInfo));\n                pathInfo.exts.pop();\n                pathInfo.exts.push(constants_1.D_EXT);\n                pathInfo.exts.push(tsExt);\n            }\n        }\n        possiblePaths.push(makeRelative(pathInfo));\n        return possiblePaths;\n    }\n    getImportPath(filePath, isNodeModule = false) {\n        const makeRelative = this.makeRelativeFactory();\n        const pathInfo = PathInfo.from(filePath);\n        if (pathInfo.extsPeek() === constants_1.TS_EXT || pathInfo.extsPeek() === constants_1.TSX_EXT) {\n            pathInfo.exts.pop();\n            if (pathInfo.extsPeek() === constants_1.D_EXT) {\n                pathInfo.exts.pop();\n            }\n            if (pathInfo.fileName === constants_1.INDEX_NAME) {\n                pathInfo.fileName = constants_1.INIT_NAME;\n            }\n            pathInfo.exts.push(this.getLuauExt());\n        }\n        return isNodeModule ? pathInfo.join() : makeRelative(pathInfo);\n    }\n}\nexports.PathTranslator = PathTranslator;\n"]}