{"version":3,"sources":["jsdelivr-header.js","/npm/@kitajs/ts-plugin@1.1.22/dist/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNC,aACD,MAAM,QAAU,QAAQ,SAClB,SAAW,QAAQ,kBACnB,SAAW,QAAQ,kBACnB,OAAS,QAAQ,gBAAgB,QAAQ,SACzC,kBAAoB,QAAQ,gBAAgB,QAAQ,mCACpD,WAAa,QAAQ,sBACrB,QAAU,QAAQ,mBAClB,QAAU,QAAQ,gBACxB,OAAO,QAAU,WACb,MAAO,CACH,MAAA,CAAO,GACH,MAAM,GAAQ,EAAI,QAAQ,aAAa,EAAK,iBAC5C,IAAI,EACA,EACA,EACA,EACA,EAkEJ,OAjEA,EAAK,QAAQ,eAAe,OAAO,KAAK,oCAAoC,EAAK,QAAQ,uBAAuB,EAAK,QAAQ,yBAC7H,EAAM,uBAAyB,SAAmC,GAE9D,EAAW,OAAO,QAAQ,UAAU,GACpC,MAAM,EAAc,EAAK,gBAAgB,uBAAuB,GAC1D,EAAQ,YAAY,MACpB,EAAU,EAAK,gBAAgB,aAC/B,EAAS,EAAQ,cAAc,GACrC,IAAK,EACD,OAAO,EAEX,IAMI,GAJK,GA6Bb,SAAoB,EAAS,GAEzB,MAAM,EAAO,OAAO,QAAQ,UAAU,EAAQ,uBAC9C,IACI,GAAS,EAAI,SAAS,cAAc,OAAO,QAAQ,KAAK,EAAM,kBAClE,CACA,MACI,GAAS,EAAI,SAAS,aAAa,CAAC,EAAG,EAC3C,CAEI,EAAO,MAAQ,QAAQ,QACvB,EAAO,IAAM,GAEjB,EAAY,OAAO,QAAQ,QAAQ,EAAO,IAAK,SAAS,eACxD,EAAe,OAAO,QAAQ,QAAQ,EAAO,IAAK,SAAS,kBAC3D,EAAgB,EACX,iBACA,KAAK,GAAM,EAAE,WACb,QAAQ,GAAM,EAAE,YAAW,EAAI,SAAS,UAAU,MACvD,EAAS,IAAI,SAAS,WAAW,EAAQ,GACzC,EAAK,QAAQ,eAAe,OAAO,KAAK,+CAA+C,YAAY,MAAQ,OAC3G,EAAK,QAAQ,eAAe,OAAO,KAAK,iBAAiB,KAAK,UAAU,EAAQ,KAAM,KAC1F,CAlDY,CAAW,EAAS,IAGnB,EAAS,WAAW,EAAO,KAC5B,OAAO,EAGX,GAAI,EAAS,WAAW,GAGpB,OAFA,EAAK,QAAQ,eAAe,OAAO,KAAK,iCAAiC,QAAe,YAAY,MAAQ,QAC5G,EAAI,WAAW,2BAA2B,EAAQ,EAAQ,GACnD,EAGX,GAAI,EAAS,WAAW,GAGpB,OAFA,EAAK,QAAQ,eAAe,OAAO,KAAK,8BAA8B,QAAe,YAAY,MAAQ,QACzG,EAAI,QAAQ,wBAAwB,EAAQ,EAAS,EAAQ,EAAa,GACnE,CAEf,CACA,MAAO,GACH,GAAI,aAAiB,SAAS,UAE1B,OADA,EAAY,KAAK,EAAM,YAChB,EAEX,EAAK,QAAQ,eAAe,OAAO,IAAI,yBAAyB,EAAM,QAAS,kBAAkB,QAAQ,OAAO,IAAI,IACxH,CACA,OAAO,CACX,EAwBO,CACX,EAER","file":"/npm/@kitajs/ts-plugin@1.1.22/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@kitajs/ts-plugin@1.1.22/dist/index.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\";\nconst tslib_1 = require(\"tslib\");\nconst common_1 = require(\"@kitajs/common\");\nconst parser_1 = require(\"@kitajs/parser\");\nconst path_1 = tslib_1.__importDefault(require(\"path\"));\nconst tsserverlibrary_1 = tslib_1.__importDefault(require(\"typescript/lib/tsserverlibrary\"));\nconst provider_1 = require(\"./parsers/provider\");\nconst route_1 = require(\"./parsers/route\");\nconst proxy_1 = require(\"./util/proxy\");\nmodule.exports = function initHtmlPlugin() {\n    return {\n        create(info) {\n            const proxy = (0, proxy_1.proxyObject)(info.languageService);\n            let config;\n            let providerPaths;\n            let parser;\n            let rootProvider;\n            let rootRoute;\n            info.project.projectService.logger.info(`[kita-plugin] Started plugin for ${info.project.getProjectName()} at ${info.project.getCurrentDirectory()}`);\n            proxy.getSemanticDiagnostics = function clonedSemanticDiagnostics(filename) {\n                // ts typescript will return the path with / on windows\n                filename = path_1.default.normalize(filename);\n                const diagnostics = info.languageService.getSemanticDiagnostics(filename);\n                const start = performance.now();\n                const program = info.languageService.getProgram();\n                const source = program.getSourceFile(filename);\n                if (!source) {\n                    return diagnostics;\n                }\n                try {\n                    // Lazy load the parser\n                    if (!config) {\n                        loadParser(program, start);\n                    }\n                    // Only parse files inside the cwd\n                    if (!filename.startsWith(config.cwd)) {\n                        return diagnostics;\n                    }\n                    // Searches if this file is a provider\n                    if (filename.startsWith(rootProvider)) {\n                        info.project.projectService.logger.info(`[kita-plugin] Parsed provider ${filename} in ${performance.now() - start}ms`);\n                        (0, provider_1.appendProviderDiagnostics)(parser, source, diagnostics);\n                        return diagnostics;\n                    }\n                    // Searches if this file is a route\n                    if (filename.startsWith(rootRoute)) {\n                        info.project.projectService.logger.info(`[kita-plugin] Parsed route ${filename} in ${performance.now() - start}ms`);\n                        (0, route_1.appendRouteDiagnostics)(parser, program, source, diagnostics, providerPaths);\n                        return diagnostics;\n                    }\n                }\n                catch (error) {\n                    if (error instanceof common_1.KitaError) {\n                        diagnostics.push(error.diagnostic);\n                        return diagnostics;\n                    }\n                    info.project.projectService.logger.msg(`[kita-plugin] Error:\\n${error.stack}`, tsserverlibrary_1.default.server.Msg.Err);\n                }\n                return diagnostics;\n            };\n            function loadParser(program, start) {\n                // ts typescript will return the path with / on windows\n                const root = path_1.default.normalize(program.getCurrentDirectory());\n                try {\n                    config = (0, common_1.importConfig)(path_1.default.join(root, 'kita.config.js'));\n                }\n                catch {\n                    config = (0, common_1.parseConfig)({}, root);\n                }\n                // process.cwd() will return the editor cwd, and not the project cwd\n                if (config.cwd === process.cwd()) {\n                    config.cwd = root;\n                }\n                rootRoute = path_1.default.resolve(config.src, common_1.kRoutesFolder);\n                rootProvider = path_1.default.resolve(config.src, common_1.kProvidersFolder);\n                providerPaths = program\n                    .getSourceFiles()\n                    .map((f) => f.fileName)\n                    .filter((f) => f.startsWith((0, parser_1.toTsPath)(rootProvider)));\n                parser = new parser_1.KitaParser(config, program);\n                info.project.projectService.logger.info(`[kita-plugin] Successfully parsed config in ${performance.now() - start}ms`);\n                info.project.projectService.logger.info(`[kita-plugin] ${JSON.stringify(config, null, 2)}`);\n            }\n            return proxy;\n        }\n    };\n};\n"]}