{
  "version": 3,
  "sources": ["../../../../src/packages/plugin-commands-completion/completionServer.ts"],
  "sourcesContent": ["import { type CompletionItem, getShellFromEnv } from '@pnpm/tabtab';\nimport type { CompletionFunc } from '../command/index.ts';\nimport { split as splitCmd } from 'split-cmd';\nimport tabtab from '@pnpm/tabtab';\nimport { currentTypedWordType, getLastOption } from './getOptionType.ts';\nimport type { ParsedCliArgs } from '../parse-cli-args/index.ts';\nimport { complete } from './complete.ts';\nimport process from 'node:process';\n\nexport function createCompletionServer(opts: {\n  cliOptionsTypesByCommandName: Record<string, () => Record<string, unknown>>;\n  completionByCommandName: Record<string, CompletionFunc>;\n  initialCompletion: () => CompletionItem[];\n  shorthandsByCommandName: Record<string, Record<string, string | string[]>>;\n  parseCliArgs: (args: string[]) => Promise<ParsedCliArgs>;\n  universalOptionsTypes: Record<string, unknown>;\n  universalShorthands: Record<string, string>;\n}): () => Promise<void> {\n  return async () => {\n    const shell = getShellFromEnv(process.env);\n\n    const env = tabtab.parseEnv(process.env);\n\n    if (!env.complete) {\n      return;\n    }\n\n    // Parse only words that are before the pointer and finished.\n    // Finished means that there's at least one space between the word and pointer\n    const finishedArgv = env.partial.slice(0, -env.lastPartial.length);\n\n    const inputArgv = splitCmd(finishedArgv).slice(1);\n\n    // We cannot autocomplete what a user types after \"pnpm test --\"\n    if (inputArgv.includes('--') === true) {\n      return;\n    }\n\n    const { params, options, cmd } = await opts.parseCliArgs(inputArgv);\n\n    tabtab.log(\n      await complete(opts, {\n        cmd,\n        currentTypedWordType: currentTypedWordType(env),\n        lastOption: getLastOption(env),\n        options,\n        params,\n      }),\n      shell\n    );\n  };\n}\n"],
  "mappings": "AAAA,SAA8B,uBAAuB;AAErD,SAAS,SAAS,gBAAgB;AAClC,OAAO,YAAY;AACnB,SAAS,sBAAsB,qBAAqB;AAEpD,SAAS,gBAAgB;AACzB,OAAO,aAAa;AAEb,SAAS,uBAAuB,MAQf;AACtB,SAAO,YAAY;AACjB,UAAM,QAAQ,gBAAgB,QAAQ,GAAG;AAEzC,UAAM,MAAM,OAAO,SAAS,QAAQ,GAAG;AAEvC,QAAI,CAAC,IAAI,UAAU;AACjB;AAAA,IACF;AAIA,UAAM,eAAe,IAAI,QAAQ,MAAM,GAAG,CAAC,IAAI,YAAY,MAAM;AAEjE,UAAM,YAAY,SAAS,YAAY,EAAE,MAAM,CAAC;AAGhD,QAAI,UAAU,SAAS,IAAI,MAAM,MAAM;AACrC;AAAA,IACF;AAEA,UAAM,EAAE,QAAQ,SAAS,IAAI,IAAI,MAAM,KAAK,aAAa,SAAS;AAElE,WAAO;AAAA,MACL,MAAM,SAAS,MAAM;AAAA,QACnB;AAAA,QACA,sBAAsB,qBAAqB,GAAG;AAAA,QAC9C,YAAY,cAAc,GAAG;AAAA,QAC7B;AAAA,QACA;AAAA,MACF,CAAC;AAAA,MACD;AAAA,IACF;AAAA,EACF;AACF;",
  "names": []
}
