{"version":3,"sources":["jsdelivr-header.js","/npm/prompt-sync@4.2.0/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,IAAI,GAAK,QAAQ,MACb,UAAY,QAAQ,cACpB,KAAO,GAcX,SAAS,OAAO,GAGd,IAAI,GADJ,EAAS,GAAU,CAAC,GACA,OAChB,EAAM,EAAO,IACb,EAAe,EAAO,aACxB,EAAO,cAAgB,WAAW,MAAO,EAAE,EACzC,EAAU,EAAO,QAIrB,OAHA,EAAO,QAAU,GAAW,CAAC,KAAM,WAAW,GAC9C,EAAO,KAAO,SAAU,GAAO,OAAO,EAAO,EAAK,CAAC,KAAM,IAAK,EAEvD,EAmBP,SAAS,EAAO,EAAK,EAAO,GAC1B,IAAiC,EAAQ,EAArC,EAAS,EAAG,EAAc,EAC9B,EAAO,GAAQ,CAAC,EAEZ,OAAO,KAAS,EAElB,GADA,EAAO,GACI,IACF,OAAO,KAAW,IAE3B,GADA,EAAO,GACM,OAEf,EAAM,GAAO,GACb,IAAI,EAAO,EAAK,KACZ,EAAS,SAAU,EACvB,EAAe,EAAK,cAAgB,EAEpC,IAAI,EAA2B,UAArB,QAAQ,SAChB,QAAQ,MAAM,GACd,GAAG,SAAS,WAAY,MAEtB,EAAS,QAAQ,MAAM,MACtB,GAAU,QAAQ,MAAM,YAAc,QAAQ,MAAM,YAAW,GAEpE,IACc,EAAW,EADrB,EAAM,OAAO,MAAM,GACnB,EAAM,GAEV,EAAW,GAEP,GACF,QAAQ,OAAO,MAAM,GAMvB,IAHA,IAAI,EAAQ,IAKV,IADA,EAAO,GAAG,SAAS,EAAI,EAAK,EAAG,IACpB,EACT,OAAO,EAAI,YACT,IAAK,MACH,GAAI,EAAQ,MACZ,IAAK,EAAS,MACd,GAAI,EAAQ,UAAW,MAEnB,EAAQ,UACV,EAAW,EACX,EAAc,GAGhB,GADA,EAAM,EAAQ,QACD,OACb,QAAQ,OAAO,MAAM,WAAuB,EAAM,GAClD,MACF,IAAK,MACH,GAAI,EAAQ,MACZ,IAAK,EAAS,MACd,GAAI,EAAQ,UAAW,MAEnB,EAAQ,iBACV,EAAM,EACN,EAAS,EACT,EAAQ,QAGR,GADA,EAAM,EAAQ,QACD,OAEf,QAAQ,OAAO,MAAM,WAAsB,EAAM,EAAM,MAAW,EAAO,EAAI,OAAO,GAAG,KACvF,MACF,IAAK,MACH,GAAI,EAAQ,MACC,GACb,IAAY,EAAS,EAAK,EAAI,IAE5B,QAAQ,OAAO,MAAM,QACvB,MACF,IAAK,MACH,GAAI,EAAQ,MACZ,IAAY,EAAS,EAAI,OAAU,EAAI,OAAS,EAChD,QAAQ,OAAO,MAAM,MAAa,EAAO,EAAI,OAAO,GAAK,KACzD,MACF,QACM,EAAI,aAIN,EAAY,EAAQ,EAAK,EAFzB,GADA,GAAY,EAAI,YACN,QAAQ,MAAO,IACzB,EAAS,EAAI,QAEb,QAAQ,OAAO,MAAM,MAAa,EAAO,EAAI,OAAO,GAAK,KACzD,EAAM,OAAO,MAAM,QAjD3B,CA2DA,GAAiB,IAHjB,EAAY,EAAI,EAAK,IAWnB,OAPA,QAAQ,OAAO,MAAM,QACrB,GAAG,UAAU,GAET,GAAQ,QAAQ,KAAK,KAEzB,QAAQ,MAAM,YAAc,QAAQ,MAAM,WAAW,GAE9C,KAYT,GARiB,GAAb,GACgB,GAAd,EAAI,QAAe,IACrB,QAAQ,OAAO,MAAM,UACrB,QAAQ,KAAK,IAKb,GAAa,KAAM,CAErB,GADA,GAAG,UAAU,IACR,EAAS,OACT,GAAU,EAAI,QAAQ,EAAQ,KAAK,GACxC,EAAQ,QACR,KACF,CAGA,GAAiB,GAAb,EAAgB,CASlB,GANI,IAFJ,EAAM,EAAa,IAEJ,GACb,EAAM,EAAa,IAEJ,EAAI,OAGH,GAAd,EAAI,OAAa,CACnB,QAAQ,OAAO,MAAM,MACrB,QACF,CAEA,IAAI,EAAO,EAAI,MAAY,GAAI,EAAQ,EAAG,MAEtC,IACF,QAAQ,OAAO,MAAM,QAAe,EAAM,GAC1C,EAAM,EACN,EAAS,EAAK,OAElB,CAEA,GAAiB,KAAb,GAAyC,SAApB,QAAQ,UAAoC,GAAb,EAAiB,CACvE,IAAK,EAAQ,SACb,EAAM,EAAI,MAAM,EAAG,EAAO,GAAK,EAAI,MAAM,GACzC,IACA,QAAQ,OAAO,MAAM,OACvB,KAAO,CACL,GAAK,EAAY,IAAS,EAAY,IAClC,SACJ,EAAM,EAAI,MAAM,EAAG,GAAU,OAAO,aAAa,GAAa,EAAI,MAAM,GACxE,GACF,CAEA,EAAY,EAAQ,EAAK,EAAM,EAAK,EAtEpC,CA8EF,OAJA,QAAQ,OAAO,MAAM,MAErB,QAAQ,MAAM,YAAc,QAAQ,MAAM,WAAW,GAE9C,GAAO,GAAS,EACzB,CAGA,SAAS,EAAY,EAAQ,EAAK,EAAM,EAAK,GAC3C,GAAI,EACA,QAAQ,OAAO,MAAM,WAAuB,EAAM,MAAM,EAAI,OAAO,GAAG,KAAK,QACxE,CACL,QAAQ,OAAO,MAAM,OACjB,GAAU,EAAI,QAGZ,EAFF,QAAQ,OAAO,MAAM,WAAsB,EAAM,GAKjD,QAAQ,OAAO,MAAM,WAAsB,EAAM,MAAa,EAAI,OAAS,GAAU,KAKzF,IAAI,EAAY,UAAU,GAAK,OAC/B,QAAQ,OAAO,MAAM,KAAU,EAAU,GAAS,IAAN,EAAU,EAAE,MAC1D,CACF,CACF,CAEA,OAAO,QAAU","file":"/npm/prompt-sync@4.2.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/prompt-sync@4.2.0/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'\n\nvar fs = require('fs');\nvar stripAnsi = require('strip-ansi');\nvar term = 13; // carriage return\n\n/**\n * create -- sync function for reading user input from stdin\n * @param   {Object} config {\n *   sigint: {Boolean} exit on ^C\n *   autocomplete: {StringArray} function({String})\n *   history: {String} a history control object (see `prompt-sync-history`)\n * }\n * @returns {Function} prompt function\n */\n\n // for ANSI escape codes reference see https://en.wikipedia.org/wiki/ANSI_escape_code\n\nfunction create(config) {\n\n  config = config || {};\n  var sigint = config.sigint;\n  var eot = config.eot;\n  var autocomplete = config.autocomplete =\n    config.autocomplete || function(){return []};\n  var history = config.history;\n  prompt.history = history || {save: function(){}};\n  prompt.hide = function (ask) { return prompt(ask, {echo: ''}) };\n\n  return prompt;\n\n\n  /**\n   * prompt -- sync function for reading user input from stdin\n   *  @param {String} ask opening question/statement to prompt for\n   *  @param {String} value initial value for the prompt\n   *  @param   {Object} opts {\n   *   echo: set to a character to be echoed, default is '*'. Use '' for no echo\n   *   value: {String} initial value for the prompt\n   *   ask: {String} opening question/statement to prompt for, does not override ask param\n   *   autocomplete: {StringArray} function({String})\n   * }\n   *\n   * @returns {string} Returns the string input or (if sigint === false)\n   *                   null if user terminates with a ^C\n   */\n\n\n  function prompt(ask, value, opts) {\n    var insert = 0, savedinsert = 0, res, i, savedstr;\n    opts = opts || {};\n\n    if (Object(ask) === ask) {\n      opts = ask;\n      ask = opts.ask;\n    } else if (Object(value) === value) {\n      opts = value;\n      value = opts.value;\n    }\n    ask = ask || '';\n    var echo = opts.echo;\n    var masked = 'echo' in opts;\n    autocomplete = opts.autocomplete || autocomplete;\n\n    var fd = (process.platform === 'win32') ?\n      process.stdin.fd :\n      fs.openSync('/dev/tty', 'rs');\n\n    var wasRaw = process.stdin.isRaw;\n    if (!wasRaw) { process.stdin.setRawMode && process.stdin.setRawMode(true); }\n\n    var buf = Buffer.alloc(3);\n    var str = '', character, read;\n\n    savedstr = '';\n\n    if (ask) {\n      process.stdout.write(ask);\n    }\n\n    var cycle = 0;\n    var prevComplete;\n\n    while (true) {\n      read = fs.readSync(fd, buf, 0, 3);\n      if (read > 1) { // received a control sequence\n        switch(buf.toString()) {\n          case '\\u001b[A':  //up arrow\n            if (masked) break;\n            if (!history) break;\n            if (history.atStart()) break;\n\n            if (history.atEnd()) {\n              savedstr = str;\n              savedinsert = insert;\n            }\n            str = history.prev();\n            insert = str.length;\n            process.stdout.write('\\u001b[2K\\u001b[0G' + ask + str);\n            break;\n          case '\\u001b[B':  //down arrow\n            if (masked) break;\n            if (!history) break;\n            if (history.pastEnd()) break;\n\n            if (history.atPenultimate()) {\n              str = savedstr;\n              insert = savedinsert;\n              history.next();\n            } else {\n              str = history.next();\n              insert = str.length;\n            }\n            process.stdout.write('\\u001b[2K\\u001b[0G'+ ask + str + '\\u001b['+(insert+ask.length+1)+'G');\n            break;\n          case '\\u001b[D': //left arrow\n            if (masked) break;\n            var before = insert;\n            insert = (--insert < 0) ? 0 : insert;\n            if (before - insert)\n              process.stdout.write('\\u001b[1D');\n            break;\n          case '\\u001b[C': //right arrow\n            if (masked) break;\n            insert = (++insert > str.length) ? str.length : insert;\n            process.stdout.write('\\u001b[' + (insert+ask.length+1) + 'G');\n            break;\n          default:\n            if (buf.toString()) {\n              str = str + buf.toString();\n              str = str.replace(/\\0/g, '');\n              insert = str.length;\n              promptPrint(masked, ask, echo, str, insert);\n              process.stdout.write('\\u001b[' + (insert+ask.length+1) + 'G');\n              buf = Buffer.alloc(3);\n            }\n        }\n        continue; // any other 3 character sequence is ignored\n      }\n\n      // if it is not a control character seq, assume only one character is read\n      character = buf[read-1];\n\n      // catch a ^C and return null\n      if (character == 3){\n        process.stdout.write('^C\\n');\n        fs.closeSync(fd);\n\n        if (sigint) process.exit(130);\n\n        process.stdin.setRawMode && process.stdin.setRawMode(wasRaw);\n\n        return null;\n      }\n\n      // catch a ^D and exit\n      if (character == 4) {\n        if (str.length == 0 && eot) {\n          process.stdout.write('exit\\n');\n          process.exit(0);\n        }\n      }\n\n      // catch the terminating character\n      if (character == term) {\n        fs.closeSync(fd);\n        if (!history) break;\n        if (!masked && str.length) history.push(str);\n        history.reset();\n        break;\n      }\n\n      // catch a TAB and implement autocomplete\n      if (character == 9) { // TAB\n        res = autocomplete(str);\n\n        if (str == res[0]) {\n          res = autocomplete('');\n        } else {\n          prevComplete = res.length;\n        }\n\n        if (res.length == 0) {\n          process.stdout.write('\\t');\n          continue;\n        }\n\n        var item = res[cycle++] || res[cycle = 0, cycle++];\n\n        if (item) {\n          process.stdout.write('\\r\\u001b[K' + ask + item);\n          str = item;\n          insert = item.length;\n        }\n      }\n\n      if (character == 127 || (process.platform == 'win32' && character == 8)) { //backspace\n        if (!insert) continue;\n        str = str.slice(0, insert-1) + str.slice(insert);\n        insert--;\n        process.stdout.write('\\u001b[2D');\n      } else {\n        if ((character < 32 ) || (character > 126))\n            continue;\n        str = str.slice(0, insert) + String.fromCharCode(character) + str.slice(insert);\n        insert++;\n      };\n\n      promptPrint(masked, ask, echo, str, insert);\n\n    }\n\n    process.stdout.write('\\n')\n\n    process.stdin.setRawMode && process.stdin.setRawMode(wasRaw);\n\n    return str || value || '';\n  };\n\n\n  function promptPrint(masked, ask, echo, str, insert) {\n    if (masked) {\n        process.stdout.write('\\u001b[2K\\u001b[0G' + ask + Array(str.length+1).join(echo));\n    } else {\n      process.stdout.write('\\u001b[s');\n      if (insert == str.length) {\n          process.stdout.write('\\u001b[2K\\u001b[0G'+ ask + str);\n      } else {\n        if (ask) {\n          process.stdout.write('\\u001b[2K\\u001b[0G'+ ask + str);\n        } else {\n          process.stdout.write('\\u001b[2K\\u001b[0G'+ str + '\\u001b[' + (str.length - insert) + 'D');\n        }\n      }\n\n      // Reposition the cursor to the right of the insertion point\n      var askLength = stripAnsi(ask).length;\n      process.stdout.write(`\\u001b[${askLength+1+(echo==''? 0:insert)}G`);\n    }\n  }\n};\n\nmodule.exports = create;\n"]}