{"version":3,"sources":["jsdelivr-header.js","/npm/open-in-vscode-workflow@1.2.0/workflow/js/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;ACLA,aACA,OAAO,eAAe,QAAS,aAAc,CAAE,OAAO,IACtD,QAAQ,UAAO,EACf,MAAM,eAAiB,QAAQ,kBACzB,gBAAkB,QAAQ,mBAC1B,QAAU,QAAQ,WAClB,SAAW,QAAQ,YACnB,cAAgB,QAAQ,iBACxB,UAAY,QAAQ,aACpB,QAAU,QAAQ,WAClB,QAAU,QAAQ,WAGxB,eAAe,OACX,IAAI,EACJ,MAAM,EAAuC,MAA7B,QAAQ,IAAI,aACtB,EAAW,OAAO,QAAQ,KAAK,IAAM,IAAI,OACzC,EAAS,IAAI,gBAAgB,aACnC,GAAI,EAAS,OAAS,GAAkB,MAAb,EAGvB,OAFA,EAAO,mBACP,EAAO,gBACA,EAAa,EAAO,YAE/B,MAAM,EAAW,iBACX,EAAQ,IAAI,eAAe,YAAY,GACvC,EAAS,IAAI,SAAS,aACtB,EAAO,UACT,IACA,EAAS,KAAK,eACd,QAAQ,MAAM,EAAO,SAEL,QAAhB,EAAM,OAAmC,SAAhB,EAAM,OAAoC,WAAhB,EAAM,OACzD,EAAO,gBACX,MAAM,EAAc,EAAO,eACrB,EAAS,OAAO,KAAK,GACtB,MAAK,CAAC,EAAG,IAAM,EAAE,OAAS,EAAE,SAC5B,MAAM,GAAO,EAAS,WAAW,KAEtC,GAAI,EAAQ,CACR,MAAM,EAAc,EAAY,GAC1B,EAAa,EAAc,EAAS,MAAM,EAAO,QAGvD,aAFoB,UAAU,eAAe,KAAK,IAC5C,SAAS,GAAO,EAAO,gBAAgB,EAAG,MAAO,EAAG,SAAU,EAAG,SAAU,EAAQ,KAClF,EAAa,EAAO,WAC/B,CACA,EAAS,OACT,MAAM,EAAS,IAAI,QAAQ,OACrB,EAAU,IAAI,UAAU,QAAQ,EAAQ,EAAO,iBACjD,EAAI,QAAQ,yBAAyB,oBAAoB,UACnD,EAAQ,OACd,GACA,EAAS,KAAK,oBAClB,MAAM,EAAY,IAAI,UAAU,wBAAwB,EAAQ,UAAU,qBAAqB,OAC3F,EAAI,QAAQ,yBAAyB,uBAAuB,UACtD,EAAU,OAChB,GACA,EAAS,KAAK,0BAClB,MAAM,YAAE,GAAgB,EAAM,eAExB,EAAc,EAAM,iBAAiB,EAAU,gBACrD,IAAI,EACJ,GAAI,IACA,EAAkB,QAAQ,uBAAuB,IAAI,EAAY,UAC7D,GACA,QAAQ,MAAM,mCAAmC,KAAK,UAAU,OAChE,EAAY,OAAO,CACnB,MAAM,SAAE,EAAQ,QAAE,EAAO,YAAE,GAAgB,EACrC,EAAoC,IAA1B,EAAQ,OAAO,OAC/B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAU,OAAO,OAAQ,IAAK,CAC9C,MAAM,EAAO,EAAU,OAAO,GAC9B,IAAK,EAAK,WACN,SACJ,GAAI,EAAK,WAAW,gBAAkB,EAClC,SACJ,IAAI,EAAQ,GACP,IACD,EAAQ,eAAe,YAAY,SAAS,CAAE,OAAQ,EAAK,UAAU,eAAiB,CAAE,MAAO,EAAS,eAAe,KACvH,GAAS,GAEb,EAAO,mBAAmB,EAAM,EACpC,CACJ,CAEJ,IAAI,EAAK,EAAU,OAAO,QACtB,aAAiD,EAAS,EAAY,SACtE,EAAK,GACT,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,IAAK,CACzB,MAAM,EAAO,EAAU,OAAO,GAC9B,IAAI,EAAQ,EACZ,GAAI,EAAa,CACb,MAAM,SAAE,EAAQ,QAAE,EAAO,YAAE,GAAgB,EAC3C,MAAgC,QAA1B,EAAK,EAAK,kBAA+B,IAAP,OAAgB,EAAS,EAAG,iBAAmB,GAClF,GAAmB,IAAoB,EAAK,YAI7C,SAHA,EAAQ,eAAe,YAAY,SAAS,CAAE,OAAQ,EAAK,UAAU,eAAiB,CAAE,MAAO,EAAS,eAAe,GAK/H,MAEI,EAAQ,eAAe,YAAY,SAAS,CAAE,OAAQ,EAAK,UAAU,eAAiB,CAAE,MAAO,EAAM,MAAO,eAAe,IAE3H,GAAS,GAEb,EAAO,mBAAmB,EAAM,EACpC,CACI,GACA,EAAS,KAAK,cAAc,EAAU,OAAO,0BACjD,EAAK,EAAQ,OAAO,QAChB,aAAiD,EAAS,EAAY,SACtE,EAAK,GACT,IAAK,IAAI,EAAI,EAAG,EAAI,EAAI,IAAK,CACzB,MAAM,EAAO,EAAQ,OAAO,GACtB,EAAQ,eAAe,YAAY,SAAS,CAAE,OAAQ,EAAK,UAAU,eAAiB,CAAE,MAAO,EAAM,MAAO,eAAe,IACjI,GAAI,EAAQ,IACR,EAAO,cAAc,EAAM,GACvB,EAAO,OAA2B,EAAlB,EAAO,UACvB,KAEZ,CACI,GACA,EAAS,KAAK,cAAc,EAAQ,OAAO,sBAC/C,IAAI,EAAQ,EAAO,WACnB,GAAI,EAAM,OAAS,EACf,QAAQ,YAAY,UAAU,OAE7B,CACD,MAAM,QAAkB,QAAQ,YAAY,YACxC,IACA,QAAQ,MAAM,yBAAyB,EAAM,eAAe,EAAU,oBACtE,EAAQ,EACH,KAAK,IACN,MAAM,GAAQ,EAAI,cAAc,YAAY,EAAG,MAAM,cAAe,EAAM,OAC1E,KAAI,GAAS,GAEb,OAAO,OAAO,OAAO,EAAI,CAAE,SAAQ,IAElC,QAAQ,GAAO,IACf,MAAK,CAAC,EAAG,IAAM,EAAE,MAAQ,EAAE,QAC3B,KAAK,IACF,GACA,QAAQ,MAAM,yBAAyB,EAAG,qBAAqB,EAAG,gBAC/D,EAAG,MACH,KAGnB,CACA,OAAO,EAAa,GACpB,SAAS,EAAa,GACd,EACA,QAAQ,IAAI,KAAK,UAAU,CAAE,SAAS,KAAM,IAE5C,QAAQ,IAAI,KAAK,UAAU,CAAE,UACrC,CACJ,CAEA,SAAS,iBACL,IAAI,EAAO,QAAQ,OAAO,SAC1B,MAAO,CACH,KAAO,IACH,IAAK,EAED,YADA,EAAO,QAAQ,OAAO,UAG1B,MAAM,EAAM,QAAQ,OAAO,SACrB,EAA4B,KAArB,OAAO,EAAM,GACtB,EAAO,IACP,QAAQ,MAAM,eAAsB,KAAP,GAAc,QAAQ,QAAQ,KAE3D,QAAQ,MAAM,cAAc,EAAK,QAAQ,QAAQ,KACrD,EAAO,CAAG,EAGtB,CAlKI,QAAQ,OAAS,QACjB,OA+IJ,QAAQ,KAAO","file":"/npm/open-in-vscode-workflow@1.2.0/workflow/js/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/open-in-vscode-workflow@1.2.0/workflow/js/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","#!/usr/bin/env node\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.main = void 0;\nconst alfred_query_1 = require(\"./alfred-query\");\nconst alfred_result_1 = require(\"./alfred-result\");\nconst cache_1 = require(\"./cache\");\nconst config_1 = require(\"./config\");\nconst fuzzy_match_1 = require(\"./fuzzy-match\");\nconst scanner_1 = require(\"./scanner\");\nconst types_1 = require(\"./types\");\nconst utils_1 = require(\"./utils\");\nif (require.main === module)\n    main();\nasync function main() {\n    var _a;\n    const isDebug = process.env.alfred_debug === '1';\n    const rawQuery = String(process.argv[2] || '').trim();\n    const result = new alfred_result_1.AlfredResult();\n    if (rawQuery.length < 2 && rawQuery !== '/') {\n        result.addNewWindowItem();\n        result.addConfigItem();\n        return outputResult(result.getItems());\n    }\n    const profiler = createProfiler();\n    const query = new alfred_query_1.AlfredQuery(rawQuery);\n    const config = new config_1.Config();\n    await config.resolve();\n    if (isDebug) {\n        profiler.tick('load config');\n        console.error(config.dump());\n    }\n    if (query.rawLC === 'cfg' || query.rawLC === 'conf' || query.rawLC === 'config')\n        result.addConfigItem();\n    const allPrefixes = config.customPrefixes;\n    const prefix = Object.keys(allPrefixes)\n        .sort((a, b) => b.length - a.length)\n        .find((it) => rawQuery.startsWith(it));\n    // check if the user is querying with the prefix of absolute path\n    if (prefix) {\n        const matchedPath = allPrefixes[prefix];\n        const pathPrefix = matchedPath + rawQuery.slice(prefix.length);\n        const items = await scanner_1.AbsPathScanner.read(pathPrefix);\n        items.forEach((it) => result.addAbsolutePath(it.isDir, it.basename, it.fullPath, prefix, matchedPath));\n        return outputResult(result.getItems());\n    }\n    profiler.tick();\n    const urlSet = new utils_1.URLSet();\n    const scanner = new scanner_1.Scanner(urlSet, config.scannerOptions);\n    if ((0, utils_1.readBoolFromEnvironment)('scan_directories', true))\n        await scanner.scan();\n    if (isDebug)\n        profiler.tick('scan directories');\n    const wsScanner = new scanner_1.WorkspaceStorageScanner(urlSet, scanner_1.workspaceStorageDirs.code);\n    if ((0, utils_1.readBoolFromEnvironment)('scan_code_workspace', true))\n        await wsScanner.scan();\n    if (isDebug)\n        profiler.tick('scan workspace storage');\n    const { fragmentsLC } = query.getFragments();\n    // check if the user is querying project on remote\n    const matchRemote = query.matchRemoteQuery(wsScanner.remoteNamesMap);\n    let matchRemoteType;\n    if (matchRemote) {\n        matchRemoteType = types_1.workspaceRemoteTypeMap.get(matchRemote.remoteLC);\n        if (isDebug)\n            console.error(`debug: user is querying remote (${JSON.stringify(matchRemote)})`);\n        if (matchRemote.exact) {\n            const { remoteLC, queryLC, fragmentsLC } = matchRemote;\n            const listAll = queryLC.trim().length === 0;\n            for (let i = 0; i < wsScanner.result.length; i++) {\n                const item = wsScanner.result[i];\n                if (!item.remoteName)\n                    continue;\n                if (item.remoteName.toLowerCase() !== remoteLC)\n                    continue;\n                let score = 70;\n                if (!listAll)\n                    score = alfred_query_1.AlfredQuery.getScore({ nameLC: item.shortName.toLowerCase() }, { rawLC: queryLC, fragmentsLC }, 70);\n                if (score <= 0)\n                    continue;\n                result.addWorkspaceResult(item, score);\n            }\n        }\n    }\n    let i2 = wsScanner.result.length;\n    if (matchRemote === null || matchRemote === void 0 ? void 0 : matchRemote.exact)\n        i2 = 0;\n    for (let i = 0; i < i2; i++) {\n        const item = wsScanner.result[i];\n        let score = 0;\n        if (matchRemote) {\n            const { remoteLC, queryLC, fragmentsLC } = matchRemote;\n            if (((_a = item.remoteName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === remoteLC ||\n                (matchRemoteType && matchRemoteType === item.remoteType)) {\n                score = alfred_query_1.AlfredQuery.getScore({ nameLC: item.shortName.toLowerCase() }, { rawLC: queryLC, fragmentsLC }, 70);\n            }\n            else {\n                continue;\n            }\n        }\n        else {\n            score = alfred_query_1.AlfredQuery.getScore({ nameLC: item.shortName.toLowerCase() }, { rawLC: query.rawLC, fragmentsLC }, 50);\n        }\n        if (score <= 0)\n            continue;\n        result.addWorkspaceResult(item, score);\n    }\n    if (isDebug)\n        profiler.tick(`match from ${wsScanner.result.length} workspace items`);\n    i2 = scanner.result.length;\n    if (matchRemote === null || matchRemote === void 0 ? void 0 : matchRemote.exact)\n        i2 = 0;\n    for (let i = 0; i < i2; i++) {\n        const item = scanner.result[i];\n        const score = alfred_query_1.AlfredQuery.getScore({ nameLC: item.shortName.toLowerCase() }, { rawLC: query.rawLC, fragmentsLC }, 50);\n        if (score > 0) {\n            result.addScanResult(item, score);\n            if (result.count >= result.maxItems * 2)\n                break;\n        }\n    }\n    if (isDebug)\n        profiler.tick(`match from ${scanner.result.length} directories`);\n    let items = result.getItems();\n    if (items.length > 0) {\n        cache_1.resultCache.saveCache(items);\n    }\n    else {\n        const prevItems = await cache_1.resultCache.loadCache();\n        if (prevItems) {\n            console.error(`info: fuzzy matching \"${query.rawLC}\" from ${prevItems.length} prevItems`);\n            items = prevItems\n                .map((it) => {\n                const score = (0, fuzzy_match_1.fuzzyMatch)(it.title.toLowerCase(), query.rawLC);\n                if (score <= 0)\n                    return;\n                return Object.assign(it, { score });\n            })\n                .filter((it) => it)\n                .sort((a, b) => b.score - a.score)\n                .map((it) => {\n                if (isDebug)\n                    console.error(`debug: fuzzy matched \"${it.title}\" with score ${it.score}`);\n                delete it.score;\n                return it;\n            });\n        }\n    }\n    return outputResult(items);\n    function outputResult(items) {\n        if (isDebug)\n            console.log(JSON.stringify({ items }, null, 2));\n        else\n            console.log(JSON.stringify({ items }));\n    }\n}\nexports.main = main;\nfunction createProfiler() {\n    let prev = process.hrtime.bigint();\n    return {\n        tick: (msg) => {\n            if (!msg) {\n                prev = process.hrtime.bigint();\n                return;\n            }\n            const now = process.hrtime.bigint();\n            const diff = Number(now - prev) * 0.001;\n            if (diff > 1000)\n                console.error(`profiler: +${(diff * 0.001).toFixed(2)}ms ${msg}`);\n            else\n                console.error(`profiler: +${diff.toFixed(2)}µs ${msg}`);\n            prev = now;\n        },\n    };\n}\n"]}